Showing error 1828

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