Showing error 1753

User: Jiri Slaby
Error type: Reachable Error Location
Error type description: A specified error location is reachable in some program path
File location: product-lines/email_spec3_product34_unsafe.cil.c
Line in file: 3125
Project: SV-COMP 2013
Project version: 2.6.28
Tools: Manual Work
Entered: 2013-01-17 16:57:54 UTC


Source:

   1extern int __VERIFIER_nondet_int(void);
   2/* Generated by CIL v. 1.3.7 */
   3/* print_CIL_Input is true */
   4
   5#line 2 "libacc.c"
   6struct JoinPoint {
   7   void **(*fp)(struct JoinPoint * ) ;
   8   void **args ;
   9   int argsCount ;
  10   char const   **argsType ;
  11   void *(*arg)(int  , struct JoinPoint * ) ;
  12   char const   *(*argType)(int  , struct JoinPoint * ) ;
  13   void **retValue ;
  14   char const   *retType ;
  15   char const   *funcName ;
  16   char const   *targetName ;
  17   char const   *fileName ;
  18   char const   *kind ;
  19   void *excep_return ;
  20};
  21#line 18 "libacc.c"
  22struct __UTAC__CFLOW_FUNC {
  23   int (*func)(int  , int  ) ;
  24   int val ;
  25   struct __UTAC__CFLOW_FUNC *next ;
  26};
  27#line 18 "libacc.c"
  28struct __UTAC__EXCEPTION {
  29   void *jumpbuf ;
  30   unsigned long long prtValue ;
  31   int pops ;
  32   struct __UTAC__CFLOW_FUNC *cflowfuncs ;
  33};
  34#line 211 "/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h"
  35typedef unsigned long size_t;
  36#line 76 "libacc.c"
  37struct __ACC__ERR {
  38   void *v ;
  39   struct __ACC__ERR *next ;
  40};
  41#line 1 "SignVerify_spec.o"
  42#pragma merger(0,"SignVerify_spec.i","")
  43#line 4 "wsllib.h"
  44void __automaton_fail(void) ;
  45#line 359 "/usr/include/stdio.h"
  46extern int printf(char const   * __restrict  __format  , ...) ;
  47#line 688
  48extern int puts(char const   *__s ) ;
  49#line 8 "featureselect.h"
  50int __SELECTED_FEATURE_Base  ;
  51#line 11 "featureselect.h"
  52int __SELECTED_FEATURE_Keys  ;
  53#line 14 "featureselect.h"
  54int __SELECTED_FEATURE_Encrypt  ;
  55#line 17 "featureselect.h"
  56int __SELECTED_FEATURE_AutoResponder  ;
  57#line 20 "featureselect.h"
  58int __SELECTED_FEATURE_AddressBook  ;
  59#line 23 "featureselect.h"
  60int __SELECTED_FEATURE_Sign  ;
  61#line 26 "featureselect.h"
  62int __SELECTED_FEATURE_Forward  ;
  63#line 29 "featureselect.h"
  64int __SELECTED_FEATURE_Verify  ;
  65#line 32 "featureselect.h"
  66int __SELECTED_FEATURE_Decrypt  ;
  67#line 35 "featureselect.h"
  68int __GUIDSL_ROOT_PRODUCTION  ;
  69#line 37 "featureselect.h"
  70int __GUIDSL_NON_TERMINAL_main  ;
  71#line 10 "EmailLib.h"
  72int getEmailFrom(int handle ) ;
  73#line 34
  74int isSigned(int handle ) ;
  75#line 38
  76int getEmailSignKey(int handle ) ;
  77#line 57 "ClientLib.h"
  78int findPublicKey(int handle , int userid ) ;
  79#line 40 "Client.h"
  80int isKeyPairValid(int publicKey , int privateKey ) ;
  81#line 9 "SignVerify_spec.c"
  82int sent_signed  =    -1;
  83#line 13 "SignVerify_spec.c"
  84__inline void __utac_acc__SignVerify_spec__1(int msg ) 
  85{ char const   * __restrict  __cil_tmp2 ;
  86
  87  {
  88  {
  89#line 15
  90  puts("before mail\n");
  91#line 16
  92  sent_signed = isSigned(msg);
  93#line 17
  94  __cil_tmp2 = (char const   * __restrict  )"sent_signed=%d\n";
  95#line 17
  96  printf(__cil_tmp2, sent_signed);
  97  }
  98#line 17
  99  return;
 100}
 101}
 102#line 21 "SignVerify_spec.c"
 103__inline void __utac_acc__SignVerify_spec__2(int client , int msg ) 
 104{ int pubkey ;
 105  int tmp ;
 106  int tmp___0 ;
 107  int tmp___1 ;
 108  int tmp___2 ;
 109  char const   * __restrict  __cil_tmp8 ;
 110
 111  {
 112  {
 113#line 23
 114  puts("before verify\n");
 115#line 24
 116  __cil_tmp8 = (char const   * __restrict  )"sent_signed=%d\n";
 117#line 24
 118  printf(__cil_tmp8, sent_signed);
 119  }
 120#line 25
 121  if (sent_signed == 1) {
 122    {
 123#line 27
 124    tmp = getEmailFrom(msg);
 125#line 27
 126    tmp___0 = findPublicKey(client, tmp);
 127#line 27
 128    pubkey = tmp___0;
 129    }
 130#line 28
 131    if (pubkey == 0) {
 132      {
 133#line 29
 134      __automaton_fail();
 135      }
 136    } else {
 137      {
 138#line 28
 139      tmp___1 = getEmailSignKey(msg);
 140#line 28
 141      tmp___2 = isKeyPairValid(tmp___1, pubkey);
 142      }
 143#line 28
 144      if (tmp___2) {
 145
 146      } else {
 147        {
 148#line 29
 149        __automaton_fail();
 150        }
 151      }
 152    }
 153  } else {
 154
 155  }
 156#line 29
 157  return;
 158}
 159}
 160#line 1 "Test.o"
 161#pragma merger(0,"Test.i","")
 162#line 16 "ClientLib.h"
 163void setClientAddressBookSize(int handle , int value ) ;
 164#line 22
 165void setClientAddressBookAlias(int handle , int index , int value ) ;
 166#line 26
 167void setClientAddressBookAddress(int handle , int index , int value ) ;
 168#line 35
 169void setClientPrivateKey(int handle , int value ) ;
 170#line 39
 171int createClientKeyringEntry(int handle ) ;
 172#line 41
 173int getClientKeyringUser(int handle , int index ) ;
 174#line 43
 175void setClientKeyringUser(int handle , int index , int value ) ;
 176#line 45
 177int getClientKeyringPublicKey(int handle , int index ) ;
 178#line 47
 179void setClientKeyringPublicKey(int handle , int index , int value ) ;
 180#line 51
 181void setClientForwardReceiver(int handle , int value ) ;
 182#line 55
 183void setClientId(int handle , int value ) ;
 184#line 43 "featureselect.h"
 185void select_features(void) ;
 186#line 45
 187void select_helpers(void) ;
 188#line 47
 189int valid_product(void) ;
 190#line 17 "Client.h"
 191int is_queue_empty(void) ;
 192#line 19
 193int get_queued_client(void) ;
 194#line 21
 195int get_queued_email(void) ;
 196#line 26
 197void outgoing(int client , int msg ) ;
 198#line 35
 199void sendEmail(int sender , int receiver ) ;
 200#line 44
 201void generateKeyPair(int client , int seed ) ;
 202#line 2 "Test.h"
 203int bob  ;
 204#line 5 "Test.h"
 205int rjh  ;
 206#line 8 "Test.h"
 207int chuck  ;
 208#line 11
 209void setup_bob(int bob___0 ) ;
 210#line 14
 211void setup_rjh(int rjh___0 ) ;
 212#line 17
 213void setup_chuck(int chuck___0 ) ;
 214#line 23
 215void bobToRjh(void) ;
 216#line 26
 217void rjhToBob(void) ;
 218#line 29
 219void test(void) ;
 220#line 32
 221void setup(void) ;
 222#line 35
 223int main(void) ;
 224#line 36
 225void bobKeyAdd(void) ;
 226#line 39
 227void bobKeyAddChuck(void) ;
 228#line 42
 229void rjhKeyAdd(void) ;
 230#line 45
 231void rjhKeyAddChuck(void) ;
 232#line 48
 233void chuckKeyAdd(void) ;
 234#line 51
 235void bobKeyChange(void) ;
 236#line 54
 237void rjhKeyChange(void) ;
 238#line 57
 239void rjhDeletePrivateKey(void) ;
 240#line 60
 241void chuckKeyAddRjh(void) ;
 242#line 62
 243void bobSetAddressBook(void) ;
 244#line 63
 245void rjhEnableForwarding(void) ;
 246#line 18 "Test.c"
 247void setup_bob__wrappee__Base(int bob___0 ) 
 248{ 
 249
 250  {
 251  {
 252#line 19
 253  setClientId(bob___0, bob___0);
 254  }
 255#line 1334 "Test.c"
 256  return;
 257}
 258}
 259#line 23 "Test.c"
 260void setup_bob(int bob___0 ) 
 261{ 
 262
 263  {
 264  {
 265#line 24
 266  setup_bob__wrappee__Base(bob___0);
 267#line 25
 268  setClientPrivateKey(bob___0, 123);
 269  }
 270#line 1356 "Test.c"
 271  return;
 272}
 273}
 274#line 33 "Test.c"
 275void setup_rjh__wrappee__Base(int rjh___0 ) 
 276{ 
 277
 278  {
 279  {
 280#line 34
 281  setClientId(rjh___0, rjh___0);
 282  }
 283#line 1376 "Test.c"
 284  return;
 285}
 286}
 287#line 40 "Test.c"
 288void setup_rjh(int rjh___0 ) 
 289{ 
 290
 291  {
 292  {
 293#line 42
 294  setup_rjh__wrappee__Base(rjh___0);
 295#line 43
 296  setClientPrivateKey(rjh___0, 456);
 297  }
 298#line 1398 "Test.c"
 299  return;
 300}
 301}
 302#line 50 "Test.c"
 303void setup_chuck__wrappee__Base(int chuck___0 ) 
 304{ 
 305
 306  {
 307  {
 308#line 51
 309  setClientId(chuck___0, chuck___0);
 310  }
 311#line 1418 "Test.c"
 312  return;
 313}
 314}
 315#line 57 "Test.c"
 316void setup_chuck(int chuck___0 ) 
 317{ 
 318
 319  {
 320  {
 321#line 58
 322  setup_chuck__wrappee__Base(chuck___0);
 323#line 59
 324  setClientPrivateKey(chuck___0, 789);
 325  }
 326#line 1440 "Test.c"
 327  return;
 328}
 329}
 330#line 69 "Test.c"
 331void bobToRjh(void) 
 332{ int tmp ;
 333  int tmp___0 ;
 334  int tmp___1 ;
 335
 336  {
 337  {
 338#line 71
 339  puts("Please enter a subject and a message body.\n");
 340#line 72
 341  sendEmail(bob, rjh);
 342#line 73
 343  tmp___1 = is_queue_empty();
 344  }
 345#line 73
 346  if (tmp___1) {
 347
 348  } else {
 349    {
 350#line 74
 351    tmp = get_queued_email();
 352#line 74
 353    tmp___0 = get_queued_client();
 354#line 74
 355    outgoing(tmp___0, tmp);
 356    }
 357  }
 358#line 1467 "Test.c"
 359  return;
 360}
 361}
 362#line 81 "Test.c"
 363void rjhToBob(void) 
 364{ 
 365
 366  {
 367  {
 368#line 83
 369  puts("Please enter a subject and a message body.\n");
 370#line 84
 371  sendEmail(rjh, bob);
 372  }
 373#line 1489 "Test.c"
 374  return;
 375}
 376}
 377#line 88 "Test.c"
 378#line 95 "Test.c"
 379void setup(void) 
 380{ char const   * __restrict  __cil_tmp1 ;
 381  char const   * __restrict  __cil_tmp2 ;
 382  char const   * __restrict  __cil_tmp3 ;
 383
 384  {
 385  {
 386#line 96
 387  bob = 1;
 388#line 97
 389  setup_bob(bob);
 390#line 98
 391  __cil_tmp1 = (char const   * __restrict  )"bob: %d\n";
 392#line 98
 393  printf(__cil_tmp1, bob);
 394#line 100
 395  rjh = 2;
 396#line 101
 397  setup_rjh(rjh);
 398#line 102
 399  __cil_tmp2 = (char const   * __restrict  )"rjh: %d\n";
 400#line 102
 401  printf(__cil_tmp2, rjh);
 402#line 104
 403  chuck = 3;
 404#line 105
 405  setup_chuck(chuck);
 406#line 106
 407  __cil_tmp3 = (char const   * __restrict  )"chuck: %d\n";
 408#line 106
 409  printf(__cil_tmp3, chuck);
 410  }
 411#line 1560 "Test.c"
 412  return;
 413}
 414}
 415#line 112 "Test.c"
 416int main(void) 
 417{ int retValue_acc ;
 418  int tmp ;
 419
 420  {
 421  {
 422#line 113
 423  select_helpers();
 424#line 114
 425  select_features();
 426#line 115
 427  tmp = valid_product();
 428  }
 429#line 115
 430  if (tmp) {
 431    {
 432#line 116
 433    setup();
 434#line 117
 435    test();
 436    }
 437  } else {
 438
 439  }
 440#line 1591 "Test.c"
 441  return (retValue_acc);
 442}
 443}
 444#line 125 "Test.c"
 445void bobKeyAdd(void) 
 446{ int tmp ;
 447  int tmp___0 ;
 448  char const   * __restrict  __cil_tmp3 ;
 449  char const   * __restrict  __cil_tmp4 ;
 450
 451  {
 452  {
 453#line 126
 454  createClientKeyringEntry(bob);
 455#line 127
 456  setClientKeyringUser(bob, 0, 2);
 457#line 128
 458  setClientKeyringPublicKey(bob, 0, 456);
 459#line 129
 460  puts("bob added rjhs key");
 461#line 130
 462  tmp = getClientKeyringUser(bob, 0);
 463#line 130
 464  __cil_tmp3 = (char const   * __restrict  )"%d\n";
 465#line 130
 466  printf(__cil_tmp3, tmp);
 467#line 131
 468  tmp___0 = getClientKeyringPublicKey(bob, 0);
 469#line 131
 470  __cil_tmp4 = (char const   * __restrict  )"%d\n";
 471#line 131
 472  printf(__cil_tmp4, tmp___0);
 473  }
 474#line 1625 "Test.c"
 475  return;
 476}
 477}
 478#line 137 "Test.c"
 479void rjhKeyAdd(void) 
 480{ 
 481
 482  {
 483  {
 484#line 138
 485  createClientKeyringEntry(rjh);
 486#line 139
 487  setClientKeyringUser(rjh, 0, 1);
 488#line 140
 489  setClientKeyringPublicKey(rjh, 0, 123);
 490  }
 491#line 1649 "Test.c"
 492  return;
 493}
 494}
 495#line 146 "Test.c"
 496void rjhKeyAddChuck(void) 
 497{ 
 498
 499  {
 500  {
 501#line 147
 502  createClientKeyringEntry(rjh);
 503#line 148
 504  setClientKeyringUser(rjh, 0, 3);
 505#line 149
 506  setClientKeyringPublicKey(rjh, 0, 789);
 507  }
 508#line 1673 "Test.c"
 509  return;
 510}
 511}
 512#line 156 "Test.c"
 513void bobKeyAddChuck(void) 
 514{ 
 515
 516  {
 517  {
 518#line 157
 519  createClientKeyringEntry(bob);
 520#line 158
 521  setClientKeyringUser(bob, 1, 3);
 522#line 159
 523  setClientKeyringPublicKey(bob, 1, 789);
 524  }
 525#line 1697 "Test.c"
 526  return;
 527}
 528}
 529#line 165 "Test.c"
 530void chuckKeyAdd(void) 
 531{ 
 532
 533  {
 534  {
 535#line 166
 536  createClientKeyringEntry(chuck);
 537#line 167
 538  setClientKeyringUser(chuck, 0, 1);
 539#line 168
 540  setClientKeyringPublicKey(chuck, 0, 123);
 541  }
 542#line 1721 "Test.c"
 543  return;
 544}
 545}
 546#line 174 "Test.c"
 547void chuckKeyAddRjh(void) 
 548{ 
 549
 550  {
 551  {
 552#line 175
 553  createClientKeyringEntry(chuck);
 554#line 176
 555  setClientKeyringUser(chuck, 0, 2);
 556#line 177
 557  setClientKeyringPublicKey(chuck, 0, 456);
 558  }
 559#line 1745 "Test.c"
 560  return;
 561}
 562}
 563#line 183 "Test.c"
 564void rjhDeletePrivateKey(void) 
 565{ 
 566
 567  {
 568  {
 569#line 184
 570  setClientPrivateKey(rjh, 0);
 571  }
 572#line 1765 "Test.c"
 573  return;
 574}
 575}
 576#line 190 "Test.c"
 577void bobKeyChange(void) 
 578{ 
 579
 580  {
 581  {
 582#line 191
 583  generateKeyPair(bob, 777);
 584  }
 585#line 1785 "Test.c"
 586  return;
 587}
 588}
 589#line 197 "Test.c"
 590void rjhKeyChange(void) 
 591{ 
 592
 593  {
 594  {
 595#line 198
 596  generateKeyPair(rjh, 666);
 597  }
 598#line 1805 "Test.c"
 599  return;
 600}
 601}
 602#line 203 "Test.c"
 603void bobSetAddressBook(void) 
 604{ 
 605
 606  {
 607  {
 608#line 204
 609  setClientAddressBookSize(bob, 1);
 610#line 205
 611  setClientAddressBookAlias(bob, 0, rjh);
 612#line 206
 613  setClientAddressBookAddress(bob, 0, rjh);
 614#line 207
 615  setClientAddressBookAddress(bob, 1, chuck);
 616  }
 617#line 1831 "Test.c"
 618  return;
 619}
 620}
 621#line 213 "Test.c"
 622void rjhEnableForwarding(void) 
 623{ 
 624
 625  {
 626  {
 627#line 214
 628  setClientForwardReceiver(rjh, chuck);
 629  }
 630#line 1851 "Test.c"
 631  return;
 632}
 633}
 634#line 1 "ClientLib.o"
 635#pragma merger(0,"ClientLib.i","")
 636#line 4 "ClientLib.h"
 637int initClient(void) ;
 638#line 6
 639char *getClientName(int handle ) ;
 640#line 8
 641void setClientName(int handle , char *value ) ;
 642#line 10
 643int getClientOutbuffer(int handle ) ;
 644#line 12
 645void setClientOutbuffer(int handle , int value ) ;
 646#line 14
 647int getClientAddressBookSize(int handle ) ;
 648#line 18
 649int createClientAddressBookEntry(int handle ) ;
 650#line 20
 651int getClientAddressBookAlias(int handle , int index ) ;
 652#line 24
 653int getClientAddressBookAddress(int handle , int index ) ;
 654#line 29
 655int getClientAutoResponse(int handle ) ;
 656#line 31
 657void setClientAutoResponse(int handle , int value ) ;
 658#line 33
 659int getClientPrivateKey(int handle ) ;
 660#line 37
 661int getClientKeyringSize(int handle ) ;
 662#line 49
 663int getClientForwardReceiver(int handle ) ;
 664#line 53
 665int getClientId(int handle ) ;
 666#line 59
 667int findClientAddressBookAlias(int handle , int userid ) ;
 668#line 5 "ClientLib.c"
 669int __ste_Client_counter  =    0;
 670#line 7 "ClientLib.c"
 671int initClient(void) 
 672{ int retValue_acc ;
 673
 674  {
 675#line 12 "ClientLib.c"
 676  if (__ste_Client_counter < 3) {
 677#line 684
 678    __ste_Client_counter = __ste_Client_counter + 1;
 679#line 684
 680    retValue_acc = __ste_Client_counter;
 681#line 686
 682    return (retValue_acc);
 683  } else {
 684#line 692 "ClientLib.c"
 685    retValue_acc = -1;
 686#line 694
 687    return (retValue_acc);
 688  }
 689#line 701 "ClientLib.c"
 690  return (retValue_acc);
 691}
 692}
 693#line 15 "ClientLib.c"
 694char *__ste_client_name0  =    (char *)0;
 695#line 17 "ClientLib.c"
 696char *__ste_client_name1  =    (char *)0;
 697#line 19 "ClientLib.c"
 698char *__ste_client_name2  =    (char *)0;
 699#line 22 "ClientLib.c"
 700char *getClientName(int handle ) 
 701{ char *retValue_acc ;
 702  void *__cil_tmp3 ;
 703
 704  {
 705#line 31 "ClientLib.c"
 706  if (handle == 1) {
 707#line 732
 708    retValue_acc = __ste_client_name0;
 709#line 734
 710    return (retValue_acc);
 711  } else {
 712#line 736
 713    if (handle == 2) {
 714#line 741
 715      retValue_acc = __ste_client_name1;
 716#line 743
 717      return (retValue_acc);
 718    } else {
 719#line 745
 720      if (handle == 3) {
 721#line 750
 722        retValue_acc = __ste_client_name2;
 723#line 752
 724        return (retValue_acc);
 725      } else {
 726#line 758 "ClientLib.c"
 727        __cil_tmp3 = (void *)0;
 728#line 758
 729        retValue_acc = (char *)__cil_tmp3;
 730#line 760
 731        return (retValue_acc);
 732      }
 733    }
 734  }
 735#line 767 "ClientLib.c"
 736  return (retValue_acc);
 737}
 738}
 739#line 34 "ClientLib.c"
 740void setClientName(int handle , char *value ) 
 741{ 
 742
 743  {
 744#line 42
 745  if (handle == 1) {
 746#line 36
 747    __ste_client_name0 = value;
 748  } else {
 749#line 37
 750    if (handle == 2) {
 751#line 38
 752      __ste_client_name1 = value;
 753    } else {
 754#line 39
 755      if (handle == 3) {
 756#line 40
 757        __ste_client_name2 = value;
 758      } else {
 759
 760      }
 761    }
 762  }
 763#line 802 "ClientLib.c"
 764  return;
 765}
 766}
 767#line 44 "ClientLib.c"
 768int __ste_client_outbuffer0  =    0;
 769#line 46 "ClientLib.c"
 770int __ste_client_outbuffer1  =    0;
 771#line 48 "ClientLib.c"
 772int __ste_client_outbuffer2  =    0;
 773#line 50 "ClientLib.c"
 774int __ste_client_outbuffer3  =    0;
 775#line 53 "ClientLib.c"
 776int getClientOutbuffer(int handle ) 
 777{ int retValue_acc ;
 778
 779  {
 780#line 62 "ClientLib.c"
 781  if (handle == 1) {
 782#line 831
 783    retValue_acc = __ste_client_outbuffer0;
 784#line 833
 785    return (retValue_acc);
 786  } else {
 787#line 835
 788    if (handle == 2) {
 789#line 840
 790      retValue_acc = __ste_client_outbuffer1;
 791#line 842
 792      return (retValue_acc);
 793    } else {
 794#line 844
 795      if (handle == 3) {
 796#line 849
 797        retValue_acc = __ste_client_outbuffer2;
 798#line 851
 799        return (retValue_acc);
 800      } else {
 801#line 857 "ClientLib.c"
 802        retValue_acc = 0;
 803#line 859
 804        return (retValue_acc);
 805      }
 806    }
 807  }
 808#line 866 "ClientLib.c"
 809  return (retValue_acc);
 810}
 811}
 812#line 65 "ClientLib.c"
 813void setClientOutbuffer(int handle , int value ) 
 814{ 
 815
 816  {
 817#line 73
 818  if (handle == 1) {
 819#line 67
 820    __ste_client_outbuffer0 = value;
 821  } else {
 822#line 68
 823    if (handle == 2) {
 824#line 69
 825      __ste_client_outbuffer1 = value;
 826    } else {
 827#line 70
 828      if (handle == 3) {
 829#line 71
 830        __ste_client_outbuffer2 = value;
 831      } else {
 832
 833      }
 834    }
 835  }
 836#line 901 "ClientLib.c"
 837  return;
 838}
 839}
 840#line 77 "ClientLib.c"
 841int __ste_ClientAddressBook_size0  =    0;
 842#line 79 "ClientLib.c"
 843int __ste_ClientAddressBook_size1  =    0;
 844#line 81 "ClientLib.c"
 845int __ste_ClientAddressBook_size2  =    0;
 846#line 84 "ClientLib.c"
 847int getClientAddressBookSize(int handle ) 
 848{ int retValue_acc ;
 849
 850  {
 851#line 93 "ClientLib.c"
 852  if (handle == 1) {
 853#line 928
 854    retValue_acc = __ste_ClientAddressBook_size0;
 855#line 930
 856    return (retValue_acc);
 857  } else {
 858#line 932
 859    if (handle == 2) {
 860#line 937
 861      retValue_acc = __ste_ClientAddressBook_size1;
 862#line 939
 863      return (retValue_acc);
 864    } else {
 865#line 941
 866      if (handle == 3) {
 867#line 946
 868        retValue_acc = __ste_ClientAddressBook_size2;
 869#line 948
 870        return (retValue_acc);
 871      } else {
 872#line 954 "ClientLib.c"
 873        retValue_acc = 0;
 874#line 956
 875        return (retValue_acc);
 876      }
 877    }
 878  }
 879#line 963 "ClientLib.c"
 880  return (retValue_acc);
 881}
 882}
 883#line 96 "ClientLib.c"
 884void setClientAddressBookSize(int handle , int value ) 
 885{ 
 886
 887  {
 888#line 104
 889  if (handle == 1) {
 890#line 98
 891    __ste_ClientAddressBook_size0 = value;
 892  } else {
 893#line 99
 894    if (handle == 2) {
 895#line 100
 896      __ste_ClientAddressBook_size1 = value;
 897    } else {
 898#line 101
 899      if (handle == 3) {
 900#line 102
 901        __ste_ClientAddressBook_size2 = value;
 902      } else {
 903
 904      }
 905    }
 906  }
 907#line 998 "ClientLib.c"
 908  return;
 909}
 910}
 911#line 106 "ClientLib.c"
 912int createClientAddressBookEntry(int handle ) 
 913{ int retValue_acc ;
 914  int size ;
 915  int tmp ;
 916  int __cil_tmp5 ;
 917
 918  {
 919  {
 920#line 107
 921  tmp = getClientAddressBookSize(handle);
 922#line 107
 923  size = tmp;
 924  }
 925#line 108 "ClientLib.c"
 926  if (size < 3) {
 927    {
 928#line 109 "ClientLib.c"
 929    __cil_tmp5 = size + 1;
 930#line 109
 931    setClientAddressBookSize(handle, __cil_tmp5);
 932#line 1025 "ClientLib.c"
 933    retValue_acc = size + 1;
 934    }
 935#line 1027
 936    return (retValue_acc);
 937  } else {
 938#line 1031 "ClientLib.c"
 939    retValue_acc = -1;
 940#line 1033
 941    return (retValue_acc);
 942  }
 943#line 1040 "ClientLib.c"
 944  return (retValue_acc);
 945}
 946}
 947#line 115 "ClientLib.c"
 948int __ste_Client_AddressBook0_Alias0  =    0;
 949#line 117 "ClientLib.c"
 950int __ste_Client_AddressBook0_Alias1  =    0;
 951#line 119 "ClientLib.c"
 952int __ste_Client_AddressBook0_Alias2  =    0;
 953#line 121 "ClientLib.c"
 954int __ste_Client_AddressBook1_Alias0  =    0;
 955#line 123 "ClientLib.c"
 956int __ste_Client_AddressBook1_Alias1  =    0;
 957#line 125 "ClientLib.c"
 958int __ste_Client_AddressBook1_Alias2  =    0;
 959#line 127 "ClientLib.c"
 960int __ste_Client_AddressBook2_Alias0  =    0;
 961#line 129 "ClientLib.c"
 962int __ste_Client_AddressBook2_Alias1  =    0;
 963#line 131 "ClientLib.c"
 964int __ste_Client_AddressBook2_Alias2  =    0;
 965#line 134 "ClientLib.c"
 966int getClientAddressBookAlias(int handle , int index ) 
 967{ int retValue_acc ;
 968
 969  {
 970#line 167
 971  if (handle == 1) {
 972#line 144 "ClientLib.c"
 973    if (index == 0) {
 974#line 1086
 975      retValue_acc = __ste_Client_AddressBook0_Alias0;
 976#line 1088
 977      return (retValue_acc);
 978    } else {
 979#line 1090
 980      if (index == 1) {
 981#line 1095
 982        retValue_acc = __ste_Client_AddressBook0_Alias1;
 983#line 1097
 984        return (retValue_acc);
 985      } else {
 986#line 1099
 987        if (index == 2) {
 988#line 1104
 989          retValue_acc = __ste_Client_AddressBook0_Alias2;
 990#line 1106
 991          return (retValue_acc);
 992        } else {
 993#line 1112
 994          retValue_acc = 0;
 995#line 1114
 996          return (retValue_acc);
 997        }
 998      }
 999    }
1000  } else {
1001#line 1116 "ClientLib.c"
1002    if (handle == 2) {
1003#line 154 "ClientLib.c"
1004      if (index == 0) {
1005#line 1124
1006        retValue_acc = __ste_Client_AddressBook1_Alias0;
1007#line 1126
1008        return (retValue_acc);
1009      } else {
1010#line 1128
1011        if (index == 1) {
1012#line 1133
1013          retValue_acc = __ste_Client_AddressBook1_Alias1;
1014#line 1135
1015          return (retValue_acc);
1016        } else {
1017#line 1137
1018          if (index == 2) {
1019#line 1142
1020            retValue_acc = __ste_Client_AddressBook1_Alias2;
1021#line 1144
1022            return (retValue_acc);
1023          } else {
1024#line 1150
1025            retValue_acc = 0;
1026#line 1152
1027            return (retValue_acc);
1028          }
1029        }
1030      }
1031    } else {
1032#line 1154 "ClientLib.c"
1033      if (handle == 3) {
1034#line 164 "ClientLib.c"
1035        if (index == 0) {
1036#line 1162
1037          retValue_acc = __ste_Client_AddressBook2_Alias0;
1038#line 1164
1039          return (retValue_acc);
1040        } else {
1041#line 1166
1042          if (index == 1) {
1043#line 1171
1044            retValue_acc = __ste_Client_AddressBook2_Alias1;
1045#line 1173
1046            return (retValue_acc);
1047          } else {
1048#line 1175
1049            if (index == 2) {
1050#line 1180
1051              retValue_acc = __ste_Client_AddressBook2_Alias2;
1052#line 1182
1053              return (retValue_acc);
1054            } else {
1055#line 1188
1056              retValue_acc = 0;
1057#line 1190
1058              return (retValue_acc);
1059            }
1060          }
1061        }
1062      } else {
1063#line 1196 "ClientLib.c"
1064        retValue_acc = 0;
1065#line 1198
1066        return (retValue_acc);
1067      }
1068    }
1069  }
1070#line 1205 "ClientLib.c"
1071  return (retValue_acc);
1072}
1073}
1074#line 171 "ClientLib.c"
1075int findClientAddressBookAlias(int handle , int userid ) 
1076{ int retValue_acc ;
1077
1078  {
1079#line 204
1080  if (handle == 1) {
1081#line 181 "ClientLib.c"
1082    if (userid == __ste_Client_AddressBook0_Alias0) {
1083#line 1233
1084      retValue_acc = 0;
1085#line 1235
1086      return (retValue_acc);
1087    } else {
1088#line 1237
1089      if (userid == __ste_Client_AddressBook0_Alias1) {
1090#line 1242
1091        retValue_acc = 1;
1092#line 1244
1093        return (retValue_acc);
1094      } else {
1095#line 1246
1096        if (userid == __ste_Client_AddressBook0_Alias2) {
1097#line 1251
1098          retValue_acc = 2;
1099#line 1253
1100          return (retValue_acc);
1101        } else {
1102#line 1259
1103          retValue_acc = -1;
1104#line 1261
1105          return (retValue_acc);
1106        }
1107      }
1108    }
1109  } else {
1110#line 1263 "ClientLib.c"
1111    if (handle == 2) {
1112#line 191 "ClientLib.c"
1113      if (userid == __ste_Client_AddressBook1_Alias0) {
1114#line 1271
1115        retValue_acc = 0;
1116#line 1273
1117        return (retValue_acc);
1118      } else {
1119#line 1275
1120        if (userid == __ste_Client_AddressBook1_Alias1) {
1121#line 1280
1122          retValue_acc = 1;
1123#line 1282
1124          return (retValue_acc);
1125        } else {
1126#line 1284
1127          if (userid == __ste_Client_AddressBook1_Alias2) {
1128#line 1289
1129            retValue_acc = 2;
1130#line 1291
1131            return (retValue_acc);
1132          } else {
1133#line 1297
1134            retValue_acc = -1;
1135#line 1299
1136            return (retValue_acc);
1137          }
1138        }
1139      }
1140    } else {
1141#line 1301 "ClientLib.c"
1142      if (handle == 3) {
1143#line 201 "ClientLib.c"
1144        if (userid == __ste_Client_AddressBook2_Alias0) {
1145#line 1309
1146          retValue_acc = 0;
1147#line 1311
1148          return (retValue_acc);
1149        } else {
1150#line 1313
1151          if (userid == __ste_Client_AddressBook2_Alias1) {
1152#line 1318
1153            retValue_acc = 1;
1154#line 1320
1155            return (retValue_acc);
1156          } else {
1157#line 1322
1158            if (userid == __ste_Client_AddressBook2_Alias2) {
1159#line 1327
1160              retValue_acc = 2;
1161#line 1329
1162              return (retValue_acc);
1163            } else {
1164#line 1335
1165              retValue_acc = -1;
1166#line 1337
1167              return (retValue_acc);
1168            }
1169          }
1170        }
1171      } else {
1172#line 1343 "ClientLib.c"
1173        retValue_acc = -1;
1174#line 1345
1175        return (retValue_acc);
1176      }
1177    }
1178  }
1179#line 1352 "ClientLib.c"
1180  return (retValue_acc);
1181}
1182}
1183#line 208 "ClientLib.c"
1184void setClientAddressBookAlias(int handle , int index , int value ) 
1185{ 
1186
1187  {
1188#line 234
1189  if (handle == 1) {
1190#line 217
1191    if (index == 0) {
1192#line 211
1193      __ste_Client_AddressBook0_Alias0 = value;
1194    } else {
1195#line 212
1196      if (index == 1) {
1197#line 213
1198        __ste_Client_AddressBook0_Alias1 = value;
1199      } else {
1200#line 214
1201        if (index == 2) {
1202#line 215
1203          __ste_Client_AddressBook0_Alias2 = value;
1204        } else {
1205
1206        }
1207      }
1208    }
1209  } else {
1210#line 216
1211    if (handle == 2) {
1212#line 225
1213      if (index == 0) {
1214#line 219
1215        __ste_Client_AddressBook1_Alias0 = value;
1216      } else {
1217#line 220
1218        if (index == 1) {
1219#line 221
1220          __ste_Client_AddressBook1_Alias1 = value;
1221        } else {
1222#line 222
1223          if (index == 2) {
1224#line 223
1225            __ste_Client_AddressBook1_Alias2 = value;
1226          } else {
1227
1228          }
1229        }
1230      }
1231    } else {
1232#line 224
1233      if (handle == 3) {
1234#line 233
1235        if (index == 0) {
1236#line 227
1237          __ste_Client_AddressBook2_Alias0 = value;
1238        } else {
1239#line 228
1240          if (index == 1) {
1241#line 229
1242            __ste_Client_AddressBook2_Alias1 = value;
1243          } else {
1244#line 230
1245            if (index == 2) {
1246#line 231
1247              __ste_Client_AddressBook2_Alias2 = value;
1248            } else {
1249
1250            }
1251          }
1252        }
1253      } else {
1254
1255      }
1256    }
1257  }
1258#line 1420 "ClientLib.c"
1259  return;
1260}
1261}
1262#line 236 "ClientLib.c"
1263int __ste_Client_AddressBook0_Address0  =    0;
1264#line 238 "ClientLib.c"
1265int __ste_Client_AddressBook0_Address1  =    0;
1266#line 240 "ClientLib.c"
1267int __ste_Client_AddressBook0_Address2  =    0;
1268#line 242 "ClientLib.c"
1269int __ste_Client_AddressBook1_Address0  =    0;
1270#line 244 "ClientLib.c"
1271int __ste_Client_AddressBook1_Address1  =    0;
1272#line 246 "ClientLib.c"
1273int __ste_Client_AddressBook1_Address2  =    0;
1274#line 248 "ClientLib.c"
1275int __ste_Client_AddressBook2_Address0  =    0;
1276#line 250 "ClientLib.c"
1277int __ste_Client_AddressBook2_Address1  =    0;
1278#line 252 "ClientLib.c"
1279int __ste_Client_AddressBook2_Address2  =    0;
1280#line 255 "ClientLib.c"
1281int getClientAddressBookAddress(int handle , int index ) 
1282{ int retValue_acc ;
1283
1284  {
1285#line 288
1286  if (handle == 1) {
1287#line 265 "ClientLib.c"
1288    if (index == 0) {
1289#line 1462
1290      retValue_acc = __ste_Client_AddressBook0_Address0;
1291#line 1464
1292      return (retValue_acc);
1293    } else {
1294#line 1466
1295      if (index == 1) {
1296#line 1471
1297        retValue_acc = __ste_Client_AddressBook0_Address1;
1298#line 1473
1299        return (retValue_acc);
1300      } else {
1301#line 1475
1302        if (index == 2) {
1303#line 1480
1304          retValue_acc = __ste_Client_AddressBook0_Address2;
1305#line 1482
1306          return (retValue_acc);
1307        } else {
1308#line 1488
1309          retValue_acc = 0;
1310#line 1490
1311          return (retValue_acc);
1312        }
1313      }
1314    }
1315  } else {
1316#line 1492 "ClientLib.c"
1317    if (handle == 2) {
1318#line 275 "ClientLib.c"
1319      if (index == 0) {
1320#line 1500
1321        retValue_acc = __ste_Client_AddressBook1_Address0;
1322#line 1502
1323        return (retValue_acc);
1324      } else {
1325#line 1504
1326        if (index == 1) {
1327#line 1509
1328          retValue_acc = __ste_Client_AddressBook1_Address1;
1329#line 1511
1330          return (retValue_acc);
1331        } else {
1332#line 1513
1333          if (index == 2) {
1334#line 1518
1335            retValue_acc = __ste_Client_AddressBook1_Address2;
1336#line 1520
1337            return (retValue_acc);
1338          } else {
1339#line 1526
1340            retValue_acc = 0;
1341#line 1528
1342            return (retValue_acc);
1343          }
1344        }
1345      }
1346    } else {
1347#line 1530 "ClientLib.c"
1348      if (handle == 3) {
1349#line 285 "ClientLib.c"
1350        if (index == 0) {
1351#line 1538
1352          retValue_acc = __ste_Client_AddressBook2_Address0;
1353#line 1540
1354          return (retValue_acc);
1355        } else {
1356#line 1542
1357          if (index == 1) {
1358#line 1547
1359            retValue_acc = __ste_Client_AddressBook2_Address1;
1360#line 1549
1361            return (retValue_acc);
1362          } else {
1363#line 1551
1364            if (index == 2) {
1365#line 1556
1366              retValue_acc = __ste_Client_AddressBook2_Address2;
1367#line 1558
1368              return (retValue_acc);
1369            } else {
1370#line 1564
1371              retValue_acc = 0;
1372#line 1566
1373              return (retValue_acc);
1374            }
1375          }
1376        }
1377      } else {
1378#line 1572 "ClientLib.c"
1379        retValue_acc = 0;
1380#line 1574
1381        return (retValue_acc);
1382      }
1383    }
1384  }
1385#line 1581 "ClientLib.c"
1386  return (retValue_acc);
1387}
1388}
1389#line 291 "ClientLib.c"
1390void setClientAddressBookAddress(int handle , int index , int value ) 
1391{ 
1392
1393  {
1394#line 317
1395  if (handle == 1) {
1396#line 300
1397    if (index == 0) {
1398#line 294
1399      __ste_Client_AddressBook0_Address0 = value;
1400    } else {
1401#line 295
1402      if (index == 1) {
1403#line 296
1404        __ste_Client_AddressBook0_Address1 = value;
1405      } else {
1406#line 297
1407        if (index == 2) {
1408#line 298
1409          __ste_Client_AddressBook0_Address2 = value;
1410        } else {
1411
1412        }
1413      }
1414    }
1415  } else {
1416#line 299
1417    if (handle == 2) {
1418#line 308
1419      if (index == 0) {
1420#line 302
1421        __ste_Client_AddressBook1_Address0 = value;
1422      } else {
1423#line 303
1424        if (index == 1) {
1425#line 304
1426          __ste_Client_AddressBook1_Address1 = value;
1427        } else {
1428#line 305
1429          if (index == 2) {
1430#line 306
1431            __ste_Client_AddressBook1_Address2 = value;
1432          } else {
1433
1434          }
1435        }
1436      }
1437    } else {
1438#line 307
1439      if (handle == 3) {
1440#line 316
1441        if (index == 0) {
1442#line 310
1443          __ste_Client_AddressBook2_Address0 = value;
1444        } else {
1445#line 311
1446          if (index == 1) {
1447#line 312
1448            __ste_Client_AddressBook2_Address1 = value;
1449          } else {
1450#line 313
1451            if (index == 2) {
1452#line 314
1453              __ste_Client_AddressBook2_Address2 = value;
1454            } else {
1455
1456            }
1457          }
1458        }
1459      } else {
1460
1461      }
1462    }
1463  }
1464#line 1649 "ClientLib.c"
1465  return;
1466}
1467}
1468#line 319 "ClientLib.c"
1469int __ste_client_autoResponse0  =    0;
1470#line 321 "ClientLib.c"
1471int __ste_client_autoResponse1  =    0;
1472#line 323 "ClientLib.c"
1473int __ste_client_autoResponse2  =    0;
1474#line 326 "ClientLib.c"
1475int getClientAutoResponse(int handle ) 
1476{ int retValue_acc ;
1477
1478  {
1479#line 335 "ClientLib.c"
1480  if (handle == 1) {
1481#line 1676
1482    retValue_acc = __ste_client_autoResponse0;
1483#line 1678
1484    return (retValue_acc);
1485  } else {
1486#line 1680
1487    if (handle == 2) {
1488#line 1685
1489      retValue_acc = __ste_client_autoResponse1;
1490#line 1687
1491      return (retValue_acc);
1492    } else {
1493#line 1689
1494      if (handle == 3) {
1495#line 1694
1496        retValue_acc = __ste_client_autoResponse2;
1497#line 1696
1498        return (retValue_acc);
1499      } else {
1500#line 1702 "ClientLib.c"
1501        retValue_acc = -1;
1502#line 1704
1503        return (retValue_acc);
1504      }
1505    }
1506  }
1507#line 1711 "ClientLib.c"
1508  return (retValue_acc);
1509}
1510}
1511#line 338 "ClientLib.c"
1512void setClientAutoResponse(int handle , int value ) 
1513{ 
1514
1515  {
1516#line 346
1517  if (handle == 1) {
1518#line 340
1519    __ste_client_autoResponse0 = value;
1520  } else {
1521#line 341
1522    if (handle == 2) {
1523#line 342
1524      __ste_client_autoResponse1 = value;
1525    } else {
1526#line 343
1527      if (handle == 3) {
1528#line 344
1529        __ste_client_autoResponse2 = value;
1530      } else {
1531
1532      }
1533    }
1534  }
1535#line 1746 "ClientLib.c"
1536  return;
1537}
1538}
1539#line 348 "ClientLib.c"
1540int __ste_client_privateKey0  =    0;
1541#line 350 "ClientLib.c"
1542int __ste_client_privateKey1  =    0;
1543#line 352 "ClientLib.c"
1544int __ste_client_privateKey2  =    0;
1545#line 355 "ClientLib.c"
1546int getClientPrivateKey(int handle ) 
1547{ int retValue_acc ;
1548
1549  {
1550#line 364 "ClientLib.c"
1551  if (handle == 1) {
1552#line 1773
1553    retValue_acc = __ste_client_privateKey0;
1554#line 1775
1555    return (retValue_acc);
1556  } else {
1557#line 1777
1558    if (handle == 2) {
1559#line 1782
1560      retValue_acc = __ste_client_privateKey1;
1561#line 1784
1562      return (retValue_acc);
1563    } else {
1564#line 1786
1565      if (handle == 3) {
1566#line 1791
1567        retValue_acc = __ste_client_privateKey2;
1568#line 1793
1569        return (retValue_acc);
1570      } else {
1571#line 1799 "ClientLib.c"
1572        retValue_acc = 0;
1573#line 1801
1574        return (retValue_acc);
1575      }
1576    }
1577  }
1578#line 1808 "ClientLib.c"
1579  return (retValue_acc);
1580}
1581}
1582#line 367 "ClientLib.c"
1583void setClientPrivateKey(int handle , int value ) 
1584{ 
1585
1586  {
1587#line 375
1588  if (handle == 1) {
1589#line 369
1590    __ste_client_privateKey0 = value;
1591  } else {
1592#line 370
1593    if (handle == 2) {
1594#line 371
1595      __ste_client_privateKey1 = value;
1596    } else {
1597#line 372
1598      if (handle == 3) {
1599#line 373
1600        __ste_client_privateKey2 = value;
1601      } else {
1602
1603      }
1604    }
1605  }
1606#line 1843 "ClientLib.c"
1607  return;
1608}
1609}
1610#line 377 "ClientLib.c"
1611int __ste_ClientKeyring_size0  =    0;
1612#line 379 "ClientLib.c"
1613int __ste_ClientKeyring_size1  =    0;
1614#line 381 "ClientLib.c"
1615int __ste_ClientKeyring_size2  =    0;
1616#line 384 "ClientLib.c"
1617int getClientKeyringSize(int handle ) 
1618{ int retValue_acc ;
1619
1620  {
1621#line 393 "ClientLib.c"
1622  if (handle == 1) {
1623#line 1870
1624    retValue_acc = __ste_ClientKeyring_size0;
1625#line 1872
1626    return (retValue_acc);
1627  } else {
1628#line 1874
1629    if (handle == 2) {
1630#line 1879
1631      retValue_acc = __ste_ClientKeyring_size1;
1632#line 1881
1633      return (retValue_acc);
1634    } else {
1635#line 1883
1636      if (handle == 3) {
1637#line 1888
1638        retValue_acc = __ste_ClientKeyring_size2;
1639#line 1890
1640        return (retValue_acc);
1641      } else {
1642#line 1896 "ClientLib.c"
1643        retValue_acc = 0;
1644#line 1898
1645        return (retValue_acc);
1646      }
1647    }
1648  }
1649#line 1905 "ClientLib.c"
1650  return (retValue_acc);
1651}
1652}
1653#line 396 "ClientLib.c"
1654void setClientKeyringSize(int handle , int value ) 
1655{ 
1656
1657  {
1658#line 404
1659  if (handle == 1) {
1660#line 398
1661    __ste_ClientKeyring_size0 = value;
1662  } else {
1663#line 399
1664    if (handle == 2) {
1665#line 400
1666      __ste_ClientKeyring_size1 = value;
1667    } else {
1668#line 401
1669      if (handle == 3) {
1670#line 402
1671        __ste_ClientKeyring_size2 = value;
1672      } else {
1673
1674      }
1675    }
1676  }
1677#line 1940 "ClientLib.c"
1678  return;
1679}
1680}
1681#line 406 "ClientLib.c"
1682int createClientKeyringEntry(int handle ) 
1683{ int retValue_acc ;
1684  int size ;
1685  int tmp ;
1686  int __cil_tmp5 ;
1687
1688  {
1689  {
1690#line 407
1691  tmp = getClientKeyringSize(handle);
1692#line 407
1693  size = tmp;
1694  }
1695#line 408 "ClientLib.c"
1696  if (size < 2) {
1697    {
1698#line 409 "ClientLib.c"
1699    __cil_tmp5 = size + 1;
1700#line 409
1701    setClientKeyringSize(handle, __cil_tmp5);
1702#line 1967 "ClientLib.c"
1703    retValue_acc = size + 1;
1704    }
1705#line 1969
1706    return (retValue_acc);
1707  } else {
1708#line 1973 "ClientLib.c"
1709    retValue_acc = -1;
1710#line 1975
1711    return (retValue_acc);
1712  }
1713#line 1982 "ClientLib.c"
1714  return (retValue_acc);
1715}
1716}
1717#line 414 "ClientLib.c"
1718int __ste_Client_Keyring0_User0  =    0;
1719#line 416 "ClientLib.c"
1720int __ste_Client_Keyring0_User1  =    0;
1721#line 418 "ClientLib.c"
1722int __ste_Client_Keyring0_User2  =    0;
1723#line 420 "ClientLib.c"
1724int __ste_Client_Keyring1_User0  =    0;
1725#line 422 "ClientLib.c"
1726int __ste_Client_Keyring1_User1  =    0;
1727#line 424 "ClientLib.c"
1728int __ste_Client_Keyring1_User2  =    0;
1729#line 426 "ClientLib.c"
1730int __ste_Client_Keyring2_User0  =    0;
1731#line 428 "ClientLib.c"
1732int __ste_Client_Keyring2_User1  =    0;
1733#line 430 "ClientLib.c"
1734int __ste_Client_Keyring2_User2  =    0;
1735#line 433 "ClientLib.c"
1736int getClientKeyringUser(int handle , int index ) 
1737{ int retValue_acc ;
1738
1739  {
1740#line 466
1741  if (handle == 1) {
1742#line 443 "ClientLib.c"
1743    if (index == 0) {
1744#line 2028
1745      retValue_acc = __ste_Client_Keyring0_User0;
1746#line 2030
1747      return (retValue_acc);
1748    } else {
1749#line 2032
1750      if (index == 1) {
1751#line 2037
1752        retValue_acc = __ste_Client_Keyring0_User1;
1753#line 2039
1754        return (retValue_acc);
1755      } else {
1756#line 2045
1757        retValue_acc = 0;
1758#line 2047
1759        return (retValue_acc);
1760      }
1761    }
1762  } else {
1763#line 2049 "ClientLib.c"
1764    if (handle == 2) {
1765#line 453 "ClientLib.c"
1766      if (index == 0) {
1767#line 2057
1768        retValue_acc = __ste_Client_Keyring1_User0;
1769#line 2059
1770        return (retValue_acc);
1771      } else {
1772#line 2061
1773        if (index == 1) {
1774#line 2066
1775          retValue_acc = __ste_Client_Keyring1_User1;
1776#line 2068
1777          return (retValue_acc);
1778        } else {
1779#line 2074
1780          retValue_acc = 0;
1781#line 2076
1782          return (retValue_acc);
1783        }
1784      }
1785    } else {
1786#line 2078 "ClientLib.c"
1787      if (handle == 3) {
1788#line 463 "ClientLib.c"
1789        if (index == 0) {
1790#line 2086
1791          retValue_acc = __ste_Client_Keyring2_User0;
1792#line 2088
1793          return (retValue_acc);
1794        } else {
1795#line 2090
1796          if (index == 1) {
1797#line 2095
1798            retValue_acc = __ste_Client_Keyring2_User1;
1799#line 2097
1800            return (retValue_acc);
1801          } else {
1802#line 2103
1803            retValue_acc = 0;
1804#line 2105
1805            return (retValue_acc);
1806          }
1807        }
1808      } else {
1809#line 2111 "ClientLib.c"
1810        retValue_acc = 0;
1811#line 2113
1812        return (retValue_acc);
1813      }
1814    }
1815  }
1816#line 2120 "ClientLib.c"
1817  return (retValue_acc);
1818}
1819}
1820#line 473 "ClientLib.c"
1821void setClientKeyringUser(int handle , int index , int value ) 
1822{ 
1823
1824  {
1825#line 499
1826  if (handle == 1) {
1827#line 482
1828    if (index == 0) {
1829#line 476
1830      __ste_Client_Keyring0_User0 = value;
1831    } else {
1832#line 477
1833      if (index == 1) {
1834#line 478
1835        __ste_Client_Keyring0_User1 = value;
1836      } else {
1837
1838      }
1839    }
1840  } else {
1841#line 479
1842    if (handle == 2) {
1843#line 490
1844      if (index == 0) {
1845#line 484
1846        __ste_Client_Keyring1_User0 = value;
1847      } else {
1848#line 485
1849        if (index == 1) {
1850#line 486
1851          __ste_Client_Keyring1_User1 = value;
1852        } else {
1853
1854        }
1855      }
1856    } else {
1857#line 487
1858      if (handle == 3) {
1859#line 498
1860        if (index == 0) {
1861#line 492
1862          __ste_Client_Keyring2_User0 = value;
1863        } else {
1864#line 493
1865          if (index == 1) {
1866#line 494
1867            __ste_Client_Keyring2_User1 = value;
1868          } else {
1869
1870          }
1871        }
1872      } else {
1873
1874      }
1875    }
1876  }
1877#line 2176 "ClientLib.c"
1878  return;
1879}
1880}
1881#line 501 "ClientLib.c"
1882int __ste_Client_Keyring0_PublicKey0  =    0;
1883#line 503 "ClientLib.c"
1884int __ste_Client_Keyring0_PublicKey1  =    0;
1885#line 505 "ClientLib.c"
1886int __ste_Client_Keyring0_PublicKey2  =    0;
1887#line 507 "ClientLib.c"
1888int __ste_Client_Keyring1_PublicKey0  =    0;
1889#line 509 "ClientLib.c"
1890int __ste_Client_Keyring1_PublicKey1  =    0;
1891#line 511 "ClientLib.c"
1892int __ste_Client_Keyring1_PublicKey2  =    0;
1893#line 513 "ClientLib.c"
1894int __ste_Client_Keyring2_PublicKey0  =    0;
1895#line 515 "ClientLib.c"
1896int __ste_Client_Keyring2_PublicKey1  =    0;
1897#line 517 "ClientLib.c"
1898int __ste_Client_Keyring2_PublicKey2  =    0;
1899#line 520 "ClientLib.c"
1900int getClientKeyringPublicKey(int handle , int index ) 
1901{ int retValue_acc ;
1902
1903  {
1904#line 553
1905  if (handle == 1) {
1906#line 530 "ClientLib.c"
1907    if (index == 0) {
1908#line 2218
1909      retValue_acc = __ste_Client_Keyring0_PublicKey0;
1910#line 2220
1911      return (retValue_acc);
1912    } else {
1913#line 2222
1914      if (index == 1) {
1915#line 2227
1916        retValue_acc = __ste_Client_Keyring0_PublicKey1;
1917#line 2229
1918        return (retValue_acc);
1919      } else {
1920#line 2235
1921        retValue_acc = 0;
1922#line 2237
1923        return (retValue_acc);
1924      }
1925    }
1926  } else {
1927#line 2239 "ClientLib.c"
1928    if (handle == 2) {
1929#line 540 "ClientLib.c"
1930      if (index == 0) {
1931#line 2247
1932        retValue_acc = __ste_Client_Keyring1_PublicKey0;
1933#line 2249
1934        return (retValue_acc);
1935      } else {
1936#line 2251
1937        if (index == 1) {
1938#line 2256
1939          retValue_acc = __ste_Client_Keyring1_PublicKey1;
1940#line 2258
1941          return (retValue_acc);
1942        } else {
1943#line 2264
1944          retValue_acc = 0;
1945#line 2266
1946          return (retValue_acc);
1947        }
1948      }
1949    } else {
1950#line 2268 "ClientLib.c"
1951      if (handle == 3) {
1952#line 550 "ClientLib.c"
1953        if (index == 0) {
1954#line 2276
1955          retValue_acc = __ste_Client_Keyring2_PublicKey0;
1956#line 2278
1957          return (retValue_acc);
1958        } else {
1959#line 2280
1960          if (index == 1) {
1961#line 2285
1962            retValue_acc = __ste_Client_Keyring2_PublicKey1;
1963#line 2287
1964            return (retValue_acc);
1965          } else {
1966#line 2293
1967            retValue_acc = 0;
1968#line 2295
1969            return (retValue_acc);
1970          }
1971        }
1972      } else {
1973#line 2301 "ClientLib.c"
1974        retValue_acc = 0;
1975#line 2303
1976        return (retValue_acc);
1977      }
1978    }
1979  }
1980#line 2310 "ClientLib.c"
1981  return (retValue_acc);
1982}
1983}
1984#line 557 "ClientLib.c"
1985int findPublicKey(int handle , int userid ) 
1986{ int retValue_acc ;
1987
1988  {
1989#line 591
1990  if (handle == 1) {
1991#line 568 "ClientLib.c"
1992    if (userid == __ste_Client_Keyring0_User0) {
1993#line 2338
1994      retValue_acc = __ste_Client_Keyring0_PublicKey0;
1995#line 2340
1996      return (retValue_acc);
1997    } else {
1998#line 2342
1999      if (userid == __ste_Client_Keyring0_User1) {
2000#line 2347
2001        retValue_acc = __ste_Client_Keyring0_PublicKey1;
2002#line 2349
2003        return (retValue_acc);
2004      } else {
2005#line 2355
2006        retValue_acc = 0;
2007#line 2357
2008        return (retValue_acc);
2009      }
2010    }
2011  } else {
2012#line 2359 "ClientLib.c"
2013    if (handle == 2) {
2014#line 578 "ClientLib.c"
2015      if (userid == __ste_Client_Keyring1_User0) {
2016#line 2367
2017        retValue_acc = __ste_Client_Keyring1_PublicKey0;
2018#line 2369
2019        return (retValue_acc);
2020      } else {
2021#line 2371
2022        if (userid == __ste_Client_Keyring1_User1) {
2023#line 2376
2024          retValue_acc = __ste_Client_Keyring1_PublicKey1;
2025#line 2378
2026          return (retValue_acc);
2027        } else {
2028#line 2384
2029          retValue_acc = 0;
2030#line 2386
2031          return (retValue_acc);
2032        }
2033      }
2034    } else {
2035#line 2388 "ClientLib.c"
2036      if (handle == 3) {
2037#line 588 "ClientLib.c"
2038        if (userid == __ste_Client_Keyring2_User0) {
2039#line 2396
2040          retValue_acc = __ste_Client_Keyring2_PublicKey0;
2041#line 2398
2042          return (retValue_acc);
2043        } else {
2044#line 2400
2045          if (userid == __ste_Client_Keyring2_User1) {
2046#line 2405
2047            retValue_acc = __ste_Client_Keyring2_PublicKey1;
2048#line 2407
2049            return (retValue_acc);
2050          } else {
2051#line 2413
2052            retValue_acc = 0;
2053#line 2415
2054            return (retValue_acc);
2055          }
2056        }
2057      } else {
2058#line 2421 "ClientLib.c"
2059        retValue_acc = 0;
2060#line 2423
2061        return (retValue_acc);
2062      }
2063    }
2064  }
2065#line 2430 "ClientLib.c"
2066  return (retValue_acc);
2067}
2068}
2069#line 595 "ClientLib.c"
2070void setClientKeyringPublicKey(int handle , int index , int value ) 
2071{ 
2072
2073  {
2074#line 621
2075  if (handle == 1) {
2076#line 604
2077    if (index == 0) {
2078#line 598
2079      __ste_Client_Keyring0_PublicKey0 = value;
2080    } else {
2081#line 599
2082      if (index == 1) {
2083#line 600
2084        __ste_Client_Keyring0_PublicKey1 = value;
2085      } else {
2086
2087      }
2088    }
2089  } else {
2090#line 601
2091    if (handle == 2) {
2092#line 612
2093      if (index == 0) {
2094#line 606
2095        __ste_Client_Keyring1_PublicKey0 = value;
2096      } else {
2097#line 607
2098        if (index == 1) {
2099#line 608
2100          __ste_Client_Keyring1_PublicKey1 = value;
2101        } else {
2102
2103        }
2104      }
2105    } else {
2106#line 609
2107      if (handle == 3) {
2108#line 620
2109        if (index == 0) {
2110#line 614
2111          __ste_Client_Keyring2_PublicKey0 = value;
2112        } else {
2113#line 615
2114          if (index == 1) {
2115#line 616
2116            __ste_Client_Keyring2_PublicKey1 = value;
2117          } else {
2118
2119          }
2120        }
2121      } else {
2122
2123      }
2124    }
2125  }
2126#line 2486 "ClientLib.c"
2127  return;
2128}
2129}
2130#line 623 "ClientLib.c"
2131int __ste_client_forwardReceiver0  =    0;
2132#line 625 "ClientLib.c"
2133int __ste_client_forwardReceiver1  =    0;
2134#line 627 "ClientLib.c"
2135int __ste_client_forwardReceiver2  =    0;
2136#line 629 "ClientLib.c"
2137int __ste_client_forwardReceiver3  =    0;
2138#line 631 "ClientLib.c"
2139int getClientForwardReceiver(int handle ) 
2140{ int retValue_acc ;
2141
2142  {
2143#line 640 "ClientLib.c"
2144  if (handle == 1) {
2145#line 2515
2146    retValue_acc = __ste_client_forwardReceiver0;
2147#line 2517
2148    return (retValue_acc);
2149  } else {
2150#line 2519
2151    if (handle == 2) {
2152#line 2524
2153      retValue_acc = __ste_client_forwardReceiver1;
2154#line 2526
2155      return (retValue_acc);
2156    } else {
2157#line 2528
2158      if (handle == 3) {
2159#line 2533
2160        retValue_acc = __ste_client_forwardReceiver2;
2161#line 2535
2162        return (retValue_acc);
2163      } else {
2164#line 2541 "ClientLib.c"
2165        retValue_acc = 0;
2166#line 2543
2167        return (retValue_acc);
2168      }
2169    }
2170  }
2171#line 2550 "ClientLib.c"
2172  return (retValue_acc);
2173}
2174}
2175#line 643 "ClientLib.c"
2176void setClientForwardReceiver(int handle , int value ) 
2177{ 
2178
2179  {
2180#line 651
2181  if (handle == 1) {
2182#line 645
2183    __ste_client_forwardReceiver0 = value;
2184  } else {
2185#line 646
2186    if (handle == 2) {
2187#line 647
2188      __ste_client_forwardReceiver1 = value;
2189    } else {
2190#line 648
2191      if (handle == 3) {
2192#line 649
2193        __ste_client_forwardReceiver2 = value;
2194      } else {
2195
2196      }
2197    }
2198  }
2199#line 2585 "ClientLib.c"
2200  return;
2201}
2202}
2203#line 653 "ClientLib.c"
2204int __ste_client_idCounter0  =    0;
2205#line 655 "ClientLib.c"
2206int __ste_client_idCounter1  =    0;
2207#line 657 "ClientLib.c"
2208int __ste_client_idCounter2  =    0;
2209#line 660 "ClientLib.c"
2210int getClientId(int handle ) 
2211{ int retValue_acc ;
2212
2213  {
2214#line 669 "ClientLib.c"
2215  if (handle == 1) {
2216#line 2612
2217    retValue_acc = __ste_client_idCounter0;
2218#line 2614
2219    return (retValue_acc);
2220  } else {
2221#line 2616
2222    if (handle == 2) {
2223#line 2621
2224      retValue_acc = __ste_client_idCounter1;
2225#line 2623
2226      return (retValue_acc);
2227    } else {
2228#line 2625
2229      if (handle == 3) {
2230#line 2630
2231        retValue_acc = __ste_client_idCounter2;
2232#line 2632
2233        return (retValue_acc);
2234      } else {
2235#line 2638 "ClientLib.c"
2236        retValue_acc = 0;
2237#line 2640
2238        return (retValue_acc);
2239      }
2240    }
2241  }
2242#line 2647 "ClientLib.c"
2243  return (retValue_acc);
2244}
2245}
2246#line 672 "ClientLib.c"
2247void setClientId(int handle , int value ) 
2248{ 
2249
2250  {
2251#line 680
2252  if (handle == 1) {
2253#line 674
2254    __ste_client_idCounter0 = value;
2255  } else {
2256#line 675
2257    if (handle == 2) {
2258#line 676
2259      __ste_client_idCounter1 = value;
2260    } else {
2261#line 677
2262      if (handle == 3) {
2263#line 678
2264        __ste_client_idCounter2 = value;
2265      } else {
2266
2267      }
2268    }
2269  }
2270#line 2682 "ClientLib.c"
2271  return;
2272}
2273}
2274#line 1 "Client.o"
2275#pragma merger(0,"Client.i","")
2276#line 12 "EmailLib.h"
2277void setEmailFrom(int handle , int value ) ;
2278#line 14
2279int getEmailTo(int handle ) ;
2280#line 16
2281void setEmailTo(int handle , int value ) ;
2282#line 26
2283int isEncrypted(int handle ) ;
2284#line 28
2285void setEmailIsEncrypted(int handle , int value ) ;
2286#line 30
2287int getEmailEncryptionKey(int handle ) ;
2288#line 32
2289void setEmailEncryptionKey(int handle , int value ) ;
2290#line 36
2291void setEmailIsSigned(int handle , int value ) ;
2292#line 40
2293void setEmailSignKey(int handle , int value ) ;
2294#line 44
2295void setEmailIsSignatureVerified(int handle , int value ) ;
2296#line 6 "Email.h"
2297void printMail(int msg ) ;
2298#line 9
2299int isReadable(int msg ) ;
2300#line 12
2301int createEmail(int from , int to ) ;
2302#line 14 "Client.h"
2303void queue(int client , int msg ) ;
2304#line 24
2305void mail(int client , int msg ) ;
2306#line 28
2307void deliver(int client , int msg ) ;
2308#line 30
2309void incoming(int client , int msg ) ;
2310#line 32
2311int createClient(char *name ) ;
2312#line 45
2313void sendToAddressBook(int client , int msg ) ;
2314#line 47
2315void sign(int client , int msg ) ;
2316#line 49
2317void forward(int client , int msg ) ;
2318#line 51
2319void verify(int client , int msg ) ;
2320#line 6 "Client.c"
2321int queue_empty  =    1;
2322#line 9 "Client.c"
2323int queued_message  ;
2324#line 12 "Client.c"
2325int queued_client  ;
2326#line 18 "Client.c"
2327void mail(int client , int msg ) 
2328{ int __utac__ad__arg1 ;
2329  int tmp ;
2330
2331  {
2332  {
2333#line 728 "Client.c"
2334  __utac__ad__arg1 = msg;
2335#line 729
2336  __utac_acc__SignVerify_spec__1(__utac__ad__arg1);
2337#line 19 "Client.c"
2338  puts("mail sent");
2339#line 20
2340  tmp = getEmailTo(msg);
2341#line 20
2342  incoming(tmp, msg);
2343  }
2344#line 746 "Client.c"
2345  return;
2346}
2347}
2348#line 27 "Client.c"
2349void outgoing__wrappee__Keys(int client , int msg ) 
2350{ int tmp ;
2351
2352  {
2353  {
2354#line 28
2355  tmp = getClientId(client);
2356#line 28
2357  setEmailFrom(msg, tmp);
2358#line 29
2359  mail(client, msg);
2360  }
2361#line 768 "Client.c"
2362  return;
2363}
2364}
2365#line 33 "Client.c"
2366void outgoing__wrappee__Encrypt(int client , int msg ) 
2367{ int receiver ;
2368  int tmp ;
2369  int pubkey ;
2370  int tmp___0 ;
2371
2372  {
2373  {
2374#line 36
2375  tmp = getEmailTo(msg);
2376#line 36
2377  receiver = tmp;
2378#line 37
2379  tmp___0 = findPublicKey(client, receiver);
2380#line 37
2381  pubkey = tmp___0;
2382  }
2383#line 38
2384  if (pubkey) {
2385    {
2386#line 39
2387    setEmailEncryptionKey(msg, pubkey);
2388#line 40
2389    setEmailIsEncrypted(msg, 1);
2390    }
2391  } else {
2392
2393  }
2394  {
2395#line 45
2396  outgoing__wrappee__Keys(client, msg);
2397  }
2398#line 803 "Client.c"
2399  return;
2400}
2401}
2402#line 52 "Client.c"
2403void outgoing__wrappee__AddressBook(int client , int msg ) 
2404{ int size ;
2405  int tmp ;
2406  int receiver ;
2407  int tmp___0 ;
2408  int second ;
2409  int tmp___1 ;
2410  int tmp___2 ;
2411
2412  {
2413  {
2414#line 54
2415  tmp = getClientAddressBookSize(client);
2416#line 54
2417  size = tmp;
2418  }
2419#line 56
2420  if (size) {
2421    {
2422#line 57
2423    sendToAddressBook(client, msg);
2424#line 58
2425    puts("sending to alias in address book\n");
2426#line 59
2427    tmp___0 = getEmailTo(msg);
2428#line 59
2429    receiver = tmp___0;
2430#line 61
2431    puts("sending to second receipient\n");
2432#line 62
2433    tmp___1 = getClientAddressBookAddress(client, 1);
2434#line 62
2435    second = tmp___1;
2436#line 63
2437    setEmailTo(msg, second);
2438#line 64
2439    outgoing__wrappee__Encrypt(client, msg);
2440#line 67
2441    tmp___2 = getClientAddressBookAddress(client, 0);
2442#line 67
2443    setEmailTo(msg, tmp___2);
2444#line 68
2445    outgoing__wrappee__Encrypt(client, msg);
2446    }
2447  } else {
2448    {
2449#line 70
2450    outgoing__wrappee__Encrypt(client, msg);
2451    }
2452  }
2453#line 853 "Client.c"
2454  return;
2455}
2456}
2457#line 78 "Client.c"
2458void outgoing(int client , int msg ) 
2459{ 
2460
2461  {
2462  {
2463#line 79
2464  sign(client, msg);
2465#line 80
2466  outgoing__wrappee__AddressBook(client, msg);
2467  }
2468#line 875 "Client.c"
2469  return;
2470}
2471}
2472#line 87 "Client.c"
2473void deliver(int client , int msg ) 
2474{ 
2475
2476  {
2477  {
2478#line 88
2479  puts("mail delivered\n");
2480  }
2481#line 895 "Client.c"
2482  return;
2483}
2484}
2485#line 95 "Client.c"
2486void incoming__wrappee__Sign(int client , int msg ) 
2487{ 
2488
2489  {
2490  {
2491#line 96
2492  deliver(client, msg);
2493  }
2494#line 915 "Client.c"
2495  return;
2496}
2497}
2498#line 102 "Client.c"
2499void incoming__wrappee__Forward(int client , int msg ) 
2500{ int fwreceiver ;
2501  int tmp ;
2502
2503  {
2504  {
2505#line 103
2506  incoming__wrappee__Sign(client, msg);
2507#line 104
2508  tmp = getClientForwardReceiver(client);
2509#line 104
2510  fwreceiver = tmp;
2511  }
2512#line 105
2513  if (fwreceiver) {
2514    {
2515#line 107
2516    setEmailTo(msg, fwreceiver);
2517#line 108
2518    forward(client, msg);
2519    }
2520  } else {
2521
2522  }
2523#line 946 "Client.c"
2524  return;
2525}
2526}
2527#line 116 "Client.c"
2528void incoming__wrappee__Verify(int client , int msg ) 
2529{ 
2530
2531  {
2532  {
2533#line 117
2534  verify(client, msg);
2535#line 118
2536  incoming__wrappee__Forward(client, msg);
2537  }
2538#line 968 "Client.c"
2539  return;
2540}
2541}
2542#line 123 "Client.c"
2543void incoming(int client , int msg ) 
2544{ int privkey ;
2545  int tmp ;
2546  int tmp___0 ;
2547  int tmp___1 ;
2548  int tmp___2 ;
2549
2550  {
2551  {
2552#line 126
2553  tmp = getClientPrivateKey(client);
2554#line 126
2555  privkey = tmp;
2556  }
2557#line 127
2558  if (privkey) {
2559    {
2560#line 135
2561    tmp___0 = isEncrypted(msg);
2562    }
2563#line 135
2564    if (tmp___0) {
2565      {
2566#line 135
2567      tmp___1 = getEmailEncryptionKey(msg);
2568#line 135
2569      tmp___2 = isKeyPairValid(tmp___1, privkey);
2570      }
2571#line 135
2572      if (tmp___2) {
2573        {
2574#line 132
2575        setEmailIsEncrypted(msg, 0);
2576#line 133
2577        setEmailEncryptionKey(msg, 0);
2578        }
2579      } else {
2580
2581      }
2582    } else {
2583
2584    }
2585  } else {
2586
2587  }
2588  {
2589#line 138
2590  incoming__wrappee__Verify(client, msg);
2591  }
2592#line 1002 "Client.c"
2593  return;
2594}
2595}
2596#line 142 "Client.c"
2597int createClient(char *name ) 
2598{ int retValue_acc ;
2599  int client ;
2600  int tmp ;
2601
2602  {
2603  {
2604#line 143
2605  tmp = initClient();
2606#line 143
2607  client = tmp;
2608#line 1024 "Client.c"
2609  retValue_acc = client;
2610  }
2611#line 1026
2612  return (retValue_acc);
2613#line 1033
2614  return (retValue_acc);
2615}
2616}
2617#line 150 "Client.c"
2618void sendEmail(int sender , int receiver ) 
2619{ int email ;
2620  int tmp ;
2621
2622  {
2623  {
2624#line 151
2625  tmp = createEmail(0, receiver);
2626#line 151
2627  email = tmp;
2628#line 152
2629  outgoing(sender, email);
2630  }
2631#line 1061 "Client.c"
2632  return;
2633}
2634}
2635#line 160 "Client.c"
2636void queue(int client , int msg ) 
2637{ 
2638
2639  {
2640#line 161
2641  queue_empty = 0;
2642#line 162
2643  queued_message = msg;
2644#line 163
2645  queued_client = client;
2646#line 1085 "Client.c"
2647  return;
2648}
2649}
2650#line 169 "Client.c"
2651int is_queue_empty(void) 
2652{ int retValue_acc ;
2653
2654  {
2655#line 1103 "Client.c"
2656  retValue_acc = queue_empty;
2657#line 1105
2658  return (retValue_acc);
2659#line 1112
2660  return (retValue_acc);
2661}
2662}
2663#line 176 "Client.c"
2664int get_queued_client(void) 
2665{ int retValue_acc ;
2666
2667  {
2668#line 1134 "Client.c"
2669  retValue_acc = queued_client;
2670#line 1136
2671  return (retValue_acc);
2672#line 1143
2673  return (retValue_acc);
2674}
2675}
2676#line 183 "Client.c"
2677int get_queued_email(void) 
2678{ int retValue_acc ;
2679
2680  {
2681#line 1165 "Client.c"
2682  retValue_acc = queued_message;
2683#line 1167
2684  return (retValue_acc);
2685#line 1174
2686  return (retValue_acc);
2687}
2688}
2689#line 189 "Client.c"
2690int isKeyPairValid(int publicKey , int privateKey ) 
2691{ int retValue_acc ;
2692  char const   * __restrict  __cil_tmp4 ;
2693
2694  {
2695  {
2696#line 190
2697  __cil_tmp4 = (char const   * __restrict  )"keypair valid %d %d";
2698#line 190
2699  printf(__cil_tmp4, publicKey, privateKey);
2700  }
2701#line 191 "Client.c"
2702  if (! publicKey) {
2703#line 1199 "Client.c"
2704    retValue_acc = 0;
2705#line 1201
2706    return (retValue_acc);
2707  } else {
2708#line 191 "Client.c"
2709    if (! privateKey) {
2710#line 1199 "Client.c"
2711      retValue_acc = 0;
2712#line 1201
2713      return (retValue_acc);
2714    } else {
2715
2716    }
2717  }
2718#line 1206 "Client.c"
2719  retValue_acc = privateKey == publicKey;
2720#line 1208
2721  return (retValue_acc);
2722#line 1215
2723  return (retValue_acc);
2724}
2725}
2726#line 199 "Client.c"
2727void generateKeyPair(int client , int seed ) 
2728{ 
2729
2730  {
2731  {
2732#line 200
2733  setClientPrivateKey(client, seed);
2734  }
2735#line 1239 "Client.c"
2736  return;
2737}
2738}
2739#line 205 "Client.c"
2740void sendToAddressBook(int client , int msg ) 
2741{ 
2742
2743  {
2744#line 1257 "Client.c"
2745  return;
2746}
2747}
2748#line 211 "Client.c"
2749void sign(int client , int msg ) 
2750{ int privkey ;
2751  int tmp ;
2752
2753  {
2754  {
2755#line 212
2756  tmp = getClientPrivateKey(client);
2757#line 212
2758  privkey = tmp;
2759  }
2760#line 213
2761  if (! privkey) {
2762#line 214
2763    return;
2764  } else {
2765
2766  }
2767  {
2768#line 215
2769  setEmailIsSigned(msg, 1);
2770#line 216
2771  setEmailSignKey(msg, privkey);
2772  }
2773#line 1287 "Client.c"
2774  return;
2775}
2776}
2777#line 221 "Client.c"
2778void forward(int client , int msg ) 
2779{ 
2780
2781  {
2782  {
2783#line 222
2784  puts("Forwarding message.\n");
2785#line 223
2786  printMail(msg);
2787#line 224
2788  queue(client, msg);
2789  }
2790#line 1311 "Client.c"
2791  return;
2792}
2793}
2794#line 230 "Client.c"
2795void verify(int client , int msg ) 
2796{ int __utac__ad__arg1 ;
2797  int __utac__ad__arg2 ;
2798  int tmp ;
2799  int tmp___0 ;
2800  int pubkey ;
2801  int tmp___1 ;
2802  int tmp___2 ;
2803  int tmp___3 ;
2804  int tmp___4 ;
2805
2806  {
2807  {
2808#line 1324 "Client.c"
2809  __utac__ad__arg1 = client;
2810#line 1325
2811  __utac__ad__arg2 = msg;
2812#line 1326
2813  __utac_acc__SignVerify_spec__2(__utac__ad__arg1, __utac__ad__arg2);
2814#line 235 "Client.c"
2815  tmp = isReadable(msg);
2816  }
2817#line 235
2818  if (tmp) {
2819    {
2820#line 235
2821    tmp___0 = isSigned(msg);
2822    }
2823#line 235
2824    if (tmp___0) {
2825
2826    } else {
2827#line 236
2828      return;
2829    }
2830  } else {
2831#line 236
2832    return;
2833  }
2834  {
2835#line 235
2836  tmp___1 = getEmailFrom(msg);
2837#line 235
2838  tmp___2 = findPublicKey(client, tmp___1);
2839#line 235
2840  pubkey = tmp___2;
2841  }
2842#line 236
2843  if (pubkey) {
2844    {
2845#line 236
2846    tmp___3 = getEmailSignKey(msg);
2847#line 236
2848    tmp___4 = isKeyPairValid(tmp___3, pubkey);
2849    }
2850#line 236
2851    if (tmp___4) {
2852      {
2853#line 237
2854      setEmailIsSignatureVerified(msg, 1);
2855      }
2856    } else {
2857
2858    }
2859  } else {
2860
2861  }
2862#line 1352 "Client.c"
2863  return;
2864}
2865}
2866#line 1 "featureselect.o"
2867#pragma merger(0,"featureselect.i","")
2868#line 41 "featureselect.h"
2869int select_one(void) ;
2870#line 8 "featureselect.c"
2871int select_one(void) 
2872{ int retValue_acc ;
2873  int choice = __VERIFIER_nondet_int();
2874
2875  {
2876#line 84 "featureselect.c"
2877  retValue_acc = choice;
2878#line 86
2879  return (retValue_acc);
2880#line 93
2881  return (retValue_acc);
2882}
2883}
2884#line 14 "featureselect.c"
2885void select_features(void) 
2886{ 
2887
2888  {
2889#line 115 "featureselect.c"
2890  return;
2891}
2892}
2893#line 20 "featureselect.c"
2894void select_helpers(void) 
2895{ 
2896
2897  {
2898#line 133 "featureselect.c"
2899  return;
2900}
2901}
2902#line 25 "featureselect.c"
2903int valid_product(void) 
2904{ int retValue_acc ;
2905
2906  {
2907#line 151 "featureselect.c"
2908  retValue_acc = 1;
2909#line 153
2910  return (retValue_acc);
2911#line 160
2912  return (retValue_acc);
2913}
2914}
2915#line 1 "Email.o"
2916#pragma merger(0,"Email.i","")
2917#line 6 "EmailLib.h"
2918int getEmailId(int handle ) ;
2919#line 42
2920int isVerified(int handle ) ;
2921#line 15 "Email.h"
2922int cloneEmail(int msg ) ;
2923#line 9 "Email.c"
2924void printMail__wrappee__Keys(int msg ) 
2925{ int tmp ;
2926  int tmp___0 ;
2927  int tmp___1 ;
2928  int tmp___2 ;
2929  char const   * __restrict  __cil_tmp6 ;
2930  char const   * __restrict  __cil_tmp7 ;
2931  char const   * __restrict  __cil_tmp8 ;
2932  char const   * __restrict  __cil_tmp9 ;
2933
2934  {
2935  {
2936#line 10
2937  tmp = getEmailId(msg);
2938#line 10
2939  __cil_tmp6 = (char const   * __restrict  )"ID:\n  %i\n";
2940#line 10
2941  printf(__cil_tmp6, tmp);
2942#line 11
2943  tmp___0 = getEmailFrom(msg);
2944#line 11
2945  __cil_tmp7 = (char const   * __restrict  )"FROM:\n  %i\n";
2946#line 11
2947  printf(__cil_tmp7, tmp___0);
2948#line 12
2949  tmp___1 = getEmailTo(msg);
2950#line 12
2951  __cil_tmp8 = (char const   * __restrict  )"TO:\n  %i\n";
2952#line 12
2953  printf(__cil_tmp8, tmp___1);
2954#line 13
2955  tmp___2 = isReadable(msg);
2956#line 13
2957  __cil_tmp9 = (char const   * __restrict  )"IS_READABLE\n  %i\n";
2958#line 13
2959  printf(__cil_tmp9, tmp___2);
2960  }
2961#line 601 "Email.c"
2962  return;
2963}
2964}
2965#line 17 "Email.c"
2966void printMail__wrappee__AddressBook(int msg ) 
2967{ int tmp ;
2968  int tmp___0 ;
2969  char const   * __restrict  __cil_tmp4 ;
2970  char const   * __restrict  __cil_tmp5 ;
2971
2972  {
2973  {
2974#line 18
2975  printMail__wrappee__Keys(msg);
2976#line 19
2977  tmp = isEncrypted(msg);
2978#line 19
2979  __cil_tmp4 = (char const   * __restrict  )"ENCRYPTED\n  %d\n";
2980#line 19
2981  printf(__cil_tmp4, tmp);
2982#line 20
2983  tmp___0 = getEmailEncryptionKey(msg);
2984#line 20
2985  __cil_tmp5 = (char const   * __restrict  )"ENCRYPTION KEY\n  %d\n";
2986#line 20
2987  printf(__cil_tmp5, tmp___0);
2988  }
2989#line 625 "Email.c"
2990  return;
2991}
2992}
2993#line 26 "Email.c"
2994void printMail__wrappee__Forward(int msg ) 
2995{ int tmp ;
2996  int tmp___0 ;
2997  char const   * __restrict  __cil_tmp4 ;
2998  char const   * __restrict  __cil_tmp5 ;
2999
3000  {
3001  {
3002#line 27
3003  printMail__wrappee__AddressBook(msg);
3004#line 28
3005  tmp = isSigned(msg);
3006#line 28
3007  __cil_tmp4 = (char const   * __restrict  )"SIGNED\n  %i\n";
3008#line 28
3009  printf(__cil_tmp4, tmp);
3010#line 29
3011  tmp___0 = getEmailSignKey(msg);
3012#line 29
3013  __cil_tmp5 = (char const   * __restrict  )"SIGNATURE\n  %i\n";
3014#line 29
3015  printf(__cil_tmp5, tmp___0);
3016  }
3017#line 649 "Email.c"
3018  return;
3019}
3020}
3021#line 33 "Email.c"
3022void printMail(int msg ) 
3023{ int tmp ;
3024  char const   * __restrict  __cil_tmp3 ;
3025
3026  {
3027  {
3028#line 34
3029  printMail__wrappee__Forward(msg);
3030#line 35
3031  tmp = isVerified(msg);
3032#line 35
3033  __cil_tmp3 = (char const   * __restrict  )"SIGNATURE VERIFIED\n  %d\n";
3034#line 35
3035  printf(__cil_tmp3, tmp);
3036  }
3037#line 671 "Email.c"
3038  return;
3039}
3040}
3041#line 41 "Email.c"
3042int isReadable__wrappee__Keys(int msg ) 
3043{ int retValue_acc ;
3044
3045  {
3046#line 689 "Email.c"
3047  retValue_acc = 1;
3048#line 691
3049  return (retValue_acc);
3050#line 698
3051  return (retValue_acc);
3052}
3053}
3054#line 49 "Email.c"
3055int isReadable(int msg ) 
3056{ int retValue_acc ;
3057  int tmp ;
3058
3059  {
3060  {
3061#line 53
3062  tmp = isEncrypted(msg);
3063  }
3064#line 53 "Email.c"
3065  if (tmp) {
3066#line 727
3067    retValue_acc = 0;
3068#line 729
3069    return (retValue_acc);
3070  } else {
3071    {
3072#line 721 "Email.c"
3073    retValue_acc = isReadable__wrappee__Keys(msg);
3074    }
3075#line 723
3076    return (retValue_acc);
3077  }
3078#line 736 "Email.c"
3079  return (retValue_acc);
3080}
3081}
3082#line 57 "Email.c"
3083int cloneEmail(int msg ) 
3084{ int retValue_acc ;
3085
3086  {
3087#line 758 "Email.c"
3088  retValue_acc = msg;
3089#line 760
3090  return (retValue_acc);
3091#line 767
3092  return (retValue_acc);
3093}
3094}
3095#line 62 "Email.c"
3096int createEmail(int from , int to ) 
3097{ int retValue_acc ;
3098  int msg ;
3099
3100  {
3101  {
3102#line 63
3103  msg = 1;
3104#line 64
3105  setEmailFrom(msg, from);
3106#line 65
3107  setEmailTo(msg, to);
3108#line 797 "Email.c"
3109  retValue_acc = msg;
3110  }
3111#line 799
3112  return (retValue_acc);
3113#line 806
3114  return (retValue_acc);
3115}
3116}
3117#line 1 "wsllib_check.o"
3118#pragma merger(0,"wsllib_check.i","")
3119#line 3 "wsllib_check.c"
3120void __automaton_fail(void) 
3121{ 
3122
3123  {
3124  goto ERROR;
3125  ERROR: ;
3126#line 53 "wsllib_check.c"
3127  return;
3128}
3129}
3130#line 1 "Util.o"
3131#pragma merger(0,"Util.i","")
3132#line 1 "Util.h"
3133int prompt(char *msg ) ;
3134#line 9 "Util.c"
3135int prompt(char *msg ) 
3136{ int retValue_acc ;
3137  int retval ;
3138  char const   * __restrict  __cil_tmp4 ;
3139
3140  {
3141  {
3142#line 10
3143  __cil_tmp4 = (char const   * __restrict  )"%s\n";
3144#line 10
3145  printf(__cil_tmp4, msg);
3146#line 518 "Util.c"
3147  retValue_acc = retval;
3148  }
3149#line 520
3150  return (retValue_acc);
3151#line 527
3152  return (retValue_acc);
3153}
3154}
3155#line 1 "scenario.o"
3156#pragma merger(0,"scenario.i","")
3157#line 1 "scenario.c"
3158void test(void) 
3159{ int op1 ;
3160  int op2 ;
3161  int op3 ;
3162  int op4 ;
3163  int op5 ;
3164  int op6 ;
3165  int op7 ;
3166  int op8 ;
3167  int op9 ;
3168  int op10 ;
3169  int op11 ;
3170  int splverifierCounter ;
3171  int tmp ;
3172  int tmp___0 ;
3173  int tmp___1 ;
3174  int tmp___2 ;
3175  int tmp___3 ;
3176  int tmp___4 ;
3177  int tmp___5 ;
3178  int tmp___6 ;
3179  int tmp___7 ;
3180  int tmp___8 ;
3181  int tmp___9 ;
3182
3183  {
3184#line 2
3185  op1 = 0;
3186#line 3
3187  op2 = 0;
3188#line 4
3189  op3 = 0;
3190#line 5
3191  op4 = 0;
3192#line 6
3193  op5 = 0;
3194#line 7
3195  op6 = 0;
3196#line 8
3197  op7 = 0;
3198#line 9
3199  op8 = 0;
3200#line 10
3201  op9 = 0;
3202#line 11
3203  op10 = 0;
3204#line 12
3205  op11 = 0;
3206#line 13
3207  splverifierCounter = 0;
3208  {
3209#line 14
3210  while (1) {
3211    while_0_continue: /* CIL Label */ ;
3212#line 14
3213    if (splverifierCounter < 4) {
3214
3215    } else {
3216      goto while_0_break;
3217    }
3218#line 15
3219    splverifierCounter = splverifierCounter + 1;
3220#line 16
3221    if (! op1) {
3222      {
3223#line 16
3224      tmp___9 = __VERIFIER_nondet_int();
3225      }
3226#line 16
3227      if (tmp___9) {
3228        {
3229#line 17
3230        bobKeyAdd();
3231#line 18
3232        op1 = 1;
3233        }
3234      } else {
3235        goto _L___8;
3236      }
3237    } else {
3238      _L___8: /* CIL Label */ 
3239#line 19
3240      if (! op2) {
3241        {
3242#line 19
3243        tmp___8 = __VERIFIER_nondet_int();
3244        }
3245#line 19
3246        if (tmp___8) {
3247#line 21
3248          op2 = 1;
3249        } else {
3250          goto _L___7;
3251        }
3252      } else {
3253        _L___7: /* CIL Label */ 
3254#line 22
3255        if (! op3) {
3256          {
3257#line 22
3258          tmp___7 = __VERIFIER_nondet_int();
3259          }
3260#line 22
3261          if (tmp___7) {
3262            {
3263#line 24
3264            rjhDeletePrivateKey();
3265#line 25
3266            op3 = 1;
3267            }
3268          } else {
3269            goto _L___6;
3270          }
3271        } else {
3272          _L___6: /* CIL Label */ 
3273#line 26
3274          if (! op4) {
3275            {
3276#line 26
3277            tmp___6 = __VERIFIER_nondet_int();
3278            }
3279#line 26
3280            if (tmp___6) {
3281              {
3282#line 28
3283              rjhKeyAdd();
3284#line 29
3285              op4 = 1;
3286              }
3287            } else {
3288              goto _L___5;
3289            }
3290          } else {
3291            _L___5: /* CIL Label */ 
3292#line 30
3293            if (! op5) {
3294              {
3295#line 30
3296              tmp___5 = __VERIFIER_nondet_int();
3297              }
3298#line 30
3299              if (tmp___5) {
3300                {
3301#line 32
3302                chuckKeyAddRjh();
3303#line 33
3304                op5 = 1;
3305                }
3306              } else {
3307                goto _L___4;
3308              }
3309            } else {
3310              _L___4: /* CIL Label */ 
3311#line 34
3312              if (! op6) {
3313                {
3314#line 34
3315                tmp___4 = __VERIFIER_nondet_int();
3316                }
3317#line 34
3318                if (tmp___4) {
3319                  {
3320#line 36
3321                  rjhEnableForwarding();
3322#line 37
3323                  op6 = 1;
3324                  }
3325                } else {
3326                  goto _L___3;
3327                }
3328              } else {
3329                _L___3: /* CIL Label */ 
3330#line 38
3331                if (! op7) {
3332                  {
3333#line 38
3334                  tmp___3 = __VERIFIER_nondet_int();
3335                  }
3336#line 38
3337                  if (tmp___3) {
3338                    {
3339#line 40
3340                    rjhKeyChange();
3341#line 41
3342                    op7 = 1;
3343                    }
3344                  } else {
3345                    goto _L___2;
3346                  }
3347                } else {
3348                  _L___2: /* CIL Label */ 
3349#line 42
3350                  if (! op8) {
3351                    {
3352#line 42
3353                    tmp___2 = __VERIFIER_nondet_int();
3354                    }
3355#line 42
3356                    if (tmp___2) {
3357                      {
3358#line 44
3359                      bobSetAddressBook();
3360#line 45
3361                      op8 = 1;
3362                      }
3363                    } else {
3364                      goto _L___1;
3365                    }
3366                  } else {
3367                    _L___1: /* CIL Label */ 
3368#line 46
3369                    if (! op9) {
3370                      {
3371#line 46
3372                      tmp___1 = __VERIFIER_nondet_int();
3373                      }
3374#line 46
3375                      if (tmp___1) {
3376                        {
3377#line 48
3378                        chuckKeyAdd();
3379#line 49
3380                        op9 = 1;
3381                        }
3382                      } else {
3383                        goto _L___0;
3384                      }
3385                    } else {
3386                      _L___0: /* CIL Label */ 
3387#line 50
3388                      if (! op10) {
3389                        {
3390#line 50
3391                        tmp___0 = __VERIFIER_nondet_int();
3392                        }
3393#line 50
3394                        if (tmp___0) {
3395                          {
3396#line 52
3397                          bobKeyChange();
3398#line 53
3399                          op10 = 1;
3400                          }
3401                        } else {
3402                          goto _L;
3403                        }
3404                      } else {
3405                        _L: /* CIL Label */ 
3406#line 54
3407                        if (! op11) {
3408                          {
3409#line 54
3410                          tmp = __VERIFIER_nondet_int();
3411                          }
3412#line 54
3413                          if (tmp) {
3414                            {
3415#line 56
3416                            chuckKeyAdd();
3417#line 57
3418                            op11 = 1;
3419                            }
3420                          } else {
3421                            goto while_0_break;
3422                          }
3423                        } else {
3424                          goto while_0_break;
3425                        }
3426                      }
3427                    }
3428                  }
3429                }
3430              }
3431            }
3432          }
3433        }
3434      }
3435    }
3436  }
3437  while_0_break: /* CIL Label */ ;
3438  }
3439  {
3440#line 61
3441  bobToRjh();
3442  }
3443#line 169 "scenario.c"
3444  return;
3445}
3446}
3447#line 1 "EmailLib.o"
3448#pragma merger(0,"EmailLib.i","")
3449#line 4 "EmailLib.h"
3450int initEmail(void) ;
3451#line 8
3452void setEmailId(int handle , int value ) ;
3453#line 18
3454char *getEmailSubject(int handle ) ;
3455#line 20
3456void setEmailSubject(int handle , char *value ) ;
3457#line 22
3458char *getEmailBody(int handle ) ;
3459#line 24
3460void setEmailBody(int handle , char *value ) ;
3461#line 5 "EmailLib.c"
3462int __ste_Email_counter  =    0;
3463#line 7 "EmailLib.c"
3464int initEmail(void) 
3465{ int retValue_acc ;
3466
3467  {
3468#line 12 "EmailLib.c"
3469  if (__ste_Email_counter < 2) {
3470#line 670
3471    __ste_Email_counter = __ste_Email_counter + 1;
3472#line 670
3473    retValue_acc = __ste_Email_counter;
3474#line 672
3475    return (retValue_acc);
3476  } else {
3477#line 678 "EmailLib.c"
3478    retValue_acc = -1;
3479#line 680
3480    return (retValue_acc);
3481  }
3482#line 687 "EmailLib.c"
3483  return (retValue_acc);
3484}
3485}
3486#line 15 "EmailLib.c"
3487int __ste_email_id0  =    0;
3488#line 17 "EmailLib.c"
3489int __ste_email_id1  =    0;
3490#line 19 "EmailLib.c"
3491int getEmailId(int handle ) 
3492{ int retValue_acc ;
3493
3494  {
3495#line 26 "EmailLib.c"
3496  if (handle == 1) {
3497#line 716
3498    retValue_acc = __ste_email_id0;
3499#line 718
3500    return (retValue_acc);
3501  } else {
3502#line 720
3503    if (handle == 2) {
3504#line 725
3505      retValue_acc = __ste_email_id1;
3506#line 727
3507      return (retValue_acc);
3508    } else {
3509#line 733 "EmailLib.c"
3510      retValue_acc = 0;
3511#line 735
3512      return (retValue_acc);
3513    }
3514  }
3515#line 742 "EmailLib.c"
3516  return (retValue_acc);
3517}
3518}
3519#line 29 "EmailLib.c"
3520void setEmailId(int handle , int value ) 
3521{ 
3522
3523  {
3524#line 35
3525  if (handle == 1) {
3526#line 31
3527    __ste_email_id0 = value;
3528  } else {
3529#line 32
3530    if (handle == 2) {
3531#line 33
3532      __ste_email_id1 = value;
3533    } else {
3534
3535    }
3536  }
3537#line 773 "EmailLib.c"
3538  return;
3539}
3540}
3541#line 37 "EmailLib.c"
3542int __ste_email_from0  =    0;
3543#line 39 "EmailLib.c"
3544int __ste_email_from1  =    0;
3545#line 41 "EmailLib.c"
3546int getEmailFrom(int handle ) 
3547{ int retValue_acc ;
3548
3549  {
3550#line 48 "EmailLib.c"
3551  if (handle == 1) {
3552#line 798
3553    retValue_acc = __ste_email_from0;
3554#line 800
3555    return (retValue_acc);
3556  } else {
3557#line 802
3558    if (handle == 2) {
3559#line 807
3560      retValue_acc = __ste_email_from1;
3561#line 809
3562      return (retValue_acc);
3563    } else {
3564#line 815 "EmailLib.c"
3565      retValue_acc = 0;
3566#line 817
3567      return (retValue_acc);
3568    }
3569  }
3570#line 824 "EmailLib.c"
3571  return (retValue_acc);
3572}
3573}
3574#line 51 "EmailLib.c"
3575void setEmailFrom(int handle , int value ) 
3576{ 
3577
3578  {
3579#line 57
3580  if (handle == 1) {
3581#line 53
3582    __ste_email_from0 = value;
3583  } else {
3584#line 54
3585    if (handle == 2) {
3586#line 55
3587      __ste_email_from1 = value;
3588    } else {
3589
3590    }
3591  }
3592#line 855 "EmailLib.c"
3593  return;
3594}
3595}
3596#line 59 "EmailLib.c"
3597int __ste_email_to0  =    0;
3598#line 61 "EmailLib.c"
3599int __ste_email_to1  =    0;
3600#line 63 "EmailLib.c"
3601int getEmailTo(int handle ) 
3602{ int retValue_acc ;
3603
3604  {
3605#line 70 "EmailLib.c"
3606  if (handle == 1) {
3607#line 880
3608    retValue_acc = __ste_email_to0;
3609#line 882
3610    return (retValue_acc);
3611  } else {
3612#line 884
3613    if (handle == 2) {
3614#line 889
3615      retValue_acc = __ste_email_to1;
3616#line 891
3617      return (retValue_acc);
3618    } else {
3619#line 897 "EmailLib.c"
3620      retValue_acc = 0;
3621#line 899
3622      return (retValue_acc);
3623    }
3624  }
3625#line 906 "EmailLib.c"
3626  return (retValue_acc);
3627}
3628}
3629#line 73 "EmailLib.c"
3630void setEmailTo(int handle , int value ) 
3631{ 
3632
3633  {
3634#line 79
3635  if (handle == 1) {
3636#line 75
3637    __ste_email_to0 = value;
3638  } else {
3639#line 76
3640    if (handle == 2) {
3641#line 77
3642      __ste_email_to1 = value;
3643    } else {
3644
3645    }
3646  }
3647#line 937 "EmailLib.c"
3648  return;
3649}
3650}
3651#line 81 "EmailLib.c"
3652char *__ste_email_subject0  ;
3653#line 83 "EmailLib.c"
3654char *__ste_email_subject1  ;
3655#line 85 "EmailLib.c"
3656char *getEmailSubject(int handle ) 
3657{ char *retValue_acc ;
3658  void *__cil_tmp3 ;
3659
3660  {
3661#line 92 "EmailLib.c"
3662  if (handle == 1) {
3663#line 962
3664    retValue_acc = __ste_email_subject0;
3665#line 964
3666    return (retValue_acc);
3667  } else {
3668#line 966
3669    if (handle == 2) {
3670#line 971
3671      retValue_acc = __ste_email_subject1;
3672#line 973
3673      return (retValue_acc);
3674    } else {
3675#line 979 "EmailLib.c"
3676      __cil_tmp3 = (void *)0;
3677#line 979
3678      retValue_acc = (char *)__cil_tmp3;
3679#line 981
3680      return (retValue_acc);
3681    }
3682  }
3683#line 988 "EmailLib.c"
3684  return (retValue_acc);
3685}
3686}
3687#line 95 "EmailLib.c"
3688void setEmailSubject(int handle , char *value ) 
3689{ 
3690
3691  {
3692#line 101
3693  if (handle == 1) {
3694#line 97
3695    __ste_email_subject0 = value;
3696  } else {
3697#line 98
3698    if (handle == 2) {
3699#line 99
3700      __ste_email_subject1 = value;
3701    } else {
3702
3703    }
3704  }
3705#line 1019 "EmailLib.c"
3706  return;
3707}
3708}
3709#line 103 "EmailLib.c"
3710char *__ste_email_body0  =    (char *)0;
3711#line 105 "EmailLib.c"
3712char *__ste_email_body1  =    (char *)0;
3713#line 107 "EmailLib.c"
3714char *getEmailBody(int handle ) 
3715{ char *retValue_acc ;
3716  void *__cil_tmp3 ;
3717
3718  {
3719#line 114 "EmailLib.c"
3720  if (handle == 1) {
3721#line 1044
3722    retValue_acc = __ste_email_body0;
3723#line 1046
3724    return (retValue_acc);
3725  } else {
3726#line 1048
3727    if (handle == 2) {
3728#line 1053
3729      retValue_acc = __ste_email_body1;
3730#line 1055
3731      return (retValue_acc);
3732    } else {
3733#line 1061 "EmailLib.c"
3734      __cil_tmp3 = (void *)0;
3735#line 1061
3736      retValue_acc = (char *)__cil_tmp3;
3737#line 1063
3738      return (retValue_acc);
3739    }
3740  }
3741#line 1070 "EmailLib.c"
3742  return (retValue_acc);
3743}
3744}
3745#line 117 "EmailLib.c"
3746void setEmailBody(int handle , char *value ) 
3747{ 
3748
3749  {
3750#line 123
3751  if (handle == 1) {
3752#line 119
3753    __ste_email_body0 = value;
3754  } else {
3755#line 120
3756    if (handle == 2) {
3757#line 121
3758      __ste_email_body1 = value;
3759    } else {
3760
3761    }
3762  }
3763#line 1101 "EmailLib.c"
3764  return;
3765}
3766}
3767#line 125 "EmailLib.c"
3768int __ste_email_isEncrypted0  =    0;
3769#line 127 "EmailLib.c"
3770int __ste_email_isEncrypted1  =    0;
3771#line 129 "EmailLib.c"
3772int isEncrypted(int handle ) 
3773{ int retValue_acc ;
3774
3775  {
3776#line 136 "EmailLib.c"
3777  if (handle == 1) {
3778#line 1126
3779    retValue_acc = __ste_email_isEncrypted0;
3780#line 1128
3781    return (retValue_acc);
3782  } else {
3783#line 1130
3784    if (handle == 2) {
3785#line 1135
3786      retValue_acc = __ste_email_isEncrypted1;
3787#line 1137
3788      return (retValue_acc);
3789    } else {
3790#line 1143 "EmailLib.c"
3791      retValue_acc = 0;
3792#line 1145
3793      return (retValue_acc);
3794    }
3795  }
3796#line 1152 "EmailLib.c"
3797  return (retValue_acc);
3798}
3799}
3800#line 139 "EmailLib.c"
3801void setEmailIsEncrypted(int handle , int value ) 
3802{ 
3803
3804  {
3805#line 145
3806  if (handle == 1) {
3807#line 141
3808    __ste_email_isEncrypted0 = value;
3809  } else {
3810#line 142
3811    if (handle == 2) {
3812#line 143
3813      __ste_email_isEncrypted1 = value;
3814    } else {
3815
3816    }
3817  }
3818#line 1183 "EmailLib.c"
3819  return;
3820}
3821}
3822#line 147 "EmailLib.c"
3823int __ste_email_encryptionKey0  =    0;
3824#line 149 "EmailLib.c"
3825int __ste_email_encryptionKey1  =    0;
3826#line 151 "EmailLib.c"
3827int getEmailEncryptionKey(int handle ) 
3828{ int retValue_acc ;
3829
3830  {
3831#line 158 "EmailLib.c"
3832  if (handle == 1) {
3833#line 1208
3834    retValue_acc = __ste_email_encryptionKey0;
3835#line 1210
3836    return (retValue_acc);
3837  } else {
3838#line 1212
3839    if (handle == 2) {
3840#line 1217
3841      retValue_acc = __ste_email_encryptionKey1;
3842#line 1219
3843      return (retValue_acc);
3844    } else {
3845#line 1225 "EmailLib.c"
3846      retValue_acc = 0;
3847#line 1227
3848      return (retValue_acc);
3849    }
3850  }
3851#line 1234 "EmailLib.c"
3852  return (retValue_acc);
3853}
3854}
3855#line 161 "EmailLib.c"
3856void setEmailEncryptionKey(int handle , int value ) 
3857{ 
3858
3859  {
3860#line 167
3861  if (handle == 1) {
3862#line 163
3863    __ste_email_encryptionKey0 = value;
3864  } else {
3865#line 164
3866    if (handle == 2) {
3867#line 165
3868      __ste_email_encryptionKey1 = value;
3869    } else {
3870
3871    }
3872  }
3873#line 1265 "EmailLib.c"
3874  return;
3875}
3876}
3877#line 169 "EmailLib.c"
3878int __ste_email_isSigned0  =    0;
3879#line 171 "EmailLib.c"
3880int __ste_email_isSigned1  =    0;
3881#line 173 "EmailLib.c"
3882int isSigned(int handle ) 
3883{ int retValue_acc ;
3884
3885  {
3886#line 180 "EmailLib.c"
3887  if (handle == 1) {
3888#line 1290
3889    retValue_acc = __ste_email_isSigned0;
3890#line 1292
3891    return (retValue_acc);
3892  } else {
3893#line 1294
3894    if (handle == 2) {
3895#line 1299
3896      retValue_acc = __ste_email_isSigned1;
3897#line 1301
3898      return (retValue_acc);
3899    } else {
3900#line 1307 "EmailLib.c"
3901      retValue_acc = 0;
3902#line 1309
3903      return (retValue_acc);
3904    }
3905  }
3906#line 1316 "EmailLib.c"
3907  return (retValue_acc);
3908}
3909}
3910#line 183 "EmailLib.c"
3911void setEmailIsSigned(int handle , int value ) 
3912{ 
3913
3914  {
3915#line 189
3916  if (handle == 1) {
3917#line 185
3918    __ste_email_isSigned0 = value;
3919  } else {
3920#line 186
3921    if (handle == 2) {
3922#line 187
3923      __ste_email_isSigned1 = value;
3924    } else {
3925
3926    }
3927  }
3928#line 1347 "EmailLib.c"
3929  return;
3930}
3931}
3932#line 191 "EmailLib.c"
3933int __ste_email_signKey0  =    0;
3934#line 193 "EmailLib.c"
3935int __ste_email_signKey1  =    0;
3936#line 195 "EmailLib.c"
3937int getEmailSignKey(int handle ) 
3938{ int retValue_acc ;
3939
3940  {
3941#line 202 "EmailLib.c"
3942  if (handle == 1) {
3943#line 1372
3944    retValue_acc = __ste_email_signKey0;
3945#line 1374
3946    return (retValue_acc);
3947  } else {
3948#line 1376
3949    if (handle == 2) {
3950#line 1381
3951      retValue_acc = __ste_email_signKey1;
3952#line 1383
3953      return (retValue_acc);
3954    } else {
3955#line 1389 "EmailLib.c"
3956      retValue_acc = 0;
3957#line 1391
3958      return (retValue_acc);
3959    }
3960  }
3961#line 1398 "EmailLib.c"
3962  return (retValue_acc);
3963}
3964}
3965#line 205 "EmailLib.c"
3966void setEmailSignKey(int handle , int value ) 
3967{ 
3968
3969  {
3970#line 211
3971  if (handle == 1) {
3972#line 207
3973    __ste_email_signKey0 = value;
3974  } else {
3975#line 208
3976    if (handle == 2) {
3977#line 209
3978      __ste_email_signKey1 = value;
3979    } else {
3980
3981    }
3982  }
3983#line 1429 "EmailLib.c"
3984  return;
3985}
3986}
3987#line 213 "EmailLib.c"
3988int __ste_email_isSignatureVerified0  ;
3989#line 215 "EmailLib.c"
3990int __ste_email_isSignatureVerified1  ;
3991#line 217 "EmailLib.c"
3992int isVerified(int handle ) 
3993{ int retValue_acc ;
3994
3995  {
3996#line 224 "EmailLib.c"
3997  if (handle == 1) {
3998#line 1454
3999    retValue_acc = __ste_email_isSignatureVerified0;
4000#line 1456
4001    return (retValue_acc);
4002  } else {
4003#line 1458
4004    if (handle == 2) {
4005#line 1463
4006      retValue_acc = __ste_email_isSignatureVerified1;
4007#line 1465
4008      return (retValue_acc);
4009    } else {
4010#line 1471 "EmailLib.c"
4011      retValue_acc = 0;
4012#line 1473
4013      return (retValue_acc);
4014    }
4015  }
4016#line 1480 "EmailLib.c"
4017  return (retValue_acc);
4018}
4019}
4020#line 227 "EmailLib.c"
4021void setEmailIsSignatureVerified(int handle , int value ) 
4022{ 
4023
4024  {
4025#line 233
4026  if (handle == 1) {
4027#line 229
4028    __ste_email_isSignatureVerified0 = value;
4029  } else {
4030#line 230
4031    if (handle == 2) {
4032#line 231
4033      __ste_email_isSignatureVerified1 = value;
4034    } else {
4035
4036    }
4037  }
4038#line 1511 "EmailLib.c"
4039  return;
4040}
4041}
4042#line 1 "libacc.o"
4043#pragma merger(0,"libacc.i","")
4044#line 73 "/usr/include/assert.h"
4045extern  __attribute__((__nothrow__, __noreturn__)) void __assert_fail(char const   *__assertion ,
4046                                                                      char const   *__file ,
4047                                                                      unsigned int __line ,
4048                                                                      char const   *__function ) ;
4049#line 471 "/usr/include/stdlib.h"
4050extern  __attribute__((__nothrow__)) void *malloc(size_t __size )  __attribute__((__malloc__)) ;
4051#line 488
4052extern  __attribute__((__nothrow__)) void free(void *__ptr ) ;
4053#line 32 "libacc.c"
4054void __utac__exception__cf_handler_set(void *exception , int (*cflow_func)(int  ,
4055                                                                           int  ) ,
4056                                       int val ) 
4057{ struct __UTAC__EXCEPTION *excep ;
4058  struct __UTAC__CFLOW_FUNC *cf ;
4059  void *tmp ;
4060  unsigned long __cil_tmp7 ;
4061  unsigned long __cil_tmp8 ;
4062  unsigned long __cil_tmp9 ;
4063  unsigned long __cil_tmp10 ;
4064  unsigned long __cil_tmp11 ;
4065  unsigned long __cil_tmp12 ;
4066  unsigned long __cil_tmp13 ;
4067  unsigned long __cil_tmp14 ;
4068  int (**mem_15)(int  , int  ) ;
4069  int *mem_16 ;
4070  struct __UTAC__CFLOW_FUNC **mem_17 ;
4071  struct __UTAC__CFLOW_FUNC **mem_18 ;
4072  struct __UTAC__CFLOW_FUNC **mem_19 ;
4073
4074  {
4075  {
4076#line 33
4077  excep = (struct __UTAC__EXCEPTION *)exception;
4078#line 34
4079  tmp = malloc(24UL);
4080#line 34
4081  cf = (struct __UTAC__CFLOW_FUNC *)tmp;
4082#line 36
4083  mem_15 = (int (**)(int  , int  ))cf;
4084#line 36
4085  *mem_15 = cflow_func;
4086#line 37
4087  __cil_tmp7 = (unsigned long )cf;
4088#line 37
4089  __cil_tmp8 = __cil_tmp7 + 8;
4090#line 37
4091  mem_16 = (int *)__cil_tmp8;
4092#line 37
4093  *mem_16 = val;
4094#line 38
4095  __cil_tmp9 = (unsigned long )cf;
4096#line 38
4097  __cil_tmp10 = __cil_tmp9 + 16;
4098#line 38
4099  __cil_tmp11 = (unsigned long )excep;
4100#line 38
4101  __cil_tmp12 = __cil_tmp11 + 24;
4102#line 38
4103  mem_17 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp10;
4104#line 38
4105  mem_18 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp12;
4106#line 38
4107  *mem_17 = *mem_18;
4108#line 39
4109  __cil_tmp13 = (unsigned long )excep;
4110#line 39
4111  __cil_tmp14 = __cil_tmp13 + 24;
4112#line 39
4113  mem_19 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp14;
4114#line 39
4115  *mem_19 = cf;
4116  }
4117#line 654 "libacc.c"
4118  return;
4119}
4120}
4121#line 44 "libacc.c"
4122void __utac__exception__cf_handler_free(void *exception ) 
4123{ struct __UTAC__EXCEPTION *excep ;
4124  struct __UTAC__CFLOW_FUNC *cf ;
4125  struct __UTAC__CFLOW_FUNC *tmp ;
4126  unsigned long __cil_tmp5 ;
4127  unsigned long __cil_tmp6 ;
4128  struct __UTAC__CFLOW_FUNC *__cil_tmp7 ;
4129  unsigned long __cil_tmp8 ;
4130  unsigned long __cil_tmp9 ;
4131  unsigned long __cil_tmp10 ;
4132  unsigned long __cil_tmp11 ;
4133  void *__cil_tmp12 ;
4134  unsigned long __cil_tmp13 ;
4135  unsigned long __cil_tmp14 ;
4136  struct __UTAC__CFLOW_FUNC **mem_15 ;
4137  struct __UTAC__CFLOW_FUNC **mem_16 ;
4138  struct __UTAC__CFLOW_FUNC **mem_17 ;
4139
4140  {
4141#line 45
4142  excep = (struct __UTAC__EXCEPTION *)exception;
4143#line 46
4144  __cil_tmp5 = (unsigned long )excep;
4145#line 46
4146  __cil_tmp6 = __cil_tmp5 + 24;
4147#line 46
4148  mem_15 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp6;
4149#line 46
4150  cf = *mem_15;
4151  {
4152#line 49
4153  while (1) {
4154    while_1_continue: /* CIL Label */ ;
4155    {
4156#line 49
4157    __cil_tmp7 = (struct __UTAC__CFLOW_FUNC *)0;
4158#line 49
4159    __cil_tmp8 = (unsigned long )__cil_tmp7;
4160#line 49
4161    __cil_tmp9 = (unsigned long )cf;
4162#line 49
4163    if (__cil_tmp9 != __cil_tmp8) {
4164
4165    } else {
4166      goto while_1_break;
4167    }
4168    }
4169    {
4170#line 50
4171    tmp = cf;
4172#line 51
4173    __cil_tmp10 = (unsigned long )cf;
4174#line 51
4175    __cil_tmp11 = __cil_tmp10 + 16;
4176#line 51
4177    mem_16 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp11;
4178#line 51
4179    cf = *mem_16;
4180#line 52
4181    __cil_tmp12 = (void *)tmp;
4182#line 52
4183    free(__cil_tmp12);
4184    }
4185  }
4186  while_1_break: /* CIL Label */ ;
4187  }
4188#line 55
4189  __cil_tmp13 = (unsigned long )excep;
4190#line 55
4191  __cil_tmp14 = __cil_tmp13 + 24;
4192#line 55
4193  mem_17 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp14;
4194#line 55
4195  *mem_17 = (struct __UTAC__CFLOW_FUNC *)0;
4196#line 694 "libacc.c"
4197  return;
4198}
4199}
4200#line 59 "libacc.c"
4201void __utac__exception__cf_handler_reset(void *exception ) 
4202{ struct __UTAC__EXCEPTION *excep ;
4203  struct __UTAC__CFLOW_FUNC *cf ;
4204  unsigned long __cil_tmp5 ;
4205  unsigned long __cil_tmp6 ;
4206  struct __UTAC__CFLOW_FUNC *__cil_tmp7 ;
4207  unsigned long __cil_tmp8 ;
4208  unsigned long __cil_tmp9 ;
4209  int (*__cil_tmp10)(int  , int  ) ;
4210  unsigned long __cil_tmp11 ;
4211  unsigned long __cil_tmp12 ;
4212  int __cil_tmp13 ;
4213  unsigned long __cil_tmp14 ;
4214  unsigned long __cil_tmp15 ;
4215  struct __UTAC__CFLOW_FUNC **mem_16 ;
4216  int (**mem_17)(int  , int  ) ;
4217  int *mem_18 ;
4218  struct __UTAC__CFLOW_FUNC **mem_19 ;
4219
4220  {
4221#line 60
4222  excep = (struct __UTAC__EXCEPTION *)exception;
4223#line 61
4224  __cil_tmp5 = (unsigned long )excep;
4225#line 61
4226  __cil_tmp6 = __cil_tmp5 + 24;
4227#line 61
4228  mem_16 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp6;
4229#line 61
4230  cf = *mem_16;
4231  {
4232#line 64
4233  while (1) {
4234    while_2_continue: /* CIL Label */ ;
4235    {
4236#line 64
4237    __cil_tmp7 = (struct __UTAC__CFLOW_FUNC *)0;
4238#line 64
4239    __cil_tmp8 = (unsigned long )__cil_tmp7;
4240#line 64
4241    __cil_tmp9 = (unsigned long )cf;
4242#line 64
4243    if (__cil_tmp9 != __cil_tmp8) {
4244
4245    } else {
4246      goto while_2_break;
4247    }
4248    }
4249    {
4250#line 65
4251    mem_17 = (int (**)(int  , int  ))cf;
4252#line 65
4253    __cil_tmp10 = *mem_17;
4254#line 65
4255    __cil_tmp11 = (unsigned long )cf;
4256#line 65
4257    __cil_tmp12 = __cil_tmp11 + 8;
4258#line 65
4259    mem_18 = (int *)__cil_tmp12;
4260#line 65
4261    __cil_tmp13 = *mem_18;
4262#line 65
4263    (*__cil_tmp10)(4, __cil_tmp13);
4264#line 66
4265    __cil_tmp14 = (unsigned long )cf;
4266#line 66
4267    __cil_tmp15 = __cil_tmp14 + 16;
4268#line 66
4269    mem_19 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp15;
4270#line 66
4271    cf = *mem_19;
4272    }
4273  }
4274  while_2_break: /* CIL Label */ ;
4275  }
4276  {
4277#line 69
4278  __utac__exception__cf_handler_free(exception);
4279  }
4280#line 732 "libacc.c"
4281  return;
4282}
4283}
4284#line 80 "libacc.c"
4285void *__utac__error_stack_mgt(void *env , int mode , int count ) ;
4286#line 80 "libacc.c"
4287static struct __ACC__ERR *head  =    (struct __ACC__ERR *)0;
4288#line 79 "libacc.c"
4289void *__utac__error_stack_mgt(void *env , int mode , int count ) 
4290{ void *retValue_acc ;
4291  struct __ACC__ERR *new ;
4292  void *tmp ;
4293  struct __ACC__ERR *temp ;
4294  struct __ACC__ERR *next ;
4295  void *excep ;
4296  unsigned long __cil_tmp10 ;
4297  unsigned long __cil_tmp11 ;
4298  unsigned long __cil_tmp12 ;
4299  unsigned long __cil_tmp13 ;
4300  void *__cil_tmp14 ;
4301  unsigned long __cil_tmp15 ;
4302  unsigned long __cil_tmp16 ;
4303  void *__cil_tmp17 ;
4304  void **mem_18 ;
4305  struct __ACC__ERR **mem_19 ;
4306  struct __ACC__ERR **mem_20 ;
4307  void **mem_21 ;
4308  struct __ACC__ERR **mem_22 ;
4309  void **mem_23 ;
4310  void **mem_24 ;
4311
4312  {
4313#line 82 "libacc.c"
4314  if (count == 0) {
4315#line 758 "libacc.c"
4316    return (retValue_acc);
4317  } else {
4318
4319  }
4320#line 86 "libacc.c"
4321  if (mode == 0) {
4322    {
4323#line 87
4324    tmp = malloc(16UL);
4325#line 87
4326    new = (struct __ACC__ERR *)tmp;
4327#line 88
4328    mem_18 = (void **)new;
4329#line 88
4330    *mem_18 = env;
4331#line 89
4332    __cil_tmp10 = (unsigned long )new;
4333#line 89
4334    __cil_tmp11 = __cil_tmp10 + 8;
4335#line 89
4336    mem_19 = (struct __ACC__ERR **)__cil_tmp11;
4337#line 89
4338    *mem_19 = head;
4339#line 90
4340    head = new;
4341#line 776 "libacc.c"
4342    retValue_acc = (void *)new;
4343    }
4344#line 778
4345    return (retValue_acc);
4346  } else {
4347
4348  }
4349#line 94 "libacc.c"
4350  if (mode == 1) {
4351#line 95
4352    temp = head;
4353    {
4354#line 98
4355    while (1) {
4356      while_3_continue: /* CIL Label */ ;
4357#line 98
4358      if (count > 1) {
4359
4360      } else {
4361        goto while_3_break;
4362      }
4363      {
4364#line 99
4365      __cil_tmp12 = (unsigned long )temp;
4366#line 99
4367      __cil_tmp13 = __cil_tmp12 + 8;
4368#line 99
4369      mem_20 = (struct __ACC__ERR **)__cil_tmp13;
4370#line 99
4371      next = *mem_20;
4372#line 100
4373      mem_21 = (void **)temp;
4374#line 100
4375      excep = *mem_21;
4376#line 101
4377      __cil_tmp14 = (void *)temp;
4378#line 101
4379      free(__cil_tmp14);
4380#line 102
4381      __utac__exception__cf_handler_reset(excep);
4382#line 103
4383      temp = next;
4384#line 104
4385      count = count - 1;
4386      }
4387    }
4388    while_3_break: /* CIL Label */ ;
4389    }
4390    {
4391#line 107
4392    __cil_tmp15 = (unsigned long )temp;
4393#line 107
4394    __cil_tmp16 = __cil_tmp15 + 8;
4395#line 107
4396    mem_22 = (struct __ACC__ERR **)__cil_tmp16;
4397#line 107
4398    head = *mem_22;
4399#line 108
4400    mem_23 = (void **)temp;
4401#line 108
4402    excep = *mem_23;
4403#line 109
4404    __cil_tmp17 = (void *)temp;
4405#line 109
4406    free(__cil_tmp17);
4407#line 110
4408    __utac__exception__cf_handler_reset(excep);
4409#line 820 "libacc.c"
4410    retValue_acc = excep;
4411    }
4412#line 822
4413    return (retValue_acc);
4414  } else {
4415
4416  }
4417#line 114
4418  if (mode == 2) {
4419#line 118 "libacc.c"
4420    if (head) {
4421#line 831
4422      mem_24 = (void **)head;
4423#line 831
4424      retValue_acc = *mem_24;
4425#line 833
4426      return (retValue_acc);
4427    } else {
4428#line 837 "libacc.c"
4429      retValue_acc = (void *)0;
4430#line 839
4431      return (retValue_acc);
4432    }
4433  } else {
4434
4435  }
4436#line 846 "libacc.c"
4437  return (retValue_acc);
4438}
4439}
4440#line 122 "libacc.c"
4441void *__utac__get_this_arg(int i , struct JoinPoint *this ) 
4442{ void *retValue_acc ;
4443  unsigned long __cil_tmp4 ;
4444  unsigned long __cil_tmp5 ;
4445  int __cil_tmp6 ;
4446  int __cil_tmp7 ;
4447  unsigned long __cil_tmp8 ;
4448  unsigned long __cil_tmp9 ;
4449  void **__cil_tmp10 ;
4450  void **__cil_tmp11 ;
4451  int *mem_12 ;
4452  void ***mem_13 ;
4453
4454  {
4455#line 123
4456  if (i > 0) {
4457    {
4458#line 123
4459    __cil_tmp4 = (unsigned long )this;
4460#line 123
4461    __cil_tmp5 = __cil_tmp4 + 16;
4462#line 123
4463    mem_12 = (int *)__cil_tmp5;
4464#line 123
4465    __cil_tmp6 = *mem_12;
4466#line 123
4467    if (i <= __cil_tmp6) {
4468
4469    } else {
4470      {
4471#line 123
4472      __assert_fail("i > 0 && i <= this->argsCount", "libacc.c",
4473                    123U, "__utac__get_this_arg");
4474      }
4475    }
4476    }
4477  } else {
4478    {
4479#line 123
4480    __assert_fail("i > 0 && i <= this->argsCount", "libacc.c",
4481                  123U, "__utac__get_this_arg");
4482    }
4483  }
4484#line 870 "libacc.c"
4485  __cil_tmp7 = i - 1;
4486#line 870
4487  __cil_tmp8 = (unsigned long )this;
4488#line 870
4489  __cil_tmp9 = __cil_tmp8 + 8;
4490#line 870
4491  mem_13 = (void ***)__cil_tmp9;
4492#line 870
4493  __cil_tmp10 = *mem_13;
4494#line 870
4495  __cil_tmp11 = __cil_tmp10 + __cil_tmp7;
4496#line 870
4497  retValue_acc = *__cil_tmp11;
4498#line 872
4499  return (retValue_acc);
4500#line 879
4501  return (retValue_acc);
4502}
4503}
4504#line 129 "libacc.c"
4505char const   *__utac__get_this_argtype(int i , struct JoinPoint *this ) 
4506{ char const   *retValue_acc ;
4507  unsigned long __cil_tmp4 ;
4508  unsigned long __cil_tmp5 ;
4509  int __cil_tmp6 ;
4510  int __cil_tmp7 ;
4511  unsigned long __cil_tmp8 ;
4512  unsigned long __cil_tmp9 ;
4513  char const   **__cil_tmp10 ;
4514  char const   **__cil_tmp11 ;
4515  int *mem_12 ;
4516  char const   ***mem_13 ;
4517
4518  {
4519#line 131
4520  if (i > 0) {
4521    {
4522#line 131
4523    __cil_tmp4 = (unsigned long )this;
4524#line 131
4525    __cil_tmp5 = __cil_tmp4 + 16;
4526#line 131
4527    mem_12 = (int *)__cil_tmp5;
4528#line 131
4529    __cil_tmp6 = *mem_12;
4530#line 131
4531    if (i <= __cil_tmp6) {
4532
4533    } else {
4534      {
4535#line 131
4536      __assert_fail("i > 0 && i <= this->argsCount", "libacc.c",
4537                    131U, "__utac__get_this_argtype");
4538      }
4539    }
4540    }
4541  } else {
4542    {
4543#line 131
4544    __assert_fail("i > 0 && i <= this->argsCount", "libacc.c",
4545                  131U, "__utac__get_this_argtype");
4546    }
4547  }
4548#line 903 "libacc.c"
4549  __cil_tmp7 = i - 1;
4550#line 903
4551  __cil_tmp8 = (unsigned long )this;
4552#line 903
4553  __cil_tmp9 = __cil_tmp8 + 24;
4554#line 903
4555  mem_13 = (char const   ***)__cil_tmp9;
4556#line 903
4557  __cil_tmp10 = *mem_13;
4558#line 903
4559  __cil_tmp11 = __cil_tmp10 + __cil_tmp7;
4560#line 903
4561  retValue_acc = *__cil_tmp11;
4562#line 905
4563  return (retValue_acc);
4564#line 912
4565  return (retValue_acc);
4566}
4567}