rendered paste body# 1 "zipscript-c.c"# 1 "/home/grandja/proj/project-zs-ng_r2339-v1.0.10/zipscript/src//"# 1 "<built-in>"# 1 "<command line>"# 1 "zipscript-c.c"# 1 "/usr/include/stdio.h" 1 3 4# 28 "/usr/include/stdio.h" 3 4# 1 "/usr/include/features.h" 1 3 4# 322 "/usr/include/features.h" 3 4# 1 "/usr/include/sys/cdefs.h" 1 3 4# 324 "/usr/include/sys/cdefs.h" 3 4# 1 "/usr/include/bits/wordsize.h" 1 3 4# 325 "/usr/include/sys/cdefs.h" 2 3 4# 323 "/usr/include/features.h" 2 3 4# 345 "/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-64.h" 1 3 4# 10 "/usr/include/gnu/stubs.h" 2 3 4# 346 "/usr/include/features.h" 2 3 4# 29 "/usr/include/stdio.h" 2 3 4# 1 "/usr/lib/gcc/x86_64-linux-gnu/4.1.3/include/stddef.h" 1 3 4# 214 "/usr/lib/gcc/x86_64-linux-gnu/4.1.3/include/stddef.h" 3 4typedef long 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# 1 "/usr/lib/gcc/x86_64-linux-gnu/4.1.3/include/stddef.h" 1 3 4# 32 "/usr/include/bits/types.h" 2 3 4typedef unsigned char __u_char;typedef unsigned short int __u_short;typedef unsigned int __u_int;typedef unsigned long int __u_long;typedef signed char __int8_t;typedef unsigned char __uint8_t;typedef signed short int __int16_t;typedef unsigned short int __uint16_t;typedef signed int __int32_t;typedef unsigned int __uint32_t;typedef signed long int __int64_t;typedef unsigned long int __uint64_t;typedef long int __quad_t;typedef unsigned long int __u_quad_t;# 134 "/usr/include/bits/types.h" 3 4# 1 "/usr/include/bits/typesizes.h" 1 3 4# 135 "/usr/include/bits/types.h" 2 3 4typedef unsigned long int __dev_t;typedef unsigned int __uid_t;typedef unsigned int __gid_t;typedef unsigned long int __ino_t;typedef unsigned long int __ino64_t;typedef unsigned int __mode_t;typedef unsigned long int __nlink_t;typedef long int __off_t;typedef long int __off64_t;typedef int __pid_t;typedef struct { int __val[2]; } __fsid_t;typedef long int __clock_t;typedef unsigned long int __rlim_t;typedef unsigned long int __rlim64_t;typedef unsigned int __id_t;typedef long int __time_t;typedef unsigned int __useconds_t;typedef long int __suseconds_t;typedef int __daddr_t;typedef long int __swblk_t;typedef int __key_t;typedef int __clockid_t;typedef void * __timer_t;typedef long int __blksize_t;typedef long int __blkcnt_t;typedef long int __blkcnt64_t;typedef unsigned long int __fsblkcnt_t;typedef unsigned long int __fsblkcnt64_t;typedef unsigned long int __fsfilcnt_t;typedef unsigned long int __fsfilcnt64_t;typedef long int __ssize_t;typedef __off64_t __loff_t;typedef __quad_t *__qaddr_t;typedef char *__caddr_t;typedef long int __intptr_t;typedef unsigned int __socklen_t;# 37 "/usr/include/stdio.h" 2 3 4# 45 "/usr/include/stdio.h" 3 4struct _IO_FILE;typedef struct _IO_FILE FILE;# 65 "/usr/include/stdio.h" 3 4typedef 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# 14 "/usr/include/_G_config.h" 3 4# 1 "/usr/lib/gcc/x86_64-linux-gnu/4.1.3/include/stddef.h" 1 3 4# 326 "/usr/lib/gcc/x86_64-linux-gnu/4.1.3/include/stddef.h" 3 4typedef int wchar_t;# 355 "/usr/lib/gcc/x86_64-linux-gnu/4.1.3/include/stddef.h" 3 4typedef unsigned int wint_t;# 15 "/usr/include/_G_config.h" 2 3 4# 24 "/usr/include/_G_config.h" 3 4# 1 "/usr/include/wchar.h" 1 3 4# 48 "/usr/include/wchar.h" 3 4# 1 "/usr/lib/gcc/x86_64-linux-gnu/4.1.3/include/stddef.h" 1 3 4# 49 "/usr/include/wchar.h" 2 3 4# 1 "/usr/include/bits/wchar.h" 1 3 4# 51 "/usr/include/wchar.h" 2 3 4# 76 "/usr/include/wchar.h" 3 4typedef struct{ int __count; union { wint_t __wch; char __wchb[4]; } __value;} __mbstate_t;# 25 "/usr/include/_G_config.h" 2 3 4typedef struct{ __off_t __pos; __mbstate_t __state;} _G_fpos_t;typedef struct{ __off64_t __pos; __mbstate_t __state;} _G_fpos64_t;# 44 "/usr/include/_G_config.h" 3 4# 1 "/usr/include/gconv.h" 1 3 4# 28 "/usr/include/gconv.h" 3 4# 1 "/usr/include/wchar.h" 1 3 4# 48 "/usr/include/wchar.h" 3 4# 1 "/usr/lib/gcc/x86_64-linux-gnu/4.1.3/include/stddef.h" 1 3 4# 49 "/usr/include/wchar.h" 2 3 4# 29 "/usr/include/gconv.h" 2 3 4# 1 "/usr/lib/gcc/x86_64-linux-gnu/4.1.3/include/stddef.h" 1 3 4# 32 "/usr/include/gconv.h" 2 3 4enum{ __GCONV_OK = 0, __GCONV_NOCONV, __GCONV_NODB, __GCONV_NOMEM, __GCONV_EMPTY_INPUT, __GCONV_FULL_OUTPUT, __GCONV_ILLEGAL_INPUT, __GCONV_INCOMPLETE_INPUT, __GCONV_ILLEGAL_DESCRIPTOR, __GCONV_INTERNAL_ERROR};enum{ __GCONV_IS_LAST = 0x0001, __GCONV_IGNORE_ERRORS = 0x0002};struct __gconv_step;struct __gconv_step_data;struct __gconv_loaded_object;struct __gconv_trans_data;typedef int (*__gconv_fct) (struct __gconv_step *, struct __gconv_step_data *, __const unsigned char **, __const unsigned char *, unsigned char **, size_t *, int, int);typedef wint_t (*__gconv_btowc_fct) (struct __gconv_step *, unsigned char);typedef int (*__gconv_init_fct) (struct __gconv_step *);typedef void (*__gconv_end_fct) (struct __gconv_step *);typedef int (*__gconv_trans_fct) (struct __gconv_step *, struct __gconv_step_data *, void *, __const unsigned char *, __const unsigned char **, __const unsigned char *, unsigned char **, size_t *);typedef int (*__gconv_trans_context_fct) (void *, __const unsigned char *, __const unsigned char *, unsigned char *, unsigned char *);typedef int (*__gconv_trans_query_fct) (__const char *, __const char ***, size_t *);typedef int (*__gconv_trans_init_fct) (void **, const char *);typedef void (*__gconv_trans_end_fct) (void *);struct __gconv_trans_data{ __gconv_trans_fct __trans_fct; __gconv_trans_context_fct __trans_context_fct; __gconv_trans_end_fct __trans_end_fct; void *__data; struct __gconv_trans_data *__next;};struct __gconv_step{ struct __gconv_loaded_object *__shlib_handle; __const char *__modname; int __counter; char *__from_name; char *__to_name; __gconv_fct __fct; __gconv_btowc_fct __btowc_fct; __gconv_init_fct __init_fct; __gconv_end_fct __end_fct; int __min_needed_from; int __max_needed_from; int __min_needed_to; int __max_needed_to; int __stateful; void *__data;};struct __gconv_step_data{ unsigned char *__outbuf; unsigned char *__outbufend; int __flags; int __invocation_counter; int __internal_use; __mbstate_t *__statep; __mbstate_t __state; struct __gconv_trans_data *__trans;};typedef struct __gconv_info{ size_t __nsteps; struct __gconv_step *__steps; __extension__ struct __gconv_step_data __data [];} *__gconv_t;# 45 "/usr/include/_G_config.h" 2 3 4typedef union{ struct __gconv_info __cd; struct { struct __gconv_info __cd; struct __gconv_step_data __data; } __combined;} _G_iconv_t;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/gcc/x86_64-linux-gnu/4.1.3/include/stdarg.h" 1 3 4# 43 "/usr/lib/gcc/x86_64-linux-gnu/4.1.3/include/stdarg.h" 3 4typedef __builtin_va_list __gnuc_va_list;# 54 "/usr/include/libio.h" 2 3 4# 167 "/usr/include/libio.h" 3 4struct _IO_jump_t; struct _IO_FILE;# 177 "/usr/include/libio.h" 3 4typedef void _IO_lock_t;struct _IO_marker { struct _IO_marker *_next; struct _IO_FILE *_sbuf; int _pos;# 200 "/usr/include/libio.h" 3 4};enum __codecvt_result{ __codecvt_ok, __codecvt_partial, __codecvt_error, __codecvt_noconv};# 268 "/usr/include/libio.h" 3 4struct _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;# 316 "/usr/include/libio.h" 3 4 __off64_t _offset;# 325 "/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_;# 361 "/usr/include/libio.h" 3 4typedef __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);# 413 "/usr/include/libio.h" 3 4extern int __underflow (_IO_FILE *);extern int __uflow (_IO_FILE *);extern int __overflow (_IO_FILE *, int);extern wint_t __wunderflow (_IO_FILE *);extern wint_t __wuflow (_IO_FILE *);extern wint_t __woverflow (_IO_FILE *, wint_t);# 451 "/usr/include/libio.h" 3 4extern 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__));# 481 "/usr/include/libio.h" 3 4extern 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# 89 "/usr/include/stdio.h" 3 4typedef _G_fpos64_t fpos_t;# 141 "/usr/include/stdio.h" 3 4# 1 "/usr/include/bits/stdio_lim.h" 1 3 4# 142 "/usr/include/stdio.h" 2 3 4extern 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__));# 175 "/usr/include/stdio.h" 3 4extern FILE *tmpfile (void) __asm__ ("" "tmpfile64") ;# 186 "/usr/include/stdio.h" 3 4extern char *tmpnam (char *__s) __attribute__ ((__nothrow__)) ;extern char *tmpnam_r (char *__s) __attribute__ ((__nothrow__)) ;# 204 "/usr/include/stdio.h" 3 4extern char *tempnam (__const char *__dir, __const char *__pfx) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ;extern int fclose (FILE *__stream);extern int fflush (FILE *__stream);# 229 "/usr/include/stdio.h" 3 4extern int fflush_unlocked (FILE *__stream);# 243 "/usr/include/stdio.h" 3 4# 260 "/usr/include/stdio.h" 3 4extern FILE *fopen (__const char *__restrict __filename, __const char *__restrict __modes) __asm__ ("" "fopen64") ;extern FILE *freopen (__const char *__restrict __filename, __const char *__restrict __modes, FILE *__restrict __stream) __asm__ ("" "freopen64") ;# 283 "/usr/include/stdio.h" 3 4extern FILE *fdopen (int __fd, __const char *__modes) __attribute__ ((__nothrow__)) ;# 304 "/usr/include/stdio.h" 3 4extern 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)));# 398 "/usr/include/stdio.h" 3 4extern int fscanf (FILE *__restrict __stream, __const char *__restrict __format, ...) ;extern int scanf (__const char *__restrict __format, ...) ;extern int sscanf (__const char *__restrict __s, __const char *__restrict __format, ...) __attribute__ ((__nothrow__));# 440 "/usr/include/stdio.h" 3 4extern int fgetc (FILE *__stream);extern int getc (FILE *__stream);extern int getchar (void);# 464 "/usr/include/stdio.h" 3 4extern int getc_unlocked (FILE *__stream);extern int getchar_unlocked (void);# 475 "/usr/include/stdio.h" 3 4extern int fgetc_unlocked (FILE *__stream);extern int fputc (int __c, FILE *__stream);extern int putc (int __c, FILE *__stream);extern int putchar (int __c);# 508 "/usr/include/stdio.h" 3 4extern 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) ;extern char *gets (char *__s) ;# 589 "/usr/include/stdio.h" 3 4extern int fputs (__const char *__restrict __s, FILE *__restrict __stream);extern int puts (__const char *__s);extern int ungetc (int __c, FILE *__stream);extern size_t fread (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) ;extern size_t fwrite (__const void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __s) ;# 642 "/usr/include/stdio.h" 3 4extern size_t fread_unlocked (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) ;extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) ;extern int fseek (FILE *__stream, long int __off, int __whence);extern long int ftell (FILE *__stream) ;extern void rewind (FILE *__stream);# 686 "/usr/include/stdio.h" 3 4extern int fseeko (FILE *__stream, __off64_t __off, int __whence) __asm__ ("" "fseeko64");extern __off64_t ftello (FILE *__stream) __asm__ ("" "ftello64");# 711 "/usr/include/stdio.h" 3 4extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos) __asm__ ("" "fgetpos64");extern int fsetpos (FILE *__stream, __const fpos_t *__pos) __asm__ ("" "fsetpos64");# 729 "/usr/include/stdio.h" 3 4extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__));extern int feof (FILE *__stream) __attribute__ ((__nothrow__)) ;extern int ferror (FILE *__stream) __attribute__ ((__nothrow__)) ;extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__));extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) ;extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) ;extern void perror (__const char *__s);# 1 "/usr/include/bits/sys_errlist.h" 1 3 4# 27 "/usr/include/bits/sys_errlist.h" 3 4extern int sys_nerr;extern __const char *__const sys_errlist[];# 759 "/usr/include/stdio.h" 2 3 4extern int fileno (FILE *__stream) __attribute__ ((__nothrow__)) ;extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) ;# 778 "/usr/include/stdio.h" 3 4extern FILE *popen (__const char *__command, __const char *__modes) ;extern int pclose (FILE *__stream);extern char *ctermid (char *__s) __attribute__ ((__nothrow__));# 818 "/usr/include/stdio.h" 3 4extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__));extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__)) ;extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__));# 839 "/usr/include/stdio.h" 3 4# 1 "/usr/include/bits/stdio.h" 1 3 4# 33 "/usr/include/bits/stdio.h" 3 4extern __inline intvprintf (__const char *__restrict __fmt, __gnuc_va_list __arg){ return vfprintf (stdout, __fmt, __arg);}extern __inline intgetchar (void){ return _IO_getc (stdin);}extern __inline intfgetc_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 intgetc_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 intgetchar_unlocked (void){ return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++);}extern __inline intputchar (int __c){ return _IO_putc (__c, stdout);}extern __inline intfputc_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 intputc_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 intputchar_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)));}# 121 "/usr/include/bits/stdio.h" 3 4extern __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);}# 840 "/usr/include/stdio.h" 2 3 4# 848 "/usr/include/stdio.h" 3 4# 2 "zipscript-c.c" 2# 1 "/usr/include/string.h" 1 3 4# 28 "/usr/include/string.h" 3 4# 1 "/usr/lib/gcc/x86_64-linux-gnu/4.1.3/include/stddef.h" 1 3 4# 34 "/usr/include/string.h" 2 3 4extern 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)));extern void *memchr (__const void *__s, int __c, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));# 82 "/usr/include/string.h" 3 4extern 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)));# 130 "/usr/include/string.h" 3 4extern char *strdup (__const char *__s) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));# 165 "/usr/include/string.h" 3 4extern char *strchr (__const char *__s, int __c) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));extern char *strrchr (__const char *__s, int __c) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));# 181 "/usr/include/string.h" 3 4extern 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)));extern char *strpbrk (__const char *__s, __const char *__accept) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));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)));# 240 "/usr/include/string.h" 3 4extern size_t strlen (__const char *__s) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));# 254 "/usr/include/string.h" 3 4extern char *strerror (int __errnum) __attribute__ ((__nothrow__));# 270 "/usr/include/string.h" 3 4extern int strerror_r (int __errnum, char *__buf, size_t __buflen) __asm__ ("" "__xpg_strerror_r") __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));# 294 "/usr/include/string.h" 3 4extern 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)));extern char *index (__const char *__s, int __c) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));extern char *rindex (__const char *__s, int __c) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));extern int ffs (int __i) __attribute__ ((__nothrow__)) __attribute__ ((__const__));# 331 "/usr/include/string.h" 3 4extern 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)));# 354 "/usr/include/string.h" 3 4extern char *strsep (char **__restrict __stringp, __const char *__restrict __delim) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));# 420 "/usr/include/string.h" 3 4# 1 "/usr/include/bits/string.h" 1 3 4# 421 "/usr/include/string.h" 2 3 4# 1 "/usr/include/bits/string2.h" 1 3 4# 52 "/usr/include/bits/string2.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# 53 "/usr/include/bits/string2.h" 2 3 4# 394 "/usr/include/bits/string2.h" 3 4extern void *__rawmemchr (const void *__s, int __c);# 969 "/usr/include/bits/string2.h" 3 4extern __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 4extern __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 4extern __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;}# 1173 "/usr/include/bits/string2.h" 3 4extern __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;}# 1205 "/usr/include/bits/string2.h" 3 4extern char *__strsep_g (char **__stringp, __const char *__delim);# 1223 "/usr/include/bits/string2.h" 3 4extern __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;}# 1299 "/usr/include/bits/string2.h" 3 4# 1 "/usr/include/stdlib.h" 1 3 4# 33 "/usr/include/stdlib.h" 3 4# 1 "/usr/lib/gcc/x86_64-linux-gnu/4.1.3/include/stddef.h" 1 3 4# 34 "/usr/include/stdlib.h" 2 3 4# 587 "/usr/include/stdlib.h" 3 4extern void *malloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ;extern void *calloc (size_t __nmemb, size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ;# 976 "/usr/include/stdlib.h" 3 4# 1300 "/usr/include/bits/string2.h" 2 3 4extern char *__strdup (__const char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__));# 1323 "/usr/include/bits/string2.h" 3 4extern char *__strndup (__const char *__string, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__));# 424 "/usr/include/string.h" 2 3 4# 432 "/usr/include/string.h" 3 4# 3 "zipscript-c.c" 2# 1 "/usr/include/stdlib.h" 1 3 4# 33 "/usr/include/stdlib.h" 3 4# 1 "/usr/lib/gcc/x86_64-linux-gnu/4.1.3/include/stddef.h" 1 3 4# 34 "/usr/include/stdlib.h" 2 3 4# 96 "/usr/include/stdlib.h" 3 4typedef struct { int quot; int rem; } div_t;typedef struct { long int quot; long int rem; } ldiv_t;# 140 "/usr/include/stdlib.h" 3 4extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__)) ;extern double atof (__const char *__nptr) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;extern int atoi (__const char *__nptr) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;extern long int atol (__const char *__nptr) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;__extension__ extern long long int atoll (__const char *__nptr) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;extern double strtod (__const char *__restrict __nptr, char **__restrict __endptr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;# 182 "/usr/include/stdlib.h" 3 4extern long int strtol (__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;extern unsigned long int strtoul (__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;__extension__extern long long int strtoq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;__extension__extern unsigned long long int strtouq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;__extension__extern long long int strtoll (__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;__extension__extern unsigned long long int strtoull (__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;# 279 "/usr/include/stdlib.h" 3 4extern double __strtod_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __group) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;extern float __strtof_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __group) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;extern long double __strtold_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __group) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;extern long int __strtol_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;extern unsigned long int __strtoul_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;__extension__extern long long int __strtoll_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;__extension__extern unsigned long long int __strtoull_internal (__const char * __restrict __nptr, char **__restrict __endptr, int __base, int __group) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;extern __inline double__attribute__ ((__nothrow__)) strtod (__const char *__restrict __nptr, char **__restrict __endptr){ return __strtod_internal (__nptr, __endptr, 0);}extern __inline long int__attribute__ ((__nothrow__)) strtol (__const char *__restrict __nptr, char **__restrict __endptr, int __base){ return __strtol_internal (__nptr, __endptr, __base, 0);}extern __inline unsigned long int__attribute__ ((__nothrow__)) strtoul (__const char *__restrict __nptr, char **__restrict __endptr, int __base){ return __strtoul_internal (__nptr, __endptr, __base, 0);}# 364 "/usr/include/stdlib.h" 3 4__extension__ extern __inline long long int__attribute__ ((__nothrow__)) strtoq (__const char *__restrict __nptr, char **__restrict __endptr, int __base){ return __strtoll_internal (__nptr, __endptr, __base, 0);}__extension__ extern __inline unsigned long long int__attribute__ ((__nothrow__)) strtouq (__const char *__restrict __nptr, char **__restrict __endptr, int __base){ return __strtoull_internal (__nptr, __endptr, __base, 0);}__extension__ extern __inline long long int__attribute__ ((__nothrow__)) strtoll (__const char *__restrict __nptr, char **__restrict __endptr, int __base){ return __strtoll_internal (__nptr, __endptr, __base, 0);}__extension__ extern __inline unsigned long long int__attribute__ ((__nothrow__)) strtoull (__const char * __restrict __nptr, char **__restrict __endptr, int __base){ return __strtoull_internal (__nptr, __endptr, __base, 0);}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);}# 429 "/usr/include/stdlib.h" 3 4extern char *l64a (long int __n) __attribute__ ((__nothrow__)) ;extern long int a64l (__const char *__s) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;# 1 "/usr/include/sys/types.h" 1 3 4# 29 "/usr/include/sys/types.h" 3 4typedef __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 __ino64_t ino_t;# 62 "/usr/include/sys/types.h" 3 4typedef __dev_t dev_t;typedef __gid_t gid_t;typedef __mode_t mode_t;typedef __nlink_t nlink_t;typedef __uid_t uid_t;typedef __off64_t off_t;# 100 "/usr/include/sys/types.h" 3 4typedef __pid_t pid_t;typedef __id_t id_t;typedef __ssize_t ssize_t;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# 75 "/usr/include/time.h" 3 4typedef __time_t time_t;# 93 "/usr/include/time.h" 3 4typedef __clockid_t clockid_t;# 105 "/usr/include/time.h" 3 4typedef __timer_t timer_t;# 134 "/usr/include/sys/types.h" 2 3 4# 147 "/usr/include/sys/types.h" 3 4# 1 "/usr/lib/gcc/x86_64-linux-gnu/4.1.3/include/stddef.h" 1 3 4# 148 "/usr/include/sys/types.h" 2 3 4typedef unsigned long int ulong;typedef unsigned short int ushort;typedef unsigned int uint;# 195 "/usr/include/sys/types.h" 3 4typedef 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# 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 4typedef 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 4typedef __sigset_t sigset_t;# 1 "/usr/include/time.h" 1 3 4# 121 "/usr/include/time.h" 3 4struct 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# 69 "/usr/include/bits/time.h" 3 4struct timeval { __time_t tv_sec; __suseconds_t tv_usec; };# 47 "/usr/include/sys/select.h" 2 3 4typedef __suseconds_t suseconds_t;typedef long int __fd_mask;# 67 "/usr/include/sys/select.h" 3 4typedef struct { __fd_mask __fds_bits[1024 / (8 * 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 4extern 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 4extern 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 __inline unsigned int gnu_dev_major (unsigned long long int __dev) __attribute__ ((__nothrow__));__extension__extern __inline unsigned int gnu_dev_minor (unsigned long long int __dev) __attribute__ ((__nothrow__));__extension__extern __inline 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# 248 "/usr/include/sys/types.h" 3 4typedef __blkcnt64_t blkcnt_t;typedef __fsblkcnt64_t fsblkcnt_t;typedef __fsfilcnt64_t fsfilcnt_t;# 270 "/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 4typedef unsigned long int pthread_t;typedef union{ char __size[56]; long int __align;} pthread_attr_t;typedef struct __pthread_internal_list{ struct __pthread_internal_list *__prev; struct __pthread_internal_list *__next;} __pthread_list_t;# 76 "/usr/include/bits/pthreadtypes.h" 3 4typedef union{ struct __pthread_mutex_s { int __lock; unsigned int __count; int __owner; unsigned int __nusers; int __kind; int __spins; __pthread_list_t __list;# 101 "/usr/include/bits/pthreadtypes.h" 3 4 } __data; char __size[40]; 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{ 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; int __writer; int __pad1; unsigned long int __pad2; unsigned long int __pad3; unsigned int __flags; } __data;# 184 "/usr/include/bits/pthreadtypes.h" 3 4 char __size[56]; long int __align;} pthread_rwlock_t;typedef union{ char __size[8]; long int __align;} pthread_rwlockattr_t;typedef volatile int pthread_spinlock_t;typedef union{ char __size[32]; long int __align;} pthread_barrier_t;typedef union{ char __size[4]; int __align;} pthread_barrierattr_t;# 271 "/usr/include/sys/types.h" 2 3 4# 439 "/usr/include/stdlib.h" 2 3 4extern 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)));# 597 "/usr/include/stdlib.h" 3 4extern void *realloc (void *__ptr, size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __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/gcc/x86_64-linux-gnu/4.1.3/include/stddef.h" 1 3 4# 26 "/usr/include/alloca.h" 2 3 4extern void *alloca (size_t __size) __attribute__ ((__nothrow__));# 613 "/usr/include/stdlib.h" 2 3 4extern void *valloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ;extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;extern void abort (void) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));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__));# 658 "/usr/include/stdlib.h" 3 4extern char *getenv (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;extern char *__secure_getenv (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;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__));extern int clearenv (void) __attribute__ ((__nothrow__));# 698 "/usr/include/stdlib.h" 3 4extern char *mktemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;# 712 "/usr/include/stdlib.h" 3 4extern int mkstemp (char *__template) __asm__ ("" "mkstemp64") __attribute__ ((__nonnull__ (1))) ;# 729 "/usr/include/stdlib.h" 3 4extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;extern int system (__const char *__command) ;# 755 "/usr/include/stdlib.h" 3 4extern char *realpath (__const char *__restrict __name, char *__restrict __resolved) __attribute__ ((__nothrow__)) ;typedef int (*__compar_fn_t) (__const void *, __const void *);extern void *bsearch (__const void *__key, __const void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 2, 5))) ;extern void qsort (void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));extern int abs (int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;extern long int labs (long int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;extern div_t div (int __numer, int __denom) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;extern ldiv_t ldiv (long int __numer, long int __denom) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ;# 820 "/usr/include/stdlib.h" 3 4extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ;extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ;extern char *gcvt (double __value, int __ndigit, char *__buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) ;extern char *qecvt (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ;extern char *qfcvt (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ;extern char *qgcvt (long double __value, int __ndigit, char *__buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) ;extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) __attribute__ ((__nothrow__)) __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__)) ;extern int mbtowc (wchar_t *__restrict __pwc, __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__)) ;extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__)) ;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))) ;# 925 "/usr/include/stdlib.h" 3 4extern int posix_openpt (int __oflag) ;# 960 "/usr/include/stdlib.h" 3 4extern int getloadavg (double __loadavg[], int __nelem) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));# 976 "/usr/include/stdlib.h" 3 4# 4 "zipscript-c.c" 2# 1 "/usr/include/time.h" 1 3 4# 31 "/usr/include/time.h" 3 4# 1 "/usr/lib/gcc/x86_64-linux-gnu/4.1.3/include/stddef.h" 1 3 4# 40 "/usr/include/time.h" 2 3 4# 1 "/usr/include/bits/time.h" 1 3 4# 44 "/usr/include/time.h" 2 3 4# 59 "/usr/include/time.h" 3 4typedef __clock_t clock_t;# 132 "/usr/include/time.h" 3 4struct tm{ int tm_sec; int tm_min; int tm_hour; int tm_mday; int tm_mon; int tm_year; int tm_wday; int tm_yday; int tm_isdst; long int tm_gmtoff; __const char *tm_zone;};struct itimerspec { struct timespec it_interval; struct timespec it_value; };struct sigevent;# 181 "/usr/include/time.h" 3 4extern clock_t clock (void) __attribute__ ((__nothrow__));extern time_t time (time_t *__timer) __attribute__ ((__nothrow__));extern double difftime (time_t __time1, time_t __time0) __attribute__ ((__nothrow__)) __attribute__ ((__const__));extern time_t mktime (struct tm *__tp) __attribute__ ((__nothrow__));extern size_t strftime (char *__restrict __s, size_t __maxsize, __const char *__restrict __format, __const struct tm *__restrict __tp) __attribute__ ((__nothrow__));# 229 "/usr/include/time.h" 3 4extern struct tm *gmtime (__const time_t *__timer) __attribute__ ((__nothrow__));extern struct tm *localtime (__const time_t *__timer) __attribute__ ((__nothrow__));extern struct tm *gmtime_r (__const time_t *__restrict __timer, struct tm *__restrict __tp) __attribute__ ((__nothrow__));extern struct tm *localtime_r (__const time_t *__restrict __timer, struct tm *__restrict __tp) __attribute__ ((__nothrow__));extern char *asctime (__const struct tm *__tp) __attribute__ ((__nothrow__));extern char *ctime (__const time_t *__timer) __attribute__ ((__nothrow__));extern char *asctime_r (__const struct tm *__restrict __tp, char *__restrict __buf) __attribute__ ((__nothrow__));extern char *ctime_r (__const time_t *__restrict __timer, char *__restrict __buf) __attribute__ ((__nothrow__));extern char *__tzname[2];extern int __daylight;extern long int __timezone;extern char *tzname[2];extern void tzset (void) __attribute__ ((__nothrow__));extern int daylight;extern long int timezone;extern int stime (__const time_t *__when) __attribute__ ((__nothrow__));# 312 "/usr/include/time.h" 3 4extern time_t timegm (struct tm *__tp) __attribute__ ((__nothrow__));extern time_t timelocal (struct tm *__tp) __attribute__ ((__nothrow__));extern int dysize (int __year) __attribute__ ((__nothrow__)) __attribute__ ((__const__));# 327 "/usr/include/time.h" 3 4extern int nanosleep (__const struct timespec *__requested_time, struct timespec *__remaining);extern int clock_getres (clockid_t __clock_id, struct timespec *__res) __attribute__ ((__nothrow__));extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) __attribute__ ((__nothrow__));extern int clock_settime (clockid_t __clock_id, __const struct timespec *__tp) __attribute__ ((__nothrow__));extern int clock_nanosleep (clockid_t __clock_id, int __flags, __const struct timespec *__req, struct timespec *__rem);extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) __attribute__ ((__nothrow__));extern int timer_create (clockid_t __clock_id, struct sigevent *__restrict __evp, timer_t *__restrict __timerid) __attribute__ ((__nothrow__));extern int timer_delete (timer_t __timerid) __attribute__ ((__nothrow__));extern int timer_settime (timer_t __timerid, int __flags, __const struct itimerspec *__restrict __value, struct itimerspec *__restrict __ovalue) __attribute__ ((__nothrow__));extern int timer_gettime (timer_t __timerid, struct itimerspec *__value) __attribute__ ((__nothrow__));extern int timer_getoverrun (timer_t __timerid) __attribute__ ((__nothrow__));# 416 "/usr/include/time.h" 3 4# 5 "zipscript-c.c" 2# 1 "/usr/include/fcntl.h" 1 3 4# 30 "/usr/include/fcntl.h" 3 4# 1 "/usr/include/bits/fcntl.h" 1 3 4# 25 "/usr/include/bits/fcntl.h" 3 4# 1 "/usr/include/bits/wordsize.h" 1 3 4# 26 "/usr/include/bits/fcntl.h" 2 3 4# 155 "/usr/include/bits/fcntl.h" 3 4struct flock { short int l_type; short int l_whence; __off64_t l_start; __off64_t l_len; __pid_t l_pid; };# 222 "/usr/include/bits/fcntl.h" 3 4# 251 "/usr/include/bits/fcntl.h" 3 4# 35 "/usr/include/fcntl.h" 2 3 4# 76 "/usr/include/fcntl.h" 3 4extern int fcntl (int __fd, int __cmd, ...);# 88 "/usr/include/fcntl.h" 3 4extern int open (__const char *__file, int __oflag, ...) __asm__ ("" "open64") __attribute__ ((__nonnull__ (1)));# 133 "/usr/include/fcntl.h" 3 4extern int creat (__const char *__file, __mode_t __mode) __asm__ ("" "creat64") __attribute__ ((__nonnull__ (1)));# 162 "/usr/include/fcntl.h" 3 4extern int lockf (int __fd, int __cmd, __off64_t __len) __asm__ ("" "lockf64");# 180 "/usr/include/fcntl.h" 3 4extern int posix_fadvise (int __fd, __off64_t __offset, __off64_t __len, int __advise) __asm__ ("" "posix_fadvise64") __attribute__ ((__nothrow__));# 201 "/usr/include/fcntl.h" 3 4extern int posix_fallocate (int __fd, __off64_t __offset, __off64_t __len) __asm__ ("" "posix_fallocate64");# 213 "/usr/include/fcntl.h" 3 4# 6 "zipscript-c.c" 2# 1 "/usr/include/fnmatch.h" 1 3 4# 65 "/usr/include/fnmatch.h" 3 4extern int fnmatch (const char *__pattern, const char *__name, int __flags);# 7 "zipscript-c.c" 2# 1 "/usr/include/sys/time.h" 1 3 4# 29 "/usr/include/sys/time.h" 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 4struct timezone { int tz_minuteswest; int tz_dsttime; };typedef struct timezone *__restrict __timezone_ptr_t;# 73 "/usr/include/sys/time.h" 3 4extern 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# 8 "zipscript-c.c" 2# 1 "/usr/include/sys/ipc.h" 1 3 4# 29 "/usr/include/sys/ipc.h" 3 4# 1 "/usr/include/bits/ipctypes.h" 1 3 4# 33 "/usr/include/bits/ipctypes.h" 3 4typedef int __ipc_pid_t;# 30 "/usr/include/sys/ipc.h" 2 3 4# 1 "/usr/include/bits/ipc.h" 1 3 4# 43 "/usr/include/bits/ipc.h" 3 4struct ipc_perm { __key_t __key; __uid_t uid; __gid_t gid; __uid_t cuid; __gid_t cgid; unsigned short int mode; unsigned short int __pad1; unsigned short int __seq; unsigned short int __pad2; unsigned long int __unused1; unsigned long int __unused2; };# 31 "/usr/include/sys/ipc.h" 2 3 4# 52 "/usr/include/sys/ipc.h" 3 4extern key_t ftok (const char *__pathname, int __proj_id) __attribute__ ((__nothrow__));# 10 "zipscript-c.c" 2# 1 "/usr/include/sys/shm.h" 1 3 4# 25 "/usr/include/sys/shm.h" 3 4# 1 "/usr/lib/gcc/x86_64-linux-gnu/4.1.3/include/stddef.h" 1 3 4# 26 "/usr/include/sys/shm.h" 2 3 4# 1 "/usr/include/bits/shm.h" 1 3 4# 39 "/usr/include/bits/shm.h" 3 4extern int __getpagesize (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__));typedef unsigned long int shmatt_t;struct shmid_ds { struct ipc_perm shm_perm; size_t shm_segsz; __time_t shm_atime; __time_t shm_dtime; __time_t shm_ctime; __pid_t shm_cpid; __pid_t shm_lpid; shmatt_t shm_nattch; unsigned long int __unused4; unsigned long int __unused5; };# 85 "/usr/include/bits/shm.h" 3 4struct shminfo { unsigned long int shmmax; unsigned long int shmmin; unsigned long int shmmni; unsigned long int shmseg; unsigned long int shmall; unsigned long int __unused1; unsigned long int __unused2; unsigned long int __unused3; unsigned long int __unused4; };struct shm_info { int used_ids; unsigned long int shm_tot; unsigned long int shm_rss; unsigned long int shm_swp; unsigned long int swap_attempts; unsigned long int swap_successes; };# 32 "/usr/include/sys/shm.h" 2 3 4# 45 "/usr/include/sys/shm.h" 3 4extern int shmctl (int __shmid, int __cmd, struct shmid_ds *__buf) __attribute__ ((__nothrow__));extern int shmget (key_t __key, size_t __size, int __shmflg) __attribute__ ((__nothrow__));extern void *shmat (int __shmid, const void *__shmaddr, int __shmflg) __attribute__ ((__nothrow__));extern int shmdt (const void *__shmaddr) __attribute__ ((__nothrow__));# 11 "zipscript-c.c" 2# 1 "/usr/include/sys/stat.h" 1 3 4# 105 "/usr/include/sys/stat.h" 3 4# 1 "/usr/include/bits/stat.h" 1 3 4# 43 "/usr/include/bits/stat.h" 3 4struct stat { __dev_t st_dev; __ino_t st_ino; __nlink_t st_nlink; __mode_t st_mode; __uid_t st_uid; __gid_t st_gid; int pad0; __dev_t st_rdev; __off_t st_size; __blksize_t st_blksize; __blkcnt_t st_blocks;# 88 "/usr/include/bits/stat.h" 3 4 struct timespec st_atim; struct timespec st_mtim; struct timespec st_ctim;# 103 "/usr/include/bits/stat.h" 3 4 long int __unused[3];# 112 "/usr/include/bits/stat.h" 3 4 };# 108 "/usr/include/sys/stat.h" 2 3 4# 217 "/usr/include/sys/stat.h" 3 4extern int stat (const char *__restrict __file, struct stat *__restrict __buf) __asm__ ("" "stat64") __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));extern int fstat (int __fd, struct stat *__buf) __asm__ ("" "fstat64") __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));# 265 "/usr/include/sys/stat.h" 3 4extern int lstat (const char *__restrict __file, struct stat *__restrict __buf) __asm__ ("" "lstat64") __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));# 282 "/usr/include/sys/stat.h" 3 4extern 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__));# 309 "/usr/include/sys/stat.h" 3 4extern __mode_t umask (__mode_t __mask) __attribute__ ((__nothrow__));# 318 "/usr/include/sys/stat.h" 3 4extern int mkdir (const char *__path, __mode_t __mode) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));# 333 "/usr/include/sys/stat.h" 3 4extern int mknod (const char *__path, __mode_t __mode, __dev_t __dev) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));# 347 "/usr/include/sys/stat.h" 3 4extern int mkfifo (const char *__path, __mode_t __mode) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));# 408 "/usr/include/sys/stat.h" 3 4extern int __fxstat (int __ver, int __fildes, struct stat *__stat_buf) __asm__ ("" "__fxstat64") __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3)));extern int __xstat (int __ver, const char *__filename, struct stat *__stat_buf) __asm__ ("" "__xstat64") __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));extern int __lxstat (int __ver, const char *__filename, struct stat *__stat_buf) __asm__ ("" "__lxstat64") __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));extern int __fxstatat (int __ver, int __fildes, const char *__filename, struct stat *__stat_buf, int __flag) __asm__ ("" "__fxstatat64") __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4)));# 440 "/usr/include/sys/stat.h" 3 4extern 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 (1, __path, __statbuf);}extern __inline int__attribute__ ((__nothrow__)) lstat (const char *__path, struct stat *__statbuf){ return __lxstat (1, __path, __statbuf);}extern __inline int__attribute__ ((__nothrow__)) fstat (int __fd, struct stat *__statbuf){ return __fxstat (1, __fd, __statbuf);}# 480 "/usr/include/sys/stat.h" 3 4extern __inline int__attribute__ ((__nothrow__)) mknod (const char *__path, __mode_t __mode, __dev_t __dev){ return __xmknod (0, __path, __mode, &__dev);}# 532 "/usr/include/sys/stat.h" 3 4# 12 "zipscript-c.c" 2# 1 "../../config.h" 1# 15 "zipscript-c.c" 2# 1 "../../lib/strl/strl.h" 1size_t strlcpy(char *, const char *, size_t);# 19 "zipscript-c.c" 2# 1 "../include/helpfunctions.h" 1extern char *find_last_of(char *, const char *);extern char *find_first_of(char *, const char *);extern void strip_whitespaces(char *);extern char *prestrip_whitespaces(char *);extern void xlock(struct flock *, int, short);extern void xunlock(struct flock *, int);# 22 "zipscript-c.c" 2# 1 "../include/zsfunctions.h" 1# 1 "/usr/include/ctype.h" 1 3 4# 30 "/usr/include/ctype.h" 3 4# 48 "/usr/include/ctype.h" 3 4enum{ _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 4extern const unsigned short int **__ctype_b_loc (void) __attribute__ ((const));extern const __int32_t **__ctype_tolower_loc (void) __attribute__ ((const));extern const __int32_t **__ctype_toupper_loc (void) __attribute__ ((const));# 96 "/usr/include/ctype.h" 3 4extern 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__));# 142 "/usr/include/ctype.h" 3 4extern 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 4extern __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;}# 323 "/usr/include/ctype.h" 3 4# 6 "../include/zsfunctions.h" 2# 1 "/usr/include/regex.h" 1 3 4# 36 "/usr/include/regex.h" 3 4typedef long int s_reg_t;typedef unsigned long int active_reg_t;typedef unsigned long int reg_syntax_t;# 181 "/usr/include/regex.h" 3 4extern reg_syntax_t re_syntax_options;# 303 "/usr/include/regex.h" 3 4typedef enum{ REG_NOERROR = 0, REG_NOMATCH, REG_BADPAT, REG_ECOLLATE, REG_ECTYPE, REG_EESCAPE, REG_ESUBREG, REG_EBRACK, REG_EPAREN, REG_EBRACE, REG_BADBR, REG_ERANGE, REG_ESPACE, REG_BADRPT, REG_EEND, REG_ESIZE, REG_ERPAREN} reg_errcode_t;# 343 "/usr/include/regex.h" 3 4struct re_pattern_buffer{ unsigned char *buffer; unsigned long int allocated; unsigned long int used; reg_syntax_t syntax; char *fastmap; unsigned char * translate; size_t re_nsub; unsigned can_be_null : 1;# 386 "/usr/include/regex.h" 3 4 unsigned regs_allocated : 2; unsigned fastmap_accurate : 1; unsigned no_sub : 1; unsigned not_bol : 1; unsigned not_eol : 1; unsigned newline_anchor : 1;};typedef struct re_pattern_buffer regex_t;typedef int regoff_t;struct re_registers{ unsigned num_regs; regoff_t *start; regoff_t *end;};# 434 "/usr/include/regex.h" 3 4typedef struct{ regoff_t rm_so; regoff_t rm_eo;} regmatch_t;extern reg_syntax_t re_set_syntax (reg_syntax_t __syntax);extern const char *re_compile_pattern (const char *__pattern, size_t __length, struct re_pattern_buffer *__buffer);extern int re_compile_fastmap (struct re_pattern_buffer *__buffer);extern int re_search (struct re_pattern_buffer *__buffer, const char *__string, int __length, int __start, int __range, struct re_registers *__regs);extern int re_search_2 (struct re_pattern_buffer *__buffer, const char *__string1, int __length1, const char *__string2, int __length2, int __start, int __range, struct re_registers *__regs, int __stop);extern int re_match (struct re_pattern_buffer *__buffer, const char *__string, int __length, int __start, struct re_registers *__regs);extern int re_match_2 (struct re_pattern_buffer *__buffer, const char *__string1, int __length1, const char *__string2, int __length2, int __start, struct re_registers *__regs, int __stop);# 502 "/usr/include/regex.h" 3 4extern void re_set_registers (struct re_pattern_buffer *__buffer, struct re_registers *__regs, unsigned int __num_regs, regoff_t *__starts, regoff_t *__ends);# 537 "/usr/include/regex.h" 3 4extern int regcomp (regex_t *__restrict __preg, const char *__restrict __pattern, int __cflags);extern int regexec (const regex_t *__restrict __preg, const char *__restrict __string, size_t __nmatch, regmatch_t __pmatch[__restrict], int __eflags);extern size_t regerror (int __errcode, const regex_t *__restrict __preg, char *__restrict __errbuf, size_t __errbuf_size);extern void regfree (regex_t *__preg);# 12 "../include/zsfunctions.h" 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-x86_64/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# 5 "/usr/include/asm-x86_64/errno.h" 2 3 4# 6 "/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# 43 "/usr/include/bits/errno.h" 3 4extern int *__errno_location (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__));# 37 "/usr/include/errno.h" 2 3 4# 59 "/usr/include/errno.h" 3 4# 17 "../include/zsfunctions.h" 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 4extern 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 4extern __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 4typedef __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# 75 "/usr/include/signal.h" 3 4typedef void (*__sighandler_t) (int);extern __sighandler_t __sysv_signal (int __sig, __sighandler_t __handler) __attribute__ ((__nothrow__));# 90 "/usr/include/signal.h" 3 4extern __sighandler_t signal (int __sig, __sighandler_t __handler) __attribute__ ((__nothrow__));# 104 "/usr/include/signal.h" 3 4# 117 "/usr/include/signal.h" 3 4extern 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);# 153 "/usr/include/signal.h" 3 4extern int __sigpause (int __sig_or_mask, int __is_sig);# 181 "/usr/include/signal.h" 3 4extern 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__));# 201 "/usr/include/signal.h" 3 4typedef __sighandler_t sig_t;# 212 "/usr/include/signal.h" 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 4typedef union sigval { int sival_int; void *sival_ptr; } sigval_t;# 51 "/usr/include/bits/siginfo.h" 3 4typedef struct siginfo { int si_signo; int si_errno; int si_code; union { int _pad[((128 / sizeof (int)) - 4)]; struct { __pid_t si_pid; __uid_t si_uid; } _kill; struct { int si_tid; int si_overrun; sigval_t si_sigval; } _timer; struct { __pid_t si_pid; __uid_t si_uid; sigval_t si_sigval; } _rt; struct { __pid_t si_pid; __uid_t si_uid; int si_status; __clock_t si_utime; __clock_t si_stime; } _sigchld; struct { void *si_addr; } _sigfault; struct { long int si_band; int si_fd; } _sigpoll; } _sifields; } siginfo_t;# 129 "/usr/include/bits/siginfo.h" 3 4enum{ 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 4typedef struct sigevent { sigval_t sigev_value; int sigev_signo; int sigev_notify; union { int _pad[((64 / sizeof (int)) - 4)]; __pid_t _tid; struct { void (*_function) (sigval_t); void *_attribute; } _sigev_thread; } _sigev_un; } sigevent_t;enum{ SIGEV_SIGNAL = 0, SIGEV_NONE, SIGEV_THREAD, SIGEV_THREAD_ID = 4};# 213 "/usr/include/signal.h" 2 3 4extern 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)));# 246 "/usr/include/signal.h" 3 4# 1 "/usr/include/bits/sigaction.h" 1 3 4# 25 "/usr/include/bits/sigaction.h" 3 4struct 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); };# 247 "/usr/include/signal.h" 2 3 4extern 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__));# 304 "/usr/include/signal.h" 3 4extern 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; };# 328 "/usr/include/signal.h" 3 4extern 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 4struct _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];};# 109 "/usr/include/bits/sigcontext.h" 3 4struct _fpstate{ __uint16_t cwd; __uint16_t swd; __uint16_t ftw; __uint16_t fop; __uint64_t rip; __uint64_t rdp; __uint32_t mxcsr; __uint32_t mxcr_mask; struct _fpxreg _st[8]; struct _xmmreg _xmm[16]; __uint32_t padding[24];};struct sigcontext{ unsigned long r8; unsigned long r9; unsigned long r10; unsigned long r11; unsigned long r12; unsigned long r13; unsigned long r14; unsigned long r15; unsigned long rdi; unsigned long rsi; unsigned long rbp; unsigned long rbx; unsigned long rdx; unsigned long rax; unsigned long rcx; unsigned long rsp; unsigned long rip; unsigned long eflags; unsigned short cs; unsigned short gs; unsigned short fs; unsigned short __pad0; unsigned long err; unsigned long trapno; unsigned long oldmask; unsigned long cr2; struct _fpstate * fpstate; unsigned long __reserved1 [8];};# 334 "/usr/include/signal.h" 2 3 4extern int sigreturn (struct sigcontext *__scp) __attribute__ ((__nothrow__));# 346 "/usr/include/signal.h" 3 4extern int siginterrupt (int __sig, int __interrupt) __attribute__ ((__nothrow__));# 1 "/usr/include/bits/sigstack.h" 1 3 4# 26 "/usr/include/bits/sigstack.h" 3 4struct sigstack { void *ss_sp; int ss_onstack; };enum{ SS_ONSTACK = 1, SS_DISABLE};# 50 "/usr/include/bits/sigstack.h" 3 4typedef struct sigaltstack { void *ss_sp; int ss_flags; size_t ss_size; } stack_t;# 349 "/usr/include/signal.h" 2 3 4# 357 "/usr/include/signal.h" 3 4extern 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__));# 387 "/usr/include/signal.h" 3 4# 1 "/usr/include/bits/sigthread.h" 1 3 4# 31 "/usr/include/bits/sigthread.h" 3 4extern 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__));# 388 "/usr/include/signal.h" 2 3 4extern 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 4enum __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};# 129 "/usr/include/bits/resource.h" 3 4typedef __rlim64_t rlim_t;struct rlimit { rlim_t rlim_cur; rlim_t rlim_max; };# 154 "/usr/include/bits/resource.h" 3 4enum __rusage_who{ RUSAGE_SELF = 0, RUSAGE_CHILDREN = -1};# 1 "/usr/include/bits/time.h" 1 3 4# 167 "/usr/include/bits/resource.h" 2 3 4struct 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};# 26 "/usr/include/sys/resource.h" 2 3 4# 43 "/usr/include/sys/resource.h" 3 4typedef int __rlimit_resource_t;typedef int __rusage_who_t;typedef int __priority_which_t;# 55 "/usr/include/sys/resource.h" 3 4extern int getrlimit (__rlimit_resource_t __resource, struct rlimit *__rlimits) __asm__ ("" "getrlimit64") __attribute__ ((__nothrow__));# 74 "/usr/include/sys/resource.h" 3 4extern int setrlimit (__rlimit_resource_t __resource, const struct rlimit *__rlimits) __asm__ ("" "setrlimit64") __attribute__ ((__nothrow__));# 88 "/usr/include/sys/resource.h" 3 4extern 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# 1 "/usr/include/bits/waitflags.h" 1 3 4# 39 "/usr/include/sys/wait.h" 2 3 4# 63 "/usr/include/sys/wait.h" 3 4typedef union { union wait *__uptr; int *__iptr; } __WAIT_STATUS __attribute__ ((__transparent_union__));# 80 "/usr/include/sys/wait.h" 3 4# 1 "/usr/include/bits/waitstatus.h" 1 3 4# 67 "/usr/include/bits/waitstatus.h" 3 4union 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; };# 81 "/usr/include/sys/wait.h" 2 3 4# 102 "/usr/include/sys/wait.h" 3 4typedef enum{ P_ALL, P_PID, P_PGID} idtype_t;# 116 "/usr/include/sys/wait.h" 3 4extern __pid_t wait (__WAIT_STATUS __stat_loc);# 139 "/usr/include/sys/wait.h" 3 4extern __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 4extern 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__));# 18 "../include/zsfunctions.h" 2# 1 "/usr/include/sys/param.h" 1 3 4# 22 "/usr/include/sys/param.h" 3 4# 1 "/usr/lib/gcc/x86_64-linux-gnu/4.1.3/include/limits.h" 1 3 4# 11 "/usr/lib/gcc/x86_64-linux-gnu/4.1.3/include/limits.h" 3 4# 1 "/usr/lib/gcc/x86_64-linux-gnu/4.1.3/include/syslimits.h" 1 3 4# 1 "/usr/lib/gcc/x86_64-linux-gnu/4.1.3/include/limits.h" 1 3 4# 122 "/usr/lib/gcc/x86_64-linux-gnu/4.1.3/include/limits.h" 3 4# 1 "/usr/include/limits.h" 1 3 4# 145 "/usr/include/limits.h" 3 4# 1 "/usr/include/bits/posix1_lim.h" 1 3 4# 153 "/usr/include/bits/posix1_lim.h" 3 4# 1 "/usr/include/bits/local_lim.h" 1 3 4# 36 "/usr/include/bits/local_lim.h" 3 4# 1 "/usr/include/linux/limits.h" 1 3 4# 37 "/usr/include/bits/local_lim.h" 2 3 4# 154 "/usr/include/bits/posix1_lim.h" 2 3 4# 146 "/usr/include/limits.h" 2 3 4# 1 "/usr/include/bits/posix2_lim.h" 1 3 4# 150 "/usr/include/limits.h" 2 3 4# 123 "/usr/lib/gcc/x86_64-linux-gnu/4.1.3/include/limits.h" 2 3 4# 8 "/usr/lib/gcc/x86_64-linux-gnu/4.1.3/include/syslimits.h" 2 3 4# 12 "/usr/lib/gcc/x86_64-linux-gnu/4.1.3/include/limits.h" 2 3 4# 23 "/usr/include/sys/param.h" 2 3 4# 1 "/usr/include/linux/param.h" 1 3 4# 1 "/usr/include/asm/param.h" 1 3 4# 1 "/usr/include/asm-x86_64/param.h" 1 3 4# 6 "/usr/include/asm/param.h" 2 3 4# 5 "/usr/include/linux/param.h" 2 3 4# 25 "/usr/include/sys/param.h" 2 3 4# 21 "../include/zsfunctions.h" 2# 1 "/usr/include/unistd.h" 1 3 4# 28 "/usr/include/unistd.h" 3 4# 173 "/usr/include/unistd.h" 3 4# 1 "/usr/include/bits/posix_opt.h" 1 3 4# 174 "/usr/include/unistd.h" 2 3 4# 197 "/usr/include/unistd.h" 3 4# 1 "/usr/lib/gcc/x86_64-linux-gnu/4.1.3/include/stddef.h" 1 3 4# 198 "/usr/include/unistd.h" 2 3 4# 226 "/usr/include/unistd.h" 3 4typedef __useconds_t useconds_t;# 238 "/usr/include/unistd.h" 3 4typedef __intptr_t intptr_t;typedef __socklen_t socklen_t;# 258 "/usr/include/unistd.h" 3 4extern int access (const char *__name, int __type) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));# 304 "/usr/include/unistd.h" 3 4extern __off64_t lseek (int __fd, __off64_t __offset, int __whence) __asm__ ("" "lseek64") __attribute__ ((__nothrow__));# 320 "/usr/include/unistd.h" 3 4extern int close (int __fd);extern ssize_t read (int __fd, void *__buf, size_t __nbytes) ;extern ssize_t write (int __fd, const void *__buf, size_t __n) ;# 384 "/usr/include/unistd.h" 3 4extern int pipe (int __pipedes[2]) __attribute__ ((__nothrow__)) ;# 393 "/usr/include/unistd.h" 3 4extern unsigned int alarm (unsigned int __seconds) __attribute__ ((__nothrow__));# 405 "/usr/include/unistd.h" 3 4extern unsigned int sleep (unsigned int __seconds);extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval) __attribute__ ((__nothrow__));extern int usleep (__useconds_t __useconds);# 429 "/usr/include/unistd.h" 3 4extern int pause (void);extern int chown (const char *__file, __uid_t __owner, __gid_t __group) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;extern int fchown (int __fd, __uid_t __owner, __gid_t __group) __attribute__ ((__nothrow__)) ;extern int lchown (const char *__file, __uid_t __owner, __gid_t __group) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;# 457 "/usr/include/unistd.h" 3 4extern int chdir (const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;extern int fchdir (int __fd) __attribute__ ((__nothrow__)) ;# 471 "/usr/include/unistd.h" 3 4extern char *getcwd (char *__buf, size_t __size) __attribute__ ((__nothrow__)) ;# 484 "/usr/include/unistd.h" 3 4extern char *getwd (char *__buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) ;extern int dup (int __fd) __attribute__ ((__nothrow__)) ;extern int dup2 (int __fd, int __fd2) __attribute__ ((__nothrow__));extern char **__environ;extern int execve (const char *__path, char *const __argv[], char *const __envp[]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));# 516 "/usr/include/unistd.h" 3 4extern int execv (const char *__path, char *const __argv[]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));extern int execle (const char *__path, const char *__arg, ...) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));extern int execl (const char *__path, const char *__arg, ...) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));extern int execvp (const char *__file, char *const __argv[]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));extern int execlp (const char *__file, const char *__arg, ...) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));extern int nice (int __inc) __attribute__ ((__nothrow__)) ;extern void _exit (int __status) __attribute__ ((__noreturn__));# 1 "/usr/include/bits/confname.h" 1 3 4# 26 "/usr/include/bits/confname.h" 3 4enum { _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 };enum { _CS_PATH, _CS_V6_WIDTH_RESTRICTED_ENVS, _CS_GNU_LIBC_VERSION, _CS_GNU_LIBPTHREAD_VERSION, _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 };# 555 "/usr/include/unistd.h" 2 3 4extern 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__));# 591 "/usr/include/unistd.h" 3 4extern __pid_t __getpgid (__pid_t __pid) __attribute__ ((__nothrow__));# 600 "/usr/include/unistd.h" 3 4extern int setpgid (__pid_t __pid, __pid_t __pgid) __attribute__ ((__nothrow__));# 617 "/usr/include/unistd.h" 3 4extern int setpgrp (void) __attribute__ ((__nothrow__));# 634 "/usr/include/unistd.h" 3 4extern __pid_t setsid (void) __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__)) ;# 667 "/usr/include/unistd.h" 3 4extern 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__));# 723 "/usr/include/unistd.h" 3 4extern __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))) ;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))) ;# 769 "/usr/include/unistd.h" 3 4extern int symlink (const char *__from, const char *__to) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) ;extern ssize_t readlink (const char *__restrict __path, char *__restrict __buf, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) ;# 792 "/usr/include/unistd.h" 3 4extern int unlink (const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));# 801 "/usr/include/unistd.h" 3 4extern 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)));# 837 "/usr/include/unistd.h" 3 4# 1 "/usr/include/getopt.h" 1 3 4# 59 "/usr/include/getopt.h" 3 4extern char *optarg;# 73 "/usr/include/getopt.h" 3 4extern int optind;extern int opterr;extern int optopt;# 152 "/usr/include/getopt.h" 3 4extern int getopt (int ___argc, char *const *___argv, const char *__shortopts) __attribute__ ((__nothrow__));# 838 "/usr/include/unistd.h" 2 3 4extern 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))) ;extern int sethostid (long int __id) __attribute__ ((__nothrow__)) ;extern int getdomainname (char *__name, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;extern int setdomainname (const char *__name, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;extern int vhangup (void) __attribute__ ((__nothrow__));extern int revoke (const char *__file) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;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__)) ;extern int chroot (const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;extern char *getpass (const char *__prompt) __attribute__ ((__nonnull__ (1)));# 923 "/usr/include/unistd.h" 3 4extern 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__));# 952 "/usr/include/unistd.h" 3 4extern int truncate (const char *__file, __off64_t __length) __asm__ ("" "truncate64") __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ;# 973 "/usr/include/unistd.h" 3 4extern int ftruncate (int __fd, __off64_t __length) __asm__ ("" "ftruncate64") __attribute__ ((__nothrow__)) ;# 990 "/usr/include/unistd.h" 3 4extern int brk (void *__addr) __attribute__ ((__nothrow__)) ;extern void *sbrk (intptr_t __delta) __attribute__ ((__nothrow__));# 1011 "/usr/include/unistd.h" 3 4extern long int syscall (long int __sysno, ...) __attribute__ ((__nothrow__));# 1065 "/usr/include/unistd.h" 3 4extern int fdatasync (int __fildes);# 1103 "/usr/include/unistd.h" 3 4# 22 "../include/zsfunctions.h" 2# 38 "../include/zsfunctions.h"# 1 "../../config.h" 1# 39 "../include/zsfunctions.h" 2# 1 "../include/objects.h" 1# 1 "../include/constants.h" 1# 1 "../include/../conf/zsconfig.h" 1# 2 "../include/constants.h" 2# 1 "../include/../include/zsconfig.defaults.h" 1# 3 "../include/constants.h" 2# 382 "../include/constants.h"enum ReleaseTypes { RTYPE_NULL = 0, RTYPE_RAR = 1, RTYPE_OTHER = 2, RTYPE_AUDIO = 3, RTYPE_VIDEO = 4, RTYPE_INVALID,};# 9 "../include/objects.h" 2# 38 "../include/objects.h"# 1 "../include/../conf/zsconfig.h" 1# 39 "../include/objects.h" 2# 1 "../include/../include/zsconfig.defaults.h" 1# 40 "../include/objects.h" 2struct USERINFO { char name[24]; off_t bytes; double speed; unsigned int files; unsigned int pos; unsigned int group; unsigned long long dayup; unsigned long long wkup; unsigned long long monthup; unsigned long long allup;};struct GROUPINFO { char name[24]; off_t bytes; double speed; unsigned int files; unsigned int pos; unsigned int users;};struct audio { char id3_artist[31]; char id3_title [31]; char id3_album [31]; char id3_year [5]; char bitrate [5]; char samplingrate[6]; char *id3_genre; char *layer; char *codec; char *channelmode; char vbr_version_string[10]; char vbr_preset[15]; int is_vbr; char vbr_oldnew[1]; int vbr_quality; int vbr_minimum_bitrate; int vbr_noiseshaping; char vbr_stereo_mode[10]; char vbr_unwise[4]; char vbr_source[10];};struct VIDEO { int height; int width; double fps; char vids[30]; char fourcc[15]; long hz; int ch; char audio[30]; char audiotype[30];};struct current_user { char name [24]; char group [24]; char tagline [255]; short int pos;};struct current_file { char name[255]; char unlink[255]; unsigned int speed; off_t size; char compression_method;};struct race_total { unsigned int start_time; unsigned int stop_time; unsigned char users; unsigned char groups; int files; int files_missing; int files_bad; unsigned char nfo_present; double speed; off_t size; off_t bad_size;};struct misc { char old_leader[24]; char release_name[4096]; char current_path[4096]; char basepath[4096]; char racer_list[1024]; char total_racer_list[1024]; char top_messages[2][1024]; char error_msg [80]; char progress_bar[15]; int release_type; unsigned char write_log; long fastest_user[2]; long slowest_user[2]; unsigned int data_completed;};struct LOCATIONS { char *leader; char *nfo_incomplete; char *incomplete; char *sfv; char *sfvbackup; char *sfv_incomplete; char *race; char link_target[4096]; char link_source[4096]; char path[4096]; char basepath[4096]; unsigned int length_path; unsigned int length_zipdatadir; unsigned int in_cd_dir;};struct VARS { struct current_user user; struct current_file file; struct race_total total; struct misc misc; struct audio audio; struct VIDEO avinfo; unsigned char section; char sectionname[128]; char headpath[4096]; unsigned int data_incrementor; unsigned int data_in_use; unsigned int data_queue; unsigned int data_type; char id3_artist[31]; char id3_genre[31];};typedef struct { struct USERINFO **ui; struct GROUPINFO **gi; struct VARS v; struct LOCATIONS l;} GLOBAL;# 41 "../include/zsfunctions.h" 2# 1 "../include/macros.h" 1# 1 "../../config.h" 1# 6 "../include/macros.h" 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 4struct dirent { __ino64_t d_ino; __off64_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 4enum { 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 4typedef struct __dirstream DIR;extern DIR *opendir (const char *__name) __attribute__ ((__nonnull__ (1)));# 150 "/usr/include/dirent.h" 3 4extern int closedir (DIR *__dirp) __attribute__ ((__nonnull__ (1)));# 166 "/usr/include/dirent.h" 3 4extern struct dirent *readdir (DIR *__dirp) __asm__ ("" "readdir64") __attribute__ ((__nonnull__ (1)));# 190 "/usr/include/dirent.h" 3 4extern int readdir_r (DIR *__restrict __dirp, struct dirent *__restrict __entry, struct dirent **__restrict __result) __asm__ ("" "readdir64_r") __attribute__ ((__nonnull__ (1, 2, 3)));# 209 "/usr/include/dirent.h" 3 4extern 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)));# 243 "/usr/include/dirent.h" 3 4# 1 "/usr/lib/gcc/x86_64-linux-gnu/4.1.3/include/stddef.h" 1 3 4# 244 "/usr/include/dirent.h" 2 3 4# 257 "/usr/include/dirent.h" 3 4extern int scandir (const char *__restrict __dir, struct dirent ***__restrict __namelist, int (*__selector) (const struct dirent *), int (*__cmp) (const void *, const void *)) __asm__ ("" "scandir64") __attribute__ ((__nonnull__ (1, 2)));# 284 "/usr/include/dirent.h" 3 4extern int alphasort (const void *__e1, const void *__e2) __asm__ ("" "alphasort64") __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));# 330 "/usr/include/dirent.h" 3 4extern __ssize_t getdirentries (int __fd, char *__restrict __buf, size_t __nbytes, __off64_t *__restrict __basep) __asm__ ("" "getdirentries64") __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4)));# 349 "/usr/include/dirent.h" 3 4# 10 "../include/macros.h" 2# 42 "../include/zsfunctions.h" 2# 1 "../include/constants.h" 1# 1 "../include/../conf/zsconfig.h" 1# 2 "../include/constants.h" 2# 1 "../include/../include/zsconfig.defaults.h" 1# 3 "../include/constants.h" 2# 46 "../include/zsfunctions.h" 2# 78 "../include/zsfunctions.h"struct GROUP { char *name; gid_t id;};struct USER { char *name; uid_t id;};extern struct dirent **dirlist;extern unsigned int direntries;extern void d_log(char *,...);extern void create_missing(char *);extern char *findfileext(DIR *, char *);extern char *findfileextparent(DIR *, char *);extern char *findfileext_old_(char *);extern char *findfileext_old_parent(char *);extern int findfileextcount(DIR *, char *);extern int file_count(DIR *);extern unsigned int hexstrtodec(char *);extern int selector(const struct dirent *);extern void del_releasedir(DIR *, char *);extern void strtolower(char *);extern void space_to_dot(char *);extern void unlink_missing(char *);extern char israr(char *);extern void buffer_progress_bar(struct VARS *);extern void move_progress_bar(unsigned char, struct VARS *, struct USERINFO **, struct GROUPINFO **);extern int check_dupefile(DIR *, char *);extern long findfile(DIR *, char *);extern char *findfilename(char *, char *, struct VARS *);extern char *check_nocase_linkname(char *, char *);extern void removedotfiles(DIR *);extern void removecomplete(void);extern short matchpath(char *, char *);extern short matchpartialpath(char *, char *);extern short strcomp(char *, char *);extern short subcomp(char *, char *);extern short fileexists(char *);extern void createlink(char *, char *, char *, char *);extern void readsfv_ffile(struct VARS *);extern void get_rar_info(struct VARS *);extern int execute(char *);extern char *get_g_name(int);extern char *get_u_name(int);extern int buffer_groups(char *, int);extern int buffer_users(char *, int);extern unsigned long sfv_compare_size(char *, unsigned long);extern void mark_as_bad(char *);extern int extractDirname(char *dirname, char *absoluteDirname);extern void writelog(GLOBAL *, char *, char *);extern void buffer_paths(GLOBAL *, char [2][4096], int *, int);extern void remove_nfo_indicator(GLOBAL *);extern void getrelname(GLOBAL *);extern unsigned char get_filetype(GLOBAL *, char *);extern void *ng_realloc(void *, int, int, int, struct VARS *, int);extern void *ng_realloc2(void *, int, int, int, int);extern void *ng_free(void *);extern int copyfile(char *, char *);extern int make_sfv(char *);extern unsigned int match_lenient(DIR *, char *);extern unsigned int insampledir(char *);# 23 "zipscript-c.c" 2# 1 "../include/race-file.h" 1# 1 "../include/zsfunctions.h" 1# 7 "../include/race-file.h" 2typedef struct { unsigned int crc32, speed; off_t size; time_t start_time; unsigned char status; unsigned char dummy; char fname[255 +4-255%4], uname[24], group[24], id3_artist[31], id3_genre[31];} RACEDATA;typedef struct { unsigned int crc32; char fname[255 +4-255%4];} SFVDATA;typedef struct { unsigned int data_version, data_type, data_in_use, data_incrementor, data_queue, data_qcurrent, data_pid, data_completed;} HEADDATA;extern unsigned int readsfv(const char *, struct VARS *, int);extern void update_sfvdata(const char *, const char *, const unsigned int);extern void delete_sfv(const char *, struct VARS *);extern void readrace(const char *, struct VARS *, struct USERINFO **, struct GROUPINFO **);extern void maketempdir(char *);extern void read_write_leader(const char *, struct VARS *, struct USERINFO *);extern void testfiles(struct LOCATIONS *, struct VARS *, int);extern int copysfv(const char *, const char *, struct VARS *);extern void create_indexfile(const char *, struct VARS *, char *);extern short clear_file(const char *, char *);extern void writerace(const char *, struct VARS *, unsigned int, unsigned char);extern void remove_from_race(const char *, const char *, struct VARS *);extern int verify_racedata(const char *, struct VARS *);extern int create_lock(struct VARS *, const char *, unsigned int, unsigned int, unsigned int);extern void remove_lock(struct VARS *);extern int update_lock(struct VARS *, unsigned int, unsigned int);extern short match_file(char *, char *);extern int check_rarfile(const char *);extern int check_zipfile(const char *, const char *, int);extern void removedir(const char *);extern void create_dirlist(const char *, char *, const int);extern int filebanned_match(const char *);extern int lenient_compare(char *, char *);# 24 "zipscript-c.c" 2# 1 "../include/objects.h" 1# 25 "zipscript-c.c" 2# 1 "../include/macros.h" 1# 26 "zipscript-c.c" 2# 1 "../include/constants.h" 1# 1 "../include/../conf/zsconfig.h" 1# 2 "../include/constants.h" 2# 1 "../include/../include/zsconfig.defaults.h" 1# 3 "../include/constants.h" 2# 31 "zipscript-c.c" 2# 1 "../include/multimedia.h" 1# 1 "../include/avi.h" 1# 21 "../include/avi.h"typedef unsigned long FOURCC;typedef unsigned long DWORD;typedef unsigned short WORD;typedef struct { DWORD dwMicroSecPerFrame; DWORD dwMaxBytesPerSec; DWORD dwPaddingGranularity; DWORD dwFlags; DWORD dwTotalFrames; DWORD dwInitialFrames; DWORD dwStreams; DWORD dwSuggestedBufferSize; DWORD dwWidth; DWORD dwHeight; DWORD dwReserved[4];} AVIMAINHEADER;typedef struct { FOURCC fccType; FOURCC fccHandler; DWORD dwFlags; WORD wPriority; WORD wLanguage; DWORD dwInitialFrames; DWORD dwScale; DWORD dwRate; DWORD dwStart; DWORD dwLength; DWORD dwSuggestedBufferSize; DWORD dwQuality; DWORD dwSampleSize; struct { short int left; short int top; short int right; short int bottom; } rcFrame;} AVISTREAMHEADER;typedef struct { WORD wFormatTag; WORD nChannels; DWORD nSamplesPerSec; DWORD nAvgBytesPerSec; WORD nBlockAlign; WORD wBitsPerSample; WORD cbSize;} WAVEFORMATEX;typedef struct { DWORD biSize; DWORD biWidth; DWORD biHeight; WORD biPlanes; WORD biBitCount; DWORD biCompression; DWORD biSizeImage; DWORD biXPelsPerMeter; DWORD biYPelsPerMeter; DWORD biClrUsed; DWORD biClrImportant;} BITMAPINFOHEADER;# 2 "../include/multimedia.h" 2char *trim(char *);char *get_preset(char[4]);void get_mpeg_audio_info(char *, struct audio *);const unsigned char *fourcc(FOURCC);void avierror(const char *);DWORD get32(FILE *);WORD get16(FILE *);int avinfo(char *, struct VIDEO *);# 34 "zipscript-c.c" 2# 1 "../include/convert.h" 1char *hms(char *, int);char *convert(struct VARS *, struct USERINFO **, struct GROUPINFO **, char *);char *convert_user(struct VARS *, struct USERINFO *, struct GROUPINFO **, char *, short);char *convert_group(struct VARS *, struct GROUPINFO *, char *, short);char *convert_audio(struct VARS *, char *);char *convert_sitename(char *);char *incomplete(char *, char [2][4096], struct VARS *, int);# 35 "zipscript-c.c" 2# 1 "../include/dizreader.h" 1void removespaces(char *, int);int read_diz(void);# 36 "zipscript-c.c" 2# 1 "../include/stats.h" 1struct userdata { unsigned long long allup_bytes; unsigned long long monthup_bytes; unsigned long long wkup_bytes; unsigned long long dayup_bytes; short name;};void updatestats_free(GLOBAL *);void updatestats(struct VARS *, struct USERINFO **, struct GROUPINFO **, char *, char *, off_t, unsigned int, unsigned int);void sortstats(struct VARS *, struct USERINFO **, struct GROUPINFO **);void showstats(struct VARS *, struct USERINFO **, struct GROUPINFO **);void get_stats(struct VARS *, struct USERINFO **);# 37 "zipscript-c.c" 2# 1 "../include/complete.h" 1extern void complete(GLOBAL *, int);extern void writetop(GLOBAL *, int);# 38 "zipscript-c.c" 2# 1 "../include/crc.h" 1unsigned int calc_crc32(char *);# 39 "zipscript-c.c" 2# 1 "../include/ng-version.h" 1extern const char *ng_version;# 40 "zipscript-c.c" 2# 1 "../include/print_config.h" 1void print_nondefault_config(void);void print_full_config(void);# 41 "zipscript-c.c" 2# 1 "../include/audiosort.h" 1extern void audioSortDir(char *);extern void audioSort(struct audio *, char *, char *);# 42 "zipscript-c.c" 2# 1 "../conf/zsconfig.h" 1# 44 "zipscript-c.c" 2# 1 "../include/zsconfig.defaults.h" 1# 46 "zipscript-c.c" 2# 1 "../include/errors.h" 1# 47 "zipscript-c.c" 2intmain(int argc, char **argv){ GLOBAL g; DIR *dir, *parent; struct dirent *dp; char temp_path[4096]; char *fileext = ((void *)0), *name_p, *temp_p = ((void *)0), *temp_p_free = ((void *)0); char *target = 0; char *vinfo = 0; char *ext = 0; char *crc_arg = ((void *)0); char *complete_msg = 0; char *update_msg = 0; char *race_msg = 0; char *sfv_msg = 0; char *update_type = 0; char *newleader_msg = 0; char *halfway_msg = 0; char *complete_bar = 0; char *error_msg = 0; unsigned int crc, gnum = 0, unum = 0, s_crc = 0; unsigned char exit_value = 0; unsigned char no_check = 0; char *sfv_type = 0; char *race_type = 0; char *newleader_type = 0; char *race_halfway_type = 0; char *norace_halfway_type = 0; char *inc_point[2]; char *affillist = 0; unsigned char affil_upload = 0; unsigned char complete_type = 0; char *complete_announce = 0; int cnt, cnt2, n = 0, m = 0; int write_log = 0; long loc; struct stat fileinfo; struct timeval bstart, bstop; d_log("zipscript-c: Reading time for benchmark\n"); gettimeofday(&bstart, (struct timezone *)0);# 118 "zipscript-c.c" d_log("zipscript-c: Project-ZS Next Generation (pzs-ng) %s debug log.\n", ng_version); umask(0666 & 000); if ( 0 > 0 ) { d_log("zipscript-c: Trying to change effective uid/gid\n"); setegid(0); seteuid(0); } else if (!geteuid()) { d_log("zipscript-c: +s mode detected - trying to change effective uid/gid to !root\n"); if (setegid(getgid()) == -1) d_log("zipscript-c: failed to change gid: %s\n", strerror((*__errno_location ()))); if (seteuid(getuid()) == -1) d_log("zipscript-c: failed to change uid: %s\n", strerror((*__errno_location ()))); } if (argc == 2 && __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ("--fullconfig") && __builtin_constant_p (argv[1]) && (__s1_len = strlen ("--fullconfig"), __s2_len = strlen (argv[1]), (!((size_t)(const void *)(("--fullconfig") + 1) - (size_t)(const void *)("--fullconfig") == 1) || __s1_len >= 4) && (!((size_t)(const void *)((argv[1]) + 1) - (size_t)(const void *)(argv[1]) == 1) || __s2_len >= 4)) ? __builtin_strcmp ("--fullconfig", argv[1]) : (__builtin_constant_p ("--fullconfig") && ((size_t)(const void *)(("--fullconfig") + 1) - (size_t)(const void *)("--fullconfig") == 1) && (__s1_len = strlen ("--fullconfig"), __s1_len < 4) ? (__builtin_constant_p (argv[1]) && ((size_t)(const void *)((argv[1]) + 1) - (size_t)(const void *)(argv[1]) == 1) ? __builtin_strcmp ("--fullconfig", argv[1]) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (argv[1]); register int __result = (((const unsigned char *) (const char *) ("--fullconfig"))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ("--fullconfig"))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ("--fullconfig"))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ("--fullconfig"))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (argv[1]) && ((size_t)(const void *)((argv[1]) + 1) - (size_t)(const void *)(argv[1]) == 1) && (__s2_len = strlen (argv[1]), __s2_len < 4) ? (__builtin_constant_p ("--fullconfig") && ((size_t)(const void *)(("--fullconfig") + 1) - (size_t)(const void *)("--fullconfig") == 1) ? __builtin_strcmp ("--fullconfig", argv[1]) : (__extension__ ({ const unsigned char *__s1 = (const unsigned char *) (const char *) ("--fullconfig"); register int __result = __s1[0] - ((const unsigned char *) (const char *) (argv[1]))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((const unsigned char *) (const char *) (argv[1]))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((const unsigned char *) (const char *) (argv[1]))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((const unsigned char *) (const char *) (argv[1]))[3]); } } __result; }))) : __builtin_strcmp ("--fullconfig", argv[1])))); }) == 0) { print_full_config(); exit(0); } if (argc == 2 && __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ("--config") && __builtin_constant_p (argv[1]) && (__s1_len = strlen ("--config"), __s2_len = strlen (argv[1]), (!((size_t)(const void *)(("--config") + 1) - (size_t)(const void *)("--config") == 1) || __s1_len >= 4) && (!((size_t)(const void *)((argv[1]) + 1) - (size_t)(const void *)(argv[1]) == 1) || __s2_len >= 4)) ? __builtin_strcmp ("--config", argv[1]) : (__builtin_constant_p ("--config") && ((size_t)(const void *)(("--config") + 1) - (size_t)(const void *)("--config") == 1) && (__s1_len = strlen ("--config"), __s1_len < 4) ? (__builtin_constant_p (argv[1]) && ((size_t)(const void *)((argv[1]) + 1) - (size_t)(const void *)(argv[1]) == 1) ? __builtin_strcmp ("--config", argv[1]) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (argv[1]); register int __result = (((const unsigned char *) (const char *) ("--config"))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ("--config"))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ("--config"))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ("--config"))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (argv[1]) && ((size_t)(const void *)((argv[1]) + 1) - (size_t)(const void *)(argv[1]) == 1) && (__s2_len = strlen (argv[1]), __s2_len < 4) ? (__builtin_constant_p ("--config") && ((size_t)(const void *)(("--config") + 1) - (size_t)(const void *)("--config") == 1) ? __builtin_strcmp ("--config", argv[1]) : (__extension__ ({ const unsigned char *__s1 = (const unsigned char *) (const char *) ("--config"); register int __result = __s1[0] - ((const unsigned char *) (const char *) (argv[1]))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((const unsigned char *) (const char *) (argv[1]))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((const unsigned char *) (const char *) (argv[1]))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((const unsigned char *) (const char *) (argv[1]))[3]); } } __result; }))) : __builtin_strcmp ("--config", argv[1])))); }) == 0) { print_nondefault_config(); exit(0); } if (argc < 8) { d_log("zipscript-c: Wrong number of arguments used (wzdftpd compatible)\n"); printf(" - - PZS-NG ZipScript-C %s - -\n\nUsage: %s <absolute filepath> <crc> <user> <group> <tagline> <speed> <section>\n", ng_version, argv[0]); printf(" Usage: %s --(full)config - shows (full) config compiled.\n\n", argv[0]); exit(1); } crc_arg = argv[2];# 167 "zipscript-c.c" d_log("zipscript-c: Clearing arrays\n"); bzero(&g.v.total, sizeof(struct race_total)); g.v.misc.slowest_user[0] = 30000; g.v.misc.fastest_user[0] = g.v.misc.release_type = RTYPE_NULL; if (realpath(argv[1], temp_path) != temp_path) { d_log("zipscript-c: Could not realpath(\"%s\", temp_path): %s\n", temp_path, strerror((*__errno_location ()))); strlcpy(temp_path, argv[1], 4096); } strlcpy(g.l.path, temp_path, (((4096)<(strrchr(temp_path, '/') - temp_path + 1))?(4096):(strrchr(temp_path, '/') - temp_path + 1))); strlcpy(g.v.file.name, strrchr(temp_path, '/') + 1, 255);# 200 "zipscript-c.c" strlcpy(g.v.misc.current_path, g.l.path, 4096); d_log("zipscript-c: Changing directory to %s\n", g.l.path); chdir(g.l.path); if (subcomp(g.l.path, g.l.basepath) && (g.l.basepath[0] == '\0')) strlcpy(g.l.basepath, g.l.path, 4096); if (strlen(g.l.basepath) && (__extension__ (__builtin_constant_p (4096) && ((__builtin_constant_p (g.l.path) && strlen (g.l.path) < ((size_t) (4096))) || (__builtin_constant_p (g.l.basepath) && strlen (g.l.basepath) < ((size_t) (4096)))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (g.l.path) && __builtin_constant_p (g.l.basepath) && (__s1_len = strlen (g.l.path), __s2_len = strlen (g.l.basepath), (!((size_t)(const void *)((g.l.path) + 1) - (size_t)(const void *)(g.l.path) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((g.l.basepath) + 1) - (size_t)(const void *)(g.l.basepath) == 1) || __s2_len >= 4)) ? __builtin_strcmp (g.l.path, g.l.basepath) : (__builtin_constant_p (g.l.path) && ((size_t)(const void *)((g.l.path) + 1) - (size_t)(const void *)(g.l.path) == 1) && (__s1_len = strlen (g.l.path), __s1_len < 4) ? (__builtin_constant_p (g.l.basepath) && ((size_t)(const void *)((g.l.basepath) + 1) - (size_t)(const void *)(g.l.basepath) == 1) ? __builtin_strcmp (g.l.path, g.l.basepath) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (g.l.basepath); register int __result = (((const unsigned char *) (const char *) (g.l.path))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (g.l.path))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (g.l.path))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (g.l.path))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (g.l.basepath) && ((size_t)(const void *)((g.l.basepath) + 1) - (size_t)(const void *)(g.l.basepath) == 1) && (__s2_len = strlen (g.l.basepath), __s2_len < 4) ? (__builtin_constant_p (g.l.path) && ((size_t)(const void *)((g.l.path) + 1) - (size_t)(const void *)(g.l.path) == 1) ? __builtin_strcmp (g.l.path, g.l.basepath) : (__extension__ ({ const unsigned char *__s1 = (const unsigned char *) (const char *) (g.l.path); register int __result = __s1[0] - ((const unsigned char *) (const char *) (g.l.basepath))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((const unsigned char *) (const char *) (g.l.basepath))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((const unsigned char *) (const char *) (g.l.basepath))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((const unsigned char *) (const char *) (g.l.basepath))[3]); } } __result; }))) : __builtin_strcmp (g.l.path, g.l.basepath)))); }) : strncmp (g.l.path, g.l.basepath, 4096)))) d_log("zipscript-c: We are in subdir of %s\n", g.l.basepath); __builtin_strncpy (g.v.misc.current_path, g.l.path, sizeof(g.v.misc.current_path)); __builtin_strncpy (g.v.misc.basepath, g.l.basepath, sizeof(g.v.misc.basepath)); d_log("zipscript-c: Reading data from commandline (wzdftpd compatible)\n"); sprintf(g.v.user.name, argv[3]); sprintf(g.v.user.group, argv[4]); if (!(int)strlen(g.v.user.group)) memcpy(g.v.user.group, "NoGroup", 8); sprintf(g.v.user.tagline, argv[5]); if (!(int)strlen(g.v.user.tagline)) memcpy(g.v.user.tagline, "No Tagline Set", 15); g.v.file.speed = (unsigned int)strtol(argv[6], ((void *)0), 0); if (!g.v.file.speed) g.v.file.speed = 1; d_log("zipscript-c: Reading section from arg (%s)\n", argv[7]); snprintf(g.v.sectionname, 127, argv[7]); g.v.section = 0;# 309 "zipscript-c.c" d_log("zipscript-c: Checking the file size of %s\n", g.v.file.name); if (stat(g.v.file.name, &fileinfo)) { d_log("zipscript-c: Failed to stat file: %s\n", strerror((*__errno_location ()))); g.v.file.size = 0; g.v.total.stop_time = 0; } else { g.v.file.size = fileinfo.st_size; d_log("zipscript-c: File size was: %d\n", g.v.file.size); g.v.total.stop_time = fileinfo.st_mtim.tv_sec; } d_log("zipscript-c: Setting race times\n"); if (g.v.file.size != 0) g.v.total.start_time = g.v.total.stop_time - ((unsigned int)(g.v.file.size) / g.v.file.speed); else g.v.total.start_time = g.v.total.stop_time > (g.v.total.stop_time - 1) ? g.v.total.stop_time : (g.v.total.stop_time -1); if ((int)(g.v.total.stop_time - g.v.total.start_time) < 1) g.v.total.stop_time = g.v.total.start_time + 1; n = (g.l.length_path = (int)strlen(g.l.path)) + 1; d_log("zipscript-c: Allocating memory for variables\n"); g.l.race = ng_realloc2(g.l.race, n += 12 + (g.l.length_zipdatadir = sizeof("/opt/wzdftpd/ftp-data/pzs-ng/") - 1), 1, 1, 1); g.l.sfv = ng_realloc2(g.l.sfv, n, 1, 1, 1); g.l.sfvbackup = ng_realloc2(g.l.sfvbackup, n, 1, 1, 1); g.l.leader = ng_realloc2(g.l.leader, n, 1, 1, 1); g.l.sfv_incomplete = 0; target = ng_realloc2(target, n + 256, 1, 1, 1); vinfo = ng_realloc2(vinfo, sizeof(struct VIDEO *), 1, 1, 1); g.ui = ng_realloc2(g.ui, sizeof(struct USERINFO *) * 100, 1, 1, 1); g.gi = ng_realloc2(g.gi, sizeof(struct GROUPINFO *) * 100, 1, 1, 1); d_log("zipscript-c: Copying data g.l into memory\n"); sprintf(g.l.sfv, "/opt/wzdftpd/ftp-data/pzs-ng/" "/%s/sfvdata", g.l.path); sprintf(g.l.sfvbackup, "/opt/wzdftpd/ftp-data/pzs-ng/" "/%s/sfvbackup", g.l.path); sprintf(g.l.leader, "/opt/wzdftpd/ftp-data/pzs-ng/" "/%s/leader", g.l.path); sprintf(g.l.race, "/opt/wzdftpd/ftp-data/pzs-ng/" "/%s/racedata", g.l.path); g.v.file.compression_method = '5'; g.v.user.pos = 0; sprintf(g.v.misc.old_leader, "none"); g.v.id3_artist[0] = '\0'; g.v.id3_genre[0] = '\0'; g.v.file.unlink[0] = '\0'; g.v.audio.id3_artist[0] = '\0'; g.v.audio.id3_genre = ((void *)0); d_log("zipscript-c: Parsing file extension from filename... (%s)\n", argv[1]); for (temp_p = name_p = argv[1]; *name_p != 0; name_p++) { if (*name_p == '.') { temp_p = name_p; } } if (*temp_p != '.') { d_log("zipscript-c: Got: no extension\n"); temp_p = name_p; } else { d_log("zipscript-c: Got: %s\n", temp_p); temp_p++; } name_p++; d_log("zipscript-c: Copying (lowercased version of) extension to memory\n"); fileext = ng_realloc(fileext, name_p - temp_p, 1, 1, &g.v, 1); memcpy(fileext, temp_p, name_p - temp_p); strtolower(fileext); d_log("zipscript-c: Reading directory structure\n"); dir = opendir("."); parent = opendir(".."); d_log("zipscript-c: Caching release name\n"); getrelname(&g); d_log("zipscript-c: Creating directory to store racedata in\n"); maketempdir(g.l.path); d_log("zipscript-c: Locking release\n"); while(1) { if ((m = create_lock(&g.v, g.l.path, 2, 3, 0))) { d_log("zipscript-c: Failed to lock release.\n"); if (m == 1) { d_log("zipscript-c: version mismatch. Exiting.\n"); printf("Error. You need to rm -fR ftp-data/pzs-ng/* before zipscript-c will work.\n"); exit(1); } if (m == 32) { d_log("zipscript-c: Detected rescan running - will try to make it quit.\n"); update_lock(&g.v, 0, 0); } if (m == 4) { n = (signed int)g.v.data_incrementor; d_log("zipscript-c: Detected postdel running - sleeping for one second.\n"); if (!create_lock(&g.v, g.l.path, 2, 0, g.v.data_queue)) break; usleep(1000000); if (!create_lock(&g.v, g.l.path, 2, 0, g.v.data_queue)) break; if ( n == (signed int)g.v.data_incrementor) { d_log("zipscript-c: Failed to get lock. Forcing unlock.\n"); if (create_lock(&g.v, g.l.path, 2, 2, g.v.data_queue)) { d_log("zipscript-c: Failed to force a lock.\n"); d_log("zipscript-c: Exiting with error.\n"); exit(1); } break; } } else { for ( n = 0; n <= 20 * 10; n++) { d_log("zipscript-c: sleeping for .1 second before trying to get a lock.\n"); usleep(100000); if (!(m = create_lock(&g.v, g.l.path, 2, 0, g.v.data_queue))) break; } if (n >= 20 * 10) { if (m == 32) { d_log("zipscript-c: Failed to get lock. Forcing unlock.\n"); if (create_lock(&g.v, g.l.path, 2, 2, g.v.data_queue)) d_log("zipscript-c: Failed to force a lock.\n"); } else d_log("zipscript-c: Failed to get a lock.\n"); if (!g.v.data_in_use && !0) { d_log("zipscript-c: Exiting with error.\n"); exit(1); } } } rewinddir(dir); rewinddir(parent); } usleep(10000); if (update_lock(&g.v, 1, 0) != -1) break; } if (!memcmp(fileext, "mp3", 4)) { d_log("zipscript-c: Trying to read audio header and tags\n"); get_mpeg_audio_info(findfileext(dir, ".mp3"), &g.v.audio); strlcpy(g.v.id3_artist, g.v.audio.id3_artist, sizeof(g.v.id3_artist)); strlcpy(g.v.id3_genre, g.v.audio.id3_genre, sizeof(g.v.id3_genre)); d_log("zipscript-c: g.v.id3_artist='%s' - g.v.id3_genre='%s'\n", g.v.id3_artist, g.v.id3_genre); } if (strlen(".-== PZS-NG Zipscript-C ==-------------------------.\n")) printf(".-== PZS-NG Zipscript-C ==-------------------------.\n"); if (1 && matchpath("/opt/wzdftpd/site/groups/", g.l.path)) { d_log("zipscript-c: Hiding user in group-dir:\n"); if ((int)strlen("")) { snprintf(g.v.user.group, 18, "%s", ""); d_log("zipscript-c: Changing groupname\n"); } if ((int)strlen("")) { snprintf(g.v.user.name, 18, "%s", ""); d_log("zipscript-c: Changing username\n"); } if (!(int)strlen("")) { d_log("zipscript-c: Making username = groupname\n"); snprintf(g.v.user.name, 18, "%s", g.v.user.group); } } else { if (0) { affillist = ng_realloc2(affillist, 5000, 1, 1, 1); create_dirlist("/opt/wzdftpd/site/groups/", affillist, 5000); if (strlen(affillist) && strcomp(affillist, g.v.user.group)) { affil_upload = 1; d_log("zipscript-c: Hiding affil group based on group_dirs:\n"); if ((int)strlen("NoGroup")) { d_log("zipscript-c: Changing groupname.\n"); snprintf(g.v.user.group, 18, "%s", "NoGroup"); } else d_log("zipscript-c: No hidegroup given.\n"); if ((int)strlen("NoUser")) { d_log("zipscript-c: Changing username.\n"); snprintf(g.v.user.name, 18, "%s", "NoUser"); } else if (!strlen("")) { d_log("zipscript-c: Making username = groupname.\n"); snprintf(g.v.user.name, 18, "%s", g.v.user.group); } else d_log("zipscript-c: No hidename given.\n"); } ng_free(affillist); } if (strlen("") && strcomp("", g.v.user.group)) { affil_upload = 1; d_log("zipscript-c: Hiding affil group:\n"); if ((int)strlen("NoGroup")) { d_log("zipscript-c: Changing groupname.\n"); snprintf(g.v.user.group, 18, "%s", "NoGroup"); } else d_log("zipscript-c: No hidegroup given.\n"); if ((int)strlen("NoUser")) { d_log("zipscript-c: Changing username.\n"); snprintf(g.v.user.name, 18, "%s", "NoUser"); } else if (!strlen("")) { d_log("zipscript-c: Making username = groupname.\n"); snprintf(g.v.user.name, 18, "%s", g.v.user.group); } else d_log("zipscript-c: No hidename given.\n"); } if (strlen("") && strcomp("", g.v.user.name)) { affil_upload = 1; d_log("zipscript-c: Hiding affil user:\n"); if ((int)strlen("NoUser")) { d_log("zipscript-c: Changing username.\n"); snprintf(g.v.user.name, 18, "%s", "NoUser"); } else if (!strlen("")) { d_log("zipscript-c: Making username = groupname.\n"); snprintf(g.v.user.name, 18, "%s", g.v.user.group); } else d_log("zipscript-c: No hidename given.\n"); } } if (matchpath("/site/speedtest/", g.l.path)) { d_log("zipscript-c: Dir matched speedtest_dirs\n"); sprintf(g.v.misc.error_msg, "BW: %.1fMiB (%.1fMB) @ %.2fMbps (%.2fMB/s).", ((double)g.v.file.size/1000./1000.), ((double)g.v.file.size/1024./1024.), ((double)g.v.file.speed*8/1000./1000.), ((double)g.v.file.speed/1024./1024.)); write_log = g.v.misc.write_log; g.v.misc.write_log = 1; mark_as_bad(g.v.file.name); g.v.total.size = g.v.file.size; error_msg = convert(&g.v, g.ui, g.gi, "{%U} {%G} {%.2s} {%.2#} {%.1m} {%.1N}"); if (exit_value < 2) writelog(&g, error_msg, "ULTEST"); if (!0) { sprintf(target, "%.1fMiB", ((float)g.v.file.size/1000./1000.)); if (rename(g.v.file.name, target) == -1) d_log("zipscript-c: Unable to rename speedtest file: %s (not considered an error in this case)\n", strerror((*__errno_location ()))); } exit_value = 2; } else if (filebanned_match(g.v.file.name)) { d_log("zipscript-c: Banned file detected (%s)\n", g.v.file.name); sprintf(g.v.misc.error_msg, "Banned file: Not allowed!"); write_log = g.v.misc.write_log; g.v.misc.write_log = 1; mark_as_bad(g.v.file.name); error_msg = convert(&g.v, g.ui, g.gi, "{%r} {%U} {%G} {%n}"); if (exit_value < 2) writelog(&g, error_msg, "BAD_FILE_0SIZE"); exit_value = 2; } else if (g.v.file.size == 0) { d_log("zipscript-c: File seems to be 0\n"); sprintf(g.v.misc.error_msg, "0byte-file: Not allowed!"); write_log = g.v.misc.write_log; g.v.misc.write_log = 1; mark_as_bad(g.v.file.name); error_msg = convert(&g.v, g.ui, g.gi, "{%r} {%U} {%G} {%n}"); if (exit_value < 2) writelog(&g, error_msg, "BAD_FILE_0SIZE"); exit_value = 2; } else if (matchpath("/opt/wzdftpd/site/private/", g.l.path) || (!matchpath("/opt/wzdftpd/site/private/", g.l.path) && !matchpath("/opt/wzdftpd/site/test/", g.l.path) && !matchpath("/opt/wzdftpd/site/test/", g.l.path) && !matchpath("/opt/wzdftpd/site/groups/", g.l.path)) || insampledir(g.l.path)) { d_log("zipscript-c: Directory matched with nocheck_dirs/sample_list, or is not among sfv/zip/group/speedtest dirs\n"); d_log("zipscript-c: - nocheck_dirs : '%s'\n", "/opt/wzdftpd/site/private/"); d_log("zipscript-c: - zip_dirs : '%s'\n", "/opt/wzdftpd/site/test/"); d_log("zipscript-c: - sfv_dirs : '%s'\n", "/opt/wzdftpd/site/test/"); d_log("zipscript-c: - group_dirs : '%s'\n", "/opt/wzdftpd/site/groups/"); d_log("zipscript-c: - speedtest_dirs: '%s'\n", "/site/speedtest/"); d_log("zipscript-c: - sample_list : '%s'\n", "sample vobsample"); d_log("zipscript-c: - current path : '%s'\n", g.l.path); no_check = 1; } if (exit_value == 2) d_log("File already marked as bad. Will not process further.\n"); else if (!matchpath("/opt/wzdftpd/site/private/", g.l.path)) { d_log("zipscript-c: Verifying old racedata..\n"); d_log("zipscript-c: If this is the first file in the sfv, this will fail (which is normal).\n"); d_log("zipscript-c: Also please note that multiple slashes in the dir is NORMAL - NOT AN ERROR!\n"); if (!verify_racedata(g.l.race, &g.v)) d_log("zipscript-c: Failed to open racedata - assuming this is a new race.\n"); switch (get_filetype(&g, fileext)) { case 0: d_log("zipscript-c: File type is: ZIP\n"); d_log("zipscript-c: Testing file integrity with %s\n", "/bin/unzip"); if (!fileexists("/bin/unzip")) { d_log("zipscript-c: ERROR! Not able to check zip-files - %s does not exist!\n", "/bin/unzip"); sprintf(g.v.misc.error_msg, "ZiP-Integrity: BAD!"); mark_as_bad(g.v.file.name); write_log = g.v.misc.write_log; g.v.misc.write_log = 1; error_msg = convert(&g.v, g.ui, g.gi, "{%r} {%U} {%G} {%n}"); if (exit_value < 2) writelog(&g, error_msg, "BAD_FILE_ZIP"); exit_value = 2; break; } else { if ((!findfileextcount(dir, ".nfo") || findfileextcount(dir, ".zip")) && !mkdir(".unzipped", 0777)) sprintf(target, "%s -qqjo \"%s\" -d .unzipped", "/bin/unzip", g.v.file.name); else sprintf(target, "%s -qqt \"%s\"", "/bin/unzip", g.v.file.name); if (execute(target) != 0 || (0 == 1 && (*__errno_location ()) > 2 )) { d_log("zipscript-c: Integrity check failed (#%d): %s\n", (*__errno_location ()), strerror((*__errno_location ()))); sprintf(g.v.misc.error_msg, "ZiP-Integrity: BAD!"); mark_as_bad(g.v.file.name); write_log = g.v.misc.write_log; g.v.misc.write_log = 1; error_msg = convert(&g.v, g.ui, g.gi, "{%r} {%U} {%G} {%n}"); if (exit_value < 2) writelog(&g, error_msg, "BAD_FILE_ZIP"); exit_value = 2; removedir(".unzipped"); break; } if ((!findfileextcount(dir, ".nfo") || findfileextcount(dir, ".zip")) && check_zipfile(".unzipped", g.v.file.name, findfileextcount(dir, ".nfo"))) { d_log("zipscript-c: File %s is password protected.\n", g.v.file.name); sprintf(g.v.misc.error_msg, "ZiP-Integrity: BAD!"); mark_as_bad(g.v.file.name); write_log = g.v.misc.write_log; g.v.misc.write_log = 1; error_msg = convert(&g.v, g.ui, g.gi, "{%r} {%U} {%G} {%n}"); if (exit_value < 2) writelog(&g, error_msg, "BAD_FILE_ZIP"); exit_value = 2; break; } } d_log("zipscript-c: Integrity ok\n"); printf("| + ZiP integrity: oK! |\n"); if ((matchpath("/opt/wzdftpd/site/test/", g.l.path)) || (matchpath("/opt/wzdftpd/site/groups/", g.l.path)) ) { g.v.misc.write_log = 1; d_log("zipscript-c: Directory matched with zip_dirs/group_dirs\n"); } else { d_log("zipscript-c: WARNING! Directory did not match with zip_dirs/group_dirs\n"); if (0 == 1) { d_log("zipscript-c: Strict mode on - exiting\n"); sprintf(g.v.misc.error_msg, "%s-file: Not allowed!", fileext); mark_as_bad(g.v.file.name); write_log = g.v.misc.write_log; g.v.misc.write_log = 1; error_msg = convert(&g.v, g.ui, g.gi, "{%r} {%U} {%G} {%n}"); if (exit_value < 2) writelog(&g, error_msg, "BAD_FILE_WRONGDIR"); exit_value = 2; break; } } if (!fileexists("file_id.diz")) { d_log("zipscript-c: file_id.diz does not exist, trying to extract it from %s\n", g.v.file.name); sprintf(target, "%s -qqjnCLL \"%s\" file_id.diz 2>.delme", "/bin/unzip", g.v.file.name); if (execute(target) != 0) d_log("zipscript-c: No file_id.diz found (#%d): %s\n", (*__errno_location ()), strerror((*__errno_location ()))); else { if ((loc = findfile(dir, "file_id.diz.bad"))) { seekdir(dir, loc); dp = readdir(dir); unlink(dp->d_name); } chmod("file_id.diz", 0666); } } d_log("zipscript-c: Reading diskcount from diz:\n"); g.v.total.files = read_diz(); d_log("zipscript-c: Expecting %d files.\n", g.v.total.files); if (g.v.total.files == 0) { d_log("zipscript-c: Could not get diskcount from diz.\n"); g.v.total.files = 1; unlink("file_id.diz"); } g.v.total.files_missing = g.v.total.files; d_log("zipscript-c: Storing new race data (F_CHECKED)\n"); writerace(g.l.race, &g.v, 0, 1); d_log("zipscript-c: Reading race data from file to memory\n"); readrace(g.l.race, &g.v, g.ui, g.gi); if (g.v.total.files_missing < 0) { d_log("zipscript-c: There seems to be more files in zip than we expected\n"); g.v.total.files -= g.v.total.files_missing; g.v.total.files_missing = g.v.misc.write_log = 0; } d_log("zipscript-c: Setting message pointers\n"); race_msg = "{%U} {%G} {%R} {%r} {%.0S} {%n} {%d} {%.1p} {%u} {%g} {%F} {%f} {%M} \"%K\" {%B} {%$}"; update_msg = "{%U} {%G} {%f} {%.0S} {%.1e} {%n} {%r} \"%K\" {%$}"; halfway_msg = g.v.total.users > 1 ? "{%r} %C0 %c0 {%.0m} {%F} {%.1p} {%.0A} {%.0a} {%M} {%n} {%u} {%g} {%U} {%G} {%f} {%B} {%$}" : "{%r} %C0 %c0 {%.0m} {%F} {%.1p} {%.0A} {%.0a} {%M} {%n} {%u} {%g} {%U} {%G} {%f} \"%K\" {%$}";; newleader_msg = "{%U} {%G} {%.0S} {%d} {%F} {%.1p} {%.0m} {%r} {%n} {%u} {%g} {%f} {%M} %C0 %c0 \"%K\" {%R} {%$}"; if (g.l.sfv_incomplete) { d_log("zipscript-c: Removing missing-sfv indicator (if any)\n"); unlink(g.l.sfv_incomplete); } break; case 1: d_log("zipscript-c: File type is: SFV\n"); if ((matchpath("/opt/wzdftpd/site/test/", g.l.path)) || (matchpath("/opt/wzdftpd/site/groups/", g.l.path)) ) { d_log("zipscript-c: Directory matched with sfv_dirs/group_dirs\n"); } else { d_log("zipscript-c: WARNING! Directory did not match with sfv_dirs/group_dirs\n"); if (0 == 1) { d_log("zipscript-c: Strict mode on - exiting\n"); sprintf(g.v.misc.error_msg, "%s-file: Not allowed!", fileext); mark_as_bad(g.v.file.name); write_log = g.v.misc.write_log; g.v.misc.write_log = 1; error_msg = convert(&g.v, g.ui, g.gi, "{%r} {%U} {%G} {%n}"); if (exit_value < 2) writelog(&g, error_msg, "BAD_FILE_WRONGDIR"); exit_value = 2; break; } } if (fileexists(g.l.sfv)) { if (0 == 1 && findfileextcount(dir, ".sfv") > 1 && sfv_compare_size(".sfv", g.v.file.size) > 0) { write_log = g.v.misc.write_log; g.v.misc.write_log = 1; d_log("zipscript-c: DEBUG: sfv_compare_size=%d\n", sfv_compare_size(".sfv", g.v.file.size)); d_log("zipscript-c: No double sfv allowed\n"); error_msg = convert(&g.v, g.ui, g.gi, "{%U} {%G} {%r} {%n}"); writelog(&g, error_msg, "DOUBLESFV"); sprintf(g.v.misc.error_msg, "SFV-file: DUPE!"); mark_as_bad(g.v.file.name); exit_value = 2; g.v.misc.write_log = write_log; break; } else if (1 == 1 && findfileextcount(dir, ".sfv") == 1) { write_log = g.v.misc.write_log; g.v.misc.write_log = 1; d_log("zipscript-c: Resume of sfv not allowed\n"); error_msg = convert(&g.v, g.ui, g.gi, "{%U} {%G} {%r} {%n}"); writelog(&g, error_msg, "RESUMESFV"); if (copyfile(g.l.sfvbackup, g.v.file.name)) d_log("zipscript-c: failed to copy backed up sfv (%s)\n", g.v.file.name); else d_log("zipscript-c: copied backup of sfv to releasedir (%s)\n", g.v.file.name); g.v.misc.write_log = write_log; break; } else if (findfileextcount(dir, ".sfv") > 1 && sfv_compare_size(".sfv", g.v.file.size) > 0) { d_log("zipscript-c: DEBUG: sfv_compare_size=%d\n", sfv_compare_size(".sfv", g.v.file.size)); d_log("zipscript-c: Reading remainders of old sfv\n"); readsfv(g.l.sfv, &g.v, 1); cnt = g.v.total.files - g.v.total.files_missing; cnt2 = g.v.total.files; g.v.total.files_missing = g.v.total.files = 0; readsfv_ffile(&g.v); if ((g.v.total.files <= cnt2) || (g.v.total.files != (cnt + g.v.total.files_missing))) { write_log = g.v.misc.write_log; g.v.misc.write_log = 1; d_log("zipscript-c: Old sfv seems to match with more files than current one\n"); strlcpy(g.v.misc.error_msg, "SFV does not match with files!", 80); error_msg = convert(&g.v, g.ui, g.gi, "{%U} {%G} {%r} {%n}"); writelog(&g, error_msg, "DOUBLESFV"); sprintf(g.v.misc.error_msg, "SFV-file: DUPE!"); mark_as_bad(g.v.file.name); exit_value = 2; g.v.misc.write_log = write_log; break; } g.v.total.files = g.v.total.files_missing = 0; } else { if (!fileexists(g.l.sfv)) { d_log("zipscript-c: DEBUG: sfv_compare_size=%d\n", sfv_compare_size(".sfv", g.v.file.size)); d_log("zipscript-c: Hmm.. Seems the old .sfv was deleted. Allowing new one.\n"); unlink(g.l.race); } else d_log("zipscript-c: Allowing the (late) sfv\n"); unlink(g.l.sfv); rewinddir(dir); while ((dp = readdir(dir))) { cnt = cnt2 = (int)strlen(dp->d_name); ext = dp->d_name; while (ext[cnt] != '-' && cnt > 0) cnt--; if (ext[cnt] != '-') cnt = cnt2; else cnt++; ext += cnt; if (!(__extension__ (__builtin_constant_p (7) && ((__builtin_constant_p (ext) && strlen (ext) < ((size_t) (7))) || (__builtin_constant_p ("missing") && strlen ("missing") < ((size_t) (7)))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (ext) && __builtin_constant_p ("missing") && (__s1_len = strlen (ext), __s2_len = strlen ("missing"), (!((size_t)(const void *)((ext) + 1) - (size_t)(const void *)(ext) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("missing") + 1) - (size_t)(const void *)("missing") == 1) || __s2_len >= 4)) ? __builtin_strcmp (ext, "missing") : (__builtin_constant_p (ext) && ((size_t)(const void *)((ext) + 1) - (size_t)(const void *)(ext) == 1) && (__s1_len = strlen (ext), __s1_len < 4) ? (__builtin_constant_p ("missing") && ((size_t)(const void *)(("missing") + 1) - (size_t)(const void *)("missing") == 1) ? __builtin_strcmp (ext, "missing") : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("missing"); register int __result = (((const unsigned char *) (const char *) (ext))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (ext))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (ext))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (ext))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("missing") && ((size_t)(const void *)(("missing") + 1) - (size_t)(const void *)("missing") == 1) && (__s2_len = strlen ("missing"), __s2_len < 4) ? (__builtin_constant_p (ext) && ((size_t)(const void *)((ext) + 1) - (size_t)(const void *)(ext) == 1) ? __builtin_strcmp (ext, "missing") : (__extension__ ({ const unsigned char *__s1 = (const unsigned char *) (const char *) (ext); register int __result = __s1[0] - ((const unsigned char *) (const char *) ("missing"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((const unsigned char *) (const char *) ("missing"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((const unsigned char *) (const char *) ("missing"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((const unsigned char *) (const char *) ("missing"))[3]); } } __result; }))) : __builtin_strcmp (ext, "missing")))); }) : strncmp (ext, "missing", 7)))) unlink(dp->d_name); } } } d_log("zipscript-c: Parsing sfv and creating sfv data\n"); if (copysfv(g.v.file.name, g.l.sfv, &g.v)) { d_log("zipscript-c: Found invalid entries in SFV.\n"); write_log = g.v.misc.write_log; g.v.misc.write_log = 1; error_msg = convert(&g.v, g.ui, g.gi, "{%r} {%U} {%G} {%n}"); if (exit_value < 2) writelog(&g, error_msg, "BAD_FILE_SFV"); mark_as_bad(g.v.file.name); exit_value = 2; sprintf(g.v.misc.error_msg, "SFV-file: BAD!"); unlink(g.l.race); unlink(g.l.sfv); rewinddir(dir); while ((dp = readdir(dir))) { cnt = cnt2 = (int)strlen(dp->d_name); ext = dp->d_name; while (ext[cnt] != '-' && cnt > 0) cnt--; if (ext[cnt] != '-') cnt = cnt2; else cnt++; ext += cnt; if (!(__extension__ (__builtin_constant_p (7) && ((__builtin_constant_p (ext) && strlen (ext) < ((size_t) (7))) || (__builtin_constant_p ("missing") && strlen ("missing") < ((size_t) (7)))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (ext) && __builtin_constant_p ("missing") && (__s1_len = strlen (ext), __s2_len = strlen ("missing"), (!((size_t)(const void *)((ext) + 1) - (size_t)(const void *)(ext) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("missing") + 1) - (size_t)(const void *)("missing") == 1) || __s2_len >= 4)) ? __builtin_strcmp (ext, "missing") : (__builtin_constant_p (ext) && ((size_t)(const void *)((ext) + 1) - (size_t)(const void *)(ext) == 1) && (__s1_len = strlen (ext), __s1_len < 4) ? (__builtin_constant_p ("missing") && ((size_t)(const void *)(("missing") + 1) - (size_t)(const void *)("missing") == 1) ? __builtin_strcmp (ext, "missing") : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("missing"); register int __result = (((const unsigned char *) (const char *) (ext))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (ext))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (ext))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (ext))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("missing") && ((size_t)(const void *)(("missing") + 1) - (size_t)(const void *)("missing") == 1) && (__s2_len = strlen ("missing"), __s2_len < 4) ? (__builtin_constant_p (ext) && ((size_t)(const void *)((ext) + 1) - (size_t)(const void *)(ext) == 1) ? __builtin_strcmp (ext, "missing") : (__extension__ ({ const unsigned char *__s1 = (const unsigned char *) (const char *) (ext); register int __result = __s1[0] - ((const unsigned char *) (const char *) ("missing"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((const unsigned char *) (const char *) ("missing"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((const unsigned char *) (const char *) ("missing"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((const unsigned char *) (const char *) ("missing"))[3]); } } __result; }))) : __builtin_strcmp (ext, "missing")))); }) : strncmp (ext, "missing", 7)))) unlink(dp->d_name); } break; } if (g.l.sfv_incomplete) { d_log("zipscript-c: Removing missing-sfv indicator (if any)\n"); unlink(g.l.sfv_incomplete); } if ( (0 == 0) || matchpath("", g.l.path)) { if (fileexists(g.l.race) && fileexists(g.l.sfv)) { d_log("zipscript-c: Testing files marked as untested\n"); testfiles(&g.l, &g.v, 0); } } d_log("zipscript-c: Reading file count from SFV\n"); readsfv(g.l.sfv, &g.v, 0); if (g.v.total.files == 0) { d_log("zipscript-c: SFV seems to have no files of accepted types, or has errors.\n"); unlink(g.l.sfv); sprintf(g.v.misc.error_msg, "SFV-file: BAD!"); mark_as_bad(g.v.file.name); write_log = g.v.misc.write_log; g.v.misc.write_log = 1; error_msg = convert(&g.v, g.ui, g.gi, "{%r} {%U} {%G} {%n}"); if (exit_value < 2) writelog(&g, error_msg, "BAD_FILE_SFV"); exit_value = 2; break; } printf("| + SFV-file: oK! |\n"); if (fileexists(g.l.race)) { d_log("zipscript-c: Reading race data from file to memory\n"); readrace(g.l.race, &g.v, g.ui, g.gi); } if ("^\\[.*] - \\( .*F - COMPLETE.*) - \\[.*]$") { d_log("zipscript-c: Making sure that release is not marked as complete\n"); removecomplete(); } d_log("zipscript-c: Setting message pointers\n"); sfv_type = "SFV"; switch (g.v.misc.release_type) { case RTYPE_RAR: sfv_msg = "{%r} {%f} {%U} {%G} {%n} \"%K\""; sfv_type = "SFV_RAR"; break; case RTYPE_OTHER: sfv_msg = "{%r} {%f} {%U} {%G} {%n} \"%K\""; sfv_type = "SFV_OTHER"; break; case RTYPE_AUDIO: sfv_msg = "{%r} {%f} {%U} {%G} {%n} \"%K\""; sfv_type = "SFV_AUDIO"; break; case RTYPE_VIDEO: sfv_msg = "{%r} {%f} {%U} {%G} {%n} \"%K\""; sfv_type = "SFV_VIDEO"; break; default : sfv_msg = "{%r} {%f} {%U} {%G} {%n} \"%K\""; sfv_type = "SFV_RAR"; d_log("zipscript-c: WARNING! Not a known release type - Contact the authors! (1:%d)\n", g.v.misc.release_type); break; } if (!sfv_msg) d_log("zipscript-c: Something's messed up - sfv_msg not set!\n"); halfway_msg = newleader_msg = race_msg = update_msg = ((void *)0); g.v.misc.write_log = matchpath("/opt/wzdftpd/site/test/", g.l.path); if (g.v.total.files_missing > 0) { if (sfv_msg != ((void *)0)) { if (g.v.misc.data_completed) { d_log("zipscript-c: This release has previously been announced complete - skipping announce\n"); error_msg = convert(&g.v, g.ui, g.gi, "{%r} {%U} {%G} {%n}"); writelog(&g, error_msg, "BAD_FILE_DUPERELEASE"); } else { d_log("zipscript-c: Writing SFV message to %s\n", "/opt/wzdftpd/ftp-data/logs/glftpd.log"); writelog(&g, convert(&g.v, g.ui, g.gi, sfv_msg), sfv_type); } } } else { if (g.v.misc.release_type == RTYPE_AUDIO) { d_log("zipscript-c: Reading audio info for completebar\n"); get_mpeg_audio_info(findfileext(dir, ".mp3"), &g.v.audio); strlcpy(g.v.id3_artist, g.v.audio.id3_artist, sizeof(g.v.id3_artist)); strlcpy(g.v.id3_genre, g.v.audio.id3_genre, sizeof(g.v.id3_genre)); } } if (1 == 1) { if (copyfile(g.v.file.name, g.l.sfvbackup)) d_log("zipscript-c: failed to make backup of sfv (%s)\n", g.v.file.name); else d_log("zipscript-c: created backup of sfv (%s)\n", g.v.file.name); } break; case 2: no_check = 1; d_log("zipscript-c: File type is: NFO\n");# 995 "zipscript-c.c" break; case 3: d_log("zipscript-c: File type is: ANY\n"); d_log("zipscript-c: Converting crc (%s) from string to integer\n", crc_arg); crc = hexstrtodec(crc_arg); if (crc == 0) { d_log("zipscript-c: We did not get crc from ftp daemon, calculating crc for %s now.\n", g.v.file.name); crc = calc_crc32(g.v.file.name); } if (fileexists(g.l.sfv)) { s_crc = readsfv(g.l.sfv, &g.v, 0);# 1017 "zipscript-c.c" d_log("zipscript-c: crc recieved/calc'ed: %X - crc found in sfv: %X\n", crc, s_crc); if (s_crc != crc) { if (s_crc == 0) { if (!strcomp("jpg,cue,m3u,mpg,mpeg,avi,txt,mov,vob,mkv,wmv", fileext)) { d_log("zipscript-c: Filename was not found in the SFV\n"); strlcpy(g.v.misc.error_msg, "CRC-Check: Not in sfv!", 80); } else { d_log("zipscript-c: filetype is part of allowed_types.\n"); no_check = 1; break; } } else { d_log("zipscript-c: CRC-32 check failed\n"); if (!hexstrtodec(crc_arg) && 0) { d_log("zipscript-c: Broken xfer detected - allowing file.\n"); no_check = 1; write_log = g.v.misc.write_log; g.v.misc.write_log = 1; error_msg = convert(&g.v, g.ui, g.gi, "{%r} {%U} {%G} {%n}"); writelog(&g, error_msg, "BAD_FILE_CRC"); if (1 == 1) { if (!fileexists("/bin/ng-undupe")) { d_log("zipscript-c: Warning - undupe script (%s) does not exist.\n", "/bin/ng-undupe"); } sprintf(target, "/bin/ng-undupe" " \"%s\"", g.v.file.name); if (execute(target) == 0) d_log("zipscript-c: undupe of %s successful.\n", g.v.file.name); else d_log("zipscript-c: undupe of %s failed.\n", g.v.file.name); } break; } strlcpy(g.v.misc.error_msg, "CRC-Check: BAD!", 80); } mark_as_bad(g.v.file.name); write_log = g.v.misc.write_log; g.v.misc.write_log = 1; error_msg = convert(&g.v, g.ui, g.gi, "{%r} {%U} {%G} {%n}"); if (exit_value < 2) writelog(&g, error_msg, "BAD_FILE_CRC"); exit_value = 2; break; } if (check_dupefile(dir, g.v.file.name)) { d_log("zipscript-c: dupe detected - same file, different case already exists.\n"); strlcpy(g.v.misc.error_msg, "SFV-file: DUPE!", 80); mark_as_bad(g.v.file.name); write_log = g.v.misc.write_log; g.v.misc.write_log = 1; error_msg = convert(&g.v, g.ui, g.gi, "{%r} {%U} {%G} {%n}"); if (exit_value < 2) writelog(&g, error_msg, "BAD_FILE_CRC"); exit_value = 2; break; } printf("| + CRC-Check: oK! |\n"); d_log("zipscript-c: Storing new race data (F_CHECKED)\n"); writerace(g.l.race, &g.v, crc, 1); } else {# 1121 "zipscript-c.c" d_log("zipscript-c: Could not check file yet - SFV is not present\n"); printf("| + CRC-Check: SKIPPED! |\n"); d_log("zipscript-c: Storing new race data (F_NOTCHECKED)\n"); writerace(g.l.race, &g.v, crc, 2); if ((!matchpath("/opt/wzdftpd/site/groups/", g.l.path) || 1) && g.l.sfv_incomplete && !findfileext(dir, ".zip") && !matchpath("/opt/wzdftpd/site/private/", g.l.path) && !matchpath("", g.l.path) &&!insampledir(g.l.path) ) { d_log("zipscript-c: Creating missing-sfv indicator %s.\n", g.l.sfv_incomplete); symlink(g.v.misc.release_name, g.l.sfv_incomplete); } } g.v.misc.write_log = matchpath("/opt/wzdftpd/site/test/", g.l.path); d_log("zipscript-c: Reading race data from file to memory\n"); readrace(g.l.race, &g.v, g.ui, g.gi); d_log("zipscript-c: Setting pointers\n"); if (g.v.misc.release_type == RTYPE_NULL) { if (israr(fileext)) g.v.misc.release_type = RTYPE_RAR; else if (strcomp("mpg,mpeg,m2v,m2p,avi", fileext)) g.v.misc.release_type = RTYPE_VIDEO; else if (!memcmp(fileext, "mp3", 4)) g.v.misc.release_type = RTYPE_AUDIO; else g.v.misc.release_type = RTYPE_OTHER; } switch (g.v.misc.release_type) { case RTYPE_RAR: get_rar_info(&g.v); race_msg = "{%U} {%G} {%R} {%r} {%.0S} {%n} {%d} {%.1p} {%u} {%g} {%F} {%f} {%M} \"%K\" {%B} {%J} {%$}"; update_msg = "{%U} {%G} {%f} {%.0S} {%.1e} {%n} {%r} \"%K\" {%J} {%$}"; halfway_msg = g.v.total.users > 1 ? "{%r} %C0 %c0 {%.0m} {%F} {%.1p} {%.0A} {%.0a} {%M} {%n} {%u} {%g} {%U} {%G} {%f} {%B} {%J} {%$}" : "{%r} %C0 %c0 {%.0m} {%F} {%.1p} {%.0A} {%.0a} {%M} {%n} {%u} {%g} {%U} {%G} {%f} \"%K\" {%J} {%$}";; newleader_msg = "{%U} {%G} {%.0S} {%d} {%F} {%.1p} {%.0m} {%r} {%n} {%u} {%g} {%f} {%M} %C0 %c0 \"%K\" {%R} {%J} {%$}"; break; case RTYPE_OTHER: race_msg = "{%U} {%G} {%R} {%r} {%.0S} {%n} {%d} {%.1p} {%u} {%g} {%F} {%f} {%M} \"%K\" {%B} {%$}"; update_msg = "{%U} {%G} {%f} {%.0S} {%.1e} {%n} {%r} \"%K\" {%$}"; halfway_msg = g.v.total.users > 1 ? "{%r} %C0 %c0 {%.0m} {%F} {%.1p} {%.0A} {%.0a} {%M} {%n} {%u} {%g} {%U} {%G} {%f} {%B} {%$}" : "{%r} %C0 %c0 {%.0m} {%F} {%.1p} {%.0A} {%.0a} {%M} {%n} {%u} {%g} {%U} {%G} {%f} \"%K\" {%$}";; newleader_msg = "{%U} {%G} {%.0S} {%d} {%F} {%.1p} {%.0m} {%r} {%n} {%u} {%g} {%f} {%M} %C0 %c0 \"%K\" {%R} {%$}"; break; case RTYPE_AUDIO: race_msg = "{%U} {%G} {%R} {%r} {%.0S} {%n} {%d} {%.1p} {%u} {%g} {%F} {%f} {%M} \"%K\" {%B} {%$}"; update_msg = "{%U} {%G} {%f} {%.0S} {%.1e} {%n} {%r} \"%K\" %j {%$}"; halfway_msg = g.v.total.users > 1 ? "{%r} %C0 %c0 {%.0m} {%F} {%.1p} {%.0A} {%.0a} {%M} {%n} {%u} {%g} {%U} {%G} {%f} {%B} {%$}" : "{%r} %C0 %c0 {%.0m} {%F} {%.1p} {%.0A} {%.0a} {%M} {%n} {%u} {%g} {%U} {%G} {%f} \"%K\" {%$}";; newleader_msg = "{%U} {%G} {%.0S} {%d} {%F} {%.1p} {%.0m} {%r} {%n} {%u} {%g} {%f} {%M} %C0 %c0 \"%K\" {%R} {%$}"; d_log("zipscript-c: Trying to read audio header and tags\n"); get_mpeg_audio_info(g.v.file.name, &g.v.audio); strlcpy(g.v.id3_artist, g.v.audio.id3_artist, sizeof(g.v.id3_artist)); strlcpy(g.v.id3_genre, g.v.audio.id3_genre, sizeof(g.v.id3_genre)); if (g.v.misc.write_log == 1) { if ((0 == 1) && (g.ui[g.v.user.pos]->files == 1)) { if (!fileexists("/bin/ng-chown")) { d_log("zipscript-c: Warning - mp3_script (%s) - file does not exist!\n", "/bin/ng-chown"); } d_log("zipscript-c: Executing mp3 script (%s %s)\n", "/bin/ng-chown", convert(&g.v, g.ui, g.gi, "0 0 0 1 0 1 - \"%w\" \"%?\"")); sprintf(target, "%s %s", "/bin/ng-chown", convert(&g.v, g.ui, g.gi, "0 0 0 1 0 1 - \"%w\" \"%?\"")); if (execute(target) != 0) d_log("zipscript-c: Failed to execute mp3_script: %s\n", strerror((*__errno_location ()))); } if (!matchpath("", g.l.path)) { if (strcomp("Christian Rap,Christian Gangsta Rap,Contemporary Christian,Christian Rock", g.v.audio.id3_genre)) { d_log("zipscript-c: File is from banned genre\n"); sprintf(g.v.misc.error_msg, "%s is banned here!", g.v.audio.id3_genre); if (1 == 1) { if (g.ui[g.v.user.pos]->files == 1) { d_log("zipscript-c: warn on - logging to logfile\n"); write_log = g.v.misc.write_log; g.v.misc.write_log = 1; error_msg = convert(&g.v, g.ui, g.gi, "{%U} {%G} {%w}"); writelog(&g, error_msg, "BADGENRE"); g.v.misc.write_log = write_log; } else d_log("zipscript-c: warn on - have already logged to logfile\n"); } else { mark_as_bad(g.v.file.name); write_log = g.v.misc.write_log; g.v.misc.write_log = 1; error_msg = convert(&g.v, g.ui, g.gi, "{%r} {%U} {%G} {%n}"); if ((g.ui[g.v.user.pos]->files == 1) && (exit_value < 2)) writelog(&g, error_msg, "BAD_FILE_GENRE"); exit_value = 2; } break; }# 1247 "zipscript-c.c" if (!strcomp("2004,2005,2006,2007", g.v.audio.id3_year)) { d_log("zipscript-c: File is from banned year\n"); sprintf(g.v.misc.error_msg, "Releases from %s are not allowed here!", g.v.audio.id3_year); if (1 == 1) { if (g.ui[g.v.user.pos]->files == 1) { d_log("zipscript-c: warn on - logging to logfile\n"); write_log = g.v.misc.write_log; g.v.misc.write_log = 1; error_msg = convert(&g.v, g.ui, g.gi, "{%U} {%G} {%Y}"); writelog(&g, error_msg, "BADYEAR"); g.v.misc.write_log = write_log; } else d_log("zipscript-c: warn on - have already logged to logfile\n"); } else { mark_as_bad(g.v.file.name); write_log = g.v.misc.write_log; g.v.misc.write_log = 1; error_msg = convert(&g.v, g.ui, g.gi, "{%r} {%U} {%G} {%n}"); if ((g.ui[g.v.user.pos]->files == 1) && (exit_value < 2)) writelog(&g, error_msg, "BAD_FILE_YEAR"); exit_value = 2; } break; } if (g.v.audio.is_vbr == 0) { if (!strcomp("160,192", g.v.audio.bitrate)) { d_log("zipscript-c: File is encoded using banned bitrate (%d)\n", g.v.audio.bitrate); sprintf(g.v.misc.error_msg, "%s kbit codec is not allowed here!", g.v.audio.bitrate); if (1 == 1) { if (g.ui[g.v.user.pos]->files == 1) { d_log("zipscript-c: warn on - logging to logfile\n"); write_log = g.v.misc.write_log; g.v.misc.write_log = 1; error_msg = convert(&g.v, g.ui, g.gi, "{%U} {%G} {%X}"); writelog(&g, error_msg, "BADBITRATE"); g.v.misc.write_log = write_log; } else d_log("zipscript-c: warn on - have already logged to logfile\n"); } else { mark_as_bad(g.v.file.name); write_log = g.v.misc.write_log; g.v.misc.write_log = 1; error_msg = convert(&g.v, g.ui, g.gi, "{%r} {%U} {%G} {%n}"); if ((g.ui[g.v.user.pos]->files == 1) && (exit_value < 2)) writelog(&g, error_msg, "BAD_FILE_BITRATE"); exit_value = 2; } break; } } } else d_log("zipscript-c: user is in a no audio check dir - skipping checks.\n"); } if ("+-=[ID3tag]=------------------------===------------+\n| Title : %-39y |\n| Artist : %-39x |\n| Album : %-39W |\n| Genre : %-39w |\n| Year : %-39Y |\n" != ((void *)0)) { d_log("zipscript-c: Printing realtime_mp3_info.\n"); printf("%s", convert(&g.v, g.ui, g.gi, "+-=[ID3tag]=------------------------===------------+\n| Title : %-39y |\n| Artist : %-39x |\n| Album : %-39W |\n| Genre : %-39w |\n| Year : %-39Y |\n")); } break; case RTYPE_VIDEO: d_log("zipscript-c: Trying to read video header.\n"); if (insampledir(g.l.path)) { if (!avinfo(g.v.file.name, &g.v.avinfo)) { d_log("zipscript-c: Writing %s announce to %s.\n", "SAMPLEDIR", "/opt/wzdftpd/ftp-data/logs/glftpd.log"); write_log = g.v.misc.write_log; g.v.misc.write_log = 1; writelog(&g, convert(&g.v, g.ui, g.gi, "{%U} {%G} {%D} {%E} {%.3H} {%.2;} {%:} {%,} {%`} {%=} {%>} {%<}"), "SAMPLEDIR"); g.v.misc.write_log = write_log; } if (0 == 1) { d_log("zipscript-c: Executing sample_script (%s).\n", "/bin/sample_script.sh"); if (!fileexists("/bin/sample_script.sh")) d_log("zipscript-c: Warning - sample_script (%s) - file does not exist!\n", "/bin/sample_script.sh"); sprintf(target, "/bin/sample_script.sh" " \"%s\"", g.v.file.name); if (execute(target) != 0) d_log("zipscript-c: Failed to execute sample_script: %s\n", strerror((*__errno_location ()))); } } race_msg = "{%U} {%G} {%R} {%r} {%.0S} {%n} {%d} {%.1p} {%u} {%g} {%F} {%f} {%M} \"%K\" {%B} {%$} {%D} {%E} {%.3H} {%.2;} {%:} {%,} {%`} {%=} {%>} {%<}"; update_msg = "{%U} {%G} {%f} {%.0S} {%.1e} {%n} {%r} \"%K\" {%$} {%D} {%E} {%.3H} {%.2;} {%:} {%,} {%`} {%=} {%>} {%<}"; halfway_msg = g.v.total.users > 1 ? "{%r} %C0 %c0 {%.0m} {%F} {%.1p} {%.0A} {%.0a} {%M} {%n} {%u} {%g} {%U} {%G} {%f} {%B} {%$} {%D} {%E} {%.3H} {%.2;} {%:} {%,} {%`} {%=} {%>} {%<}" : "{%r} %C0 %c0 {%.0m} {%F} {%.1p} {%.0A} {%.0a} {%M} {%n} {%u} {%g} {%U} {%G} {%f} \"%K\" {%$} {%D} {%E} {%.3H} {%.2;} {%:} {%,} {%`} {%=} {%>} {%<}";; newleader_msg = "{%U} {%G} {%.0S} {%d} {%F} {%.1p} {%.0m} {%r} {%n} {%u} {%g} {%f} {%M} %C0 %c0 \"%K\" {%R} {%$} {%D} {%E} {%.3H} {%.2;} {%:} {%,} {%`} {%=} {%>} {%<}"; break; default: get_rar_info(&g.v); race_msg = "{%U} {%G} {%R} {%r} {%.0S} {%n} {%d} {%.1p} {%u} {%g} {%F} {%f} {%M} \"%K\" {%B} {%J} {%$}"; update_msg = "{%U} {%G} {%f} {%.0S} {%.1e} {%n} {%r} \"%K\" {%J} {%$}"; halfway_msg = g.v.total.users > 1 ? "{%r} %C0 %c0 {%.0m} {%F} {%.1p} {%.0A} {%.0a} {%M} {%n} {%u} {%g} {%U} {%G} {%f} {%B} {%J} {%$}" : "{%r} %C0 %c0 {%.0m} {%F} {%.1p} {%.0A} {%.0a} {%M} {%n} {%u} {%g} {%U} {%G} {%f} \"%K\" {%J} {%$}";; newleader_msg = "{%U} {%G} {%.0S} {%d} {%F} {%.1p} {%.0m} {%r} {%n} {%u} {%g} {%f} {%M} %C0 %c0 \"%K\" {%R} {%J} {%$}"; d_log("zipscript-c: WARNING! Not a known release type - Contact the authors! (2:%d)\n", g.v.misc.release_type); break; } if (!race_msg) d_log("zipscript-c: Something's messed up - race_msg not set!\n"); if (exit_value == 0 && *g.v.file.unlink) { d_log("zipscript-c: Removing missing indicator\n"); unlink_missing(g.v.file.unlink);# 1371 "zipscript-c.c" } break; case 4: d_log("zipscript-c: File type: NO CHECK\n"); if (!matchpath("/opt/wzdftpd/site/groups/", g.l.path) && !matchpath("/opt/wzdftpd/site/private/", g.l.path) && insampledir(g.l.path) && strcomp("mpg,mpeg,m2v,m2p,avi", fileext) && !avinfo(g.v.file.name, &g.v.avinfo)) { d_log("zipscript-c: Writing %s announce to %s.\n", "SAMPLEDIR", "/opt/wzdftpd/ftp-data/logs/glftpd.log"); write_log = g.v.misc.write_log; g.v.misc.write_log = 1; writelog(&g, convert(&g.v, g.ui, g.gi, "{%U} {%G} {%D} {%E} {%.3H} {%.2;} {%:} {%,} {%`} {%=} {%>} {%<}"), "SAMPLEDIR"); g.v.misc.write_log = write_log; if (0 == 1) { d_log("zipscript-c: Executing sample_script (%s).\n", "/bin/sample_script.sh"); if (!fileexists("/bin/sample_script.sh")) d_log("zipscript-c: Warning - sample_script (%s) - file does not exist!\n", "/bin/sample_script.sh"); sprintf(target, "/bin/sample_script.sh" " \"%s\"", g.v.file.name); if (execute(target) != 0) d_log("zipscript-c: Failed to execute sample_script: %s\n", strerror((*__errno_location ()))); } } no_check = 1; break; case 255: d_log("zipscript-c: File type: UNKNOWN [ignored in sfv]\n"); sprintf(g.v.misc.error_msg, "%s-file: Not allowed!", fileext); mark_as_bad(g.v.file.name); write_log = g.v.misc.write_log; g.v.misc.write_log = 1; error_msg = convert(&g.v, g.ui, g.gi, "{%r} {%U} {%G} {%n}"); if (exit_value < 2) writelog(&g, error_msg, "BAD_FILE_DISALLOWED"); exit_value = 2; break; } } if (no_check == 1 && exit_value < 2) { printf("| + File: ok! (allowed w/o any checks) |\n"); printf("%s", convert(&g.v, g.ui, g.gi, "`--------------------------------=====-------------'\n")); } else if (exit_value == 0) { if (g.v.total.users > 0) { d_log("zipscript-c: Sorting race stats\n"); sortstats(&g.v, g.ui, g.gi); d_log("zipscript-c: Printing on-site race info\n"); showstats(&g.v, g.ui, g.gi); if (!1 || ((g.v.total.users > 1 && g.ui[g.ui[0]->pos]->files >= (g.ui[g.ui[1]->pos]->files + 2)) || g.v.total.users == 1)) { d_log("zipscript-c: Writing current leader to file\n"); read_write_leader(g.l.leader, &g.v, g.ui[g.ui[0]->pos]); } if (g.v.total.users > 1) { if (g.ui[g.v.user.pos]->files == 1 && race_msg != ((void *)0)) { d_log("zipscript-c: Writing RACE to %s\n", "/opt/wzdftpd/ftp-data/logs/glftpd.log"); race_type = "RACE"; switch (g.v.misc.release_type) { case RTYPE_RAR: race_type = "RACE_RAR"; break; case RTYPE_OTHER: race_type = "RACE_OTHER"; break; case RTYPE_AUDIO: race_type = "RACE_AUDIO"; break; case RTYPE_VIDEO: race_type = "RACE_VIDEO"; break; case RTYPE_NULL: race_type = "RACE_ZIP"; break; default: race_type = "RACE_RAR"; d_log("zipscript-c: WARNING! Not a known release type - Contact the authors! (3:%d)\n", g.v.misc.release_type); break; } if (!race_type) d_log("zipscript-c: Something's messed up - race_type not set!\n"); if (g.v.misc.data_completed) { d_log("zipscript-c: This release has previously been announced complete - skipping announce\n"); error_msg = convert(&g.v, g.ui, g.gi, "{%r} {%U} {%G} {%n}"); writelog(&g, error_msg, "BAD_FILE_DUPERELEASE"); } else writelog(&g, convert(&g.v, g.ui, g.gi, race_msg), race_type); } if (g.v.total.files >= 1 && ((g.v.total.size * g.v.total.files) >= (10 * 1024 * 1024)) && __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (g.v.misc.old_leader) && __builtin_constant_p (g.ui[g.ui[0]->pos]->name) && (__s1_len = strlen (g.v.misc.old_leader), __s2_len = strlen (g.ui[g.ui[0]->pos]->name), (!((size_t)(const void *)((g.v.misc.old_leader) + 1) - (size_t)(const void *)(g.v.misc.old_leader) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((g.ui[g.ui[0]->pos]->name) + 1) - (size_t)(const void *)(g.ui[g.ui[0]->pos]->name) == 1) || __s2_len >= 4)) ? __builtin_strcmp (g.v.misc.old_leader, g.ui[g.ui[0]->pos]->name) : (__builtin_constant_p (g.v.misc.old_leader) && ((size_t)(const void *)((g.v.misc.old_leader) + 1) - (size_t)(const void *)(g.v.misc.old_leader) == 1) && (__s1_len = strlen (g.v.misc.old_leader), __s1_len < 4) ? (__builtin_constant_p (g.ui[g.ui[0]->pos]->name) && ((size_t)(const void *)((g.ui[g.ui[0]->pos]->name) + 1) - (size_t)(const void *)(g.ui[g.ui[0]->pos]->name) == 1) ? __builtin_strcmp (g.v.misc.old_leader, g.ui[g.ui[0]->pos]->name) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (g.ui[g.ui[0]->pos]->name); register int __result = (((const unsigned char *) (const char *) (g.v.misc.old_leader))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (g.v.misc.old_leader))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (g.v.misc.old_leader))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (g.v.misc.old_leader))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (g.ui[g.ui[0]->pos]->name) && ((size_t)(const void *)((g.ui[g.ui[0]->pos]->name) + 1) - (size_t)(const void *)(g.ui[g.ui[0]->pos]->name) == 1) && (__s2_len = strlen (g.ui[g.ui[0]->pos]->name), __s2_len < 4) ? (__builtin_constant_p (g.v.misc.old_leader) && ((size_t)(const void *)((g.v.misc.old_leader) + 1) - (size_t)(const void *)(g.v.misc.old_leader) == 1) ? __builtin_strcmp (g.v.misc.old_leader, g.ui[g.ui[0]->pos]->name) : (__extension__ ({ const unsigned char *__s1 = (const unsigned char *) (const char *) (g.v.misc.old_leader); register int __result = __s1[0] - ((const unsigned char *) (const char *) (g.ui[g.ui[0]->pos]->name))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((const unsigned char *) (const char *) (g.ui[g.ui[0]->pos]->name))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((const unsigned char *) (const char *) (g.ui[g.ui[0]->pos]->name))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((const unsigned char *) (const char *) (g.ui[g.ui[0]->pos]->name))[3]); } } __result; }))) : __builtin_strcmp (g.v.misc.old_leader, g.ui[g.ui[0]->pos]->name)))); }) && newleader_msg != ((void *)0) && g.ui[g.ui[0]->pos]->files >= (g.ui[g.ui[1]->pos]->files + 2) && g.v.total.files_missing) { d_log("zipscript-c: Writing NEWLEADER to %s\n", "/opt/wzdftpd/ftp-data/logs/glftpd.log"); newleader_type = "NEWLEADER"; switch (g.v.misc.release_type) { case RTYPE_RAR: newleader_type = "NEWLEADER_RAR"; break; case RTYPE_OTHER: newleader_type = "NEWLEADER_OTHER"; break; case RTYPE_AUDIO: newleader_type = "NEWLEADER_AUDIO"; break; case RTYPE_VIDEO: newleader_type = "NEWLEADER_VIDEO"; break; case RTYPE_NULL: newleader_type = "NEWLEADER_ZIP"; break; default: newleader_type = "NEWLEADER_RAR"; d_log("zipscript-c: WARNING! Not a known release type - Contact the authors! (4:%d)\n", g.v.misc.release_type); break; } if (!newleader_type) d_log("zipscript-c: Something's messed up - newleader_type not set!\n"); if (g.v.misc.data_completed) { d_log("zipscript-c: This release has previously been announced complete - skipping announce\n"); error_msg = convert(&g.v, g.ui, g.gi, "{%r} {%U} {%G} {%n}"); writelog(&g, error_msg, "BAD_FILE_DUPERELEASE"); } else writelog(&g, convert(&g.v, g.ui, g.gi, newleader_msg), newleader_type); } } else { if (g.ui[g.v.user.pos]->files == 1 && g.v.total.files >= 2 && ((g.v.total.size * g.v.total.files) >= (1 * 1024 * 1024)) && update_msg != ((void *)0)) { d_log("zipscript-c: Writing UPDATE to %s\n", "/opt/wzdftpd/ftp-data/logs/glftpd.log"); update_type = "UPDATE"; switch (g.v.misc.release_type) { case RTYPE_RAR: update_type = "UPDATE_RAR"; break; case RTYPE_OTHER: update_type = "UPDATE_OTHER"; break; case RTYPE_AUDIO: if (g.v.audio.is_vbr == 0) { update_type = "UPDATE_CBR"; } else { update_type = "UPDATE_VBR"; }; break; case RTYPE_VIDEO: update_type = "UPDATE_VIDEO"; break; case RTYPE_NULL: update_type = "UPDATE_ZIP"; break; default: update_type = "UPDATE_RAR"; d_log("zipscript-c: WARNING! Not a known release type - Contact the authors! (5:%d)\n", g.v.misc.release_type); break; } if (!update_type) d_log("zipscript-c: Something's messed up - update_type not set!\n"); if (g.v.misc.data_completed) { d_log("zipscript-c: This release has previously been announced complete - skipping announce\n"); error_msg = convert(&g.v, g.ui, g.gi, "{%r} {%U} {%G} {%n}"); writelog(&g, error_msg, "BAD_FILE_DUPERELEASE"); } else writelog(&g, convert(&g.v, g.ui, g.gi, update_msg), update_type); } } } if (g.v.total.files_missing > 0) { if (g.v.total.files_missing == g.v.total.files >> 1 && g.v.total.files >= 10 && ((g.v.total.size * g.v.total.files) >= (10 * 1024 * 1024)) && halfway_msg != ((void *)0)) { d_log("zipscript-c: Writing HALFWAY to %s\n", "/opt/wzdftpd/ftp-data/logs/glftpd.log"); norace_halfway_type = "HALFWAY_NORACE"; race_halfway_type = "HALFWAY_RACE"; switch (g.v.misc.release_type) { case RTYPE_RAR: norace_halfway_type = "HALFWAY_NORACE_RAR"; race_halfway_type = "HALFWAY_RACE_RAR"; break; case RTYPE_OTHER: norace_halfway_type = "HALFWAY_NORACE_OTHER"; race_halfway_type = "HALFWAY_RACE_OTHER"; break; case RTYPE_AUDIO: norace_halfway_type = "HALFWAY_NORACE_AUDIO"; race_halfway_type = "HALFWAY_RACE_AUDIO"; break; case RTYPE_VIDEO: norace_halfway_type = "HALFWAY_NORACE_VIDEO"; race_halfway_type = "HALFWAY_RACE_VIDEO"; break; case RTYPE_NULL: norace_halfway_type = "HALFWAY_NORACE_ZIP"; race_halfway_type = "HALFWAY_RACE_ZIP"; break; default: norace_halfway_type = "HALFWAY_NORACE_RAR"; race_halfway_type = "HALFWAY_RACE_RAR"; d_log("zipscript-c: WARNING! Not a known release type - Contact the authors! (6:%d)\n", g.v.misc.release_type); break; } if (!race_halfway_type) d_log("zipscript-c: Something's messed up - race_halfway_type not set!\n"); if (g.v.misc.data_completed) { d_log("zipscript-c: This release has previously been announced complete - skipping announce\n"); error_msg = convert(&g.v, g.ui, g.gi, "{%r} {%U} {%G} {%n}"); writelog(&g, error_msg, "BAD_FILE_DUPERELEASE"); } else writelog(&g, convert(&g.v, g.ui, g.gi, halfway_msg), (g.v.total.users > 1 ? race_halfway_type : norace_halfway_type)); } d_log("zipscript-c: Caching progress bar\n"); buffer_progress_bar(&g.v); if (!matchpath("/opt/wzdftpd/site/groups/", g.l.path) || 1) { d_log("zipscript-c: Creating incomplete indicator:\n", g.l.incomplete); d_log("zipscript-c: name: '%s', incomplete: '%s', path: '%s'\n", g.v.misc.release_name, g.l.incomplete, g.l.path); symlink(g.v.misc.release_name, g.l.incomplete); } d_log("zipscript-c: Creating/moving progress bar\n"); move_progress_bar(0, &g.v, g.ui, g.gi); printf("%s", convert(&g.v, g.ui, g.gi, "`-[%V]----------------------[%3F/%-3f]--'\n")); } else if ((g.v.total.files_missing == 0) && (g.v.total.files > 0)) { d_log("zipscript-c: Caching progress bar\n"); buffer_progress_bar(&g.v); printf("%s", convert(&g.v, g.ui, g.gi, "`-[%V]----------------------[%3F/%-3f]--'\n")); d_log("zipscript-c: Setting complete pointers\n"); switch (g.v.misc.release_type) { case RTYPE_NULL: complete_bar = "[%Z] - ( %.0mM %fF - COMPLETE ) - [%Z]"; complete_msg = g.v.total.users > 1 ? "{%r} {%.0m} {%f} {%.0A} {%.0a} {%d} {%u} {%g} %l %L %C0 %c0 {%n} {%B} {%t} {%T}" : "{%r} {%.0m} {%f} {%.0A} {%.0a} {%d} {%U} {%G} {%n} \"%K\" %t %T";; complete_announce = g.v.total.users > 1 ? "COMPLETE_STAT_RACE_ZIP" : "COMPLETE_ZIP";; break; case RTYPE_RAR: complete_bar = "[%Z] - ( %.0mM %fF - COMPLETE ) - [%Z]"; complete_msg = g.v.total.users > 1 ? "{%r} {%.0m} {%f} {%.0A} {%.0a} {%d} {%u} {%g} %l %L %C0 %c0 {%n} {%B} {%J} {%t} {%T}" : "{%r} {%.0m} {%f} {%.0A} {%.0a} {%d} {%U} {%G} {%n} \"%K\" {%J} %t %T";; complete_announce = g.v.total.users > 1 ? "COMPLETE_STAT_RACE_RAR" : "COMPLETE_RAR";; break; case RTYPE_OTHER: complete_bar = "[%Z] - ( %.0mM %fF - COMPLETE ) - [%Z]"; complete_msg = g.v.total.users > 1 ? "{%r} {%.0m} {%f} {%.0A} {%.0a} {%d} {%u} {%g} %l %L %C0 %c0 {%n} {%B} {%t} {%T}" : "{%r} {%.0m} {%f} {%.0A} {%.0a} {%d} {%U} {%G} {%n} \"%K\" %t %T";; complete_announce = g.v.total.users > 1 ? "COMPLETE_STAT_RACE_OTHER" : "COMPLETE_OTHER";; break; case RTYPE_AUDIO: complete_bar = "[%Z] - ( %.0mM %fF - COMPLETE - %w %Y ) - [%Z]"; complete_msg = g.v.total.users > 1 ? "{%r} {%.0m} {%f} {%.0A} {%.0a} {%d} {%u} {%g} %j %l %L %C0 %c0 {%n} {%B} {%t} {%T}" : "{%r} {%.0m} {%f} {%.0A} {%.0a} {%d} {%U} {%G} %j {%n} \"%K\" %t %T";; if (g.v.audio.is_vbr == 0) { complete_announce = g.v.total.users > 1 ? "COMPLETE_STAT_RACE_AUDIO_CBR" : "COMPLETE_AUDIO_CBR";; } else { complete_announce = g.v.total.users > 1 ? "COMPLETE_STAT_RACE_AUDIO_VBR" : "COMPLETE_AUDIO_VBR";; } d_log("zipscript-c: Symlinking audio\n"); if (g.v.misc.write_log == 1 && !matchpath("/opt/wzdftpd/site/groups/", g.l.path) && !matchpath("/site/incoming/requests/", g.l.path)) audioSort(&g.v.audio, g.l.link_source, g.l.link_target); else d_log("zipscript-c: Symlinking halted - will not create symlinks for this release.\n"); if (findfileext(dir, ".sfv")) { d_log("zipscript-c: Creating m3u\n"); cnt = sprintf(target, findfileext(dir, ".sfv")); strlcpy(target + cnt - 3, "m3u", 4); create_indexfile(g.l.race, &g.v, target); } else d_log("zipscript-c: Cannot create m3u, sfv is missing\n"); break; case RTYPE_VIDEO: complete_bar = "[%Z] - ( %.0mM %fF - COMPLETE ) - [%Z]"; complete_msg = g.v.total.users > 1 ? "{%r} {%.0m} {%f} {%.0A} {%.0a} {%d} {%u} {%g} %l %L %C0 %c0 {%n} {%B} {%t} {%T} {%D} {%E} {%.3H} {%.2;} {%:} {%,} {%`} {%=} {%>} {%<}" : "{%r} {%.0m} {%f} {%.0A} {%.0a} {%d} {%U} {%G} {%n} \"%K\" %t %T {%D} {%E} {%.3H} {%.2;} {%:} {%,} {%`} {%=} {%>} {%<}";; complete_announce = g.v.total.users > 1 ? "COMPLETE_STAT_RACE_VIDEO" : "COMPLETE_VIDEO";; break; default: complete_bar = "[%Z] - ( %.0mM %fF - COMPLETE ) - [%Z]"; complete_msg = g.v.total.users > 1 ? "{%r} {%.0m} {%f} {%.0A} {%.0a} {%d} {%u} {%g} %l %L %C0 %c0 {%n} {%B} {%J} {%t} {%T}" : "{%r} {%.0m} {%f} {%.0A} {%.0a} {%d} {%U} {%G} {%n} \"%K\" {%J} %t %T";; complete_announce = g.v.total.users > 1 ? "COMPLETE_STAT_RACE_RAR" : "COMPLETE_RAR";; d_log("zipscript-c: WARNING! Not a known release type - Contact the authors! (7:%d)\n", g.v.misc.release_type); break; } if (complete_bar) { d_log("zipscript-c: Removing old complete bar, if any\n"); removecomplete(); } d_log("zipscript-c: Removing incomplete indicator (%s)\n", g.l.incomplete); complete(&g, complete_type); if (complete_msg != ((void *)0)) { if (g.v.misc.data_completed) { d_log("zipscript-c: This release has previously been announced complete - skipping announce\n"); error_msg = convert(&g.v, g.ui, g.gi, "{%r} {%U} {%G} {%n}"); writelog(&g, error_msg, "BAD_FILE_DUPERELEASE"); } else { d_log("zipscript-c: Writing COMPLETE and STATS to %s\n", "/opt/wzdftpd/ftp-data/logs/glftpd.log"); writelog(&g, convert(&g.v, g.ui, g.gi, complete_msg), complete_announce); writetop(&g, complete_type); g.v.misc.data_completed = 1; } } if (complete_bar) { d_log("zipscript-c: Creating complete bar\n"); mkdir(convert(&g.v, g.ui, g.gi, complete_bar), 0777);; }# 1741 "zipscript-c.c" if (!matchpath("/opt/wzdftpd/site/groups/", g.l.path) || 1) { if (g.l.nfo_incomplete && matchpath("", g.l.path) && !findfileext(dir, ".nfo")) { if (!g.l.in_cd_dir) { d_log("zipscript-c: Creating missing-nfo indicator %s.\n", g.l.nfo_incomplete); symlink(g.v.misc.release_name, g.l.nfo_incomplete); } else { if (!findfileextparent(parent, ".nfo")) { d_log("zipscript-c: Creating missing-nfo indicator (base) %s.\n", g.l.nfo_incomplete); if ((inc_point[0] = find_last_of(g.l.path, "/")) != g.l.path) *inc_point[0] = '\0'; if ((inc_point[1] = find_last_of(g.v.misc.release_name, "/")) != g.v.misc.release_name) *inc_point[1] = '\0'; symlink(g.v.misc.release_name, g.l.nfo_incomplete); if (*inc_point[0] == '\0') *inc_point[0] = '/'; if (*inc_point[1] == '\0') *inc_point[1] = '/'; } } } } } else { g.v.total.files = -g.v.total.files_missing; g.v.total.files_missing = 0; printf("%s", convert(&g.v, g.ui, g.gi, "`-[ - NO - SFV - ]----------------------[%3F/???]--'\n")); } } else { d_log("zipscript-c: Logging file as bad\n"); remove_from_race(g.l.race, g.v.file.name, &g.v); printf("%s", convert(&g.v, g.ui, g.gi, "| - %-46v |\n`-----------------------------------========-------'\n")); }# 1803 "zipscript-c.c" if ((findfileext(dir, ".nfo") || (g.l.in_cd_dir && findfileextparent(parent, ".nfo"))) && g.l.nfo_incomplete) { d_log("zipscript-c: Removing missing-nfo indicator (if any)\n"); remove_nfo_indicator(&g); }# 1831 "zipscript-c.c" d_log("zipscript-c: Releasing memory and removing lock\n"); closedir(dir); closedir(parent); remove_lock(&g.v); if (fileexists(".delme")) unlink(".delme"); buffer_groups("/etc/group", gnum); buffer_users("/etc/passwd", unum); updatestats_free(&g); ng_free(fileext); ng_free(target); ng_free(g.l.race); ng_free(g.l.sfv); ng_free(g.l.sfvbackup); ng_free(g.l.leader); gettimeofday(&bstop, (struct timezone *)0); printf("Checks completed in %0.6f seconds.\n", ((bstop.tv_sec - bstart.tv_sec) + (bstop.tv_usec - bstart.tv_usec) / 1000000.)); d_log("zipscript-c: Checks completed in %0.6f seconds.\n", ((bstop.tv_sec - bstart.tv_sec) + (bstop.tv_usec - bstart.tv_usec) / 1000000.));# 1865 "zipscript-c.c" d_log("zipscript-c: Exit %d\n", exit_value); return exit_value;}