#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int /*<<< orphan*/ EXIT_FAILURE;
int /*<<< orphan*/ exit(int /*<<< orphan*/);
int /*<<< orphan*/ puts(char *);
void display_usage() {
  puts("");
  puts("faster_disfast -- display data from Faster files (.fast)");
  puts("");
  puts("usage :");
  puts("  faster_disfast [OPTIONS] filename.fast");
  puts("");
  puts("options :");
  puts("  -t  --type=TYPE            :  displays data of this TYPE  [default: "
       "all types],");
  puts("  -l  --label=LABEL          :  displays data of this LABEL [default: "
       "all labels],");
  puts("  -f  --first=FIRST          :  starts displaying at data num FIRST "
       "[default : 0],");
  puts("  -n  --nb-data=NB           :  amount of data to display [default: "
       "all file],");
  puts("  -u  --time-unit=UNIT       :  time unit in 'ns', 'us', 'ms' or 's' "
       "[default : 'ns'],");
  puts("  -d  --duration=DURATION    :  displays DURATION time units of the "
       "file [default : all file],");
  puts("  -s  --short-fmt            :  use short data format,");
  puts("  -r  --relative-to-first    :  time is relative to the first "
       "displayed data (except for groups),");
  puts("  -R  --relative-to-previous :  time is relative to the previous "
       "displayed data (except for groups),");
  puts("  -i  --info                 :  displays a summary of the file "
       "composition at the end of the list,");
  puts("  -I  --info-only            :  like -i, without displaying the data "
       "list,");
  puts("  -v  --version_num          :  displays fasterac version number,");
  puts("  -V  --version              :  displays fasterac verbose version.");
  puts("  -h  --help                 :  displays this help.");
  puts("");
  puts("about time in groups :");
  puts("  time displayed inside a group is relative to the group time stamp");
  puts("  independently of the options 'r' and 'R'.");
  puts("");
  puts("examples :");
  puts("  faster_disfast bob.fast");
  puts("  - displays on console every data from bob.fast.");
  puts("");
  puts("  faster_disfast bob.fast -I");
  puts("  - displays a summary of bob.fast without displaying any data.");
  puts("");
  puts("  faster_disfast bob.fast -r -f 3 -n 5");
  puts("  - displays 5 data, beginning at the third, with time elapsed from "
       "the first displayed data.");
  puts("");
  puts("  faster_disfast bob.fast -R");
  puts("  - shows time's gap between the displayed data.");
  puts("");
  puts("  faster_disfast -t44 -t50 -t21 -l1 -l2 bob.fast");
  puts("  - types and labels multiple selections (conjunction).");
  puts("");
  exit(EXIT_FAILURE);
}


x86 assembly (clang, -O0):
<display_usage>:
push   %rbp
mov    %rsp,%rbp
lea    0xf0d(%rip),%rdi
call   1030 <puts@plt>
lea    0xec9(%rip),%rdi
call   1030 <puts@plt>
lea    0xef5(%rip),%rdi
call   1030 <puts@plt>
lea    0xeea(%rip),%rdi
call   1030 <puts@plt>
lea    0xee6(%rip),%rdi
call   1030 <puts@plt>
lea    0xed1(%rip),%rdi
call   1030 <puts@plt>
lea    0xef7(%rip),%rdi
call   1030 <puts@plt>
lea    0xef5(%rip),%rdi
call   1030 <puts@plt>
lea    0xf3b(%rip),%rdi
call   1030 <puts@plt>
lea    0xf82(%rip),%rdi
call   1030 <puts@plt>
lea    0xfc9(%rip),%rdi
call   1030 <puts@plt>
lea    0x100c(%rip),%rdi
call   1030 <puts@plt>
lea    0x1057(%rip),%rdi
call   1030 <puts@plt>
lea    0x10aa(%rip),%rdi
call   1030 <puts@plt>
lea    0x10d5(%rip),%rdi
call   1030 <puts@plt>
lea    0x112b(%rip),%rdi
call   1030 <puts@plt>
lea    0x1184(%rip),%rdi
call   1030 <puts@plt>
lea    0x11db(%rip),%rdi
call   1030 <puts@plt>
lea    0x121a(%rip),%rdi
call   1030 <puts@plt>
lea    0x1250(%rip),%rdi
call   1030 <puts@plt>
lea    0x1287(%rip),%rdi
call   1030 <puts@plt>
lea    0xe11(%rip),%rdi
call   1030 <puts@plt>
lea    0x12a3(%rip),%rdi
call   1030 <puts@plt>
lea    0x12ae(%rip),%rdi
call   1030 <puts@plt>
lea    0x12e6(%rip),%rdi
call   1030 <puts@plt>
lea    0xde1(%rip),%rdi
call   1030 <puts@plt>
lea    0x12fa(%rip),%rdi
call   1030 <puts@plt>
lea    0x12f9(%rip),%rdi
call   1030 <puts@plt>
lea    0x1307(%rip),%rdi
call   1030 <puts@plt>
lea    0xdb1(%rip),%rdi
call   1030 <puts@plt>
lea    0x1321(%rip),%rdi
call   1030 <puts@plt>
lea    0x1332(%rip),%rdi
call   1030 <puts@plt>
lea    0xd8d(%rip),%rdi
call   1030 <puts@plt>
lea    0x135a(%rip),%rdi
call   1030 <puts@plt>
lea    0x1375(%rip),%rdi
call   1030 <puts@plt>
lea    0xd69(%rip),%rdi
call   1030 <puts@plt>
lea    0x13bb(%rip),%rdi
call   1030 <puts@plt>
lea    0x13cc(%rip),%rdi
call   1030 <puts@plt>
lea    0xd45(%rip),%rdi
call   1030 <puts@plt>
lea    0x13e5(%rip),%rdi
call   1030 <puts@plt>
lea    0x140a(%rip),%rdi
call   1030 <puts@plt>
lea    0xd21(%rip),%rdi
call   1030 <puts@plt>
mov    0x2cbd(%rip),%rax
mov    (%rax),%edi
call   1040 <exit@plt>

x86 assembly (clang, -O2):
<display_usage>:
push   %rax
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0xebe(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0xee1(%rip),%rdi
call   1040 <puts@plt>
lea    0xedd(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0xef0(%rip),%rdi
call   1040 <puts@plt>
lea    0xeee(%rip),%rdi
call   1040 <puts@plt>
lea    0xf34(%rip),%rdi
call   1040 <puts@plt>
lea    0xf7b(%rip),%rdi
call   1040 <puts@plt>
lea    0xfc2(%rip),%rdi
call   1040 <puts@plt>
lea    0x1005(%rip),%rdi
call   1040 <puts@plt>
lea    0x1050(%rip),%rdi
call   1040 <puts@plt>
lea    0x10a3(%rip),%rdi
call   1040 <puts@plt>
lea    0x10ce(%rip),%rdi
call   1040 <puts@plt>
lea    0x1124(%rip),%rdi
call   1040 <puts@plt>
lea    0x117d(%rip),%rdi
call   1040 <puts@plt>
lea    0x11d4(%rip),%rdi
call   1040 <puts@plt>
lea    0x1213(%rip),%rdi
call   1040 <puts@plt>
lea    0x1249(%rip),%rdi
call   1040 <puts@plt>
lea    0x1280(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x129e(%rip),%rdi
call   1040 <puts@plt>
lea    0x12a9(%rip),%rdi
call   1040 <puts@plt>
lea    0x12e1(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x12f7(%rip),%rdi
call   1040 <puts@plt>
lea    0x12f6(%rip),%rdi
call   1040 <puts@plt>
lea    0x1304(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x1320(%rip),%rdi
call   1040 <puts@plt>
lea    0x1331(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x135b(%rip),%rdi
call   1040 <puts@plt>
lea    0x1376(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x13be(%rip),%rdi
call   1040 <puts@plt>
lea    0x13cf(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x13ea(%rip),%rdi
call   1040 <puts@plt>
lea    0x140f(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
mov    0x2cc4(%rip),%rax
mov    (%rax),%edi
call   1050 <exit@plt>

LLVM IR (-O0):
@.str = [1 x i8] zeroinitializer
@.str.1 = [57 x i8] c"faster_disfast -- display data from Faster files (.fast)\00"
@.str.2 = [8 x i8] c"usage :\00"
@.str.3 = [41 x i8] c" faster_disfast [OPTIONS] filename.fast\00"
@.str.4 = [10 x i8] c"options :\00"
@.str.5 = [82 x i8] c" -t --type=TYPE : displays data of this TYPE [default: all types],\00"
@.str.6 = [83 x i8] c" -l --label=LABEL : displays data of this LABEL [default: all labels],\00"
@.str.7 = [83 x i8] c" -f --first=FIRST : starts displaying at data num FIRST [default : 0],\00"
@.str.8 = [79 x i8] c" -n --nb-data=NB : amount of data to display [default: all file],\00"
@.str.9 = [87 x i8] c" -u --time-unit=UNIT : time unit in 'ns', 'us', 'ms' or 's' [default : 'ns'],\00"
@.str.10 = [95 x i8] c" -d --duration=DURATION : displays DURATION time units of the file [default : all file],\00"
@.str.11 = [55 x i8] c" -s --short-fmt : use short data format,\00"
@.str.12 = [98 x i8] c" -r --relative-to-first : time is relative to the first displayed data (except for groups),\00"
@.str.13 = [101 x i8] c" -R --relative-to-previous : time is relative to the previous displayed data (except for groups),\00"
@.str.14 = [99 x i8] c" -i --info : displays a summary of the file composition at the end of the list,\00"
@.str.15 = [75 x i8] c" -I --info-only : like -i, without displaying the data list,\00"
@.str.16 = [66 x i8] c" -v --version_num : displays fasterac version number,\00"
@.str.17 = [67 x i8] c" -V --version : displays fasterac verbose version.\00"
@.str.18 = [52 x i8] c" -h --help : displays this help.\00"
@.str.19 = [23 x i8] c"about time in groups :\00"
@.str.20 = [68 x i8] c" time displayed inside a group is relative to the group time stamp\00"
@.str.21 = [44 x i8] c" independently of the options 'r' and 'R'.\00"
@.str.22 = [11 x i8] c"examples :\00"
@.str.23 = [26 x i8] c" faster_disfast bob.fast\00"
@.str.24 = [50 x i8] c" - displays on console every data from bob.fast.\00"
@.str.25 = [29 x i8] c" faster_disfast bob.fast -I\00"
@.str.26 = [64 x i8] c" - displays a summary of bob.fast without displaying any data.\00"
@.str.27 = [39 x i8] c" faster_disfast bob.fast -r -f 3 -n 5\00"
@.str.28 = [94 x i8] c" - displays 5 data, beginning at the third, with time elapsed from the first displayed data.\00"
@.str.29 = [29 x i8] c" faster_disfast bob.fast -R\00"
@.str.30 = [49 x i8] c" - shows time's gap between the displayed data.\00"
@.str.31 = [49 x i8] c" faster_disfast -t44 -t50 -t21 -l1 -l2 bob.fast\00"
@.str.32 = [56 x i8] c" - types and labels multiple selections (conjunction).\00"
@EXIT_FAILURE = global i32 0
define void @display_usage() {
%1 = call i32 @puts(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str, i64 0, i64 0))
%2 = call i32 @puts(i8* getelementptr inbounds ([57 x i8], [57 x i8]* @.str.1, i64 0, i64 0))
%3 = call i32 @puts(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str, i64 0, i64 0))
%4 = call i32 @puts(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.2, i64 0, i64 0))
%5 = call i32 @puts(i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str.3, i64 0, i64 0))
%6 = call i32 @puts(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str, i64 0, i64 0))
%7 = call i32 @puts(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.4, i64 0, i64 0))
%8 = call i32 @puts(i8* getelementptr inbounds ([82 x i8], [82 x i8]* @.str.5, i64 0, i64 0))
%9 = call i32 @puts(i8* getelementptr inbounds ([83 x i8], [83 x i8]* @.str.6, i64 0, i64 0))
%10 = call i32 @puts(i8* getelementptr inbounds ([83 x i8], [83 x i8]* @.str.7, i64 0, i64 0))
%11 = call i32 @puts(i8* getelementptr inbounds ([79 x i8], [79 x i8]* @.str.8, i64 0, i64 0))
%12 = call i32 @puts(i8* getelementptr inbounds ([87 x i8], [87 x i8]* @.str.9, i64 0, i64 0))
%13 = call i32 @puts(i8* getelementptr inbounds ([95 x i8], [95 x i8]* @.str.10, i64 0, i64 0))
%14 = call i32 @puts(i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.11, i64 0, i64 0))
%15 = call i32 @puts(i8* getelementptr inbounds ([98 x i8], [98 x i8]* @.str.12, i64 0, i64 0))
%16 = call i32 @puts(i8* getelementptr inbounds ([101 x i8], [101 x i8]* @.str.13, i64 0, i64 0))
%17 = call i32 @puts(i8* getelementptr inbounds ([99 x i8], [99 x i8]* @.str.14, i64 0, i64 0))
%18 = call i32 @puts(i8* getelementptr inbounds ([75 x i8], [75 x i8]* @.str.15, i64 0, i64 0))
%19 = call i32 @puts(i8* getelementptr inbounds ([66 x i8], [66 x i8]* @.str.16, i64 0, i64 0))
%20 = call i32 @puts(i8* getelementptr inbounds ([67 x i8], [67 x i8]* @.str.17, i64 0, i64 0))
%21 = call i32 @puts(i8* getelementptr inbounds ([52 x i8], [52 x i8]* @.str.18, i64 0, i64 0))
%22 = call i32 @puts(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str, i64 0, i64 0))
%23 = call i32 @puts(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.19, i64 0, i64 0))
%24 = call i32 @puts(i8* getelementptr inbounds ([68 x i8], [68 x i8]* @.str.20, i64 0, i64 0))
%25 = call i32 @puts(i8* getelementptr inbounds ([44 x i8], [44 x i8]* @.str.21, i64 0, i64 0))
%26 = call i32 @puts(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str, i64 0, i64 0))
%27 = call i32 @puts(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.22, i64 0, i64 0))
%28 = call i32 @puts(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.23, i64 0, i64 0))
%29 = call i32 @puts(i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.24, i64 0, i64 0))
%30 = call i32 @puts(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str, i64 0, i64 0))
%31 = call i32 @puts(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.25, i64 0, i64 0))
%32 = call i32 @puts(i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.26, i64 0, i64 0))
%33 = call i32 @puts(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str, i64 0, i64 0))
%34 = call i32 @puts(i8* getelementptr inbounds ([39 x i8], [39 x i8]* @.str.27, i64 0, i64 0))
%35 = call i32 @puts(i8* getelementptr inbounds ([94 x i8], [94 x i8]* @.str.28, i64 0, i64 0))
%36 = call i32 @puts(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str, i64 0, i64 0))
%37 = call i32 @puts(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.29, i64 0, i64 0))
%38 = call i32 @puts(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.30, i64 0, i64 0))
%39 = call i32 @puts(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str, i64 0, i64 0))
%40 = call i32 @puts(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.31, i64 0, i64 0))
%41 = call i32 @puts(i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.32, i64 0, i64 0))
%42 = call i32 @puts(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str, i64 0, i64 0))
%43 = load i32, i32* @EXIT_FAILURE
%44 = call i32 @exit(i32 %43)
unreachable
}

LLVM IR (-O2):
@.str.1 = [57 x i8] c"faster_disfast -- display data from Faster files (.fast)\00"
@.str.2 = [8 x i8] c"usage :\00"
@.str.3 = [41 x i8] c" faster_disfast [OPTIONS] filename.fast\00"
@.str.4 = [10 x i8] c"options :\00"
@.str.5 = [82 x i8] c" -t --type=TYPE : displays data of this TYPE [default: all types],\00"
@.str.6 = [83 x i8] c" -l --label=LABEL : displays data of this LABEL [default: all labels],\00"
@.str.7 = [83 x i8] c" -f --first=FIRST : starts displaying at data num FIRST [default : 0],\00"
@.str.8 = [79 x i8] c" -n --nb-data=NB : amount of data to display [default: all file],\00"
@.str.9 = [87 x i8] c" -u --time-unit=UNIT : time unit in 'ns', 'us', 'ms' or 's' [default : 'ns'],\00"
@.str.10 = [95 x i8] c" -d --duration=DURATION : displays DURATION time units of the file [default : all file],\00"
@.str.11 = [55 x i8] c" -s --short-fmt : use short data format,\00"
@.str.12 = [98 x i8] c" -r --relative-to-first : time is relative to the first displayed data (except for groups),\00"
@.str.13 = [101 x i8] c" -R --relative-to-previous : time is relative to the previous displayed data (except for groups),\00"
@.str.14 = [99 x i8] c" -i --info : displays a summary of the file composition at the end of the list,\00"
@.str.15 = [75 x i8] c" -I --info-only : like -i, without displaying the data list,\00"
@.str.16 = [66 x i8] c" -v --version_num : displays fasterac version number,\00"
@.str.17 = [67 x i8] c" -V --version : displays fasterac verbose version.\00"
@.str.18 = [52 x i8] c" -h --help : displays this help.\00"
@.str.19 = [23 x i8] c"about time in groups :\00"
@.str.20 = [68 x i8] c" time displayed inside a group is relative to the group time stamp\00"
@.str.21 = [44 x i8] c" independently of the options 'r' and 'R'.\00"
@.str.22 = [11 x i8] c"examples :\00"
@.str.23 = [26 x i8] c" faster_disfast bob.fast\00"
@.str.24 = [50 x i8] c" - displays on console every data from bob.fast.\00"
@.str.25 = [29 x i8] c" faster_disfast bob.fast -I\00"
@.str.26 = [64 x i8] c" - displays a summary of bob.fast without displaying any data.\00"
@.str.27 = [39 x i8] c" faster_disfast bob.fast -r -f 3 -n 5\00"
@.str.28 = [94 x i8] c" - displays 5 data, beginning at the third, with time elapsed from the first displayed data.\00"
@.str.29 = [29 x i8] c" faster_disfast bob.fast -R\00"
@.str.30 = [49 x i8] c" - shows time's gap between the displayed data.\00"
@.str.31 = [49 x i8] c" faster_disfast -t44 -t50 -t21 -l1 -l2 bob.fast\00"
@.str.32 = [56 x i8] c" - types and labels multiple selections (conjunction).\00"
@EXIT_FAILURE = global i32 0
define void @display_usage() {
%1 = tail call i32 @putchar(i32 10)
%2 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([57 x i8], [57 x i8]* @.str.1, i64 0, i64 0))
%3 = tail call i32 @putchar(i32 10)
%4 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([8 x i8], [8 x i8]* @.str.2, i64 0, i64 0))
%5 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([41 x i8], [41 x i8]* @.str.3, i64 0, i64 0))
%6 = tail call i32 @putchar(i32 10)
%7 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.4, i64 0, i64 0))
%8 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([82 x i8], [82 x i8]* @.str.5, i64 0, i64 0))
%9 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([83 x i8], [83 x i8]* @.str.6, i64 0, i64 0))
%10 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([83 x i8], [83 x i8]* @.str.7, i64 0, i64 0))
%11 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([79 x i8], [79 x i8]* @.str.8, i64 0, i64 0))
%12 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([87 x i8], [87 x i8]* @.str.9, i64 0, i64 0))
%13 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([95 x i8], [95 x i8]* @.str.10, i64 0, i64 0))
%14 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([55 x i8], [55 x i8]* @.str.11, i64 0, i64 0))
%15 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([98 x i8], [98 x i8]* @.str.12, i64 0, i64 0))
%16 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([101 x i8], [101 x i8]* @.str.13, i64 0, i64 0))
%17 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([99 x i8], [99 x i8]* @.str.14, i64 0, i64 0))
%18 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([75 x i8], [75 x i8]* @.str.15, i64 0, i64 0))
%19 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([66 x i8], [66 x i8]* @.str.16, i64 0, i64 0))
%20 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([67 x i8], [67 x i8]* @.str.17, i64 0, i64 0))
%21 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([52 x i8], [52 x i8]* @.str.18, i64 0, i64 0))
%22 = tail call i32 @putchar(i32 10)
%23 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([23 x i8], [23 x i8]* @.str.19, i64 0, i64 0))
%24 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([68 x i8], [68 x i8]* @.str.20, i64 0, i64 0))
%25 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([44 x i8], [44 x i8]* @.str.21, i64 0, i64 0))
%26 = tail call i32 @putchar(i32 10)
%27 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.22, i64 0, i64 0))
%28 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([26 x i8], [26 x i8]* @.str.23, i64 0, i64 0))
%29 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([50 x i8], [50 x i8]* @.str.24, i64 0, i64 0))
%30 = tail call i32 @putchar(i32 10)
%31 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([29 x i8], [29 x i8]* @.str.25, i64 0, i64 0))
%32 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([64 x i8], [64 x i8]* @.str.26, i64 0, i64 0))
%33 = tail call i32 @putchar(i32 10)
%34 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.27, i64 0, i64 0))
%35 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([94 x i8], [94 x i8]* @.str.28, i64 0, i64 0))
%36 = tail call i32 @putchar(i32 10)
%37 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([29 x i8], [29 x i8]* @.str.29, i64 0, i64 0))
%38 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([49 x i8], [49 x i8]* @.str.30, i64 0, i64 0))
%39 = tail call i32 @putchar(i32 10)
%40 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([49 x i8], [49 x i8]* @.str.31, i64 0, i64 0))
%41 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([56 x i8], [56 x i8]* @.str.32, i64 0, i64 0))
%42 = tail call i32 @putchar(i32 10)
%43 = load i32, i32* @EXIT_FAILURE
%44 = tail call i32 @exit(i32 %43)
unreachable
}