2021-03-05 09:01 CET

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0000889Frama-CPlug-in > Evapublic2014-02-12 16:59
Reportermonate 
Assigned Topascal 
PrioritynormalSeveritycrashReproducibilityalways
StatusclosedResolutionfixed 
Product VersionFrama-C GIT, precise the release id 
Target VersionFixed in VersionFrama-C Nitrogen-20111001 
Summary0000889: File "src/memory_state/lmap.ml", line 931, characters 22-28: Assertion failed
Descriptionframa-c /usr/local/share/frama-c/libc/fc_runtime.c main.i protocol.i util.i -val -quiet

crashes the value analysis.
TagsNo tags attached.
Attached Files
  • ? file icon main.i (161,578 bytes) 2011-07-25 13:56 -
    # 1 "main.c"
    # 1 "/home/monate/ghttpd-1.4-4//"
    # 1 "<built-in>"
    # 1 "<command-line>"
    # 1 "main.c"
    # 20 "main.c"
    # 1 "/usr/include/stdio.h" 1 3 4
    # 28 "/usr/include/stdio.h" 3 4
    # 1 "/usr/include/features.h" 1 3 4
    # 323 "/usr/include/features.h" 3 4
    # 1 "/usr/include/bits/predefs.h" 1 3 4
    # 324 "/usr/include/features.h" 2 3 4
    # 356 "/usr/include/features.h" 3 4
    # 1 "/usr/include/sys/cdefs.h" 1 3 4
    # 353 "/usr/include/sys/cdefs.h" 3 4
    # 1 "/usr/include/bits/wordsize.h" 1 3 4
    # 354 "/usr/include/sys/cdefs.h" 2 3 4
    # 357 "/usr/include/features.h" 2 3 4
    # 388 "/usr/include/features.h" 3 4
    # 1 "/usr/include/gnu/stubs.h" 1 3 4
    
    
    
    # 1 "/usr/include/bits/wordsize.h" 1 3 4
    # 5 "/usr/include/gnu/stubs.h" 2 3 4
    
    
    # 1 "/usr/include/gnu/stubs-32.h" 1 3 4
    # 8 "/usr/include/gnu/stubs.h" 2 3 4
    # 389 "/usr/include/features.h" 2 3 4
    # 29 "/usr/include/stdio.h" 2 3 4
    
    
    
    
    
    # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4
    # 211 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 3 4
    typedef unsigned int size_t;
    # 35 "/usr/include/stdio.h" 2 3 4
    
    # 1 "/usr/include/bits/types.h" 1 3 4
    # 28 "/usr/include/bits/types.h" 3 4
    # 1 "/usr/include/bits/wordsize.h" 1 3 4
    # 29 "/usr/include/bits/types.h" 2 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;
    
    
    
    
    __extension__ typedef signed long long int __int64_t;
    __extension__ typedef unsigned long long int __uint64_t;
    
    
    
    
    
    
    
    __extension__ typedef long long int __quad_t;
    __extension__ typedef unsigned long long int __u_quad_t;
    # 131 "/usr/include/bits/types.h" 3 4
    # 1 "/usr/include/bits/typesizes.h" 1 3 4
    # 132 "/usr/include/bits/types.h" 2 3 4
    
    
    __extension__ typedef __u_quad_t __dev_t;
    __extension__ typedef unsigned int __uid_t;
    __extension__ typedef unsigned int __gid_t;
    __extension__ typedef unsigned long int __ino_t;
    __extension__ typedef __u_quad_t __ino64_t;
    __extension__ typedef unsigned int __mode_t;
    __extension__ typedef unsigned int __nlink_t;
    __extension__ typedef long int __off_t;
    __extension__ typedef __quad_t __off64_t;
    __extension__ typedef int __pid_t;
    __extension__ typedef struct { int __val[2]; } __fsid_t;
    __extension__ typedef long int __clock_t;
    __extension__ typedef unsigned long int __rlim_t;
    __extension__ typedef __u_quad_t __rlim64_t;
    __extension__ typedef unsigned int __id_t;
    __extension__ typedef long int __time_t;
    __extension__ typedef unsigned int __useconds_t;
    __extension__ typedef long int __suseconds_t;
    
    __extension__ typedef int __daddr_t;
    __extension__ typedef long int __swblk_t;
    __extension__ typedef int __key_t;
    
    
    __extension__ typedef int __clockid_t;
    
    
    __extension__ typedef void * __timer_t;
    
    
    __extension__ typedef long int __blksize_t;
    
    
    
    
    __extension__ typedef long int __blkcnt_t;
    __extension__ typedef __quad_t __blkcnt64_t;
    
    
    __extension__ typedef unsigned long int __fsblkcnt_t;
    __extension__ typedef __u_quad_t __fsblkcnt64_t;
    
    
    __extension__ typedef unsigned long int __fsfilcnt_t;
    __extension__ typedef __u_quad_t __fsfilcnt64_t;
    
    __extension__ typedef int __ssize_t;
    
    
    
    typedef __off64_t __loff_t;
    typedef __quad_t *__qaddr_t;
    typedef char *__caddr_t;
    
    
    __extension__ typedef int __intptr_t;
    
    
    __extension__ typedef unsigned int __socklen_t;
    # 37 "/usr/include/stdio.h" 2 3 4
    # 45 "/usr/include/stdio.h" 3 4
    struct _IO_FILE;
    
    
    
    typedef struct _IO_FILE FILE;
    
    
    
    
    
    # 65 "/usr/include/stdio.h" 3 4
    typedef struct _IO_FILE __FILE;
    # 75 "/usr/include/stdio.h" 3 4
    # 1 "/usr/include/libio.h" 1 3 4
    # 32 "/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/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4
    # 16 "/usr/include/_G_config.h" 2 3 4
    
    
    
    
    # 1 "/usr/include/wchar.h" 1 3 4
    # 83 "/usr/include/wchar.h" 3 4
    typedef struct
    {
      int __count;
      union
      {
    
        unsigned int __wch;
    
    
    
        char __wchb[4];
      } __value;
    } __mbstate_t;
    # 21 "/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;
    # 53 "/usr/include/_G_config.h" 3 4
    typedef int _G_int16_t __attribute__ ((__mode__ (__HI__)));
    typedef int _G_int32_t __attribute__ ((__mode__ (__SI__)));
    typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__)));
    typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__)));
    # 33 "/usr/include/libio.h" 2 3 4
    # 53 "/usr/include/libio.h" 3 4
    # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdarg.h" 1 3 4
    # 40 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdarg.h" 3 4
    typedef __builtin_va_list __gnuc_va_list;
    # 54 "/usr/include/libio.h" 2 3 4
    # 170 "/usr/include/libio.h" 3 4
    struct _IO_jump_t; struct _IO_FILE;
    # 180 "/usr/include/libio.h" 3 4
    typedef void _IO_lock_t;
    
    
    
    
    
    struct _IO_marker {
      struct _IO_marker *_next;
      struct _IO_FILE *_sbuf;
    
    
    
      int _pos;
    # 203 "/usr/include/libio.h" 3 4
    };
    
    
    enum __codecvt_result
    {
      __codecvt_ok,
      __codecvt_partial,
      __codecvt_error,
      __codecvt_noconv
    };
    # 271 "/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;
    # 319 "/usr/include/libio.h" 3 4
      __off64_t _offset;
    # 328 "/usr/include/libio.h" 3 4
      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_;
    # 364 "/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);
    # 416 "/usr/include/libio.h" 3 4
    extern int __underflow (_IO_FILE *);
    extern int __uflow (_IO_FILE *);
    extern int __overflow (_IO_FILE *, int);
    # 460 "/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__));
    extern int _IO_ferror (_IO_FILE *__fp) __attribute__ ((__nothrow__));
    
    extern int _IO_peekc_locked (_IO_FILE *__fp);
    
    
    
    
    
    extern void _IO_flockfile (_IO_FILE *) __attribute__ ((__nothrow__));
    extern void _IO_funlockfile (_IO_FILE *) __attribute__ ((__nothrow__));
    extern int _IO_ftrylockfile (_IO_FILE *) __attribute__ ((__nothrow__));
    # 490 "/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__));
    # 76 "/usr/include/stdio.h" 2 3 4
    
    
    
    
    typedef __gnuc_va_list va_list;
    # 91 "/usr/include/stdio.h" 3 4
    typedef __off_t off_t;
    # 103 "/usr/include/stdio.h" 3 4
    typedef __ssize_t ssize_t;
    
    
    
    
    
    
    
    typedef _G_fpos_t fpos_t;
    
    
    
    
    # 161 "/usr/include/stdio.h" 3 4
    # 1 "/usr/include/bits/stdio_lim.h" 1 3 4
    # 162 "/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__));
    
    extern int rename (__const char *__old, __const char *__new) __attribute__ ((__nothrow__));
    
    
    
    
    extern int renameat (int __oldfd, __const char *__old, int __newfd,
           __const char *__new) __attribute__ ((__nothrow__));
    
    
    
    
    
    
    
    
    extern FILE *tmpfile (void) __attribute__ ((__warn_unused_result__));
    # 206 "/usr/include/stdio.h" 3 4
    extern char *tmpnam (char *__s) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    extern char *tmpnam_r (char *__s) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    # 224 "/usr/include/stdio.h" 3 4
    extern char *tempnam (__const char *__dir, __const char *__pfx)
         __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    
    
    
    extern int fclose (FILE *__stream);
    
    
    
    
    extern int fflush (FILE *__stream);
    
    # 249 "/usr/include/stdio.h" 3 4
    extern int fflush_unlocked (FILE *__stream);
    # 263 "/usr/include/stdio.h" 3 4
    
    
    
    
    
    
    extern FILE *fopen (__const char *__restrict __filename,
          __const char *__restrict __modes) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern FILE *freopen (__const char *__restrict __filename,
            __const char *__restrict __modes,
            FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
    # 292 "/usr/include/stdio.h" 3 4
    
    # 303 "/usr/include/stdio.h" 3 4
    extern FILE *fdopen (int __fd, __const char *__modes) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    # 316 "/usr/include/stdio.h" 3 4
    extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes)
      __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    
    extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __attribute__ ((__nothrow__));
    
    
    
    extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
          int __modes, size_t __n) __attribute__ ((__nothrow__));
    
    
    
    
    
    extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
             size_t __size) __attribute__ ((__nothrow__));
    
    
    extern void setlinebuf (FILE *__stream) __attribute__ ((__nothrow__));
    
    
    
    
    
    
    
    
    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)));
    
    # 414 "/usr/include/stdio.h" 3 4
    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, ...) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern int scanf (__const char *__restrict __format, ...) __attribute__ ((__warn_unused_result__));
    
    extern int sscanf (__const char *__restrict __s,
         __const char *__restrict __format, ...) __attribute__ ((__nothrow__));
    # 445 "/usr/include/stdio.h" 3 4
    extern int fscanf (FILE *__restrict __stream, __const char *__restrict __format, ...) __asm__ ("" "__isoc99_fscanf")
    
                              __attribute__ ((__warn_unused_result__));
    extern int scanf (__const char *__restrict __format, ...) __asm__ ("" "__isoc99_scanf")
                             __attribute__ ((__warn_unused_result__));
    extern int sscanf (__const char *__restrict __s, __const char *__restrict __format, ...) __asm__ ("" "__isoc99_sscanf") __attribute__ ((__nothrow__))
    
                          ;
    # 465 "/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))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg)
         __attribute__ ((__format__ (__scanf__, 1, 0))) __attribute__ ((__warn_unused_result__));
    
    
    extern int vsscanf (__const char *__restrict __s,
          __const char *__restrict __format, __gnuc_va_list __arg)
         __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__scanf__, 2, 0)));
    # 496 "/usr/include/stdio.h" 3 4
    extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vfscanf")
    
    
    
         __attribute__ ((__format__ (__scanf__, 2, 0))) __attribute__ ((__warn_unused_result__));
    extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vscanf")
    
         __attribute__ ((__format__ (__scanf__, 1, 0))) __attribute__ ((__warn_unused_result__));
    extern int vsscanf (__const char *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vsscanf") __attribute__ ((__nothrow__))
    
    
    
         __attribute__ ((__format__ (__scanf__, 2, 0)));
    # 524 "/usr/include/stdio.h" 3 4
    
    
    
    
    
    
    
    
    
    extern int fgetc (FILE *__stream);
    extern int getc (FILE *__stream);
    
    
    
    
    
    extern int getchar (void);
    
    # 552 "/usr/include/stdio.h" 3 4
    extern int getc_unlocked (FILE *__stream);
    extern int getchar_unlocked (void);
    # 563 "/usr/include/stdio.h" 3 4
    extern int fgetc_unlocked (FILE *__stream);
    
    
    
    
    
    
    
    
    
    
    
    extern int fputc (int __c, FILE *__stream);
    extern int putc (int __c, FILE *__stream);
    
    
    
    
    
    extern int putchar (int __c);
    
    # 596 "/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)
         __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    
    extern char *gets (char *__s) __attribute__ ((__warn_unused_result__));
    
    # 658 "/usr/include/stdio.h" 3 4
    extern __ssize_t __getdelim (char **__restrict __lineptr,
              size_t *__restrict __n, int __delimiter,
              FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
    extern __ssize_t getdelim (char **__restrict __lineptr,
            size_t *__restrict __n, int __delimiter,
            FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    
    
    extern __ssize_t getline (char **__restrict __lineptr,
           size_t *__restrict __n,
           FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    
    
    
    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) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern size_t fwrite (__const void *__restrict __ptr, size_t __size,
            size_t __n, FILE *__restrict __s);
    
    # 730 "/usr/include/stdio.h" 3 4
    extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
             size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
    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) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern void rewind (FILE *__stream);
    
    # 766 "/usr/include/stdio.h" 3 4
    extern int fseeko (FILE *__stream, __off_t __off, int __whence);
    
    
    
    
    extern __off_t ftello (FILE *__stream) __attribute__ ((__warn_unused_result__));
    # 785 "/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);
    # 808 "/usr/include/stdio.h" 3 4
    
    # 817 "/usr/include/stdio.h" 3 4
    
    
    extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__));
    
    extern int feof (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    extern int ferror (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__));
    extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    
    
    
    extern void perror (__const char *__s);
    
    
    
    
    
    
    # 1 "/usr/include/bits/sys_errlist.h" 1 3 4
    # 27 "/usr/include/bits/sys_errlist.h" 3 4
    extern int sys_nerr;
    extern __const char *__const sys_errlist[];
    # 847 "/usr/include/stdio.h" 2 3 4
    
    
    
    
    extern int fileno (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    # 866 "/usr/include/stdio.h" 3 4
    extern FILE *popen (__const char *__command, __const char *__modes) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    extern int pclose (FILE *__stream);
    
    
    
    
    
    extern char *ctermid (char *__s) __attribute__ ((__nothrow__));
    # 906 "/usr/include/stdio.h" 3 4
    extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__));
    
    
    
    extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__));
    # 927 "/usr/include/stdio.h" 3 4
    # 1 "/usr/include/bits/stdio.h" 1 3 4
    # 44 "/usr/include/bits/stdio.h" 3 4
    extern __inline int
    getchar (void)
    {
      return _IO_getc (stdin);
    }
    
    
    
    
    extern __inline int
    fgetc_unlocked (FILE *__fp)
    {
      return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
    }
    
    
    
    
    
    extern __inline int
    getc_unlocked (FILE *__fp)
    {
      return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
    }
    
    
    extern __inline int
    getchar_unlocked (void)
    {
      return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++);
    }
    
    
    
    
    extern __inline int
    putchar (int __c)
    {
      return _IO_putc (__c, stdout);
    }
    
    
    
    
    extern __inline int
    fputc_unlocked (int __c, FILE *__stream)
    {
      return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
    }
    
    
    
    
    
    extern __inline int
    putc_unlocked (int __c, FILE *__stream)
    {
      return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
    }
    
    
    extern __inline int
    putchar_unlocked (int __c)
    {
      return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c)));
    }
    # 125 "/usr/include/bits/stdio.h" 3 4
    extern __inline int
    __attribute__ ((__nothrow__)) feof_unlocked (FILE *__stream)
    {
      return (((__stream)->_flags & 0x10) != 0);
    }
    
    
    extern __inline int
    __attribute__ ((__nothrow__)) ferror_unlocked (FILE *__stream)
    {
      return (((__stream)->_flags & 0x20) != 0);
    }
    # 928 "/usr/include/stdio.h" 2 3 4
    
    
    # 1 "/usr/include/bits/stdio2.h" 1 3 4
    # 24 "/usr/include/bits/stdio2.h" 3 4
    extern int __sprintf_chk (char *__restrict __s, int __flag, size_t __slen,
         __const char *__restrict __format, ...) __attribute__ ((__nothrow__));
    extern int __vsprintf_chk (char *__restrict __s, int __flag, size_t __slen,
          __const char *__restrict __format,
          __gnuc_va_list __ap) __attribute__ ((__nothrow__));
    
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
    __attribute__ ((__nothrow__)) sprintf (char *__restrict __s, __const char *__restrict __fmt, ...)
    {
      return __builtin___sprintf_chk (__s, 2 - 1,
          __builtin_object_size (__s, 2 > 1), __fmt, __builtin_va_arg_pack ());
    }
    
    
    
    
    
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
    __attribute__ ((__nothrow__)) vsprintf (char *__restrict __s, __const char *__restrict __fmt, __gnuc_va_list __ap)
    
    {
      return __builtin___vsprintf_chk (__s, 2 - 1,
           __builtin_object_size (__s, 2 > 1), __fmt, __ap);
    }
    
    
    
    extern int __snprintf_chk (char *__restrict __s, size_t __n, int __flag,
          size_t __slen, __const char *__restrict __format,
          ...) __attribute__ ((__nothrow__));
    extern int __vsnprintf_chk (char *__restrict __s, size_t __n, int __flag,
           size_t __slen, __const char *__restrict __format,
           __gnuc_va_list __ap) __attribute__ ((__nothrow__));
    
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
    __attribute__ ((__nothrow__)) snprintf (char *__restrict __s, size_t __n, __const char *__restrict __fmt, ...)
    
    {
      return __builtin___snprintf_chk (__s, __n, 2 - 1,
           __builtin_object_size (__s, 2 > 1), __fmt, __builtin_va_arg_pack ());
    }
    
    
    
    
    
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
    __attribute__ ((__nothrow__)) vsnprintf (char *__restrict __s, size_t __n, __const char *__restrict __fmt, __gnuc_va_list __ap)
    
    {
      return __builtin___vsnprintf_chk (__s, __n, 2 - 1,
            __builtin_object_size (__s, 2 > 1), __fmt, __ap);
    }
    
    
    
    
    
    extern int __fprintf_chk (FILE *__restrict __stream, int __flag,
         __const char *__restrict __format, ...);
    extern int __printf_chk (int __flag, __const char *__restrict __format, ...);
    extern int __vfprintf_chk (FILE *__restrict __stream, int __flag,
          __const char *__restrict __format, __gnuc_va_list __ap);
    extern int __vprintf_chk (int __flag, __const char *__restrict __format,
         __gnuc_va_list __ap);
    
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
    fprintf (FILE *__restrict __stream, __const char *__restrict __fmt, ...)
    {
      return __fprintf_chk (__stream, 2 - 1, __fmt,
       __builtin_va_arg_pack ());
    }
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
    printf (__const char *__restrict __fmt, ...)
    {
      return __printf_chk (2 - 1, __fmt, __builtin_va_arg_pack ());
    }
    
    
    
    
    
    
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
    vprintf (__const char *__restrict __fmt, __gnuc_va_list __ap)
    {
    
      return __vfprintf_chk (stdout, 2 - 1, __fmt, __ap);
    
    
    
    }
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
    vfprintf (FILE *__restrict __stream,
       __const char *__restrict __fmt, __gnuc_va_list __ap)
    {
      return __vfprintf_chk (__stream, 2 - 1, __fmt, __ap);
    }
    # 220 "/usr/include/bits/stdio2.h" 3 4
    extern char *__gets_chk (char *__str, size_t) __attribute__ ((__warn_unused_result__));
    extern char *__gets_warn (char *__str) __asm__ ("" "gets")
         __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("please use fgets or getline instead, gets can't " "specify buffer size")))
                                   ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char *
    gets (char *__str)
    {
      if (__builtin_object_size (__str, 2 > 1) != (size_t) -1)
        return __gets_chk (__str, __builtin_object_size (__str, 2 > 1));
      return __gets_warn (__str);
    }
    
    extern char *__fgets_chk (char *__restrict __s, size_t __size, int __n,
         FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
    extern char *__fgets_alias (char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("" "fgets")
    
                                            __attribute__ ((__warn_unused_result__));
    extern char *__fgets_chk_warn (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __asm__ ("" "__fgets_chk")
    
    
         __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgets called with bigger size than length " "of destination buffer")))
                                     ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char *
    fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
    {
      if (__builtin_object_size (__s, 2 > 1) != (size_t) -1)
        {
          if (!__builtin_constant_p (__n) || __n <= 0)
     return __fgets_chk (__s, __builtin_object_size (__s, 2 > 1), __n, __stream);
    
          if ((size_t) __n > __builtin_object_size (__s, 2 > 1))
     return __fgets_chk_warn (__s, __builtin_object_size (__s, 2 > 1), __n, __stream);
        }
      return __fgets_alias (__s, __n, __stream);
    }
    
    extern size_t __fread_chk (void *__restrict __ptr, size_t __ptrlen,
          size_t __size, size_t __n,
          FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
    extern size_t __fread_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread")
    
    
                __attribute__ ((__warn_unused_result__));
    extern size_t __fread_chk_warn (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "__fread_chk")
    
    
    
    
         __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fread called with bigger size * nmemb than length " "of destination buffer")))
                                     ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t
    fread (void *__restrict __ptr, size_t __size, size_t __n,
           FILE *__restrict __stream)
    {
      if (__builtin_object_size (__ptr, 0) != (size_t) -1)
        {
          if (!__builtin_constant_p (__size)
       || !__builtin_constant_p (__n)
       || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2)))
     return __fread_chk (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream);
    
          if (__size * __n > __builtin_object_size (__ptr, 0))
     return __fread_chk_warn (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream);
        }
      return __fread_alias (__ptr, __size, __n, __stream);
    }
    # 319 "/usr/include/bits/stdio2.h" 3 4
    extern size_t __fread_unlocked_chk (void *__restrict __ptr, size_t __ptrlen,
            size_t __size, size_t __n,
            FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
    extern size_t __fread_unlocked_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread_unlocked")
    
    
                         __attribute__ ((__warn_unused_result__));
    extern size_t __fread_unlocked_chk_warn (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "__fread_unlocked_chk")
    
    
    
    
         __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fread_unlocked called with bigger size * nmemb than " "length of destination buffer")))
                                            ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t
    fread_unlocked (void *__restrict __ptr, size_t __size, size_t __n,
      FILE *__restrict __stream)
    {
      if (__builtin_object_size (__ptr, 0) != (size_t) -1)
        {
          if (!__builtin_constant_p (__size)
       || !__builtin_constant_p (__n)
       || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2)))
     return __fread_unlocked_chk (__ptr, __builtin_object_size (__ptr, 0), __size, __n,
             __stream);
    
          if (__size * __n > __builtin_object_size (__ptr, 0))
     return __fread_unlocked_chk_warn (__ptr, __builtin_object_size (__ptr, 0), __size, __n,
           __stream);
        }
    
    
      if (__builtin_constant_p (__size)
          && __builtin_constant_p (__n)
          && (__size | __n) < (((size_t) 1) << (8 * sizeof (size_t) / 2))
          && __size * __n <= 8)
        {
          size_t __cnt = __size * __n;
          char *__cptr = (char *) __ptr;
          if (__cnt == 0)
     return 0;
    
          for (; __cnt > 0; --__cnt)
     {
       int __c = (__builtin_expect (((__stream)->_IO_read_ptr >= (__stream)->_IO_read_end), 0) ? __uflow (__stream) : *(unsigned char *) (__stream)->_IO_read_ptr++);
       if (__c == (-1))
         break;
       *__cptr++ = __c;
     }
          return (__cptr - (char *) __ptr) / __size;
        }
    
      return __fread_unlocked_alias (__ptr, __size, __n, __stream);
    }
    # 931 "/usr/include/stdio.h" 2 3 4
    
    
    
    
    
    
    # 21 "main.c" 2
    # 1 "/usr/include/stdlib.h" 1 3 4
    # 33 "/usr/include/stdlib.h" 3 4
    # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4
    # 323 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 3 4
    typedef int wchar_t;
    # 34 "/usr/include/stdlib.h" 2 3 4
    
    
    
    
    
    
    
    
    # 1 "/usr/include/bits/waitflags.h" 1 3 4
    # 43 "/usr/include/stdlib.h" 2 3 4
    # 1 "/usr/include/bits/waitstatus.h" 1 3 4
    # 65 "/usr/include/bits/waitstatus.h" 3 4
    # 1 "/usr/include/endian.h" 1 3 4
    # 37 "/usr/include/endian.h" 3 4
    # 1 "/usr/include/bits/endian.h" 1 3 4
    # 38 "/usr/include/endian.h" 2 3 4
    # 61 "/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
    # 62 "/usr/include/endian.h" 2 3 4
    # 66 "/usr/include/bits/waitstatus.h" 2 3 4
    
    union wait
      {
        int w_status;
        struct
          {
    
     unsigned int __w_termsig:7;
     unsigned int __w_coredump:1;
     unsigned int __w_retcode:8;
     unsigned int:16;
    
    
    
    
    
    
    
          } __wait_terminated;
        struct
          {
    
     unsigned int __w_stopval:8;
     unsigned int __w_stopsig:8;
     unsigned int:16;
    
    
    
    
    
    
          } __wait_stopped;
      };
    # 44 "/usr/include/stdlib.h" 2 3 4
    # 68 "/usr/include/stdlib.h" 3 4
    typedef union
      {
        union wait *__uptr;
        int *__iptr;
      } __WAIT_STATUS __attribute__ ((__transparent_union__));
    # 96 "/usr/include/stdlib.h" 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;
    
    
    # 140 "/usr/include/stdlib.h" 3 4
    extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern double atof (__const char *__nptr)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    extern int atoi (__const char *__nptr)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    extern long int atol (__const char *__nptr)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    __extension__ extern long long int atoll (__const char *__nptr)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    extern double strtod (__const char *__restrict __nptr,
            char **__restrict __endptr)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    extern float strtof (__const char *__restrict __nptr,
           char **__restrict __endptr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    extern long double strtold (__const char *__restrict __nptr,
           char **__restrict __endptr)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    extern long int strtol (__const char *__restrict __nptr,
       char **__restrict __endptr, int __base)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    extern unsigned long int strtoul (__const char *__restrict __nptr,
          char **__restrict __endptr, int __base)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    __extension__
    extern long long int strtoq (__const char *__restrict __nptr,
            char **__restrict __endptr, int __base)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    __extension__
    extern unsigned long long int strtouq (__const char *__restrict __nptr,
               char **__restrict __endptr, int __base)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    __extension__
    extern long long int strtoll (__const char *__restrict __nptr,
             char **__restrict __endptr, int __base)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    __extension__
    extern unsigned long long int strtoull (__const char *__restrict __nptr,
         char **__restrict __endptr, int __base)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    # 277 "/usr/include/stdlib.h" 3 4
    
    extern __inline double
    __attribute__ ((__nothrow__)) atof (__const char *__nptr)
    {
      return strtod (__nptr, (char **) ((void *)0));
    }
    extern __inline int
    __attribute__ ((__nothrow__)) atoi (__const char *__nptr)
    {
      return (int) strtol (__nptr, (char **) ((void *)0), 10);
    }
    extern __inline long int
    __attribute__ ((__nothrow__)) atol (__const char *__nptr)
    {
      return strtol (__nptr, (char **) ((void *)0), 10);
    }
    
    
    
    
    __extension__ extern __inline long long int
    __attribute__ ((__nothrow__)) atoll (__const char *__nptr)
    {
      return strtoll (__nptr, (char **) ((void *)0), 10);
    }
    
    # 311 "/usr/include/stdlib.h" 3 4
    extern char *l64a (long int __n) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    extern long int a64l (__const char *__s)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    # 1 "/usr/include/sys/types.h" 1 3 4
    # 28 "/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;
    # 61 "/usr/include/sys/types.h" 3 4
    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;
    # 99 "/usr/include/sys/types.h" 3 4
    typedef __pid_t pid_t;
    
    
    
    
    
    typedef __id_t id_t;
    # 116 "/usr/include/sys/types.h" 3 4
    typedef __daddr_t daddr_t;
    typedef __caddr_t caddr_t;
    
    
    
    
    
    typedef __key_t key_t;
    # 133 "/usr/include/sys/types.h" 3 4
    # 1 "/usr/include/time.h" 1 3 4
    # 58 "/usr/include/time.h" 3 4
    
    
    typedef __clock_t clock_t;
    
    
    
    # 74 "/usr/include/time.h" 3 4
    
    
    typedef __time_t time_t;
    
    
    
    # 92 "/usr/include/time.h" 3 4
    typedef __clockid_t clockid_t;
    # 104 "/usr/include/time.h" 3 4
    typedef __timer_t timer_t;
    # 134 "/usr/include/sys/types.h" 2 3 4
    # 147 "/usr/include/sys/types.h" 3 4
    # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4
    # 148 "/usr/include/sys/types.h" 2 3 4
    
    
    
    typedef unsigned long int ulong;
    typedef unsigned short int ushort;
    typedef unsigned int uint;
    # 195 "/usr/include/sys/types.h" 3 4
    typedef int int8_t __attribute__ ((__mode__ (__QI__)));
    typedef int int16_t __attribute__ ((__mode__ (__HI__)));
    typedef int int32_t __attribute__ ((__mode__ (__SI__)));
    typedef int int64_t __attribute__ ((__mode__ (__DI__)));
    
    
    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__)));
    # 220 "/usr/include/sys/types.h" 3 4
    # 1 "/usr/include/sys/select.h" 1 3 4
    # 31 "/usr/include/sys/select.h" 3 4
    # 1 "/usr/include/bits/select.h" 1 3 4
    # 23 "/usr/include/bits/select.h" 3 4
    # 1 "/usr/include/bits/wordsize.h" 1 3 4
    # 24 "/usr/include/bits/select.h" 2 3 4
    # 32 "/usr/include/sys/select.h" 2 3 4
    
    
    # 1 "/usr/include/bits/sigset.h" 1 3 4
    # 24 "/usr/include/bits/sigset.h" 3 4
    typedef int __sig_atomic_t;
    
    
    
    
    typedef struct
      {
        unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
      } __sigset_t;
    # 35 "/usr/include/sys/select.h" 2 3 4
    
    
    
    typedef __sigset_t sigset_t;
    
    
    
    
    
    # 1 "/usr/include/time.h" 1 3 4
    # 120 "/usr/include/time.h" 3 4
    struct timespec
      {
        __time_t tv_sec;
        long int tv_nsec;
      };
    # 45 "/usr/include/sys/select.h" 2 3 4
    
    # 1 "/usr/include/bits/time.h" 1 3 4
    # 75 "/usr/include/bits/time.h" 3 4
    struct timeval
      {
        __time_t tv_sec;
        __suseconds_t tv_usec;
      };
    # 47 "/usr/include/sys/select.h" 2 3 4
    
    
    typedef __suseconds_t suseconds_t;
    
    
    
    
    
    typedef long int __fd_mask;
    # 67 "/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;
    # 99 "/usr/include/sys/select.h" 3 4
    
    # 109 "/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);
    # 121 "/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);
    
    
    
    # 221 "/usr/include/sys/types.h" 2 3 4
    
    
    # 1 "/usr/include/sys/sysmacros.h" 1 3 4
    # 30 "/usr/include/sys/sysmacros.h" 3 4
    __extension__
    extern unsigned int gnu_dev_major (unsigned long long int __dev)
         __attribute__ ((__nothrow__));
    __extension__
    extern unsigned int gnu_dev_minor (unsigned long long int __dev)
         __attribute__ ((__nothrow__));
    __extension__
    extern unsigned long long int gnu_dev_makedev (unsigned int __major,
                unsigned int __minor)
         __attribute__ ((__nothrow__));
    
    
    __extension__ extern __inline unsigned int
    __attribute__ ((__nothrow__)) gnu_dev_major (unsigned long long int __dev)
    {
      return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff);
    }
    
    __extension__ extern __inline unsigned int
    __attribute__ ((__nothrow__)) gnu_dev_minor (unsigned long long int __dev)
    {
      return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff);
    }
    
    __extension__ extern __inline unsigned long long int
    __attribute__ ((__nothrow__)) gnu_dev_makedev (unsigned int __major, unsigned int __minor)
    {
      return ((__minor & 0xff) | ((__major & 0xfff) << 8)
       | (((unsigned long long int) (__minor & ~0xff)) << 12)
       | (((unsigned long long int) (__major & ~0xfff)) << 32));
    }
    # 224 "/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;
    # 271 "/usr/include/sys/types.h" 3 4
    # 1 "/usr/include/bits/pthreadtypes.h" 1 3 4
    # 23 "/usr/include/bits/pthreadtypes.h" 3 4
    # 1 "/usr/include/bits/wordsize.h" 1 3 4
    # 24 "/usr/include/bits/pthreadtypes.h" 2 3 4
    # 50 "/usr/include/bits/pthreadtypes.h" 3 4
    typedef unsigned long int pthread_t;
    
    
    typedef union
    {
      char __size[36];
      long int __align;
    } pthread_attr_t;
    # 67 "/usr/include/bits/pthreadtypes.h" 3 4
    typedef struct __pthread_internal_slist
    {
      struct __pthread_internal_slist *__next;
    } __pthread_slist_t;
    
    
    
    
    
    typedef union
    {
      struct __pthread_mutex_s
      {
        int __lock;
        unsigned int __count;
        int __owner;
    
    
    
    
    
        int __kind;
    
    
    
    
    
        unsigned int __nusers;
        __extension__ union
        {
          int __spins;
          __pthread_slist_t __list;
        };
    
      } __data;
      char __size[24];
      long int __align;
    } pthread_mutex_t;
    
    typedef union
    {
      char __size[4];
      int __align;
    } pthread_mutexattr_t;
    
    
    
    
    typedef union
    {
      struct
      {
        int __lock;
        unsigned int __futex;
        __extension__ unsigned long long int __total_seq;
        __extension__ unsigned long long int __wakeup_seq;
        __extension__ unsigned long long int __woken_seq;
        void *__mutex;
        unsigned int __nwaiters;
        unsigned int __broadcast_seq;
      } __data;
      char __size[48];
      __extension__ long long int __align;
    } pthread_cond_t;
    
    typedef union
    {
      char __size[4];
      int __align;
    } pthread_condattr_t;
    
    
    
    typedef unsigned int pthread_key_t;
    
    
    
    typedef int pthread_once_t;
    
    
    
    
    
    typedef union
    {
    # 170 "/usr/include/bits/pthreadtypes.h" 3 4
      struct
      {
        int __lock;
        unsigned int __nr_readers;
        unsigned int __readers_wakeup;
        unsigned int __writer_wakeup;
        unsigned int __nr_readers_queued;
        unsigned int __nr_writers_queued;
    
    
        unsigned char __flags;
        unsigned char __shared;
        unsigned char __pad1;
        unsigned char __pad2;
        int __writer;
      } __data;
    
      char __size[32];
      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[20];
      long int __align;
    } pthread_barrier_t;
    
    typedef union
    {
      char __size[4];
      int __align;
    } pthread_barrierattr_t;
    # 272 "/usr/include/sys/types.h" 2 3 4
    
    
    
    # 321 "/usr/include/stdlib.h" 2 3 4
    
    
    
    
    
    
    extern long int random (void) __attribute__ ((__nothrow__));
    
    
    extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__));
    
    
    
    
    
    extern char *initstate (unsigned int __seed, char *__statebuf,
       size_t __statelen) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
    
    
    
    extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__)) __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__)) __attribute__ ((__nonnull__ (1, 2)));
    
    extern int srandom_r (unsigned int __seed, struct random_data *__buf)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
    
    extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
       size_t __statelen,
       struct random_data *__restrict __buf)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4)));
    
    extern int setstate_r (char *__restrict __statebuf,
             struct random_data *__restrict __buf)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    
    
    
    
    extern int rand (void) __attribute__ ((__nothrow__));
    
    extern void srand (unsigned int __seed) __attribute__ ((__nothrow__));
    
    
    
    
    extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__));
    
    
    
    
    
    
    
    extern double drand48 (void) __attribute__ ((__nothrow__));
    extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    extern long int lrand48 (void) __attribute__ ((__nothrow__));
    extern long int nrand48 (unsigned short int __xsubi[3])
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    extern long int mrand48 (void) __attribute__ ((__nothrow__));
    extern long int jrand48 (unsigned short int __xsubi[3])
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    extern void srand48 (long int __seedval) __attribute__ ((__nothrow__));
    extern unsigned short int *seed48 (unsigned short int __seed16v[3])
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__)) __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;
        unsigned long long int __a;
      };
    
    
    extern int drand48_r (struct drand48_data *__restrict __buffer,
            double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    extern int erand48_r (unsigned short int __xsubi[3],
            struct drand48_data *__restrict __buffer,
            double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    extern int lrand48_r (struct drand48_data *__restrict __buffer,
            long int *__restrict __result)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    extern int nrand48_r (unsigned short int __xsubi[3],
            struct drand48_data *__restrict __buffer,
            long int *__restrict __result)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    extern int mrand48_r (struct drand48_data *__restrict __buffer,
            long int *__restrict __result)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    extern int jrand48_r (unsigned short int __xsubi[3],
            struct drand48_data *__restrict __buffer,
            long int *__restrict __result)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
    
    extern int seed48_r (unsigned short int __seed16v[3],
           struct drand48_data *__buffer) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    extern int lcong48_r (unsigned short int __param[7],
            struct drand48_data *__buffer)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    
    
    
    
    
    
    
    extern void *malloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__));
    
    extern void *calloc (size_t __nmemb, size_t __size)
         __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    
    
    
    
    
    extern void *realloc (void *__ptr, size_t __size)
         __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    extern void free (void *__ptr) __attribute__ ((__nothrow__));
    
    
    
    
    extern void cfree (void *__ptr) __attribute__ ((__nothrow__));
    
    
    
    # 1 "/usr/include/alloca.h" 1 3 4
    # 25 "/usr/include/alloca.h" 3 4
    # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4
    # 26 "/usr/include/alloca.h" 2 3 4
    
    
    
    
    
    
    
    extern void *alloca (size_t __size) __attribute__ ((__nothrow__));
    
    
    
    
    
    
    # 498 "/usr/include/stdlib.h" 2 3 4
    
    
    
    
    
    extern void *valloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern void abort (void) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
    
    
    
    extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    # 531 "/usr/include/stdlib.h" 3 4
    
    
    
    
    
    extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    
    
    extern void exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
    # 554 "/usr/include/stdlib.h" 3 4
    
    
    
    
    
    
    extern void _Exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
    
    
    
    
    
    
    extern char *getenv (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern char *__secure_getenv (__const char *__name)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    extern int putenv (char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    
    extern int setenv (__const char *__name, __const char *__value, int __replace)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
    
    
    extern int unsetenv (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    
    
    extern int clearenv (void) __attribute__ ((__nothrow__));
    # 606 "/usr/include/stdlib.h" 3 4
    extern char *mktemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    # 620 "/usr/include/stdlib.h" 3 4
    extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    # 642 "/usr/include/stdlib.h" 3 4
    extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    # 663 "/usr/include/stdlib.h" 3 4
    extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    # 712 "/usr/include/stdlib.h" 3 4
    
    
    
    
    
    extern int system (__const char *__command) __attribute__ ((__warn_unused_result__));
    
    # 734 "/usr/include/stdlib.h" 3 4
    extern char *realpath (__const char *__restrict __name,
             char *__restrict __resolved) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    
    typedef int (*__compar_fn_t) (__const void *, __const void *);
    # 752 "/usr/include/stdlib.h" 3 4
    
    
    
    extern void *bsearch (__const void *__key, __const void *__base,
            size_t __nmemb, size_t __size, __compar_fn_t __compar)
         __attribute__ ((__nonnull__ (1, 2, 5))) __attribute__ ((__warn_unused_result__));
    
    
    
    extern void qsort (void *__base, size_t __nmemb, size_t __size,
         __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
    # 771 "/usr/include/stdlib.h" 3 4
    extern int abs (int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__));
    extern long int labs (long int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__));
    
    
    
    __extension__ extern long long int llabs (long long int __x)
         __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    
    
    extern div_t div (int __numer, int __denom)
         __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__));
    extern ldiv_t ldiv (long int __numer, long int __denom)
         __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    __extension__ extern lldiv_t lldiv (long long int __numer,
            long long int __denom)
         __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__));
    
    # 808 "/usr/include/stdlib.h" 3 4
    extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
         int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
         int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern char *gcvt (double __value, int __ndigit, char *__buf)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern char *qecvt (long double __value, int __ndigit,
          int *__restrict __decpt, int *__restrict __sign)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__));
    extern char *qfcvt (long double __value, int __ndigit,
          int *__restrict __decpt, int *__restrict __sign)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__));
    extern char *qgcvt (long double __value, int __ndigit, char *__buf)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
         int *__restrict __sign, char *__restrict __buf,
         size_t __len) __attribute__ ((__nothrow__)) __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__)) __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__)) __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__)) __attribute__ ((__nonnull__ (3, 4, 5)));
    
    
    
    
    
    
    
    extern int mblen (__const char *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    extern int mbtowc (wchar_t *__restrict __pwc,
         __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    
    extern size_t mbstowcs (wchar_t *__restrict __pwcs,
       __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__));
    
    extern size_t wcstombs (char *__restrict __s,
       __const wchar_t *__restrict __pwcs, size_t __n)
         __attribute__ ((__nothrow__));
    
    
    
    
    
    
    
    
    extern int rpmatch (__const char *__response) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    # 896 "/usr/include/stdlib.h" 3 4
    extern int getsubopt (char **__restrict __optionp,
            char *__const *__restrict __tokens,
            char **__restrict __valuep)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2, 3))) __attribute__ ((__warn_unused_result__));
    # 948 "/usr/include/stdlib.h" 3 4
    extern int getloadavg (double __loadavg[], int __nelem)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    
    # 1 "/usr/include/bits/stdlib.h" 1 3 4
    # 24 "/usr/include/bits/stdlib.h" 3 4
    extern char *__realpath_chk (__const char *__restrict __name,
            char *__restrict __resolved,
            size_t __resolvedlen) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    extern char *__realpath_alias (__const char *__restrict __name, char *__restrict __resolved) __asm__ ("" "realpath") __attribute__ ((__nothrow__))
    
                                                     __attribute__ ((__warn_unused_result__));
    extern char *__realpath_chk_warn (__const char *__restrict __name, char *__restrict __resolved, size_t __resolvedlen) __asm__ ("" "__realpath_chk") __attribute__ ((__nothrow__))
    
    
                                                    __attribute__ ((__warn_unused_result__))
         __attribute__((__warning__ ("second argument of realpath must be either NULL or at " "least PATH_MAX bytes long buffer")))
                                          ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char *
    __attribute__ ((__nothrow__)) realpath (__const char *__restrict __name, char *__restrict __resolved)
    {
      if (__builtin_object_size (__resolved, 2 > 1) != (size_t) -1)
        {
    
    
    
    
          return __realpath_chk (__name, __resolved, __builtin_object_size (__resolved, 2 > 1));
        }
    
      return __realpath_alias (__name, __resolved);
    }
    
    
    extern int __ptsname_r_chk (int __fd, char *__buf, size_t __buflen,
           size_t __nreal) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
    extern int __ptsname_r_alias (int __fd, char *__buf, size_t __buflen) __asm__ ("" "ptsname_r") __attribute__ ((__nothrow__))
    
         __attribute__ ((__nonnull__ (2)));
    extern int __ptsname_r_chk_warn (int __fd, char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__ptsname_r_chk") __attribute__ ((__nothrow__))
    
    
         __attribute__ ((__nonnull__ (2))) __attribute__((__warning__ ("ptsname_r called with buflen bigger than " "size of buf")))
                       ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
    __attribute__ ((__nothrow__)) ptsname_r (int __fd, char *__buf, size_t __buflen)
    {
      if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
        {
          if (!__builtin_constant_p (__buflen))
     return __ptsname_r_chk (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1));
          if (__buflen > __builtin_object_size (__buf, 2 > 1))
     return __ptsname_r_chk_warn (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1));
        }
      return __ptsname_r_alias (__fd, __buf, __buflen);
    }
    
    
    extern int __wctomb_chk (char *__s, wchar_t __wchar, size_t __buflen)
      __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    extern int __wctomb_alias (char *__s, wchar_t __wchar) __asm__ ("" "wctomb") __attribute__ ((__nothrow__))
                  __attribute__ ((__warn_unused_result__));
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) int
    __attribute__ ((__nothrow__)) wctomb (char *__s, wchar_t __wchar)
    {
    
    
    
    
    
    
    
      if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 && 16 > __builtin_object_size (__s, 2 > 1))
        return __wctomb_chk (__s, __wchar, __builtin_object_size (__s, 2 > 1));
      return __wctomb_alias (__s, __wchar);
    }
    
    
    extern size_t __mbstowcs_chk (wchar_t *__restrict __dst,
             __const char *__restrict __src,
             size_t __len, size_t __dstlen) __attribute__ ((__nothrow__));
    extern size_t __mbstowcs_alias (wchar_t *__restrict __dst, __const char *__restrict __src, size_t __len) __asm__ ("" "mbstowcs") __attribute__ ((__nothrow__))
    
    
                                      ;
    extern size_t __mbstowcs_chk_warn (wchar_t *__restrict __dst, __const char *__restrict __src, size_t __len, size_t __dstlen) __asm__ ("" "__mbstowcs_chk") __attribute__ ((__nothrow__))
    
    
    
         __attribute__((__warning__ ("mbstowcs called with dst buffer smaller than len " "* sizeof (wchar_t)")))
                            ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) size_t
    __attribute__ ((__nothrow__)) mbstowcs (wchar_t *__restrict __dst, __const char *__restrict __src, size_t __len)
    
    {
      if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1)
        {
          if (!__builtin_constant_p (__len))
     return __mbstowcs_chk (__dst, __src, __len,
              __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t));
    
          if (__len > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t))
     return __mbstowcs_chk_warn (__dst, __src, __len,
             __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t));
        }
      return __mbstowcs_alias (__dst, __src, __len);
    }
    
    
    extern size_t __wcstombs_chk (char *__restrict __dst,
             __const wchar_t *__restrict __src,
             size_t __len, size_t __dstlen) __attribute__ ((__nothrow__));
    extern size_t __wcstombs_alias (char *__restrict __dst, __const wchar_t *__restrict __src, size_t __len) __asm__ ("" "wcstombs") __attribute__ ((__nothrow__))
    
    
                                      ;
    extern size_t __wcstombs_chk_warn (char *__restrict __dst, __const wchar_t *__restrict __src, size_t __len, size_t __dstlen) __asm__ ("" "__wcstombs_chk") __attribute__ ((__nothrow__))
    
    
    
         __attribute__((__warning__ ("wcstombs called with dst buffer smaller than len")));
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) size_t
    __attribute__ ((__nothrow__)) wcstombs (char *__restrict __dst, __const wchar_t *__restrict __src, size_t __len)
    
    {
      if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1)
        {
          if (!__builtin_constant_p (__len))
     return __wcstombs_chk (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1));
          if (__len > __builtin_object_size (__dst, 2 > 1))
     return __wcstombs_chk_warn (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1));
        }
      return __wcstombs_alias (__dst, __src, __len);
    }
    # 956 "/usr/include/stdlib.h" 2 3 4
    # 964 "/usr/include/stdlib.h" 3 4
    
    # 22 "main.c" 2
    # 1 "/usr/include/errno.h" 1 3 4
    # 32 "/usr/include/errno.h" 3 4
    
    
    
    
    # 1 "/usr/include/bits/errno.h" 1 3 4
    # 25 "/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
    # 5 "/usr/include/asm-generic/errno.h" 2 3 4
    # 1 "/usr/include/asm/errno.h" 2 3 4
    # 5 "/usr/include/linux/errno.h" 2 3 4
    # 26 "/usr/include/bits/errno.h" 2 3 4
    # 47 "/usr/include/bits/errno.h" 3 4
    extern int *__errno_location (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
    # 37 "/usr/include/errno.h" 2 3 4
    # 59 "/usr/include/errno.h" 3 4
    
    # 23 "main.c" 2
    # 1 "/usr/include/string.h" 1 3 4
    # 29 "/usr/include/string.h" 3 4
    
    
    
    
    
    # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4
    # 35 "/usr/include/string.h" 2 3 4
    
    
    
    
    
    
    
    
    
    extern void *memcpy (void *__restrict __dest,
           __const void *__restrict __src, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    extern void *memmove (void *__dest, __const void *__src, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    
    
    
    
    extern void *memccpy (void *__restrict __dest, __const void *__restrict __src,
            int __c, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    
    
    
    extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    extern int memcmp (__const void *__s1, __const void *__s2, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
    # 95 "/usr/include/string.h" 3 4
    extern void *memchr (__const void *__s, int __c, size_t __n)
          __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
    
    
    # 126 "/usr/include/string.h" 3 4
    
    
    extern char *strcpy (char *__restrict __dest, __const char *__restrict __src)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    extern char *strncpy (char *__restrict __dest,
            __const char *__restrict __src, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    extern char *strcat (char *__restrict __dest, __const char *__restrict __src)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    extern char *strncat (char *__restrict __dest, __const char *__restrict __src,
            size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    extern int strcmp (__const char *__s1, __const char *__s2)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
    
    extern int strncmp (__const char *__s1, __const char *__s2, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    extern int strcoll (__const char *__s1, __const char *__s2)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
    
    extern size_t strxfrm (char *__restrict __dest,
             __const char *__restrict __src, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
    
    
    
    
    
    
    # 1 "/usr/include/xlocale.h" 1 3 4
    # 28 "/usr/include/xlocale.h" 3 4
    typedef 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];
    } *__locale_t;
    
    
    typedef __locale_t locale_t;
    # 163 "/usr/include/string.h" 2 3 4
    
    
    extern int strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l)
         __attribute__ ((__nothrow__)) __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__)) __attribute__ ((__nonnull__ (2, 4)));
    
    
    
    
    
    extern char *strdup (__const char *__s)
         __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    
    
    extern char *strndup (__const char *__string, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
    # 210 "/usr/include/string.h" 3 4
    
    # 235 "/usr/include/string.h" 3 4
    extern char *strchr (__const char *__s, int __c)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
    # 262 "/usr/include/string.h" 3 4
    extern char *strrchr (__const char *__s, int __c)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
    
    
    # 281 "/usr/include/string.h" 3 4
    
    
    
    extern size_t strcspn (__const char *__s, __const char *__reject)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    extern size_t strspn (__const char *__s, __const char *__accept)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
    # 314 "/usr/include/string.h" 3 4
    extern char *strpbrk (__const char *__s, __const char *__accept)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
    # 342 "/usr/include/string.h" 3 4
    extern char *strstr (__const char *__haystack, __const char *__needle)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    
    
    extern char *strtok (char *__restrict __s, __const char *__restrict __delim)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
    
    
    
    
    extern char *__strtok_r (char *__restrict __s,
        __const char *__restrict __delim,
        char **__restrict __save_ptr)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
    
    extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim,
             char **__restrict __save_ptr)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
    # 397 "/usr/include/string.h" 3 4
    
    
    extern size_t strlen (__const char *__s)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    
    extern size_t strnlen (__const char *__string, size_t __maxlen)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    
    extern char *strerror (int __errnum) __attribute__ ((__nothrow__));
    
    # 427 "/usr/include/string.h" 3 4
    extern int strerror_r (int __errnum, char *__buf, size_t __buflen) __asm__ ("" "__xpg_strerror_r") __attribute__ ((__nothrow__))
    
                            __attribute__ ((__nonnull__ (2)));
    # 445 "/usr/include/string.h" 3 4
    extern char *strerror_l (int __errnum, __locale_t __l) __attribute__ ((__nothrow__));
    
    
    
    
    
    extern void __bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    extern void bcopy (__const void *__src, void *__dest, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    extern int bcmp (__const void *__s1, __const void *__s2, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
    # 489 "/usr/include/string.h" 3 4
    extern char *index (__const char *__s, int __c)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
    # 517 "/usr/include/string.h" 3 4
    extern char *rindex (__const char *__s, int __c)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    extern int ffs (int __i) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
    # 536 "/usr/include/string.h" 3 4
    extern int strcasecmp (__const char *__s1, __const char *__s2)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
    # 559 "/usr/include/string.h" 3 4
    extern char *strsep (char **__restrict __stringp,
           __const char *__restrict __delim)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    
    
    extern char *strsignal (int __sig) __attribute__ ((__nothrow__));
    
    
    extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    
    extern char *__stpncpy (char *__restrict __dest,
       __const char *__restrict __src, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    extern char *stpncpy (char *__restrict __dest,
            __const char *__restrict __src, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    # 634 "/usr/include/string.h" 3 4
    # 1 "/usr/include/bits/string.h" 1 3 4
    # 635 "/usr/include/string.h" 2 3 4
    
    
    # 1 "/usr/include/bits/string2.h" 1 3 4
    # 394 "/usr/include/bits/string2.h" 3 4
    extern void *__rawmemchr (const void *__s, int __c);
    # 969 "/usr/include/bits/string2.h" 3 4
    extern __inline size_t __strcspn_c1 (__const char *__s, int __reject);
    extern __inline size_t
    __strcspn_c1 (__const char *__s, int __reject)
    {
      register size_t __result = 0;
      while (__s[__result] != '\0' && __s[__result] != __reject)
        ++__result;
      return __result;
    }
    
    extern __inline size_t __strcspn_c2 (__const char *__s, int __reject1,
             int __reject2);
    extern __inline size_t
    __strcspn_c2 (__const char *__s, int __reject1, int __reject2)
    {
      register size_t __result = 0;
      while (__s[__result] != '\0' && __s[__result] != __reject1
      && __s[__result] != __reject2)
        ++__result;
      return __result;
    }
    
    extern __inline size_t __strcspn_c3 (__const char *__s, int __reject1,
             int __reject2, int __reject3);
    extern __inline size_t
    __strcspn_c3 (__const char *__s, int __reject1, int __reject2,
           int __reject3)
    {
      register size_t __result = 0;
      while (__s[__result] != '\0' && __s[__result] != __reject1
      && __s[__result] != __reject2 && __s[__result] != __reject3)
        ++__result;
      return __result;
    }
    # 1045 "/usr/include/bits/string2.h" 3 4
    extern __inline size_t __strspn_c1 (__const char *__s, int __accept);
    extern __inline size_t
    __strspn_c1 (__const char *__s, int __accept)
    {
      register size_t __result = 0;
    
      while (__s[__result] == __accept)
        ++__result;
      return __result;
    }
    
    extern __inline size_t __strspn_c2 (__const char *__s, int __accept1,
            int __accept2);
    extern __inline size_t
    __strspn_c2 (__const char *__s, int __accept1, int __accept2)
    {
      register size_t __result = 0;
    
      while (__s[__result] == __accept1 || __s[__result] == __accept2)
        ++__result;
      return __result;
    }
    
    extern __inline size_t __strspn_c3 (__const char *__s, int __accept1,
            int __accept2, int __accept3);
    extern __inline size_t
    __strspn_c3 (__const char *__s, int __accept1, int __accept2, int __accept3)
    {
      register size_t __result = 0;
    
      while (__s[__result] == __accept1 || __s[__result] == __accept2
      || __s[__result] == __accept3)
        ++__result;
      return __result;
    }
    # 1121 "/usr/include/bits/string2.h" 3 4
    extern __inline char *__strpbrk_c2 (__const char *__s, int __accept1,
             int __accept2);
    extern __inline char *
    __strpbrk_c2 (__const char *__s, int __accept1, int __accept2)
    {
    
      while (*__s != '\0' && *__s != __accept1 && *__s != __accept2)
        ++__s;
      return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s;
    }
    
    extern __inline char *__strpbrk_c3 (__const char *__s, int __accept1,
             int __accept2, int __accept3);
    extern __inline char *
    __strpbrk_c3 (__const char *__s, int __accept1, int __accept2,
           int __accept3)
    {
    
      while (*__s != '\0' && *__s != __accept1 && *__s != __accept2
      && *__s != __accept3)
        ++__s;
      return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s;
    }
    # 1172 "/usr/include/bits/string2.h" 3 4
    extern __inline char *__strtok_r_1c (char *__s, char __sep, char **__nextp);
    extern __inline char *
    __strtok_r_1c (char *__s, char __sep, char **__nextp)
    {
      char *__result;
      if (__s == ((void *)0))
        __s = *__nextp;
      while (*__s == __sep)
        ++__s;
      __result = ((void *)0);
      if (*__s != '\0')
        {
          __result = __s++;
          while (*__s != '\0')
     if (*__s++ == __sep)
       {
         __s[-1] = '\0';
         break;
       }
        }
      *__nextp = __s;
      return __result;
    }
    # 1204 "/usr/include/bits/string2.h" 3 4
    extern char *__strsep_g (char **__stringp, __const char *__delim);
    # 1222 "/usr/include/bits/string2.h" 3 4
    extern __inline char *__strsep_1c (char **__s, char __reject);
    extern __inline char *
    __strsep_1c (char **__s, char __reject)
    {
      register char *__retval = *__s;
      if (__retval != ((void *)0) && (*__s = (__extension__ (__builtin_constant_p (__reject) && !__builtin_constant_p (__retval) && (__reject) == '\0' ? (char *) __rawmemchr (__retval, __reject) : __builtin_strchr (__retval, __reject)))) != ((void *)0))
        *(*__s)++ = '\0';
      return __retval;
    }
    
    extern __inline char *__strsep_2c (char **__s, char __reject1, char __reject2);
    extern __inline char *
    __strsep_2c (char **__s, char __reject1, char __reject2)
    {
      register char *__retval = *__s;
      if (__retval != ((void *)0))
        {
          register char *__cp = __retval;
          while (1)
     {
       if (*__cp == '\0')
         {
           __cp = ((void *)0);
       break;
         }
       if (*__cp == __reject1 || *__cp == __reject2)
         {
           *__cp++ = '\0';
           break;
         }
       ++__cp;
     }
          *__s = __cp;
        }
      return __retval;
    }
    
    extern __inline char *__strsep_3c (char **__s, char __reject1, char __reject2,
           char __reject3);
    extern __inline char *
    __strsep_3c (char **__s, char __reject1, char __reject2, char __reject3)
    {
      register char *__retval = *__s;
      if (__retval != ((void *)0))
        {
          register char *__cp = __retval;
          while (1)
     {
       if (*__cp == '\0')
         {
           __cp = ((void *)0);
       break;
         }
       if (*__cp == __reject1 || *__cp == __reject2 || *__cp == __reject3)
         {
           *__cp++ = '\0';
           break;
         }
       ++__cp;
     }
          *__s = __cp;
        }
      return __retval;
    }
    # 1303 "/usr/include/bits/string2.h" 3 4
    extern char *__strdup (__const char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__));
    # 1322 "/usr/include/bits/string2.h" 3 4
    extern char *__strndup (__const char *__string, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__malloc__));
    # 638 "/usr/include/string.h" 2 3 4
    
    
    
    
    # 1 "/usr/include/bits/string3.h" 1 3 4
    # 23 "/usr/include/bits/string3.h" 3 4
    extern void __warn_memset_zero_len (void) __attribute__((__warning__ ("memset used with constant zero length parameter; this could be due to transposed parameters")))
                                                                                                       ;
    # 48 "/usr/include/bits/string3.h" 3 4
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) void *
    __attribute__ ((__nothrow__)) memcpy (void *__restrict __dest, __const void *__restrict __src, size_t __len)
    
    {
      return __builtin___memcpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 0));
    }
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) void *
    __attribute__ ((__nothrow__)) memmove (void *__dest, __const void *__src, size_t __len)
    {
      return __builtin___memmove_chk (__dest, __src, __len, __builtin_object_size (__dest, 0));
    }
    # 76 "/usr/include/bits/string3.h" 3 4
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) void *
    __attribute__ ((__nothrow__)) memset (void *__dest, int __ch, size_t __len)
    {
      if (__builtin_constant_p (__len) && __len == 0
          && (!__builtin_constant_p (__ch) || __ch != 0))
        {
          __warn_memset_zero_len ();
          return __dest;
        }
      return __builtin___memset_chk (__dest, __ch, __len, __builtin_object_size (__dest, 0));
    }
    
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) void
    __attribute__ ((__nothrow__)) bcopy (__const void *__src, void *__dest, size_t __len)
    {
      (void) __builtin___memmove_chk (__dest, __src, __len, __builtin_object_size (__dest, 0));
    }
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) void
    __attribute__ ((__nothrow__)) bzero (void *__dest, size_t __len)
    {
      (void) __builtin___memset_chk (__dest, '\0', __len, __builtin_object_size (__dest, 0));
    }
    
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) char *
    __attribute__ ((__nothrow__)) strcpy (char *__restrict __dest, __const char *__restrict __src)
    {
      return __builtin___strcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1));
    }
    # 117 "/usr/include/bits/string3.h" 3 4
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) char *
    __attribute__ ((__nothrow__)) strncpy (char *__restrict __dest, __const char *__restrict __src, size_t __len)
    
    {
      return __builtin___strncpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 2 > 1));
    }
    
    
    extern char *__stpncpy_chk (char *__dest, __const char *__src, size_t __n,
           size_t __destlen) __attribute__ ((__nothrow__));
    extern char *__stpncpy_alias (char *__dest, __const char *__src, size_t __n) __asm__ ("" "stpncpy") __attribute__ ((__nothrow__))
    
                                     ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) char *
    __attribute__ ((__nothrow__)) stpncpy (char *__dest, __const char *__src, size_t __n)
    {
      if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1
          && (!__builtin_constant_p (__n) || __n <= __builtin_object_size (__dest, 2 > 1)))
        return __stpncpy_chk (__dest, __src, __n, __builtin_object_size (__dest, 2 > 1));
      return __stpncpy_alias (__dest, __src, __n);
    }
    
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) char *
    __attribute__ ((__nothrow__)) strcat (char *__restrict __dest, __const char *__restrict __src)
    {
      return __builtin___strcat_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1));
    }
    
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) char *
    __attribute__ ((__nothrow__)) strncat (char *__restrict __dest, __const char *__restrict __src, size_t __len)
    
    {
      return __builtin___strncat_chk (__dest, __src, __len, __builtin_object_size (__dest, 2 > 1));
    }
    # 643 "/usr/include/string.h" 2 3 4
    
    
    
    
    # 24 "main.c" 2
    
    # 1 "/usr/include/netinet/in.h" 1 3 4
    # 24 "/usr/include/netinet/in.h" 3 4
    # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdint.h" 1 3 4
    
    
    # 1 "/usr/include/stdint.h" 1 3 4
    # 27 "/usr/include/stdint.h" 3 4
    # 1 "/usr/include/bits/wchar.h" 1 3 4
    # 28 "/usr/include/stdint.h" 2 3 4
    # 1 "/usr/include/bits/wordsize.h" 1 3 4
    # 29 "/usr/include/stdint.h" 2 3 4
    # 49 "/usr/include/stdint.h" 3 4
    typedef unsigned char uint8_t;
    typedef unsigned short int uint16_t;
    
    typedef unsigned int uint32_t;
    
    
    
    
    
    __extension__
    typedef unsigned long long int uint64_t;
    
    
    
    
    
    
    typedef signed char int_least8_t;
    typedef short int int_least16_t;
    typedef int int_least32_t;
    
    
    
    __extension__
    typedef long long int int_least64_t;
    
    
    
    typedef unsigned char uint_least8_t;
    typedef unsigned short int uint_least16_t;
    typedef unsigned int uint_least32_t;
    
    
    
    __extension__
    typedef unsigned long long int uint_least64_t;
    
    
    
    
    
    
    typedef signed char int_fast8_t;
    
    
    
    
    
    typedef int int_fast16_t;
    typedef int int_fast32_t;
    __extension__
    typedef long long int int_fast64_t;
    
    
    
    typedef unsigned char uint_fast8_t;
    
    
    
    
    
    typedef unsigned int uint_fast16_t;
    typedef unsigned int uint_fast32_t;
    __extension__
    typedef unsigned long long int uint_fast64_t;
    # 126 "/usr/include/stdint.h" 3 4
    typedef int intptr_t;
    
    
    typedef unsigned int uintptr_t;
    # 138 "/usr/include/stdint.h" 3 4
    __extension__
    typedef long long int intmax_t;
    __extension__
    typedef unsigned long long int uintmax_t;
    # 4 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdint.h" 2 3 4
    # 25 "/usr/include/netinet/in.h" 2 3 4
    # 1 "/usr/include/sys/socket.h" 1 3 4
    # 26 "/usr/include/sys/socket.h" 3 4
    
    
    # 1 "/usr/include/sys/uio.h" 1 3 4
    # 26 "/usr/include/sys/uio.h" 3 4
    
    
    
    # 1 "/usr/include/bits/uio.h" 1 3 4
    # 44 "/usr/include/bits/uio.h" 3 4
    struct iovec
      {
        void *iov_base;
        size_t iov_len;
      };
    # 30 "/usr/include/sys/uio.h" 2 3 4
    # 40 "/usr/include/sys/uio.h" 3 4
    extern ssize_t readv (int __fd, __const struct iovec *__iovec, int __count)
      __attribute__ ((__warn_unused_result__));
    # 51 "/usr/include/sys/uio.h" 3 4
    extern ssize_t writev (int __fd, __const struct iovec *__iovec, int __count)
      __attribute__ ((__warn_unused_result__));
    # 66 "/usr/include/sys/uio.h" 3 4
    extern ssize_t preadv (int __fd, __const struct iovec *__iovec, int __count,
             __off_t __offset) __attribute__ ((__warn_unused_result__));
    # 78 "/usr/include/sys/uio.h" 3 4
    extern ssize_t pwritev (int __fd, __const struct iovec *__iovec, int __count,
       __off_t __offset) __attribute__ ((__warn_unused_result__));
    # 121 "/usr/include/sys/uio.h" 3 4
    
    # 29 "/usr/include/sys/socket.h" 2 3 4
    
    # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4
    # 31 "/usr/include/sys/socket.h" 2 3 4
    # 40 "/usr/include/sys/socket.h" 3 4
    # 1 "/usr/include/bits/socket.h" 1 3 4
    # 29 "/usr/include/bits/socket.h" 3 4
    # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4
    # 30 "/usr/include/bits/socket.h" 2 3 4
    
    
    
    
    
    typedef __socklen_t socklen_t;
    
    
    
    
    enum __socket_type
    {
      SOCK_STREAM = 1,
    
    
      SOCK_DGRAM = 2,
    
    
      SOCK_RAW = 3,
    
      SOCK_RDM = 4,
    
      SOCK_SEQPACKET = 5,
    
    
      SOCK_DCCP = 6,
    
      SOCK_PACKET = 10,
    
    
    
    
    
    
    
      SOCK_CLOEXEC = 02000000,
    
    
      SOCK_NONBLOCK = 04000
    
    
    };
    # 175 "/usr/include/bits/socket.h" 3 4
    # 1 "/usr/include/bits/sockaddr.h" 1 3 4
    # 29 "/usr/include/bits/sockaddr.h" 3 4
    typedef unsigned short int sa_family_t;
    # 176 "/usr/include/bits/socket.h" 2 3 4
    
    
    struct sockaddr
      {
        sa_family_t sa_family;
        char sa_data[14];
      };
    # 191 "/usr/include/bits/socket.h" 3 4
    struct sockaddr_storage
      {
        sa_family_t ss_family;
        unsigned long int __ss_align;
        char __ss_padding[(128 - (2 * sizeof (unsigned long int)))];
      };
    
    
    
    enum
      {
        MSG_OOB = 0x01,
    
        MSG_PEEK = 0x02,
    
        MSG_DONTROUTE = 0x04,
    
    
    
    
    
    
        MSG_CTRUNC = 0x08,
    
        MSG_PROXY = 0x10,
    
        MSG_TRUNC = 0x20,
    
        MSG_DONTWAIT = 0x40,
    
        MSG_EOR = 0x80,
    
        MSG_WAITALL = 0x100,
    
        MSG_FIN = 0x200,
    
        MSG_SYN = 0x400,
    
        MSG_CONFIRM = 0x800,
    
        MSG_RST = 0x1000,
    
        MSG_ERRQUEUE = 0x2000,
    
        MSG_NOSIGNAL = 0x4000,
    
        MSG_MORE = 0x8000,
    
        MSG_WAITFORONE = 0x10000,
    
    
        MSG_CMSG_CLOEXEC = 0x40000000
    
    
    
      };
    
    
    
    
    struct msghdr
      {
        void *msg_name;
        socklen_t msg_namelen;
    
        struct iovec *msg_iov;
        size_t msg_iovlen;
    
        void *msg_control;
        size_t msg_controllen;
    
    
    
    
        int msg_flags;
      };
    # 278 "/usr/include/bits/socket.h" 3 4
    struct cmsghdr
      {
        size_t cmsg_len;
    
    
    
    
        int cmsg_level;
        int cmsg_type;
    
        __extension__ unsigned char __cmsg_data [];
    
      };
    # 308 "/usr/include/bits/socket.h" 3 4
    extern struct cmsghdr *__cmsg_nxthdr (struct msghdr *__mhdr,
              struct cmsghdr *__cmsg) __attribute__ ((__nothrow__));
    
    
    
    
    extern __inline struct cmsghdr *
    __attribute__ ((__nothrow__)) __cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg)
    {
      if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr))
    
        return 0;
    
      __cmsg = (struct cmsghdr *) ((unsigned char *) __cmsg
              + (((__cmsg->cmsg_len) + sizeof (size_t) - 1) & (size_t) ~(sizeof (size_t) - 1)));
      if ((unsigned char *) (__cmsg + 1) > ((unsigned char *) __mhdr->msg_control
         + __mhdr->msg_controllen)
          || ((unsigned char *) __cmsg + (((__cmsg->cmsg_len) + sizeof (size_t) - 1) & (size_t) ~(sizeof (size_t) - 1))
       > ((unsigned char *) __mhdr->msg_control + __mhdr->msg_controllen)))
    
        return 0;
      return __cmsg;
    }
    
    
    
    
    enum
      {
        SCM_RIGHTS = 0x01
    
    
    
    
    
      };
    # 381 "/usr/include/bits/socket.h" 3 4
    # 1 "/usr/include/asm/socket.h" 1 3 4
    # 1 "/usr/include/asm-generic/socket.h" 1 3 4
    
    
    
    # 1 "/usr/include/asm/sockios.h" 1 3 4
    # 1 "/usr/include/asm-generic/sockios.h" 1 3 4
    # 1 "/usr/include/asm/sockios.h" 2 3 4
    # 5 "/usr/include/asm-generic/socket.h" 2 3 4
    # 1 "/usr/include/asm/socket.h" 2 3 4
    # 382 "/usr/include/bits/socket.h" 2 3 4
    # 415 "/usr/include/bits/socket.h" 3 4
    struct linger
      {
        int l_onoff;
        int l_linger;
      };
    
    
    
    
    
    
    
    
    
    extern int recvmmsg (int __fd, struct mmsghdr *__vmessages,
           unsigned int __vlen, int __flags,
           __const struct timespec *__tmo);
    
    
    # 41 "/usr/include/sys/socket.h" 2 3 4
    
    
    
    
    struct osockaddr
      {
        unsigned short int sa_family;
        unsigned char sa_data[14];
      };
    
    
    
    
    enum
    {
      SHUT_RD = 0,
    
      SHUT_WR,
    
      SHUT_RDWR
    
    };
    # 105 "/usr/include/sys/socket.h" 3 4
    extern int socket (int __domain, int __type, int __protocol) __attribute__ ((__nothrow__));
    
    
    
    
    
    extern int socketpair (int __domain, int __type, int __protocol,
             int __fds[2]) __attribute__ ((__nothrow__));
    
    
    extern int bind (int __fd, __const struct sockaddr * __addr, socklen_t __len)
         __attribute__ ((__nothrow__));
    
    
    extern int getsockname (int __fd, struct sockaddr *__restrict __addr,
       socklen_t *__restrict __len) __attribute__ ((__nothrow__));
    # 129 "/usr/include/sys/socket.h" 3 4
    extern int connect (int __fd, __const struct sockaddr * __addr, socklen_t __len);
    
    
    
    extern int getpeername (int __fd, struct sockaddr *__restrict __addr,
       socklen_t *__restrict __len) __attribute__ ((__nothrow__));
    
    
    
    
    
    
    extern ssize_t send (int __fd, __const void *__buf, size_t __n, int __flags);
    
    
    
    
    
    
    extern ssize_t recv (int __fd, void *__buf, size_t __n, int __flags);
    
    
    
    
    
    
    extern ssize_t sendto (int __fd, __const void *__buf, size_t __n,
             int __flags, __const struct sockaddr * __addr,
             socklen_t __addr_len);
    # 166 "/usr/include/sys/socket.h" 3 4
    extern ssize_t recvfrom (int __fd, void *__restrict __buf, size_t __n,
        int __flags, struct sockaddr *__restrict __addr,
        socklen_t *__restrict __addr_len);
    
    
    
    
    
    
    
    extern ssize_t sendmsg (int __fd, __const struct msghdr *__message,
       int __flags);
    
    
    
    
    
    
    extern ssize_t recvmsg (int __fd, struct msghdr *__message, int __flags);
    
    
    
    
    
    extern int getsockopt (int __fd, int __level, int __optname,
             void *__restrict __optval,
             socklen_t *__restrict __optlen) __attribute__ ((__nothrow__));
    
    
    
    
    extern int setsockopt (int __fd, int __level, int __optname,
             __const void *__optval, socklen_t __optlen) __attribute__ ((__nothrow__));
    
    
    
    
    
    extern int listen (int __fd, int __n) __attribute__ ((__nothrow__));
    # 214 "/usr/include/sys/socket.h" 3 4
    extern int accept (int __fd, struct sockaddr *__restrict __addr,
         socklen_t *__restrict __addr_len);
    # 232 "/usr/include/sys/socket.h" 3 4
    extern int shutdown (int __fd, int __how) __attribute__ ((__nothrow__));
    
    
    
    
    extern int sockatmark (int __fd) __attribute__ ((__nothrow__));
    
    
    
    
    
    
    
    extern int isfdtype (int __fd, int __fdtype) __attribute__ ((__nothrow__));
    
    
    
    
    
    # 1 "/usr/include/bits/socket2.h" 1 3 4
    # 24 "/usr/include/bits/socket2.h" 3 4
    extern ssize_t __recv_chk (int __fd, void *__buf, size_t __n, size_t __buflen,
          int __flags);
    extern ssize_t __recv_alias (int __fd, void *__buf, size_t __n, int __flags) __asm__ ("" "recv")
                              ;
    extern ssize_t __recv_chk_warn (int __fd, void *__buf, size_t __n, size_t __buflen, int __flags) __asm__ ("" "__recv_chk")
    
    
         __attribute__((__warning__ ("recv called with bigger length than size of destination " "buffer")))
                ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) ssize_t
    recv (int __fd, void *__buf, size_t __n, int __flags)
    {
      if (__builtin_object_size (__buf, 0) != (size_t) -1)
        {
          if (!__builtin_constant_p (__n))
     return __recv_chk (__fd, __buf, __n, __builtin_object_size (__buf, 0), __flags);
    
          if (__n > __builtin_object_size (__buf, 0))
     return __recv_chk_warn (__fd, __buf, __n, __builtin_object_size (__buf, 0), __flags);
        }
      return __recv_alias (__fd, __buf, __n, __flags);
    }
    
    extern ssize_t __recvfrom_chk (int __fd, void *__restrict __buf, size_t __n,
              size_t __buflen, int __flags,
              struct sockaddr *__restrict __addr,
              socklen_t *__restrict __addr_len);
    extern ssize_t __recvfrom_alias (int __fd, void *__restrict __buf, size_t __n, int __flags, struct sockaddr *__restrict __addr, socklen_t *__restrict __addr_len) __asm__ ("" "recvfrom")
    
    
                                                       ;
    extern ssize_t __recvfrom_chk_warn (int __fd, void *__restrict __buf, size_t __n, size_t __buflen, int __flags, struct sockaddr *__restrict __addr, socklen_t *__restrict __addr_len) __asm__ ("" "__recvfrom_chk")
    
    
    
    
         __attribute__((__warning__ ("recvfrom called with bigger length than size of " "destination buffer")))
                            ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) ssize_t
    recvfrom (int __fd, void *__restrict __buf, size_t __n, int __flags,
       struct sockaddr *__restrict __addr, socklen_t *__restrict __addr_len)
    {
      if (__builtin_object_size (__buf, 0) != (size_t) -1)
        {
          if (!__builtin_constant_p (__n))
     return __recvfrom_chk (__fd, __buf, __n, __builtin_object_size (__buf, 0), __flags,
              __addr, __addr_len);
          if (__n > __builtin_object_size (__buf, 0))
     return __recvfrom_chk_warn (__fd, __buf, __n, __builtin_object_size (__buf, 0), __flags,
            __addr, __addr_len);
        }
      return __recvfrom_alias (__fd, __buf, __n, __flags, __addr, __addr_len);
    }
    # 252 "/usr/include/sys/socket.h" 2 3 4
    
    
    
    # 26 "/usr/include/netinet/in.h" 2 3 4
    
    
    
    
    
    
    enum
      {
        IPPROTO_IP = 0,
    
        IPPROTO_HOPOPTS = 0,
    
        IPPROTO_ICMP = 1,
    
        IPPROTO_IGMP = 2,
    
        IPPROTO_IPIP = 4,
    
        IPPROTO_TCP = 6,
    
        IPPROTO_EGP = 8,
    
        IPPROTO_PUP = 12,
    
        IPPROTO_UDP = 17,
    
        IPPROTO_IDP = 22,
    
        IPPROTO_TP = 29,
    
        IPPROTO_DCCP = 33,
    
        IPPROTO_IPV6 = 41,
    
        IPPROTO_ROUTING = 43,
    
        IPPROTO_FRAGMENT = 44,
    
        IPPROTO_RSVP = 46,
    
        IPPROTO_GRE = 47,
    
        IPPROTO_ESP = 50,
    
        IPPROTO_AH = 51,
    
        IPPROTO_ICMPV6 = 58,
    
        IPPROTO_NONE = 59,
    
        IPPROTO_DSTOPTS = 60,
    
        IPPROTO_MTP = 92,
    
        IPPROTO_ENCAP = 98,
    
        IPPROTO_PIM = 103,
    
        IPPROTO_COMP = 108,
    
        IPPROTO_SCTP = 132,
    
        IPPROTO_UDPLITE = 136,
    
        IPPROTO_RAW = 255,
    
        IPPROTO_MAX
      };
    
    
    
    typedef uint16_t in_port_t;
    
    
    enum
      {
        IPPORT_ECHO = 7,
        IPPORT_DISCARD = 9,
        IPPORT_SYSTAT = 11,
        IPPORT_DAYTIME = 13,
        IPPORT_NETSTAT = 15,
        IPPORT_FTP = 21,
        IPPORT_TELNET = 23,
        IPPORT_SMTP = 25,
        IPPORT_TIMESERVER = 37,
        IPPORT_NAMESERVER = 42,
        IPPORT_WHOIS = 43,
        IPPORT_MTP = 57,
    
        IPPORT_TFTP = 69,
        IPPORT_RJE = 77,
        IPPORT_FINGER = 79,
        IPPORT_TTYLINK = 87,
        IPPORT_SUPDUP = 95,
    
    
        IPPORT_EXECSERVER = 512,
        IPPORT_LOGINSERVER = 513,
        IPPORT_CMDSERVER = 514,
        IPPORT_EFSSERVER = 520,
    
    
        IPPORT_BIFFUDP = 512,
        IPPORT_WHOSERVER = 513,
        IPPORT_ROUTESERVER = 520,
    
    
        IPPORT_RESERVED = 1024,
    
    
        IPPORT_USERRESERVED = 5000
      };
    
    
    
    typedef uint32_t in_addr_t;
    struct in_addr
      {
        in_addr_t s_addr;
      };
    # 198 "/usr/include/netinet/in.h" 3 4
    struct in6_addr
      {
        union
          {
     uint8_t __u6_addr8[16];
    
     uint16_t __u6_addr16[8];
     uint32_t __u6_addr32[4];
    
          } __in6_u;
    
    
    
    
    
      };
    
    extern const struct in6_addr in6addr_any;
    extern const struct in6_addr in6addr_loopback;
    # 225 "/usr/include/netinet/in.h" 3 4
    struct sockaddr_in
      {
        sa_family_t sin_family;
        in_port_t sin_port;
        struct in_addr sin_addr;
    
    
        unsigned char sin_zero[sizeof (struct sockaddr) -
          (sizeof (unsigned short int)) -
          sizeof (in_port_t) -
          sizeof (struct in_addr)];
      };
    
    
    struct sockaddr_in6
      {
        sa_family_t sin6_family;
        in_port_t sin6_port;
        uint32_t sin6_flowinfo;
        struct in6_addr sin6_addr;
        uint32_t sin6_scope_id;
      };
    
    
    
    
    struct ip_mreq
      {
    
        struct in_addr imr_multiaddr;
    
    
        struct in_addr imr_interface;
      };
    
    struct ip_mreq_source
      {
    
        struct in_addr imr_multiaddr;
    
    
        struct in_addr imr_interface;
    
    
        struct in_addr imr_sourceaddr;
      };
    
    
    
    
    struct ipv6_mreq
      {
    
        struct in6_addr ipv6mr_multiaddr;
    
    
        unsigned int ipv6mr_interface;
      };
    
    
    
    
    struct group_req
      {
    
        uint32_t gr_interface;
    
    
        struct sockaddr_storage gr_group;
      };
    
    struct group_source_req
      {
    
        uint32_t gsr_interface;
    
    
        struct sockaddr_storage gsr_group;
    
    
        struct sockaddr_storage gsr_source;
      };
    
    
    
    struct ip_msfilter
      {
    
        struct in_addr imsf_multiaddr;
    
    
        struct in_addr imsf_interface;
    
    
        uint32_t imsf_fmode;
    
    
        uint32_t imsf_numsrc;
    
        struct in_addr imsf_slist[1];
      };
    
    
    
    
    
    struct group_filter
      {
    
        uint32_t gf_interface;
    
    
        struct sockaddr_storage gf_group;
    
    
        uint32_t gf_fmode;
    
    
        uint32_t gf_numsrc;
    
        struct sockaddr_storage gf_slist[1];
    };
    # 356 "/usr/include/netinet/in.h" 3 4
    # 1 "/usr/include/bits/in.h" 1 3 4
    # 98 "/usr/include/bits/in.h" 3 4
    struct ip_opts
      {
        struct in_addr ip_dst;
        char ip_opts[40];
      };
    
    
    struct ip_mreqn
      {
        struct in_addr imr_multiaddr;
        struct in_addr imr_address;
        int imr_ifindex;
      };
    
    
    struct in_pktinfo
      {
        int ipi_ifindex;
        struct in_addr ipi_spec_dst;
        struct in_addr ipi_addr;
      };
    # 357 "/usr/include/netinet/in.h" 2 3 4
    # 365 "/usr/include/netinet/in.h" 3 4
    extern uint32_t ntohl (uint32_t __netlong) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
    extern uint16_t ntohs (uint16_t __netshort)
         __attribute__ ((__nothrow__)) __attribute__ ((__const__));
    extern uint32_t htonl (uint32_t __hostlong)
         __attribute__ ((__nothrow__)) __attribute__ ((__const__));
    extern uint16_t htons (uint16_t __hostshort)
         __attribute__ ((__nothrow__)) __attribute__ ((__const__));
    
    
    
    
    # 1 "/usr/include/bits/byteswap.h" 1 3 4
    # 377 "/usr/include/netinet/in.h" 2 3 4
    # 440 "/usr/include/netinet/in.h" 3 4
    extern int bindresvport (int __sockfd, struct sockaddr_in *__sock_in) __attribute__ ((__nothrow__));
    
    
    extern int bindresvport6 (int __sockfd, struct sockaddr_in6 *__sock_in)
         __attribute__ ((__nothrow__));
    # 565 "/usr/include/netinet/in.h" 3 4
    
    # 26 "main.c" 2
    
    # 1 "/usr/include/sys/wait.h" 1 3 4
    # 29 "/usr/include/sys/wait.h" 3 4
    
    
    # 1 "/usr/include/signal.h" 1 3 4
    # 31 "/usr/include/signal.h" 3 4
    
    
    # 1 "/usr/include/bits/sigset.h" 1 3 4
    # 104 "/usr/include/bits/sigset.h" 3 4
    extern int __sigismember (__const __sigset_t *, int);
    extern int __sigaddset (__sigset_t *, int);
    extern int __sigdelset (__sigset_t *, int);
    # 118 "/usr/include/bits/sigset.h" 3 4
    extern __inline int __sigismember (__const __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return (__set->__val[__word] & __mask) ? 1 : 0; }
    extern __inline int __sigaddset ( __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return ((__set->__val[__word] |= __mask), 0); }
    extern __inline int __sigdelset ( __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return ((__set->__val[__word] &= ~__mask), 0); }
    # 34 "/usr/include/signal.h" 2 3 4
    
    
    
    
    
    
    
    typedef __sig_atomic_t sig_atomic_t;
    
    # 58 "/usr/include/signal.h" 3 4
    # 1 "/usr/include/bits/signum.h" 1 3 4
    # 59 "/usr/include/signal.h" 2 3 4
    # 76 "/usr/include/signal.h" 3 4
    # 1 "/usr/include/time.h" 1 3 4
    # 77 "/usr/include/signal.h" 2 3 4
    
    
    # 1 "/usr/include/bits/siginfo.h" 1 3 4
    # 25 "/usr/include/bits/siginfo.h" 3 4
    # 1 "/usr/include/bits/wordsize.h" 1 3 4
    # 26 "/usr/include/bits/siginfo.h" 2 3 4
    
    
    
    
    
    
    
    typedef union sigval
      {
        int sival_int;
        void *sival_ptr;
      } sigval_t;
    # 51 "/usr/include/bits/siginfo.h" 3 4
    typedef struct siginfo
      {
        int si_signo;
        int si_errno;
    
        int si_code;
    
        union
          {
     int _pad[((128 / sizeof (int)) - 3)];
    
    
     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;
       } _sigfault;
    
    
     struct
       {
         long int si_band;
         int si_fd;
       } _sigpoll;
          } _sifields;
      } siginfo_t;
    # 129 "/usr/include/bits/siginfo.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
    
    };
    
    
    
    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
    
    };
    
    
    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
    
    };
    # 273 "/usr/include/bits/siginfo.h" 3 4
    typedef struct sigevent
      {
        sigval_t sigev_value;
        int sigev_signo;
        int sigev_notify;
    
        union
          {
     int _pad[((64 / sizeof (int)) - 3)];
    
    
    
     __pid_t _tid;
    
     struct
       {
         void (*_function) (sigval_t);
         void *_attribute;
       } _sigev_thread;
          } _sigev_un;
      } sigevent_t;
    
    
    
    
    
    
    enum
    {
      SIGEV_SIGNAL = 0,
    
      SIGEV_NONE,
    
      SIGEV_THREAD,
    
    
      SIGEV_THREAD_ID = 4
    
    };
    # 80 "/usr/include/signal.h" 2 3 4
    
    
    
    
    typedef void (*__sighandler_t) (int);
    
    
    
    
    extern __sighandler_t __sysv_signal (int __sig, __sighandler_t __handler)
         __attribute__ ((__nothrow__));
    # 99 "/usr/include/signal.h" 3 4
    
    
    extern __sighandler_t signal (int __sig, __sighandler_t __handler)
         __attribute__ ((__nothrow__));
    # 113 "/usr/include/signal.h" 3 4
    
    # 126 "/usr/include/signal.h" 3 4
    extern int kill (__pid_t __pid, int __sig) __attribute__ ((__nothrow__));
    
    
    
    
    
    
    extern int killpg (__pid_t __pgrp, int __sig) __attribute__ ((__nothrow__));
    
    
    
    
    extern int raise (int __sig) __attribute__ ((__nothrow__));
    
    
    
    
    extern __sighandler_t ssignal (int __sig, __sighandler_t __handler)
         __attribute__ ((__nothrow__));
    extern int gsignal (int __sig) __attribute__ ((__nothrow__));
    
    
    
    
    extern void psignal (int __sig, __const char *__s);
    
    
    
    
    extern void psiginfo (__const siginfo_t *__pinfo, __const char *__s);
    # 168 "/usr/include/signal.h" 3 4
    extern int __sigpause (int __sig_or_mask, int __is_sig);
    # 196 "/usr/include/signal.h" 3 4
    extern int sigblock (int __mask) __attribute__ ((__nothrow__)) __attribute__ ((__deprecated__));
    
    
    extern int sigsetmask (int __mask) __attribute__ ((__nothrow__)) __attribute__ ((__deprecated__));
    
    
    extern int siggetmask (void) __attribute__ ((__nothrow__)) __attribute__ ((__deprecated__));
    # 216 "/usr/include/signal.h" 3 4
    typedef __sighandler_t sig_t;
    
    
    
    
    
    extern int sigemptyset (sigset_t *__set) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    extern int sigfillset (sigset_t *__set) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    extern int sigaddset (sigset_t *__set, int __signo) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    extern int sigdelset (sigset_t *__set, int __signo) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    extern int sigismember (__const sigset_t *__set, int __signo)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    # 252 "/usr/include/signal.h" 3 4
    # 1 "/usr/include/bits/sigaction.h" 1 3 4
    # 25 "/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);
      };
    # 253 "/usr/include/signal.h" 2 3 4
    
    
    extern int sigprocmask (int __how, __const sigset_t *__restrict __set,
       sigset_t *__restrict __oset) __attribute__ ((__nothrow__));
    
    
    
    
    
    
    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__));
    
    
    extern int sigpending (sigset_t *__set) __attribute__ ((__nothrow__)) __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__));
    # 310 "/usr/include/signal.h" 3 4
    extern __const char *__const _sys_siglist[65];
    extern __const char *__const sys_siglist[65];
    
    
    struct sigvec
      {
        __sighandler_t sv_handler;
        int sv_mask;
    
        int sv_flags;
    
      };
    # 334 "/usr/include/signal.h" 3 4
    extern int sigvec (int __sig, __const struct sigvec *__vec,
         struct sigvec *__ovec) __attribute__ ((__nothrow__));
    
    
    
    # 1 "/usr/include/bits/sigcontext.h" 1 3 4
    # 26 "/usr/include/bits/sigcontext.h" 3 4
    # 1 "/usr/include/bits/wordsize.h" 1 3 4
    # 27 "/usr/include/bits/sigcontext.h" 2 3 4
    
    struct _fpreg
    {
      unsigned short significand[4];
      unsigned short exponent;
    };
    
    struct _fpxreg
    {
      unsigned short significand[4];
      unsigned short exponent;
      unsigned short padding[3];
    };
    
    struct _xmmreg
    {
      __uint32_t element[4];
    };
    
    
    
    
    
    struct _fpstate
    {
    
      __uint32_t cw;
      __uint32_t sw;
      __uint32_t tag;
      __uint32_t ipoff;
      __uint32_t cssel;
      __uint32_t dataoff;
      __uint32_t datasel;
      struct _fpreg _st[8];
      unsigned short status;
      unsigned short magic;
    
    
      __uint32_t _fxsr_env[6];
      __uint32_t mxcsr;
      __uint32_t reserved;
      struct _fpxreg _fxsr_st[8];
      struct _xmmreg _xmm[8];
      __uint32_t padding[56];
    };
    # 81 "/usr/include/bits/sigcontext.h" 3 4
    struct sigcontext
    {
      unsigned short gs, __gsh;
      unsigned short fs, __fsh;
      unsigned short es, __esh;
      unsigned short ds, __dsh;
      unsigned long edi;
      unsigned long esi;
      unsigned long ebp;
      unsigned long esp;
      unsigned long ebx;
      unsigned long edx;
      unsigned long ecx;
      unsigned long eax;
      unsigned long trapno;
      unsigned long err;
      unsigned long eip;
      unsigned short cs, __csh;
      unsigned long eflags;
      unsigned long esp_at_signal;
      unsigned short ss, __ssh;
      struct _fpstate * fpstate;
      unsigned long oldmask;
      unsigned long cr2;
    };
    # 340 "/usr/include/signal.h" 2 3 4
    
    
    extern int sigreturn (struct sigcontext *__scp) __attribute__ ((__nothrow__));
    
    
    
    
    
    
    # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4
    # 350 "/usr/include/signal.h" 2 3 4
    
    
    
    
    extern int siginterrupt (int __sig, int __interrupt) __attribute__ ((__nothrow__));
    
    # 1 "/usr/include/bits/sigstack.h" 1 3 4
    # 26 "/usr/include/bits/sigstack.h" 3 4
    struct sigstack
      {
        void *ss_sp;
        int ss_onstack;
      };
    
    
    
    enum
    {
      SS_ONSTACK = 1,
    
      SS_DISABLE
    
    };
    # 50 "/usr/include/bits/sigstack.h" 3 4
    typedef struct sigaltstack
      {
        void *ss_sp;
        int ss_flags;
        size_t ss_size;
      } stack_t;
    # 357 "/usr/include/signal.h" 2 3 4
    
    
    # 1 "/usr/include/sys/ucontext.h" 1 3 4
    # 23 "/usr/include/sys/ucontext.h" 3 4
    # 1 "/usr/include/signal.h" 1 3 4
    # 24 "/usr/include/sys/ucontext.h" 2 3 4
    # 1 "/usr/include/bits/wordsize.h" 1 3 4
    # 25 "/usr/include/sys/ucontext.h" 2 3 4
    # 148 "/usr/include/sys/ucontext.h" 3 4
    typedef int greg_t;
    
    
    
    
    
    typedef greg_t gregset_t[19];
    # 202 "/usr/include/sys/ucontext.h" 3 4
    struct _libc_fpreg
    {
      unsigned short int significand[4];
      unsigned short int exponent;
    };
    
    struct _libc_fpstate
    {
      unsigned long int cw;
      unsigned long int sw;
      unsigned long int tag;
      unsigned long int ipoff;
      unsigned long int cssel;
      unsigned long int dataoff;
      unsigned long int datasel;
      struct _libc_fpreg _st[8];
      unsigned long int status;
    };
    
    
    typedef struct _libc_fpstate *fpregset_t;
    
    
    typedef struct
      {
        gregset_t gregs;
    
    
        fpregset_t fpregs;
        unsigned long int oldmask;
        unsigned long int cr2;
      } mcontext_t;
    
    
    typedef struct ucontext
      {
        unsigned long int uc_flags;
        struct ucontext *uc_link;
        stack_t uc_stack;
        mcontext_t uc_mcontext;
        __sigset_t uc_sigmask;
        struct _libc_fpstate __fpregs_mem;
      } ucontext_t;
    # 360 "/usr/include/signal.h" 2 3 4
    
    
    
    
    
    extern int sigstack (struct sigstack *__ss, struct sigstack *__oss)
         __attribute__ ((__nothrow__)) __attribute__ ((__deprecated__));
    
    
    
    extern int sigaltstack (__const struct sigaltstack *__restrict __ss,
       struct sigaltstack *__restrict __oss) __attribute__ ((__nothrow__));
    # 395 "/usr/include/signal.h" 3 4
    # 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__));
    
    
    extern int pthread_kill (pthread_t __threadid, int __signo) __attribute__ ((__nothrow__));
    # 396 "/usr/include/signal.h" 2 3 4
    
    
    
    
    
    
    extern int __libc_current_sigrtmin (void) __attribute__ ((__nothrow__));
    
    extern int __libc_current_sigrtmax (void) __attribute__ ((__nothrow__));
    
    
    
    
    # 32 "/usr/include/sys/wait.h" 2 3 4
    # 1 "/usr/include/sys/resource.h" 1 3 4
    # 25 "/usr/include/sys/resource.h" 3 4
    # 1 "/usr/include/bits/resource.h" 1 3 4
    # 33 "/usr/include/bits/resource.h" 3 4
    enum __rlimit_resource
    {
    
      RLIMIT_CPU = 0,
    
    
    
      RLIMIT_FSIZE = 1,
    
    
    
      RLIMIT_DATA = 2,
    
    
    
      RLIMIT_STACK = 3,
    
    
    
      RLIMIT_CORE = 4,
    
    
    
    
    
    
      __RLIMIT_RSS = 5,
    
    
    
      RLIMIT_NOFILE = 7,
      __RLIMIT_OFILE = RLIMIT_NOFILE,
    
    
    
    
      RLIMIT_AS = 9,
    
    
    
      __RLIMIT_NPROC = 6,
    
    
    
      __RLIMIT_MEMLOCK = 8,
    
    
    
      __RLIMIT_LOCKS = 10,
    
    
    
      __RLIMIT_SIGPENDING = 11,
    
    
    
      __RLIMIT_MSGQUEUE = 12,
    
    
    
    
    
      __RLIMIT_NICE = 13,
    
    
    
    
      __RLIMIT_RTPRIO = 14,
    
    
      __RLIMIT_NLIMITS = 15,
      __RLIM_NLIMITS = __RLIMIT_NLIMITS
    
    
    };
    # 127 "/usr/include/bits/resource.h" 3 4
    typedef __rlim_t rlim_t;
    
    
    
    
    
    
    
    struct rlimit
      {
    
        rlim_t rlim_cur;
    
        rlim_t rlim_max;
      };
    # 154 "/usr/include/bits/resource.h" 3 4
    enum __rusage_who
    {
    
      RUSAGE_SELF = 0,
    
    
    
      RUSAGE_CHILDREN = -1
    # 172 "/usr/include/bits/resource.h" 3 4
    };
    
    
    # 1 "/usr/include/bits/time.h" 1 3 4
    # 176 "/usr/include/bits/resource.h" 2 3 4
    
    
    struct rusage
      {
    
        struct timeval ru_utime;
    
        struct timeval ru_stime;
    
        long int ru_maxrss;
    
    
        long int ru_ixrss;
    
        long int ru_idrss;
    
        long int ru_isrss;
    
    
        long int ru_minflt;
    
        long int ru_majflt;
    
        long int ru_nswap;
    
    
        long int ru_inblock;
    
        long int ru_oublock;
    
        long int ru_msgsnd;
    
        long int ru_msgrcv;
    
        long int ru_nsignals;
    
    
    
        long int ru_nvcsw;
    
    
        long int ru_nivcsw;
      };
    
    
    
    
    
    
    
    enum __priority_which
    {
      PRIO_PROCESS = 0,
    
      PRIO_PGRP = 1,
    
      PRIO_USER = 2
    
    };
    
    
    
    # 262 "/usr/include/bits/resource.h" 3 4
    
    # 26 "/usr/include/sys/resource.h" 2 3 4
    
    
    
    
    
    
    
    # 43 "/usr/include/sys/resource.h" 3 4
    typedef int __rlimit_resource_t;
    typedef int __rusage_who_t;
    typedef int __priority_which_t;
    
    
    
    
    
    extern int getrlimit (__rlimit_resource_t __resource,
            struct rlimit *__rlimits) __attribute__ ((__nothrow__));
    # 70 "/usr/include/sys/resource.h" 3 4
    extern int setrlimit (__rlimit_resource_t __resource,
            __const struct rlimit *__rlimits) __attribute__ ((__nothrow__));
    # 88 "/usr/include/sys/resource.h" 3 4
    extern int getrusage (__rusage_who_t __who, struct rusage *__usage) __attribute__ ((__nothrow__));
    
    
    
    
    
    extern int getpriority (__priority_which_t __which, id_t __who) __attribute__ ((__nothrow__));
    
    
    
    extern int setpriority (__priority_which_t __which, id_t __who, int __prio)
         __attribute__ ((__nothrow__));
    
    
    # 33 "/usr/include/sys/wait.h" 2 3 4
    # 102 "/usr/include/sys/wait.h" 3 4
    typedef enum
    {
      P_ALL,
      P_PID,
      P_PGID
    } idtype_t;
    # 116 "/usr/include/sys/wait.h" 3 4
    extern __pid_t wait (__WAIT_STATUS __stat_loc);
    # 139 "/usr/include/sys/wait.h" 3 4
    extern __pid_t waitpid (__pid_t __pid, int *__stat_loc, int __options);
    
    
    
    # 1 "/usr/include/bits/siginfo.h" 1 3 4
    # 25 "/usr/include/bits/siginfo.h" 3 4
    # 1 "/usr/include/bits/wordsize.h" 1 3 4
    # 26 "/usr/include/bits/siginfo.h" 2 3 4
    # 144 "/usr/include/sys/wait.h" 2 3 4
    # 155 "/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 (__WAIT_STATUS __stat_loc, int __options,
            struct rusage * __usage) __attribute__ ((__nothrow__));
    
    
    
    
    extern __pid_t wait4 (__pid_t __pid, __WAIT_STATUS __stat_loc, int __options,
            struct rusage *__usage) __attribute__ ((__nothrow__));
    
    
    
    
    # 28 "main.c" 2
    # 1 "/usr/include/sys/time.h" 1 3 4
    # 27 "/usr/include/sys/time.h" 3 4
    # 1 "/usr/include/time.h" 1 3 4
    # 28 "/usr/include/sys/time.h" 2 3 4
    
    # 1 "/usr/include/bits/time.h" 1 3 4
    # 30 "/usr/include/sys/time.h" 2 3 4
    # 39 "/usr/include/sys/time.h" 3 4
    
    # 57 "/usr/include/sys/time.h" 3 4
    struct timezone
      {
        int tz_minuteswest;
        int tz_dsttime;
      };
    
    typedef struct timezone *__restrict __timezone_ptr_t;
    # 73 "/usr/include/sys/time.h" 3 4
    extern int gettimeofday (struct timeval *__restrict __tv,
        __timezone_ptr_t __tz) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    extern int settimeofday (__const struct timeval *__tv,
        __const struct timezone *__tz)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    
    extern int adjtime (__const struct timeval *__delta,
          struct timeval *__olddelta) __attribute__ ((__nothrow__));
    
    
    
    
    enum __itimer_which
      {
    
        ITIMER_REAL = 0,
    
    
        ITIMER_VIRTUAL = 1,
    
    
    
        ITIMER_PROF = 2
    
      };
    
    
    
    struct itimerval
      {
    
        struct timeval it_interval;
    
        struct timeval it_value;
      };
    
    
    
    
    
    
    typedef int __itimer_which_t;
    
    
    
    
    extern int getitimer (__itimer_which_t __which,
            struct itimerval *__value) __attribute__ ((__nothrow__));
    
    
    
    
    extern int setitimer (__itimer_which_t __which,
            __const struct itimerval *__restrict __new,
            struct itimerval *__restrict __old) __attribute__ ((__nothrow__));
    
    
    
    
    extern int utimes (__const char *__file, __const struct timeval __tvp[2])
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    extern int lutimes (__const char *__file, __const struct timeval __tvp[2])
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    extern int futimes (int __fd, __const struct timeval __tvp[2]) __attribute__ ((__nothrow__));
    # 191 "/usr/include/sys/time.h" 3 4
    
    # 29 "main.c" 2
    # 1 "/usr/include/unistd.h" 1 3 4
    # 28 "/usr/include/unistd.h" 3 4
    
    # 203 "/usr/include/unistd.h" 3 4
    # 1 "/usr/include/bits/posix_opt.h" 1 3 4
    # 204 "/usr/include/unistd.h" 2 3 4
    
    
    
    # 1 "/usr/include/bits/environments.h" 1 3 4
    # 23 "/usr/include/bits/environments.h" 3 4
    # 1 "/usr/include/bits/wordsize.h" 1 3 4
    # 24 "/usr/include/bits/environments.h" 2 3 4
    # 208 "/usr/include/unistd.h" 2 3 4
    # 227 "/usr/include/unistd.h" 3 4
    # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4
    # 228 "/usr/include/unistd.h" 2 3 4
    # 256 "/usr/include/unistd.h" 3 4
    typedef __useconds_t useconds_t;
    # 288 "/usr/include/unistd.h" 3 4
    extern int access (__const char *__name, int __type) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    # 305 "/usr/include/unistd.h" 3 4
    extern int faccessat (int __fd, __const char *__file, int __type, int __flag)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__));
    # 331 "/usr/include/unistd.h" 3 4
    extern __off_t lseek (int __fd, __off_t __offset, int __whence) __attribute__ ((__nothrow__));
    # 350 "/usr/include/unistd.h" 3 4
    extern int close (int __fd);
    
    
    
    
    
    
    extern ssize_t read (int __fd, void *__buf, size_t __nbytes) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    extern ssize_t write (int __fd, __const void *__buf, size_t __n) __attribute__ ((__warn_unused_result__));
    # 373 "/usr/include/unistd.h" 3 4
    extern ssize_t pread (int __fd, void *__buf, size_t __nbytes,
            __off_t __offset) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    
    extern ssize_t pwrite (int __fd, __const void *__buf, size_t __n,
             __off_t __offset) __attribute__ ((__warn_unused_result__));
    # 414 "/usr/include/unistd.h" 3 4
    extern int pipe (int __pipedes[2]) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    # 429 "/usr/include/unistd.h" 3 4
    extern unsigned int alarm (unsigned int __seconds) __attribute__ ((__nothrow__));
    # 441 "/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__));
    
    
    
    
    
    
    extern int usleep (__useconds_t __useconds);
    # 466 "/usr/include/unistd.h" 3 4
    extern int pause (void);
    
    
    
    extern int chown (__const char *__file, __uid_t __owner, __gid_t __group)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    extern int fchown (int __fd, __uid_t __owner, __gid_t __group) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    
    extern int fchownat (int __fd, __const char *__file, __uid_t __owner,
           __gid_t __group, int __flag)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__));
    
    
    
    extern int chdir (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    extern int fchdir (int __fd) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    # 508 "/usr/include/unistd.h" 3 4
    extern char *getcwd (char *__buf, size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    # 522 "/usr/include/unistd.h" 3 4
    extern char *getwd (char *__buf)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern int dup (int __fd) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    extern int dup2 (int __fd, int __fd2) __attribute__ ((__nothrow__));
    # 540 "/usr/include/unistd.h" 3 4
    extern char **__environ;
    
    
    
    
    
    
    
    extern int execve (__const char *__path, char *__const __argv[],
         char *__const __envp[]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    
    
    extern int fexecve (int __fd, char *__const __argv[], char *__const __envp[])
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
    
    
    
    
    extern int execv (__const char *__path, char *__const __argv[])
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    
    extern int execle (__const char *__path, __const char *__arg, ...)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    
    extern int execl (__const char *__path, __const char *__arg, ...)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    
    extern int execvp (__const char *__file, char *__const __argv[])
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    
    
    extern int execlp (__const char *__file, __const char *__arg, ...)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    # 595 "/usr/include/unistd.h" 3 4
    extern int nice (int __inc) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern void _exit (int __status) __attribute__ ((__noreturn__));
    
    
    
    
    
    # 1 "/usr/include/bits/confname.h" 1 3 4
    # 26 "/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
    
      };
    # 607 "/usr/include/unistd.h" 2 3 4
    
    
    extern long int pathconf (__const char *__path, int __name)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    extern long int fpathconf (int __fd, int __name) __attribute__ ((__nothrow__));
    
    
    extern long int sysconf (int __name) __attribute__ ((__nothrow__));
    
    
    
    extern size_t confstr (int __name, char *__buf, size_t __len) __attribute__ ((__nothrow__));
    
    
    
    
    extern __pid_t getpid (void) __attribute__ ((__nothrow__));
    
    
    extern __pid_t getppid (void) __attribute__ ((__nothrow__));
    
    
    
    
    extern __pid_t getpgrp (void) __attribute__ ((__nothrow__));
    # 643 "/usr/include/unistd.h" 3 4
    extern __pid_t __getpgid (__pid_t __pid) __attribute__ ((__nothrow__));
    
    extern __pid_t getpgid (__pid_t __pid) __attribute__ ((__nothrow__));
    
    
    
    
    
    
    extern int setpgid (__pid_t __pid, __pid_t __pgid) __attribute__ ((__nothrow__));
    # 669 "/usr/include/unistd.h" 3 4
    extern int setpgrp (void) __attribute__ ((__nothrow__));
    # 686 "/usr/include/unistd.h" 3 4
    extern __pid_t setsid (void) __attribute__ ((__nothrow__));
    
    
    
    extern __pid_t getsid (__pid_t __pid) __attribute__ ((__nothrow__));
    
    
    
    extern __uid_t getuid (void) __attribute__ ((__nothrow__));
    
    
    extern __uid_t geteuid (void) __attribute__ ((__nothrow__));
    
    
    extern __gid_t getgid (void) __attribute__ ((__nothrow__));
    
    
    extern __gid_t getegid (void) __attribute__ ((__nothrow__));
    
    
    
    
    extern int getgroups (int __size, __gid_t __list[]) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    # 719 "/usr/include/unistd.h" 3 4
    extern int setuid (__uid_t __uid) __attribute__ ((__nothrow__));
    
    
    
    
    extern int setreuid (__uid_t __ruid, __uid_t __euid) __attribute__ ((__nothrow__));
    
    
    
    
    extern int seteuid (__uid_t __uid) __attribute__ ((__nothrow__));
    
    
    
    
    
    
    extern int setgid (__gid_t __gid) __attribute__ ((__nothrow__));
    
    
    
    
    extern int setregid (__gid_t __rgid, __gid_t __egid) __attribute__ ((__nothrow__));
    
    
    
    
    extern int setegid (__gid_t __gid) __attribute__ ((__nothrow__));
    # 775 "/usr/include/unistd.h" 3 4
    extern __pid_t fork (void) __attribute__ ((__nothrow__));
    
    
    
    
    
    
    
    extern __pid_t vfork (void) __attribute__ ((__nothrow__));
    
    
    
    
    
    extern char *ttyname (int __fd) __attribute__ ((__nothrow__));
    
    
    
    extern int ttyname_r (int __fd, char *__buf, size_t __buflen)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__));
    
    
    
    extern int isatty (int __fd) __attribute__ ((__nothrow__));
    
    
    
    
    
    extern int ttyslot (void) __attribute__ ((__nothrow__));
    
    
    
    
    extern int link (__const char *__from, __const char *__to)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern int linkat (int __fromfd, __const char *__from, int __tofd,
         __const char *__to, int __flags)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern int symlink (__const char *__from, __const char *__to)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern ssize_t readlink (__const char *__restrict __path,
        char *__restrict __buf, size_t __len)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern int symlinkat (__const char *__from, int __tofd,
            __const char *__to) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) __attribute__ ((__warn_unused_result__));
    
    
    extern ssize_t readlinkat (int __fd, __const char *__restrict __path,
          char *__restrict __buf, size_t __len)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__));
    
    
    
    extern int unlink (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    extern int unlinkat (int __fd, __const char *__name, int __flag)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
    
    
    
    extern int rmdir (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    extern __pid_t tcgetpgrp (int __fd) __attribute__ ((__nothrow__));
    
    
    extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) __attribute__ ((__nothrow__));
    
    
    
    
    
    
    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__)) __attribute__ ((__nonnull__ (1)));
    # 890 "/usr/include/unistd.h" 3 4
    # 1 "/usr/include/getopt.h" 1 3 4
    # 59 "/usr/include/getopt.h" 3 4
    extern char *optarg;
    # 73 "/usr/include/getopt.h" 3 4
    extern int optind;
    
    
    
    
    extern int opterr;
    
    
    
    extern int optopt;
    # 152 "/usr/include/getopt.h" 3 4
    extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
           __attribute__ ((__nothrow__));
    # 891 "/usr/include/unistd.h" 2 3 4
    
    
    
    
    
    
    
    extern int gethostname (char *__name, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    
    
    extern int sethostname (__const char *__name, size_t __len)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    extern int sethostid (long int __id) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    extern int getdomainname (char *__name, size_t __len)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    extern int setdomainname (__const char *__name, size_t __len)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    extern int vhangup (void) __attribute__ ((__nothrow__));
    
    
    extern int revoke (__const char *__file) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    
    
    extern int profil (unsigned short int *__sample_buffer, size_t __size,
         size_t __offset, unsigned int __scale)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    
    extern int acct (__const char *__name) __attribute__ ((__nothrow__));
    
    
    
    extern char *getusershell (void) __attribute__ ((__nothrow__));
    extern void endusershell (void) __attribute__ ((__nothrow__));
    extern void setusershell (void) __attribute__ ((__nothrow__));
    
    
    
    
    
    extern int daemon (int __nochdir, int __noclose) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    
    extern int chroot (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    extern char *getpass (__const char *__prompt) __attribute__ ((__nonnull__ (1)));
    # 976 "/usr/include/unistd.h" 3 4
    extern int fsync (int __fd);
    
    
    
    
    
    
    extern long int gethostid (void);
    
    
    extern void sync (void) __attribute__ ((__nothrow__));
    
    
    
    
    
    extern int getpagesize (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
    
    
    
    
    extern int getdtablesize (void) __attribute__ ((__nothrow__));
    # 1007 "/usr/include/unistd.h" 3 4
    extern int truncate (__const char *__file, __off_t __length)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    # 1029 "/usr/include/unistd.h" 3 4
    extern int ftruncate (int __fd, __off_t __length) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    # 1050 "/usr/include/unistd.h" 3 4
    extern int brk (void *__addr) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    extern void *sbrk (intptr_t __delta) __attribute__ ((__nothrow__));
    # 1071 "/usr/include/unistd.h" 3 4
    extern long int syscall (long int __sysno, ...) __attribute__ ((__nothrow__));
    # 1094 "/usr/include/unistd.h" 3 4
    extern int lockf (int __fd, int __cmd, __off_t __len) __attribute__ ((__warn_unused_result__));
    # 1125 "/usr/include/unistd.h" 3 4
    extern int fdatasync (int __fildes);
    # 1154 "/usr/include/unistd.h" 3 4
    extern char *ctermid (char *__s) __attribute__ ((__nothrow__));
    
    
    
    
    
    # 1 "/usr/include/bits/unistd.h" 1 3 4
    # 24 "/usr/include/bits/unistd.h" 3 4
    extern ssize_t __read_chk (int __fd, void *__buf, size_t __nbytes,
          size_t __buflen) __attribute__ ((__warn_unused_result__));
    extern ssize_t __read_alias (int __fd, void *__buf, size_t __nbytes) __asm__ ("" "read")
                                   __attribute__ ((__warn_unused_result__));
    extern ssize_t __read_chk_warn (int __fd, void *__buf, size_t __nbytes, size_t __buflen) __asm__ ("" "__read_chk")
    
    
         __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("read called with bigger length than size of " "the destination buffer")))
                                      ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) ssize_t
    read (int __fd, void *__buf, size_t __nbytes)
    {
      if (__builtin_object_size (__buf, 0) != (size_t) -1)
        {
          if (!__builtin_constant_p (__nbytes))
     return __read_chk (__fd, __buf, __nbytes, __builtin_object_size (__buf, 0));
    
          if (__nbytes > __builtin_object_size (__buf, 0))
     return __read_chk_warn (__fd, __buf, __nbytes, __builtin_object_size (__buf, 0));
        }
      return __read_alias (__fd, __buf, __nbytes);
    }
    # 124 "/usr/include/bits/unistd.h" 3 4
    extern ssize_t __readlink_chk (__const char *__restrict __path,
              char *__restrict __buf, size_t __len,
              size_t __buflen)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__));
    extern ssize_t __readlink_alias (__const char *__restrict __path, char *__restrict __buf, size_t __len) __asm__ ("" "readlink") __attribute__ ((__nothrow__))
    
    
         __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__));
    extern ssize_t __readlink_chk_warn (__const char *__restrict __path, char *__restrict __buf, size_t __len, size_t __buflen) __asm__ ("" "__readlink_chk") __attribute__ ((__nothrow__))
    
    
    
         __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("readlink called with bigger length " "than size of destination buffer")))
                                             ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)) ssize_t
    __attribute__ ((__nothrow__)) readlink (__const char *__restrict __path, char *__restrict __buf, size_t __len)
    
    {
      if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
        {
          if (!__builtin_constant_p (__len))
     return __readlink_chk (__path, __buf, __len, __builtin_object_size (__buf, 2 > 1));
    
          if ( __len > __builtin_object_size (__buf, 2 > 1))
     return __readlink_chk_warn (__path, __buf, __len, __builtin_object_size (__buf, 2 > 1));
        }
      return __readlink_alias (__path, __buf, __len);
    }
    
    
    
    extern ssize_t __readlinkat_chk (int __fd, __const char *__restrict __path,
         char *__restrict __buf, size_t __len,
         size_t __buflen)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__));
    extern ssize_t __readlinkat_alias (int __fd, __const char *__restrict __path, char *__restrict __buf, size_t __len) __asm__ ("" "readlinkat") __attribute__ ((__nothrow__))
    
    
    
         __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__));
    extern ssize_t __readlinkat_chk_warn (int __fd, __const char *__restrict __path, char *__restrict __buf, size_t __len, size_t __buflen) __asm__ ("" "__readlinkat_chk") __attribute__ ((__nothrow__))
    
    
    
         __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("readlinkat called with bigger " "length than size of destination " "buffer")))
    
                    ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__)) ssize_t
    __attribute__ ((__nothrow__)) readlinkat (int __fd, __const char *__restrict __path, char *__restrict __buf, size_t __len)
    
    {
      if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
        {
          if (!__builtin_constant_p (__len))
     return __readlinkat_chk (__fd, __path, __buf, __len, __builtin_object_size (__buf, 2 > 1));
    
          if (__len > __builtin_object_size (__buf, 2 > 1))
     return __readlinkat_chk_warn (__fd, __path, __buf, __len,
              __builtin_object_size (__buf, 2 > 1));
        }
      return __readlinkat_alias (__fd, __path, __buf, __len);
    }
    
    
    extern char *__getcwd_chk (char *__buf, size_t __size, size_t __buflen)
         __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    extern char *__getcwd_alias (char *__buf, size_t __size) __asm__ ("" "getcwd") __attribute__ ((__nothrow__))
                                                  __attribute__ ((__warn_unused_result__));
    extern char *__getcwd_chk_warn (char *__buf, size_t __size, size_t __buflen) __asm__ ("" "__getcwd_chk") __attribute__ ((__nothrow__))
    
    
         __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("getcwd caller with bigger length than size of " "destination buffer")))
                                  ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char *
    __attribute__ ((__nothrow__)) getcwd (char *__buf, size_t __size)
    {
      if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
        {
          if (!__builtin_constant_p (__size))
     return __getcwd_chk (__buf, __size, __builtin_object_size (__buf, 2 > 1));
    
          if (__size > __builtin_object_size (__buf, 2 > 1))
     return __getcwd_chk_warn (__buf, __size, __builtin_object_size (__buf, 2 > 1));
        }
      return __getcwd_alias (__buf, __size);
    }
    
    
    extern char *__getwd_chk (char *__buf, size_t buflen)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    extern char *__getwd_warn (char *__buf) __asm__ ("" "getwd") __attribute__ ((__nothrow__))
         __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("please use getcwd instead, as getwd " "doesn't specify buffer size")))
                                             ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) __attribute__ ((__warn_unused_result__)) char *
    __attribute__ ((__nothrow__)) getwd (char *__buf)
    {
      if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
        return __getwd_chk (__buf, __builtin_object_size (__buf, 2 > 1));
      return __getwd_warn (__buf);
    }
    
    
    extern size_t __confstr_chk (int __name, char *__buf, size_t __len,
            size_t __buflen) __attribute__ ((__nothrow__));
    extern size_t __confstr_alias (int __name, char *__buf, size_t __len) __asm__ ("" "confstr") __attribute__ ((__nothrow__))
                                 ;
    extern size_t __confstr_chk_warn (int __name, char *__buf, size_t __len, size_t __buflen) __asm__ ("" "__confstr_chk") __attribute__ ((__nothrow__))
    
    
         __attribute__((__warning__ ("confstr called with bigger length than size of destination " "buffer")))
                ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) size_t
    __attribute__ ((__nothrow__)) confstr (int __name, char *__buf, size_t __len)
    {
      if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
        {
          if (!__builtin_constant_p (__len))
     return __confstr_chk (__name, __buf, __len, __builtin_object_size (__buf, 2 > 1));
    
          if (__builtin_object_size (__buf, 2 > 1) < __len)
     return __confstr_chk_warn (__name, __buf, __len, __builtin_object_size (__buf, 2 > 1));
        }
      return __confstr_alias (__name, __buf, __len);
    }
    
    
    extern int __getgroups_chk (int __size, __gid_t __list[], size_t __listlen)
         __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    extern int __getgroups_alias (int __size, __gid_t __list[]) __asm__ ("" "getgroups") __attribute__ ((__nothrow__))
                     __attribute__ ((__warn_unused_result__));
    extern int __getgroups_chk_warn (int __size, __gid_t __list[], size_t __listlen) __asm__ ("" "__getgroups_chk") __attribute__ ((__nothrow__))
    
    
         __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("getgroups called with bigger group count than what " "can fit into destination buffer")))
                                               ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
    __attribute__ ((__nothrow__)) getgroups (int __size, __gid_t __list[])
    {
      if (__builtin_object_size (__list, 2 > 1) != (size_t) -1)
        {
          if (!__builtin_constant_p (__size) || __size < 0)
     return __getgroups_chk (__size, __list, __builtin_object_size (__list, 2 > 1));
    
          if (__size * sizeof (__gid_t) > __builtin_object_size (__list, 2 > 1))
     return __getgroups_chk_warn (__size, __list, __builtin_object_size (__list, 2 > 1));
        }
      return __getgroups_alias (__size, __list);
    }
    
    
    extern int __ttyname_r_chk (int __fd, char *__buf, size_t __buflen,
           size_t __nreal) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
    extern int __ttyname_r_alias (int __fd, char *__buf, size_t __buflen) __asm__ ("" "ttyname_r") __attribute__ ((__nothrow__))
    
         __attribute__ ((__nonnull__ (2)));
    extern int __ttyname_r_chk_warn (int __fd, char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__ttyname_r_chk") __attribute__ ((__nothrow__))
    
    
         __attribute__ ((__nonnull__ (2))) __attribute__((__warning__ ("ttyname_r called with bigger buflen than " "size of destination buffer")))
                                      ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
    __attribute__ ((__nothrow__)) ttyname_r (int __fd, char *__buf, size_t __buflen)
    {
      if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
        {
          if (!__builtin_constant_p (__buflen))
     return __ttyname_r_chk (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1));
    
          if (__buflen > __builtin_object_size (__buf, 2 > 1))
     return __ttyname_r_chk_warn (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1));
        }
      return __ttyname_r_alias (__fd, __buf, __buflen);
    }
    
    
    
    extern int __getlogin_r_chk (char *__buf, size_t __buflen, size_t __nreal)
         __attribute__ ((__nonnull__ (1)));
    extern int __getlogin_r_alias (char *__buf, size_t __buflen) __asm__ ("" "getlogin_r")
                         __attribute__ ((__nonnull__ (1)));
    extern int __getlogin_r_chk_warn (char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__getlogin_r_chk")
    
    
         __attribute__ ((__nonnull__ (1))) __attribute__((__warning__ ("getlogin_r called with bigger buflen than " "size of destination buffer")))
                                      ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
    getlogin_r (char *__buf, size_t __buflen)
    {
      if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
        {
          if (!__builtin_constant_p (__buflen))
     return __getlogin_r_chk (__buf, __buflen, __builtin_object_size (__buf, 2 > 1));
    
          if (__buflen > __builtin_object_size (__buf, 2 > 1))
     return __getlogin_r_chk_warn (__buf, __buflen, __builtin_object_size (__buf, 2 > 1));
        }
      return __getlogin_r_alias (__buf, __buflen);
    }
    
    
    
    
    extern int __gethostname_chk (char *__buf, size_t __buflen, size_t __nreal)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    extern int __gethostname_alias (char *__buf, size_t __buflen) __asm__ ("" "gethostname") __attribute__ ((__nothrow__))
                       __attribute__ ((__nonnull__ (1)));
    extern int __gethostname_chk_warn (char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__gethostname_chk") __attribute__ ((__nothrow__))
    
    
         __attribute__ ((__nonnull__ (1))) __attribute__((__warning__ ("gethostname called with bigger buflen than " "size of destination buffer")))
                                      ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
    __attribute__ ((__nothrow__)) gethostname (char *__buf, size_t __buflen)
    {
      if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
        {
          if (!__builtin_constant_p (__buflen))
     return __gethostname_chk (__buf, __buflen, __builtin_object_size (__buf, 2 > 1));
    
          if (__buflen > __builtin_object_size (__buf, 2 > 1))
     return __gethostname_chk_warn (__buf, __buflen, __builtin_object_size (__buf, 2 > 1));
        }
      return __gethostname_alias (__buf, __buflen);
    }
    
    
    
    
    extern int __getdomainname_chk (char *__buf, size_t __buflen, size_t __nreal)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    extern int __getdomainname_alias (char *__buf, size_t __buflen) __asm__ ("" "getdomainname") __attribute__ ((__nothrow__))
    
                         __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    extern int __getdomainname_chk_warn (char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__getdomainname_chk") __attribute__ ((__nothrow__))
    
    
         __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("getdomainname called with bigger " "buflen than size of destination " "buffer")))
    
                        ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
    __attribute__ ((__nothrow__)) getdomainname (char *__buf, size_t __buflen)
    {
      if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
        {
          if (!__builtin_constant_p (__buflen))
     return __getdomainname_chk (__buf, __buflen, __builtin_object_size (__buf, 2 > 1));
    
          if (__buflen > __builtin_object_size (__buf, 2 > 1))
     return __getdomainname_chk_warn (__buf, __buflen, __builtin_object_size (__buf, 2 > 1));
        }
      return __getdomainname_alias (__buf, __buflen);
    }
    # 1161 "/usr/include/unistd.h" 2 3 4
    
    
    
    # 30 "main.c" 2
    
    # 1 "/usr/include/pwd.h" 1 3 4
    # 28 "/usr/include/pwd.h" 3 4
    
    
    
    
    
    # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4
    # 34 "/usr/include/pwd.h" 2 3 4
    # 50 "/usr/include/pwd.h" 3 4
    struct passwd
    {
      char *pw_name;
      char *pw_passwd;
      __uid_t pw_uid;
      __gid_t pw_gid;
      char *pw_gecos;
      char *pw_dir;
      char *pw_shell;
    };
    # 73 "/usr/include/pwd.h" 3 4
    extern void setpwent (void);
    
    
    
    
    
    extern void endpwent (void);
    
    
    
    
    
    extern struct passwd *getpwent (void);
    # 95 "/usr/include/pwd.h" 3 4
    extern struct passwd *fgetpwent (FILE *__stream);
    
    
    
    
    
    
    
    extern int putpwent (__const struct passwd *__restrict __p,
           FILE *__restrict __f);
    
    
    
    
    
    
    extern struct passwd *getpwuid (__uid_t __uid);
    
    
    
    
    
    extern struct passwd *getpwnam (__const char *__name);
    # 140 "/usr/include/pwd.h" 3 4
    extern int getpwent_r (struct passwd *__restrict __resultbuf,
             char *__restrict __buffer, size_t __buflen,
             struct passwd **__restrict __result);
    
    
    extern int getpwuid_r (__uid_t __uid,
             struct passwd *__restrict __resultbuf,
             char *__restrict __buffer, size_t __buflen,
             struct passwd **__restrict __result);
    
    extern int getpwnam_r (__const char *__restrict __name,
             struct passwd *__restrict __resultbuf,
             char *__restrict __buffer, size_t __buflen,
             struct passwd **__restrict __result);
    # 164 "/usr/include/pwd.h" 3 4
    extern int fgetpwent_r (FILE *__restrict __stream,
       struct passwd *__restrict __resultbuf,
       char *__restrict __buffer, size_t __buflen,
       struct passwd **__restrict __result);
    # 184 "/usr/include/pwd.h" 3 4
    
    # 32 "main.c" 2
    # 1 "/usr/include/dirent.h" 1 3 4
    # 28 "/usr/include/dirent.h" 3 4
    
    # 62 "/usr/include/dirent.h" 3 4
    # 1 "/usr/include/bits/dirent.h" 1 3 4
    # 23 "/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];
      };
    # 63 "/usr/include/dirent.h" 2 3 4
    # 98 "/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
    
      };
    # 128 "/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)));
    # 163 "/usr/include/dirent.h" 3 4
    extern struct dirent *readdir (DIR *__dirp) __attribute__ ((__nonnull__ (1)));
    # 184 "/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)));
    # 209 "/usr/include/dirent.h" 3 4
    extern void rewinddir (DIR *__dirp) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    
    extern void seekdir (DIR *__dirp, long int __pos) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    extern long int telldir (DIR *__dirp) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    
    extern int dirfd (DIR *__dirp) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    # 233 "/usr/include/dirent.h" 3 4
    # 1 "/usr/include/bits/posix1_lim.h" 1 3 4
    # 157 "/usr/include/bits/posix1_lim.h" 3 4
    # 1 "/usr/include/bits/local_lim.h" 1 3 4
    # 39 "/usr/include/bits/local_lim.h" 3 4
    # 1 "/usr/include/linux/limits.h" 1 3 4
    # 40 "/usr/include/bits/local_lim.h" 2 3 4
    # 158 "/usr/include/bits/posix1_lim.h" 2 3 4
    # 234 "/usr/include/dirent.h" 2 3 4
    # 245 "/usr/include/dirent.h" 3 4
    # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4
    # 246 "/usr/include/dirent.h" 2 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)));
    # 285 "/usr/include/dirent.h" 3 4
    extern int alphasort (__const struct dirent **__e1,
            __const struct dirent **__e2)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
    # 313 "/usr/include/dirent.h" 3 4
    extern __ssize_t getdirentries (int __fd, char *__restrict __buf,
        size_t __nbytes,
        __off_t *__restrict __basep)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4)));
    # 362 "/usr/include/dirent.h" 3 4
    
    # 33 "main.c" 2
    # 1 "/usr/include/syslog.h" 1 3 4
    # 1 "/usr/include/sys/syslog.h" 1 3 4
    # 37 "/usr/include/sys/syslog.h" 3 4
    # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdarg.h" 1 3 4
    # 38 "/usr/include/sys/syslog.h" 2 3 4
    
    
    # 1 "/usr/include/bits/syslog-path.h" 1 3 4
    # 41 "/usr/include/sys/syslog.h" 2 3 4
    # 169 "/usr/include/sys/syslog.h" 3 4
    
    
    
    
    
    
    extern void closelog (void);
    
    
    
    
    
    extern void openlog (__const char *__ident, int __option, int __facility);
    
    
    extern int setlogmask (int __mask) __attribute__ ((__nothrow__));
    
    
    
    
    
    extern void syslog (int __pri, __const char *__fmt, ...)
         __attribute__ ((__format__ (__printf__, 2, 3)));
    # 200 "/usr/include/sys/syslog.h" 3 4
    extern void vsyslog (int __pri, __const char *__fmt, __gnuc_va_list __ap)
         __attribute__ ((__format__ (__printf__, 2, 0)));
    
    
    
    
    
    # 1 "/usr/include/bits/syslog.h" 1 3 4
    # 25 "/usr/include/bits/syslog.h" 3 4
    extern void __syslog_chk (int __pri, int __flag, __const char *__fmt, ...)
         __attribute__ ((__format__ (__printf__, 3, 4)));
    
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) void
    syslog (int __pri, __const char *__fmt, ...)
    {
      __syslog_chk (__pri, 2 - 1, __fmt, __builtin_va_arg_pack ());
    }
    
    
    
    
    
    
    
    extern void __vsyslog_chk (int __pri, int __flag, __const char *__fmt,
          __gnuc_va_list __ap)
         __attribute__ ((__format__ (__printf__, 3, 0)));
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) void
    vsyslog (int __pri, __const char *__fmt, __gnuc_va_list __ap)
    {
      __vsyslog_chk (__pri, 2 - 1, __fmt, __ap);
    }
    # 208 "/usr/include/sys/syslog.h" 2 3 4
    
    
    
    
    
    
    # 1 "/usr/include/syslog.h" 2 3 4
    # 34 "main.c" 2
    
    # 1 "ghttpd.h" 1
    # 23 "ghttpd.h"
    typedef struct
    {
     char host[255];
     char DOCUMENTROOT[255];
     char DEFAULTPAGE[255];
     char CGIBINDIR[255];
     char CGIBINROOT[255];
    } t_vhost;
    
    int serveconnection(int sockfd);
    int does_file_exist(char *filename);
    void getmimetype(char *filename, char *mimetype);
    int isDirectory(char *filename);
    void showdir(char *directory, int sockfd, t_vhost *thehost);
    void readinconfig();
    void Log(char *format, ...);
    void getfileline(char *line, FILE *in);
    void gstrlwr(char *string);
    unsigned long get_file_size(char *filename);
    
    
    extern unsigned int SERVERPORT;
    
    extern char SERVERROOT[255];
    extern char SERVERTYPE[255];
    extern unsigned long no_vhosts;
    extern t_vhost *vhosts;
    extern t_vhost defaulthost;
    # 36 "main.c" 2
    
    void signal_handler(int signum);
    int inetd_server();
    
    unsigned long no_vhosts = 0;
    t_vhost *vhosts = 0;
    
    unsigned int SERVERPORT = 80;
    char SERVERTYPE[255] = "Standalone";
    char SERVERROOT[255] = "/usr/local/ghttpd";
    
    t_vhost defaulthost;
    
    int main()
    {
     int xx=0, sockfd, new_fd, numbytes=0;
     struct sockaddr_in my_addr;
     struct sockaddr_in their_addr;
     int sin_size, i;
     struct timeval tv;
     fd_set readfds, exceptfds;
     struct passwd *pw;
    
    
    
    
    
     strcpy(defaulthost.DOCUMENTROOT, "/usr/local/ghttpd/htdocs");
     strcpy(defaulthost.DEFAULTPAGE, "index.html");
     strcpy(defaulthost.CGIBINDIR, "/cgi-bin");
     strcpy(defaulthost.CGIBINROOT, "/usr/local/ghttpd/cgi-bin");
    
    
    
    
    
     no_vhosts = count_vhosts();
     vhosts = (t_vhost *)malloc((no_vhosts+1) * sizeof(t_vhost));
    
    
    
    
    
     readinconfig();
    
     if(!__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (SERVERTYPE) && __builtin_constant_p ("inetd") && (__s1_len = __builtin_strlen (SERVERTYPE), __s2_len = __builtin_strlen ("inetd"), (!((size_t)(const void *)((SERVERTYPE) + 1) - (size_t)(const void *)(SERVERTYPE) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("inetd") + 1) - (size_t)(const void *)("inetd") == 1) || __s2_len >= 4)) ? __builtin_strcmp (SERVERTYPE, "inetd") : (__builtin_constant_p (SERVERTYPE) && ((size_t)(const void *)((SERVERTYPE) + 1) - (size_t)(const void *)(SERVERTYPE) == 1) && (__s1_len = __builtin_strlen (SERVERTYPE), __s1_len < 4) ? (__builtin_constant_p ("inetd") && ((size_t)(const void *)(("inetd") + 1) - (size_t)(const void *)("inetd") == 1) ? __builtin_strcmp (SERVERTYPE, "inetd") : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) ("inetd"); register int __result = (((__const unsigned char *) (__const char *) (SERVERTYPE))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (SERVERTYPE))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (SERVERTYPE))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (SERVERTYPE))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("inetd") && ((size_t)(const void *)(("inetd") + 1) - (size_t)(const void *)("inetd") == 1) && (__s2_len = __builtin_strlen ("inetd"), __s2_len < 4) ? (__builtin_constant_p (SERVERTYPE) && ((size_t)(const void *)((SERVERTYPE) + 1) - (size_t)(const void *)(SERVERTYPE) == 1) ? __builtin_strcmp (SERVERTYPE, "inetd") : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (SERVERTYPE); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) ("inetd"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) ("inetd"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) ("inetd"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) ("inetd"))[3]); } } __result; }))) : __builtin_strcmp (SERVERTYPE, "inetd")))); }))
      return inetd_server();
    
    
    
    
    
     openlog("ghttpd", (char)((void *)0), (3<<3));
    
     if ((sockfd = socket(2, SOCK_STREAM, 0)) == -1) {
      perror("socket");
      syslog(2, "Could create a socket, exiting\n");
      closelog();
      exit(1);
     }
    
    
    
    
            i = 1;
            setsockopt(sockfd, 1, 2, (void*)&i, i);
    
    
     my_addr.sin_family = 2;
     my_addr.sin_port = (__extension__ ({ register unsigned short int __v, __x = (unsigned short int) (SERVERPORT); if (__builtin_constant_p (__x)) __v = ((unsigned short int) ((((__x) >> 8) & 0xff) | (((__x) & 0xff) << 8))); else __asm__ ("rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; }));
     my_addr.sin_addr.s_addr = ((in_addr_t) 0x00000000);
     bzero(&(my_addr.sin_zero), 8);
    
     if (bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr)) == -1)
     {
      perror("bind");
      syslog(2, "Could not bind to port, exiting\n");
      closelog();
      exit(1);
     }
    
     if (listen(sockfd, 150) == -1) {
      perror("listen");
      syslog(2, "Unable to do a listen()\n");
      closelog();
      exit(1);
     }
    
    
     signal(15, signal_handler);
     signal(1, signal_handler);
     signal(2, signal_handler);
     signal(17, signal_handler);
    
     xx = fork();
     if(xx==-1)
     {
      printf("FATAL ERROR, Could not fork() ghttpd into background\n");
      syslog(2, "Could not fork() ghttpd into background\n");
      closelog();
      exit(1);
     }
     if(xx != 0)
      exit(0);
    
     printf("ghttpd launched into background, PID = %d\n", getpid());
    
     closelog();
    
    
     if ((pw = getpwnam("nobody")) != ((void *)0)) {
      setgid(pw->pw_gid);
      setuid(pw->pw_uid);
     }
    
     while(1) {
      sin_size = sizeof(struct sockaddr_in);
    
      if ((new_fd = accept(sockfd, (struct sockaddr *)&their_addr, &sin_size)) == -1)
       continue;
    
      if (!fork()) {
       while(1)
       {
        close(sockfd);
        do { int __d0, __d1; __asm__ __volatile__ ("cld; rep; " "stosl" : "=c" (__d0), "=D" (__d1) : "a" (0), "0" (sizeof (fd_set) / sizeof (__fd_mask)), "1" (&((&readfds)->__fds_bits)[0]) : "memory"); } while (0);
        ((void) (((&readfds)->__fds_bits)[((new_fd) / (8 * (int) sizeof (__fd_mask)))] |= ((__fd_mask) 1 << ((new_fd) % (8 * (int) sizeof (__fd_mask))))));
        do { int __d0, __d1; __asm__ __volatile__ ("cld; rep; " "stosl" : "=c" (__d0), "=D" (__d1) : "a" (0), "0" (sizeof (fd_set) / sizeof (__fd_mask)), "1" (&((&exceptfds)->__fds_bits)[0]) : "memory"); } while (0);
        ((void) (((&exceptfds)->__fds_bits)[((new_fd) / (8 * (int) sizeof (__fd_mask)))] |= ((__fd_mask) 1 << ((new_fd) % (8 * (int) sizeof (__fd_mask))))));
        tv.tv_sec = 5;
        tv.tv_usec = 0;
        select(new_fd+1, &readfds, ((void *)0), &exceptfds, &tv);
    
        if(((((&exceptfds)->__fds_bits)[((new_fd) / (8 * (int) sizeof (__fd_mask)))] & ((__fd_mask) 1 << ((new_fd) % (8 * (int) sizeof (__fd_mask))))) != 0))
         break;
    
        if(((((&readfds)->__fds_bits)[((new_fd) / (8 * (int) sizeof (__fd_mask)))] & ((__fd_mask) 1 << ((new_fd) % (8 * (int) sizeof (__fd_mask))))) != 0))
        {
         setenv("REMOTE_ADDR", (char *)inet_ntoa(their_addr.sin_addr), 1);
         if(serveconnection(new_fd)==-1) break;
        }
        else
         break;
    
       }
    
       close(new_fd);
       exit(0);
      }
      close(new_fd);
    
      while(waitpid(-1,((void *)0),1) > 0);
     }
    
     return 0;
    }
    
    
    
    
    
    int inetd_server()
    {
      struct sockaddr_in their_addr;
      size_t sval = sizeof(their_addr);
      struct passwd *pw;
    
    
      if (getpeername(0, (struct sockaddr *) &their_addr, &sval) < 0) {
      exit(1);
      }
    
    
      if ((pw = getpwnam("nobody")) != ((void *)0)) {
      setgid(pw->pw_gid);
      setuid(pw->pw_uid);
      }
    
      Log("Connection from %s", inet_ntoa(their_addr.sin_addr));
      setenv("REMOTE_ADDR", (char *)inet_ntoa(their_addr.sin_addr), 1);
    
      serveconnection(0);
    
      return 0;
    }
    
    void signal_handler(int signum)
    {
     if(signum == 17)
     {
      while(waitpid(-1,((void *)0),1) > 0);
     }
     else if(signum == 1)
      readinconfig();
     else
     {
      while(waitpid(-1,((void *)0),1) > 0);
      exit(0);
     }
    }
    
    ? file icon main.i (161,578 bytes) 2011-07-25 13:56 +
  • ? file icon util.i (166,885 bytes) 2011-07-25 13:56 -
    # 1 "util.c"
    # 1 "/home/monate/ghttpd-1.4-4//"
    # 1 "<built-in>"
    # 1 "<command-line>"
    # 1 "util.c"
    # 20 "util.c"
    # 1 "/usr/include/stdio.h" 1 3 4
    # 28 "/usr/include/stdio.h" 3 4
    # 1 "/usr/include/features.h" 1 3 4
    # 323 "/usr/include/features.h" 3 4
    # 1 "/usr/include/bits/predefs.h" 1 3 4
    # 324 "/usr/include/features.h" 2 3 4
    # 356 "/usr/include/features.h" 3 4
    # 1 "/usr/include/sys/cdefs.h" 1 3 4
    # 353 "/usr/include/sys/cdefs.h" 3 4
    # 1 "/usr/include/bits/wordsize.h" 1 3 4
    # 354 "/usr/include/sys/cdefs.h" 2 3 4
    # 357 "/usr/include/features.h" 2 3 4
    # 388 "/usr/include/features.h" 3 4
    # 1 "/usr/include/gnu/stubs.h" 1 3 4
    
    
    
    # 1 "/usr/include/bits/wordsize.h" 1 3 4
    # 5 "/usr/include/gnu/stubs.h" 2 3 4
    
    
    # 1 "/usr/include/gnu/stubs-32.h" 1 3 4
    # 8 "/usr/include/gnu/stubs.h" 2 3 4
    # 389 "/usr/include/features.h" 2 3 4
    # 29 "/usr/include/stdio.h" 2 3 4
    
    
    
    
    
    # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4
    # 211 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 3 4
    typedef unsigned int size_t;
    # 35 "/usr/include/stdio.h" 2 3 4
    
    # 1 "/usr/include/bits/types.h" 1 3 4
    # 28 "/usr/include/bits/types.h" 3 4
    # 1 "/usr/include/bits/wordsize.h" 1 3 4
    # 29 "/usr/include/bits/types.h" 2 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;
    
    
    
    
    __extension__ typedef signed long long int __int64_t;
    __extension__ typedef unsigned long long int __uint64_t;
    
    
    
    
    
    
    
    __extension__ typedef long long int __quad_t;
    __extension__ typedef unsigned long long int __u_quad_t;
    # 131 "/usr/include/bits/types.h" 3 4
    # 1 "/usr/include/bits/typesizes.h" 1 3 4
    # 132 "/usr/include/bits/types.h" 2 3 4
    
    
    __extension__ typedef __u_quad_t __dev_t;
    __extension__ typedef unsigned int __uid_t;
    __extension__ typedef unsigned int __gid_t;
    __extension__ typedef unsigned long int __ino_t;
    __extension__ typedef __u_quad_t __ino64_t;
    __extension__ typedef unsigned int __mode_t;
    __extension__ typedef unsigned int __nlink_t;
    __extension__ typedef long int __off_t;
    __extension__ typedef __quad_t __off64_t;
    __extension__ typedef int __pid_t;
    __extension__ typedef struct { int __val[2]; } __fsid_t;
    __extension__ typedef long int __clock_t;
    __extension__ typedef unsigned long int __rlim_t;
    __extension__ typedef __u_quad_t __rlim64_t;
    __extension__ typedef unsigned int __id_t;
    __extension__ typedef long int __time_t;
    __extension__ typedef unsigned int __useconds_t;
    __extension__ typedef long int __suseconds_t;
    
    __extension__ typedef int __daddr_t;
    __extension__ typedef long int __swblk_t;
    __extension__ typedef int __key_t;
    
    
    __extension__ typedef int __clockid_t;
    
    
    __extension__ typedef void * __timer_t;
    
    
    __extension__ typedef long int __blksize_t;
    
    
    
    
    __extension__ typedef long int __blkcnt_t;
    __extension__ typedef __quad_t __blkcnt64_t;
    
    
    __extension__ typedef unsigned long int __fsblkcnt_t;
    __extension__ typedef __u_quad_t __fsblkcnt64_t;
    
    
    __extension__ typedef unsigned long int __fsfilcnt_t;
    __extension__ typedef __u_quad_t __fsfilcnt64_t;
    
    __extension__ typedef int __ssize_t;
    
    
    
    typedef __off64_t __loff_t;
    typedef __quad_t *__qaddr_t;
    typedef char *__caddr_t;
    
    
    __extension__ typedef int __intptr_t;
    
    
    __extension__ typedef unsigned int __socklen_t;
    # 37 "/usr/include/stdio.h" 2 3 4
    # 45 "/usr/include/stdio.h" 3 4
    struct _IO_FILE;
    
    
    
    typedef struct _IO_FILE FILE;
    
    
    
    
    
    # 65 "/usr/include/stdio.h" 3 4
    typedef struct _IO_FILE __FILE;
    # 75 "/usr/include/stdio.h" 3 4
    # 1 "/usr/include/libio.h" 1 3 4
    # 32 "/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/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4
    # 16 "/usr/include/_G_config.h" 2 3 4
    
    
    
    
    # 1 "/usr/include/wchar.h" 1 3 4
    # 83 "/usr/include/wchar.h" 3 4
    typedef struct
    {
      int __count;
      union
      {
    
        unsigned int __wch;
    
    
    
        char __wchb[4];
      } __value;
    } __mbstate_t;
    # 21 "/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;
    # 53 "/usr/include/_G_config.h" 3 4
    typedef int _G_int16_t __attribute__ ((__mode__ (__HI__)));
    typedef int _G_int32_t __attribute__ ((__mode__ (__SI__)));
    typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__)));
    typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__)));
    # 33 "/usr/include/libio.h" 2 3 4
    # 53 "/usr/include/libio.h" 3 4
    # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdarg.h" 1 3 4
    # 40 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdarg.h" 3 4
    typedef __builtin_va_list __gnuc_va_list;
    # 54 "/usr/include/libio.h" 2 3 4
    # 170 "/usr/include/libio.h" 3 4
    struct _IO_jump_t; struct _IO_FILE;
    # 180 "/usr/include/libio.h" 3 4
    typedef void _IO_lock_t;
    
    
    
    
    
    struct _IO_marker {
      struct _IO_marker *_next;
      struct _IO_FILE *_sbuf;
    
    
    
      int _pos;
    # 203 "/usr/include/libio.h" 3 4
    };
    
    
    enum __codecvt_result
    {
      __codecvt_ok,
      __codecvt_partial,
      __codecvt_error,
      __codecvt_noconv
    };
    # 271 "/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;
    # 319 "/usr/include/libio.h" 3 4
      __off64_t _offset;
    # 328 "/usr/include/libio.h" 3 4
      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_;
    # 364 "/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);
    # 416 "/usr/include/libio.h" 3 4
    extern int __underflow (_IO_FILE *);
    extern int __uflow (_IO_FILE *);
    extern int __overflow (_IO_FILE *, int);
    # 460 "/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__));
    extern int _IO_ferror (_IO_FILE *__fp) __attribute__ ((__nothrow__));
    
    extern int _IO_peekc_locked (_IO_FILE *__fp);
    
    
    
    
    
    extern void _IO_flockfile (_IO_FILE *) __attribute__ ((__nothrow__));
    extern void _IO_funlockfile (_IO_FILE *) __attribute__ ((__nothrow__));
    extern int _IO_ftrylockfile (_IO_FILE *) __attribute__ ((__nothrow__));
    # 490 "/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__));
    # 76 "/usr/include/stdio.h" 2 3 4
    
    
    
    
    typedef __gnuc_va_list va_list;
    # 91 "/usr/include/stdio.h" 3 4
    typedef __off_t off_t;
    # 103 "/usr/include/stdio.h" 3 4
    typedef __ssize_t ssize_t;
    
    
    
    
    
    
    
    typedef _G_fpos_t fpos_t;
    
    
    
    
    # 161 "/usr/include/stdio.h" 3 4
    # 1 "/usr/include/bits/stdio_lim.h" 1 3 4
    # 162 "/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__));
    
    extern int rename (__const char *__old, __const char *__new) __attribute__ ((__nothrow__));
    
    
    
    
    extern int renameat (int __oldfd, __const char *__old, int __newfd,
           __const char *__new) __attribute__ ((__nothrow__));
    
    
    
    
    
    
    
    
    extern FILE *tmpfile (void) __attribute__ ((__warn_unused_result__));
    # 206 "/usr/include/stdio.h" 3 4
    extern char *tmpnam (char *__s) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    extern char *tmpnam_r (char *__s) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    # 224 "/usr/include/stdio.h" 3 4
    extern char *tempnam (__const char *__dir, __const char *__pfx)
         __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    
    
    
    extern int fclose (FILE *__stream);
    
    
    
    
    extern int fflush (FILE *__stream);
    
    # 249 "/usr/include/stdio.h" 3 4
    extern int fflush_unlocked (FILE *__stream);
    # 263 "/usr/include/stdio.h" 3 4
    
    
    
    
    
    
    extern FILE *fopen (__const char *__restrict __filename,
          __const char *__restrict __modes) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern FILE *freopen (__const char *__restrict __filename,
            __const char *__restrict __modes,
            FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
    # 292 "/usr/include/stdio.h" 3 4
    
    # 303 "/usr/include/stdio.h" 3 4
    extern FILE *fdopen (int __fd, __const char *__modes) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    # 316 "/usr/include/stdio.h" 3 4
    extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes)
      __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    
    extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __attribute__ ((__nothrow__));
    
    
    
    extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
          int __modes, size_t __n) __attribute__ ((__nothrow__));
    
    
    
    
    
    extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
             size_t __size) __attribute__ ((__nothrow__));
    
    
    extern void setlinebuf (FILE *__stream) __attribute__ ((__nothrow__));
    
    
    
    
    
    
    
    
    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)));
    
    # 414 "/usr/include/stdio.h" 3 4
    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, ...) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern int scanf (__const char *__restrict __format, ...) __attribute__ ((__warn_unused_result__));
    
    extern int sscanf (__const char *__restrict __s,
         __const char *__restrict __format, ...) __attribute__ ((__nothrow__));
    # 445 "/usr/include/stdio.h" 3 4
    extern int fscanf (FILE *__restrict __stream, __const char *__restrict __format, ...) __asm__ ("" "__isoc99_fscanf")
    
                              __attribute__ ((__warn_unused_result__));
    extern int scanf (__const char *__restrict __format, ...) __asm__ ("" "__isoc99_scanf")
                             __attribute__ ((__warn_unused_result__));
    extern int sscanf (__const char *__restrict __s, __const char *__restrict __format, ...) __asm__ ("" "__isoc99_sscanf") __attribute__ ((__nothrow__))
    
                          ;
    # 465 "/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))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg)
         __attribute__ ((__format__ (__scanf__, 1, 0))) __attribute__ ((__warn_unused_result__));
    
    
    extern int vsscanf (__const char *__restrict __s,
          __const char *__restrict __format, __gnuc_va_list __arg)
         __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__scanf__, 2, 0)));
    # 496 "/usr/include/stdio.h" 3 4
    extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vfscanf")
    
    
    
         __attribute__ ((__format__ (__scanf__, 2, 0))) __attribute__ ((__warn_unused_result__));
    extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vscanf")
    
         __attribute__ ((__format__ (__scanf__, 1, 0))) __attribute__ ((__warn_unused_result__));
    extern int vsscanf (__const char *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vsscanf") __attribute__ ((__nothrow__))
    
    
    
         __attribute__ ((__format__ (__scanf__, 2, 0)));
    # 524 "/usr/include/stdio.h" 3 4
    
    
    
    
    
    
    
    
    
    extern int fgetc (FILE *__stream);
    extern int getc (FILE *__stream);
    
    
    
    
    
    extern int getchar (void);
    
    # 552 "/usr/include/stdio.h" 3 4
    extern int getc_unlocked (FILE *__stream);
    extern int getchar_unlocked (void);
    # 563 "/usr/include/stdio.h" 3 4
    extern int fgetc_unlocked (FILE *__stream);
    
    
    
    
    
    
    
    
    
    
    
    extern int fputc (int __c, FILE *__stream);
    extern int putc (int __c, FILE *__stream);
    
    
    
    
    
    extern int putchar (int __c);
    
    # 596 "/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)
         __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    
    extern char *gets (char *__s) __attribute__ ((__warn_unused_result__));
    
    # 658 "/usr/include/stdio.h" 3 4
    extern __ssize_t __getdelim (char **__restrict __lineptr,
              size_t *__restrict __n, int __delimiter,
              FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
    extern __ssize_t getdelim (char **__restrict __lineptr,
            size_t *__restrict __n, int __delimiter,
            FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    
    
    extern __ssize_t getline (char **__restrict __lineptr,
           size_t *__restrict __n,
           FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    
    
    
    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) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern size_t fwrite (__const void *__restrict __ptr, size_t __size,
            size_t __n, FILE *__restrict __s);
    
    # 730 "/usr/include/stdio.h" 3 4
    extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
             size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
    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) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern void rewind (FILE *__stream);
    
    # 766 "/usr/include/stdio.h" 3 4
    extern int fseeko (FILE *__stream, __off_t __off, int __whence);
    
    
    
    
    extern __off_t ftello (FILE *__stream) __attribute__ ((__warn_unused_result__));
    # 785 "/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);
    # 808 "/usr/include/stdio.h" 3 4
    
    # 817 "/usr/include/stdio.h" 3 4
    
    
    extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__));
    
    extern int feof (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    extern int ferror (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__));
    extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    
    
    
    extern void perror (__const char *__s);
    
    
    
    
    
    
    # 1 "/usr/include/bits/sys_errlist.h" 1 3 4
    # 27 "/usr/include/bits/sys_errlist.h" 3 4
    extern int sys_nerr;
    extern __const char *__const sys_errlist[];
    # 847 "/usr/include/stdio.h" 2 3 4
    
    
    
    
    extern int fileno (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    # 866 "/usr/include/stdio.h" 3 4
    extern FILE *popen (__const char *__command, __const char *__modes) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    extern int pclose (FILE *__stream);
    
    
    
    
    
    extern char *ctermid (char *__s) __attribute__ ((__nothrow__));
    # 906 "/usr/include/stdio.h" 3 4
    extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__));
    
    
    
    extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__));
    # 927 "/usr/include/stdio.h" 3 4
    # 1 "/usr/include/bits/stdio.h" 1 3 4
    # 44 "/usr/include/bits/stdio.h" 3 4
    extern __inline int
    getchar (void)
    {
      return _IO_getc (stdin);
    }
    
    
    
    
    extern __inline int
    fgetc_unlocked (FILE *__fp)
    {
      return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
    }
    
    
    
    
    
    extern __inline int
    getc_unlocked (FILE *__fp)
    {
      return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
    }
    
    
    extern __inline int
    getchar_unlocked (void)
    {
      return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++);
    }
    
    
    
    
    extern __inline int
    putchar (int __c)
    {
      return _IO_putc (__c, stdout);
    }
    
    
    
    
    extern __inline int
    fputc_unlocked (int __c, FILE *__stream)
    {
      return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
    }
    
    
    
    
    
    extern __inline int
    putc_unlocked (int __c, FILE *__stream)
    {
      return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
    }
    
    
    extern __inline int
    putchar_unlocked (int __c)
    {
      return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c)));
    }
    # 125 "/usr/include/bits/stdio.h" 3 4
    extern __inline int
    __attribute__ ((__nothrow__)) feof_unlocked (FILE *__stream)
    {
      return (((__stream)->_flags & 0x10) != 0);
    }
    
    
    extern __inline int
    __attribute__ ((__nothrow__)) ferror_unlocked (FILE *__stream)
    {
      return (((__stream)->_flags & 0x20) != 0);
    }
    # 928 "/usr/include/stdio.h" 2 3 4
    
    
    # 1 "/usr/include/bits/stdio2.h" 1 3 4
    # 24 "/usr/include/bits/stdio2.h" 3 4
    extern int __sprintf_chk (char *__restrict __s, int __flag, size_t __slen,
         __const char *__restrict __format, ...) __attribute__ ((__nothrow__));
    extern int __vsprintf_chk (char *__restrict __s, int __flag, size_t __slen,
          __const char *__restrict __format,
          __gnuc_va_list __ap) __attribute__ ((__nothrow__));
    
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
    __attribute__ ((__nothrow__)) sprintf (char *__restrict __s, __const char *__restrict __fmt, ...)
    {
      return __builtin___sprintf_chk (__s, 2 - 1,
          __builtin_object_size (__s, 2 > 1), __fmt, __builtin_va_arg_pack ());
    }
    
    
    
    
    
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
    __attribute__ ((__nothrow__)) vsprintf (char *__restrict __s, __const char *__restrict __fmt, __gnuc_va_list __ap)
    
    {
      return __builtin___vsprintf_chk (__s, 2 - 1,
           __builtin_object_size (__s, 2 > 1), __fmt, __ap);
    }
    
    
    
    extern int __snprintf_chk (char *__restrict __s, size_t __n, int __flag,
          size_t __slen, __const char *__restrict __format,
          ...) __attribute__ ((__nothrow__));
    extern int __vsnprintf_chk (char *__restrict __s, size_t __n, int __flag,
           size_t __slen, __const char *__restrict __format,
           __gnuc_va_list __ap) __attribute__ ((__nothrow__));
    
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
    __attribute__ ((__nothrow__)) snprintf (char *__restrict __s, size_t __n, __const char *__restrict __fmt, ...)
    
    {
      return __builtin___snprintf_chk (__s, __n, 2 - 1,
           __builtin_object_size (__s, 2 > 1), __fmt, __builtin_va_arg_pack ());
    }
    
    
    
    
    
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
    __attribute__ ((__nothrow__)) vsnprintf (char *__restrict __s, size_t __n, __const char *__restrict __fmt, __gnuc_va_list __ap)
    
    {
      return __builtin___vsnprintf_chk (__s, __n, 2 - 1,
            __builtin_object_size (__s, 2 > 1), __fmt, __ap);
    }
    
    
    
    
    
    extern int __fprintf_chk (FILE *__restrict __stream, int __flag,
         __const char *__restrict __format, ...);
    extern int __printf_chk (int __flag, __const char *__restrict __format, ...);
    extern int __vfprintf_chk (FILE *__restrict __stream, int __flag,
          __const char *__restrict __format, __gnuc_va_list __ap);
    extern int __vprintf_chk (int __flag, __const char *__restrict __format,
         __gnuc_va_list __ap);
    
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
    fprintf (FILE *__restrict __stream, __const char *__restrict __fmt, ...)
    {
      return __fprintf_chk (__stream, 2 - 1, __fmt,
       __builtin_va_arg_pack ());
    }
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
    printf (__const char *__restrict __fmt, ...)
    {
      return __printf_chk (2 - 1, __fmt, __builtin_va_arg_pack ());
    }
    
    
    
    
    
    
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
    vprintf (__const char *__restrict __fmt, __gnuc_va_list __ap)
    {
    
      return __vfprintf_chk (stdout, 2 - 1, __fmt, __ap);
    
    
    
    }
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
    vfprintf (FILE *__restrict __stream,
       __const char *__restrict __fmt, __gnuc_va_list __ap)
    {
      return __vfprintf_chk (__stream, 2 - 1, __fmt, __ap);
    }
    # 220 "/usr/include/bits/stdio2.h" 3 4
    extern char *__gets_chk (char *__str, size_t) __attribute__ ((__warn_unused_result__));
    extern char *__gets_warn (char *__str) __asm__ ("" "gets")
         __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("please use fgets or getline instead, gets can't " "specify buffer size")))
                                   ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char *
    gets (char *__str)
    {
      if (__builtin_object_size (__str, 2 > 1) != (size_t) -1)
        return __gets_chk (__str, __builtin_object_size (__str, 2 > 1));
      return __gets_warn (__str);
    }
    
    extern char *__fgets_chk (char *__restrict __s, size_t __size, int __n,
         FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
    extern char *__fgets_alias (char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("" "fgets")
    
                                            __attribute__ ((__warn_unused_result__));
    extern char *__fgets_chk_warn (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __asm__ ("" "__fgets_chk")
    
    
         __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgets called with bigger size than length " "of destination buffer")))
                                     ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char *
    fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
    {
      if (__builtin_object_size (__s, 2 > 1) != (size_t) -1)
        {
          if (!__builtin_constant_p (__n) || __n <= 0)
     return __fgets_chk (__s, __builtin_object_size (__s, 2 > 1), __n, __stream);
    
          if ((size_t) __n > __builtin_object_size (__s, 2 > 1))
     return __fgets_chk_warn (__s, __builtin_object_size (__s, 2 > 1), __n, __stream);
        }
      return __fgets_alias (__s, __n, __stream);
    }
    
    extern size_t __fread_chk (void *__restrict __ptr, size_t __ptrlen,
          size_t __size, size_t __n,
          FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
    extern size_t __fread_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread")
    
    
                __attribute__ ((__warn_unused_result__));
    extern size_t __fread_chk_warn (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "__fread_chk")
    
    
    
    
         __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fread called with bigger size * nmemb than length " "of destination buffer")))
                                     ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t
    fread (void *__restrict __ptr, size_t __size, size_t __n,
           FILE *__restrict __stream)
    {
      if (__builtin_object_size (__ptr, 0) != (size_t) -1)
        {
          if (!__builtin_constant_p (__size)
       || !__builtin_constant_p (__n)
       || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2)))
     return __fread_chk (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream);
    
          if (__size * __n > __builtin_object_size (__ptr, 0))
     return __fread_chk_warn (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream);
        }
      return __fread_alias (__ptr, __size, __n, __stream);
    }
    # 319 "/usr/include/bits/stdio2.h" 3 4
    extern size_t __fread_unlocked_chk (void *__restrict __ptr, size_t __ptrlen,
            size_t __size, size_t __n,
            FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
    extern size_t __fread_unlocked_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread_unlocked")
    
    
                         __attribute__ ((__warn_unused_result__));
    extern size_t __fread_unlocked_chk_warn (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "__fread_unlocked_chk")
    
    
    
    
         __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fread_unlocked called with bigger size * nmemb than " "length of destination buffer")))
                                            ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t
    fread_unlocked (void *__restrict __ptr, size_t __size, size_t __n,
      FILE *__restrict __stream)
    {
      if (__builtin_object_size (__ptr, 0) != (size_t) -1)
        {
          if (!__builtin_constant_p (__size)
       || !__builtin_constant_p (__n)
       || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2)))
     return __fread_unlocked_chk (__ptr, __builtin_object_size (__ptr, 0), __size, __n,
             __stream);
    
          if (__size * __n > __builtin_object_size (__ptr, 0))
     return __fread_unlocked_chk_warn (__ptr, __builtin_object_size (__ptr, 0), __size, __n,
           __stream);
        }
    
    
      if (__builtin_constant_p (__size)
          && __builtin_constant_p (__n)
          && (__size | __n) < (((size_t) 1) << (8 * sizeof (size_t) / 2))
          && __size * __n <= 8)
        {
          size_t __cnt = __size * __n;
          char *__cptr = (char *) __ptr;
          if (__cnt == 0)
     return 0;
    
          for (; __cnt > 0; --__cnt)
     {
       int __c = (__builtin_expect (((__stream)->_IO_read_ptr >= (__stream)->_IO_read_end), 0) ? __uflow (__stream) : *(unsigned char *) (__stream)->_IO_read_ptr++);
       if (__c == (-1))
         break;
       *__cptr++ = __c;
     }
          return (__cptr - (char *) __ptr) / __size;
        }
    
      return __fread_unlocked_alias (__ptr, __size, __n, __stream);
    }
    # 931 "/usr/include/stdio.h" 2 3 4
    
    
    
    
    
    
    # 21 "util.c" 2
    # 1 "/usr/include/stdlib.h" 1 3 4
    # 33 "/usr/include/stdlib.h" 3 4
    # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4
    # 323 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 3 4
    typedef int wchar_t;
    # 34 "/usr/include/stdlib.h" 2 3 4
    
    
    
    
    
    
    
    
    # 1 "/usr/include/bits/waitflags.h" 1 3 4
    # 43 "/usr/include/stdlib.h" 2 3 4
    # 1 "/usr/include/bits/waitstatus.h" 1 3 4
    # 65 "/usr/include/bits/waitstatus.h" 3 4
    # 1 "/usr/include/endian.h" 1 3 4
    # 37 "/usr/include/endian.h" 3 4
    # 1 "/usr/include/bits/endian.h" 1 3 4
    # 38 "/usr/include/endian.h" 2 3 4
    # 61 "/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
    # 62 "/usr/include/endian.h" 2 3 4
    # 66 "/usr/include/bits/waitstatus.h" 2 3 4
    
    union wait
      {
        int w_status;
        struct
          {
    
     unsigned int __w_termsig:7;
     unsigned int __w_coredump:1;
     unsigned int __w_retcode:8;
     unsigned int:16;
    
    
    
    
    
    
    
          } __wait_terminated;
        struct
          {
    
     unsigned int __w_stopval:8;
     unsigned int __w_stopsig:8;
     unsigned int:16;
    
    
    
    
    
    
          } __wait_stopped;
      };
    # 44 "/usr/include/stdlib.h" 2 3 4
    # 68 "/usr/include/stdlib.h" 3 4
    typedef union
      {
        union wait *__uptr;
        int *__iptr;
      } __WAIT_STATUS __attribute__ ((__transparent_union__));
    # 96 "/usr/include/stdlib.h" 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;
    
    
    # 140 "/usr/include/stdlib.h" 3 4
    extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern double atof (__const char *__nptr)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    extern int atoi (__const char *__nptr)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    extern long int atol (__const char *__nptr)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    __extension__ extern long long int atoll (__const char *__nptr)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    extern double strtod (__const char *__restrict __nptr,
            char **__restrict __endptr)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    extern float strtof (__const char *__restrict __nptr,
           char **__restrict __endptr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    extern long double strtold (__const char *__restrict __nptr,
           char **__restrict __endptr)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    extern long int strtol (__const char *__restrict __nptr,
       char **__restrict __endptr, int __base)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    extern unsigned long int strtoul (__const char *__restrict __nptr,
          char **__restrict __endptr, int __base)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    __extension__
    extern long long int strtoq (__const char *__restrict __nptr,
            char **__restrict __endptr, int __base)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    __extension__
    extern unsigned long long int strtouq (__const char *__restrict __nptr,
               char **__restrict __endptr, int __base)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    __extension__
    extern long long int strtoll (__const char *__restrict __nptr,
             char **__restrict __endptr, int __base)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    __extension__
    extern unsigned long long int strtoull (__const char *__restrict __nptr,
         char **__restrict __endptr, int __base)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    # 277 "/usr/include/stdlib.h" 3 4
    
    extern __inline double
    __attribute__ ((__nothrow__)) atof (__const char *__nptr)
    {
      return strtod (__nptr, (char **) ((void *)0));
    }
    extern __inline int
    __attribute__ ((__nothrow__)) atoi (__const char *__nptr)
    {
      return (int) strtol (__nptr, (char **) ((void *)0), 10);
    }
    extern __inline long int
    __attribute__ ((__nothrow__)) atol (__const char *__nptr)
    {
      return strtol (__nptr, (char **) ((void *)0), 10);
    }
    
    
    
    
    __extension__ extern __inline long long int
    __attribute__ ((__nothrow__)) atoll (__const char *__nptr)
    {
      return strtoll (__nptr, (char **) ((void *)0), 10);
    }
    
    # 311 "/usr/include/stdlib.h" 3 4
    extern char *l64a (long int __n) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    extern long int a64l (__const char *__s)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    # 1 "/usr/include/sys/types.h" 1 3 4
    # 28 "/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;
    # 61 "/usr/include/sys/types.h" 3 4
    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;
    # 99 "/usr/include/sys/types.h" 3 4
    typedef __pid_t pid_t;
    
    
    
    
    
    typedef __id_t id_t;
    # 116 "/usr/include/sys/types.h" 3 4
    typedef __daddr_t daddr_t;
    typedef __caddr_t caddr_t;
    
    
    
    
    
    typedef __key_t key_t;
    # 133 "/usr/include/sys/types.h" 3 4
    # 1 "/usr/include/time.h" 1 3 4
    # 58 "/usr/include/time.h" 3 4
    
    
    typedef __clock_t clock_t;
    
    
    
    # 74 "/usr/include/time.h" 3 4
    
    
    typedef __time_t time_t;
    
    
    
    # 92 "/usr/include/time.h" 3 4
    typedef __clockid_t clockid_t;
    # 104 "/usr/include/time.h" 3 4
    typedef __timer_t timer_t;
    # 134 "/usr/include/sys/types.h" 2 3 4
    # 147 "/usr/include/sys/types.h" 3 4
    # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4
    # 148 "/usr/include/sys/types.h" 2 3 4
    
    
    
    typedef unsigned long int ulong;
    typedef unsigned short int ushort;
    typedef unsigned int uint;
    # 195 "/usr/include/sys/types.h" 3 4
    typedef int int8_t __attribute__ ((__mode__ (__QI__)));
    typedef int int16_t __attribute__ ((__mode__ (__HI__)));
    typedef int int32_t __attribute__ ((__mode__ (__SI__)));
    typedef int int64_t __attribute__ ((__mode__ (__DI__)));
    
    
    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__)));
    # 220 "/usr/include/sys/types.h" 3 4
    # 1 "/usr/include/sys/select.h" 1 3 4
    # 31 "/usr/include/sys/select.h" 3 4
    # 1 "/usr/include/bits/select.h" 1 3 4
    # 23 "/usr/include/bits/select.h" 3 4
    # 1 "/usr/include/bits/wordsize.h" 1 3 4
    # 24 "/usr/include/bits/select.h" 2 3 4
    # 32 "/usr/include/sys/select.h" 2 3 4
    
    
    # 1 "/usr/include/bits/sigset.h" 1 3 4
    # 24 "/usr/include/bits/sigset.h" 3 4
    typedef int __sig_atomic_t;
    
    
    
    
    typedef struct
      {
        unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
      } __sigset_t;
    # 35 "/usr/include/sys/select.h" 2 3 4
    
    
    
    typedef __sigset_t sigset_t;
    
    
    
    
    
    # 1 "/usr/include/time.h" 1 3 4
    # 120 "/usr/include/time.h" 3 4
    struct timespec
      {
        __time_t tv_sec;
        long int tv_nsec;
      };
    # 45 "/usr/include/sys/select.h" 2 3 4
    
    # 1 "/usr/include/bits/time.h" 1 3 4
    # 75 "/usr/include/bits/time.h" 3 4
    struct timeval
      {
        __time_t tv_sec;
        __suseconds_t tv_usec;
      };
    # 47 "/usr/include/sys/select.h" 2 3 4
    
    
    typedef __suseconds_t suseconds_t;
    
    
    
    
    
    typedef long int __fd_mask;
    # 67 "/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;
    # 99 "/usr/include/sys/select.h" 3 4
    
    # 109 "/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);
    # 121 "/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);
    
    
    
    # 221 "/usr/include/sys/types.h" 2 3 4
    
    
    # 1 "/usr/include/sys/sysmacros.h" 1 3 4
    # 30 "/usr/include/sys/sysmacros.h" 3 4
    __extension__
    extern unsigned int gnu_dev_major (unsigned long long int __dev)
         __attribute__ ((__nothrow__));
    __extension__
    extern unsigned int gnu_dev_minor (unsigned long long int __dev)
         __attribute__ ((__nothrow__));
    __extension__
    extern unsigned long long int gnu_dev_makedev (unsigned int __major,
                unsigned int __minor)
         __attribute__ ((__nothrow__));
    
    
    __extension__ extern __inline unsigned int
    __attribute__ ((__nothrow__)) gnu_dev_major (unsigned long long int __dev)
    {
      return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff);
    }
    
    __extension__ extern __inline unsigned int
    __attribute__ ((__nothrow__)) gnu_dev_minor (unsigned long long int __dev)
    {
      return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff);
    }
    
    __extension__ extern __inline unsigned long long int
    __attribute__ ((__nothrow__)) gnu_dev_makedev (unsigned int __major, unsigned int __minor)
    {
      return ((__minor & 0xff) | ((__major & 0xfff) << 8)
       | (((unsigned long long int) (__minor & ~0xff)) << 12)
       | (((unsigned long long int) (__major & ~0xfff)) << 32));
    }
    # 224 "/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;
    # 271 "/usr/include/sys/types.h" 3 4
    # 1 "/usr/include/bits/pthreadtypes.h" 1 3 4
    # 23 "/usr/include/bits/pthreadtypes.h" 3 4
    # 1 "/usr/include/bits/wordsize.h" 1 3 4
    # 24 "/usr/include/bits/pthreadtypes.h" 2 3 4
    # 50 "/usr/include/bits/pthreadtypes.h" 3 4
    typedef unsigned long int pthread_t;
    
    
    typedef union
    {
      char __size[36];
      long int __align;
    } pthread_attr_t;
    # 67 "/usr/include/bits/pthreadtypes.h" 3 4
    typedef struct __pthread_internal_slist
    {
      struct __pthread_internal_slist *__next;
    } __pthread_slist_t;
    
    
    
    
    
    typedef union
    {
      struct __pthread_mutex_s
      {
        int __lock;
        unsigned int __count;
        int __owner;
    
    
    
    
    
        int __kind;
    
    
    
    
    
        unsigned int __nusers;
        __extension__ union
        {
          int __spins;
          __pthread_slist_t __list;
        };
    
      } __data;
      char __size[24];
      long int __align;
    } pthread_mutex_t;
    
    typedef union
    {
      char __size[4];
      int __align;
    } pthread_mutexattr_t;
    
    
    
    
    typedef union
    {
      struct
      {
        int __lock;
        unsigned int __futex;
        __extension__ unsigned long long int __total_seq;
        __extension__ unsigned long long int __wakeup_seq;
        __extension__ unsigned long long int __woken_seq;
        void *__mutex;
        unsigned int __nwaiters;
        unsigned int __broadcast_seq;
      } __data;
      char __size[48];
      __extension__ long long int __align;
    } pthread_cond_t;
    
    typedef union
    {
      char __size[4];
      int __align;
    } pthread_condattr_t;
    
    
    
    typedef unsigned int pthread_key_t;
    
    
    
    typedef int pthread_once_t;
    
    
    
    
    
    typedef union
    {
    # 170 "/usr/include/bits/pthreadtypes.h" 3 4
      struct
      {
        int __lock;
        unsigned int __nr_readers;
        unsigned int __readers_wakeup;
        unsigned int __writer_wakeup;
        unsigned int __nr_readers_queued;
        unsigned int __nr_writers_queued;
    
    
        unsigned char __flags;
        unsigned char __shared;
        unsigned char __pad1;
        unsigned char __pad2;
        int __writer;
      } __data;
    
      char __size[32];
      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[20];
      long int __align;
    } pthread_barrier_t;
    
    typedef union
    {
      char __size[4];
      int __align;
    } pthread_barrierattr_t;
    # 272 "/usr/include/sys/types.h" 2 3 4
    
    
    
    # 321 "/usr/include/stdlib.h" 2 3 4
    
    
    
    
    
    
    extern long int random (void) __attribute__ ((__nothrow__));
    
    
    extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__));
    
    
    
    
    
    extern char *initstate (unsigned int __seed, char *__statebuf,
       size_t __statelen) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
    
    
    
    extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__)) __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__)) __attribute__ ((__nonnull__ (1, 2)));
    
    extern int srandom_r (unsigned int __seed, struct random_data *__buf)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
    
    extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
       size_t __statelen,
       struct random_data *__restrict __buf)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4)));
    
    extern int setstate_r (char *__restrict __statebuf,
             struct random_data *__restrict __buf)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    
    
    
    
    extern int rand (void) __attribute__ ((__nothrow__));
    
    extern void srand (unsigned int __seed) __attribute__ ((__nothrow__));
    
    
    
    
    extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__));
    
    
    
    
    
    
    
    extern double drand48 (void) __attribute__ ((__nothrow__));
    extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    extern long int lrand48 (void) __attribute__ ((__nothrow__));
    extern long int nrand48 (unsigned short int __xsubi[3])
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    extern long int mrand48 (void) __attribute__ ((__nothrow__));
    extern long int jrand48 (unsigned short int __xsubi[3])
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    extern void srand48 (long int __seedval) __attribute__ ((__nothrow__));
    extern unsigned short int *seed48 (unsigned short int __seed16v[3])
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__)) __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;
        unsigned long long int __a;
      };
    
    
    extern int drand48_r (struct drand48_data *__restrict __buffer,
            double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    extern int erand48_r (unsigned short int __xsubi[3],
            struct drand48_data *__restrict __buffer,
            double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    extern int lrand48_r (struct drand48_data *__restrict __buffer,
            long int *__restrict __result)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    extern int nrand48_r (unsigned short int __xsubi[3],
            struct drand48_data *__restrict __buffer,
            long int *__restrict __result)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    extern int mrand48_r (struct drand48_data *__restrict __buffer,
            long int *__restrict __result)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    extern int jrand48_r (unsigned short int __xsubi[3],
            struct drand48_data *__restrict __buffer,
            long int *__restrict __result)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
    
    extern int seed48_r (unsigned short int __seed16v[3],
           struct drand48_data *__buffer) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    extern int lcong48_r (unsigned short int __param[7],
            struct drand48_data *__buffer)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    
    
    
    
    
    
    
    extern void *malloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__));
    
    extern void *calloc (size_t __nmemb, size_t __size)
         __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    
    
    
    
    
    extern void *realloc (void *__ptr, size_t __size)
         __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    extern void free (void *__ptr) __attribute__ ((__nothrow__));
    
    
    
    
    extern void cfree (void *__ptr) __attribute__ ((__nothrow__));
    
    
    
    # 1 "/usr/include/alloca.h" 1 3 4
    # 25 "/usr/include/alloca.h" 3 4
    # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4
    # 26 "/usr/include/alloca.h" 2 3 4
    
    
    
    
    
    
    
    extern void *alloca (size_t __size) __attribute__ ((__nothrow__));
    
    
    
    
    
    
    # 498 "/usr/include/stdlib.h" 2 3 4
    
    
    
    
    
    extern void *valloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern void abort (void) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
    
    
    
    extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    # 531 "/usr/include/stdlib.h" 3 4
    
    
    
    
    
    extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    
    
    extern void exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
    # 554 "/usr/include/stdlib.h" 3 4
    
    
    
    
    
    
    extern void _Exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
    
    
    
    
    
    
    extern char *getenv (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern char *__secure_getenv (__const char *__name)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    extern int putenv (char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    
    extern int setenv (__const char *__name, __const char *__value, int __replace)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
    
    
    extern int unsetenv (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    
    
    extern int clearenv (void) __attribute__ ((__nothrow__));
    # 606 "/usr/include/stdlib.h" 3 4
    extern char *mktemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    # 620 "/usr/include/stdlib.h" 3 4
    extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    # 642 "/usr/include/stdlib.h" 3 4
    extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    # 663 "/usr/include/stdlib.h" 3 4
    extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    # 712 "/usr/include/stdlib.h" 3 4
    
    
    
    
    
    extern int system (__const char *__command) __attribute__ ((__warn_unused_result__));
    
    # 734 "/usr/include/stdlib.h" 3 4
    extern char *realpath (__const char *__restrict __name,
             char *__restrict __resolved) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    
    typedef int (*__compar_fn_t) (__const void *, __const void *);
    # 752 "/usr/include/stdlib.h" 3 4
    
    
    
    extern void *bsearch (__const void *__key, __const void *__base,
            size_t __nmemb, size_t __size, __compar_fn_t __compar)
         __attribute__ ((__nonnull__ (1, 2, 5))) __attribute__ ((__warn_unused_result__));
    
    
    
    extern void qsort (void *__base, size_t __nmemb, size_t __size,
         __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
    # 771 "/usr/include/stdlib.h" 3 4
    extern int abs (int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__));
    extern long int labs (long int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__));
    
    
    
    __extension__ extern long long int llabs (long long int __x)
         __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    
    
    extern div_t div (int __numer, int __denom)
         __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__));
    extern ldiv_t ldiv (long int __numer, long int __denom)
         __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    __extension__ extern lldiv_t lldiv (long long int __numer,
            long long int __denom)
         __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__));
    
    # 808 "/usr/include/stdlib.h" 3 4
    extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
         int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
         int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern char *gcvt (double __value, int __ndigit, char *__buf)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern char *qecvt (long double __value, int __ndigit,
          int *__restrict __decpt, int *__restrict __sign)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__));
    extern char *qfcvt (long double __value, int __ndigit,
          int *__restrict __decpt, int *__restrict __sign)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__));
    extern char *qgcvt (long double __value, int __ndigit, char *__buf)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
         int *__restrict __sign, char *__restrict __buf,
         size_t __len) __attribute__ ((__nothrow__)) __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__)) __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__)) __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__)) __attribute__ ((__nonnull__ (3, 4, 5)));
    
    
    
    
    
    
    
    extern int mblen (__const char *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    extern int mbtowc (wchar_t *__restrict __pwc,
         __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    
    extern size_t mbstowcs (wchar_t *__restrict __pwcs,
       __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__));
    
    extern size_t wcstombs (char *__restrict __s,
       __const wchar_t *__restrict __pwcs, size_t __n)
         __attribute__ ((__nothrow__));
    
    
    
    
    
    
    
    
    extern int rpmatch (__const char *__response) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    # 896 "/usr/include/stdlib.h" 3 4
    extern int getsubopt (char **__restrict __optionp,
            char *__const *__restrict __tokens,
            char **__restrict __valuep)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2, 3))) __attribute__ ((__warn_unused_result__));
    # 948 "/usr/include/stdlib.h" 3 4
    extern int getloadavg (double __loadavg[], int __nelem)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    
    # 1 "/usr/include/bits/stdlib.h" 1 3 4
    # 24 "/usr/include/bits/stdlib.h" 3 4
    extern char *__realpath_chk (__const char *__restrict __name,
            char *__restrict __resolved,
            size_t __resolvedlen) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    extern char *__realpath_alias (__const char *__restrict __name, char *__restrict __resolved) __asm__ ("" "realpath") __attribute__ ((__nothrow__))
    
                                                     __attribute__ ((__warn_unused_result__));
    extern char *__realpath_chk_warn (__const char *__restrict __name, char *__restrict __resolved, size_t __resolvedlen) __asm__ ("" "__realpath_chk") __attribute__ ((__nothrow__))
    
    
                                                    __attribute__ ((__warn_unused_result__))
         __attribute__((__warning__ ("second argument of realpath must be either NULL or at " "least PATH_MAX bytes long buffer")))
                                          ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char *
    __attribute__ ((__nothrow__)) realpath (__const char *__restrict __name, char *__restrict __resolved)
    {
      if (__builtin_object_size (__resolved, 2 > 1) != (size_t) -1)
        {
    
    
    
    
          return __realpath_chk (__name, __resolved, __builtin_object_size (__resolved, 2 > 1));
        }
    
      return __realpath_alias (__name, __resolved);
    }
    
    
    extern int __ptsname_r_chk (int __fd, char *__buf, size_t __buflen,
           size_t __nreal) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
    extern int __ptsname_r_alias (int __fd, char *__buf, size_t __buflen) __asm__ ("" "ptsname_r") __attribute__ ((__nothrow__))
    
         __attribute__ ((__nonnull__ (2)));
    extern int __ptsname_r_chk_warn (int __fd, char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__ptsname_r_chk") __attribute__ ((__nothrow__))
    
    
         __attribute__ ((__nonnull__ (2))) __attribute__((__warning__ ("ptsname_r called with buflen bigger than " "size of buf")))
                       ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
    __attribute__ ((__nothrow__)) ptsname_r (int __fd, char *__buf, size_t __buflen)
    {
      if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
        {
          if (!__builtin_constant_p (__buflen))
     return __ptsname_r_chk (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1));
          if (__buflen > __builtin_object_size (__buf, 2 > 1))
     return __ptsname_r_chk_warn (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1));
        }
      return __ptsname_r_alias (__fd, __buf, __buflen);
    }
    
    
    extern int __wctomb_chk (char *__s, wchar_t __wchar, size_t __buflen)
      __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    extern int __wctomb_alias (char *__s, wchar_t __wchar) __asm__ ("" "wctomb") __attribute__ ((__nothrow__))
                  __attribute__ ((__warn_unused_result__));
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) int
    __attribute__ ((__nothrow__)) wctomb (char *__s, wchar_t __wchar)
    {
    
    
    
    
    
    
    
      if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 && 16 > __builtin_object_size (__s, 2 > 1))
        return __wctomb_chk (__s, __wchar, __builtin_object_size (__s, 2 > 1));
      return __wctomb_alias (__s, __wchar);
    }
    
    
    extern size_t __mbstowcs_chk (wchar_t *__restrict __dst,
             __const char *__restrict __src,
             size_t __len, size_t __dstlen) __attribute__ ((__nothrow__));
    extern size_t __mbstowcs_alias (wchar_t *__restrict __dst, __const char *__restrict __src, size_t __len) __asm__ ("" "mbstowcs") __attribute__ ((__nothrow__))
    
    
                                      ;
    extern size_t __mbstowcs_chk_warn (wchar_t *__restrict __dst, __const char *__restrict __src, size_t __len, size_t __dstlen) __asm__ ("" "__mbstowcs_chk") __attribute__ ((__nothrow__))
    
    
    
         __attribute__((__warning__ ("mbstowcs called with dst buffer smaller than len " "* sizeof (wchar_t)")))
                            ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) size_t
    __attribute__ ((__nothrow__)) mbstowcs (wchar_t *__restrict __dst, __const char *__restrict __src, size_t __len)
    
    {
      if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1)
        {
          if (!__builtin_constant_p (__len))
     return __mbstowcs_chk (__dst, __src, __len,
              __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t));
    
          if (__len > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t))
     return __mbstowcs_chk_warn (__dst, __src, __len,
             __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t));
        }
      return __mbstowcs_alias (__dst, __src, __len);
    }
    
    
    extern size_t __wcstombs_chk (char *__restrict __dst,
             __const wchar_t *__restrict __src,
             size_t __len, size_t __dstlen) __attribute__ ((__nothrow__));
    extern size_t __wcstombs_alias (char *__restrict __dst, __const wchar_t *__restrict __src, size_t __len) __asm__ ("" "wcstombs") __attribute__ ((__nothrow__))
    
    
                                      ;
    extern size_t __wcstombs_chk_warn (char *__restrict __dst, __const wchar_t *__restrict __src, size_t __len, size_t __dstlen) __asm__ ("" "__wcstombs_chk") __attribute__ ((__nothrow__))
    
    
    
         __attribute__((__warning__ ("wcstombs called with dst buffer smaller than len")));
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) size_t
    __attribute__ ((__nothrow__)) wcstombs (char *__restrict __dst, __const wchar_t *__restrict __src, size_t __len)
    
    {
      if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1)
        {
          if (!__builtin_constant_p (__len))
     return __wcstombs_chk (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1));
          if (__len > __builtin_object_size (__dst, 2 > 1))
     return __wcstombs_chk_warn (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1));
        }
      return __wcstombs_alias (__dst, __src, __len);
    }
    # 956 "/usr/include/stdlib.h" 2 3 4
    # 964 "/usr/include/stdlib.h" 3 4
    
    # 22 "util.c" 2
    # 1 "/usr/include/errno.h" 1 3 4
    # 32 "/usr/include/errno.h" 3 4
    
    
    
    
    # 1 "/usr/include/bits/errno.h" 1 3 4
    # 25 "/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
    # 5 "/usr/include/asm-generic/errno.h" 2 3 4
    # 1 "/usr/include/asm/errno.h" 2 3 4
    # 5 "/usr/include/linux/errno.h" 2 3 4
    # 26 "/usr/include/bits/errno.h" 2 3 4
    # 47 "/usr/include/bits/errno.h" 3 4
    extern int *__errno_location (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
    # 37 "/usr/include/errno.h" 2 3 4
    # 59 "/usr/include/errno.h" 3 4
    
    # 23 "util.c" 2
    # 1 "/usr/include/string.h" 1 3 4
    # 29 "/usr/include/string.h" 3 4
    
    
    
    
    
    # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4
    # 35 "/usr/include/string.h" 2 3 4
    
    
    
    
    
    
    
    
    
    extern void *memcpy (void *__restrict __dest,
           __const void *__restrict __src, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    extern void *memmove (void *__dest, __const void *__src, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    
    
    
    
    extern void *memccpy (void *__restrict __dest, __const void *__restrict __src,
            int __c, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    
    
    
    extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    extern int memcmp (__const void *__s1, __const void *__s2, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
    # 95 "/usr/include/string.h" 3 4
    extern void *memchr (__const void *__s, int __c, size_t __n)
          __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
    
    
    # 126 "/usr/include/string.h" 3 4
    
    
    extern char *strcpy (char *__restrict __dest, __const char *__restrict __src)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    extern char *strncpy (char *__restrict __dest,
            __const char *__restrict __src, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    extern char *strcat (char *__restrict __dest, __const char *__restrict __src)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    extern char *strncat (char *__restrict __dest, __const char *__restrict __src,
            size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    extern int strcmp (__const char *__s1, __const char *__s2)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
    
    extern int strncmp (__const char *__s1, __const char *__s2, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    extern int strcoll (__const char *__s1, __const char *__s2)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
    
    extern size_t strxfrm (char *__restrict __dest,
             __const char *__restrict __src, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
    
    
    
    
    
    
    # 1 "/usr/include/xlocale.h" 1 3 4
    # 28 "/usr/include/xlocale.h" 3 4
    typedef 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];
    } *__locale_t;
    
    
    typedef __locale_t locale_t;
    # 163 "/usr/include/string.h" 2 3 4
    
    
    extern int strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l)
         __attribute__ ((__nothrow__)) __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__)) __attribute__ ((__nonnull__ (2, 4)));
    
    
    
    
    
    extern char *strdup (__const char *__s)
         __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    
    
    extern char *strndup (__const char *__string, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
    # 210 "/usr/include/string.h" 3 4
    
    # 235 "/usr/include/string.h" 3 4
    extern char *strchr (__const char *__s, int __c)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
    # 262 "/usr/include/string.h" 3 4
    extern char *strrchr (__const char *__s, int __c)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
    
    
    # 281 "/usr/include/string.h" 3 4
    
    
    
    extern size_t strcspn (__const char *__s, __const char *__reject)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    extern size_t strspn (__const char *__s, __const char *__accept)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
    # 314 "/usr/include/string.h" 3 4
    extern char *strpbrk (__const char *__s, __const char *__accept)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
    # 342 "/usr/include/string.h" 3 4
    extern char *strstr (__const char *__haystack, __const char *__needle)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    
    
    extern char *strtok (char *__restrict __s, __const char *__restrict __delim)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
    
    
    
    
    extern char *__strtok_r (char *__restrict __s,
        __const char *__restrict __delim,
        char **__restrict __save_ptr)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
    
    extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim,
             char **__restrict __save_ptr)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
    # 397 "/usr/include/string.h" 3 4
    
    
    extern size_t strlen (__const char *__s)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    
    extern size_t strnlen (__const char *__string, size_t __maxlen)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    
    extern char *strerror (int __errnum) __attribute__ ((__nothrow__));
    
    # 427 "/usr/include/string.h" 3 4
    extern int strerror_r (int __errnum, char *__buf, size_t __buflen) __asm__ ("" "__xpg_strerror_r") __attribute__ ((__nothrow__))
    
                            __attribute__ ((__nonnull__ (2)));
    # 445 "/usr/include/string.h" 3 4
    extern char *strerror_l (int __errnum, __locale_t __l) __attribute__ ((__nothrow__));
    
    
    
    
    
    extern void __bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    extern void bcopy (__const void *__src, void *__dest, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    extern int bcmp (__const void *__s1, __const void *__s2, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
    # 489 "/usr/include/string.h" 3 4
    extern char *index (__const char *__s, int __c)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
    # 517 "/usr/include/string.h" 3 4
    extern char *rindex (__const char *__s, int __c)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    extern int ffs (int __i) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
    # 536 "/usr/include/string.h" 3 4
    extern int strcasecmp (__const char *__s1, __const char *__s2)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
    # 559 "/usr/include/string.h" 3 4
    extern char *strsep (char **__restrict __stringp,
           __const char *__restrict __delim)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    
    
    extern char *strsignal (int __sig) __attribute__ ((__nothrow__));
    
    
    extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    
    extern char *__stpncpy (char *__restrict __dest,
       __const char *__restrict __src, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    extern char *stpncpy (char *__restrict __dest,
            __const char *__restrict __src, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    # 634 "/usr/include/string.h" 3 4
    # 1 "/usr/include/bits/string.h" 1 3 4
    # 635 "/usr/include/string.h" 2 3 4
    
    
    # 1 "/usr/include/bits/string2.h" 1 3 4
    # 394 "/usr/include/bits/string2.h" 3 4
    extern void *__rawmemchr (const void *__s, int __c);
    # 969 "/usr/include/bits/string2.h" 3 4
    extern __inline size_t __strcspn_c1 (__const char *__s, int __reject);
    extern __inline size_t
    __strcspn_c1 (__const char *__s, int __reject)
    {
      register size_t __result = 0;
      while (__s[__result] != '\0' && __s[__result] != __reject)
        ++__result;
      return __result;
    }
    
    extern __inline size_t __strcspn_c2 (__const char *__s, int __reject1,
             int __reject2);
    extern __inline size_t
    __strcspn_c2 (__const char *__s, int __reject1, int __reject2)
    {
      register size_t __result = 0;
      while (__s[__result] != '\0' && __s[__result] != __reject1
      && __s[__result] != __reject2)
        ++__result;
      return __result;
    }
    
    extern __inline size_t __strcspn_c3 (__const char *__s, int __reject1,
             int __reject2, int __reject3);
    extern __inline size_t
    __strcspn_c3 (__const char *__s, int __reject1, int __reject2,
           int __reject3)
    {
      register size_t __result = 0;
      while (__s[__result] != '\0' && __s[__result] != __reject1
      && __s[__result] != __reject2 && __s[__result] != __reject3)
        ++__result;
      return __result;
    }
    # 1045 "/usr/include/bits/string2.h" 3 4
    extern __inline size_t __strspn_c1 (__const char *__s, int __accept);
    extern __inline size_t
    __strspn_c1 (__const char *__s, int __accept)
    {
      register size_t __result = 0;
    
      while (__s[__result] == __accept)
        ++__result;
      return __result;
    }
    
    extern __inline size_t __strspn_c2 (__const char *__s, int __accept1,
            int __accept2);
    extern __inline size_t
    __strspn_c2 (__const char *__s, int __accept1, int __accept2)
    {
      register size_t __result = 0;
    
      while (__s[__result] == __accept1 || __s[__result] == __accept2)
        ++__result;
      return __result;
    }
    
    extern __inline size_t __strspn_c3 (__const char *__s, int __accept1,
            int __accept2, int __accept3);
    extern __inline size_t
    __strspn_c3 (__const char *__s, int __accept1, int __accept2, int __accept3)
    {
      register size_t __result = 0;
    
      while (__s[__result] == __accept1 || __s[__result] == __accept2
      || __s[__result] == __accept3)
        ++__result;
      return __result;
    }
    # 1121 "/usr/include/bits/string2.h" 3 4
    extern __inline char *__strpbrk_c2 (__const char *__s, int __accept1,
             int __accept2);
    extern __inline char *
    __strpbrk_c2 (__const char *__s, int __accept1, int __accept2)
    {
    
      while (*__s != '\0' && *__s != __accept1 && *__s != __accept2)
        ++__s;
      return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s;
    }
    
    extern __inline char *__strpbrk_c3 (__const char *__s, int __accept1,
             int __accept2, int __accept3);
    extern __inline char *
    __strpbrk_c3 (__const char *__s, int __accept1, int __accept2,
           int __accept3)
    {
    
      while (*__s != '\0' && *__s != __accept1 && *__s != __accept2
      && *__s != __accept3)
        ++__s;
      return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s;
    }
    # 1172 "/usr/include/bits/string2.h" 3 4
    extern __inline char *__strtok_r_1c (char *__s, char __sep, char **__nextp);
    extern __inline char *
    __strtok_r_1c (char *__s, char __sep, char **__nextp)
    {
      char *__result;
      if (__s == ((void *)0))
        __s = *__nextp;
      while (*__s == __sep)
        ++__s;
      __result = ((void *)0);
      if (*__s != '\0')
        {
          __result = __s++;
          while (*__s != '\0')
     if (*__s++ == __sep)
       {
         __s[-1] = '\0';
         break;
       }
        }
      *__nextp = __s;
      return __result;
    }
    # 1204 "/usr/include/bits/string2.h" 3 4
    extern char *__strsep_g (char **__stringp, __const char *__delim);
    # 1222 "/usr/include/bits/string2.h" 3 4
    extern __inline char *__strsep_1c (char **__s, char __reject);
    extern __inline char *
    __strsep_1c (char **__s, char __reject)
    {
      register char *__retval = *__s;
      if (__retval != ((void *)0) && (*__s = (__extension__ (__builtin_constant_p (__reject) && !__builtin_constant_p (__retval) && (__reject) == '\0' ? (char *) __rawmemchr (__retval, __reject) : __builtin_strchr (__retval, __reject)))) != ((void *)0))
        *(*__s)++ = '\0';
      return __retval;
    }
    
    extern __inline char *__strsep_2c (char **__s, char __reject1, char __reject2);
    extern __inline char *
    __strsep_2c (char **__s, char __reject1, char __reject2)
    {
      register char *__retval = *__s;
      if (__retval != ((void *)0))
        {
          register char *__cp = __retval;
          while (1)
     {
       if (*__cp == '\0')
         {
           __cp = ((void *)0);
       break;
         }
       if (*__cp == __reject1 || *__cp == __reject2)
         {
           *__cp++ = '\0';
           break;
         }
       ++__cp;
     }
          *__s = __cp;
        }
      return __retval;
    }
    
    extern __inline char *__strsep_3c (char **__s, char __reject1, char __reject2,
           char __reject3);
    extern __inline char *
    __strsep_3c (char **__s, char __reject1, char __reject2, char __reject3)
    {
      register char *__retval = *__s;
      if (__retval != ((void *)0))
        {
          register char *__cp = __retval;
          while (1)
     {
       if (*__cp == '\0')
         {
           __cp = ((void *)0);
       break;
         }
       if (*__cp == __reject1 || *__cp == __reject2 || *__cp == __reject3)
         {
           *__cp++ = '\0';
           break;
         }
       ++__cp;
     }
          *__s = __cp;
        }
      return __retval;
    }
    # 1303 "/usr/include/bits/string2.h" 3 4
    extern char *__strdup (__const char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__));
    # 1322 "/usr/include/bits/string2.h" 3 4
    extern char *__strndup (__const char *__string, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__malloc__));
    # 638 "/usr/include/string.h" 2 3 4
    
    
    
    
    # 1 "/usr/include/bits/string3.h" 1 3 4
    # 23 "/usr/include/bits/string3.h" 3 4
    extern void __warn_memset_zero_len (void) __attribute__((__warning__ ("memset used with constant zero length parameter; this could be due to transposed parameters")))
                                                                                                       ;
    # 48 "/usr/include/bits/string3.h" 3 4
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) void *
    __attribute__ ((__nothrow__)) memcpy (void *__restrict __dest, __const void *__restrict __src, size_t __len)
    
    {
      return __builtin___memcpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 0));
    }
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) void *
    __attribute__ ((__nothrow__)) memmove (void *__dest, __const void *__src, size_t __len)
    {
      return __builtin___memmove_chk (__dest, __src, __len, __builtin_object_size (__dest, 0));
    }
    # 76 "/usr/include/bits/string3.h" 3 4
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) void *
    __attribute__ ((__nothrow__)) memset (void *__dest, int __ch, size_t __len)
    {
      if (__builtin_constant_p (__len) && __len == 0
          && (!__builtin_constant_p (__ch) || __ch != 0))
        {
          __warn_memset_zero_len ();
          return __dest;
        }
      return __builtin___memset_chk (__dest, __ch, __len, __builtin_object_size (__dest, 0));
    }
    
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) void
    __attribute__ ((__nothrow__)) bcopy (__const void *__src, void *__dest, size_t __len)
    {
      (void) __builtin___memmove_chk (__dest, __src, __len, __builtin_object_size (__dest, 0));
    }
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) void
    __attribute__ ((__nothrow__)) bzero (void *__dest, size_t __len)
    {
      (void) __builtin___memset_chk (__dest, '\0', __len, __builtin_object_size (__dest, 0));
    }
    
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) char *
    __attribute__ ((__nothrow__)) strcpy (char *__restrict __dest, __const char *__restrict __src)
    {
      return __builtin___strcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1));
    }
    # 117 "/usr/include/bits/string3.h" 3 4
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) char *
    __attribute__ ((__nothrow__)) strncpy (char *__restrict __dest, __const char *__restrict __src, size_t __len)
    
    {
      return __builtin___strncpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 2 > 1));
    }
    
    
    extern char *__stpncpy_chk (char *__dest, __const char *__src, size_t __n,
           size_t __destlen) __attribute__ ((__nothrow__));
    extern char *__stpncpy_alias (char *__dest, __const char *__src, size_t __n) __asm__ ("" "stpncpy") __attribute__ ((__nothrow__))
    
                                     ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) char *
    __attribute__ ((__nothrow__)) stpncpy (char *__dest, __const char *__src, size_t __n)
    {
      if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1
          && (!__builtin_constant_p (__n) || __n <= __builtin_object_size (__dest, 2 > 1)))
        return __stpncpy_chk (__dest, __src, __n, __builtin_object_size (__dest, 2 > 1));
      return __stpncpy_alias (__dest, __src, __n);
    }
    
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) char *
    __attribute__ ((__nothrow__)) strcat (char *__restrict __dest, __const char *__restrict __src)
    {
      return __builtin___strcat_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1));
    }
    
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) char *
    __attribute__ ((__nothrow__)) strncat (char *__restrict __dest, __const char *__restrict __src, size_t __len)
    
    {
      return __builtin___strncat_chk (__dest, __src, __len, __builtin_object_size (__dest, 2 > 1));
    }
    # 643 "/usr/include/string.h" 2 3 4
    
    
    
    
    # 24 "util.c" 2
    
    # 1 "/usr/include/netinet/in.h" 1 3 4
    # 24 "/usr/include/netinet/in.h" 3 4
    # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdint.h" 1 3 4
    
    
    # 1 "/usr/include/stdint.h" 1 3 4
    # 27 "/usr/include/stdint.h" 3 4
    # 1 "/usr/include/bits/wchar.h" 1 3 4
    # 28 "/usr/include/stdint.h" 2 3 4
    # 1 "/usr/include/bits/wordsize.h" 1 3 4
    # 29 "/usr/include/stdint.h" 2 3 4
    # 49 "/usr/include/stdint.h" 3 4
    typedef unsigned char uint8_t;
    typedef unsigned short int uint16_t;
    
    typedef unsigned int uint32_t;
    
    
    
    
    
    __extension__
    typedef unsigned long long int uint64_t;
    
    
    
    
    
    
    typedef signed char int_least8_t;
    typedef short int int_least16_t;
    typedef int int_least32_t;
    
    
    
    __extension__
    typedef long long int int_least64_t;
    
    
    
    typedef unsigned char uint_least8_t;
    typedef unsigned short int uint_least16_t;
    typedef unsigned int uint_least32_t;
    
    
    
    __extension__
    typedef unsigned long long int uint_least64_t;
    
    
    
    
    
    
    typedef signed char int_fast8_t;
    
    
    
    
    
    typedef int int_fast16_t;
    typedef int int_fast32_t;
    __extension__
    typedef long long int int_fast64_t;
    
    
    
    typedef unsigned char uint_fast8_t;
    
    
    
    
    
    typedef unsigned int uint_fast16_t;
    typedef unsigned int uint_fast32_t;
    __extension__
    typedef unsigned long long int uint_fast64_t;
    # 126 "/usr/include/stdint.h" 3 4
    typedef int intptr_t;
    
    
    typedef unsigned int uintptr_t;
    # 138 "/usr/include/stdint.h" 3 4
    __extension__
    typedef long long int intmax_t;
    __extension__
    typedef unsigned long long int uintmax_t;
    # 4 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdint.h" 2 3 4
    # 25 "/usr/include/netinet/in.h" 2 3 4
    # 1 "/usr/include/sys/socket.h" 1 3 4
    # 26 "/usr/include/sys/socket.h" 3 4
    
    
    # 1 "/usr/include/sys/uio.h" 1 3 4
    # 26 "/usr/include/sys/uio.h" 3 4
    
    
    
    # 1 "/usr/include/bits/uio.h" 1 3 4
    # 44 "/usr/include/bits/uio.h" 3 4
    struct iovec
      {
        void *iov_base;
        size_t iov_len;
      };
    # 30 "/usr/include/sys/uio.h" 2 3 4
    # 40 "/usr/include/sys/uio.h" 3 4
    extern ssize_t readv (int __fd, __const struct iovec *__iovec, int __count)
      __attribute__ ((__warn_unused_result__));
    # 51 "/usr/include/sys/uio.h" 3 4
    extern ssize_t writev (int __fd, __const struct iovec *__iovec, int __count)
      __attribute__ ((__warn_unused_result__));
    # 66 "/usr/include/sys/uio.h" 3 4
    extern ssize_t preadv (int __fd, __const struct iovec *__iovec, int __count,
             __off_t __offset) __attribute__ ((__warn_unused_result__));
    # 78 "/usr/include/sys/uio.h" 3 4
    extern ssize_t pwritev (int __fd, __const struct iovec *__iovec, int __count,
       __off_t __offset) __attribute__ ((__warn_unused_result__));
    # 121 "/usr/include/sys/uio.h" 3 4
    
    # 29 "/usr/include/sys/socket.h" 2 3 4
    
    # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4
    # 31 "/usr/include/sys/socket.h" 2 3 4
    # 40 "/usr/include/sys/socket.h" 3 4
    # 1 "/usr/include/bits/socket.h" 1 3 4
    # 29 "/usr/include/bits/socket.h" 3 4
    # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4
    # 30 "/usr/include/bits/socket.h" 2 3 4
    
    
    
    
    
    typedef __socklen_t socklen_t;
    
    
    
    
    enum __socket_type
    {
      SOCK_STREAM = 1,
    
    
      SOCK_DGRAM = 2,
    
    
      SOCK_RAW = 3,
    
      SOCK_RDM = 4,
    
      SOCK_SEQPACKET = 5,
    
    
      SOCK_DCCP = 6,
    
      SOCK_PACKET = 10,
    
    
    
    
    
    
    
      SOCK_CLOEXEC = 02000000,
    
    
      SOCK_NONBLOCK = 04000
    
    
    };
    # 175 "/usr/include/bits/socket.h" 3 4
    # 1 "/usr/include/bits/sockaddr.h" 1 3 4
    # 29 "/usr/include/bits/sockaddr.h" 3 4
    typedef unsigned short int sa_family_t;
    # 176 "/usr/include/bits/socket.h" 2 3 4
    
    
    struct sockaddr
      {
        sa_family_t sa_family;
        char sa_data[14];
      };
    # 191 "/usr/include/bits/socket.h" 3 4
    struct sockaddr_storage
      {
        sa_family_t ss_family;
        unsigned long int __ss_align;
        char __ss_padding[(128 - (2 * sizeof (unsigned long int)))];
      };
    
    
    
    enum
      {
        MSG_OOB = 0x01,
    
        MSG_PEEK = 0x02,
    
        MSG_DONTROUTE = 0x04,
    
    
    
    
    
    
        MSG_CTRUNC = 0x08,
    
        MSG_PROXY = 0x10,
    
        MSG_TRUNC = 0x20,
    
        MSG_DONTWAIT = 0x40,
    
        MSG_EOR = 0x80,
    
        MSG_WAITALL = 0x100,
    
        MSG_FIN = 0x200,
    
        MSG_SYN = 0x400,
    
        MSG_CONFIRM = 0x800,
    
        MSG_RST = 0x1000,
    
        MSG_ERRQUEUE = 0x2000,
    
        MSG_NOSIGNAL = 0x4000,
    
        MSG_MORE = 0x8000,
    
        MSG_WAITFORONE = 0x10000,
    
    
        MSG_CMSG_CLOEXEC = 0x40000000
    
    
    
      };
    
    
    
    
    struct msghdr
      {
        void *msg_name;
        socklen_t msg_namelen;
    
        struct iovec *msg_iov;
        size_t msg_iovlen;
    
        void *msg_control;
        size_t msg_controllen;
    
    
    
    
        int msg_flags;
      };
    # 278 "/usr/include/bits/socket.h" 3 4
    struct cmsghdr
      {
        size_t cmsg_len;
    
    
    
    
        int cmsg_level;
        int cmsg_type;
    
        __extension__ unsigned char __cmsg_data [];
    
      };
    # 308 "/usr/include/bits/socket.h" 3 4
    extern struct cmsghdr *__cmsg_nxthdr (struct msghdr *__mhdr,
              struct cmsghdr *__cmsg) __attribute__ ((__nothrow__));
    
    
    
    
    extern __inline struct cmsghdr *
    __attribute__ ((__nothrow__)) __cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg)
    {
      if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr))
    
        return 0;
    
      __cmsg = (struct cmsghdr *) ((unsigned char *) __cmsg
              + (((__cmsg->cmsg_len) + sizeof (size_t) - 1) & (size_t) ~(sizeof (size_t) - 1)));
      if ((unsigned char *) (__cmsg + 1) > ((unsigned char *) __mhdr->msg_control
         + __mhdr->msg_controllen)
          || ((unsigned char *) __cmsg + (((__cmsg->cmsg_len) + sizeof (size_t) - 1) & (size_t) ~(sizeof (size_t) - 1))
       > ((unsigned char *) __mhdr->msg_control + __mhdr->msg_controllen)))
    
        return 0;
      return __cmsg;
    }
    
    
    
    
    enum
      {
        SCM_RIGHTS = 0x01
    
    
    
    
    
      };
    # 381 "/usr/include/bits/socket.h" 3 4
    # 1 "/usr/include/asm/socket.h" 1 3 4
    # 1 "/usr/include/asm-generic/socket.h" 1 3 4
    
    
    
    # 1 "/usr/include/asm/sockios.h" 1 3 4
    # 1 "/usr/include/asm-generic/sockios.h" 1 3 4
    # 1 "/usr/include/asm/sockios.h" 2 3 4
    # 5 "/usr/include/asm-generic/socket.h" 2 3 4
    # 1 "/usr/include/asm/socket.h" 2 3 4
    # 382 "/usr/include/bits/socket.h" 2 3 4
    # 415 "/usr/include/bits/socket.h" 3 4
    struct linger
      {
        int l_onoff;
        int l_linger;
      };
    
    
    
    
    
    
    
    
    
    extern int recvmmsg (int __fd, struct mmsghdr *__vmessages,
           unsigned int __vlen, int __flags,
           __const struct timespec *__tmo);
    
    
    # 41 "/usr/include/sys/socket.h" 2 3 4
    
    
    
    
    struct osockaddr
      {
        unsigned short int sa_family;
        unsigned char sa_data[14];
      };
    
    
    
    
    enum
    {
      SHUT_RD = 0,
    
      SHUT_WR,
    
      SHUT_RDWR
    
    };
    # 105 "/usr/include/sys/socket.h" 3 4
    extern int socket (int __domain, int __type, int __protocol) __attribute__ ((__nothrow__));
    
    
    
    
    
    extern int socketpair (int __domain, int __type, int __protocol,
             int __fds[2]) __attribute__ ((__nothrow__));
    
    
    extern int bind (int __fd, __const struct sockaddr * __addr, socklen_t __len)
         __attribute__ ((__nothrow__));
    
    
    extern int getsockname (int __fd, struct sockaddr *__restrict __addr,
       socklen_t *__restrict __len) __attribute__ ((__nothrow__));
    # 129 "/usr/include/sys/socket.h" 3 4
    extern int connect (int __fd, __const struct sockaddr * __addr, socklen_t __len);
    
    
    
    extern int getpeername (int __fd, struct sockaddr *__restrict __addr,
       socklen_t *__restrict __len) __attribute__ ((__nothrow__));
    
    
    
    
    
    
    extern ssize_t send (int __fd, __const void *__buf, size_t __n, int __flags);
    
    
    
    
    
    
    extern ssize_t recv (int __fd, void *__buf, size_t __n, int __flags);
    
    
    
    
    
    
    extern ssize_t sendto (int __fd, __const void *__buf, size_t __n,
             int __flags, __const struct sockaddr * __addr,
             socklen_t __addr_len);
    # 166 "/usr/include/sys/socket.h" 3 4
    extern ssize_t recvfrom (int __fd, void *__restrict __buf, size_t __n,
        int __flags, struct sockaddr *__restrict __addr,
        socklen_t *__restrict __addr_len);
    
    
    
    
    
    
    
    extern ssize_t sendmsg (int __fd, __const struct msghdr *__message,
       int __flags);
    
    
    
    
    
    
    extern ssize_t recvmsg (int __fd, struct msghdr *__message, int __flags);
    
    
    
    
    
    extern int getsockopt (int __fd, int __level, int __optname,
             void *__restrict __optval,
             socklen_t *__restrict __optlen) __attribute__ ((__nothrow__));
    
    
    
    
    extern int setsockopt (int __fd, int __level, int __optname,
             __const void *__optval, socklen_t __optlen) __attribute__ ((__nothrow__));
    
    
    
    
    
    extern int listen (int __fd, int __n) __attribute__ ((__nothrow__));
    # 214 "/usr/include/sys/socket.h" 3 4
    extern int accept (int __fd, struct sockaddr *__restrict __addr,
         socklen_t *__restrict __addr_len);
    # 232 "/usr/include/sys/socket.h" 3 4
    extern int shutdown (int __fd, int __how) __attribute__ ((__nothrow__));
    
    
    
    
    extern int sockatmark (int __fd) __attribute__ ((__nothrow__));
    
    
    
    
    
    
    
    extern int isfdtype (int __fd, int __fdtype) __attribute__ ((__nothrow__));
    
    
    
    
    
    # 1 "/usr/include/bits/socket2.h" 1 3 4
    # 24 "/usr/include/bits/socket2.h" 3 4
    extern ssize_t __recv_chk (int __fd, void *__buf, size_t __n, size_t __buflen,
          int __flags);
    extern ssize_t __recv_alias (int __fd, void *__buf, size_t __n, int __flags) __asm__ ("" "recv")
                              ;
    extern ssize_t __recv_chk_warn (int __fd, void *__buf, size_t __n, size_t __buflen, int __flags) __asm__ ("" "__recv_chk")
    
    
         __attribute__((__warning__ ("recv called with bigger length than size of destination " "buffer")))
                ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) ssize_t
    recv (int __fd, void *__buf, size_t __n, int __flags)
    {
      if (__builtin_object_size (__buf, 0) != (size_t) -1)
        {
          if (!__builtin_constant_p (__n))
     return __recv_chk (__fd, __buf, __n, __builtin_object_size (__buf, 0), __flags);
    
          if (__n > __builtin_object_size (__buf, 0))
     return __recv_chk_warn (__fd, __buf, __n, __builtin_object_size (__buf, 0), __flags);
        }
      return __recv_alias (__fd, __buf, __n, __flags);
    }
    
    extern ssize_t __recvfrom_chk (int __fd, void *__restrict __buf, size_t __n,
              size_t __buflen, int __flags,
              struct sockaddr *__restrict __addr,
              socklen_t *__restrict __addr_len);
    extern ssize_t __recvfrom_alias (int __fd, void *__restrict __buf, size_t __n, int __flags, struct sockaddr *__restrict __addr, socklen_t *__restrict __addr_len) __asm__ ("" "recvfrom")
    
    
                                                       ;
    extern ssize_t __recvfrom_chk_warn (int __fd, void *__restrict __buf, size_t __n, size_t __buflen, int __flags, struct sockaddr *__restrict __addr, socklen_t *__restrict __addr_len) __asm__ ("" "__recvfrom_chk")
    
    
    
    
         __attribute__((__warning__ ("recvfrom called with bigger length than size of " "destination buffer")))
                            ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) ssize_t
    recvfrom (int __fd, void *__restrict __buf, size_t __n, int __flags,
       struct sockaddr *__restrict __addr, socklen_t *__restrict __addr_len)
    {
      if (__builtin_object_size (__buf, 0) != (size_t) -1)
        {
          if (!__builtin_constant_p (__n))
     return __recvfrom_chk (__fd, __buf, __n, __builtin_object_size (__buf, 0), __flags,
              __addr, __addr_len);
          if (__n > __builtin_object_size (__buf, 0))
     return __recvfrom_chk_warn (__fd, __buf, __n, __builtin_object_size (__buf, 0), __flags,
            __addr, __addr_len);
        }
      return __recvfrom_alias (__fd, __buf, __n, __flags, __addr, __addr_len);
    }
    # 252 "/usr/include/sys/socket.h" 2 3 4
    
    
    
    # 26 "/usr/include/netinet/in.h" 2 3 4
    
    
    
    
    
    
    enum
      {
        IPPROTO_IP = 0,
    
        IPPROTO_HOPOPTS = 0,
    
        IPPROTO_ICMP = 1,
    
        IPPROTO_IGMP = 2,
    
        IPPROTO_IPIP = 4,
    
        IPPROTO_TCP = 6,
    
        IPPROTO_EGP = 8,
    
        IPPROTO_PUP = 12,
    
        IPPROTO_UDP = 17,
    
        IPPROTO_IDP = 22,
    
        IPPROTO_TP = 29,
    
        IPPROTO_DCCP = 33,
    
        IPPROTO_IPV6 = 41,
    
        IPPROTO_ROUTING = 43,
    
        IPPROTO_FRAGMENT = 44,
    
        IPPROTO_RSVP = 46,
    
        IPPROTO_GRE = 47,
    
        IPPROTO_ESP = 50,
    
        IPPROTO_AH = 51,
    
        IPPROTO_ICMPV6 = 58,
    
        IPPROTO_NONE = 59,
    
        IPPROTO_DSTOPTS = 60,
    
        IPPROTO_MTP = 92,
    
        IPPROTO_ENCAP = 98,
    
        IPPROTO_PIM = 103,
    
        IPPROTO_COMP = 108,
    
        IPPROTO_SCTP = 132,
    
        IPPROTO_UDPLITE = 136,
    
        IPPROTO_RAW = 255,
    
        IPPROTO_MAX
      };
    
    
    
    typedef uint16_t in_port_t;
    
    
    enum
      {
        IPPORT_ECHO = 7,
        IPPORT_DISCARD = 9,
        IPPORT_SYSTAT = 11,
        IPPORT_DAYTIME = 13,
        IPPORT_NETSTAT = 15,
        IPPORT_FTP = 21,
        IPPORT_TELNET = 23,
        IPPORT_SMTP = 25,
        IPPORT_TIMESERVER = 37,
        IPPORT_NAMESERVER = 42,
        IPPORT_WHOIS = 43,
        IPPORT_MTP = 57,
    
        IPPORT_TFTP = 69,
        IPPORT_RJE = 77,
        IPPORT_FINGER = 79,
        IPPORT_TTYLINK = 87,
        IPPORT_SUPDUP = 95,
    
    
        IPPORT_EXECSERVER = 512,
        IPPORT_LOGINSERVER = 513,
        IPPORT_CMDSERVER = 514,
        IPPORT_EFSSERVER = 520,
    
    
        IPPORT_BIFFUDP = 512,
        IPPORT_WHOSERVER = 513,
        IPPORT_ROUTESERVER = 520,
    
    
        IPPORT_RESERVED = 1024,
    
    
        IPPORT_USERRESERVED = 5000
      };
    
    
    
    typedef uint32_t in_addr_t;
    struct in_addr
      {
        in_addr_t s_addr;
      };
    # 198 "/usr/include/netinet/in.h" 3 4
    struct in6_addr
      {
        union
          {
     uint8_t __u6_addr8[16];
    
     uint16_t __u6_addr16[8];
     uint32_t __u6_addr32[4];
    
          } __in6_u;
    
    
    
    
    
      };
    
    extern const struct in6_addr in6addr_any;
    extern const struct in6_addr in6addr_loopback;
    # 225 "/usr/include/netinet/in.h" 3 4
    struct sockaddr_in
      {
        sa_family_t sin_family;
        in_port_t sin_port;
        struct in_addr sin_addr;
    
    
        unsigned char sin_zero[sizeof (struct sockaddr) -
          (sizeof (unsigned short int)) -
          sizeof (in_port_t) -
          sizeof (struct in_addr)];
      };
    
    
    struct sockaddr_in6
      {
        sa_family_t sin6_family;
        in_port_t sin6_port;
        uint32_t sin6_flowinfo;
        struct in6_addr sin6_addr;
        uint32_t sin6_scope_id;
      };
    
    
    
    
    struct ip_mreq
      {
    
        struct in_addr imr_multiaddr;
    
    
        struct in_addr imr_interface;
      };
    
    struct ip_mreq_source
      {
    
        struct in_addr imr_multiaddr;
    
    
        struct in_addr imr_interface;
    
    
        struct in_addr imr_sourceaddr;
      };
    
    
    
    
    struct ipv6_mreq
      {
    
        struct in6_addr ipv6mr_multiaddr;
    
    
        unsigned int ipv6mr_interface;
      };
    
    
    
    
    struct group_req
      {
    
        uint32_t gr_interface;
    
    
        struct sockaddr_storage gr_group;
      };
    
    struct group_source_req
      {
    
        uint32_t gsr_interface;
    
    
        struct sockaddr_storage gsr_group;
    
    
        struct sockaddr_storage gsr_source;
      };
    
    
    
    struct ip_msfilter
      {
    
        struct in_addr imsf_multiaddr;
    
    
        struct in_addr imsf_interface;
    
    
        uint32_t imsf_fmode;
    
    
        uint32_t imsf_numsrc;
    
        struct in_addr imsf_slist[1];
      };
    
    
    
    
    
    struct group_filter
      {
    
        uint32_t gf_interface;
    
    
        struct sockaddr_storage gf_group;
    
    
        uint32_t gf_fmode;
    
    
        uint32_t gf_numsrc;
    
        struct sockaddr_storage gf_slist[1];
    };
    # 356 "/usr/include/netinet/in.h" 3 4
    # 1 "/usr/include/bits/in.h" 1 3 4
    # 98 "/usr/include/bits/in.h" 3 4
    struct ip_opts
      {
        struct in_addr ip_dst;
        char ip_opts[40];
      };
    
    
    struct ip_mreqn
      {
        struct in_addr imr_multiaddr;
        struct in_addr imr_address;
        int imr_ifindex;
      };
    
    
    struct in_pktinfo
      {
        int ipi_ifindex;
        struct in_addr ipi_spec_dst;
        struct in_addr ipi_addr;
      };
    # 357 "/usr/include/netinet/in.h" 2 3 4
    # 365 "/usr/include/netinet/in.h" 3 4
    extern uint32_t ntohl (uint32_t __netlong) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
    extern uint16_t ntohs (uint16_t __netshort)
         __attribute__ ((__nothrow__)) __attribute__ ((__const__));
    extern uint32_t htonl (uint32_t __hostlong)
         __attribute__ ((__nothrow__)) __attribute__ ((__const__));
    extern uint16_t htons (uint16_t __hostshort)
         __attribute__ ((__nothrow__)) __attribute__ ((__const__));
    
    
    
    
    # 1 "/usr/include/bits/byteswap.h" 1 3 4
    # 377 "/usr/include/netinet/in.h" 2 3 4
    # 440 "/usr/include/netinet/in.h" 3 4
    extern int bindresvport (int __sockfd, struct sockaddr_in *__sock_in) __attribute__ ((__nothrow__));
    
    
    extern int bindresvport6 (int __sockfd, struct sockaddr_in6 *__sock_in)
         __attribute__ ((__nothrow__));
    # 565 "/usr/include/netinet/in.h" 3 4
    
    # 26 "util.c" 2
    
    # 1 "/usr/include/sys/wait.h" 1 3 4
    # 29 "/usr/include/sys/wait.h" 3 4
    
    
    # 1 "/usr/include/signal.h" 1 3 4
    # 31 "/usr/include/signal.h" 3 4
    
    
    # 1 "/usr/include/bits/sigset.h" 1 3 4
    # 104 "/usr/include/bits/sigset.h" 3 4
    extern int __sigismember (__const __sigset_t *, int);
    extern int __sigaddset (__sigset_t *, int);
    extern int __sigdelset (__sigset_t *, int);
    # 118 "/usr/include/bits/sigset.h" 3 4
    extern __inline int __sigismember (__const __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return (__set->__val[__word] & __mask) ? 1 : 0; }
    extern __inline int __sigaddset ( __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return ((__set->__val[__word] |= __mask), 0); }
    extern __inline int __sigdelset ( __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return ((__set->__val[__word] &= ~__mask), 0); }
    # 34 "/usr/include/signal.h" 2 3 4
    
    
    
    
    
    
    
    typedef __sig_atomic_t sig_atomic_t;
    
    # 58 "/usr/include/signal.h" 3 4
    # 1 "/usr/include/bits/signum.h" 1 3 4
    # 59 "/usr/include/signal.h" 2 3 4
    # 76 "/usr/include/signal.h" 3 4
    # 1 "/usr/include/time.h" 1 3 4
    # 77 "/usr/include/signal.h" 2 3 4
    
    
    # 1 "/usr/include/bits/siginfo.h" 1 3 4
    # 25 "/usr/include/bits/siginfo.h" 3 4
    # 1 "/usr/include/bits/wordsize.h" 1 3 4
    # 26 "/usr/include/bits/siginfo.h" 2 3 4
    
    
    
    
    
    
    
    typedef union sigval
      {
        int sival_int;
        void *sival_ptr;
      } sigval_t;
    # 51 "/usr/include/bits/siginfo.h" 3 4
    typedef struct siginfo
      {
        int si_signo;
        int si_errno;
    
        int si_code;
    
        union
          {
     int _pad[((128 / sizeof (int)) - 3)];
    
    
     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;
       } _sigfault;
    
    
     struct
       {
         long int si_band;
         int si_fd;
       } _sigpoll;
          } _sifields;
      } siginfo_t;
    # 129 "/usr/include/bits/siginfo.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
    
    };
    
    
    
    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
    
    };
    
    
    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
    
    };
    # 273 "/usr/include/bits/siginfo.h" 3 4
    typedef struct sigevent
      {
        sigval_t sigev_value;
        int sigev_signo;
        int sigev_notify;
    
        union
          {
     int _pad[((64 / sizeof (int)) - 3)];
    
    
    
     __pid_t _tid;
    
     struct
       {
         void (*_function) (sigval_t);
         void *_attribute;
       } _sigev_thread;
          } _sigev_un;
      } sigevent_t;
    
    
    
    
    
    
    enum
    {
      SIGEV_SIGNAL = 0,
    
      SIGEV_NONE,
    
      SIGEV_THREAD,
    
    
      SIGEV_THREAD_ID = 4
    
    };
    # 80 "/usr/include/signal.h" 2 3 4
    
    
    
    
    typedef void (*__sighandler_t) (int);
    
    
    
    
    extern __sighandler_t __sysv_signal (int __sig, __sighandler_t __handler)
         __attribute__ ((__nothrow__));
    # 99 "/usr/include/signal.h" 3 4
    
    
    extern __sighandler_t signal (int __sig, __sighandler_t __handler)
         __attribute__ ((__nothrow__));
    # 113 "/usr/include/signal.h" 3 4
    
    # 126 "/usr/include/signal.h" 3 4
    extern int kill (__pid_t __pid, int __sig) __attribute__ ((__nothrow__));
    
    
    
    
    
    
    extern int killpg (__pid_t __pgrp, int __sig) __attribute__ ((__nothrow__));
    
    
    
    
    extern int raise (int __sig) __attribute__ ((__nothrow__));
    
    
    
    
    extern __sighandler_t ssignal (int __sig, __sighandler_t __handler)
         __attribute__ ((__nothrow__));
    extern int gsignal (int __sig) __attribute__ ((__nothrow__));
    
    
    
    
    extern void psignal (int __sig, __const char *__s);
    
    
    
    
    extern void psiginfo (__const siginfo_t *__pinfo, __const char *__s);
    # 168 "/usr/include/signal.h" 3 4
    extern int __sigpause (int __sig_or_mask, int __is_sig);
    # 196 "/usr/include/signal.h" 3 4
    extern int sigblock (int __mask) __attribute__ ((__nothrow__)) __attribute__ ((__deprecated__));
    
    
    extern int sigsetmask (int __mask) __attribute__ ((__nothrow__)) __attribute__ ((__deprecated__));
    
    
    extern int siggetmask (void) __attribute__ ((__nothrow__)) __attribute__ ((__deprecated__));
    # 216 "/usr/include/signal.h" 3 4
    typedef __sighandler_t sig_t;
    
    
    
    
    
    extern int sigemptyset (sigset_t *__set) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    extern int sigfillset (sigset_t *__set) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    extern int sigaddset (sigset_t *__set, int __signo) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    extern int sigdelset (sigset_t *__set, int __signo) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    extern int sigismember (__const sigset_t *__set, int __signo)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    # 252 "/usr/include/signal.h" 3 4
    # 1 "/usr/include/bits/sigaction.h" 1 3 4
    # 25 "/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);
      };
    # 253 "/usr/include/signal.h" 2 3 4
    
    
    extern int sigprocmask (int __how, __const sigset_t *__restrict __set,
       sigset_t *__restrict __oset) __attribute__ ((__nothrow__));
    
    
    
    
    
    
    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__));
    
    
    extern int sigpending (sigset_t *__set) __attribute__ ((__nothrow__)) __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__));
    # 310 "/usr/include/signal.h" 3 4
    extern __const char *__const _sys_siglist[65];
    extern __const char *__const sys_siglist[65];
    
    
    struct sigvec
      {
        __sighandler_t sv_handler;
        int sv_mask;
    
        int sv_flags;
    
      };
    # 334 "/usr/include/signal.h" 3 4
    extern int sigvec (int __sig, __const struct sigvec *__vec,
         struct sigvec *__ovec) __attribute__ ((__nothrow__));
    
    
    
    # 1 "/usr/include/bits/sigcontext.h" 1 3 4
    # 26 "/usr/include/bits/sigcontext.h" 3 4
    # 1 "/usr/include/bits/wordsize.h" 1 3 4
    # 27 "/usr/include/bits/sigcontext.h" 2 3 4
    
    struct _fpreg
    {
      unsigned short significand[4];
      unsigned short exponent;
    };
    
    struct _fpxreg
    {
      unsigned short significand[4];
      unsigned short exponent;
      unsigned short padding[3];
    };
    
    struct _xmmreg
    {
      __uint32_t element[4];
    };
    
    
    
    
    
    struct _fpstate
    {
    
      __uint32_t cw;
      __uint32_t sw;
      __uint32_t tag;
      __uint32_t ipoff;
      __uint32_t cssel;
      __uint32_t dataoff;
      __uint32_t datasel;
      struct _fpreg _st[8];
      unsigned short status;
      unsigned short magic;
    
    
      __uint32_t _fxsr_env[6];
      __uint32_t mxcsr;
      __uint32_t reserved;
      struct _fpxreg _fxsr_st[8];
      struct _xmmreg _xmm[8];
      __uint32_t padding[56];
    };
    # 81 "/usr/include/bits/sigcontext.h" 3 4
    struct sigcontext
    {
      unsigned short gs, __gsh;
      unsigned short fs, __fsh;
      unsigned short es, __esh;
      unsigned short ds, __dsh;
      unsigned long edi;
      unsigned long esi;
      unsigned long ebp;
      unsigned long esp;
      unsigned long ebx;
      unsigned long edx;
      unsigned long ecx;
      unsigned long eax;
      unsigned long trapno;
      unsigned long err;
      unsigned long eip;
      unsigned short cs, __csh;
      unsigned long eflags;
      unsigned long esp_at_signal;
      unsigned short ss, __ssh;
      struct _fpstate * fpstate;
      unsigned long oldmask;
      unsigned long cr2;
    };
    # 340 "/usr/include/signal.h" 2 3 4
    
    
    extern int sigreturn (struct sigcontext *__scp) __attribute__ ((__nothrow__));
    
    
    
    
    
    
    # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4
    # 350 "/usr/include/signal.h" 2 3 4
    
    
    
    
    extern int siginterrupt (int __sig, int __interrupt) __attribute__ ((__nothrow__));
    
    # 1 "/usr/include/bits/sigstack.h" 1 3 4
    # 26 "/usr/include/bits/sigstack.h" 3 4
    struct sigstack
      {
        void *ss_sp;
        int ss_onstack;
      };
    
    
    
    enum
    {
      SS_ONSTACK = 1,
    
      SS_DISABLE
    
    };
    # 50 "/usr/include/bits/sigstack.h" 3 4
    typedef struct sigaltstack
      {
        void *ss_sp;
        int ss_flags;
        size_t ss_size;
      } stack_t;
    # 357 "/usr/include/signal.h" 2 3 4
    
    
    # 1 "/usr/include/sys/ucontext.h" 1 3 4
    # 23 "/usr/include/sys/ucontext.h" 3 4
    # 1 "/usr/include/signal.h" 1 3 4
    # 24 "/usr/include/sys/ucontext.h" 2 3 4
    # 1 "/usr/include/bits/wordsize.h" 1 3 4
    # 25 "/usr/include/sys/ucontext.h" 2 3 4
    # 148 "/usr/include/sys/ucontext.h" 3 4
    typedef int greg_t;
    
    
    
    
    
    typedef greg_t gregset_t[19];
    # 202 "/usr/include/sys/ucontext.h" 3 4
    struct _libc_fpreg
    {
      unsigned short int significand[4];
      unsigned short int exponent;
    };
    
    struct _libc_fpstate
    {
      unsigned long int cw;
      unsigned long int sw;
      unsigned long int tag;
      unsigned long int ipoff;
      unsigned long int cssel;
      unsigned long int dataoff;
      unsigned long int datasel;
      struct _libc_fpreg _st[8];
      unsigned long int status;
    };
    
    
    typedef struct _libc_fpstate *fpregset_t;
    
    
    typedef struct
      {
        gregset_t gregs;
    
    
        fpregset_t fpregs;
        unsigned long int oldmask;
        unsigned long int cr2;
      } mcontext_t;
    
    
    typedef struct ucontext
      {
        unsigned long int uc_flags;
        struct ucontext *uc_link;
        stack_t uc_stack;
        mcontext_t uc_mcontext;
        __sigset_t uc_sigmask;
        struct _libc_fpstate __fpregs_mem;
      } ucontext_t;
    # 360 "/usr/include/signal.h" 2 3 4
    
    
    
    
    
    extern int sigstack (struct sigstack *__ss, struct sigstack *__oss)
         __attribute__ ((__nothrow__)) __attribute__ ((__deprecated__));
    
    
    
    extern int sigaltstack (__const struct sigaltstack *__restrict __ss,
       struct sigaltstack *__restrict __oss) __attribute__ ((__nothrow__));
    # 395 "/usr/include/signal.h" 3 4
    # 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__));
    
    
    extern int pthread_kill (pthread_t __threadid, int __signo) __attribute__ ((__nothrow__));
    # 396 "/usr/include/signal.h" 2 3 4
    
    
    
    
    
    
    extern int __libc_current_sigrtmin (void) __attribute__ ((__nothrow__));
    
    extern int __libc_current_sigrtmax (void) __attribute__ ((__nothrow__));
    
    
    
    
    # 32 "/usr/include/sys/wait.h" 2 3 4
    # 1 "/usr/include/sys/resource.h" 1 3 4
    # 25 "/usr/include/sys/resource.h" 3 4
    # 1 "/usr/include/bits/resource.h" 1 3 4
    # 33 "/usr/include/bits/resource.h" 3 4
    enum __rlimit_resource
    {
    
      RLIMIT_CPU = 0,
    
    
    
      RLIMIT_FSIZE = 1,
    
    
    
      RLIMIT_DATA = 2,
    
    
    
      RLIMIT_STACK = 3,
    
    
    
      RLIMIT_CORE = 4,
    
    
    
    
    
    
      __RLIMIT_RSS = 5,
    
    
    
      RLIMIT_NOFILE = 7,
      __RLIMIT_OFILE = RLIMIT_NOFILE,
    
    
    
    
      RLIMIT_AS = 9,
    
    
    
      __RLIMIT_NPROC = 6,
    
    
    
      __RLIMIT_MEMLOCK = 8,
    
    
    
      __RLIMIT_LOCKS = 10,
    
    
    
      __RLIMIT_SIGPENDING = 11,
    
    
    
      __RLIMIT_MSGQUEUE = 12,
    
    
    
    
    
      __RLIMIT_NICE = 13,
    
    
    
    
      __RLIMIT_RTPRIO = 14,
    
    
      __RLIMIT_NLIMITS = 15,
      __RLIM_NLIMITS = __RLIMIT_NLIMITS
    
    
    };
    # 127 "/usr/include/bits/resource.h" 3 4
    typedef __rlim_t rlim_t;
    
    
    
    
    
    
    
    struct rlimit
      {
    
        rlim_t rlim_cur;
    
        rlim_t rlim_max;
      };
    # 154 "/usr/include/bits/resource.h" 3 4
    enum __rusage_who
    {
    
      RUSAGE_SELF = 0,
    
    
    
      RUSAGE_CHILDREN = -1
    # 172 "/usr/include/bits/resource.h" 3 4
    };
    
    
    # 1 "/usr/include/bits/time.h" 1 3 4
    # 176 "/usr/include/bits/resource.h" 2 3 4
    
    
    struct rusage
      {
    
        struct timeval ru_utime;
    
        struct timeval ru_stime;
    
        long int ru_maxrss;
    
    
        long int ru_ixrss;
    
        long int ru_idrss;
    
        long int ru_isrss;
    
    
        long int ru_minflt;
    
        long int ru_majflt;
    
        long int ru_nswap;
    
    
        long int ru_inblock;
    
        long int ru_oublock;
    
        long int ru_msgsnd;
    
        long int ru_msgrcv;
    
        long int ru_nsignals;
    
    
    
        long int ru_nvcsw;
    
    
        long int ru_nivcsw;
      };
    
    
    
    
    
    
    
    enum __priority_which
    {
      PRIO_PROCESS = 0,
    
      PRIO_PGRP = 1,
    
      PRIO_USER = 2
    
    };
    
    
    
    # 262 "/usr/include/bits/resource.h" 3 4
    
    # 26 "/usr/include/sys/resource.h" 2 3 4
    
    
    
    
    
    
    
    # 43 "/usr/include/sys/resource.h" 3 4
    typedef int __rlimit_resource_t;
    typedef int __rusage_who_t;
    typedef int __priority_which_t;
    
    
    
    
    
    extern int getrlimit (__rlimit_resource_t __resource,
            struct rlimit *__rlimits) __attribute__ ((__nothrow__));
    # 70 "/usr/include/sys/resource.h" 3 4
    extern int setrlimit (__rlimit_resource_t __resource,
            __const struct rlimit *__rlimits) __attribute__ ((__nothrow__));
    # 88 "/usr/include/sys/resource.h" 3 4
    extern int getrusage (__rusage_who_t __who, struct rusage *__usage) __attribute__ ((__nothrow__));
    
    
    
    
    
    extern int getpriority (__priority_which_t __which, id_t __who) __attribute__ ((__nothrow__));
    
    
    
    extern int setpriority (__priority_which_t __which, id_t __who, int __prio)
         __attribute__ ((__nothrow__));
    
    
    # 33 "/usr/include/sys/wait.h" 2 3 4
    # 102 "/usr/include/sys/wait.h" 3 4
    typedef enum
    {
      P_ALL,
      P_PID,
      P_PGID
    } idtype_t;
    # 116 "/usr/include/sys/wait.h" 3 4
    extern __pid_t wait (__WAIT_STATUS __stat_loc);
    # 139 "/usr/include/sys/wait.h" 3 4
    extern __pid_t waitpid (__pid_t __pid, int *__stat_loc, int __options);
    
    
    
    # 1 "/usr/include/bits/siginfo.h" 1 3 4
    # 25 "/usr/include/bits/siginfo.h" 3 4
    # 1 "/usr/include/bits/wordsize.h" 1 3 4
    # 26 "/usr/include/bits/siginfo.h" 2 3 4
    # 144 "/usr/include/sys/wait.h" 2 3 4
    # 155 "/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 (__WAIT_STATUS __stat_loc, int __options,
            struct rusage * __usage) __attribute__ ((__nothrow__));
    
    
    
    
    extern __pid_t wait4 (__pid_t __pid, __WAIT_STATUS __stat_loc, int __options,
            struct rusage *__usage) __attribute__ ((__nothrow__));
    
    
    
    
    # 28 "util.c" 2
    # 1 "/usr/include/sys/time.h" 1 3 4
    # 27 "/usr/include/sys/time.h" 3 4
    # 1 "/usr/include/time.h" 1 3 4
    # 28 "/usr/include/sys/time.h" 2 3 4
    
    # 1 "/usr/include/bits/time.h" 1 3 4
    # 30 "/usr/include/sys/time.h" 2 3 4
    # 39 "/usr/include/sys/time.h" 3 4
    
    # 57 "/usr/include/sys/time.h" 3 4
    struct timezone
      {
        int tz_minuteswest;
        int tz_dsttime;
      };
    
    typedef struct timezone *__restrict __timezone_ptr_t;
    # 73 "/usr/include/sys/time.h" 3 4
    extern int gettimeofday (struct timeval *__restrict __tv,
        __timezone_ptr_t __tz) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    extern int settimeofday (__const struct timeval *__tv,
        __const struct timezone *__tz)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    
    extern int adjtime (__const struct timeval *__delta,
          struct timeval *__olddelta) __attribute__ ((__nothrow__));
    
    
    
    
    enum __itimer_which
      {
    
        ITIMER_REAL = 0,
    
    
        ITIMER_VIRTUAL = 1,
    
    
    
        ITIMER_PROF = 2
    
      };
    
    
    
    struct itimerval
      {
    
        struct timeval it_interval;
    
        struct timeval it_value;
      };
    
    
    
    
    
    
    typedef int __itimer_which_t;
    
    
    
    
    extern int getitimer (__itimer_which_t __which,
            struct itimerval *__value) __attribute__ ((__nothrow__));
    
    
    
    
    extern int setitimer (__itimer_which_t __which,
            __const struct itimerval *__restrict __new,
            struct itimerval *__restrict __old) __attribute__ ((__nothrow__));
    
    
    
    
    extern int utimes (__const char *__file, __const struct timeval __tvp[2])
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    extern int lutimes (__const char *__file, __const struct timeval __tvp[2])
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    extern int futimes (int __fd, __const struct timeval __tvp[2]) __attribute__ ((__nothrow__));
    # 191 "/usr/include/sys/time.h" 3 4
    
    # 29 "util.c" 2
    # 1 "/usr/include/sys/stat.h" 1 3 4
    # 39 "/usr/include/sys/stat.h" 3 4
    # 1 "/usr/include/time.h" 1 3 4
    # 40 "/usr/include/sys/stat.h" 2 3 4
    # 105 "/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;
    
        unsigned short int __pad1;
    
    
        __ino_t st_ino;
    
    
    
    
        __mode_t st_mode;
        __nlink_t st_nlink;
    
    
    
    
        __uid_t st_uid;
        __gid_t st_gid;
    
    
    
        __dev_t st_rdev;
    
        unsigned short int __pad2;
    
    
        __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;
    # 109 "/usr/include/bits/stat.h" 3 4
        unsigned long int __unused4;
        unsigned long int __unused5;
    
    
    
    
      };
    # 108 "/usr/include/sys/stat.h" 2 3 4
    # 211 "/usr/include/sys/stat.h" 3 4
    extern int stat (__const char *__restrict __file,
       struct stat *__restrict __buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    
    extern int fstat (int __fd, struct stat *__buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
    # 240 "/usr/include/sys/stat.h" 3 4
    extern int fstatat (int __fd, __const char *__restrict __file,
          struct stat *__restrict __buf, int __flag)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
    # 265 "/usr/include/sys/stat.h" 3 4
    extern int lstat (__const char *__restrict __file,
        struct stat *__restrict __buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    # 286 "/usr/include/sys/stat.h" 3 4
    extern int chmod (__const char *__file, __mode_t __mode)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    
    extern int lchmod (__const char *__file, __mode_t __mode)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    extern int fchmod (int __fd, __mode_t __mode) __attribute__ ((__nothrow__));
    
    
    
    
    
    extern int fchmodat (int __fd, __const char *__file, __mode_t __mode,
           int __flag)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    
    extern __mode_t umask (__mode_t __mask) __attribute__ ((__nothrow__));
    # 323 "/usr/include/sys/stat.h" 3 4
    extern int mkdir (__const char *__path, __mode_t __mode)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    
    extern int mkdirat (int __fd, __const char *__path, __mode_t __mode)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
    
    
    
    
    
    
    extern int mknod (__const char *__path, __mode_t __mode, __dev_t __dev)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    
    extern int mknodat (int __fd, __const char *__path, __mode_t __mode,
          __dev_t __dev) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
    
    
    
    
    
    extern int mkfifo (__const char *__path, __mode_t __mode)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    
    extern int mkfifoat (int __fd, __const char *__path, __mode_t __mode)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
    
    
    
    
    
    extern int utimensat (int __fd, __const char *__path,
            __const struct timespec __times[2],
            int __flags)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
    
    
    
    
    extern int futimens (int __fd, __const struct timespec __times[2]) __attribute__ ((__nothrow__));
    # 401 "/usr/include/sys/stat.h" 3 4
    extern int __fxstat (int __ver, int __fildes, struct stat *__stat_buf)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3)));
    extern int __xstat (int __ver, __const char *__filename,
          struct stat *__stat_buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
    extern int __lxstat (int __ver, __const char *__filename,
           struct stat *__stat_buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
    extern int __fxstatat (int __ver, int __fildes, __const char *__filename,
             struct stat *__stat_buf, int __flag)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4)));
    # 444 "/usr/include/sys/stat.h" 3 4
    extern int __xmknod (int __ver, __const char *__path, __mode_t __mode,
           __dev_t *__dev) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4)));
    
    extern int __xmknodat (int __ver, int __fd, __const char *__path,
             __mode_t __mode, __dev_t *__dev)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 5)));
    
    
    
    
    extern __inline int
    __attribute__ ((__nothrow__)) stat (__const char *__path, struct stat *__statbuf)
    {
      return __xstat (3, __path, __statbuf);
    }
    
    
    extern __inline int
    __attribute__ ((__nothrow__)) lstat (__const char *__path, struct stat *__statbuf)
    {
      return __lxstat (3, __path, __statbuf);
    }
    
    
    extern __inline int
    __attribute__ ((__nothrow__)) fstat (int __fd, struct stat *__statbuf)
    {
      return __fxstat (3, __fd, __statbuf);
    }
    
    
    extern __inline int
    __attribute__ ((__nothrow__)) fstatat (int __fd, __const char *__filename, struct stat *__statbuf, int __flag)
    
    {
      return __fxstatat (3, __fd, __filename, __statbuf, __flag);
    }
    
    
    
    extern __inline int
    __attribute__ ((__nothrow__)) mknod (__const char *__path, __mode_t __mode, __dev_t __dev)
    {
      return __xmknod (1, __path, __mode, &__dev);
    }
    
    
    
    extern __inline int
    __attribute__ ((__nothrow__)) mknodat (int __fd, __const char *__path, __mode_t __mode, __dev_t __dev)
    
    {
      return __xmknodat (1, __fd, __path, __mode, &__dev);
    }
    # 536 "/usr/include/sys/stat.h" 3 4
    
    # 30 "util.c" 2
    # 1 "/usr/include/unistd.h" 1 3 4
    # 28 "/usr/include/unistd.h" 3 4
    
    # 203 "/usr/include/unistd.h" 3 4
    # 1 "/usr/include/bits/posix_opt.h" 1 3 4
    # 204 "/usr/include/unistd.h" 2 3 4
    
    
    
    # 1 "/usr/include/bits/environments.h" 1 3 4
    # 23 "/usr/include/bits/environments.h" 3 4
    # 1 "/usr/include/bits/wordsize.h" 1 3 4
    # 24 "/usr/include/bits/environments.h" 2 3 4
    # 208 "/usr/include/unistd.h" 2 3 4
    # 227 "/usr/include/unistd.h" 3 4
    # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4
    # 228 "/usr/include/unistd.h" 2 3 4
    # 256 "/usr/include/unistd.h" 3 4
    typedef __useconds_t useconds_t;
    # 288 "/usr/include/unistd.h" 3 4
    extern int access (__const char *__name, int __type) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    # 305 "/usr/include/unistd.h" 3 4
    extern int faccessat (int __fd, __const char *__file, int __type, int __flag)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__));
    # 331 "/usr/include/unistd.h" 3 4
    extern __off_t lseek (int __fd, __off_t __offset, int __whence) __attribute__ ((__nothrow__));
    # 350 "/usr/include/unistd.h" 3 4
    extern int close (int __fd);
    
    
    
    
    
    
    extern ssize_t read (int __fd, void *__buf, size_t __nbytes) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    extern ssize_t write (int __fd, __const void *__buf, size_t __n) __attribute__ ((__warn_unused_result__));
    # 373 "/usr/include/unistd.h" 3 4
    extern ssize_t pread (int __fd, void *__buf, size_t __nbytes,
            __off_t __offset) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    
    extern ssize_t pwrite (int __fd, __const void *__buf, size_t __n,
             __off_t __offset) __attribute__ ((__warn_unused_result__));
    # 414 "/usr/include/unistd.h" 3 4
    extern int pipe (int __pipedes[2]) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    # 429 "/usr/include/unistd.h" 3 4
    extern unsigned int alarm (unsigned int __seconds) __attribute__ ((__nothrow__));
    # 441 "/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__));
    
    
    
    
    
    
    extern int usleep (__useconds_t __useconds);
    # 466 "/usr/include/unistd.h" 3 4
    extern int pause (void);
    
    
    
    extern int chown (__const char *__file, __uid_t __owner, __gid_t __group)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    extern int fchown (int __fd, __uid_t __owner, __gid_t __group) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    
    extern int fchownat (int __fd, __const char *__file, __uid_t __owner,
           __gid_t __group, int __flag)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__));
    
    
    
    extern int chdir (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    extern int fchdir (int __fd) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    # 508 "/usr/include/unistd.h" 3 4
    extern char *getcwd (char *__buf, size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    # 522 "/usr/include/unistd.h" 3 4
    extern char *getwd (char *__buf)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern int dup (int __fd) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    extern int dup2 (int __fd, int __fd2) __attribute__ ((__nothrow__));
    # 540 "/usr/include/unistd.h" 3 4
    extern char **__environ;
    
    
    
    
    
    
    
    extern int execve (__const char *__path, char *__const __argv[],
         char *__const __envp[]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    
    
    extern int fexecve (int __fd, char *__const __argv[], char *__const __envp[])
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
    
    
    
    
    extern int execv (__const char *__path, char *__const __argv[])
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    
    extern int execle (__const char *__path, __const char *__arg, ...)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    
    extern int execl (__const char *__path, __const char *__arg, ...)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    
    extern int execvp (__const char *__file, char *__const __argv[])
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    
    
    extern int execlp (__const char *__file, __const char *__arg, ...)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    # 595 "/usr/include/unistd.h" 3 4
    extern int nice (int __inc) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern void _exit (int __status) __attribute__ ((__noreturn__));
    
    
    
    
    
    # 1 "/usr/include/bits/confname.h" 1 3 4
    # 26 "/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
    
      };
    # 607 "/usr/include/unistd.h" 2 3 4
    
    
    extern long int pathconf (__const char *__path, int __name)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    extern long int fpathconf (int __fd, int __name) __attribute__ ((__nothrow__));
    
    
    extern long int sysconf (int __name) __attribute__ ((__nothrow__));
    
    
    
    extern size_t confstr (int __name, char *__buf, size_t __len) __attribute__ ((__nothrow__));
    
    
    
    
    extern __pid_t getpid (void) __attribute__ ((__nothrow__));
    
    
    extern __pid_t getppid (void) __attribute__ ((__nothrow__));
    
    
    
    
    extern __pid_t getpgrp (void) __attribute__ ((__nothrow__));
    # 643 "/usr/include/unistd.h" 3 4
    extern __pid_t __getpgid (__pid_t __pid) __attribute__ ((__nothrow__));
    
    extern __pid_t getpgid (__pid_t __pid) __attribute__ ((__nothrow__));
    
    
    
    
    
    
    extern int setpgid (__pid_t __pid, __pid_t __pgid) __attribute__ ((__nothrow__));
    # 669 "/usr/include/unistd.h" 3 4
    extern int setpgrp (void) __attribute__ ((__nothrow__));
    # 686 "/usr/include/unistd.h" 3 4
    extern __pid_t setsid (void) __attribute__ ((__nothrow__));
    
    
    
    extern __pid_t getsid (__pid_t __pid) __attribute__ ((__nothrow__));
    
    
    
    extern __uid_t getuid (void) __attribute__ ((__nothrow__));
    
    
    extern __uid_t geteuid (void) __attribute__ ((__nothrow__));
    
    
    extern __gid_t getgid (void) __attribute__ ((__nothrow__));
    
    
    extern __gid_t getegid (void) __attribute__ ((__nothrow__));
    
    
    
    
    extern int getgroups (int __size, __gid_t __list[]) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    # 719 "/usr/include/unistd.h" 3 4
    extern int setuid (__uid_t __uid) __attribute__ ((__nothrow__));
    
    
    
    
    extern int setreuid (__uid_t __ruid, __uid_t __euid) __attribute__ ((__nothrow__));
    
    
    
    
    extern int seteuid (__uid_t __uid) __attribute__ ((__nothrow__));
    
    
    
    
    
    
    extern int setgid (__gid_t __gid) __attribute__ ((__nothrow__));
    
    
    
    
    extern int setregid (__gid_t __rgid, __gid_t __egid) __attribute__ ((__nothrow__));
    
    
    
    
    extern int setegid (__gid_t __gid) __attribute__ ((__nothrow__));
    # 775 "/usr/include/unistd.h" 3 4
    extern __pid_t fork (void) __attribute__ ((__nothrow__));
    
    
    
    
    
    
    
    extern __pid_t vfork (void) __attribute__ ((__nothrow__));
    
    
    
    
    
    extern char *ttyname (int __fd) __attribute__ ((__nothrow__));
    
    
    
    extern int ttyname_r (int __fd, char *__buf, size_t __buflen)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__));
    
    
    
    extern int isatty (int __fd) __attribute__ ((__nothrow__));
    
    
    
    
    
    extern int ttyslot (void) __attribute__ ((__nothrow__));
    
    
    
    
    extern int link (__const char *__from, __const char *__to)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern int linkat (int __fromfd, __const char *__from, int __tofd,
         __const char *__to, int __flags)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern int symlink (__const char *__from, __const char *__to)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern ssize_t readlink (__const char *__restrict __path,
        char *__restrict __buf, size_t __len)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern int symlinkat (__const char *__from, int __tofd,
            __const char *__to) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) __attribute__ ((__warn_unused_result__));
    
    
    extern ssize_t readlinkat (int __fd, __const char *__restrict __path,
          char *__restrict __buf, size_t __len)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__));
    
    
    
    extern int unlink (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    extern int unlinkat (int __fd, __const char *__name, int __flag)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
    
    
    
    extern int rmdir (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    extern __pid_t tcgetpgrp (int __fd) __attribute__ ((__nothrow__));
    
    
    extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) __attribute__ ((__nothrow__));
    
    
    
    
    
    
    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__)) __attribute__ ((__nonnull__ (1)));
    # 890 "/usr/include/unistd.h" 3 4
    # 1 "/usr/include/getopt.h" 1 3 4
    # 59 "/usr/include/getopt.h" 3 4
    extern char *optarg;
    # 73 "/usr/include/getopt.h" 3 4
    extern int optind;
    
    
    
    
    extern int opterr;
    
    
    
    extern int optopt;
    # 152 "/usr/include/getopt.h" 3 4
    extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
           __attribute__ ((__nothrow__));
    # 891 "/usr/include/unistd.h" 2 3 4
    
    
    
    
    
    
    
    extern int gethostname (char *__name, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    
    
    extern int sethostname (__const char *__name, size_t __len)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    extern int sethostid (long int __id) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    extern int getdomainname (char *__name, size_t __len)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    extern int setdomainname (__const char *__name, size_t __len)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    extern int vhangup (void) __attribute__ ((__nothrow__));
    
    
    extern int revoke (__const char *__file) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    
    
    extern int profil (unsigned short int *__sample_buffer, size_t __size,
         size_t __offset, unsigned int __scale)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    
    extern int acct (__const char *__name) __attribute__ ((__nothrow__));
    
    
    
    extern char *getusershell (void) __attribute__ ((__nothrow__));
    extern void endusershell (void) __attribute__ ((__nothrow__));
    extern void setusershell (void) __attribute__ ((__nothrow__));
    
    
    
    
    
    extern int daemon (int __nochdir, int __noclose) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    
    extern int chroot (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    extern char *getpass (__const char *__prompt) __attribute__ ((__nonnull__ (1)));
    # 976 "/usr/include/unistd.h" 3 4
    extern int fsync (int __fd);
    
    
    
    
    
    
    extern long int gethostid (void);
    
    
    extern void sync (void) __attribute__ ((__nothrow__));
    
    
    
    
    
    extern int getpagesize (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
    
    
    
    
    extern int getdtablesize (void) __attribute__ ((__nothrow__));
    # 1007 "/usr/include/unistd.h" 3 4
    extern int truncate (__const char *__file, __off_t __length)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    # 1029 "/usr/include/unistd.h" 3 4
    extern int ftruncate (int __fd, __off_t __length) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    # 1050 "/usr/include/unistd.h" 3 4
    extern int brk (void *__addr) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    extern void *sbrk (intptr_t __delta) __attribute__ ((__nothrow__));
    # 1071 "/usr/include/unistd.h" 3 4
    extern long int syscall (long int __sysno, ...) __attribute__ ((__nothrow__));
    # 1094 "/usr/include/unistd.h" 3 4
    extern int lockf (int __fd, int __cmd, __off_t __len) __attribute__ ((__warn_unused_result__));
    # 1125 "/usr/include/unistd.h" 3 4
    extern int fdatasync (int __fildes);
    # 1154 "/usr/include/unistd.h" 3 4
    extern char *ctermid (char *__s) __attribute__ ((__nothrow__));
    
    
    
    
    
    # 1 "/usr/include/bits/unistd.h" 1 3 4
    # 24 "/usr/include/bits/unistd.h" 3 4
    extern ssize_t __read_chk (int __fd, void *__buf, size_t __nbytes,
          size_t __buflen) __attribute__ ((__warn_unused_result__));
    extern ssize_t __read_alias (int __fd, void *__buf, size_t __nbytes) __asm__ ("" "read")
                                   __attribute__ ((__warn_unused_result__));
    extern ssize_t __read_chk_warn (int __fd, void *__buf, size_t __nbytes, size_t __buflen) __asm__ ("" "__read_chk")
    
    
         __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("read called with bigger length than size of " "the destination buffer")))
                                      ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) ssize_t
    read (int __fd, void *__buf, size_t __nbytes)
    {
      if (__builtin_object_size (__buf, 0) != (size_t) -1)
        {
          if (!__builtin_constant_p (__nbytes))
     return __read_chk (__fd, __buf, __nbytes, __builtin_object_size (__buf, 0));
    
          if (__nbytes > __builtin_object_size (__buf, 0))
     return __read_chk_warn (__fd, __buf, __nbytes, __builtin_object_size (__buf, 0));
        }
      return __read_alias (__fd, __buf, __nbytes);
    }
    # 124 "/usr/include/bits/unistd.h" 3 4
    extern ssize_t __readlink_chk (__const char *__restrict __path,
              char *__restrict __buf, size_t __len,
              size_t __buflen)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__));
    extern ssize_t __readlink_alias (__const char *__restrict __path, char *__restrict __buf, size_t __len) __asm__ ("" "readlink") __attribute__ ((__nothrow__))
    
    
         __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__));
    extern ssize_t __readlink_chk_warn (__const char *__restrict __path, char *__restrict __buf, size_t __len, size_t __buflen) __asm__ ("" "__readlink_chk") __attribute__ ((__nothrow__))
    
    
    
         __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("readlink called with bigger length " "than size of destination buffer")))
                                             ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)) ssize_t
    __attribute__ ((__nothrow__)) readlink (__const char *__restrict __path, char *__restrict __buf, size_t __len)
    
    {
      if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
        {
          if (!__builtin_constant_p (__len))
     return __readlink_chk (__path, __buf, __len, __builtin_object_size (__buf, 2 > 1));
    
          if ( __len > __builtin_object_size (__buf, 2 > 1))
     return __readlink_chk_warn (__path, __buf, __len, __builtin_object_size (__buf, 2 > 1));
        }
      return __readlink_alias (__path, __buf, __len);
    }
    
    
    
    extern ssize_t __readlinkat_chk (int __fd, __const char *__restrict __path,
         char *__restrict __buf, size_t __len,
         size_t __buflen)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__));
    extern ssize_t __readlinkat_alias (int __fd, __const char *__restrict __path, char *__restrict __buf, size_t __len) __asm__ ("" "readlinkat") __attribute__ ((__nothrow__))
    
    
    
         __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__));
    extern ssize_t __readlinkat_chk_warn (int __fd, __const char *__restrict __path, char *__restrict __buf, size_t __len, size_t __buflen) __asm__ ("" "__readlinkat_chk") __attribute__ ((__nothrow__))
    
    
    
         __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("readlinkat called with bigger " "length than size of destination " "buffer")))
    
                    ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__)) ssize_t
    __attribute__ ((__nothrow__)) readlinkat (int __fd, __const char *__restrict __path, char *__restrict __buf, size_t __len)
    
    {
      if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
        {
          if (!__builtin_constant_p (__len))
     return __readlinkat_chk (__fd, __path, __buf, __len, __builtin_object_size (__buf, 2 > 1));
    
          if (__len > __builtin_object_size (__buf, 2 > 1))
     return __readlinkat_chk_warn (__fd, __path, __buf, __len,
              __builtin_object_size (__buf, 2 > 1));
        }
      return __readlinkat_alias (__fd, __path, __buf, __len);
    }
    
    
    extern char *__getcwd_chk (char *__buf, size_t __size, size_t __buflen)
         __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    extern char *__getcwd_alias (char *__buf, size_t __size) __asm__ ("" "getcwd") __attribute__ ((__nothrow__))
                                                  __attribute__ ((__warn_unused_result__));
    extern char *__getcwd_chk_warn (char *__buf, size_t __size, size_t __buflen) __asm__ ("" "__getcwd_chk") __attribute__ ((__nothrow__))
    
    
         __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("getcwd caller with bigger length than size of " "destination buffer")))
                                  ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char *
    __attribute__ ((__nothrow__)) getcwd (char *__buf, size_t __size)
    {
      if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
        {
          if (!__builtin_constant_p (__size))
     return __getcwd_chk (__buf, __size, __builtin_object_size (__buf, 2 > 1));
    
          if (__size > __builtin_object_size (__buf, 2 > 1))
     return __getcwd_chk_warn (__buf, __size, __builtin_object_size (__buf, 2 > 1));
        }
      return __getcwd_alias (__buf, __size);
    }
    
    
    extern char *__getwd_chk (char *__buf, size_t buflen)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    extern char *__getwd_warn (char *__buf) __asm__ ("" "getwd") __attribute__ ((__nothrow__))
         __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("please use getcwd instead, as getwd " "doesn't specify buffer size")))
                                             ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) __attribute__ ((__warn_unused_result__)) char *
    __attribute__ ((__nothrow__)) getwd (char *__buf)
    {
      if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
        return __getwd_chk (__buf, __builtin_object_size (__buf, 2 > 1));
      return __getwd_warn (__buf);
    }
    
    
    extern size_t __confstr_chk (int __name, char *__buf, size_t __len,
            size_t __buflen) __attribute__ ((__nothrow__));
    extern size_t __confstr_alias (int __name, char *__buf, size_t __len) __asm__ ("" "confstr") __attribute__ ((__nothrow__))
                                 ;
    extern size_t __confstr_chk_warn (int __name, char *__buf, size_t __len, size_t __buflen) __asm__ ("" "__confstr_chk") __attribute__ ((__nothrow__))
    
    
         __attribute__((__warning__ ("confstr called with bigger length than size of destination " "buffer")))
                ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) size_t
    __attribute__ ((__nothrow__)) confstr (int __name, char *__buf, size_t __len)
    {
      if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
        {
          if (!__builtin_constant_p (__len))
     return __confstr_chk (__name, __buf, __len, __builtin_object_size (__buf, 2 > 1));
    
          if (__builtin_object_size (__buf, 2 > 1) < __len)
     return __confstr_chk_warn (__name, __buf, __len, __builtin_object_size (__buf, 2 > 1));
        }
      return __confstr_alias (__name, __buf, __len);
    }
    
    
    extern int __getgroups_chk (int __size, __gid_t __list[], size_t __listlen)
         __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    extern int __getgroups_alias (int __size, __gid_t __list[]) __asm__ ("" "getgroups") __attribute__ ((__nothrow__))
                     __attribute__ ((__warn_unused_result__));
    extern int __getgroups_chk_warn (int __size, __gid_t __list[], size_t __listlen) __asm__ ("" "__getgroups_chk") __attribute__ ((__nothrow__))
    
    
         __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("getgroups called with bigger group count than what " "can fit into destination buffer")))
                                               ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
    __attribute__ ((__nothrow__)) getgroups (int __size, __gid_t __list[])
    {
      if (__builtin_object_size (__list, 2 > 1) != (size_t) -1)
        {
          if (!__builtin_constant_p (__size) || __size < 0)
     return __getgroups_chk (__size, __list, __builtin_object_size (__list, 2 > 1));
    
          if (__size * sizeof (__gid_t) > __builtin_object_size (__list, 2 > 1))
     return __getgroups_chk_warn (__size, __list, __builtin_object_size (__list, 2 > 1));
        }
      return __getgroups_alias (__size, __list);
    }
    
    
    extern int __ttyname_r_chk (int __fd, char *__buf, size_t __buflen,
           size_t __nreal) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
    extern int __ttyname_r_alias (int __fd, char *__buf, size_t __buflen) __asm__ ("" "ttyname_r") __attribute__ ((__nothrow__))
    
         __attribute__ ((__nonnull__ (2)));
    extern int __ttyname_r_chk_warn (int __fd, char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__ttyname_r_chk") __attribute__ ((__nothrow__))
    
    
         __attribute__ ((__nonnull__ (2))) __attribute__((__warning__ ("ttyname_r called with bigger buflen than " "size of destination buffer")))
                                      ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
    __attribute__ ((__nothrow__)) ttyname_r (int __fd, char *__buf, size_t __buflen)
    {
      if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
        {
          if (!__builtin_constant_p (__buflen))
     return __ttyname_r_chk (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1));
    
          if (__buflen > __builtin_object_size (__buf, 2 > 1))
     return __ttyname_r_chk_warn (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1));
        }
      return __ttyname_r_alias (__fd, __buf, __buflen);
    }
    
    
    
    extern int __getlogin_r_chk (char *__buf, size_t __buflen, size_t __nreal)
         __attribute__ ((__nonnull__ (1)));
    extern int __getlogin_r_alias (char *__buf, size_t __buflen) __asm__ ("" "getlogin_r")
                         __attribute__ ((__nonnull__ (1)));
    extern int __getlogin_r_chk_warn (char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__getlogin_r_chk")
    
    
         __attribute__ ((__nonnull__ (1))) __attribute__((__warning__ ("getlogin_r called with bigger buflen than " "size of destination buffer")))
                                      ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
    getlogin_r (char *__buf, size_t __buflen)
    {
      if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
        {
          if (!__builtin_constant_p (__buflen))
     return __getlogin_r_chk (__buf, __buflen, __builtin_object_size (__buf, 2 > 1));
    
          if (__buflen > __builtin_object_size (__buf, 2 > 1))
     return __getlogin_r_chk_warn (__buf, __buflen, __builtin_object_size (__buf, 2 > 1));
        }
      return __getlogin_r_alias (__buf, __buflen);
    }
    
    
    
    
    extern int __gethostname_chk (char *__buf, size_t __buflen, size_t __nreal)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    extern int __gethostname_alias (char *__buf, size_t __buflen) __asm__ ("" "gethostname") __attribute__ ((__nothrow__))
                       __attribute__ ((__nonnull__ (1)));
    extern int __gethostname_chk_warn (char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__gethostname_chk") __attribute__ ((__nothrow__))
    
    
         __attribute__ ((__nonnull__ (1))) __attribute__((__warning__ ("gethostname called with bigger buflen than " "size of destination buffer")))
                                      ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
    __attribute__ ((__nothrow__)) gethostname (char *__buf, size_t __buflen)
    {
      if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
        {
          if (!__builtin_constant_p (__buflen))
     return __gethostname_chk (__buf, __buflen, __builtin_object_size (__buf, 2 > 1));
    
          if (__buflen > __builtin_object_size (__buf, 2 > 1))
     return __gethostname_chk_warn (__buf, __buflen, __builtin_object_size (__buf, 2 > 1));
        }
      return __gethostname_alias (__buf, __buflen);
    }
    
    
    
    
    extern int __getdomainname_chk (char *__buf, size_t __buflen, size_t __nreal)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    extern int __getdomainname_alias (char *__buf, size_t __buflen) __asm__ ("" "getdomainname") __attribute__ ((__nothrow__))
    
                         __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    extern int __getdomainname_chk_warn (char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__getdomainname_chk") __attribute__ ((__nothrow__))
    
    
         __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("getdomainname called with bigger " "buflen than size of destination " "buffer")))
    
                        ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
    __attribute__ ((__nothrow__)) getdomainname (char *__buf, size_t __buflen)
    {
      if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
        {
          if (!__builtin_constant_p (__buflen))
     return __getdomainname_chk (__buf, __buflen, __builtin_object_size (__buf, 2 > 1));
    
          if (__buflen > __builtin_object_size (__buf, 2 > 1))
     return __getdomainname_chk_warn (__buf, __buflen, __builtin_object_size (__buf, 2 > 1));
        }
      return __getdomainname_alias (__buf, __buflen);
    }
    # 1161 "/usr/include/unistd.h" 2 3 4
    
    
    
    # 31 "util.c" 2
    
    # 1 "/usr/include/ctype.h" 1 3 4
    # 30 "/usr/include/ctype.h" 3 4
    
    # 48 "/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))
    };
    # 81 "/usr/include/ctype.h" 3 4
    extern __const unsigned short int **__ctype_b_loc (void)
         __attribute__ ((__nothrow__)) __attribute__ ((__const));
    extern __const __int32_t **__ctype_tolower_loc (void)
         __attribute__ ((__nothrow__)) __attribute__ ((__const));
    extern __const __int32_t **__ctype_toupper_loc (void)
         __attribute__ ((__nothrow__)) __attribute__ ((__const));
    # 96 "/usr/include/ctype.h" 3 4
    
    
    
    
    
    
    extern int isalnum (int) __attribute__ ((__nothrow__));
    extern int isalpha (int) __attribute__ ((__nothrow__));
    extern int iscntrl (int) __attribute__ ((__nothrow__));
    extern int isdigit (int) __attribute__ ((__nothrow__));
    extern int islower (int) __attribute__ ((__nothrow__));
    extern int isgraph (int) __attribute__ ((__nothrow__));
    extern int isprint (int) __attribute__ ((__nothrow__));
    extern int ispunct (int) __attribute__ ((__nothrow__));
    extern int isspace (int) __attribute__ ((__nothrow__));
    extern int isupper (int) __attribute__ ((__nothrow__));
    extern int isxdigit (int) __attribute__ ((__nothrow__));
    
    
    
    extern int tolower (int __c) __attribute__ ((__nothrow__));
    
    
    extern int toupper (int __c) __attribute__ ((__nothrow__));
    
    
    
    
    
    
    
    
    extern int isblank (int) __attribute__ ((__nothrow__));
    
    
    # 142 "/usr/include/ctype.h" 3 4
    extern int isascii (int __c) __attribute__ ((__nothrow__));
    
    
    
    extern int toascii (int __c) __attribute__ ((__nothrow__));
    
    
    
    extern int _toupper (int) __attribute__ ((__nothrow__));
    extern int _tolower (int) __attribute__ ((__nothrow__));
    # 190 "/usr/include/ctype.h" 3 4
    extern __inline int
    __attribute__ ((__nothrow__)) tolower (int __c)
    {
      return __c >= -128 && __c < 256 ? (*__ctype_tolower_loc ())[__c] : __c;
    }
    
    extern __inline int
    __attribute__ ((__nothrow__)) toupper (int __c)
    {
      return __c >= -128 && __c < 256 ? (*__ctype_toupper_loc ())[__c] : __c;
    }
    # 247 "/usr/include/ctype.h" 3 4
    extern int isalnum_l (int, __locale_t) __attribute__ ((__nothrow__));
    extern int isalpha_l (int, __locale_t) __attribute__ ((__nothrow__));
    extern int iscntrl_l (int, __locale_t) __attribute__ ((__nothrow__));
    extern int isdigit_l (int, __locale_t) __attribute__ ((__nothrow__));
    extern int islower_l (int, __locale_t) __attribute__ ((__nothrow__));
    extern int isgraph_l (int, __locale_t) __attribute__ ((__nothrow__));
    extern int isprint_l (int, __locale_t) __attribute__ ((__nothrow__));
    extern int ispunct_l (int, __locale_t) __attribute__ ((__nothrow__));
    extern int isspace_l (int, __locale_t) __attribute__ ((__nothrow__));
    extern int isupper_l (int, __locale_t) __attribute__ ((__nothrow__));
    extern int isxdigit_l (int, __locale_t) __attribute__ ((__nothrow__));
    
    extern int isblank_l (int, __locale_t) __attribute__ ((__nothrow__));
    
    
    
    extern int __tolower_l (int __c, __locale_t __l) __attribute__ ((__nothrow__));
    extern int tolower_l (int __c, __locale_t __l) __attribute__ ((__nothrow__));
    
    
    extern int __toupper_l (int __c, __locale_t __l) __attribute__ ((__nothrow__));
    extern int toupper_l (int __c, __locale_t __l) __attribute__ ((__nothrow__));
    # 323 "/usr/include/ctype.h" 3 4
    
    # 33 "util.c" 2
    # 1 "/usr/include/dirent.h" 1 3 4
    # 28 "/usr/include/dirent.h" 3 4
    
    # 62 "/usr/include/dirent.h" 3 4
    # 1 "/usr/include/bits/dirent.h" 1 3 4
    # 23 "/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];
      };
    # 63 "/usr/include/dirent.h" 2 3 4
    # 98 "/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
    
      };
    # 128 "/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)));
    # 163 "/usr/include/dirent.h" 3 4
    extern struct dirent *readdir (DIR *__dirp) __attribute__ ((__nonnull__ (1)));
    # 184 "/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)));
    # 209 "/usr/include/dirent.h" 3 4
    extern void rewinddir (DIR *__dirp) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    
    extern void seekdir (DIR *__dirp, long int __pos) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    extern long int telldir (DIR *__dirp) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    
    extern int dirfd (DIR *__dirp) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    # 233 "/usr/include/dirent.h" 3 4
    # 1 "/usr/include/bits/posix1_lim.h" 1 3 4
    # 157 "/usr/include/bits/posix1_lim.h" 3 4
    # 1 "/usr/include/bits/local_lim.h" 1 3 4
    # 39 "/usr/include/bits/local_lim.h" 3 4
    # 1 "/usr/include/linux/limits.h" 1 3 4
    # 40 "/usr/include/bits/local_lim.h" 2 3 4
    # 158 "/usr/include/bits/posix1_lim.h" 2 3 4
    # 234 "/usr/include/dirent.h" 2 3 4
    # 245 "/usr/include/dirent.h" 3 4
    # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4
    # 246 "/usr/include/dirent.h" 2 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)));
    # 285 "/usr/include/dirent.h" 3 4
    extern int alphasort (__const struct dirent **__e1,
            __const struct dirent **__e2)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
    # 313 "/usr/include/dirent.h" 3 4
    extern __ssize_t getdirentries (int __fd, char *__restrict __buf,
        size_t __nbytes,
        __off_t *__restrict __basep)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4)));
    # 362 "/usr/include/dirent.h" 3 4
    
    # 34 "util.c" 2
    # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdarg.h" 1 3 4
    # 35 "util.c" 2
    
    # 1 "ghttpd.h" 1
    # 23 "ghttpd.h"
    typedef struct
    {
     char host[255];
     char DOCUMENTROOT[255];
     char DEFAULTPAGE[255];
     char CGIBINDIR[255];
     char CGIBINROOT[255];
    } t_vhost;
    
    int serveconnection(int sockfd);
    int does_file_exist(char *filename);
    void getmimetype(char *filename, char *mimetype);
    int isDirectory(char *filename);
    void showdir(char *directory, int sockfd, t_vhost *thehost);
    void readinconfig();
    void Log(char *format, ...);
    void getfileline(char *line, FILE *in);
    void gstrlwr(char *string);
    unsigned long get_file_size(char *filename);
    
    
    extern unsigned int SERVERPORT;
    
    extern char SERVERROOT[255];
    extern char SERVERTYPE[255];
    extern unsigned long no_vhosts;
    extern t_vhost *vhosts;
    extern t_vhost defaulthost;
    # 37 "util.c" 2
    int gstricmp(char *string1, char *string2);
    void VirtualHostDefinition(FILE *in);
    
    void getfileline(char *line, FILE *in)
    {
     unsigned int loop=0;
     fgets(line, 255, in);
     for(loop=0; loop<255 && line[loop]!='\0'; loop++) if(line[loop]=='\r' || line[loop]=='\n') line[loop] = '\0';
    }
    
    int does_file_exist(char *filename)
    {
     struct stat st;
     if(stat(filename, &st) || isDirectory(filename)) return 0;
     return 1;
    }
    
    unsigned long get_file_size(char *filename)
    {
     struct stat st;
     if(!stat(filename, &st)) return st.st_size;
     return 0;
    }
    
    int isDirectory(char *filename)
    {
     struct stat st;
    
     if(stat(filename, &st)) return 0;
     if(!((((st.st_mode)) & 0170000) == (0040000))) return 0;
    
     return 1;
    }
    
    unsigned long count_vhosts()
    {
     FILE *in;
     unsigned long count=0;
     char tempstring[255], *ptr1=0;
    
     if((in = fopen("/etc/ghttpd.conf", "rt")) == ((void *)0))
      return 0;
    
     while(!feof(in))
     {
      memset(tempstring, 0, 255);
      getfileline(tempstring, in);
      if(feof(in)) break;
    
      ptr1 = strtok(tempstring, " \t\n\r");
      if(ptr1 && !gstricmp(ptr1, "<virtualhost>"))
       count++;
     }
    
     fclose(in);
     return count;
    }
    
    void VirtualHostDefinition(FILE *in)
    {
     char tempstring[255], *ptr1=0, *ptr2=0;
     t_vhost *thevhost=0;
    
     thevhost = &vhosts[no_vhosts];
    
     strcpy(thevhost->host, "");
     strcpy(thevhost->DOCUMENTROOT, defaulthost.DOCUMENTROOT);
     strcpy(thevhost->DEFAULTPAGE, defaulthost.DEFAULTPAGE);
     strcpy(thevhost->CGIBINDIR, defaulthost.CGIBINDIR);
     strcpy(thevhost->CGIBINROOT, defaulthost.CGIBINROOT);
    
     while(!feof(in))
     {
      getfileline(tempstring, in);
    
      if(feof(in)) break;
      ptr1 = strtok(tempstring, "\" \t");
      ptr2 = strtok(((void *)0), "\" \t");
    
      if(!ptr1) continue;
      if(ptr1[0]!='<' && !ptr2) continue;
      if(ptr1[0] == '#') continue;
    
      if(!gstricmp(ptr1, "</virtualhost>"))
       break;
      else if(!gstricmp(ptr1, "Host"))
       strcpy(thevhost->host, ptr2);
      else if(!gstricmp(ptr1, "DocumentRoot"))
              strcpy(thevhost->DOCUMENTROOT, ptr2);
      else if(!gstricmp(ptr1, "DefaultPage"))
              strcpy(thevhost->DEFAULTPAGE, ptr2);
      else if(!gstricmp(ptr1, "CgiBinDir"))
              strcpy(thevhost->CGIBINDIR, ptr2);
      else if(!gstricmp(ptr1, "CgiBinRoot"))
              strcpy(thevhost->CGIBINROOT, ptr2);
     }
    
     no_vhosts++;
    }
    
    void gstrlwr(char *string)
    {
     unsigned int loop=0;
    
     if(!string) return;
     for(loop=0; loop<255 && string[loop]; loop++)
      string[loop] = (__extension__ ({ int __res; if (sizeof (string[loop]) > 1) { if (__builtin_constant_p (string[loop])) { int __c = (string[loop]); __res = __c < -128 || __c > 255 ? __c : (*__ctype_tolower_loc ())[__c]; } else __res = tolower (string[loop]); } else __res = (*__ctype_tolower_loc ())[(int) (string[loop])]; __res; }));
    }
    
    void readinconfig()
    {
     FILE *in;
     char *ptr1=0, *ptr2=0;
     char tempstring[255];
     int loop=0;
    
    
     if((in = fopen("/etc/ghttpd.conf", "rt"))==((void *)0))
      return;
    
     no_vhosts=0;
    
     while(!feof(in))
     {
      getfileline(tempstring, in);
    
      if(feof(in)) break;
      ptr1 = strtok(tempstring, "\"\t ");
      ptr2 = strtok(((void *)0), "\"\t ");
    
      if(!ptr1) continue;
      if(ptr1[0]!='<' && !ptr2) continue;
      if(ptr1[0] == '#') continue;
    
      if(!gstricmp(ptr1, "ServerRoot"))
       strcpy(SERVERROOT, ptr2);
      else if(!gstricmp(ptr1, "DocumentRoot"))
       strcpy(defaulthost.DOCUMENTROOT, ptr2);
      else if(!gstricmp(ptr1, "DefaultPage"))
       strcpy(defaulthost.DEFAULTPAGE, ptr2);
      else if(!gstricmp(ptr1, "CgiBinDir"))
       strcpy(defaulthost.CGIBINDIR, ptr2);
      else if(!gstricmp(ptr1, "CgiBinRoot"))
       strcpy(defaulthost.CGIBINROOT, ptr2);
      else if(!gstricmp(ptr1, "ServerPort"))
       SERVERPORT = atoi(ptr2);
      else if(!gstricmp(ptr1, "ServerType"))
       strcpy(SERVERTYPE, ptr2);
      else if(!gstricmp(ptr1, "<VirtualHost>"))
       VirtualHostDefinition(in);
      else
       printf("Warning: unknown variable in config file \"%s\"\n", ptr1);
     }
    
     fclose(in);
    }
    
    int gstricmp(char *string1, char *string2)
    {
     int loop=0;
    
     if(!string1 || !string2) return 1;
    
     while(*string1 && *string2)
     if((__extension__ ({ int __res; if (sizeof (*(string1++)) > 1) { if (__builtin_constant_p (*(string1++))) { int __c = (*(string1++)); __res = __c < -128 || __c > 255 ? __c : (*__ctype_tolower_loc ())[__c]; } else __res = tolower (*(string1++)); } else __res = (*__ctype_tolower_loc ())[(int) (*(string1++))]; __res; })) != (__extension__ ({ int __res; if (sizeof (*(string2++)) > 1) { if (__builtin_constant_p (*(string2++))) { int __c = (*(string2++)); __res = __c < -128 || __c > 255 ? __c : (*__ctype_tolower_loc ())[__c]; } else __res = tolower (*(string2++)); } else __res = (*__ctype_tolower_loc ())[(int) (*(string2++))]; __res; }))) return 1;
    
     if((__extension__ ({ int __res; if (sizeof (*(string1++)) > 1) { if (__builtin_constant_p (*(string1++))) { int __c = (*(string1++)); __res = __c < -128 || __c > 255 ? __c : (*__ctype_tolower_loc ())[__c]; } else __res = tolower (*(string1++)); } else __res = (*__ctype_tolower_loc ())[(int) (*(string1++))]; __res; })) != (__extension__ ({ int __res; if (sizeof (*(string2++)) > 1) { if (__builtin_constant_p (*(string2++))) { int __c = (*(string2++)); __res = __c < -128 || __c > 255 ? __c : (*__ctype_tolower_loc ())[__c]; } else __res = tolower (*(string2++)); } else __res = (*__ctype_tolower_loc ())[(int) (*(string2++))]; __res; }))) return 1;
    
     return 0;
    }
    
    void Log(char *format, ...)
    {
     FILE *logfile;
     time_t t;
     struct tm *tm;
     char *temp, *temp2;
     char logfilename[255];
     char datetime[] = "[%d.%m.%Y] [%H:%M.%S]";
     char datetime_final[128];
     va_list ap;
    
     __builtin_va_start(ap,format);
    
     temp = malloc(strlen(format)); vsprintf(temp, format, ap);
     __builtin_va_end(ap);
    
     time (&t);
     tm = localtime(&t);
     memset(datetime_final, 0, 128);
     strftime(datetime_final, 127, datetime, tm);
    
    
    
     temp2 = malloc((strlen(temp) + strlen(datetime_final) + 5));
     sprintf(temp2, "%s - %s\n", datetime_final, temp);
     sprintf(logfilename, "%s/ghttpd.log", SERVERROOT);
    
     if((logfile = fopen(logfilename, "at"))==((void *)0))
      return;
    
     fputs(temp2, logfile);
    
     fclose(logfile);
    }
    
    ? file icon util.i (166,885 bytes) 2011-07-25 13:56 +
  • ? file icon protocol.i (171,041 bytes) 2011-07-25 13:56 -
    # 1 "protocol.c"
    # 1 "/home/monate/ghttpd-1.4-4//"
    # 1 "<built-in>"
    # 1 "<command-line>"
    # 1 "protocol.c"
    # 20 "protocol.c"
    # 1 "/usr/include/stdio.h" 1 3 4
    # 28 "/usr/include/stdio.h" 3 4
    # 1 "/usr/include/features.h" 1 3 4
    # 323 "/usr/include/features.h" 3 4
    # 1 "/usr/include/bits/predefs.h" 1 3 4
    # 324 "/usr/include/features.h" 2 3 4
    # 356 "/usr/include/features.h" 3 4
    # 1 "/usr/include/sys/cdefs.h" 1 3 4
    # 353 "/usr/include/sys/cdefs.h" 3 4
    # 1 "/usr/include/bits/wordsize.h" 1 3 4
    # 354 "/usr/include/sys/cdefs.h" 2 3 4
    # 357 "/usr/include/features.h" 2 3 4
    # 388 "/usr/include/features.h" 3 4
    # 1 "/usr/include/gnu/stubs.h" 1 3 4
    
    
    
    # 1 "/usr/include/bits/wordsize.h" 1 3 4
    # 5 "/usr/include/gnu/stubs.h" 2 3 4
    
    
    # 1 "/usr/include/gnu/stubs-32.h" 1 3 4
    # 8 "/usr/include/gnu/stubs.h" 2 3 4
    # 389 "/usr/include/features.h" 2 3 4
    # 29 "/usr/include/stdio.h" 2 3 4
    
    
    
    
    
    # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4
    # 211 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 3 4
    typedef unsigned int size_t;
    # 35 "/usr/include/stdio.h" 2 3 4
    
    # 1 "/usr/include/bits/types.h" 1 3 4
    # 28 "/usr/include/bits/types.h" 3 4
    # 1 "/usr/include/bits/wordsize.h" 1 3 4
    # 29 "/usr/include/bits/types.h" 2 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;
    
    
    
    
    __extension__ typedef signed long long int __int64_t;
    __extension__ typedef unsigned long long int __uint64_t;
    
    
    
    
    
    
    
    __extension__ typedef long long int __quad_t;
    __extension__ typedef unsigned long long int __u_quad_t;
    # 131 "/usr/include/bits/types.h" 3 4
    # 1 "/usr/include/bits/typesizes.h" 1 3 4
    # 132 "/usr/include/bits/types.h" 2 3 4
    
    
    __extension__ typedef __u_quad_t __dev_t;
    __extension__ typedef unsigned int __uid_t;
    __extension__ typedef unsigned int __gid_t;
    __extension__ typedef unsigned long int __ino_t;
    __extension__ typedef __u_quad_t __ino64_t;
    __extension__ typedef unsigned int __mode_t;
    __extension__ typedef unsigned int __nlink_t;
    __extension__ typedef long int __off_t;
    __extension__ typedef __quad_t __off64_t;
    __extension__ typedef int __pid_t;
    __extension__ typedef struct { int __val[2]; } __fsid_t;
    __extension__ typedef long int __clock_t;
    __extension__ typedef unsigned long int __rlim_t;
    __extension__ typedef __u_quad_t __rlim64_t;
    __extension__ typedef unsigned int __id_t;
    __extension__ typedef long int __time_t;
    __extension__ typedef unsigned int __useconds_t;
    __extension__ typedef long int __suseconds_t;
    
    __extension__ typedef int __daddr_t;
    __extension__ typedef long int __swblk_t;
    __extension__ typedef int __key_t;
    
    
    __extension__ typedef int __clockid_t;
    
    
    __extension__ typedef void * __timer_t;
    
    
    __extension__ typedef long int __blksize_t;
    
    
    
    
    __extension__ typedef long int __blkcnt_t;
    __extension__ typedef __quad_t __blkcnt64_t;
    
    
    __extension__ typedef unsigned long int __fsblkcnt_t;
    __extension__ typedef __u_quad_t __fsblkcnt64_t;
    
    
    __extension__ typedef unsigned long int __fsfilcnt_t;
    __extension__ typedef __u_quad_t __fsfilcnt64_t;
    
    __extension__ typedef int __ssize_t;
    
    
    
    typedef __off64_t __loff_t;
    typedef __quad_t *__qaddr_t;
    typedef char *__caddr_t;
    
    
    __extension__ typedef int __intptr_t;
    
    
    __extension__ typedef unsigned int __socklen_t;
    # 37 "/usr/include/stdio.h" 2 3 4
    # 45 "/usr/include/stdio.h" 3 4
    struct _IO_FILE;
    
    
    
    typedef struct _IO_FILE FILE;
    
    
    
    
    
    # 65 "/usr/include/stdio.h" 3 4
    typedef struct _IO_FILE __FILE;
    # 75 "/usr/include/stdio.h" 3 4
    # 1 "/usr/include/libio.h" 1 3 4
    # 32 "/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/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4
    # 16 "/usr/include/_G_config.h" 2 3 4
    
    
    
    
    # 1 "/usr/include/wchar.h" 1 3 4
    # 83 "/usr/include/wchar.h" 3 4
    typedef struct
    {
      int __count;
      union
      {
    
        unsigned int __wch;
    
    
    
        char __wchb[4];
      } __value;
    } __mbstate_t;
    # 21 "/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;
    # 53 "/usr/include/_G_config.h" 3 4
    typedef int _G_int16_t __attribute__ ((__mode__ (__HI__)));
    typedef int _G_int32_t __attribute__ ((__mode__ (__SI__)));
    typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__)));
    typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__)));
    # 33 "/usr/include/libio.h" 2 3 4
    # 53 "/usr/include/libio.h" 3 4
    # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdarg.h" 1 3 4
    # 40 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdarg.h" 3 4
    typedef __builtin_va_list __gnuc_va_list;
    # 54 "/usr/include/libio.h" 2 3 4
    # 170 "/usr/include/libio.h" 3 4
    struct _IO_jump_t; struct _IO_FILE;
    # 180 "/usr/include/libio.h" 3 4
    typedef void _IO_lock_t;
    
    
    
    
    
    struct _IO_marker {
      struct _IO_marker *_next;
      struct _IO_FILE *_sbuf;
    
    
    
      int _pos;
    # 203 "/usr/include/libio.h" 3 4
    };
    
    
    enum __codecvt_result
    {
      __codecvt_ok,
      __codecvt_partial,
      __codecvt_error,
      __codecvt_noconv
    };
    # 271 "/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;
    # 319 "/usr/include/libio.h" 3 4
      __off64_t _offset;
    # 328 "/usr/include/libio.h" 3 4
      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_;
    # 364 "/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);
    # 416 "/usr/include/libio.h" 3 4
    extern int __underflow (_IO_FILE *);
    extern int __uflow (_IO_FILE *);
    extern int __overflow (_IO_FILE *, int);
    # 460 "/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__));
    extern int _IO_ferror (_IO_FILE *__fp) __attribute__ ((__nothrow__));
    
    extern int _IO_peekc_locked (_IO_FILE *__fp);
    
    
    
    
    
    extern void _IO_flockfile (_IO_FILE *) __attribute__ ((__nothrow__));
    extern void _IO_funlockfile (_IO_FILE *) __attribute__ ((__nothrow__));
    extern int _IO_ftrylockfile (_IO_FILE *) __attribute__ ((__nothrow__));
    # 490 "/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__));
    # 76 "/usr/include/stdio.h" 2 3 4
    
    
    
    
    typedef __gnuc_va_list va_list;
    # 91 "/usr/include/stdio.h" 3 4
    typedef __off_t off_t;
    # 103 "/usr/include/stdio.h" 3 4
    typedef __ssize_t ssize_t;
    
    
    
    
    
    
    
    typedef _G_fpos_t fpos_t;
    
    
    
    
    # 161 "/usr/include/stdio.h" 3 4
    # 1 "/usr/include/bits/stdio_lim.h" 1 3 4
    # 162 "/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__));
    
    extern int rename (__const char *__old, __const char *__new) __attribute__ ((__nothrow__));
    
    
    
    
    extern int renameat (int __oldfd, __const char *__old, int __newfd,
           __const char *__new) __attribute__ ((__nothrow__));
    
    
    
    
    
    
    
    
    extern FILE *tmpfile (void) __attribute__ ((__warn_unused_result__));
    # 206 "/usr/include/stdio.h" 3 4
    extern char *tmpnam (char *__s) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    extern char *tmpnam_r (char *__s) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    # 224 "/usr/include/stdio.h" 3 4
    extern char *tempnam (__const char *__dir, __const char *__pfx)
         __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    
    
    
    extern int fclose (FILE *__stream);
    
    
    
    
    extern int fflush (FILE *__stream);
    
    # 249 "/usr/include/stdio.h" 3 4
    extern int fflush_unlocked (FILE *__stream);
    # 263 "/usr/include/stdio.h" 3 4
    
    
    
    
    
    
    extern FILE *fopen (__const char *__restrict __filename,
          __const char *__restrict __modes) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern FILE *freopen (__const char *__restrict __filename,
            __const char *__restrict __modes,
            FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
    # 292 "/usr/include/stdio.h" 3 4
    
    # 303 "/usr/include/stdio.h" 3 4
    extern FILE *fdopen (int __fd, __const char *__modes) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    # 316 "/usr/include/stdio.h" 3 4
    extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes)
      __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    
    extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __attribute__ ((__nothrow__));
    
    
    
    extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
          int __modes, size_t __n) __attribute__ ((__nothrow__));
    
    
    
    
    
    extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
             size_t __size) __attribute__ ((__nothrow__));
    
    
    extern void setlinebuf (FILE *__stream) __attribute__ ((__nothrow__));
    
    
    
    
    
    
    
    
    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)));
    
    # 414 "/usr/include/stdio.h" 3 4
    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, ...) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern int scanf (__const char *__restrict __format, ...) __attribute__ ((__warn_unused_result__));
    
    extern int sscanf (__const char *__restrict __s,
         __const char *__restrict __format, ...) __attribute__ ((__nothrow__));
    # 445 "/usr/include/stdio.h" 3 4
    extern int fscanf (FILE *__restrict __stream, __const char *__restrict __format, ...) __asm__ ("" "__isoc99_fscanf")
    
                              __attribute__ ((__warn_unused_result__));
    extern int scanf (__const char *__restrict __format, ...) __asm__ ("" "__isoc99_scanf")
                             __attribute__ ((__warn_unused_result__));
    extern int sscanf (__const char *__restrict __s, __const char *__restrict __format, ...) __asm__ ("" "__isoc99_sscanf") __attribute__ ((__nothrow__))
    
                          ;
    # 465 "/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))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg)
         __attribute__ ((__format__ (__scanf__, 1, 0))) __attribute__ ((__warn_unused_result__));
    
    
    extern int vsscanf (__const char *__restrict __s,
          __const char *__restrict __format, __gnuc_va_list __arg)
         __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__scanf__, 2, 0)));
    # 496 "/usr/include/stdio.h" 3 4
    extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vfscanf")
    
    
    
         __attribute__ ((__format__ (__scanf__, 2, 0))) __attribute__ ((__warn_unused_result__));
    extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vscanf")
    
         __attribute__ ((__format__ (__scanf__, 1, 0))) __attribute__ ((__warn_unused_result__));
    extern int vsscanf (__const char *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vsscanf") __attribute__ ((__nothrow__))
    
    
    
         __attribute__ ((__format__ (__scanf__, 2, 0)));
    # 524 "/usr/include/stdio.h" 3 4
    
    
    
    
    
    
    
    
    
    extern int fgetc (FILE *__stream);
    extern int getc (FILE *__stream);
    
    
    
    
    
    extern int getchar (void);
    
    # 552 "/usr/include/stdio.h" 3 4
    extern int getc_unlocked (FILE *__stream);
    extern int getchar_unlocked (void);
    # 563 "/usr/include/stdio.h" 3 4
    extern int fgetc_unlocked (FILE *__stream);
    
    
    
    
    
    
    
    
    
    
    
    extern int fputc (int __c, FILE *__stream);
    extern int putc (int __c, FILE *__stream);
    
    
    
    
    
    extern int putchar (int __c);
    
    # 596 "/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)
         __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    
    extern char *gets (char *__s) __attribute__ ((__warn_unused_result__));
    
    # 658 "/usr/include/stdio.h" 3 4
    extern __ssize_t __getdelim (char **__restrict __lineptr,
              size_t *__restrict __n, int __delimiter,
              FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
    extern __ssize_t getdelim (char **__restrict __lineptr,
            size_t *__restrict __n, int __delimiter,
            FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    
    
    extern __ssize_t getline (char **__restrict __lineptr,
           size_t *__restrict __n,
           FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    
    
    
    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) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern size_t fwrite (__const void *__restrict __ptr, size_t __size,
            size_t __n, FILE *__restrict __s);
    
    # 730 "/usr/include/stdio.h" 3 4
    extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
             size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
    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) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern void rewind (FILE *__stream);
    
    # 766 "/usr/include/stdio.h" 3 4
    extern int fseeko (FILE *__stream, __off_t __off, int __whence);
    
    
    
    
    extern __off_t ftello (FILE *__stream) __attribute__ ((__warn_unused_result__));
    # 785 "/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);
    # 808 "/usr/include/stdio.h" 3 4
    
    # 817 "/usr/include/stdio.h" 3 4
    
    
    extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__));
    
    extern int feof (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    extern int ferror (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__));
    extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    
    
    
    extern void perror (__const char *__s);
    
    
    
    
    
    
    # 1 "/usr/include/bits/sys_errlist.h" 1 3 4
    # 27 "/usr/include/bits/sys_errlist.h" 3 4
    extern int sys_nerr;
    extern __const char *__const sys_errlist[];
    # 847 "/usr/include/stdio.h" 2 3 4
    
    
    
    
    extern int fileno (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    # 866 "/usr/include/stdio.h" 3 4
    extern FILE *popen (__const char *__command, __const char *__modes) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    extern int pclose (FILE *__stream);
    
    
    
    
    
    extern char *ctermid (char *__s) __attribute__ ((__nothrow__));
    # 906 "/usr/include/stdio.h" 3 4
    extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__));
    
    
    
    extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__));
    # 927 "/usr/include/stdio.h" 3 4
    # 1 "/usr/include/bits/stdio.h" 1 3 4
    # 44 "/usr/include/bits/stdio.h" 3 4
    extern __inline int
    getchar (void)
    {
      return _IO_getc (stdin);
    }
    
    
    
    
    extern __inline int
    fgetc_unlocked (FILE *__fp)
    {
      return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
    }
    
    
    
    
    
    extern __inline int
    getc_unlocked (FILE *__fp)
    {
      return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
    }
    
    
    extern __inline int
    getchar_unlocked (void)
    {
      return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++);
    }
    
    
    
    
    extern __inline int
    putchar (int __c)
    {
      return _IO_putc (__c, stdout);
    }
    
    
    
    
    extern __inline int
    fputc_unlocked (int __c, FILE *__stream)
    {
      return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
    }
    
    
    
    
    
    extern __inline int
    putc_unlocked (int __c, FILE *__stream)
    {
      return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
    }
    
    
    extern __inline int
    putchar_unlocked (int __c)
    {
      return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c)));
    }
    # 125 "/usr/include/bits/stdio.h" 3 4
    extern __inline int
    __attribute__ ((__nothrow__)) feof_unlocked (FILE *__stream)
    {
      return (((__stream)->_flags & 0x10) != 0);
    }
    
    
    extern __inline int
    __attribute__ ((__nothrow__)) ferror_unlocked (FILE *__stream)
    {
      return (((__stream)->_flags & 0x20) != 0);
    }
    # 928 "/usr/include/stdio.h" 2 3 4
    
    
    # 1 "/usr/include/bits/stdio2.h" 1 3 4
    # 24 "/usr/include/bits/stdio2.h" 3 4
    extern int __sprintf_chk (char *__restrict __s, int __flag, size_t __slen,
         __const char *__restrict __format, ...) __attribute__ ((__nothrow__));
    extern int __vsprintf_chk (char *__restrict __s, int __flag, size_t __slen,
          __const char *__restrict __format,
          __gnuc_va_list __ap) __attribute__ ((__nothrow__));
    
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
    __attribute__ ((__nothrow__)) sprintf (char *__restrict __s, __const char *__restrict __fmt, ...)
    {
      return __builtin___sprintf_chk (__s, 2 - 1,
          __builtin_object_size (__s, 2 > 1), __fmt, __builtin_va_arg_pack ());
    }
    
    
    
    
    
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
    __attribute__ ((__nothrow__)) vsprintf (char *__restrict __s, __const char *__restrict __fmt, __gnuc_va_list __ap)
    
    {
      return __builtin___vsprintf_chk (__s, 2 - 1,
           __builtin_object_size (__s, 2 > 1), __fmt, __ap);
    }
    
    
    
    extern int __snprintf_chk (char *__restrict __s, size_t __n, int __flag,
          size_t __slen, __const char *__restrict __format,
          ...) __attribute__ ((__nothrow__));
    extern int __vsnprintf_chk (char *__restrict __s, size_t __n, int __flag,
           size_t __slen, __const char *__restrict __format,
           __gnuc_va_list __ap) __attribute__ ((__nothrow__));
    
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
    __attribute__ ((__nothrow__)) snprintf (char *__restrict __s, size_t __n, __const char *__restrict __fmt, ...)
    
    {
      return __builtin___snprintf_chk (__s, __n, 2 - 1,
           __builtin_object_size (__s, 2 > 1), __fmt, __builtin_va_arg_pack ());
    }
    
    
    
    
    
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
    __attribute__ ((__nothrow__)) vsnprintf (char *__restrict __s, size_t __n, __const char *__restrict __fmt, __gnuc_va_list __ap)
    
    {
      return __builtin___vsnprintf_chk (__s, __n, 2 - 1,
            __builtin_object_size (__s, 2 > 1), __fmt, __ap);
    }
    
    
    
    
    
    extern int __fprintf_chk (FILE *__restrict __stream, int __flag,
         __const char *__restrict __format, ...);
    extern int __printf_chk (int __flag, __const char *__restrict __format, ...);
    extern int __vfprintf_chk (FILE *__restrict __stream, int __flag,
          __const char *__restrict __format, __gnuc_va_list __ap);
    extern int __vprintf_chk (int __flag, __const char *__restrict __format,
         __gnuc_va_list __ap);
    
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
    fprintf (FILE *__restrict __stream, __const char *__restrict __fmt, ...)
    {
      return __fprintf_chk (__stream, 2 - 1, __fmt,
       __builtin_va_arg_pack ());
    }
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
    printf (__const char *__restrict __fmt, ...)
    {
      return __printf_chk (2 - 1, __fmt, __builtin_va_arg_pack ());
    }
    
    
    
    
    
    
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
    vprintf (__const char *__restrict __fmt, __gnuc_va_list __ap)
    {
    
      return __vfprintf_chk (stdout, 2 - 1, __fmt, __ap);
    
    
    
    }
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
    vfprintf (FILE *__restrict __stream,
       __const char *__restrict __fmt, __gnuc_va_list __ap)
    {
      return __vfprintf_chk (__stream, 2 - 1, __fmt, __ap);
    }
    # 220 "/usr/include/bits/stdio2.h" 3 4
    extern char *__gets_chk (char *__str, size_t) __attribute__ ((__warn_unused_result__));
    extern char *__gets_warn (char *__str) __asm__ ("" "gets")
         __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("please use fgets or getline instead, gets can't " "specify buffer size")))
                                   ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char *
    gets (char *__str)
    {
      if (__builtin_object_size (__str, 2 > 1) != (size_t) -1)
        return __gets_chk (__str, __builtin_object_size (__str, 2 > 1));
      return __gets_warn (__str);
    }
    
    extern char *__fgets_chk (char *__restrict __s, size_t __size, int __n,
         FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
    extern char *__fgets_alias (char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("" "fgets")
    
                                            __attribute__ ((__warn_unused_result__));
    extern char *__fgets_chk_warn (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __asm__ ("" "__fgets_chk")
    
    
         __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgets called with bigger size than length " "of destination buffer")))
                                     ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char *
    fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
    {
      if (__builtin_object_size (__s, 2 > 1) != (size_t) -1)
        {
          if (!__builtin_constant_p (__n) || __n <= 0)
     return __fgets_chk (__s, __builtin_object_size (__s, 2 > 1), __n, __stream);
    
          if ((size_t) __n > __builtin_object_size (__s, 2 > 1))
     return __fgets_chk_warn (__s, __builtin_object_size (__s, 2 > 1), __n, __stream);
        }
      return __fgets_alias (__s, __n, __stream);
    }
    
    extern size_t __fread_chk (void *__restrict __ptr, size_t __ptrlen,
          size_t __size, size_t __n,
          FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
    extern size_t __fread_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread")
    
    
                __attribute__ ((__warn_unused_result__));
    extern size_t __fread_chk_warn (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "__fread_chk")
    
    
    
    
         __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fread called with bigger size * nmemb than length " "of destination buffer")))
                                     ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t
    fread (void *__restrict __ptr, size_t __size, size_t __n,
           FILE *__restrict __stream)
    {
      if (__builtin_object_size (__ptr, 0) != (size_t) -1)
        {
          if (!__builtin_constant_p (__size)
       || !__builtin_constant_p (__n)
       || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2)))
     return __fread_chk (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream);
    
          if (__size * __n > __builtin_object_size (__ptr, 0))
     return __fread_chk_warn (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream);
        }
      return __fread_alias (__ptr, __size, __n, __stream);
    }
    # 319 "/usr/include/bits/stdio2.h" 3 4
    extern size_t __fread_unlocked_chk (void *__restrict __ptr, size_t __ptrlen,
            size_t __size, size_t __n,
            FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
    extern size_t __fread_unlocked_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread_unlocked")
    
    
                         __attribute__ ((__warn_unused_result__));
    extern size_t __fread_unlocked_chk_warn (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "__fread_unlocked_chk")
    
    
    
    
         __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fread_unlocked called with bigger size * nmemb than " "length of destination buffer")))
                                            ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t
    fread_unlocked (void *__restrict __ptr, size_t __size, size_t __n,
      FILE *__restrict __stream)
    {
      if (__builtin_object_size (__ptr, 0) != (size_t) -1)
        {
          if (!__builtin_constant_p (__size)
       || !__builtin_constant_p (__n)
       || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2)))
     return __fread_unlocked_chk (__ptr, __builtin_object_size (__ptr, 0), __size, __n,
             __stream);
    
          if (__size * __n > __builtin_object_size (__ptr, 0))
     return __fread_unlocked_chk_warn (__ptr, __builtin_object_size (__ptr, 0), __size, __n,
           __stream);
        }
    
    
      if (__builtin_constant_p (__size)
          && __builtin_constant_p (__n)
          && (__size | __n) < (((size_t) 1) << (8 * sizeof (size_t) / 2))
          && __size * __n <= 8)
        {
          size_t __cnt = __size * __n;
          char *__cptr = (char *) __ptr;
          if (__cnt == 0)
     return 0;
    
          for (; __cnt > 0; --__cnt)
     {
       int __c = (__builtin_expect (((__stream)->_IO_read_ptr >= (__stream)->_IO_read_end), 0) ? __uflow (__stream) : *(unsigned char *) (__stream)->_IO_read_ptr++);
       if (__c == (-1))
         break;
       *__cptr++ = __c;
     }
          return (__cptr - (char *) __ptr) / __size;
        }
    
      return __fread_unlocked_alias (__ptr, __size, __n, __stream);
    }
    # 931 "/usr/include/stdio.h" 2 3 4
    
    
    
    
    
    
    # 21 "protocol.c" 2
    # 1 "/usr/include/stdlib.h" 1 3 4
    # 33 "/usr/include/stdlib.h" 3 4
    # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4
    # 323 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 3 4
    typedef int wchar_t;
    # 34 "/usr/include/stdlib.h" 2 3 4
    
    
    
    
    
    
    
    
    # 1 "/usr/include/bits/waitflags.h" 1 3 4
    # 43 "/usr/include/stdlib.h" 2 3 4
    # 1 "/usr/include/bits/waitstatus.h" 1 3 4
    # 65 "/usr/include/bits/waitstatus.h" 3 4
    # 1 "/usr/include/endian.h" 1 3 4
    # 37 "/usr/include/endian.h" 3 4
    # 1 "/usr/include/bits/endian.h" 1 3 4
    # 38 "/usr/include/endian.h" 2 3 4
    # 61 "/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
    # 62 "/usr/include/endian.h" 2 3 4
    # 66 "/usr/include/bits/waitstatus.h" 2 3 4
    
    union wait
      {
        int w_status;
        struct
          {
    
     unsigned int __w_termsig:7;
     unsigned int __w_coredump:1;
     unsigned int __w_retcode:8;
     unsigned int:16;
    
    
    
    
    
    
    
          } __wait_terminated;
        struct
          {
    
     unsigned int __w_stopval:8;
     unsigned int __w_stopsig:8;
     unsigned int:16;
    
    
    
    
    
    
          } __wait_stopped;
      };
    # 44 "/usr/include/stdlib.h" 2 3 4
    # 68 "/usr/include/stdlib.h" 3 4
    typedef union
      {
        union wait *__uptr;
        int *__iptr;
      } __WAIT_STATUS __attribute__ ((__transparent_union__));
    # 96 "/usr/include/stdlib.h" 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;
    
    
    # 140 "/usr/include/stdlib.h" 3 4
    extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern double atof (__const char *__nptr)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    extern int atoi (__const char *__nptr)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    extern long int atol (__const char *__nptr)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    __extension__ extern long long int atoll (__const char *__nptr)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    extern double strtod (__const char *__restrict __nptr,
            char **__restrict __endptr)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    extern float strtof (__const char *__restrict __nptr,
           char **__restrict __endptr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    extern long double strtold (__const char *__restrict __nptr,
           char **__restrict __endptr)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    extern long int strtol (__const char *__restrict __nptr,
       char **__restrict __endptr, int __base)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    extern unsigned long int strtoul (__const char *__restrict __nptr,
          char **__restrict __endptr, int __base)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    __extension__
    extern long long int strtoq (__const char *__restrict __nptr,
            char **__restrict __endptr, int __base)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    __extension__
    extern unsigned long long int strtouq (__const char *__restrict __nptr,
               char **__restrict __endptr, int __base)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    __extension__
    extern long long int strtoll (__const char *__restrict __nptr,
             char **__restrict __endptr, int __base)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    __extension__
    extern unsigned long long int strtoull (__const char *__restrict __nptr,
         char **__restrict __endptr, int __base)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    # 277 "/usr/include/stdlib.h" 3 4
    
    extern __inline double
    __attribute__ ((__nothrow__)) atof (__const char *__nptr)
    {
      return strtod (__nptr, (char **) ((void *)0));
    }
    extern __inline int
    __attribute__ ((__nothrow__)) atoi (__const char *__nptr)
    {
      return (int) strtol (__nptr, (char **) ((void *)0), 10);
    }
    extern __inline long int
    __attribute__ ((__nothrow__)) atol (__const char *__nptr)
    {
      return strtol (__nptr, (char **) ((void *)0), 10);
    }
    
    
    
    
    __extension__ extern __inline long long int
    __attribute__ ((__nothrow__)) atoll (__const char *__nptr)
    {
      return strtoll (__nptr, (char **) ((void *)0), 10);
    }
    
    # 311 "/usr/include/stdlib.h" 3 4
    extern char *l64a (long int __n) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    extern long int a64l (__const char *__s)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    # 1 "/usr/include/sys/types.h" 1 3 4
    # 28 "/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;
    # 61 "/usr/include/sys/types.h" 3 4
    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;
    # 99 "/usr/include/sys/types.h" 3 4
    typedef __pid_t pid_t;
    
    
    
    
    
    typedef __id_t id_t;
    # 116 "/usr/include/sys/types.h" 3 4
    typedef __daddr_t daddr_t;
    typedef __caddr_t caddr_t;
    
    
    
    
    
    typedef __key_t key_t;
    # 133 "/usr/include/sys/types.h" 3 4
    # 1 "/usr/include/time.h" 1 3 4
    # 58 "/usr/include/time.h" 3 4
    
    
    typedef __clock_t clock_t;
    
    
    
    # 74 "/usr/include/time.h" 3 4
    
    
    typedef __time_t time_t;
    
    
    
    # 92 "/usr/include/time.h" 3 4
    typedef __clockid_t clockid_t;
    # 104 "/usr/include/time.h" 3 4
    typedef __timer_t timer_t;
    # 134 "/usr/include/sys/types.h" 2 3 4
    # 147 "/usr/include/sys/types.h" 3 4
    # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4
    # 148 "/usr/include/sys/types.h" 2 3 4
    
    
    
    typedef unsigned long int ulong;
    typedef unsigned short int ushort;
    typedef unsigned int uint;
    # 195 "/usr/include/sys/types.h" 3 4
    typedef int int8_t __attribute__ ((__mode__ (__QI__)));
    typedef int int16_t __attribute__ ((__mode__ (__HI__)));
    typedef int int32_t __attribute__ ((__mode__ (__SI__)));
    typedef int int64_t __attribute__ ((__mode__ (__DI__)));
    
    
    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__)));
    # 220 "/usr/include/sys/types.h" 3 4
    # 1 "/usr/include/sys/select.h" 1 3 4
    # 31 "/usr/include/sys/select.h" 3 4
    # 1 "/usr/include/bits/select.h" 1 3 4
    # 23 "/usr/include/bits/select.h" 3 4
    # 1 "/usr/include/bits/wordsize.h" 1 3 4
    # 24 "/usr/include/bits/select.h" 2 3 4
    # 32 "/usr/include/sys/select.h" 2 3 4
    
    
    # 1 "/usr/include/bits/sigset.h" 1 3 4
    # 24 "/usr/include/bits/sigset.h" 3 4
    typedef int __sig_atomic_t;
    
    
    
    
    typedef struct
      {
        unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
      } __sigset_t;
    # 35 "/usr/include/sys/select.h" 2 3 4
    
    
    
    typedef __sigset_t sigset_t;
    
    
    
    
    
    # 1 "/usr/include/time.h" 1 3 4
    # 120 "/usr/include/time.h" 3 4
    struct timespec
      {
        __time_t tv_sec;
        long int tv_nsec;
      };
    # 45 "/usr/include/sys/select.h" 2 3 4
    
    # 1 "/usr/include/bits/time.h" 1 3 4
    # 75 "/usr/include/bits/time.h" 3 4
    struct timeval
      {
        __time_t tv_sec;
        __suseconds_t tv_usec;
      };
    # 47 "/usr/include/sys/select.h" 2 3 4
    
    
    typedef __suseconds_t suseconds_t;
    
    
    
    
    
    typedef long int __fd_mask;
    # 67 "/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;
    # 99 "/usr/include/sys/select.h" 3 4
    
    # 109 "/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);
    # 121 "/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);
    
    
    
    # 221 "/usr/include/sys/types.h" 2 3 4
    
    
    # 1 "/usr/include/sys/sysmacros.h" 1 3 4
    # 30 "/usr/include/sys/sysmacros.h" 3 4
    __extension__
    extern unsigned int gnu_dev_major (unsigned long long int __dev)
         __attribute__ ((__nothrow__));
    __extension__
    extern unsigned int gnu_dev_minor (unsigned long long int __dev)
         __attribute__ ((__nothrow__));
    __extension__
    extern unsigned long long int gnu_dev_makedev (unsigned int __major,
                unsigned int __minor)
         __attribute__ ((__nothrow__));
    
    
    __extension__ extern __inline unsigned int
    __attribute__ ((__nothrow__)) gnu_dev_major (unsigned long long int __dev)
    {
      return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff);
    }
    
    __extension__ extern __inline unsigned int
    __attribute__ ((__nothrow__)) gnu_dev_minor (unsigned long long int __dev)
    {
      return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff);
    }
    
    __extension__ extern __inline unsigned long long int
    __attribute__ ((__nothrow__)) gnu_dev_makedev (unsigned int __major, unsigned int __minor)
    {
      return ((__minor & 0xff) | ((__major & 0xfff) << 8)
       | (((unsigned long long int) (__minor & ~0xff)) << 12)
       | (((unsigned long long int) (__major & ~0xfff)) << 32));
    }
    # 224 "/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;
    # 271 "/usr/include/sys/types.h" 3 4
    # 1 "/usr/include/bits/pthreadtypes.h" 1 3 4
    # 23 "/usr/include/bits/pthreadtypes.h" 3 4
    # 1 "/usr/include/bits/wordsize.h" 1 3 4
    # 24 "/usr/include/bits/pthreadtypes.h" 2 3 4
    # 50 "/usr/include/bits/pthreadtypes.h" 3 4
    typedef unsigned long int pthread_t;
    
    
    typedef union
    {
      char __size[36];
      long int __align;
    } pthread_attr_t;
    # 67 "/usr/include/bits/pthreadtypes.h" 3 4
    typedef struct __pthread_internal_slist
    {
      struct __pthread_internal_slist *__next;
    } __pthread_slist_t;
    
    
    
    
    
    typedef union
    {
      struct __pthread_mutex_s
      {
        int __lock;
        unsigned int __count;
        int __owner;
    
    
    
    
    
        int __kind;
    
    
    
    
    
        unsigned int __nusers;
        __extension__ union
        {
          int __spins;
          __pthread_slist_t __list;
        };
    
      } __data;
      char __size[24];
      long int __align;
    } pthread_mutex_t;
    
    typedef union
    {
      char __size[4];
      int __align;
    } pthread_mutexattr_t;
    
    
    
    
    typedef union
    {
      struct
      {
        int __lock;
        unsigned int __futex;
        __extension__ unsigned long long int __total_seq;
        __extension__ unsigned long long int __wakeup_seq;
        __extension__ unsigned long long int __woken_seq;
        void *__mutex;
        unsigned int __nwaiters;
        unsigned int __broadcast_seq;
      } __data;
      char __size[48];
      __extension__ long long int __align;
    } pthread_cond_t;
    
    typedef union
    {
      char __size[4];
      int __align;
    } pthread_condattr_t;
    
    
    
    typedef unsigned int pthread_key_t;
    
    
    
    typedef int pthread_once_t;
    
    
    
    
    
    typedef union
    {
    # 170 "/usr/include/bits/pthreadtypes.h" 3 4
      struct
      {
        int __lock;
        unsigned int __nr_readers;
        unsigned int __readers_wakeup;
        unsigned int __writer_wakeup;
        unsigned int __nr_readers_queued;
        unsigned int __nr_writers_queued;
    
    
        unsigned char __flags;
        unsigned char __shared;
        unsigned char __pad1;
        unsigned char __pad2;
        int __writer;
      } __data;
    
      char __size[32];
      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[20];
      long int __align;
    } pthread_barrier_t;
    
    typedef union
    {
      char __size[4];
      int __align;
    } pthread_barrierattr_t;
    # 272 "/usr/include/sys/types.h" 2 3 4
    
    
    
    # 321 "/usr/include/stdlib.h" 2 3 4
    
    
    
    
    
    
    extern long int random (void) __attribute__ ((__nothrow__));
    
    
    extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__));
    
    
    
    
    
    extern char *initstate (unsigned int __seed, char *__statebuf,
       size_t __statelen) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
    
    
    
    extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__)) __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__)) __attribute__ ((__nonnull__ (1, 2)));
    
    extern int srandom_r (unsigned int __seed, struct random_data *__buf)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
    
    extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
       size_t __statelen,
       struct random_data *__restrict __buf)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4)));
    
    extern int setstate_r (char *__restrict __statebuf,
             struct random_data *__restrict __buf)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    
    
    
    
    extern int rand (void) __attribute__ ((__nothrow__));
    
    extern void srand (unsigned int __seed) __attribute__ ((__nothrow__));
    
    
    
    
    extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__));
    
    
    
    
    
    
    
    extern double drand48 (void) __attribute__ ((__nothrow__));
    extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    extern long int lrand48 (void) __attribute__ ((__nothrow__));
    extern long int nrand48 (unsigned short int __xsubi[3])
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    extern long int mrand48 (void) __attribute__ ((__nothrow__));
    extern long int jrand48 (unsigned short int __xsubi[3])
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    extern void srand48 (long int __seedval) __attribute__ ((__nothrow__));
    extern unsigned short int *seed48 (unsigned short int __seed16v[3])
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__)) __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;
        unsigned long long int __a;
      };
    
    
    extern int drand48_r (struct drand48_data *__restrict __buffer,
            double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    extern int erand48_r (unsigned short int __xsubi[3],
            struct drand48_data *__restrict __buffer,
            double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    extern int lrand48_r (struct drand48_data *__restrict __buffer,
            long int *__restrict __result)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    extern int nrand48_r (unsigned short int __xsubi[3],
            struct drand48_data *__restrict __buffer,
            long int *__restrict __result)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    extern int mrand48_r (struct drand48_data *__restrict __buffer,
            long int *__restrict __result)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    extern int jrand48_r (unsigned short int __xsubi[3],
            struct drand48_data *__restrict __buffer,
            long int *__restrict __result)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
    
    extern int seed48_r (unsigned short int __seed16v[3],
           struct drand48_data *__buffer) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    extern int lcong48_r (unsigned short int __param[7],
            struct drand48_data *__buffer)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    
    
    
    
    
    
    
    extern void *malloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__));
    
    extern void *calloc (size_t __nmemb, size_t __size)
         __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    
    
    
    
    
    extern void *realloc (void *__ptr, size_t __size)
         __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    extern void free (void *__ptr) __attribute__ ((__nothrow__));
    
    
    
    
    extern void cfree (void *__ptr) __attribute__ ((__nothrow__));
    
    
    
    # 1 "/usr/include/alloca.h" 1 3 4
    # 25 "/usr/include/alloca.h" 3 4
    # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4
    # 26 "/usr/include/alloca.h" 2 3 4
    
    
    
    
    
    
    
    extern void *alloca (size_t __size) __attribute__ ((__nothrow__));
    
    
    
    
    
    
    # 498 "/usr/include/stdlib.h" 2 3 4
    
    
    
    
    
    extern void *valloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern void abort (void) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
    
    
    
    extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    # 531 "/usr/include/stdlib.h" 3 4
    
    
    
    
    
    extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    
    
    extern void exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
    # 554 "/usr/include/stdlib.h" 3 4
    
    
    
    
    
    
    extern void _Exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
    
    
    
    
    
    
    extern char *getenv (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern char *__secure_getenv (__const char *__name)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    extern int putenv (char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    
    extern int setenv (__const char *__name, __const char *__value, int __replace)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
    
    
    extern int unsetenv (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    
    
    extern int clearenv (void) __attribute__ ((__nothrow__));
    # 606 "/usr/include/stdlib.h" 3 4
    extern char *mktemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    # 620 "/usr/include/stdlib.h" 3 4
    extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    # 642 "/usr/include/stdlib.h" 3 4
    extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    # 663 "/usr/include/stdlib.h" 3 4
    extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    # 712 "/usr/include/stdlib.h" 3 4
    
    
    
    
    
    extern int system (__const char *__command) __attribute__ ((__warn_unused_result__));
    
    # 734 "/usr/include/stdlib.h" 3 4
    extern char *realpath (__const char *__restrict __name,
             char *__restrict __resolved) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    
    typedef int (*__compar_fn_t) (__const void *, __const void *);
    # 752 "/usr/include/stdlib.h" 3 4
    
    
    
    extern void *bsearch (__const void *__key, __const void *__base,
            size_t __nmemb, size_t __size, __compar_fn_t __compar)
         __attribute__ ((__nonnull__ (1, 2, 5))) __attribute__ ((__warn_unused_result__));
    
    
    
    extern void qsort (void *__base, size_t __nmemb, size_t __size,
         __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
    # 771 "/usr/include/stdlib.h" 3 4
    extern int abs (int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__));
    extern long int labs (long int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__));
    
    
    
    __extension__ extern long long int llabs (long long int __x)
         __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    
    
    extern div_t div (int __numer, int __denom)
         __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__));
    extern ldiv_t ldiv (long int __numer, long int __denom)
         __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    __extension__ extern lldiv_t lldiv (long long int __numer,
            long long int __denom)
         __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__));
    
    # 808 "/usr/include/stdlib.h" 3 4
    extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
         int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
         int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern char *gcvt (double __value, int __ndigit, char *__buf)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern char *qecvt (long double __value, int __ndigit,
          int *__restrict __decpt, int *__restrict __sign)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__));
    extern char *qfcvt (long double __value, int __ndigit,
          int *__restrict __decpt, int *__restrict __sign)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__));
    extern char *qgcvt (long double __value, int __ndigit, char *__buf)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
         int *__restrict __sign, char *__restrict __buf,
         size_t __len) __attribute__ ((__nothrow__)) __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__)) __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__)) __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__)) __attribute__ ((__nonnull__ (3, 4, 5)));
    
    
    
    
    
    
    
    extern int mblen (__const char *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    extern int mbtowc (wchar_t *__restrict __pwc,
         __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    
    extern size_t mbstowcs (wchar_t *__restrict __pwcs,
       __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__));
    
    extern size_t wcstombs (char *__restrict __s,
       __const wchar_t *__restrict __pwcs, size_t __n)
         __attribute__ ((__nothrow__));
    
    
    
    
    
    
    
    
    extern int rpmatch (__const char *__response) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    # 896 "/usr/include/stdlib.h" 3 4
    extern int getsubopt (char **__restrict __optionp,
            char *__const *__restrict __tokens,
            char **__restrict __valuep)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2, 3))) __attribute__ ((__warn_unused_result__));
    # 948 "/usr/include/stdlib.h" 3 4
    extern int getloadavg (double __loadavg[], int __nelem)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    
    # 1 "/usr/include/bits/stdlib.h" 1 3 4
    # 24 "/usr/include/bits/stdlib.h" 3 4
    extern char *__realpath_chk (__const char *__restrict __name,
            char *__restrict __resolved,
            size_t __resolvedlen) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    extern char *__realpath_alias (__const char *__restrict __name, char *__restrict __resolved) __asm__ ("" "realpath") __attribute__ ((__nothrow__))
    
                                                     __attribute__ ((__warn_unused_result__));
    extern char *__realpath_chk_warn (__const char *__restrict __name, char *__restrict __resolved, size_t __resolvedlen) __asm__ ("" "__realpath_chk") __attribute__ ((__nothrow__))
    
    
                                                    __attribute__ ((__warn_unused_result__))
         __attribute__((__warning__ ("second argument of realpath must be either NULL or at " "least PATH_MAX bytes long buffer")))
                                          ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char *
    __attribute__ ((__nothrow__)) realpath (__const char *__restrict __name, char *__restrict __resolved)
    {
      if (__builtin_object_size (__resolved, 2 > 1) != (size_t) -1)
        {
    
    
    
    
          return __realpath_chk (__name, __resolved, __builtin_object_size (__resolved, 2 > 1));
        }
    
      return __realpath_alias (__name, __resolved);
    }
    
    
    extern int __ptsname_r_chk (int __fd, char *__buf, size_t __buflen,
           size_t __nreal) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
    extern int __ptsname_r_alias (int __fd, char *__buf, size_t __buflen) __asm__ ("" "ptsname_r") __attribute__ ((__nothrow__))
    
         __attribute__ ((__nonnull__ (2)));
    extern int __ptsname_r_chk_warn (int __fd, char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__ptsname_r_chk") __attribute__ ((__nothrow__))
    
    
         __attribute__ ((__nonnull__ (2))) __attribute__((__warning__ ("ptsname_r called with buflen bigger than " "size of buf")))
                       ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
    __attribute__ ((__nothrow__)) ptsname_r (int __fd, char *__buf, size_t __buflen)
    {
      if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
        {
          if (!__builtin_constant_p (__buflen))
     return __ptsname_r_chk (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1));
          if (__buflen > __builtin_object_size (__buf, 2 > 1))
     return __ptsname_r_chk_warn (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1));
        }
      return __ptsname_r_alias (__fd, __buf, __buflen);
    }
    
    
    extern int __wctomb_chk (char *__s, wchar_t __wchar, size_t __buflen)
      __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    extern int __wctomb_alias (char *__s, wchar_t __wchar) __asm__ ("" "wctomb") __attribute__ ((__nothrow__))
                  __attribute__ ((__warn_unused_result__));
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) int
    __attribute__ ((__nothrow__)) wctomb (char *__s, wchar_t __wchar)
    {
    
    
    
    
    
    
    
      if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 && 16 > __builtin_object_size (__s, 2 > 1))
        return __wctomb_chk (__s, __wchar, __builtin_object_size (__s, 2 > 1));
      return __wctomb_alias (__s, __wchar);
    }
    
    
    extern size_t __mbstowcs_chk (wchar_t *__restrict __dst,
             __const char *__restrict __src,
             size_t __len, size_t __dstlen) __attribute__ ((__nothrow__));
    extern size_t __mbstowcs_alias (wchar_t *__restrict __dst, __const char *__restrict __src, size_t __len) __asm__ ("" "mbstowcs") __attribute__ ((__nothrow__))
    
    
                                      ;
    extern size_t __mbstowcs_chk_warn (wchar_t *__restrict __dst, __const char *__restrict __src, size_t __len, size_t __dstlen) __asm__ ("" "__mbstowcs_chk") __attribute__ ((__nothrow__))
    
    
    
         __attribute__((__warning__ ("mbstowcs called with dst buffer smaller than len " "* sizeof (wchar_t)")))
                            ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) size_t
    __attribute__ ((__nothrow__)) mbstowcs (wchar_t *__restrict __dst, __const char *__restrict __src, size_t __len)
    
    {
      if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1)
        {
          if (!__builtin_constant_p (__len))
     return __mbstowcs_chk (__dst, __src, __len,
              __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t));
    
          if (__len > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t))
     return __mbstowcs_chk_warn (__dst, __src, __len,
             __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t));
        }
      return __mbstowcs_alias (__dst, __src, __len);
    }
    
    
    extern size_t __wcstombs_chk (char *__restrict __dst,
             __const wchar_t *__restrict __src,
             size_t __len, size_t __dstlen) __attribute__ ((__nothrow__));
    extern size_t __wcstombs_alias (char *__restrict __dst, __const wchar_t *__restrict __src, size_t __len) __asm__ ("" "wcstombs") __attribute__ ((__nothrow__))
    
    
                                      ;
    extern size_t __wcstombs_chk_warn (char *__restrict __dst, __const wchar_t *__restrict __src, size_t __len, size_t __dstlen) __asm__ ("" "__wcstombs_chk") __attribute__ ((__nothrow__))
    
    
    
         __attribute__((__warning__ ("wcstombs called with dst buffer smaller than len")));
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) size_t
    __attribute__ ((__nothrow__)) wcstombs (char *__restrict __dst, __const wchar_t *__restrict __src, size_t __len)
    
    {
      if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1)
        {
          if (!__builtin_constant_p (__len))
     return __wcstombs_chk (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1));
          if (__len > __builtin_object_size (__dst, 2 > 1))
     return __wcstombs_chk_warn (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1));
        }
      return __wcstombs_alias (__dst, __src, __len);
    }
    # 956 "/usr/include/stdlib.h" 2 3 4
    # 964 "/usr/include/stdlib.h" 3 4
    
    # 22 "protocol.c" 2
    # 1 "/usr/include/errno.h" 1 3 4
    # 32 "/usr/include/errno.h" 3 4
    
    
    
    
    # 1 "/usr/include/bits/errno.h" 1 3 4
    # 25 "/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
    # 5 "/usr/include/asm-generic/errno.h" 2 3 4
    # 1 "/usr/include/asm/errno.h" 2 3 4
    # 5 "/usr/include/linux/errno.h" 2 3 4
    # 26 "/usr/include/bits/errno.h" 2 3 4
    # 47 "/usr/include/bits/errno.h" 3 4
    extern int *__errno_location (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
    # 37 "/usr/include/errno.h" 2 3 4
    # 59 "/usr/include/errno.h" 3 4
    
    # 23 "protocol.c" 2
    # 1 "/usr/include/string.h" 1 3 4
    # 29 "/usr/include/string.h" 3 4
    
    
    
    
    
    # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4
    # 35 "/usr/include/string.h" 2 3 4
    
    
    
    
    
    
    
    
    
    extern void *memcpy (void *__restrict __dest,
           __const void *__restrict __src, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    extern void *memmove (void *__dest, __const void *__src, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    
    
    
    
    extern void *memccpy (void *__restrict __dest, __const void *__restrict __src,
            int __c, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    
    
    
    extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    extern int memcmp (__const void *__s1, __const void *__s2, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
    # 95 "/usr/include/string.h" 3 4
    extern void *memchr (__const void *__s, int __c, size_t __n)
          __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
    
    
    # 126 "/usr/include/string.h" 3 4
    
    
    extern char *strcpy (char *__restrict __dest, __const char *__restrict __src)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    extern char *strncpy (char *__restrict __dest,
            __const char *__restrict __src, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    extern char *strcat (char *__restrict __dest, __const char *__restrict __src)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    extern char *strncat (char *__restrict __dest, __const char *__restrict __src,
            size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    extern int strcmp (__const char *__s1, __const char *__s2)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
    
    extern int strncmp (__const char *__s1, __const char *__s2, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    extern int strcoll (__const char *__s1, __const char *__s2)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
    
    extern size_t strxfrm (char *__restrict __dest,
             __const char *__restrict __src, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
    
    
    
    
    
    
    # 1 "/usr/include/xlocale.h" 1 3 4
    # 28 "/usr/include/xlocale.h" 3 4
    typedef 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];
    } *__locale_t;
    
    
    typedef __locale_t locale_t;
    # 163 "/usr/include/string.h" 2 3 4
    
    
    extern int strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l)
         __attribute__ ((__nothrow__)) __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__)) __attribute__ ((__nonnull__ (2, 4)));
    
    
    
    
    
    extern char *strdup (__const char *__s)
         __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    
    
    extern char *strndup (__const char *__string, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
    # 210 "/usr/include/string.h" 3 4
    
    # 235 "/usr/include/string.h" 3 4
    extern char *strchr (__const char *__s, int __c)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
    # 262 "/usr/include/string.h" 3 4
    extern char *strrchr (__const char *__s, int __c)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
    
    
    # 281 "/usr/include/string.h" 3 4
    
    
    
    extern size_t strcspn (__const char *__s, __const char *__reject)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    extern size_t strspn (__const char *__s, __const char *__accept)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
    # 314 "/usr/include/string.h" 3 4
    extern char *strpbrk (__const char *__s, __const char *__accept)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
    # 342 "/usr/include/string.h" 3 4
    extern char *strstr (__const char *__haystack, __const char *__needle)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    
    
    extern char *strtok (char *__restrict __s, __const char *__restrict __delim)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
    
    
    
    
    extern char *__strtok_r (char *__restrict __s,
        __const char *__restrict __delim,
        char **__restrict __save_ptr)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
    
    extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim,
             char **__restrict __save_ptr)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
    # 397 "/usr/include/string.h" 3 4
    
    
    extern size_t strlen (__const char *__s)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    
    extern size_t strnlen (__const char *__string, size_t __maxlen)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    
    extern char *strerror (int __errnum) __attribute__ ((__nothrow__));
    
    # 427 "/usr/include/string.h" 3 4
    extern int strerror_r (int __errnum, char *__buf, size_t __buflen) __asm__ ("" "__xpg_strerror_r") __attribute__ ((__nothrow__))
    
                            __attribute__ ((__nonnull__ (2)));
    # 445 "/usr/include/string.h" 3 4
    extern char *strerror_l (int __errnum, __locale_t __l) __attribute__ ((__nothrow__));
    
    
    
    
    
    extern void __bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    extern void bcopy (__const void *__src, void *__dest, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    extern int bcmp (__const void *__s1, __const void *__s2, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
    # 489 "/usr/include/string.h" 3 4
    extern char *index (__const char *__s, int __c)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
    # 517 "/usr/include/string.h" 3 4
    extern char *rindex (__const char *__s, int __c)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    extern int ffs (int __i) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
    # 536 "/usr/include/string.h" 3 4
    extern int strcasecmp (__const char *__s1, __const char *__s2)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
    # 559 "/usr/include/string.h" 3 4
    extern char *strsep (char **__restrict __stringp,
           __const char *__restrict __delim)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    
    
    extern char *strsignal (int __sig) __attribute__ ((__nothrow__));
    
    
    extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    
    extern char *__stpncpy (char *__restrict __dest,
       __const char *__restrict __src, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    extern char *stpncpy (char *__restrict __dest,
            __const char *__restrict __src, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    # 634 "/usr/include/string.h" 3 4
    # 1 "/usr/include/bits/string.h" 1 3 4
    # 635 "/usr/include/string.h" 2 3 4
    
    
    # 1 "/usr/include/bits/string2.h" 1 3 4
    # 394 "/usr/include/bits/string2.h" 3 4
    extern void *__rawmemchr (const void *__s, int __c);
    # 969 "/usr/include/bits/string2.h" 3 4
    extern __inline size_t __strcspn_c1 (__const char *__s, int __reject);
    extern __inline size_t
    __strcspn_c1 (__const char *__s, int __reject)
    {
      register size_t __result = 0;
      while (__s[__result] != '\0' && __s[__result] != __reject)
        ++__result;
      return __result;
    }
    
    extern __inline size_t __strcspn_c2 (__const char *__s, int __reject1,
             int __reject2);
    extern __inline size_t
    __strcspn_c2 (__const char *__s, int __reject1, int __reject2)
    {
      register size_t __result = 0;
      while (__s[__result] != '\0' && __s[__result] != __reject1
      && __s[__result] != __reject2)
        ++__result;
      return __result;
    }
    
    extern __inline size_t __strcspn_c3 (__const char *__s, int __reject1,
             int __reject2, int __reject3);
    extern __inline size_t
    __strcspn_c3 (__const char *__s, int __reject1, int __reject2,
           int __reject3)
    {
      register size_t __result = 0;
      while (__s[__result] != '\0' && __s[__result] != __reject1
      && __s[__result] != __reject2 && __s[__result] != __reject3)
        ++__result;
      return __result;
    }
    # 1045 "/usr/include/bits/string2.h" 3 4
    extern __inline size_t __strspn_c1 (__const char *__s, int __accept);
    extern __inline size_t
    __strspn_c1 (__const char *__s, int __accept)
    {
      register size_t __result = 0;
    
      while (__s[__result] == __accept)
        ++__result;
      return __result;
    }
    
    extern __inline size_t __strspn_c2 (__const char *__s, int __accept1,
            int __accept2);
    extern __inline size_t
    __strspn_c2 (__const char *__s, int __accept1, int __accept2)
    {
      register size_t __result = 0;
    
      while (__s[__result] == __accept1 || __s[__result] == __accept2)
        ++__result;
      return __result;
    }
    
    extern __inline size_t __strspn_c3 (__const char *__s, int __accept1,
            int __accept2, int __accept3);
    extern __inline size_t
    __strspn_c3 (__const char *__s, int __accept1, int __accept2, int __accept3)
    {
      register size_t __result = 0;
    
      while (__s[__result] == __accept1 || __s[__result] == __accept2
      || __s[__result] == __accept3)
        ++__result;
      return __result;
    }
    # 1121 "/usr/include/bits/string2.h" 3 4
    extern __inline char *__strpbrk_c2 (__const char *__s, int __accept1,
             int __accept2);
    extern __inline char *
    __strpbrk_c2 (__const char *__s, int __accept1, int __accept2)
    {
    
      while (*__s != '\0' && *__s != __accept1 && *__s != __accept2)
        ++__s;
      return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s;
    }
    
    extern __inline char *__strpbrk_c3 (__const char *__s, int __accept1,
             int __accept2, int __accept3);
    extern __inline char *
    __strpbrk_c3 (__const char *__s, int __accept1, int __accept2,
           int __accept3)
    {
    
      while (*__s != '\0' && *__s != __accept1 && *__s != __accept2
      && *__s != __accept3)
        ++__s;
      return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s;
    }
    # 1172 "/usr/include/bits/string2.h" 3 4
    extern __inline char *__strtok_r_1c (char *__s, char __sep, char **__nextp);
    extern __inline char *
    __strtok_r_1c (char *__s, char __sep, char **__nextp)
    {
      char *__result;
      if (__s == ((void *)0))
        __s = *__nextp;
      while (*__s == __sep)
        ++__s;
      __result = ((void *)0);
      if (*__s != '\0')
        {
          __result = __s++;
          while (*__s != '\0')
     if (*__s++ == __sep)
       {
         __s[-1] = '\0';
         break;
       }
        }
      *__nextp = __s;
      return __result;
    }
    # 1204 "/usr/include/bits/string2.h" 3 4
    extern char *__strsep_g (char **__stringp, __const char *__delim);
    # 1222 "/usr/include/bits/string2.h" 3 4
    extern __inline char *__strsep_1c (char **__s, char __reject);
    extern __inline char *
    __strsep_1c (char **__s, char __reject)
    {
      register char *__retval = *__s;
      if (__retval != ((void *)0) && (*__s = (__extension__ (__builtin_constant_p (__reject) && !__builtin_constant_p (__retval) && (__reject) == '\0' ? (char *) __rawmemchr (__retval, __reject) : __builtin_strchr (__retval, __reject)))) != ((void *)0))
        *(*__s)++ = '\0';
      return __retval;
    }
    
    extern __inline char *__strsep_2c (char **__s, char __reject1, char __reject2);
    extern __inline char *
    __strsep_2c (char **__s, char __reject1, char __reject2)
    {
      register char *__retval = *__s;
      if (__retval != ((void *)0))
        {
          register char *__cp = __retval;
          while (1)
     {
       if (*__cp == '\0')
         {
           __cp = ((void *)0);
       break;
         }
       if (*__cp == __reject1 || *__cp == __reject2)
         {
           *__cp++ = '\0';
           break;
         }
       ++__cp;
     }
          *__s = __cp;
        }
      return __retval;
    }
    
    extern __inline char *__strsep_3c (char **__s, char __reject1, char __reject2,
           char __reject3);
    extern __inline char *
    __strsep_3c (char **__s, char __reject1, char __reject2, char __reject3)
    {
      register char *__retval = *__s;
      if (__retval != ((void *)0))
        {
          register char *__cp = __retval;
          while (1)
     {
       if (*__cp == '\0')
         {
           __cp = ((void *)0);
       break;
         }
       if (*__cp == __reject1 || *__cp == __reject2 || *__cp == __reject3)
         {
           *__cp++ = '\0';
           break;
         }
       ++__cp;
     }
          *__s = __cp;
        }
      return __retval;
    }
    # 1303 "/usr/include/bits/string2.h" 3 4
    extern char *__strdup (__const char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__));
    # 1322 "/usr/include/bits/string2.h" 3 4
    extern char *__strndup (__const char *__string, size_t __n)
         __attribute__ ((__nothrow__)) __attribute__ ((__malloc__));
    # 638 "/usr/include/string.h" 2 3 4
    
    
    
    
    # 1 "/usr/include/bits/string3.h" 1 3 4
    # 23 "/usr/include/bits/string3.h" 3 4
    extern void __warn_memset_zero_len (void) __attribute__((__warning__ ("memset used with constant zero length parameter; this could be due to transposed parameters")))
                                                                                                       ;
    # 48 "/usr/include/bits/string3.h" 3 4
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) void *
    __attribute__ ((__nothrow__)) memcpy (void *__restrict __dest, __const void *__restrict __src, size_t __len)
    
    {
      return __builtin___memcpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 0));
    }
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) void *
    __attribute__ ((__nothrow__)) memmove (void *__dest, __const void *__src, size_t __len)
    {
      return __builtin___memmove_chk (__dest, __src, __len, __builtin_object_size (__dest, 0));
    }
    # 76 "/usr/include/bits/string3.h" 3 4
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) void *
    __attribute__ ((__nothrow__)) memset (void *__dest, int __ch, size_t __len)
    {
      if (__builtin_constant_p (__len) && __len == 0
          && (!__builtin_constant_p (__ch) || __ch != 0))
        {
          __warn_memset_zero_len ();
          return __dest;
        }
      return __builtin___memset_chk (__dest, __ch, __len, __builtin_object_size (__dest, 0));
    }
    
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) void
    __attribute__ ((__nothrow__)) bcopy (__const void *__src, void *__dest, size_t __len)
    {
      (void) __builtin___memmove_chk (__dest, __src, __len, __builtin_object_size (__dest, 0));
    }
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) void
    __attribute__ ((__nothrow__)) bzero (void *__dest, size_t __len)
    {
      (void) __builtin___memset_chk (__dest, '\0', __len, __builtin_object_size (__dest, 0));
    }
    
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) char *
    __attribute__ ((__nothrow__)) strcpy (char *__restrict __dest, __const char *__restrict __src)
    {
      return __builtin___strcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1));
    }
    # 117 "/usr/include/bits/string3.h" 3 4
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) char *
    __attribute__ ((__nothrow__)) strncpy (char *__restrict __dest, __const char *__restrict __src, size_t __len)
    
    {
      return __builtin___strncpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 2 > 1));
    }
    
    
    extern char *__stpncpy_chk (char *__dest, __const char *__src, size_t __n,
           size_t __destlen) __attribute__ ((__nothrow__));
    extern char *__stpncpy_alias (char *__dest, __const char *__src, size_t __n) __asm__ ("" "stpncpy") __attribute__ ((__nothrow__))
    
                                     ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) char *
    __attribute__ ((__nothrow__)) stpncpy (char *__dest, __const char *__src, size_t __n)
    {
      if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1
          && (!__builtin_constant_p (__n) || __n <= __builtin_object_size (__dest, 2 > 1)))
        return __stpncpy_chk (__dest, __src, __n, __builtin_object_size (__dest, 2 > 1));
      return __stpncpy_alias (__dest, __src, __n);
    }
    
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) char *
    __attribute__ ((__nothrow__)) strcat (char *__restrict __dest, __const char *__restrict __src)
    {
      return __builtin___strcat_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1));
    }
    
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) char *
    __attribute__ ((__nothrow__)) strncat (char *__restrict __dest, __const char *__restrict __src, size_t __len)
    
    {
      return __builtin___strncat_chk (__dest, __src, __len, __builtin_object_size (__dest, 2 > 1));
    }
    # 643 "/usr/include/string.h" 2 3 4
    
    
    
    
    # 24 "protocol.c" 2
    
    # 1 "/usr/include/netinet/in.h" 1 3 4
    # 24 "/usr/include/netinet/in.h" 3 4
    # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdint.h" 1 3 4
    
    
    # 1 "/usr/include/stdint.h" 1 3 4
    # 27 "/usr/include/stdint.h" 3 4
    # 1 "/usr/include/bits/wchar.h" 1 3 4
    # 28 "/usr/include/stdint.h" 2 3 4
    # 1 "/usr/include/bits/wordsize.h" 1 3 4
    # 29 "/usr/include/stdint.h" 2 3 4
    # 49 "/usr/include/stdint.h" 3 4
    typedef unsigned char uint8_t;
    typedef unsigned short int uint16_t;
    
    typedef unsigned int uint32_t;
    
    
    
    
    
    __extension__
    typedef unsigned long long int uint64_t;
    
    
    
    
    
    
    typedef signed char int_least8_t;
    typedef short int int_least16_t;
    typedef int int_least32_t;
    
    
    
    __extension__
    typedef long long int int_least64_t;
    
    
    
    typedef unsigned char uint_least8_t;
    typedef unsigned short int uint_least16_t;
    typedef unsigned int uint_least32_t;
    
    
    
    __extension__
    typedef unsigned long long int uint_least64_t;
    
    
    
    
    
    
    typedef signed char int_fast8_t;
    
    
    
    
    
    typedef int int_fast16_t;
    typedef int int_fast32_t;
    __extension__
    typedef long long int int_fast64_t;
    
    
    
    typedef unsigned char uint_fast8_t;
    
    
    
    
    
    typedef unsigned int uint_fast16_t;
    typedef unsigned int uint_fast32_t;
    __extension__
    typedef unsigned long long int uint_fast64_t;
    # 126 "/usr/include/stdint.h" 3 4
    typedef int intptr_t;
    
    
    typedef unsigned int uintptr_t;
    # 138 "/usr/include/stdint.h" 3 4
    __extension__
    typedef long long int intmax_t;
    __extension__
    typedef unsigned long long int uintmax_t;
    # 4 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stdint.h" 2 3 4
    # 25 "/usr/include/netinet/in.h" 2 3 4
    # 1 "/usr/include/sys/socket.h" 1 3 4
    # 26 "/usr/include/sys/socket.h" 3 4
    
    
    # 1 "/usr/include/sys/uio.h" 1 3 4
    # 26 "/usr/include/sys/uio.h" 3 4
    
    
    
    # 1 "/usr/include/bits/uio.h" 1 3 4
    # 44 "/usr/include/bits/uio.h" 3 4
    struct iovec
      {
        void *iov_base;
        size_t iov_len;
      };
    # 30 "/usr/include/sys/uio.h" 2 3 4
    # 40 "/usr/include/sys/uio.h" 3 4
    extern ssize_t readv (int __fd, __const struct iovec *__iovec, int __count)
      __attribute__ ((__warn_unused_result__));
    # 51 "/usr/include/sys/uio.h" 3 4
    extern ssize_t writev (int __fd, __const struct iovec *__iovec, int __count)
      __attribute__ ((__warn_unused_result__));
    # 66 "/usr/include/sys/uio.h" 3 4
    extern ssize_t preadv (int __fd, __const struct iovec *__iovec, int __count,
             __off_t __offset) __attribute__ ((__warn_unused_result__));
    # 78 "/usr/include/sys/uio.h" 3 4
    extern ssize_t pwritev (int __fd, __const struct iovec *__iovec, int __count,
       __off_t __offset) __attribute__ ((__warn_unused_result__));
    # 121 "/usr/include/sys/uio.h" 3 4
    
    # 29 "/usr/include/sys/socket.h" 2 3 4
    
    # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4
    # 31 "/usr/include/sys/socket.h" 2 3 4
    # 40 "/usr/include/sys/socket.h" 3 4
    # 1 "/usr/include/bits/socket.h" 1 3 4
    # 29 "/usr/include/bits/socket.h" 3 4
    # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4
    # 30 "/usr/include/bits/socket.h" 2 3 4
    
    
    
    
    
    typedef __socklen_t socklen_t;
    
    
    
    
    enum __socket_type
    {
      SOCK_STREAM = 1,
    
    
      SOCK_DGRAM = 2,
    
    
      SOCK_RAW = 3,
    
      SOCK_RDM = 4,
    
      SOCK_SEQPACKET = 5,
    
    
      SOCK_DCCP = 6,
    
      SOCK_PACKET = 10,
    
    
    
    
    
    
    
      SOCK_CLOEXEC = 02000000,
    
    
      SOCK_NONBLOCK = 04000
    
    
    };
    # 175 "/usr/include/bits/socket.h" 3 4
    # 1 "/usr/include/bits/sockaddr.h" 1 3 4
    # 29 "/usr/include/bits/sockaddr.h" 3 4
    typedef unsigned short int sa_family_t;
    # 176 "/usr/include/bits/socket.h" 2 3 4
    
    
    struct sockaddr
      {
        sa_family_t sa_family;
        char sa_data[14];
      };
    # 191 "/usr/include/bits/socket.h" 3 4
    struct sockaddr_storage
      {
        sa_family_t ss_family;
        unsigned long int __ss_align;
        char __ss_padding[(128 - (2 * sizeof (unsigned long int)))];
      };
    
    
    
    enum
      {
        MSG_OOB = 0x01,
    
        MSG_PEEK = 0x02,
    
        MSG_DONTROUTE = 0x04,
    
    
    
    
    
    
        MSG_CTRUNC = 0x08,
    
        MSG_PROXY = 0x10,
    
        MSG_TRUNC = 0x20,
    
        MSG_DONTWAIT = 0x40,
    
        MSG_EOR = 0x80,
    
        MSG_WAITALL = 0x100,
    
        MSG_FIN = 0x200,
    
        MSG_SYN = 0x400,
    
        MSG_CONFIRM = 0x800,
    
        MSG_RST = 0x1000,
    
        MSG_ERRQUEUE = 0x2000,
    
        MSG_NOSIGNAL = 0x4000,
    
        MSG_MORE = 0x8000,
    
        MSG_WAITFORONE = 0x10000,
    
    
        MSG_CMSG_CLOEXEC = 0x40000000
    
    
    
      };
    
    
    
    
    struct msghdr
      {
        void *msg_name;
        socklen_t msg_namelen;
    
        struct iovec *msg_iov;
        size_t msg_iovlen;
    
        void *msg_control;
        size_t msg_controllen;
    
    
    
    
        int msg_flags;
      };
    # 278 "/usr/include/bits/socket.h" 3 4
    struct cmsghdr
      {
        size_t cmsg_len;
    
    
    
    
        int cmsg_level;
        int cmsg_type;
    
        __extension__ unsigned char __cmsg_data [];
    
      };
    # 308 "/usr/include/bits/socket.h" 3 4
    extern struct cmsghdr *__cmsg_nxthdr (struct msghdr *__mhdr,
              struct cmsghdr *__cmsg) __attribute__ ((__nothrow__));
    
    
    
    
    extern __inline struct cmsghdr *
    __attribute__ ((__nothrow__)) __cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg)
    {
      if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr))
    
        return 0;
    
      __cmsg = (struct cmsghdr *) ((unsigned char *) __cmsg
              + (((__cmsg->cmsg_len) + sizeof (size_t) - 1) & (size_t) ~(sizeof (size_t) - 1)));
      if ((unsigned char *) (__cmsg + 1) > ((unsigned char *) __mhdr->msg_control
         + __mhdr->msg_controllen)
          || ((unsigned char *) __cmsg + (((__cmsg->cmsg_len) + sizeof (size_t) - 1) & (size_t) ~(sizeof (size_t) - 1))
       > ((unsigned char *) __mhdr->msg_control + __mhdr->msg_controllen)))
    
        return 0;
      return __cmsg;
    }
    
    
    
    
    enum
      {
        SCM_RIGHTS = 0x01
    
    
    
    
    
      };
    # 381 "/usr/include/bits/socket.h" 3 4
    # 1 "/usr/include/asm/socket.h" 1 3 4
    # 1 "/usr/include/asm-generic/socket.h" 1 3 4
    
    
    
    # 1 "/usr/include/asm/sockios.h" 1 3 4
    # 1 "/usr/include/asm-generic/sockios.h" 1 3 4
    # 1 "/usr/include/asm/sockios.h" 2 3 4
    # 5 "/usr/include/asm-generic/socket.h" 2 3 4
    # 1 "/usr/include/asm/socket.h" 2 3 4
    # 382 "/usr/include/bits/socket.h" 2 3 4
    # 415 "/usr/include/bits/socket.h" 3 4
    struct linger
      {
        int l_onoff;
        int l_linger;
      };
    
    
    
    
    
    
    
    
    
    extern int recvmmsg (int __fd, struct mmsghdr *__vmessages,
           unsigned int __vlen, int __flags,
           __const struct timespec *__tmo);
    
    
    # 41 "/usr/include/sys/socket.h" 2 3 4
    
    
    
    
    struct osockaddr
      {
        unsigned short int sa_family;
        unsigned char sa_data[14];
      };
    
    
    
    
    enum
    {
      SHUT_RD = 0,
    
      SHUT_WR,
    
      SHUT_RDWR
    
    };
    # 105 "/usr/include/sys/socket.h" 3 4
    extern int socket (int __domain, int __type, int __protocol) __attribute__ ((__nothrow__));
    
    
    
    
    
    extern int socketpair (int __domain, int __type, int __protocol,
             int __fds[2]) __attribute__ ((__nothrow__));
    
    
    extern int bind (int __fd, __const struct sockaddr * __addr, socklen_t __len)
         __attribute__ ((__nothrow__));
    
    
    extern int getsockname (int __fd, struct sockaddr *__restrict __addr,
       socklen_t *__restrict __len) __attribute__ ((__nothrow__));
    # 129 "/usr/include/sys/socket.h" 3 4
    extern int connect (int __fd, __const struct sockaddr * __addr, socklen_t __len);
    
    
    
    extern int getpeername (int __fd, struct sockaddr *__restrict __addr,
       socklen_t *__restrict __len) __attribute__ ((__nothrow__));
    
    
    
    
    
    
    extern ssize_t send (int __fd, __const void *__buf, size_t __n, int __flags);
    
    
    
    
    
    
    extern ssize_t recv (int __fd, void *__buf, size_t __n, int __flags);
    
    
    
    
    
    
    extern ssize_t sendto (int __fd, __const void *__buf, size_t __n,
             int __flags, __const struct sockaddr * __addr,
             socklen_t __addr_len);
    # 166 "/usr/include/sys/socket.h" 3 4
    extern ssize_t recvfrom (int __fd, void *__restrict __buf, size_t __n,
        int __flags, struct sockaddr *__restrict __addr,
        socklen_t *__restrict __addr_len);
    
    
    
    
    
    
    
    extern ssize_t sendmsg (int __fd, __const struct msghdr *__message,
       int __flags);
    
    
    
    
    
    
    extern ssize_t recvmsg (int __fd, struct msghdr *__message, int __flags);
    
    
    
    
    
    extern int getsockopt (int __fd, int __level, int __optname,
             void *__restrict __optval,
             socklen_t *__restrict __optlen) __attribute__ ((__nothrow__));
    
    
    
    
    extern int setsockopt (int __fd, int __level, int __optname,
             __const void *__optval, socklen_t __optlen) __attribute__ ((__nothrow__));
    
    
    
    
    
    extern int listen (int __fd, int __n) __attribute__ ((__nothrow__));
    # 214 "/usr/include/sys/socket.h" 3 4
    extern int accept (int __fd, struct sockaddr *__restrict __addr,
         socklen_t *__restrict __addr_len);
    # 232 "/usr/include/sys/socket.h" 3 4
    extern int shutdown (int __fd, int __how) __attribute__ ((__nothrow__));
    
    
    
    
    extern int sockatmark (int __fd) __attribute__ ((__nothrow__));
    
    
    
    
    
    
    
    extern int isfdtype (int __fd, int __fdtype) __attribute__ ((__nothrow__));
    
    
    
    
    
    # 1 "/usr/include/bits/socket2.h" 1 3 4
    # 24 "/usr/include/bits/socket2.h" 3 4
    extern ssize_t __recv_chk (int __fd, void *__buf, size_t __n, size_t __buflen,
          int __flags);
    extern ssize_t __recv_alias (int __fd, void *__buf, size_t __n, int __flags) __asm__ ("" "recv")
                              ;
    extern ssize_t __recv_chk_warn (int __fd, void *__buf, size_t __n, size_t __buflen, int __flags) __asm__ ("" "__recv_chk")
    
    
         __attribute__((__warning__ ("recv called with bigger length than size of destination " "buffer")))
                ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) ssize_t
    recv (int __fd, void *__buf, size_t __n, int __flags)
    {
      if (__builtin_object_size (__buf, 0) != (size_t) -1)
        {
          if (!__builtin_constant_p (__n))
     return __recv_chk (__fd, __buf, __n, __builtin_object_size (__buf, 0), __flags);
    
          if (__n > __builtin_object_size (__buf, 0))
     return __recv_chk_warn (__fd, __buf, __n, __builtin_object_size (__buf, 0), __flags);
        }
      return __recv_alias (__fd, __buf, __n, __flags);
    }
    
    extern ssize_t __recvfrom_chk (int __fd, void *__restrict __buf, size_t __n,
              size_t __buflen, int __flags,
              struct sockaddr *__restrict __addr,
              socklen_t *__restrict __addr_len);
    extern ssize_t __recvfrom_alias (int __fd, void *__restrict __buf, size_t __n, int __flags, struct sockaddr *__restrict __addr, socklen_t *__restrict __addr_len) __asm__ ("" "recvfrom")
    
    
                                                       ;
    extern ssize_t __recvfrom_chk_warn (int __fd, void *__restrict __buf, size_t __n, size_t __buflen, int __flags, struct sockaddr *__restrict __addr, socklen_t *__restrict __addr_len) __asm__ ("" "__recvfrom_chk")
    
    
    
    
         __attribute__((__warning__ ("recvfrom called with bigger length than size of " "destination buffer")))
                            ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) ssize_t
    recvfrom (int __fd, void *__restrict __buf, size_t __n, int __flags,
       struct sockaddr *__restrict __addr, socklen_t *__restrict __addr_len)
    {
      if (__builtin_object_size (__buf, 0) != (size_t) -1)
        {
          if (!__builtin_constant_p (__n))
     return __recvfrom_chk (__fd, __buf, __n, __builtin_object_size (__buf, 0), __flags,
              __addr, __addr_len);
          if (__n > __builtin_object_size (__buf, 0))
     return __recvfrom_chk_warn (__fd, __buf, __n, __builtin_object_size (__buf, 0), __flags,
            __addr, __addr_len);
        }
      return __recvfrom_alias (__fd, __buf, __n, __flags, __addr, __addr_len);
    }
    # 252 "/usr/include/sys/socket.h" 2 3 4
    
    
    
    # 26 "/usr/include/netinet/in.h" 2 3 4
    
    
    
    
    
    
    enum
      {
        IPPROTO_IP = 0,
    
        IPPROTO_HOPOPTS = 0,
    
        IPPROTO_ICMP = 1,
    
        IPPROTO_IGMP = 2,
    
        IPPROTO_IPIP = 4,
    
        IPPROTO_TCP = 6,
    
        IPPROTO_EGP = 8,
    
        IPPROTO_PUP = 12,
    
        IPPROTO_UDP = 17,
    
        IPPROTO_IDP = 22,
    
        IPPROTO_TP = 29,
    
        IPPROTO_DCCP = 33,
    
        IPPROTO_IPV6 = 41,
    
        IPPROTO_ROUTING = 43,
    
        IPPROTO_FRAGMENT = 44,
    
        IPPROTO_RSVP = 46,
    
        IPPROTO_GRE = 47,
    
        IPPROTO_ESP = 50,
    
        IPPROTO_AH = 51,
    
        IPPROTO_ICMPV6 = 58,
    
        IPPROTO_NONE = 59,
    
        IPPROTO_DSTOPTS = 60,
    
        IPPROTO_MTP = 92,
    
        IPPROTO_ENCAP = 98,
    
        IPPROTO_PIM = 103,
    
        IPPROTO_COMP = 108,
    
        IPPROTO_SCTP = 132,
    
        IPPROTO_UDPLITE = 136,
    
        IPPROTO_RAW = 255,
    
        IPPROTO_MAX
      };
    
    
    
    typedef uint16_t in_port_t;
    
    
    enum
      {
        IPPORT_ECHO = 7,
        IPPORT_DISCARD = 9,
        IPPORT_SYSTAT = 11,
        IPPORT_DAYTIME = 13,
        IPPORT_NETSTAT = 15,
        IPPORT_FTP = 21,
        IPPORT_TELNET = 23,
        IPPORT_SMTP = 25,
        IPPORT_TIMESERVER = 37,
        IPPORT_NAMESERVER = 42,
        IPPORT_WHOIS = 43,
        IPPORT_MTP = 57,
    
        IPPORT_TFTP = 69,
        IPPORT_RJE = 77,
        IPPORT_FINGER = 79,
        IPPORT_TTYLINK = 87,
        IPPORT_SUPDUP = 95,
    
    
        IPPORT_EXECSERVER = 512,
        IPPORT_LOGINSERVER = 513,
        IPPORT_CMDSERVER = 514,
        IPPORT_EFSSERVER = 520,
    
    
        IPPORT_BIFFUDP = 512,
        IPPORT_WHOSERVER = 513,
        IPPORT_ROUTESERVER = 520,
    
    
        IPPORT_RESERVED = 1024,
    
    
        IPPORT_USERRESERVED = 5000
      };
    
    
    
    typedef uint32_t in_addr_t;
    struct in_addr
      {
        in_addr_t s_addr;
      };
    # 198 "/usr/include/netinet/in.h" 3 4
    struct in6_addr
      {
        union
          {
     uint8_t __u6_addr8[16];
    
     uint16_t __u6_addr16[8];
     uint32_t __u6_addr32[4];
    
          } __in6_u;
    
    
    
    
    
      };
    
    extern const struct in6_addr in6addr_any;
    extern const struct in6_addr in6addr_loopback;
    # 225 "/usr/include/netinet/in.h" 3 4
    struct sockaddr_in
      {
        sa_family_t sin_family;
        in_port_t sin_port;
        struct in_addr sin_addr;
    
    
        unsigned char sin_zero[sizeof (struct sockaddr) -
          (sizeof (unsigned short int)) -
          sizeof (in_port_t) -
          sizeof (struct in_addr)];
      };
    
    
    struct sockaddr_in6
      {
        sa_family_t sin6_family;
        in_port_t sin6_port;
        uint32_t sin6_flowinfo;
        struct in6_addr sin6_addr;
        uint32_t sin6_scope_id;
      };
    
    
    
    
    struct ip_mreq
      {
    
        struct in_addr imr_multiaddr;
    
    
        struct in_addr imr_interface;
      };
    
    struct ip_mreq_source
      {
    
        struct in_addr imr_multiaddr;
    
    
        struct in_addr imr_interface;
    
    
        struct in_addr imr_sourceaddr;
      };
    
    
    
    
    struct ipv6_mreq
      {
    
        struct in6_addr ipv6mr_multiaddr;
    
    
        unsigned int ipv6mr_interface;
      };
    
    
    
    
    struct group_req
      {
    
        uint32_t gr_interface;
    
    
        struct sockaddr_storage gr_group;
      };
    
    struct group_source_req
      {
    
        uint32_t gsr_interface;
    
    
        struct sockaddr_storage gsr_group;
    
    
        struct sockaddr_storage gsr_source;
      };
    
    
    
    struct ip_msfilter
      {
    
        struct in_addr imsf_multiaddr;
    
    
        struct in_addr imsf_interface;
    
    
        uint32_t imsf_fmode;
    
    
        uint32_t imsf_numsrc;
    
        struct in_addr imsf_slist[1];
      };
    
    
    
    
    
    struct group_filter
      {
    
        uint32_t gf_interface;
    
    
        struct sockaddr_storage gf_group;
    
    
        uint32_t gf_fmode;
    
    
        uint32_t gf_numsrc;
    
        struct sockaddr_storage gf_slist[1];
    };
    # 356 "/usr/include/netinet/in.h" 3 4
    # 1 "/usr/include/bits/in.h" 1 3 4
    # 98 "/usr/include/bits/in.h" 3 4
    struct ip_opts
      {
        struct in_addr ip_dst;
        char ip_opts[40];
      };
    
    
    struct ip_mreqn
      {
        struct in_addr imr_multiaddr;
        struct in_addr imr_address;
        int imr_ifindex;
      };
    
    
    struct in_pktinfo
      {
        int ipi_ifindex;
        struct in_addr ipi_spec_dst;
        struct in_addr ipi_addr;
      };
    # 357 "/usr/include/netinet/in.h" 2 3 4
    # 365 "/usr/include/netinet/in.h" 3 4
    extern uint32_t ntohl (uint32_t __netlong) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
    extern uint16_t ntohs (uint16_t __netshort)
         __attribute__ ((__nothrow__)) __attribute__ ((__const__));
    extern uint32_t htonl (uint32_t __hostlong)
         __attribute__ ((__nothrow__)) __attribute__ ((__const__));
    extern uint16_t htons (uint16_t __hostshort)
         __attribute__ ((__nothrow__)) __attribute__ ((__const__));
    
    
    
    
    # 1 "/usr/include/bits/byteswap.h" 1 3 4
    # 377 "/usr/include/netinet/in.h" 2 3 4
    # 440 "/usr/include/netinet/in.h" 3 4
    extern int bindresvport (int __sockfd, struct sockaddr_in *__sock_in) __attribute__ ((__nothrow__));
    
    
    extern int bindresvport6 (int __sockfd, struct sockaddr_in6 *__sock_in)
         __attribute__ ((__nothrow__));
    # 565 "/usr/include/netinet/in.h" 3 4
    
    # 26 "protocol.c" 2
    
    # 1 "/usr/include/sys/wait.h" 1 3 4
    # 29 "/usr/include/sys/wait.h" 3 4
    
    
    # 1 "/usr/include/signal.h" 1 3 4
    # 31 "/usr/include/signal.h" 3 4
    
    
    # 1 "/usr/include/bits/sigset.h" 1 3 4
    # 104 "/usr/include/bits/sigset.h" 3 4
    extern int __sigismember (__const __sigset_t *, int);
    extern int __sigaddset (__sigset_t *, int);
    extern int __sigdelset (__sigset_t *, int);
    # 118 "/usr/include/bits/sigset.h" 3 4
    extern __inline int __sigismember (__const __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return (__set->__val[__word] & __mask) ? 1 : 0; }
    extern __inline int __sigaddset ( __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return ((__set->__val[__word] |= __mask), 0); }
    extern __inline int __sigdelset ( __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return ((__set->__val[__word] &= ~__mask), 0); }
    # 34 "/usr/include/signal.h" 2 3 4
    
    
    
    
    
    
    
    typedef __sig_atomic_t sig_atomic_t;
    
    # 58 "/usr/include/signal.h" 3 4
    # 1 "/usr/include/bits/signum.h" 1 3 4
    # 59 "/usr/include/signal.h" 2 3 4
    # 76 "/usr/include/signal.h" 3 4
    # 1 "/usr/include/time.h" 1 3 4
    # 77 "/usr/include/signal.h" 2 3 4
    
    
    # 1 "/usr/include/bits/siginfo.h" 1 3 4
    # 25 "/usr/include/bits/siginfo.h" 3 4
    # 1 "/usr/include/bits/wordsize.h" 1 3 4
    # 26 "/usr/include/bits/siginfo.h" 2 3 4
    
    
    
    
    
    
    
    typedef union sigval
      {
        int sival_int;
        void *sival_ptr;
      } sigval_t;
    # 51 "/usr/include/bits/siginfo.h" 3 4
    typedef struct siginfo
      {
        int si_signo;
        int si_errno;
    
        int si_code;
    
        union
          {
     int _pad[((128 / sizeof (int)) - 3)];
    
    
     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;
       } _sigfault;
    
    
     struct
       {
         long int si_band;
         int si_fd;
       } _sigpoll;
          } _sifields;
      } siginfo_t;
    # 129 "/usr/include/bits/siginfo.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
    
    };
    
    
    
    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
    
    };
    
    
    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
    
    };
    # 273 "/usr/include/bits/siginfo.h" 3 4
    typedef struct sigevent
      {
        sigval_t sigev_value;
        int sigev_signo;
        int sigev_notify;
    
        union
          {
     int _pad[((64 / sizeof (int)) - 3)];
    
    
    
     __pid_t _tid;
    
     struct
       {
         void (*_function) (sigval_t);
         void *_attribute;
       } _sigev_thread;
          } _sigev_un;
      } sigevent_t;
    
    
    
    
    
    
    enum
    {
      SIGEV_SIGNAL = 0,
    
      SIGEV_NONE,
    
      SIGEV_THREAD,
    
    
      SIGEV_THREAD_ID = 4
    
    };
    # 80 "/usr/include/signal.h" 2 3 4
    
    
    
    
    typedef void (*__sighandler_t) (int);
    
    
    
    
    extern __sighandler_t __sysv_signal (int __sig, __sighandler_t __handler)
         __attribute__ ((__nothrow__));
    # 99 "/usr/include/signal.h" 3 4
    
    
    extern __sighandler_t signal (int __sig, __sighandler_t __handler)
         __attribute__ ((__nothrow__));
    # 113 "/usr/include/signal.h" 3 4
    
    # 126 "/usr/include/signal.h" 3 4
    extern int kill (__pid_t __pid, int __sig) __attribute__ ((__nothrow__));
    
    
    
    
    
    
    extern int killpg (__pid_t __pgrp, int __sig) __attribute__ ((__nothrow__));
    
    
    
    
    extern int raise (int __sig) __attribute__ ((__nothrow__));
    
    
    
    
    extern __sighandler_t ssignal (int __sig, __sighandler_t __handler)
         __attribute__ ((__nothrow__));
    extern int gsignal (int __sig) __attribute__ ((__nothrow__));
    
    
    
    
    extern void psignal (int __sig, __const char *__s);
    
    
    
    
    extern void psiginfo (__const siginfo_t *__pinfo, __const char *__s);
    # 168 "/usr/include/signal.h" 3 4
    extern int __sigpause (int __sig_or_mask, int __is_sig);
    # 196 "/usr/include/signal.h" 3 4
    extern int sigblock (int __mask) __attribute__ ((__nothrow__)) __attribute__ ((__deprecated__));
    
    
    extern int sigsetmask (int __mask) __attribute__ ((__nothrow__)) __attribute__ ((__deprecated__));
    
    
    extern int siggetmask (void) __attribute__ ((__nothrow__)) __attribute__ ((__deprecated__));
    # 216 "/usr/include/signal.h" 3 4
    typedef __sighandler_t sig_t;
    
    
    
    
    
    extern int sigemptyset (sigset_t *__set) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    extern int sigfillset (sigset_t *__set) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    extern int sigaddset (sigset_t *__set, int __signo) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    extern int sigdelset (sigset_t *__set, int __signo) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    extern int sigismember (__const sigset_t *__set, int __signo)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    # 252 "/usr/include/signal.h" 3 4
    # 1 "/usr/include/bits/sigaction.h" 1 3 4
    # 25 "/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);
      };
    # 253 "/usr/include/signal.h" 2 3 4
    
    
    extern int sigprocmask (int __how, __const sigset_t *__restrict __set,
       sigset_t *__restrict __oset) __attribute__ ((__nothrow__));
    
    
    
    
    
    
    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__));
    
    
    extern int sigpending (sigset_t *__set) __attribute__ ((__nothrow__)) __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__));
    # 310 "/usr/include/signal.h" 3 4
    extern __const char *__const _sys_siglist[65];
    extern __const char *__const sys_siglist[65];
    
    
    struct sigvec
      {
        __sighandler_t sv_handler;
        int sv_mask;
    
        int sv_flags;
    
      };
    # 334 "/usr/include/signal.h" 3 4
    extern int sigvec (int __sig, __const struct sigvec *__vec,
         struct sigvec *__ovec) __attribute__ ((__nothrow__));
    
    
    
    # 1 "/usr/include/bits/sigcontext.h" 1 3 4
    # 26 "/usr/include/bits/sigcontext.h" 3 4
    # 1 "/usr/include/bits/wordsize.h" 1 3 4
    # 27 "/usr/include/bits/sigcontext.h" 2 3 4
    
    struct _fpreg
    {
      unsigned short significand[4];
      unsigned short exponent;
    };
    
    struct _fpxreg
    {
      unsigned short significand[4];
      unsigned short exponent;
      unsigned short padding[3];
    };
    
    struct _xmmreg
    {
      __uint32_t element[4];
    };
    
    
    
    
    
    struct _fpstate
    {
    
      __uint32_t cw;
      __uint32_t sw;
      __uint32_t tag;
      __uint32_t ipoff;
      __uint32_t cssel;
      __uint32_t dataoff;
      __uint32_t datasel;
      struct _fpreg _st[8];
      unsigned short status;
      unsigned short magic;
    
    
      __uint32_t _fxsr_env[6];
      __uint32_t mxcsr;
      __uint32_t reserved;
      struct _fpxreg _fxsr_st[8];
      struct _xmmreg _xmm[8];
      __uint32_t padding[56];
    };
    # 81 "/usr/include/bits/sigcontext.h" 3 4
    struct sigcontext
    {
      unsigned short gs, __gsh;
      unsigned short fs, __fsh;
      unsigned short es, __esh;
      unsigned short ds, __dsh;
      unsigned long edi;
      unsigned long esi;
      unsigned long ebp;
      unsigned long esp;
      unsigned long ebx;
      unsigned long edx;
      unsigned long ecx;
      unsigned long eax;
      unsigned long trapno;
      unsigned long err;
      unsigned long eip;
      unsigned short cs, __csh;
      unsigned long eflags;
      unsigned long esp_at_signal;
      unsigned short ss, __ssh;
      struct _fpstate * fpstate;
      unsigned long oldmask;
      unsigned long cr2;
    };
    # 340 "/usr/include/signal.h" 2 3 4
    
    
    extern int sigreturn (struct sigcontext *__scp) __attribute__ ((__nothrow__));
    
    
    
    
    
    
    # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4
    # 350 "/usr/include/signal.h" 2 3 4
    
    
    
    
    extern int siginterrupt (int __sig, int __interrupt) __attribute__ ((__nothrow__));
    
    # 1 "/usr/include/bits/sigstack.h" 1 3 4
    # 26 "/usr/include/bits/sigstack.h" 3 4
    struct sigstack
      {
        void *ss_sp;
        int ss_onstack;
      };
    
    
    
    enum
    {
      SS_ONSTACK = 1,
    
      SS_DISABLE
    
    };
    # 50 "/usr/include/bits/sigstack.h" 3 4
    typedef struct sigaltstack
      {
        void *ss_sp;
        int ss_flags;
        size_t ss_size;
      } stack_t;
    # 357 "/usr/include/signal.h" 2 3 4
    
    
    # 1 "/usr/include/sys/ucontext.h" 1 3 4
    # 23 "/usr/include/sys/ucontext.h" 3 4
    # 1 "/usr/include/signal.h" 1 3 4
    # 24 "/usr/include/sys/ucontext.h" 2 3 4
    # 1 "/usr/include/bits/wordsize.h" 1 3 4
    # 25 "/usr/include/sys/ucontext.h" 2 3 4
    # 148 "/usr/include/sys/ucontext.h" 3 4
    typedef int greg_t;
    
    
    
    
    
    typedef greg_t gregset_t[19];
    # 202 "/usr/include/sys/ucontext.h" 3 4
    struct _libc_fpreg
    {
      unsigned short int significand[4];
      unsigned short int exponent;
    };
    
    struct _libc_fpstate
    {
      unsigned long int cw;
      unsigned long int sw;
      unsigned long int tag;
      unsigned long int ipoff;
      unsigned long int cssel;
      unsigned long int dataoff;
      unsigned long int datasel;
      struct _libc_fpreg _st[8];
      unsigned long int status;
    };
    
    
    typedef struct _libc_fpstate *fpregset_t;
    
    
    typedef struct
      {
        gregset_t gregs;
    
    
        fpregset_t fpregs;
        unsigned long int oldmask;
        unsigned long int cr2;
      } mcontext_t;
    
    
    typedef struct ucontext
      {
        unsigned long int uc_flags;
        struct ucontext *uc_link;
        stack_t uc_stack;
        mcontext_t uc_mcontext;
        __sigset_t uc_sigmask;
        struct _libc_fpstate __fpregs_mem;
      } ucontext_t;
    # 360 "/usr/include/signal.h" 2 3 4
    
    
    
    
    
    extern int sigstack (struct sigstack *__ss, struct sigstack *__oss)
         __attribute__ ((__nothrow__)) __attribute__ ((__deprecated__));
    
    
    
    extern int sigaltstack (__const struct sigaltstack *__restrict __ss,
       struct sigaltstack *__restrict __oss) __attribute__ ((__nothrow__));
    # 395 "/usr/include/signal.h" 3 4
    # 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__));
    
    
    extern int pthread_kill (pthread_t __threadid, int __signo) __attribute__ ((__nothrow__));
    # 396 "/usr/include/signal.h" 2 3 4
    
    
    
    
    
    
    extern int __libc_current_sigrtmin (void) __attribute__ ((__nothrow__));
    
    extern int __libc_current_sigrtmax (void) __attribute__ ((__nothrow__));
    
    
    
    
    # 32 "/usr/include/sys/wait.h" 2 3 4
    # 1 "/usr/include/sys/resource.h" 1 3 4
    # 25 "/usr/include/sys/resource.h" 3 4
    # 1 "/usr/include/bits/resource.h" 1 3 4
    # 33 "/usr/include/bits/resource.h" 3 4
    enum __rlimit_resource
    {
    
      RLIMIT_CPU = 0,
    
    
    
      RLIMIT_FSIZE = 1,
    
    
    
      RLIMIT_DATA = 2,
    
    
    
      RLIMIT_STACK = 3,
    
    
    
      RLIMIT_CORE = 4,
    
    
    
    
    
    
      __RLIMIT_RSS = 5,
    
    
    
      RLIMIT_NOFILE = 7,
      __RLIMIT_OFILE = RLIMIT_NOFILE,
    
    
    
    
      RLIMIT_AS = 9,
    
    
    
      __RLIMIT_NPROC = 6,
    
    
    
      __RLIMIT_MEMLOCK = 8,
    
    
    
      __RLIMIT_LOCKS = 10,
    
    
    
      __RLIMIT_SIGPENDING = 11,
    
    
    
      __RLIMIT_MSGQUEUE = 12,
    
    
    
    
    
      __RLIMIT_NICE = 13,
    
    
    
    
      __RLIMIT_RTPRIO = 14,
    
    
      __RLIMIT_NLIMITS = 15,
      __RLIM_NLIMITS = __RLIMIT_NLIMITS
    
    
    };
    # 127 "/usr/include/bits/resource.h" 3 4
    typedef __rlim_t rlim_t;
    
    
    
    
    
    
    
    struct rlimit
      {
    
        rlim_t rlim_cur;
    
        rlim_t rlim_max;
      };
    # 154 "/usr/include/bits/resource.h" 3 4
    enum __rusage_who
    {
    
      RUSAGE_SELF = 0,
    
    
    
      RUSAGE_CHILDREN = -1
    # 172 "/usr/include/bits/resource.h" 3 4
    };
    
    
    # 1 "/usr/include/bits/time.h" 1 3 4
    # 176 "/usr/include/bits/resource.h" 2 3 4
    
    
    struct rusage
      {
    
        struct timeval ru_utime;
    
        struct timeval ru_stime;
    
        long int ru_maxrss;
    
    
        long int ru_ixrss;
    
        long int ru_idrss;
    
        long int ru_isrss;
    
    
        long int ru_minflt;
    
        long int ru_majflt;
    
        long int ru_nswap;
    
    
        long int ru_inblock;
    
        long int ru_oublock;
    
        long int ru_msgsnd;
    
        long int ru_msgrcv;
    
        long int ru_nsignals;
    
    
    
        long int ru_nvcsw;
    
    
        long int ru_nivcsw;
      };
    
    
    
    
    
    
    
    enum __priority_which
    {
      PRIO_PROCESS = 0,
    
      PRIO_PGRP = 1,
    
      PRIO_USER = 2
    
    };
    
    
    
    # 262 "/usr/include/bits/resource.h" 3 4
    
    # 26 "/usr/include/sys/resource.h" 2 3 4
    
    
    
    
    
    
    
    # 43 "/usr/include/sys/resource.h" 3 4
    typedef int __rlimit_resource_t;
    typedef int __rusage_who_t;
    typedef int __priority_which_t;
    
    
    
    
    
    extern int getrlimit (__rlimit_resource_t __resource,
            struct rlimit *__rlimits) __attribute__ ((__nothrow__));
    # 70 "/usr/include/sys/resource.h" 3 4
    extern int setrlimit (__rlimit_resource_t __resource,
            __const struct rlimit *__rlimits) __attribute__ ((__nothrow__));
    # 88 "/usr/include/sys/resource.h" 3 4
    extern int getrusage (__rusage_who_t __who, struct rusage *__usage) __attribute__ ((__nothrow__));
    
    
    
    
    
    extern int getpriority (__priority_which_t __which, id_t __who) __attribute__ ((__nothrow__));
    
    
    
    extern int setpriority (__priority_which_t __which, id_t __who, int __prio)
         __attribute__ ((__nothrow__));
    
    
    # 33 "/usr/include/sys/wait.h" 2 3 4
    # 102 "/usr/include/sys/wait.h" 3 4
    typedef enum
    {
      P_ALL,
      P_PID,
      P_PGID
    } idtype_t;
    # 116 "/usr/include/sys/wait.h" 3 4
    extern __pid_t wait (__WAIT_STATUS __stat_loc);
    # 139 "/usr/include/sys/wait.h" 3 4
    extern __pid_t waitpid (__pid_t __pid, int *__stat_loc, int __options);
    
    
    
    # 1 "/usr/include/bits/siginfo.h" 1 3 4
    # 25 "/usr/include/bits/siginfo.h" 3 4
    # 1 "/usr/include/bits/wordsize.h" 1 3 4
    # 26 "/usr/include/bits/siginfo.h" 2 3 4
    # 144 "/usr/include/sys/wait.h" 2 3 4
    # 155 "/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 (__WAIT_STATUS __stat_loc, int __options,
            struct rusage * __usage) __attribute__ ((__nothrow__));
    
    
    
    
    extern __pid_t wait4 (__pid_t __pid, __WAIT_STATUS __stat_loc, int __options,
            struct rusage *__usage) __attribute__ ((__nothrow__));
    
    
    
    
    # 28 "protocol.c" 2
    # 1 "/usr/include/sys/time.h" 1 3 4
    # 27 "/usr/include/sys/time.h" 3 4
    # 1 "/usr/include/time.h" 1 3 4
    # 28 "/usr/include/sys/time.h" 2 3 4
    
    # 1 "/usr/include/bits/time.h" 1 3 4
    # 30 "/usr/include/sys/time.h" 2 3 4
    # 39 "/usr/include/sys/time.h" 3 4
    
    # 57 "/usr/include/sys/time.h" 3 4
    struct timezone
      {
        int tz_minuteswest;
        int tz_dsttime;
      };
    
    typedef struct timezone *__restrict __timezone_ptr_t;
    # 73 "/usr/include/sys/time.h" 3 4
    extern int gettimeofday (struct timeval *__restrict __tv,
        __timezone_ptr_t __tz) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    extern int settimeofday (__const struct timeval *__tv,
        __const struct timezone *__tz)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    
    extern int adjtime (__const struct timeval *__delta,
          struct timeval *__olddelta) __attribute__ ((__nothrow__));
    
    
    
    
    enum __itimer_which
      {
    
        ITIMER_REAL = 0,
    
    
        ITIMER_VIRTUAL = 1,
    
    
    
        ITIMER_PROF = 2
    
      };
    
    
    
    struct itimerval
      {
    
        struct timeval it_interval;
    
        struct timeval it_value;
      };
    
    
    
    
    
    
    typedef int __itimer_which_t;
    
    
    
    
    extern int getitimer (__itimer_which_t __which,
            struct itimerval *__value) __attribute__ ((__nothrow__));
    
    
    
    
    extern int setitimer (__itimer_which_t __which,
            __const struct itimerval *__restrict __new,
            struct itimerval *__restrict __old) __attribute__ ((__nothrow__));
    
    
    
    
    extern int utimes (__const char *__file, __const struct timeval __tvp[2])
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    extern int lutimes (__const char *__file, __const struct timeval __tvp[2])
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    extern int futimes (int __fd, __const struct timeval __tvp[2]) __attribute__ ((__nothrow__));
    # 191 "/usr/include/sys/time.h" 3 4
    
    # 29 "protocol.c" 2
    # 1 "/usr/include/unistd.h" 1 3 4
    # 28 "/usr/include/unistd.h" 3 4
    
    # 203 "/usr/include/unistd.h" 3 4
    # 1 "/usr/include/bits/posix_opt.h" 1 3 4
    # 204 "/usr/include/unistd.h" 2 3 4
    
    
    
    # 1 "/usr/include/bits/environments.h" 1 3 4
    # 23 "/usr/include/bits/environments.h" 3 4
    # 1 "/usr/include/bits/wordsize.h" 1 3 4
    # 24 "/usr/include/bits/environments.h" 2 3 4
    # 208 "/usr/include/unistd.h" 2 3 4
    # 227 "/usr/include/unistd.h" 3 4
    # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4
    # 228 "/usr/include/unistd.h" 2 3 4
    # 256 "/usr/include/unistd.h" 3 4
    typedef __useconds_t useconds_t;
    # 288 "/usr/include/unistd.h" 3 4
    extern int access (__const char *__name, int __type) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    # 305 "/usr/include/unistd.h" 3 4
    extern int faccessat (int __fd, __const char *__file, int __type, int __flag)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__));
    # 331 "/usr/include/unistd.h" 3 4
    extern __off_t lseek (int __fd, __off_t __offset, int __whence) __attribute__ ((__nothrow__));
    # 350 "/usr/include/unistd.h" 3 4
    extern int close (int __fd);
    
    
    
    
    
    
    extern ssize_t read (int __fd, void *__buf, size_t __nbytes) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    extern ssize_t write (int __fd, __const void *__buf, size_t __n) __attribute__ ((__warn_unused_result__));
    # 373 "/usr/include/unistd.h" 3 4
    extern ssize_t pread (int __fd, void *__buf, size_t __nbytes,
            __off_t __offset) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    
    extern ssize_t pwrite (int __fd, __const void *__buf, size_t __n,
             __off_t __offset) __attribute__ ((__warn_unused_result__));
    # 414 "/usr/include/unistd.h" 3 4
    extern int pipe (int __pipedes[2]) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    # 429 "/usr/include/unistd.h" 3 4
    extern unsigned int alarm (unsigned int __seconds) __attribute__ ((__nothrow__));
    # 441 "/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__));
    
    
    
    
    
    
    extern int usleep (__useconds_t __useconds);
    # 466 "/usr/include/unistd.h" 3 4
    extern int pause (void);
    
    
    
    extern int chown (__const char *__file, __uid_t __owner, __gid_t __group)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    extern int fchown (int __fd, __uid_t __owner, __gid_t __group) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    
    extern int fchownat (int __fd, __const char *__file, __uid_t __owner,
           __gid_t __group, int __flag)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__));
    
    
    
    extern int chdir (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    extern int fchdir (int __fd) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    # 508 "/usr/include/unistd.h" 3 4
    extern char *getcwd (char *__buf, size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    # 522 "/usr/include/unistd.h" 3 4
    extern char *getwd (char *__buf)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern int dup (int __fd) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    extern int dup2 (int __fd, int __fd2) __attribute__ ((__nothrow__));
    # 540 "/usr/include/unistd.h" 3 4
    extern char **__environ;
    
    
    
    
    
    
    
    extern int execve (__const char *__path, char *__const __argv[],
         char *__const __envp[]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    
    
    extern int fexecve (int __fd, char *__const __argv[], char *__const __envp[])
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
    
    
    
    
    extern int execv (__const char *__path, char *__const __argv[])
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    
    extern int execle (__const char *__path, __const char *__arg, ...)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    
    extern int execl (__const char *__path, __const char *__arg, ...)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    
    extern int execvp (__const char *__file, char *__const __argv[])
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    
    
    
    
    extern int execlp (__const char *__file, __const char *__arg, ...)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
    # 595 "/usr/include/unistd.h" 3 4
    extern int nice (int __inc) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern void _exit (int __status) __attribute__ ((__noreturn__));
    
    
    
    
    
    # 1 "/usr/include/bits/confname.h" 1 3 4
    # 26 "/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
    
      };
    # 607 "/usr/include/unistd.h" 2 3 4
    
    
    extern long int pathconf (__const char *__path, int __name)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    extern long int fpathconf (int __fd, int __name) __attribute__ ((__nothrow__));
    
    
    extern long int sysconf (int __name) __attribute__ ((__nothrow__));
    
    
    
    extern size_t confstr (int __name, char *__buf, size_t __len) __attribute__ ((__nothrow__));
    
    
    
    
    extern __pid_t getpid (void) __attribute__ ((__nothrow__));
    
    
    extern __pid_t getppid (void) __attribute__ ((__nothrow__));
    
    
    
    
    extern __pid_t getpgrp (void) __attribute__ ((__nothrow__));
    # 643 "/usr/include/unistd.h" 3 4
    extern __pid_t __getpgid (__pid_t __pid) __attribute__ ((__nothrow__));
    
    extern __pid_t getpgid (__pid_t __pid) __attribute__ ((__nothrow__));
    
    
    
    
    
    
    extern int setpgid (__pid_t __pid, __pid_t __pgid) __attribute__ ((__nothrow__));
    # 669 "/usr/include/unistd.h" 3 4
    extern int setpgrp (void) __attribute__ ((__nothrow__));
    # 686 "/usr/include/unistd.h" 3 4
    extern __pid_t setsid (void) __attribute__ ((__nothrow__));
    
    
    
    extern __pid_t getsid (__pid_t __pid) __attribute__ ((__nothrow__));
    
    
    
    extern __uid_t getuid (void) __attribute__ ((__nothrow__));
    
    
    extern __uid_t geteuid (void) __attribute__ ((__nothrow__));
    
    
    extern __gid_t getgid (void) __attribute__ ((__nothrow__));
    
    
    extern __gid_t getegid (void) __attribute__ ((__nothrow__));
    
    
    
    
    extern int getgroups (int __size, __gid_t __list[]) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    # 719 "/usr/include/unistd.h" 3 4
    extern int setuid (__uid_t __uid) __attribute__ ((__nothrow__));
    
    
    
    
    extern int setreuid (__uid_t __ruid, __uid_t __euid) __attribute__ ((__nothrow__));
    
    
    
    
    extern int seteuid (__uid_t __uid) __attribute__ ((__nothrow__));
    
    
    
    
    
    
    extern int setgid (__gid_t __gid) __attribute__ ((__nothrow__));
    
    
    
    
    extern int setregid (__gid_t __rgid, __gid_t __egid) __attribute__ ((__nothrow__));
    
    
    
    
    extern int setegid (__gid_t __gid) __attribute__ ((__nothrow__));
    # 775 "/usr/include/unistd.h" 3 4
    extern __pid_t fork (void) __attribute__ ((__nothrow__));
    
    
    
    
    
    
    
    extern __pid_t vfork (void) __attribute__ ((__nothrow__));
    
    
    
    
    
    extern char *ttyname (int __fd) __attribute__ ((__nothrow__));
    
    
    
    extern int ttyname_r (int __fd, char *__buf, size_t __buflen)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__));
    
    
    
    extern int isatty (int __fd) __attribute__ ((__nothrow__));
    
    
    
    
    
    extern int ttyslot (void) __attribute__ ((__nothrow__));
    
    
    
    
    extern int link (__const char *__from, __const char *__to)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern int linkat (int __fromfd, __const char *__from, int __tofd,
         __const char *__to, int __flags)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern int symlink (__const char *__from, __const char *__to)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern ssize_t readlink (__const char *__restrict __path,
        char *__restrict __buf, size_t __len)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    extern int symlinkat (__const char *__from, int __tofd,
            __const char *__to) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) __attribute__ ((__warn_unused_result__));
    
    
    extern ssize_t readlinkat (int __fd, __const char *__restrict __path,
          char *__restrict __buf, size_t __len)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__));
    
    
    
    extern int unlink (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    extern int unlinkat (int __fd, __const char *__name, int __flag)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
    
    
    
    extern int rmdir (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    extern __pid_t tcgetpgrp (int __fd) __attribute__ ((__nothrow__));
    
    
    extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) __attribute__ ((__nothrow__));
    
    
    
    
    
    
    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__)) __attribute__ ((__nonnull__ (1)));
    # 890 "/usr/include/unistd.h" 3 4
    # 1 "/usr/include/getopt.h" 1 3 4
    # 59 "/usr/include/getopt.h" 3 4
    extern char *optarg;
    # 73 "/usr/include/getopt.h" 3 4
    extern int optind;
    
    
    
    
    extern int opterr;
    
    
    
    extern int optopt;
    # 152 "/usr/include/getopt.h" 3 4
    extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
           __attribute__ ((__nothrow__));
    # 891 "/usr/include/unistd.h" 2 3 4
    
    
    
    
    
    
    
    extern int gethostname (char *__name, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    
    
    extern int sethostname (__const char *__name, size_t __len)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    extern int sethostid (long int __id) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    extern int getdomainname (char *__name, size_t __len)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    extern int setdomainname (__const char *__name, size_t __len)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    extern int vhangup (void) __attribute__ ((__nothrow__));
    
    
    extern int revoke (__const char *__file) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    
    
    extern int profil (unsigned short int *__sample_buffer, size_t __size,
         size_t __offset, unsigned int __scale)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    
    extern int acct (__const char *__name) __attribute__ ((__nothrow__));
    
    
    
    extern char *getusershell (void) __attribute__ ((__nothrow__));
    extern void endusershell (void) __attribute__ ((__nothrow__));
    extern void setusershell (void) __attribute__ ((__nothrow__));
    
    
    
    
    
    extern int daemon (int __nochdir, int __noclose) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    
    extern int chroot (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    
    
    
    extern char *getpass (__const char *__prompt) __attribute__ ((__nonnull__ (1)));
    # 976 "/usr/include/unistd.h" 3 4
    extern int fsync (int __fd);
    
    
    
    
    
    
    extern long int gethostid (void);
    
    
    extern void sync (void) __attribute__ ((__nothrow__));
    
    
    
    
    
    extern int getpagesize (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
    
    
    
    
    extern int getdtablesize (void) __attribute__ ((__nothrow__));
    # 1007 "/usr/include/unistd.h" 3 4
    extern int truncate (__const char *__file, __off_t __length)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    # 1029 "/usr/include/unistd.h" 3 4
    extern int ftruncate (int __fd, __off_t __length) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    # 1050 "/usr/include/unistd.h" 3 4
    extern int brk (void *__addr) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    
    
    
    
    
    extern void *sbrk (intptr_t __delta) __attribute__ ((__nothrow__));
    # 1071 "/usr/include/unistd.h" 3 4
    extern long int syscall (long int __sysno, ...) __attribute__ ((__nothrow__));
    # 1094 "/usr/include/unistd.h" 3 4
    extern int lockf (int __fd, int __cmd, __off_t __len) __attribute__ ((__warn_unused_result__));
    # 1125 "/usr/include/unistd.h" 3 4
    extern int fdatasync (int __fildes);
    # 1154 "/usr/include/unistd.h" 3 4
    extern char *ctermid (char *__s) __attribute__ ((__nothrow__));
    
    
    
    
    
    # 1 "/usr/include/bits/unistd.h" 1 3 4
    # 24 "/usr/include/bits/unistd.h" 3 4
    extern ssize_t __read_chk (int __fd, void *__buf, size_t __nbytes,
          size_t __buflen) __attribute__ ((__warn_unused_result__));
    extern ssize_t __read_alias (int __fd, void *__buf, size_t __nbytes) __asm__ ("" "read")
                                   __attribute__ ((__warn_unused_result__));
    extern ssize_t __read_chk_warn (int __fd, void *__buf, size_t __nbytes, size_t __buflen) __asm__ ("" "__read_chk")
    
    
         __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("read called with bigger length than size of " "the destination buffer")))
                                      ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) ssize_t
    read (int __fd, void *__buf, size_t __nbytes)
    {
      if (__builtin_object_size (__buf, 0) != (size_t) -1)
        {
          if (!__builtin_constant_p (__nbytes))
     return __read_chk (__fd, __buf, __nbytes, __builtin_object_size (__buf, 0));
    
          if (__nbytes > __builtin_object_size (__buf, 0))
     return __read_chk_warn (__fd, __buf, __nbytes, __builtin_object_size (__buf, 0));
        }
      return __read_alias (__fd, __buf, __nbytes);
    }
    # 124 "/usr/include/bits/unistd.h" 3 4
    extern ssize_t __readlink_chk (__const char *__restrict __path,
              char *__restrict __buf, size_t __len,
              size_t __buflen)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__));
    extern ssize_t __readlink_alias (__const char *__restrict __path, char *__restrict __buf, size_t __len) __asm__ ("" "readlink") __attribute__ ((__nothrow__))
    
    
         __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__));
    extern ssize_t __readlink_chk_warn (__const char *__restrict __path, char *__restrict __buf, size_t __len, size_t __buflen) __asm__ ("" "__readlink_chk") __attribute__ ((__nothrow__))
    
    
    
         __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("readlink called with bigger length " "than size of destination buffer")))
                                             ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)) ssize_t
    __attribute__ ((__nothrow__)) readlink (__const char *__restrict __path, char *__restrict __buf, size_t __len)
    
    {
      if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
        {
          if (!__builtin_constant_p (__len))
     return __readlink_chk (__path, __buf, __len, __builtin_object_size (__buf, 2 > 1));
    
          if ( __len > __builtin_object_size (__buf, 2 > 1))
     return __readlink_chk_warn (__path, __buf, __len, __builtin_object_size (__buf, 2 > 1));
        }
      return __readlink_alias (__path, __buf, __len);
    }
    
    
    
    extern ssize_t __readlinkat_chk (int __fd, __const char *__restrict __path,
         char *__restrict __buf, size_t __len,
         size_t __buflen)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__));
    extern ssize_t __readlinkat_alias (int __fd, __const char *__restrict __path, char *__restrict __buf, size_t __len) __asm__ ("" "readlinkat") __attribute__ ((__nothrow__))
    
    
    
         __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__));
    extern ssize_t __readlinkat_chk_warn (int __fd, __const char *__restrict __path, char *__restrict __buf, size_t __len, size_t __buflen) __asm__ ("" "__readlinkat_chk") __attribute__ ((__nothrow__))
    
    
    
         __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("readlinkat called with bigger " "length than size of destination " "buffer")))
    
                    ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__)) ssize_t
    __attribute__ ((__nothrow__)) readlinkat (int __fd, __const char *__restrict __path, char *__restrict __buf, size_t __len)
    
    {
      if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
        {
          if (!__builtin_constant_p (__len))
     return __readlinkat_chk (__fd, __path, __buf, __len, __builtin_object_size (__buf, 2 > 1));
    
          if (__len > __builtin_object_size (__buf, 2 > 1))
     return __readlinkat_chk_warn (__fd, __path, __buf, __len,
              __builtin_object_size (__buf, 2 > 1));
        }
      return __readlinkat_alias (__fd, __path, __buf, __len);
    }
    
    
    extern char *__getcwd_chk (char *__buf, size_t __size, size_t __buflen)
         __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    extern char *__getcwd_alias (char *__buf, size_t __size) __asm__ ("" "getcwd") __attribute__ ((__nothrow__))
                                                  __attribute__ ((__warn_unused_result__));
    extern char *__getcwd_chk_warn (char *__buf, size_t __size, size_t __buflen) __asm__ ("" "__getcwd_chk") __attribute__ ((__nothrow__))
    
    
         __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("getcwd caller with bigger length than size of " "destination buffer")))
                                  ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char *
    __attribute__ ((__nothrow__)) getcwd (char *__buf, size_t __size)
    {
      if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
        {
          if (!__builtin_constant_p (__size))
     return __getcwd_chk (__buf, __size, __builtin_object_size (__buf, 2 > 1));
    
          if (__size > __builtin_object_size (__buf, 2 > 1))
     return __getcwd_chk_warn (__buf, __size, __builtin_object_size (__buf, 2 > 1));
        }
      return __getcwd_alias (__buf, __size);
    }
    
    
    extern char *__getwd_chk (char *__buf, size_t buflen)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    extern char *__getwd_warn (char *__buf) __asm__ ("" "getwd") __attribute__ ((__nothrow__))
         __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("please use getcwd instead, as getwd " "doesn't specify buffer size")))
                                             ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) __attribute__ ((__warn_unused_result__)) char *
    __attribute__ ((__nothrow__)) getwd (char *__buf)
    {
      if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
        return __getwd_chk (__buf, __builtin_object_size (__buf, 2 > 1));
      return __getwd_warn (__buf);
    }
    
    
    extern size_t __confstr_chk (int __name, char *__buf, size_t __len,
            size_t __buflen) __attribute__ ((__nothrow__));
    extern size_t __confstr_alias (int __name, char *__buf, size_t __len) __asm__ ("" "confstr") __attribute__ ((__nothrow__))
                                 ;
    extern size_t __confstr_chk_warn (int __name, char *__buf, size_t __len, size_t __buflen) __asm__ ("" "__confstr_chk") __attribute__ ((__nothrow__))
    
    
         __attribute__((__warning__ ("confstr called with bigger length than size of destination " "buffer")))
                ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) size_t
    __attribute__ ((__nothrow__)) confstr (int __name, char *__buf, size_t __len)
    {
      if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
        {
          if (!__builtin_constant_p (__len))
     return __confstr_chk (__name, __buf, __len, __builtin_object_size (__buf, 2 > 1));
    
          if (__builtin_object_size (__buf, 2 > 1) < __len)
     return __confstr_chk_warn (__name, __buf, __len, __builtin_object_size (__buf, 2 > 1));
        }
      return __confstr_alias (__name, __buf, __len);
    }
    
    
    extern int __getgroups_chk (int __size, __gid_t __list[], size_t __listlen)
         __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
    extern int __getgroups_alias (int __size, __gid_t __list[]) __asm__ ("" "getgroups") __attribute__ ((__nothrow__))
                     __attribute__ ((__warn_unused_result__));
    extern int __getgroups_chk_warn (int __size, __gid_t __list[], size_t __listlen) __asm__ ("" "__getgroups_chk") __attribute__ ((__nothrow__))
    
    
         __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("getgroups called with bigger group count than what " "can fit into destination buffer")))
                                               ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
    __attribute__ ((__nothrow__)) getgroups (int __size, __gid_t __list[])
    {
      if (__builtin_object_size (__list, 2 > 1) != (size_t) -1)
        {
          if (!__builtin_constant_p (__size) || __size < 0)
     return __getgroups_chk (__size, __list, __builtin_object_size (__list, 2 > 1));
    
          if (__size * sizeof (__gid_t) > __builtin_object_size (__list, 2 > 1))
     return __getgroups_chk_warn (__size, __list, __builtin_object_size (__list, 2 > 1));
        }
      return __getgroups_alias (__size, __list);
    }
    
    
    extern int __ttyname_r_chk (int __fd, char *__buf, size_t __buflen,
           size_t __nreal) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
    extern int __ttyname_r_alias (int __fd, char *__buf, size_t __buflen) __asm__ ("" "ttyname_r") __attribute__ ((__nothrow__))
    
         __attribute__ ((__nonnull__ (2)));
    extern int __ttyname_r_chk_warn (int __fd, char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__ttyname_r_chk") __attribute__ ((__nothrow__))
    
    
         __attribute__ ((__nonnull__ (2))) __attribute__((__warning__ ("ttyname_r called with bigger buflen than " "size of destination buffer")))
                                      ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
    __attribute__ ((__nothrow__)) ttyname_r (int __fd, char *__buf, size_t __buflen)
    {
      if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
        {
          if (!__builtin_constant_p (__buflen))
     return __ttyname_r_chk (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1));
    
          if (__buflen > __builtin_object_size (__buf, 2 > 1))
     return __ttyname_r_chk_warn (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1));
        }
      return __ttyname_r_alias (__fd, __buf, __buflen);
    }
    
    
    
    extern int __getlogin_r_chk (char *__buf, size_t __buflen, size_t __nreal)
         __attribute__ ((__nonnull__ (1)));
    extern int __getlogin_r_alias (char *__buf, size_t __buflen) __asm__ ("" "getlogin_r")
                         __attribute__ ((__nonnull__ (1)));
    extern int __getlogin_r_chk_warn (char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__getlogin_r_chk")
    
    
         __attribute__ ((__nonnull__ (1))) __attribute__((__warning__ ("getlogin_r called with bigger buflen than " "size of destination buffer")))
                                      ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
    getlogin_r (char *__buf, size_t __buflen)
    {
      if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
        {
          if (!__builtin_constant_p (__buflen))
     return __getlogin_r_chk (__buf, __buflen, __builtin_object_size (__buf, 2 > 1));
    
          if (__buflen > __builtin_object_size (__buf, 2 > 1))
     return __getlogin_r_chk_warn (__buf, __buflen, __builtin_object_size (__buf, 2 > 1));
        }
      return __getlogin_r_alias (__buf, __buflen);
    }
    
    
    
    
    extern int __gethostname_chk (char *__buf, size_t __buflen, size_t __nreal)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    extern int __gethostname_alias (char *__buf, size_t __buflen) __asm__ ("" "gethostname") __attribute__ ((__nothrow__))
                       __attribute__ ((__nonnull__ (1)));
    extern int __gethostname_chk_warn (char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__gethostname_chk") __attribute__ ((__nothrow__))
    
    
         __attribute__ ((__nonnull__ (1))) __attribute__((__warning__ ("gethostname called with bigger buflen than " "size of destination buffer")))
                                      ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
    __attribute__ ((__nothrow__)) gethostname (char *__buf, size_t __buflen)
    {
      if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
        {
          if (!__builtin_constant_p (__buflen))
     return __gethostname_chk (__buf, __buflen, __builtin_object_size (__buf, 2 > 1));
    
          if (__buflen > __builtin_object_size (__buf, 2 > 1))
     return __gethostname_chk_warn (__buf, __buflen, __builtin_object_size (__buf, 2 > 1));
        }
      return __gethostname_alias (__buf, __buflen);
    }
    
    
    
    
    extern int __getdomainname_chk (char *__buf, size_t __buflen, size_t __nreal)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    extern int __getdomainname_alias (char *__buf, size_t __buflen) __asm__ ("" "getdomainname") __attribute__ ((__nothrow__))
    
                         __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
    extern int __getdomainname_chk_warn (char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__getdomainname_chk") __attribute__ ((__nothrow__))
    
    
         __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("getdomainname called with bigger " "buflen than size of destination " "buffer")))
    
                        ;
    
    extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
    __attribute__ ((__nothrow__)) getdomainname (char *__buf, size_t __buflen)
    {
      if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
        {
          if (!__builtin_constant_p (__buflen))
     return __getdomainname_chk (__buf, __buflen, __builtin_object_size (__buf, 2 > 1));
    
          if (__buflen > __builtin_object_size (__buf, 2 > 1))
     return __getdomainname_chk_warn (__buf, __buflen, __builtin_object_size (__buf, 2 > 1));
        }
      return __getdomainname_alias (__buf, __buflen);
    }
    # 1161 "/usr/include/unistd.h" 2 3 4
    
    
    
    # 30 "protocol.c" 2
    
    # 1 "/usr/include/dirent.h" 1 3 4
    # 28 "/usr/include/dirent.h" 3 4
    
    # 62 "/usr/include/dirent.h" 3 4
    # 1 "/usr/include/bits/dirent.h" 1 3 4
    # 23 "/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];
      };
    # 63 "/usr/include/dirent.h" 2 3 4
    # 98 "/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
    
      };
    # 128 "/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)));
    # 163 "/usr/include/dirent.h" 3 4
    extern struct dirent *readdir (DIR *__dirp) __attribute__ ((__nonnull__ (1)));
    # 184 "/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)));
    # 209 "/usr/include/dirent.h" 3 4
    extern void rewinddir (DIR *__dirp) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    
    extern void seekdir (DIR *__dirp, long int __pos) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    extern long int telldir (DIR *__dirp) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    
    
    
    
    
    extern int dirfd (DIR *__dirp) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
    # 233 "/usr/include/dirent.h" 3 4
    # 1 "/usr/include/bits/posix1_lim.h" 1 3 4
    # 157 "/usr/include/bits/posix1_lim.h" 3 4
    # 1 "/usr/include/bits/local_lim.h" 1 3 4
    # 39 "/usr/include/bits/local_lim.h" 3 4
    # 1 "/usr/include/linux/limits.h" 1 3 4
    # 40 "/usr/include/bits/local_lim.h" 2 3 4
    # 158 "/usr/include/bits/posix1_lim.h" 2 3 4
    # 234 "/usr/include/dirent.h" 2 3 4
    # 245 "/usr/include/dirent.h" 3 4
    # 1 "/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/include/stddef.h" 1 3 4
    # 246 "/usr/include/dirent.h" 2 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)));
    # 285 "/usr/include/dirent.h" 3 4
    extern int alphasort (__const struct dirent **__e1,
            __const struct dirent **__e2)
         __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
    # 313 "/usr/include/dirent.h" 3 4
    extern __ssize_t getdirentries (int __fd, char *__restrict __buf,
        size_t __nbytes,
        __off_t *__restrict __basep)
         __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4)));
    # 362 "/usr/include/dirent.h" 3 4
    
    # 32 "protocol.c" 2
    
    # 1 "ghttpd.h" 1
    # 23 "ghttpd.h"
    typedef struct
    {
     char host[255];
     char DOCUMENTROOT[255];
     char DEFAULTPAGE[255];
     char CGIBINDIR[255];
     char CGIBINROOT[255];
    } t_vhost;
    
    int serveconnection(int sockfd);
    int does_file_exist(char *filename);
    void getmimetype(char *filename, char *mimetype);
    int isDirectory(char *filename);
    void showdir(char *directory, int sockfd, t_vhost *thehost);
    void readinconfig();
    void Log(char *format, ...);
    void getfileline(char *line, FILE *in);
    void gstrlwr(char *string);
    unsigned long get_file_size(char *filename);
    
    
    extern unsigned int SERVERPORT;
    
    extern char SERVERROOT[255];
    extern char SERVERTYPE[255];
    extern unsigned long no_vhosts;
    extern t_vhost *vhosts;
    extern t_vhost defaulthost;
    # 34 "protocol.c" 2
    
    extern char assocNames[][2][100];
    
    int serveconnection(int sockfd)
    {
     FILE *in;
     char tempdata[8192], *ptr, *ptr2, *host_ptr1, *host_ptr2;
     char tempstring[8192], mimetype[50];
     char filename[255];
     unsigned int loop=0, flag=0;
     int numbytes=0;
     int tno;
     struct sockaddr_in sa;
     int addrlen = sizeof(struct sockaddr_in);
     t_vhost *thehost;
     char * stringpos = ((void *)0);
    
     thehost = &defaulthost;
    
    
    
     while(!strstr(tempdata, "\r\n\r\n") && !strstr(tempdata, "\n\n"))
     {
      if((numbytes=recv(sockfd, tempdata+numbytes, 4096-numbytes, 0))==-1)
       return -1;
     }
     for(loop=0; loop<4096 && tempdata[loop]!='\n' && tempdata[loop]!='\r'; loop++)
      tempstring[loop] = tempdata[loop];
    
     tempstring[loop] = '\0';
     ptr = strtok(tempstring, " ");
    
     if(ptr == 0) return -1;
     if(__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (ptr) && __builtin_constant_p ("GET") && (__s1_len = __builtin_strlen (ptr), __s2_len = __builtin_strlen ("GET"), (!((size_t)(const void *)((ptr) + 1) - (size_t)(const void *)(ptr) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("GET") + 1) - (size_t)(const void *)("GET") == 1) || __s2_len >= 4)) ? __builtin_strcmp (ptr, "GET") : (__builtin_constant_p (ptr) && ((size_t)(const void *)((ptr) + 1) - (size_t)(const void *)(ptr) == 1) && (__s1_len = __builtin_strlen (ptr), __s1_len < 4) ? (__builtin_constant_p ("GET") && ((size_t)(const void *)(("GET") + 1) - (size_t)(const void *)("GET") == 1) ? __builtin_strcmp (ptr, "GET") : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) ("GET"); register int __result = (((__const unsigned char *) (__const char *) (ptr))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (ptr))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (ptr))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (ptr))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("GET") && ((size_t)(const void *)(("GET") + 1) - (size_t)(const void *)("GET") == 1) && (__s2_len = __builtin_strlen ("GET"), __s2_len < 4) ? (__builtin_constant_p (ptr) && ((size_t)(const void *)((ptr) + 1) - (size_t)(const void *)(ptr) == 1) ? __builtin_strcmp (ptr, "GET") : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (ptr); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) ("GET"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) ("GET"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) ("GET"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) ("GET"))[3]); } } __result; }))) : __builtin_strcmp (ptr, "GET")))); }))
     {
      Log("Connection from %s, cmderror = \"GET %s\"", inet_ntoa(sa.sin_addr), ptr);
      strcpy(filename, SERVERROOT);
      strcat(filename, "/cmderror.html");
      goto sendpage;
     }
     ptr = strtok(((void *)0), " ");
     if(ptr == ((void *)0))
     {
      Log("Connection from %s, cmderror = \"GET\"", inet_ntoa(sa.sin_addr));
      strcpy(filename, SERVERROOT);
      strcat(filename, "/cmderror.html");
      goto sendpage;
     }
    
     host_ptr1 = strstr(tempdata, "Host:");
     if(host_ptr1)
     {
      host_ptr2 = strtok(host_ptr1+6, " \r\n\t");
    
      for(loop=0; loop<no_vhosts; loop++)
       if(!gstricmp(vhosts[loop].host, host_ptr2))
        thehost = &vhosts[loop];
     }
     else
      thehost = &defaulthost;
     if(strstr(ptr, "/.."))
     {
      Log("Connection from %s, 404 = \"GET %s\"", inet_ntoa(sa.sin_addr), ptr);
      strcpy(filename, SERVERROOT);
      strcat(filename, "/404.html");
      goto sendpage;
     }
    
     getpeername(sockfd, (struct sockaddr *)&sa, &addrlen);
     Log("Connection from %s, request = \"GET %s\"", inet_ntoa(sa.sin_addr), ptr);
    
    
    
     while (strstr(ptr,"%20")!=((void *)0)) {
      stringpos = strstr(ptr,"%20");
      *stringpos = (char)32;
      strcpy(stringpos+1,stringpos+3);
     }
    
    
     if(!(__extension__ (__builtin_constant_p (strlen(thehost->CGIBINDIR)) && ((__builtin_constant_p (ptr) && strlen (ptr) < ((size_t) (strlen(thehost->CGIBINDIR)))) || (__builtin_constant_p (thehost->CGIBINDIR) && strlen (thehost->CGIBINDIR) < ((size_t) (strlen(thehost->CGIBINDIR))))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (ptr) && __builtin_constant_p (thehost->CGIBINDIR) && (__s1_len = __builtin_strlen (ptr), __s2_len = __builtin_strlen (thehost->CGIBINDIR), (!((size_t)(const void *)((ptr) + 1) - (size_t)(const void *)(ptr) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((thehost->CGIBINDIR) + 1) - (size_t)(const void *)(thehost->CGIBINDIR) == 1) || __s2_len >= 4)) ? __builtin_strcmp (ptr, thehost->CGIBINDIR) : (__builtin_constant_p (ptr) && ((size_t)(const void *)((ptr) + 1) - (size_t)(const void *)(ptr) == 1) && (__s1_len = __builtin_strlen (ptr), __s1_len < 4) ? (__builtin_constant_p (thehost->CGIBINDIR) && ((size_t)(const void *)((thehost->CGIBINDIR) + 1) - (size_t)(const void *)(thehost->CGIBINDIR) == 1) ? __builtin_strcmp (ptr, thehost->CGIBINDIR) : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) (thehost->CGIBINDIR); register int __result = (((__const unsigned char *) (__const char *) (ptr))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (ptr))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (ptr))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (ptr))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (thehost->CGIBINDIR) && ((size_t)(const void *)((thehost->CGIBINDIR) + 1) - (size_t)(const void *)(thehost->CGIBINDIR) == 1) && (__s2_len = __builtin_strlen (thehost->CGIBINDIR), __s2_len < 4) ? (__builtin_constant_p (ptr) && ((size_t)(const void *)((ptr) + 1) - (size_t)(const void *)(ptr) == 1) ? __builtin_strcmp (ptr, thehost->CGIBINDIR) : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (ptr); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) (thehost->CGIBINDIR))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) (thehost->CGIBINDIR))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) (thehost->CGIBINDIR))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) (thehost->CGIBINDIR))[3]); } } __result; }))) : __builtin_strcmp (ptr, thehost->CGIBINDIR)))); }) : strncmp (ptr, thehost->CGIBINDIR, strlen(thehost->CGIBINDIR)))))
     {
      ptr2 = strstr(ptr, "?");
      if(ptr2!=((void *)0)) { ptr2[0] = '\0'; flag = 1; }
    
      strcpy(filename, thehost->CGIBINROOT);
      ptr += strlen(thehost->CGIBINDIR);
      tno = strlen(filename);
      strncat(filename, ptr, sizeof(filename)-tno);
    
    
    
    
      if(does_file_exist(filename)==1 && isDirectory(filename)==0)
      {
       if(send(sockfd, "HTTP/1.1 200 OK\n", 16, 0)==-1)
       {
        fclose(in);
        return -1;
       }
       if(send(sockfd, "Server: ""GazTek HTTP Daemon v1.4-4""\n", strlen("Server: ""GazTek HTTP Daemon v1.4-4""\n"), 0)==-1)
       {
        fclose(in);
        return -1;
       }
    
    
       if(0 != dup2(sockfd, 0) || 1 != dup2(sockfd, 1))
        return -1;
    
       setbuf(stdin, 0);
       setbuf(stdout, 0);
       if(flag==1) setenv("QUERY_STRING", ptr2+1, 1);
    
       chdir(thehost->CGIBINROOT);
    
       execlp(filename, ((void *)0));
       return 0;
      }
      Log("Connection from %s, cgierror = \"EXEC %s %s\"", inet_ntoa(sa.sin_addr), filename ,ptr2+1);
      strcpy(filename, SERVERROOT);
      strcat(filename, "/cgierror.html");
      goto sendpage;
     }
    
     strcpy(filename, thehost->DOCUMENTROOT);
     tno = strlen(filename);
     strncat(filename, ptr,sizeof(filename)-tno);
    
     if(does_file_exist(filename)==0)
     {
      if(filename[strlen(filename)-1] == '/')
       strcat(filename, thehost->DEFAULTPAGE);
      else
      {
       strcat(filename, "/");
       strcat(filename, thehost->DEFAULTPAGE);
      }
      if(does_file_exist(filename) == 0)
      {
       filename[strlen(filename)-strlen(thehost->DEFAULTPAGE)-1] = '\0';
       if(isDirectory(filename) == 1) { showdir(filename, sockfd, thehost); return 0; }
    
    
       strcpy(filename, SERVERROOT);
       strcat(filename, "/404.html");
      }
    
     }
    sendpage:
     if((in = fopen(filename, "rb"))==((void *)0))
      return -1;
    
     fseek(in, 0, 2);
    
     if(send(sockfd, "HTTP/1.1 200 OK\n", 16, 0)==-1)
     {
      fclose(in);
      return -1;
     }
     if(send(sockfd, "Server: ""GazTek HTTP Daemon v1.4-4""\n", strlen("Server: ""GazTek HTTP Daemon v1.4-4""\n"), 0)==-1)
     {
      fclose(in);
      return -1;
     }
     sprintf(tempstring, "Content-Length: %d\n", ftell(in));
     if(send(sockfd, tempstring, strlen(tempstring), 0)==-1)
     {
      fclose(in);
      return -1;
     }
    
     getmimetype(filename, mimetype);
     sprintf(tempstring, "Content-Type: %s\n\n", mimetype);
     if(send(sockfd, tempstring, strlen(tempstring), 0)==-1)
     {
      fclose(in);
      return -1;
     }
    
     fseek(in, 0, 0);
    
     while(!feof(in))
     {
      numbytes = fread(tempdata, 1, 1024, in);
      if(send(sockfd, tempdata, numbytes, 0)==-1)
      {
       fclose(in);
       return -1;
      }
     }
     fclose(in);
    
     close(sockfd);
     return 0;
    }
    
    void getmimetype(char *filename, char *mimetype)
    {
     char tempstring[50];
     char tempstring2[50];
     unsigned int loop=0;
    
     memset(tempstring, 0, 50);
    
    
     for(loop=1; loop<strlen(filename) && filename[strlen(filename)-loop]!='.'; loop++)
      tempstring[loop-1] = filename[strlen(filename)-loop];
    
    
     for(loop=0; loop<strlen(tempstring); loop++)
      tempstring2[loop] = tempstring[strlen(tempstring)-loop-1];
    
     tempstring2[loop] = '\0';
    
    
    
    
     for(loop=0; __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (assocNames[loop][0]) && __builtin_constant_p ("") && (__s1_len = __builtin_strlen (assocNames[loop][0]), __s2_len = __builtin_strlen (""), (!((size_t)(const void *)((assocNames[loop][0]) + 1) - (size_t)(const void *)(assocNames[loop][0]) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("") + 1) - (size_t)(const void *)("") == 1) || __s2_len >= 4)) ? __builtin_strcmp (assocNames[loop][0], "") : (__builtin_constant_p (assocNames[loop][0]) && ((size_t)(const void *)((assocNames[loop][0]) + 1) - (size_t)(const void *)(assocNames[loop][0]) == 1) && (__s1_len = __builtin_strlen (assocNames[loop][0]), __s1_len < 4) ? (__builtin_constant_p ("") && ((size_t)(const void *)(("") + 1) - (size_t)(const void *)("") == 1) ? __builtin_strcmp (assocNames[loop][0], "") : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) (""); register int __result = (((__const unsigned char *) (__const char *) (assocNames[loop][0]))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (assocNames[loop][0]))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (assocNames[loop][0]))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (assocNames[loop][0]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("") && ((size_t)(const void *)(("") + 1) - (size_t)(const void *)("") == 1) && (__s2_len = __builtin_strlen (""), __s2_len < 4) ? (__builtin_constant_p (assocNames[loop][0]) && ((size_t)(const void *)((assocNames[loop][0]) + 1) - (size_t)(const void *)(assocNames[loop][0]) == 1) ? __builtin_strcmp (assocNames[loop][0], "") : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (assocNames[loop][0]); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) (""))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) (""))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) (""))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) (""))[3]); } } __result; }))) : __builtin_strcmp (assocNames[loop][0], "")))); }) && __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (assocNames[loop][0]) && __builtin_constant_p (tempstring2) && (__s1_len = __builtin_strlen (assocNames[loop][0]), __s2_len = __builtin_strlen (tempstring2), (!((size_t)(const void *)((assocNames[loop][0]) + 1) - (size_t)(const void *)(assocNames[loop][0]) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((tempstring2) + 1) - (size_t)(const void *)(tempstring2) == 1) || __s2_len >= 4)) ? __builtin_strcmp (assocNames[loop][0], tempstring2) : (__builtin_constant_p (assocNames[loop][0]) && ((size_t)(const void *)((assocNames[loop][0]) + 1) - (size_t)(const void *)(assocNames[loop][0]) == 1) && (__s1_len = __builtin_strlen (assocNames[loop][0]), __s1_len < 4) ? (__builtin_constant_p (tempstring2) && ((size_t)(const void *)((tempstring2) + 1) - (size_t)(const void *)(tempstring2) == 1) ? __builtin_strcmp (assocNames[loop][0], tempstring2) : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) (tempstring2); register int __result = (((__const unsigned char *) (__const char *) (assocNames[loop][0]))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (assocNames[loop][0]))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (assocNames[loop][0]))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (assocNames[loop][0]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (tempstring2) && ((size_t)(const void *)((tempstring2) + 1) - (size_t)(const void *)(tempstring2) == 1) && (__s2_len = __builtin_strlen (tempstring2), __s2_len < 4) ? (__builtin_constant_p (assocNames[loop][0]) && ((size_t)(const void *)((assocNames[loop][0]) + 1) - (size_t)(const void *)(assocNames[loop][0]) == 1) ? __builtin_strcmp (assocNames[loop][0], tempstring2) : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (assocNames[loop][0]); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) (tempstring2))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) (tempstring2))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) (tempstring2))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) (tempstring2))[3]); } } __result; }))) : __builtin_strcmp (assocNames[loop][0], tempstring2)))); }); loop++);
    
     strcpy(mimetype, assocNames[loop][1]);
     if(!__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (mimetype) && __builtin_constant_p ("") && (__s1_len = __builtin_strlen (mimetype), __s2_len = __builtin_strlen (""), (!((size_t)(const void *)((mimetype) + 1) - (size_t)(const void *)(mimetype) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("") + 1) - (size_t)(const void *)("") == 1) || __s2_len >= 4)) ? __builtin_strcmp (mimetype, "") : (__builtin_constant_p (mimetype) && ((size_t)(const void *)((mimetype) + 1) - (size_t)(const void *)(mimetype) == 1) && (__s1_len = __builtin_strlen (mimetype), __s1_len < 4) ? (__builtin_constant_p ("") && ((size_t)(const void *)(("") + 1) - (size_t)(const void *)("") == 1) ? __builtin_strcmp (mimetype, "") : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) (""); register int __result = (((__const unsigned char *) (__const char *) (mimetype))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (mimetype))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (mimetype))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (mimetype))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("") && ((size_t)(const void *)(("") + 1) - (size_t)(const void *)("") == 1) && (__s2_len = __builtin_strlen (""), __s2_len < 4) ? (__builtin_constant_p (mimetype) && ((size_t)(const void *)((mimetype) + 1) - (size_t)(const void *)(mimetype) == 1) ? __builtin_strcmp (mimetype, "") : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (mimetype); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) (""))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) (""))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) (""))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) (""))[3]); } } __result; }))) : __builtin_strcmp (mimetype, "")))); })) strcpy(mimetype, "application/octet-stream");
    }
    
    void showdir(char *directory, int sockfd, t_vhost *thehost)
    {
     struct dirent **namelist;
     int n, loop;
     unsigned long size=0;
     FILE *in;
     char tempstring[255];
     char dirheader[2048];
     const char dirfooter[] = "</TABLE><hr><center><font size=-1>This page is being provided to you by ghttpd<br><A HREF=\"http://members.xoom.com/gaztek\">http://members.xoom.com/gaztek</a></TD></TR></TABLE></BODY></HTML>\n";
    
     memset(dirheader, 0, 2048);
    
     sprintf(dirheader, "HTTP/1.1 200 OK\nServer: ""GazTek HTTP Daemon v1.4-4""\nContent-Type: text/html\n\n<HTML><BODY bgcolor=\"#33CCFF\"><center><TABLE BORDER=3 COLS=1 WIDTH=\"75%\" BGCOLOR=\"#66FFFF\"><tr><td><center><h2><u>Directory listing for %s</u></h2></center><TABLE BORDER=3 COLS=2 WIDTH=100% BGCOLOR=\"#FFFFFF\"><tr><td><b><center>Filename</center></b></td><td><b><center>Size (bytes)</center></b></td></tr>", directory+strlen(thehost->DOCUMENTROOT));
    
     if(send(sockfd, dirheader, sizeof(dirheader), 0) == -1)
      return;
    
     n = scandir(directory, &namelist, 0, alphasort);
    
     directory += strlen(thehost->DOCUMENTROOT);
    
     if (n < 0)
          perror("scandir");
     else
          for(loop=0; loop<n; loop++)
          {
           sprintf(tempstring, "%s%s/%s", thehost->DOCUMENTROOT, directory, namelist[loop]->d_name);
       size = get_file_size(tempstring);
       if(isDirectory(tempstring)) size=0;
           sprintf(tempstring, "<tr><td><center><A HREF=\"%s/%s\">%s</a></center></td><td><center>%d</center></td></tr>\n", directory,namelist[loop]->d_name, namelist[loop]->d_name, size);
           if(send(sockfd, tempstring, strlen(tempstring), 0)==-1)
            return;
          }
    
     send(sockfd, dirfooter, sizeof(dirfooter), 0);
    }
    
    char assocNames[][2][100] =
    {
     { "mp2", "audio/x-mpeg" },
     { "mpa", "audio/x-mpeg" },
     { "abs", "audio/x-mpeg" },
     { "mpega", "audio/x-mpeg" },
     { "mpeg", "video/mpeg" },
     { "mpg", "video/mpeg" },
     { "mpe", "video/mpeg" },
     { "mpv", "video/mpeg" },
     { "vbs", "video/mpeg" },
     { "mpegv", "video/mpeg" },
     { "bin", "application/octet-stream" },
     { "com", "application/octet-stream" },
     { "dll", "application/octet-stream" },
     { "bmp", "image/x-MS-bmp" },
     { "exe", "application/octet-stream" },
     { "mid", "audio/x-midi" },
     { "midi", "audio/x-midi" },
     { "htm", "text/html" },
     { "html", "text/html" },
     { "txt", "text/plain" },
     { "gif", "image/gif" },
     { "tar", "application/x-tar" },
     { "jpg", "image/jpeg" },
     { "jpeg", "image/jpeg" },
     { "png", "image/png" },
     { "ra", "audio/x-pn-realaudio" },
     { "ram", "audio/x-pn-realaudio" },
     { "sys", "application/octet-stream" },
     { "wav", "audio/x-wav" },
     { "xbm", "image/x-xbitmap" },
     { "zip", "application/x-zip" },
     { "", "" }
    };
    
    ? file icon protocol.i (171,041 bytes) 2011-07-25 13:56 +

-Relationships
+Relationships

-Notes

~0004759

pascal (reporter)

Fix committed to stable/neon branch.
+Notes

-Issue History
Date Modified Username Field Change
2011-07-25 13:56 monate New Issue
2011-07-25 13:56 monate Status new => assigned
2011-07-25 13:56 monate Assigned To => pascal
2011-07-25 13:56 monate File Added: main.i
2011-07-25 13:56 monate File Added: util.i
2011-07-25 13:56 monate File Added: protocol.i
2011-07-28 19:05 svn
2011-07-28 19:05 svn Status assigned => resolved
2011-07-28 19:05 svn Resolution open => fixed
2011-10-10 14:13 signoles Fixed in Version => Frama-C Nitrogen-20111001
2011-10-10 14:14 signoles Status resolved => closed
2013-12-19 01:12 pascal Source_changeset_attached => framac master c2393b90
2014-02-12 16:54 pascal Source_changeset_attached => framac stable/neon c2393b90
2014-02-12 16:59 pascal Note Added: 0004759
2014-02-12 16:59 pascal Status closed => resolved
2018-01-12 14:26 signoles Category Plug-in > value analysis => Plug-in > Eva
+Issue History