Showing error 1708

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