aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xemscripten.py7
-rw-r--r--src/jsifier.js2
-rw-r--r--src/library.js24
-rw-r--r--tests/cases/fuzz6.ll3306
-rw-r--r--tests/cases/fuzz6.txt1
-rw-r--r--tests/core/test_exceptions_white_list_2.c27
-rw-r--r--tests/core/test_exceptions_white_list_2.out1
-rw-r--r--tests/fuzz/6.c1313
-rw-r--r--tests/fuzz/6.c.txt1
-rwxr-xr-xtests/fuzz/csmith_driver.py5
-rwxr-xr-xtests/fuzz/test.sh13
-rw-r--r--tests/test_core.py85
12 files changed, 4732 insertions, 53 deletions
diff --git a/emscripten.py b/emscripten.py
index ce929858..77082aee 100755
--- a/emscripten.py
+++ b/emscripten.py
@@ -474,6 +474,9 @@ def emscript(infile, settings, outfile, libraries=[], compiler_engine=None,
basic_vars.append('F_BASE_%s' % sig)
asm_setup += ' var F_BASE_%s = %s;\n' % (sig, 'FUNCTION_TABLE_OFFSET' if settings.get('SIDE_MODULE') else '0') + '\n'
+ if '_rand' in exported_implemented_functions or '_srand' in exported_implemented_functions:
+ basic_vars += ['___rand_seed']
+
asm_runtime_funcs = ['stackAlloc', 'stackSave', 'stackRestore', 'setThrew'] + ['setTempRet%d' % i for i in range(10)]
# function tables
function_tables = ['dynCall_' + table for table in last_forwarded_json['Functions']['tables']]
@@ -518,6 +521,7 @@ def emscript(infile, settings, outfile, libraries=[], compiler_engine=None,
exports = '{ ' + ', '.join(exports) + ' }'
else:
exports = '_main'
+
# calculate globals
try:
del forwarded_json['Variables']['globals']['_llvm_global_ctors'] # not a true variable
@@ -975,6 +979,9 @@ def emscript_fast(infile, settings, outfile, libraries=[], compiler_engine=None,
basic_vars.append('F_BASE_%s' % sig)
asm_setup += ' var F_BASE_%s = %s;\n' % (sig, 'FUNCTION_TABLE_OFFSET' if settings.get('SIDE_MODULE') else '0') + '\n'
+ if '_rand' in exported_implemented_functions or '_srand' in exported_implemented_functions:
+ basic_vars += ['___rand_seed']
+
asm_runtime_funcs = ['stackAlloc', 'stackSave', 'stackRestore', 'setThrew'] + ['setTempRet%d' % i for i in range(10)]
# function tables
function_tables = ['dynCall_' + table for table in last_forwarded_json['Functions']['tables']]
diff --git a/src/jsifier.js b/src/jsifier.js
index f4819584..ab5440f7 100644
--- a/src/jsifier.js
+++ b/src/jsifier.js
@@ -1223,7 +1223,7 @@ function JSify(data, functionsOnly) {
// in an assignment
var disabled = DISABLE_EXCEPTION_CATCHING == 2 && !(item.funcData.ident in EXCEPTION_CATCHING_WHITELIST);
var phiSets = calcPhiSets(item);
- var call_ = makeFunctionCall(item, item.params, item.funcData, item.type, ASM_JS && !disabled, !!item.assignTo || !item.standalone, true);
+ var call_ = makeFunctionCall(item, item.params, item.funcData, item.type, ASM_JS && !disabled, !!item.assignTo || !item.standalone, !disabled);
var ret;
diff --git a/src/library.js b/src/library.js
index 4c0f790f..30453137 100644
--- a/src/library.js
+++ b/src/library.js
@@ -3447,13 +3447,25 @@ LibraryManager.library = {
return limit;
},
- // Use browser's Math.random(). We can't set a seed, though.
- srand: function(seed) {}, // XXX ignored
+ __rand_seed: 'allocate([0x0273459b, 0, 0, 0], "i32", ALLOC_STATIC)',
+ srand__deps: ['__rand_seed'],
+ srand: function(seed) {
+ {{{ makeSetValue('___rand_seed', 0, 'seed', 'i32') }}}
+ },
+ rand_r__sig: 'ii',
+ rand_r__asm: true,
+ rand_r: function(seedp) {
+ seedp = seedp|0;
+ var val = 0;
+ val = (Math_imul({{{ makeGetValueAsm('seedp', 0, 'i32') }}}, 31010991)|0) + 0x676e6177 | 0;
+ {{{ makeSetValueAsm('seedp', 0, 'val', 'i32') }}};
+ return val|0;
+ },
+ rand__sig: 'i',
+ rand__asm: true,
+ rand__deps: ['rand_r', '__rand_seed'],
rand: function() {
- return Math.floor(Math.random()*0x80000000);
- },
- rand_r: function(seed) { // XXX ignores the seed
- return Math.floor(Math.random()*0x80000000);
+ return _rand_r(___rand_seed)|0;
},
drand48: function() {
diff --git a/tests/cases/fuzz6.ll b/tests/cases/fuzz6.ll
new file mode 100644
index 00000000..dea3a21d
--- /dev/null
+++ b/tests/cases/fuzz6.ll
@@ -0,0 +1,3306 @@
+; ModuleID = 'emcc-0-basebc.bc'
+target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:32"
+target triple = "le32-unknown-nacl"
+
+%struct.S3 = type { i32, i32 }
+%struct.S1 = type { i32, i32, i8, i16 }
+%union.U4 = type { i32 }
+%struct.S2 = type { [2 x i8], [2 x i8] }
+%struct.S0 = type { i32, [4 x i8], [4 x i8], [4 x i8], i8, [7 x i8] }
+
+@.str = private unnamed_addr constant [2 x i8] c"1\00", align 1
+@g_5 = internal unnamed_addr global i32 -1, align 4
+@.str1 = private unnamed_addr constant [4 x i8] c"g_5\00", align 1
+@g_25 = internal global %struct.S3 { i32 1301409902, i32 1607156808 }, align 8
+@.str2 = private unnamed_addr constant [8 x i8] c"g_25.f0\00", align 1
+@.str3 = private unnamed_addr constant [8 x i8] c"g_25.f1\00", align 1
+@g_49 = internal global [9 x %struct.S3] [%struct.S3 { i32 -8, i32 -762592976 }, %struct.S3 { i32 -8, i32 -762592976 }, %struct.S3 { i32 -8, i32 -762592976 }, %struct.S3 { i32 -8, i32 -762592976 }, %struct.S3 { i32 -8, i32 -762592976 }, %struct.S3 { i32 -8, i32 -762592976 }, %struct.S3 { i32 -8, i32 -762592976 }, %struct.S3 { i32 -8, i32 -762592976 }, %struct.S3 { i32 -8, i32 -762592976 }], align 8
+@.str4 = private unnamed_addr constant [11 x i8] c"g_49[i].f0\00", align 1
+@.str5 = private unnamed_addr constant [11 x i8] c"g_49[i].f1\00", align 1
+@.str6 = private unnamed_addr constant [14 x i8] c"index = [%d]\0A\00", align 1
+@g_52 = internal global i32 2110022177, align 4
+@.str7 = private unnamed_addr constant [5 x i8] c"g_52\00", align 1
+@.str8 = private unnamed_addr constant [5 x i8] c"g_82\00", align 1
+@g_90 = internal global i32 888749341, align 4
+@.str9 = private unnamed_addr constant [5 x i8] c"g_90\00", align 1
+@g_92 = internal unnamed_addr global i8 -97, align 1
+@.str10 = private unnamed_addr constant [5 x i8] c"g_92\00", align 1
+@g_96 = internal global i8 -23, align 1
+@.str11 = private unnamed_addr constant [5 x i8] c"g_96\00", align 1
+@g_99 = internal global %struct.S1 { i32 -845795437, i32 0, i8 0, i16 4 }, align 4
+@.str12 = private unnamed_addr constant [8 x i8] c"g_99.f0\00", align 1
+@.str13 = private unnamed_addr constant [8 x i8] c"g_99.f1\00", align 1
+@.str14 = private unnamed_addr constant [8 x i8] c"g_99.f2\00", align 1
+@.str15 = private unnamed_addr constant [8 x i8] c"g_99.f3\00", align 1
+@g_103 = internal unnamed_addr global i16 23707, align 2
+@.str16 = private unnamed_addr constant [6 x i8] c"g_103\00", align 1
+@.str17 = private unnamed_addr constant [9 x i8] c"g_108.f0\00", align 1
+@.str18 = private unnamed_addr constant [9 x i8] c"g_108.f1\00", align 1
+@.str19 = private unnamed_addr constant [9 x i8] c"g_108.f2\00", align 1
+@.str20 = private unnamed_addr constant [9 x i8] c"g_108.f3\00", align 1
+@.str21 = private unnamed_addr constant [9 x i8] c"g_108.f4\00", align 1
+@.str22 = private unnamed_addr constant [9 x i8] c"g_108.f5\00", align 1
+@.str23 = private unnamed_addr constant [9 x i8] c"g_108.f6\00", align 1
+@.str24 = private unnamed_addr constant [9 x i8] c"g_109.f0\00", align 1
+@.str25 = private unnamed_addr constant [9 x i8] c"g_110.f0\00", align 1
+@g_183 = internal global %union.U4 zeroinitializer, align 4
+@.str26 = private unnamed_addr constant [9 x i8] c"g_183.f0\00", align 1
+@.str27 = private unnamed_addr constant [9 x i8] c"g_218.f0\00", align 1
+@g_258 = internal unnamed_addr global i8 -11, align 1
+@.str28 = private unnamed_addr constant [6 x i8] c"g_258\00", align 1
+@g_332 = internal unnamed_addr global i16 1, align 2
+@.str29 = private unnamed_addr constant [6 x i8] c"g_332\00", align 1
+@g_345 = internal global [10 x [1 x %union.U4]] [[1 x %union.U4] [%union.U4 { i32 -9 }], [1 x %union.U4] [%union.U4 { i32 -8 }], [1 x %union.U4] [%union.U4 { i32 -8 }], [1 x %union.U4] [%union.U4 { i32 -9 }], [1 x %union.U4] [%union.U4 { i32 -8 }], [1 x %union.U4] [%union.U4 { i32 -8 }], [1 x %union.U4] [%union.U4 { i32 -9 }], [1 x %union.U4] [%union.U4 { i32 -8 }], [1 x %union.U4] [%union.U4 { i32 -8 }], [1 x %union.U4] [%union.U4 { i32 -9 }]], align 4
+@.str30 = private unnamed_addr constant [15 x i8] c"g_345[i][j].f0\00", align 1
+@.str31 = private unnamed_addr constant [18 x i8] c"index = [%d][%d]\0A\00", align 1
+@.str32 = private unnamed_addr constant [9 x i8] c"g_393[i]\00", align 1
+@g_395 = internal global i16 -7025, align 2
+@.str33 = private unnamed_addr constant [6 x i8] c"g_395\00", align 1
+@.str34 = private unnamed_addr constant [6 x i8] c"g_398\00", align 1
+@g_404 = internal constant [9 x [3 x [7 x %struct.S1]]] [[3 x [7 x %struct.S1]] [[7 x %struct.S1] [%struct.S1 { i32 -4, i32 1, i8 1, i16 -28668 }, %struct.S1 { i32 -7, i32 759214664, i8 9, i16 -4 }, %struct.S1 { i32 1, i32 349068844, i8 -1, i16 0 }, %struct.S1 { i32 -3, i32 9, i8 -61, i16 -1 }, %struct.S1 { i32 9, i32 0, i8 -11, i16 -30413 }, %struct.S1 { i32 1861205821, i32 110616061, i8 40, i16 -9 }, %struct.S1 { i32 -7, i32 759214664, i8 9, i16 -4 }], [7 x %struct.S1] [%struct.S1 { i32 -244445179, i32 1776214206, i8 -2, i16 1 }, %struct.S1 { i32 1543082949, i32 -1355807875, i8 6, i16 -31022 }, %struct.S1 { i32 1025177860, i32 6, i8 9, i16 9090 }, %struct.S1 { i32 -244445179, i32 1776214206, i8 -2, i16 1 }, %struct.S1 { i32 0, i32 8, i8 63, i16 -15114 }, %struct.S1 { i32 -237948286, i32 -602674988, i8 9, i16 -23496 }, %struct.S1 { i32 0, i32 1, i8 -66, i16 -1 }], [7 x %struct.S1] [%struct.S1 { i32 -1258444377, i32 0, i8 -3, i16 -18764 }, %struct.S1 { i32 -4, i32 1865801250, i8 1, i16 -5 }, %struct.S1 { i32 -1411946461, i32 1547736314, i8 -89, i16 29618 }, %struct.S1 { i32 -624352579, i32 -2, i8 109, i16 -10276 }, %struct.S1 { i32 -2023789489, i32 -902579792, i8 -1, i16 1 }, %struct.S1 { i32 -41003017, i32 1569787914, i8 -6, i16 18403 }, %struct.S1 { i32 -41003017, i32 1569787914, i8 -6, i16 18403 }]], [3 x [7 x %struct.S1]] [[7 x %struct.S1] [%struct.S1 { i32 -4, i32 -392352954, i8 -1, i16 14048 }, %struct.S1 { i32 0, i32 1, i8 -66, i16 -1 }, %struct.S1 { i32 -917235207, i32 -237206527, i8 -2, i16 0 }, %struct.S1 { i32 0, i32 1, i8 -66, i16 -1 }, %struct.S1 { i32 -4, i32 -392352954, i8 -1, i16 14048 }, %struct.S1 { i32 0, i32 -270755058, i8 -10, i16 -6 }, %struct.S1 { i32 823728956, i32 -762967062, i8 -7, i16 -13824 }], [7 x %struct.S1] [%struct.S1 { i32 1, i32 276540291, i8 -118, i16 -1 }, %struct.S1 { i32 2060359313, i32 0, i8 0, i16 -4 }, %struct.S1 { i32 -1, i32 60410192, i8 -105, i16 0 }, %struct.S1 { i32 -1832135439, i32 -117259837, i8 -1, i16 -1 }, %struct.S1 { i32 -7, i32 1258034932, i8 1, i16 -1 }, %struct.S1 { i32 -1718057571, i32 0, i8 0, i16 -8992 }, %struct.S1 { i32 9, i32 0, i8 -11, i16 -30413 }], [7 x %struct.S1] [%struct.S1 { i32 1025177860, i32 6, i8 9, i16 9090 }, %struct.S1 { i32 -1959266718, i32 1, i8 0, i16 -9111 }, %struct.S1 { i32 -1, i32 781657959, i8 57, i16 22085 }, %struct.S1 { i32 -2076059332, i32 -1205200163, i8 55, i16 -3996 }, %struct.S1 { i32 -1959266718, i32 1, i8 0, i16 -9111 }, %struct.S1 { i32 1, i32 1260336922, i8 116, i16 13140 }, %struct.S1 { i32 -1, i32 -263772962, i8 0, i16 1 }]], [3 x [7 x %struct.S1]] [[7 x %struct.S1] [%struct.S1 { i32 1, i32 276540291, i8 -118, i16 -1 }, %struct.S1 { i32 -1832135439, i32 -117259837, i8 -1, i16 -1 }, %struct.S1 { i32 1861205821, i32 110616061, i8 40, i16 -9 }, %struct.S1 { i32 -513205, i32 -1424064346, i8 -59, i16 5 }, %struct.S1 { i32 1184341626, i32 -1, i8 76, i16 1 }, %struct.S1 { i32 -1784578731, i32 -650939753, i8 7, i16 -13401 }, %struct.S1 { i32 -4, i32 1, i8 1, i16 -28668 }], [7 x %struct.S1] [%struct.S1 { i32 -4, i32 -392352954, i8 -1, i16 14048 }, %struct.S1 { i32 0, i32 1, i8 -23, i16 1 }, %struct.S1 { i32 1543082949, i32 -1355807875, i8 6, i16 -31022 }, %struct.S1 { i32 -1, i32 -358692379, i8 0, i16 1 }, %struct.S1 { i32 1, i32 1260336922, i8 116, i16 13140 }, %struct.S1 { i32 -10, i32 1571736142, i8 8, i16 -9 }, %struct.S1 { i32 -4, i32 -392352954, i8 -1, i16 14048 }], [7 x %struct.S1] [%struct.S1 { i32 -1258444377, i32 0, i8 -3, i16 -18764 }, %struct.S1 { i32 -4, i32 1, i8 1, i16 -28668 }, %struct.S1 { i32 -624352579, i32 -2, i8 109, i16 -10276 }, %struct.S1 { i32 -7, i32 1258034932, i8 1, i16 -1 }, %struct.S1 { i32 1774264700, i32 1743797768, i8 -12, i16 0 }, %struct.S1 { i32 -1258444377, i32 0, i8 -3, i16 -18764 }, %struct.S1 { i32 -637055085, i32 -947781708, i8 4, i16 -6808 }]], [3 x [7 x %struct.S1]] [[7 x %struct.S1] [%struct.S1 { i32 -244445179, i32 1776214206, i8 -2, i16 1 }, %struct.S1 { i32 -267149299, i32 -1636597397, i8 7, i16 13475 }, %struct.S1 { i32 2018342595, i32 -68458340, i8 -1, i16 -13443 }, %struct.S1 { i32 823728956, i32 -762967062, i8 -7, i16 -13824 }, %struct.S1 { i32 823728956, i32 -762967062, i8 -7, i16 -13824 }, %struct.S1 { i32 2018342595, i32 -68458340, i8 -1, i16 -13443 }, %struct.S1 { i32 -267149299, i32 -1636597397, i8 7, i16 13475 }], [7 x %struct.S1] [%struct.S1 { i32 -4, i32 1, i8 1, i16 -28668 }, %struct.S1 { i32 2060359313, i32 0, i8 0, i16 -4 }, %struct.S1 { i32 -1, i32 6, i8 57, i16 1 }, %struct.S1 { i32 -1357864411, i32 8, i8 91, i16 0 }, %struct.S1 { i32 1538544702, i32 -1554648331, i8 0, i16 -1 }, %struct.S1 { i32 -7, i32 1258034932, i8 1, i16 -1 }, %struct.S1 { i32 1184341626, i32 -1, i8 76, i16 1 }], [7 x %struct.S1] [%struct.S1 { i32 506767331, i32 2, i8 53, i16 -3 }, %struct.S1 { i32 2128045624, i32 0, i8 -127, i16 -13358 }, %struct.S1 { i32 1025177860, i32 6, i8 9, i16 9090 }, %struct.S1 { i32 -237948286, i32 -602674988, i8 9, i16 -23496 }, %struct.S1 { i32 -267149299, i32 -1636597397, i8 7, i16 13475 }, %struct.S1 { i32 1338273418, i32 -692826440, i8 -5, i16 -6354 }, %struct.S1 { i32 1543082949, i32 -1355807875, i8 6, i16 -31022 }]], [3 x [7 x %struct.S1]] [[7 x %struct.S1] [%struct.S1 { i32 -4, i32 1865801250, i8 1, i16 -5 }, %struct.S1 { i32 1774264700, i32 1743797768, i8 -12, i16 0 }, %struct.S1 { i32 1861205821, i32 110616061, i8 40, i16 -9 }, %struct.S1 { i32 -1357864411, i32 8, i8 91, i16 0 }, %struct.S1 { i32 -2023789489, i32 -902579792, i8 -1, i16 1 }, %struct.S1 { i32 -124134025, i32 -1549553076, i8 1, i16 -3 }, %struct.S1 { i32 -10, i32 2023506657, i8 6, i16 -1 }], [7 x %struct.S1] [%struct.S1 { i32 -1, i32 2138051897, i8 -48, i16 -1 }, %struct.S1 { i32 1543082949, i32 -1355807875, i8 6, i16 -31022 }, %struct.S1 { i32 -2076059332, i32 -1205200163, i8 55, i16 -3996 }, %struct.S1 { i32 823728956, i32 -762967062, i8 -7, i16 -13824 }, %struct.S1 { i32 0, i32 -1, i8 11, i16 26719 }, %struct.S1 { i32 0, i32 1, i8 -23, i16 1 }, %struct.S1 { i32 823728956, i32 -762967062, i8 -7, i16 -13824 }], [7 x %struct.S1] [%struct.S1 { i32 759088742, i32 -2109967385, i8 -108, i16 5309 }, %struct.S1 { i32 9, i32 0, i8 -11, i16 -30413 }, %struct.S1 { i32 -1718057571, i32 0, i8 0, i16 -8992 }, %struct.S1 { i32 -7, i32 1258034932, i8 1, i16 -1 }, %struct.S1 { i32 -1832135439, i32 -117259837, i8 -1, i16 -1 }, %struct.S1 { i32 -1, i32 60410192, i8 -105, i16 0 }, %struct.S1 { i32 2060359313, i32 0, i8 0, i16 -4 }]], [3 x [7 x %struct.S1]] [[7 x %struct.S1] [%struct.S1 { i32 823728956, i32 -762967062, i8 -7, i16 -13824 }, %struct.S1 { i32 -1959266718, i32 1, i8 0, i16 -9111 }, %struct.S1 { i32 -917235207, i32 -237206527, i8 -2, i16 0 }, %struct.S1 { i32 -1, i32 -358692379, i8 0, i16 1 }, %struct.S1 { i32 -1865005823, i32 1247557675, i8 9, i16 -1 }, %struct.S1 { i32 -837942276, i32 -10, i8 -4, i16 -6 }, %struct.S1 { i32 -1865005823, i32 1247557675, i8 9, i16 -1 }], [7 x %struct.S1] [%struct.S1 { i32 -513205, i32 -1424064346, i8 -59, i16 5 }, %struct.S1 { i32 -637055085, i32 -947781708, i8 4, i16 -6808 }, %struct.S1 { i32 -637055085, i32 -947781708, i8 4, i16 -6808 }, %struct.S1 { i32 -513205, i32 -1424064346, i8 -59, i16 5 }, %struct.S1 { i32 1538544702, i32 -1554648331, i8 0, i16 -1 }, %struct.S1 { i32 759088742, i32 -2109967385, i8 -108, i16 5309 }, %struct.S1 { i32 -2023789489, i32 -902579792, i8 -1, i16 1 }], [7 x %struct.S1] [%struct.S1 { i32 -10, i32 1571736142, i8 8, i16 -9 }, %struct.S1 { i32 -1923318042, i32 1, i8 -50, i16 -29192 }, %struct.S1 { i32 1, i32 1260336922, i8 116, i16 13140 }, %struct.S1 { i32 -2076059332, i32 -1205200163, i8 55, i16 -3996 }, %struct.S1 { i32 0, i32 1, i8 -66, i16 -1 }, %struct.S1 { i32 -10, i32 1571736142, i8 8, i16 -9 }, %struct.S1 { i32 0, i32 1, i8 -23, i16 1 }]], [3 x [7 x %struct.S1]] [[7 x %struct.S1] [%struct.S1 { i32 1774264700, i32 1743797768, i8 -12, i16 0 }, %struct.S1 { i32 -2023789489, i32 -902579792, i8 -1, i16 1 }, %struct.S1 { i32 1, i32 349068844, i8 -1, i16 0 }, %struct.S1 { i32 -1832135439, i32 -117259837, i8 -1, i16 -1 }, %struct.S1 { i32 -10, i32 2023506657, i8 6, i16 -1 }, %struct.S1 { i32 -124134025, i32 -1549553076, i8 1, i16 -3 }, %struct.S1 { i32 -2023789489, i32 -902579792, i8 -1, i16 1 }], [7 x %struct.S1] [%struct.S1 { i32 -244445179, i32 1776214206, i8 -2, i16 1 }, %struct.S1 { i32 -1, i32 -263772962, i8 0, i16 1 }, %struct.S1 { i32 506767331, i32 2, i8 53, i16 -3 }, %struct.S1 { i32 0, i32 1, i8 -66, i16 -1 }, %struct.S1 { i32 1, i32 1260336922, i8 116, i16 13140 }, %struct.S1 { i32 -237948286, i32 -602674988, i8 9, i16 -23496 }, %struct.S1 { i32 -1865005823, i32 1247557675, i8 9, i16 -1 }], [7 x %struct.S1] [%struct.S1 { i32 -1411946461, i32 1547736314, i8 -89, i16 29618 }, %struct.S1 { i32 -7, i32 759214664, i8 9, i16 -4 }, %struct.S1 { i32 -1, i32 6, i8 57, i16 1 }, %struct.S1 { i32 -624352579, i32 -2, i8 109, i16 -10276 }, %struct.S1 { i32 -7, i32 759214664, i8 9, i16 -4 }, %struct.S1 { i32 -637055085, i32 -947781708, i8 4, i16 -6808 }, %struct.S1 { i32 2060359313, i32 0, i8 0, i16 -4 }]], [3 x [7 x %struct.S1]] [[7 x %struct.S1] [%struct.S1 { i32 968381354, i32 -4, i8 -127, i16 -14432 }, %struct.S1 { i32 0, i32 1, i8 -66, i16 -1 }, %struct.S1 { i32 -837942276, i32 -10, i8 -4, i16 -6 }, %struct.S1 { i32 -244445179, i32 1776214206, i8 -2, i16 1 }, %struct.S1 { i32 -267149299, i32 -1636597397, i8 7, i16 13475 }, %struct.S1 { i32 1, i32 -5, i8 -10, i16 13038 }, %struct.S1 { i32 506767331, i32 2, i8 53, i16 -3 }], [7 x %struct.S1] [%struct.S1 { i32 -1411946461, i32 1547736314, i8 -89, i16 29618 }, %struct.S1 { i32 1861205821, i32 110616061, i8 40, i16 -9 }, %struct.S1 { i32 -1, i32 -6, i8 -4, i16 2 }, %struct.S1 { i32 -1024677174, i32 -1, i8 -126, i16 -10239 }, %struct.S1 { i32 -1, i32 -6, i8 -4, i16 2 }, %struct.S1 { i32 1861205821, i32 110616061, i8 40, i16 -9 }, %struct.S1 { i32 -1411946461, i32 1547736314, i8 -89, i16 29618 }], [7 x %struct.S1] [%struct.S1 { i32 -1223483863, i32 -1578792888, i8 -22, i16 1 }, %struct.S1 { i32 506767331, i32 2, i8 53, i16 -3 }, %struct.S1 { i32 0, i32 5, i8 -6, i16 19467 }, %struct.S1 { i32 1, i32 -1042812290, i8 -97, i16 -20099 }, %struct.S1 { i32 1025177860, i32 6, i8 9, i16 9090 }, %struct.S1 { i32 1525253711, i32 -1607228738, i8 1, i16 -392 }, %struct.S1 { i32 2018342595, i32 -68458340, i8 -1, i16 -13443 }]], [3 x [7 x %struct.S1]] [[7 x %struct.S1] [%struct.S1 { i32 -1, i32 6, i8 57, i16 1 }, %struct.S1 { i32 -1258444377, i32 0, i8 -3, i16 -18764 }, %struct.S1 { i32 -3, i32 9, i8 -61, i16 -1 }, %struct.S1 { i32 -1718057571, i32 0, i8 0, i16 -8992 }, %struct.S1 { i32 -1, i32 60410192, i8 -105, i16 0 }, %struct.S1 { i32 -3, i32 9, i8 -61, i16 -1 }, %struct.S1 { i32 0, i32 -866224393, i8 -65, i16 24132 }], [7 x %struct.S1] [%struct.S1 { i32 1338273418, i32 -692826440, i8 -5, i16 -6354 }, %struct.S1 { i32 0, i32 -270755058, i8 -10, i16 -6 }, %struct.S1 { i32 0, i32 5, i8 -6, i16 19467 }, %struct.S1 { i32 -1, i32 -263772962, i8 0, i16 1 }, %struct.S1 { i32 2, i32 -137424052, i8 1, i16 11792 }, %struct.S1 { i32 708881223, i32 670081913, i8 -53, i16 12097 }, %struct.S1 { i32 0, i32 1, i8 -23, i16 1 }], [7 x %struct.S1] [%struct.S1 { i32 1361878214, i32 -1, i8 115, i16 7 }, %struct.S1 { i32 -1, i32 60410192, i8 -105, i16 0 }, %struct.S1 { i32 -1, i32 -6, i8 -4, i16 2 }, %struct.S1 { i32 -992507318, i32 8, i8 90, i16 -12692 }, %struct.S1 { i32 0, i32 -866224393, i8 -65, i16 24132 }, %struct.S1 { i32 1361878214, i32 -1, i8 115, i16 7 }, %struct.S1 { i32 -1784578731, i32 -650939753, i8 7, i16 -13401 }]]], align 4
+@.str35 = private unnamed_addr constant [18 x i8] c"g_404[i][j][k].f0\00", align 1
+@.str36 = private unnamed_addr constant [18 x i8] c"g_404[i][j][k].f1\00", align 1
+@.str37 = private unnamed_addr constant [18 x i8] c"g_404[i][j][k].f2\00", align 1
+@.str38 = private unnamed_addr constant [18 x i8] c"g_404[i][j][k].f3\00", align 1
+@.str39 = private unnamed_addr constant [22 x i8] c"index = [%d][%d][%d]\0A\00", align 1
+@g_452 = internal unnamed_addr global i1 false
+@.str40 = private unnamed_addr constant [6 x i8] c"g_452\00", align 1
+@.str41 = private unnamed_addr constant [6 x i8] c"g_454\00", align 1
+@g_455 = internal unnamed_addr global [1 x i16] [i16 -21015], align 2
+@.str42 = private unnamed_addr constant [9 x i8] c"g_455[i]\00", align 1
+@g_465 = internal global i32 1537435609, align 4
+@.str43 = private unnamed_addr constant [6 x i8] c"g_465\00", align 1
+@.str44 = private unnamed_addr constant [6 x i8] c"g_466\00", align 1
+@g_467 = internal unnamed_addr global i8 -1, align 1
+@.str45 = private unnamed_addr constant [6 x i8] c"g_467\00", align 1
+@.str46 = private unnamed_addr constant [6 x i8] c"g_518\00", align 1
+@.str47 = private unnamed_addr constant [9 x i8] c"g_525.f0\00", align 1
+@.str48 = private unnamed_addr constant [9 x i8] c"g_525.f1\00", align 1
+@.str49 = private unnamed_addr constant [9 x i8] c"g_525.f2\00", align 1
+@.str50 = private unnamed_addr constant [9 x i8] c"g_525.f3\00", align 1
+@.str51 = private unnamed_addr constant [6 x i8] c"g_531\00", align 1
+@g_532 = internal global i32 -4, align 4
+@.str52 = private unnamed_addr constant [6 x i8] c"g_532\00", align 1
+@g_534 = internal unnamed_addr global i16 -12709, align 2
+@.str53 = private unnamed_addr constant [6 x i8] c"g_534\00", align 1
+@g_535 = internal unnamed_addr global [3 x [6 x [4 x i16]]] [[6 x [4 x i16]] [[4 x i16] [i16 1, i16 -5, i16 1, i16 0], [4 x i16] [i16 -5, i16 1, i16 -18349, i16 3093], [4 x i16] [i16 6, i16 1, i16 -5, i16 -24951], [4 x i16] [i16 7, i16 -9, i16 -1, i16 0], [4 x i16] [i16 0, i16 -3322, i16 0, i16 17466], [4 x i16] [i16 27553, i16 0, i16 3881, i16 0]], [6 x [4 x i16]] [[4 x i16] [i16 -3322, i16 -23234, i16 -24951, i16 3881], [4 x i16] [i16 1, i16 6, i16 -5, i16 1], [4 x i16] [i16 -1, i16 1, i16 0, i16 6914], [4 x i16] [i16 -1, i16 -3322, i16 -5, i16 -1], [4 x i16] [i16 1, i16 6914, i16 -24951, i16 0], [4 x i16] [i16 -3322, i16 -30274, i16 3881, i16 3093]], [6 x [4 x i16]] [[4 x i16] [i16 27553, i16 1, i16 0, i16 1], [4 x i16] [i16 0, i16 -23234, i16 -1, i16 0], [4 x i16] [i16 1, i16 17466, i16 17466, i16 1], [4 x i16] [i16 6914, i16 -1, i16 -10, i16 -1], [4 x i16] [i16 17466, i16 0, i16 -9, i16 11044], [4 x i16] [i16 -5, i16 0, i16 1, i16 11044]]], align 2
+@.str54 = private unnamed_addr constant [15 x i8] c"g_535[i][j][k]\00", align 1
+@g_538 = internal unnamed_addr global i16 9, align 2
+@.str55 = private unnamed_addr constant [6 x i8] c"g_538\00", align 1
+@g_557 = internal unnamed_addr global i16 15797, align 2
+@.str56 = private unnamed_addr constant [6 x i8] c"g_557\00", align 1
+@g_575 = internal unnamed_addr global i8 -5, align 1
+@.str57 = private unnamed_addr constant [6 x i8] c"g_575\00", align 1
+@g_591 = internal global [10 x [8 x %union.U4]] [[8 x %union.U4] [%union.U4 { i32 1 }, %union.U4 { i32 62345350 }, %union.U4 { i32 1 }, %union.U4 { i32 62345350 }, %union.U4 { i32 1 }, %union.U4 { i32 62345350 }, %union.U4 { i32 1 }, %union.U4 { i32 62345350 }], [8 x %union.U4] [%union.U4 { i32 1 }, %union.U4 { i32 62345350 }, %union.U4 { i32 1 }, %union.U4 { i32 62345350 }, %union.U4 { i32 1 }, %union.U4 { i32 62345350 }, %union.U4 { i32 1 }, %union.U4 { i32 62345350 }], [8 x %union.U4] [%union.U4 { i32 1 }, %union.U4 { i32 62345350 }, %union.U4 { i32 1 }, %union.U4 { i32 62345350 }, %union.U4 { i32 1 }, %union.U4 { i32 62345350 }, %union.U4 { i32 1 }, %union.U4 { i32 62345350 }], [8 x %union.U4] [%union.U4 { i32 1 }, %union.U4 { i32 62345350 }, %union.U4 { i32 1 }, %union.U4 { i32 62345350 }, %union.U4 { i32 1 }, %union.U4 { i32 62345350 }, %union.U4 { i32 1 }, %union.U4 { i32 62345350 }], [8 x %union.U4] [%union.U4 { i32 1 }, %union.U4 { i32 62345350 }, %union.U4 { i32 1 }, %union.U4 { i32 62345350 }, %union.U4 { i32 1 }, %union.U4 { i32 62345350 }, %union.U4 { i32 1 }, %union.U4 { i32 62345350 }], [8 x %union.U4] [%union.U4 { i32 1 }, %union.U4 { i32 62345350 }, %union.U4 { i32 1 }, %union.U4 { i32 62345350 }, %union.U4 { i32 1 }, %union.U4 { i32 62345350 }, %union.U4 { i32 1 }, %union.U4 { i32 62345350 }], [8 x %union.U4] [%union.U4 { i32 1 }, %union.U4 { i32 62345350 }, %union.U4 { i32 1 }, %union.U4 { i32 62345350 }, %union.U4 { i32 1 }, %union.U4 { i32 62345350 }, %union.U4 { i32 1 }, %union.U4 { i32 62345350 }], [8 x %union.U4] [%union.U4 { i32 1 }, %union.U4 { i32 62345350 }, %union.U4 { i32 1 }, %union.U4 { i32 62345350 }, %union.U4 { i32 1 }, %union.U4 { i32 62345350 }, %union.U4 { i32 1 }, %union.U4 { i32 62345350 }], [8 x %union.U4] [%union.U4 { i32 1 }, %union.U4 { i32 62345350 }, %union.U4 { i32 1 }, %union.U4 { i32 62345350 }, %union.U4 { i32 1 }, %union.U4 { i32 62345350 }, %union.U4 { i32 1 }, %union.U4 { i32 62345350 }], [8 x %union.U4] [%union.U4 { i32 1 }, %union.U4 { i32 62345350 }, %union.U4 { i32 1 }, %union.U4 { i32 62345350 }, %union.U4 { i32 1 }, %union.U4 { i32 62345350 }, %union.U4 { i32 1 }, %union.U4 { i32 62345350 }]], align 4
+@.str58 = private unnamed_addr constant [15 x i8] c"g_591[i][j].f0\00", align 1
+@.str59 = private unnamed_addr constant [9 x i8] c"g_623.f0\00", align 1
+@.str60 = private unnamed_addr constant [9 x i8] c"g_623.f1\00", align 1
+@.str61 = private unnamed_addr constant [9 x i8] c"g_623.f2\00", align 1
+@.str62 = private unnamed_addr constant [9 x i8] c"g_623.f3\00", align 1
+@.str63 = private unnamed_addr constant [9 x i8] c"g_623.f4\00", align 1
+@.str64 = private unnamed_addr constant [9 x i8] c"g_623.f5\00", align 1
+@.str65 = private unnamed_addr constant [9 x i8] c"g_623.f6\00", align 1
+@g_815 = internal unnamed_addr constant [4 x [3 x i8]] [[3 x i8] c"\F6\F6\F6", [3 x i8] c"\F6\F6\F6", [3 x i8] c"\F6\F6\F6", [3 x i8] c"\F6\F6\F6"], align 1
+@.str66 = private unnamed_addr constant [12 x i8] c"g_815[i][j]\00", align 1
+@.str67 = private unnamed_addr constant [9 x i8] c"g_901.f0\00", align 1
+@.str68 = private unnamed_addr constant [7 x i8] c"g_1054\00", align 1
+@g_1055 = internal global i32 -1754892444, align 4
+@.str69 = private unnamed_addr constant [7 x i8] c"g_1055\00", align 1
+@g_1057 = internal unnamed_addr global [4 x [5 x i32]] [[5 x i32] [i32 1, i32 569906689, i32 569906689, i32 1, i32 1], [5 x i32] [i32 1, i32 1140362115, i32 1140362115, i32 1, i32 2], [5 x i32] [i32 1, i32 569906689, i32 569906689, i32 1, i32 1], [5 x i32] [i32 1, i32 1140362115, i32 1140362115, i32 1, i32 2]], align 4
+@.str70 = private unnamed_addr constant [13 x i8] c"g_1057[i][j]\00", align 1
+@crc32_context = internal unnamed_addr global i32 -1, align 4
+@.str71 = private unnamed_addr constant [15 x i8] c"checksum = %X\0A\00", align 1
+@g_901 = internal unnamed_addr constant { i8, i8, [2 x i8] } { i8 9, i8 0, [2 x i8] undef }, align 4
+@g_623 = internal global { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } { i32 -98308741, i8 21, i8 1, i8 0, i8 undef, i8 -107, i8 -8, i8 -1, i8 undef, i8 93, i8 1, i8 0, i8 0, i8 1, i8 -122, i8 9, i8 0, i8 72, i8 79, i8 0, i8 0 }, align 4
+@g_110 = internal global { i8, i8, [2 x i8] } { i8 123, i8 0, [2 x i8] undef }, align 4
+@g_108 = internal global { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } { i32 -1, i8 126, i8 -4, i8 15, i8 undef, i8 20, i8 -3, i8 -1, i8 undef, i8 -13, i8 27, i8 0, i8 0, i8 -52, i8 21, i8 4, i8 0, i8 69, i8 69, i8 0, i8 0 }, align 4
+@.str72 = private unnamed_addr constant [36 x i8] c"...checksum after hashing %s : %lX\0A\00", align 1
+@crc32_tab = internal unnamed_addr global [256 x i32] zeroinitializer, align 4
+@func_1.l_1252 = private unnamed_addr constant %struct.S3 { i32 -1, i32 2063360091 }, align 4
+@func_2.l_1232 = private unnamed_addr constant { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } { i32 0, i8 -128, i8 3, i8 0, i8 undef, i8 -119, i8 13, i8 0, i8 undef, i8 12, i8 15, i8 0, i8 0, i8 74, i8 80, i8 12, i8 0, i8 119, i8 18, i8 0, i8 0 }, align 4
+@func_2.l_1235 = private unnamed_addr constant [3 x [7 x i32]] [[7 x i32] [i32 439875158, i32 1, i32 0, i32 2, i32 1, i32 2, i32 0], [7 x i32] [i32 1, i32 1, i32 0, i32 1694927858, i32 -3, i32 0, i32 -3], [7 x i32] [i32 1694927858, i32 0, i32 0, i32 1694927858, i32 2, i32 439875158, i32 1694927858]], align 4
+@g_192 = internal global [6 x [10 x %struct.S2*]] [[10 x %struct.S2*] [%struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*)], [10 x %struct.S2*] [%struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*)], [10 x %struct.S2*] [%struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*)], [10 x %struct.S2*] [%struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*)], [10 x %struct.S2*] [%struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*)], [10 x %struct.S2*] [%struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*), %struct.S2* bitcast ({ i8, i8, [2 x i8] }* @g_110 to %struct.S2*)]], align 4
+@func_2.l_1247 = private unnamed_addr constant [10 x %struct.S3] [%struct.S3 { i32 -1, i32 -1 }, %struct.S3 { i32 -1, i32 -1 }, %struct.S3 { i32 -1, i32 -1 }, %struct.S3 { i32 -1, i32 -1 }, %struct.S3 { i32 -1, i32 -1 }, %struct.S3 { i32 -1, i32 -1 }, %struct.S3 { i32 -1, i32 -1 }, %struct.S3 { i32 -1, i32 -1 }, %struct.S3 { i32 -1, i32 -1 }, %struct.S3 { i32 -1, i32 -1 }], align 4
+@g_1182 = internal unnamed_addr global i32*** @g_1183, align 4
+@func_2.l_1249 = private unnamed_addr constant %struct.S3 { i32 -1, i32 1 }, align 4
+@func_45.l_152 = private unnamed_addr constant <{ { i8, i8, [2 x i8] }, { i8, i8, [2 x i8] }, { i8, i8, [2 x i8] }, { i8, i8, [2 x i8] }, { i8, i8, [2 x i8] }, { i8, i8, [2 x i8] }, { i8, i8, [2 x i8] } }> <{ { i8, i8, [2 x i8] } { i8 -119, i8 0, [2 x i8] undef }, { i8, i8, [2 x i8] } { i8 -119, i8 0, [2 x i8] undef }, { i8, i8, [2 x i8] } { i8 -119, i8 0, [2 x i8] undef }, { i8, i8, [2 x i8] } { i8 -119, i8 0, [2 x i8] undef }, { i8, i8, [2 x i8] } { i8 -119, i8 0, [2 x i8] undef }, { i8, i8, [2 x i8] } { i8 -119, i8 0, [2 x i8] undef }, { i8, i8, [2 x i8] } { i8 -119, i8 0, [2 x i8] undef } }>, align 4
+@func_45.l_154 = private unnamed_addr constant { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } { i32 1335375908, i8 -31, i8 -3, i8 15, i8 undef, i8 -17, i8 11, i8 0, i8 undef, i8 -61, i8 13, i8 0, i8 0, i8 8, i8 100, i8 2, i8 0, i8 17, i8 13, i8 0, i8 0 }, align 4
+@func_45.l_81 = private unnamed_addr constant [8 x [5 x i32]] [[5 x i32] [i32 -7, i32 -1414374823, i32 -632497018, i32 -10, i32 -10], [5 x i32] [i32 -10, i32 -1642393851, i32 -10, i32 -8, i32 1286323839], [5 x i32] [i32 -632497018, i32 -1414374823, i32 -7, i32 0, i32 1286323839], [5 x i32] [i32 -1471816903, i32 4, i32 4, i32 -1471816903, i32 -10], [5 x i32] [i32 1490958412, i32 -1471816903, i32 -7, i32 1286323839, i32 -1414374823], [5 x i32] [i32 1490958412, i32 -7, i32 -10, i32 -7, i32 1490958412], [5 x i32] [i32 -1471816903, i32 0, i32 -632497018, i32 1286323839, i32 4], [5 x i32] [i32 -632497018, i32 0, i32 -1471816903, i32 -1471816903, i32 0]], align 4
+@func_45.l_74 = private unnamed_addr constant [9 x i8] c"K\C8\C8K\C8\C8K\C8\C8", align 1
+@func_45.l_126 = private unnamed_addr constant { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } { i32 -10, i8 50, i8 3, i8 0, i8 undef, i8 103, i8 -1, i8 -1, i8 undef, i8 -101, i8 6, i8 0, i8 0, i8 1, i8 -70, i8 14, i8 0, i8 80, i8 74, i8 0, i8 0 }, align 4
+@func_45.l_130 = private unnamed_addr constant %struct.S3 { i32 0, i32 -1 }, align 4
+@func_45.l_149 = private unnamed_addr constant { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } { i32 1318996756, i8 -89, i8 1, i8 0, i8 undef, i8 103, i8 3, i8 0, i8 undef, i8 -42, i8 3, i8 0, i8 0, i8 60, i8 -36, i8 3, i8 0, i8 -116, i8 24, i8 0, i8 0 }, align 4
+@func_34.l_409 = private unnamed_addr constant { i8, i8, [2 x i8] } { i8 93, i8 127, [2 x i8] undef }, align 4
+@g_1183 = internal global i32** getelementptr inbounds ([3 x [9 x i32*]]* @g_680, i32 0, i32 2, i32 7), align 4
+@g_680 = internal global [3 x [9 x i32*]] [[9 x i32*] [i32* @g_90, i32* @g_90, i32* @g_90, i32* @g_90, i32* @g_90, i32* @g_90, i32* @g_90, i32* @g_90, i32* @g_90], [9 x i32*] zeroinitializer, [9 x i32*] [i32* @g_90, i32* @g_90, i32* @g_90, i32* @g_90, i32* @g_90, i32* @g_90, i32* @g_90, i32* @g_90, i32* @g_90]], align 4
+@func_26.l_486 = private unnamed_addr constant %union.U4 { i32 -1830168395 }, align 4
+@func_26.l_488 = private unnamed_addr constant %struct.S1 { i32 -1750699628, i32 0, i8 -10, i16 -14848 }, align 4
+@func_26.l_489 = private unnamed_addr constant %struct.S3 { i32 -277744967, i32 878104721 }, align 4
+@func_26.l_504 = private unnamed_addr constant [8 x [3 x [4 x i32]]] [[3 x [4 x i32]] [[4 x i32] [i32 -1525661844, i32 -1, i32 265542515, i32 -1], [4 x i32] [i32 -329602546, i32 3, i32 0, i32 -1525661844], [4 x i32] [i32 424579621, i32 0, i32 -1, i32 1972604273]], [3 x [4 x i32]] [[4 x i32] [i32 0, i32 -329602546, i32 4, i32 4], [4 x i32] [i32 0, i32 0, i32 -1, i32 0], [4 x i32] [i32 424579621, i32 4, i32 0, i32 0]], [3 x [4 x i32]] [[4 x i32] [i32 -329602546, i32 0, i32 265542515, i32 0], [4 x i32] [i32 -1525661844, i32 0, i32 -1525661844, i32 0], [4 x i32] [i32 0, i32 4, i32 -1983181016, i32 0]], [3 x [4 x i32]] [[4 x i32] [i32 0, i32 0, i32 -329602546, i32 4], [4 x i32] [i32 1972604273, i32 -329602546, i32 -329602546, i32 1972604273], [4 x i32] [i32 0, i32 0, i32 -1983181016, i32 -1525661844]], [3 x [4 x i32]] [[4 x i32] [i32 0, i32 3, i32 -1525661844, i32 -1], [4 x i32] [i32 -1525661844, i32 -1, i32 265542515, i32 -1], [4 x i32] [i32 -329602546, i32 3, i32 0, i32 -1525661844]], [3 x [4 x i32]] [[4 x i32] [i32 424579621, i32 0, i32 -1, i32 1972604273], [4 x i32] [i32 0, i32 -329602546, i32 4, i32 4], [4 x i32] [i32 0, i32 0, i32 -1, i32 0]], [3 x [4 x i32]] [[4 x i32] [i32 424579621, i32 4, i32 0, i32 0], [4 x i32] [i32 -329602546, i32 0, i32 265542515, i32 0], [4 x i32] [i32 -1525661844, i32 0, i32 -1525661844, i32 0]], [3 x [4 x i32]] [[4 x i32] [i32 0, i32 4, i32 -1983181016, i32 0], [4 x i32] [i32 0, i32 0, i32 -329602546, i32 4], [4 x i32] [i32 1972604273, i32 -329602546, i32 -329602546, i32 1972604273]]], align 4
+@func_26.l_550 = private unnamed_addr constant { i8, i8, [2 x i8] } { i8 102, i8 0, [2 x i8] undef }, align 4
+@func_26.l_478 = private unnamed_addr constant { i8, i8, [2 x i8] } { i8 -122, i8 0, [2 x i8] undef }, align 4
+@func_26.l_546 = private unnamed_addr constant <{ <{ <{ { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8,