/* Generated by CIL v. 1.2.4 */
/* print_CIL_Input is false */

#define CCURED_SPLIT_ARGUMENTS
// #define CCURED_ALLOW_PARTIAL_ELEMENTS_IN_SEQUENCE
// #define CCURED_LOG_NON_POINTERS
// #define CCURED_USE_STRINGS
#define CCURED_FAIL_IS_TERSE
#define CCURED_ALWAYS_STOP_ON_ERROR
// Include the definition of the checkers
#define CCURED
#define CCURED_POST
#include "ccuredcheck.h"
extern unsigned int ___stack_threshhold      ;
extern unsigned int ___compute_stack_threshhold(void)      ;
extern void ___stack_overflow(void)      ;
//#line  452 "d:/home/db/postdoc/Blast/ccured/include/ccured.h"
struct printf_arguments {
   int i    ;
   double d    ;
   char *  __ROSTRING   s    ;
   long long ll    ;
};
//#line  220 "C:/cygwin/lib/gcc-lib/i686-pc-cygwin/3.3.1/include/stddef.h"
typedef unsigned int size_t;
//#line  13 "/usr/include/sys/_types.h"
typedef long long _off64_t;
//#line  16 "/usr/include/sys/_types.h"
typedef int _ssize_t;
//#line  361 "C:/cygwin/lib/gcc-lib/i686-pc-cygwin/3.3.1/include/stddef.h"
typedef unsigned int wint_t;
//#line  25 "/usr/include/sys/_types.h"
union __anonunion___value_2 {
   wint_t __wch    ;
   unsigned char (    __wchb)[4]    ;
};
//#line  25 "/usr/include/sys/_types.h"
struct __anonstruct__mbstate_t_1 {
   int __count    ;
   union __anonunion___value_2 __value    ;
};
//#line  25 "/usr/include/sys/_types.h"
typedef struct __anonstruct__mbstate_t_1 _mbstate_t;
//#line  35 "/usr/include/sys/_types.h"
typedef int _flock_t;
//#line  19 "d:/home/db/postdoc/Blast/ccured/include/gcc_3.3.1/sys/reent.h"
typedef unsigned long __ULong;
//#line  40 "d:/home/db/postdoc/Blast/ccured/include/gcc_3.3.1/sys/reent.h"
struct _Bigint {
   struct _Bigint *    _next    ;
   int _k    ;
   int _maxwds    ;
   int _sign    ;
   int _wds    ;
   __ULong (    _x)[1]    ;
};
//#line  48 "d:/home/db/postdoc/Blast/ccured/include/gcc_3.3.1/sys/reent.h"
struct __tm {
   int __tm_sec    ;
   int __tm_min    ;
   int __tm_hour    ;
   int __tm_mday    ;
   int __tm_mon    ;
   int __tm_year    ;
   int __tm_wday    ;
   int __tm_yday    ;
   int __tm_isdst    ;
};
//#line  67 "d:/home/db/postdoc/Blast/ccured/include/gcc_3.3.1/sys/reent.h"
struct _on_exit_args {
   void *    (    _fnargs)[32]    ;
   __ULong _fntypes    ;
};
//#line  80 "d:/home/db/postdoc/Blast/ccured/include/gcc_3.3.1/sys/reent.h"
struct _atexit {
   struct _atexit *    _next    ;
   int _ind    ;
   void (*    (    _fns)[32])(void)    ;
   struct _on_exit_args _on_exit_args    ;
};
//#line  95 "d:/home/db/postdoc/Blast/ccured/include/gcc_3.3.1/sys/reent.h"
struct __sbuf {
   unsigned char *    _base    ;
   int _size    ;
};
//#line  105 "d:/home/db/postdoc/Blast/ccured/include/gcc_3.3.1/sys/reent.h"
typedef long _fpos_t;
//#line  109 "d:/home/db/postdoc/Blast/ccured/include/gcc_3.3.1/sys/reent.h"
typedef _off64_t _fpos64_t;
//#line  160
struct _reent;
//#line  208 "d:/home/db/postdoc/Blast/ccured/include/gcc_3.3.1/sys/reent.h"
struct __sFILE64 {
   unsigned char *    _p    ;
   int _r    ;
   int _w    ;
   short _flags    ;
   short _file    ;
   struct __sbuf _bf    ;
   int _lbfsize    ;
   struct _reent *    _data    ;
   void *    _cookie    ;
   _ssize_t ( __attribute__((__cdecl__)) (*    _read))(void *    _cookie , char *    _buf ,
                                                       int _n )    ;
   _ssize_t ( __attribute__((__cdecl__)) (*    _write))(void *    _cookie , char *    _buf ,
                                                        int _n )    ;
   _fpos_t ( __attribute__((__cdecl__)) (*    _seek))(void *    _cookie , _fpos_t _offset ,
                                                      int _whence )    ;
   int ( __attribute__((__cdecl__)) (*    _close))(void *    _cookie )    ;
   struct __sbuf _ub    ;
   unsigned char *    _up    ;
   int _ur    ;
   unsigned char (    _ubuf)[3]    ;
   unsigned char (    _nbuf)[1]    ;
   struct __sbuf _lb    ;
   int _blksize    ;
   int _flags2    ;
   _off64_t _offset    ;
   _fpos64_t ( __attribute__((__cdecl__)) (*    _seek64))(void *    _cookie , _fpos64_t _offset ,
                                                          int _whence )    ;
   _flock_t _lock    ;
};
//#line  251 "d:/home/db/postdoc/Blast/ccured/include/gcc_3.3.1/sys/reent.h"
typedef struct __sFILE64 __FILE;
//#line  256 "d:/home/db/postdoc/Blast/ccured/include/gcc_3.3.1/sys/reent.h"
struct _glue {
   struct _glue *    _next    ;
   int _niobs    ;
   __FILE *    _iobs    ;
};
//#line  284 "d:/home/db/postdoc/Blast/ccured/include/gcc_3.3.1/sys/reent.h"
struct _rand48 {
   unsigned short (    _seed)[3]    ;
   unsigned short (    _mult)[3]    ;
   unsigned short _add    ;
};
//#line  533 "d:/home/db/postdoc/Blast/ccured/include/gcc_3.3.1/sys/reent.h"
struct _new_reent {
   unsigned int _unused_rand    ;
   char *    _strtok_last    ;
   char (    _asctime_buf)[26]    ;
   struct __tm _localtime_buf    ;
   int _gamma_signgam    ;
   unsigned long long _rand_next    ;
   struct _rand48 _r48    ;
   _mbstate_t _mblen_state    ;
   _mbstate_t _mbtowc_state    ;
   _mbstate_t _wctomb_state    ;
   char (    _l64a_buf)[8]    ;
   char (    _signal_buf)[24]    ;
   int _getdate_err    ;
   _mbstate_t _mbrlen_state    ;
   _mbstate_t _mbrtowc_state    ;
   _mbstate_t _mbsrtowcs_state    ;
   _mbstate_t _wcrtomb_state    ;
   _mbstate_t _wcsrtombs_state    ;
};
//#line  533 "d:/home/db/postdoc/Blast/ccured/include/gcc_3.3.1/sys/reent.h"
struct __anonstruct__new_3 {
   struct _new_reent _reent    ;
   char (    _unused)[(int )((2U * sizeof(int )) * 30U - sizeof(struct _new_reent ))]    ;
};
//#line  533 "d:/home/db/postdoc/Blast/ccured/include/gcc_3.3.1/sys/reent.h"
struct _reent {
   int _errno    ;
   __FILE *    _stdin    ;
   __FILE *    _stdout    ;
   __FILE *    _stderr    ;
   int _inc    ;
   char (    _emergency)[25]    ;
   int _current_category    ;
   char *    _current_locale    ;
   int __sdidinit    ;
   void ( __attribute__((__cdecl__)) (*    __cleanup))(struct _reent *     )    ;
   struct _Bigint *    _result    ;
   int _result_k    ;
   struct _Bigint *    _p5s    ;
   struct _Bigint *    *    _freelist    ;
   int _cvtlen    ;
   char *    _cvtbuf    ;
   struct __anonstruct__new_3 _new    ;
   struct _atexit *    _atexit    ;
   struct _atexit _atexit0    ;
   void (*    *    _sig_func)(int  )    ;
   struct _glue __sglue    ;
   __FILE (    __sf)[3]    ;
};
//#line  6 "tree.h"
struct tree {
   int val    ;
   struct tree *    left    ;
   struct tree *    right    ;
};
//#line  6 "tree.h"
typedef struct tree tree_t;
//#line  243 "d:/home/db/postdoc/Blast/ccured/include/ccured_GNUCC.patch"
struct __ccured_va_list;
//#line  50 "d:/home/db/postdoc/Blast/ccured/include/gcc_3.3.1/stdio.h"
typedef __FILE FILE;
//#line  105 "d:/home/db/postdoc/Blast/ccured/include/stdio_wrappers.h"
struct scanf_format {
   int *    p_int    ;
   double *    p_double    ;
   long *    p_long    ;
   unsigned int *    p_uint    ;
   unsigned long *    p_ulong    ;
   char *    p_char    ;
   short *    p_short    ;
};
//#line  263 "d:/home/db/postdoc/Blast/ccured/include/ccured_GNUCC.patch"
struct __ccured_va_list {
   int next    ;
};
//#line  129 "d:/home/db/postdoc/Blast/ccured/include/ccuredannot.h"
extern void __ccuredInit(void)     ;
//#line  328 "d:/home/db/postdoc/Blast/ccured/include/ccured.h"
extern  __attribute__((__noreturn__)) void abort_deepcopy(char *    errmsg )     ;
//#line  4 "ssplain.h"
void *    ssplain_malloc(int size     )     ;
//#line  5
void *    ssplain_calloc(int nelems     , int size     )     ;
//#line  6
void ssplain_alloc_stats(void)     ;
//#line  739 "D:/home/db/Software/cygwin/usr/include/sys/reent.h"
extern struct _reent *    ( __attribute__((__cdecl__)) __getreent)(void)     ;
//#line  56 "d:/home/db/postdoc/Blast/ccured/include/gcc_3.3.1/stdlib.h"
extern int ( __attribute__((__cdecl__)) atoi)(char *    __nptr )     ;
//#line  65
extern  __attribute__((__noreturn__)) void ( __attribute__((__cdecl__)) exit)(int __status )     ;
//#line  86 "ssplain.h"
void ( __CCUREDFORMAT(1) __CCUREDVARARG(struct printf_arguments )  chatting)(char *    s     
                                                                             , ...)     ;
//#line  15 "tree.h"
tree_t *    TreeAlloc(int level___0     )     ;
//#line  17
int level     ;
//#line  18
int iters     ;
extern unsigned int ( __attribute__((__cdecl__)) /*9*/malloc)(size_t __size )     ;
//#line  13 "par-alloc.c"
tree_t *    TreeAlloc(int level___0     )     ;
//#line  13 "par-alloc.c"
tree_t *    TreeAlloc(int level___0     ) 
{ int volatile   ___first_local ;
  struct tree *    new     ;
  struct tree *    right     ;
  struct tree *    left     ;
  int __a_local     ;
  tree_t *    __retres ;
  struct tree *    __cil_tmp8 ;
  struct tree *    __cil_tmp9 ;
  tree_t *    __cil_tmp10 ;
  tree_t *    __cil_tmp11 ;

  {
//#line  13
  __retres = (tree_t */*    */)0;
//#line  13
  left = (struct tree */*    */)0;
//#line  13
  right = (struct tree */*    */)0;
//#line  13
  new = (struct tree */*    */)0;

//#line  13
  if ((unsigned int )(& __a_local) <= ___stack_threshhold) {
//#line  13
    ___stack_overflow();
  }
  {

//#line  17
  if (level___0 == 0) {
//#line  19
    CHECK_RETURNPTR((void *)((tree_t */*    */)0), (void *)(& ___first_local));
//#line  19
    return ((tree_t */*    */)0);
  } else {
//#line  25
    __cil_tmp9 = (struct tree */*    */)/*9*/malloc(((sizeof(tree_t ) + 3U) >> 2) <<
                                                    2);
//#line  25
    if (__cil_tmp9) {

//#line  25
      __cil_tmp8 = __cil_tmp9;


//#line  25
      CHECK_POSITIVE((int )(((sizeof(tree_t ) + 3U) >> 2) << 2) - (int )sizeof(struct tree ));
//#line  25
      __cil_tmp9->right = (struct tree */*    */)0;
//#line  25
      __cil_tmp9->left = (struct tree */*    */)0;


    } else {
//#line  25
      __cil_tmp8 = 0;
    }
//#line  25
    new = __cil_tmp8;
//#line  26
    __cil_tmp10 = TreeAlloc(level___0 - 1);
//#line  26
    left = (struct tree */*    */)__cil_tmp10;
//#line  27
    __cil_tmp11 = TreeAlloc(level___0 - 1);
//#line  27
    right = (struct tree */*    */)__cil_tmp11;
//#line  28
    CHECK_NULL((void *)new);
//#line  28
    new->val = 1;
//#line  29
    CHECK_NULL((void *)new);
//#line  29
    CHECK_STOREPTR((void *)(& new->left), (void *)((struct tree */*    */)left), (void *)(& ___first_local));
//#line  29
    new->left = (struct tree */*    */)left;
//#line  30
    CHECK_NULL((void *)new);
//#line  30
    CHECK_STOREPTR((void *)(& new->right), (void *)((struct tree */*    */)right),
                   (void *)(& ___first_local));
//#line  30
    new->right = (struct tree */*    */)right;
//#line  31
    CHECK_RETURNPTR((void *)((tree_t */*    */)new), (void *)(& ___first_local));
//#line  31
    return ((tree_t */*    */)new);
  }
  }
//#line  13
  CHECK_RETURNPTR((void *)__retres, (void *)(& ___first_local));
//#line  13
  return (__retres);
}
}
//#line  199 "d:/home/db/postdoc/Blast/ccured/include/gcc_3.3.1/stdio.h"
extern int ( __CCUREDFORMAT(2) __CCUREDVARARG(struct printf_arguments ) __attribute__((__cdecl__)) fprintf)(FILE *     ,
                                                                                                            char *     
                                                                                                            , ...)     ;
//#line  201
extern int ( __CCUREDFORMAT(1) __CCUREDVARARG(struct printf_arguments ) __attribute__((__cdecl__)) printf)(char *     
                                                                                                           , ...)     ;
//#line  204
extern int ( __CCUREDFORMAT(2) __CCUREDVARARG(struct printf_arguments ) __attribute__((__cdecl__)) vfprintf_ssvs)(FILE *     ,
                                                                                                                  char *     ,
                                                                                                                  struct __ccured_va_list *     )     ;
//#line  264 "d:/home/db/postdoc/Blast/ccured/include/ccured_GNUCC.patch"
extern void __ccured_va_start_vs(struct __ccured_va_list *     , unsigned long  )     ;
//#line  267
extern void __ccured_va_end_vs(struct __ccured_va_list *     )     ;
//#line  13 "node.c"
struct meta_fseqp_char {
   void *_e ;
}   ;
//#line  13 "node.c"
struct fseqp_char {
   char *  __FSEQ  _p ;
   struct meta_fseqp_char _ms ;
}   ;
//#line  13 "node.c"
typedef struct fseqp_char fseqp_char;
//#line  13 "node.c"
struct meta_fseqp_p_char {
   void *_e ;
}   ;
//#line  13
int dealwithargs_ff(int argc     , fseqp_char    *  __FSEQ  argv     , void *argv_e )     ;
//#line  19
int TreeAdd(tree_t *    t     )     ;
//#line  27
void filestuff(void)     ;
extern void *    /*12*/__trusted_cast(unsigned int p )     ;
extern unsigned int /*13*/wrapperAlloc(unsigned int  )     ;
extern struct fseqp_char    /*14*/__mkptr_string_fs(char *    p )     ;
extern void *    /*16*/__trusted_deepcast(void *    p )     ;
struct meta_seq_void {
   void *_b ;
   void *_e ;
}   ;
//#line  30
extern int __ccured_va_count ;
//#line  22 "node.c"
struct meta_seq_p_char {
   void *_b ;
   void *_e ;
}   ;
//#line  30 "node.c"
static char __string1[24]  = 
//#line  30
  {      'T',      'r',      'e',      'e', 
        'a',      'd',      'd',      ' ', 
        'w',      'i',      't',      'h', 
        ' ',      '%',      'd',      ' ', 
        'l',      'e',      'v',      'e', 
        'l',      's',      '\n',      '\000'};
//#line  32 "node.c"
static char __string2[26]  = 
//#line  32
  {      'A',      'b',      'o',      'u', 
        't',      ' ',      't',      'o', 
        ' ',      'e',      'n',      't', 
        'e',      'r',      ' ',      'T', 
        'r',      'e',      'e',      'A', 
        'l',      'l',      'o',      'c', 
        '\n',      '\000'};
//#line  34 "node.c"
static char __string3[24]  = 
//#line  34
  {      'A',      'b',      'o',      'u', 
        't',      ' ',      't',      'o', 
        ' ',      'e',      'n',      't', 
        'e',      'r',      ' ',      'T', 
        'r',      'e',      'e',      'A', 
        'd',      'd',      '\n',      '\000'};
//#line  38 "node.c"
static char __string4[16]  = 
//#line  38
  {      'I',      't',      'e',      'r', 
        'a',      't',      'i',      'o', 
        'n',      ' ',      '%',      'd', 
        '.',      '.',      '.',      '\000'};
//#line  40 "node.c"
static char __string5[6]  = {      'd',      'o',      'n',      'e', 
        '\n',      '\000'};
//#line  43 "node.c"
static char __string6[23]  = 
//#line  43
  {      'R',      'e',      'c',      'e', 
        'i',      'v',      'e',      'd', 
        ' ',      'r',      'e',      's', 
        'u',      'l',      't',      ' ', 
        'o',      'f',      ' ',      '%', 
        'd',      '\n',      '\000'};
//#line  22
int main(int argc     , char *  __ROSTRING   *     __argv_input     )     ;
//#line  22 "node.c"
int main(int argc     , char *  __ROSTRING   *     __argv_input     ) 
{ int volatile   ___first_local ;
  struct fseqp_char    *  __SEQ  argv     ;
  tree_t *    root     ;
  int i     ;
  int result     ;
  struct _reent *    tmp     ;
  struct _reent *    tmp___0     ;
  int no_mangling10     ;
  int num_strings11     ;
  char *    *    p_argv12     ;
  unsigned int argvsize13     ;
  struct fseqp_char    *    tmp_argv14     ;
  int __retres ;
  void *    __cil_tmp16 ;
  struct fseqp_char    *  __SEQ  __cil_tmp17 ;
  struct fseqp_char    *  __SEQ  __cil_tmp18 ;
  unsigned int __cil_tmp19 ;
  struct fseqp_char    *  __SEQ  __cil_tmp20 ;
  struct fseqp_char    __cil_tmp21 ;
  char *  __FSEQ  __cil_tmp22 ;
  void *    __cil_tmp24 ;
  void *    __cil_tmp25 ;
  void *  __SEQ  __cil_tmp26 ;
  void *  __SEQ  __cil_tmp27 ;
  void *  __SEQ  __cil_tmp28 ;
  struct fseqp_char    *  __SEQ  __cil_tmp29 ;
  unsigned int __cil_tmp30 ;
  fseqp_char    *  __FSEQ  __cil_tmp31 ;
  tree_t *    __cil_tmp32 ;
  struct _reent *    __cil_tmp33 ;
  int __cil_tmp34 ;
  struct _reent *    __cil_tmp35 ;
  void *argv_b45 ;
  void *argv_e46 ;
  void *__cil_tmp17_b47 ;
  void *__cil_tmp17_e48 ;
  void *__cil_tmp20_b49 ;
  void *__cil_tmp20_e50 ;
  void *__cil_tmp22_e51 ;
  void *__cil_tmp26_b52 ;
  void *__cil_tmp26_e53 ;
  void *__cil_tmp27_b54 ;
  void *__cil_tmp27_e55 ;
  void *__cil_tmp28_b56 ;
  void *__cil_tmp28_e57 ;
  void *__cil_tmp29_b58 ;
  void *__cil_tmp29_e59 ;
  void *__cil_tmp31_e60 ;

  {
//#line  22
  tmp_argv14 = (struct fseqp_char    */*    */)0;
//#line  22
  p_argv12 = (char *    */*    */)0;
//#line  22
  tmp___0 = (struct _reent */*    */)0;
//#line  22
  tmp = (struct _reent */*    */)0;
//#line  22
  root = (tree_t */*    */)0;
//#line  22
  argv_e46 = (void *)0;
//#line  22
  argv_b45 = (void *)0;
//#line  22
  argv = (struct fseqp_char    */*  __SEQ  */)0;
  {
//#line  22
  no_mangling10 = 0;
//#line  22
  if ((int )__argv_input) {
    {
//#line  22
    no_mangling10 = 0;
//#line  22
    if (no_mangling10) {
      {
//#line  22
      no_mangling10 = 0;
      }
    }
    }
  } else {
    {
//#line  22
    no_mangling10 = 1;
    }
  }

//#line  22
  if (no_mangling10) {
    {
//#line  22
    __cil_tmp25 = /*16*/__trusted_deepcast((void */*    */)__argv_input);
//#line  22
    tmp_argv14 = (struct fseqp_char    */*    */)__cil_tmp25;
//#line  22
    if ((void */*    */)tmp_argv14) {
//#line  22
      __cil_tmp27 = (void */*    */)tmp_argv14;
//#line  22
      __cil_tmp27_b54 = (void */*    */)tmp_argv14;
//#line  22
      __cil_tmp27_e55 = (void */*    */)tmp_argv14 + sizeof((*argv));
//#line  22
      __cil_tmp26_e53 = __cil_tmp27_e55;
//#line  22
      __cil_tmp26_b52 = __cil_tmp27_b54;
//#line  22
      __cil_tmp26 = __cil_tmp27;
    } else {
//#line  22
      __cil_tmp28 = 0;
//#line  22
      __cil_tmp28_b56 = (void *)0;
//#line  22
      __cil_tmp28_e57 = (void *)0;
//#line  22
      __cil_tmp26_e53 = __cil_tmp28_e57;
//#line  22
      __cil_tmp26_b52 = __cil_tmp28_b56;
//#line  22
      __cil_tmp26 = __cil_tmp28;
    }
//#line  22
    CHECK_SEQALIGN(sizeof(struct fseqp_char    ), (void *)((struct fseqp_char    */*  __SEQ  */)__cil_tmp26),
                   __cil_tmp26_b52, __cil_tmp26_e53);
//#line  22
    __cil_tmp29 = (struct fseqp_char    */*  __SEQ  */)__cil_tmp26;
//#line  22
    __cil_tmp29_b58 = __cil_tmp26_b52;
//#line  22
    __cil_tmp29_e59 = __cil_tmp26_e53;
//#line  22
    argv_e46 = __cil_tmp29_e59;
//#line  22
    argv_b45 = __cil_tmp29_b58;
//#line  22
    argv = __cil_tmp29;
    }
  } else {
    {
//#line  22
    num_strings11 = 0;
//#line  22
    p_argv12 = (char *    */*    */)__argv_input;
//#line  22
    while (1) {
//#line  22
      CHECK_NULL((void *)p_argv12);
//#line  22
      if (! ((int )((unsigned int )(*p_argv12)))) {
//#line  22
        break;
      }
      {
//#line  22
      num_strings11 = num_strings11 + 1;
//#line  22
      __cil_tmp16 = /*12*/__trusted_cast((unsigned int )((void */*    */)((long )p_argv12 +
                                                                          sizeof((*__argv_input)))));
//#line  22
      p_argv12 = (char *    */*    */)__cil_tmp16;
      }
    }
//#line  22
    argvsize13 = (unsigned int )((1 + num_strings11) * sizeof((*argv)));
//#line  22
    __cil_tmp18 = (struct fseqp_char    */*  __SEQ  */)/*13*/wrapperAlloc(((argvsize13 +
                                                                            3U) >>
                                                                           2) << 2);
//#line  22
    if (__cil_tmp18) {

//#line  22
      __cil_tmp17 = __cil_tmp18;
//#line  22
      __cil_tmp17_b47 = (void *)__cil_tmp18;

//#line  22
      __cil_tmp19 = (unsigned int )__cil_tmp18 + (((argvsize13 + 3U) >> 2) << 2);

      while ((unsigned int )__cil_tmp18 + sizeof(struct fseqp_char    ) <= __cil_tmp19) {
//#line  22
        __cil_tmp18->_ms._e = (void *)0;
//#line  22
        __cil_tmp18->_p = (char */*  __FSEQ  */)0;
//#line  22
        __cil_tmp18 = __cil_tmp18 + 1;
      }
//#line  22
      __cil_tmp17_e48 = __cil_tmp18;
    } else {
//#line  22
      __cil_tmp17 = 0;
//#line  22
      __cil_tmp17_b47 = (void *)0;
//#line  22
      __cil_tmp17_e48 = (void *)0;
    }
//#line  22
    __cil_tmp20 = __cil_tmp17;
//#line  22
    __cil_tmp20_b49 = __cil_tmp17_b47;
//#line  22
    __cil_tmp20_e50 = __cil_tmp17_e48;
//#line  22
    argv_e46 = __cil_tmp20_e50;
//#line  22
    argv_b45 = __cil_tmp20_b49;
//#line  22
    argv = __cil_tmp20;
//#line  22
    while (num_strings11 >= 0) {
      {
//#line  22
      CHECK_NULL((void *)p_argv12);
//#line  22
      __cil_tmp21 = /*14*/__mkptr_string_fs((char */*    */)(*p_argv12));
//#line  22
      __cil_tmp22 = __cil_tmp21._p;
//#line  22
      __cil_tmp22_e51 = __cil_tmp21._ms._e;
//#line  22
      CHECK_SEQ2SAFE(argv_b45, argv_e46, (void *)(argv + num_strings11), sizeof(struct fseqp_char    ),
                     sizeof(struct fseqp_char    ), 1, 0);
//#line  22
      CHECK_STOREPTR((void *)(argv + num_strings11), __cil_tmp22_e51, (void *)(& ___first_local));
//#line  22
      (argv + num_strings11)->_ms._e = __cil_tmp22_e51;
//#line  22
      (argv + num_strings11)->_p = __cil_tmp22;
//#line  22
      __cil_tmp24 = /*12*/__trusted_cast((unsigned int )((void */*    */)((long )p_argv12 -
                                                                          sizeof((*__argv_input)))));
//#line  22
      p_argv12 = (char *    */*    */)__cil_tmp24;
//#line  22
      num_strings11 = num_strings11 - 1;
      }
    }
    }
  }
  }
//#line  22
  __ccuredAlwaysStopOnError = 1;
//#line  22
  __ccuredUseStrings = 0;
//#line  22
  __ccuredLogNonPointers = 0;
//#line  22
  __ccuredInit();
//#line  22
  __cil_tmp30 = ___compute_stack_threshhold();
//#line  22
  ___stack_threshhold = __cil_tmp30;
  {
//#line  25
  result = 0;
//#line  27
  filestuff();
//#line  28
  CHECK_SEQ2FSEQ(argv_b45, argv_e46, (void *)argv);
//#line  28
  __cil_tmp31 = (fseqp_char    */*  __FSEQ  */)argv;
//#line  28
  __cil_tmp31_e60 = argv_e46;
//#line  28
  dealwithargs_ff(argc, __cil_tmp31, __cil_tmp31_e60);
//#line  30
  __ccured_va_count = -1;
//#line  30
  chatting((char */*    */)((char */*    */)(& __string1[0])), level);
//#line  32
  __ccured_va_count = -1;
//#line  32
  chatting((char */*    */)((char */*    */)(& __string2[0])));
//#line  33
  __cil_tmp32 = TreeAlloc(level);
//#line  33
  root = (tree_t */*    */)__cil_tmp32;
//#line  34
  __ccured_va_count = -1;
//#line  34
  chatting((char */*    */)((char */*    */)(& __string3[0])));
//#line  36
  i = 0;
//#line  36
  while (i < iters) {
//#line  38
    __cil_tmp33 = __getreent();
//#line  38
    tmp = (struct _reent */*    */)__cil_tmp33;
//#line  38
    __ccured_va_count = -1;
//#line  38
    CHECK_NULL((void *)tmp);
//#line  38
    fprintf((FILE */*    */)tmp->_stderr, (char */*    */)(& __string4[0]), i);
//#line  39
    __cil_tmp34 = TreeAdd((tree_t */*    */)root);
//#line  39
    result = __cil_tmp34;
//#line  40
    __cil_tmp35 = __getreent();
//#line  40
    tmp___0 = (struct _reent */*    */)__cil_tmp35;
//#line  40
    __ccured_va_count = -1;
//#line  40
    CHECK_NULL((void *)tmp___0);
//#line  40
    fprintf((FILE */*    */)tmp___0->_stderr, (char */*    */)(& __string5[0]));
//#line  36
    i = i + 1;
  }
//#line  43
  __ccured_va_count = -1;
//#line  43
  chatting((char */*    */)((char */*    */)(& __string6[0])), result);
//#line  44
  exit(0);
  }

//#line  22
  return (__retres);
}
}
//#line  49
int TreeAdd(tree_t *    t     )     ;
//#line  49 "node.c"
int TreeAdd(tree_t *    t     ) 
{ int leftval     ;
  int rightval     ;
  tree_t *    tleft     ;
  tree_t *    tright     ;
  int value     ;
  int __a_local     ;
  int __retres ;
  int __cil_tmp9 ;
  int __cil_tmp10 ;

  {
//#line  49
  tright = (tree_t */*    */)0;
//#line  49
  tleft = (tree_t */*    */)0;

//#line  49
  if ((unsigned int )(& __a_local) <= ___stack_threshhold) {
//#line  49
    ___stack_overflow();
  }
  {

//#line  52
  if ((unsigned int )t == 0) {

//#line  54
    return (0);
  } else {
//#line  63
    CHECK_NULL((void *)t);
//#line  63
    tleft = (tree_t */*    */)t->left;
//#line  64
    __cil_tmp9 = TreeAdd((tree_t */*    */)tleft);
//#line  64
    leftval = __cil_tmp9;
//#line  65
    CHECK_NULL((void *)t);
//#line  65
    tright = (tree_t */*    */)t->right;
//#line  66
    __cil_tmp10 = TreeAdd((tree_t */*    */)tright);
//#line  66
    rightval = __cil_tmp10;
//#line  68
    CHECK_NULL((void *)t);
//#line  68
    value = t->val;
//#line  69
    return ((leftval + rightval) + value);
  }
  }

//#line  49
  return (__retres);
}
}
//#line  17 "tree.h"
int level      ;
//#line  18 "tree.h"
int iters      ;
//#line  14 "args.c"
void filestuff(void)     ;
//#line  14 "args.c"
void filestuff(void) 
{ 

  {

//#line  14
  return;
}
}
__inline static int /*18*/atoi_wrapper_f(char *  __FSEQ  str     , void *str_e )     ;
//#line  27
int dealwithargs_ff(int argc     , fseqp_char    *  __FSEQ  argv     , void *argv_e )     ;
//#line  27 "args.c"
int dealwithargs_ff(int argc     , fseqp_char    *  __FSEQ  argv     , void *argv_e ) 
{ int __retres ;
  char *  __FSEQ  __cil_tmp4 ;
  int __cil_tmp5 ;
  char *  __FSEQ  __cil_tmp6 ;
  int __cil_tmp7 ;
  void *__cil_tmp4_e12 ;
  void *__cil_tmp6_e13 ;

  {

//#line  36
  if (argc > 2) {
//#line  37
    CHECK_FSEQARITH2SAFE((void *)argv, argv_e, (void *)(argv + 2), sizeof(fseqp_char    ),
                         sizeof(fseqp_char    ), 1, 0);
//#line  37
    __cil_tmp4 = (argv + 2)->_p;
//#line  37
    __cil_tmp4_e12 = (argv + 2)->_ms._e;
//#line  37
    __cil_tmp5 = /*18*/atoi_wrapper_f(__cil_tmp4, __cil_tmp4_e12);
//#line  37
    iters = __cil_tmp5;
  } else {
//#line  39
    iters = 1;
  }

//#line  41
  if (argc > 1) {
//#line  42
    CHECK_FSEQARITH2SAFE((void *)argv, argv_e, (void *)(argv + 1), sizeof(fseqp_char    ),
                         sizeof(fseqp_char    ), 1, 0);
//#line  42
    __cil_tmp6 = (argv + 1)->_p;
//#line  42
    __cil_tmp6_e13 = (argv + 1)->_ms._e;
//#line  42
    __cil_tmp7 = /*18*/atoi_wrapper_f(__cil_tmp6, __cil_tmp6_e13);
//#line  42
    level = __cil_tmp7;
  } else {
//#line  44
    level = 5;
  }
//#line  46
  __retres = level;
//#line  27
  return (__retres);
}
}
//#line  10 "ssplain.c"
struct __ccured_va_localinfo {
   int next ;
   int count ;
   int tags[32] ;
   void *    nextp ;
};
//#line  10
void ( __CCUREDFORMAT(1) __CCUREDVARARG(struct printf_arguments )  chatting)(char *    s     
                                                                             , ...)     ;
//#line  10 "ssplain.c"
void ( __CCUREDFORMAT(1) __CCUREDVARARG(struct printf_arguments )  chatting)(char *    s     
                                                                             , ...) 
{ struct __ccured_va_list *    ap     ;
  unsigned long tmp     ;
  struct _reent *    tmp___0     ;
  struct __ccured_va_localinfo ap__vainfo5     ;
  unsigned long __cil_tmp7 ;
  struct _reent *    __cil_tmp8 ;

  {
//#line  16
  ap__vainfo5.nextp = (void */*    */)0;
//#line  16
  tmp___0 = (struct _reent */*    */)0;
//#line  16
  ap = (struct __ccured_va_list */*    */)0;
//#line  10
  ap = (struct __ccured_va_list */*    */)(& ap__vainfo5);
//#line  13
  __cil_tmp7 = GCC_STDARG_START(s);
//#line  13
  tmp = __cil_tmp7;
//#line  13
  __ccured_va_start_vs((struct __ccured_va_list */*    */)ap, tmp);
//#line  14
  __cil_tmp8 = __getreent();
//#line  14
  tmp___0 = (struct _reent */*    */)__cil_tmp8;
//#line  14
  CHECK_NULL((void *)tmp___0);
//#line  14
  vfprintf_ssvs((FILE */*    */)tmp___0->_stderr, (char */*    */)((char */*    */)s),
                (struct __ccured_va_list */*    */)ap);
//#line  15
  __ccured_va_end_vs((struct __ccured_va_list */*    */)ap);
//#line  10
  return;
}
}
//#line  42 "ssplain.c"
static unsigned long bytes_allocated      =    0UL;
//#line  43 "ssplain.c"
static unsigned long allocations      =    0UL;
//#line  45
void *    ssplain_malloc(int size     )     ;
//#line  45 "ssplain.c"
void *    ssplain_malloc(int size     ) 
{ int volatile   ___first_local ;
  void *    tmp     ;
  void *    __retres ;
  void *    __cil_tmp4 ;
  void *    __cil_tmp5 ;

  {
//#line  50
  __retres = (void */*    */)0;
//#line  50
  tmp = (void */*    */)0;
//#line  48
  allocations = allocations + 1UL;
//#line  49
  bytes_allocated = bytes_allocated + (unsigned long )size;
//#line  50
  __cil_tmp5 = (void */*    */)/*9*/malloc((((unsigned int )size + 3U) >> 2) << 2);
//#line  50
  if (__cil_tmp5) {

//#line  50
    __cil_tmp4 = __cil_tmp5;


//#line  50
    CHECK_POSITIVE((int )((((unsigned int )size + 3U) >> 2) << 2) - (int )sizeof(void ));


  } else {
//#line  50
    __cil_tmp4 = 0;
  }
//#line  50
  tmp = __cil_tmp4;
//#line  50
  __retres = (void */*    */)tmp;
//#line  45
  CHECK_RETURNPTR((void *)__retres, (void *)(& ___first_local));
//#line  45
  return (__retres);
}
}
extern unsigned int ( __attribute__((__cdecl__)) /*21*/calloc)(size_t __nmemb , size_t __size )     ;
//#line  60 "ssplain.c"
static char __string7[17]  = 
//#line  60
  {      'C',      'a',      'n',      'n', 
        'o',      't',      ' ',      'a', 
        'l',      'l',      'o',      'c', 
        'a',      't',      'e',      '\n', 
        '\000'};
//#line  53
void *    ssplain_calloc(int nelems     , int size     )     ;
//#line  53 "ssplain.c"
void *    ssplain_calloc(int nelems     , int size     ) 
{ int volatile   ___first_local ;
  void *    p     ;
  void *    __retres ;
  void *    __cil_tmp5 ;
  void *    __cil_tmp6 ;

  {
//#line  61
  __retres = (void */*    */)0;
//#line  61
  p = (void */*    */)0;
//#line  57
  allocations = allocations + 1UL;
//#line  58
  bytes_allocated = bytes_allocated + (unsigned long )(nelems * size);
//#line  59
  __cil_tmp6 = (void */*    */)/*21*/calloc(1, (((unsigned int )((unsigned int )nelems *
                                                                 (unsigned int )size) +
                                                 3U) >> 2) << 2);
//#line  59
  if (__cil_tmp6) {

//#line  59
    __cil_tmp5 = __cil_tmp6;


//#line  59
    CHECK_POSITIVE((int )((((unsigned int )((unsigned int )nelems * (unsigned int )size) +
                            3U) >> 2) << 2) - (int )sizeof(void ));


  } else {
//#line  59
    __cil_tmp5 = 0;
  }
//#line  59
  p = __cil_tmp5;
//#line  60
  if (! ((int )p)) {
//#line  60
    __ccured_va_count = -1;
//#line  60
    printf((char */*    */)(& __string7[0]));
//#line  60
    exit(3);
  }
//#line  61
  __retres = (void */*    */)p;
//#line  53
  CHECK_RETURNPTR((void *)__retres, (void *)(& ___first_local));
//#line  53
  return (__retres);
}
}
//#line  67 "ssplain.c"
static char __string8[56]  = 
//#line  67
  {      'A',      'l',      'l',      'o', 
        'c',      'a',      't',      'i', 
        'o',      'n',      ' ',      's', 
        't',      'a',      't',      's', 
        ':',      ' ',      '%',      'd', 
        ' ',      'b',      'y',      't', 
        'e',      's',      ' ',      'a', 
        'l',      'l',      'o',      'c', 
        'a',      't',      'e',      'd', 
        ' ',      'i',      'n',      ' ', 
        '%',      'd',      ' ',      'a', 
        'l',      'l',      'o',      'c', 
        'a',      't',      'i',      'o', 
        'n',      's',      '\n',      '\000'};
//#line  64
void ssplain_alloc_stats(void)     ;
//#line  64 "ssplain.c"
void ssplain_alloc_stats(void) 
{ 

  {
//#line  67
  __ccured_va_count = -1;
//#line  67
  chatting((char */*    */)((char */*    */)(& __string8[0])), (int )bytes_allocated,
           (int )allocations);
//#line  64
  return;
}
}
extern void /*22*/__verify_nul_f(char *  __FSEQ  ptr_p , void *ptr_ms_e )     ;
__inline static int /*18*/atoi_wrapper_f(char *  __FSEQ  str     , void *str_e )     ;
__inline static int /*18*/atoi_wrapper_f(char *  __FSEQ  str     , void *str_e ) 
{ char *    tmp     ;
  int tmp___0     ;
  int __retres ;
  char *  __FSEQ  __cil_tmp5 ;
  void *    __cil_tmp6 ;
  int __cil_tmp7 ;
  void *__cil_tmp5_e11 ;

  {
//#line  60 "d:/home/db/postdoc/Blast/ccured/include/stdlib_wrappers.h"
  tmp = (char */*    */)0;
//#line  59
  __cil_tmp5 = str;
//#line  59
  __cil_tmp5_e11 = str_e;
//#line  59
  /*22*/__verify_nul_f(__cil_tmp5, __cil_tmp5_e11);
//#line  60
  if ((void */*  __FSEQ  */)str) {
//#line  60
    CHECK_FSEQ2SAFE(str_e, (void *)((void */*  __FSEQ  */)str), sizeof(void ), sizeof(void ),
                    1, 0);
  }
//#line  60
  __cil_tmp6 = (void */*  __FSEQ  */)str;
//#line  60
  tmp = (char */*    */)__cil_tmp6;
//#line  60
  __cil_tmp7 = atoi((char */*    */)((char */*    */)tmp));
//#line  60
  tmp___0 = __cil_tmp7;
//#line  60
  __retres = tmp___0;
  return (__retres);
}
}
