From df16a13c672ac360112b5b9e80fb46b72d266bf7 Mon Sep 17 00:00:00 2001 From: Yvan Tortorella Date: Fri, 23 Jun 2023 21:55:32 +0200 Subject: [PATCH 01/56] Working matmul with cluster_it != 0 --- parallel_bare_tests/parMatrixMul/parMatrixMul.c | 13 +++++-------- parallel_bare_tests/parMatrixMul/test.ini~ | 6 ------ 2 files changed, 5 insertions(+), 14 deletions(-) delete mode 100644 parallel_bare_tests/parMatrixMul/test.ini~ diff --git a/parallel_bare_tests/parMatrixMul/parMatrixMul.c b/parallel_bare_tests/parMatrixMul/parMatrixMul.c index 78a3239..8dce6bb 100644 --- a/parallel_bare_tests/parMatrixMul/parMatrixMul.c +++ b/parallel_bare_tests/parMatrixMul/parMatrixMul.c @@ -29,9 +29,9 @@ #define CHKSM 88408 #endif -__attribute__ ((section(".heapsram"))) int A[SIZE][SIZE]; -__attribute__ ((section(".heapsram"))) int B[SIZE][SIZE]; -__attribute__ ((section(".heapsram"))) int C[SIZE][SIZE]; +__attribute__ ((section("__heap_sram"))) int A[SIZE][SIZE]; +__attribute__ ((section("__heap_sram"))) int B[SIZE][SIZE]; +__attribute__ ((section("__heap_sram"))) int C[SIZE][SIZE]; void initialize_mat(); @@ -57,9 +57,6 @@ testcase_t testcases[] = { int main() { - if (rt_cluster_id() != 0) - return bench_cluster_forward(0); - int nbErrors = run_suite(testcases); synch_barrier(); @@ -85,9 +82,9 @@ void matrix_multiplication(testresult_t *result, void (*start)(), void (*stop)() lb = coreid * chunk; //upper bound ub = lb + chunk; - + synch_barrier(); - + /********************* Benchmark Execution *********************/ if (coreid Date: Mon, 26 Jun 2023 16:20:03 +0200 Subject: [PATCH 02/56] Fixed header file generator and source code. --- .../parMatrixMul32/gen_stimuli.py | 10 +- .../parMatrixMul32/matrixMul.c | 2 +- .../parMatrixMul32/parMatrixMul32_stimuli.h | 4745 ++++++----------- 3 files changed, 1697 insertions(+), 3060 deletions(-) diff --git a/parallel_bare_tests/parMatrixMul32/gen_stimuli.py b/parallel_bare_tests/parMatrixMul32/gen_stimuli.py index d9d9697..3ce5002 100755 --- a/parallel_bare_tests/parMatrixMul32/gen_stimuli.py +++ b/parallel_bare_tests/parMatrixMul32/gen_stimuli.py @@ -15,7 +15,7 @@ def write_arr(f, name, arr): f = open('parMatrixMul32_stimuli.h', 'w') -SIZE = 32 +SIZE = 24 RANGE = 2**15/SIZE m_a = [] @@ -47,8 +47,8 @@ def write_arr(f, name, arr): f.write('#define SIZE %d\n' % SIZE) -f.write('__attribute__ ((section(".heapsram"))) int g_mA[SIZE][SIZE];\n') -f.write('__attribute__ ((section(".heapsram"))) int g_mB[SIZE][SIZE];\n') -f.write('__attribute__ ((section(".heapsram"))) int g_mC[SIZE][SIZE];\n') -f.write('__attribute__ ((section(".heapsram"))) int g_mB_tmp[SIZE][SIZE];\n') +f.write('__attribute__ ((section("__heap_sram"))) int g_mA[SIZE][SIZE];\n') +f.write('__attribute__ ((section("__heap_sram"))) int g_mB[SIZE][SIZE];\n') +f.write('__attribute__ ((section("__heap_sram"))) int g_mC[SIZE][SIZE];\n') +f.write('__attribute__ ((section("__heap_sram"))) int g_mB_tmp[SIZE][SIZE];\n') diff --git a/parallel_bare_tests/parMatrixMul32/matrixMul.c b/parallel_bare_tests/parMatrixMul32/matrixMul.c index 990d411..3fd64b9 100644 --- a/parallel_bare_tests/parMatrixMul32/matrixMul.c +++ b/parallel_bare_tests/parMatrixMul32/matrixMul.c @@ -35,7 +35,7 @@ unsigned int num_cores; int main() { - if (rt_cluster_id() != 0) + if (rt_cluster_id() != 1) return bench_cluster_forward(0); num_cores = get_core_num(); diff --git a/parallel_bare_tests/parMatrixMul32/parMatrixMul32_stimuli.h b/parallel_bare_tests/parMatrixMul32/parMatrixMul32_stimuli.h index dc0adbd..9ebc42a 100644 --- a/parallel_bare_tests/parMatrixMul32/parMatrixMul32_stimuli.h +++ b/parallel_bare_tests/parMatrixMul32/parMatrixMul32_stimuli.h @@ -1,3105 +1,1742 @@ -/* - * Copyright (C) 2018 ETH Zurich and University of Bologna - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Mantainer: Luca Valente, luca.valente2@unibo.it - */ const int m_a[] = { -830, --456, --926, --662, -135, --922, --509, -995, -818, -595, -135, --639, --371, --234, -842, --1020, --130, -949, --174, -137, --916, -179, -576, --253, -133, -7, --121, -920, -775, --22, -7, -138, -445, --308, -283, -657, -33, --482, -948, --352, -471, --40, -498, -728, --399, --636, -50, -796, --35, -1011, --970, --619, -411, --959, --152, -40, -624, -1016, -10, --631, --833, -621, --795, --66, -222, -872, --149, --952, --71, -404, --373, -811, -267, -763, --662, --953, -663, --381, -724, -35, -141, -969, -741, -204, --653, --920, --661, --770, --237, -309, -877, --969, --372, --663, --460, -711, -663, --517, --241, +-1344, +-778, +-350, +1240, +950, +940, +1262, +285, +738, +-37, +257, 704, --557, --791, -852, --248, -640, --454, --995, --362, -99, -465, --974, -546, --192, -411, -399, --653, -367, --964, --890, --617, --322, --916, --181, --781, --892, -496, --376, -996, --446, -490, -397, +87, +-1135, +1175, +960, +984, +611, +-1170, +1243, +-729, +-1235, +-1229, +8, +52, +1156, +-804, +-129, +-112, +-307, +1045, +-954, +-944, +477, +1104, +-600, -31, --233, --293, -568, --819, --668, --352, -917, -920, -581, --533, -437, --243, -465, -230, -729, --509, -259, --885, -206, --854, -520, -240, -707, --652, --342, --574, -467, -524, -698, +1364, +-950, +-153, +967, +-446, +235, +-197, +763, -660, -947, --1, --908, -220, -988, --803, +-1289, +116, +-458, +994, +1086, +156, +-549, +102, -532, -474, -168, --124, --210, -454, -886, --893, --285, --1007, --866, -263, -369, -885, --24, --1015, -496, --283, -222, -199, --698, -279, -68, --229, -941, -677, --806, --913, -558, -652, -629, --338, --959, -468, --336, --351, --789, --665, -716, --582, --508, --489, --119, -717, -269, --322, -68, -400, -880, -4, --33, -384, --537, -720, --653, -269, --492, -281, --873, --224, --289, -466, --202, --105, --223, -137, --283, --796, -105, --528, --107, --640, -507, -481, -572, --411, -720, -163, --537, --698, --154, -88, -765, -701, -925, --634, -751, -304, --837, -2, --691, -307, -626, --717, --858, --441, -79, +943, +299, +340, +516, +1117, 515, -783, -250, -946, -934, -151, --385, --788, --102, --818, --422, --728, -739, -822, -254, --330, -836, --200, -733, --537, --724, --824, --472, -322, --995, --763, --214, -774, -713, --266, -301, -699, -458, --1004, -301, -425, -386, -787, -436, -60, -614, --162, --900, -657, --970, -495, -830, --620, --411, --982, -842, -502, -44, --78, -740, -699, --307, -894, -915, -524, -731, -687, -769, --718, -825, -508, -952, --68, -733, -305, --505, -667, -675, -855, -221, --510, --164, -731, --497, -247, -37, --269, -858, --664, --523, --449, -772, -205, --350, --286, --871, -448, --91, -350, --182, -233, --870, -884, -885, -826, -532, -429, -591, --238, --435, -71, -661, -192, -982, --937, -282, -939, -107, --648, --237, -212, -748, -912, --76, --20, --304, --175, --390, --878, --360, --476, -439, -558, -552, --510, --120, --106, --959, --575, -505, --829, -16, -734, --882, -848, -864, --653, -905, -751, --304, -64, --262, -715, -281, -585, -65, -100, --579, -678, -425, -883, --198, -482, --508, -477, -1010, -783, --36, -737, --702, --171, -59, -773, --348, --573, --275, --415, --967, -468, --544, --655, --200, +1335, +708, +-306, +-589, +517, +655, +-279, +-595, -255, --598, +-1104, +-16, +507, +199, +-297, +-905, +-1084, +982, +20, +-1364, +407, +333, +-798, +-711, +1301, +175, +490, +-165, +-1097, +1251, +1203, +-884, +419, +-1262, -950, -229, -790, -892, --795, --71, --693, --615, -562, --326, --545, -226, -255, -840, --202, --160, -891, +-1200, +759, +-205, +-1365, +-870, +109, +-1135, +36, +796, +-1233, +-1117, +-826, +241, +588, +-513, +-353, 791, --669, --195, --733, -372, -937, -208, -970, -814, -45, -57, -943, -439, -763, --132, -83, --324, -857, --846, -810, --832, -251, --866, --129, --118, -574, -102, --141, -342, --478, -733, -611, --843, -975, -270, --638, --692, --618, -388, --434, -488, --1009, --237, -566, -925, --596, -640, -378, --30, --267, -299, --260, --134, -615, --628, +1071, +-1073, +220, +-1094, +1096, +-723, +280, +-505, +151, +399, +319, +-1120, +-213, -966, --436, --111, -34, --4, -687, -133, --666, -167, --1012, -422, -361, +679, +497, +-290, +-300, +-290, +-599, +243, +-752, 604, -836, -190, --939, -564, -137, --563, -397, -692, +1196, +-715, +-177, +-329, +1337, +596, +1027, +509, +-301, +-1211, +-936, +-281, +446, +-356, +841, +-1123, +-1343, +-140, +-1300, +-828, +-237, +1206, +1274, +-1092, +-922, +913, +1201, +-422, +782, +-230, +633, +-1055, +-1160, +329, +1255, +1038, +770, +123, 934, -907, --182, --539, -974, -176, -988, -24, -12, --739, --236, --851, --509, -814, --523, -654, --350, --320, --395, --863, -130, --725, -117, --788, --822, --909, -812, -534, +670, +-492, +-24, +-779, +-1129, +47, +555, +1214, -232, -1009, --583, --455, --257, -791, -971, -53, -837, -423, -527, -889, --378, --39, --572, -713, --588, -862, --608, -364, -46, -476, -928, -392, --819, --805, --377, --684, -234, -263, --245, --461, -23, -226, -504, --167, -74, -794, -1022, -464, -538, +-716, +-322, +-126, +178, +827, +710, +-1057, +-313, +996, +1149, +-532, +570, +1171, +899, +-313, +-790, +1071, +154, +-303, +492, +-918, +-1139, +292, +129, +1347, +-309, +751, +1262, +142, +-1062, +-1305, +250, +657, +238, +-141, +1308, +-37, +-514, +-591, +-611, +852, +-653, +-640, +91, +254, +-1145, +-1263, +-838, +-10, +266, +-444, +1129, +762, -713, -748, -332, -246, --969, --293, -77, -43, --940, --977, --170, --203, -274, --20, --467, --820, -315, -461, -291, -953, +-326, +-88, +1063, +-442, +-177, +365, +-740, +-1219, +1085, +783, +-725, +-1112, +426, +660, +6, +-440, +513, +687, +1078, +212, +-434, +-953, +1337, +160, +622, +-950, +-943, +288, +-136, +-1103, +-223, +1271, +211, 251, +-271, +-26, +704, +1177, +544, +699, -885, -1001, -413, -591, -684, -698, --701, -553, --808, --799, --42, --148, --512, --71, -742, -193, --778, -38, -14, --360, --172, -461, -94, -873, -777, --516, --236, -487, -923, --148, --611, --555, -457, -600, -867, --135, --487, -221, -563, --847, --636, --237, --735, --994, -281, -862, -506, --996, --613, --551, --606, -733, --338, --643, -536, -513, -285, -497, -99, --439, --258, --609, --712, -740, --200, -910, --845, -833, --242, --637, --780, --137, --155, -263, --895, +-864, +-1280, 877, --95, -453, -777, --196, -576, -93, --556, --71, --241, -987, -1012, -117, --149, --940, --790, -330, --559, --170, -136, --26, --227, -153, --937, -161, --954, --996, --725, -242, --369, -672, -474, --181, -856, -863, --419, --279, --1009, -8, --695, --834, -437, --611, --34, +-461, +995, +-623, +-121, +-146, +-484, +-225, +-978, +163, +-278, +-502, +-505, +-567, +-771, +1279, +699, +-1337, +544, +1145, +1271, +640, +277, +-164, +458, +-1280, +-602, +-2, +1136, +1203, +-699, +-195, +659, +-472, +1230, +1151, -97, -637, -17, --208, -288, --826, --29, --828, -777, --490, -240, -244, --436, --636, --413, --730, --426, --547, --135, -453, -930, -357, --926, --448, -96, --672, --1003, -644, -172, -938, -189, --892, --628, +-77, +-772, +-381, +-295, +636, +-1341, +-445, -806, -673, --430, -684, -291, -625, -161, --935, --275, -840, -944, -886, --28, -348, --947, -431, --96, --638, -500, --163, -1022, --775, --641, --42, --90, --192, -568, --845, -748, --95, --625, --426, -656, --48, -895, -791, -1009, --830, --442, -406, -771, -941, -337, -603, --601, -712, -844, --611, --649, --163, --911, -833, -284, --591, --574, --653, --454, --731, --784, --511, --1005, -831, -900, --878, -544, --592, -717, -722, -460, --76, --572, -726, -306, -990, -931, -320, --513, --920, --578, +531, +-1186, +-1313, +-274, +835, +-446, +558, +-1307, +-235, +43, +-254, +-109, +911, +-1189, +559, +-854, +-218, 149, -115, --961, -584, -796, -577, --850, -973, --661, --935, --249, -134, --942, --19, -269, -972, --810, --678, -976, -991, -488, --300, --295, -573, -403, -590, --518, -341, -135, -710, --381, -807, -668, --300, -828, --205, --710, -498, --786, --657, -152, -413, -97, -261, -784, -289, --936, --858, -119, --72, -702, --2, --437, -147, --968, --932, --463, --880, -938, --574, --177, +580, +1158, +-14, +181, +-1120, +-947, +-542, +1142, +631, +-893, +-614, +-257, +-365, +-951, +1, +-762, +268, +382, +-131, +808, +-234, +839, +346, +-733, +1251, +496, +-566, +-751, +581, +-1292, +1068, -932, -521, -333, -713, -855, --549, -585, --672, -29, -739, -115, --875, --140, --812, --30, --898, --528, --1012, --534, -585, --419, -273, --551, --452, -642, -836, -881, -235, --450, --1009, --480, --508, -844, -755, --851, --28, --363, --727, -590, --111, --764, --364, --167, --409, -291, --253, --718, --943, --47, -755, -316, --1012, --456, -212, -19, -358, --732, -665, -659, -445, -706, --723, --471, -266, -740, --207, --164, -446, -418, -482, -986, --382, -126, --920, -260, --488, -929, -515, -969, --725, --57, --106, --146, --454, -58, -706, --297, --233, -262, --749, --498, +1336, +-280, +523, +1294, +-1251, +1284, +-1276, +87, +1264, +-274, +-922, +-289, +-458, +-117, +196, +-79, +-707, +1233, +-385, +-620, +-617, +703, +-995, +-374, 660, --657, --279, -136, -401, --330, -569, --159, -774, -816, -484, --333, -642, --460, -}; - -const int m_b[] = { -739, --691, --674, --272, -816, --147, -760, --56, -581, --550, -763, -539, -251, --2, --701, -579, --53, --241, -699, -831, -752, -505, -715, --131, -24, --268, -778, -921, -368, --430, --711, --781, -678, --746, --755, -222, -477, --568, -140, -201, --696, --992, +145, +821, +1289, +582, -201, -964, --784, --532, --863, -1014, --642, -6, -589, -924, -662, -238, -485, -859, -808, -841, --192, -91, -42, -45, -355, -293, --182, -34, --883, -915, --414, -736, -613, -418, --202, -437, --229, --564, --250, --125, --233, --397, -331, 447, --41, -975, -853, -573, --475, --79, --932, -37, --367, --244, -300, -5, --188, -595, -934, -122, --76, --446, -703, --68, -214, -963, --160, -529, -98, -616, -161, -476, --808, -262, -49, -646, --647, --835, --706, -697, --26, --858, -496, -452, -875, -479, -73, --387, -512, -85, -58, -420, --167, -708, --847, -408, --254, -62, -700, --576, --850, -18, -186, --940, -519, -906, -559, -480, --1022, --393, --726, --219, -204, --231, -899, --998, -350, --795, -180, --36, -261, -315, --565, --707, -864, --279, -859, --993, -37, --841, -287, --613, -693, -626, -887, --781, --779, -415, -610, +116, 759, --655, --999, -521, -569, -726, -761, -330, --513, -797, -975, --883, --718, --748, --237, --892, -942, -715, -63, --272, --368, -738, -177, -267, --703, -991, -1002, --916, -143, -879, --233, --478, -66, -39, --516, -803, --341, -997, -770, --810, --577, +-615, +834, +268, +-1114, +-1016, +-227, +-589, +-910, -244, -1005, -190, -593, -530, --243, --41, --801, -16, -45, --834, --722, --265, --64, -1011, --397, --88, --228, -179, -22, --295, --296, -549, -373, --502, -1022, -29, -824, --523, -969, --973, --402, --955, --119, --294, -489, --905, +-660, +764, +219, +1165, +506, +-673, +799, +-1355, +-872, +491, +689, +176, +-285, +1151, +1080, +-319, +286, +833, +217, +-621, +478, +539, +-109, +-1273, +-564, +-240, +504, +518, +256, +-124, +74, +949, +-912, +-1341, +965, +-774, +634, +1009, +1304, +200, +-1041, +-1262, +-865, +-1065, +-635, +-357, +-928, 806, --864, --41, --735, --15, --338, -990, --294, -403, -485, -248, +1148, +-411, +56, +686, +-644, +1241, +-430, +297, +127, +457, +-1313, +741, +861, +220, +-540, +772, +265, +1066, +679, +177, +-734, +29, +-149, +181, +-1042, +-1139, +271, +-326, +-29, +1298, +643, +-890, +-136, +-1015, +-565, +-964, +894, +-312, +698, +159, +-222, +-1322, +578, +945, +1124, +1278, +54, +-389, +1101, +362, +-543, +380, +959, +-399, +-1105, +1308, +338, +-198, +-1111, +-278, +-752, +668, +1156, +-1226, +579, +184, +-1084, +-917, +-498, +-466, +316, +-788, +-718, 468, -389, --735, -999, --848, --263, -715, -550, --750, --207, --407, --77, --833, --939, -117, -624, --891, -13, -785, -547, --898, -622, -141, -95, --133, --341, -880, -829, -172, -28, -702, -527, --186, --61, --721, --121, --862, --990, --94, --657, --131, -429, -760, --779, -504, -1012, --17, -800, -892, --163, -309, --700, -20, -808, +367, +-1333, +-1146, +828, +1329, +311, +-1346, +54, +-976, +854, +-658, -198, -0, -331, -735, -259, -479, -820, --450, -3, --736, -391, -1002, -81, +-979, +156, +385, +-659, +1326, +1351, +-1173, +-648, +720, +-40, +313, +729, +-416, +351, +452, +-413, +-4, +-1113, +-612, +-28, +-721, +400, +1072, +-1010, +}; + +const int m_b[] = { +-1316, +319, +963, +-608, +519, +-783, +-676, +181, +172, +203, +-1351, +-935, +-12, +758, +-746, +1226, +127, +-1346, +1251, -377, --387, --160, --909, -1014, -881, --955, --206, --369, --672, -2, -842, --835, -427, --392, --917, -31, -712, --570, -586, --59, -538, --432, --470, -499, --528, --969, -1011, --101, --331, --961, -515, --301, -119, -116, --570, -919, -961, -707, --705, -998, -969, -205, -113, -303, -52, --952, +889, +-23, +-417, +-122, +680, +1363, +729, +-907, +-1263, +-431, +363, +1355, +-566, +-517, +-1186, +1318, +-1104, +-1245, +950, +687, +252, +-270, +1081, +-1290, +656, +8, +60, +1171, +915, +-500, +678, +-953, +307, +-35, +-1334, +-888, +598, +1160, +722, +850, -268, --743, -282, -359, --826, -140, --936, --900, --682, -400, -379, -624, --72, -264, --887, -29, --1005, --97, --168, --769, -719, -450, -178, --37, -783, --857, --237, --409, -845, -914, --877, -175, +988, +635, +-340, +252, +1208, +420, +82, +1283, +-319, +-666, +172, +583, +174, +471, +-1063, +452, +-191, +-1188, +116, +-927, +1086, +119, +-245, -717, +-657, +417, +319, +1133, +1338, +141, +-546, +567, +-1089, +-191, +-1138, +-201, +-1286, +-820, +-1356, +1177, +-317, 191, --713, --365, --672, -775, -516, --656, --506, -989, -573, --59, -523, --392, --374, -891, -408, --115, -488, --3, --401, --2, --102, -809, --284, -833, -237, -60, --77, -294, -431, -940, --462, --309, --988, -331, --197, -614, --829, -1012, -545, --708, -598, -216, -297, -643, --605, -975, --878, -259, -384, -550, --98, -672, --452, -982, --586, --301, -919, --984, --646, --973, -124, -790, -648, --683, -330, --724, -77, -647, -442, -11, --790, -585, -517, -434, --795, +67, +164, +-306, +-1015, +1147, +-482, +1229, +-259, +-207, +1309, +847, +-399, +-1005, +-995, +140, +-567, +-1220, +-427, +180, +-571, +997, +-783, -316, -50, -235, --182, --355, -505, --292, --298, --659, -391, -571, --848, --870, --869, --987, -105, --786, --791, --550, -448, -565, --610, --910, -694, -144, --50, -891, -795, -691, -626, --461, --354, --484, --844, -582, -626, --82, -646, -762, -36, --671, -120, --874, -685, -1017, -722, -11, --477, --19, -283, --980, -976, --341, -59, --495, --679, -887, --890, --167, -633, -412, --225, -114, -238, -754, -685, --522, -565, -983, -159, --678, -202, --811, +-1360, +736, +75, +-1251, +-307, -902, -950, -560, --849, --588, -0, +1181, +1057, +-141, +-1098, +776, +1096, +-923, +914, +1049, +-28, +-742, +-804, +-467, +567, +329, +-309, +-161, +-157, +-430, +-639, +1138, +-165, +292, +-20, +777, +-715, +60, +-1359, +35, +307, +-1092, +271, +548, +822, +-50, +-475, +-103, +784, +537, +152, +-517, +-1097, +117, +-619, +538, +941, +172, +-223, +1161, +-1004, +-1145, +-455, +255, +363, +859, +403, +-861, +-657, +-537, +-1084, +-1042, +541, +1283, +-356, +1298, +-1254, +-303, +203, +104, +1123, +-72, +-171, +-1122, +-533, +440, +275, +613, +-846, +-189, +884, +704, +-570, +-440, +-1157, +-200, +-80, +616, +799, +757, +-264, +-1256, +-690, +152, +184, +-810, +-221, +-821, +-243, +508, +-709, +574, +-693, +315, +-952, +952, +697, +875, +-480, +-691, +422, +-413, +-1199, +441, +-751, +821, +1303, +-410, +416, +566, +-131, +-551, +46, +978, +-228, +1117, +-251, +-537, +874, +-882, +260, +-213, +248, +-1296, +1343, +-626, +-812, +629, +-601, +-378, +-1314, +-889, +774, +-307, +692, +-1125, +-692, +923, +947, +1158, -939, -199, --214, --575, --703, --689, -1019, -799, --478, -435, -499, -686, --1002, -343, --786, -858, -65, -273, -562, --645, -218, --302, -68, --700, --760, --512, --899, --6, -661, --507, -1016, --679, -325, -314, -601, --280, --22, --761, -238, -779, --260, -118, --836, -801, -62, --382, --187, -233, +1284, +35, +1299, +369, +-8, +43, +768, +524, +137, +659, 285, -890, -978, -888, --551, -901, --31, -170, -44, -850, --288, -107, -882, --786, --718, -936, -761, --796, -374, --142, -868, --410, -579, --122, --14, --1018, --858, -419, --393, --508, --396, -454, --857, --576, --147, --222, --90, --263, --358, --810, -178, -737, --966, -40, --246, -683, -916, --843, --633, -849, --101, -744, --375, -181, --314, -372, -58, -404, --428, --894, --743, -694, --293, --128, --604, --734, --228, -325, --1018, --150, +-1315, +-457, +871, +-768, +1107, +-695, +488, +-527, +-161, +414, +-526, +-1164, +1059, +-1108, +560, +-622, +898, +-50, +-286, +-170, +513, +952, +433, +237, +584, +-665, +-960, +585, +-434, +1223, +-130, +1035, +430, 202, --808, --610, -741, --978, -191, --57, -458, --29, -169, -193, --43, -1019, -963, --302, -318, --229, --900, --543, --16, +1312, +1152, +1059, +-1082, +-1295, +805, +-18, +613, +-94, +557, +548, +1354, +116, +289, +-1358, +-1234, +1237, +451, +820, +-102, +974, +832, +-1019, +914, -512, -497, --455, --970, -435, --186, -819, --860, -790, -44, -642, -398, --730, --109, --42, -651, --278, --744, -411, --69, --276, --955, --36, -660, --396, --471, -892, --46, -147, --312, -167, --46, --456, -827, --468, -314, --244, -690, -47, -569, -979, --1005, -689, --748, -629, --896, -13, -674, --814, --520, -479, --691, -704, --153, --553, -146, --757, -547, --133, -597, -730, -394, -368, --544, --222, -884, -860, --459, -502, --648, +-267, +1329, +-910, +-1341, +862, +-381, +-23, +-658, +40, +-71, +-782, +1240, +-956, +1241, +-291, +-884, +1250, +699, +834, +190, +960, +-1260, +177, +464, +155, +-1105, +768, +424, +621, 740, --522, -912, -637, -672, -711, -171, -912, -657, -98, --96, --53, --495, --265, --962, -484, --138, --618, -316, --119, -489, -951, -45, --372, -987, --90, -741, -29, --756, --147, -640, --539, -376, --875, -680, --261, -988, --371, -724, +-1357, +1186, +-594, +1329, +829, +126, +1101, +1146, +-95, +605, +-673, +1334, +440, +-10, +12, +-745, +20, +19, +-793, 999, --101, --617, -397, --1020, -983, -204, -74, --615, -626, -113, --776, -35, -321, -488, --614, --847, --306, --237, -15, -393, --148, -603, -692, --713, -483, --332, --51, --226, -444, --564, --161, -411, -598, --431, +1083, +487, +-657, +-356, +654, +-326, +-250, +-718, +-947, +-235, +558, +974, +-981, +637, +-861, +-768, +1045, -583, -938, --607, -448, -614, --337, --11, --962, -127, -425, --818, --587, -710, --698, -570, --355, --900, -165, --358, -229, -52, -802, --1022, -52, --604, -86, -328, -353, --940, --256, --578, --912, -463, --1006, -777, -255, -515, --899, --34, -975, --30, --97, --815, -316, --923, --324, -728, -722, --99, --86, -687, --636, --535, -761, --759, --723, --850, -23, --16, --608, -242, -736, -368, -916, -892, -215, --785, -597, -587, +-910, +128, +734, +896, +-1156, +223, +284, +272, +634, +-473, +363, +359, +-1185, +14, -33, -382, --147, --352, --537, --738, +-1122, +140, +900, +439, +-944, +-770, +663, +865, +1056, +-238, +86, +-1294, +-44, +-603, +602, +20, +397, +-423, +-703, +-209, +-906, +-1236, +945, +-737, +578, +904, +645, +1225, +-877, +-425, +-493, +-1326, +424, +965, +1300, +-1210, +823, +1345, +626, +-427, +592, +-869, +-1055, +-938, +-427, +1066, 472, --844, -367, -408, --742, -282, -451, -427, --696, -227, -374, -753, --971, -735, --768, -941, -888, --854, -166, --590, --809, --187, -633, --607, -241, -215, --516, --345, --135, --51, -215, --690, --807, --595, -607, --574, --323, --765, --3, --970, --316, -557, -985, -983, --368, --763, --316, -943, -284, +-1055, +48, +-1200, +-349, +313, +-1227, +-228, +783, +839, +187, +1021, +-1355, +1284, +68, +-1321, +-997, +1286, +-887, +772, +-156, +-105, +1329, +1141, +-377, +-881, -341, --24, -892, -335, -498, --241, -982, --619, -560, -541, -267, --458, --264, --661, -476, -695, -142, --306, -157, -451, -180, -408, -576, -179, --56, -546, -409, -965, --73, --140, -903, -984, -146, -890, -461, --173, -21, --286, -561, -949, --653, -1019, --813, -666, --5, -412, --55, -438, --113, -426, +1316, +-391, +-1249, +-205, +53, +-266, +-540, +-289, +-1011, +602, +-1032, +-1097, +-202, +-467, +-1047, +-867, +-340, +-109, +-496, +967, +1147, +108, +384, +-12, +1216, +137, +1318, +151, +219, +-543, +391, +668, +-1348, +-1244, +-810, +-676, +321, +-1258, +1343, +1214, +791, +35, +1219, +1278, +1037, +-1282, +661, +585, +921, +-880, +-989, +-1192, +-207, +273, +-382, +690, +165, +271, +-212, +739, +-343, +-42, +226, +40, +859, +-153, +622, +-1059, }; const int m_exp[] = { -162957, -806616, --3843440, -425896, -2155437, --822680, --787915, -621747, -2923873, -1244247, --97532, -610424, --202711, -3997637, --1726865, -619432, -907569, --1548516, --94406, -1429714, -728504, --1334534, --1711394, --60696, --1270495, -42411, --393126, --1426839, -766595, -196776, --1218293, -805161, -1753338, -19573, -1743399, -1305905, -2305550, -691613, -2936488, --2499956, -2011437, --576528, -4857673, --522113, -1643246, -2107051, -1243612, -1226992, --579490, --2007336, -735201, -215903, --2371734, --604993, --2228234, --2776681, --2711032, --1272536, --2272696, --421571, -1355942, -88773, -2385693, --574961, --2571513, -636093, --458404, -546496, -2480672, -155697, -101546, --1189865, -1932128, -3516193, --155025, -758029, --2133330, -292469, -259193, -1783456, -3153657, --4306725, --1756271, -5321880, -3387043, --2499824, --1354163, -3589105, --822661, --787877, --1296774, --53917, -1000889, --2479239, -522736, -1610045, --1888070, -1262549, -2391084, --2993663, -880432, -2253879, --738882, -2578797, --91861, -3546872, -1784236, --1334715, --370233, -4225505, -523924, --1638264, -496623, --4977506, --932716, -2456108, --1528737, -619156, --1996122, --559761, --3729495, -2583519, --688975, -2327479, -538691, --216394, --624983, -3287485, --948798, -938455, -1079709, -2579776, -560856, -71743, -2473123, --1855915, -982427, --322892, --1051648, -279832, -928945, --563243, -1512085, -2329787, --291655, -219971, -2918255, --418247, -1076304, --260668, -1590893, -96628, -459386, --535583, -20579, --2682940, -250239, --1121829, -4796976, --1449568, --884030, --1012825, --557312, --660713, -2703126, --1000609, -4119713, --2261740, -568061, --807901, -571882, -4117378, --3168209, -1856661, --1360182, --275958, --1371570, -1334388, -1163735, -902800, -1090827, -2127115, -1805917, -1394998, --1897442, --1552564, -4831224, -5873204, -862717, --1328233, --481290, --3881988, -1967283, --3210455, -194601, -3623555, -4233139, --5588664, -460768, --2153116, -1640966, --1574766, -4489450, -2035547, -591125, --112588, --677732, -3516302, --1487398, --1392413, --549940, --122305, -1734974, --1296448, -3345459, -3278967, --403583, --2476952, -3103106, -3668860, -876310, --1372508, -1606576, --1242432, --17363, --536767, --957924, --840288, -1387793, --1263453, --1580935, -1255033, --3199921, --582299, --3536182, -8014, -694206, --868893, --733959, -691991, -1905970, --2105517, --611054, --2008274, -1869390, -781905, -3204537, -846463, -582367, -1557785, -970604, --232359, --2832418, -362033, --287796, --295851, -115014, -2136015, --355990, --3623476, --2897332, -3725302, -243172, --1681724, --385794, -472207, --2443791, -873057, --2272285, --1444140, -127766, --1695914, --2155654, -1292115, -376558, --2959312, --1679103, --1846952, --2678017, --3209721, -4578141, -3381475, --115092, --277905, --1622304, -444339, -31506, --1835191, --1095261, -1184692, --1320035, --768825, --24927, --441171, --2206653, -3016395, -1322957, -2359340, --2045739, --2535559, -2589403, -488750, --352073, --1583926, -2559165, --236263, --2305301, --1143355, --811472, -157863, -2734081, --3540908, --3266165, -3356957, --2546548, -120541, --614357, --321236, --4262586, -3134062, -69010, -1673410, -578416, -1494750, -1401048, -1434942, -2202613, --1168868, -4234494, -1083346, -1136258, -2189311, -2610004, -981866, --1297232, -590461, --1470399, -182048, --987329, --815848, -4511995, -3218281, -1891474, -2139246, --1953818, -760442, -4370650, --155141, -141023, --3911135, -704029, -1270803, --1160789, -639262, --140142, -492202, --3552999, -726790, -730943, -294228, -1626723, --2909194, --54567, -1406030, --511915, -14996, -2901103, -202415, --765411, -3954449, -1634496, -765702, --1670288, --1746308, --236974, -402163, -2225940, --4092672, --487529, -458477, --850359, -2502080, --1833536, --2648383, -469522, --2065549, --1110710, --1161586, --1598119, -312213, --3414626, -2809732, --1270950, -231301, -948652, --5241164, --142131, --101551, --924256, --4661011, -1373376, --384970, --1771026, -2352833, --1508015, --1567875, --77896, --298333, --2109926, -1841301, --1841526, -463269, --1579323, -3378298, --1686942, -2286923, --1725730, -888978, --132747, -1196962, -765073, -2561682, -3394037, -686372, -3609261, -1739268, --1632029, -223041, -7802, -1613144, --1505669, -236211, -2125044, --287008, -1433003, --3433392, -2365446, --1739067, --1742567, -572370, -387905, -137241, --205103, --3092809, -3403304, --626777, -1682114, -208043, --3166100, --494447, --1814690, --1598424, --5459778, -2167916, --1761705, -425344, -1806134, --1823602, --846377, --1890539, --462188, --1485705, -101051, --3918737, -1878057, -527232, --3992037, -1295344, -76046, --3594473, -165856, --209224, -2988651, -1205027, --128456, --688247, --1858378, -1319809, --654178, -1197795, -2203611, -429127, --153254, --1002844, --73001, --777076, -624879, --749349, -517398, -1047706, --483949, -21723, --2834312, -575021, -2162429, -1157482, -251420, -165568, -3589958, -1166415, -971492, --791336, -221991, -1202426, --486702, --2021786, --998812, -1488325, -875139, -2095034, --3432500, --3200858, -708188, --1230553, --1027252, -3204443, -1541304, -1441524, -2393495, -240432, -154630, -711539, -1546622, --3606712, -2329971, -2037395, -488837, --1149213, -1004476, --5353576, --1445258, -1830702, -2334502, --1027586, --786918, --830800, --5014319, -603373, --2356785, -391822, --559514, -832315, -854580, --274568, --852866, --1829693, --224252, --442985, --511368, --2738731, -785781, -1213180, --452741, --1912617, -2501858, -1190107, -374756, -4063611, --3167900, -590894, --843960, --1329399, -1982532, --1501664, --480615, -978312, --776372, --758612, --342051, -1297314, --1330216, -2192151, -514261, -1924564, --1450262, --1368891, -709611, -910433, -10007, -379287, --927492, -2341527, --614574, -213605, -1313660, --511351, -2179833, --3229739, -970187, -24229, --563469, --290337, --1413501, --1110798, -1687978, --1070551, -667748, --378655, -1343272, --1179176, -465076, -1061328, --725446, --632171, --3115122, -126962, -679313, -468649, --54748, --1693703, --1504854, -1706614, -1984152, --147089, --677246, --2363197, --958222, --1058809, -2137431, --1457226, -1613151, --1096760, --62862, --1303936, --470334, --677938, --3350678, -686828, --3218401, --2491773, -823333, --3515802, --521386, --745281, -1801059, --364988, -262475, --1628907, -4610600, --1790296, -1637070, --111930, -695554, -631793, --58009, -879861, --396942, --3491554, --2099070, --1427409, -274894, -3138017, --3984461, --1428478, -1281318, -1326242, --2425032, -3375811, -1883570, -986169, --2026937, -851459, --2948484, -887635, -1664977, --787389, -192262, --199263, -2417949, -1357190, --675828, --2140148, --1992713, --812035, --189832, --1687171, --1455287, --1968142, --95663, -1491237, --97044, --1478691, --818723, -540642, --1935376, --2011417, --1496601, --2432622, --1711594, -1082040, -4280682, --245468, -2632647, --2126102, -4408049, -1347238, -1881351, -2741419, -275662, -39237, --90511, -293945, -1132383, --38055, -1318991, --285413, --1197211, -758713, -5302556, --910446, --1192408, -1951665, -599939, -1684692, --905949, -467600, --1781331, -2472257, --4560636, -2121801, -7702, --953875, -810154, -2235783, --1721404, -1466909, -823131, -257449, --467541, -2196156, -1231438, --1055257, -1235031, --2824591, -1407798, -4017064, -496444, --2144864, -172928, --780962, --1351533, --770027, --2035068, --10361, -2252778, --21797, --3779047, --3409395, -494668, --331048, --331324, --355901, --429937, --109578, -2141215, -3507397, --475137, -1741184, -2711387, -1735523, --546046, --104827, -1803323, --1088839, -10836, --1512582, --1126855, -1130557, --3863013, --1429454, --2311546, -988010, --34163, --2855425, -668343, --504504, --875488, -29458, --86216, -288365, --434627, -3493242, --130938, --1988278, -3075370, -953334, --4261726, -691990, --344124, -1873383, --2948777, --37293, --6201594, -194461, --3063704, -3296851, --361236, -2148972, --1689659, --1587584, --1973610, -136604, -864708, --208814, --5210513, --2382198, --938078, --623312, -2134892, -20690, --328389, -425817, -1494259, -341657, -2041202, -215726, -1999270, -4556161, --1534970, -846236, --1779277, -487163, --2503709, --881316, -641969, --1533604, --1307702, --28391, -2386501, -1889399, --2798701, --1452890, --2458612, -1135665, --822540, --1224665, --3168295, -3202581, --1833843, -2028127, -316317, -2771444, --1969294, --1862180, --1846963, -3288593, --1058949, --4301372, --2270312, --1814302, --2507256, -2304887, --1357358, --398110, -2224556, --3014825, --1386326, -3381979, -1996942, -1199292, -2726576, --2409907, --651850, -619670, --1475982, -2412631, --1348814, --1226204, -39236, -1327167, --1771649, -547246, --147406, -2114780, --861050, --369180, --1802507, --1044212, -1027808, --268747, -898922, --1231614, --2479622, -3128666, -2129144, --2150987, -743, -1381784, -1709971, -3159903, --1724033, -1467305, --1549225, --1149491, --1241667, -1923850, --1031013, --1854871, -5195468, --1312499, --1683183, --2852635, -1375570, --2626830, -252623, --2799957, -416997, --768714, -521710, --1525373, -1399518, -781524, -1078645, -481978, --169425, --595560, --4627513, -1999980, --1414190, --912128, --464019, --1908668, --1299171, -2822564, --3299799, -1134772, --717124, --1175570, -1450585, --1338075, -886999, -352573, -4223081, -247130, -1087502, --1634036, --1292452, -595147, -2611183, --1018214, -3045670, -25600, -527454, --410755, --1575051, --4673725, -2022228, -342427, --411410, --3969320, --1582114, --196149, -417835, --2069373, -1140594, --1982957, --1168881, --1680247, -3341440, --2163154, -644414, -899481, --3068320, -1730507, -2120763, -800244, --1950761, -2797422, -999558, -4224011, -267319, --2575349, -1303602, -3822345, --1179231, --83832, -1094373, --2890364, --2847299, -1097183, -270678, --1041859, --243475, --2372503, --983943, -2643567, --1140781, --1564791, -921293, --2492580, -412995, -3308919, --69183, --1264313, -292080, --1901711, --2160028, --1433855, --1297772, -1209393, --760271, --1505265, --2822187, --750104, -1326341, --2406512, --2811558, -634457, -2153554, -1165807, --1251857, --2639503, --2455102, --397631, -988547, --2515259, -4482079, -763623, -559995, --1070705, --2788379, -545963, --1318607, --896632, +-4942391, +2289133, +-1363225, +1978230, +1580032, +-625813, +-3230128, +2236653, +19494, +3242695, +-1080745, +-34154, +4086860, +-1370876, +3997221, +-1812380, +4705498, +7690207, +-4068140, +3595067, +-1103308, +-939857, +-4249710, +-8650816, +-2013119, +2933624, +235162, +-453807, +-4447391, +3527041, +2046492, +411956, +-994117, +-1411344, +1333704, +-519761, +3026373, +-564969, +3749147, +2447173, +-557628, +1138674, +-1426096, +-4033488, +-1829685, +2815607, +2382958, +1714081, +-1470484, +3379876, +3660759, +-2439960, +-1180478, +-3300785, +-5104533, +-309753, +-1667400, +3258850, +1805449, +2481948, +-944985, +-363123, +4227063, +3022289, +2763211, +5114077, +-1534394, +-2957168, +3401637, +-1195822, +-747480, +-2915318, +-2505013, +-174927, +276733, +2899369, +-6702856, +923396, +-2741169, +4270685, +-1020657, +-2562887, +2074098, +-2382784, +1366504, +691209, +4127820, +400356, +-7415505, +823772, +-3848400, +-158560, +3759990, +2298445, +323394, +873625, +474364, +2617120, +-1382444, +1735284, +-5799715, +1915577, +7016057, +-1212904, +919286, +2949768, +1228832, +572192, +4145710, +-6809520, +-2199597, +677764, +-7169579, +-4904277, +6902014, +231123, +-4797299, +3093608, +989455, +4324476, +3121268, +810907, +-2457323, +2299211, +-1625774, +-141013, +3343022, +-2044657, +4089375, +-291323, +-1950307, +2480885, +2846731, +-2139146, +-2718414, +-1997531, +-2399245, +-4060224, +423228, +-205276, +-1602384, +910872, +-3535114, +6008729, +-559984, +-301205, +-5407307, +2981269, +1079061, +6602535, +-857708, +2756391, +-5304566, +-3769267, +2620777, +-4409088, +502077, +7568647, +-37918, +2315061, +-2540065, +8296540, +-7465282, +1553910, +-4736227, +-2139045, +95614, +342546, +1309722, +1777391, +2981296, +-736899, +-2572111, +-972463, +-2793724, +-2893912, +-1230264, +-871649, +-1439985, +3074445, +3339004, +2423842, +1751086, +4064832, +1550243, +6225792, +-503750, +-2567772, +5671219, +-2054796, +-551487, +-2787790, +-3835027, +-4272806, +2725813, +-2982521, +1803437, +3024675, +-201092, +-1626608, +1548043, +2303810, +3032912, +398283, +1704371, +1860306, +-4101665, +5187913, +4233418, +2054883, +3603470, +1935132, +-17548, +-4362444, +-2806918, +-5651039, +-1853372, +-1707208, +-153048, +-2791834, +402265, +2815962, +3391662, +-4833520, +-1190520, +2302448, +80738, +2089586, +174096, +2837490, +-5514606, +2138871, +336249, +-378675, +5833977, +4367000, +-2445147, +-3652299, +-1794451, +-1471577, +-1263012, +3719274, +-3404819, +5765304, +-4256415, +3558206, +-1884441, +-475244, +3659623, +-2914867, +689238, +-2576754, +7739914, +1823902, +2077002, +-2365242, +2023481, +1663749, +-4973435, +-694558, +1118078, +2260786, +-3256285, +4596746, +-5421599, +594942, +-1730692, +-4626077, +3077882, +-2232009, +2672161, +3135747, +-4602601, +859784, +-3530668, +21600, +-4690786, +2023164, +-496745, +-2728919, +281474, +-108745, +-809613, +1445687, +-5781458, +2097169, +1594266, +-4504019, +2460482, +6259537, +-700848, +413263, +-1212884, +-5695130, +2094147, +-750529, +-1379008, +6029072, +722889, +1719449, +1682336, +-4219755, +1971162, +66575, +-1195119, +141466, +-1083536, +-718558, +-4039954, +-168429, +-2026861, +2025800, +-761083, +-4194692, +2013337, +-1156936, +3823019, +4081732, +-3145845, +-1733615, +-1371947, +-3811245, +-1584663, +-3547009, +-3267886, +8255291, +-3232160, +3404636, +3248369, +3233853, +671601, +-1009897, +1821121, +-3517645, +2005444, +-2768741, +115998, +533867, +4717709, +1315923, +-3510545, +-3539595, +-538461, +4529529, +2792584, +-107486, +-1840413, +-1474849, +1579605, +-4197602, +-34825, +-462678, +1294881, +-1730927, +-2549709, +-1531672, +-271859, +-1181904, +-1680154, +-2321723, +-6641222, +1127764, +893535, +-2804646, +5653509, +2657606, +-1751466, +-4669812, +-827592, +-126901, +-2599752, +-845148, +1390838, +8975481, +-7663778, +3572438, +5920790, +5233883, +-613590, +-881500, +-3974422, +-5523348, +-3243204, +-6405765, +-4376438, +1352634, +-105650, +2650174, +1442151, +5088231, +2974595, +-4501663, +-841006, +-3101819, +-1265401, +-2756903, +2579743, +2045040, +-5328835, +2801176, +-386694, +-3068782, +3147225, +-248211, +-662659, +-1112717, +2733193, +336344, +3107302, +2244003, +4285762, +1998904, +1888720, +-1174981, +-2567532, +-5588952, +-101948, +4004848, +-610048, +793760, +3345423, +716318, +1033698, +4011882, +-965219, +1258434, +1579522, +-4249500, +3233648, +-424838, +2640541, +1020028, +4933599, +-1964947, +3237309, +-1251962, +-437406, +-2749192, +-2943112, +-117113, +778507, +2757711, +3478291, +-661571, +1077087, +-3821174, +2731860, +3035264, +-4424379, +295413, +3873542, +-1272809, +4145370, +-363272, +2240544, +88954, +-2016552, +-862779, +-844808, +3142493, +2019692, +3648148, +3857820, +593190, +1285134, +-4257140, +-1476035, +-1951773, +-2334649, +1355368, +-4390456, +3666652, +562848, +-8226958, +1134896, +1136697, +-2132899, +3300228, +1855661, +6476864, +5097743, +-1373818, +3287769, +1709294, +-2926119, +2463141, +400199, +3051372, +1815531, +1746372, +398117, +2333959, +-708565, +-4241370, +51697, +-1626217, +26865, +2248300, +3357859, +-325912, +194201, +612298, +388227, +256018, +-5630155, +-1085451, +653494, +-1966315, +-273079, +-4296295, +-2813232, +2079672, +2378463, +-3869089, +-438799, +-725265, +3152791, +3461913, +-777750, +47521, +2588203, +1888001, +-4445421, +654349, +811737, +418334, +-1854075, +-5194402, +-1571674, +-622026, +-1091628, +1787463, +3439585, +2923276, +-1997884, +-193963, +-731696, +3686658, +-1311796, +-5219031, +-2906251, +2140229, +-1846978, +2541247, +-3677377, +-3935140, +3605308, +4807232, +-1633864, +344286, +-2051894, +2498349, +-3085, +379207, +-701595, +-1080351, +3161365, +-1606976, +1640595, +3757649, +798095, +-3167055, +-2288739, +2301831, +-3324819, +3219538, +516049, +-3153835, +7342606, +1098913, +-2522436, +376783, +47367, +530901, +-395499, +304200, }; -#define SIZE 32 -__attribute__ ((section(".heapsram"))) int g_mA[SIZE][SIZE]; -__attribute__ ((section(".heapsram"))) int g_mB[SIZE][SIZE]; -__attribute__ ((section(".heapsram"))) int g_mC[SIZE][SIZE]; -__attribute__ ((section(".heapsram"))) int g_mB_tmp[SIZE][SIZE]; +#define SIZE 24 +__attribute__ ((section("__heap_sram"))) int g_mA[SIZE][SIZE]; +__attribute__ ((section("__heap_sram"))) int g_mB[SIZE][SIZE]; +__attribute__ ((section("__heap_sram"))) int g_mC[SIZE][SIZE]; +__attribute__ ((section("__heap_sram"))) int g_mB_tmp[SIZE][SIZE]; From aca6689b980ac46f742fe6ac2cb406b0d45b5b99 Mon Sep 17 00:00:00 2001 From: Yvan Tortorella Date: Mon, 24 Jul 2023 16:28:24 +0200 Subject: [PATCH 03/56] Added cluster index input in timer functions. --- parallel_bare_tests/Dijkstra/Dijkstra.c | 8 ++++---- parallel_bare_tests/LU/LU.c | 8 ++++---- parallel_bare_tests/conv16/conv16.c | 16 ++++++++-------- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/parallel_bare_tests/Dijkstra/Dijkstra.c b/parallel_bare_tests/Dijkstra/Dijkstra.c index a6f6cab..8fe903d 100644 --- a/parallel_bare_tests/Dijkstra/Dijkstra.c +++ b/parallel_bare_tests/Dijkstra/Dijkstra.c @@ -96,8 +96,8 @@ int main() #endif if ( hc == 2 && id == 0 ) { - reset_timer(); - start_timer(); + reset_timer(rt_cluster_id()); + start_timer(rt_cluster_id()); } synch_barrier(); @@ -105,8 +105,8 @@ int main() dijkstra_distance(mind, ohd); if ( hc == 2 && id == 0 ) { - stop_timer(); - time = get_time(); + stop_timer(rt_cluster_id()); + time = get_time(rt_cluster_id()); } #ifdef PROFILE // stop performance counters diff --git a/parallel_bare_tests/LU/LU.c b/parallel_bare_tests/LU/LU.c index 3700837..d6ddc81 100644 --- a/parallel_bare_tests/LU/LU.c +++ b/parallel_bare_tests/LU/LU.c @@ -174,8 +174,8 @@ int main(int argc, char **argv) for(hc = 0; hc < 3; ++hc) { if ( hc == 2 && id == 0 ) { - reset_timer(); - start_timer(); + reset_timer(rt_cluster_id()); + start_timer(rt_cluster_id()); } perf_reset(); perf_start(); @@ -185,8 +185,8 @@ int main(int argc, char **argv) factor(G, N, N, pivots); if ( hc == 2 && id == 0 ) { - stop_timer(); - time = get_time(); + stop_timer(rt_cluster_id()); + time = get_time(rt_cluster_id()); } perf_stop(); diff --git a/parallel_bare_tests/conv16/conv16.c b/parallel_bare_tests/conv16/conv16.c index c4d95a2..38c3a92 100644 --- a/parallel_bare_tests/conv16/conv16.c +++ b/parallel_bare_tests/conv16/conv16.c @@ -89,10 +89,10 @@ int test_singlethread(void (*test)(int16_t *, int16_t *, int16_t *, int, int, in if(rt_core_id() == 0) { load(); - reset_timer(); - start_timer(); + reset_timer(rt_cluster_id()); + start_timer(rt_cluster_id()); test(g_W, g_x, g_y, IH, IW, FH, FW, OH, OW, 1, 0, 0); - stop_timer(); + stop_timer(rt_cluster_id()); #ifdef CHECK_CHECKSUM errors = 0; @@ -110,7 +110,7 @@ int test_singlethread(void (*test)(int16_t *, int16_t *, int16_t *, int, int, in #endif #ifndef PULP_SPI - printf("%s, errors=%d, time=%d\n", str, errors, get_time()); + printf("%s, errors=%d, time=%d\n", str, errors, get_time(rt_cluster_id())); #endif } @@ -129,12 +129,12 @@ int test_multithread(void (*test)(int16_t *, int16_t *, int16_t *, int, int, int synch_barrier(); if(rt_core_id() == 0) { - reset_timer(); - start_timer(); + reset_timer(rt_cluster_id()); + start_timer(rt_cluster_id()); } test(g_W, g_x, g_y, IH, IW, FH, FW, OH, OW, 1, 0, 0); if(rt_core_id() == 0) { - stop_timer(); + stop_timer(rt_cluster_id()); #ifdef CHECK_CHECKSUM errors = 0; @@ -152,7 +152,7 @@ int test_multithread(void (*test)(int16_t *, int16_t *, int16_t *, int, int, int #endif #ifndef PULP_SPI - printf("%s, errors=%d, time=%d\n", str, errors, get_time()); + printf("%s, errors=%d, time=%d\n", str, errors, get_time(rt_cluster_id())); #endif } From 4ef7bbc47cb355dfbdf6ec0db8452eb33acf1323 Mon Sep 17 00:00:00 2001 From: Yvan Tortorella Date: Fri, 11 Aug 2023 18:59:05 +0200 Subject: [PATCH 04/56] Fixed references to code sections. --- parallel_bare_tests/parMatrixMul/parMatrixMul.c | 6 +++--- parallel_bare_tests/parMatrixMul32/gen_stimuli.py | 8 ++++---- parallel_bare_tests/parMatrixMul32/matrixMul.c | 2 +- .../parMatrixMul32/parMatrixMul32_stimuli.h | 8 ++++---- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/parallel_bare_tests/parMatrixMul/parMatrixMul.c b/parallel_bare_tests/parMatrixMul/parMatrixMul.c index 8dce6bb..4ddd6aa 100644 --- a/parallel_bare_tests/parMatrixMul/parMatrixMul.c +++ b/parallel_bare_tests/parMatrixMul/parMatrixMul.c @@ -29,9 +29,9 @@ #define CHKSM 88408 #endif -__attribute__ ((section("__heap_sram"))) int A[SIZE][SIZE]; -__attribute__ ((section("__heap_sram"))) int B[SIZE][SIZE]; -__attribute__ ((section("__heap_sram"))) int C[SIZE][SIZE]; +__attribute__ ((section(".heapsram"))) int A[SIZE][SIZE]; +__attribute__ ((section(".heapsram"))) int B[SIZE][SIZE]; +__attribute__ ((section(".heapsram"))) int C[SIZE][SIZE]; void initialize_mat(); diff --git a/parallel_bare_tests/parMatrixMul32/gen_stimuli.py b/parallel_bare_tests/parMatrixMul32/gen_stimuli.py index 3ce5002..75eef86 100755 --- a/parallel_bare_tests/parMatrixMul32/gen_stimuli.py +++ b/parallel_bare_tests/parMatrixMul32/gen_stimuli.py @@ -47,8 +47,8 @@ def write_arr(f, name, arr): f.write('#define SIZE %d\n' % SIZE) -f.write('__attribute__ ((section("__heap_sram"))) int g_mA[SIZE][SIZE];\n') -f.write('__attribute__ ((section("__heap_sram"))) int g_mB[SIZE][SIZE];\n') -f.write('__attribute__ ((section("__heap_sram"))) int g_mC[SIZE][SIZE];\n') -f.write('__attribute__ ((section("__heap_sram"))) int g_mB_tmp[SIZE][SIZE];\n') +f.write('__attribute__ ((section(".heapsram"))) int g_mA[SIZE][SIZE];\n') +f.write('__attribute__ ((section(".heapsram"))) int g_mB[SIZE][SIZE];\n') +f.write('__attribute__ ((section(".heapsram"))) int g_mC[SIZE][SIZE];\n') +f.write('__attribute__ ((section(".heapsram"))) int g_mB_tmp[SIZE][SIZE];\n') diff --git a/parallel_bare_tests/parMatrixMul32/matrixMul.c b/parallel_bare_tests/parMatrixMul32/matrixMul.c index 3fd64b9..990d411 100644 --- a/parallel_bare_tests/parMatrixMul32/matrixMul.c +++ b/parallel_bare_tests/parMatrixMul32/matrixMul.c @@ -35,7 +35,7 @@ unsigned int num_cores; int main() { - if (rt_cluster_id() != 1) + if (rt_cluster_id() != 0) return bench_cluster_forward(0); num_cores = get_core_num(); diff --git a/parallel_bare_tests/parMatrixMul32/parMatrixMul32_stimuli.h b/parallel_bare_tests/parMatrixMul32/parMatrixMul32_stimuli.h index 9ebc42a..d5c1af0 100644 --- a/parallel_bare_tests/parMatrixMul32/parMatrixMul32_stimuli.h +++ b/parallel_bare_tests/parMatrixMul32/parMatrixMul32_stimuli.h @@ -1736,7 +1736,7 @@ const int m_exp[] = { }; #define SIZE 24 -__attribute__ ((section("__heap_sram"))) int g_mA[SIZE][SIZE]; -__attribute__ ((section("__heap_sram"))) int g_mB[SIZE][SIZE]; -__attribute__ ((section("__heap_sram"))) int g_mC[SIZE][SIZE]; -__attribute__ ((section("__heap_sram"))) int g_mB_tmp[SIZE][SIZE]; +__attribute__ ((section(".heapsram"))) int g_mA[SIZE][SIZE]; +__attribute__ ((section(".heapsram"))) int g_mB[SIZE][SIZE]; +__attribute__ ((section(".heapsram"))) int g_mC[SIZE][SIZE]; +__attribute__ ((section(".heapsram"))) int g_mB_tmp[SIZE][SIZE]; From f844cc4553d3e2c0ee28fc277d1c904b87d28682 Mon Sep 17 00:00:00 2001 From: Yvan Tortorella Date: Sat, 12 Aug 2023 19:04:32 +0200 Subject: [PATCH 05/56] Adapted mchan tests header files to new memory map. --- mchan_tests/testMCHAN_2D_ext_tcdm/mchan_tests.h | 8 ++++---- mchan_tests/testMCHAN_4k_crossing/mchan_tests.h | 8 ++++---- mchan_tests/testMCHAN_TCDM2TCDM_tx_rx/mchan_tests.h | 8 ++++---- mchan_tests/testMCHAN_basic/mchan_tests.h | 8 ++++---- mchan_tests/testMCHAN_basic_8cores/mchan_tests.h | 8 ++++---- mchan_tests/testMCHAN_basic_FC_TCDM/mchan_tests.h | 8 ++++---- mchan_tests/testMCHAN_not_incremental/mchan_tests.h | 8 ++++---- mchan_tests/testMCHAN_pe_basic/mchan_tests.h | 8 ++++---- mchan_tests/testMCHAN_pe_fc_basic/mchan_tests.h | 8 ++++---- mchan_tests/testMCHAN_unaligned/mchan_tests.h | 8 ++++---- 10 files changed, 40 insertions(+), 40 deletions(-) diff --git a/mchan_tests/testMCHAN_2D_ext_tcdm/mchan_tests.h b/mchan_tests/testMCHAN_2D_ext_tcdm/mchan_tests.h index 254df64..3cd8117 100644 --- a/mchan_tests/testMCHAN_2D_ext_tcdm/mchan_tests.h +++ b/mchan_tests/testMCHAN_2D_ext_tcdm/mchan_tests.h @@ -10,14 +10,14 @@ #define LIN 0 #define TWD 1 -#define MCHAN_COMMAND_QUEUE 0x10204400 //0x10201800 -#define MCHAN_STATUS_REGISTER 0x10204404 //0x10201804 +#define MCHAN_COMMAND_QUEUE 0x50204400 //0x10201800 +#define MCHAN_STATUS_REGISTER 0x50204404 //0x10201804 // TEMPORARY FIX DAVIDE #define PLP_DMA_2D_TCDM_BIT 22 -#define PE_MCHAN_COMMAND_QUEUE 0x10201C00 -#define PE_MCHAN_STATUS_REGISTER 0x10201C04 +#define PE_MCHAN_COMMAND_QUEUE 0x50201C00 +#define PE_MCHAN_STATUS_REGISTER 0x50201C04 #define PLP_DMA_TYPE_BIT 0x00000011 #define PLP_DMA_INCR_BIT 0x00000012 diff --git a/mchan_tests/testMCHAN_4k_crossing/mchan_tests.h b/mchan_tests/testMCHAN_4k_crossing/mchan_tests.h index 254df64..3cd8117 100644 --- a/mchan_tests/testMCHAN_4k_crossing/mchan_tests.h +++ b/mchan_tests/testMCHAN_4k_crossing/mchan_tests.h @@ -10,14 +10,14 @@ #define LIN 0 #define TWD 1 -#define MCHAN_COMMAND_QUEUE 0x10204400 //0x10201800 -#define MCHAN_STATUS_REGISTER 0x10204404 //0x10201804 +#define MCHAN_COMMAND_QUEUE 0x50204400 //0x10201800 +#define MCHAN_STATUS_REGISTER 0x50204404 //0x10201804 // TEMPORARY FIX DAVIDE #define PLP_DMA_2D_TCDM_BIT 22 -#define PE_MCHAN_COMMAND_QUEUE 0x10201C00 -#define PE_MCHAN_STATUS_REGISTER 0x10201C04 +#define PE_MCHAN_COMMAND_QUEUE 0x50201C00 +#define PE_MCHAN_STATUS_REGISTER 0x50201C04 #define PLP_DMA_TYPE_BIT 0x00000011 #define PLP_DMA_INCR_BIT 0x00000012 diff --git a/mchan_tests/testMCHAN_TCDM2TCDM_tx_rx/mchan_tests.h b/mchan_tests/testMCHAN_TCDM2TCDM_tx_rx/mchan_tests.h index 254df64..3cd8117 100644 --- a/mchan_tests/testMCHAN_TCDM2TCDM_tx_rx/mchan_tests.h +++ b/mchan_tests/testMCHAN_TCDM2TCDM_tx_rx/mchan_tests.h @@ -10,14 +10,14 @@ #define LIN 0 #define TWD 1 -#define MCHAN_COMMAND_QUEUE 0x10204400 //0x10201800 -#define MCHAN_STATUS_REGISTER 0x10204404 //0x10201804 +#define MCHAN_COMMAND_QUEUE 0x50204400 //0x10201800 +#define MCHAN_STATUS_REGISTER 0x50204404 //0x10201804 // TEMPORARY FIX DAVIDE #define PLP_DMA_2D_TCDM_BIT 22 -#define PE_MCHAN_COMMAND_QUEUE 0x10201C00 -#define PE_MCHAN_STATUS_REGISTER 0x10201C04 +#define PE_MCHAN_COMMAND_QUEUE 0x50201C00 +#define PE_MCHAN_STATUS_REGISTER 0x50201C04 #define PLP_DMA_TYPE_BIT 0x00000011 #define PLP_DMA_INCR_BIT 0x00000012 diff --git a/mchan_tests/testMCHAN_basic/mchan_tests.h b/mchan_tests/testMCHAN_basic/mchan_tests.h index 254df64..3cd8117 100644 --- a/mchan_tests/testMCHAN_basic/mchan_tests.h +++ b/mchan_tests/testMCHAN_basic/mchan_tests.h @@ -10,14 +10,14 @@ #define LIN 0 #define TWD 1 -#define MCHAN_COMMAND_QUEUE 0x10204400 //0x10201800 -#define MCHAN_STATUS_REGISTER 0x10204404 //0x10201804 +#define MCHAN_COMMAND_QUEUE 0x50204400 //0x10201800 +#define MCHAN_STATUS_REGISTER 0x50204404 //0x10201804 // TEMPORARY FIX DAVIDE #define PLP_DMA_2D_TCDM_BIT 22 -#define PE_MCHAN_COMMAND_QUEUE 0x10201C00 -#define PE_MCHAN_STATUS_REGISTER 0x10201C04 +#define PE_MCHAN_COMMAND_QUEUE 0x50201C00 +#define PE_MCHAN_STATUS_REGISTER 0x50201C04 #define PLP_DMA_TYPE_BIT 0x00000011 #define PLP_DMA_INCR_BIT 0x00000012 diff --git a/mchan_tests/testMCHAN_basic_8cores/mchan_tests.h b/mchan_tests/testMCHAN_basic_8cores/mchan_tests.h index 8865d98..28d412a 100755 --- a/mchan_tests/testMCHAN_basic_8cores/mchan_tests.h +++ b/mchan_tests/testMCHAN_basic_8cores/mchan_tests.h @@ -10,14 +10,14 @@ #define LIN 0 #define TWD 1 -#define MCHAN_COMMAND_QUEUE 0x10204400 //0x10201800 -#define MCHAN_STATUS_REGISTER 0x10204404 //0x10201804 +#define MCHAN_COMMAND_QUEUE 0x50204400 //0x10201800 +#define MCHAN_STATUS_REGISTER 0x50204404 //0x10201804 // TEMPORARY FIX DAVIDE #define PLP_DMA_2D_TCDM_BIT 22 -#define PE_MCHAN_COMMAND_QUEUE 0x10201800 //0x10201C00 -#define PE_MCHAN_STATUS_REGISTER 0x10201804 //0x10201C04 +#define PE_MCHAN_COMMAND_QUEUE 0x50201800 //0x10201C00 +#define PE_MCHAN_STATUS_REGISTER 0x50201804 //0x10201C04 #define PLP_DMA_TYPE_BIT 0x00000011 #define PLP_DMA_INCR_BIT 0x00000012 diff --git a/mchan_tests/testMCHAN_basic_FC_TCDM/mchan_tests.h b/mchan_tests/testMCHAN_basic_FC_TCDM/mchan_tests.h index 254df64..3cd8117 100644 --- a/mchan_tests/testMCHAN_basic_FC_TCDM/mchan_tests.h +++ b/mchan_tests/testMCHAN_basic_FC_TCDM/mchan_tests.h @@ -10,14 +10,14 @@ #define LIN 0 #define TWD 1 -#define MCHAN_COMMAND_QUEUE 0x10204400 //0x10201800 -#define MCHAN_STATUS_REGISTER 0x10204404 //0x10201804 +#define MCHAN_COMMAND_QUEUE 0x50204400 //0x10201800 +#define MCHAN_STATUS_REGISTER 0x50204404 //0x10201804 // TEMPORARY FIX DAVIDE #define PLP_DMA_2D_TCDM_BIT 22 -#define PE_MCHAN_COMMAND_QUEUE 0x10201C00 -#define PE_MCHAN_STATUS_REGISTER 0x10201C04 +#define PE_MCHAN_COMMAND_QUEUE 0x50201C00 +#define PE_MCHAN_STATUS_REGISTER 0x50201C04 #define PLP_DMA_TYPE_BIT 0x00000011 #define PLP_DMA_INCR_BIT 0x00000012 diff --git a/mchan_tests/testMCHAN_not_incremental/mchan_tests.h b/mchan_tests/testMCHAN_not_incremental/mchan_tests.h index 254df64..3cd8117 100644 --- a/mchan_tests/testMCHAN_not_incremental/mchan_tests.h +++ b/mchan_tests/testMCHAN_not_incremental/mchan_tests.h @@ -10,14 +10,14 @@ #define LIN 0 #define TWD 1 -#define MCHAN_COMMAND_QUEUE 0x10204400 //0x10201800 -#define MCHAN_STATUS_REGISTER 0x10204404 //0x10201804 +#define MCHAN_COMMAND_QUEUE 0x50204400 //0x10201800 +#define MCHAN_STATUS_REGISTER 0x50204404 //0x10201804 // TEMPORARY FIX DAVIDE #define PLP_DMA_2D_TCDM_BIT 22 -#define PE_MCHAN_COMMAND_QUEUE 0x10201C00 -#define PE_MCHAN_STATUS_REGISTER 0x10201C04 +#define PE_MCHAN_COMMAND_QUEUE 0x50201C00 +#define PE_MCHAN_STATUS_REGISTER 0x50201C04 #define PLP_DMA_TYPE_BIT 0x00000011 #define PLP_DMA_INCR_BIT 0x00000012 diff --git a/mchan_tests/testMCHAN_pe_basic/mchan_tests.h b/mchan_tests/testMCHAN_pe_basic/mchan_tests.h index 254df64..3cd8117 100644 --- a/mchan_tests/testMCHAN_pe_basic/mchan_tests.h +++ b/mchan_tests/testMCHAN_pe_basic/mchan_tests.h @@ -10,14 +10,14 @@ #define LIN 0 #define TWD 1 -#define MCHAN_COMMAND_QUEUE 0x10204400 //0x10201800 -#define MCHAN_STATUS_REGISTER 0x10204404 //0x10201804 +#define MCHAN_COMMAND_QUEUE 0x50204400 //0x10201800 +#define MCHAN_STATUS_REGISTER 0x50204404 //0x10201804 // TEMPORARY FIX DAVIDE #define PLP_DMA_2D_TCDM_BIT 22 -#define PE_MCHAN_COMMAND_QUEUE 0x10201C00 -#define PE_MCHAN_STATUS_REGISTER 0x10201C04 +#define PE_MCHAN_COMMAND_QUEUE 0x50201C00 +#define PE_MCHAN_STATUS_REGISTER 0x50201C04 #define PLP_DMA_TYPE_BIT 0x00000011 #define PLP_DMA_INCR_BIT 0x00000012 diff --git a/mchan_tests/testMCHAN_pe_fc_basic/mchan_tests.h b/mchan_tests/testMCHAN_pe_fc_basic/mchan_tests.h index 254df64..3cd8117 100644 --- a/mchan_tests/testMCHAN_pe_fc_basic/mchan_tests.h +++ b/mchan_tests/testMCHAN_pe_fc_basic/mchan_tests.h @@ -10,14 +10,14 @@ #define LIN 0 #define TWD 1 -#define MCHAN_COMMAND_QUEUE 0x10204400 //0x10201800 -#define MCHAN_STATUS_REGISTER 0x10204404 //0x10201804 +#define MCHAN_COMMAND_QUEUE 0x50204400 //0x10201800 +#define MCHAN_STATUS_REGISTER 0x50204404 //0x10201804 // TEMPORARY FIX DAVIDE #define PLP_DMA_2D_TCDM_BIT 22 -#define PE_MCHAN_COMMAND_QUEUE 0x10201C00 -#define PE_MCHAN_STATUS_REGISTER 0x10201C04 +#define PE_MCHAN_COMMAND_QUEUE 0x50201C00 +#define PE_MCHAN_STATUS_REGISTER 0x50201C04 #define PLP_DMA_TYPE_BIT 0x00000011 #define PLP_DMA_INCR_BIT 0x00000012 diff --git a/mchan_tests/testMCHAN_unaligned/mchan_tests.h b/mchan_tests/testMCHAN_unaligned/mchan_tests.h index 254df64..3cd8117 100644 --- a/mchan_tests/testMCHAN_unaligned/mchan_tests.h +++ b/mchan_tests/testMCHAN_unaligned/mchan_tests.h @@ -10,14 +10,14 @@ #define LIN 0 #define TWD 1 -#define MCHAN_COMMAND_QUEUE 0x10204400 //0x10201800 -#define MCHAN_STATUS_REGISTER 0x10204404 //0x10201804 +#define MCHAN_COMMAND_QUEUE 0x50204400 //0x10201800 +#define MCHAN_STATUS_REGISTER 0x50204404 //0x10201804 // TEMPORARY FIX DAVIDE #define PLP_DMA_2D_TCDM_BIT 22 -#define PE_MCHAN_COMMAND_QUEUE 0x10201C00 -#define PE_MCHAN_STATUS_REGISTER 0x10201C04 +#define PE_MCHAN_COMMAND_QUEUE 0x50201C00 +#define PE_MCHAN_STATUS_REGISTER 0x50201C04 #define PLP_DMA_TYPE_BIT 0x00000011 #define PLP_DMA_INCR_BIT 0x00000012 From ffbb2639592b3a5bcc77d28f199c535275d123ce Mon Sep 17 00:00:00 2001 From: Yvan Tortorella Date: Sun, 13 Aug 2023 09:01:48 +0200 Subject: [PATCH 06/56] Removed some mchan tests from pulp_cluster-mchan-tests.yaml because CI takes too long. --- pulp_cluster-mchan-tests.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pulp_cluster-mchan-tests.yaml b/pulp_cluster-mchan-tests.yaml index c5a68ab..88d5610 100644 --- a/pulp_cluster-mchan-tests.yaml +++ b/pulp_cluster-mchan-tests.yaml @@ -1,13 +1,13 @@ mchan_tests: testMCHAN_2D_ext_tcdm: path: ./mchan_tests/testMCHAN_2D_ext_tcdm - command: make clean all run + command: testMCHAN_basic: path: ./mchan_tests/testMCHAN_basic command: make clean all run testMCHAN_multi_trans: path: ./mchan_tests/testMCHAN_multi_trans - command: make clean all run + command: testMCHAN_pe_basic: path: ./mchan_tests/testMCHAN_pe_basic command: make clean all run @@ -16,10 +16,10 @@ mchan_tests: command: make clean all run testMCHAN_4k_crossing: path: ./mchan_tests/testMCHAN_4k_crossing - command: make clean all run + command: testMCHAN_basic_FC_TCDM: path: ./mchan_tests/testMCHAN_basic_FC_TCDM - command: make clean all run + command: testMCHAN_not_incremental: path: ./mchan_tests/testMCHAN_not_incremental command: make clean all run From 1fc2c426af1ed50c218f065ee1513233d2e391e0 Mon Sep 17 00:00:00 2001 From: Yvan Tortorella Date: Sat, 9 Sep 2023 20:06:21 +0200 Subject: [PATCH 07/56] Added RedMulE test. --- redmule/Makefile | 5 + redmule/archi_redmule.h | 145 ++ redmule/hal_redmule.h | 284 ++ redmule/inc/golden.h | 4611 +++++++++++++++++++++++++++++++++ redmule/inc/tensor_dim.h | 13 + redmule/inc/w_2D.h | 99 + redmule/inc/w_input.h | 99 + redmule/inc/x_2D.h | 99 + redmule/inc/x_input.h | 99 + redmule/inc/y_2D.h | 99 + redmule/inc/y_input.h | 99 + redmule/inc/z_2D.h | 99 + redmule/inc/z_output.h | 99 + redmule/redmule.c | 91 + redmule/utils/redmule_utils.h | 246 ++ 15 files changed, 6187 insertions(+) create mode 100644 redmule/Makefile create mode 100644 redmule/archi_redmule.h create mode 100644 redmule/hal_redmule.h create mode 100644 redmule/inc/golden.h create mode 100644 redmule/inc/tensor_dim.h create mode 100644 redmule/inc/w_2D.h create mode 100644 redmule/inc/w_input.h create mode 100644 redmule/inc/x_2D.h create mode 100644 redmule/inc/x_input.h create mode 100644 redmule/inc/y_2D.h create mode 100644 redmule/inc/y_input.h create mode 100644 redmule/inc/z_2D.h create mode 100644 redmule/inc/z_output.h create mode 100644 redmule/redmule.c create mode 100644 redmule/utils/redmule_utils.h diff --git a/redmule/Makefile b/redmule/Makefile new file mode 100644 index 0000000..ce481f9 --- /dev/null +++ b/redmule/Makefile @@ -0,0 +1,5 @@ +PULP_APP = test +PULP_APP_SRCS = redmule.c +PULP_CFLAGS = -O3 + +include $(PULP_SDK_HOME)/install/rules/pulp_rt.mk diff --git a/redmule/archi_redmule.h b/redmule/archi_redmule.h new file mode 100644 index 0000000..956c190 --- /dev/null +++ b/redmule/archi_redmule.h @@ -0,0 +1,145 @@ +/* + * Copyright (C) 2022-2023 ETH Zurich and University of Bologna + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * SPDX-License-Identifier: Apache-2.0 + * + * Author: Yvan Tortorella + * + * High-level architecture of RedMulE + * + */ + +#ifndef __ARCHI_REDMULE_H__ +#define __ARCHI_REDMULE_H__ + +/* + * |========================================================================| + * || || + * ||Control and generic configuration register layout || + * |========================================================================| + * || # reg | offset | bits | bitmask || content || + * ||-------+----------+---------+--------------++-------------------------|| + * || 0 | 0x0000 | 31: 0 | 0xFFFFFFFF || TRIGGER || + * || 1 | 0x0004 | 31: 0 | 0xFFFFFFFF || ACQUIRE || + * || 2 | 0x0008 | 31: 0 | 0xFFFFFFFF || EVT_ENABLE || + * || 3 | 0x000c | 31: 0 | 0xFFFFFFFF || STATUS || + * || 4 | 0x0010 | 31: 0 | 0xFFFFFFFF || RUNNING_JOB || + * || 5 | 0x0014 | 31: 0 | 0xFFFFFFFF || SOFT_CLEAR || + * |========================================================================| + * || || + * ||Job-dependent registers layout || + * |========================================================================| + * || # reg | offset | bits | bitmask || content || + * ||-------+----------+---------+--------------++-------------------------|| + * || 0 | 0x0040 | 31: 0 | 0xFFFFFFFF || X_ADDR || + * ||-------+----------+---------+--------------++-------------------------|| + * || 1 | 0x0044 | 31: 0 | 0xFFFFFFFF || W_ADDR || + * ||-------+----------+---------+--------------++-------------------------|| + * || 2 | 0x0048 | 31: 0 | 0xFFFFFFFF || Z_ADDR || + * ||-------+----------+---------+--------------++-------------------------|| + * || 3 | 0x004C | | || Matrix Config 0 Reg || + * || | | 31:16 | 0xFFFF0000 || K Size (W Columns) || + * || | | 15: 0 | 0x0000FFFF || M Size (X Rows) || + * ||-------+----------+---------+--------------++-------------------------|| + * || 4 | 0x0050 | | || Matrix Config 1 Reg || + * || | | 31:16 | 0xFFFFFFFF || N Size (X Cols/W Rows) || + * ||-------+----------+---------+--------------++-------------------------|| + * || 5 | 0x0054 | | || Matrix Arithmetic Reg || + * || | | 12:10 | 0x00001C00 || Operation selection || + * || | | 9: 7 | 0x00000380 || Input/Output format || + * |========================================================================| + * + */ + +#define ARCHI_CL_EVT_ACC0 12 +#define ARCHI_CL_EVT_ACC1 13 +#define __builtin_bitinsert(a,b,c,d) (a | (((b << (32-c)) >> (32-c)) << d)) + +// RedMulE architecture +#define ADDR_WIDTH 32 +#define DATA_WIDTH 256 +#define REDMULE_FMT 16 +#define ARRAY_HEIGHT 4 +#define PIPE_REGS 3 +#define ARRAY_WIDTH 12 /* Superior limit is ARRAY_HEIGHT*PIPE_REGS */ + +// Base address +#define REDMULE_BASE_ADD 0x50201000 + +// Commands +#define REDMULE_TRIGGER 0x00 +#define REDMULE_ACQUIRE 0x04 +#define REDMULE_FINISHED 0x08 +#define REDMULE_STATUS 0x0C +#define REDMULE_RUNNING_JOB 0x10 +#define REDMULE_SOFT_CLEAR 0x14 + +// Registers +#define REDMULE_REG_OFFS 0x40 +// #define REDMULE_REG_X_PTR 0x00 +// #define REDMULE_REG_W_PTR 0x04 +// #define REDMULE_REG_Z_PTR 0x08 +// #define REDMULE_MCFG0_PTR 0x0C +// #define REDMULE_MCFG1_PTR 0x10 +// #define REDMULE_ARITH_PTR 0x14 +#define REDMULE_REG_X_PTR 0x00 +#define REDMULE_REG_W_PTR 0x04 +#define REDMULE_REG_Y_PTR 0x08 +#define REDMULE_REG_Z_PTR 0x0C +#define REDMULE_REG_X_ITER_PTR 0x10 +#define REDMULE_REG_W_ITER_PTR 0x14 +#define REDMULE_REG_LEFTOVERS_PTR 0x18 +#define REDMULE_REG_LEFT_PARAMS_PTR 0x1C +#define REDMULE_REG_X_D1_STRIDE_PTR 0x20 +#define REDMULE_REG_W_TOT_LEN_PTR 0x24 +#define REDMULE_REG_TOT_X_READ_PTR 0x28 +#define REDMULE_REG_W_D0_STRIDE_PTR 0x2C +#define REDMULE_REG_YZ_TOT_LEN_PTR 0x30 +#define REDMULE_REG_YZ_D0_STRIDE_PTR 0x34 +#define REDMULE_REG_YZ_D2_STRIDE_PTR 0x38 +#define REDMULE_REG_X_ROWS_OFFS_PTR 0x3C +#define REDMULE_REG_X_BUFFER_SLOTS_PTR 0x40 +#define REDMULE_REG_X_TOT_LEN_PTR 0x44 +#define REDMULE_REG_OP_SELECTION 0x48 + +// OPs definition +#define MATMUL 0x0 +#define GEMM 0x1 +#define ADDMAX 0x2 +#define ADDMIN 0x3 +#define MULMAX 0x4 +#define MULMIN 0x5 +#define MAXMIN 0x6 +#define MINMAX 0x7 + +// GEMM formats +#define Float8 0x0 +#define Float16 0x1 +#define Float8Alt 0x2 +#define Float16Alt 0x3 + +#define RNE 0x0 +#define RTZ 0x1 +#define OP_FMADD 0x3 +#define OP_ADD 0x5 +#define OP_MUL 0x6 +#define OP_MINMAX 0xA + +// FP Formats encoding +#define FP16 0x2 +#define FP8 0x3 +#define FP16ALT 0x4 +#define FP8ALT 0x5 + +#endif diff --git a/redmule/hal_redmule.h b/redmule/hal_redmule.h new file mode 100644 index 0000000..b4595e0 --- /dev/null +++ b/redmule/hal_redmule.h @@ -0,0 +1,284 @@ +/* + * Copyright (C) 2022-2023 ETH Zurich and University of Bologna + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * SPDX-License-Identifier: Apache-2.0 + * + * Author: Yvan Tortorella + * + * RedMulE Hardware Abstraction Layer (HAL) + */ + +#ifndef __HAL_REDMULE_H__ +#define __HAL_REDMULE_H__ + +#include +#include "inc/tensor_dim.h" + +/* + * + * For control, generic configuration register layout, + * and job-dependent register map, look at redmule_archi.h + * + */ + +/* LOW-LEVEL HAL */ +#define CLUST_CTRL_BASE 0x50200000 +#define REDMULE_ADDR_BASE 0x50201000 +#define REDMULE_ADDR_SPACE 0x00000100 + +#define CLUST_CTRL_HWPE_EN 0x18 +#define CLUS_CTRL_REDMULE_CG_EN_MASK 0x800 + +// For all the following functions we use __builtin_pulp_OffsetedWrite and __builtin_pulp_OffsetedRead +// instead of classic load/store because otherwise the compiler is not able to correctly factorize +// the HWPE base in case several accesses are done, ending up with twice more code + +#define HWPE_WRITE(value, offset) *(int *)(REDMULE_ADDR_BASE + offset) = value +#define HWPE_READ(offset) *(int *)(REDMULE_ADDR_BASE + offset) + +static inline void redmule_x_add_set (unsigned int value) { + HWPE_WRITE(value, REDMULE_REG_OFFS + REDMULE_REG_X_PTR); +} + +static inline void redmule_w_add_set (unsigned int value) { + HWPE_WRITE(value, REDMULE_REG_OFFS + REDMULE_REG_W_PTR); +} + +static inline void redmule_y_add_set (unsigned int value) { + HWPE_WRITE(value, REDMULE_REG_OFFS + REDMULE_REG_Y_PTR); +} + +static inline void redmule_z_add_set (unsigned int value) { + HWPE_WRITE(value, REDMULE_REG_OFFS + REDMULE_REG_Z_PTR); +} + +// static inline void redmule_mcfg_set (uint32_t mcfg0, uint32_t mcfg1) { +// HWPE_WRITE(mcfg0, REDMULE_REG_OFFS + REDMULE_MCFG0_PTR); +// HWPE_WRITE(mcfg1, REDMULE_REG_OFFS + REDMULE_MCFG1_PTR); +// } +// +// static inline void redmule_arith_set (uint32_t arith) { +// HWPE_WRITE(arith, REDMULE_REG_OFFS + REDMULE_ARITH_PTR); +// } + +static inline void hwpe_trigger_job() { + HWPE_WRITE(0, REDMULE_TRIGGER); +} + +static inline int hwpe_acquire_job() { + return HWPE_READ(REDMULE_ACQUIRE); +} + +static inline unsigned int hwpe_get_status() { + return HWPE_READ(REDMULE_STATUS); +} + +static inline void hwpe_soft_clear() { + HWPE_WRITE(1, REDMULE_SOFT_CLEAR); +} + +static inline void hwpe_cg_enable() { + *(volatile int*) (CLUST_CTRL_BASE + CLUST_CTRL_HWPE_EN) |= CLUS_CTRL_REDMULE_CG_EN_MASK; +} + +static inline void hwpe_cg_disable() { + *(volatile int*) (CLUST_CTRL_BASE + CLUST_CTRL_HWPE_EN) &= ~CLUS_CTRL_REDMULE_CG_EN_MASK; +} + +static inline void redmule_evt_wait() { + do { + eu_evt_maskWaitAndClr (1 << ARCHI_CL_EVT_ACC0); + } while((*(int volatile *)(REDMULE_ADDR_BASE + REDMULE_STATUS)) != 0); +} + +// void redmule_cfg (unsigned int x, unsigned int w, unsigned int z, +// uint16_t m_size, uint16_t n_size, uint16_t k_size, +// uint8_t gemm_op, uint8_t gemm_fmt){ +// +// uint32_t mcfg_reg0 = 0; +// uint32_t mcfg_reg1 = 0; +// uint32_t arith_reg = 0; +// +// mcfg_reg0 = (k_size << 16) | +// (m_size << 0); +// mcfg_reg1 = n_size << 0; +// +// arith_reg = (gemm_op << 10) | +// (gemm_fmt << 7); +// +// redmule_x_add_set ((unsigned int) x); +// redmule_w_add_set ((unsigned int) w); +// redmule_z_add_set ((unsigned int) z); +// redmule_mcfg_set ((unsigned int) mcfg_reg0, +// (unsigned int) mcfg_reg1); +// redmule_arith_set ((unsigned int) arith_reg); +// +// } + +void redmule_cfg (uint16_t m_size, uint16_t n_size, uint16_t k_size, uint8_t gemm_ops){ + uint32_t x_iters = 0; + uint32_t w_iters = 0; + uint32_t leftovers = 0; + uint32_t left_params = 0; + uint32_t x_d1_stride = 0; + uint32_t x_rows_offs = 0; + uint32_t w_tot_len = 0; + uint32_t w_d1_len = 0; + uint32_t w_d0_stride = 0; + uint32_t yz_tot_len = 0; + uint32_t yz_d0_stride = 0; + uint32_t yz_d2_stride = 0; + uint32_t tot_x_read = 0; + uint32_t x_buffer_slots = 0; + uint32_t op_selection = 0; + uint16_t tot_stores = 0; + uint16_t w_rows = n_size; + uint16_t depth = DATA_WIDTH/(ARRAY_HEIGHT*FPFORMAT); + uint8_t tile = ARRAY_HEIGHT*(PIPE_REGS + 1); + _Bool x_rows_sub = 0; + _Bool x_cols_sub = 0; + _Bool w_cols_sub = 0; + uint16_t x_rows_iter, + x_rows_iter_tmp, + w_rows_iter, + w_rows_iter_tmp; + uint16_t x_cols_iter, + x_cols_iter_tmp, + w_cols_iter, + w_cols_iter_tmp; + uint8_t x_rows_lftovr, + x_cols_lftovr, + w_rows_lftovr, + w_cols_lftovr, + slots; + + // Calculating the number of iterations alng the two dimensions of the X matrix + x_rows_iter_tmp = m_size/ARRAY_WIDTH; + x_cols_iter_tmp = n_size/tile; + + // Calculating the number of iterations alng the two dimensions of the W matrix + w_rows_iter_tmp = w_rows; + w_cols_iter_tmp = k_size/tile; + + // Calculating the residuals along the input dimensions + x_rows_lftovr = m_size - (x_rows_iter_tmp*ARRAY_WIDTH); + x_cols_lftovr = n_size - (x_cols_iter_tmp*tile); + + // Calculating the residuals along the weight dimensions + w_rows_lftovr = n_size - (ARRAY_HEIGHT*(w_rows/ARRAY_HEIGHT)); + w_cols_lftovr = k_size - (w_cols_iter_tmp*tile); + + if (w_cols_lftovr != 0) + w_cols_iter = w_cols_iter_tmp + 1; + else + w_cols_iter = w_cols_iter_tmp; + + if (w_rows_lftovr != 0) + w_rows_iter = w_rows_iter_tmp + ARRAY_HEIGHT - w_rows_lftovr; + else + w_rows_iter = w_rows_iter_tmp; + + if (x_cols_lftovr != 0) + x_cols_iter = x_cols_iter_tmp + 1; + else + x_cols_iter = x_cols_iter_tmp; + + if (x_rows_lftovr != 0) + x_rows_iter = x_rows_iter_tmp + 1; + else + x_rows_iter = x_rows_iter_tmp; + + if (x_cols_lftovr%depth != 0) + x_buffer_slots = x_cols_lftovr/depth + 1; + else + x_buffer_slots = x_cols_lftovr/depth; + + // Calculating the number of total stores + tot_stores = x_rows_iter*w_cols_iter; + + // Determining if input matrixes are sub-matrixes + if (m_size < ARRAY_WIDTH) + x_rows_sub = 1; + if (n_size < ARRAY_HEIGHT) + x_cols_sub = 1; + if (k_size < tile) + w_cols_sub = 1; + + // Operation selection + switch (gemm_ops) { + case MATMUL: + op_selection |= (RNE << 29 | RNE << 26 | OP_FMADD << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 0; + break; + + case GEMM: + op_selection |= (RNE << 29 | RNE << 26 | OP_FMADD << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; + break; + + case ADDMAX: + op_selection |= (RNE << 29 | RTZ << 26 | OP_ADD << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; + break; + + case ADDMIN: + op_selection |= (RNE << 29 | RNE << 26 | OP_ADD << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; + break; + + case MULMAX: + op_selection |= (RNE << 29 | RTZ << 26 | OP_MUL << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; + break; + + case MULMIN: + op_selection |= (RNE << 29 | RNE << 26 | OP_MUL << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; + break; + + case MAXMIN: + op_selection |= (RTZ << 29 | RNE << 26 | OP_MINMAX << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; + break; + + case MINMAX: + op_selection |= (RNE << 29 | RTZ << 26 | OP_MINMAX << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; + break; + } + + // Storing iterations and residuals in registers + x_iters |= x_rows_iter << 16 | x_cols_iter << 0; + w_iters |= w_rows_iter << 16 | w_cols_iter << 0; + leftovers |= x_rows_lftovr << 24 | x_cols_lftovr << 16 | w_rows_lftovr << 8 | w_cols_lftovr << 0; + left_params |= tot_stores << 16 | x_rows_sub << 15 | x_cols_sub << 14 | w_cols_sub << 13; + x_d1_stride = ((4*FPFORMAT)/ADDR_WIDTH)*(((DATA_WIDTH/FPFORMAT)*x_cols_iter_tmp) + x_cols_lftovr); + x_rows_offs = ARRAY_WIDTH*x_d1_stride; + w_tot_len = w_rows_iter*w_cols_iter*x_rows_iter; + w_d0_stride = ((4*FPFORMAT)/ADDR_WIDTH)*(((DATA_WIDTH/FPFORMAT)*w_cols_iter_tmp) + w_cols_lftovr); + yz_tot_len = ARRAY_WIDTH*x_rows_iter*w_cols_iter; + yz_d0_stride = w_d0_stride; + yz_d2_stride = ARRAY_WIDTH*w_d0_stride; + tot_x_read = x_rows_iter*x_cols_iter*w_cols_iter; + + // Writing the computations in configuration register + HWPE_WRITE(x_iters , REDMULE_REG_OFFS + REDMULE_REG_X_ITER_PTR ); + HWPE_WRITE(w_iters , REDMULE_REG_OFFS + REDMULE_REG_W_ITER_PTR ); + HWPE_WRITE(leftovers , REDMULE_REG_OFFS + REDMULE_REG_LEFTOVERS_PTR ); + HWPE_WRITE(left_params , REDMULE_REG_OFFS + REDMULE_REG_LEFT_PARAMS_PTR ); + HWPE_WRITE(x_d1_stride , REDMULE_REG_OFFS + REDMULE_REG_X_D1_STRIDE_PTR ); + HWPE_WRITE(x_rows_offs , REDMULE_REG_OFFS + REDMULE_REG_X_ROWS_OFFS_PTR ); + HWPE_WRITE(tot_x_read , REDMULE_REG_OFFS + REDMULE_REG_TOT_X_READ_PTR ); + HWPE_WRITE(x_buffer_slots, REDMULE_REG_OFFS + REDMULE_REG_X_BUFFER_SLOTS_PTR ); + HWPE_WRITE(w_tot_len , REDMULE_REG_OFFS + REDMULE_REG_W_TOT_LEN_PTR ); + HWPE_WRITE(w_d0_stride , REDMULE_REG_OFFS + REDMULE_REG_W_D0_STRIDE_PTR ); + HWPE_WRITE(yz_tot_len , REDMULE_REG_OFFS + REDMULE_REG_YZ_TOT_LEN_PTR ); + HWPE_WRITE(yz_d0_stride , REDMULE_REG_OFFS + REDMULE_REG_YZ_D0_STRIDE_PTR ); + HWPE_WRITE(yz_d2_stride , REDMULE_REG_OFFS + REDMULE_REG_YZ_D2_STRIDE_PTR ); + HWPE_WRITE(op_selection , REDMULE_REG_OFFS + REDMULE_REG_OP_SELECTION ); +} + +#endif diff --git a/redmule/inc/golden.h b/redmule/inc/golden.h new file mode 100644 index 0000000..3e6ba0d --- /dev/null +++ b/redmule/inc/golden.h @@ -0,0 +1,4611 @@ + /* Header file generated by RedMulE Golden Model */ +uint32_t golden [4608] = { +0x4e0e4e2d, +0x4de54dda, +0x4dbc4e0e, +0x4ed64e3f, +0x4eef4dce, +0x4e554dfc, +0x4d964e2f, +0x4d8a4ddd, +0x4dc24e4c, +0x4daa4d63, +0x4d894e0a, +0x4d7d4dff, +0x4e074d9e, +0x4d684ded, +0x4ea94e69, +0x4e134e7b, +0x4e134e22, +0x4dd64e34, +0x4db64db5, +0x4dfd4d9c, +0x4e0f4e51, +0x4e464d92, +0x4e974db8, +0x4dcb4d14, +0x4d8e4e6a, +0x4dee4eb5, +0x4e1c4d95, +0x4e1e4dcb, +0x4d5d4dff, +0x4dde4d53, +0x4ea44dda, +0x4e1d4d1c, +0x4dad4d30, +0x4e044e27, +0x4ebb4e55, +0x4daa4e47, +0x4dd84ddf, +0x4db04e3a, +0x4e1c4dc0, +0x4e334dc1, +0x4dcd4e2b, +0x4ebe4da2, +0x4da94d64, +0x4d804e7f, +0x4e9b4e14, +0x4e854d7e, +0x4e6e4e6d, +0x4def4e1e, +0x4d5f4def, +0x4daa4e1d, +0x4dc04e29, +0x4f014e5f, +0x4f334dcf, +0x4e864dcf, +0x4dfd4ecf, +0x4d924deb, +0x4e294eda, +0x4e354dae, +0x4da94e49, +0x4d7d4e33, +0x4e284e23, +0x4e124dc0, +0x4eda4e62, +0x4e434e71, +0x4df34e2d, +0x4e0d4e69, +0x4dbd4df7, +0x4da34dbc, +0x4e3c4d9d, +0x4ebb4e01, +0x4e354dd5, +0x4de44d3f, +0x4dc44efa, +0x4dac4ee3, +0x4da34d93, +0x4dee4da1, +0x4db04e9a, +0x4e994db0, +0x4eaf4dfe, +0x4e354d59, +0x4de74dee, +0x4e5d4e60, +0x4eb14ec7, +0x4de04e59, +0x4df54e35, +0x4df14df4, +0x4e274df4, +0x4e4b4dd5, +0x4da14e87, +0x4eb64dbc, +0x4e4f4d77, +0x4d774e04, +0x4ede4e43, +0x4e384df7, +0x4e434e81, +0x4e014e43, +0x4dbc4d9d, +0x4e2f4e1d, +0x4ddf4e69, +0x4f1f4e62, +0x4f0c4dbd, +0x4da74d88, +0x4dfa4f23, +0x4de94e2e, +0x4de44e67, +0x4ded4da6, +0x4d1b4e28, +0x4dbb4e1d, +0x4e1c4dea, +0x4ddc4e67, +0x4e7d4de6, +0x4e1c4e2c, +0x4def4e41, +0x4ddc4e14, +0x4cfa4dc3, +0x4db04dac, +0x4df64e84, +0x4e5a4d77, +0x4ea74dd5, +0x4da64d34, +0x4dca4eb7, +0x4dcb4e9c, +0x4dd74d04, +0x4e294dcd, +0x4d804df3, +0x4e3d4dc5, +0x4e424dd1, +0x4e544d76, +0x4db34d5a, +0x4de84e0a, +0x4e8e4ea2, +0x4e434dd8, +0x4d9b4e16, +0x4e394e8b, +0x4dfa4e02, +0x4e074de8, +0x4dd44ddd, +0x4e054d3f, +0x4e334dac, +0x4d4c4e61, +0x4e634e0b, +0x4e374ddd, +0x4e474e7d, +0x4db94dbd, +0x4e324db6, +0x4e334e87, +0x4e2b4e43, +0x4f284e79, +0x4edc4de8, +0x4e944e5e, +0x4e184f32, +0x4e774dbc, +0x4e8c4ea9, +0x4ea94daa, +0x4e204e43, +0x4da84e3c, +0x4e1b4eb0, +0x4e324e7a, +0x4eb24eb8, +0x4e8b4ea5, +0x4de94e7f, +0x4df54ee2, +0x4e5c4e01, +0x4dee4dbb, +0x4e654e41, +0x4ef54e2d, +0x4e784e84, +0x4e324de8, +0x4dea4ee1, +0x4def4ef6, +0x4e4f4da8, +0x4e764dd0, +0x4def4e84, +0x4e534d88, +0x4f794e34, +0x4ea14db4, +0x4dee4dc1, +0x4ec44e44, +0x4e824ed6, +0x4df44e5e, +0x4e454ec3, +0x4e164ea1, +0x4e6f4e00, +0x4e804e50, +0x4df74e9c, +0x4edf4e1c, +0x4e274dcb, +0x4d784e39, +0x4ec74e1c, +0x4e814e37, +0x4e4b4e8f, +0x4dfa4e45, +0x4e3d4e2a, +0x4df54e3d, +0x4def4e3a, +0x4ed64e2f, +0x4ef34db3, +0x4e8e4e5a, +0x4db64f50, +0x4e344e46, +0x4e1b4ec9, +0x4e804dd6, +0x4d994e1f, +0x4e524e76, +0x4e8d4e8a, +0x4dc14e5b, +0x4efc4eaf, +0x4e524ebb, +0x4df44e78, +0x4df14e78, +0x4dd44dfa, +0x4e484d47, +0x4e204e04, +0x4ebb4ddd, +0x4eca4e44, +0x4dec4d9b, +0x4e124e9c, +0x4dfd4ec7, +0x4e464d6c, +0x4e374dc0, +0x4dbc4e59, +0x4e404d8b, +0x4ef84e31, +0x4de84de1, +0x4dd24d97, +0x4e1c4ea0, +0x4eb44e3a, +0x4e414dd5, +0x4dbc4e5d, +0x4e554e1d, +0x4dfc4e77, +0x4e224e4b, +0x4d6d4ebe, +0x4e2a4dad, +0x4e564dd3, +0x4d2e4e3a, +0x4e954e42, +0x4e3b4dce, +0x4e464eef, +0x4df84ded, +0x4d7b4d39, +0x4cfa4da0, +0x4d164d82, +0x4e324d98, +0x4e4a4ce2, +0x4d644d6a, +0x4d474e27, +0x4d164d4c, +0x4d494d7c, +0x4d3e4d0d, +0x4d124d83, +0x4cbe4d19, +0x4d834d0f, +0x4cdb4d65, +0x4ded4d3d, +0x4d5b4dff, +0x4d704d74, +0x4ccd4df1, +0x4d164d49, +0x4d2f4cc3, +0x4d854d25, +0x4dc34d31, +0x4dcb4d5b, +0x4d514cb3, +0x4d294d98, +0x4cc14dc9, +0x4d904cd1, +0x4d594cd3, +0x4cf74d5e, +0x4dae4cda, +0x4e134d8f, +0x4d6a4cee, +0x4d334d0f, +0x4d564d00, +0x4dae4d88, +0x4d404d78, +0x4d7c4d9c, +0x4d2c4d58, +0x4d284d47, +0x4dfc4db4, +0x4cec4d97, +0x4dc04cf7, +0x4d814d0c, +0x4d284d58, +0x4dad4d63, +0x4d754d12, +0x4d514d77, +0x4d0b4ceb, +0x4d5e4d6b, +0x4da94e5d, +0x4d974e1f, +0x4ec44df3, +0x4ee04d90, +0x4e244da1, +0x4d684e3b, +0x4ddf4da9, +0x4d994dfd, +0x4dba4d6c, +0x4daa4e07, +0x4dd84df3, +0x4dc74d51, +0x4d6e4ddb, +0x4df24dd9, +0x4e154e39, +0x4e024e04, +0x4dbf4e05, +0x4d434de1, +0x4d9e4d73, +0x4daf4dd5, +0x4e514daf, +0x4e5c4dcc, +0x4d5d4d8f, +0x4d7c4e2f, +0x4dd74e80, +0x4dc24dbd, +0x4e114d5f, +0x4d6b4de6, +0x4db44d1a, +0x4eba4dcb, +0x4ded4d24, +0x4d514dc5, +0x4dfd4dfe, +0x4e334e44, +0x4d994e59, +0x4d994ddf, +0x4d664dd4, +0x4de94df2, +0x4e304d80, +0x4daf4e0a, +0x4e3d4dc3, +0x4d724d79, +0x4d424de1, +0x4ea14e4e, +0x4e134d84, +0x4dc94e0c, +0x4df44ddf, +0x4e024db8, +0x4d8a4e6b, +0x4e494e8f, +0x4eb64e5b, +0x4ef94e1d, +0x4e654e2f, +0x4db44ef9, +0x4e5c4e86, +0x4e234eae, +0x4e5a4d8f, +0x4de04e1e, +0x4dbd4e5c, +0x4e374e38, +0x4ded4ec8, +0x4ec54ecd, +0x4e9b4f06, +0x4ea24e8a, +0x4dea4e41, +0x4d704e04, +0x4e344d5a, +0x4e514e01, +0x4ef04e0f, +0x4edd4dfe, +0x4dd04d8b, +0x4e694e6d, +0x4de44f18, +0x4e214d8f, +0x4e074de2, +0x4ded4e56, +0x4e394d8d, +0x4f374e50, +0x4e274dd6, +0x4df04e04, +0x4e5b4e92, +0x4eeb4e99, +0x4e604e66, +0x4df64ebc, +0x4e404e57, +0x4e5c4eaf, +0x4e444e3f, +0x4de84e23, +0x4e7e4e56, +0x4e524e01, +0x4dc54e5b, +0x4ee04e94, +0x4e484e48, +0x4e794e63, +0x4e3c4e21, +0x4e584e6a, +0x4e574f33, +0x4ee84ef5, +0x4fd14f08, +0x4fc64e62, +0x4eab4f04, +0x4e9b4fda, +0x4f274eec, +0x4eaf4f04, +0x4f174e19, +0x4e594f28, +0x4e0d4ea0, +0x4e734eec, +0x4e6a4f0c, +0x4f954ead, +0x4e8f4edf, +0x4ecd4eca, +0x4ea54edd, +0x4dff4edf, +0x4e644e28, +0x4ed24f27, +0x4f294e25, +0x4f954e6c, +0x4e5b4e35, +0x4ea84f4d, +0x4eb44f3b, +0x4ec04e2b, +0x4e914e61, +0x4e8c4ee7, +0x4f054e76, +0x4f5e4ed3, +0x4f164e81, +0x4e554dfd, +0x4ed14e9d, +0x4fa54ec6, +0x4ee34ef2, +0x4e514f1d, +0x4ed84ebf, +0x4ef14ee9, +0x4f024ee2, +0x4e7b4fae, +0x4f3c4ee4, +0x4ec74e59, +0x4e364e97, +0x4f024efb, +0x4f034ecb, +0x4eb24f13, +0x4e774e94, +0x4e384e1b, +0x4dc64edf, +0x4e354ee0, +0x4f974efd, +0x4f9b4e50, +0x4e394ddc, +0x4e554f6b, +0x4e634eb4, +0x4e3b4ea0, +0x4e2a4e17, +0x4e234ed9, +0x4e564ee7, +0x4e9b4e34, +0x4e0b4eda, +0x4ef24e82, +0x4ec34e95, +0x4e554f05, +0x4e8f4efc, +0x4e014e7c, +0x4e454e0a, +0x4e654e28, +0x4e784e20, +0x4ea14ebd, +0x4e2b4e22, +0x4dcf4f6f, +0x4e0f4f35, +0x4e764dcb, +0x4e7f4e08, +0x4e5b4f05, +0x4e834dd7, +0x4f4c4ebd, +0x4eef4d7b, +0x4e784e01, +0x4ea64ee6, +0x4f004f28, +0x4e314e4e, +0x4e4e4ed7, +0x4e7a4e6f, +0x4ee64e9f, +0x4e914e74, +0x4e1f4eba, +0x4f5d4e1f, +0x4e844e22, +0x4da34e2c, +0x4ec54e82, +0x4f134ec8, +0x4e9a4ef4, +0x4e5a4eb6, +0x4db64d6b, +0x4d3b4e0b, +0x4d884df7, +0x4e814e15, +0x4ef04d5f, +0x4da24e2f, +0x4da14e6a, +0x4e6c4d9c, +0x4db14e0b, +0x4dfc4d3c, +0x4d634d97, +0x4d4d4e39, +0x4d994da9, +0x4da04e40, +0x4e284de3, +0x4ddc4e04, +0x4de64dcb, +0x4d914e6b, +0x4d844dd5, +0x4d364d44, +0x4de64d75, +0x4ed74dba, +0x4e5a4d6f, +0x4d6d4d88, +0x4d644e03, +0x4d8a4e96, +0x4dca4d5c, +0x4e1b4d7c, +0x4d864dfc, +0x4dd94d66, +0x4e534df3, +0x4e2a4d4b, +0x4d434d9b, +0x4e5a4ddb, +0x4e564de7, +0x4d8c4dee, +0x4dc74dcc, +0x4d804daa, +0x4e564d97, +0x4e774d5f, +0x4d514d98, +0x4e894d8d, +0x4d6b4d38, +0x4d8e4dc8, +0x4e134df9, +0x4e074d2f, +0x4da04e0f, +0x4d6a4d95, +0x4deb4e54, +0x4d9d4ea3, +0x4e3c4e6c, +0x4f564e8d, +0x4fa94de7, +0x4eb44e3a, +0x4e5d4f3d, +0x4ead4ea7, +0x4ea74f1d, +0x4ea74deb, +0x4e364e17, +0x4e274e45, +0x4e3a4e42, +0x4e114f1a, +0x4ee04eb4, +0x4ed24e33, +0x4e074e16, +0x4df24ea9, +0x4dda4e4c, +0x4e0e4e31, +0x4e564e32, +0x4efb4e0c, +0x4ebb4e64, +0x4e3b4dbf, +0x4e634f0c, +0x4e4f4f04, +0x4e3a4d9c, +0x4e7c4e16, +0x4de24e46, +0x4e914df4, +0x4f274eb6, +0x4ecc4d8a, +0x4db34e0d, +0x4e8a4e8e, +0x4f1f4ef0, +0x4ea34eab, +0x4df34e4a, +0x4e6a4ec1, +0x4eff4e6c, +0x4ed34e45, +0x4e6f4ec6, +0x4ebf4e4a, +0x4e404de4, +0x4d9e4e27, +0x4ecb4e79, +0x4ed64e61, +0x4e4b4e9a, +0x4e734e55, +0x4e1e4e5e, +0x4df74ea1, +0x4e714e66, +0x4fbf4f2d, +0x4fe24ea4, +0x4eb44eab, +0x4e8b4f9c, +0x4e794e41, +0x4e964f69, +0x4e864e07, +0x4e144ec0, +0x4df44e95, +0x4e784e9e, +0x4df94eea, +0x4f404f28, +0x4e934f87, +0x4ec54e29, +0x4eb64ec1, +0x4e9f4e8f, +0x4e754def, +0x4e9b4e75, +0x4f684e29, +0x4ed84eac, +0x4e524da6, +0x4ea64f2e, +0x4ea94f46, +0x4e524e5b, +0x4e994e4d, +0x4e9e4ea2, +0x4ed34ded, +0x4fe34f10, +0x4ee24df6, +0x4f054e13, +0x4ef34ed1, +0x4ef24ef8, +0x4e1f4eb6, +0x4e254ecc, +0x4ea34ea1, +0x4e984ef8, +0x4ee04e43, +0x4e384f0e, +0x4f7b4e74, +0x4ee64df6, +0x4de84eba, +0x4f1a4e70, +0x4ed24e91, +0x4e844f2a, +0x4ea04ed3, +0x4e044e1c, +0x4e124dfd, +0x4e0b4de2, +0x4ecf4e45, +0x4edb4d91, +0x4de14e15, +0x4e074ee1, +0x4dc14da5, +0x4e0f4e24, +0x4e264d89, +0x4d974da5, +0x4ddb4e39, +0x4e3b4e48, +0x4d9f4e20, +0x4e824e65, +0x4d9e4e0b, +0x4dbd4de7, +0x4da54e42, +0x4da44dc9, +0x4da94dc0, +0x4e5c4e74, +0x4ee14de2, +0x4eb14e10, +0x4da64d66, +0x4e1f4eba, +0x4e614e9c, +0x4dcb4d43, +0x4e084d98, +0x4dea4e22, +0x4e764ddd, +0x4e864e4e, +0x4dfe4d7b, +0x4e374d4c, +0x4e314d97, +0x4ebe4e4f, +0x4da14e34, +0x4d9e4e64, +0x4e044df2, +0x4e3a4dd1, +0x4ea44dd7, +0x4db94e09, +0x4e9a4d96, +0x4dd54d95, +0x4d544e1d, +0x4e4a4de8, +0x4e6e4dd0, +0x4e494e53, +0x4d684d86, +0x4dee4da0, +0x4df44e81, +0x4dcd4de0, +0x4eae4ddd, +0x4f094dce, +0x4df04e0f, +0x4df54ecc, +0x4dca4ddf, +0x4d7f4dd6, +0x4e0d4dc1, +0x4d9f4dff, +0x4d554dd5, +0x4d844daa, +0x4da94e57, +0x4eb34e39, +0x4dea4e60, +0x4e184dd4, +0x4dbf4e4a, +0x4d9f4d8b, +0x4d9f4d54, +0x4de54e12, +0x4e244d9b, +0x4e484db4, +0x4d884dba, +0x4d394e72, +0x4d654e4e, +0x4e054cef, +0x4dbe4da6, +0x4d714e07, +0x4deb4d4a, +0x4e5e4e37, +0x4e204dc0, +0x4d5a4d3a, +0x4e314dbd, +0x4e774e64, +0x4da24e40, +0x4da54e46, +0x4db44db6, +0x4e174db0, +0x4e144dc7, +0x4dc04e24, +0x4e254d5b, +0x4e084d91, +0x4db04e39, +0x4e554ddc, +0x4e174d39, +0x4dd54e75, +0x4e2c4de9, +0x4d5a4d74, +0x4d5b4dde, +0x4d094dc3, +0x4e084d93, +0x4e794da7, +0x4dea4d85, +0x4d6f4e38, +0x4d924d63, +0x4d6a4df3, +0x4d9c4cd6, +0x4d564d83, +0x4d8e4dd5, +0x4da64d84, +0x4d2a4e24, +0x4e224dbb, +0x4de84da3, +0x4dcc4d30, +0x4d874db8, +0x4d3b4d63, +0x4d784d3a, +0x4d6c4d6c, +0x4df44d72, +0x4e254d6a, +0x4d204d3a, +0x4d004e25, +0x4d644dfc, +0x4d954cf9, +0x4d3b4d05, +0x4d0e4db6, +0x4dd14d12, +0x4e0b4d95, +0x4de44d6a, +0x4d874d38, +0x4df44e22, +0x4e094dc1, +0x4dca4d9d, +0x4d6a4dd9, +0x4d3e4d8f, +0x4dbb4dba, +0x4d7b4d84, +0x4d4d4e1e, +0x4e004d67, +0x4d544d27, +0x4cda4db9, +0x4e294db1, +0x4e224d71, +0x4d614df2, +0x4d524df0, +0x4d904d31, +0x4db34e17, +0x4dac4e1b, +0x4ec64e08, +0x4eea4da8, +0x4e2c4dcb, +0x4df04ee0, +0x4dcc4dda, +0x4d9a4ea1, +0x4d914dac, +0x4daf4e2b, +0x4dc64d8d, +0x4e0e4e1f, +0x4d574e23, +0x4e3d4e3b, +0x4e664e32, +0x4da74e1f, +0x4d474e4d, +0x4d694da1, +0x4df54d6f, +0x4e094e0b, +0x4e414d7c, +0x4e4f4e09, +0x4df94db3, +0x4de94e6a, +0x4e2d4f3e, +0x4e444da0, +0x4df64e1a, +0x4d914dfc, +0x4dcf4d48, +0x4eb44e23, +0x4e404ce1, +0x4da54d7d, +0x4e344e55, +0x4ea24e67, +0x4db54e48, +0x4e0b4e25, +0x4dc44e1a, +0x4df34e27, +0x4e314de6, +0x4de84e6f, +0x4e704d85, +0x4dd94d69, +0x4d184de8, +0x4e044da7, +0x4e2c4dd3, +0x4e234e3d, +0x4dd24dd6, +0x4de24e0b, +0x4dc34e76, +0x4da54e4c, +0x4ec54e8f, +0x4f7d4e4d, +0x4e194df4, +0x4dc44efc, +0x4dd84de0, +0x4dc94ec5, +0x4e2b4dd7, +0x4d8d4e79, +0x4daa4e5a, +0x4e3f4e09, +0x4d994e7d, +0x4ed94e50, +0x4e5b4ec7, +0x4e6d4e31, +0x4e524ea8, +0x4dfa4e4a, +0x4e284d61, +0x4e304dfa, +0x4ebd4dbd, +0x4f174e1c, +0x4e344dad, +0x4dd84e90, +0x4e404f2e, +0x4e2a4d4b, +0x4deb4d89, +0x4de84e42, +0x4e294d63, +0x4f354e46, +0x4e254dd4, +0x4e3a4d5f, +0x4e5b4ee4, +0x4ea54e97, +0x4e344e51, +0x4e534e6b, +0x4e144e7a, +0x4e0e4e12, +0x4e0d4df0, +0x4de54ebc, +0x4ead4dbb, +0x4e624df9, +0x4d914e34, +0x4ec34e53, +0x4e184e2a, +0x4eac4e5c, +0x4e1a4e3c, +0x4ded4db4, +0x4dd84e56, +0x4e204dd5, +0x4f274f02, +0x4f174e56, +0x4e354e18, +0x4e284f47, +0x4e264e4c, +0x4db74e8c, +0x4e2b4dab, +0x4de74e62, +0x4d764e47, +0x4e324dd3, +0x4d9b4e41, +0x4ee14e36, +0x4e4e4eda, +0x4e284e46, +0x4e654e76, +0x4dd64df2, +0x4e0c4dc5, +0x4da94e02, +0x4eb14da7, +0x4e9c4e0c, +0x4e4b4db8, +0x4dca4ea5, +0x4e034ea0, +0x4e304d89, +0x4e2f4da8, +0x4e244e4f, +0x4e2a4dce, +0x4f064e77, +0x4e7e4d80, +0x4df14d88, +0x4e124e6b, +0x4eed4e4f, +0x4e444e20, +0x4e384df4, +0x4e444e62, +0x4e7d4e3a, +0x4eac4e02, +0x4e074e74, +0x4e844df2, +0x4e3a4dfe, +0x4d864e0c, +0x4e724e4d, +0x4e394dfb, +0x4e464e61, +0x4e424dfd, +0x4dbb4de9, +0x4d6f4e30, +0x4d824dfa, +0x4ec54e70, +0x4f064da1, +0x4e474e5b, +0x4dad4e79, +0x4e614dd5, +0x4dae4e44, +0x4e4f4dee, +0x4d9e4e40, +0x4ddf4e3e, +0x4e844dab, +0x4da74e5e, +0x4f0e4e58, +0x4e424e10, +0x4e244e18, +0x4e084e7c, +0x4db74e14, +0x4e224db8, +0x4e074df6, +0x4ebc4d8b, +0x4eb34db7, +0x4d9e4d91, +0x4db84e45, +0x4dc64ed5, +0x4da14db4, +0x4e4c4d70, +0x4d8a4e72, +0x4d7f4dc9, +0x4f304e1d, +0x4e934d7c, +0x4de44dd2, +0x4e724e93, +0x4f3d4e34, +0x4de74e42, +0x4df44e76, +0x4df64eae, +0x4e504e2b, +0x4e664e4b, +0x4de24e63, +0x4e804de1, +0x4dd74d96, +0x4ce74dee, +0x4e604d9a, +0x4e684dc3, +0x4e2d4e4f, +0x4e314e06, +0x4e5b4e00, +0x4dda4e77, +0x4dee4e1a, +0x4f154e83, +0x4f9a4e59, +0x4e604e31, +0x4e944f31, +0x4e364df9, +0x4e484eaf, +0x4e494dd9, +0x4e354e2c, +0x4e484ec4, +0x4e244e46, +0x4dbc4e95, +0x4f2e4edf, +0x4e2f4eeb, +0x4e314e0d, +0x4e754ef6, +0x4dd94dd4, +0x4e1f4d8f, +0x4dc84e09, +0x4ef24dfd, +0x4ed04e8f, +0x4e124de5, +0x4df44ebd, +0x4dda4ece, +0x4e4e4d36, +0x4e284e0d, +0x4e244ead, +0x4e794df9, +0x4f044eae, +0x4e714deb, +0x4e7b4d7e, +0x4ee24e6d, +0x4f2b4e66, +0x4df64e6f, +0x4e284ec0, +0x4e284e7a, +0x4e4e4e28, +0x4ef74e66, +0x4deb4ed3, +0x4eb34e05, +0x4e884dd9, +0x4dfd4e61, +0x4e894e3b, +0x4e504e3a, +0x4e514ec6, +0x4de04e3f, +0x4e184dcf, +0x4db74e1c, +0x4e1f4e2e, +0x4f104e65, +0x4fb44dc9, +0x4e634e91, +0x4e564f7c, +0x4e0d4e23, +0x4dea4e8d, +0x4e184db7, +0x4da84e14, +0x4d714e1e, +0x4e354df0, +0x4dec4e39, +0x4f104e2a, +0x4e504e78, +0x4e774e31, +0x4dca4f16, +0x4e1c4d9c, +0x4e114da1, +0x4e034e25, +0x4ecf4d87, +0x4ec74e2a, +0x4e444d9b, +0x4dc24e78, +0x4e084f13, +0x4ddc4d85, +0x4db34dd4, +0x4e264e2e, +0x4e2e4df4, +0x4f224e60, +0x4ebb4d9d, +0x4e654d96, +0x4e4b4e39, +0x4ee24e0f, +0x4dd04e96, +0x4e264e47, +0x4e324e9e, +0x4e814dfa, +0x4e734e39, +0x4d8e4ec3, +0x4e9d4dfe, +0x4e434ded, +0x4d854ddb, +0x4e594e00, +0x4e654def, +0x4e314e9c, +0x4dd14df9, +0x4d874d16, +0x4d674e0a, +0x4d494dfb, +0x4e264daa, +0x4e604d51, +0x4d774d6f, +0x4da74eb9, +0x4d9f4d87, +0x4d9e4ddd, +0x4dc14d4e, +0x4d444dc3, +0x4d534d6b, +0x4d3f4d48, +0x4d6f4ddb, +0x4de94db5, +0x4ddb4dfc, +0x4d7e4de2, +0x4d6f4e02, +0x4d134d80, +0x4d084d1b, +0x4d524dc7, +0x4d8b4d7f, +0x4dfe4db3, +0x4d124d24, +0x4d8c4dd6, +0x4d614e24, +0x4dcd4d12, +0x4d834d2d, +0x4dc84db3, +0x4dd54d3f, +0x4e444d9e, +0x4dbc4d09, +0x4d294d01, +0x4d7d4d96, +0x4e104dd3, +0x4dd24d50, +0x4da84d5d, +0x4d984dac, +0x4d5f4d92, +0x4de54d9a, +0x4da54dcd, +0x4dd64d6a, +0x4d654d0c, +0x4d424d4c, +0x4dbd4dd3, +0x4d894db7, +0x4de34dcd, +0x4d644d99, +0x4d4a4cf5, +0x4d034dd3, +0x4d6c4d77, +0x4e284db3, +0x4e344d32, +0x4d9a4d68, +0x4db74dad, +0x4d6d4dad, +0x4d304e1e, +0x4d9d4d3d, +0x4d294df3, +0x4ce24d33, +0x4d674d74, +0x4d114d9d, +0x4e344dca, +0x4dca4d92, +0x4d334d8c, +0x4db54da0, +0x4d324d3b, +0x4d4f4d0f, +0x4da44cf7, +0x4e284d97, +0x4d7d4d40, +0x4d564d00, +0x4cc84e0a, +0x4d084e0d, +0x4d524d21, +0x4d5a4cce, +0x4ced4de3, +0x4db94ced, +0x4e164dbd, +0x4da14cf5, +0x4d4f4d57, +0x4daf4ddc, +0x4db24dfa, +0x4d1c4e26, +0x4d314d8a, +0x4cd34d88, +0x4dac4da8, +0x4d914d50, +0x4d564d76, +0x4dab4d5b, +0x4d934d56, +0x4cef4d6f, +0x4ddb4d8e, +0x4dd84d6a, +0x4dff4db3, +0x4d734d77, +0x4df94e14, +0x4dc54e48, +0x4dcc4dbd, +0x4ec34e10, +0x4f5c4df1, +0x4e5d4e1c, +0x4df14edc, +0x4e2d4dc0, +0x4de34e62, +0x4e394d61, +0x4d794e3b, +0x4d764e3f, +0x4dc84daf, +0x4d8d4e42, +0x4f054e79, +0x4e3d4e44, +0x4e924dce, +0x4df74eb7, +0x4db04dc4, +0x4df34da3, +0x4dd64db6, +0x4ea34dc5, +0x4ec84d9e, +0x4e224d7c, +0x4d924ee2, +0x4db24f08, +0x4df64dc3, +0x4e504d31, +0x4dd74e8f, +0x4e1a4d6e, +0x4f144e86, +0x4e854d99, +0x4e464d54, +0x4e604e26, +0x4f024e4b, +0x4e044e22, +0x4e0e4e08, +0x4e4a4e68, +0x4e5a4de0, +0x4e3d4e36, +0x4de24e54, +0x4e144df7, +0x4e2f4dc6, +0x4d704e56, +0x4e2a4dd2, +0x4e7f4e35, +0x4e204e7c, +0x4d7e4db4, +0x4dc24dc6, +0x4d9c4e0e, +0x4df84df6, +0x4eb04dfa, +0x4ee44dbc, +0x4da74df7, +0x4d804e6e, +0x4dcf4dd3, +0x4d964e02, +0x4e574df7, +0x4db14e54, +0x4d544e11, +0x4de14e15, +0x4d6c4e29, +0x4e7b4dfd, +0x4dfb4e56, +0x4db14e05, +0x4dde4e80, +0x4d954db5, +0x4de34d5e, +0x4dea4e10, +0x4e654d4f, +0x4e8c4dbc, +0x4ddc4d8d, +0x4daf4e2d, +0x4d7d4eb2, +0x4dfc4d12, +0x4dcf4d73, +0x4ddf4e1f, +0x4e584da2, +0x4e984e2c, +0x4dec4d5b, +0x4d9f4d85, +0x4e434de6, +0x4e3e4dca, +0x4db74e6e, +0x4dc14e2e, +0x4da44dc9, +0x4e024dc9, +0x4e2f4df8, +0x4dfe4e59, +0x4e644d43, +0x4ddd4d80, +0x4d574e15, +0x4df34e48, +0x4e2f4dad, +0x4e284e47, +0x4db74d94, +0x4d444d5f, +0x4d6d4de2, +0x4d024d9b, +0x4e084dbe, +0x4e164d52, +0x4d664d7f, +0x4d554e4e, +0x4d7f4d0f, +0x4d6e4d95, +0x4dad4ce8, +0x4d424d69, +0x4d334dd8, +0x4d614d9f, +0x4d434dcb, +0x4e124dbe, +0x4da14dd1, +0x4da94d81, +0x4d574dff, +0x4cef4d5b, +0x4ccd4d36, +0x4d204d6a, +0x4e304d73, +0x4e024d5c, +0x4d134d09, +0x4d084dee, +0x4ce24e28, +0x4d534ca5, +0x4d254ce4, +0x4d444dec, +0x4dc94d3a, +0x4e0f4da0, +0x4d804d36, +0x4d4c4c83, +0x4da24d64, +0x4e174e08, +0x4d3b4d3f, +0x4d824db3, +0x4d874d60, +0x4d7a4d58, +0x4da74d47, +0x4d1c4d24, +0x4e064d2b, +0x4dc64d16, +0x4cdf4d87, +0x4db94d70, +0x4dc94d27, +0x4d8f4dbb, +0x4d164d3f, +0x4e6c4e12, +0x4e814e94, +0x4e604ec0, +0x4f8e4e3b, +0x4f5a4df8, +0x4e884e88, +0x4e404f1c, +0x4ddf4dea, +0x4e4e4ecb, +0x4e324e15, +0x4dc54ec9, +0x4dd24e88, +0x4e384e51, +0x4e034e88, +0x4ef64e75, +0x4e884eda, +0x4e774ea8, +0x4df34ec2, +0x4e234e12, +0x4e0a4df5, +0x4e654e86, +0x4ede4df8, +0x4ea94e52, +0x4e3d4da0, +0x4e374f16, +0x4df54ee0, +0x4e7a4def, +0x4e6b4dc7, +0x4e024ea5, +0x4e354e52, +0x4f2c4e6f, +0x4e5d4dd0, +0x4e364e27, +0x4e774e9b, +0x4f734eaa, +0x4dfc4e60, +0x4e604f07, +0x4dfd4e77, +0x4e7a4e39, +0x4e654e32, +0x4e284e35, +0x4eb34dfe, +0x4e8f4e20, +0x4e054e7a, +0x4eca4e5b, +0x4ec34dcf, +0x4ea44eee, +0x4ded4e05, +0x4e814e2a, +0x4de34e68, +0x4dc54e93, +0x4f2a4e6a, +0x4fa34df5, +0x4e504e54, +0x4e464edf, +0x4e354e9a, +0x4e704ef8, +0x4e3d4da1, +0x4dfb4e71, +0x4d8e4e64, +0x4e3d4e2f, +0x4dd64e51, +0x4ea04ecd, +0x4eba4ecf, +0x4e654e64, +0x4dfd4ed8, +0x4e1a4e11, +0x4e5c4dc1, +0x4e314e66, +0x4efa4e6d, +0x4f064dfe, +0x4e0a4dd9, +0x4df14eed, +0x4e124ef5, +0x4e564dc6, +0x4dec4e31, +0x4db64e66, +0x4e404d8c, +0x4f374e38, +0x4ebe4dc4, +0x4de64e42, +0x4eab4e8b, +0x4eee4e84, +0x4e134ec7, +0x4e7c4e45, +0x4e724ea5, +0x4e914e7f, +0x4e744e53, +0x4e414e5f, +0x4ea34e9c, +0x4e064da1, +0x4dce4e0b, +0x4ed84e5a, +0x4e5c4deb, +0x4eaf4ecd, +0x4dc04e17, +0x4df54de1, +0x4de44e47, +0x4de74e55, +0x4f364e23, +0x4f544e02, +0x4e774e1d, +0x4e3a4ef4, +0x4e2f4e11, +0x4dd74ef2, +0x4e6f4d78, +0x4da14e4b, +0x4df24dc0, +0x4e314de6, +0x4e124ed7, +0x4eba4e15, +0x4e6e4e06, +0x4e114e1e, +0x4dc74e69, +0x4d9a4df4, +0x4e164dbb, +0x4e224dd8, +0x4e5c4dad, +0x4ea64df8, +0x4e124d9d, +0x4dd94ec1, +0x4ded4f1a, +0x4de34d6c, +0x4e414dc5, +0x4d964e66, +0x4e154def, +0x4ec84e17, +0x4e8e4da2, +0x4de24de3, +0x4e9c4ead, +0x4f0e4e8d, +0x4e424e35, +0x4e0f4ebd, +0x4e1b4e8e, +0x4e374e29, +0x4e334e5f, +0x4e104e74, +0x4e6f4dc6, +0x4e074dd4, +0x4d7c4e8f, +0x4ea64da2, +0x4ea04ddd, +0x4e444edc, +0x4dcf4e3f, +0x4dbc4d64, +0x4d7b4e2a, +0x4d704e0c, +0x4e7f4d5c, +0x4e824d22, +0x4e344dc7, +0x4d434eb8, +0x4db44d93, +0x4d6c4e62, +0x4df94d5d, +0x4d4c4daf, +0x4d5e4d4d, +0x4d684dc0, +0x4d394e15, +0x4e8d4e00, +0x4e3d4df5, +0x4d3d4dbd, +0x4d684ddc, +0x4d324d55, +0x4d584cec, +0x4dcc4d8d, +0x4ded4d55, +0x4e144dfd, +0x4d694d4e, +0x4d604e63, +0x4db84e56, +0x4daf4d40, +0x4db74d4b, +0x4d574d88, +0x4df04d78, +0x4ea74ddf, +0x4ddf4d74, +0x4d454d1f, +0x4dc04dda, +0x4e5e4e11, +0x4dfb4de0, +0x4dbe4db1, +0x4df04df9, +0x4de64db3, +0x4e034d9c, +0x4d734e08, +0x4df14d70, +0x4dc54dca, +0x4d154d97, +0x4e614db0, +0x4dc54d67, +0x4d854e20, +0x4d624d6b, +0x4df64d80, +0x4d6a4e6f, +0x4dc44e44, +0x4e7a4e6c, +0x4f7d4dd6, +0x4dc44dda, +0x4db64f2e, +0x4ddb4e17, +0x4dae4e6f, +0x4dd74d64, +0x4dba4e04, +0x4de44dc3, +0x4e3a4e27, +0x4d7c4e65, +0x4ead4e06, +0x4e4d4dfa, +0x4e0d4df1, +0x4dd64eb9, +0x4d754e4e, +0x4df04dca, +0x4e134dde, +0x4ef24de3, +0x4e7e4dfe, +0x4dd24d4a, +0x4dac4e5c, +0x4dce4e79, +0x4e154d0a, +0x4df14dfc, +0x4db24e77, +0x4e5c4d70, +0x4ee64e18, +0x4e6b4db1, +0x4e154d81, +0x4e154e18, +0x4e9d4dff, +0x4e0b4e3a, +0x4dee4e75, +0x4e0e4e31, +0x4e454de0, +0x4e784e2c, +0x4da54e7c, +0x4edc4dad, +0x4e0d4df9, +0x4d714e39, +0x4e504d8a, +0x4e384dd8, +0x4ddd4e5e, +0x4d7e4e18, +0x4df24dd4, +0x4dd64e8f, +0x4dc14e08, +0x4f764e1b, +0x4f194dea, +0x4eb44e8a, +0x4de24f5a, +0x4e7d4df5, +0x4e404e87, +0x4ea94db8, +0x4da24e79, +0x4d4a4e33, +0x4e184e4b, +0x4e004e44, +0x4e9f4e51, +0x4e734e5d, +0x4e514e09, +0x4e524e4f, +0x4dc74ddf, +0x4e214dd6, +0x4e624e2f, +0x4ea44ddb, +0x4eb94e07, +0x4dcc4ded, +0x4dcd4ed5, +0x4dce4ebf, +0x4dd44d8e, +0x4e364d90, +0x4de24e69, +0x4e4c4d98, +0x4ecc4e10, +0x4ebc4d5d, +0x4e004dd7, +0x4e8f4e78, +0x4ee14ea8, +0x4e2e4e82, +0x4e1d4e0b, +0x4e364e94, +0x4e1d4dff, +0x4dd34e2d, +0x4e024e2e, +0x4e834def, +0x4e304dc1, +0x4dc84e18, +0x4e7b4dcc, +0x4e914deb, +0x4ead4e53, +0x4de74e39, +0x4dde4db6, +0x4d9c4e7e, +0x4d7f4e4d, +0x4e1d4dd3, +0x4efe4dee, +0x4e294e96, +0x4e124e9f, +0x4e034dfb, +0x4e4d4e55, +0x4df44d8e, +0x4dd34e23, +0x4dd24dbf, +0x4dab4e6f, +0x4e0d4e07, +0x4e894e82, +0x4e3f4e4c, +0x4e644e3b, +0x4e2d4e44, +0x4dc54db1, +0x4dcf4db7, +0x4e544e33, +0x4e124e27, +0x4e284e13, +0x4df74d7e, +0x4df04eb3, +0x4df14eda, +0x4df44d04, +0x4dfb4d89, +0x4dd44e5b, +0x4e564d9e, +0x4ec24e47, +0x4e0c4d55, +0x4e2c4d56, +0x4e3c4d9b, +0x4ed34e5b, +0x4de14e76, +0x4e314e24, +0x4dec4e21, +0x4e354dfe, +0x4e7f4e3a, +0x4dc94e71, +0x4ea74e07, +0x4e4d4dbf, +0x4d4e4e21, +0x4e444dff, +0x4e344dbc, +0x4e9d4e63, +0x4e094ddd, +0x4d524d5f, +0x4d4d4e04, +0x4d7b4dc9, +0x4e974e22, +0x4ec44dc6, +0x4e144e0e, +0x4d644ea4, +0x4df14dbc, +0x4d9f4e04, +0x4dcb4db5, +0x4d694dbc, +0x4da84dc0, +0x4e164e3e, +0x4d5d4e73, +0x4eb74e6c, +0x4de64e6f, +0x4e024dc8, +0x4d834e9e, +0x4d6f4d8c, +0x4dfd4d25, +0x4d9a4e12, +0x4e954d58, +0x4e744de8, +0x4df84d50, +0x4e0e4ddf, +0x4de14eb7, +0x4d954d5f, +0x4dcf4d8a, +0x4dc74e35, +0x4db64d95, +0x4f004db7, +0x4dc94d61, +0x4daf4daa, +0x4e124e2e, +0x4ed44e12, +0x4db54e2f, +0x4dfc4e30, +0x4e394e4e, +0x4e304e06, +0x4e114ddd, +0x4dc24e6b, +0x4e6a4d96, +0x4e304d42, +0x4d214e1f, +0x4e8c4de8, +0x4dcc4dbc, +0x4e614e03, +0x4e234df3, +0x4d6b4d73, +0x4d834e65, +0x4de44e07, +0x4ecc4e20, +0x4eca4d8e, +0x4dc74ddf, +0x4d934ead, +0x4df74d81, +0x4dac4e5a, +0x4dd74d5e, +0x4d534e0c, +0x4cc34db1, +0x4dac4e09, +0x4d974e44, +0x4e6c4df3, +0x4da14e2d, +0x4df14df0, +0x4d864e35, +0x4da94d8f, +0x4d924ce6, +0x4e024e33, +0x4e1e4d57, +0x4e9b4d6f, +0x4db44cf6, +0x4e0a4df2, +0x4db64e79, +0x4d874d5e, +0x4d984d94, +0x4d9f4dd8, +0x4e074d9b, +0x4e904db5, +0x4e044d8f, +0x4df34d37, +0x4e0b4dbb, +0x4e724e46, +0x4d884e38, +0x4dd04de0, +0x4e1c4e34, +0x4de94ddc, +0x4dc54df7, +0x4dcb4e26, +0x4e104dc6, +0x4dda4db4, +0x4d424e2c, +0x4e344dda, +0x4df64df9, +0x4e604e4c, +0x4da14dce, +0x4ddc4dfb, +0x4df64dfc, +0x4e794e60, +0x4f0d4ee5, +0x4f644e50, +0x4e144e51, +0x4e424f68, +0x4dea4e0e, +0x4e284e93, +0x4e3a4dd7, +0x4d3a4e8b, +0x4dd74e6a, +0x4e774e04, +0x4de54e54, +0x4ead4e6e, +0x4ed84e4d, +0x4e134e36, +0x4e574ef5, +0x4df74e79, +0x4dd74dca, +0x4e464dc8, +0x4ea04df8, +0x4eab4e57, +0x4de84dbd, +0x4ddd4ebc, +0x4e754f0b, +0x4e2c4d8e, +0x4e384d68, +0x4de24e5d, +0x4e444e27, +0x4f244e80, +0x4e594db1, +0x4df54dcb, +0x4e7c4e8c, +0x4eca4ec9, +0x4e6b4e37, +0x4e1e4e74, +0x4e4e4ebb, +0x4e604e39, +0x4e6a4e2e, +0x4ddd4ebd, +0x4e884dd9, +0x4e214db2, +0x4daf4de8, +0x4e7e4e9e, +0x4e784e1d, +0x4e694e9e, +0x4df04e48, +0x4e154e18, +0x4d9d4e0d, +0x4db64de2, +0x4e904e03, +0x4f644db2, +0x4e444e3c, +0x4e614f07, +0x4e2a4e19, +0x4dea4e27, +0x4e0d4dda, +0x4d6f4e2a, +0x4dae4df2, +0x4e124e27, +0x4d564e69, +0x4ec94e61, +0x4dfb4e75, +0x4e4b4df1, +0x4e004e66, +0x4dd54df6, +0x4dd94d9c, +0x4e0f4dc1, +0x4e664dff, +0x4e5e4e12, +0x4e064dc5, +0x4d9a4ea9, +0x4d9c4edd, +0x4dfa4d79, +0x4de74dec, +0x4dde4e23, +0x4e254d74, +0x4ed24e5e, +0x4eb24dbe, +0x4df84d68, +0x4e5f4e4e, +0x4eae4e72, +0x4d794e68, +0x4df44e1b, +0x4e0b4e5c, +0x4e144e38, +0x4e1e4e30, +0x4da54e6e, +0x4e834e15, +0x4e054d85, +0x4d584dc2, +0x4e6a4dfe, +0x4df24dbd, +0x4e344e78, +0x4de84e58, +0x4e614ed2, +0x4ebf4e8f, +0x4e4a4ef5, +0x4f754ed0, +0x500b4dcc, +0x4ed74e3a, +0x4e6b4f6a, +0x4e694e3d, +0x4ef64ee1, +0x4e8a4de0, +0x4dd94ea9, +0x4e634e98, +0x4eb54e1a, +0x4dfb4f27, +0x4f054eec, +0x4ec34ee4, +0x4ed64ede, +0x4e114eee, +0x4dc84e56, +0x4e6d4e3e, +0x4e824ebb, +0x4f274e5e, +0x4f294ec1, +0x4e074dc5, +0x4e3a4f4b, +0x4e9b4f06, +0x4e684e12, +0x4e6c4e1b, +0x4e534ec0, +0x4e714dd4, +0x4f594ea6, +0x4ed94d84, +0x4e564dd2, +0x4e414ecf, +0x4f784e5b, +0x4ee44eaa, +0x4e0f4ec2, +0x4e994ea8, +0x4ed04e0f, +0x4e7e4e36, +0x4e094ea4, +0x4ed14ea2, +0x4e2d4e45, +0x4dfe4e7f, +0x4f084ea7, +0x4f1e4e5b, +0x4e8d4f1b, +0x4e1f4e63, +0x4d584d50, +0x4d634dc6, +0x4cf44d51, +0x4e934dea, +0x4e414d63, +0x4dd54d61, +0x4d604e3a, +0x4d9f4dd1, +0x4d1d4e21, +0x4d9e4d52, +0x4d534df7, +0x4d574d8c, +0x4d524dad, +0x4ccb4ddb, +0x4e334e0b, +0x4e174e0d, +0x4d644d8e, +0x4d7d4e15, +0x4d3c4db1, +0x4d814d35, +0x4ddf4d5b, +0x4e154d29, +0x4dbe4d2c, +0x4d964ca5, +0x4d8b4dd8, +0x4d1f4deb, +0x4d794d1e, +0x4d9c4ce2, +0x4d134de9, +0x4d994d46, +0x4e324ddf, +0x4dae4d14, +0x4d7d4d49, +0x4dc04dd3, +0x4e174e07, +0x4d3c4de2, +0x4dd04dcc, +0x4d244dff, +0x4dc44d49, +0x4d944d5e, +0x4d764e1d, +0x4dce4d29, +0x4d844d50, +0x4d394d8a, +0x4dd34dcc, +0x4de94d6b, +0x4d814e08, +0x4d8a4d94, +0x4e044d9f, +0x4d914e12, +0x4d8b4df5, +0x4ea84dbb, +0x4edd4da5, +0x4da14da2, +0x4dae4e67, +0x4df34db6, +0x4d054e3c, +0x4dcd4d7d, +0x4d864dbd, +0x4d854da9, +0x4daa4dc9, +0x4d344e3d, +0x4e654dfa, +0x4ddf4e16, +0x4d7e4dae, +0x4d424e6f, +0x4d5c4d8c, +0x4e044d39, +0x4da64d90, +0x4e424d72, +0x4e154e03, +0x4dc64d9b, +0x4d684e18, +0x4da74e3e, +0x4db94cfb, +0x4d474db4, +0x4d0d4dac, +0x4de74d91, +0x4ece4dcc, +0x4ddb4d39, +0x4d174d3f, +0x4e874e3d, +0x4e9d4da9, +0x4dba4df6, +0x4d734de3, +0x4d6c4ddf, +0x4dc44df5, +0x4dac4d89, +0x4d8d4e55, +0x4e7c4d29, +0x4dc34d3e, +0x4d164dc6, +0x4db64db1, +0x4e104d2e, +0x4e534e8f, +0x4d934def, +0x4dc34d7c, +0x4e1d4e09, +0x4dfd4e57, +0x4f294ea6, +0x4f374e11, +0x4e3f4e26, +0x4e264f1f, +0x4e0b4e37, +0x4e584ea0, +0x4df14d9f, +0x4d804e40, +0x4da54e42, +0x4e594e6b, +0x4dc24e1a, +0x4eae4e18, +0x4e4e4eb2, +0x4e704e46, +0x4de54e78, +0x4d664dfb, +0x4dcf4ddb, +0x4e804de8, +0x4efd4e25, +0x4e744e0a, +0x4e3a4d9c, +0x4e2a4ec3, +0x4db94ea9, +0x4e324d98, +0x4e294dfd, +0x4da44e8b, +0x4e594dda, +0x4f144e6d, +0x4e734da8, +0x4e0e4e03, +0x4e4f4e3f, +0x4ece4e67, +0x4db34e6d, +0x4e034e71, +0x4e1d4e4d, +0x4deb4e9e, +0x4de64dd6, +0x4da24ebf, +0x4eb34e25, +0x4e424dbd, +0x4dfa4e33, +0x4e344e18, +0x4e624db7, +0x4e554e91, +0x4e0e4e39, +0x4e0e4e1c, +0x4dfe4ea5, +0x4e244e42, +0x4f644ee6, +0x4f494e07, +0x4e794e23, +0x4e394f00, +0x4e644e49, +0x4e6b4efa, +0x4ebb4dcb, +0x4e024dec, +0x4dad4e6b, +0x4e8d4e53, +0x4dbe4e1b, +0x4f4a4e5f, +0x4e1b4ea3, +0x4e294e26, +0x4e224e9b, +0x4e0a4e06, +0x4dd44e12, +0x4e6b4e83, +0x4ebb4e03, +0x4eef4e0e, +0x4de84db8, +0x4dfa4ef8, +0x4dfe4e70, +0x4e484db4, +0x4dd64db3, +0x4e0f4e90, +0x4eb74e43, +0x4f394eb4, +0x4eea4db4, +0x4e4f4dc9, +0x4e824e79, +0x4ebe4e4d, +0x4e1d4ea0, +0x4e2a4e88, +0x4dff4ea2, +0x4e1e4e4a, +0x4e424e56, +0x4e134eee, +0x4e8d4e05, +0x4e5f4d84, +0x4da94e72, +0x4e824e65, +0x4eec4dd0, +0x4e6d4ebf, +0x4e344e05, +0x4df84df7, +0x4dc24e19, +0x4d964e08, +0x4e8b4e15, +0x4ee64dd6, +0x4e814e2a, +0x4dbc4eb0, +0x4dc14db3, +0x4e074e4a, +0x4e384de6, +0x4d734e01, +0x4d6b4de0, +0x4e384e18, +0x4d814e4c, +0x4efa4e65, +0x4e204e48, +0x4dc14e19, +0x4dd94e7b, +0x4dd34e18, +0x4ddd4d4c, +0x4e144dc0, +0x4e9f4d8a, +0x4e454dbf, +0x4e034d36, +0x4d8b4e7c, +0x4dc34e7a, +0x4dff4d4d, +0x4ddd4d84, +0x4d7d4e76, +0x4e024d74, +0x4e5f4e10, +0x4e264d8c, +0x4dd54d8b, +0x4e0a4e33, +0x4ee14df0, +0x4d9d4e21, +0x4e224e45, +0x4de64e2a, +0x4e4c4e22, +0x4e0e4de5, +0x4d294e9d, +0x4e5e4d9c, +0x4e154d53, +0x4d644e02, +0x4e464dd4, +0x4e194d64, +0x4e3a4e5f, +0x4db64d78, +0x4ddb4dec, +0x4d9e4e68, +0x4e3e4e3c, +0x4f6c4e41, +0x4f2a4e24, +0x4e7c4e2e, +0x4dde4f37, +0x4e754dd5, +0x4dc94eb7, +0x4e364dcb, +0x4df64e72, +0x4db54e52, +0x4e344dfa, +0x4dcd4ebf, +0x4edf4e14, +0x4e8b4e6b, +0x4e5f4e41, +0x4dd64e82, +0x4db84e0a, +0x4e344dc6, +0x4eb44e16, +0x4ed24e02, +0x4ef54e2d, +0x4e364dc5, +0x4df04eb4, +0x4de84f4d, +0x4e0a4dac, +0x4e454d9c, +0x4dd14e79, +0x4ec14db0, +0x4ee04dfb, +0x4e884d70, +0x4df64df2, +0x4e334e3f, +0x4f0b4ef4, +0x4e454e75, +0x4d914e05, +0x4e1b4e72, +0x4e324e66, +0x4e144dd1, +0x4e104e63, +0x4ebf4df1, +0x4e6a4d89, +0x4d914e7b, +0x4e614e3f, +0x4e7f4e31, +0x4e164ddd, +0x4de84e2b, +0x4d3f4d4a, +0x4d6a4d6a, +0x4d744e2b, +0x4eb14de3, +0x4e754dd9, +0x4dde4da3, +0x4ded4e51, +0x4d834e0a, +0x4dd74e72, +0x4d744d43, +0x4da84e0c, +0x4d544df0, +0x4e0a4df0, +0x4d744e25, +0x4e134e0f, +0x4e0e4e18, +0x4dfa4e0c, +0x4d824e2f, +0x4d6a4dbe, +0x4d8b4d42, +0x4dc94ce1, +0x4e1f4d63, +0x4e114db1, +0x4df34d22, +0x4d7d4e58, +0x4d844ec2, +0x4d6e4d46, +0x4d684d20, +0x4d394dfe, +0x4d874d23, +0x4ec74d7e, +0x4dbf4d2a, +0x4d8f4d44, +0x4dff4e0a, +0x4e2e4e30, +0x4d894d94, +0x4d724e04, +0x4d414dee, +0x4d584dd4, +0x4d8f4dba, +0x4dac4e19, +0x4dea4db5, +0x4e1a4ce2, +0x4d544d87, +0x4e3e4d86, +0x4e414e04, +0x4df54dd4, +0x4d924e28, +0x4dba4d5e, +0x4d944df8, +0x4d7d4df0, +0x4e834dfc, +0x4e984df1, +0x4dc64dd4, +0x4daa4e84, +0x4d984d97, +0x4d9e4dfd, +0x4dd74d4a, +0x4da54d7e, +0x4dd14dbf, +0x4db74de8, +0x4d454dfd, +0x4e6c4dba, +0x4dfc4df2, +0x4dad4dc2, +0x4d4d4e19, +0x4dab4df1, +0x4da84d76, +0x4e554d60, +0x4e584dab, +0x4e074d6a, +0x4d824d48, +0x4d734e78, +0x4dbe4e49, +0x4d804d0c, +0x4d674dbb, +0x4d344e27, +0x4de14d72, +0x4e814e1d, +0x4e184cf1, +0x4d8d4d84, +0x4e4d4e1b, +0x4e694dd0, +0x4da04dc1, +0x4d7b4e4a, +0x4d4f4dc0, +0x4e1b4de4, +0x4e144da1, +0x4d534e2c, +0x4ecd4d67, +0x4dc24d98, +0x4d374dff, +0x4dcb4deb, +0x4de84cff, +0x4d804e0a, +0x4d6a4dba, +0x4d5c4d78, +0x4d184dbd, +0x4d984d9d, +0x4e534d95, +0x4e9f4d96, +0x4dea4db1, +0x4d7f4ea8, +0x4d7a4d8b, +0x4d5d4de6, +0x4da54d91, +0x4d384da8, +0x4d874ddd, +0x4dfd4d57, +0x4d7b4e38, +0x4e344d9a, +0x4da24e26, +0x4d634dc3, +0x4d544de6, +0x4cfb4dec, +0x4d014d33, +0x4da94d50, +0x4e134da2, +0x4dff4dbf, +0x4de24d20, +0x4d734e2b, +0x4d964e87, +0x4d664ce3, +0x4d8a4d63, +0x4d324e2e, +0x4da94d64, +0x4e994da7, +0x4e264cff, +0x4d794d53, +0x4daf4df7, +0x4e484e47, +0x4dc04d6a, +0x4d4d4ddd, +0x4d9b4dfb, +0x4d674db0, +0x4dfc4ddb, +0x4d4f4d88, +0x4e654cfd, +0x4dca4d56, +0x4cdd4dcb, +0x4db64d73, +0x4dae4d42, +0x4d764e26, +0x4d824d67, +0x4df64dbf, +0x4dbc4e63, +0x4e0f4edf, +0x4ecc4dfc, +0x4f244e07, +0x4e3b4e00, +0x4e764f2d, +0x4d9b4e0c, +0x4e604ecf, +0x4e4e4df9, +0x4dd04e0e, +0x4dfb4e7d, +0x4eab4e65, +0x4e0c4e78, +0x4e4c4e44, +0x4e9f4e70, +0x4e014e78, +0x4e024e8d, +0x4dcd4e1e, +0x4dac4dce, +0x4e114e25, +0x4ee44df9, +0x4eb64e60, +0x4e324dc2, +0x4dad4f0f, +0x4dac4f16, +0x4e754d37, +0x4df54daf, +0x4db64e91, +0x4e514dc3, +0x4f044e1a, +0x4e224dd3, +0x4dd44dcd, +0x4e384e5a, +0x4e7a4e9f, +0x4e594ea4, +0x4e094e63, +0x4dff4e3f, +0x4e1b4e0b, +0x4e7a4e1b, +0x4d964e5f, +0x4e7d4dc5, +0x4e224d96, +0x4d5a4e39, +0x4eb54e54, +0x4e664e10, +0x4e2c4e83, +0x4d5a4e34, +0x4dd14d71, +0x4d844e56, +0x4d864dcc, +0x4e5a4e2f, +0x4ea74dc0, +0x4e254e1e, +0x4d594ea5, +0x4e004d96, +0x4d7f4e1c, +0x4e334d79, +0x4d994d81, +0x4d4f4d92, +0x4dec4d9b, +0x4d444e45, +0x4e434dcf, +0x4dfe4e26, +0x4e014dd8, +0x4dd24e6b, +0x4db84ddd, +0x4dec4d2e, +0x4e0f4de0, +0x4ed94da8, +0x4e7f4da5, +0x4d7b4cfb, +0x4da24e07, +0x4d954e9f, +0x4db74d3b, +0x4dc74da1, +0x4d734dfb, +0x4dfb4d74, +0x4ed74df9, +0x4de74d61, +0x4db04d74, +0x4e054da0, +0x4e674e52, +0x4d864e3b, +0x4ded4dca, +0x4d874d7e, +0x4dec4dee, +0x4df74dd8, +0x4d394e19, +0x4e7b4da2, +0x4de34d5f, +0x4d6e4de7, +0x4e394dad, +0x4e134d1b, +0x4de64dfe, +0x4dd74dad, +0x4de74e08, +0x4e574e3b, +0x4e894ec6, +0x4f6b4eae, +0x4fbb4e5a, +0x4e304e68, +0x4e464f54, +0x4e014e31, +0x4e6e4f2d, +0x4e3e4e0a, +0x4dd64ead, +0x4e124e96, +0x4e8d4e62, +0x4e034ec0, +0x4eec4e58, +0x4eac4ea5, +0x4e684e98, +0x4e204efa, +0x4e0a4e2d, +0x4e364e29, +0x4e6e4e62, +0x4ee74dc5, +0x4ef04e9f, +0x4e0e4e06, +0x4df44f08, +0x4dc94f16, +0x4e984d49, +0x4e734dcd, +0x4e7e4ecb, +0x4e874e22, +0x4f224e90, +0x4ed84dd9, +0x4e274e21, +0x4e734e54, +0x4f3b4e8d, +0x4dfe4e98, +0x4e224ec4, +0x4e794e8b, +0x4e684e10, +0x4e7a4e06, +0x4e1c4ef9, +0x4e9c4e11, +0x4e2a4dc7, +0x4e0c4dec, +0x4e894e55, +0x4f064e5f, +0x4e444eaf, +0x4e104ea0, +0x4dc04dbc, +0x4da84e13, +0x4e0f4e6c, +0x4ee84e94, +0x4f1d4df0, +0x4e334e41, +0x4dbd4f18, +0x4e194df9, +0x4d984e6e, +0x4ddf4d78, +0x4dad4e5e, +0x4d884dbf, +0x4e264e07, +0x4dd34e1c, +0x4ef34e6d, +0x4e3d4e99, +0x4e6b4e3c, +0x4e0e4e6f, +0x4dab4df7, +0x4e204dd2, +0x4dfe4e18, +0x4e684da4, +0x4e3d4e1e, +0x4df24d7f, +0x4dda4eb9, +0x4ddb4ec6, +0x4e1c4d6c, +0x4e234d9e, +0x4d744e36, +0x4e314dd5, +0x4f134e36, +0x4e074d62, +0x4df54d70, +0x4e464e70, +0x4eb44e5d, +0x4de14e6d, +0x4e174e64, +0x4e2f4e36, +0x4e324e29, +0x4dc94dde, +0x4de54e74, +0x4e524de6, +0x4e0e4da3, +0x4daf4e4b, +0x4ebe4dec, +0x4e104dc5, +0x4e8d4e83, +0x4e0d4e13, +0x4e034de6, +0x4d8b4e4f, +0x4e0f4e9b, +0x4ed64ea4, +0x4f1d4dca, +0x4e484e28, +0x4e004eff, +0x4e114e96, +0x4dae4eb8, +0x4e6d4df2, +0x4e1a4e65, +0x4e044e33, +0x4e744e00, +0x4df94eca, +0x4e8c4e32, +0x4e814eac, +0x4e2a4e27, +0x4de14e53, +0x4d9c4df1, +0x4e374dd9, +0x4e2f4e26, +0x4edb4d63, +0x4ebd4e62, +0x4e054dd5, +0x4dd14eb9, +0x4dee4f1c, +0x4e2c4d5f, +0x4e074e1e, +0x4ddf4e03, +0x4dd14dc5, +0x4edb4e05, +0x4e5a4dca, +0x4dd54d80, +0x4e6a4e75, +0x4eb34e69, +0x4e884e49, +0x4e284ea2, +0x4e214ea6, +0x4e2f4e0a, +0x4e434e39, +0x4e074e3b, +0x4e974d9a, +0x4e814d98, +0x4d1d4dd9, +0x4e7c4e15, +0x4e484e15, +0x4e994ec0, +0x4e504e31, +0x4dcf4d4e, +0x4e0f4e16, +0x4d5b4e3d, +0x4ed84dd0, +0x4f4d4dfa, +0x4e5d4dbd, +0x4d9b4e9b, +0x4dcd4e37, +0x4e454e8e, +0x4dfa4d87, +0x4dd64e43, +0x4d8a4e1c, +0x4ddb4e32, +0x4d754e30, +0x4eca4db6, +0x4e084dcd, +0x4e614e13, +0x4dd94e35, +0x4d9e4dbc, +0x4dfe4d85, +0x4e314e2a, +0x4e504d76, +0x4e8e4dcc, +0x4de94d2d, +0x4d8a4eaf, +0x4db04ebd, +0x4def4d28, +0x4db84da2, +0x4dc04e71, +0x4dd94d07, +0x4eec4e0d, +0x4dff4dd4, +0x4ded4d97, +0x4e554e33, +0x4e884e1f, +0x4da14e25, +0x4de94e0d, +0x4dc74e00, +0x4dc94de5, +0x4dd44e36, +0x4df14eae, +0x4ecc4e29, +0x4e1d4d81, +0x4d934e1a, +0x4e674dd0, +0x4e494ddf, +0x4dfc4e29, +0x4e154e4e, +0x4d544d53, +0x4d204dcb, +0x4d7b4d9f, +0x4e614db1, +0x4e2b4d86, +0x4dca4d85, +0x4d8f4e88, +0x4dbd4d7c, +0x4d534dd1, +0x4e334cf8, +0x4d524daa, +0x4d284d77, +0x4db74db3, +0x4d5f4da2, +0x4e404d8b, +0x4d4e4e0a, +0x4d894d44, +0x4ced4dd4, +0x4d234d7e, +0x4d334d3b, +0x4dbe4d97, +0x4e184d4e, +0x4e374d25, +0x4d584cec, +0x4d794dd8, +0x4d8d4e3c, +0x4d564d0e, +0x4d474ce2, +0x4d344dec, +0x4df84d24, +0x4dc04d54, +0x4db24ce1, +0x4d594d4d, +0x4db24d7b, +0x4e114db9, +0x4daa4d44, +0x4d614dc6, +0x4d7d4db8, +0x4dc44d94, +0x4da84d64, +0x4d5b4db3, +0x4e4c4d48, +0x4cf74d38, +0x4ce74dda, +0x4de04de8, +0x4dc44d34, +0x4db94e01, +0x4d314d72, +0x4d8a4d50, +0x4d704e4e, +0x4db34e36, +0x4ec34e2c, +0x4f034de3, +0x4e594e28, +0x4dee4ec1, +0x4dfa4db6, +0x4de54e6c, +0x4dc94d40, +0x4d894e59, +0x4da54dc7, +0x4e484d83, +0x4df24e69, +0x4ebb4e0e, +0x4e394e4c, +0x4e1c4e07, +0x4db94e5c, +0x4d7f4e05, +0x4de64d54, +0x4df74dca, +0x4e504d7c, +0x4e694e43, +0x4e1d4da0, +0x4db84e57, +0x4e234eb1, +0x4e1c4d6d, +0x4e164d74, +0x4dcc4e3b, +0x4e5b4d94, +0x4ec54e25, +0x4e1c4d65, +0x4ded4d5b, +0x4e064e12, +0x4eb64e1a, +0x4dbf4de4, +0x4e3b4e1a, +0x4dff4e57, +0x4e6a4dd6, +0x4e4f4dc5, +0x4d7e4e81, +0x4e844dc1, +0x4dff4dd8, +0x4dc24e2f, +0x4e704db1, +0x4de94de1, +0x4e114e31, +0x4dbf4e46, +0x4da34daa, +0x4dce4dcd, +0x4d784d97, +0x4eeb4e0a, +0x4f2f4ddb, +0x4e554dbe, +0x4e374eca, +0x4d904deb, +0x4dbd4e6f, +0x4e244d88, +0x4d4a4d99, +0x4ceb4dd8, +0x4e534d9c, +0x4d8f4e45, +0x4e404dc8, +0x4dff4e47, +0x4dba4e47, +0x4d964e4b, +0x4db64dc2, +0x4dbc4d80, +0x4dec4d66, +0x4e8e4d6b, +0x4e1c4e05, +0x4da34d0c, +0x4d3a4e61, +0x4d5f4e7c, +0x4db24d0d, +0x4dec4db0, +0x4d724dbd, +0x4db34d40, +0x4e524e06, +0x4e654d18, +0x4d434d80, +0x4dc64e0b, +0x4e714e60, +0x4d924e0e, +0x4d7c4e0a, +0x4d6b4dbb, +0x4d644df5, +0x4d9a4d99, +0x4d524de1, +0x4de84d93, +0x4e124d70, +0x4d204db2, +0x4df94de8, +0x4e624dcb, +0x4dd34e5e, +0x4d5a4d3f, +0x4db84d97, +0x4d814e07, +0x4db24e2e, +0x4f254e2a, +0x4f354ddf, +0x4e844d9b, +0x4df44ecf, +0x4e104e15, +0x4e114e45, +0x4dda4d9c, +0x4d3e4e85, +0x4d9c4e4e, +0x4e494de0, +0x4d844e53, +0x4eb84e03, +0x4e824e40, +0x4e2e4e10, +0x4dd64e7c, +0x4d6f4de8, +0x4de34db7, +0x4db74e01, +0x4e614da6, +0x4e534e0a, +0x4df94dc8, +0x4d8b4ed6, +0x4da44ef9, +0x4dc94dd6, +0x4dee4db2, +0x4d864e8c, +0x4e364d9c, +0x4ebd4e13, +0x4e284d11, +0x4e224d81, +0x4e4f4e2f, +0x4e824ed6, +0x4e174e2f, +0x4d874e48, +0x4e4e4e49, +0x4e454e39, +0x4df74ddc, +0x4df24e29, +0x4eef4dc2, +0x4df44d9b, +0x4d734e4a, +0x4e7e4e0f, +0x4e4c4de6, +0x4e124e43, +0x4de64e38, +0x4e054dca, +0x4da44e41, +0x4dc14e08, +0x4ed44dfa, +0x4ee94d4c, +0x4dd24dfb, +0x4ddc4e70, +0x4dc34d8e, +0x4dec4e7b, +0x4e284d8f, +0x4d794e1d, +0x4db14dde, +0x4dd54df1, +0x4d3a4e31, +0x4e3b4ddd, +0x4df84e47, +0x4d7f4dec, +0x4d7f4e3c, +0x4d624d7f, +0x4dc94d46, +0x4de74df7, +0x4e5c4ddf, +0x4e444dc1, +0x4db34d43, +0x4dae4e4d, +0x4dbf4e60, +0x4de04d71, +0x4dc14dba, +0x4d6d4e2a, +0x4df84dab, +0x4e564de5, +0x4dcc4d64, +0x4dce4e01, +0x4e884e3a, +0x4e6b4dff, +0x4e054e35, +0x4dc44de3, +0x4dc44e69, +0x4df84de5, +0x4e0e4da5, +0x4dc74d96, +0x4ec24d53, +0x4ddf4d82, +0x4d334dac, +0x4e304d9b, +0x4e3b4d97, +0x4e5c4e89, +0x4d9d4db9, +0x4e5c4e27, +0x4e514f2b, +0x4e604ee2, +0x4f9b4f10, +0x4f9e4e52, +0x4e874e9d, +0x4e8b4f8a, +0x4e964e8b, +0x4f344f19, +0x4ece4e0a, +0x4e274eec, +0x4e3e4ea4, +0x4e344eb1, +0x4ea74ed1, +0x4f9a4f40, +0x4e8e4f51, +0x4ec44f25, +0x4ea64f12, +0x4e174e7c, +0x4e734de8, +0x4e454ebf, +0x4f004e3c, +0x4f3d4e94, +0x4ea74e02, +0x4eab4f5b, +0x4e4d4f40, +0x4e794e05, +0x4e814e13, +0x4e9d4f20, +0x4eda4e6d, +0x4f9e4ec8, +0x4ebb4e39, +0x4e674de4, +0x4f434ed6, +0x4f8e4eef, +0x4e5d4edd, +0x4f3b4ebe, +0x4e7a4f37, +0x4ecc4ec0, +0x4ef64f01, +0x4e9d4f29, +0x4ed04e7a, +0x4ef14e93, +0x4e434eb9, +0x4f544eca, +0x4e984e4a, +0x4f334f5d, +0x4e9f4e9e, +0x4ebb4dd7, +0x4e2d4e87, +0x4ed84ed6, +0x4f2b4e71, +0x4f424e32, +0x4e644eb7, +0x4e1a4f8f, +0x4ec84e53, +0x4e5b4e44, +0x4e804e7e, +0x4e184ec2, +0x4e2e4e55, +0x4ec84e9e, +0x4dfb4e5f, +0x4f3b4e68, +0x4e364e83, +0x4e3e4ec6, +0x4e264ee6, +0x4e574e82, +0x4e3d4e3b, +0x4e844e2f, +0x4f3a4e1f, +0x4ebc4e2c, +0x4e4b4e1e, +0x4e2a4f06, +0x4e4a4f35, +0x4e5e4dc1, +0x4e334e0d, +0x4daa4e6b, +0x4e744ddc, +0x4f4e4e61, +0x4e9d4e23, +0x4df84dc1, +0x4ed24e6c, +0x4f254ea7, +0x4e3e4e7b, +0x4e174e69, +0x4e044ed4, +0x4e744e81, +0x4edf4e3a, +0x4e5a4e87, +0x4ea24e63, +0x4eaf4ddd, +0x4db04eac, +0x4efd4ea1, +0x4e884e60, +0x4f254df4, +0x4e344e13, +0x4dd94e0d, +0x4dbd4e1e, +0x4e054e05, +0x4ef74e9b, +0x4ee94e05, +0x4e504e79, +0x4e4d4f3d, +0x4ec14e45, +0x4e114eaa, +0x4e414da2, +0x4df94e50, +0x4dff4e0e, +0x4e444e54, +0x4e1e4e2b, +0x4ef04e8f, +0x4e5a4e44, +0x4e534e65, +0x4e314e7c, +0x4d7c4e00, +0x4e2d4e09, +0x4e184e8c, +0x4e734def, +0x4eb64e1e, +0x4e234d9e, +0x4e624eaa, +0x4e4f4ee7, +0x4e3c4d89, +0x4e804e0f, +0x4e164e2e, +0x4e794df6, +0x4ef94e9e, +0x4e394d5f, +0x4e044d87, +0x4e994eda, +0x4f324e75, +0x4e474e55, +0x4e5a4e23, +0x4e394eb0, +0x4e3b4e6d, +0x4e894e5c, +0x4e164ec6, +0x4f0b4e36, +0x4e1a4d76, +0x4dc44e5b, +0x4e5b4dfb, +0x4e8c4e5f, +0x4e7d4e8b, +0x4df34e14, +0x4da24db1, +0x4dc64e28, +0x4e084e3d, +0x4e7e4df4, +0x4ee44db8, +0x4df94e5c, +0x4db34eee, +0x4e264daf, +0x4dee4e20, +0x4e2e4df8, +0x4d7e4e2a, +0x4d944e32, +0x4e494e1b, +0x4dc44e84, +0x4ead4dff, +0x4e4a4e55, +0x4e074e04, +0x4dac4ebb, +0x4ded4daf, +0x4d9a4d53, +0x4de64dd7, +0x4e3d4d5b, +0x4ea84dff, +0x4da44d9d, +0x4d924e1e, +0x4d3e4e7a, +0x4db54d57, +0x4d964d77, +0x4d7a4e1a, +0x4de04d74, +0x4eb64dba, +0x4e274d49, +0x4dca4d55, +0x4e834e02, +0x4eaf4e6b, +0x4de94e2b, +0x4db54e53, +0x4dd74e0b, +0x4df54dbe, +0x4dc94dd0, +0x4d694e66, +0x4e3b4e0e, +0x4dff4d50, +0x4d654de3, +0x4e0e4dd4, +0x4e524df0, +0x4e3e4ee9, +0x4dbd4e53, +0x4d904d94, +0x4d3c4e41, +0x4d6d4de7, +0x4e974dfa, +0x4e5c4de8, +0x4dfe4dde, +0x4d8a4e81, +0x4dce4d99, +0x4de24e82, +0x4dab4dba, +0x4d4e4dc5, +0x4db54d64, +0x4dcb4d8c, +0x4d744dc9, +0x4e2f4dfa, +0x4db34e29, +0x4d7e4deb, +0x4d9a4ddd, +0x4da24d6e, +0x4d824cdf, +0x4dd14da5, +0x4e454da7, +0x4df14dba, +0x4d324d49, +0x4d3f4e97, +0x4d724e88, +0x4dd34cfe, +0x4d534d33, +0x4d6b4db0, +0x4e024d5f, +0x4e934dcb, +0x4dc54d95, +0x4d864da2, +0x4df44ddf, +0x4e0d4dac, +0x4d3f4dd1, +0x4d424df6, +0x4dac4e24, +0x4da24e2e, +0x4df04db6, +0x4d6f4dd6, +0x4e2f4d6b, +0x4e394d51, +0x4d124dfd, +0x4ded4d9a, +0x4dec4d3a, +0x4e0d4e1b, +0x4dad4dbc, +0x4dd54d87, +0x4dd04e10, +0x4ddf4e3f, +0x4ec64ea2, +0x4f154ddd, +0x4e474df0, +0x4dcc4ed0, +0x4de64dfa, +0x4dd74e44, +0x4e0c4da0, +0x4d9c4db8, +0x4dcf4dde, +0x4e854dfe, +0x4da64e7b, +0x4e734e87, +0x4e394e85, +0x4e464de2, +0x4dc64e55, +0x4d684d80, +0x4e354d9e, +0x4e414e1c, +0x4eab4d37, +0x4ea04e25, +0x4dd54dab, +0x4dc44e40, +0x4e0b4ea6, +0x4ddd4d35, +0x4dec4d6f, +0x4d864e3e, +0x4e1b4dc7, +0x4e7d4dd1, +0x4e564d5b, +0x4dc64d3e, +0x4e414e47, +0x4ea34deb, +0x4e1e4e0b, +0x4d7d4e4f, +0x4e054e69, +0x4de14e07, +0x4df44dd4, +0x4daa4e23, +0x4e504d5c, +0x4e564d8c, +0x4d1b4df2, +0x4e564db1, +0x4e3b4d5c, +0x4e3d4ea7, +0x4dce4dc1, +0x4e1b4dd5, +0x4d934f0a, +0x4e1d4e7e, +0x4f7b4e8c, +0x4f3f4df4, +0x4e5e4e9f, +0x4e214f33, +0x4e7b4e55, +0x4e754ec6, +0x4e954e2f, +0x4df14ead, +0x4e1b4e00, +0x4e694e6a, +0x4dce4f05, +0x4ecc4e65, +0x4e864e72, +0x4e4c4ea7, +0x4e364ef1, +0x4dd84e28, +0x4e834dca, +0x4e654e23, +0x4f314e7f, +0x4e834ebf, +0x4e3d4d66, +0x4e644e9e, +0x4e124eba, +0x4e344d90, +0x4e314e11, +0x4de14e89, +0x4e9f4dca, +0x4f584e43, +0x4e964dc9, +0x4dfa4e38, +0x4eb14e94, +0x4f1b4ed4, +0x4e924ee2, +0x4e864e30, +0x4e4e4eb1, +0x4e744ea0, +0x4ebc4e52, +0x4dd84edd, +0x4ee24e1d, +0x4eb04df0, +0x4dd44e12, +0x4e9e4e3d, +0x4e444e31, +0x4ebb4ecb, +0x4e6d4e2c, +0x4e124dc2, +0x4de34e1c, +0x4df24dfc, +0x4ed44e09, +0x4f494e52, +0x4dc94e69, +0x4e734f08, +0x4e514e21, +0x4e2d4e85, +0x4e0c4da5, +0x4d7b4e09, +0x4dec4de6, +0x4e064e9e, +0x4da24ea8, +0x4eac4e74, +0x4e454e13, +0x4dea4e43, +0x4dbb4e85, +0x4dc44df5, +0x4e184d87, +0x4e204de4, +0x4ebd4dd5, +0x4e404e32, +0x4e074de9, +0x4de14e5a, +0x4e224f32, +0x4e234d57, +0x4dd44ded, +0x4dd44e11, +0x4e5d4dfd, +0x4ed04e9f, +0x4ea84d86, +0x4de34d69, +0x4ec84e2b, +0x4eca4e3c, +0x4de74e2f, +0x4e014e3e, +0x4df24e59, +0x4e3a4e82, +0x4e914e45, +0x4dc04e9a, +0x4e8d4e61, +0x4e314d51, +0x4d964dc1, +0x4e374dad, +0x4e8d4e2b, +0x4dfe4e69, +0x4ddd4e37, +0x4e6d4e19, +0x4e2a4ec5, +0x4e044e9c, +0x4f614ec6, +0x4f724e1f, +0x4e514e4d, +0x4e6a4f2c, +0x4e994e48, +0x4dd04edc, +0x4eb14e2e, +0x4de84e52, +0x4e0a4e5b, +0x4e354e2c, +0x4dd04ef2, +0x4f6d4eff, +0x4eca4ef2, +0x4e6e4e90, +0x4e894ece, +0x4e164dfc, +0x4eb74dcd, +0x4ee74e79, +0x4ec04e2e, +0x4ec04e93, +0x4e5a4dc4, +0x4e174f28, +0x4e444efc, +0x4e774dbc, +0x4eda4df3, +0x4e344ec2, +0x4e784e15, +0x4f874eb2, +0x4f1e4da1, +0x4e724dcb, +0x4e8c4eea, +0x4f224edb, +0x4e544ecd, +0x4e874eb8, +0x4ea34ef0, +0x4e794e57, +0x4e824e85, +0x4e3c4ebb, +0x4ec44e29, +0x4ea84e06, +0x4dc54eb7, +0x4e8a4e31, +0x4eac4e72, +0x4f1d4ed9, +0x4e684e7e, +0x4dd44e35, +0x4dda4e38, +0x4db14e05, +0x4f1a4e5a, +0x4f394e2b, +0x4e964e30, +0x4df64ecf, +0x4ddc4dd0, +0x4ddc4e5e, +0x4e504d6c, +0x4dc04dd5, +0x4d654e05, +0x4e464e16, +0x4dc04e57, +0x4ed24e5c, +0x4e114e79, +0x4e144e1a, +0x4e2f4e85, +0x4dd84dc9, +0x4ddb4d4c, +0x4e354e37, +0x4eb94dba, +0x4ed14dee, +0x4dfc4d7c, +0x4d784e86, +0x4e1e4e88, +0x4dc04d54, +0x4e0f4da2, +0x4db64e83, +0x4e784dc1, +0x4e344e0a, +0x4e834d73, +0x4dce4d8c, +0x4e114e55, +0x4e434e83, +0x4e054e7c, +0x4ddf4e93, +0x4dc44e3f, +0x4e6c4e19, +0x4e544db9, +0x4da34e9e, +0x4e6a4dbe, +0x4e1a4db0, +0x4d7b4e57, +0x4eac4e6e, +0x4e9a4da4, +0x4e7f4e6c, +0x4e0c4de6, +0x4e5d4e70, +0x4e2c4ea9, +0x4e134ee1, +0x4f974e9d, +0x4ff64e21, +0x4e574e48, +0x4e754f7e, +0x4e794e56, +0x4e3f4f65, +0x4e904da0, +0x4e8e4edc, +0x4e514e4d, +0x4e2a4e9c, +0x4e304e9e, +0x4edf4e4c, +0x4e914ef8, +0x4e714eb6, +0x4e484ead, +0x4de34e87, +0x4e294df8, +0x4ebb4e76, +0x4ef64e35, +0x4fa94e9e, +0x4e214dd5, +0x4e4a4ec4, +0x4e0d4f80, +0x4e074e07, +0x4e404e45, +0x4e384ef9, +0x4e674dd3, +0x4ecf4e85, +0x4eaf4dde, +0x4e834e1a, +0x4f2c4e6d, +0x4eab4ee4, +0x4e424e78, +0x4e304e9f, +0x4e274e70, +0x4e554eee, +0x4e9f4e96, +0x4e3e4e9c, +0x4f724e46, +0x4e804e1a, +0x4e044eb9, +0x4ee74e5e, +0x4ec04e43, +0x4e594f4b, +0x4e274e76, +0x4dbf4dd1, +0x4df34ec4, +0x4e044e12, +0x4f884e47, +0x4f9c4e3e, +0x4eb74e70, +0x4e204f21, +0x4ec14e02, +0x4e074f47, +0x4e954e00, +0x4dd64e30, +0x4d9d4dee, +0x4e054e09, +0x4ddb4ec7, +0x4f164e57, +0x4e604e8d, +0x4e2e4e58, +0x4df34ed0, +0x4df64e32, +0x4def4d99, +0x4e3d4e67, +0x4f1d4e21, +0x4ef24e24, +0x4e024da9, +0x4e2d4eea, +0x4e614f3d, +0x4e514de9, +0x4e1e4db4, +0x4e234e8c, +0x4e4f4dc5, +0x4f114e56, +0x4eda4d7f, +0x4e064de8, +0x4e144e52, +0x4f224e97, +0x4e434e29, +0x4e374e97, +0x4e4c4e58, +0x4e694e7f, +0x4e484e35, +0x4de64efe, +0x4e4f4e23, +0x4e554df0, +0x4daf4e59, +0x4e564e32, +0x4ea44dea, +0x4e7f4e72, +0x4e134e22, +0x4d554d97, +0x4d114d67, +0x4d954d7c, +0x4ea24e13, +0x4ef34e15, +0x4db64db7, +0x4d994eb7, +0x4d634e38, +0x4da14df6, +0x4d9c4d6d, +0x4d834dda, +0x4d744db0, +0x4e714db4, +0x4d504e1a, +0x4e264dec, +0x4dd04df3, +0x4d854ddf, +0x4da24dfb, +0x4d824ddc, +0x4d6e4d45, +0x4d8f4d55, +0x4de24d1e, +0x4e5d4d78, +0x4da04d4b, +0x4d4a4e24, +0x4dc84e82, +0x4d734d13, +0x4d5c4d4e, +0x4d894de9, +0x4db54d71, +0x4e4b4e0d, +0x4e2f4d15, +0x4da44d88, +0x4ded4de9, +0x4e274e35, +0x4d4c4dcb, +0x4d594dc5, +0x4da64de3, +0x4dfa4e7e, +0x4dfc4ddc, +0x4d714e23, +0x4e2a4d5d, +0x4daa4d4c, +0x4cff4d9c, +0x4df54ddd, +0x4dd14d8f, +0x4d5f4de1, +0x4d884e4c, +0x4dde4d87, +0x4dd24e24, +0x4e174e20, +0x4f2c4e1d, +0x4f094d91, +0x4e274e23, +0x4e1a4ec8, +0x4e004dcd, +0x4d914e75, +0x4db24d53, +0x4dac4e16, +0x4dfb4e22, +0x4dee4e20, +0x4d7a4e47, +0x4e9e4e7b, +0x4e264dff, +0x4dc34e2e, +0x4da24ec2, +0x4d874dca, +0x4e184da3, +0x4e504dd7, +0x4e924d98, +0x4e144e26, +0x4e334d10, +0x4db04e59, +0x4da14e95, +0x4df64d9b, +0x4deb4d2d, +0x4d764e1b, +0x4df74da5, +0x4ea54dd6, +0x4e654d40, +0x4e044d83, +0x4e6e4df1, +0x4ee24e48, +0x4da74e35, +0x4dd44da9, +0x4db54e79, +0x4dc84e37, +0x4e174d68, +0x4d824e90, +0x4dfe4dec, +0x4d854d30, +0x4d6d4e2a, +0x4e644de9, +0x4e1c4da7, +0x4e024e59, +0x4d964e09, +0x4e014df9, +0x4e854e8b, +0x4e7a4ed5, +0x4eed4e85, +0x4f1c4e77, +0x4eb94e7f, +0x4e454f54, +0x4e354eaa, +0x4e414ec6, +0x4ec84d94, +0x4e374e7b, +0x4df24e55, +0x4e534e9f, +0x4e484ef9, +0x4ee74ebc, +0x4e744eb1, +0x4ddc4ea0, +0x4e524e90, +0x4de64e1c, +0x4e244dbe, +0x4e124e5c, +0x4ebd4dc0, +0x4f144e07, +0x4e154e16, +0x4e164f3c, +0x4e404f0c, +0x4e9d4d4d, +0x4dbc4dff, +0x4e0d4e61, +0x4e524e13, +0x4f064e85, +0x4e794e05, +0x4dcf4d69, +0x4e6b4ed8, +0x4f034e76, +0x4e664e57, +0x4e8f4edb, +0x4e3c4e75, +0x4e9f4e88, +0x4e354e6d, +0x4e304ef2, +0x4e684e50, +0x4e6b4df4, +0x4da24e3d, +0x4ed74e5d, +0x4ec04e33, +0x4eb74f16, +0x4e3a4e7a, +0x4dff4db5, +0x4e034e06, +0x4e3e4e6e, +0x4edb4e52, +0x4f154e09, +0x4e9c4e4b, +0x4d9e4f54, +0x4e424dbe, +0x4e1e4e0c, +0x4e414dd6, +0x4d7b4e17, +0x4deb4de5, +0x4e404df3, +0x4e024e41, +0x4f234e89, +0x4e534e46, +0x4e274e20, +0x4df94ee9, +0x4e384e15, +0x4e144df4, +0x4e014e1a, +0x4ebc4db3, +0x4e774d8c, +0x4dbd4d53, +0x4dde4ed1, +0x4dd44eb1, +0x4e084db1, +0x4da64d6e, +0x4d664e43, +0x4e1d4dbe, +0x4f3f4e10, +0x4e1f4d2a, +0x4dca4da6, +0x4e594e6b, +0x4f214e81, +0x4e234dfd, +0x4e484e33, +0x4e084eb9, +0x4e5c4dd9, +0x4e6e4df8, +0x4dca4e16, +0x4e5c4e50, +0x4e324d71, +0x4d644e43, +0x4ee34dfe, +0x4e664d83, +0x4eeb4e3d, +0x4ddf4e28, +0x4e494e3e, +0x4e3f4ee3, +0x4eac4ef6, +0x4f544ea8, +0x4fdf4ea4, +0x4eb44e91, +0x4e754f8a, +0x4e8e4e81, +0x4e2f4f45, +0x4edd4e26, +0x4e5b4ed4, +0x4de74e64, +0x4e8b4e6b, +0x4e3b4f22, +0x4f344e8e, +0x4edd4ed1, +0x4e274eaf, +0x4e734ef4, +0x4e3b4ea4, +0x4e2d4da0, +0x4e814e7c, +0x4f314e2e, +0x4f484e48, +0x4e7c4e39, +0x4df34f0f, +0x4e194f12, +0x4e4f4dcb, +0x4dea4e16, +0x4e0b4eb6, +0x4ea14e3c, +0x4f804e48, +0x4ed84dd3, +0x4e474e21, +0x4f094f42, +0x4ef04eec, +0x4ec34e6e, +0x4e994ed3, +0x4e244ee3, +0x4eb24ebc, +0x4e8a4e78, +0x4e894f01, +0x4ed74e67, +0x4e374e1d, +0x4e034e9f, +0x4f024e95, +0x4efe4df4, +0x4ee14f55, +0x4e4f4eb7, +0x4dde4d92, +0x4d5d4e21, +0x4e154e90, +0x4ea34e89, +0x4f4c4deb, +0x4e704ec4, +0x4e2f4eda, +0x4e194e38, +0x4e554ecf, +0x4e204dbc, +0x4de44e52, +0x4e1e4de0, +0x4e724db4, +0x4dd54e1b, +0x4ea34e30, +0x4ea34e57, +0x4e314e27, +0x4dd04ede, +0x4e004df6, +0x4e1c4dca, +0x4e2b4e49, +0x4eb64ddc, +0x4ed84e62, +0x4e494d69, +0x4de94eb5, +0x4df24eeb, +0x4e794d4c, +0x4e244dba, +0x4dd04e5b, +0x4e3e4e06, +0x4f2c4e41, +0x4e7a4dbb, +0x4d9f4dff, +0x4e514e54, +0x4f004e3a, +0x4e3d4e88, +0x4e474eaa, +0x4e574eb3, +0x4e264e32, +0x4efc4e80, +0x4e0b4f49, +0x4e9b4dfb, +0x4e314d69, +0x4d4e4deb, +0x4e9a4de8, +0x4e744e12, +0x4e944e6a, +0x4de34e34, +0x4e394de1, +0x4de24e47, +0x4e024e53, +0x4ec54e7e, +0x4f334e01, +0x4dfc4e30, +0x4e5c4f1f, +0x4e304e28, +0x4e234ea0, +0x4e194dd5, +0x4dc94e43, +0x4dd04e8f, +0x4e3e4e3e, +0x4dd44e9a, +0x4f064e31, +0x4e214e76, +0x4e1f4e7f, +0x4e0c4eb7, +0x4dc84dde, +0x4dfe4de7, +0x4e2b4e10, +0x4edf4ded, +0x4e724e37, +0x4e3a4dec, +0x4ddf4ebb, +0x4dbe4ec0, +0x4e874d1e, +0x4e0b4dc6, +0x4de74e5a, +0x4e964dcd, +0x4eda4e66, +0x4e4a4d77, +0x4df54da4, +0x4e4c4e8d, +0x4ede4e68, +0x4dd14e5d, +0x4e2d4e06, +0x4e464e0c, +0x4e154e5e, +0x4e6c4de8, +0x4daa4e54, +0x4ed04df4, +0x4e1a4d80, +0x4dcb4df9, +0x4e1c4dee, +0x4e5c4e17, +0x4e334e8c, +0x4e274dd3, +0x4dbb4d34, +0x4d474e7d, +0x4d0b4dfd, +0x4e684ddc, +0x4ecd4dc6, +0x4d7d4d9c, +0x4d694ee0, +0x4dca4ded, +0x4dcd4e3c, +0x4dbf4d5e, +0x4db04e4c, +0x4d974db2, +0x4d9f4da9, +0x4d2a4e43, +0x4e3d4dab, +0x4dd44e06, +0x4d794daa, +0x4de14de6, +0x4d624e01, +0x4dc74d05, +0x4db44ea2, +0x4e6e4d8b, +0x4e744ddd, +0x4d9a4d00, +0x4ddc4e77, +0x4dd14e8b, +0x4e3f4ccc, +0x4e154d93, +0x4de64e91, +0x4e2d4d2c, +0x4ea14e02, +0x4e3f4daf, +0x4db94d8b, +0x4e0e4dde, +0x4e504de3, +0x4d894e05, +0x4e134e03, +0x4d9c4e4e, +0x4e2d4df4, +0x4e004df6, +0x4ddd4df1, +0x4e684d7e, +0x4e074d6c, +0x4d0b4dca, +0x4dde4dba, +0x4db64e18, +0x4e2b4dc8, +0x4d964dfa, +0x4dc74d85, +0x4dc74e03, +0x4dce4ddd, +0x4f1b4e82, +0x4f6b4e5b, +0x4e3e4ec1, +0x4e4a4f42, +0x4e3c4e5e, +0x4e434e55, +0x4e0d4dbe, +0x4d9f4e30, +0x4df54e29, +0x4e494e4f, +0x4dc14e01, +0x4e7f4e7c, +0x4e1b4e9d, +0x4e554e00, +0x4e254e85, +0x4da94e0b, +0x4e0e4da2, +0x4e9b4e49, +0x4e7f4ded, +0x4ea54df3, +0x4dd64d68, +0x4db54ec1, +0x4e114ed0, +0x4e0c4d68, +0x4e5f4e37, +0x4d984e8a, +0x4e344e15, +0x4ef14e33, +0x4e904dc1, +0x4dfb4dd5, +0x4eb34e50, +0x4f414ebf, +0x4e124e9b, +0x4df54e83, +0x4e2f4e9e, +0x4dfd4e5c, +0x4ea94e64, +0x4e314ec7, +0x4eb64e1b, +0x4e684ddc, +0x4d964e72, +0x4e934e27, +0x4e704dd6, +0x4e374e8a, +0x4e0e4e0b, +0x4db04e2a, +0x4d724e2a, +0x4e194dbf, +0x4ea84e05, +0x4eed4dfa, +0x4e064e02, +0x4de14e93, +0x4da84e4e, +0x4d5d4e27, +0x4e0c4dc5, +0x4e0a4e4f, +0x4da04dc2, +0x4ddf4db7, +0x4dc64e72, +0x4e414e8d, +0x4e354e66, +0x4e214dc7, +0x4df34e2d, +0x4d7e4df3, +0x4e2e4da9, +0x4ded4e07, +0x4e6c4d9d, +0x4ec24e27, +0x4e014d98, +0x4d6e4e73, +0x4d9e4ed1, +0x4de84d36, +0x4e1c4da2, +0x4de24dcb, +0x4e314d8c, +0x4eee4e44, +0x4dd44d69, +0x4de54d7e, +0x4e4f4e35, +0x4e9c4e55, +0x4da44e58, +0x4dd24e09, +0x4dec4e27, +0x4e284e42, +0x4e664e50, +0x4e514e37, +0x4ebe4dd0, +0x4e194d62, +0x4d5a4e4e, +0x4e5d4e12, +0x4e4c4ddc, +0x4e444e8f, +0x4dbe4e84, +0x4dfd4d61, +0x4ddc4ded, +0x4d9c4e50, +0x4e904e71, +0x4f8b4e16, +0x4e684e5d, +0x4e084f60, +0x4e274e2a, +0x4e214f17, +0x4e1d4d68, +0x4de64dea, +0x4d884dd9, +0x4e434e27, +0x4da54e60, +0x4f234e57, +0x4e5f4e7d, +0x4dfe4e69, +0x4d9b4ebf, +0x4de44e4f, +0x4dfa4d8e, +0x4e224e03, +0x4e904df2, +0x4e724e18, +0x4dfe4cf7, +0x4dfa4e7e, +0x4dd44e98, +0x4e424d98, +0x4e024de0, +0x4dcb4ec0, +0x4e5a4d4f, +0x4f154df3, +0x4e514d77, +0x4e024da6, +0x4e2d4de0, +0x4e884ea4, +0x4df14dec, +0x4e5a4e0a, +0x4e024e9c, +0x4e2c4df8, +0x4e9a4e4a, +0x4d924e7b, +0x4e884e1c, +0x4e524ddb, +0x4d6c4e18, +0x4eb14dde, +0x4e2d4dc8, +0x4df04e24, +0x4e1e4dea, +0x4da34daf, +0x4dec4e3a, +0x4d934e70, +0x4e834e3a, +0x4efd4df9, +0x4e514e07, +0x4dde4f5d, +0x4dfc4e0b, +0x4ddc4e45, +0x4dc94d75, +0x4d8d4df3, +0x4da44de0, +0x4e7a4e37, +0x4dc84e46, +0x4ebd4e2e, +0x4e674e27, +0x4e2f4e3e, +0x4d984e5f, +0x4d6e4e5f, +0x4dc74da8, +0x4e314dd5, +0x4e894ddb, +0x4e734de0, +0x4dd94d87, +0x4dae4ea2, +0x4dc94e92, +0x4df14d4f, +0x4df14e02, +0x4de04e69, +0x4e394d7f, +0x4e994dc3, +0x4e694d2f, +0x4d5a4d99, +0x4e3b4e3d, +0x4eac4e74, +0x4e434e2d, +0x4e364e44, +0x4dc24e2d, +0x4e3a4e43, +0x4de64e22, +0x4d644e76, +0x4e7c4e25, +0x4e514dc2, +0x4d574daa, +0x4e554e4f, +0x4df24db5, +0x4e424e66, +0x4e304e18, +0x4e524df6, +0x4da74e8b, +0x4e274e2b, +0x4f5e4e8a, +0x4fd04e20, +0x4ed14e78, +0x4e3b4ef4, +0x4e7c4e31, +0x4de84ec6, +0x4e9b4e00, +0x4df64e95, +0x4e584e8f, +0x4e7a4e3b, +0x4e094ea5, +0x4f194ea0, +0x4e854e5c, +0x4e714e5f, +0x4e664e94, +0x4dfd4e34, +0x4e1d4ddc, +0x4e644e27, +0x4eb24e43, +0x4f304e7d, +0x4e054e1a, +0x4dde4f21, +0x4e6f4f53, +0x4e5e4e0a, +0x4e504dd2, +0x4e054ee9, +0x4e4b4dab, +0x4f2d4eb3, +0x4ec84e0a, +0x4e3f4dbf, +0x4ec04eca, +0x4f2c4ed5, +0x4e3d4e9c, +0x4e314ebc, +0x4e334e9c, +0x4e9c4e4e, +0x4edc4e15, +0x4e684ee4, +0x4ef64dd4, +0x4e524de9, +0x4d9b4ebb, +0x4f284e7b, +0x4e9c4e7d, +0x4e804e77, +0x4e174e9f, +0x4e534e60, +0x4e284e8b, +0x4e474e69, +0x4f884e69, +0x4f2c4dfc, +0x4e754e91, +0x4ecc4f10, +0x4dfa4deb, +0x4e374e6d, +0x4e5c4e21, +0x4dc54ebd, +0x4e474e7f, +0x4e614e82, +0x4df04ea7, +0x4f354eb8, +0x4ea14eac, +0x4e154f06, +0x4df54ea4, +0x4de84e63, +0x4e0d4dd8, +0x4e7f4e25, +0x4e904e50, +0x4ecd4e3d, +0x4e6c4dad, +0x4dd84f1a, +0x4e404f33, +0x4e3e4dfb, +0x4e5f4db5, +0x4e344eeb, +0x4e804dda, +0x4ed44ecc, +0x4e124db3, +0x4e524d87, +0x4ed64e2f, +0x4f174e9c, +0x4e124e5e, +0x4e314e48, +0x4e644e88, +0x4e234e44, +0x4ea34e16, +0x4e0a4e98, +0x4ebc4de2, +0x4e224dfc, +0x4dd54e5b, +0x4ea44e85, +0x4e4f4e42, +0x4e2d4ea1, +0x4d7d4e44, +0x4dad4db5, +0x4d314e2a, +0x4dbc4e06, +0x4e784e4e, +0x4ea34d7e, +0x4db84dc2, +0x4daa4ec4, +0x4de24e42, +0x4dac4e01, +0x4e004dbc, +0x4d714da6, +0x4dd24e01, +0x4db64d92, +0x4d544ec5, +0x4e3f4e7b, +0x4dfc4e0b, +0x4d6c4e05, +0x4d904e96, +0x4d2d4dae, +0x4dc94d7c, +0x4dcc4d91, +0x4e484dab, +0x4e264df2, +0x4dd14da6, +0x4dc34e7d, +0x4e044eab, +0x4dcb4d1f, +0x4da94db2, +0x4d8c4dd1, +0x4df24d8d, +0x4ef94e1c, +0x4e0a4d3c, +0x4d8f4d23, +0x4e274e02, +0x4ea24e29, +0x4dc64e10, +0x4db24de3, +0x4df74e61, +0x4e254df5, +0x4e464de6, +0x4dc84e0f, +0x4e3c4d8f, +0x4ddd4d4e, +0x4cfa4df1, +0x4e724e06, +0x4dda4de3, +0x4e244df9, +0x4d7f4da8, +0x4d954d8f, +0x4dbc4e5a, +0x4daf4ded, +0x4eea4e1c, +0x4ee94db3, +0x4dd24e7d, +0x4df64e60, +0x4e2d4dfd, +0x4df04e5d, +0x4dde4db2, +0x4d4e4de1, +0x4db64dd9, +0x4dcd4de8, +0x4d634dff, +0x4e754dee, +0x4dfd4e5d, +0x4d884e30, +0x4dc44e6f, +0x4d904d8b, +0x4dc24d4e, +0x4e3e4e07, +0x4e794d82, +0x4de04da7, +0x4d8a4d1a, +0x4da74e91, +0x4dcc4e5c, +0x4df74d9d, +0x4dee4d69, +0x4da34e05, +0x4e2d4d41, +0x4ec44e13, +0x4e414cf6, +0x4dad4dc4, +0x4e744d96, +0x4e4b4e66, +0x4da14df8, +0x4ddd4dbe, +0x4d814e12, +0x4dba4da9, +0x4dfb4df4, +0x4dbb4e53, +0x4e134d79, +0x4dfc4d93, +0x4d6e4da8, +0x4dee4ddb, +0x4e714db2, +0x4e154e06, +0x4e104dad, +0x4d9a4dbe, +0x4d824e47, +0x4e0e4e18, +0x4ebd4e70, +0x4eee4e2f, +0x4e164e47, +0x4dee4ed6, +0x4e644e5a, +0x4dfa4e99, +0x4e824dd7, +0x4dd04e32, +0x4e314e4a, +0x4dab4db7, +0x4df74e6f, +0x4ea54e5e, +0x4e3d4e2f, +0x4dee4e1b, +0x4df64e6e, +0x4d944e07, +0x4d9d4d52, +0x4dc14d9a, +0x4e8a4d68, +0x4ed04de5, +0x4e0e4dbc, +0x4df14e82, +0x4deb4eda, +0x4e034d7d, +0x4d9c4d79, +0x4df04e18, +0x4e044dc0, +0x4f3c4e3c, +0x4e534dcf, +0x4dad4d88, +0x4e304e2e, +0x4ea54e7a, +0x4df94dca, +0x4e054e4a, +0x4dca4e9c, +0x4e1c4e18, +0x4e3a4e4d, +0x4dd74ed8, +0x4e564dd2, +0x4e5c4da1, +0x4d664dec, +0x4e624e07, +0x4e5e4e15, +0x4e1d4e30, +0x4e0e4e47, +0x4e014dec, +0x4dfa4e70, +0x4db44e67, +0x4f894e83, +0x4f764e1b, +0x4e2b4e4b, +0x4e794f33, +0x4e1d4e5f, +0x4df14e90, +0x4e534df9, +0x4d954deb, +0x4d814e23, +0x4e1e4e0a, +0x4df04efc, +0x4ee74e8d, +0x4ecb4e99, +0x4e414e37, +0x4e284ece, +0x4dba4deb, +0x4e1d4dd7, +0x4e1e4e40, +0x4eab4e08, +0x4e9e4e61, +0x4e324db5, +0x4df44ed9, +0x4e584f2d, +0x4dd94d91, +0x4e324dd4, +0x4db84e5e, +0x4e4d4dfb, +0x4f3e4e87, +0x4ea34dcc, +0x4e3b4d85, +0x4e954e3a, +0x4efa4ea9, +0x4e564f03, +0x4e594e70, +0x4e7b4e85, +0x4e5e4e0a, +0x4e614e33, +0x4e244edb, +0x4e4e4e24, +0x4e354ddc, +0x4dc24e52, +0x4ecb4e58, +0x4e934dea, +0x4e7a4e7a, +0x4e244e24, +0x4e764e1a, +0x4dcb4e5f, +0x4e374e4c, +0x4ec94ed6, +0x4f1e4de4, +0x4e224e8e, +0x4e5e4eef, +0x4e5b4e26, +0x4e7a4ed3, +0x4e764dbf, +0x4de04e06, +0x4de54e59, +0x4e1f4e66, +0x4dd84e76, +0x4ef84e8d, +0x4e454ed3, +0x4e3d4e84, +0x4df14ef2, +0x4e094df6, +0x4e224d77, +0x4e8a4dc6, +0x4e8f4dcd, +0x4eef4e57, +0x4e404dbc, +0x4deb4f00, +0x4e334e93, +0x4e1a4d66, +0x4dee4dc6, +0x4dd84e42, +0x4e834e23, +0x4ee34e0b, +0x4e634da3, +0x4e1a4dbf, +0x4e8f4e7a, +0x4eed4ede, +0x4e5a4e27, +0x4e2f4e42, +0x4e1d4ea2, +0x4e7e4e16, +0x4e644eab, +0x4dc24ec7, +0x4eca4d9a, +0x4e224e4a, +0x4dd14e54, +0x4e814e67, +0x4e324de7, +0x4e704f41, +0x4ddc4e0d, +0x4deb4da1, +0x4d794e14, +0x4db94e1c, +0x4e734e1a, +0x4ee54dd2, +0x4dbd4dd8, +0x4dd34e94, +0x4e2d4da2, +0x4dda4e62, +0x4e2d4d75, +0x4d3e4e01, +0x4ddb4ddf, +0x4d914e1e, +0x4da94e09, +0x4e7a4e74, +0x4dd44dba, +0x4da44e30, +0x4d814e3e, +0x4d954d95, +0x4e304d81, +0x4e354e23, +0x4e344dbd, +0x4e894e0a, +0x4df74d2f, +0x4dbe4e72, +0x4e284ef1, +0x4dd94d7e, +0x4dd54dc9, +0x4de84e30, +0x4e004da4, +0x4e664e0a, +0x4e044d32, +0x4db94d5e, +0x4e3e4e11, +0x4e6c4de4, +0x4e104e38, +0x4df44db9, +0x4dec4e63, +0x4dd54deb, +0x4e284e2c, +0x4d864e22, +0x4e3e4dd8, +0x4e7e4d27, +0x4cf54dc5, +0x4e4e4e04, +0x4df24e1c, +0x4de04e10, +0x4d534d6b, +0x4e374de7, +0x4e274e87, +0x4e074e9b, +0x4f9e4e87, +0x4faf4e14, +0x4f044edd, +0x4e284f20, +0x4e6d4d9f, +0x4df24f14, +0x4e744e1b, +0x4d6f4e77, +0x4dff4e33, +0x4e754e7c, +0x4e2c4e6e, +0x4f3a4e68, +0x4e8f4ec2, +0x4e354eda, +0x4e424f59, +0x4dfe4e34, +0x4e5b4e42, +0x4e914e3a, +0x4e714e20, +0x4eba4eec, +0x4e1f4e03, +0x4dd84eac, +0x4ead4f57, +0x4de54de8, +0x4e964e17, +0x4db74e7c, +0x4e474ddb, +0x4f174e6a, +0x4e984d7d, +0x4e324e04, +0x4ecf4e82, +0x4f054ed7, +0x4ec64e77, +0x4e3f4ee5, +0x4e834e8f, +0x4e0e4dcd, +0x4e584e9d, +0x4df34eea, +0x4ecb4de0, +0x4e8a4e06, +0x4d674e68, +0x4eef4e5a, +0x4e8b4e05, +0x4e464eff, +0x4dd74e60, +0x4dee4dcc, +0x4db44e78, +0x4db14e61, +0x4edd4e3e, +0x4ede4db1, +0x4e5a4d68, +0x4dd24efb, +0x4e284dfe, +0x4e164ec4, +0x4e554d85, +0x4dc44dff, +0x4dc94e27, +0x4dd24dc7, +0x4d944e79, +0x4e8b4e4e, +0x4e524e6a, +0x4e084dfc, +0x4dff4e1e, +0x4d7b4daf, +0x4da54d51, +0x4e254deb, +0x4e7a4e00, +0x4ea64de4, +0x4ddc4d64, +0x4ddb4ea0, +0x4dfa4e73, +0x4e174d1b, +0x4de84d78, +0x4dc44eb9, +0x4e2e4dc0, +0x4eb64e61, +0x4e6a4dac, +0x4dd04d86, +0x4e204e92, +0x4e5f4e2b, +0x4e2d4df0, +0x4dd74e1b, +0x4e1f4e1d, +0x4e6e4e45, +0x4de84dc8, +0x4dea4e5f, +0x4e5e4dd3, +0x4dee4dda, +0x4d7d4dac, +0x4e3c4e39, +0x4e6e4e22, +0x4e454e77, +0x4dd34e0b, +0x4e334e35, +0x4de74e9c, +0x4e544e4c, +0x4f2a4eeb, +0x4f674e39, +0x4e614e9e, +0x4e504f2b, +0x4eab4e45, +0x4e4f4f08, +0x4e7a4e01, +0x4df94e73, +0x4dd94e88, +0x4e6d4ea5, +0x4dcf4ef7, +0x4f584f2f, +0x4eca4ef7, +0x4e824e71, +0x4e734f22, +0x4e094e35, +0x4e4a4de6, +0x4e584e4c, +0x4f1c4e07, +0x4f1d4ea0, +0x4e884de4, +0x4e274ec8, +0x4df94f13, +0x4e554dc0, +0x4e3b4da9, +0x4df24eb5, +0x4ea04e28, +0x4f564e45, +0x4ebe4dfe, +0x4e2b4db8, +0x4ebc4ea1, +0x4f164ec6, +0x4e5a4e85, +0x4e674e8c, +0x4e114efc, +0x4e7c4e3e, +0x4e664e7b, +0x4df34ecf, +0x4e974e39, +0x4eb34dd1, +0x4e054e47, +0x4eb74e7d, +0x4eca4e7b, +0x4ea04f2b, +0x4e514e2b, +0x4dbf4db9, +0x4db64e60, +0x4da94ec2, +0x4eb24e40, +0x4ee84dd0, +0x4e3d4df1, +0x4e3a4eef, +0x4dfe4e4c, +0x4e524e5e, +0x4e284df0, +0x4de54e65, +0x4d6d4e47, +0x4dd14e02, +0x4dde4e7c, +0x4e874e2f, +0x4e584e9e, +0x4e914e0a, +0x4e054e0c, +0x4d894e1d, +0x4da94d53, +0x4e714e6b, +0x4e8a4df8, +0x4ed84dcd, +0x4e1d4d7f, +0x4d974e77, +0x4d6f4ea3, +0x4e0f4d9d, +0x4e2b4dcb, +0x4dbd4e8e, +0x4e284d96, +0x4f0c4e09, +0x4e534d95, +0x4e324d66, +0x4dfb4e1c, +0x4e914e2a, +0x4dd04ed8, +0x4e1e4e94, +0x4e4a4dd3, +0x4e564dcd, +0x4e7e4e2f, +0x4dd24e22, +0x4e9a4e42, +0x4e3c4ddc, +0x4d974e8a, +0x4e7e4e00, +0x4e5c4d80, +0x4e5e4eba, +0x4e024e47, +0x4c814c99, +0x4cb24d53, +0x4ca44d3f, +0x4dab4d31, +0x4dae4d46, +0x4d3d4ce7, +0x4d004da8, +0x4d0d4d6a, +0x4d0c4d75, +0x4cf54cc1, +0x4cc44d2e, +0x4cac4ccf, +0x4cfa4cfc, +0x4ccd4d7f, +0x4d624d41, +0x4d2f4d43, +0x4cfc4cf8, +0x4d004db4, +0x4cad4cfa, +0x4cf74cf2, +0x4cf24d04, +0x4d564caf, +0x4d5b4cda, +0x4d374cef, +0x4cca4d81, +0x4ca34ddd, +0x4d2d4c50, +0x4cf74c81, +0x4ce24d46, +0x4d384ce5, +0x4de84cf5, +0x4d4f4c6a, +0x4cc34c86, +0x4d5b4d31, +0x4d824d55, +0x4cc04d74, +0x4d274d08, +0x4cd94d0a, +0x4d384cf2, +0x4d294c9b, +0x4d1a4d67, +0x4d1d4d25, +0x4cd04cdd, +0x4c6d4ced, +0x4d724d0d, +0x4d944d3f, +0x4d2d4d5a, +0x4cb84d00, +}; \ No newline at end of file diff --git a/redmule/inc/tensor_dim.h b/redmule/inc/tensor_dim.h new file mode 100644 index 0000000..284125f --- /dev/null +++ b/redmule/inc/tensor_dim.h @@ -0,0 +1,13 @@ + /* Header file generated by RedMulE Golden Model */ +#ifndef __TENSOR_DIM__ +#define __TENSOR_DIM__ + +#define M_SIZE 96 +#define N_SIZE 96 +#define K_SIZE 96 +#define SRC_FMT FP16 +#define DST_FMT FP16 +#define FPFORMAT 16 +uint8_t gemm_ops = GEMM; + +#endif diff --git a/redmule/inc/w_2D.h b/redmule/inc/w_2D.h new file mode 100644 index 0000000..74b1a11 --- /dev/null +++ b/redmule/inc/w_2D.h @@ -0,0 +1,99 @@ + /* Header file generated by RedMulE Golden Model */ +uint16_t w_inp_2D [96][96] = { +0x2d1a, 0x2f9c, 0x3596, 0x38eb, 0x3a5c, 0x3827, 0x3b07, 0x397a, 0x347f, 0x3703, 0x2e26, 0x305c, 0x3ba2, 0x39cd, 0x36fa, 0x3899, 0x38dc, 0x3a60, 0x345b, 0x2d80, 0x36ad, 0x2eb8, 0x34ca, 0x384a, 0x33ef, 0x353e, 0x370e, 0x38f6, 0x3947, 0x387c, 0x3893, 0x38fd, 0x39a9, 0x29fb, 0x39ec, 0x3232, 0x35f8, 0x320c, 0x3b5c, 0x34b6, 0x39e6, 0x2b02, 0x340d, 0x30cc, 0x3b7d, 0x3298, 0x381a, 0x3aa8, 0x3b2b, 0x3605, 0x389e, 0x3a3a, 0x2f2c, 0x3ae4, 0x2cc3, 0x2e6b, 0x3850, 0x3a94, 0x396f, 0x3683, 0x3983, 0x39ea, 0x349f, 0x3b95, 0x28a5, 0x3853, 0x349a, 0x30cc, 0x389b, 0x3595, 0x31f9, 0x3a85, 0x367d, 0x3bbe, 0x3bde, 0x3ae7, 0x3977, 0x3a5d, 0x2497, 0x32ed, 0x39c5, 0x3553, 0x3b87, 0x357c, 0x3868, 0x2fc2, 0x1ad7, 0x3079, 0x3b2f, 0x3570, 0x3a70, 0x3761, 0x29cd, 0x3640, 0x3885, 0x2c6e, +0x3a6c, 0x322b, 0x34e2, 0x1a14, 0x385b, 0x3bdd, 0x3b0f, 0x3548, 0x35d5, 0x3105, 0x39f6, 0x2ce7, 0x365f, 0x286d, 0x3673, 0x3517, 0x3847, 0x3905, 0x34f8, 0x3a5b, 0x2809, 0x38e8, 0x3910, 0x3bce, 0x3aa7, 0x3a98, 0x3a82, 0x318b, 0x39a1, 0x39c7, 0x3960, 0x3206, 0x3320, 0x3893, 0x2e29, 0x391a, 0x28ae, 0x3535, 0x3a37, 0x3821, 0x32de, 0x326d, 0x3196, 0x3b5f, 0x38f2, 0x3b44, 0x3680, 0x3309, 0x3bf2, 0x3bb2, 0x3874, 0x3531, 0x2c98, 0x3648, 0x2d18, 0x2af5, 0x25d7, 0x3a75, 0x38bc, 0x3a77, 0x39bb, 0x3a92, 0x397d, 0x3486, 0x35e3, 0x3917, 0x3805, 0x3001, 0x3619, 0x3952, 0x34c7, 0x3a87, 0x35de, 0x385e, 0x2590, 0x3bb1, 0x2b49, 0x3526, 0x35c5, 0x3963, 0x374e, 0x346a, 0x35d0, 0x3622, 0x2dd8, 0x3aa0, 0x3292, 0x30d8, 0x3883, 0x3ad4, 0x3a22, 0x360f, 0x3424, 0x348f, 0x3886, 0x38f3, +0x3945, 0x3792, 0x3629, 0x3b2b, 0x3bf5, 0x3a69, 0x3199, 0x3b84, 0x35c4, 0x3b13, 0x27a5, 0x3b8a, 0x393d, 0x3a14, 0x3a40, 0x35e7, 0x3a6a, 0x38ad, 0x3bb9, 0x24d8, 0x3b90, 0x3797, 0x3716, 0x384e, 0x3832, 0x3855, 0x39c3, 0x39de, 0x2684, 0x3627, 0x35f0, 0x3a86, 0x3995, 0x2abc, 0x347a, 0x2409, 0x2758, 0x3664, 0x3ae9, 0x1eb1, 0x386a, 0x33dd, 0x3413, 0x243b, 0x3b5b, 0x36fb, 0x38ab, 0x39cb, 0x38e8, 0x308c, 0x3be2, 0x30c8, 0x382c, 0x3bcc, 0x3b0f, 0x30e7, 0x31b4, 0x2adb, 0x2354, 0x2c7e, 0x3774, 0x3299, 0x3574, 0x3b35, 0x38a3, 0x3836, 0x3400, 0x3721, 0x3acb, 0x37da, 0x3688, 0x35d5, 0x3977, 0x3247, 0x2a12, 0x3b36, 0x371a, 0x3750, 0x2ad9, 0x242b, 0x306f, 0x3502, 0x3b35, 0x394d, 0x3646, 0x315d, 0x387d, 0x349f, 0x305a, 0x3a84, 0x3a3e, 0x3be3, 0x3bf9, 0x3580, 0x3b14, 0x3a13, +0x371c, 0x2da9, 0x3995, 0x38be, 0x323e, 0x328d, 0x383d, 0x3991, 0x3a57, 0x38ca, 0x3867, 0x3982, 0x34fd, 0x347c, 0x380f, 0x3074, 0x38d4, 0x34fa, 0x326a, 0x377c, 0x3a52, 0x3abd, 0x3536, 0x226f, 0x319c, 0x3321, 0x393e, 0x3467, 0x3b37, 0x3bc1, 0x3a17, 0x394d, 0x33a2, 0x395d, 0x33e4, 0x3b09, 0x3855, 0x354d, 0x2f53, 0x34e7, 0x375b, 0x35f1, 0x367f, 0x3674, 0x2e07, 0x3ba0, 0x314b, 0x3bce, 0x2c5f, 0x384d, 0x3443, 0x36b1, 0x3973, 0x38d8, 0x340d, 0x3a77, 0x2ec7, 0x3538, 0x2e0e, 0x2d39, 0x3a81, 0x3b54, 0x3bdc, 0x3461, 0x2d5f, 0x3a52, 0x390c, 0x2186, 0x3896, 0x39d5, 0x3868, 0x2171, 0x303e, 0x3b19, 0x3915, 0x3be0, 0x39cb, 0x34ce, 0x357f, 0x394b, 0x39d3, 0x3af8, 0x3855, 0x3430, 0x36d6, 0x38bd, 0x3ad5, 0x38f4, 0x252e, 0x3b49, 0x36b0, 0x32b2, 0x3610, 0x3baa, 0x398b, 0x3ac1, +0x3655, 0x2ad4, 0x38e1, 0x3a9a, 0x37b9, 0x3027, 0x3889, 0x3017, 0x3baf, 0x32b8, 0x3922, 0x3984, 0x3ac3, 0x3775, 0x37f5, 0x38f0, 0x3a37, 0x3a8a, 0x283a, 0x1b5c, 0x3998, 0x2c23, 0x380e, 0x3254, 0x3ad7, 0x39f2, 0x328e, 0x36da, 0x370d, 0x2f71, 0x3944, 0x2e44, 0x36d7, 0x362a, 0x370d, 0x38a7, 0x3b99, 0x3850, 0x3111, 0x329d, 0x3bbf, 0x353e, 0x3932, 0x3542, 0x2ab8, 0x3bf2, 0x312c, 0x3070, 0x3983, 0x3882, 0x3aa6, 0x39fd, 0x384b, 0x3a76, 0x3b1f, 0x312a, 0x183e, 0x362e, 0x347e, 0x38cf, 0x3186, 0x38eb, 0x1c0b, 0x2def, 0x33ec, 0x3b0f, 0x387e, 0x344f, 0x3b28, 0x367f, 0x3661, 0x382a, 0x28c2, 0x3980, 0x3709, 0x3875, 0x3922, 0x37fb, 0x36a9, 0x2f28, 0x36c2, 0x30c6, 0x3bcf, 0x3aba, 0x3965, 0x3397, 0x39ab, 0x3812, 0x344e, 0x39ff, 0x3866, 0x3895, 0x3ba0, 0x3a13, 0x3a1b, 0x35ef, +0x382a, 0x34ad, 0x39c7, 0x2ef8, 0x377e, 0x3915, 0x3beb, 0x3a4f, 0x35e7, 0x3465, 0x3668, 0x3404, 0x3233, 0x3361, 0x3b7e, 0x3702, 0x3b3b, 0x3834, 0x36e7, 0x3a65, 0x2ed7, 0x3965, 0x3914, 0x34c7, 0x3722, 0x3612, 0x397f, 0x2e03, 0x36b6, 0x2da9, 0x33d1, 0x350e, 0x38af, 0x1b8f, 0x360b, 0x3803, 0x38e4, 0x328a, 0x330b, 0x383c, 0x3501, 0x334b, 0x35bf, 0x395f, 0x394f, 0x359b, 0x3b66, 0x2eee, 0x350f, 0x3759, 0x3a91, 0x3b46, 0x3808, 0x3b0e, 0x38c7, 0x3846, 0x2e4b, 0x2edb, 0x382a, 0x348d, 0x1a8b, 0x3510, 0x39c3, 0x30f8, 0x3758, 0x2fc8, 0x3386, 0x3316, 0x393f, 0x3351, 0x3b46, 0x389f, 0x3312, 0x28a9, 0x34ff, 0x3a51, 0x3b00, 0x36a4, 0x3811, 0x281c, 0x3646, 0x3b42, 0x3453, 0x32ea, 0x2f6b, 0x3a64, 0x2cd4, 0x28d1, 0x3a0b, 0x3276, 0x3b1d, 0x368e, 0x340a, 0x3ac3, 0x3067, 0x3987, +0x25a7, 0x39f4, 0x3b54, 0x38d8, 0x3708, 0x3999, 0x313e, 0x316b, 0x39af, 0x2e81, 0x3667, 0x39e3, 0x3904, 0x391d, 0x383d, 0x3956, 0x36c0, 0x30d0, 0x346d, 0x39cf, 0x3236, 0x354f, 0x377f, 0x326a, 0x3800, 0x3022, 0x3b2f, 0x3b98, 0x3a97, 0x3bca, 0x3a1e, 0x3a5b, 0x337d, 0x385c, 0x2fff, 0x399e, 0x33e3, 0x355a, 0x3835, 0x3a1e, 0x38d5, 0x3791, 0x2f0d, 0x2ef4, 0x3581, 0x397a, 0x3a26, 0x391b, 0x3727, 0x3874, 0x3a25, 0x30ba, 0x2b99, 0x3a8b, 0x345b, 0x3bab, 0x3900, 0x3743, 0x3b73, 0x391a, 0x3bd2, 0x39ea, 0x3599, 0x383b, 0x34c0, 0x34b3, 0x3bf0, 0x396d, 0x3b6f, 0x36f9, 0x350e, 0x3b43, 0x39da, 0x3b16, 0x38af, 0x369c, 0x3530, 0x3a87, 0x3a68, 0x2220, 0x2d27, 0x3a49, 0x2df1, 0x353a, 0x3a08, 0x3bdb, 0x378e, 0x2942, 0x35f0, 0x3618, 0x3897, 0x3946, 0x3b7d, 0x3a44, 0x356f, 0x389f, +0x3bd0, 0x2946, 0x3aa2, 0x3711, 0x3462, 0x369c, 0x3a56, 0x3b59, 0x32ac, 0x3813, 0x2f28, 0x3c00, 0x3404, 0x34dc, 0x29ec, 0x3bf1, 0x393e, 0x3b63, 0x3513, 0x3822, 0x382b, 0x35f2, 0x3b2c, 0x3498, 0x2515, 0x31aa, 0x3a7f, 0x391d, 0x3a54, 0x34ef, 0x353a, 0x3a41, 0x334a, 0x3b6a, 0x376f, 0x3bb0, 0x3821, 0x38c2, 0x3b57, 0x333d, 0x2ba8, 0x368e, 0x3a2c, 0x345b, 0x3b9a, 0x3976, 0x3870, 0x34b5, 0x386c, 0x3916, 0x38cc, 0x32a3, 0x3bd8, 0x30bc, 0x30a7, 0x38bc, 0x3727, 0x38e7, 0x337a, 0x3b34, 0x39b7, 0x391f, 0x27fa, 0x3b3f, 0x3940, 0x3698, 0x3256, 0x3a9b, 0x39c3, 0x2e76, 0x3899, 0x3915, 0x36a4, 0x3606, 0x3bd9, 0x314f, 0x2822, 0x3bba, 0x381b, 0x3252, 0x38dd, 0x2cb9, 0x38f3, 0x385c, 0x348d, 0x3220, 0x31a8, 0x3128, 0x3aed, 0x3903, 0x3be2, 0x3971, 0x29f4, 0x3130, 0x3b11, 0x35d7, +0x3a04, 0x393c, 0x3573, 0x3870, 0x3568, 0x38f5, 0x38a4, 0x353f, 0x3b0f, 0x363a, 0x35de, 0x3241, 0x3b97, 0x2e15, 0x3a8a, 0x3823, 0x38e0, 0x3556, 0x3a96, 0x364f, 0x337a, 0x34e3, 0x342b, 0x3994, 0x3b5c, 0x3b57, 0x3a63, 0x2f0d, 0x3b7a, 0x3a08, 0x3102, 0x34ce, 0x3036, 0x3864, 0x3887, 0x280c, 0x3bb5, 0x38a1, 0x3b71, 0x3b0c, 0x3487, 0x3b6e, 0x3aec, 0x3af6, 0x1cd8, 0x3381, 0x2923, 0x3b78, 0x3597, 0x3528, 0x3afe, 0x39c2, 0x3258, 0x3898, 0x3b8c, 0x2c32, 0x38e1, 0x2f4a, 0x3948, 0x39bb, 0x39cb, 0x386b, 0x3778, 0x3847, 0x2fa6, 0x3b01, 0x3a0c, 0x3a67, 0x3b8e, 0x3959, 0x346b, 0x38ba, 0x34f8, 0x3606, 0x3940, 0x3562, 0x3be6, 0x390c, 0x2d8b, 0x3987, 0x2f30, 0x2d65, 0x36d1, 0x3b44, 0x3421, 0x37cb, 0x3a4a, 0x338e, 0x3693, 0x3699, 0x3521, 0x3aae, 0x3930, 0x391c, 0x3654, 0x3898, +0x36f8, 0x34cd, 0x2149, 0x326e, 0x36fa, 0x3179, 0x2e80, 0x3a76, 0x3027, 0x3847, 0x3b9b, 0x38eb, 0x35c2, 0x34d4, 0x384a, 0x3595, 0x35ab, 0x3937, 0x3668, 0x3953, 0x3697, 0x2d28, 0x3baa, 0x3a75, 0x3889, 0x3996, 0x34d8, 0x39b2, 0x3b7d, 0x37c5, 0x3b60, 0x316d, 0x324c, 0x3a17, 0x35bd, 0x3914, 0x334e, 0x3375, 0x29e3, 0x34a3, 0x3346, 0x39e3, 0x32d6, 0x2b0b, 0x3ac7, 0x3aca, 0x3813, 0x3752, 0x3022, 0x39f7, 0x3971, 0x389f, 0x39c2, 0x3205, 0x3739, 0x38b3, 0x3942, 0x39dc, 0x39db, 0x382a, 0x3abb, 0x3978, 0x3ad0, 0x3568, 0x2c42, 0x3773, 0x31c8, 0x3b9f, 0x3594, 0x3a9a, 0x37c3, 0x31c2, 0x325a, 0x3931, 0x2265, 0x39ab, 0x24b6, 0x3291, 0x3a79, 0x3b31, 0x39ef, 0x3a6b, 0x381f, 0x304d, 0x33fb, 0x39d6, 0x3849, 0x3891, 0x367a, 0x3b66, 0x380e, 0x3481, 0x3b30, 0x2a58, 0x3bf3, 0x35d3, +0x3b73, 0x3bcf, 0x3a9c, 0x3a9f, 0x2d30, 0x3abe, 0x3510, 0x3980, 0x2809, 0x3bed, 0x2477, 0x31d1, 0x37d6, 0x3553, 0x3190, 0x38fd, 0x366f, 0x3917, 0x3bf2, 0x3b54, 0x34f0, 0x2f3f, 0x3b0a, 0x379a, 0x342d, 0x2db5, 0x3105, 0x35a8, 0x39a2, 0x3b84, 0x350e, 0x2c79, 0x3a84, 0x3419, 0x3af7, 0x3508, 0x39e6, 0x3a46, 0x2f9c, 0x3759, 0x2504, 0x37b5, 0x3b2b, 0x39cc, 0x3ae4, 0x38ec, 0x3751, 0x3841, 0x3b66, 0x2811, 0x34ac, 0x380a, 0x3666, 0x38f0, 0x3447, 0x33b7, 0x3bab, 0x388e, 0x2ce5, 0x307c, 0x3588, 0x3bf6, 0x38f9, 0x3b01, 0x340a, 0x3ae9, 0x3890, 0x3995, 0x3b9a, 0x3a50, 0x3751, 0x2cf7, 0x3a1b, 0x3b4b, 0x2474, 0x2eb0, 0x21b8, 0x38cd, 0x38d8, 0x35d6, 0x36f5, 0x240e, 0x29e9, 0x3686, 0x39d1, 0x3575, 0x3b7c, 0x3886, 0x2e72, 0x38d9, 0x34ac, 0x3816, 0x3b69, 0x3b7c, 0x2f10, 0x3428, +0x2aba, 0x3a08, 0x3acf, 0x364d, 0x344d, 0x3adf, 0x3526, 0x3a64, 0x3ad3, 0x34eb, 0x3943, 0x3894, 0x383a, 0x3bab, 0x3183, 0x3928, 0x3999, 0x300a, 0x35c5, 0x37a3, 0x384d, 0x3a84, 0x3959, 0x39ef, 0x360b, 0x350e, 0x36bf, 0x2f32, 0x3410, 0x383c, 0x3952, 0x33ee, 0x3899, 0x30a8, 0x3b1e, 0x30fa, 0x3b5c, 0x359d, 0x3802, 0x390f, 0x3815, 0x140e, 0x35f6, 0x3bfa, 0x38c4, 0x364f, 0x3b7f, 0x3b9f, 0x35a6, 0x3bf3, 0x3a2d, 0x3727, 0x39ab, 0x3944, 0x3ac5, 0x36df, 0x3b27, 0x3a1f, 0x3a69, 0x3994, 0x3673, 0x3b0c, 0x2f2f, 0x3303, 0x319f, 0x3567, 0x3753, 0x3b8f, 0x30f0, 0x3b7b, 0x36dc, 0x2941, 0x2b6c, 0x3ad2, 0x39cb, 0x3884, 0x3a58, 0x3a0c, 0x337a, 0x3a6e, 0x3b94, 0x37d1, 0x38f2, 0x3bf1, 0x3843, 0x2ae6, 0x384b, 0x3bf9, 0x36cb, 0x362e, 0x309a, 0x35ef, 0x36e6, 0x3484, 0x38a4, 0x3457, +0x370e, 0x341f, 0x39c0, 0x3527, 0x393f, 0x3438, 0x2685, 0x375f, 0x3803, 0x38eb, 0x39fe, 0x39b3, 0x380f, 0x3370, 0x2766, 0x3b26, 0x35b6, 0x38ab, 0x3890, 0x26a8, 0x3879, 0x3819, 0x3ae8, 0x3aae, 0x3385, 0x2944, 0x3966, 0x35cc, 0x3641, 0x3a73, 0x3b91, 0x35d5, 0x31f8, 0x34a1, 0x2bbe, 0x3419, 0x369f, 0x3289, 0x98e, 0x2fef, 0x3ad5, 0x3029, 0x3ae0, 0x3b11, 0x3a03, 0x2e69, 0x38ae, 0x2eed, 0x3871, 0x3848, 0x2f40, 0x3946, 0x38bb, 0x3851, 0x39f5, 0x2e9a, 0x38fc, 0x33e4, 0x349f, 0x3b2e, 0x3873, 0x388c, 0x395a, 0x3519, 0x3636, 0x2df3, 0x3bd5, 0x3a94, 0x2e66, 0x38af, 0x2e50, 0x3aff, 0x3b0e, 0x36c8, 0x187b, 0x3733, 0x3a82, 0x3baf, 0x35c4, 0x2f20, 0x3a36, 0x3266, 0x38c6, 0x37e7, 0x31c5, 0x3a24, 0x3805, 0x299b, 0x3b3b, 0x3163, 0x2f34, 0x30d5, 0x38a2, 0x392a, 0x32af, 0x3be7, +0x3377, 0x2cce, 0x36d4, 0x3852, 0x39ad, 0x30e1, 0x397f, 0x380e, 0x3bd1, 0x3ae1, 0x3413, 0x3aa8, 0x3bcf, 0x3b5f, 0x393f, 0x37cf, 0x391e, 0x38a4, 0x3a1c, 0x3778, 0x35ca, 0x3b75, 0x2fe7, 0x2f20, 0x2d50, 0x3b72, 0x37b3, 0x3ba6, 0x37f5, 0x3866, 0x3b8c, 0x382c, 0x2c3e, 0x39ba, 0x3be2, 0x3602, 0x3ba5, 0x38d5, 0x37ed, 0x36d6, 0x3b11, 0x34de, 0x3831, 0x39e8, 0x377f, 0x38e4, 0x363d, 0x2b40, 0x2c1e, 0x304c, 0x3bcc, 0x347f, 0x34d7, 0x313b, 0x3a3b, 0x1f13, 0x379e, 0x331f, 0x2d1c, 0x3778, 0x3550, 0x3a5f, 0x2fea, 0x3ab4, 0x32bb, 0x386c, 0x3690, 0x3787, 0x3a95, 0x367b, 0x385a, 0x3b3b, 0x3b49, 0x387c, 0x38f5, 0x2f80, 0x37d4, 0x3b87, 0x3881, 0x3996, 0x3547, 0x38d2, 0x3ab2, 0x3a1c, 0x3483, 0x3ae7, 0x394d, 0x333c, 0x34df, 0x39e5, 0x3aaf, 0x39e6, 0x30a3, 0x3a4d, 0x3890, 0x34cc, +0x3482, 0x3420, 0x2dcc, 0x310d, 0x38c5, 0x3b6a, 0x38ca, 0x3ba1, 0x3a7c, 0x318a, 0x2d61, 0x3635, 0x39e2, 0x3837, 0x39fe, 0x3842, 0x3574, 0x3992, 0x246c, 0x3565, 0x380e, 0x3712, 0x35e8, 0x3712, 0x38ed, 0x3307, 0x398f, 0x31f3, 0x3a5c, 0x3a73, 0x33ba, 0x3841, 0x35d0, 0x36df, 0x2ce4, 0x366e, 0x38a3, 0x251a, 0x399f, 0x372c, 0x359d, 0x3913, 0x397c, 0x2e64, 0x3861, 0x2d47, 0x3a98, 0x381d, 0x3b60, 0x3b4a, 0x381d, 0x3a0d, 0x3adb, 0x3869, 0x3353, 0x3939, 0x39ad, 0x3114, 0x3b12, 0x3860, 0x39fe, 0x3ba6, 0x247b, 0x3a0e, 0x3206, 0x3b0b, 0x3b25, 0x399f, 0x39b4, 0x3b42, 0x3a81, 0x36bb, 0x3522, 0x349e, 0x3494, 0x3081, 0x3978, 0x3768, 0x2edd, 0x37b4, 0x34d1, 0x3bf8, 0x3ad6, 0x3773, 0x3034, 0x381a, 0x3a52, 0x3771, 0x2b52, 0x3b3d, 0x3b20, 0x3bf8, 0x342f, 0x34f8, 0x3b72, 0x35b4, +0x3029, 0x36c3, 0x39c0, 0x393c, 0x30da, 0x3152, 0x3917, 0x3864, 0x390b, 0x3aea, 0x2c08, 0x36c6, 0x3bcd, 0x3375, 0x35bc, 0x3a2b, 0x3684, 0x368f, 0x3974, 0x37fd, 0x3901, 0x37a4, 0x3729, 0x35a0, 0x3ab0, 0x3251, 0x2857, 0x38ef, 0x2e96, 0x38d6, 0x2cda, 0x331c, 0x39a8, 0x3a44, 0x3a7c, 0x3aa8, 0x3851, 0x3974, 0x3b93, 0x3587, 0x3baf, 0x2eac, 0x37f4, 0x38a7, 0x292d, 0x2fc0, 0x330d, 0x3404, 0x3459, 0x3999, 0x385a, 0x396c, 0x3834, 0x2534, 0x3b44, 0x2ecf, 0x34f6, 0x3632, 0x2898, 0x3511, 0x3514, 0x3bd8, 0x3284, 0x3913, 0x34c4, 0x3967, 0x3845, 0x3ab4, 0x37eb, 0x30b8, 0x3629, 0x39c1, 0x2b02, 0x37f7, 0x31d5, 0x3812, 0x2c1b, 0x2a24, 0x3499, 0x36a7, 0x39c2, 0x3952, 0x351b, 0x3ba0, 0x3706, 0x3896, 0x3600, 0x22c8, 0x3077, 0x3839, 0x36ed, 0x38d4, 0x2fd0, 0x3a29, 0x370c, 0x3bfe, +0x335b, 0x311a, 0x39b1, 0x32aa, 0x3a7e, 0x387f, 0x3846, 0x3a3b, 0x379b, 0x34c4, 0x38dc, 0x2c37, 0x394c, 0x381d, 0x3113, 0x300e, 0x3922, 0x2ddd, 0x30ee, 0x3347, 0x3881, 0x2cb5, 0x311e, 0x3023, 0x384c, 0x3a29, 0x39b9, 0x391d, 0x36ff, 0x38d7, 0x3adf, 0x3892, 0x39d7, 0x3b41, 0x3a26, 0x35cf, 0x2fa9, 0x32ff, 0x3218, 0x34af, 0x3282, 0x2ff1, 0x3823, 0x3249, 0x35c7, 0x3baf, 0x3817, 0x39c2, 0x3799, 0x38e2, 0x39f5, 0x30d1, 0x3934, 0x3696, 0x351b, 0x3586, 0x3adf, 0x3747, 0x3aa0, 0x33d7, 0x3600, 0x3a9a, 0x3b09, 0x3a96, 0x364b, 0x38d2, 0x3b1e, 0x2793, 0x3555, 0x3b85, 0x3460, 0x3747, 0x3a29, 0x21c7, 0x3b24, 0x3b7a, 0x3902, 0x2cd6, 0x379b, 0x2970, 0x3910, 0x38c2, 0x3930, 0x3674, 0x39e6, 0x3ac8, 0x38e2, 0x3841, 0x37a2, 0x3a56, 0x3424, 0x3406, 0x385c, 0x3924, 0x3923, 0x36aa, +0x33bd, 0x37ed, 0x2b2e, 0x3bdc, 0x3ae1, 0x3055, 0x3b41, 0x31d7, 0x3880, 0x3125, 0x3015, 0x282f, 0x3bc1, 0x3bd1, 0x3684, 0x2ca5, 0x344e, 0x3bb1, 0x2094, 0x349a, 0x3211, 0x31bc, 0x3bd1, 0x2d9d, 0x3b07, 0x3b33, 0x350f, 0x3459, 0x3851, 0x36b4, 0x3a84, 0x3965, 0x3a34, 0x3b3c, 0x353d, 0x2ffd, 0x33e6, 0x376b, 0x3272, 0x2e28, 0x3aea, 0x3485, 0x39f4, 0x3955, 0x277e, 0x3bfc, 0x3526, 0x384e, 0x2485, 0x38b2, 0x3101, 0x2fbd, 0x359e, 0x36ba, 0x3aa5, 0x308a, 0x38d1, 0x3434, 0x3ae9, 0x3954, 0x33e0, 0x2ff9, 0x3aa9, 0x3721, 0x2cb5, 0x28e9, 0x3524, 0x3658, 0x3a2f, 0x315c, 0x38d9, 0x396e, 0x383b, 0x3a0a, 0x32fe, 0x3479, 0x2a64, 0x3162, 0x35dd, 0x350b, 0x2c86, 0x3878, 0x346b, 0x2719, 0x204d, 0x38a4, 0x3778, 0x3863, 0x3ae3, 0x3784, 0x3174, 0x3562, 0x3a26, 0x39c4, 0x31b9, 0x3600, +0x2cf9, 0x3a34, 0x3834, 0x346f, 0x3712, 0x29e1, 0x2cfe, 0x3873, 0x3b1f, 0x3bc2, 0x3936, 0x3551, 0x3b8e, 0x3742, 0x39b1, 0x36ab, 0x390f, 0x2a6d, 0x3805, 0x32b1, 0x2e34, 0x3898, 0x3375, 0x3997, 0x3845, 0x3b9a, 0x3bac, 0x3876, 0x392c, 0x3811, 0x3aad, 0x3700, 0x2ab0, 0x340c, 0x3ba5, 0x2d7c, 0x36c7, 0x38dc, 0x3745, 0x2c5c, 0x2d0d, 0x34ee, 0x339e, 0x3565, 0x3983, 0x302c, 0x2cd8, 0x3886, 0x3994, 0x3ba6, 0x38d1, 0x315d, 0x3083, 0x3860, 0x3769, 0x3bf0, 0x33cd, 0x2b0f, 0x360c, 0x380a, 0x3442, 0x3b5b, 0x36eb, 0x3938, 0x3b69, 0x3283, 0x301b, 0x2fb0, 0x3b51, 0x3aa6, 0x2b81, 0x2cfd, 0x3aaa, 0x38fc, 0x3a73, 0x3232, 0x3614, 0x3963, 0x3b01, 0x3b9c, 0x3889, 0x372a, 0x20de, 0x3629, 0x36c0, 0x31ca, 0x3b87, 0x3543, 0x38bf, 0x3aae, 0x37d6, 0x365e, 0x35a4, 0x35da, 0x3962, 0x3741, +0x2910, 0x3478, 0x38b6, 0x355e, 0x3a0a, 0x3969, 0x36b2, 0x3bcd, 0x2633, 0x36d6, 0x395c, 0x39d9, 0x3505, 0x34cf, 0x337f, 0x3560, 0x2f11, 0x3a3d, 0x3386, 0x39ac, 0x38d3, 0x2dbe, 0x3908, 0x3599, 0x2d42, 0x38eb, 0x2d1e, 0x3bb5, 0x3550, 0x377e, 0x387f, 0x2f07, 0x3b2f, 0x37a5, 0x390a, 0x3902, 0x38e8, 0x345a, 0x38a5, 0x378b, 0x2e8d, 0x3ab3, 0x3a78, 0x34d9, 0x341a, 0x3387, 0x289a, 0x2db0, 0x384f, 0x3be6, 0x24e4, 0x3b02, 0x3af5, 0x34b2, 0x2af4, 0x3ae6, 0x337d, 0x3875, 0x34f6, 0x262d, 0x3488, 0x3a14, 0x2cb8, 0x357c, 0x3b96, 0x3208, 0x3969, 0x2bae, 0x3b77, 0x3515, 0x345d, 0x39c9, 0x354d, 0x38cf, 0x3b12, 0x3af9, 0x3a3c, 0x2f0f, 0x3a0b, 0x3075, 0x3859, 0x2045, 0x382e, 0x3901, 0x159e, 0x30fd, 0x2b73, 0x31e0, 0x3bf4, 0x3a46, 0x3afd, 0x2bbe, 0x274d, 0x39dd, 0x2bc7, 0x3450, +0x2ace, 0x3a96, 0x3bae, 0x386d, 0x3a6a, 0x2a87, 0x3913, 0x3618, 0x2cce, 0x391e, 0x3346, 0x3a02, 0x3981, 0x3afe, 0x34da, 0x3aa3, 0x3846, 0x303e, 0x377a, 0x3bc0, 0x2d77, 0x2f1a, 0x3916, 0x3b20, 0x2896, 0x3b93, 0x3a74, 0x24dd, 0x3396, 0x3b7c, 0x3a9b, 0x3b17, 0x366a, 0x1e78, 0x3b60, 0x3153, 0x3844, 0x2aa8, 0x37ab, 0x352c, 0x3455, 0x3a4d, 0x3a7a, 0x3a2f, 0x35bb, 0x358f, 0x3781, 0x2288, 0x2e69, 0x39c4, 0x3534, 0x3ba4, 0x3b8a, 0x398b, 0x3998, 0x392a, 0x3bd5, 0x3a5b, 0x31e5, 0x39af, 0x3a90, 0x3ac1, 0x374e, 0x3791, 0x3aa4, 0x3519, 0x3b0a, 0x398e, 0x3bae, 0x339e, 0x35fe, 0x3ab9, 0x2a73, 0x38b3, 0x388c, 0x3530, 0x2fe3, 0x37b5, 0x3188, 0x3b00, 0x31b2, 0x34de, 0x2f74, 0x397b, 0x3a17, 0x2df1, 0x357a, 0x3882, 0x3958, 0x39f1, 0x3ba4, 0x3864, 0x36f8, 0x33d2, 0x390f, 0x395b, +0x3a33, 0x39ea, 0x3846, 0x3502, 0x29a0, 0x38da, 0x3a62, 0x39c8, 0x3a32, 0x3987, 0x2807, 0x3895, 0x3621, 0x3981, 0x368f, 0x25b3, 0x312e, 0x3bfe, 0x38c8, 0x396d, 0x3b4b, 0x380a, 0x3b65, 0x36ca, 0x3954, 0x3ae0, 0x32f0, 0x33b6, 0x3920, 0x35fd, 0x39b3, 0x2f18, 0x3876, 0x396c, 0x39eb, 0x3b39, 0x3ab4, 0x3b9b, 0x2504, 0x3621, 0x3534, 0x2ea1, 0x33e7, 0x3af5, 0x3965, 0x33ed, 0x38d8, 0x37cc, 0x3682, 0x311b, 0x36e0, 0x2805, 0x3502, 0x38ac, 0x2dfa, 0x39d6, 0x3a41, 0x38e1, 0x3992, 0x38da, 0x3a54, 0x356b, 0x3701, 0x389d, 0x35de, 0x3b8e, 0x3b4c, 0x302b, 0x36b5, 0x2dd3, 0x397b, 0x2e07, 0x3645, 0x3267, 0x38ca, 0x1b3c, 0x3a0b, 0x3821, 0x3881, 0x3a2b, 0x3980, 0x3711, 0x2b68, 0x3a27, 0x38ca, 0x3057, 0x3a56, 0x386a, 0x3bb8, 0x38ca, 0x3152, 0x3683, 0x39c4, 0x2cf6, 0x3351, 0x3903, +0x342c, 0x30b8, 0x3704, 0x38b1, 0x3811, 0x3860, 0x3916, 0x381f, 0x3892, 0x3349, 0x1e6c, 0x30e3, 0x38c8, 0x3b7b, 0x39d3, 0x30df, 0x3bf3, 0x2f61, 0x37fa, 0x396a, 0x3bbe, 0x3872, 0x38c1, 0x3ad8, 0x3624, 0x3536, 0x35bb, 0x3b72, 0x222a, 0x31e0, 0x34d3, 0x2ee5, 0x386d, 0x3a1e, 0x28b7, 0x21e6, 0x37ef, 0x3263, 0x3ae0, 0x211e, 0x38c4, 0x3ba4, 0x380b, 0x3757, 0x34f5, 0x3a18, 0x36fa, 0x3844, 0x39fd, 0x3aa1, 0x3be2, 0x33b5, 0x3523, 0x386c, 0x20a5, 0x314f, 0x3a95, 0x3a54, 0x3bdd, 0x35de, 0x3a9f, 0x398e, 0x3a70, 0x2a6d, 0x3538, 0x31d5, 0x38b4, 0x2199, 0x2bf6, 0x3a4a, 0x3057, 0x31e5, 0x3b51, 0x31d8, 0x398b, 0x2c16, 0x3571, 0x2a31, 0x39cf, 0x3507, 0x3874, 0x3b15, 0x2e8a, 0x36f5, 0x2f3b, 0x3be1, 0x3a1b, 0x38cb, 0x3759, 0x1e24, 0x3b85, 0x3998, 0x30f7, 0x2d7d, 0x3a8a, 0x3378, +0x37a0, 0x3b60, 0x32f2, 0x34cc, 0x3ba4, 0x3b40, 0x35b1, 0x1a3c, 0x239a, 0x3ab0, 0x38cf, 0x3b26, 0x3990, 0x39d7, 0x3b7e, 0x3980, 0x2b0a, 0x3985, 0x3862, 0x3a53, 0x3409, 0x27e2, 0x38f7, 0x3a2f, 0x2dd9, 0x34f1, 0x2dda, 0x395e, 0x375b, 0x3086, 0x3053, 0x3baf, 0x365b, 0x38b6, 0x3a51, 0x34e4, 0x356d, 0x35f9, 0x3b6e, 0x38aa, 0x2d39, 0x34ac, 0x27d5, 0x38c8, 0x280c, 0x1999, 0x36da, 0x31ca, 0x3bf6, 0x31be, 0x37a2, 0x3296, 0x3902, 0x2f66, 0x2f5e, 0x3867, 0x26c6, 0x32c4, 0x3412, 0x2dd7, 0x34a6, 0x3b89, 0x354b, 0x345e, 0x33cd, 0x35ad, 0x3804, 0x3583, 0x37ea, 0x3bcb, 0x30d0, 0x38e3, 0x3100, 0x2c8f, 0x3be4, 0x35e4, 0x35cb, 0x3a5e, 0x3a50, 0x3837, 0x3540, 0x3a4f, 0x3b11, 0x32fb, 0x3949, 0x3870, 0x36e9, 0x3382, 0x3aca, 0x3b72, 0x3b03, 0x3a4d, 0x369f, 0x389c, 0x3a02, 0x27e4, +0x3954, 0x36ba, 0x25e2, 0x3847, 0x357e, 0x38da, 0x361d, 0x3b50, 0x2a0f, 0x3af9, 0x37f1, 0x3831, 0x3bc1, 0x3aaf, 0x32de, 0x3980, 0x3877, 0x3a73, 0x2944, 0x3b22, 0x30e3, 0x357e, 0x3987, 0x26ed, 0x3a5c, 0x3a5e, 0x381a, 0x3ae1, 0x3bc4, 0x3b3e, 0x3579, 0x3835, 0x3ba0, 0x37d2, 0x38b9, 0x2c78, 0x3875, 0x3808, 0x346b, 0x38c6, 0x3970, 0x342d, 0x3104, 0x2b1a, 0x3aa6, 0x3b64, 0x3a9f, 0x36f1, 0x2cac, 0x3b98, 0x3ab5, 0x3ab7, 0x3685, 0x33a5, 0x30ae, 0x3689, 0x3bd4, 0x39c1, 0x3bb8, 0x3566, 0x37bb, 0x2ee2, 0x3036, 0x3a93, 0x35d2, 0x3a4a, 0x3be5, 0x324b, 0x357c, 0x3b9a, 0x3759, 0x39f8, 0x397c, 0x3a80, 0x39d9, 0x39f4, 0x2fbd, 0x390e, 0x3865, 0x39f1, 0x3b87, 0x37c1, 0x3a3f, 0x348c, 0x368b, 0x2714, 0x2a26, 0x32a9, 0x30dc, 0x3a35, 0x371a, 0x3b96, 0x3569, 0x388b, 0x3775, 0x3604, +0x386a, 0x391b, 0x3826, 0x38fd, 0x3156, 0x3bae, 0x3755, 0x38df, 0x391c, 0x3b3b, 0x3aa5, 0x3870, 0x3b20, 0x3a0b, 0x3a85, 0x395f, 0x3a77, 0x3264, 0x2c48, 0x3a8f, 0x3815, 0x3acc, 0x3b2d, 0x3be0, 0x39ac, 0x3a41, 0x3bc0, 0x39f6, 0x3524, 0x3024, 0x2ae0, 0x3b6f, 0x366f, 0x38e7, 0x3a0c, 0x38de, 0x3a12, 0x380b, 0x38ec, 0x3222, 0x308c, 0x3871, 0x381f, 0x3be5, 0x3a0f, 0x3ac7, 0x36fe, 0x3406, 0x331f, 0x354c, 0x379d, 0x373b, 0x380f, 0x37c2, 0x3822, 0x3b8f, 0x3871, 0x3444, 0x3357, 0x3052, 0x35a3, 0x353b, 0x3a18, 0x3b60, 0x3b2e, 0x39f1, 0x1bf8, 0x3b34, 0x3a45, 0x373b, 0x311e, 0x3b4f, 0x3bb9, 0x2f13, 0x390b, 0x38eb, 0x3a53, 0x3712, 0x3ad6, 0x3b2e, 0x3a91, 0x3171, 0x361b, 0x3ad7, 0x3577, 0x37d3, 0x31f3, 0x26d3, 0x2995, 0x3060, 0x3960, 0x38d3, 0x3a9b, 0x1aa9, 0x381e, 0x349b, +0x3485, 0x3be7, 0x3a58, 0x39bb, 0x36de, 0x3456, 0x2a1e, 0x2ed2, 0x2e40, 0x3041, 0x38f1, 0x3beb, 0x3aea, 0x3049, 0x3117, 0x3bf2, 0x3707, 0x3bf3, 0x38e3, 0x3b27, 0x3a88, 0x3b5a, 0x34a6, 0x3b51, 0x39bc, 0x3841, 0x3a1d, 0x3867, 0x35e7, 0x3b46, 0x2916, 0x3a6b, 0x3956, 0x3825, 0x352f, 0x3b66, 0x3975, 0x3637, 0x3b44, 0x356e, 0x387b, 0x34eb, 0x3a4b, 0x384f, 0x3b29, 0x3ad3, 0x3a09, 0x3542, 0x3a39, 0x3551, 0x3889, 0x3429, 0x3637, 0x3bc8, 0x1aee, 0x3b20, 0x3b0a, 0x3994, 0x2fea, 0x3b4b, 0x381d, 0x3758, 0x397e, 0x3861, 0x25cc, 0x391a, 0x28d2, 0x2524, 0x3424, 0x3a6a, 0x34f3, 0x3aca, 0x3a40, 0x34e1, 0x3647, 0x3623, 0x34e9, 0x3786, 0x38a6, 0x3be1, 0x34d6, 0x350c, 0x3bf3, 0x368b, 0x39bb, 0x34e0, 0x39b0, 0x342e, 0x360d, 0x34e3, 0x3867, 0x389a, 0x38d7, 0x31f9, 0x3565, 0x2e93, +0x39a8, 0x3b31, 0x384a, 0x3370, 0x316f, 0x3815, 0x35b5, 0x3594, 0x3bbd, 0x3afe, 0x39be, 0x2276, 0x3805, 0x3b69, 0x3964, 0x33c0, 0x3a3b, 0x3231, 0x3358, 0x2b23, 0x3645, 0x3b99, 0x3735, 0x2255, 0x3595, 0x2f45, 0x381a, 0x257c, 0x3ac7, 0x38e9, 0x381b, 0x36d0, 0x3132, 0x3814, 0x3a17, 0x3ad4, 0x2abf, 0x3887, 0x3424, 0x2e96, 0x3361, 0x341a, 0x38cf, 0x3448, 0x287f, 0x3b1c, 0x3b09, 0x3983, 0x3a6e, 0x375d, 0x3458, 0x383c, 0x3196, 0x3b2f, 0x1cbe, 0x31e6, 0x29c4, 0x3745, 0x395c, 0x3aac, 0x3b2f, 0x38f1, 0x320c, 0x3a9d, 0x375f, 0x3b01, 0x32ef, 0x3531, 0x36d3, 0x3726, 0x3642, 0x2c76, 0x3916, 0x342a, 0x3548, 0x39d7, 0x39de, 0x3c00, 0x3b1e, 0x391a, 0x35e8, 0x3b2b, 0x3645, 0x3a81, 0x3876, 0x37e2, 0x36c8, 0x3b62, 0x3302, 0x1bad, 0x3961, 0x3beb, 0x39a7, 0x3611, 0x381b, 0x3266, +0x3b25, 0x384e, 0x3940, 0x2891, 0x3a32, 0x3828, 0x34f3, 0x3652, 0x3178, 0x2839, 0x3aa2, 0x2a96, 0x2df4, 0x347b, 0x28ad, 0x3699, 0x36ba, 0x32ad, 0x39e5, 0x1c06, 0x340e, 0x3968, 0x387c, 0x3bc6, 0x3839, 0x39d4, 0x2645, 0x38ae, 0x3ae3, 0x367e, 0x3090, 0x34fe, 0x3b6b, 0x2e64, 0x36bb, 0x33ef, 0x2c5a, 0x38ae, 0x36db, 0x3a6e, 0x38ac, 0x39eb, 0x387f, 0x1b0d, 0x3b7c, 0x3461, 0x34cc, 0x3b4f, 0x3045, 0x38e9, 0x35fa, 0x3625, 0x33e7, 0x35f4, 0x3939, 0x35dd, 0x2b8e, 0x3574, 0x3b6a, 0x3921, 0x38de, 0x393e, 0x29f5, 0x2e2c, 0x3a10, 0x39a3, 0x32c2, 0x38e5, 0x38c7, 0x30c3, 0x3b6e, 0x34b3, 0x36f9, 0x38bb, 0x3b24, 0x359f, 0x3308, 0x2d54, 0x3a03, 0x39ee, 0x3a7b, 0x3076, 0x2ab0, 0x3b94, 0x32a7, 0x39b8, 0x3b78, 0x28ce, 0x375d, 0x3209, 0x3385, 0x38f1, 0x38ca, 0x3b51, 0x374e, 0x3593, +0x33ca, 0x33b7, 0x3663, 0x36c1, 0x3831, 0x347e, 0x39f8, 0x34bf, 0x39dc, 0x39e6, 0x2fa9, 0x32d9, 0x3a58, 0x39e5, 0x3116, 0x3026, 0x3b59, 0x3b82, 0x3a92, 0x316a, 0x38c3, 0x2770, 0x38e7, 0x380b, 0x3b2b, 0x380d, 0x32d6, 0x3602, 0x39df, 0x382c, 0x383c, 0x3b76, 0x3647, 0x38f3, 0x36b4, 0x3693, 0x251e, 0x3b19, 0x357e, 0x37d4, 0x37ab, 0x3aee, 0x349f, 0x32ec, 0x3401, 0x3bcc, 0x3145, 0x3845, 0x3b76, 0x38a9, 0x37f4, 0x343b, 0x3933, 0x38fe, 0x3af8, 0x3178, 0x392b, 0x3aed, 0x2f64, 0x3992, 0x39f8, 0x34fe, 0x3737, 0x3a24, 0x3bf9, 0x3a31, 0x3a60, 0x37b6, 0x39ad, 0x3ba5, 0x381d, 0x384d, 0x3702, 0x39d8, 0x379e, 0x38ba, 0x3a79, 0x391a, 0x34ce, 0x2d57, 0x3a7e, 0x35f0, 0x382f, 0x3937, 0x3698, 0x3acc, 0x34ca, 0x382d, 0x35f7, 0x34f7, 0x3b90, 0x374d, 0x380f, 0x2e14, 0x3ac3, 0x3583, +0x36fe, 0x38aa, 0x3abd, 0x3750, 0x2f2d, 0x3906, 0x3aed, 0x32e7, 0x3b42, 0x3823, 0x265f, 0x17f9, 0x248a, 0x38ee, 0x3a11, 0x3b21, 0x35a9, 0x2dd7, 0x35dc, 0x38ed, 0x3860, 0x3989, 0x3229, 0x333d, 0x2c78, 0x30fa, 0x2d3c, 0x3a04, 0x39c2, 0x3895, 0x3a67, 0x2f53, 0x3583, 0x39bd, 0x3a03, 0x3afd, 0x3892, 0x3889, 0x39e5, 0x3825, 0x39dd, 0x3a23, 0x3644, 0x31d1, 0x3875, 0x3a46, 0x38c1, 0x390c, 0x394d, 0x262a, 0x2823, 0x2c94, 0x3645, 0x39f9, 0x3366, 0x3710, 0x2f70, 0x348c, 0x2fa3, 0x3b0e, 0x3241, 0x3491, 0x386f, 0x38b6, 0x34e1, 0x30fc, 0x32cc, 0x37be, 0x3519, 0x334b, 0x389c, 0x34c1, 0x388b, 0x38cf, 0x3980, 0x2463, 0x3a34, 0x32ff, 0x3a3c, 0x3932, 0x3b47, 0x39ab, 0x3a9c, 0x27b6, 0x2d90, 0x35d2, 0x39d2, 0x3a5d, 0x3bf2, 0x3a5f, 0x38e1, 0x3b81, 0x3865, 0x3a31, 0x3b03, 0x3906, +0x35bf, 0x3818, 0x373b, 0x3491, 0x34a9, 0x3b40, 0x2cda, 0x381b, 0x2a00, 0x396e, 0x347a, 0x2d46, 0x2fa1, 0x3bef, 0x3acd, 0x362f, 0x2a7f, 0x3a38, 0x3346, 0x3889, 0x3061, 0x3b20, 0x3836, 0x35a4, 0x3a7d, 0x3487, 0x381a, 0x381f, 0x3977, 0x3862, 0x312a, 0x315e, 0x3841, 0x3453, 0x21f5, 0x363d, 0x2ddb, 0x35bb, 0x3bb4, 0x3b36, 0x382a, 0x36d8, 0x3764, 0x3b9e, 0x26b4, 0x29ce, 0x3451, 0x33ba, 0x37fb, 0x3a4f, 0x2181, 0x35cc, 0x3288, 0x2de2, 0x3a13, 0x2dd5, 0x326d, 0x3731, 0x3931, 0x3b0d, 0x34c6, 0x36bd, 0x38fe, 0x3a0a, 0x283b, 0x38c0, 0x3806, 0x39fa, 0x39a6, 0x39f8, 0x3b09, 0x36dc, 0x385c, 0x329a, 0x3a89, 0x2dbb, 0x39ee, 0x3b65, 0x3436, 0x37e3, 0x3a27, 0x3910, 0x3b43, 0x398c, 0x2efa, 0x3467, 0x39ce, 0x38ae, 0x3567, 0x3484, 0x38e0, 0x327e, 0x2c32, 0x39c1, 0x3b63, 0x35ac, +0x35c1, 0x2d9e, 0x38af, 0x32e3, 0x347f, 0x3855, 0x3527, 0x3850, 0x3b55, 0x3baa, 0x392a, 0x37d9, 0x39d3, 0x3960, 0x3ab0, 0x2ccb, 0x2da9, 0x3990, 0x3b87, 0x2c1c, 0x397d, 0x28f6, 0x397d, 0x3944, 0x30be, 0x3ba4, 0x2f6d, 0x34d4, 0x3416, 0x39e7, 0x398f, 0x3958, 0x3b7b, 0x3a1d, 0x31e6, 0x27fe, 0x3ba0, 0x33b2, 0x3080, 0x35a9, 0x3800, 0x37f6, 0x3965, 0x3594, 0x322e, 0x3b27, 0x3bdb, 0x3b7a, 0x38a6, 0x1848, 0x3b61, 0x3842, 0x3ad2, 0x390f, 0x3b17, 0x3715, 0x3798, 0x33cb, 0x33db, 0x383f, 0x394b, 0x30cb, 0x3bbb, 0x366d, 0x3b5b, 0x38ca, 0x36cb, 0x3558, 0x39f6, 0x3776, 0x388a, 0x35d1, 0x3475, 0x3509, 0x3742, 0x3b15, 0x3ad4, 0x3182, 0x39e7, 0x3b5a, 0x35dd, 0x3751, 0x32b8, 0x349f, 0x3996, 0x3a4c, 0x35e9, 0x266e, 0x37f2, 0x3be3, 0x2525, 0x26af, 0x3282, 0x3810, 0x2cf1, 0x383a, +0x3aa3, 0x399c, 0x3630, 0x38c8, 0x3203, 0x19a2, 0x35e2, 0x38fe, 0x38a2, 0x3b63, 0x3318, 0x231d, 0x3999, 0x3ae9, 0x3132, 0x21b2, 0x2a77, 0x394e, 0x2cf4, 0x3890, 0x38a6, 0x30ff, 0x3be2, 0x3231, 0x3b72, 0x3487, 0x3496, 0x351c, 0x38d6, 0x3944, 0x3949, 0x3b7b, 0x362f, 0x37cd, 0x38f6, 0x3a10, 0x3a93, 0x31be, 0x3b8e, 0x360a, 0x3567, 0x3803, 0x3b16, 0x3b59, 0x3a4e, 0x3770, 0x2d73, 0x3312, 0x382f, 0x30fa, 0x3921, 0x339d, 0x2222, 0x3049, 0x3b4e, 0x3b67, 0x3b07, 0x3b31, 0x34e8, 0x3684, 0x3a09, 0x389b, 0x3999, 0x39d1, 0x3765, 0x37bc, 0x3732, 0x3b35, 0x3819, 0x36ef, 0x38fc, 0x3665, 0x3b96, 0x3015, 0x3847, 0x35e6, 0x3167, 0x34ba, 0x3794, 0x3a6a, 0x35d8, 0x30f4, 0x34c7, 0x3bce, 0x3903, 0x3bf3, 0x3a72, 0x3828, 0x381a, 0x3981, 0x3925, 0x39a1, 0x35f4, 0x35dd, 0x3954, 0x2bc5, +0x3884, 0x2d8e, 0x2a49, 0x383f, 0x15af, 0x3a4c, 0x3af6, 0x3ad8, 0x3847, 0x3b07, 0x3a15, 0x3bdd, 0x3a8c, 0x2caf, 0x364a, 0x3825, 0x2b2c, 0x3a97, 0x33b8, 0x3ac4, 0x347e, 0x36f7, 0x36ed, 0x3131, 0x2bea, 0x3841, 0x3880, 0x39e4, 0x30c3, 0x3b62, 0x32ba, 0x34f0, 0x34c7, 0x396a, 0x3722, 0x384d, 0x3165, 0x3a71, 0x34bf, 0x3018, 0x372c, 0x3876, 0x347f, 0x3be2, 0x117d, 0x3a2c, 0x3917, 0x3895, 0x3a3b, 0x2f92, 0x3b65, 0x3af3, 0x39b3, 0x290c, 0x301b, 0x3a9e, 0x39ef, 0x38d0, 0x34e8, 0x336a, 0x37e8, 0x3685, 0x376e, 0x3b8b, 0x3b4c, 0x35a7, 0x3919, 0x3504, 0x3b59, 0x3a85, 0x2edc, 0x3b32, 0x36bc, 0x21fa, 0x357b, 0x38a6, 0x380d, 0x3969, 0x348c, 0x39cd, 0x2d9a, 0x3818, 0x380e, 0x39f4, 0x35ce, 0x3823, 0x3a29, 0x2c1a, 0x3846, 0x3811, 0x2f33, 0x38a1, 0x382b, 0x355a, 0x3961, 0x3a97, +0x352f, 0x3bec, 0x3a27, 0x3888, 0x39d2, 0x38d8, 0x314c, 0x38c8, 0x3779, 0x2f99, 0x3a5b, 0x3971, 0x3b93, 0x368c, 0x3904, 0x35f5, 0x277f, 0x34f9, 0x3368, 0x3824, 0x3a74, 0x3843, 0x3284, 0x35aa, 0x35b4, 0x372a, 0x35ca, 0x3b2b, 0x3877, 0x37cb, 0x3110, 0x33ad, 0x3ba3, 0x3bba, 0x34e4, 0x36ab, 0x3984, 0x2aac, 0x39ec, 0x38ae, 0x3931, 0x3410, 0x333e, 0x2c45, 0x3482, 0x3868, 0x392c, 0x384e, 0x3678, 0x38ee, 0x395b, 0x38f8, 0x3194, 0x33e2, 0x2af5, 0x397c, 0x32ca, 0x32c3, 0x3913, 0x3309, 0x3bb1, 0x3253, 0x3640, 0x2cc8, 0x3385, 0x28d0, 0x385e, 0x39fd, 0x38cc, 0x3bf6, 0x332e, 0x3be1, 0x3835, 0x3b3e, 0x38cc, 0x38ff, 0x365f, 0x3a09, 0x3a32, 0x3b84, 0x3596, 0x37f3, 0x3431, 0x3af6, 0x3bec, 0x38cd, 0x35ab, 0x3af5, 0x3359, 0x3762, 0x3844, 0x374c, 0x3980, 0x3886, 0x2e62, 0x35cc, +0x3b76, 0x3b5f, 0x2434, 0x35fc, 0x38d5, 0x3095, 0x3944, 0x380e, 0x349f, 0x39d7, 0x3755, 0x3768, 0x3b3a, 0x34ce, 0x3bef, 0x365a, 0x3987, 0x3897, 0x3509, 0x3984, 0x32f8, 0x3b7b, 0x37b9, 0x3a4b, 0x2c86, 0x369a, 0x396d, 0x2d21, 0x3477, 0x39af, 0x3b60, 0x3680, 0x39d7, 0x31d8, 0x3b8a, 0x3aed, 0x3a65, 0x3710, 0x39d3, 0x3bf1, 0x331f, 0x20c0, 0x34f2, 0x34cc, 0x3934, 0x38c5, 0x396b, 0x3894, 0x38fa, 0x33c9, 0x3408, 0x3340, 0x360e, 0x36e6, 0x3942, 0x2f3c, 0x3be4, 0x38f4, 0x35a1, 0x2cf7, 0x3931, 0x3911, 0x39e7, 0x2dcc, 0x3951, 0x334c, 0x3b00, 0x39ad, 0x2370, 0x35ea, 0x3402, 0x37d6, 0x377d, 0x3652, 0x3b56, 0x2cc4, 0x3b1f, 0x35af, 0x3920, 0x3423, 0x398a, 0x35e2, 0x39f1, 0x3ab5, 0x3ae2, 0x345c, 0x31ef, 0x38ef, 0x3bb1, 0x3937, 0x2ae8, 0x3221, 0x3ae9, 0x390d, 0x3b2f, 0x3048, +0x3047, 0x3767, 0x37f7, 0x3bfa, 0x3b33, 0x3a2d, 0x362c, 0x3a93, 0x3b66, 0x391a, 0x31c7, 0x3282, 0x39b9, 0x3454, 0x37b7, 0x3019, 0x3a9a, 0x37b5, 0x2dcd, 0x3618, 0x34db, 0x3471, 0x3b35, 0x3684, 0x385c, 0x38bf, 0x3bd7, 0x3a44, 0x3130, 0x38c8, 0x30cf, 0x37bb, 0x3bcc, 0x3669, 0x3b27, 0x3949, 0x355f, 0x314a, 0x383d, 0x3a20, 0x381c, 0x3bcf, 0x3282, 0x39f3, 0x3a49, 0x3ad9, 0x34aa, 0x3add, 0x3938, 0x3bbe, 0x3650, 0x37f2, 0x2c79, 0x39c4, 0x3304, 0x3a8c, 0x3162, 0x3520, 0x3637, 0x39e3, 0x2478, 0x3803, 0x34dd, 0x3104, 0x37ee, 0x3861, 0x38e8, 0x356c, 0x3be0, 0x3633, 0x395a, 0x3afb, 0x378b, 0x3b8d, 0x2f97, 0x37df, 0x31dd, 0x3475, 0x34f7, 0x36ef, 0x3966, 0x2c50, 0x38a1, 0x2720, 0x39f3, 0x3805, 0x3310, 0x3656, 0x3571, 0x3bd9, 0x3bc0, 0x391c, 0x38d6, 0x2562, 0x1fc8, 0x3524, +0x362a, 0x3a8c, 0x3830, 0x39c7, 0x38ca, 0x3af3, 0x3602, 0x3700, 0x3773, 0x3a78, 0x38f3, 0x22be, 0x3822, 0x2eac, 0x3748, 0x32ee, 0x2a0e, 0x38ed, 0x3830, 0x3401, 0x3971, 0x3a35, 0x3984, 0x3a86, 0x3501, 0x2fe8, 0x3ba3, 0x3587, 0x3895, 0x3858, 0x2d46, 0x3724, 0x3b84, 0x39b6, 0x3a17, 0x3b1f, 0x38a9, 0x33de, 0x3723, 0x367d, 0x3bc4, 0x3817, 0x3b1e, 0x35f1, 0x3abb, 0x373d, 0x2abe, 0x3206, 0x3872, 0x3946, 0x3898, 0x33b2, 0x25fb, 0x36ae, 0x256a, 0x390e, 0x3b3b, 0x34d8, 0x36ba, 0x389b, 0x377a, 0x3b0e, 0x32a6, 0x26f9, 0x39e1, 0x327e, 0x2d58, 0x3bd3, 0x3a7f, 0x38b9, 0x3811, 0x29b7, 0x2816, 0x38f9, 0x3b64, 0x39b6, 0x3a29, 0x30a4, 0x3989, 0x3b73, 0x307a, 0x37c7, 0x372d, 0x3830, 0x390e, 0x315b, 0x335d, 0x3929, 0x3917, 0x374c, 0x34af, 0x3531, 0x34e9, 0x3bcf, 0x3761, 0x3b62, +0x34e5, 0x39e3, 0x3b35, 0x2a57, 0x3688, 0x2f0c, 0x3b87, 0x3bdd, 0x358d, 0x381a, 0x39ae, 0x2f79, 0x394f, 0x3708, 0x3560, 0x3ada, 0x3480, 0x3af5, 0x3bd8, 0x39d1, 0x3795, 0x2a29, 0x3b0a, 0x3515, 0x3858, 0x3ab4, 0x3968, 0x3660, 0x37b2, 0x3601, 0x36ae, 0x3229, 0x3383, 0x2c30, 0x3a41, 0x3b0d, 0x33ef, 0x3b6b, 0x366f, 0x3b33, 0x3a82, 0x3841, 0x3a89, 0x3bea, 0x3542, 0x328a, 0x3bc9, 0x34f2, 0x3ac0, 0x3067, 0x3311, 0x38f4, 0x23d0, 0x3964, 0x38b1, 0x390c, 0x3a9f, 0x28bb, 0x3ac1, 0x39e6, 0x31dd, 0x2f55, 0x3a19, 0x3a51, 0x3a38, 0x2841, 0x381a, 0x3938, 0x36ea, 0x3be0, 0x3b35, 0x39c1, 0x2fef, 0x37ec, 0x389f, 0x3b72, 0x37b9, 0x3bf7, 0x325d, 0x38e9, 0x333d, 0x39ce, 0x2e79, 0x3682, 0x37c1, 0x38b9, 0x3990, 0x37fd, 0x3302, 0x32a6, 0x2a69, 0x3831, 0x2b59, 0x3b48, 0x35b4, 0x2aed, +0x37e2, 0x340a, 0x3279, 0x3723, 0x397d, 0x3839, 0x39ec, 0x3025, 0x3803, 0x3b54, 0x3a70, 0x3b7d, 0x2f2a, 0x315c, 0x35ed, 0x3ace, 0x3845, 0x3bee, 0x3870, 0x3492, 0x380e, 0x3431, 0x3a47, 0x3a33, 0x38ae, 0x3a40, 0x3908, 0x33c5, 0x38db, 0x3b24, 0x3847, 0x32a3, 0x3959, 0x3a36, 0x35c4, 0x3960, 0x396f, 0x3786, 0x38ef, 0x36e7, 0x35c3, 0x3a28, 0x3893, 0x3b2c, 0x2e03, 0x374d, 0x3489, 0x3bf4, 0x38fb, 0x35b2, 0x38c1, 0x3a0f, 0x394f, 0x35e0, 0x34bd, 0x3bcc, 0x3be1, 0x315f, 0x2a41, 0x308d, 0x2e5d, 0x3a02, 0x2e99, 0x3b1a, 0x3b6c, 0x3ba1, 0x38da, 0x395a, 0x3877, 0x39ec, 0x3855, 0x2fd6, 0x2857, 0x2e1d, 0x3677, 0x3034, 0x3136, 0x3880, 0x327c, 0x38a3, 0x243e, 0x3921, 0x3b69, 0x3bca, 0x376e, 0x3998, 0x3b02, 0x3a2b, 0x35c0, 0x3985, 0x3b14, 0x38d5, 0x347b, 0x3adc, 0x3639, 0x3b9f, +0x3b50, 0x3334, 0x38b6, 0x3ae5, 0x3b39, 0x35fa, 0x2752, 0x3ba6, 0x3439, 0x389a, 0x2888, 0x39be, 0x3710, 0x3922, 0x3bbf, 0x3726, 0x2d91, 0x22ef, 0x398f, 0x3465, 0x3ba8, 0x3ad4, 0x39a0, 0x3a55, 0x3a2f, 0x387d, 0x3788, 0x3a19, 0x3926, 0x38a0, 0x383c, 0x3adc, 0x3b84, 0x3518, 0x322f, 0x3773, 0x3a74, 0x31b7, 0x3901, 0x3361, 0x3959, 0x2d8e, 0x3575, 0x2faf, 0x2ccf, 0x39ad, 0x339b, 0x3bcc, 0x3be6, 0x267e, 0x3582, 0x3973, 0x3b23, 0x3513, 0x3946, 0x38c8, 0x3b09, 0x383a, 0x34a6, 0x3aaa, 0x36f8, 0x34af, 0x368d, 0x3beb, 0x361f, 0x357f, 0x3b7f, 0x3ada, 0x37bb, 0x3986, 0x358c, 0x3ac2, 0x3448, 0x3ace, 0x2896, 0x377a, 0x3a2d, 0x3992, 0x381a, 0x389d, 0x3a18, 0x3bec, 0x37ac, 0x384d, 0x3107, 0x3323, 0x36d0, 0x371d, 0x3a21, 0x3b07, 0x2ef3, 0x342a, 0x39e6, 0x3037, 0x39a5, 0x3510, +0x3b81, 0x2559, 0x3914, 0x3883, 0x3534, 0x33e2, 0x29d9, 0x3b82, 0x3bf7, 0x390c, 0x31e3, 0x3af0, 0x2a26, 0x3803, 0x34ec, 0x356f, 0x3aed, 0x3af7, 0x34fc, 0x39f9, 0x3ad2, 0x39f6, 0x3abf, 0x397d, 0x2d55, 0x27f6, 0x3b03, 0x3335, 0x3872, 0x34df, 0x3801, 0x39c9, 0x326f, 0x3a15, 0x3810, 0x22c5, 0x359e, 0x366c, 0x3493, 0x39b2, 0x38c5, 0x3a6d, 0x39b9, 0x33dc, 0x34d7, 0x3b0b, 0x378d, 0x39ed, 0x3566, 0x396a, 0x368e, 0x3a4f, 0x3571, 0x3831, 0x3290, 0x3232, 0x39f4, 0x3915, 0x377d, 0x3af9, 0x3460, 0x31da, 0x23e6, 0x315c, 0x2b67, 0x366b, 0x2ccf, 0x38f8, 0x39c0, 0x37cc, 0x322b, 0x3979, 0x2529, 0x34b5, 0x3759, 0x360c, 0x3180, 0x3962, 0x30d2, 0x394f, 0x3ac5, 0x3b52, 0x371b, 0x3588, 0x3437, 0x34e5, 0x3a58, 0x3bb8, 0x3bd6, 0x3858, 0x3915, 0x3bcc, 0x3835, 0x30c9, 0x259f, 0x3051, +0x399d, 0x3044, 0x382b, 0x3449, 0x3b82, 0x3a4a, 0x38b5, 0x383f, 0x1c23, 0x3b6f, 0x3941, 0x35ff, 0x395e, 0x26c0, 0x3474, 0x39b9, 0x39da, 0x2aca, 0x380a, 0x39c3, 0x393e, 0x39e9, 0x3b77, 0x3a64, 0x345b, 0x3712, 0x38e4, 0x3a97, 0x3451, 0x3a3d, 0x379f, 0x3a01, 0x3642, 0x3b7e, 0x30b6, 0x35d6, 0x39b6, 0x2cb3, 0x383a, 0x3566, 0x3a76, 0x3418, 0x31ac, 0x3ae2, 0x350d, 0x3af6, 0x382c, 0x37b8, 0x339c, 0x3969, 0x379b, 0x36b8, 0x3444, 0x382a, 0x2fab, 0x3727, 0x3b3c, 0x2e19, 0x3643, 0x30d4, 0x284c, 0x388b, 0x3a47, 0x35cc, 0x3945, 0x3470, 0x3ae6, 0x39e5, 0x36fd, 0x38ed, 0x344b, 0x3b7c, 0x39d0, 0x3833, 0x3a38, 0x34f4, 0x3046, 0x3757, 0x371d, 0x25a8, 0x386d, 0x2f66, 0x38a2, 0x2e32, 0x39e3, 0x1969, 0x313d, 0x35f5, 0x3804, 0x28f5, 0x2e8a, 0x342c, 0x3bdc, 0x3ad3, 0x3259, 0x3622, +0x325e, 0x3912, 0x398b, 0x3b70, 0x39cd, 0x3931, 0x2f75, 0x3542, 0x357a, 0x315f, 0x3ac4, 0x374f, 0x32dd, 0x386c, 0x35f1, 0x39b7, 0x38b7, 0x3b2f, 0x3a7b, 0x3b5c, 0x3bef, 0x37f6, 0x3047, 0x386a, 0x3903, 0x3607, 0x3946, 0x3911, 0x399d, 0x3be8, 0x2d83, 0x3a3c, 0x369b, 0x204f, 0x3a4c, 0x3185, 0x38c8, 0x39c3, 0x3075, 0x3542, 0x361d, 0x250f, 0x385d, 0x3485, 0x1ac2, 0x37af, 0x3ab4, 0x2dd4, 0x3595, 0x36de, 0x3add, 0x3564, 0x3566, 0x3b8d, 0x2d55, 0x3629, 0x2c8a, 0x3280, 0x3801, 0x329a, 0x3b20, 0x3b42, 0x3bf0, 0x2f27, 0x3866, 0x2caf, 0x3b40, 0x3922, 0x351e, 0x3925, 0x3b42, 0x3968, 0x39db, 0x3b77, 0x3877, 0x384a, 0x3058, 0x3aaf, 0x3a70, 0x3b33, 0x3685, 0x3b0a, 0x3a8d, 0x2d38, 0x35bb, 0x31b2, 0x36e8, 0x3a79, 0x367e, 0x3a09, 0x3a74, 0x3b9f, 0x3367, 0x37a5, 0x38a3, 0x3949, +0x2bea, 0x2b88, 0x3965, 0x3112, 0x3b79, 0x391b, 0x38a9, 0x38dc, 0x36c4, 0x3ab1, 0x3677, 0x346e, 0x3b44, 0x34b7, 0x3301, 0x381d, 0x3a3a, 0x3254, 0x3b6b, 0x389a, 0x3a65, 0x379d, 0x3178, 0x2df2, 0x3380, 0x385d, 0x383c, 0x36ef, 0x3243, 0x3b7c, 0x38cb, 0x39f5, 0x3144, 0x3336, 0x3a1b, 0x3b54, 0x3983, 0x3b54, 0x3861, 0x34dd, 0x3996, 0x3a96, 0x34ec, 0x2e9e, 0x36db, 0x392f, 0x3164, 0x34df, 0x38fc, 0x35e5, 0x3432, 0x2a1b, 0x39d0, 0x385b, 0x2d25, 0x3405, 0x3809, 0x36f6, 0x3947, 0x3a23, 0x3ba7, 0x3a6f, 0x394f, 0x381c, 0x387e, 0x3aa3, 0x3586, 0x38ba, 0x3aed, 0x2f65, 0x3b77, 0x3921, 0x3843, 0x3652, 0x35ef, 0x39ea, 0x399a, 0x3a10, 0x3b1e, 0x39af, 0x3bac, 0x2f72, 0x3755, 0x38c7, 0x348e, 0x3aaf, 0x32cd, 0x3210, 0x3a78, 0x3462, 0x35a1, 0x327d, 0x38a4, 0x3569, 0x39fe, 0x3809, +0x39d6, 0x3985, 0x2211, 0x36f1, 0x36da, 0x34e8, 0x3bd7, 0x3aa3, 0x370b, 0x2e90, 0x3973, 0x3754, 0x3994, 0x31fe, 0x35e6, 0x3b87, 0x3967, 0x34d6, 0x3a01, 0x3935, 0x3afb, 0x3078, 0x3b9f, 0x31cf, 0x2496, 0x3ab7, 0x345e, 0x31a2, 0x3548, 0x3892, 0x38d8, 0x38e4, 0x3908, 0x340c, 0x3114, 0x37a7, 0x3a05, 0x37db, 0x39ee, 0x3b9e, 0x37e4, 0x375e, 0x27b0, 0x27ee, 0x3b89, 0x3bd6, 0x3911, 0x329d, 0x3596, 0x36b7, 0x38ea, 0x37b5, 0x353e, 0x368e, 0x3a25, 0x3989, 0x29cb, 0x36e2, 0x3b80, 0x390f, 0x3978, 0x359a, 0x3150, 0x3865, 0x3827, 0x2ebb, 0x3afc, 0x3ad8, 0x291b, 0x3b1f, 0x3036, 0x3b4b, 0x3411, 0x2450, 0x3928, 0x382f, 0x3968, 0x32af, 0x36e1, 0x34a0, 0x3076, 0x3289, 0x284d, 0x39ca, 0x3765, 0x2fc3, 0x3ad0, 0x2a90, 0x3a9e, 0x347f, 0x367c, 0x3bee, 0x3982, 0x380e, 0x3623, 0x33d5, +0x33eb, 0x315b, 0x3b82, 0x3901, 0x39d8, 0x3409, 0x394f, 0x38aa, 0x34e5, 0x3b0e, 0x30d8, 0x37db, 0x37cb, 0x32e0, 0x37de, 0x3896, 0x3b9f, 0x3919, 0x3869, 0x3762, 0x3698, 0x2dc6, 0x31ce, 0x3200, 0x36fa, 0x396f, 0x3b96, 0x3890, 0x3ac3, 0x331a, 0x3619, 0x3ac2, 0x2f37, 0x39e4, 0x39a0, 0x2130, 0x391c, 0x3a27, 0x3b7a, 0x3b49, 0x3ba8, 0x3a95, 0x2c78, 0x3a1a, 0x3591, 0x354a, 0x36c1, 0x38ba, 0x392f, 0x37a5, 0x3898, 0x3a9d, 0x3b8f, 0x389f, 0x3a6e, 0x389d, 0x36de, 0x3abe, 0x3669, 0x38f1, 0x391a, 0x3b6f, 0x2987, 0x30aa, 0x3ae7, 0x3709, 0x389a, 0x39a1, 0x34a0, 0x3a1a, 0x3bd0, 0x35d7, 0x3936, 0x3bc9, 0x327a, 0x3a1b, 0x31c8, 0x3be6, 0x3926, 0x3654, 0x317b, 0x39d2, 0x3b54, 0x39ae, 0x2d1e, 0x31a0, 0x30dd, 0x362a, 0x2c28, 0x3020, 0x3585, 0x30c7, 0x3af0, 0x3ad3, 0x3b2b, 0x382f, +0x384d, 0x3ace, 0x3a7d, 0x300d, 0x3a39, 0x3ac5, 0x2b3b, 0x2c05, 0x2dfc, 0x3bee, 0x3b46, 0x343f, 0x3a00, 0x33be, 0x2d9e, 0x3790, 0x3467, 0x3a11, 0x39e5, 0x3943, 0x34b2, 0x393c, 0x2e29, 0x34ae, 0x34dd, 0x2491, 0x3ac2, 0x3279, 0x3a46, 0x318d, 0x389a, 0x2f39, 0x1cb3, 0x37cf, 0x31c3, 0x318a, 0x3172, 0x3b66, 0x357a, 0x3896, 0x3b6b, 0x3a47, 0x3a43, 0x33bc, 0x35f4, 0x39f5, 0x39c1, 0x34fe, 0x39a2, 0x367b, 0x3b19, 0x3bef, 0x3461, 0x39a9, 0x3a35, 0x2bfa, 0x34b4, 0x38fa, 0x3203, 0x332b, 0x39ef, 0x3a2a, 0x3bc2, 0x39ef, 0x364e, 0x3a8c, 0x2fa8, 0x2612, 0x3406, 0x391a, 0x39ff, 0x3bba, 0x3971, 0x2637, 0x3664, 0x3a2b, 0x3053, 0x3bf4, 0x3b2c, 0x3b1f, 0x27e3, 0x3ba0, 0x38ee, 0x388f, 0x3a17, 0x328e, 0x3bcd, 0x306a, 0x3909, 0x38f2, 0x3a16, 0x380b, 0x2e11, 0x38b5, 0x36ba, 0x387a, +0x3a4f, 0x38f9, 0x3862, 0x3525, 0x38ae, 0x34bd, 0x3a07, 0x3881, 0x2e59, 0x3969, 0x3a7a, 0x3b75, 0x2619, 0x399d, 0x314a, 0x39fe, 0x3af1, 0x3a0c, 0x2875, 0x39c6, 0x3887, 0x3ab2, 0x36e8, 0x3497, 0x396f, 0x3567, 0x2ef7, 0x3845, 0x2cd3, 0x3b99, 0x30cc, 0x300d, 0x3a4f, 0x3453, 0x386a, 0x39d5, 0x3beb, 0x392e, 0x3766, 0x3b37, 0x3b57, 0x355c, 0x37fb, 0x3a36, 0x343a, 0x37e1, 0x1f1c, 0x218b, 0x3820, 0x345b, 0x3bd5, 0x329f, 0x3679, 0x3b0f, 0x28d4, 0x3891, 0x3b51, 0x3937, 0x3585, 0x3936, 0x3ace, 0x30fa, 0x384e, 0x3a16, 0x34bf, 0x34f4, 0x3a08, 0x3916, 0x2ed6, 0x3740, 0x382c, 0x3446, 0x3b77, 0x3af7, 0x3a42, 0x284f, 0x366c, 0x36ea, 0x3680, 0x326a, 0x3b5c, 0x3678, 0x3bee, 0x3853, 0x36cc, 0x35c2, 0x2f28, 0x34f6, 0x31d8, 0x38b6, 0x3a7b, 0x3b96, 0x3056, 0x3afc, 0x351a, 0x3570, +0x3439, 0x3a20, 0x3b65, 0x362f, 0x38f8, 0x30e5, 0x3974, 0x38cf, 0x3b7e, 0x3b2d, 0x3828, 0x382c, 0x3979, 0x349c, 0x3b6f, 0x3887, 0x3a3a, 0x3bec, 0x3aee, 0x3abd, 0x3510, 0x3a50, 0x2dcb, 0x31d9, 0x39ed, 0x3a5b, 0x39d6, 0x3a89, 0x3511, 0x3199, 0x39a3, 0x3803, 0x3a02, 0x3bdd, 0x3588, 0x35cb, 0x3a69, 0x3bab, 0x23ea, 0x3750, 0x3b92, 0x3bfc, 0x359f, 0x3bdb, 0x3a6b, 0x3b07, 0x355d, 0x3a0a, 0x39cd, 0x1e5e, 0x38c2, 0x3965, 0x34f4, 0x37d0, 0x35b2, 0x34c8, 0x3ad5, 0x34f4, 0xba8, 0x3b62, 0x380b, 0x3b8f, 0x3ae7, 0x30c0, 0x38a0, 0x3341, 0x323a, 0x32d1, 0x32a8, 0x3413, 0x38bb, 0x37cf, 0x397e, 0x3884, 0x2952, 0x2b54, 0x3b8a, 0x3bd4, 0x3522, 0x3b0f, 0x3888, 0x38e4, 0x38d1, 0x3bfa, 0x3adc, 0x3b72, 0x3bc5, 0x33de, 0x39f6, 0x390e, 0x2fd3, 0x3875, 0x261c, 0x2a54, 0x315d, 0x388a, +0x36a4, 0x38d4, 0x3405, 0x3761, 0x37ae, 0x3650, 0x3065, 0x3b0b, 0x283f, 0x3a67, 0x360c, 0x3b9c, 0x2eea, 0x2e99, 0x349f, 0x3849, 0x3b43, 0x3744, 0x3834, 0x3852, 0x36e7, 0x3835, 0x3499, 0x2ee3, 0x3aa2, 0x3823, 0x31c2, 0x380c, 0x354c, 0x37f5, 0x324c, 0x302b, 0x34bf, 0x26e6, 0x39a0, 0x3068, 0x2e1d, 0x3061, 0x3b24, 0x33a7, 0x3ada, 0x38a5, 0x37c3, 0x39a0, 0x3aa0, 0x382f, 0x21e9, 0x3a36, 0x3a8b, 0x395a, 0x343d, 0x3837, 0x361d, 0x33af, 0x3b87, 0x399b, 0x3904, 0x344a, 0x3a10, 0x3b08, 0x348c, 0x2fc7, 0x3239, 0x390b, 0x384c, 0x34c6, 0x2873, 0x357c, 0x32b6, 0x3ae5, 0x3bb4, 0x30f2, 0x39e7, 0x2b6a, 0x3969, 0x39ab, 0x3316, 0x3638, 0x3a22, 0x3505, 0x35f5, 0x3b42, 0x3372, 0x33e5, 0x322a, 0x3a8f, 0x36be, 0x3982, 0x341d, 0x3510, 0x3714, 0x3871, 0x3a56, 0x3739, 0x3457, 0x3822, +0x35ee, 0x3bb5, 0x357c, 0x3a66, 0x3bfe, 0x3469, 0x37e0, 0x39c0, 0x2c91, 0x3805, 0x31c4, 0x39e4, 0x32f9, 0x3140, 0x2ef9, 0x389c, 0x38e8, 0x3404, 0x2d4b, 0x36fd, 0x32a8, 0x397e, 0x3939, 0x2c8f, 0x327d, 0x341a, 0x35eb, 0x36bb, 0x307c, 0x3a9c, 0x3b25, 0x3b83, 0x31b7, 0x377c, 0x3450, 0x34af, 0x2d66, 0x36ab, 0x3520, 0x3648, 0x2e5e, 0x3adc, 0x3422, 0x3b9e, 0x36b4, 0x35ac, 0x3a7b, 0x36ae, 0x39c5, 0x2c2d, 0x3b8f, 0x3998, 0x3a82, 0x2cb5, 0x3a0b, 0x34aa, 0x3895, 0x3811, 0x3545, 0x35b5, 0x39c4, 0x3b43, 0x39ae, 0x355a, 0x2db8, 0x3b7f, 0x3655, 0x354d, 0x34ee, 0x30fb, 0x3a7c, 0x338b, 0x3b6c, 0x2c39, 0x38bb, 0x2de3, 0x3114, 0x38bf, 0x2e01, 0x3483, 0x2964, 0x3828, 0x2da3, 0x3a05, 0x3add, 0x3477, 0x3bf6, 0x3a7a, 0x38a8, 0x34be, 0x2d01, 0x2f9b, 0x29d1, 0x3995, 0x38a1, 0x3632, +0x3629, 0x3451, 0x31ca, 0x3b76, 0x382e, 0x3aad, 0x3a3a, 0x3aed, 0x3471, 0x3b38, 0x2a7b, 0x38f4, 0x3975, 0x383f, 0x30ba, 0x2cbb, 0x3adc, 0x31c2, 0x2ef0, 0x270a, 0x3734, 0x30a5, 0x3481, 0x3764, 0x3a6c, 0x3845, 0x2bfd, 0x3407, 0x3be1, 0x35ba, 0x3163, 0x332f, 0x38ae, 0x3361, 0x38a5, 0x3556, 0x265c, 0x38ac, 0x3869, 0x2d4e, 0x300a, 0x39bd, 0x38ef, 0x372d, 0x2d3e, 0x3a3a, 0x30a2, 0x1e66, 0x3bc7, 0x38c5, 0x3966, 0x3ace, 0x3a34, 0x2d9c, 0x3845, 0x30f3, 0x2c21, 0x3405, 0x2c4f, 0x3629, 0x3bcb, 0x315b, 0x2e94, 0x3399, 0x39a7, 0x3696, 0x377d, 0x36a0, 0x312d, 0x366f, 0x379a, 0x25a6, 0x3808, 0x2da5, 0x2bbf, 0x381d, 0x3a94, 0x3577, 0x31ba, 0x344e, 0x385f, 0x3687, 0x38a7, 0x2a84, 0x399a, 0x317a, 0x3a59, 0x3467, 0x3af3, 0x3b1d, 0x33c8, 0x35cf, 0x3af4, 0x2c27, 0x38ab, 0x2850, +0x3be1, 0x3a7a, 0x363b, 0x3aa9, 0x3af3, 0x37f1, 0x3815, 0x3a54, 0x2d86, 0x3b67, 0x3780, 0x3b73, 0x3755, 0x38a3, 0x3435, 0x2df3, 0x3bc1, 0x32c0, 0x2da1, 0x395b, 0x32a7, 0x377e, 0x3ba5, 0x3ace, 0x3971, 0x3095, 0x3a2b, 0x3780, 0x3a68, 0x3979, 0x392b, 0x38ca, 0x385a, 0x3a82, 0x385f, 0x36e3, 0x3318, 0x2aad, 0x3670, 0x3ba1, 0x3bd0, 0x3a29, 0x3116, 0x390c, 0x3756, 0x3aa6, 0x39f6, 0x31a7, 0x3be8, 0x389c, 0x3248, 0x3608, 0x357a, 0x37bd, 0x37a4, 0x3456, 0x3563, 0x31a3, 0x398a, 0x3940, 0x364b, 0x2273, 0x3847, 0x356c, 0x3574, 0x382e, 0x3b27, 0x39d7, 0x311b, 0x3825, 0x3abb, 0x3bb9, 0x3b33, 0x386f, 0x3b02, 0x3b39, 0x2453, 0x3888, 0x34e1, 0x318d, 0x36df, 0x3ba2, 0x2ba7, 0x3943, 0x3586, 0x38f6, 0x3a2a, 0x3b90, 0x3b00, 0x39f3, 0x3108, 0x3533, 0x3bb7, 0x3264, 0x3aa8, 0x3669, +0x3748, 0x3a5c, 0x3959, 0x3c00, 0x3b73, 0x30f8, 0x2e58, 0x37d5, 0x3836, 0x2e91, 0x3603, 0x38f2, 0x3647, 0x3855, 0x3a9e, 0x3851, 0x24fd, 0x3990, 0x38a2, 0x3aae, 0x314a, 0x39d4, 0x3afd, 0x3a0d, 0x3a94, 0x38d4, 0x3970, 0x35d2, 0x3899, 0x2e93, 0x388f, 0x3850, 0x367f, 0x3bbf, 0x3581, 0x3a5d, 0x261c, 0x3bb3, 0x3594, 0x3988, 0x3b5b, 0x3b6e, 0x37a7, 0x39fa, 0x3a8e, 0x3629, 0x3b1d, 0x3068, 0x38d0, 0x3859, 0x3514, 0x3865, 0x33e0, 0x39f5, 0x20bf, 0x3a8f, 0x2ff9, 0x3bc8, 0x3abf, 0x324d, 0x2b88, 0x3856, 0x38a6, 0x3bd7, 0x38d8, 0x3722, 0x39ee, 0x3947, 0x3794, 0x36a5, 0x3acd, 0x1f3f, 0x3497, 0x39d0, 0x3947, 0x38c7, 0x3a3f, 0x3661, 0x36dd, 0x2c46, 0x3bee, 0x2885, 0x3430, 0x38f7, 0x27b3, 0x3134, 0x3265, 0x2666, 0x3930, 0x3514, 0x2ec0, 0x3985, 0x37ef, 0x3a11, 0x3a70, 0x3578, +0x3a6e, 0x333d, 0x36c8, 0x33e0, 0x27ae, 0x2954, 0x36cc, 0x37db, 0x382f, 0x38cd, 0x3944, 0x3a4b, 0x3671, 0x3966, 0x33a3, 0x3882, 0x3739, 0x349b, 0x39b6, 0x3573, 0x2cbf, 0x374e, 0x2cc0, 0x3af4, 0x34ca, 0x314c, 0x3bb4, 0x3554, 0x3a8b, 0x335f, 0x2d08, 0x387b, 0x37c4, 0x34a9, 0x388d, 0x3884, 0x332e, 0x36de, 0x3590, 0x3803, 0x33dc, 0x28bf, 0x386a, 0x39e4, 0x3b9d, 0x3aff, 0x3b0b, 0x393a, 0x37fa, 0x3577, 0x3bfb, 0x3b19, 0x3422, 0x34cd, 0x39d4, 0x39dc, 0x31b9, 0x38f4, 0x3871, 0x2e80, 0x3b90, 0x3513, 0x363a, 0x39f9, 0x332f, 0x391a, 0x39f9, 0x38fd, 0x3b16, 0x382c, 0x3b91, 0x2fa4, 0x34db, 0x30f4, 0x37c5, 0x392c, 0x3b6f, 0x3835, 0x35ac, 0x379d, 0x3b39, 0x3924, 0x2f94, 0x34b0, 0x3149, 0x307c, 0x3a7e, 0x3656, 0x398a, 0x390f, 0x27f6, 0x31a6, 0x3a80, 0x3582, 0x3863, 0x3ae1, +0x3265, 0x257e, 0x360a, 0x2fc7, 0x3ba9, 0x3515, 0x3a80, 0x3056, 0x37c5, 0x2a16, 0x3915, 0x357a, 0x3556, 0x337e, 0x3af8, 0x3a9f, 0x35aa, 0x3903, 0x2ec4, 0x3751, 0x3a1b, 0x39d2, 0x3b76, 0x34ef, 0x3b5a, 0x394c, 0x3851, 0x3b4b, 0x3bb2, 0x3b80, 0x3bef, 0x3a09, 0x3af7, 0x3902, 0x3711, 0x3704, 0x374b, 0x3325, 0x39ee, 0x385c, 0x32a7, 0x281b, 0x2193, 0x3418, 0x35ac, 0x3800, 0x3a5f, 0x3bf9, 0x37f4, 0x3819, 0x3891, 0x3534, 0x366b, 0x3b04, 0x35b1, 0x3969, 0x3bc5, 0x3856, 0x2e11, 0x3784, 0x3388, 0x36eb, 0x35e3, 0x32f8, 0x2a50, 0x33ed, 0x3989, 0x34b8, 0x3be4, 0x3844, 0x34b0, 0x355e, 0x3a56, 0x3431, 0x345d, 0x389a, 0x366e, 0x3902, 0x3858, 0x38e1, 0x388c, 0x3565, 0x33c4, 0x3b68, 0x372f, 0x307c, 0x3bb9, 0x359f, 0x3a41, 0x3bcf, 0x3bb3, 0x2d88, 0x32f8, 0x354c, 0x3b9e, 0x3ae5, +0x3059, 0x3359, 0x382d, 0x3a91, 0x3bed, 0x28fb, 0x3885, 0x3a3c, 0x39e9, 0x39f7, 0x351e, 0x37e3, 0x3bad, 0x2834, 0x37d1, 0x3839, 0x3ad1, 0x39f3, 0x362f, 0x35ba, 0x3312, 0x3b21, 0x3536, 0x3bfd, 0x3518, 0x201e, 0x2022, 0x3b03, 0x3910, 0x39ce, 0x363c, 0x3b25, 0x3b4f, 0x3be8, 0x3655, 0x38dc, 0x344b, 0x3372, 0x3939, 0x372a, 0x3b86, 0x384e, 0x3b9e, 0x32c3, 0x3bd5, 0x3041, 0x3051, 0x257f, 0x3a6c, 0x3379, 0x2f52, 0x37de, 0x37ac, 0x3734, 0x3447, 0x3bbc, 0x3aaf, 0x38eb, 0x384a, 0x3ad6, 0x3a49, 0x3944, 0x2cf5, 0x38a3, 0x398b, 0x3b0e, 0x307a, 0x3504, 0x3728, 0x3500, 0x2f6e, 0x2e34, 0x3aa4, 0x39f7, 0x3831, 0x3902, 0x3509, 0x2d20, 0x3b99, 0x3860, 0x3901, 0x3420, 0x3944, 0x3926, 0x3acd, 0x3786, 0x3b09, 0x3ad7, 0x2cb6, 0x3a8e, 0x2233, 0x3892, 0x398a, 0x272e, 0x3853, 0x389c, +0x3a14, 0x3877, 0x3320, 0x34b7, 0x3a85, 0x34da, 0x38db, 0x3758, 0x3b8d, 0x3aa8, 0x3766, 0x34db, 0x3a54, 0x3806, 0x31ef, 0x33ab, 0x38bd, 0x3778, 0x3543, 0x36ec, 0x36fa, 0x2fc5, 0x3676, 0x350c, 0x390f, 0x3b8b, 0x394a, 0x38bb, 0x31d9, 0x3bf1, 0x36ce, 0x35dc, 0x38c2, 0x3910, 0x3944, 0x38f8, 0x37f6, 0x3b9b, 0x3574, 0x31ed, 0x244e, 0x28ef, 0x34fa, 0x3398, 0x3912, 0x365f, 0x3bb2, 0x38f7, 0x3af2, 0x3500, 0x3a8e, 0x3a55, 0x39be, 0x2471, 0x34b0, 0x336f, 0x380a, 0x3ae7, 0x34f5, 0x35f9, 0x3227, 0x263d, 0x3385, 0x372f, 0x2046, 0x3a80, 0x3b0a, 0x35cf, 0x38e1, 0x38b4, 0x2eb6, 0x353f, 0x314f, 0x3a4c, 0x3a52, 0x3b84, 0x39b8, 0x367d, 0x3b22, 0x310a, 0x3611, 0x37ad, 0x3496, 0x2e9c, 0x3215, 0x3b29, 0x38cf, 0x343f, 0x380a, 0x36b0, 0x3a08, 0x2c90, 0x36e4, 0x354a, 0x3b56, 0x37a1, +0x39f1, 0x340d, 0x3b34, 0x309a, 0x3074, 0x24a8, 0x261c, 0x3a16, 0x3846, 0x35dd, 0x2830, 0x3a03, 0x3729, 0x3766, 0x3461, 0x33db, 0x3b4a, 0x33eb, 0x3813, 0x34cd, 0x3875, 0x3a95, 0x31ef, 0x38b2, 0x3acc, 0x34d9, 0x3542, 0x37f4, 0x3937, 0x3858, 0x3997, 0x3538, 0x338b, 0x35ff, 0x3613, 0x3809, 0x3878, 0x3870, 0x2df0, 0x39f4, 0x3863, 0x30ce, 0x38ae, 0x384f, 0x3b24, 0x3045, 0x297f, 0x3b58, 0x3123, 0x2b6b, 0x3bc5, 0x388a, 0x3003, 0x3077, 0x34dc, 0x39cb, 0x3bcf, 0x3b16, 0x344c, 0x3aac, 0x364a, 0x399b, 0x3a68, 0x3583, 0x34c3, 0x3bc0, 0x3b1d, 0x3a15, 0x387f, 0x3756, 0x382e, 0x3a58, 0x18c3, 0x3a2e, 0x3b81, 0x34f8, 0x3802, 0x3631, 0x3920, 0x340c, 0x3b6c, 0x39a7, 0x1a4a, 0x38cc, 0x38ec, 0x3912, 0x3bd6, 0x3358, 0x3275, 0x3954, 0x3b39, 0x3674, 0x3a2e, 0x387c, 0x3a86, 0x34c2, +0x3585, 0x36c0, 0x3762, 0x380b, 0x31cf, 0x3992, 0x365a, 0x3b73, 0x35e8, 0x3925, 0x3b3b, 0x37cc, 0x3823, 0x2cd7, 0x2a80, 0x3a41, 0x37a5, 0x3479, 0x36eb, 0x29cc, 0x317d, 0x38b8, 0x32f8, 0x355e, 0x392c, 0x3b16, 0x3275, 0x306a, 0x22a8, 0x35fb, 0x32d4, 0x3a42, 0x32ba, 0x2443, 0x3898, 0x3164, 0x38ff, 0x3ba6, 0x35ae, 0x396a, 0x3a5c, 0x3922, 0x1df2, 0x3943, 0x309b, 0x3a53, 0x3439, 0x3802, 0x32bc, 0x34f6, 0x3957, 0x3a59, 0x36c9, 0x3b3c, 0x3aa0, 0x3903, 0x2b86, 0x380e, 0x2f83, 0x397a, 0x3a11, 0x3ab3, 0x38b9, 0x3a54, 0x3191, 0x2eb7, 0x3549, 0x3a39, 0x375b, 0x38d8, 0x346a, 0x3a3e, 0x35ff, 0x305b, 0x3b1d, 0x3882, 0x39da, 0x3a92, 0x2f74, 0x38f1, 0x3b8e, 0x361f, 0x38d4, 0x365b, 0x367c, 0x2658, 0x3762, 0x3905, 0x393f, 0x34c8, 0x3830, 0x39d1, 0x35e1, 0x23b7, 0x3b28, 0x39f4, +0x27a7, 0x38a0, 0x3954, 0x32c7, 0x3572, 0x25b3, 0x384f, 0x38fb, 0x3a34, 0x3b79, 0x3af6, 0x34c8, 0x3a0d, 0x3906, 0x3981, 0x3a97, 0x3b17, 0x34d5, 0x2dc4, 0x3401, 0x21b1, 0x3999, 0x3898, 0x2def, 0x3747, 0x300c, 0x3afe, 0x34d6, 0x36ac, 0x3b5f, 0x3952, 0x2a90, 0x34b4, 0x3a77, 0x3b03, 0x385e, 0x33d0, 0x37a9, 0x36a7, 0x231e, 0x3534, 0x35f6, 0x30e1, 0x3873, 0x2299, 0x387e, 0x3499, 0x30dc, 0x383a, 0x256e, 0x387f, 0x3395, 0x33c1, 0x38ac, 0x38fe, 0x383b, 0x36c3, 0x392b, 0x3812, 0x3168, 0x3b18, 0x386a, 0x3b17, 0x3981, 0x3577, 0x3874, 0x308a, 0x38d1, 0x3a7b, 0x361f, 0x38bf, 0x29c5, 0x2d56, 0x343b, 0x33bc, 0x38ab, 0x3a82, 0x2feb, 0x3885, 0x3531, 0x3588, 0x2ff6, 0x3851, 0x3a08, 0x36e7, 0x3b8c, 0x3182, 0x3a4e, 0x3849, 0x3509, 0x3909, 0x380e, 0x3692, 0x2e1e, 0x2f7f, 0x35eb, +0x3816, 0x2f7d, 0x3b42, 0x38c2, 0x3884, 0x3096, 0x39b7, 0x3868, 0x3879, 0x3606, 0x3111, 0x36d8, 0x39eb, 0x3bcf, 0x3ac4, 0x38bd, 0x3877, 0x3967, 0x398b, 0x39fe, 0x3514, 0x3139, 0x30a8, 0x3431, 0x2d75, 0x3a3a, 0x3b80, 0x3917, 0x307a, 0x2c42, 0x3143, 0x3954, 0x36ff, 0x381f, 0x37dd, 0x3b2f, 0x3972, 0x317f, 0x397b, 0x350d, 0x382e, 0x2ed6, 0x375c, 0x3462, 0x36ff, 0x364c, 0x39ba, 0x36c7, 0x3bea, 0x3211, 0x354e, 0x2d30, 0x1f03, 0x35f6, 0x3a24, 0x3576, 0x38ce, 0x38e5, 0x3bbe, 0x38a8, 0x3831, 0x39d0, 0x3772, 0x3ba5, 0x314f, 0x2572, 0x39d2, 0x2de3, 0x1d7a, 0x360b, 0x399a, 0x3863, 0x3a18, 0x3141, 0x3a7d, 0x391b, 0x3957, 0x33f7, 0x3801, 0x392a, 0x3a5a, 0x3a51, 0x3841, 0x2a4a, 0x3786, 0x355f, 0x28d9, 0x35cc, 0x2dfc, 0x302a, 0x2c60, 0x3b50, 0x3abe, 0x382f, 0x35ed, 0x3a8d, +0x3b1b, 0x3525, 0x3725, 0x2e88, 0x304b, 0x3920, 0x3962, 0x3908, 0x352b, 0x3667, 0x3880, 0x3692, 0x38bd, 0x317c, 0x30f3, 0x3beb, 0x302b, 0x326c, 0x3a36, 0x3a30, 0x39b6, 0x2a61, 0x34f1, 0x22d6, 0x39b6, 0x310f, 0x2dff, 0x38d1, 0x3700, 0x3412, 0x38de, 0x394f, 0x2de4, 0x2ed8, 0x3beb, 0x3a50, 0x3526, 0x246d, 0x361e, 0x2e4b, 0x3272, 0x3b5a, 0x3805, 0x3a98, 0x3653, 0x3abc, 0x301d, 0x399f, 0x2dae, 0x3ac4, 0x39dc, 0x3403, 0x3109, 0x2d85, 0x381e, 0x36b6, 0x348d, 0x35c6, 0x3b5f, 0x3b3a, 0x35c0, 0x36de, 0x38bc, 0x3308, 0x39a0, 0x39cf, 0x3456, 0x3a80, 0x39fc, 0x311a, 0x3bb1, 0x3a38, 0x3b9d, 0x3a27, 0x3912, 0x3377, 0x38a9, 0x34c6, 0x34ec, 0x35fa, 0x378c, 0x387e, 0x3686, 0x372c, 0x388d, 0x3ad6, 0x3bd3, 0x3b26, 0x3bd6, 0x3b91, 0x31e3, 0x381e, 0x353b, 0x3a90, 0x2cd6, 0x3047, +0x33df, 0x35c8, 0x396a, 0x321c, 0x286f, 0x2daa, 0x39aa, 0x3a83, 0x36ff, 0x3476, 0x3a33, 0x37d6, 0x2c5f, 0x3a23, 0x38cb, 0x36a9, 0x331b, 0x24ec, 0x3960, 0x2d61, 0x3a61, 0x330f, 0x3937, 0x2e70, 0x3797, 0x399d, 0x26dc, 0x320e, 0x342c, 0x3b32, 0x22bc, 0x3466, 0x3447, 0x3896, 0x31b7, 0x3b22, 0x383a, 0x3623, 0x38f8, 0x3552, 0x3a55, 0x29c5, 0x34bb, 0x3663, 0x2c7b, 0x378d, 0x250c, 0x3ac9, 0x39c4, 0x378d, 0x39d2, 0x39a9, 0x379f, 0x3473, 0x2db0, 0x3993, 0x3ad3, 0x3494, 0x39ae, 0x36d2, 0x397c, 0x39c9, 0x3adc, 0x359f, 0x2c2f, 0x3b0d, 0x3595, 0x3687, 0x39b3, 0x34e4, 0x3af6, 0x2f71, 0x39af, 0x3b28, 0x38fe, 0x381d, 0x28ef, 0x3abc, 0x3723, 0x3b6c, 0x381e, 0x3442, 0x3b90, 0x39cc, 0x39c5, 0x3654, 0x38ac, 0x1b4d, 0x391f, 0x38d2, 0x3ac7, 0x385a, 0x322c, 0x39e6, 0x289c, 0x3786, +0x3b5f, 0x37c4, 0x3906, 0x3069, 0x3478, 0x383c, 0x3a34, 0x3a85, 0x33b3, 0x3be6, 0x3a71, 0x33ac, 0x3a77, 0x3b21, 0x3b7d, 0x3957, 0x3814, 0x39b2, 0x3504, 0x387f, 0x37c6, 0x39e0, 0x39f1, 0x393b, 0x2fe0, 0x3806, 0x2d6e, 0x37a5, 0x3069, 0x3831, 0x3959, 0x3363, 0x2d3a, 0x3980, 0x35ec, 0x3a3c, 0x389c, 0x23eb, 0x3a24, 0x30fa, 0x3040, 0x38b4, 0x3b7b, 0x381f, 0x3a66, 0x246e, 0x3b37, 0x30c1, 0x38a5, 0x387e, 0x34aa, 0x362a, 0x3556, 0x2a52, 0x3445, 0x3a9b, 0x2986, 0x38d2, 0x3513, 0x3bca, 0x39fa, 0x303b, 0x31cc, 0x3414, 0x3b16, 0x3a43, 0x2e2c, 0x3a29, 0x3996, 0x3973, 0x39b3, 0x36dc, 0x2761, 0x32a1, 0x3815, 0x3708, 0x38fa, 0x38cb, 0x36d3, 0x39c8, 0x266c, 0x3b60, 0x33cf, 0x3be3, 0x3854, 0x34c0, 0x34d3, 0x39ac, 0x37ad, 0x2fcb, 0x3966, 0x31a2, 0x363f, 0x3434, 0x381e, 0x3a53, +0x3795, 0x38cd, 0x3c00, 0x393c, 0x38af, 0x3b72, 0x37c4, 0x3b4f, 0x30b0, 0x36fd, 0x377b, 0x38f2, 0x371b, 0x3ada, 0x2edd, 0x3782, 0x33a2, 0x3a25, 0x38ae, 0x3be0, 0x3a31, 0x32b2, 0x3323, 0x3b1f, 0x39fc, 0x3986, 0x3b38, 0x3881, 0x3a9d, 0x3936, 0x3946, 0x3159, 0x3504, 0x3792, 0x3547, 0x28ff, 0x3449, 0x3214, 0x313f, 0x3866, 0x3a59, 0x3b06, 0x2e51, 0x2759, 0x342e, 0x3726, 0x3473, 0x37ea, 0x3b1d, 0x3be8, 0x346d, 0x3b73, 0x38c3, 0x296c, 0x33b2, 0x34a7, 0x3af5, 0x3284, 0x359c, 0x384d, 0x2ff7, 0x3337, 0x339b, 0x30e4, 0x3001, 0x3b02, 0x2ddf, 0x3997, 0x320c, 0x3af9, 0x2c92, 0x37e8, 0x3b5d, 0x3132, 0x3860, 0x396b, 0x39fd, 0x38f3, 0x3968, 0x32e8, 0x3523, 0x395b, 0x2e01, 0x37b9, 0x3b53, 0x3b37, 0x398e, 0x389b, 0x3586, 0x37d6, 0x3976, 0x3785, 0x3b0c, 0x3975, 0x39e2, 0x3bb5, +0x3675, 0x343a, 0x38d9, 0x392e, 0x3b61, 0x35db, 0x3527, 0x3a75, 0x3a1e, 0x36bd, 0x3af7, 0x2dae, 0x3b77, 0x2fe7, 0x3a80, 0x3745, 0x3a6e, 0x3748, 0x37ad, 0x3492, 0x3a82, 0x35db, 0x2e6a, 0x34bf, 0x3984, 0x3aff, 0x3a9a, 0x2720, 0x3786, 0x3475, 0x3842, 0x36ce, 0x387f, 0x3875, 0x292c, 0x35b8, 0x3ac0, 0x39f1, 0x3537, 0x3920, 0x3a93, 0x2a40, 0x2c60, 0x39b0, 0x3559, 0x3989, 0x3670, 0x33ef, 0x36e4, 0x3ac3, 0x3802, 0x35b3, 0x36e9, 0x34b6, 0x3911, 0x35f1, 0x3591, 0x3a96, 0x39df, 0x3892, 0x3582, 0x3a67, 0x39cf, 0x3bf8, 0x3587, 0x2adb, 0x36f3, 0x3a9f, 0x34c5, 0x31ab, 0x3481, 0x26aa, 0x3929, 0x3749, 0x3764, 0x3743, 0x39db, 0x2850, 0x363d, 0x386f, 0x349c, 0x3ae1, 0x3834, 0x3480, 0x305d, 0x3bca, 0x3418, 0x3580, 0x3897, 0x3831, 0x3898, 0x39aa, 0x372b, 0x3b98, 0x3b92, 0x3adc, +0x355f, 0x3915, 0x21ad, 0x3a2a, 0x3803, 0x3af4, 0x34e4, 0x37b0, 0x399e, 0x33d8, 0x3904, 0x1c2b, 0x3831, 0x3b39, 0x3a0e, 0x37dd, 0x3bfb, 0x3a0f, 0x3623, 0x3beb, 0x39d0, 0x335e, 0x38e5, 0x3810, 0x37df, 0x2c84, 0x30bc, 0x3013, 0x342f, 0x285f, 0x3855, 0x3b81, 0x3a35, 0x33e5, 0x3a11, 0x3bab, 0x32df, 0x303d, 0x3973, 0x340f, 0x3aba, 0x34d9, 0x3924, 0x3b84, 0x3a67, 0x3980, 0x3612, 0x3b64, 0x39e3, 0x3ac3, 0x3350, 0x3865, 0x24d5, 0x3bac, 0x3594, 0x38d7, 0x3b53, 0x3b76, 0x39ee, 0x36de, 0x3a1c, 0x38ce, 0x25cc, 0x3847, 0x3b28, 0x34c5, 0x3a7e, 0x3afb, 0x3361, 0x2266, 0x37d1, 0x3886, 0x306b, 0x3b12, 0x3a8b, 0x2aad, 0x3855, 0x35b0, 0x35c4, 0x3b4e, 0x36fa, 0x396a, 0x26f4, 0x381a, 0x2f06, 0x2c3e, 0x3116, 0x3adf, 0x358b, 0x2f88, 0x3adf, 0x3842, 0x3a1a, 0x3b35, 0x291a, 0x2e9d, +0x32d1, 0x3946, 0x3a50, 0x398e, 0x2970, 0x3122, 0x286c, 0x3b80, 0x3bbe, 0x38ad, 0x3b51, 0x385a, 0x38c4, 0x3af0, 0x352a, 0x38e9, 0x3a80, 0x28e3, 0x395e, 0x34aa, 0x3973, 0x3492, 0x398c, 0x327b, 0x39d4, 0x3995, 0x3740, 0x2742, 0x388f, 0x3a24, 0x3a2f, 0x38d3, 0x384e, 0x3abd, 0x3bb8, 0x3814, 0x394b, 0x3aa0, 0x3af2, 0x37ad, 0x32aa, 0x3aa3, 0x3aa6, 0x3ac5, 0x2fbf, 0x3759, 0x3848, 0x32c6, 0x3459, 0x38af, 0x3980, 0x24db, 0x3ac5, 0x377c, 0x1d75, 0x36e9, 0x389b, 0x314e, 0x344f, 0x30ff, 0x3921, 0x3b72, 0x3884, 0x3836, 0x3af2, 0x35b8, 0x3116, 0x38ce, 0x3ae6, 0x3b16, 0x3bca, 0x373b, 0x3a8e, 0x3872, 0x2d2a, 0x344d, 0x3b2e, 0x3608, 0x320e, 0x2aa7, 0x361a, 0x2dc4, 0x3b4f, 0x2d4d, 0x34b3, 0x34c0, 0x393b, 0x3a76, 0x372f, 0x3637, 0x2b5c, 0x3a38, 0x367b, 0x2b1e, 0x344e, 0x385e, +0x3ab6, 0x38a2, 0x3674, 0x2d4d, 0x3bad, 0x3b44, 0x35ed, 0x38a7, 0x325e, 0x3b29, 0x3b65, 0x2f0f, 0x3a30, 0x3b4c, 0x3843, 0x3a21, 0x2e34, 0x3180, 0x3ae0, 0x3a02, 0x3a82, 0x2ad9, 0x3826, 0x3a94, 0x2f66, 0x217b, 0x3b82, 0x3839, 0x3263, 0x3a1b, 0x2958, 0x3b26, 0x3a3e, 0x3039, 0x3bd7, 0x2057, 0x3b99, 0x38ac, 0x372d, 0x344e, 0x31fa, 0x3bf8, 0x394e, 0x3acb, 0x3b88, 0x38cf, 0x3582, 0x3a2b, 0x370e, 0x34b5, 0x36d2, 0x3ae3, 0x38b9, 0x37a5, 0x3979, 0x3204, 0x3ba2, 0x3591, 0x3a00, 0x3944, 0x1b7f, 0x271e, 0x38a2, 0x38ad, 0x3ade, 0x3008, 0x34c9, 0x3269, 0x31da, 0x3bad, 0x3587, 0x3bea, 0x3512, 0x2deb, 0x3825, 0x3488, 0x30aa, 0x3baf, 0x378f, 0x39d9, 0x3ac4, 0x3427, 0x371e, 0x3b2d, 0x3138, 0x3654, 0x3815, 0x3b7c, 0x38cf, 0x382e, 0x1cdb, 0x2fa4, 0x3783, 0x383c, 0x37d1, 0x2df8, +0x335b, 0x3071, 0x367f, 0x3be1, 0x3a1b, 0x3afd, 0x390b, 0x3b17, 0x3861, 0x3adb, 0x3a04, 0x3859, 0x3a95, 0x37b6, 0x37ff, 0x3400, 0x34e3, 0x367d, 0x3ad0, 0x3506, 0x3b50, 0x33e6, 0x3a42, 0x3b3c, 0x382a, 0x3bf8, 0x3be8, 0x3917, 0x39ec, 0x265b, 0x3b11, 0x3b2a, 0x3aef, 0x35f9, 0x3a2b, 0x371d, 0x32f8, 0x338b, 0x3bc2, 0x399e, 0x3aa8, 0x34b1, 0x182c, 0x3691, 0x39c5, 0x359a, 0x3b2b, 0x38f9, 0x3953, 0x362a, 0x3a8e, 0x363d, 0x3b96, 0x380a, 0x37fc, 0x3694, 0x2fa9, 0x35d1, 0x3699, 0x2e36, 0x3922, 0x38b6, 0x2d05, 0x3161, 0x353e, 0x371f, 0x3913, 0x39b6, 0x35d6, 0x3b29, 0x395c, 0x3677, 0x3ac8, 0x35e1, 0x3b02, 0x3479, 0x321a, 0x2a17, 0x2890, 0x388a, 0x3109, 0x3a45, 0x301c, 0x349a, 0x31a2, 0x3b19, 0x2eb4, 0x2eff, 0x353c, 0x39f5, 0x396c, 0x3ae4, 0x3873, 0x3bf6, 0x3887, 0x3507, +0x34d1, 0x35d3, 0x3ad2, 0x3759, 0x2918, 0x36eb, 0x39bd, 0x3b25, 0x31b8, 0x35eb, 0x2999, 0x3b69, 0x3829, 0x3385, 0x3bf4, 0x3a9b, 0x3aa7, 0x319a, 0x3824, 0x38e6, 0x38aa, 0x375d, 0x3188, 0x34eb, 0x37bc, 0x3375, 0x367b, 0x33df, 0x34f6, 0x38b3, 0x38e3, 0x3010, 0x3a05, 0x2e64, 0x336a, 0x3466, 0x3962, 0x3640, 0x2a17, 0x31c5, 0x3815, 0x3472, 0x3b2c, 0x3b79, 0x32d7, 0x3656, 0x2a54, 0x3409, 0x3887, 0x34e6, 0x30ea, 0x2851, 0x39cc, 0x3153, 0x38af, 0x3868, 0x3ad3, 0x3853, 0x38a7, 0x3583, 0x31e3, 0x3284, 0x2909, 0x3ae9, 0x3abe, 0x310b, 0x3564, 0x33cb, 0x3999, 0x37bc, 0x352c, 0x32f7, 0x3522, 0x36de, 0x340c, 0x37f7, 0x3839, 0x39f8, 0x2b3b, 0x3ada, 0x3258, 0x3764, 0x395c, 0x374b, 0x3bbc, 0x35fd, 0x306c, 0x3645, 0x3b20, 0x3a18, 0x2c2b, 0x39e2, 0x3a43, 0x3934, 0x34b5, 0x390a, +0x3bc0, 0x358b, 0x3817, 0x3b77, 0x36de, 0x3868, 0x3b93, 0x2d8d, 0x3607, 0x37f9, 0x39b4, 0x3bc5, 0x3997, 0x33e1, 0x328b, 0x226a, 0x3aab, 0x390e, 0x34ee, 0x34ae, 0x3645, 0x3a4d, 0x31db, 0x3576, 0x38ed, 0x39d5, 0x2974, 0x3982, 0x34ca, 0x3839, 0x3b7a, 0x2e37, 0x2045, 0x3a1b, 0x3bf9, 0x2f9a, 0x2aba, 0x3944, 0x3a82, 0x24d0, 0x38fa, 0x2c8f, 0x3a4c, 0x391f, 0x39d2, 0x3154, 0x3a64, 0x3902, 0x398d, 0x3921, 0x3800, 0x3443, 0x2fb9, 0x3aa5, 0x3973, 0x2a30, 0x367d, 0x3850, 0x3a1e, 0x3b86, 0x34eb, 0x383c, 0x37b1, 0x2db1, 0x30d7, 0x347a, 0x2b61, 0x3441, 0x288b, 0x3bea, 0x2a52, 0x29de, 0x3a65, 0x37c2, 0x3370, 0x39e2, 0x3850, 0x3691, 0x2f33, 0x39cb, 0x3bbd, 0x35fe, 0x3696, 0x3bbe, 0x3451, 0x384e, 0x2f01, 0x380e, 0x3810, 0x35e9, 0x2c3b, 0x34bd, 0x3905, 0x3505, 0x36e9, 0x3b23, +0x38d5, 0x38b3, 0x2e40, 0x39da, 0x3459, 0x39b9, 0x385c, 0x3a5a, 0x37d8, 0x37bb, 0x3549, 0x3ba9, 0x3a79, 0x3b72, 0x2c21, 0x3576, 0x3bd3, 0x3ae5, 0x3b63, 0x3979, 0x319a, 0x3bb2, 0x39e7, 0x328c, 0x3af2, 0x34d2, 0x32c2, 0x38d1, 0x3831, 0x3a23, 0x3a51, 0x3646, 0x38be, 0x2f1b, 0x36a5, 0x3891, 0x38f0, 0x3a6a, 0x3249, 0x2f87, 0x36d8, 0x3a85, 0x2870, 0x369e, 0x3a6a, 0x34d5, 0x3419, 0x3b3e, 0x38d2, 0x3a7f, 0x3938, 0x38e4, 0x3332, 0x39db, 0x3933, 0x3a2a, 0x38cc, 0x3bae, 0x3b1a, 0x3837, 0x3ba2, 0x3582, 0x3639, 0x392a, 0x30d0, 0x3966, 0x3b0f, 0x35a7, 0x3962, 0x3b6d, 0x3503, 0x38e2, 0x370e, 0x3341, 0x3694, 0x3a68, 0x3879, 0x3661, 0x377f, 0x38fc, 0x38d5, 0x3238, 0x3a69, 0x32d0, 0x3a61, 0x388f, 0x3591, 0x3b25, 0x3818, 0x304b, 0x39f0, 0x3826, 0x399e, 0x332c, 0x3496, 0x3822, +0x3a10, 0x3839, 0x3b02, 0x248f, 0x39a8, 0x31fa, 0x3964, 0x34e5, 0x2abc, 0x3a82, 0x3440, 0x321b, 0x3859, 0x38f1, 0x3845, 0x3bbd, 0x3b28, 0x3410, 0x3855, 0x3acb, 0x3afe, 0x38fb, 0x341d, 0x3713, 0x3281, 0x387c, 0x3b3a, 0x388d, 0x34f1, 0x33b1, 0x35df, 0x3a40, 0x3b5a, 0x37a8, 0x3997, 0x32c0, 0x38e1, 0x287f, 0x30ed, 0x398d, 0x2fc0, 0x399c, 0x34b5, 0x3b4e, 0x3a20, 0x39ed, 0x2dfe, 0x3b53, 0x3529, 0x3b5d, 0x39b7, 0x3469, 0x35fb, 0x3af6, 0x3b95, 0x39bd, 0x39be, 0x3bad, 0x308a, 0x380a, 0x3851, 0x3810, 0x3866, 0x3adb, 0x3b96, 0x3118, 0x3a45, 0x36ab, 0x3250, 0x38f5, 0x360e, 0x3ac2, 0x30d1, 0x3a5f, 0x3a09, 0x3550, 0x3ba9, 0x360d, 0x3ad6, 0x3a1f, 0x376e, 0x308b, 0x3908, 0x38ac, 0x348a, 0x3ba4, 0x3704, 0x37ef, 0x35ea, 0x3836, 0x395a, 0x2c3d, 0x382e, 0x360a, 0x321a, 0x3967, +0x26ea, 0x3845, 0x344c, 0x3b46, 0x33ca, 0x2f66, 0x220e, 0x39c5, 0x35d6, 0x3af3, 0x39d0, 0x38f7, 0x3082, 0x3924, 0x3198, 0x3a81, 0x3a45, 0x3945, 0x368d, 0x3a76, 0x3a14, 0x3145, 0x2430, 0x37f0, 0x3af8, 0x31d6, 0x36ab, 0x3453, 0x2dcc, 0x359c, 0x3699, 0x37b4, 0x399c, 0x375e, 0x386a, 0x3927, 0x38c2, 0x33ac, 0x32de, 0x3ba4, 0xece, 0x398a, 0x3b1f, 0x3583, 0x3b41, 0x340f, 0x3bef, 0x3777, 0x3acd, 0x3818, 0x3ad3, 0x385d, 0x38f7, 0x399c, 0x38a1, 0x3a11, 0x38ad, 0x2fc0, 0x32c3, 0x3293, 0x3499, 0x3757, 0x28a6, 0x3b3d, 0x3b9b, 0x37a1, 0x3bcd, 0x3a17, 0x3b46, 0x39b0, 0x2cee, 0x346a, 0x3b63, 0x3855, 0x37a4, 0x36dc, 0x3baa, 0x20a7, 0x3b32, 0x2a40, 0x3ac4, 0x3855, 0x35cb, 0x3bcc, 0x3a66, 0x38bd, 0x213a, 0x2be8, 0x2793, 0x32a2, 0x3a2c, 0x3aae, 0x384b, 0x3a00, 0x375d, 0x35e2, +0x3938, 0x3629, 0x398a, 0x263c, 0x37f1, 0x39ed, 0x332c, 0x3879, 0x38df, 0x2cc1, 0x38cb, 0x398a, 0x3935, 0x3607, 0x2791, 0x3a21, 0x3590, 0x306b, 0x3720, 0x3abb, 0x3a6a, 0x2a36, 0x388b, 0x2c62, 0x393e, 0x36bc, 0x37be, 0x39bd, 0x39db, 0x35d8, 0x3b2d, 0x39ba, 0x33a4, 0x3a4b, 0x2f93, 0x38ca, 0x325d, 0x3974, 0x3116, 0x3bd6, 0x3630, 0x3888, 0x3a58, 0x3a1d, 0x3868, 0x38c5, 0x316f, 0x353d, 0x2a18, 0x3994, 0x399a, 0x2e05, 0x3b8b, 0x32f3, 0x3242, 0x2e23, 0x3191, 0x3ab7, 0x2aaf, 0x3a7d, 0x3726, 0x3b42, 0x3abc, 0x372b, 0x3a73, 0x390e, 0x38d0, 0x38e2, 0x39f9, 0x2fae, 0x3372, 0x3370, 0x3699, 0x3851, 0x3430, 0x3559, 0x3b7c, 0x3671, 0x35dd, 0x2d3e, 0x35c8, 0x2260, 0x3ab4, 0x3b38, 0x3327, 0x33df, 0x3a01, 0x3368, 0x361e, 0x3baa, 0x3990, 0x382b, 0x38fb, 0x35b9, 0x3921, 0x3918, +0x38ea, 0x349a, 0x3123, 0x2d03, 0x356f, 0x3735, 0x3b50, 0x355b, 0x3b23, 0x3a35, 0x30a3, 0x3568, 0x365c, 0x3328, 0x3ac5, 0x323f, 0x271b, 0x24a7, 0x369d, 0x32a5, 0x39e7, 0x37dc, 0x3a48, 0x36a7, 0x3037, 0x39b8, 0x35b5, 0x320c, 0x29c0, 0x3770, 0x3893, 0x384c, 0x3888, 0x399a, 0x3a4e, 0x31e7, 0x397d, 0x3876, 0x3425, 0x3929, 0x3734, 0x2cb9, 0x39e8, 0x399d, 0x27d8, 0x3a89, 0x3198, 0x35ee, 0x2576, 0x31a6, 0x398b, 0x31cb, 0x2e6d, 0x386a, 0x3b4e, 0x3882, 0x3a5b, 0x3797, 0x38f0, 0x3229, 0x3849, 0x3874, 0x2cb5, 0x3b07, 0x3b6f, 0x3b29, 0x3bdf, 0x34fd, 0x3502, 0x3ae1, 0x39ac, 0x37ef, 0x3bbc, 0x39f7, 0x3503, 0x3bf0, 0x34da, 0x3bb9, 0x3811, 0x3ac2, 0x37e5, 0x37a9, 0x38a2, 0x3ba7, 0x3862, 0x369c, 0x35f7, 0x388b, 0x3aa8, 0x335b, 0x3a6f, 0x3885, 0x36c6, 0x38a9, 0x396d, 0x34ec, +0x3a09, 0x3869, 0x34bb, 0x3761, 0x36a1, 0x3852, 0x3849, 0x3659, 0x3805, 0x3a89, 0x3539, 0x35eb, 0x3439, 0x3863, 0x3a88, 0x38e0, 0x388c, 0x351c, 0x350e, 0x3383, 0x31ad, 0x389e, 0x39a5, 0x363f, 0x3b6a, 0x30f5, 0x3a4f, 0x3669, 0x3ae5, 0x3950, 0x2e12, 0x3801, 0x3af3, 0x393f, 0x377b, 0x390c, 0x34ff, 0x30f2, 0x271a, 0x37a5, 0x289e, 0x39b6, 0x3bf3, 0x389f, 0x3a33, 0x3bf0, 0x39c0, 0x392a, 0x394d, 0x349c, 0x3b62, 0x327a, 0x377b, 0x3590, 0x397a, 0x3a04, 0x3247, 0x329c, 0x2d99, 0x3b76, 0x33ff, 0x3456, 0x32c3, 0x35b6, 0x3282, 0x32b5, 0x3a23, 0x39e0, 0x3767, 0x3600, 0x38d6, 0x3a7c, 0x3515, 0x36bc, 0x381a, 0x3bd6, 0x3baf, 0x3811, 0x39e0, 0x22ac, 0x391b, 0x29be, 0x39aa, 0x3329, 0x3a6f, 0x3bcb, 0x3118, 0x3bbf, 0x3674, 0x3918, 0x30cd, 0x3924, 0x3a6b, 0x3a8b, 0x34b5, 0x39cc, +0x2cde, 0x3945, 0x37ff, 0x3115, 0x3a3b, 0x3ae1, 0x3958, 0x28f5, 0x3b19, 0x33ff, 0x3bc4, 0x3476, 0x3886, 0x3511, 0x342b, 0x3b18, 0x36e9, 0x3ab9, 0x2423, 0x32e2, 0x3623, 0x38b4, 0x371b, 0x3bc0, 0x3b8d, 0x3366, 0x384f, 0x3a1a, 0x3a09, 0x3918, 0x3959, 0x3652, 0x3baa, 0x3685, 0x38b7, 0x378b, 0x32e9, 0x3a53, 0x3405, 0x3bc3, 0x34b9, 0x339d, 0x3819, 0x2fe8, 0x3bdb, 0x3421, 0x3575, 0x3796, 0x207e, 0x3b04, 0x38a8, 0x3b69, 0x35f1, 0x389a, 0x37ee, 0x38c3, 0x34db, 0x35a5, 0x3b83, 0x36a9, 0x2883, 0x3955, 0x3aa0, 0x334a, 0x34a9, 0x3772, 0x312a, 0x3bde, 0x3338, 0x3601, 0x3125, 0x3a73, 0x316c, 0x348e, 0x3bef, 0x3b52, 0x343b, 0x249c, 0x3a68, 0x3905, 0x3b4d, 0x1cf8, 0x356a, 0x3499, 0x3385, 0x3b44, 0x2aaf, 0x28a1, 0x3199, 0x379d, 0x3832, 0x2da7, 0x3a9e, 0x3bc7, 0x34a2, 0x2c5a, +0x3bde, 0x3822, 0x3715, 0x345e, 0x38c1, 0x3315, 0x38d1, 0x2da9, 0x37f6, 0x38d3, 0x3beb, 0x3ba6, 0x343f, 0x3af0, 0x3b0e, 0x2bd6, 0x3b3b, 0x3a5a, 0x3930, 0x3af7, 0x3504, 0x31a5, 0x2918, 0x3853, 0x214f, 0x3b67, 0x3b64, 0x34a9, 0x3894, 0x3a87, 0x3ad1, 0x3a09, 0x38a2, 0x39da, 0x3a16, 0x3485, 0x36bf, 0x3ada, 0x31eb, 0x3b8c, 0x2de3, 0x3914, 0x39d4, 0x399f, 0x3968, 0x3200, 0x3631, 0x3bd6, 0x390b, 0x312d, 0x3b94, 0x3bf1, 0x38ee, 0x378b, 0x29f3, 0x3810, 0x2f19, 0x3808, 0x389c, 0x3a3a, 0x376c, 0x3b58, 0x346d, 0x2e32, 0x3848, 0x3bec, 0x3779, 0x3237, 0x37d2, 0x3963, 0x37a5, 0x3993, 0x3495, 0x3679, 0x2c1d, 0x3add, 0x3722, 0x305d, 0x38a0, 0x3851, 0x3a01, 0x291b, 0x3447, 0x35f7, 0x3617, 0x3928, 0x2e5d, 0x1f75, 0x3b78, 0x12cc, 0x39db, 0x39be, 0x3b11, 0x3b5a, 0x2fae, 0x3696, +0x3b26, 0x3229, 0x31d8, 0x3b61, 0x290e, 0x3b7d, 0x3bf3, 0x38cc, 0x3a78, 0x35f8, 0x3b7d, 0x3883, 0x3b43, 0x3571, 0x3991, 0x3bc3, 0x3095, 0x350f, 0x39bf, 0x3823, 0x370c, 0x2aa8, 0x3473, 0x33da, 0x38c7, 0x3ab7, 0x3b3d, 0x20f4, 0x3b12, 0x3997, 0x3bfe, 0x3479, 0x3a5f, 0x3550, 0x3af7, 0x34f2, 0x382f, 0x3109, 0x3287, 0x3a6f, 0x3b41, 0x3919, 0x2a88, 0x3b07, 0x3097, 0x398d, 0x35a7, 0x3921, 0x332f, 0x3b65, 0x39c2, 0x3aea, 0x3a54, 0x3996, 0x38c1, 0x396c, 0x3a06, 0x3831, 0x33a9, 0x3457, 0x3a8f, 0x3b43, 0x310d, 0x38e9, 0x36b8, 0x392c, 0x36b7, 0x323f, 0x2e02, 0x3b91, 0x36ef, 0x356b, 0x35e9, 0x339f, 0x39ce, 0x3ba8, 0x31bf, 0x2d8d, 0x3b09, 0x2dd7, 0x3960, 0x3b44, 0x37df, 0x3814, 0x3783, 0x39e7, 0x3716, 0x397f, 0x3429, 0x35ef, 0x3a37, 0x3743, 0x342a, 0x33cf, 0x184a, 0x3829, +0x384e, 0x3ade, 0x35c2, 0x36b9, 0x3429, 0x3abf, 0x3ac6, 0x3a36, 0x2108, 0x38ef, 0x37ff, 0x39fe, 0x3815, 0x3935, 0x3ab5, 0x351d, 0x3add, 0x3b57, 0x37ad, 0x2cc3, 0x3ace, 0x3ac4, 0x37ac, 0x3904, 0x3951, 0x32e7, 0x3337, 0x270b, 0x3a71, 0x3b9c, 0x3808, 0x3033, 0x34be, 0x3742, 0x3a39, 0x27f7, 0x26a2, 0x3b34, 0x35e5, 0x3a0f, 0x3939, 0x365f, 0x3853, 0x3b36, 0x364e, 0x3334, 0x1c8a, 0x330f, 0x3b6a, 0x3a34, 0x37fc, 0x353d, 0x3922, 0x387e, 0x390d, 0x3950, 0x37fc, 0x3946, 0x3afd, 0x342b, 0x2a9d, 0x3b85, 0x32b2, 0x3afc, 0x39a0, 0x3a38, 0x3182, 0x3aac, 0x3840, 0x3b40, 0x3703, 0x2f71, 0x3992, 0x3a53, 0x3a8a, 0x370c, 0x3101, 0x3826, 0x3b5b, 0x39c0, 0x3a46, 0x37d7, 0x3751, 0x2ab9, 0x342b, 0x39e0, 0x36fc, 0x3a8a, 0x1fb5, 0x355b, 0x38dc, 0x3b4d, 0x3be0, 0x3793, 0x307f, 0x3bae, +0x33ae, 0x39cc, 0x3a09, 0x3b3a, 0x34bf, 0x3b1c, 0x35cf, 0x3aa3, 0x3504, 0x381b, 0x3a9d, 0x3703, 0x3bce, 0x3b36, 0x35ea, 0x3503, 0x3687, 0x2661, 0x3bff, 0x2d04, 0x3bee, 0x3841, 0x3074, 0x309f, 0x35a3, 0x34ca, 0x36d5, 0x3640, 0x37e6, 0x37c9, 0x3a6d, 0x34fd, 0x3918, 0x3aa0, 0x3762, 0x34e0, 0x3527, 0x3780, 0x341d, 0x385a, 0x3af7, 0x3bf7, 0x3926, 0x3617, 0x3615, 0x2a99, 0x3649, 0x3a98, 0x3613, 0x2e24, 0x3809, 0x35b6, 0x3a63, 0x3bdd, 0x3825, 0x38fb, 0x2ed9, 0x39a5, 0x2d38, 0x364c, 0x3a63, 0x397c, 0x35e5, 0x3ad5, 0x31a7, 0x3979, 0x2873, 0x2e5c, 0x3abb, 0x39b6, 0x3b74, 0x2ce6, 0x35ab, 0x3920, 0x2fee, 0x308b, 0x229f, 0x3547, 0x36d3, 0x359c, 0x3814, 0x34de, 0x3a39, 0x2ed6, 0x3bd6, 0x353d, 0x3afb, 0x3b17, 0x3733, 0x16f0, 0x3011, 0x38b2, 0x387a, 0x3984, 0x3747, 0x394d, +0x34f7, 0x3755, 0x3960, 0x355f, 0x3765, 0x38fa, 0x3be8, 0x33ca, 0x351f, 0x31eb, 0x397e, 0x1412, 0x3022, 0x3467, 0x39d7, 0x3a60, 0x2c85, 0x3241, 0x3a90, 0x3926, 0x397a, 0x38f1, 0x3996, 0x3a51, 0x3ad5, 0x2e68, 0x38a9, 0x3663, 0x399f, 0x35f3, 0x3b4c, 0x34aa, 0x3b6b, 0x32af, 0x3aa8, 0x3a22, 0x38b6, 0x34cd, 0x2c81, 0x3945, 0x37a9, 0x3a20, 0x2523, 0x3ad8, 0x29ca, 0x3b63, 0x3a69, 0x37dc, 0x323b, 0x3898, 0x38e3, 0x3637, 0x394a, 0x2d82, 0x392c, 0x3993, 0x35b8, 0x3810, 0x399e, 0x3672, 0x39fa, 0x36c2, 0x351f, 0x3797, 0x244f, 0x3b02, 0x3304, 0x385f, 0x3312, 0x394e, 0x396b, 0x28bf, 0x3885, 0x39e2, 0x347e, 0x33ad, 0x3526, 0x3a5f, 0x3b90, 0x3b1e, 0x2572, 0x3a9c, 0x30ec, 0x393e, 0x3a9b, 0x357a, 0x394b, 0x3449, 0x3545, 0x2fee, 0x3702, 0x362b, 0x3bd4, 0x27d9, 0x2d6d, 0x3080, +0x30fb, 0x382e, 0x387a, 0x3b71, 0x355f, 0x39cc, 0x33c0, 0x2f57, 0x3b2f, 0x3b79, 0x3aea, 0x3b17, 0x3b46, 0x3844, 0x380d, 0x30a7, 0x2348, 0x381f, 0x2c21, 0x3a3b, 0x2cf6, 0x3523, 0x3835, 0x1b53, 0x3ad3, 0x3b18, 0x372a, 0x39a5, 0x37e6, 0x39bd, 0x2cfd, 0x395d, 0x2ea2, 0x39cb, 0x3bdc, 0x36db, 0x3b48, 0x3acc, 0x3439, 0x34c8, 0x3361, 0x3b5b, 0x324a, 0x35ec, 0x2c87, 0x395e, 0x35fe, 0x37a4, 0x361f, 0x315f, 0x305e, 0x35f7, 0x3541, 0x3729, 0x37ed, 0x31b7, 0x3a9a, 0x34ee, 0x376c, 0x3a7a, 0x389e, 0x30b3, 0x328e, 0x3811, 0x36f5, 0x35d9, 0x37f9, 0x3bcf, 0x3a0d, 0x3658, 0x3ba9, 0x38df, 0x3997, 0x3a6d, 0x375e, 0x32f7, 0x382e, 0x3b0d, 0x38ed, 0x346a, 0x3b8a, 0x2da9, 0x359c, 0x3574, 0x3840, 0x3333, 0x3a5b, 0x358d, 0x39f3, 0x385d, 0x2959, 0x3908, 0x3b84, 0x3a40, 0x2f0d, 0x35e0, +0x2066, 0x3940, 0x3b3b, 0x320f, 0x37cc, 0x377a, 0x3b22, 0x36da, 0x3aa0, 0x3476, 0x34b4, 0x3941, 0x36f4, 0x391e, 0x3a8d, 0x32ca, 0x3853, 0x3af6, 0x34d2, 0x36a6, 0x33f1, 0x39a0, 0x3790, 0x3440, 0x390f, 0x3a83, 0x399d, 0x367d, 0x2b8e, 0x3575, 0x3a1b, 0x3a7c, 0x3a6c, 0x2eb2, 0x3a27, 0x369b, 0x3a45, 0x38a4, 0x346f, 0x3a8c, 0x307a, 0x36d0, 0x39be, 0x39ae, 0x34ee, 0x2ae7, 0x3559, 0x3858, 0x3705, 0x38eb, 0x39fa, 0x3565, 0x3285, 0x392a, 0x394a, 0x300a, 0x39f6, 0x2e3e, 0x33dc, 0x39c7, 0x295d, 0x3b80, 0x3888, 0x3760, 0x3bfb, 0x396f, 0x3729, 0x386d, 0x39bb, 0x2d93, 0x387a, 0x3b12, 0x3b2e, 0x3bdc, 0x33ec, 0x383d, 0x38d0, 0x3373, 0x3bb0, 0x3987, 0x3b2b, 0x3097, 0x3884, 0x3b20, 0x39bf, 0x3360, 0x2b53, 0x370a, 0x2f02, 0x38ab, 0x24ee, 0x3947, 0x3927, 0x29d7, 0x3b8d, 0x3b8b, +0x3a58, 0x292b, 0x3604, 0x398f, 0x321b, 0x341f, 0x3909, 0x3901, 0x3b49, 0x32ee, 0x3940, 0x3b77, 0x31f0, 0x344e, 0x380c, 0x36b1, 0x3a4e, 0x3638, 0x3922, 0x3864, 0x393b, 0x3903, 0x302f, 0x2ff2, 0x30b7, 0x3997, 0x385b, 0x3bbf, 0x3b39, 0x38de, 0x3a69, 0x3b51, 0x3aed, 0x387b, 0x269d, 0x39c7, 0x3a99, 0x3beb, 0x3672, 0x33ee, 0x200e, 0x3834, 0x34f7, 0x3971, 0x355a, 0x31fd, 0x2531, 0x385f, 0x3bf2, 0x2686, 0x364a, 0x358a, 0x2e99, 0x2f89, 0x3809, 0x3924, 0x39ee, 0x3990, 0x3987, 0x3972, 0x3813, 0x3840, 0x34dd, 0x374a, 0x3250, 0x2f4c, 0x35d9, 0x2991, 0x3b3f, 0x362e, 0x3455, 0x2abb, 0x3a2d, 0x3b57, 0x3567, 0x2cc0, 0x2d0d, 0x3be3, 0x2f3e, 0x3a9f, 0x3253, 0x34e8, 0x3712, 0x334e, 0x3ab9, 0x3bae, 0x3a1d, 0x3a5c, 0x3b96, 0x3adf, 0x3088, 0x3a8e, 0x35f3, 0x3795, 0x35d1, 0x3bb4, +0x3862, 0x3976, 0x3b9a, 0x3291, 0x3b5c, 0x3540, 0x2d00, 0x3702, 0x3519, 0x39dd, 0x3bff, 0x3560, 0x3642, 0x392c, 0x3a6f, 0x32ff, 0x32f2, 0x3836, 0x2d5f, 0x368d, 0x383b, 0x3abb, 0x2ec9, 0x3ada, 0x391a, 0x3811, 0x35d9, 0x3b90, 0x3aa3, 0x3149, 0x3b10, 0x3912, 0x3391, 0x318b, 0x22ed, 0x3a32, 0x3819, 0x39c9, 0x3865, 0x332e, 0x399b, 0x3aaa, 0x3b3e, 0x37b6, 0x35db, 0x3286, 0x3765, 0x2afe, 0x3b7a, 0x32b2, 0x38c9, 0x37d0, 0x3a6d, 0x3a3a, 0x3a9c, 0x364d, 0x3915, 0x36d5, 0x24fb, 0x35ed, 0x3abd, 0x3200, 0x3ae4, 0x3a0f, 0x3ac2, 0x33be, 0x3812, 0x3bae, 0x3969, 0x3237, 0x3bb0, 0x3681, 0x35c9, 0x37da, 0x2f15, 0x3362, 0x3b5c, 0x3a74, 0x315a, 0x3b44, 0x2f83, 0x3971, 0x3bfd, 0x3ab3, 0x35ae, 0x3a5a, 0x303d, 0x2a1d, 0x3a0c, 0x3bbe, 0x3365, 0x33df, 0x3521, 0x3bce, 0x3880, 0x3842, +0x3a15, 0x3835, 0x2ac7, 0x3640, 0x3864, 0x309d, 0x3934, 0x364d, 0x30f9, 0x3954, 0x34c0, 0x39a2, 0x36c1, 0x3a64, 0x2f3d, 0x338e, 0x3993, 0x34c0, 0x2c7e, 0x30a8, 0x3696, 0x2d67, 0x2017, 0x3757, 0x2ebc, 0x2c37, 0x3422, 0x36a8, 0x3a49, 0x364d, 0x3b0a, 0x3adc, 0x34f1, 0x3a15, 0x389b, 0x389b, 0x3557, 0x3542, 0x3a12, 0x38b4, 0x3a49, 0x38fd, 0x3a25, 0x3516, 0x3bc9, 0x3811, 0x1b72, 0x391e, 0x2ecb, 0x3a69, 0x3818, 0x342b, 0x3b44, 0x3912, 0x2ae6, 0x3bb1, 0x355e, 0x3182, 0x3793, 0x385b, 0x2983, 0x394d, 0x3021, 0x307c, 0x3419, 0x364f, 0x395f, 0x3395, 0x365d, 0x3a90, 0x3b4d, 0x3660, 0x35ad, 0x3b87, 0x3b40, 0x3919, 0x3800, 0x385c, 0x187b, 0x3b1e, 0x38c8, 0x38bf, 0x3844, 0x390b, 0x3672, 0x37df, 0x3a46, 0x3013, 0x30fd, 0x3a86, 0x36aa, 0x3a60, 0x39a7, 0x39b7, 0x37d2, 0x33e7, +0x2cde, 0x3a8d, 0x33d3, 0x2c74, 0x34c5, 0x2b02, 0x3ab0, 0x375d, 0x3a8f, 0x39c7, 0x340c, 0x3bc7, 0x39ae, 0x2ea6, 0x3b0b, 0x394b, 0x3823, 0x3504, 0x383a, 0x38f6, 0x382d, 0x3bda, 0x3a1b, 0x38c9, 0x35e2, 0x39f1, 0x38b9, 0x3281, 0x3bb3, 0x3156, 0x2c35, 0x3b28, 0x2cfe, 0x392a, 0x3908, 0x3a72, 0x2d0e, 0x3b20, 0x369d, 0x3bae, 0x2f9f, 0x3aac, 0x331f, 0x3ab7, 0x3999, 0x3980, 0x3b17, 0x39d3, 0x3609, 0x231d, 0x386c, 0x39b7, 0x2a32, 0x37b0, 0x350d, 0x2554, 0x33ee, 0x2c9a, 0x319a, 0x37d6, 0x347e, 0x3a54, 0x3903, 0x3aaa, 0x31fc, 0x33c9, 0x3988, 0x3ac7, 0x31b5, 0x354c, 0x3ba7, 0x342e, 0x3898, 0x3907, 0x3bc4, 0x36b6, 0x36fc, 0x3896, 0x3832, 0x33d8, 0x3af7, 0x38df, 0x3b8b, 0x2dc9, 0x29a0, 0x3b24, 0x34e6, 0x2d49, 0x34c2, 0x388e, 0x36cb, 0x2eff, 0x34fb, 0x3b91, 0x3be3, 0x39ed, +0x38fb, 0x3675, 0x36d9, 0x385b, 0x36ce, 0x3755, 0x354b, 0x3014, 0x3670, 0x3be2, 0x3af2, 0x3b6e, 0x345f, 0x2f8d, 0x3a55, 0x3919, 0x3ad3, 0x3388, 0x368a, 0x3bbf, 0x2b8e, 0x28fd, 0x2e73, 0x3baa, 0x3326, 0x3625, 0x351e, 0x35eb, 0x305c, 0x3bc5, 0x345b, 0x3473, 0x3555, 0x28bb, 0x357a, 0x39c2, 0x3871, 0x3232, 0x2c3a, 0x3983, 0x340a, 0x3af8, 0x3932, 0x3354, 0x3a39, 0x36b8, 0x367a, 0x29ce, 0x3bf0, 0x290d, 0x339f, 0x3afb, 0x340d, 0x3128, 0x38ac, 0x2b34, 0x346f, 0x3356, 0x3bb9, 0x2967, 0x355a, 0x37cd, 0x34f4, 0x3a66, 0x36b6, 0x2968, 0x3bf7, 0x3a0d, 0x361c, 0x3898, 0x3859, 0x39fe, 0x3bdb, 0x38aa, 0x3b92, 0x2fcc, 0x38b1, 0x3713, 0x3be1, 0x3826, 0x3b00, 0x32c3, 0x30a1, 0x38d7, 0x3bf3, 0x3b42, 0x38af, 0x304b, 0x3279, 0x37c5, 0x2072, 0x346c, 0x3857, 0x3597, 0x3624, 0x39d7, +0x3042, 0x392a, 0x3120, 0x20d7, 0x3b8c, 0x3a8f, 0x383a, 0x3a52, 0x3bbd, 0x31ad, 0x3781, 0x3359, 0x36cb, 0x33f1, 0x385b, 0x3225, 0x38d5, 0x3019, 0x3a17, 0x34d3, 0x3a34, 0x39ba, 0x3a17, 0x31e8, 0x3b53, 0x3b9c, 0x3b54, 0x33b6, 0x3488, 0x367a, 0x3a2c, 0x3ac7, 0x3b0a, 0x399a, 0x3891, 0x3a51, 0x3a4a, 0x380b, 0x391c, 0x3805, 0x381d, 0x3b2a, 0x2a0d, 0x3acc, 0x3b55, 0x3958, 0x3a2b, 0x35cd, 0x340e, 0x36e1, 0x3a09, 0x2569, 0x2c5f, 0x376c, 0x3431, 0x3ad3, 0x31fc, 0x331e, 0x396b, 0x2ebd, 0x380f, 0x3bce, 0x3a74, 0x32de, 0x30ec, 0x3300, 0x3aba, 0x34c3, 0x3abd, 0x30c6, 0x39af, 0x3a3d, 0x3ad9, 0x3097, 0x2af9, 0x38a6, 0x3071, 0x25c5, 0x34ea, 0x2ff3, 0x355e, 0x3b66, 0x1edc, 0x3a1f, 0x32c7, 0x381c, 0x3837, 0x3bc1, 0x3033, 0x3bcb, 0x3a53, 0x3ab7, 0x38be, 0x2a81, 0x36ad, 0x301f, +0x3931, 0x3ba1, 0x34ac, 0x383d, 0x3636, 0x35b9, 0x38f2, 0x2c53, 0x32a9, 0x3b31, 0x3181, 0x383c, 0x395b, 0x30ef, 0x3aa7, 0x30ce, 0x32ff, 0x328b, 0x3329, 0x2c12, 0x394e, 0x2c60, 0x35de, 0x3938, 0x2c18, 0x37be, 0x392e, 0x3438, 0x3650, 0x34c7, 0x392c, 0x39aa, 0x2e72, 0x3ab6, 0x2bc9, 0x3bfa, 0x36f2, 0x2830, 0x2ad4, 0x3b3f, 0x3ae7, 0x34c7, 0x3064, 0x35ef, 0x3956, 0x39e9, 0x31eb, 0x2ff8, 0x36f3, 0x38de, 0x34b8, 0x3aa8, 0x1c30, 0x3b4f, 0x38d9, 0x3bba, 0x39b7, 0x3b4c, 0x2ee9, 0x3837, 0x3835, 0x36c6, 0x3928, 0x2e72, 0x37d2, 0x3642, 0x31cb, 0x35d6, 0x3408, 0x3404, 0x39d4, 0x3877, 0x38a5, 0x31ae, 0x2c75, 0x341a, 0x3af5, 0x3abc, 0x330b, 0x387d, 0x3b46, 0x369f, 0x2bf0, 0x3bdc, 0x36fc, 0x362a, 0x374f, 0x3bc3, 0x3ac5, 0x38c1, 0x3965, 0x380f, 0x3675, 0x3bba, 0x3a38, 0x39ca +}; \ No newline at end of file diff --git a/redmule/inc/w_input.h b/redmule/inc/w_input.h new file mode 100644 index 0000000..dd2e275 --- /dev/null +++ b/redmule/inc/w_input.h @@ -0,0 +1,99 @@ + /* Header file generated by RedMulE Golden Model */ +uint16_t w_inp [9216] = { +0x2d1a, 0x2f9c, 0x3596, 0x38eb, 0x3a5c, 0x3827, 0x3b07, 0x397a, 0x347f, 0x3703, 0x2e26, 0x305c, 0x3ba2, 0x39cd, 0x36fa, 0x3899, 0x38dc, 0x3a60, 0x345b, 0x2d80, 0x36ad, 0x2eb8, 0x34ca, 0x384a, 0x33ef, 0x353e, 0x370e, 0x38f6, 0x3947, 0x387c, 0x3893, 0x38fd, 0x39a9, 0x29fb, 0x39ec, 0x3232, 0x35f8, 0x320c, 0x3b5c, 0x34b6, 0x39e6, 0x2b02, 0x340d, 0x30cc, 0x3b7d, 0x3298, 0x381a, 0x3aa8, 0x3b2b, 0x3605, 0x389e, 0x3a3a, 0x2f2c, 0x3ae4, 0x2cc3, 0x2e6b, 0x3850, 0x3a94, 0x396f, 0x3683, 0x3983, 0x39ea, 0x349f, 0x3b95, 0x28a5, 0x3853, 0x349a, 0x30cc, 0x389b, 0x3595, 0x31f9, 0x3a85, 0x367d, 0x3bbe, 0x3bde, 0x3ae7, 0x3977, 0x3a5d, 0x2497, 0x32ed, 0x39c5, 0x3553, 0x3b87, 0x357c, 0x3868, 0x2fc2, 0x1ad7, 0x3079, 0x3b2f, 0x3570, 0x3a70, 0x3761, 0x29cd, 0x3640, 0x3885, 0x2c6e, +0x3a6c, 0x322b, 0x34e2, 0x1a14, 0x385b, 0x3bdd, 0x3b0f, 0x3548, 0x35d5, 0x3105, 0x39f6, 0x2ce7, 0x365f, 0x286d, 0x3673, 0x3517, 0x3847, 0x3905, 0x34f8, 0x3a5b, 0x2809, 0x38e8, 0x3910, 0x3bce, 0x3aa7, 0x3a98, 0x3a82, 0x318b, 0x39a1, 0x39c7, 0x3960, 0x3206, 0x3320, 0x3893, 0x2e29, 0x391a, 0x28ae, 0x3535, 0x3a37, 0x3821, 0x32de, 0x326d, 0x3196, 0x3b5f, 0x38f2, 0x3b44, 0x3680, 0x3309, 0x3bf2, 0x3bb2, 0x3874, 0x3531, 0x2c98, 0x3648, 0x2d18, 0x2af5, 0x25d7, 0x3a75, 0x38bc, 0x3a77, 0x39bb, 0x3a92, 0x397d, 0x3486, 0x35e3, 0x3917, 0x3805, 0x3001, 0x3619, 0x3952, 0x34c7, 0x3a87, 0x35de, 0x385e, 0x2590, 0x3bb1, 0x2b49, 0x3526, 0x35c5, 0x3963, 0x374e, 0x346a, 0x35d0, 0x3622, 0x2dd8, 0x3aa0, 0x3292, 0x30d8, 0x3883, 0x3ad4, 0x3a22, 0x360f, 0x3424, 0x348f, 0x3886, 0x38f3, +0x3945, 0x3792, 0x3629, 0x3b2b, 0x3bf5, 0x3a69, 0x3199, 0x3b84, 0x35c4, 0x3b13, 0x27a5, 0x3b8a, 0x393d, 0x3a14, 0x3a40, 0x35e7, 0x3a6a, 0x38ad, 0x3bb9, 0x24d8, 0x3b90, 0x3797, 0x3716, 0x384e, 0x3832, 0x3855, 0x39c3, 0x39de, 0x2684, 0x3627, 0x35f0, 0x3a86, 0x3995, 0x2abc, 0x347a, 0x2409, 0x2758, 0x3664, 0x3ae9, 0x1eb1, 0x386a, 0x33dd, 0x3413, 0x243b, 0x3b5b, 0x36fb, 0x38ab, 0x39cb, 0x38e8, 0x308c, 0x3be2, 0x30c8, 0x382c, 0x3bcc, 0x3b0f, 0x30e7, 0x31b4, 0x2adb, 0x2354, 0x2c7e, 0x3774, 0x3299, 0x3574, 0x3b35, 0x38a3, 0x3836, 0x3400, 0x3721, 0x3acb, 0x37da, 0x3688, 0x35d5, 0x3977, 0x3247, 0x2a12, 0x3b36, 0x371a, 0x3750, 0x2ad9, 0x242b, 0x306f, 0x3502, 0x3b35, 0x394d, 0x3646, 0x315d, 0x387d, 0x349f, 0x305a, 0x3a84, 0x3a3e, 0x3be3, 0x3bf9, 0x3580, 0x3b14, 0x3a13, +0x371c, 0x2da9, 0x3995, 0x38be, 0x323e, 0x328d, 0x383d, 0x3991, 0x3a57, 0x38ca, 0x3867, 0x3982, 0x34fd, 0x347c, 0x380f, 0x3074, 0x38d4, 0x34fa, 0x326a, 0x377c, 0x3a52, 0x3abd, 0x3536, 0x226f, 0x319c, 0x3321, 0x393e, 0x3467, 0x3b37, 0x3bc1, 0x3a17, 0x394d, 0x33a2, 0x395d, 0x33e4, 0x3b09, 0x3855, 0x354d, 0x2f53, 0x34e7, 0x375b, 0x35f1, 0x367f, 0x3674, 0x2e07, 0x3ba0, 0x314b, 0x3bce, 0x2c5f, 0x384d, 0x3443, 0x36b1, 0x3973, 0x38d8, 0x340d, 0x3a77, 0x2ec7, 0x3538, 0x2e0e, 0x2d39, 0x3a81, 0x3b54, 0x3bdc, 0x3461, 0x2d5f, 0x3a52, 0x390c, 0x2186, 0x3896, 0x39d5, 0x3868, 0x2171, 0x303e, 0x3b19, 0x3915, 0x3be0, 0x39cb, 0x34ce, 0x357f, 0x394b, 0x39d3, 0x3af8, 0x3855, 0x3430, 0x36d6, 0x38bd, 0x3ad5, 0x38f4, 0x252e, 0x3b49, 0x36b0, 0x32b2, 0x3610, 0x3baa, 0x398b, 0x3ac1, +0x3655, 0x2ad4, 0x38e1, 0x3a9a, 0x37b9, 0x3027, 0x3889, 0x3017, 0x3baf, 0x32b8, 0x3922, 0x3984, 0x3ac3, 0x3775, 0x37f5, 0x38f0, 0x3a37, 0x3a8a, 0x283a, 0x1b5c, 0x3998, 0x2c23, 0x380e, 0x3254, 0x3ad7, 0x39f2, 0x328e, 0x36da, 0x370d, 0x2f71, 0x3944, 0x2e44, 0x36d7, 0x362a, 0x370d, 0x38a7, 0x3b99, 0x3850, 0x3111, 0x329d, 0x3bbf, 0x353e, 0x3932, 0x3542, 0x2ab8, 0x3bf2, 0x312c, 0x3070, 0x3983, 0x3882, 0x3aa6, 0x39fd, 0x384b, 0x3a76, 0x3b1f, 0x312a, 0x183e, 0x362e, 0x347e, 0x38cf, 0x3186, 0x38eb, 0x1c0b, 0x2def, 0x33ec, 0x3b0f, 0x387e, 0x344f, 0x3b28, 0x367f, 0x3661, 0x382a, 0x28c2, 0x3980, 0x3709, 0x3875, 0x3922, 0x37fb, 0x36a9, 0x2f28, 0x36c2, 0x30c6, 0x3bcf, 0x3aba, 0x3965, 0x3397, 0x39ab, 0x3812, 0x344e, 0x39ff, 0x3866, 0x3895, 0x3ba0, 0x3a13, 0x3a1b, 0x35ef, +0x382a, 0x34ad, 0x39c7, 0x2ef8, 0x377e, 0x3915, 0x3beb, 0x3a4f, 0x35e7, 0x3465, 0x3668, 0x3404, 0x3233, 0x3361, 0x3b7e, 0x3702, 0x3b3b, 0x3834, 0x36e7, 0x3a65, 0x2ed7, 0x3965, 0x3914, 0x34c7, 0x3722, 0x3612, 0x397f, 0x2e03, 0x36b6, 0x2da9, 0x33d1, 0x350e, 0x38af, 0x1b8f, 0x360b, 0x3803, 0x38e4, 0x328a, 0x330b, 0x383c, 0x3501, 0x334b, 0x35bf, 0x395f, 0x394f, 0x359b, 0x3b66, 0x2eee, 0x350f, 0x3759, 0x3a91, 0x3b46, 0x3808, 0x3b0e, 0x38c7, 0x3846, 0x2e4b, 0x2edb, 0x382a, 0x348d, 0x1a8b, 0x3510, 0x39c3, 0x30f8, 0x3758, 0x2fc8, 0x3386, 0x3316, 0x393f, 0x3351, 0x3b46, 0x389f, 0x3312, 0x28a9, 0x34ff, 0x3a51, 0x3b00, 0x36a4, 0x3811, 0x281c, 0x3646, 0x3b42, 0x3453, 0x32ea, 0x2f6b, 0x3a64, 0x2cd4, 0x28d1, 0x3a0b, 0x3276, 0x3b1d, 0x368e, 0x340a, 0x3ac3, 0x3067, 0x3987, +0x25a7, 0x39f4, 0x3b54, 0x38d8, 0x3708, 0x3999, 0x313e, 0x316b, 0x39af, 0x2e81, 0x3667, 0x39e3, 0x3904, 0x391d, 0x383d, 0x3956, 0x36c0, 0x30d0, 0x346d, 0x39cf, 0x3236, 0x354f, 0x377f, 0x326a, 0x3800, 0x3022, 0x3b2f, 0x3b98, 0x3a97, 0x3bca, 0x3a1e, 0x3a5b, 0x337d, 0x385c, 0x2fff, 0x399e, 0x33e3, 0x355a, 0x3835, 0x3a1e, 0x38d5, 0x3791, 0x2f0d, 0x2ef4, 0x3581, 0x397a, 0x3a26, 0x391b, 0x3727, 0x3874, 0x3a25, 0x30ba, 0x2b99, 0x3a8b, 0x345b, 0x3bab, 0x3900, 0x3743, 0x3b73, 0x391a, 0x3bd2, 0x39ea, 0x3599, 0x383b, 0x34c0, 0x34b3, 0x3bf0, 0x396d, 0x3b6f, 0x36f9, 0x350e, 0x3b43, 0x39da, 0x3b16, 0x38af, 0x369c, 0x3530, 0x3a87, 0x3a68, 0x2220, 0x2d27, 0x3a49, 0x2df1, 0x353a, 0x3a08, 0x3bdb, 0x378e, 0x2942, 0x35f0, 0x3618, 0x3897, 0x3946, 0x3b7d, 0x3a44, 0x356f, 0x389f, +0x3bd0, 0x2946, 0x3aa2, 0x3711, 0x3462, 0x369c, 0x3a56, 0x3b59, 0x32ac, 0x3813, 0x2f28, 0x3c00, 0x3404, 0x34dc, 0x29ec, 0x3bf1, 0x393e, 0x3b63, 0x3513, 0x3822, 0x382b, 0x35f2, 0x3b2c, 0x3498, 0x2515, 0x31aa, 0x3a7f, 0x391d, 0x3a54, 0x34ef, 0x353a, 0x3a41, 0x334a, 0x3b6a, 0x376f, 0x3bb0, 0x3821, 0x38c2, 0x3b57, 0x333d, 0x2ba8, 0x368e, 0x3a2c, 0x345b, 0x3b9a, 0x3976, 0x3870, 0x34b5, 0x386c, 0x3916, 0x38cc, 0x32a3, 0x3bd8, 0x30bc, 0x30a7, 0x38bc, 0x3727, 0x38e7, 0x337a, 0x3b34, 0x39b7, 0x391f, 0x27fa, 0x3b3f, 0x3940, 0x3698, 0x3256, 0x3a9b, 0x39c3, 0x2e76, 0x3899, 0x3915, 0x36a4, 0x3606, 0x3bd9, 0x314f, 0x2822, 0x3bba, 0x381b, 0x3252, 0x38dd, 0x2cb9, 0x38f3, 0x385c, 0x348d, 0x3220, 0x31a8, 0x3128, 0x3aed, 0x3903, 0x3be2, 0x3971, 0x29f4, 0x3130, 0x3b11, 0x35d7, +0x3a04, 0x393c, 0x3573, 0x3870, 0x3568, 0x38f5, 0x38a4, 0x353f, 0x3b0f, 0x363a, 0x35de, 0x3241, 0x3b97, 0x2e15, 0x3a8a, 0x3823, 0x38e0, 0x3556, 0x3a96, 0x364f, 0x337a, 0x34e3, 0x342b, 0x3994, 0x3b5c, 0x3b57, 0x3a63, 0x2f0d, 0x3b7a, 0x3a08, 0x3102, 0x34ce, 0x3036, 0x3864, 0x3887, 0x280c, 0x3bb5, 0x38a1, 0x3b71, 0x3b0c, 0x3487, 0x3b6e, 0x3aec, 0x3af6, 0x1cd8, 0x3381, 0x2923, 0x3b78, 0x3597, 0x3528, 0x3afe, 0x39c2, 0x3258, 0x3898, 0x3b8c, 0x2c32, 0x38e1, 0x2f4a, 0x3948, 0x39bb, 0x39cb, 0x386b, 0x3778, 0x3847, 0x2fa6, 0x3b01, 0x3a0c, 0x3a67, 0x3b8e, 0x3959, 0x346b, 0x38ba, 0x34f8, 0x3606, 0x3940, 0x3562, 0x3be6, 0x390c, 0x2d8b, 0x3987, 0x2f30, 0x2d65, 0x36d1, 0x3b44, 0x3421, 0x37cb, 0x3a4a, 0x338e, 0x3693, 0x3699, 0x3521, 0x3aae, 0x3930, 0x391c, 0x3654, 0x3898, +0x36f8, 0x34cd, 0x2149, 0x326e, 0x36fa, 0x3179, 0x2e80, 0x3a76, 0x3027, 0x3847, 0x3b9b, 0x38eb, 0x35c2, 0x34d4, 0x384a, 0x3595, 0x35ab, 0x3937, 0x3668, 0x3953, 0x3697, 0x2d28, 0x3baa, 0x3a75, 0x3889, 0x3996, 0x34d8, 0x39b2, 0x3b7d, 0x37c5, 0x3b60, 0x316d, 0x324c, 0x3a17, 0x35bd, 0x3914, 0x334e, 0x3375, 0x29e3, 0x34a3, 0x3346, 0x39e3, 0x32d6, 0x2b0b, 0x3ac7, 0x3aca, 0x3813, 0x3752, 0x3022, 0x39f7, 0x3971, 0x389f, 0x39c2, 0x3205, 0x3739, 0x38b3, 0x3942, 0x39dc, 0x39db, 0x382a, 0x3abb, 0x3978, 0x3ad0, 0x3568, 0x2c42, 0x3773, 0x31c8, 0x3b9f, 0x3594, 0x3a9a, 0x37c3, 0x31c2, 0x325a, 0x3931, 0x2265, 0x39ab, 0x24b6, 0x3291, 0x3a79, 0x3b31, 0x39ef, 0x3a6b, 0x381f, 0x304d, 0x33fb, 0x39d6, 0x3849, 0x3891, 0x367a, 0x3b66, 0x380e, 0x3481, 0x3b30, 0x2a58, 0x3bf3, 0x35d3, +0x3b73, 0x3bcf, 0x3a9c, 0x3a9f, 0x2d30, 0x3abe, 0x3510, 0x3980, 0x2809, 0x3bed, 0x2477, 0x31d1, 0x37d6, 0x3553, 0x3190, 0x38fd, 0x366f, 0x3917, 0x3bf2, 0x3b54, 0x34f0, 0x2f3f, 0x3b0a, 0x379a, 0x342d, 0x2db5, 0x3105, 0x35a8, 0x39a2, 0x3b84, 0x350e, 0x2c79, 0x3a84, 0x3419, 0x3af7, 0x3508, 0x39e6, 0x3a46, 0x2f9c, 0x3759, 0x2504, 0x37b5, 0x3b2b, 0x39cc, 0x3ae4, 0x38ec, 0x3751, 0x3841, 0x3b66, 0x2811, 0x34ac, 0x380a, 0x3666, 0x38f0, 0x3447, 0x33b7, 0x3bab, 0x388e, 0x2ce5, 0x307c, 0x3588, 0x3bf6, 0x38f9, 0x3b01, 0x340a, 0x3ae9, 0x3890, 0x3995, 0x3b9a, 0x3a50, 0x3751, 0x2cf7, 0x3a1b, 0x3b4b, 0x2474, 0x2eb0, 0x21b8, 0x38cd, 0x38d8, 0x35d6, 0x36f5, 0x240e, 0x29e9, 0x3686, 0x39d1, 0x3575, 0x3b7c, 0x3886, 0x2e72, 0x38d9, 0x34ac, 0x3816, 0x3b69, 0x3b7c, 0x2f10, 0x3428, +0x2aba, 0x3a08, 0x3acf, 0x364d, 0x344d, 0x3adf, 0x3526, 0x3a64, 0x3ad3, 0x34eb, 0x3943, 0x3894, 0x383a, 0x3bab, 0x3183, 0x3928, 0x3999, 0x300a, 0x35c5, 0x37a3, 0x384d, 0x3a84, 0x3959, 0x39ef, 0x360b, 0x350e, 0x36bf, 0x2f32, 0x3410, 0x383c, 0x3952, 0x33ee, 0x3899, 0x30a8, 0x3b1e, 0x30fa, 0x3b5c, 0x359d, 0x3802, 0x390f, 0x3815, 0x140e, 0x35f6, 0x3bfa, 0x38c4, 0x364f, 0x3b7f, 0x3b9f, 0x35a6, 0x3bf3, 0x3a2d, 0x3727, 0x39ab, 0x3944, 0x3ac5, 0x36df, 0x3b27, 0x3a1f, 0x3a69, 0x3994, 0x3673, 0x3b0c, 0x2f2f, 0x3303, 0x319f, 0x3567, 0x3753, 0x3b8f, 0x30f0, 0x3b7b, 0x36dc, 0x2941, 0x2b6c, 0x3ad2, 0x39cb, 0x3884, 0x3a58, 0x3a0c, 0x337a, 0x3a6e, 0x3b94, 0x37d1, 0x38f2, 0x3bf1, 0x3843, 0x2ae6, 0x384b, 0x3bf9, 0x36cb, 0x362e, 0x309a, 0x35ef, 0x36e6, 0x3484, 0x38a4, 0x3457, +0x370e, 0x341f, 0x39c0, 0x3527, 0x393f, 0x3438, 0x2685, 0x375f, 0x3803, 0x38eb, 0x39fe, 0x39b3, 0x380f, 0x3370, 0x2766, 0x3b26, 0x35b6, 0x38ab, 0x3890, 0x26a8, 0x3879, 0x3819, 0x3ae8, 0x3aae, 0x3385, 0x2944, 0x3966, 0x35cc, 0x3641, 0x3a73, 0x3b91, 0x35d5, 0x31f8, 0x34a1, 0x2bbe, 0x3419, 0x369f, 0x3289, 0x98e, 0x2fef, 0x3ad5, 0x3029, 0x3ae0, 0x3b11, 0x3a03, 0x2e69, 0x38ae, 0x2eed, 0x3871, 0x3848, 0x2f40, 0x3946, 0x38bb, 0x3851, 0x39f5, 0x2e9a, 0x38fc, 0x33e4, 0x349f, 0x3b2e, 0x3873, 0x388c, 0x395a, 0x3519, 0x3636, 0x2df3, 0x3bd5, 0x3a94, 0x2e66, 0x38af, 0x2e50, 0x3aff, 0x3b0e, 0x36c8, 0x187b, 0x3733, 0x3a82, 0x3baf, 0x35c4, 0x2f20, 0x3a36, 0x3266, 0x38c6, 0x37e7, 0x31c5, 0x3a24, 0x3805, 0x299b, 0x3b3b, 0x3163, 0x2f34, 0x30d5, 0x38a2, 0x392a, 0x32af, 0x3be7, +0x3377, 0x2cce, 0x36d4, 0x3852, 0x39ad, 0x30e1, 0x397f, 0x380e, 0x3bd1, 0x3ae1, 0x3413, 0x3aa8, 0x3bcf, 0x3b5f, 0x393f, 0x37cf, 0x391e, 0x38a4, 0x3a1c, 0x3778, 0x35ca, 0x3b75, 0x2fe7, 0x2f20, 0x2d50, 0x3b72, 0x37b3, 0x3ba6, 0x37f5, 0x3866, 0x3b8c, 0x382c, 0x2c3e, 0x39ba, 0x3be2, 0x3602, 0x3ba5, 0x38d5, 0x37ed, 0x36d6, 0x3b11, 0x34de, 0x3831, 0x39e8, 0x377f, 0x38e4, 0x363d, 0x2b40, 0x2c1e, 0x304c, 0x3bcc, 0x347f, 0x34d7, 0x313b, 0x3a3b, 0x1f13, 0x379e, 0x331f, 0x2d1c, 0x3778, 0x3550, 0x3a5f, 0x2fea, 0x3ab4, 0x32bb, 0x386c, 0x3690, 0x3787, 0x3a95, 0x367b, 0x385a, 0x3b3b, 0x3b49, 0x387c, 0x38f5, 0x2f80, 0x37d4, 0x3b87, 0x3881, 0x3996, 0x3547, 0x38d2, 0x3ab2, 0x3a1c, 0x3483, 0x3ae7, 0x394d, 0x333c, 0x34df, 0x39e5, 0x3aaf, 0x39e6, 0x30a3, 0x3a4d, 0x3890, 0x34cc, +0x3482, 0x3420, 0x2dcc, 0x310d, 0x38c5, 0x3b6a, 0x38ca, 0x3ba1, 0x3a7c, 0x318a, 0x2d61, 0x3635, 0x39e2, 0x3837, 0x39fe, 0x3842, 0x3574, 0x3992, 0x246c, 0x3565, 0x380e, 0x3712, 0x35e8, 0x3712, 0x38ed, 0x3307, 0x398f, 0x31f3, 0x3a5c, 0x3a73, 0x33ba, 0x3841, 0x35d0, 0x36df, 0x2ce4, 0x366e, 0x38a3, 0x251a, 0x399f, 0x372c, 0x359d, 0x3913, 0x397c, 0x2e64, 0x3861, 0x2d47, 0x3a98, 0x381d, 0x3b60, 0x3b4a, 0x381d, 0x3a0d, 0x3adb, 0x3869, 0x3353, 0x3939, 0x39ad, 0x3114, 0x3b12, 0x3860, 0x39fe, 0x3ba6, 0x247b, 0x3a0e, 0x3206, 0x3b0b, 0x3b25, 0x399f, 0x39b4, 0x3b42, 0x3a81, 0x36bb, 0x3522, 0x349e, 0x3494, 0x3081, 0x3978, 0x3768, 0x2edd, 0x37b4, 0x34d1, 0x3bf8, 0x3ad6, 0x3773, 0x3034, 0x381a, 0x3a52, 0x3771, 0x2b52, 0x3b3d, 0x3b20, 0x3bf8, 0x342f, 0x34f8, 0x3b72, 0x35b4, +0x3029, 0x36c3, 0x39c0, 0x393c, 0x30da, 0x3152, 0x3917, 0x3864, 0x390b, 0x3aea, 0x2c08, 0x36c6, 0x3bcd, 0x3375, 0x35bc, 0x3a2b, 0x3684, 0x368f, 0x3974, 0x37fd, 0x3901, 0x37a4, 0x3729, 0x35a0, 0x3ab0, 0x3251, 0x2857, 0x38ef, 0x2e96, 0x38d6, 0x2cda, 0x331c, 0x39a8, 0x3a44, 0x3a7c, 0x3aa8, 0x3851, 0x3974, 0x3b93, 0x3587, 0x3baf, 0x2eac, 0x37f4, 0x38a7, 0x292d, 0x2fc0, 0x330d, 0x3404, 0x3459, 0x3999, 0x385a, 0x396c, 0x3834, 0x2534, 0x3b44, 0x2ecf, 0x34f6, 0x3632, 0x2898, 0x3511, 0x3514, 0x3bd8, 0x3284, 0x3913, 0x34c4, 0x3967, 0x3845, 0x3ab4, 0x37eb, 0x30b8, 0x3629, 0x39c1, 0x2b02, 0x37f7, 0x31d5, 0x3812, 0x2c1b, 0x2a24, 0x3499, 0x36a7, 0x39c2, 0x3952, 0x351b, 0x3ba0, 0x3706, 0x3896, 0x3600, 0x22c8, 0x3077, 0x3839, 0x36ed, 0x38d4, 0x2fd0, 0x3a29, 0x370c, 0x3bfe, +0x335b, 0x311a, 0x39b1, 0x32aa, 0x3a7e, 0x387f, 0x3846, 0x3a3b, 0x379b, 0x34c4, 0x38dc, 0x2c37, 0x394c, 0x381d, 0x3113, 0x300e, 0x3922, 0x2ddd, 0x30ee, 0x3347, 0x3881, 0x2cb5, 0x311e, 0x3023, 0x384c, 0x3a29, 0x39b9, 0x391d, 0x36ff, 0x38d7, 0x3adf, 0x3892, 0x39d7, 0x3b41, 0x3a26, 0x35cf, 0x2fa9, 0x32ff, 0x3218, 0x34af, 0x3282, 0x2ff1, 0x3823, 0x3249, 0x35c7, 0x3baf, 0x3817, 0x39c2, 0x3799, 0x38e2, 0x39f5, 0x30d1, 0x3934, 0x3696, 0x351b, 0x3586, 0x3adf, 0x3747, 0x3aa0, 0x33d7, 0x3600, 0x3a9a, 0x3b09, 0x3a96, 0x364b, 0x38d2, 0x3b1e, 0x2793, 0x3555, 0x3b85, 0x3460, 0x3747, 0x3a29, 0x21c7, 0x3b24, 0x3b7a, 0x3902, 0x2cd6, 0x379b, 0x2970, 0x3910, 0x38c2, 0x3930, 0x3674, 0x39e6, 0x3ac8, 0x38e2, 0x3841, 0x37a2, 0x3a56, 0x3424, 0x3406, 0x385c, 0x3924, 0x3923, 0x36aa, +0x33bd, 0x37ed, 0x2b2e, 0x3bdc, 0x3ae1, 0x3055, 0x3b41, 0x31d7, 0x3880, 0x3125, 0x3015, 0x282f, 0x3bc1, 0x3bd1, 0x3684, 0x2ca5, 0x344e, 0x3bb1, 0x2094, 0x349a, 0x3211, 0x31bc, 0x3bd1, 0x2d9d, 0x3b07, 0x3b33, 0x350f, 0x3459, 0x3851, 0x36b4, 0x3a84, 0x3965, 0x3a34, 0x3b3c, 0x353d, 0x2ffd, 0x33e6, 0x376b, 0x3272, 0x2e28, 0x3aea, 0x3485, 0x39f4, 0x3955, 0x277e, 0x3bfc, 0x3526, 0x384e, 0x2485, 0x38b2, 0x3101, 0x2fbd, 0x359e, 0x36ba, 0x3aa5, 0x308a, 0x38d1, 0x3434, 0x3ae9, 0x3954, 0x33e0, 0x2ff9, 0x3aa9, 0x3721, 0x2cb5, 0x28e9, 0x3524, 0x3658, 0x3a2f, 0x315c, 0x38d9, 0x396e, 0x383b, 0x3a0a, 0x32fe, 0x3479, 0x2a64, 0x3162, 0x35dd, 0x350b, 0x2c86, 0x3878, 0x346b, 0x2719, 0x204d, 0x38a4, 0x3778, 0x3863, 0x3ae3, 0x3784, 0x3174, 0x3562, 0x3a26, 0x39c4, 0x31b9, 0x3600, +0x2cf9, 0x3a34, 0x3834, 0x346f, 0x3712, 0x29e1, 0x2cfe, 0x3873, 0x3b1f, 0x3bc2, 0x3936, 0x3551, 0x3b8e, 0x3742, 0x39b1, 0x36ab, 0x390f, 0x2a6d, 0x3805, 0x32b1, 0x2e34, 0x3898, 0x3375, 0x3997, 0x3845, 0x3b9a, 0x3bac, 0x3876, 0x392c, 0x3811, 0x3aad, 0x3700, 0x2ab0, 0x340c, 0x3ba5, 0x2d7c, 0x36c7, 0x38dc, 0x3745, 0x2c5c, 0x2d0d, 0x34ee, 0x339e, 0x3565, 0x3983, 0x302c, 0x2cd8, 0x3886, 0x3994, 0x3ba6, 0x38d1, 0x315d, 0x3083, 0x3860, 0x3769, 0x3bf0, 0x33cd, 0x2b0f, 0x360c, 0x380a, 0x3442, 0x3b5b, 0x36eb, 0x3938, 0x3b69, 0x3283, 0x301b, 0x2fb0, 0x3b51, 0x3aa6, 0x2b81, 0x2cfd, 0x3aaa, 0x38fc, 0x3a73, 0x3232, 0x3614, 0x3963, 0x3b01, 0x3b9c, 0x3889, 0x372a, 0x20de, 0x3629, 0x36c0, 0x31ca, 0x3b87, 0x3543, 0x38bf, 0x3aae, 0x37d6, 0x365e, 0x35a4, 0x35da, 0x3962, 0x3741, +0x2910, 0x3478, 0x38b6, 0x355e, 0x3a0a, 0x3969, 0x36b2, 0x3bcd, 0x2633, 0x36d6, 0x395c, 0x39d9, 0x3505, 0x34cf, 0x337f, 0x3560, 0x2f11, 0x3a3d, 0x3386, 0x39ac, 0x38d3, 0x2dbe, 0x3908, 0x3599, 0x2d42, 0x38eb, 0x2d1e, 0x3bb5, 0x3550, 0x377e, 0x387f, 0x2f07, 0x3b2f, 0x37a5, 0x390a, 0x3902, 0x38e8, 0x345a, 0x38a5, 0x378b, 0x2e8d, 0x3ab3, 0x3a78, 0x34d9, 0x341a, 0x3387, 0x289a, 0x2db0, 0x384f, 0x3be6, 0x24e4, 0x3b02, 0x3af5, 0x34b2, 0x2af4, 0x3ae6, 0x337d, 0x3875, 0x34f6, 0x262d, 0x3488, 0x3a14, 0x2cb8, 0x357c, 0x3b96, 0x3208, 0x3969, 0x2bae, 0x3b77, 0x3515, 0x345d, 0x39c9, 0x354d, 0x38cf, 0x3b12, 0x3af9, 0x3a3c, 0x2f0f, 0x3a0b, 0x3075, 0x3859, 0x2045, 0x382e, 0x3901, 0x159e, 0x30fd, 0x2b73, 0x31e0, 0x3bf4, 0x3a46, 0x3afd, 0x2bbe, 0x274d, 0x39dd, 0x2bc7, 0x3450, +0x2ace, 0x3a96, 0x3bae, 0x386d, 0x3a6a, 0x2a87, 0x3913, 0x3618, 0x2cce, 0x391e, 0x3346, 0x3a02, 0x3981, 0x3afe, 0x34da, 0x3aa3, 0x3846, 0x303e, 0x377a, 0x3bc0, 0x2d77, 0x2f1a, 0x3916, 0x3b20, 0x2896, 0x3b93, 0x3a74, 0x24dd, 0x3396, 0x3b7c, 0x3a9b, 0x3b17, 0x366a, 0x1e78, 0x3b60, 0x3153, 0x3844, 0x2aa8, 0x37ab, 0x352c, 0x3455, 0x3a4d, 0x3a7a, 0x3a2f, 0x35bb, 0x358f, 0x3781, 0x2288, 0x2e69, 0x39c4, 0x3534, 0x3ba4, 0x3b8a, 0x398b, 0x3998, 0x392a, 0x3bd5, 0x3a5b, 0x31e5, 0x39af, 0x3a90, 0x3ac1, 0x374e, 0x3791, 0x3aa4, 0x3519, 0x3b0a, 0x398e, 0x3bae, 0x339e, 0x35fe, 0x3ab9, 0x2a73, 0x38b3, 0x388c, 0x3530, 0x2fe3, 0x37b5, 0x3188, 0x3b00, 0x31b2, 0x34de, 0x2f74, 0x397b, 0x3a17, 0x2df1, 0x357a, 0x3882, 0x3958, 0x39f1, 0x3ba4, 0x3864, 0x36f8, 0x33d2, 0x390f, 0x395b, +0x3a33, 0x39ea, 0x3846, 0x3502, 0x29a0, 0x38da, 0x3a62, 0x39c8, 0x3a32, 0x3987, 0x2807, 0x3895, 0x3621, 0x3981, 0x368f, 0x25b3, 0x312e, 0x3bfe, 0x38c8, 0x396d, 0x3b4b, 0x380a, 0x3b65, 0x36ca, 0x3954, 0x3ae0, 0x32f0, 0x33b6, 0x3920, 0x35fd, 0x39b3, 0x2f18, 0x3876, 0x396c, 0x39eb, 0x3b39, 0x3ab4, 0x3b9b, 0x2504, 0x3621, 0x3534, 0x2ea1, 0x33e7, 0x3af5, 0x3965, 0x33ed, 0x38d8, 0x37cc, 0x3682, 0x311b, 0x36e0, 0x2805, 0x3502, 0x38ac, 0x2dfa, 0x39d6, 0x3a41, 0x38e1, 0x3992, 0x38da, 0x3a54, 0x356b, 0x3701, 0x389d, 0x35de, 0x3b8e, 0x3b4c, 0x302b, 0x36b5, 0x2dd3, 0x397b, 0x2e07, 0x3645, 0x3267, 0x38ca, 0x1b3c, 0x3a0b, 0x3821, 0x3881, 0x3a2b, 0x3980, 0x3711, 0x2b68, 0x3a27, 0x38ca, 0x3057, 0x3a56, 0x386a, 0x3bb8, 0x38ca, 0x3152, 0x3683, 0x39c4, 0x2cf6, 0x3351, 0x3903, +0x342c, 0x30b8, 0x3704, 0x38b1, 0x3811, 0x3860, 0x3916, 0x381f, 0x3892, 0x3349, 0x1e6c, 0x30e3, 0x38c8, 0x3b7b, 0x39d3, 0x30df, 0x3bf3, 0x2f61, 0x37fa, 0x396a, 0x3bbe, 0x3872, 0x38c1, 0x3ad8, 0x3624, 0x3536, 0x35bb, 0x3b72, 0x222a, 0x31e0, 0x34d3, 0x2ee5, 0x386d, 0x3a1e, 0x28b7, 0x21e6, 0x37ef, 0x3263, 0x3ae0, 0x211e, 0x38c4, 0x3ba4, 0x380b, 0x3757, 0x34f5, 0x3a18, 0x36fa, 0x3844, 0x39fd, 0x3aa1, 0x3be2, 0x33b5, 0x3523, 0x386c, 0x20a5, 0x314f, 0x3a95, 0x3a54, 0x3bdd, 0x35de, 0x3a9f, 0x398e, 0x3a70, 0x2a6d, 0x3538, 0x31d5, 0x38b4, 0x2199, 0x2bf6, 0x3a4a, 0x3057, 0x31e5, 0x3b51, 0x31d8, 0x398b, 0x2c16, 0x3571, 0x2a31, 0x39cf, 0x3507, 0x3874, 0x3b15, 0x2e8a, 0x36f5, 0x2f3b, 0x3be1, 0x3a1b, 0x38cb, 0x3759, 0x1e24, 0x3b85, 0x3998, 0x30f7, 0x2d7d, 0x3a8a, 0x3378, +0x37a0, 0x3b60, 0x32f2, 0x34cc, 0x3ba4, 0x3b40, 0x35b1, 0x1a3c, 0x239a, 0x3ab0, 0x38cf, 0x3b26, 0x3990, 0x39d7, 0x3b7e, 0x3980, 0x2b0a, 0x3985, 0x3862, 0x3a53, 0x3409, 0x27e2, 0x38f7, 0x3a2f, 0x2dd9, 0x34f1, 0x2dda, 0x395e, 0x375b, 0x3086, 0x3053, 0x3baf, 0x365b, 0x38b6, 0x3a51, 0x34e4, 0x356d, 0x35f9, 0x3b6e, 0x38aa, 0x2d39, 0x34ac, 0x27d5, 0x38c8, 0x280c, 0x1999, 0x36da, 0x31ca, 0x3bf6, 0x31be, 0x37a2, 0x3296, 0x3902, 0x2f66, 0x2f5e, 0x3867, 0x26c6, 0x32c4, 0x3412, 0x2dd7, 0x34a6, 0x3b89, 0x354b, 0x345e, 0x33cd, 0x35ad, 0x3804, 0x3583, 0x37ea, 0x3bcb, 0x30d0, 0x38e3, 0x3100, 0x2c8f, 0x3be4, 0x35e4, 0x35cb, 0x3a5e, 0x3a50, 0x3837, 0x3540, 0x3a4f, 0x3b11, 0x32fb, 0x3949, 0x3870, 0x36e9, 0x3382, 0x3aca, 0x3b72, 0x3b03, 0x3a4d, 0x369f, 0x389c, 0x3a02, 0x27e4, +0x3954, 0x36ba, 0x25e2, 0x3847, 0x357e, 0x38da, 0x361d, 0x3b50, 0x2a0f, 0x3af9, 0x37f1, 0x3831, 0x3bc1, 0x3aaf, 0x32de, 0x3980, 0x3877, 0x3a73, 0x2944, 0x3b22, 0x30e3, 0x357e, 0x3987, 0x26ed, 0x3a5c, 0x3a5e, 0x381a, 0x3ae1, 0x3bc4, 0x3b3e, 0x3579, 0x3835, 0x3ba0, 0x37d2, 0x38b9, 0x2c78, 0x3875, 0x3808, 0x346b, 0x38c6, 0x3970, 0x342d, 0x3104, 0x2b1a, 0x3aa6, 0x3b64, 0x3a9f, 0x36f1, 0x2cac, 0x3b98, 0x3ab5, 0x3ab7, 0x3685, 0x33a5, 0x30ae, 0x3689, 0x3bd4, 0x39c1, 0x3bb8, 0x3566, 0x37bb, 0x2ee2, 0x3036, 0x3a93, 0x35d2, 0x3a4a, 0x3be5, 0x324b, 0x357c, 0x3b9a, 0x3759, 0x39f8, 0x397c, 0x3a80, 0x39d9, 0x39f4, 0x2fbd, 0x390e, 0x3865, 0x39f1, 0x3b87, 0x37c1, 0x3a3f, 0x348c, 0x368b, 0x2714, 0x2a26, 0x32a9, 0x30dc, 0x3a35, 0x371a, 0x3b96, 0x3569, 0x388b, 0x3775, 0x3604, +0x386a, 0x391b, 0x3826, 0x38fd, 0x3156, 0x3bae, 0x3755, 0x38df, 0x391c, 0x3b3b, 0x3aa5, 0x3870, 0x3b20, 0x3a0b, 0x3a85, 0x395f, 0x3a77, 0x3264, 0x2c48, 0x3a8f, 0x3815, 0x3acc, 0x3b2d, 0x3be0, 0x39ac, 0x3a41, 0x3bc0, 0x39f6, 0x3524, 0x3024, 0x2ae0, 0x3b6f, 0x366f, 0x38e7, 0x3a0c, 0x38de, 0x3a12, 0x380b, 0x38ec, 0x3222, 0x308c, 0x3871, 0x381f, 0x3be5, 0x3a0f, 0x3ac7, 0x36fe, 0x3406, 0x331f, 0x354c, 0x379d, 0x373b, 0x380f, 0x37c2, 0x3822, 0x3b8f, 0x3871, 0x3444, 0x3357, 0x3052, 0x35a3, 0x353b, 0x3a18, 0x3b60, 0x3b2e, 0x39f1, 0x1bf8, 0x3b34, 0x3a45, 0x373b, 0x311e, 0x3b4f, 0x3bb9, 0x2f13, 0x390b, 0x38eb, 0x3a53, 0x3712, 0x3ad6, 0x3b2e, 0x3a91, 0x3171, 0x361b, 0x3ad7, 0x3577, 0x37d3, 0x31f3, 0x26d3, 0x2995, 0x3060, 0x3960, 0x38d3, 0x3a9b, 0x1aa9, 0x381e, 0x349b, +0x3485, 0x3be7, 0x3a58, 0x39bb, 0x36de, 0x3456, 0x2a1e, 0x2ed2, 0x2e40, 0x3041, 0x38f1, 0x3beb, 0x3aea, 0x3049, 0x3117, 0x3bf2, 0x3707, 0x3bf3, 0x38e3, 0x3b27, 0x3a88, 0x3b5a, 0x34a6, 0x3b51, 0x39bc, 0x3841, 0x3a1d, 0x3867, 0x35e7, 0x3b46, 0x2916, 0x3a6b, 0x3956, 0x3825, 0x352f, 0x3b66, 0x3975, 0x3637, 0x3b44, 0x356e, 0x387b, 0x34eb, 0x3a4b, 0x384f, 0x3b29, 0x3ad3, 0x3a09, 0x3542, 0x3a39, 0x3551, 0x3889, 0x3429, 0x3637, 0x3bc8, 0x1aee, 0x3b20, 0x3b0a, 0x3994, 0x2fea, 0x3b4b, 0x381d, 0x3758, 0x397e, 0x3861, 0x25cc, 0x391a, 0x28d2, 0x2524, 0x3424, 0x3a6a, 0x34f3, 0x3aca, 0x3a40, 0x34e1, 0x3647, 0x3623, 0x34e9, 0x3786, 0x38a6, 0x3be1, 0x34d6, 0x350c, 0x3bf3, 0x368b, 0x39bb, 0x34e0, 0x39b0, 0x342e, 0x360d, 0x34e3, 0x3867, 0x389a, 0x38d7, 0x31f9, 0x3565, 0x2e93, +0x39a8, 0x3b31, 0x384a, 0x3370, 0x316f, 0x3815, 0x35b5, 0x3594, 0x3bbd, 0x3afe, 0x39be, 0x2276, 0x3805, 0x3b69, 0x3964, 0x33c0, 0x3a3b, 0x3231, 0x3358, 0x2b23, 0x3645, 0x3b99, 0x3735, 0x2255, 0x3595, 0x2f45, 0x381a, 0x257c, 0x3ac7, 0x38e9, 0x381b, 0x36d0, 0x3132, 0x3814, 0x3a17, 0x3ad4, 0x2abf, 0x3887, 0x3424, 0x2e96, 0x3361, 0x341a, 0x38cf, 0x3448, 0x287f, 0x3b1c, 0x3b09, 0x3983, 0x3a6e, 0x375d, 0x3458, 0x383c, 0x3196, 0x3b2f, 0x1cbe, 0x31e6, 0x29c4, 0x3745, 0x395c, 0x3aac, 0x3b2f, 0x38f1, 0x320c, 0x3a9d, 0x375f, 0x3b01, 0x32ef, 0x3531, 0x36d3, 0x3726, 0x3642, 0x2c76, 0x3916, 0x342a, 0x3548, 0x39d7, 0x39de, 0x3c00, 0x3b1e, 0x391a, 0x35e8, 0x3b2b, 0x3645, 0x3a81, 0x3876, 0x37e2, 0x36c8, 0x3b62, 0x3302, 0x1bad, 0x3961, 0x3beb, 0x39a7, 0x3611, 0x381b, 0x3266, +0x3b25, 0x384e, 0x3940, 0x2891, 0x3a32, 0x3828, 0x34f3, 0x3652, 0x3178, 0x2839, 0x3aa2, 0x2a96, 0x2df4, 0x347b, 0x28ad, 0x3699, 0x36ba, 0x32ad, 0x39e5, 0x1c06, 0x340e, 0x3968, 0x387c, 0x3bc6, 0x3839, 0x39d4, 0x2645, 0x38ae, 0x3ae3, 0x367e, 0x3090, 0x34fe, 0x3b6b, 0x2e64, 0x36bb, 0x33ef, 0x2c5a, 0x38ae, 0x36db, 0x3a6e, 0x38ac, 0x39eb, 0x387f, 0x1b0d, 0x3b7c, 0x3461, 0x34cc, 0x3b4f, 0x3045, 0x38e9, 0x35fa, 0x3625, 0x33e7, 0x35f4, 0x3939, 0x35dd, 0x2b8e, 0x3574, 0x3b6a, 0x3921, 0x38de, 0x393e, 0x29f5, 0x2e2c, 0x3a10, 0x39a3, 0x32c2, 0x38e5, 0x38c7, 0x30c3, 0x3b6e, 0x34b3, 0x36f9, 0x38bb, 0x3b24, 0x359f, 0x3308, 0x2d54, 0x3a03, 0x39ee, 0x3a7b, 0x3076, 0x2ab0, 0x3b94, 0x32a7, 0x39b8, 0x3b78, 0x28ce, 0x375d, 0x3209, 0x3385, 0x38f1, 0x38ca, 0x3b51, 0x374e, 0x3593, +0x33ca, 0x33b7, 0x3663, 0x36c1, 0x3831, 0x347e, 0x39f8, 0x34bf, 0x39dc, 0x39e6, 0x2fa9, 0x32d9, 0x3a58, 0x39e5, 0x3116, 0x3026, 0x3b59, 0x3b82, 0x3a92, 0x316a, 0x38c3, 0x2770, 0x38e7, 0x380b, 0x3b2b, 0x380d, 0x32d6, 0x3602, 0x39df, 0x382c, 0x383c, 0x3b76, 0x3647, 0x38f3, 0x36b4, 0x3693, 0x251e, 0x3b19, 0x357e, 0x37d4, 0x37ab, 0x3aee, 0x349f, 0x32ec, 0x3401, 0x3bcc, 0x3145, 0x3845, 0x3b76, 0x38a9, 0x37f4, 0x343b, 0x3933, 0x38fe, 0x3af8, 0x3178, 0x392b, 0x3aed, 0x2f64, 0x3992, 0x39f8, 0x34fe, 0x3737, 0x3a24, 0x3bf9, 0x3a31, 0x3a60, 0x37b6, 0x39ad, 0x3ba5, 0x381d, 0x384d, 0x3702, 0x39d8, 0x379e, 0x38ba, 0x3a79, 0x391a, 0x34ce, 0x2d57, 0x3a7e, 0x35f0, 0x382f, 0x3937, 0x3698, 0x3acc, 0x34ca, 0x382d, 0x35f7, 0x34f7, 0x3b90, 0x374d, 0x380f, 0x2e14, 0x3ac3, 0x3583, +0x36fe, 0x38aa, 0x3abd, 0x3750, 0x2f2d, 0x3906, 0x3aed, 0x32e7, 0x3b42, 0x3823, 0x265f, 0x17f9, 0x248a, 0x38ee, 0x3a11, 0x3b21, 0x35a9, 0x2dd7, 0x35dc, 0x38ed, 0x3860, 0x3989, 0x3229, 0x333d, 0x2c78, 0x30fa, 0x2d3c, 0x3a04, 0x39c2, 0x3895, 0x3a67, 0x2f53, 0x3583, 0x39bd, 0x3a03, 0x3afd, 0x3892, 0x3889, 0x39e5, 0x3825, 0x39dd, 0x3a23, 0x3644, 0x31d1, 0x3875, 0x3a46, 0x38c1, 0x390c, 0x394d, 0x262a, 0x2823, 0x2c94, 0x3645, 0x39f9, 0x3366, 0x3710, 0x2f70, 0x348c, 0x2fa3, 0x3b0e, 0x3241, 0x3491, 0x386f, 0x38b6, 0x34e1, 0x30fc, 0x32cc, 0x37be, 0x3519, 0x334b, 0x389c, 0x34c1, 0x388b, 0x38cf, 0x3980, 0x2463, 0x3a34, 0x32ff, 0x3a3c, 0x3932, 0x3b47, 0x39ab, 0x3a9c, 0x27b6, 0x2d90, 0x35d2, 0x39d2, 0x3a5d, 0x3bf2, 0x3a5f, 0x38e1, 0x3b81, 0x3865, 0x3a31, 0x3b03, 0x3906, +0x35bf, 0x3818, 0x373b, 0x3491, 0x34a9, 0x3b40, 0x2cda, 0x381b, 0x2a00, 0x396e, 0x347a, 0x2d46, 0x2fa1, 0x3bef, 0x3acd, 0x362f, 0x2a7f, 0x3a38, 0x3346, 0x3889, 0x3061, 0x3b20, 0x3836, 0x35a4, 0x3a7d, 0x3487, 0x381a, 0x381f, 0x3977, 0x3862, 0x312a, 0x315e, 0x3841, 0x3453, 0x21f5, 0x363d, 0x2ddb, 0x35bb, 0x3bb4, 0x3b36, 0x382a, 0x36d8, 0x3764, 0x3b9e, 0x26b4, 0x29ce, 0x3451, 0x33ba, 0x37fb, 0x3a4f, 0x2181, 0x35cc, 0x3288, 0x2de2, 0x3a13, 0x2dd5, 0x326d, 0x3731, 0x3931, 0x3b0d, 0x34c6, 0x36bd, 0x38fe, 0x3a0a, 0x283b, 0x38c0, 0x3806, 0x39fa, 0x39a6, 0x39f8, 0x3b09, 0x36dc, 0x385c, 0x329a, 0x3a89, 0x2dbb, 0x39ee, 0x3b65, 0x3436, 0x37e3, 0x3a27, 0x3910, 0x3b43, 0x398c, 0x2efa, 0x3467, 0x39ce, 0x38ae, 0x3567, 0x3484, 0x38e0, 0x327e, 0x2c32, 0x39c1, 0x3b63, 0x35ac, +0x35c1, 0x2d9e, 0x38af, 0x32e3, 0x347f, 0x3855, 0x3527, 0x3850, 0x3b55, 0x3baa, 0x392a, 0x37d9, 0x39d3, 0x3960, 0x3ab0, 0x2ccb, 0x2da9, 0x3990, 0x3b87, 0x2c1c, 0x397d, 0x28f6, 0x397d, 0x3944, 0x30be, 0x3ba4, 0x2f6d, 0x34d4, 0x3416, 0x39e7, 0x398f, 0x3958, 0x3b7b, 0x3a1d, 0x31e6, 0x27fe, 0x3ba0, 0x33b2, 0x3080, 0x35a9, 0x3800, 0x37f6, 0x3965, 0x3594, 0x322e, 0x3b27, 0x3bdb, 0x3b7a, 0x38a6, 0x1848, 0x3b61, 0x3842, 0x3ad2, 0x390f, 0x3b17, 0x3715, 0x3798, 0x33cb, 0x33db, 0x383f, 0x394b, 0x30cb, 0x3bbb, 0x366d, 0x3b5b, 0x38ca, 0x36cb, 0x3558, 0x39f6, 0x3776, 0x388a, 0x35d1, 0x3475, 0x3509, 0x3742, 0x3b15, 0x3ad4, 0x3182, 0x39e7, 0x3b5a, 0x35dd, 0x3751, 0x32b8, 0x349f, 0x3996, 0x3a4c, 0x35e9, 0x266e, 0x37f2, 0x3be3, 0x2525, 0x26af, 0x3282, 0x3810, 0x2cf1, 0x383a, +0x3aa3, 0x399c, 0x3630, 0x38c8, 0x3203, 0x19a2, 0x35e2, 0x38fe, 0x38a2, 0x3b63, 0x3318, 0x231d, 0x3999, 0x3ae9, 0x3132, 0x21b2, 0x2a77, 0x394e, 0x2cf4, 0x3890, 0x38a6, 0x30ff, 0x3be2, 0x3231, 0x3b72, 0x3487, 0x3496, 0x351c, 0x38d6, 0x3944, 0x3949, 0x3b7b, 0x362f, 0x37cd, 0x38f6, 0x3a10, 0x3a93, 0x31be, 0x3b8e, 0x360a, 0x3567, 0x3803, 0x3b16, 0x3b59, 0x3a4e, 0x3770, 0x2d73, 0x3312, 0x382f, 0x30fa, 0x3921, 0x339d, 0x2222, 0x3049, 0x3b4e, 0x3b67, 0x3b07, 0x3b31, 0x34e8, 0x3684, 0x3a09, 0x389b, 0x3999, 0x39d1, 0x3765, 0x37bc, 0x3732, 0x3b35, 0x3819, 0x36ef, 0x38fc, 0x3665, 0x3b96, 0x3015, 0x3847, 0x35e6, 0x3167, 0x34ba, 0x3794, 0x3a6a, 0x35d8, 0x30f4, 0x34c7, 0x3bce, 0x3903, 0x3bf3, 0x3a72, 0x3828, 0x381a, 0x3981, 0x3925, 0x39a1, 0x35f4, 0x35dd, 0x3954, 0x2bc5, +0x3884, 0x2d8e, 0x2a49, 0x383f, 0x15af, 0x3a4c, 0x3af6, 0x3ad8, 0x3847, 0x3b07, 0x3a15, 0x3bdd, 0x3a8c, 0x2caf, 0x364a, 0x3825, 0x2b2c, 0x3a97, 0x33b8, 0x3ac4, 0x347e, 0x36f7, 0x36ed, 0x3131, 0x2bea, 0x3841, 0x3880, 0x39e4, 0x30c3, 0x3b62, 0x32ba, 0x34f0, 0x34c7, 0x396a, 0x3722, 0x384d, 0x3165, 0x3a71, 0x34bf, 0x3018, 0x372c, 0x3876, 0x347f, 0x3be2, 0x117d, 0x3a2c, 0x3917, 0x3895, 0x3a3b, 0x2f92, 0x3b65, 0x3af3, 0x39b3, 0x290c, 0x301b, 0x3a9e, 0x39ef, 0x38d0, 0x34e8, 0x336a, 0x37e8, 0x3685, 0x376e, 0x3b8b, 0x3b4c, 0x35a7, 0x3919, 0x3504, 0x3b59, 0x3a85, 0x2edc, 0x3b32, 0x36bc, 0x21fa, 0x357b, 0x38a6, 0x380d, 0x3969, 0x348c, 0x39cd, 0x2d9a, 0x3818, 0x380e, 0x39f4, 0x35ce, 0x3823, 0x3a29, 0x2c1a, 0x3846, 0x3811, 0x2f33, 0x38a1, 0x382b, 0x355a, 0x3961, 0x3a97, +0x352f, 0x3bec, 0x3a27, 0x3888, 0x39d2, 0x38d8, 0x314c, 0x38c8, 0x3779, 0x2f99, 0x3a5b, 0x3971, 0x3b93, 0x368c, 0x3904, 0x35f5, 0x277f, 0x34f9, 0x3368, 0x3824, 0x3a74, 0x3843, 0x3284, 0x35aa, 0x35b4, 0x372a, 0x35ca, 0x3b2b, 0x3877, 0x37cb, 0x3110, 0x33ad, 0x3ba3, 0x3bba, 0x34e4, 0x36ab, 0x3984, 0x2aac, 0x39ec, 0x38ae, 0x3931, 0x3410, 0x333e, 0x2c45, 0x3482, 0x3868, 0x392c, 0x384e, 0x3678, 0x38ee, 0x395b, 0x38f8, 0x3194, 0x33e2, 0x2af5, 0x397c, 0x32ca, 0x32c3, 0x3913, 0x3309, 0x3bb1, 0x3253, 0x3640, 0x2cc8, 0x3385, 0x28d0, 0x385e, 0x39fd, 0x38cc, 0x3bf6, 0x332e, 0x3be1, 0x3835, 0x3b3e, 0x38cc, 0x38ff, 0x365f, 0x3a09, 0x3a32, 0x3b84, 0x3596, 0x37f3, 0x3431, 0x3af6, 0x3bec, 0x38cd, 0x35ab, 0x3af5, 0x3359, 0x3762, 0x3844, 0x374c, 0x3980, 0x3886, 0x2e62, 0x35cc, +0x3b76, 0x3b5f, 0x2434, 0x35fc, 0x38d5, 0x3095, 0x3944, 0x380e, 0x349f, 0x39d7, 0x3755, 0x3768, 0x3b3a, 0x34ce, 0x3bef, 0x365a, 0x3987, 0x3897, 0x3509, 0x3984, 0x32f8, 0x3b7b, 0x37b9, 0x3a4b, 0x2c86, 0x369a, 0x396d, 0x2d21, 0x3477, 0x39af, 0x3b60, 0x3680, 0x39d7, 0x31d8, 0x3b8a, 0x3aed, 0x3a65, 0x3710, 0x39d3, 0x3bf1, 0x331f, 0x20c0, 0x34f2, 0x34cc, 0x3934, 0x38c5, 0x396b, 0x3894, 0x38fa, 0x33c9, 0x3408, 0x3340, 0x360e, 0x36e6, 0x3942, 0x2f3c, 0x3be4, 0x38f4, 0x35a1, 0x2cf7, 0x3931, 0x3911, 0x39e7, 0x2dcc, 0x3951, 0x334c, 0x3b00, 0x39ad, 0x2370, 0x35ea, 0x3402, 0x37d6, 0x377d, 0x3652, 0x3b56, 0x2cc4, 0x3b1f, 0x35af, 0x3920, 0x3423, 0x398a, 0x35e2, 0x39f1, 0x3ab5, 0x3ae2, 0x345c, 0x31ef, 0x38ef, 0x3bb1, 0x3937, 0x2ae8, 0x3221, 0x3ae9, 0x390d, 0x3b2f, 0x3048, +0x3047, 0x3767, 0x37f7, 0x3bfa, 0x3b33, 0x3a2d, 0x362c, 0x3a93, 0x3b66, 0x391a, 0x31c7, 0x3282, 0x39b9, 0x3454, 0x37b7, 0x3019, 0x3a9a, 0x37b5, 0x2dcd, 0x3618, 0x34db, 0x3471, 0x3b35, 0x3684, 0x385c, 0x38bf, 0x3bd7, 0x3a44, 0x3130, 0x38c8, 0x30cf, 0x37bb, 0x3bcc, 0x3669, 0x3b27, 0x3949, 0x355f, 0x314a, 0x383d, 0x3a20, 0x381c, 0x3bcf, 0x3282, 0x39f3, 0x3a49, 0x3ad9, 0x34aa, 0x3add, 0x3938, 0x3bbe, 0x3650, 0x37f2, 0x2c79, 0x39c4, 0x3304, 0x3a8c, 0x3162, 0x3520, 0x3637, 0x39e3, 0x2478, 0x3803, 0x34dd, 0x3104, 0x37ee, 0x3861, 0x38e8, 0x356c, 0x3be0, 0x3633, 0x395a, 0x3afb, 0x378b, 0x3b8d, 0x2f97, 0x37df, 0x31dd, 0x3475, 0x34f7, 0x36ef, 0x3966, 0x2c50, 0x38a1, 0x2720, 0x39f3, 0x3805, 0x3310, 0x3656, 0x3571, 0x3bd9, 0x3bc0, 0x391c, 0x38d6, 0x2562, 0x1fc8, 0x3524, +0x362a, 0x3a8c, 0x3830, 0x39c7, 0x38ca, 0x3af3, 0x3602, 0x3700, 0x3773, 0x3a78, 0x38f3, 0x22be, 0x3822, 0x2eac, 0x3748, 0x32ee, 0x2a0e, 0x38ed, 0x3830, 0x3401, 0x3971, 0x3a35, 0x3984, 0x3a86, 0x3501, 0x2fe8, 0x3ba3, 0x3587, 0x3895, 0x3858, 0x2d46, 0x3724, 0x3b84, 0x39b6, 0x3a17, 0x3b1f, 0x38a9, 0x33de, 0x3723, 0x367d, 0x3bc4, 0x3817, 0x3b1e, 0x35f1, 0x3abb, 0x373d, 0x2abe, 0x3206, 0x3872, 0x3946, 0x3898, 0x33b2, 0x25fb, 0x36ae, 0x256a, 0x390e, 0x3b3b, 0x34d8, 0x36ba, 0x389b, 0x377a, 0x3b0e, 0x32a6, 0x26f9, 0x39e1, 0x327e, 0x2d58, 0x3bd3, 0x3a7f, 0x38b9, 0x3811, 0x29b7, 0x2816, 0x38f9, 0x3b64, 0x39b6, 0x3a29, 0x30a4, 0x3989, 0x3b73, 0x307a, 0x37c7, 0x372d, 0x3830, 0x390e, 0x315b, 0x335d, 0x3929, 0x3917, 0x374c, 0x34af, 0x3531, 0x34e9, 0x3bcf, 0x3761, 0x3b62, +0x34e5, 0x39e3, 0x3b35, 0x2a57, 0x3688, 0x2f0c, 0x3b87, 0x3bdd, 0x358d, 0x381a, 0x39ae, 0x2f79, 0x394f, 0x3708, 0x3560, 0x3ada, 0x3480, 0x3af5, 0x3bd8, 0x39d1, 0x3795, 0x2a29, 0x3b0a, 0x3515, 0x3858, 0x3ab4, 0x3968, 0x3660, 0x37b2, 0x3601, 0x36ae, 0x3229, 0x3383, 0x2c30, 0x3a41, 0x3b0d, 0x33ef, 0x3b6b, 0x366f, 0x3b33, 0x3a82, 0x3841, 0x3a89, 0x3bea, 0x3542, 0x328a, 0x3bc9, 0x34f2, 0x3ac0, 0x3067, 0x3311, 0x38f4, 0x23d0, 0x3964, 0x38b1, 0x390c, 0x3a9f, 0x28bb, 0x3ac1, 0x39e6, 0x31dd, 0x2f55, 0x3a19, 0x3a51, 0x3a38, 0x2841, 0x381a, 0x3938, 0x36ea, 0x3be0, 0x3b35, 0x39c1, 0x2fef, 0x37ec, 0x389f, 0x3b72, 0x37b9, 0x3bf7, 0x325d, 0x38e9, 0x333d, 0x39ce, 0x2e79, 0x3682, 0x37c1, 0x38b9, 0x3990, 0x37fd, 0x3302, 0x32a6, 0x2a69, 0x3831, 0x2b59, 0x3b48, 0x35b4, 0x2aed, +0x37e2, 0x340a, 0x3279, 0x3723, 0x397d, 0x3839, 0x39ec, 0x3025, 0x3803, 0x3b54, 0x3a70, 0x3b7d, 0x2f2a, 0x315c, 0x35ed, 0x3ace, 0x3845, 0x3bee, 0x3870, 0x3492, 0x380e, 0x3431, 0x3a47, 0x3a33, 0x38ae, 0x3a40, 0x3908, 0x33c5, 0x38db, 0x3b24, 0x3847, 0x32a3, 0x3959, 0x3a36, 0x35c4, 0x3960, 0x396f, 0x3786, 0x38ef, 0x36e7, 0x35c3, 0x3a28, 0x3893, 0x3b2c, 0x2e03, 0x374d, 0x3489, 0x3bf4, 0x38fb, 0x35b2, 0x38c1, 0x3a0f, 0x394f, 0x35e0, 0x34bd, 0x3bcc, 0x3be1, 0x315f, 0x2a41, 0x308d, 0x2e5d, 0x3a02, 0x2e99, 0x3b1a, 0x3b6c, 0x3ba1, 0x38da, 0x395a, 0x3877, 0x39ec, 0x3855, 0x2fd6, 0x2857, 0x2e1d, 0x3677, 0x3034, 0x3136, 0x3880, 0x327c, 0x38a3, 0x243e, 0x3921, 0x3b69, 0x3bca, 0x376e, 0x3998, 0x3b02, 0x3a2b, 0x35c0, 0x3985, 0x3b14, 0x38d5, 0x347b, 0x3adc, 0x3639, 0x3b9f, +0x3b50, 0x3334, 0x38b6, 0x3ae5, 0x3b39, 0x35fa, 0x2752, 0x3ba6, 0x3439, 0x389a, 0x2888, 0x39be, 0x3710, 0x3922, 0x3bbf, 0x3726, 0x2d91, 0x22ef, 0x398f, 0x3465, 0x3ba8, 0x3ad4, 0x39a0, 0x3a55, 0x3a2f, 0x387d, 0x3788, 0x3a19, 0x3926, 0x38a0, 0x383c, 0x3adc, 0x3b84, 0x3518, 0x322f, 0x3773, 0x3a74, 0x31b7, 0x3901, 0x3361, 0x3959, 0x2d8e, 0x3575, 0x2faf, 0x2ccf, 0x39ad, 0x339b, 0x3bcc, 0x3be6, 0x267e, 0x3582, 0x3973, 0x3b23, 0x3513, 0x3946, 0x38c8, 0x3b09, 0x383a, 0x34a6, 0x3aaa, 0x36f8, 0x34af, 0x368d, 0x3beb, 0x361f, 0x357f, 0x3b7f, 0x3ada, 0x37bb, 0x3986, 0x358c, 0x3ac2, 0x3448, 0x3ace, 0x2896, 0x377a, 0x3a2d, 0x3992, 0x381a, 0x389d, 0x3a18, 0x3bec, 0x37ac, 0x384d, 0x3107, 0x3323, 0x36d0, 0x371d, 0x3a21, 0x3b07, 0x2ef3, 0x342a, 0x39e6, 0x3037, 0x39a5, 0x3510, +0x3b81, 0x2559, 0x3914, 0x3883, 0x3534, 0x33e2, 0x29d9, 0x3b82, 0x3bf7, 0x390c, 0x31e3, 0x3af0, 0x2a26, 0x3803, 0x34ec, 0x356f, 0x3aed, 0x3af7, 0x34fc, 0x39f9, 0x3ad2, 0x39f6, 0x3abf, 0x397d, 0x2d55, 0x27f6, 0x3b03, 0x3335, 0x3872, 0x34df, 0x3801, 0x39c9, 0x326f, 0x3a15, 0x3810, 0x22c5, 0x359e, 0x366c, 0x3493, 0x39b2, 0x38c5, 0x3a6d, 0x39b9, 0x33dc, 0x34d7, 0x3b0b, 0x378d, 0x39ed, 0x3566, 0x396a, 0x368e, 0x3a4f, 0x3571, 0x3831, 0x3290, 0x3232, 0x39f4, 0x3915, 0x377d, 0x3af9, 0x3460, 0x31da, 0x23e6, 0x315c, 0x2b67, 0x366b, 0x2ccf, 0x38f8, 0x39c0, 0x37cc, 0x322b, 0x3979, 0x2529, 0x34b5, 0x3759, 0x360c, 0x3180, 0x3962, 0x30d2, 0x394f, 0x3ac5, 0x3b52, 0x371b, 0x3588, 0x3437, 0x34e5, 0x3a58, 0x3bb8, 0x3bd6, 0x3858, 0x3915, 0x3bcc, 0x3835, 0x30c9, 0x259f, 0x3051, +0x399d, 0x3044, 0x382b, 0x3449, 0x3b82, 0x3a4a, 0x38b5, 0x383f, 0x1c23, 0x3b6f, 0x3941, 0x35ff, 0x395e, 0x26c0, 0x3474, 0x39b9, 0x39da, 0x2aca, 0x380a, 0x39c3, 0x393e, 0x39e9, 0x3b77, 0x3a64, 0x345b, 0x3712, 0x38e4, 0x3a97, 0x3451, 0x3a3d, 0x379f, 0x3a01, 0x3642, 0x3b7e, 0x30b6, 0x35d6, 0x39b6, 0x2cb3, 0x383a, 0x3566, 0x3a76, 0x3418, 0x31ac, 0x3ae2, 0x350d, 0x3af6, 0x382c, 0x37b8, 0x339c, 0x3969, 0x379b, 0x36b8, 0x3444, 0x382a, 0x2fab, 0x3727, 0x3b3c, 0x2e19, 0x3643, 0x30d4, 0x284c, 0x388b, 0x3a47, 0x35cc, 0x3945, 0x3470, 0x3ae6, 0x39e5, 0x36fd, 0x38ed, 0x344b, 0x3b7c, 0x39d0, 0x3833, 0x3a38, 0x34f4, 0x3046, 0x3757, 0x371d, 0x25a8, 0x386d, 0x2f66, 0x38a2, 0x2e32, 0x39e3, 0x1969, 0x313d, 0x35f5, 0x3804, 0x28f5, 0x2e8a, 0x342c, 0x3bdc, 0x3ad3, 0x3259, 0x3622, +0x325e, 0x3912, 0x398b, 0x3b70, 0x39cd, 0x3931, 0x2f75, 0x3542, 0x357a, 0x315f, 0x3ac4, 0x374f, 0x32dd, 0x386c, 0x35f1, 0x39b7, 0x38b7, 0x3b2f, 0x3a7b, 0x3b5c, 0x3bef, 0x37f6, 0x3047, 0x386a, 0x3903, 0x3607, 0x3946, 0x3911, 0x399d, 0x3be8, 0x2d83, 0x3a3c, 0x369b, 0x204f, 0x3a4c, 0x3185, 0x38c8, 0x39c3, 0x3075, 0x3542, 0x361d, 0x250f, 0x385d, 0x3485, 0x1ac2, 0x37af, 0x3ab4, 0x2dd4, 0x3595, 0x36de, 0x3add, 0x3564, 0x3566, 0x3b8d, 0x2d55, 0x3629, 0x2c8a, 0x3280, 0x3801, 0x329a, 0x3b20, 0x3b42, 0x3bf0, 0x2f27, 0x3866, 0x2caf, 0x3b40, 0x3922, 0x351e, 0x3925, 0x3b42, 0x3968, 0x39db, 0x3b77, 0x3877, 0x384a, 0x3058, 0x3aaf, 0x3a70, 0x3b33, 0x3685, 0x3b0a, 0x3a8d, 0x2d38, 0x35bb, 0x31b2, 0x36e8, 0x3a79, 0x367e, 0x3a09, 0x3a74, 0x3b9f, 0x3367, 0x37a5, 0x38a3, 0x3949, +0x2bea, 0x2b88, 0x3965, 0x3112, 0x3b79, 0x391b, 0x38a9, 0x38dc, 0x36c4, 0x3ab1, 0x3677, 0x346e, 0x3b44, 0x34b7, 0x3301, 0x381d, 0x3a3a, 0x3254, 0x3b6b, 0x389a, 0x3a65, 0x379d, 0x3178, 0x2df2, 0x3380, 0x385d, 0x383c, 0x36ef, 0x3243, 0x3b7c, 0x38cb, 0x39f5, 0x3144, 0x3336, 0x3a1b, 0x3b54, 0x3983, 0x3b54, 0x3861, 0x34dd, 0x3996, 0x3a96, 0x34ec, 0x2e9e, 0x36db, 0x392f, 0x3164, 0x34df, 0x38fc, 0x35e5, 0x3432, 0x2a1b, 0x39d0, 0x385b, 0x2d25, 0x3405, 0x3809, 0x36f6, 0x3947, 0x3a23, 0x3ba7, 0x3a6f, 0x394f, 0x381c, 0x387e, 0x3aa3, 0x3586, 0x38ba, 0x3aed, 0x2f65, 0x3b77, 0x3921, 0x3843, 0x3652, 0x35ef, 0x39ea, 0x399a, 0x3a10, 0x3b1e, 0x39af, 0x3bac, 0x2f72, 0x3755, 0x38c7, 0x348e, 0x3aaf, 0x32cd, 0x3210, 0x3a78, 0x3462, 0x35a1, 0x327d, 0x38a4, 0x3569, 0x39fe, 0x3809, +0x39d6, 0x3985, 0x2211, 0x36f1, 0x36da, 0x34e8, 0x3bd7, 0x3aa3, 0x370b, 0x2e90, 0x3973, 0x3754, 0x3994, 0x31fe, 0x35e6, 0x3b87, 0x3967, 0x34d6, 0x3a01, 0x3935, 0x3afb, 0x3078, 0x3b9f, 0x31cf, 0x2496, 0x3ab7, 0x345e, 0x31a2, 0x3548, 0x3892, 0x38d8, 0x38e4, 0x3908, 0x340c, 0x3114, 0x37a7, 0x3a05, 0x37db, 0x39ee, 0x3b9e, 0x37e4, 0x375e, 0x27b0, 0x27ee, 0x3b89, 0x3bd6, 0x3911, 0x329d, 0x3596, 0x36b7, 0x38ea, 0x37b5, 0x353e, 0x368e, 0x3a25, 0x3989, 0x29cb, 0x36e2, 0x3b80, 0x390f, 0x3978, 0x359a, 0x3150, 0x3865, 0x3827, 0x2ebb, 0x3afc, 0x3ad8, 0x291b, 0x3b1f, 0x3036, 0x3b4b, 0x3411, 0x2450, 0x3928, 0x382f, 0x3968, 0x32af, 0x36e1, 0x34a0, 0x3076, 0x3289, 0x284d, 0x39ca, 0x3765, 0x2fc3, 0x3ad0, 0x2a90, 0x3a9e, 0x347f, 0x367c, 0x3bee, 0x3982, 0x380e, 0x3623, 0x33d5, +0x33eb, 0x315b, 0x3b82, 0x3901, 0x39d8, 0x3409, 0x394f, 0x38aa, 0x34e5, 0x3b0e, 0x30d8, 0x37db, 0x37cb, 0x32e0, 0x37de, 0x3896, 0x3b9f, 0x3919, 0x3869, 0x3762, 0x3698, 0x2dc6, 0x31ce, 0x3200, 0x36fa, 0x396f, 0x3b96, 0x3890, 0x3ac3, 0x331a, 0x3619, 0x3ac2, 0x2f37, 0x39e4, 0x39a0, 0x2130, 0x391c, 0x3a27, 0x3b7a, 0x3b49, 0x3ba8, 0x3a95, 0x2c78, 0x3a1a, 0x3591, 0x354a, 0x36c1, 0x38ba, 0x392f, 0x37a5, 0x3898, 0x3a9d, 0x3b8f, 0x389f, 0x3a6e, 0x389d, 0x36de, 0x3abe, 0x3669, 0x38f1, 0x391a, 0x3b6f, 0x2987, 0x30aa, 0x3ae7, 0x3709, 0x389a, 0x39a1, 0x34a0, 0x3a1a, 0x3bd0, 0x35d7, 0x3936, 0x3bc9, 0x327a, 0x3a1b, 0x31c8, 0x3be6, 0x3926, 0x3654, 0x317b, 0x39d2, 0x3b54, 0x39ae, 0x2d1e, 0x31a0, 0x30dd, 0x362a, 0x2c28, 0x3020, 0x3585, 0x30c7, 0x3af0, 0x3ad3, 0x3b2b, 0x382f, +0x384d, 0x3ace, 0x3a7d, 0x300d, 0x3a39, 0x3ac5, 0x2b3b, 0x2c05, 0x2dfc, 0x3bee, 0x3b46, 0x343f, 0x3a00, 0x33be, 0x2d9e, 0x3790, 0x3467, 0x3a11, 0x39e5, 0x3943, 0x34b2, 0x393c, 0x2e29, 0x34ae, 0x34dd, 0x2491, 0x3ac2, 0x3279, 0x3a46, 0x318d, 0x389a, 0x2f39, 0x1cb3, 0x37cf, 0x31c3, 0x318a, 0x3172, 0x3b66, 0x357a, 0x3896, 0x3b6b, 0x3a47, 0x3a43, 0x33bc, 0x35f4, 0x39f5, 0x39c1, 0x34fe, 0x39a2, 0x367b, 0x3b19, 0x3bef, 0x3461, 0x39a9, 0x3a35, 0x2bfa, 0x34b4, 0x38fa, 0x3203, 0x332b, 0x39ef, 0x3a2a, 0x3bc2, 0x39ef, 0x364e, 0x3a8c, 0x2fa8, 0x2612, 0x3406, 0x391a, 0x39ff, 0x3bba, 0x3971, 0x2637, 0x3664, 0x3a2b, 0x3053, 0x3bf4, 0x3b2c, 0x3b1f, 0x27e3, 0x3ba0, 0x38ee, 0x388f, 0x3a17, 0x328e, 0x3bcd, 0x306a, 0x3909, 0x38f2, 0x3a16, 0x380b, 0x2e11, 0x38b5, 0x36ba, 0x387a, +0x3a4f, 0x38f9, 0x3862, 0x3525, 0x38ae, 0x34bd, 0x3a07, 0x3881, 0x2e59, 0x3969, 0x3a7a, 0x3b75, 0x2619, 0x399d, 0x314a, 0x39fe, 0x3af1, 0x3a0c, 0x2875, 0x39c6, 0x3887, 0x3ab2, 0x36e8, 0x3497, 0x396f, 0x3567, 0x2ef7, 0x3845, 0x2cd3, 0x3b99, 0x30cc, 0x300d, 0x3a4f, 0x3453, 0x386a, 0x39d5, 0x3beb, 0x392e, 0x3766, 0x3b37, 0x3b57, 0x355c, 0x37fb, 0x3a36, 0x343a, 0x37e1, 0x1f1c, 0x218b, 0x3820, 0x345b, 0x3bd5, 0x329f, 0x3679, 0x3b0f, 0x28d4, 0x3891, 0x3b51, 0x3937, 0x3585, 0x3936, 0x3ace, 0x30fa, 0x384e, 0x3a16, 0x34bf, 0x34f4, 0x3a08, 0x3916, 0x2ed6, 0x3740, 0x382c, 0x3446, 0x3b77, 0x3af7, 0x3a42, 0x284f, 0x366c, 0x36ea, 0x3680, 0x326a, 0x3b5c, 0x3678, 0x3bee, 0x3853, 0x36cc, 0x35c2, 0x2f28, 0x34f6, 0x31d8, 0x38b6, 0x3a7b, 0x3b96, 0x3056, 0x3afc, 0x351a, 0x3570, +0x3439, 0x3a20, 0x3b65, 0x362f, 0x38f8, 0x30e5, 0x3974, 0x38cf, 0x3b7e, 0x3b2d, 0x3828, 0x382c, 0x3979, 0x349c, 0x3b6f, 0x3887, 0x3a3a, 0x3bec, 0x3aee, 0x3abd, 0x3510, 0x3a50, 0x2dcb, 0x31d9, 0x39ed, 0x3a5b, 0x39d6, 0x3a89, 0x3511, 0x3199, 0x39a3, 0x3803, 0x3a02, 0x3bdd, 0x3588, 0x35cb, 0x3a69, 0x3bab, 0x23ea, 0x3750, 0x3b92, 0x3bfc, 0x359f, 0x3bdb, 0x3a6b, 0x3b07, 0x355d, 0x3a0a, 0x39cd, 0x1e5e, 0x38c2, 0x3965, 0x34f4, 0x37d0, 0x35b2, 0x34c8, 0x3ad5, 0x34f4, 0xba8, 0x3b62, 0x380b, 0x3b8f, 0x3ae7, 0x30c0, 0x38a0, 0x3341, 0x323a, 0x32d1, 0x32a8, 0x3413, 0x38bb, 0x37cf, 0x397e, 0x3884, 0x2952, 0x2b54, 0x3b8a, 0x3bd4, 0x3522, 0x3b0f, 0x3888, 0x38e4, 0x38d1, 0x3bfa, 0x3adc, 0x3b72, 0x3bc5, 0x33de, 0x39f6, 0x390e, 0x2fd3, 0x3875, 0x261c, 0x2a54, 0x315d, 0x388a, +0x36a4, 0x38d4, 0x3405, 0x3761, 0x37ae, 0x3650, 0x3065, 0x3b0b, 0x283f, 0x3a67, 0x360c, 0x3b9c, 0x2eea, 0x2e99, 0x349f, 0x3849, 0x3b43, 0x3744, 0x3834, 0x3852, 0x36e7, 0x3835, 0x3499, 0x2ee3, 0x3aa2, 0x3823, 0x31c2, 0x380c, 0x354c, 0x37f5, 0x324c, 0x302b, 0x34bf, 0x26e6, 0x39a0, 0x3068, 0x2e1d, 0x3061, 0x3b24, 0x33a7, 0x3ada, 0x38a5, 0x37c3, 0x39a0, 0x3aa0, 0x382f, 0x21e9, 0x3a36, 0x3a8b, 0x395a, 0x343d, 0x3837, 0x361d, 0x33af, 0x3b87, 0x399b, 0x3904, 0x344a, 0x3a10, 0x3b08, 0x348c, 0x2fc7, 0x3239, 0x390b, 0x384c, 0x34c6, 0x2873, 0x357c, 0x32b6, 0x3ae5, 0x3bb4, 0x30f2, 0x39e7, 0x2b6a, 0x3969, 0x39ab, 0x3316, 0x3638, 0x3a22, 0x3505, 0x35f5, 0x3b42, 0x3372, 0x33e5, 0x322a, 0x3a8f, 0x36be, 0x3982, 0x341d, 0x3510, 0x3714, 0x3871, 0x3a56, 0x3739, 0x3457, 0x3822, +0x35ee, 0x3bb5, 0x357c, 0x3a66, 0x3bfe, 0x3469, 0x37e0, 0x39c0, 0x2c91, 0x3805, 0x31c4, 0x39e4, 0x32f9, 0x3140, 0x2ef9, 0x389c, 0x38e8, 0x3404, 0x2d4b, 0x36fd, 0x32a8, 0x397e, 0x3939, 0x2c8f, 0x327d, 0x341a, 0x35eb, 0x36bb, 0x307c, 0x3a9c, 0x3b25, 0x3b83, 0x31b7, 0x377c, 0x3450, 0x34af, 0x2d66, 0x36ab, 0x3520, 0x3648, 0x2e5e, 0x3adc, 0x3422, 0x3b9e, 0x36b4, 0x35ac, 0x3a7b, 0x36ae, 0x39c5, 0x2c2d, 0x3b8f, 0x3998, 0x3a82, 0x2cb5, 0x3a0b, 0x34aa, 0x3895, 0x3811, 0x3545, 0x35b5, 0x39c4, 0x3b43, 0x39ae, 0x355a, 0x2db8, 0x3b7f, 0x3655, 0x354d, 0x34ee, 0x30fb, 0x3a7c, 0x338b, 0x3b6c, 0x2c39, 0x38bb, 0x2de3, 0x3114, 0x38bf, 0x2e01, 0x3483, 0x2964, 0x3828, 0x2da3, 0x3a05, 0x3add, 0x3477, 0x3bf6, 0x3a7a, 0x38a8, 0x34be, 0x2d01, 0x2f9b, 0x29d1, 0x3995, 0x38a1, 0x3632, +0x3629, 0x3451, 0x31ca, 0x3b76, 0x382e, 0x3aad, 0x3a3a, 0x3aed, 0x3471, 0x3b38, 0x2a7b, 0x38f4, 0x3975, 0x383f, 0x30ba, 0x2cbb, 0x3adc, 0x31c2, 0x2ef0, 0x270a, 0x3734, 0x30a5, 0x3481, 0x3764, 0x3a6c, 0x3845, 0x2bfd, 0x3407, 0x3be1, 0x35ba, 0x3163, 0x332f, 0x38ae, 0x3361, 0x38a5, 0x3556, 0x265c, 0x38ac, 0x3869, 0x2d4e, 0x300a, 0x39bd, 0x38ef, 0x372d, 0x2d3e, 0x3a3a, 0x30a2, 0x1e66, 0x3bc7, 0x38c5, 0x3966, 0x3ace, 0x3a34, 0x2d9c, 0x3845, 0x30f3, 0x2c21, 0x3405, 0x2c4f, 0x3629, 0x3bcb, 0x315b, 0x2e94, 0x3399, 0x39a7, 0x3696, 0x377d, 0x36a0, 0x312d, 0x366f, 0x379a, 0x25a6, 0x3808, 0x2da5, 0x2bbf, 0x381d, 0x3a94, 0x3577, 0x31ba, 0x344e, 0x385f, 0x3687, 0x38a7, 0x2a84, 0x399a, 0x317a, 0x3a59, 0x3467, 0x3af3, 0x3b1d, 0x33c8, 0x35cf, 0x3af4, 0x2c27, 0x38ab, 0x2850, +0x3be1, 0x3a7a, 0x363b, 0x3aa9, 0x3af3, 0x37f1, 0x3815, 0x3a54, 0x2d86, 0x3b67, 0x3780, 0x3b73, 0x3755, 0x38a3, 0x3435, 0x2df3, 0x3bc1, 0x32c0, 0x2da1, 0x395b, 0x32a7, 0x377e, 0x3ba5, 0x3ace, 0x3971, 0x3095, 0x3a2b, 0x3780, 0x3a68, 0x3979, 0x392b, 0x38ca, 0x385a, 0x3a82, 0x385f, 0x36e3, 0x3318, 0x2aad, 0x3670, 0x3ba1, 0x3bd0, 0x3a29, 0x3116, 0x390c, 0x3756, 0x3aa6, 0x39f6, 0x31a7, 0x3be8, 0x389c, 0x3248, 0x3608, 0x357a, 0x37bd, 0x37a4, 0x3456, 0x3563, 0x31a3, 0x398a, 0x3940, 0x364b, 0x2273, 0x3847, 0x356c, 0x3574, 0x382e, 0x3b27, 0x39d7, 0x311b, 0x3825, 0x3abb, 0x3bb9, 0x3b33, 0x386f, 0x3b02, 0x3b39, 0x2453, 0x3888, 0x34e1, 0x318d, 0x36df, 0x3ba2, 0x2ba7, 0x3943, 0x3586, 0x38f6, 0x3a2a, 0x3b90, 0x3b00, 0x39f3, 0x3108, 0x3533, 0x3bb7, 0x3264, 0x3aa8, 0x3669, +0x3748, 0x3a5c, 0x3959, 0x3c00, 0x3b73, 0x30f8, 0x2e58, 0x37d5, 0x3836, 0x2e91, 0x3603, 0x38f2, 0x3647, 0x3855, 0x3a9e, 0x3851, 0x24fd, 0x3990, 0x38a2, 0x3aae, 0x314a, 0x39d4, 0x3afd, 0x3a0d, 0x3a94, 0x38d4, 0x3970, 0x35d2, 0x3899, 0x2e93, 0x388f, 0x3850, 0x367f, 0x3bbf, 0x3581, 0x3a5d, 0x261c, 0x3bb3, 0x3594, 0x3988, 0x3b5b, 0x3b6e, 0x37a7, 0x39fa, 0x3a8e, 0x3629, 0x3b1d, 0x3068, 0x38d0, 0x3859, 0x3514, 0x3865, 0x33e0, 0x39f5, 0x20bf, 0x3a8f, 0x2ff9, 0x3bc8, 0x3abf, 0x324d, 0x2b88, 0x3856, 0x38a6, 0x3bd7, 0x38d8, 0x3722, 0x39ee, 0x3947, 0x3794, 0x36a5, 0x3acd, 0x1f3f, 0x3497, 0x39d0, 0x3947, 0x38c7, 0x3a3f, 0x3661, 0x36dd, 0x2c46, 0x3bee, 0x2885, 0x3430, 0x38f7, 0x27b3, 0x3134, 0x3265, 0x2666, 0x3930, 0x3514, 0x2ec0, 0x3985, 0x37ef, 0x3a11, 0x3a70, 0x3578, +0x3a6e, 0x333d, 0x36c8, 0x33e0, 0x27ae, 0x2954, 0x36cc, 0x37db, 0x382f, 0x38cd, 0x3944, 0x3a4b, 0x3671, 0x3966, 0x33a3, 0x3882, 0x3739, 0x349b, 0x39b6, 0x3573, 0x2cbf, 0x374e, 0x2cc0, 0x3af4, 0x34ca, 0x314c, 0x3bb4, 0x3554, 0x3a8b, 0x335f, 0x2d08, 0x387b, 0x37c4, 0x34a9, 0x388d, 0x3884, 0x332e, 0x36de, 0x3590, 0x3803, 0x33dc, 0x28bf, 0x386a, 0x39e4, 0x3b9d, 0x3aff, 0x3b0b, 0x393a, 0x37fa, 0x3577, 0x3bfb, 0x3b19, 0x3422, 0x34cd, 0x39d4, 0x39dc, 0x31b9, 0x38f4, 0x3871, 0x2e80, 0x3b90, 0x3513, 0x363a, 0x39f9, 0x332f, 0x391a, 0x39f9, 0x38fd, 0x3b16, 0x382c, 0x3b91, 0x2fa4, 0x34db, 0x30f4, 0x37c5, 0x392c, 0x3b6f, 0x3835, 0x35ac, 0x379d, 0x3b39, 0x3924, 0x2f94, 0x34b0, 0x3149, 0x307c, 0x3a7e, 0x3656, 0x398a, 0x390f, 0x27f6, 0x31a6, 0x3a80, 0x3582, 0x3863, 0x3ae1, +0x3265, 0x257e, 0x360a, 0x2fc7, 0x3ba9, 0x3515, 0x3a80, 0x3056, 0x37c5, 0x2a16, 0x3915, 0x357a, 0x3556, 0x337e, 0x3af8, 0x3a9f, 0x35aa, 0x3903, 0x2ec4, 0x3751, 0x3a1b, 0x39d2, 0x3b76, 0x34ef, 0x3b5a, 0x394c, 0x3851, 0x3b4b, 0x3bb2, 0x3b80, 0x3bef, 0x3a09, 0x3af7, 0x3902, 0x3711, 0x3704, 0x374b, 0x3325, 0x39ee, 0x385c, 0x32a7, 0x281b, 0x2193, 0x3418, 0x35ac, 0x3800, 0x3a5f, 0x3bf9, 0x37f4, 0x3819, 0x3891, 0x3534, 0x366b, 0x3b04, 0x35b1, 0x3969, 0x3bc5, 0x3856, 0x2e11, 0x3784, 0x3388, 0x36eb, 0x35e3, 0x32f8, 0x2a50, 0x33ed, 0x3989, 0x34b8, 0x3be4, 0x3844, 0x34b0, 0x355e, 0x3a56, 0x3431, 0x345d, 0x389a, 0x366e, 0x3902, 0x3858, 0x38e1, 0x388c, 0x3565, 0x33c4, 0x3b68, 0x372f, 0x307c, 0x3bb9, 0x359f, 0x3a41, 0x3bcf, 0x3bb3, 0x2d88, 0x32f8, 0x354c, 0x3b9e, 0x3ae5, +0x3059, 0x3359, 0x382d, 0x3a91, 0x3bed, 0x28fb, 0x3885, 0x3a3c, 0x39e9, 0x39f7, 0x351e, 0x37e3, 0x3bad, 0x2834, 0x37d1, 0x3839, 0x3ad1, 0x39f3, 0x362f, 0x35ba, 0x3312, 0x3b21, 0x3536, 0x3bfd, 0x3518, 0x201e, 0x2022, 0x3b03, 0x3910, 0x39ce, 0x363c, 0x3b25, 0x3b4f, 0x3be8, 0x3655, 0x38dc, 0x344b, 0x3372, 0x3939, 0x372a, 0x3b86, 0x384e, 0x3b9e, 0x32c3, 0x3bd5, 0x3041, 0x3051, 0x257f, 0x3a6c, 0x3379, 0x2f52, 0x37de, 0x37ac, 0x3734, 0x3447, 0x3bbc, 0x3aaf, 0x38eb, 0x384a, 0x3ad6, 0x3a49, 0x3944, 0x2cf5, 0x38a3, 0x398b, 0x3b0e, 0x307a, 0x3504, 0x3728, 0x3500, 0x2f6e, 0x2e34, 0x3aa4, 0x39f7, 0x3831, 0x3902, 0x3509, 0x2d20, 0x3b99, 0x3860, 0x3901, 0x3420, 0x3944, 0x3926, 0x3acd, 0x3786, 0x3b09, 0x3ad7, 0x2cb6, 0x3a8e, 0x2233, 0x3892, 0x398a, 0x272e, 0x3853, 0x389c, +0x3a14, 0x3877, 0x3320, 0x34b7, 0x3a85, 0x34da, 0x38db, 0x3758, 0x3b8d, 0x3aa8, 0x3766, 0x34db, 0x3a54, 0x3806, 0x31ef, 0x33ab, 0x38bd, 0x3778, 0x3543, 0x36ec, 0x36fa, 0x2fc5, 0x3676, 0x350c, 0x390f, 0x3b8b, 0x394a, 0x38bb, 0x31d9, 0x3bf1, 0x36ce, 0x35dc, 0x38c2, 0x3910, 0x3944, 0x38f8, 0x37f6, 0x3b9b, 0x3574, 0x31ed, 0x244e, 0x28ef, 0x34fa, 0x3398, 0x3912, 0x365f, 0x3bb2, 0x38f7, 0x3af2, 0x3500, 0x3a8e, 0x3a55, 0x39be, 0x2471, 0x34b0, 0x336f, 0x380a, 0x3ae7, 0x34f5, 0x35f9, 0x3227, 0x263d, 0x3385, 0x372f, 0x2046, 0x3a80, 0x3b0a, 0x35cf, 0x38e1, 0x38b4, 0x2eb6, 0x353f, 0x314f, 0x3a4c, 0x3a52, 0x3b84, 0x39b8, 0x367d, 0x3b22, 0x310a, 0x3611, 0x37ad, 0x3496, 0x2e9c, 0x3215, 0x3b29, 0x38cf, 0x343f, 0x380a, 0x36b0, 0x3a08, 0x2c90, 0x36e4, 0x354a, 0x3b56, 0x37a1, +0x39f1, 0x340d, 0x3b34, 0x309a, 0x3074, 0x24a8, 0x261c, 0x3a16, 0x3846, 0x35dd, 0x2830, 0x3a03, 0x3729, 0x3766, 0x3461, 0x33db, 0x3b4a, 0x33eb, 0x3813, 0x34cd, 0x3875, 0x3a95, 0x31ef, 0x38b2, 0x3acc, 0x34d9, 0x3542, 0x37f4, 0x3937, 0x3858, 0x3997, 0x3538, 0x338b, 0x35ff, 0x3613, 0x3809, 0x3878, 0x3870, 0x2df0, 0x39f4, 0x3863, 0x30ce, 0x38ae, 0x384f, 0x3b24, 0x3045, 0x297f, 0x3b58, 0x3123, 0x2b6b, 0x3bc5, 0x388a, 0x3003, 0x3077, 0x34dc, 0x39cb, 0x3bcf, 0x3b16, 0x344c, 0x3aac, 0x364a, 0x399b, 0x3a68, 0x3583, 0x34c3, 0x3bc0, 0x3b1d, 0x3a15, 0x387f, 0x3756, 0x382e, 0x3a58, 0x18c3, 0x3a2e, 0x3b81, 0x34f8, 0x3802, 0x3631, 0x3920, 0x340c, 0x3b6c, 0x39a7, 0x1a4a, 0x38cc, 0x38ec, 0x3912, 0x3bd6, 0x3358, 0x3275, 0x3954, 0x3b39, 0x3674, 0x3a2e, 0x387c, 0x3a86, 0x34c2, +0x3585, 0x36c0, 0x3762, 0x380b, 0x31cf, 0x3992, 0x365a, 0x3b73, 0x35e8, 0x3925, 0x3b3b, 0x37cc, 0x3823, 0x2cd7, 0x2a80, 0x3a41, 0x37a5, 0x3479, 0x36eb, 0x29cc, 0x317d, 0x38b8, 0x32f8, 0x355e, 0x392c, 0x3b16, 0x3275, 0x306a, 0x22a8, 0x35fb, 0x32d4, 0x3a42, 0x32ba, 0x2443, 0x3898, 0x3164, 0x38ff, 0x3ba6, 0x35ae, 0x396a, 0x3a5c, 0x3922, 0x1df2, 0x3943, 0x309b, 0x3a53, 0x3439, 0x3802, 0x32bc, 0x34f6, 0x3957, 0x3a59, 0x36c9, 0x3b3c, 0x3aa0, 0x3903, 0x2b86, 0x380e, 0x2f83, 0x397a, 0x3a11, 0x3ab3, 0x38b9, 0x3a54, 0x3191, 0x2eb7, 0x3549, 0x3a39, 0x375b, 0x38d8, 0x346a, 0x3a3e, 0x35ff, 0x305b, 0x3b1d, 0x3882, 0x39da, 0x3a92, 0x2f74, 0x38f1, 0x3b8e, 0x361f, 0x38d4, 0x365b, 0x367c, 0x2658, 0x3762, 0x3905, 0x393f, 0x34c8, 0x3830, 0x39d1, 0x35e1, 0x23b7, 0x3b28, 0x39f4, +0x27a7, 0x38a0, 0x3954, 0x32c7, 0x3572, 0x25b3, 0x384f, 0x38fb, 0x3a34, 0x3b79, 0x3af6, 0x34c8, 0x3a0d, 0x3906, 0x3981, 0x3a97, 0x3b17, 0x34d5, 0x2dc4, 0x3401, 0x21b1, 0x3999, 0x3898, 0x2def, 0x3747, 0x300c, 0x3afe, 0x34d6, 0x36ac, 0x3b5f, 0x3952, 0x2a90, 0x34b4, 0x3a77, 0x3b03, 0x385e, 0x33d0, 0x37a9, 0x36a7, 0x231e, 0x3534, 0x35f6, 0x30e1, 0x3873, 0x2299, 0x387e, 0x3499, 0x30dc, 0x383a, 0x256e, 0x387f, 0x3395, 0x33c1, 0x38ac, 0x38fe, 0x383b, 0x36c3, 0x392b, 0x3812, 0x3168, 0x3b18, 0x386a, 0x3b17, 0x3981, 0x3577, 0x3874, 0x308a, 0x38d1, 0x3a7b, 0x361f, 0x38bf, 0x29c5, 0x2d56, 0x343b, 0x33bc, 0x38ab, 0x3a82, 0x2feb, 0x3885, 0x3531, 0x3588, 0x2ff6, 0x3851, 0x3a08, 0x36e7, 0x3b8c, 0x3182, 0x3a4e, 0x3849, 0x3509, 0x3909, 0x380e, 0x3692, 0x2e1e, 0x2f7f, 0x35eb, +0x3816, 0x2f7d, 0x3b42, 0x38c2, 0x3884, 0x3096, 0x39b7, 0x3868, 0x3879, 0x3606, 0x3111, 0x36d8, 0x39eb, 0x3bcf, 0x3ac4, 0x38bd, 0x3877, 0x3967, 0x398b, 0x39fe, 0x3514, 0x3139, 0x30a8, 0x3431, 0x2d75, 0x3a3a, 0x3b80, 0x3917, 0x307a, 0x2c42, 0x3143, 0x3954, 0x36ff, 0x381f, 0x37dd, 0x3b2f, 0x3972, 0x317f, 0x397b, 0x350d, 0x382e, 0x2ed6, 0x375c, 0x3462, 0x36ff, 0x364c, 0x39ba, 0x36c7, 0x3bea, 0x3211, 0x354e, 0x2d30, 0x1f03, 0x35f6, 0x3a24, 0x3576, 0x38ce, 0x38e5, 0x3bbe, 0x38a8, 0x3831, 0x39d0, 0x3772, 0x3ba5, 0x314f, 0x2572, 0x39d2, 0x2de3, 0x1d7a, 0x360b, 0x399a, 0x3863, 0x3a18, 0x3141, 0x3a7d, 0x391b, 0x3957, 0x33f7, 0x3801, 0x392a, 0x3a5a, 0x3a51, 0x3841, 0x2a4a, 0x3786, 0x355f, 0x28d9, 0x35cc, 0x2dfc, 0x302a, 0x2c60, 0x3b50, 0x3abe, 0x382f, 0x35ed, 0x3a8d, +0x3b1b, 0x3525, 0x3725, 0x2e88, 0x304b, 0x3920, 0x3962, 0x3908, 0x352b, 0x3667, 0x3880, 0x3692, 0x38bd, 0x317c, 0x30f3, 0x3beb, 0x302b, 0x326c, 0x3a36, 0x3a30, 0x39b6, 0x2a61, 0x34f1, 0x22d6, 0x39b6, 0x310f, 0x2dff, 0x38d1, 0x3700, 0x3412, 0x38de, 0x394f, 0x2de4, 0x2ed8, 0x3beb, 0x3a50, 0x3526, 0x246d, 0x361e, 0x2e4b, 0x3272, 0x3b5a, 0x3805, 0x3a98, 0x3653, 0x3abc, 0x301d, 0x399f, 0x2dae, 0x3ac4, 0x39dc, 0x3403, 0x3109, 0x2d85, 0x381e, 0x36b6, 0x348d, 0x35c6, 0x3b5f, 0x3b3a, 0x35c0, 0x36de, 0x38bc, 0x3308, 0x39a0, 0x39cf, 0x3456, 0x3a80, 0x39fc, 0x311a, 0x3bb1, 0x3a38, 0x3b9d, 0x3a27, 0x3912, 0x3377, 0x38a9, 0x34c6, 0x34ec, 0x35fa, 0x378c, 0x387e, 0x3686, 0x372c, 0x388d, 0x3ad6, 0x3bd3, 0x3b26, 0x3bd6, 0x3b91, 0x31e3, 0x381e, 0x353b, 0x3a90, 0x2cd6, 0x3047, +0x33df, 0x35c8, 0x396a, 0x321c, 0x286f, 0x2daa, 0x39aa, 0x3a83, 0x36ff, 0x3476, 0x3a33, 0x37d6, 0x2c5f, 0x3a23, 0x38cb, 0x36a9, 0x331b, 0x24ec, 0x3960, 0x2d61, 0x3a61, 0x330f, 0x3937, 0x2e70, 0x3797, 0x399d, 0x26dc, 0x320e, 0x342c, 0x3b32, 0x22bc, 0x3466, 0x3447, 0x3896, 0x31b7, 0x3b22, 0x383a, 0x3623, 0x38f8, 0x3552, 0x3a55, 0x29c5, 0x34bb, 0x3663, 0x2c7b, 0x378d, 0x250c, 0x3ac9, 0x39c4, 0x378d, 0x39d2, 0x39a9, 0x379f, 0x3473, 0x2db0, 0x3993, 0x3ad3, 0x3494, 0x39ae, 0x36d2, 0x397c, 0x39c9, 0x3adc, 0x359f, 0x2c2f, 0x3b0d, 0x3595, 0x3687, 0x39b3, 0x34e4, 0x3af6, 0x2f71, 0x39af, 0x3b28, 0x38fe, 0x381d, 0x28ef, 0x3abc, 0x3723, 0x3b6c, 0x381e, 0x3442, 0x3b90, 0x39cc, 0x39c5, 0x3654, 0x38ac, 0x1b4d, 0x391f, 0x38d2, 0x3ac7, 0x385a, 0x322c, 0x39e6, 0x289c, 0x3786, +0x3b5f, 0x37c4, 0x3906, 0x3069, 0x3478, 0x383c, 0x3a34, 0x3a85, 0x33b3, 0x3be6, 0x3a71, 0x33ac, 0x3a77, 0x3b21, 0x3b7d, 0x3957, 0x3814, 0x39b2, 0x3504, 0x387f, 0x37c6, 0x39e0, 0x39f1, 0x393b, 0x2fe0, 0x3806, 0x2d6e, 0x37a5, 0x3069, 0x3831, 0x3959, 0x3363, 0x2d3a, 0x3980, 0x35ec, 0x3a3c, 0x389c, 0x23eb, 0x3a24, 0x30fa, 0x3040, 0x38b4, 0x3b7b, 0x381f, 0x3a66, 0x246e, 0x3b37, 0x30c1, 0x38a5, 0x387e, 0x34aa, 0x362a, 0x3556, 0x2a52, 0x3445, 0x3a9b, 0x2986, 0x38d2, 0x3513, 0x3bca, 0x39fa, 0x303b, 0x31cc, 0x3414, 0x3b16, 0x3a43, 0x2e2c, 0x3a29, 0x3996, 0x3973, 0x39b3, 0x36dc, 0x2761, 0x32a1, 0x3815, 0x3708, 0x38fa, 0x38cb, 0x36d3, 0x39c8, 0x266c, 0x3b60, 0x33cf, 0x3be3, 0x3854, 0x34c0, 0x34d3, 0x39ac, 0x37ad, 0x2fcb, 0x3966, 0x31a2, 0x363f, 0x3434, 0x381e, 0x3a53, +0x3795, 0x38cd, 0x3c00, 0x393c, 0x38af, 0x3b72, 0x37c4, 0x3b4f, 0x30b0, 0x36fd, 0x377b, 0x38f2, 0x371b, 0x3ada, 0x2edd, 0x3782, 0x33a2, 0x3a25, 0x38ae, 0x3be0, 0x3a31, 0x32b2, 0x3323, 0x3b1f, 0x39fc, 0x3986, 0x3b38, 0x3881, 0x3a9d, 0x3936, 0x3946, 0x3159, 0x3504, 0x3792, 0x3547, 0x28ff, 0x3449, 0x3214, 0x313f, 0x3866, 0x3a59, 0x3b06, 0x2e51, 0x2759, 0x342e, 0x3726, 0x3473, 0x37ea, 0x3b1d, 0x3be8, 0x346d, 0x3b73, 0x38c3, 0x296c, 0x33b2, 0x34a7, 0x3af5, 0x3284, 0x359c, 0x384d, 0x2ff7, 0x3337, 0x339b, 0x30e4, 0x3001, 0x3b02, 0x2ddf, 0x3997, 0x320c, 0x3af9, 0x2c92, 0x37e8, 0x3b5d, 0x3132, 0x3860, 0x396b, 0x39fd, 0x38f3, 0x3968, 0x32e8, 0x3523, 0x395b, 0x2e01, 0x37b9, 0x3b53, 0x3b37, 0x398e, 0x389b, 0x3586, 0x37d6, 0x3976, 0x3785, 0x3b0c, 0x3975, 0x39e2, 0x3bb5, +0x3675, 0x343a, 0x38d9, 0x392e, 0x3b61, 0x35db, 0x3527, 0x3a75, 0x3a1e, 0x36bd, 0x3af7, 0x2dae, 0x3b77, 0x2fe7, 0x3a80, 0x3745, 0x3a6e, 0x3748, 0x37ad, 0x3492, 0x3a82, 0x35db, 0x2e6a, 0x34bf, 0x3984, 0x3aff, 0x3a9a, 0x2720, 0x3786, 0x3475, 0x3842, 0x36ce, 0x387f, 0x3875, 0x292c, 0x35b8, 0x3ac0, 0x39f1, 0x3537, 0x3920, 0x3a93, 0x2a40, 0x2c60, 0x39b0, 0x3559, 0x3989, 0x3670, 0x33ef, 0x36e4, 0x3ac3, 0x3802, 0x35b3, 0x36e9, 0x34b6, 0x3911, 0x35f1, 0x3591, 0x3a96, 0x39df, 0x3892, 0x3582, 0x3a67, 0x39cf, 0x3bf8, 0x3587, 0x2adb, 0x36f3, 0x3a9f, 0x34c5, 0x31ab, 0x3481, 0x26aa, 0x3929, 0x3749, 0x3764, 0x3743, 0x39db, 0x2850, 0x363d, 0x386f, 0x349c, 0x3ae1, 0x3834, 0x3480, 0x305d, 0x3bca, 0x3418, 0x3580, 0x3897, 0x3831, 0x3898, 0x39aa, 0x372b, 0x3b98, 0x3b92, 0x3adc, +0x355f, 0x3915, 0x21ad, 0x3a2a, 0x3803, 0x3af4, 0x34e4, 0x37b0, 0x399e, 0x33d8, 0x3904, 0x1c2b, 0x3831, 0x3b39, 0x3a0e, 0x37dd, 0x3bfb, 0x3a0f, 0x3623, 0x3beb, 0x39d0, 0x335e, 0x38e5, 0x3810, 0x37df, 0x2c84, 0x30bc, 0x3013, 0x342f, 0x285f, 0x3855, 0x3b81, 0x3a35, 0x33e5, 0x3a11, 0x3bab, 0x32df, 0x303d, 0x3973, 0x340f, 0x3aba, 0x34d9, 0x3924, 0x3b84, 0x3a67, 0x3980, 0x3612, 0x3b64, 0x39e3, 0x3ac3, 0x3350, 0x3865, 0x24d5, 0x3bac, 0x3594, 0x38d7, 0x3b53, 0x3b76, 0x39ee, 0x36de, 0x3a1c, 0x38ce, 0x25cc, 0x3847, 0x3b28, 0x34c5, 0x3a7e, 0x3afb, 0x3361, 0x2266, 0x37d1, 0x3886, 0x306b, 0x3b12, 0x3a8b, 0x2aad, 0x3855, 0x35b0, 0x35c4, 0x3b4e, 0x36fa, 0x396a, 0x26f4, 0x381a, 0x2f06, 0x2c3e, 0x3116, 0x3adf, 0x358b, 0x2f88, 0x3adf, 0x3842, 0x3a1a, 0x3b35, 0x291a, 0x2e9d, +0x32d1, 0x3946, 0x3a50, 0x398e, 0x2970, 0x3122, 0x286c, 0x3b80, 0x3bbe, 0x38ad, 0x3b51, 0x385a, 0x38c4, 0x3af0, 0x352a, 0x38e9, 0x3a80, 0x28e3, 0x395e, 0x34aa, 0x3973, 0x3492, 0x398c, 0x327b, 0x39d4, 0x3995, 0x3740, 0x2742, 0x388f, 0x3a24, 0x3a2f, 0x38d3, 0x384e, 0x3abd, 0x3bb8, 0x3814, 0x394b, 0x3aa0, 0x3af2, 0x37ad, 0x32aa, 0x3aa3, 0x3aa6, 0x3ac5, 0x2fbf, 0x3759, 0x3848, 0x32c6, 0x3459, 0x38af, 0x3980, 0x24db, 0x3ac5, 0x377c, 0x1d75, 0x36e9, 0x389b, 0x314e, 0x344f, 0x30ff, 0x3921, 0x3b72, 0x3884, 0x3836, 0x3af2, 0x35b8, 0x3116, 0x38ce, 0x3ae6, 0x3b16, 0x3bca, 0x373b, 0x3a8e, 0x3872, 0x2d2a, 0x344d, 0x3b2e, 0x3608, 0x320e, 0x2aa7, 0x361a, 0x2dc4, 0x3b4f, 0x2d4d, 0x34b3, 0x34c0, 0x393b, 0x3a76, 0x372f, 0x3637, 0x2b5c, 0x3a38, 0x367b, 0x2b1e, 0x344e, 0x385e, +0x3ab6, 0x38a2, 0x3674, 0x2d4d, 0x3bad, 0x3b44, 0x35ed, 0x38a7, 0x325e, 0x3b29, 0x3b65, 0x2f0f, 0x3a30, 0x3b4c, 0x3843, 0x3a21, 0x2e34, 0x3180, 0x3ae0, 0x3a02, 0x3a82, 0x2ad9, 0x3826, 0x3a94, 0x2f66, 0x217b, 0x3b82, 0x3839, 0x3263, 0x3a1b, 0x2958, 0x3b26, 0x3a3e, 0x3039, 0x3bd7, 0x2057, 0x3b99, 0x38ac, 0x372d, 0x344e, 0x31fa, 0x3bf8, 0x394e, 0x3acb, 0x3b88, 0x38cf, 0x3582, 0x3a2b, 0x370e, 0x34b5, 0x36d2, 0x3ae3, 0x38b9, 0x37a5, 0x3979, 0x3204, 0x3ba2, 0x3591, 0x3a00, 0x3944, 0x1b7f, 0x271e, 0x38a2, 0x38ad, 0x3ade, 0x3008, 0x34c9, 0x3269, 0x31da, 0x3bad, 0x3587, 0x3bea, 0x3512, 0x2deb, 0x3825, 0x3488, 0x30aa, 0x3baf, 0x378f, 0x39d9, 0x3ac4, 0x3427, 0x371e, 0x3b2d, 0x3138, 0x3654, 0x3815, 0x3b7c, 0x38cf, 0x382e, 0x1cdb, 0x2fa4, 0x3783, 0x383c, 0x37d1, 0x2df8, +0x335b, 0x3071, 0x367f, 0x3be1, 0x3a1b, 0x3afd, 0x390b, 0x3b17, 0x3861, 0x3adb, 0x3a04, 0x3859, 0x3a95, 0x37b6, 0x37ff, 0x3400, 0x34e3, 0x367d, 0x3ad0, 0x3506, 0x3b50, 0x33e6, 0x3a42, 0x3b3c, 0x382a, 0x3bf8, 0x3be8, 0x3917, 0x39ec, 0x265b, 0x3b11, 0x3b2a, 0x3aef, 0x35f9, 0x3a2b, 0x371d, 0x32f8, 0x338b, 0x3bc2, 0x399e, 0x3aa8, 0x34b1, 0x182c, 0x3691, 0x39c5, 0x359a, 0x3b2b, 0x38f9, 0x3953, 0x362a, 0x3a8e, 0x363d, 0x3b96, 0x380a, 0x37fc, 0x3694, 0x2fa9, 0x35d1, 0x3699, 0x2e36, 0x3922, 0x38b6, 0x2d05, 0x3161, 0x353e, 0x371f, 0x3913, 0x39b6, 0x35d6, 0x3b29, 0x395c, 0x3677, 0x3ac8, 0x35e1, 0x3b02, 0x3479, 0x321a, 0x2a17, 0x2890, 0x388a, 0x3109, 0x3a45, 0x301c, 0x349a, 0x31a2, 0x3b19, 0x2eb4, 0x2eff, 0x353c, 0x39f5, 0x396c, 0x3ae4, 0x3873, 0x3bf6, 0x3887, 0x3507, +0x34d1, 0x35d3, 0x3ad2, 0x3759, 0x2918, 0x36eb, 0x39bd, 0x3b25, 0x31b8, 0x35eb, 0x2999, 0x3b69, 0x3829, 0x3385, 0x3bf4, 0x3a9b, 0x3aa7, 0x319a, 0x3824, 0x38e6, 0x38aa, 0x375d, 0x3188, 0x34eb, 0x37bc, 0x3375, 0x367b, 0x33df, 0x34f6, 0x38b3, 0x38e3, 0x3010, 0x3a05, 0x2e64, 0x336a, 0x3466, 0x3962, 0x3640, 0x2a17, 0x31c5, 0x3815, 0x3472, 0x3b2c, 0x3b79, 0x32d7, 0x3656, 0x2a54, 0x3409, 0x3887, 0x34e6, 0x30ea, 0x2851, 0x39cc, 0x3153, 0x38af, 0x3868, 0x3ad3, 0x3853, 0x38a7, 0x3583, 0x31e3, 0x3284, 0x2909, 0x3ae9, 0x3abe, 0x310b, 0x3564, 0x33cb, 0x3999, 0x37bc, 0x352c, 0x32f7, 0x3522, 0x36de, 0x340c, 0x37f7, 0x3839, 0x39f8, 0x2b3b, 0x3ada, 0x3258, 0x3764, 0x395c, 0x374b, 0x3bbc, 0x35fd, 0x306c, 0x3645, 0x3b20, 0x3a18, 0x2c2b, 0x39e2, 0x3a43, 0x3934, 0x34b5, 0x390a, +0x3bc0, 0x358b, 0x3817, 0x3b77, 0x36de, 0x3868, 0x3b93, 0x2d8d, 0x3607, 0x37f9, 0x39b4, 0x3bc5, 0x3997, 0x33e1, 0x328b, 0x226a, 0x3aab, 0x390e, 0x34ee, 0x34ae, 0x3645, 0x3a4d, 0x31db, 0x3576, 0x38ed, 0x39d5, 0x2974, 0x3982, 0x34ca, 0x3839, 0x3b7a, 0x2e37, 0x2045, 0x3a1b, 0x3bf9, 0x2f9a, 0x2aba, 0x3944, 0x3a82, 0x24d0, 0x38fa, 0x2c8f, 0x3a4c, 0x391f, 0x39d2, 0x3154, 0x3a64, 0x3902, 0x398d, 0x3921, 0x3800, 0x3443, 0x2fb9, 0x3aa5, 0x3973, 0x2a30, 0x367d, 0x3850, 0x3a1e, 0x3b86, 0x34eb, 0x383c, 0x37b1, 0x2db1, 0x30d7, 0x347a, 0x2b61, 0x3441, 0x288b, 0x3bea, 0x2a52, 0x29de, 0x3a65, 0x37c2, 0x3370, 0x39e2, 0x3850, 0x3691, 0x2f33, 0x39cb, 0x3bbd, 0x35fe, 0x3696, 0x3bbe, 0x3451, 0x384e, 0x2f01, 0x380e, 0x3810, 0x35e9, 0x2c3b, 0x34bd, 0x3905, 0x3505, 0x36e9, 0x3b23, +0x38d5, 0x38b3, 0x2e40, 0x39da, 0x3459, 0x39b9, 0x385c, 0x3a5a, 0x37d8, 0x37bb, 0x3549, 0x3ba9, 0x3a79, 0x3b72, 0x2c21, 0x3576, 0x3bd3, 0x3ae5, 0x3b63, 0x3979, 0x319a, 0x3bb2, 0x39e7, 0x328c, 0x3af2, 0x34d2, 0x32c2, 0x38d1, 0x3831, 0x3a23, 0x3a51, 0x3646, 0x38be, 0x2f1b, 0x36a5, 0x3891, 0x38f0, 0x3a6a, 0x3249, 0x2f87, 0x36d8, 0x3a85, 0x2870, 0x369e, 0x3a6a, 0x34d5, 0x3419, 0x3b3e, 0x38d2, 0x3a7f, 0x3938, 0x38e4, 0x3332, 0x39db, 0x3933, 0x3a2a, 0x38cc, 0x3bae, 0x3b1a, 0x3837, 0x3ba2, 0x3582, 0x3639, 0x392a, 0x30d0, 0x3966, 0x3b0f, 0x35a7, 0x3962, 0x3b6d, 0x3503, 0x38e2, 0x370e, 0x3341, 0x3694, 0x3a68, 0x3879, 0x3661, 0x377f, 0x38fc, 0x38d5, 0x3238, 0x3a69, 0x32d0, 0x3a61, 0x388f, 0x3591, 0x3b25, 0x3818, 0x304b, 0x39f0, 0x3826, 0x399e, 0x332c, 0x3496, 0x3822, +0x3a10, 0x3839, 0x3b02, 0x248f, 0x39a8, 0x31fa, 0x3964, 0x34e5, 0x2abc, 0x3a82, 0x3440, 0x321b, 0x3859, 0x38f1, 0x3845, 0x3bbd, 0x3b28, 0x3410, 0x3855, 0x3acb, 0x3afe, 0x38fb, 0x341d, 0x3713, 0x3281, 0x387c, 0x3b3a, 0x388d, 0x34f1, 0x33b1, 0x35df, 0x3a40, 0x3b5a, 0x37a8, 0x3997, 0x32c0, 0x38e1, 0x287f, 0x30ed, 0x398d, 0x2fc0, 0x399c, 0x34b5, 0x3b4e, 0x3a20, 0x39ed, 0x2dfe, 0x3b53, 0x3529, 0x3b5d, 0x39b7, 0x3469, 0x35fb, 0x3af6, 0x3b95, 0x39bd, 0x39be, 0x3bad, 0x308a, 0x380a, 0x3851, 0x3810, 0x3866, 0x3adb, 0x3b96, 0x3118, 0x3a45, 0x36ab, 0x3250, 0x38f5, 0x360e, 0x3ac2, 0x30d1, 0x3a5f, 0x3a09, 0x3550, 0x3ba9, 0x360d, 0x3ad6, 0x3a1f, 0x376e, 0x308b, 0x3908, 0x38ac, 0x348a, 0x3ba4, 0x3704, 0x37ef, 0x35ea, 0x3836, 0x395a, 0x2c3d, 0x382e, 0x360a, 0x321a, 0x3967, +0x26ea, 0x3845, 0x344c, 0x3b46, 0x33ca, 0x2f66, 0x220e, 0x39c5, 0x35d6, 0x3af3, 0x39d0, 0x38f7, 0x3082, 0x3924, 0x3198, 0x3a81, 0x3a45, 0x3945, 0x368d, 0x3a76, 0x3a14, 0x3145, 0x2430, 0x37f0, 0x3af8, 0x31d6, 0x36ab, 0x3453, 0x2dcc, 0x359c, 0x3699, 0x37b4, 0x399c, 0x375e, 0x386a, 0x3927, 0x38c2, 0x33ac, 0x32de, 0x3ba4, 0xece, 0x398a, 0x3b1f, 0x3583, 0x3b41, 0x340f, 0x3bef, 0x3777, 0x3acd, 0x3818, 0x3ad3, 0x385d, 0x38f7, 0x399c, 0x38a1, 0x3a11, 0x38ad, 0x2fc0, 0x32c3, 0x3293, 0x3499, 0x3757, 0x28a6, 0x3b3d, 0x3b9b, 0x37a1, 0x3bcd, 0x3a17, 0x3b46, 0x39b0, 0x2cee, 0x346a, 0x3b63, 0x3855, 0x37a4, 0x36dc, 0x3baa, 0x20a7, 0x3b32, 0x2a40, 0x3ac4, 0x3855, 0x35cb, 0x3bcc, 0x3a66, 0x38bd, 0x213a, 0x2be8, 0x2793, 0x32a2, 0x3a2c, 0x3aae, 0x384b, 0x3a00, 0x375d, 0x35e2, +0x3938, 0x3629, 0x398a, 0x263c, 0x37f1, 0x39ed, 0x332c, 0x3879, 0x38df, 0x2cc1, 0x38cb, 0x398a, 0x3935, 0x3607, 0x2791, 0x3a21, 0x3590, 0x306b, 0x3720, 0x3abb, 0x3a6a, 0x2a36, 0x388b, 0x2c62, 0x393e, 0x36bc, 0x37be, 0x39bd, 0x39db, 0x35d8, 0x3b2d, 0x39ba, 0x33a4, 0x3a4b, 0x2f93, 0x38ca, 0x325d, 0x3974, 0x3116, 0x3bd6, 0x3630, 0x3888, 0x3a58, 0x3a1d, 0x3868, 0x38c5, 0x316f, 0x353d, 0x2a18, 0x3994, 0x399a, 0x2e05, 0x3b8b, 0x32f3, 0x3242, 0x2e23, 0x3191, 0x3ab7, 0x2aaf, 0x3a7d, 0x3726, 0x3b42, 0x3abc, 0x372b, 0x3a73, 0x390e, 0x38d0, 0x38e2, 0x39f9, 0x2fae, 0x3372, 0x3370, 0x3699, 0x3851, 0x3430, 0x3559, 0x3b7c, 0x3671, 0x35dd, 0x2d3e, 0x35c8, 0x2260, 0x3ab4, 0x3b38, 0x3327, 0x33df, 0x3a01, 0x3368, 0x361e, 0x3baa, 0x3990, 0x382b, 0x38fb, 0x35b9, 0x3921, 0x3918, +0x38ea, 0x349a, 0x3123, 0x2d03, 0x356f, 0x3735, 0x3b50, 0x355b, 0x3b23, 0x3a35, 0x30a3, 0x3568, 0x365c, 0x3328, 0x3ac5, 0x323f, 0x271b, 0x24a7, 0x369d, 0x32a5, 0x39e7, 0x37dc, 0x3a48, 0x36a7, 0x3037, 0x39b8, 0x35b5, 0x320c, 0x29c0, 0x3770, 0x3893, 0x384c, 0x3888, 0x399a, 0x3a4e, 0x31e7, 0x397d, 0x3876, 0x3425, 0x3929, 0x3734, 0x2cb9, 0x39e8, 0x399d, 0x27d8, 0x3a89, 0x3198, 0x35ee, 0x2576, 0x31a6, 0x398b, 0x31cb, 0x2e6d, 0x386a, 0x3b4e, 0x3882, 0x3a5b, 0x3797, 0x38f0, 0x3229, 0x3849, 0x3874, 0x2cb5, 0x3b07, 0x3b6f, 0x3b29, 0x3bdf, 0x34fd, 0x3502, 0x3ae1, 0x39ac, 0x37ef, 0x3bbc, 0x39f7, 0x3503, 0x3bf0, 0x34da, 0x3bb9, 0x3811, 0x3ac2, 0x37e5, 0x37a9, 0x38a2, 0x3ba7, 0x3862, 0x369c, 0x35f7, 0x388b, 0x3aa8, 0x335b, 0x3a6f, 0x3885, 0x36c6, 0x38a9, 0x396d, 0x34ec, +0x3a09, 0x3869, 0x34bb, 0x3761, 0x36a1, 0x3852, 0x3849, 0x3659, 0x3805, 0x3a89, 0x3539, 0x35eb, 0x3439, 0x3863, 0x3a88, 0x38e0, 0x388c, 0x351c, 0x350e, 0x3383, 0x31ad, 0x389e, 0x39a5, 0x363f, 0x3b6a, 0x30f5, 0x3a4f, 0x3669, 0x3ae5, 0x3950, 0x2e12, 0x3801, 0x3af3, 0x393f, 0x377b, 0x390c, 0x34ff, 0x30f2, 0x271a, 0x37a5, 0x289e, 0x39b6, 0x3bf3, 0x389f, 0x3a33, 0x3bf0, 0x39c0, 0x392a, 0x394d, 0x349c, 0x3b62, 0x327a, 0x377b, 0x3590, 0x397a, 0x3a04, 0x3247, 0x329c, 0x2d99, 0x3b76, 0x33ff, 0x3456, 0x32c3, 0x35b6, 0x3282, 0x32b5, 0x3a23, 0x39e0, 0x3767, 0x3600, 0x38d6, 0x3a7c, 0x3515, 0x36bc, 0x381a, 0x3bd6, 0x3baf, 0x3811, 0x39e0, 0x22ac, 0x391b, 0x29be, 0x39aa, 0x3329, 0x3a6f, 0x3bcb, 0x3118, 0x3bbf, 0x3674, 0x3918, 0x30cd, 0x3924, 0x3a6b, 0x3a8b, 0x34b5, 0x39cc, +0x2cde, 0x3945, 0x37ff, 0x3115, 0x3a3b, 0x3ae1, 0x3958, 0x28f5, 0x3b19, 0x33ff, 0x3bc4, 0x3476, 0x3886, 0x3511, 0x342b, 0x3b18, 0x36e9, 0x3ab9, 0x2423, 0x32e2, 0x3623, 0x38b4, 0x371b, 0x3bc0, 0x3b8d, 0x3366, 0x384f, 0x3a1a, 0x3a09, 0x3918, 0x3959, 0x3652, 0x3baa, 0x3685, 0x38b7, 0x378b, 0x32e9, 0x3a53, 0x3405, 0x3bc3, 0x34b9, 0x339d, 0x3819, 0x2fe8, 0x3bdb, 0x3421, 0x3575, 0x3796, 0x207e, 0x3b04, 0x38a8, 0x3b69, 0x35f1, 0x389a, 0x37ee, 0x38c3, 0x34db, 0x35a5, 0x3b83, 0x36a9, 0x2883, 0x3955, 0x3aa0, 0x334a, 0x34a9, 0x3772, 0x312a, 0x3bde, 0x3338, 0x3601, 0x3125, 0x3a73, 0x316c, 0x348e, 0x3bef, 0x3b52, 0x343b, 0x249c, 0x3a68, 0x3905, 0x3b4d, 0x1cf8, 0x356a, 0x3499, 0x3385, 0x3b44, 0x2aaf, 0x28a1, 0x3199, 0x379d, 0x3832, 0x2da7, 0x3a9e, 0x3bc7, 0x34a2, 0x2c5a, +0x3bde, 0x3822, 0x3715, 0x345e, 0x38c1, 0x3315, 0x38d1, 0x2da9, 0x37f6, 0x38d3, 0x3beb, 0x3ba6, 0x343f, 0x3af0, 0x3b0e, 0x2bd6, 0x3b3b, 0x3a5a, 0x3930, 0x3af7, 0x3504, 0x31a5, 0x2918, 0x3853, 0x214f, 0x3b67, 0x3b64, 0x34a9, 0x3894, 0x3a87, 0x3ad1, 0x3a09, 0x38a2, 0x39da, 0x3a16, 0x3485, 0x36bf, 0x3ada, 0x31eb, 0x3b8c, 0x2de3, 0x3914, 0x39d4, 0x399f, 0x3968, 0x3200, 0x3631, 0x3bd6, 0x390b, 0x312d, 0x3b94, 0x3bf1, 0x38ee, 0x378b, 0x29f3, 0x3810, 0x2f19, 0x3808, 0x389c, 0x3a3a, 0x376c, 0x3b58, 0x346d, 0x2e32, 0x3848, 0x3bec, 0x3779, 0x3237, 0x37d2, 0x3963, 0x37a5, 0x3993, 0x3495, 0x3679, 0x2c1d, 0x3add, 0x3722, 0x305d, 0x38a0, 0x3851, 0x3a01, 0x291b, 0x3447, 0x35f7, 0x3617, 0x3928, 0x2e5d, 0x1f75, 0x3b78, 0x12cc, 0x39db, 0x39be, 0x3b11, 0x3b5a, 0x2fae, 0x3696, +0x3b26, 0x3229, 0x31d8, 0x3b61, 0x290e, 0x3b7d, 0x3bf3, 0x38cc, 0x3a78, 0x35f8, 0x3b7d, 0x3883, 0x3b43, 0x3571, 0x3991, 0x3bc3, 0x3095, 0x350f, 0x39bf, 0x3823, 0x370c, 0x2aa8, 0x3473, 0x33da, 0x38c7, 0x3ab7, 0x3b3d, 0x20f4, 0x3b12, 0x3997, 0x3bfe, 0x3479, 0x3a5f, 0x3550, 0x3af7, 0x34f2, 0x382f, 0x3109, 0x3287, 0x3a6f, 0x3b41, 0x3919, 0x2a88, 0x3b07, 0x3097, 0x398d, 0x35a7, 0x3921, 0x332f, 0x3b65, 0x39c2, 0x3aea, 0x3a54, 0x3996, 0x38c1, 0x396c, 0x3a06, 0x3831, 0x33a9, 0x3457, 0x3a8f, 0x3b43, 0x310d, 0x38e9, 0x36b8, 0x392c, 0x36b7, 0x323f, 0x2e02, 0x3b91, 0x36ef, 0x356b, 0x35e9, 0x339f, 0x39ce, 0x3ba8, 0x31bf, 0x2d8d, 0x3b09, 0x2dd7, 0x3960, 0x3b44, 0x37df, 0x3814, 0x3783, 0x39e7, 0x3716, 0x397f, 0x3429, 0x35ef, 0x3a37, 0x3743, 0x342a, 0x33cf, 0x184a, 0x3829, +0x384e, 0x3ade, 0x35c2, 0x36b9, 0x3429, 0x3abf, 0x3ac6, 0x3a36, 0x2108, 0x38ef, 0x37ff, 0x39fe, 0x3815, 0x3935, 0x3ab5, 0x351d, 0x3add, 0x3b57, 0x37ad, 0x2cc3, 0x3ace, 0x3ac4, 0x37ac, 0x3904, 0x3951, 0x32e7, 0x3337, 0x270b, 0x3a71, 0x3b9c, 0x3808, 0x3033, 0x34be, 0x3742, 0x3a39, 0x27f7, 0x26a2, 0x3b34, 0x35e5, 0x3a0f, 0x3939, 0x365f, 0x3853, 0x3b36, 0x364e, 0x3334, 0x1c8a, 0x330f, 0x3b6a, 0x3a34, 0x37fc, 0x353d, 0x3922, 0x387e, 0x390d, 0x3950, 0x37fc, 0x3946, 0x3afd, 0x342b, 0x2a9d, 0x3b85, 0x32b2, 0x3afc, 0x39a0, 0x3a38, 0x3182, 0x3aac, 0x3840, 0x3b40, 0x3703, 0x2f71, 0x3992, 0x3a53, 0x3a8a, 0x370c, 0x3101, 0x3826, 0x3b5b, 0x39c0, 0x3a46, 0x37d7, 0x3751, 0x2ab9, 0x342b, 0x39e0, 0x36fc, 0x3a8a, 0x1fb5, 0x355b, 0x38dc, 0x3b4d, 0x3be0, 0x3793, 0x307f, 0x3bae, +0x33ae, 0x39cc, 0x3a09, 0x3b3a, 0x34bf, 0x3b1c, 0x35cf, 0x3aa3, 0x3504, 0x381b, 0x3a9d, 0x3703, 0x3bce, 0x3b36, 0x35ea, 0x3503, 0x3687, 0x2661, 0x3bff, 0x2d04, 0x3bee, 0x3841, 0x3074, 0x309f, 0x35a3, 0x34ca, 0x36d5, 0x3640, 0x37e6, 0x37c9, 0x3a6d, 0x34fd, 0x3918, 0x3aa0, 0x3762, 0x34e0, 0x3527, 0x3780, 0x341d, 0x385a, 0x3af7, 0x3bf7, 0x3926, 0x3617, 0x3615, 0x2a99, 0x3649, 0x3a98, 0x3613, 0x2e24, 0x3809, 0x35b6, 0x3a63, 0x3bdd, 0x3825, 0x38fb, 0x2ed9, 0x39a5, 0x2d38, 0x364c, 0x3a63, 0x397c, 0x35e5, 0x3ad5, 0x31a7, 0x3979, 0x2873, 0x2e5c, 0x3abb, 0x39b6, 0x3b74, 0x2ce6, 0x35ab, 0x3920, 0x2fee, 0x308b, 0x229f, 0x3547, 0x36d3, 0x359c, 0x3814, 0x34de, 0x3a39, 0x2ed6, 0x3bd6, 0x353d, 0x3afb, 0x3b17, 0x3733, 0x16f0, 0x3011, 0x38b2, 0x387a, 0x3984, 0x3747, 0x394d, +0x34f7, 0x3755, 0x3960, 0x355f, 0x3765, 0x38fa, 0x3be8, 0x33ca, 0x351f, 0x31eb, 0x397e, 0x1412, 0x3022, 0x3467, 0x39d7, 0x3a60, 0x2c85, 0x3241, 0x3a90, 0x3926, 0x397a, 0x38f1, 0x3996, 0x3a51, 0x3ad5, 0x2e68, 0x38a9, 0x3663, 0x399f, 0x35f3, 0x3b4c, 0x34aa, 0x3b6b, 0x32af, 0x3aa8, 0x3a22, 0x38b6, 0x34cd, 0x2c81, 0x3945, 0x37a9, 0x3a20, 0x2523, 0x3ad8, 0x29ca, 0x3b63, 0x3a69, 0x37dc, 0x323b, 0x3898, 0x38e3, 0x3637, 0x394a, 0x2d82, 0x392c, 0x3993, 0x35b8, 0x3810, 0x399e, 0x3672, 0x39fa, 0x36c2, 0x351f, 0x3797, 0x244f, 0x3b02, 0x3304, 0x385f, 0x3312, 0x394e, 0x396b, 0x28bf, 0x3885, 0x39e2, 0x347e, 0x33ad, 0x3526, 0x3a5f, 0x3b90, 0x3b1e, 0x2572, 0x3a9c, 0x30ec, 0x393e, 0x3a9b, 0x357a, 0x394b, 0x3449, 0x3545, 0x2fee, 0x3702, 0x362b, 0x3bd4, 0x27d9, 0x2d6d, 0x3080, +0x30fb, 0x382e, 0x387a, 0x3b71, 0x355f, 0x39cc, 0x33c0, 0x2f57, 0x3b2f, 0x3b79, 0x3aea, 0x3b17, 0x3b46, 0x3844, 0x380d, 0x30a7, 0x2348, 0x381f, 0x2c21, 0x3a3b, 0x2cf6, 0x3523, 0x3835, 0x1b53, 0x3ad3, 0x3b18, 0x372a, 0x39a5, 0x37e6, 0x39bd, 0x2cfd, 0x395d, 0x2ea2, 0x39cb, 0x3bdc, 0x36db, 0x3b48, 0x3acc, 0x3439, 0x34c8, 0x3361, 0x3b5b, 0x324a, 0x35ec, 0x2c87, 0x395e, 0x35fe, 0x37a4, 0x361f, 0x315f, 0x305e, 0x35f7, 0x3541, 0x3729, 0x37ed, 0x31b7, 0x3a9a, 0x34ee, 0x376c, 0x3a7a, 0x389e, 0x30b3, 0x328e, 0x3811, 0x36f5, 0x35d9, 0x37f9, 0x3bcf, 0x3a0d, 0x3658, 0x3ba9, 0x38df, 0x3997, 0x3a6d, 0x375e, 0x32f7, 0x382e, 0x3b0d, 0x38ed, 0x346a, 0x3b8a, 0x2da9, 0x359c, 0x3574, 0x3840, 0x3333, 0x3a5b, 0x358d, 0x39f3, 0x385d, 0x2959, 0x3908, 0x3b84, 0x3a40, 0x2f0d, 0x35e0, +0x2066, 0x3940, 0x3b3b, 0x320f, 0x37cc, 0x377a, 0x3b22, 0x36da, 0x3aa0, 0x3476, 0x34b4, 0x3941, 0x36f4, 0x391e, 0x3a8d, 0x32ca, 0x3853, 0x3af6, 0x34d2, 0x36a6, 0x33f1, 0x39a0, 0x3790, 0x3440, 0x390f, 0x3a83, 0x399d, 0x367d, 0x2b8e, 0x3575, 0x3a1b, 0x3a7c, 0x3a6c, 0x2eb2, 0x3a27, 0x369b, 0x3a45, 0x38a4, 0x346f, 0x3a8c, 0x307a, 0x36d0, 0x39be, 0x39ae, 0x34ee, 0x2ae7, 0x3559, 0x3858, 0x3705, 0x38eb, 0x39fa, 0x3565, 0x3285, 0x392a, 0x394a, 0x300a, 0x39f6, 0x2e3e, 0x33dc, 0x39c7, 0x295d, 0x3b80, 0x3888, 0x3760, 0x3bfb, 0x396f, 0x3729, 0x386d, 0x39bb, 0x2d93, 0x387a, 0x3b12, 0x3b2e, 0x3bdc, 0x33ec, 0x383d, 0x38d0, 0x3373, 0x3bb0, 0x3987, 0x3b2b, 0x3097, 0x3884, 0x3b20, 0x39bf, 0x3360, 0x2b53, 0x370a, 0x2f02, 0x38ab, 0x24ee, 0x3947, 0x3927, 0x29d7, 0x3b8d, 0x3b8b, +0x3a58, 0x292b, 0x3604, 0x398f, 0x321b, 0x341f, 0x3909, 0x3901, 0x3b49, 0x32ee, 0x3940, 0x3b77, 0x31f0, 0x344e, 0x380c, 0x36b1, 0x3a4e, 0x3638, 0x3922, 0x3864, 0x393b, 0x3903, 0x302f, 0x2ff2, 0x30b7, 0x3997, 0x385b, 0x3bbf, 0x3b39, 0x38de, 0x3a69, 0x3b51, 0x3aed, 0x387b, 0x269d, 0x39c7, 0x3a99, 0x3beb, 0x3672, 0x33ee, 0x200e, 0x3834, 0x34f7, 0x3971, 0x355a, 0x31fd, 0x2531, 0x385f, 0x3bf2, 0x2686, 0x364a, 0x358a, 0x2e99, 0x2f89, 0x3809, 0x3924, 0x39ee, 0x3990, 0x3987, 0x3972, 0x3813, 0x3840, 0x34dd, 0x374a, 0x3250, 0x2f4c, 0x35d9, 0x2991, 0x3b3f, 0x362e, 0x3455, 0x2abb, 0x3a2d, 0x3b57, 0x3567, 0x2cc0, 0x2d0d, 0x3be3, 0x2f3e, 0x3a9f, 0x3253, 0x34e8, 0x3712, 0x334e, 0x3ab9, 0x3bae, 0x3a1d, 0x3a5c, 0x3b96, 0x3adf, 0x3088, 0x3a8e, 0x35f3, 0x3795, 0x35d1, 0x3bb4, +0x3862, 0x3976, 0x3b9a, 0x3291, 0x3b5c, 0x3540, 0x2d00, 0x3702, 0x3519, 0x39dd, 0x3bff, 0x3560, 0x3642, 0x392c, 0x3a6f, 0x32ff, 0x32f2, 0x3836, 0x2d5f, 0x368d, 0x383b, 0x3abb, 0x2ec9, 0x3ada, 0x391a, 0x3811, 0x35d9, 0x3b90, 0x3aa3, 0x3149, 0x3b10, 0x3912, 0x3391, 0x318b, 0x22ed, 0x3a32, 0x3819, 0x39c9, 0x3865, 0x332e, 0x399b, 0x3aaa, 0x3b3e, 0x37b6, 0x35db, 0x3286, 0x3765, 0x2afe, 0x3b7a, 0x32b2, 0x38c9, 0x37d0, 0x3a6d, 0x3a3a, 0x3a9c, 0x364d, 0x3915, 0x36d5, 0x24fb, 0x35ed, 0x3abd, 0x3200, 0x3ae4, 0x3a0f, 0x3ac2, 0x33be, 0x3812, 0x3bae, 0x3969, 0x3237, 0x3bb0, 0x3681, 0x35c9, 0x37da, 0x2f15, 0x3362, 0x3b5c, 0x3a74, 0x315a, 0x3b44, 0x2f83, 0x3971, 0x3bfd, 0x3ab3, 0x35ae, 0x3a5a, 0x303d, 0x2a1d, 0x3a0c, 0x3bbe, 0x3365, 0x33df, 0x3521, 0x3bce, 0x3880, 0x3842, +0x3a15, 0x3835, 0x2ac7, 0x3640, 0x3864, 0x309d, 0x3934, 0x364d, 0x30f9, 0x3954, 0x34c0, 0x39a2, 0x36c1, 0x3a64, 0x2f3d, 0x338e, 0x3993, 0x34c0, 0x2c7e, 0x30a8, 0x3696, 0x2d67, 0x2017, 0x3757, 0x2ebc, 0x2c37, 0x3422, 0x36a8, 0x3a49, 0x364d, 0x3b0a, 0x3adc, 0x34f1, 0x3a15, 0x389b, 0x389b, 0x3557, 0x3542, 0x3a12, 0x38b4, 0x3a49, 0x38fd, 0x3a25, 0x3516, 0x3bc9, 0x3811, 0x1b72, 0x391e, 0x2ecb, 0x3a69, 0x3818, 0x342b, 0x3b44, 0x3912, 0x2ae6, 0x3bb1, 0x355e, 0x3182, 0x3793, 0x385b, 0x2983, 0x394d, 0x3021, 0x307c, 0x3419, 0x364f, 0x395f, 0x3395, 0x365d, 0x3a90, 0x3b4d, 0x3660, 0x35ad, 0x3b87, 0x3b40, 0x3919, 0x3800, 0x385c, 0x187b, 0x3b1e, 0x38c8, 0x38bf, 0x3844, 0x390b, 0x3672, 0x37df, 0x3a46, 0x3013, 0x30fd, 0x3a86, 0x36aa, 0x3a60, 0x39a7, 0x39b7, 0x37d2, 0x33e7, +0x2cde, 0x3a8d, 0x33d3, 0x2c74, 0x34c5, 0x2b02, 0x3ab0, 0x375d, 0x3a8f, 0x39c7, 0x340c, 0x3bc7, 0x39ae, 0x2ea6, 0x3b0b, 0x394b, 0x3823, 0x3504, 0x383a, 0x38f6, 0x382d, 0x3bda, 0x3a1b, 0x38c9, 0x35e2, 0x39f1, 0x38b9, 0x3281, 0x3bb3, 0x3156, 0x2c35, 0x3b28, 0x2cfe, 0x392a, 0x3908, 0x3a72, 0x2d0e, 0x3b20, 0x369d, 0x3bae, 0x2f9f, 0x3aac, 0x331f, 0x3ab7, 0x3999, 0x3980, 0x3b17, 0x39d3, 0x3609, 0x231d, 0x386c, 0x39b7, 0x2a32, 0x37b0, 0x350d, 0x2554, 0x33ee, 0x2c9a, 0x319a, 0x37d6, 0x347e, 0x3a54, 0x3903, 0x3aaa, 0x31fc, 0x33c9, 0x3988, 0x3ac7, 0x31b5, 0x354c, 0x3ba7, 0x342e, 0x3898, 0x3907, 0x3bc4, 0x36b6, 0x36fc, 0x3896, 0x3832, 0x33d8, 0x3af7, 0x38df, 0x3b8b, 0x2dc9, 0x29a0, 0x3b24, 0x34e6, 0x2d49, 0x34c2, 0x388e, 0x36cb, 0x2eff, 0x34fb, 0x3b91, 0x3be3, 0x39ed, +0x38fb, 0x3675, 0x36d9, 0x385b, 0x36ce, 0x3755, 0x354b, 0x3014, 0x3670, 0x3be2, 0x3af2, 0x3b6e, 0x345f, 0x2f8d, 0x3a55, 0x3919, 0x3ad3, 0x3388, 0x368a, 0x3bbf, 0x2b8e, 0x28fd, 0x2e73, 0x3baa, 0x3326, 0x3625, 0x351e, 0x35eb, 0x305c, 0x3bc5, 0x345b, 0x3473, 0x3555, 0x28bb, 0x357a, 0x39c2, 0x3871, 0x3232, 0x2c3a, 0x3983, 0x340a, 0x3af8, 0x3932, 0x3354, 0x3a39, 0x36b8, 0x367a, 0x29ce, 0x3bf0, 0x290d, 0x339f, 0x3afb, 0x340d, 0x3128, 0x38ac, 0x2b34, 0x346f, 0x3356, 0x3bb9, 0x2967, 0x355a, 0x37cd, 0x34f4, 0x3a66, 0x36b6, 0x2968, 0x3bf7, 0x3a0d, 0x361c, 0x3898, 0x3859, 0x39fe, 0x3bdb, 0x38aa, 0x3b92, 0x2fcc, 0x38b1, 0x3713, 0x3be1, 0x3826, 0x3b00, 0x32c3, 0x30a1, 0x38d7, 0x3bf3, 0x3b42, 0x38af, 0x304b, 0x3279, 0x37c5, 0x2072, 0x346c, 0x3857, 0x3597, 0x3624, 0x39d7, +0x3042, 0x392a, 0x3120, 0x20d7, 0x3b8c, 0x3a8f, 0x383a, 0x3a52, 0x3bbd, 0x31ad, 0x3781, 0x3359, 0x36cb, 0x33f1, 0x385b, 0x3225, 0x38d5, 0x3019, 0x3a17, 0x34d3, 0x3a34, 0x39ba, 0x3a17, 0x31e8, 0x3b53, 0x3b9c, 0x3b54, 0x33b6, 0x3488, 0x367a, 0x3a2c, 0x3ac7, 0x3b0a, 0x399a, 0x3891, 0x3a51, 0x3a4a, 0x380b, 0x391c, 0x3805, 0x381d, 0x3b2a, 0x2a0d, 0x3acc, 0x3b55, 0x3958, 0x3a2b, 0x35cd, 0x340e, 0x36e1, 0x3a09, 0x2569, 0x2c5f, 0x376c, 0x3431, 0x3ad3, 0x31fc, 0x331e, 0x396b, 0x2ebd, 0x380f, 0x3bce, 0x3a74, 0x32de, 0x30ec, 0x3300, 0x3aba, 0x34c3, 0x3abd, 0x30c6, 0x39af, 0x3a3d, 0x3ad9, 0x3097, 0x2af9, 0x38a6, 0x3071, 0x25c5, 0x34ea, 0x2ff3, 0x355e, 0x3b66, 0x1edc, 0x3a1f, 0x32c7, 0x381c, 0x3837, 0x3bc1, 0x3033, 0x3bcb, 0x3a53, 0x3ab7, 0x38be, 0x2a81, 0x36ad, 0x301f, +0x3931, 0x3ba1, 0x34ac, 0x383d, 0x3636, 0x35b9, 0x38f2, 0x2c53, 0x32a9, 0x3b31, 0x3181, 0x383c, 0x395b, 0x30ef, 0x3aa7, 0x30ce, 0x32ff, 0x328b, 0x3329, 0x2c12, 0x394e, 0x2c60, 0x35de, 0x3938, 0x2c18, 0x37be, 0x392e, 0x3438, 0x3650, 0x34c7, 0x392c, 0x39aa, 0x2e72, 0x3ab6, 0x2bc9, 0x3bfa, 0x36f2, 0x2830, 0x2ad4, 0x3b3f, 0x3ae7, 0x34c7, 0x3064, 0x35ef, 0x3956, 0x39e9, 0x31eb, 0x2ff8, 0x36f3, 0x38de, 0x34b8, 0x3aa8, 0x1c30, 0x3b4f, 0x38d9, 0x3bba, 0x39b7, 0x3b4c, 0x2ee9, 0x3837, 0x3835, 0x36c6, 0x3928, 0x2e72, 0x37d2, 0x3642, 0x31cb, 0x35d6, 0x3408, 0x3404, 0x39d4, 0x3877, 0x38a5, 0x31ae, 0x2c75, 0x341a, 0x3af5, 0x3abc, 0x330b, 0x387d, 0x3b46, 0x369f, 0x2bf0, 0x3bdc, 0x36fc, 0x362a, 0x374f, 0x3bc3, 0x3ac5, 0x38c1, 0x3965, 0x380f, 0x3675, 0x3bba, 0x3a38, 0x39ca +}; \ No newline at end of file diff --git a/redmule/inc/x_2D.h b/redmule/inc/x_2D.h new file mode 100644 index 0000000..ebe42af --- /dev/null +++ b/redmule/inc/x_2D.h @@ -0,0 +1,99 @@ + /* Header file generated by RedMulE Golden Model */ +uint16_t x_inp_2D [96][96] = { +0x3122, 0x369c, 0x39bd, 0x3b58, 0x3be0, 0x3a5a, 0x3416, 0x386c, 0x3a11, 0x350e, 0x38ab, 0x35ad, 0x35d9, 0x390f, 0x3565, 0x36b0, 0x3aad, 0x3a64, 0x3797, 0x368d, 0x35a6, 0x396f, 0x2a5e, 0x3a29, 0x38a7, 0x33a8, 0x3409, 0x3621, 0x3b02, 0x34a7, 0x3a94, 0x3819, 0x3695, 0x380a, 0x3acd, 0x396a, 0x395a, 0x3663, 0x3bbe, 0x3306, 0x3a4d, 0x3b0d, 0x3bc3, 0x30fa, 0x32ab, 0x31fd, 0x3bc9, 0x38ce, 0x3180, 0x3980, 0x34ec, 0x3a84, 0x3bc9, 0x3719, 0x3a76, 0x38ab, 0x3707, 0x3904, 0x33d9, 0x34d6, 0x3053, 0x3bd4, 0x2f03, 0x1dbf, 0x2e5f, 0x36fa, 0x191d, 0x3187, 0x223f, 0x384b, 0x36dc, 0x3549, 0x343f, 0x36d8, 0x36de, 0x31ff, 0x174e, 0x30d3, 0x3452, 0x3258, 0x30b1, 0x3127, 0x3840, 0x3991, 0x3b1b, 0x3a7c, 0x36ec, 0x2304, 0x3946, 0x3876, 0x3a5d, 0x3a76, 0x2f78, 0x3b01, 0x3934, 0x3bc4, +0x2b27, 0x3669, 0x38ce, 0x2cde, 0x38e1, 0x3abd, 0x2c4f, 0x3971, 0x3964, 0x3a9d, 0x38b9, 0x390f, 0x3475, 0x3b16, 0x38f0, 0x397e, 0x3996, 0x3223, 0x36c6, 0x3bfd, 0x3161, 0x3a70, 0x3961, 0x38e1, 0x2b2b, 0x32c1, 0x3683, 0x36bb, 0x381a, 0x3b92, 0x356a, 0x38c4, 0x38df, 0x3a7b, 0x3b3a, 0x35a2, 0x27d3, 0x3af2, 0x3489, 0x38c7, 0x3985, 0x3a03, 0x30f6, 0x3a92, 0x38d5, 0x39a0, 0x3749, 0x3784, 0x1c70, 0x356b, 0x2d5f, 0x39db, 0x37ab, 0x39fb, 0x3b2c, 0x2ef8, 0x3336, 0x3afd, 0x38f0, 0x358f, 0x3ac4, 0x293d, 0x3328, 0x3741, 0x3993, 0x3463, 0x3918, 0x332e, 0x356d, 0x36ee, 0x34e7, 0x3757, 0x34b5, 0x3b7c, 0x3a63, 0x3b6c, 0x34a6, 0x34f3, 0x346a, 0x2bcf, 0x363d, 0x3081, 0x3abc, 0x35a5, 0x36ff, 0x2cb7, 0x2a53, 0x37a3, 0x3a98, 0x3b92, 0x3a9a, 0x38ff, 0x39dc, 0x3289, 0x3357, 0x39f6, +0x3b74, 0x3a5e, 0x3ba9, 0x365e, 0x3aa5, 0x3b42, 0x39b5, 0x2fb7, 0x39e5, 0x263d, 0x3405, 0x259f, 0x381d, 0x38dc, 0x3152, 0x37f5, 0x38b6, 0x3bfd, 0x3a4e, 0x3804, 0x370f, 0x382f, 0x395d, 0x38a5, 0x2edd, 0x3ac9, 0x34dc, 0x2a2a, 0x2aba, 0x35d0, 0x36b4, 0x3ae1, 0x3b35, 0x3a49, 0x3b5e, 0x38e8, 0x30ed, 0x3ab4, 0x3a92, 0x3bd9, 0x3437, 0x36d0, 0x3aad, 0x36d6, 0x35ed, 0x3635, 0x3bf7, 0x345a, 0x300a, 0x31d2, 0x340c, 0x38fd, 0x39ad, 0x39ac, 0x38bf, 0x38f6, 0x2f7e, 0x3685, 0x3be9, 0x3af0, 0x35d1, 0x35fb, 0x35ad, 0x3a6d, 0x3a78, 0x3813, 0x36a8, 0x3a6e, 0x39fc, 0x3918, 0x2179, 0x38a2, 0x37f9, 0x38dc, 0x24a9, 0x3647, 0x386a, 0x2890, 0x2d0f, 0x31e3, 0x394a, 0x36b2, 0x3071, 0x292d, 0x3568, 0x3adb, 0x394a, 0x2ff6, 0x3142, 0x322b, 0x2696, 0x3954, 0x229d, 0x383a, 0x2f3d, 0x3b4e, +0x3b1c, 0xd7b, 0x379c, 0x3421, 0x39a0, 0x3557, 0x2e38, 0x3b3a, 0x270e, 0x250b, 0x3b0a, 0x3aa1, 0x2d72, 0x351c, 0x3a11, 0x382b, 0x37f8, 0x3a82, 0x39e8, 0x3a1d, 0x3a45, 0x2fb7, 0x341b, 0x39ea, 0x3646, 0x3b27, 0x3abd, 0x350b, 0x3a3a, 0x3557, 0x37db, 0x315b, 0x305a, 0x3bd7, 0x3b33, 0x32b9, 0x3503, 0x2749, 0x3532, 0x37f2, 0x348e, 0x3422, 0x32a4, 0x37bf, 0x3b7b, 0x378f, 0x3476, 0x3a1a, 0x39a2, 0x35d9, 0x3b4d, 0x39f0, 0x34a7, 0x36c6, 0x3ab4, 0x39c2, 0x385b, 0x3add, 0x34cf, 0x3604, 0x39e1, 0x3872, 0x3751, 0x32db, 0x38df, 0x3602, 0x3509, 0x37d5, 0x342e, 0x39ef, 0x2f59, 0x2505, 0x314d, 0x35ff, 0x3bae, 0x3b38, 0x32af, 0x3b9b, 0x3b03, 0x2c5e, 0x3940, 0x38ef, 0x324c, 0x399a, 0x3a14, 0x39c6, 0x3a33, 0x382a, 0x3b36, 0x3ae7, 0x3b71, 0x3020, 0x3a14, 0x33d2, 0x3b1d, 0x2660, +0x2ace, 0x3a36, 0x39d6, 0x398d, 0x3ae2, 0x39dc, 0x3bb3, 0x26d5, 0x3a4a, 0x36ad, 0x3b31, 0x2b7e, 0x3baf, 0x3314, 0x2e0b, 0x31c1, 0x25a9, 0x378c, 0x3b45, 0x3ae9, 0x3586, 0x39fe, 0x3b5b, 0x3b18, 0x3a1b, 0x399b, 0x3aad, 0x30e1, 0x3b3b, 0x2d9f, 0x2614, 0x354e, 0x3806, 0x393e, 0x3564, 0x2346, 0x3b5e, 0x382f, 0x31c9, 0x3be1, 0x2e41, 0x394e, 0x346a, 0x3976, 0x38e7, 0x3503, 0x387f, 0x3025, 0x3232, 0x283b, 0x37d2, 0x32aa, 0x36e0, 0x3b92, 0x3a41, 0x2f32, 0x34cc, 0x3a30, 0x3a69, 0x3671, 0x3894, 0x3b3d, 0x3468, 0x3836, 0x2303, 0x2e8f, 0x3186, 0x37d1, 0x371f, 0x381a, 0x3af8, 0x2ca8, 0x31ba, 0x3a59, 0x3971, 0x3bdb, 0x3add, 0x35af, 0x3b81, 0x2f19, 0x3963, 0x3b58, 0x3aa4, 0x3b98, 0x3808, 0x33b7, 0x3833, 0x3506, 0x3467, 0x2f27, 0x35be, 0x346e, 0x39c9, 0x3677, 0x31b5, 0x3bf4, +0x3506, 0x30a7, 0x370d, 0x367e, 0x3264, 0x2fb7, 0x30d5, 0x3814, 0x3152, 0x38aa, 0x3a77, 0x2dde, 0x3077, 0x38df, 0x3744, 0x2af8, 0x37f8, 0x3aa2, 0x39e3, 0x3ada, 0x3931, 0x3bc0, 0x34b2, 0x35de, 0x33c8, 0x34d4, 0x395a, 0x36a1, 0x3a3a, 0x33e3, 0x38d7, 0x3476, 0x3b6f, 0x3506, 0x3448, 0x3b2c, 0x3766, 0x382b, 0x2efd, 0x33ec, 0x242c, 0x3976, 0x3027, 0x2c5f, 0x37df, 0x3b1a, 0x3641, 0x352d, 0x39ab, 0x3b49, 0x3a91, 0x35ba, 0x382f, 0x2b4c, 0x366f, 0x2f0b, 0x33e3, 0x2ccd, 0x3530, 0x33d0, 0x264e, 0x39b4, 0x3968, 0x29f5, 0x3a2c, 0x299a, 0x39c4, 0x380d, 0x3be2, 0x34b2, 0x3879, 0x3532, 0x34ac, 0x3685, 0x3b5e, 0x3426, 0x3b4d, 0x34ec, 0x32e0, 0x3767, 0x39d7, 0x3119, 0x39db, 0x36e1, 0x39ec, 0x388d, 0x3731, 0x314a, 0x39c5, 0x3325, 0x3284, 0x38c5, 0x2cf4, 0x2180, 0x3614, 0x382e, +0x2afc, 0x3562, 0x365c, 0x32dd, 0x3a1d, 0x39c0, 0x3510, 0x3ae7, 0x22b7, 0x3538, 0x3604, 0x3bb0, 0x3a8e, 0x38ca, 0x379d, 0x36f1, 0x3947, 0x317f, 0x2bfa, 0x3bc0, 0x3ad4, 0x3a19, 0x308b, 0x390b, 0x353d, 0x3599, 0x344e, 0x3159, 0x39fc, 0x362e, 0x3bf5, 0x3246, 0x38e9, 0x3551, 0x3981, 0x3776, 0x3964, 0x3966, 0x335b, 0x3361, 0x3abc, 0x39d1, 0x3b96, 0x3a40, 0x3bfc, 0x30f6, 0x2fc2, 0x350a, 0x3857, 0x3175, 0x3929, 0x383e, 0x38c1, 0x3b21, 0x3025, 0x3a20, 0x3b6f, 0x3600, 0x3b06, 0x30d2, 0x30c3, 0x3550, 0x3025, 0x33c7, 0x3724, 0x3819, 0x38e3, 0x33fe, 0x3ad1, 0x2f0b, 0x38fe, 0x3458, 0x3bca, 0x391e, 0x345a, 0x36da, 0x38d7, 0x2dbd, 0x2c4e, 0x38b4, 0x35ea, 0x2970, 0x2ec0, 0x2519, 0x3552, 0x37cd, 0x3893, 0x3150, 0x38d6, 0x360d, 0x3986, 0x38e3, 0x3847, 0x36dc, 0x3a12, 0x3a3b, +0x34ea, 0x3a8b, 0x31db, 0x3a10, 0x34ca, 0x3b7e, 0x324e, 0x393b, 0x3a38, 0x3791, 0x2727, 0x31a9, 0x3beb, 0x3a43, 0x3ad3, 0x2c46, 0x3bc4, 0x38a9, 0x3918, 0x3b1c, 0x381d, 0x32aa, 0x367b, 0x3a80, 0x3a59, 0x37f6, 0x37ac, 0x36aa, 0x3072, 0x3960, 0x388c, 0x3a91, 0x3908, 0x34ab, 0x2f14, 0x3b72, 0x38f9, 0x359f, 0x38e2, 0x2938, 0x39ba, 0x2aa7, 0x3276, 0x3a66, 0x394d, 0x2de4, 0x39b0, 0x3835, 0x3b49, 0x2d77, 0x3ba2, 0x348b, 0x39f0, 0x381d, 0x382c, 0x384d, 0x3798, 0x3a0f, 0x38c3, 0x2ecb, 0x3472, 0x308f, 0x350c, 0x3014, 0x38e7, 0x2aff, 0x30ec, 0x3928, 0x36f5, 0x3909, 0x3b46, 0x2a93, 0x37cb, 0x3bb6, 0x2fbc, 0x3a3a, 0x3a47, 0x343e, 0x3bf1, 0x3b8f, 0x3bcb, 0x376d, 0x3669, 0x3892, 0x35c2, 0x3512, 0x370f, 0x35dc, 0x3923, 0x39e8, 0x3880, 0x288b, 0x36e7, 0x359e, 0x346f, 0x3b64, +0x3b1c, 0x340e, 0x25ab, 0x3b4e, 0x3897, 0x3bdb, 0x2da4, 0x389c, 0x36fd, 0x3a3c, 0x2f2d, 0x38fb, 0x395c, 0x2ea7, 0x3949, 0x368b, 0x35a3, 0x377c, 0x32de, 0x35b1, 0x3529, 0x301d, 0x3771, 0x393f, 0x3993, 0x3ae0, 0x3bda, 0x375b, 0x31ff, 0x3989, 0x3ad0, 0x3bb6, 0x3814, 0x3999, 0x3854, 0x39e7, 0x37fa, 0x3afc, 0x185f, 0x2e32, 0x3697, 0x3942, 0x3aa0, 0x3b75, 0x3ad3, 0x3aa8, 0x39b8, 0x38c2, 0x38fb, 0x39a4, 0x3b8f, 0x3b2e, 0x334d, 0x3a0c, 0x361b, 0x3a46, 0x3337, 0x388d, 0x321b, 0x38bc, 0x3005, 0x35a4, 0x3bf5, 0x3bcf, 0x3a44, 0x3ac7, 0x3a7d, 0x3b2c, 0x39c5, 0x2001, 0x3594, 0x3a29, 0x3131, 0x3ab9, 0x39d9, 0x38c4, 0x3666, 0x37a8, 0x3a75, 0x3a10, 0x3441, 0x3b7e, 0x23f5, 0x3ab2, 0x306f, 0x3bc0, 0x3989, 0x3361, 0x36ea, 0x2eb9, 0x360f, 0x351c, 0x2a16, 0x3bfe, 0x372b, 0x3b97, +0x3bbf, 0x2cf5, 0x3922, 0x316e, 0x37ad, 0x3a7f, 0x3863, 0x3a4c, 0x37a4, 0x35c1, 0x3b77, 0x3549, 0x3a83, 0x37c4, 0x3b84, 0x38c6, 0x3a7f, 0x2f24, 0x2fc0, 0x3475, 0x3a6a, 0x3bc4, 0x3a21, 0x3b96, 0x365c, 0x38b7, 0x31ce, 0x3bcc, 0x3b80, 0x3a31, 0x3523, 0x2d9d, 0x359e, 0x3afe, 0x371d, 0x2d94, 0x3a2a, 0x3ace, 0x3bed, 0x3726, 0x2fa1, 0x3abe, 0x3624, 0x2be4, 0x2b70, 0x394e, 0x3640, 0x391d, 0x3892, 0x38e2, 0x333c, 0x3080, 0x2ac2, 0x326c, 0x2f8b, 0x38ac, 0x3097, 0x3b80, 0x3ae4, 0x39d4, 0x3676, 0x3969, 0x34c8, 0x3906, 0x2930, 0x3acb, 0x3bb3, 0x3bba, 0x3646, 0x2ba1, 0x30bf, 0x38f2, 0x3bbc, 0x3a3f, 0x34c2, 0x3832, 0x3938, 0x3a79, 0x3546, 0x3bd5, 0x3ae5, 0x329a, 0x342c, 0x2c42, 0x35c1, 0x2616, 0x3ad4, 0x38c6, 0x38b6, 0x3b0d, 0x38dd, 0x2e8d, 0x3891, 0x2f1c, 0x3b9d, 0x3a8f, +0x30e4, 0x2c4f, 0x2fb6, 0x31da, 0x3784, 0x3043, 0x2d5c, 0x3bc0, 0x3998, 0x3b84, 0x387f, 0x3b93, 0x3898, 0x337c, 0x32b4, 0x28c3, 0x334f, 0x389c, 0x3865, 0x360b, 0x3a70, 0x3201, 0x324c, 0x3583, 0x381a, 0x3a58, 0x33e9, 0x3b02, 0x3093, 0x33c0, 0x375c, 0x305d, 0x1f9a, 0x38e4, 0x3bc7, 0x35bb, 0x2d39, 0x3299, 0x3753, 0x3b37, 0x3af5, 0x36d7, 0x3324, 0x3716, 0x3b60, 0x3202, 0x3949, 0x3b79, 0x36c3, 0x3901, 0x39f5, 0x2b55, 0x3996, 0x38e1, 0x3836, 0x3b5a, 0x3790, 0x39f6, 0x3532, 0x37ac, 0x2bc5, 0x3948, 0x3b8f, 0x37b8, 0x3999, 0x3413, 0x3a8f, 0x2b74, 0x2839, 0x3870, 0x369f, 0x38b9, 0x3819, 0x3aef, 0x37f9, 0x368b, 0x3bf4, 0x30a6, 0x2e58, 0x3b6e, 0x3b59, 0x3a5d, 0x2e63, 0x2a40, 0x34b3, 0x377d, 0x3991, 0x3542, 0x3300, 0x396d, 0x3bf4, 0x371b, 0x2c09, 0x3020, 0x3a1e, 0x32c5, +0x3b59, 0x3bb5, 0x3a14, 0x384f, 0x3534, 0x3bb6, 0x3aef, 0x3b51, 0x357e, 0x3760, 0x3395, 0x3046, 0x3977, 0x380e, 0x3b85, 0x39ed, 0x3038, 0x2bdc, 0x3aec, 0x3aa6, 0x3ace, 0x38b5, 0x308b, 0x39e2, 0x3271, 0x3b31, 0x3693, 0x397e, 0x39a9, 0x396f, 0x3021, 0x3b12, 0x350e, 0x38ea, 0x38ef, 0x3aae, 0x37b3, 0x2e83, 0x32f6, 0x3818, 0x3702, 0x332d, 0x3bfc, 0x3b15, 0x3ae6, 0x337f, 0x29f9, 0x3ba8, 0x38b1, 0x381a, 0x3bd6, 0x3a40, 0x3027, 0x3b8b, 0x38b2, 0x35d1, 0x39b7, 0x3adf, 0x2b70, 0x1a44, 0x3470, 0x3b21, 0x3774, 0x3b7a, 0x38b8, 0x304d, 0x3bd6, 0x2a2a, 0x3a95, 0x34bc, 0x2835, 0x3b03, 0x35bd, 0x3bc2, 0x30fe, 0x3a5d, 0x3829, 0x34be, 0x3398, 0x32f7, 0x3b1c, 0x34a5, 0x3511, 0x3802, 0x383e, 0x3176, 0x3241, 0x359f, 0x36f9, 0x380a, 0x310c, 0x3b1f, 0x375d, 0x365a, 0x35d0, 0x3302, +0x3459, 0x35e1, 0x3514, 0x3ba6, 0x381e, 0x30d8, 0x320a, 0x3b8a, 0x39b8, 0x3873, 0x3982, 0x3ae7, 0x3a5b, 0x380d, 0x3bf6, 0x396d, 0x3126, 0x1cf5, 0x37f7, 0x3b43, 0x37a7, 0x3b91, 0x357b, 0x216d, 0x3336, 0x3885, 0x26d5, 0x38f1, 0x369e, 0x3b62, 0x30d5, 0x3a41, 0x31b1, 0x3b8d, 0x3983, 0x2cfb, 0x3857, 0x3239, 0x2ecf, 0x2e22, 0x3889, 0x31a0, 0x3432, 0x3957, 0x2aad, 0x3b93, 0x38e5, 0x3a32, 0x3bf6, 0x2a9e, 0x3a57, 0x34b8, 0x2e9b, 0x3a83, 0x3b86, 0x314e, 0x3738, 0x3954, 0x36bb, 0x3a82, 0x361e, 0x380a, 0x3bc7, 0x39ea, 0x37f9, 0x3a9f, 0x38fa, 0x3916, 0x3b87, 0x389c, 0x375f, 0x30b5, 0x381d, 0x39f9, 0x3969, 0x3b91, 0x31b3, 0x3968, 0x3baf, 0x3395, 0x38a5, 0x3ae2, 0x3b91, 0x3a31, 0x3a75, 0x3667, 0x346f, 0x31b1, 0x3921, 0x38a1, 0x3981, 0x3ab5, 0x34c5, 0x324b, 0x3b5f, 0x3b66, +0x35e0, 0x3b4e, 0x34ef, 0x1c7e, 0x3b6e, 0x3724, 0x3858, 0x381c, 0x3bc1, 0x3475, 0x3a93, 0x38a0, 0x3489, 0x3951, 0x3918, 0x304f, 0x314f, 0x3ad7, 0x382d, 0x38ef, 0x3818, 0x33a3, 0x392d, 0x3079, 0x39b8, 0x3b2f, 0x3ad7, 0x3a4a, 0x383b, 0x295b, 0x380a, 0x3895, 0x3a0a, 0x3b28, 0x36ef, 0x3617, 0x3668, 0x3b95, 0x38e3, 0x3b69, 0x3448, 0x38bc, 0x34b1, 0x34d7, 0x3146, 0x269b, 0x2b3b, 0x371a, 0x3a3e, 0x3a71, 0x3791, 0x3b89, 0x3a76, 0x3bfd, 0x354e, 0x3bc8, 0x3937, 0x302e, 0x38e3, 0x2c2c, 0x20e6, 0x3880, 0x2c5e, 0x2506, 0x38b6, 0x3b42, 0x3be1, 0x3ab4, 0x3a0d, 0x3573, 0x31a6, 0x366c, 0x37c2, 0x34b2, 0x3856, 0x3bd4, 0x3150, 0x2adb, 0x3779, 0x3694, 0x2a1e, 0x3763, 0x39cd, 0x39a5, 0x3470, 0x348e, 0x399f, 0x3326, 0x2d96, 0x363a, 0x3610, 0x38fd, 0x24f0, 0x34bd, 0x32c9, 0x3869, +0x361b, 0x3307, 0x3bfc, 0x36bd, 0x2784, 0x37f1, 0x3a2e, 0x3579, 0x35ab, 0x39c9, 0x39b4, 0x2e9a, 0x3869, 0x24bf, 0x2c45, 0x3a0b, 0x369d, 0x391f, 0x3789, 0x2d9b, 0x37ac, 0x3829, 0x3177, 0x3286, 0x312b, 0x3153, 0x2ff3, 0x375c, 0x2afb, 0x290a, 0x3aaf, 0x3b17, 0x39f6, 0x3a53, 0x3888, 0x3ab6, 0x37e8, 0x3442, 0x3523, 0x3a72, 0x2d0a, 0x3551, 0x3923, 0x3538, 0x3abc, 0x3a29, 0x358a, 0x2ec5, 0x3a32, 0x3371, 0x3438, 0x301a, 0x3877, 0x36f7, 0x39e0, 0x372f, 0x3b39, 0x399c, 0x38b5, 0x3488, 0x392b, 0x312e, 0x3bd2, 0x3b34, 0x35d7, 0x3193, 0x38a5, 0x3a75, 0x3768, 0x3660, 0x3add, 0x38c6, 0x3944, 0x353a, 0x398e, 0x3627, 0x361a, 0x32ca, 0x38dd, 0x3293, 0x37f1, 0x2b97, 0x2465, 0x3a2e, 0x39c5, 0x3bef, 0x3879, 0x3a91, 0x3873, 0x39ae, 0x3994, 0x35aa, 0x3648, 0x376e, 0x371e, 0x3a8c, +0x359b, 0x381d, 0x3506, 0x382e, 0x39b0, 0x2f4c, 0x3022, 0x3af3, 0x3828, 0x3407, 0x3244, 0x306d, 0x3c00, 0x3019, 0x39b3, 0x357e, 0x36bd, 0x3979, 0x369a, 0x2025, 0x3ab5, 0x3509, 0x3969, 0x3b5f, 0x38b3, 0x3a55, 0x3899, 0x3a8d, 0x348a, 0x3010, 0x3b00, 0x374c, 0x37e7, 0x35f2, 0x36bc, 0x31ec, 0x3b49, 0x3960, 0x27a1, 0x3984, 0x3824, 0x3a95, 0x39e4, 0x3901, 0x34a8, 0x354a, 0x3929, 0x38ef, 0x399c, 0x381a, 0x34ea, 0x247b, 0x3113, 0x37ff, 0x3923, 0x3a12, 0x398a, 0x3135, 0x374c, 0x345b, 0x3aae, 0x33ad, 0x3834, 0x3426, 0x32a3, 0x3854, 0x31cd, 0x3a78, 0x32ea, 0x288e, 0x38a9, 0x2d3a, 0x31ce, 0x2ed6, 0x393d, 0x197a, 0x3880, 0x39cd, 0x3884, 0x3af0, 0x312d, 0x3711, 0x32be, 0x3193, 0x323d, 0x3222, 0x28b9, 0x3bcc, 0x3626, 0x3836, 0x36bf, 0x3393, 0x32d3, 0x39f3, 0x3b91, 0x3719, +0x38ac, 0x1036, 0x3759, 0x3547, 0x365e, 0x3a68, 0x37eb, 0x353b, 0x3931, 0x294d, 0x35c8, 0x3aad, 0x387c, 0x3ac5, 0x3a08, 0x3a0d, 0x34b8, 0x3747, 0x3a10, 0x3908, 0x3825, 0x3509, 0x379f, 0x2ebe, 0x3a30, 0x353f, 0x3ab6, 0x35d3, 0x3ae3, 0x39a0, 0x272d, 0x2da5, 0x3a07, 0x323e, 0x3865, 0x3700, 0x2c37, 0x2fb3, 0x36e3, 0x279c, 0x364d, 0x38b9, 0x39b5, 0x35d8, 0x376b, 0x37f2, 0x3421, 0x3a83, 0x3562, 0x2cad, 0x382f, 0x3703, 0x38bf, 0x3afc, 0x3800, 0x3793, 0x3ae7, 0x39f6, 0x2d8f, 0x365d, 0x380f, 0x39cf, 0x3609, 0x2da9, 0x2cc7, 0x361c, 0x3682, 0x2762, 0x3611, 0x3954, 0x21e5, 0x29bd, 0x3b94, 0x32e9, 0x36fc, 0x3b3c, 0x3bec, 0x3bde, 0x35b2, 0x3640, 0x3824, 0x2dba, 0x35da, 0x3853, 0x3b62, 0x3b56, 0x373f, 0x324d, 0x395f, 0x2a6b, 0x3b59, 0x392f, 0x3953, 0x3bbe, 0x3a44, 0x38fc, +0x38aa, 0x3987, 0x24c1, 0x3a51, 0x3b03, 0x3770, 0x381d, 0x3847, 0x394a, 0x35fe, 0x3b59, 0x34d4, 0x380f, 0x3985, 0x2719, 0x3811, 0x3a63, 0x387d, 0x370b, 0x36e2, 0x38f4, 0x3af2, 0x364c, 0x30e7, 0x3816, 0x2afe, 0x339b, 0x380d, 0x304e, 0x3b55, 0x3a4e, 0x2ebb, 0x377a, 0x396d, 0x31bf, 0x3914, 0x372b, 0x38a5, 0x39a9, 0x24f1, 0x39ad, 0x348a, 0x3b26, 0x3ab0, 0x35f3, 0x38ac, 0x34a5, 0x39b2, 0x3a88, 0x364d, 0x36a3, 0x33eb, 0x39f7, 0x3ad7, 0x37c1, 0x3805, 0x357a, 0x3949, 0x28ee, 0x3b2e, 0x3ba7, 0x381c, 0x35bf, 0x323a, 0x39dd, 0x3b40, 0x3908, 0x32c0, 0x3a12, 0x3419, 0x388e, 0x3890, 0x3b59, 0x2ea4, 0x363b, 0x3790, 0x3a00, 0x3b36, 0x2a03, 0x3875, 0x3932, 0x3513, 0x3755, 0x2d73, 0x19b7, 0x352b, 0x309e, 0x2842, 0x38cc, 0x38a0, 0x3423, 0x380e, 0x3b76, 0x39ad, 0x3a11, 0x3a5b, +0x3bd8, 0x3b5c, 0x30ee, 0x3b97, 0x32ee, 0x3a5d, 0x3bfb, 0x3706, 0x2e45, 0x2f4f, 0x3281, 0x39ec, 0x3705, 0x369c, 0x3022, 0x3b27, 0x3a91, 0x3a6d, 0x3438, 0x3461, 0x3846, 0x394f, 0x3772, 0x36f3, 0x34d2, 0x39ee, 0x3578, 0x3959, 0x3282, 0x1b2c, 0x39be, 0x37f0, 0x3909, 0x34aa, 0x3ad6, 0x3ad8, 0x392b, 0x39b5, 0x3391, 0x3aa3, 0x3854, 0x3a72, 0x31bc, 0x23fa, 0x331a, 0x38aa, 0x3a73, 0x2a74, 0x3956, 0x30fd, 0x36bd, 0x312d, 0x38b3, 0x3b26, 0x1e7f, 0x310a, 0x235b, 0x367b, 0x383e, 0x3b57, 0x39b0, 0x3785, 0x2ddc, 0x38de, 0x2c79, 0x386b, 0x3ace, 0x32e5, 0x2c3a, 0x3bc5, 0x3a95, 0x317b, 0x3a54, 0x3ba1, 0x38ff, 0x3b54, 0x39dd, 0x344c, 0x38d0, 0x3984, 0x32d7, 0x35c3, 0x319e, 0x3881, 0x3b80, 0x3923, 0x396f, 0x343d, 0x378e, 0x39e0, 0x3434, 0x38ab, 0x3a55, 0x3905, 0x2a86, 0x3aa6, +0x2c3b, 0x33da, 0x2eb0, 0x3aa4, 0x2871, 0x31a0, 0x35ba, 0x35ed, 0x3a48, 0x3968, 0x35f8, 0x2810, 0x3ab8, 0x395a, 0x369e, 0x3664, 0x3bef, 0x30b9, 0x33f3, 0x366d, 0x3961, 0x377d, 0x3367, 0x3aa2, 0x39de, 0x3bdc, 0x37f3, 0x3618, 0x394c, 0x39c6, 0x3867, 0x34c3, 0x358b, 0x3256, 0x3aac, 0x3623, 0x39ee, 0x3723, 0x3b2a, 0x3a63, 0x3855, 0x38a1, 0x2cb1, 0x3b80, 0x38d6, 0x3045, 0x3bc3, 0x3bdf, 0x378b, 0x3af4, 0x2411, 0x3863, 0x3869, 0x353b, 0x24cc, 0x396a, 0x3a09, 0x3aab, 0x32cd, 0x3970, 0x3178, 0x3a61, 0x2faa, 0x3a82, 0x3487, 0x3af5, 0x36ee, 0x39f0, 0x2a25, 0x3006, 0x3bc0, 0x3151, 0x31b0, 0x36e6, 0x351c, 0x2a55, 0x3846, 0x38b7, 0x37e3, 0x3a7c, 0x293b, 0x327d, 0x3680, 0x390a, 0x3ad5, 0x2e0c, 0x3bb9, 0x1ddf, 0x35fa, 0x3995, 0x380c, 0x3923, 0x3a4f, 0x3ad5, 0x3a80, 0x3113, +0x324a, 0x39c6, 0x353b, 0x2d16, 0x346a, 0x321f, 0x3703, 0x2f6c, 0x2c37, 0x3ada, 0x3be4, 0x3b3e, 0x3aac, 0x3a7f, 0x36d4, 0x3606, 0x3343, 0x393a, 0x382b, 0x3424, 0x38d4, 0x39ed, 0x3013, 0x31ff, 0x3794, 0x3b1c, 0x3919, 0x3bb5, 0x3769, 0x39a1, 0x3be5, 0x3b1a, 0x35fd, 0x3ba8, 0x2af5, 0x38ea, 0x3b19, 0x3814, 0x39ea, 0x3b1e, 0x37c0, 0x34f3, 0x395a, 0x38b6, 0x392a, 0x38a5, 0x3121, 0x2d9b, 0x3799, 0x304c, 0x349d, 0x3153, 0x398a, 0x3a70, 0x3a3d, 0x34bd, 0x39d7, 0x37b6, 0x3817, 0x34a8, 0x3ae2, 0x350d, 0x3ad0, 0x3a0e, 0x3496, 0x3b73, 0x3879, 0x3841, 0x3316, 0x3671, 0x36a4, 0x30bf, 0x3a5e, 0x3594, 0x3bde, 0x3b55, 0x3982, 0x395b, 0x364c, 0x3a6c, 0x32b0, 0x39cd, 0x3900, 0x38dc, 0x390a, 0x2d48, 0x376e, 0x3473, 0x2c65, 0x3934, 0x30cd, 0x3518, 0x3ba4, 0x3423, 0x2f57, 0x3682, +0x3979, 0x37b1, 0x3926, 0x343b, 0x360a, 0x234e, 0x3895, 0x3a09, 0x3810, 0x39d4, 0x3529, 0x3a28, 0x331a, 0x385f, 0x2576, 0x3973, 0x3a0e, 0x33b0, 0x21da, 0x3925, 0x32c8, 0x2fbe, 0x32e7, 0x3b38, 0x3a9a, 0x2ab2, 0x320d, 0x3be9, 0x3720, 0x351d, 0x311b, 0x38f2, 0x3952, 0x3985, 0x3b4b, 0x3634, 0x38af, 0x398b, 0x278f, 0x3460, 0x2f0d, 0x28e1, 0x3412, 0x3978, 0x372c, 0x3a02, 0x2e72, 0x10dc, 0x36c6, 0x3883, 0x3b5a, 0x38e8, 0x3b97, 0x394e, 0x2d07, 0x39b1, 0x3754, 0x2c54, 0x3577, 0x3ab3, 0x3a2a, 0x376a, 0x39b4, 0x396a, 0x3222, 0x396c, 0x39dc, 0x34d5, 0x3903, 0x3841, 0x3912, 0x3bdb, 0x3ba8, 0x364c, 0x39b0, 0x38a9, 0x3acd, 0x3015, 0x368d, 0x3b46, 0x351a, 0x38e2, 0x36f2, 0x37c7, 0x3bdb, 0x3b60, 0x3ba0, 0x3bc3, 0x363f, 0x28c1, 0x2add, 0x3aaa, 0x397b, 0x390f, 0x2f8f, 0x3836, +0x380f, 0x35e9, 0x35ee, 0x3386, 0x388f, 0x3bca, 0x3782, 0x37f2, 0x308e, 0x3a28, 0x3738, 0x31f6, 0x36a4, 0x39eb, 0x2b1f, 0x3ba6, 0x3322, 0x3ad6, 0x386f, 0x3b19, 0x3aa5, 0x2dd8, 0x3a6a, 0x380b, 0x39e3, 0x3225, 0x3bb2, 0x39e9, 0x30e5, 0x39df, 0x3ae8, 0x3075, 0x3025, 0x2f80, 0x30c1, 0x3854, 0x3914, 0x24e1, 0x3b4c, 0x32f6, 0x2e0e, 0x38a8, 0x3572, 0x2e9b, 0x38c3, 0x31f1, 0x3357, 0x3770, 0x3575, 0x317f, 0x345d, 0x3162, 0x38cd, 0x3111, 0x3543, 0x36c2, 0x36d6, 0x3754, 0x3b6e, 0x3900, 0x3996, 0x38b5, 0x352e, 0x3a32, 0x3881, 0x2487, 0x3795, 0x3814, 0x38f9, 0x388b, 0x366d, 0x3b8a, 0x3751, 0x3a1b, 0x380d, 0x39da, 0x3a56, 0x306c, 0x3295, 0x3992, 0x345c, 0x3a88, 0x370a, 0x357e, 0x31bc, 0x3af0, 0x2f33, 0x2c05, 0x3255, 0x595, 0x3acd, 0x3615, 0x26d4, 0x31b8, 0x3860, 0x3839, +0x30a4, 0x2aed, 0x381b, 0x3438, 0x3519, 0x3a7d, 0x39e4, 0x3704, 0x376f, 0x31d2, 0x3643, 0x29d2, 0x3101, 0x34cc, 0x39c1, 0x333f, 0x3a92, 0x2b34, 0x2d97, 0x334d, 0x3b85, 0x3b74, 0x37f2, 0x38e0, 0x3092, 0x34d3, 0x38af, 0x3489, 0x365c, 0x3bab, 0x3abc, 0x3b90, 0x3251, 0x3397, 0x399d, 0x32a2, 0x3545, 0x29ac, 0x3405, 0x37dd, 0x3899, 0x312c, 0x3500, 0x3983, 0x3bd4, 0x3bfc, 0x33a7, 0x2df1, 0x2c94, 0x374e, 0x351c, 0x3a18, 0x3984, 0x3b46, 0x2d2c, 0x2997, 0x365e, 0x3461, 0x3654, 0x2530, 0x3945, 0x1e1e, 0x3374, 0x2fb7, 0x31de, 0x3bff, 0x387b, 0x3701, 0x284f, 0x3b59, 0x3a7d, 0x3866, 0x3958, 0x3a6c, 0x358a, 0x3132, 0x35be, 0x3819, 0x386a, 0x369d, 0x3b3b, 0x3549, 0x3b06, 0x3173, 0x31f2, 0x39fb, 0x35a6, 0x3525, 0x3737, 0x3abb, 0x3b5e, 0x3122, 0x39e5, 0x3538, 0x3817, 0x3727, +0x3979, 0x39fe, 0x3487, 0x3a8e, 0x3407, 0x3140, 0x3afa, 0x39b7, 0x374e, 0x3b66, 0x3b0f, 0x39c9, 0x3266, 0x34dc, 0x396a, 0x38db, 0x35bd, 0x31c8, 0x37ed, 0x3667, 0x357e, 0x3518, 0x3139, 0x3bd5, 0x3157, 0x3960, 0x39d2, 0x3a38, 0x366c, 0x3876, 0x39b9, 0x2cf0, 0x3825, 0x3a80, 0x3bbf, 0x3a2d, 0x2fd3, 0x35e2, 0x35c6, 0x3a07, 0x368f, 0x391e, 0x3be7, 0x39be, 0x3533, 0x39c7, 0x3137, 0x2d6e, 0x3905, 0x3b95, 0x38f8, 0x39f5, 0x3bc1, 0x38a7, 0x38e5, 0x2c58, 0x343c, 0x3656, 0x2c1c, 0x3b1d, 0x39c9, 0x3801, 0x39c1, 0x3bed, 0x26be, 0x362a, 0x3655, 0x31b4, 0x2ad7, 0x3810, 0x3afd, 0x1edc, 0x35e8, 0x2d9f, 0x32fb, 0x316e, 0x38ed, 0x3839, 0x390b, 0x3b97, 0x38e2, 0x3746, 0x3b3b, 0x3b03, 0x395e, 0x353e, 0x375a, 0x3824, 0x25bf, 0x357f, 0x31a9, 0x3aa5, 0x35d6, 0x2a95, 0x1b91, 0x318c, +0x3650, 0x38de, 0x32bf, 0x287b, 0x305d, 0x393e, 0x3bb2, 0x352d, 0x2593, 0x386f, 0x3814, 0x38bd, 0x3532, 0x3084, 0x2880, 0x3bdb, 0x37da, 0x3073, 0x3850, 0x3026, 0x337f, 0x3b64, 0x37e5, 0x33ad, 0x3624, 0x319f, 0x36d7, 0x3939, 0x3553, 0x359d, 0x392d, 0x385f, 0x394f, 0x3aca, 0x34b8, 0x3138, 0x367a, 0x38a4, 0x3a8e, 0x369e, 0x34ef, 0x3b01, 0x3ad8, 0x3875, 0x3bd5, 0x39c4, 0x3b56, 0x394d, 0x38ba, 0x3a48, 0x3ade, 0x3bd6, 0x395f, 0x3737, 0x2dee, 0x3891, 0x35ed, 0x39b2, 0x2fe6, 0x3130, 0x346e, 0x3886, 0x2fb6, 0x3183, 0x3ae1, 0x3301, 0x38f9, 0x3470, 0x3701, 0x3845, 0x327d, 0x33b3, 0x3b06, 0x358e, 0x35eb, 0x38a2, 0x34d1, 0x317c, 0x3b0f, 0x395e, 0x36dc, 0x3511, 0x3a8b, 0x3997, 0x380b, 0x38cb, 0x3b3c, 0x3b54, 0x3330, 0x33d7, 0x357d, 0x3439, 0x2bd4, 0x3678, 0x3891, 0x39cc, +0x3bdb, 0x3af1, 0x3828, 0x3a2b, 0x39b6, 0x36f5, 0x374a, 0x3752, 0x3b11, 0x3306, 0x3bac, 0x3799, 0x39fe, 0x38f5, 0x3219, 0x36df, 0x3ade, 0x3ab0, 0x2fa1, 0x3472, 0x3a33, 0x34d9, 0x390e, 0x37c0, 0x2d6b, 0x38e1, 0x3bdc, 0x3887, 0x3644, 0x319b, 0x32a7, 0x2876, 0x337a, 0x3b38, 0x3904, 0x354b, 0x24b5, 0x1699, 0x3b55, 0x39b7, 0x278d, 0x3784, 0x388d, 0x389f, 0x34ac, 0x30bc, 0x3180, 0x37e5, 0x3462, 0x3641, 0x363a, 0x3805, 0x2fa2, 0x260f, 0x3a51, 0x38c4, 0x30e4, 0x3836, 0x3478, 0x3a31, 0x36ae, 0x3294, 0x3b82, 0x3321, 0x3877, 0x3209, 0x38ad, 0x31af, 0x35b4, 0x28af, 0x3699, 0x3490, 0x3974, 0x3272, 0x391c, 0x3864, 0x31fe, 0x3780, 0x39d9, 0x3607, 0x35a1, 0x339e, 0x3047, 0x33c0, 0x3506, 0x2f45, 0x3b6e, 0x3875, 0x383b, 0x3b4b, 0x3859, 0x35c7, 0x2afe, 0x34f1, 0x363f, 0x2ccc, +0x2888, 0x3101, 0x397a, 0x3715, 0x35b1, 0x369b, 0x3a0c, 0x3839, 0x3514, 0x3189, 0x3be6, 0x3214, 0x3b29, 0x312e, 0x3879, 0x33a8, 0x3a6f, 0x3998, 0x3959, 0x3b41, 0x348b, 0x3acb, 0x391f, 0x39b5, 0x353b, 0x3513, 0x395b, 0x3a72, 0x329c, 0x3a2e, 0x2c1b, 0x376e, 0x3857, 0x35ce, 0x34d3, 0x3952, 0x3b6f, 0x3978, 0x3942, 0x3741, 0x35a2, 0x3201, 0x3806, 0x397a, 0x393f, 0x2f4e, 0x3a07, 0x3b5b, 0x33aa, 0x3686, 0x394b, 0x3b64, 0x3a53, 0x385a, 0x390a, 0x3965, 0x34b6, 0x2f08, 0x39b3, 0x3808, 0x3631, 0x35af, 0x3628, 0x31a2, 0x3b7f, 0x3a04, 0x2951, 0x3a91, 0x39a9, 0x3877, 0x3acc, 0x3aff, 0x3bae, 0x2aa4, 0x3bbe, 0x3b0c, 0x3462, 0x3842, 0x3902, 0x3a55, 0x30e8, 0x3520, 0x30bd, 0x3147, 0x3ba1, 0x3945, 0x37b9, 0x30b4, 0x3573, 0x3b4f, 0x3a1b, 0x3a4a, 0x2d52, 0x345c, 0x366c, 0x3451, +0x34b3, 0x2d91, 0x3564, 0x3803, 0x3b06, 0x3bf5, 0x36b0, 0x356e, 0x341d, 0x39fe, 0x3b9e, 0x2d69, 0x3329, 0x3b30, 0x300d, 0x34e8, 0x3823, 0x3ab8, 0x38ce, 0x3b3c, 0x2983, 0x3680, 0x2841, 0x39ed, 0x393e, 0x30cc, 0x3828, 0x3af3, 0x2d8e, 0x381c, 0x382b, 0x3b29, 0x3b58, 0x380a, 0x2c56, 0x36b0, 0x3b53, 0x2f0b, 0x357b, 0x38de, 0x374e, 0x3aef, 0x3a95, 0x3a7a, 0x3a23, 0x2f2b, 0x3903, 0x3b97, 0x39e3, 0x2e50, 0x35fd, 0x3bf5, 0x3ae9, 0x3bb6, 0x3ab7, 0x391f, 0x326f, 0x3264, 0x3453, 0x37b3, 0x2d1b, 0x3a55, 0x3921, 0x36d7, 0x2b01, 0x388e, 0x3969, 0x2f04, 0x31b9, 0x3bd2, 0x3a16, 0x362a, 0x31d7, 0x3ae1, 0x3735, 0x2e5f, 0x3b56, 0x38a8, 0x3b30, 0x3a77, 0x35e2, 0x3aa6, 0x3222, 0x38f3, 0x399b, 0x330b, 0x350f, 0x2b19, 0x3b45, 0x38b4, 0x3ba8, 0x3a8f, 0x3abe, 0x2760, 0x341e, 0x323d, +0x2eab, 0x3514, 0x3b83, 0x39bd, 0x331e, 0x2bfc, 0x389d, 0x381c, 0x36b5, 0x35e9, 0x392e, 0x2b7a, 0x2fcf, 0x3523, 0x3b37, 0x3129, 0x3a56, 0x3861, 0x3b75, 0x38cd, 0x3604, 0x3286, 0x3ac4, 0x3926, 0x3495, 0x3bfc, 0x351b, 0x3696, 0x34e1, 0x2f4e, 0x26e3, 0x39ce, 0x34db, 0x2e38, 0x393c, 0x371c, 0x3843, 0x3a1b, 0x272b, 0x3a27, 0x376c, 0x393f, 0x39cc, 0x39be, 0x39f7, 0x2c76, 0x3bd3, 0x3a3b, 0x3970, 0x3ab5, 0x3915, 0x35c3, 0x36d0, 0x3957, 0x3aa5, 0x25d6, 0x3b79, 0x2217, 0x39c7, 0x3b15, 0x3aa1, 0x3901, 0x378e, 0x3ada, 0x3a6f, 0x384d, 0x372d, 0x39d9, 0x3819, 0x37e8, 0x3527, 0x30ee, 0x3867, 0x3229, 0x3126, 0x3290, 0x3a62, 0x3b2f, 0x32f3, 0x39e0, 0x36e6, 0x3981, 0x305a, 0x2fd0, 0x3724, 0x3822, 0x3359, 0x3869, 0x3bcc, 0x37f1, 0x357c, 0x39df, 0x2e31, 0x3b10, 0x3601, 0x37b1, +0x3aa3, 0x385a, 0x392b, 0x3909, 0x3774, 0x3aab, 0x38a2, 0x3801, 0x2882, 0x38a7, 0x3621, 0x373e, 0x34b4, 0x2e13, 0x3999, 0x381c, 0x369f, 0x2633, 0x3acd, 0x386d, 0x3b94, 0x32a0, 0x1bdc, 0x3873, 0x3249, 0x3692, 0x3be9, 0x325a, 0x32c2, 0x3ad9, 0x1de3, 0x308f, 0x3971, 0x34e6, 0x212b, 0x3bd3, 0x3790, 0x3814, 0x3346, 0x3358, 0x3115, 0x3914, 0x35c7, 0x3287, 0x3b0b, 0x388f, 0x35ac, 0x3002, 0x3a5e, 0x2ede, 0x38cd, 0x374f, 0x3b4c, 0x3578, 0x394c, 0x3951, 0x353c, 0x2e59, 0x3877, 0x31f5, 0x3912, 0x394b, 0x37e7, 0x3667, 0x38c9, 0x3641, 0x343c, 0x37ee, 0x3aa8, 0x3440, 0x34d3, 0x394b, 0x301f, 0x3a76, 0x387e, 0x3a7d, 0x347e, 0x21c8, 0x397c, 0x301a, 0x3a2d, 0x3710, 0x399a, 0x359b, 0x3756, 0x3679, 0x37eb, 0x38e6, 0x2a71, 0x35f9, 0x37eb, 0x3afc, 0x370d, 0x3bce, 0x3884, 0x3211, +0x3a18, 0x3a44, 0x2fcd, 0x3b65, 0x3788, 0x2a46, 0x322a, 0x3538, 0x3bc2, 0x33f4, 0x3932, 0x3835, 0x2fa9, 0x3b95, 0x3756, 0x399d, 0x36b6, 0x3186, 0x389d, 0x346c, 0x3abb, 0x3be4, 0x3919, 0x3993, 0x2ffc, 0x39db, 0x3bce, 0x3b0e, 0x336e, 0x36af, 0x3192, 0x38b7, 0x37ba, 0x3ae4, 0x3116, 0x2c45, 0x3494, 0x3aea, 0x302c, 0x3816, 0x3686, 0x34f2, 0x2fa4, 0x3aa1, 0x222f, 0x370f, 0x341a, 0x3aae, 0x380d, 0x3863, 0x36ca, 0x3a60, 0x3695, 0x387d, 0x391c, 0x2c8b, 0x2d94, 0x369e, 0x399e, 0x36fd, 0x38fc, 0x3b6c, 0x36a8, 0x3a73, 0x33fb, 0x36d0, 0x3720, 0x36d7, 0x37be, 0x2a8f, 0x3180, 0x3ad3, 0x2a1f, 0x3737, 0x3920, 0x2b67, 0x3abf, 0x395e, 0x322b, 0x3ace, 0x39b1, 0x3bdf, 0x2e0b, 0x3018, 0x3278, 0x393a, 0x3a8c, 0x39d0, 0x39cd, 0x308f, 0x3776, 0x38b7, 0x3527, 0x388b, 0x3901, 0x3b8b, +0x237d, 0x38f9, 0x3431, 0x3b1f, 0x3a12, 0x33ac, 0x3a3d, 0x3943, 0x348d, 0x363f, 0x3a2a, 0x2420, 0x3081, 0x3815, 0x382e, 0x38e5, 0x3238, 0x284e, 0x2ec3, 0x3af5, 0x3191, 0x32d6, 0x31c8, 0x39bc, 0x3a2a, 0x340d, 0x3bd9, 0x33dc, 0x3066, 0x39df, 0x30e2, 0x350a, 0x37fc, 0x341d, 0x3828, 0x3a1b, 0x3010, 0x2992, 0x32fd, 0x3bb3, 0x368c, 0x2af2, 0x3af4, 0x3a8f, 0x3793, 0x3620, 0x3b85, 0x3557, 0x316b, 0x288d, 0x3408, 0x3ae8, 0x3af0, 0x3420, 0x3bbd, 0x3a80, 0x309a, 0x3a5d, 0x3a57, 0x3987, 0x3a47, 0x377f, 0x3a01, 0x3a72, 0x3b37, 0x3594, 0x3bfd, 0x36ae, 0x3b99, 0x3bd4, 0x3920, 0x3b8d, 0x37ae, 0x3a46, 0x3184, 0x38ba, 0x1ff8, 0x3b9c, 0x3b68, 0x3621, 0x37f4, 0x2fb7, 0x3010, 0x3b58, 0x33d3, 0x3bbb, 0x291f, 0x3945, 0x3be1, 0x30c6, 0x3bc3, 0x35c6, 0x3bdf, 0x2a15, 0x2e3f, 0x2b1a, +0x3847, 0x3671, 0x34cf, 0x35e0, 0x3b80, 0x34e1, 0x3b3b, 0x305a, 0x327f, 0x3a9e, 0x3803, 0x2a3a, 0x3969, 0x3765, 0x3891, 0x3acc, 0x397d, 0x3549, 0x356e, 0x34c8, 0x2632, 0x30ca, 0x36ba, 0x3a56, 0x37ca, 0x344d, 0x39bc, 0x32f3, 0x3be2, 0x3b24, 0x353f, 0x3ab8, 0x373e, 0x3906, 0x318e, 0x3993, 0x27e3, 0x255c, 0x3afa, 0x33a3, 0x3819, 0x333b, 0x3bb6, 0x3179, 0x3414, 0x35d6, 0x30b1, 0x386b, 0x3b8e, 0x3942, 0x386c, 0x3b39, 0x32d2, 0x37f6, 0x2503, 0x3b14, 0x385c, 0x3a12, 0x3895, 0x39d7, 0x377f, 0x2c2d, 0x3066, 0x3855, 0x35a4, 0x3aeb, 0x3a9c, 0x35a4, 0x2eb7, 0x3b6b, 0x3bfd, 0x38fa, 0x1fd4, 0x3583, 0x3bc9, 0x35d2, 0x3913, 0x34b8, 0x271f, 0x3453, 0x3833, 0x3bb2, 0x3a7f, 0x1c15, 0x1b01, 0x39f1, 0x3bdd, 0x3988, 0x3ac8, 0x397f, 0x3bb4, 0x36d5, 0x37bf, 0x34b4, 0x30f5, 0x39c7, +0x391e, 0x3b4f, 0x2eb2, 0x3b31, 0x3073, 0x39d0, 0x2cd1, 0x2f3b, 0x36cc, 0x3739, 0x222d, 0x3a71, 0x3ba4, 0x3b60, 0x2bb5, 0x3885, 0x3b90, 0x2cea, 0x3ab6, 0x37b0, 0x3813, 0x31a7, 0x3545, 0x3392, 0x39f4, 0x34ae, 0x36c2, 0x3177, 0x3902, 0x39b5, 0x2f98, 0x36c1, 0x36d5, 0x32e8, 0x39ed, 0x30c3, 0x39a8, 0x30f1, 0x39a1, 0x36ec, 0x3bea, 0x34b1, 0x3260, 0x343e, 0x3929, 0x31d9, 0x33d7, 0x3bee, 0x379c, 0x2395, 0x3983, 0x38ce, 0x3297, 0x35fc, 0x3776, 0x3b0a, 0x3ae2, 0x3991, 0x2c03, 0x3712, 0x3b68, 0x2e82, 0x2e43, 0x3705, 0x39d1, 0x3b64, 0x2ff0, 0x3a4a, 0x2f9e, 0x2f32, 0x3ba6, 0x3559, 0x3aa5, 0x39cb, 0x3671, 0x39d2, 0x3aaf, 0x3385, 0x3a0a, 0x3a03, 0x396d, 0x391d, 0x2685, 0x3802, 0x39d5, 0x2af3, 0x39e4, 0x3ace, 0x313a, 0x2d88, 0x2999, 0x39a4, 0x3302, 0x390b, 0x3847, 0x3b87, +0x3813, 0x30fa, 0x3986, 0x3bc2, 0x3bc2, 0x3bf1, 0x3251, 0x391a, 0x2445, 0x3884, 0x3649, 0x320f, 0x305c, 0x3418, 0x337f, 0x38fa, 0x39ac, 0x3a4d, 0x346d, 0x33ca, 0x32da, 0x335c, 0x37ff, 0x389e, 0x39b3, 0x364e, 0x328a, 0x3690, 0x36cb, 0x3126, 0x374a, 0x3ba4, 0x37fe, 0x3233, 0x2afb, 0x3335, 0x3095, 0x38c9, 0x3a8b, 0x39c4, 0x3505, 0x32f2, 0x3a53, 0x388e, 0x34b9, 0x39d7, 0x34e7, 0x3a78, 0x3b19, 0x34e0, 0x35e9, 0x375f, 0x3a89, 0x38c6, 0x3764, 0x383c, 0x266a, 0x3672, 0x31fc, 0x3b60, 0x3a99, 0x3917, 0x3b92, 0x3759, 0x3acd, 0x39ad, 0x31fe, 0x3bcc, 0x3bec, 0x31a6, 0x33fa, 0x36f4, 0x2295, 0x3b2b, 0x3625, 0x3882, 0x3a88, 0x369a, 0x3b81, 0x399f, 0x34a9, 0x381c, 0x2db8, 0x365d, 0x3741, 0x382c, 0x3b87, 0x3b1c, 0x300b, 0x2ef6, 0x2e99, 0x3975, 0x24d7, 0x387e, 0x344a, 0x3503, +0x3b1e, 0x3900, 0x2bf3, 0x3170, 0x39bd, 0x3a2e, 0x37ad, 0x38b6, 0x38bf, 0x31c3, 0x3ae8, 0x368d, 0x36ac, 0x35e2, 0x3497, 0x2dec, 0x39c9, 0x389b, 0x3156, 0x3a86, 0x3892, 0x3976, 0x394b, 0x3b82, 0x3907, 0x392e, 0x2538, 0x3871, 0x348e, 0x3a0d, 0x347f, 0x316b, 0x378b, 0x3aa4, 0x38f5, 0x3595, 0x2d85, 0x2d42, 0x3aca, 0x3688, 0x3085, 0x3694, 0x399c, 0x3b6c, 0x3bb8, 0x3bac, 0x3a69, 0x35bf, 0x316c, 0x335f, 0x2e66, 0x2f7e, 0x360e, 0x3b28, 0x3254, 0x347f, 0x3687, 0x3018, 0x37b7, 0x3ba9, 0x3814, 0x3bd2, 0x22ed, 0x3735, 0x39a7, 0x3a17, 0x3a9c, 0x3264, 0x35f9, 0x38e9, 0x3610, 0x3ad7, 0x39ab, 0x304c, 0x3734, 0x3a58, 0x30be, 0x394f, 0x2f1c, 0x33be, 0x3818, 0x38b7, 0x3845, 0x3a9d, 0x3721, 0x324f, 0x34e0, 0x3a0e, 0x3b77, 0x3b14, 0x3884, 0x3a5a, 0x3aed, 0x3349, 0x39d0, 0x3ba6, +0x3345, 0x3494, 0x396e, 0x33e0, 0x3a01, 0x26be, 0x3a27, 0x3a66, 0x3a48, 0x3bc4, 0x3a0e, 0x39ac, 0x3758, 0x32d8, 0x3570, 0x2add, 0x2f32, 0x3856, 0x3814, 0x39a6, 0x3418, 0x3919, 0x2faf, 0x3a0f, 0x3816, 0x3366, 0x388c, 0x3471, 0x2993, 0x395d, 0x32cc, 0x3b00, 0x3a82, 0x3b5a, 0x2edd, 0x30f7, 0x3bba, 0x2a65, 0x368e, 0x311e, 0x35ff, 0x3734, 0x2931, 0x34db, 0x3734, 0x3b8a, 0x2441, 0x33bc, 0x3aed, 0x3793, 0x31ee, 0x37fe, 0x31f4, 0x36f4, 0x390e, 0x3b97, 0x3963, 0x3510, 0x30f9, 0x3a6e, 0x35d3, 0x34ba, 0x3a05, 0x39de, 0x3646, 0x3b0f, 0x3b2e, 0x3698, 0x3bbd, 0x3306, 0x3990, 0x3984, 0x2e28, 0x3880, 0x3b82, 0x350c, 0x3a3e, 0x3b00, 0x3735, 0x3944, 0x39a1, 0x34ea, 0x3812, 0x3a9c, 0x2270, 0x3b9b, 0x383d, 0x34b9, 0x33ff, 0x314b, 0x35e9, 0x3a76, 0x3b80, 0x3922, 0x3767, 0x3119, +0x39f0, 0x391b, 0x37d6, 0x37d9, 0x3b86, 0x3923, 0x2434, 0x3be9, 0x3918, 0x36cb, 0x3b4a, 0x296e, 0x3bcf, 0x38d5, 0x3342, 0x3482, 0x3995, 0x3958, 0x33a0, 0x38a7, 0x3be6, 0x3b68, 0x3168, 0x398d, 0x3ab4, 0x325a, 0x3bd2, 0x3915, 0x1a9f, 0x356c, 0x303d, 0x3b50, 0x32c5, 0x3a1c, 0x3a0e, 0x392c, 0x3b24, 0x3b8b, 0x322b, 0x2661, 0x3bba, 0x35e3, 0x3be0, 0x38f5, 0x39ab, 0x316b, 0x3b05, 0x3a05, 0x3969, 0x370c, 0x3851, 0x3a7c, 0x3801, 0x3b8b, 0x38db, 0x3aef, 0x354a, 0x2845, 0x3ac7, 0x3547, 0x35c2, 0x3564, 0x30d5, 0x3bf1, 0x301b, 0x3434, 0x3583, 0x3a9c, 0x1c52, 0x2e1e, 0x3522, 0x3993, 0x3bfe, 0x3524, 0x370c, 0x33ed, 0x3981, 0x2bfe, 0x2ca4, 0x3b56, 0x3b03, 0x3450, 0x3768, 0x3baf, 0x3760, 0x3a8f, 0x2d31, 0x2c4e, 0x3167, 0x35e6, 0x396d, 0x3b31, 0x309b, 0x347e, 0x39ea, 0x3bb8, +0x3164, 0x2bac, 0x368e, 0x3bd4, 0x3427, 0x38b4, 0x3a4d, 0x39ba, 0x3a0d, 0x301a, 0x2fec, 0x2ce1, 0x3985, 0x2acc, 0x386d, 0x3808, 0x346b, 0x383b, 0x3b1b, 0x3406, 0x3bc5, 0x3b86, 0x3860, 0x35ae, 0x2e1c, 0x35d4, 0x350b, 0x35f5, 0x2a73, 0x3a6b, 0x364b, 0x3526, 0x278a, 0x375e, 0x299f, 0x39b0, 0x394e, 0x345d, 0x3760, 0x31ba, 0x3400, 0x3566, 0x3b36, 0x3a48, 0x34e3, 0x3b24, 0x347c, 0x32a3, 0x2da7, 0x364a, 0x33de, 0x33c5, 0x324f, 0x38f7, 0x3bfb, 0x3a94, 0x3312, 0x3924, 0x3831, 0x2ee6, 0x3b4a, 0x338b, 0x2bb3, 0x33ee, 0x3bf2, 0x3aa3, 0x376d, 0x1512, 0x37b5, 0x2e44, 0x39ad, 0x3b2f, 0x39a7, 0x3aa1, 0x2e75, 0x3955, 0x3663, 0x39a6, 0x296f, 0x34c6, 0x2ef3, 0x2fe3, 0x3647, 0x3bc2, 0x3b91, 0x376a, 0x39e5, 0x3466, 0x38b9, 0x3a80, 0x3861, 0x36ca, 0x3a2c, 0x3145, 0x3102, 0x33bc, +0x2ba4, 0x2eb9, 0x39ab, 0x33cf, 0x2c9f, 0x372c, 0x3973, 0x2ff9, 0x36a5, 0x3641, 0x3b93, 0x3bc9, 0x3ba9, 0x36cd, 0x3a8d, 0x3bd2, 0x399e, 0x34ed, 0x3b4c, 0x2c2b, 0x38f7, 0x3824, 0x2edd, 0x32fc, 0x30cc, 0x2b90, 0x2628, 0x3a65, 0x39de, 0x3800, 0x3a8c, 0x3a88, 0x1e84, 0x3890, 0x33b4, 0x37e8, 0x3aab, 0x342c, 0x3697, 0x379a, 0x2472, 0x38bb, 0x38d0, 0x3a8e, 0x393a, 0x34e7, 0x3baf, 0x37ce, 0x28c7, 0x32a5, 0x3a68, 0x3925, 0x3a49, 0x3944, 0x3976, 0x3866, 0x363a, 0x35e2, 0x296d, 0x29f3, 0x39a8, 0x3831, 0x3682, 0x3898, 0x2bca, 0x13aa, 0x37b8, 0x35fe, 0x3a5d, 0x3362, 0x34bd, 0x38c1, 0x3b66, 0x3801, 0x391b, 0x307b, 0x3936, 0x3ae2, 0x3899, 0x390a, 0x384b, 0x3af4, 0x3ae2, 0x35d2, 0x271a, 0x37ad, 0x3102, 0x38e5, 0x30b8, 0x2419, 0x30ee, 0x3437, 0x39b9, 0x3a44, 0x374e, 0x3551, +0x39a4, 0x35f6, 0x385e, 0x3864, 0x3977, 0x3159, 0x3625, 0x379a, 0x3b94, 0x3a2a, 0x2ea6, 0x38a1, 0x3ad9, 0x31cd, 0x3be9, 0x34ac, 0x38be, 0x3925, 0x36ae, 0x3bd3, 0x2e3b, 0x39d0, 0x3a89, 0x336b, 0x2d09, 0x3533, 0x382c, 0x2f0c, 0x385e, 0x3ba1, 0x3436, 0x39e4, 0x3a6b, 0x39b1, 0x3622, 0x334e, 0x38cd, 0x3740, 0x30d6, 0x391d, 0x3a70, 0x3390, 0x2c34, 0x3bf0, 0x3566, 0x3864, 0x2aaa, 0x2df7, 0x20cf, 0x3621, 0x39f8, 0x3ab0, 0x3a54, 0x39fb, 0x389e, 0x3724, 0x3755, 0x369d, 0x3944, 0x2843, 0x13b6, 0x316f, 0x3860, 0x3848, 0x3816, 0x315b, 0x3b72, 0x35e9, 0x396a, 0x399c, 0x3a7b, 0x315c, 0x3667, 0x37ae, 0x39f0, 0x386f, 0x3875, 0x3b25, 0x38ba, 0x3a14, 0x3abc, 0x36e1, 0x352d, 0x3904, 0x385d, 0x3b24, 0x32c9, 0x3afb, 0x3bd8, 0x3520, 0x145c, 0x378f, 0x3821, 0x2801, 0x3496, 0x3b18, +0x3716, 0x3bfe, 0x3591, 0x3b7d, 0x3a85, 0x3af1, 0x3abf, 0x38ae, 0x30cb, 0x3457, 0x3b9f, 0x32bc, 0x39e0, 0x33d6, 0x3acd, 0x38e4, 0x39bf, 0x39ce, 0x2c1a, 0x36c2, 0x3a5e, 0x3ba5, 0x3a2d, 0x3629, 0x3b8d, 0x36ce, 0x3997, 0x384a, 0x3acb, 0x36d2, 0x3b60, 0x3a38, 0x347d, 0x35b3, 0x286f, 0x2bf4, 0x3795, 0x2d33, 0x20c0, 0x3857, 0x3aac, 0x3766, 0x38c1, 0x3628, 0x2e3a, 0x3a93, 0x3ac6, 0x35ca, 0x3366, 0x3b05, 0x3a4c, 0x3be7, 0x37a8, 0x38c4, 0x36ae, 0x39b0, 0x34e1, 0x2dfc, 0x3b41, 0x385a, 0x306b, 0x3bfa, 0x39ab, 0x3ade, 0x3a80, 0x3574, 0x397e, 0x3792, 0x342e, 0x373c, 0x3918, 0x3275, 0x3827, 0x397e, 0x3889, 0x35b5, 0x30d7, 0x1d25, 0x30b4, 0x3580, 0x2ae1, 0x2bba, 0x38ea, 0x3a03, 0x3b44, 0x3539, 0x2de4, 0x3b56, 0x3949, 0x2792, 0x39ac, 0x31af, 0x3514, 0x3ac1, 0x34a6, 0x2c44, +0x330d, 0x36f5, 0x374e, 0x3bf7, 0x33ea, 0x3770, 0x2733, 0x30ef, 0x3b72, 0x2d2a, 0x392d, 0x36fb, 0x3a83, 0x34a1, 0x334c, 0x30b3, 0x2987, 0x3584, 0x3ab0, 0x3a9d, 0x2b67, 0x3a56, 0x35ba, 0x325f, 0x39b7, 0x2abd, 0x3a40, 0x38bf, 0x37b9, 0x3a67, 0x204a, 0x328d, 0x3403, 0x3adc, 0x2c0f, 0x3923, 0x39bc, 0x366a, 0x3082, 0x39d1, 0x3ad5, 0x3a4f, 0x3207, 0x3631, 0x381e, 0x3961, 0x358d, 0x3664, 0x3363, 0x3bf9, 0x372c, 0x3a5d, 0x3878, 0x335a, 0x35a2, 0x3532, 0x3809, 0x2ecb, 0x32e3, 0x3996, 0x36cf, 0x362f, 0x38d5, 0x39c7, 0x2ccd, 0x37c7, 0x2ba2, 0x3b59, 0x26c9, 0x38fa, 0x3b8a, 0x3bed, 0x3868, 0x3942, 0x393a, 0x3999, 0x363f, 0x3375, 0x3bc6, 0x3098, 0x384c, 0x381e, 0x39c6, 0x39be, 0x3204, 0x2023, 0x3acf, 0x3b55, 0x3850, 0x3ae7, 0x37ac, 0x388a, 0x3b11, 0x36e1, 0x2f03, 0x3a6d, +0x2f6f, 0x39b2, 0x308a, 0x3253, 0x3976, 0x38bd, 0x3bfa, 0x3b6d, 0x3816, 0x287b, 0x3588, 0x392b, 0x30bc, 0x3b83, 0x3a9b, 0x300d, 0x3ba4, 0x2d26, 0x372a, 0x3914, 0x36ee, 0x2f72, 0x3ad3, 0x323b, 0x32b6, 0x3a71, 0x3a92, 0x2416, 0x3ab2, 0x39c8, 0x313c, 0x3a5e, 0x3ab9, 0x30ed, 0x3ac3, 0x3339, 0x291e, 0x3847, 0x3bb9, 0x3b7c, 0x3369, 0x3aa1, 0x3b93, 0x380a, 0x33fd, 0x3545, 0x399a, 0x25a4, 0x36c6, 0x37fe, 0x3ae8, 0x3ad7, 0x3be3, 0x3589, 0x370e, 0x3299, 0x3358, 0x3960, 0x36e2, 0x3af9, 0x3676, 0x3b75, 0x39df, 0x32bf, 0x387f, 0x2764, 0x39ae, 0x32b4, 0x36bf, 0x3161, 0x3a40, 0x3bcb, 0x3447, 0x3a0d, 0x2baa, 0x38c7, 0x333a, 0x3a4b, 0x394f, 0x381d, 0x38bd, 0x2b6b, 0x388d, 0x3a37, 0x384e, 0x3b19, 0x31dc, 0x3236, 0x33aa, 0x32f2, 0x32b0, 0x3b95, 0x3bd2, 0x1db0, 0x36d4, 0x38ae, +0x3161, 0x30b6, 0x3784, 0x3701, 0x387e, 0x36ef, 0x2ad7, 0x3ab4, 0x3897, 0x397d, 0x355d, 0x34e3, 0x351d, 0x3b95, 0x3b12, 0x1c76, 0x3b71, 0x3b9a, 0x37e5, 0x3bc6, 0x2576, 0x33c0, 0x398e, 0x39d1, 0x37b9, 0x3a9f, 0x234c, 0x3979, 0x36a2, 0x3aad, 0x355c, 0x3479, 0x2d97, 0x2d54, 0x2ecb, 0x3481, 0x38ba, 0x32e2, 0x380c, 0x2f81, 0x3b87, 0x3a01, 0x35b6, 0x35f6, 0x389a, 0x341e, 0x3180, 0x35d7, 0x31af, 0x3983, 0x38ec, 0x298c, 0x3bea, 0x38d3, 0x2ba1, 0x32b9, 0x2f3e, 0x3b84, 0x3003, 0x34ff, 0x3bd9, 0x323b, 0x375a, 0x3462, 0x3824, 0x303d, 0x381a, 0x385e, 0x3bfd, 0x3993, 0x39c6, 0x3a0f, 0x3b8c, 0x3353, 0x3295, 0x39b6, 0x28dd, 0x3a8e, 0x3043, 0x2d8e, 0x3b67, 0x3504, 0x3b32, 0x30b6, 0x3a4c, 0x3239, 0x3443, 0x3031, 0x3afb, 0x3b11, 0x30f8, 0x3299, 0x3be6, 0x3476, 0x3a49, 0x3441, +0x31e8, 0x3992, 0x3509, 0x3313, 0x3635, 0x35cc, 0x3963, 0x3545, 0x3ba3, 0x2443, 0x35c5, 0x3bb8, 0x3a2e, 0x3642, 0x3ae7, 0x3832, 0x333e, 0x34d3, 0x37f5, 0x38a6, 0x39a9, 0x3850, 0x3ad9, 0x2a1f, 0x271c, 0x3878, 0x3586, 0x362d, 0x3922, 0x3ab8, 0x310e, 0x369c, 0x2efb, 0x3bde, 0x38c2, 0x3af3, 0x393a, 0x3401, 0x315e, 0x305f, 0x38f5, 0x39bf, 0x36c6, 0x3544, 0x3213, 0x386f, 0x378f, 0x3214, 0x3900, 0x35a4, 0x3bbd, 0x2f98, 0x3a9d, 0x3b3d, 0x395a, 0x3932, 0x3515, 0x2ef8, 0x3af6, 0x2d82, 0x2845, 0x39f8, 0x2b6d, 0x38eb, 0x3300, 0x2e15, 0x3788, 0x3962, 0x2e88, 0x356d, 0x3a36, 0x3bd3, 0x2485, 0x38fc, 0x3843, 0x38c0, 0x1351, 0x3aea, 0x2c6d, 0x3ad0, 0x337d, 0x394e, 0x3823, 0x34f9, 0x342e, 0x3203, 0x3b9a, 0x3ade, 0x357a, 0x3734, 0x398f, 0x3302, 0x3b51, 0x3607, 0x35c9, 0x2be4, +0x38d7, 0x3450, 0x359a, 0x2a01, 0x3a33, 0x3536, 0x3a66, 0x360d, 0x3b2f, 0x3a0f, 0x3a84, 0x36b5, 0x3920, 0x389e, 0x3622, 0x3175, 0x370e, 0x32d1, 0x3a64, 0x3a2d, 0x3afc, 0x36f1, 0x3b64, 0x3268, 0x36b8, 0x3b0e, 0x34f4, 0x3b5d, 0x38ac, 0x3153, 0x3128, 0x3670, 0x3b70, 0x39be, 0x3989, 0x35ae, 0x333a, 0x2bfb, 0x3ad9, 0x344c, 0x3ba9, 0x3b6c, 0x335e, 0x3a80, 0x2451, 0x3823, 0x385e, 0x30e0, 0x38e3, 0x30ad, 0x36a0, 0x3a1e, 0x37db, 0x193d, 0x3675, 0x3110, 0x394c, 0x2f96, 0x2c1f, 0x3982, 0x388d, 0x2ccc, 0x343e, 0x3a8c, 0x3710, 0x2da8, 0x384f, 0x35d2, 0x3174, 0x3267, 0x349c, 0x345a, 0x37f3, 0x380a, 0x3814, 0x380c, 0x3acc, 0x325e, 0x3738, 0x32ef, 0x3223, 0x3488, 0x36d9, 0x394d, 0x3450, 0x378c, 0x328e, 0x332a, 0x3b8e, 0x381d, 0x314a, 0x3530, 0x3378, 0x3a88, 0x3bf8, 0x30e7, +0x3860, 0x38b5, 0x3bc1, 0x2da6, 0x3b83, 0x3a43, 0x372a, 0x392c, 0x3404, 0x3449, 0x3972, 0x3bc5, 0x2dc0, 0x39dc, 0x354c, 0x24f9, 0x3617, 0x3bc1, 0x3960, 0x3762, 0x3962, 0x39e3, 0x3afe, 0x3a21, 0x3834, 0x3856, 0x3ad1, 0x36a8, 0x3b2b, 0x36eb, 0x2f4f, 0x3801, 0x3b42, 0x3af3, 0x380f, 0x326c, 0x351a, 0x3914, 0x38b2, 0x3a84, 0x369e, 0x3925, 0x3213, 0x3b80, 0x3763, 0x3af9, 0x2e55, 0x30ba, 0x3a12, 0x347f, 0x39d7, 0x3a46, 0x2ec5, 0x3b6a, 0x3b7f, 0x3a3f, 0x2eea, 0x38db, 0x33be, 0x356a, 0x3a21, 0x3623, 0x3822, 0x3a63, 0x34ef, 0x373b, 0x2d60, 0x3428, 0x3121, 0x3b9a, 0x3948, 0x3687, 0x382b, 0x2144, 0x3254, 0x387f, 0x3512, 0x357c, 0x3891, 0x2e61, 0x368a, 0x33a8, 0x3b26, 0x2e33, 0x282a, 0x2c3a, 0x365c, 0x35c7, 0x3b90, 0x3866, 0x3a86, 0x35cc, 0x3689, 0x3212, 0x3a1e, 0x3555, +0x2f7e, 0x3b2e, 0x3204, 0x3b95, 0x38c5, 0x394d, 0x3908, 0x3b28, 0x388d, 0x36c6, 0x3ac3, 0x3bc6, 0x305d, 0x3a21, 0x3477, 0x39c1, 0x34e7, 0x3ba1, 0x3850, 0x3276, 0x3513, 0x3576, 0x3407, 0x37e4, 0x2dde, 0x3113, 0x389b, 0x34cc, 0x3736, 0x34de, 0x3348, 0x3942, 0x3044, 0x365f, 0x3a40, 0x3a33, 0x34fb, 0x389a, 0x3983, 0x382e, 0x381d, 0x3293, 0x34a2, 0x330d, 0x31f1, 0x3b44, 0x3861, 0x35e1, 0x331a, 0x3839, 0x39d0, 0x3b0a, 0x34d0, 0x37dd, 0x332b, 0x38f4, 0x3ad1, 0x25b4, 0x3bee, 0x31ee, 0x31fc, 0x382d, 0x3889, 0x352b, 0x38a5, 0x21c1, 0x2e21, 0x3425, 0x2d5e, 0x28f2, 0x3ad7, 0x3945, 0x3282, 0x3844, 0x39d9, 0x2e75, 0x3adb, 0x3703, 0x3966, 0x383a, 0x2d09, 0x3008, 0x3b9f, 0x3b0f, 0x304a, 0x373e, 0x3a84, 0x3739, 0x39cd, 0x3678, 0x3a04, 0x2fe1, 0x3572, 0x3853, 0x38f6, 0x3abc, +0x3b09, 0x3b5a, 0x3be6, 0x2424, 0x345a, 0x3992, 0x3738, 0x35a8, 0x3379, 0x3949, 0x3a93, 0x37d9, 0x2fe8, 0x3a1c, 0x322a, 0x26b8, 0x3af8, 0x327a, 0x34f0, 0x3632, 0x3485, 0x385f, 0x3b33, 0x3396, 0x3ad8, 0x379a, 0x384e, 0x35e6, 0x331e, 0x3b6d, 0x34ca, 0x3997, 0x39c8, 0x3a97, 0x387d, 0x1854, 0x35d1, 0x3bd9, 0x389e, 0x365a, 0x396e, 0x2f7d, 0x3910, 0x388f, 0x39e6, 0x3a8e, 0x3a9e, 0x39b2, 0x2ff2, 0x39fc, 0x346f, 0x39bf, 0x3711, 0x3951, 0x3856, 0x39ea, 0x318e, 0x3778, 0x393c, 0x37ba, 0x3781, 0x3ad5, 0x3638, 0x3b18, 0x286d, 0x314b, 0x3b67, 0x3186, 0x37c4, 0x39f7, 0x376f, 0x3b12, 0x3882, 0x36b6, 0x3a84, 0x329a, 0x24a9, 0x38e3, 0x35ca, 0x3b5b, 0x333f, 0x3994, 0x3369, 0x385b, 0x3871, 0x3aac, 0x3649, 0x3953, 0x31d4, 0x3b45, 0x3808, 0x36e0, 0x35c6, 0x2bd8, 0x39b7, 0x3bd9, +0x3aa5, 0x340f, 0x3721, 0x35e0, 0x3a8f, 0x3ac1, 0x3b3f, 0x1e07, 0x342a, 0x36a2, 0x3830, 0x2dff, 0x35c4, 0x3441, 0x3ac6, 0x383f, 0x3bb1, 0x32d5, 0x3870, 0x3757, 0x36a5, 0x38c3, 0x3158, 0x377d, 0x363d, 0x2ede, 0x3698, 0x2f0b, 0x3860, 0x1a39, 0x39b4, 0x39c3, 0x35e2, 0x3529, 0x35e4, 0x38d3, 0x358a, 0x2cc9, 0x3665, 0x3479, 0x3917, 0x36f9, 0x34d3, 0x39f7, 0x3688, 0x3950, 0x36d5, 0x3a15, 0x35fd, 0x3556, 0x3751, 0x30b6, 0x3906, 0x3b32, 0x387f, 0x2d69, 0x3628, 0x3b4c, 0x3b17, 0x38ff, 0x3852, 0x38c4, 0x37e0, 0x368d, 0x38f6, 0x3885, 0x398e, 0x37dd, 0x3867, 0x35e7, 0x3bd1, 0x38a1, 0x3882, 0x2d3d, 0x3b21, 0x3443, 0x3381, 0x36df, 0x38ba, 0x3a7c, 0x3a03, 0x3881, 0x352b, 0x3914, 0x3b69, 0x3564, 0x3141, 0x3940, 0x327b, 0x390b, 0x3710, 0x3952, 0x3a3e, 0x3825, 0x3ae8, 0x39f8, +0x3950, 0x3a9d, 0x3a2c, 0x35d5, 0x34b7, 0x3a46, 0x3a47, 0x344e, 0x3a08, 0x3362, 0x3285, 0x33e8, 0x3618, 0x39fb, 0x2c3c, 0x39b0, 0x1336, 0x36bd, 0x358c, 0x3bc0, 0x354d, 0x38be, 0x3a08, 0x34e9, 0x3801, 0x3be9, 0x35fa, 0x3015, 0x26bc, 0x399e, 0x36d1, 0x3218, 0x3a92, 0x2ad4, 0x3114, 0x364e, 0x3aa5, 0x35cb, 0x354a, 0x2da0, 0x2fc1, 0x36a2, 0x2fde, 0x3b28, 0x367f, 0x32eb, 0x3b7e, 0x3912, 0x3894, 0x323f, 0x3807, 0x3971, 0x3b61, 0x2381, 0x3ac6, 0x3868, 0x3980, 0x3a49, 0x3183, 0x3657, 0x3851, 0x3956, 0x37be, 0x38ea, 0x38b3, 0x37e2, 0x38ca, 0x3b3b, 0x3543, 0x38af, 0x247b, 0x3716, 0x3b75, 0x3667, 0x3801, 0x2a16, 0x3b46, 0x2bb3, 0x3832, 0x3b8e, 0x3a02, 0x37e2, 0x38b7, 0x2a58, 0x3b4b, 0x3b3c, 0x3914, 0x27f4, 0x3512, 0x3934, 0x3a17, 0x3a1b, 0x3bab, 0x3ae0, 0x3ab8, 0x3454, +0x32bc, 0x35d5, 0x3b7f, 0x388c, 0x3740, 0x3290, 0x2d2a, 0x2bf5, 0x304b, 0x3a10, 0x388e, 0x2e4e, 0x3126, 0x3477, 0x386d, 0x3bc5, 0x3643, 0x3589, 0x3665, 0x39c5, 0x315d, 0x3375, 0x3b3d, 0x38bb, 0x320a, 0x371d, 0x3873, 0x31df, 0x3534, 0x3b7a, 0x3809, 0x3b1f, 0x3868, 0x35ec, 0x397c, 0x3535, 0x3be5, 0x3857, 0x3ae4, 0x338c, 0x3ace, 0x3931, 0x3bcc, 0x30d9, 0x3bb2, 0x38d5, 0x3840, 0x3aef, 0x385c, 0x3974, 0x3b1b, 0x369c, 0x3b54, 0x3074, 0x39bb, 0x3a1d, 0x2e7d, 0x34f9, 0x3a6c, 0x3505, 0x3ae2, 0x30df, 0x3ac9, 0x3460, 0x3517, 0x3b85, 0x3488, 0x3440, 0x3aab, 0x3089, 0x3879, 0x3343, 0x3395, 0x329f, 0x3753, 0x3a08, 0x388b, 0x3ac1, 0x3478, 0x33f5, 0x3a65, 0x343f, 0x307e, 0x38f3, 0x37a0, 0x3259, 0x3210, 0x385a, 0x3bff, 0x297f, 0x2e3b, 0x2e41, 0x3921, 0x3654, 0x34c2, 0x3bf6, +0x2dca, 0x391f, 0x399f, 0x2fae, 0x38c6, 0x2fea, 0x36a0, 0x31d7, 0x3a0a, 0x2adb, 0x31c7, 0x3bf1, 0x313c, 0x3a0f, 0x36d3, 0x3854, 0x355f, 0x3991, 0x3b44, 0x3b0c, 0x3aa8, 0x37f0, 0x38cf, 0x3394, 0x373a, 0x38ee, 0x3871, 0x3977, 0x29ef, 0x23f6, 0x3b79, 0x2430, 0x31ea, 0x2f51, 0x3b09, 0x39fa, 0x34c0, 0x2a71, 0x3186, 0x3869, 0x2c9d, 0x3995, 0x3a89, 0x3a6a, 0x308a, 0x32f2, 0x39e9, 0x3902, 0x3970, 0x3986, 0x3931, 0x3918, 0x36ab, 0x3a86, 0x38c2, 0x39f0, 0x2ca6, 0x3bac, 0x36b8, 0x34d2, 0x383e, 0x304a, 0x299b, 0x3172, 0x3b3b, 0x38e3, 0x39a0, 0x3b28, 0x3822, 0x3548, 0x35d3, 0x3a14, 0x282b, 0x39e4, 0x2d29, 0x3a68, 0x2dc2, 0x32c2, 0x3aa2, 0x3625, 0x3553, 0x3809, 0x3993, 0x3811, 0x3456, 0x2f37, 0x3210, 0x393f, 0x323c, 0x30eb, 0x361c, 0x3276, 0x3097, 0x34ee, 0x34f8, 0x31cd, +0x3ba8, 0x2a42, 0x31b2, 0x38e3, 0x3951, 0x29e1, 0x2e0a, 0x3a69, 0x2f3f, 0x3b90, 0x3634, 0x3b61, 0x35ef, 0x34c4, 0x386f, 0x2aae, 0x38a6, 0x1edc, 0x38f0, 0x37e7, 0x3ac3, 0x32fe, 0x3645, 0x31ef, 0x33e8, 0x3447, 0x3ad8, 0x3b4e, 0x193e, 0x2514, 0x36ad, 0x3b4c, 0x39d8, 0x3285, 0x31c9, 0x3a64, 0x2c2d, 0x3994, 0x302a, 0x3a31, 0x3adb, 0x2bfa, 0x3554, 0x399f, 0x32a0, 0x393b, 0x3831, 0x3a94, 0x2f96, 0x38bb, 0x3b49, 0x2168, 0x396c, 0x3425, 0x3b8d, 0x2634, 0x38fd, 0x3894, 0x3ac8, 0x3b82, 0x3891, 0x39a0, 0x3422, 0x36e1, 0x3727, 0x3802, 0x388e, 0x392d, 0x37ec, 0x340f, 0x2424, 0x3812, 0x3af6, 0x3352, 0x36e2, 0x385e, 0x3ba8, 0x38ca, 0x3986, 0x3b9e, 0x3319, 0x3be8, 0x389f, 0x29ea, 0x35c2, 0x394f, 0x33b7, 0x388b, 0x388d, 0x3bb5, 0x34f9, 0x35ff, 0x3842, 0x3181, 0x3889, 0x38ec, +0x34b9, 0x3818, 0x3af1, 0x35b7, 0x3462, 0x39bf, 0x3641, 0x367d, 0x3560, 0x2c3b, 0x3b63, 0x2cdc, 0x33be, 0x3a92, 0x2cf5, 0x3216, 0x315f, 0x39dc, 0x3b1a, 0x37e4, 0x3446, 0x37dc, 0x3934, 0x3835, 0x3916, 0x37d0, 0x384e, 0x2d75, 0x3268, 0x3570, 0x3506, 0x38e0, 0x38c0, 0x395f, 0x38bd, 0x3022, 0x3b3e, 0x393b, 0x3479, 0x3726, 0x3432, 0x3699, 0x38dc, 0x2def, 0x2ab6, 0x2fad, 0x3a35, 0x35b5, 0x30a8, 0x3968, 0x38ab, 0x3a6e, 0x346e, 0x3988, 0x3434, 0x35b6, 0x36dc, 0x2e2e, 0x2b5c, 0x3300, 0x32f9, 0x382a, 0x3bc2, 0x3b6f, 0x2ca0, 0x2d85, 0x397c, 0x38a1, 0x36e4, 0x37f0, 0x39ec, 0x30fb, 0x3bfb, 0x3a04, 0x301a, 0x3b8c, 0x39eb, 0x3a96, 0x39bc, 0x3921, 0x319b, 0x3805, 0x3b5f, 0x39ad, 0x316b, 0x3b91, 0x2c1d, 0x3b87, 0x35d3, 0x3b01, 0x36ad, 0x393f, 0x3674, 0x3603, 0x3af9, 0x2fa1, +0x3a49, 0x34d3, 0x3af0, 0x28b4, 0x3afb, 0x3684, 0x3640, 0x37ae, 0x38d3, 0x3916, 0x3699, 0x3b36, 0x38e7, 0x3ad9, 0x39af, 0x376a, 0x388f, 0x35c7, 0x3664, 0x3840, 0x3506, 0x3b62, 0x3347, 0x3a30, 0x347c, 0x3ae5, 0x3542, 0x35d6, 0x32f6, 0x38e3, 0x2091, 0x3a7f, 0x3b5a, 0x3610, 0x38c9, 0x348b, 0x37bf, 0x346a, 0x38a2, 0x3939, 0x3842, 0x3a03, 0x3afe, 0x1ec8, 0x3158, 0x3afc, 0x39e9, 0x3b79, 0x351a, 0x314e, 0x242c, 0x34b5, 0x3bc6, 0x25a0, 0x3b95, 0x29e3, 0x3517, 0x3bff, 0x3a4b, 0x3a79, 0x355f, 0x33cd, 0x35df, 0x3ab8, 0x39d4, 0x3afe, 0x35f7, 0x38aa, 0x2fc1, 0x3342, 0x394c, 0x3603, 0x3811, 0x3a0b, 0x34eb, 0x2ca7, 0x3192, 0x3a89, 0x396e, 0x3731, 0x3af0, 0x2cca, 0x3843, 0x36e3, 0x39f5, 0x2d99, 0x2a6b, 0x33bf, 0x2609, 0x32f0, 0x32ce, 0x35dd, 0x380d, 0x32e2, 0x3b6a, 0x3a8e, +0x2ced, 0x32da, 0x3a21, 0x367d, 0x36cd, 0x3631, 0x2b0d, 0x31fd, 0x3b89, 0x2e45, 0x3916, 0x362b, 0x3852, 0x2c73, 0x32a6, 0x3013, 0x396f, 0x3984, 0x3104, 0x3a93, 0x39de, 0x3807, 0x3464, 0x36bb, 0x36e7, 0x3aa3, 0x372a, 0x38ce, 0x3a85, 0x3bae, 0x27b1, 0x34c7, 0x37e5, 0x2be5, 0x3a8c, 0x2e62, 0x3b13, 0x2ee8, 0x3782, 0x3a40, 0x31b0, 0x37fd, 0x3759, 0x3382, 0x3bcc, 0x32fd, 0x3bdc, 0x39eb, 0x3a01, 0x380e, 0x31a6, 0x39f6, 0x38fc, 0x37c5, 0x3be0, 0x347a, 0x3524, 0x2da5, 0x23ed, 0x25e0, 0x3af4, 0x27f6, 0x39cd, 0x3575, 0x3827, 0x3b1d, 0x3bf3, 0x3bd8, 0x3697, 0x3b52, 0x2ec3, 0x33c0, 0x3b26, 0x3ab5, 0x34f6, 0x30f2, 0x38ff, 0x39ae, 0x3620, 0x32a6, 0x365a, 0x3a13, 0x2a9a, 0x28a9, 0x3198, 0x3819, 0x38bb, 0x3731, 0x3b3d, 0x37db, 0x3abb, 0x3be6, 0x34c7, 0x3709, 0x3959, 0x3556, +0x3b82, 0x36c8, 0x352e, 0x3a99, 0x3942, 0x37e9, 0x39c9, 0x3900, 0x123c, 0x3b9a, 0x3b46, 0x3a9a, 0x3a06, 0x36e3, 0x38bd, 0x3622, 0x396c, 0x3a7d, 0x361f, 0x3b83, 0x297b, 0x3a4b, 0x323f, 0x3b61, 0x3ac5, 0x24e9, 0x3138, 0x359a, 0x2931, 0x3b63, 0x3a8d, 0x3aa0, 0x384f, 0x3a36, 0x3641, 0x3af0, 0x3ada, 0x3526, 0x3a5c, 0x39cc, 0x3803, 0x3572, 0x3994, 0x3b9e, 0x3a64, 0x36ae, 0x37ec, 0x3ad2, 0x312b, 0x3434, 0x3b89, 0x38d1, 0x3309, 0x3573, 0x38e2, 0x2c51, 0x3b19, 0x3a0b, 0x3a49, 0x392a, 0x3ae7, 0x341f, 0x3701, 0x3577, 0x3a6b, 0x3864, 0x356f, 0x3a73, 0x3bdd, 0x39e1, 0x3397, 0x31c9, 0x3618, 0x3973, 0x3848, 0x2e85, 0x3adb, 0x30d0, 0x349e, 0x3121, 0x397e, 0x3ae2, 0x351f, 0x3137, 0x3903, 0x3b71, 0x3a3e, 0x3189, 0x3a1a, 0x39a5, 0x38b6, 0x35ee, 0x2c56, 0x3a09, 0x33a1, 0x294a, +0x382b, 0x39a6, 0x335a, 0x3687, 0x30cf, 0x38cc, 0x32d6, 0x2181, 0x3a52, 0x2cfb, 0x3991, 0x39bc, 0x3706, 0x3a02, 0x386e, 0x3b54, 0x3781, 0x381c, 0x38eb, 0x3b5d, 0x39c2, 0x38f2, 0x3b4c, 0x3bd7, 0x292a, 0x37c1, 0x3bfa, 0x29b6, 0x381e, 0x32ca, 0x3a70, 0x3a3a, 0x3ad7, 0x3042, 0x2ecb, 0x3bb6, 0x3703, 0x38fe, 0x3866, 0x3a69, 0x3bc7, 0x3b34, 0x2cfd, 0x2220, 0x3ba7, 0x3849, 0x39b3, 0x284b, 0x3a18, 0x39d9, 0x3aaf, 0x3809, 0x3be3, 0x3749, 0x2b7b, 0x382c, 0x356c, 0x37ac, 0x2a66, 0x3abb, 0x23d2, 0x3912, 0x3085, 0x2a21, 0x3b7a, 0x3616, 0x35f1, 0x3595, 0x3bd3, 0x356b, 0x3929, 0x3b99, 0x3a5f, 0x30f4, 0x3866, 0x3a8e, 0x2ca2, 0x3904, 0x3735, 0x373a, 0x3a5f, 0x3ba5, 0x2001, 0x39dc, 0x3a26, 0x3987, 0x3163, 0x3816, 0x2b55, 0x369c, 0x3aab, 0x3508, 0x3b86, 0x340d, 0x34d6, 0x3766, +0x3691, 0x3723, 0x2e9f, 0x38a2, 0x3a6a, 0x3645, 0x2e83, 0x2f93, 0x3947, 0x3744, 0x352b, 0x365c, 0x3a34, 0x3a63, 0x3bae, 0x3977, 0x281c, 0x377c, 0x3584, 0x3bf9, 0x2f97, 0x34c8, 0x3af7, 0x38e7, 0x3acf, 0x384d, 0x3bdd, 0x387d, 0x3a8f, 0x399e, 0x34e0, 0x3a84, 0x31b5, 0x291d, 0x394d, 0x3967, 0x3a1f, 0x378e, 0x3618, 0x386e, 0x345c, 0x3916, 0x353a, 0x3176, 0x396f, 0x2bc1, 0x3b5c, 0x3b8a, 0x2d3c, 0x354b, 0x2c50, 0x3539, 0x2c35, 0x320f, 0x3914, 0x2a96, 0x3bcf, 0x3a20, 0x3a5b, 0x372e, 0x35f5, 0x3992, 0x3b39, 0x39b8, 0x3aea, 0x3bb5, 0x3a65, 0x3884, 0x2b7a, 0x3b7d, 0x3455, 0x3039, 0x36b1, 0x31c8, 0x391b, 0x3942, 0x3b4b, 0x365c, 0x3a2c, 0x39b6, 0x3b02, 0x3901, 0x33b8, 0x3ad1, 0x2c3d, 0x3955, 0x3857, 0x33bb, 0x2ef2, 0x3446, 0x3917, 0x3ad2, 0x34be, 0x3939, 0x35ab, 0x370f, +0x32c0, 0x2fdc, 0x3b63, 0x2a85, 0x3a47, 0x34c2, 0x3651, 0x31c5, 0x2b72, 0x3b43, 0x3ba3, 0x2c85, 0x3958, 0x3bc2, 0x3818, 0x35d3, 0x3bec, 0x32c4, 0x301a, 0x351a, 0x3706, 0x348e, 0x2194, 0x3830, 0x324f, 0x3a6d, 0x3b87, 0x2a73, 0x3ba9, 0x3ad9, 0x39cd, 0x3af6, 0x1d41, 0x31e5, 0x3abb, 0x3184, 0x3911, 0x318e, 0x39a7, 0x3295, 0x39fd, 0x342a, 0x3822, 0x3be0, 0x3a97, 0x386d, 0x35cf, 0x39bd, 0x29b2, 0x320f, 0x2fe7, 0x2f1e, 0x2c19, 0x3054, 0x3907, 0x3a78, 0x2093, 0x3901, 0x2e53, 0x3981, 0x3713, 0x3b18, 0x3b76, 0x3bee, 0x39f2, 0x2c64, 0x3680, 0x3b35, 0x39db, 0x34a2, 0x3963, 0x3a3c, 0x3b52, 0x34a1, 0x3951, 0x3aad, 0x2870, 0x35fc, 0x3a47, 0x3955, 0x37e9, 0x36c2, 0x3a4c, 0x2bd8, 0x34ee, 0x3751, 0x3ae0, 0x3b51, 0x2861, 0x3391, 0x2fa9, 0x3837, 0x35cb, 0x304b, 0x3b0f, 0x358b, +0x2f61, 0x3096, 0x3a54, 0x3059, 0x39af, 0x3b95, 0x2c6d, 0x2faf, 0x38f6, 0x3427, 0x3af3, 0x343d, 0x3b5a, 0x341e, 0x32d7, 0x224f, 0x3af7, 0x3159, 0x346d, 0x3535, 0x34c2, 0x371f, 0x39d4, 0x380b, 0x310c, 0x206a, 0x3a65, 0x3976, 0x3af2, 0x39ab, 0x39df, 0x327f, 0x399c, 0x2d96, 0x38a4, 0x357c, 0x2f8f, 0x3046, 0x38ae, 0x3ac4, 0x38b8, 0x2c03, 0x34c0, 0x3171, 0x39c1, 0x3802, 0x366d, 0x341f, 0x3286, 0x36f0, 0x397f, 0x2176, 0x3aac, 0x3b7a, 0x3a3a, 0x3919, 0x3585, 0x2cc4, 0x39ed, 0x2833, 0x3b9e, 0x36e3, 0x3a31, 0x3a48, 0x38a8, 0x3401, 0x3b8e, 0x38a0, 0x3a07, 0x378d, 0x3512, 0x33a7, 0x3977, 0x3862, 0x357d, 0x3922, 0x371f, 0x318d, 0x3b57, 0x3667, 0x313b, 0x3bf3, 0x35e0, 0x3ae6, 0x3668, 0x2940, 0x2d29, 0x30f4, 0x3a66, 0x3b0d, 0x3b12, 0x35dd, 0x390b, 0x3990, 0x3011, 0x2b64, +0x334f, 0x3b09, 0x398f, 0x34e0, 0x28d3, 0x3385, 0x39e4, 0x357c, 0x3a45, 0x2df3, 0x2c61, 0x3569, 0x355e, 0x3b14, 0x3012, 0x1c32, 0x3a0e, 0x39d3, 0x20f2, 0x38f4, 0x398b, 0x3b9c, 0x374a, 0x3916, 0x3a5a, 0x3892, 0x3720, 0x38de, 0x3809, 0x3173, 0x38a4, 0x3698, 0x3815, 0x30a5, 0x3a18, 0x3534, 0x2e89, 0x3657, 0x2fc1, 0x39c5, 0x3b59, 0x337f, 0x383b, 0x3ba1, 0x2d4d, 0x2d7a, 0x3b8e, 0x39c9, 0x2b4a, 0x2d1b, 0x3af3, 0x375a, 0x360a, 0x3977, 0x398f, 0x3bb2, 0x358c, 0x369e, 0x390f, 0x35ed, 0x392c, 0x33d4, 0x3a6b, 0x3ade, 0x38b2, 0x3424, 0x2d4f, 0x3aeb, 0x3802, 0x33fa, 0x31c4, 0x35ef, 0x3b51, 0x2d27, 0x3912, 0x351a, 0x36ea, 0x3869, 0x2c73, 0x264b, 0x371d, 0x3a9e, 0x3159, 0x3a54, 0x3849, 0x394e, 0x3921, 0x3435, 0x38aa, 0x33ae, 0x3950, 0x3adf, 0x3b9b, 0x3a1d, 0x3706, 0x3b43, +0x3541, 0x3b8a, 0x3528, 0x39da, 0x36fa, 0x392e, 0x3195, 0x38e7, 0x392a, 0x366f, 0x308f, 0x29d5, 0x3be5, 0x345a, 0x35b5, 0x395b, 0x3a76, 0x3224, 0x1958, 0x39e1, 0x3b98, 0x3b80, 0x30a5, 0x3461, 0x3471, 0x365a, 0x3af0, 0x30ac, 0x38dd, 0x38ca, 0x2d58, 0x3bf4, 0x35bc, 0x3478, 0x235b, 0x3b92, 0x391f, 0x39e3, 0x3b11, 0x3afb, 0x2ea4, 0x2c61, 0x3756, 0x3821, 0x38d6, 0x3938, 0x3478, 0x3813, 0x3740, 0x31ea, 0x3b6d, 0x3be6, 0x2a58, 0x36c6, 0x31ee, 0x3642, 0x3b29, 0x37df, 0x337d, 0x336b, 0x3afa, 0x352b, 0x3aa6, 0x3898, 0x37cc, 0x33f2, 0x3b20, 0x3a61, 0x380e, 0x3b37, 0x38e6, 0x3b79, 0x365a, 0x387a, 0x24c7, 0x3301, 0x3b10, 0x3afb, 0x3819, 0x3aa3, 0x38cd, 0x384d, 0x3661, 0x383e, 0x3a34, 0x3b1a, 0x2d83, 0x36a8, 0x3b75, 0x3b0e, 0x363d, 0x3a67, 0x392e, 0x389c, 0x35a3, 0x2e39, +0x3ae7, 0x3849, 0x3bc7, 0x2a99, 0x31b2, 0x3535, 0x32dc, 0x2ab5, 0x3b34, 0x398c, 0x2b94, 0x36b5, 0x39fe, 0x376a, 0x39ee, 0x34f9, 0x31ce, 0x3968, 0x3809, 0x3261, 0x38f8, 0x3b62, 0x3807, 0x3992, 0x3b8e, 0x39e0, 0x3614, 0x3b23, 0x36d0, 0x38da, 0x3a8c, 0x3b55, 0x316c, 0x3b5d, 0x3531, 0x39a5, 0x24db, 0x293c, 0x3822, 0x38dc, 0x316f, 0x3750, 0x3601, 0x30bf, 0x3a74, 0x24af, 0x258b, 0x3bec, 0x293c, 0x3868, 0x360e, 0x310d, 0x36b3, 0x344c, 0x2cf0, 0x3476, 0x3a3a, 0x2e52, 0x3939, 0x3a69, 0x34df, 0x3a5b, 0x39c0, 0x347c, 0x371d, 0x391d, 0x3913, 0x306f, 0x3bfe, 0x380f, 0x3959, 0x39bd, 0x3619, 0x34e2, 0x36c6, 0x39bc, 0x3a2c, 0x3bc3, 0x3a29, 0x2c45, 0x3ac4, 0x3b46, 0x3a5c, 0x3be6, 0x2c2c, 0x3757, 0x39cb, 0x30f0, 0x38c8, 0x3154, 0x38b5, 0x3480, 0x3835, 0x3b8c, 0x311d, 0x3570, +0x38c4, 0x3400, 0x2d91, 0x3a09, 0x312a, 0x39e9, 0x3b4e, 0x320d, 0x372d, 0x33f0, 0x3b4c, 0x2253, 0x37dd, 0x39a8, 0x3a18, 0x3aeb, 0x3b0a, 0x35eb, 0x3a4c, 0x39ff, 0x3a97, 0x2b96, 0x37c0, 0x3169, 0x3727, 0x3859, 0x3874, 0x3a11, 0x356e, 0x39e4, 0x3849, 0x38ab, 0x292b, 0x38a8, 0x2e0b, 0x1e53, 0x3814, 0x367d, 0x3962, 0x39ff, 0x3a0e, 0x38a1, 0x3249, 0x2d7c, 0x31df, 0x3924, 0x3ae4, 0x3978, 0x38c9, 0x3808, 0x288b, 0x3004, 0x3983, 0x3427, 0x3aa2, 0x3bb9, 0x38bc, 0x380d, 0x3ba3, 0x3522, 0x3607, 0x38c1, 0x35d4, 0x3a19, 0x38d6, 0x3aef, 0x3682, 0x3b5c, 0x2de4, 0x35bb, 0x363b, 0x36df, 0x3803, 0x39e5, 0x2e9f, 0x3a36, 0x3a9c, 0x36dc, 0x3908, 0x3ada, 0x3978, 0x382c, 0x3ba7, 0x398e, 0x3800, 0x3ad7, 0x387e, 0x3429, 0x2d19, 0x3971, 0x37f1, 0x3af3, 0x3986, 0x3a07, 0x382f, 0x359b, +0x2f4d, 0x3a0f, 0x3890, 0x386e, 0x3229, 0x2fb8, 0x390a, 0x390e, 0x3b53, 0x3812, 0x2961, 0x3017, 0x39d5, 0x3958, 0x2d80, 0x2fad, 0x3730, 0x3853, 0x2882, 0x3bb9, 0x3939, 0x3bab, 0x2ffa, 0x28ff, 0x3a54, 0x38d5, 0x3456, 0x3bd4, 0x3a38, 0x30a8, 0x3a38, 0x32ab, 0x3788, 0x3a1d, 0x3bec, 0x325c, 0x3981, 0x3a5a, 0x2941, 0x3925, 0x353a, 0x360a, 0x38cf, 0x374d, 0x30a4, 0x2819, 0x3021, 0x3143, 0x3684, 0x3af2, 0x3a61, 0x3a31, 0x3625, 0x38a6, 0x3a5d, 0x3963, 0x3997, 0x391a, 0x3767, 0x3b35, 0x383c, 0x37bf, 0x3753, 0x357a, 0x3993, 0x382b, 0x3128, 0x3a93, 0x3b03, 0x38e2, 0x37e9, 0x3b05, 0x3789, 0x3be9, 0x3068, 0x36f4, 0x19c7, 0x3523, 0x28f3, 0x3746, 0x324c, 0x31cc, 0x377e, 0x35b4, 0x3127, 0x3a24, 0x351a, 0x3b16, 0x3801, 0x398d, 0x39a8, 0x3b6f, 0x3933, 0x3535, 0x30e3, 0x3b25, +0x353f, 0x306c, 0x3bd1, 0x380e, 0x3b05, 0x3859, 0x2e39, 0x37b4, 0x38fb, 0x392e, 0x32c0, 0x3adb, 0x29c4, 0x3b0e, 0x28a6, 0x341f, 0x371a, 0x39bc, 0x30a1, 0x3790, 0x3439, 0x3102, 0x3bcc, 0x2f3d, 0x39ad, 0x3b38, 0x390e, 0x391f, 0x39a7, 0x3099, 0x3a5b, 0x3894, 0x3674, 0x3948, 0x3895, 0x3458, 0x3bc6, 0x3a36, 0x381e, 0x3069, 0x39fc, 0x3a3f, 0x39f5, 0x3a9d, 0x3169, 0x39a9, 0x3b16, 0x362d, 0x3951, 0x3881, 0x3ac4, 0x2ecf, 0x3b79, 0x3abe, 0x3841, 0x2c1a, 0x3b7a, 0x3083, 0x3ad1, 0x3a90, 0x3974, 0x2e92, 0x3b5f, 0x3003, 0x39c1, 0x2ff2, 0x39dc, 0x3bbf, 0x3972, 0x3997, 0x3667, 0x3409, 0x3239, 0x3aaf, 0x358e, 0x33b8, 0x397a, 0x3b54, 0x399d, 0x351d, 0x35c8, 0x3362, 0x2964, 0x3102, 0x3bc4, 0x22b3, 0x3b29, 0x3925, 0x37f0, 0x23fc, 0x3bc8, 0x39f0, 0x30cd, 0x3569, 0x3a27, 0x3b0b, +0x392e, 0x38e0, 0x3436, 0x3aa6, 0x395a, 0x397e, 0x38f6, 0x3b45, 0x3050, 0x34b0, 0x3b1d, 0x3932, 0x3a3a, 0x3915, 0x3816, 0x3b23, 0x3342, 0x2c1e, 0x3bfa, 0x3978, 0x304c, 0x2cd7, 0x3a11, 0x37d8, 0x3ad2, 0x37cb, 0x3bf8, 0x37d3, 0x3589, 0x37aa, 0x399a, 0x3661, 0x3965, 0x328a, 0x3969, 0x3100, 0x2dc4, 0x34a0, 0x30a4, 0x3950, 0x2f40, 0x32ab, 0x3904, 0x398d, 0x3293, 0x34a7, 0x33a4, 0x38b6, 0x3834, 0x3add, 0x3a08, 0x38cf, 0x3a13, 0x3a6f, 0x382e, 0x3682, 0x3b4b, 0x323e, 0x38e0, 0x38dc, 0x3854, 0x3b9d, 0x3b13, 0x3940, 0x38d4, 0x30ac, 0x3061, 0x3906, 0x3b2d, 0x38f9, 0x3ab0, 0x3a5a, 0x34fd, 0x3b15, 0x3472, 0x3985, 0x3634, 0x3940, 0x35da, 0x38ba, 0x395b, 0x3488, 0x39ca, 0x3a14, 0x2b22, 0x3829, 0x3479, 0x30a6, 0x3910, 0x34e2, 0x3506, 0x3663, 0x23b2, 0x3812, 0x3416, 0x3455, +0x3bc0, 0x3487, 0x3853, 0x3738, 0x3a19, 0x38a3, 0x339a, 0x3906, 0x3a98, 0x3a4c, 0x32bb, 0x3460, 0x2031, 0x36a4, 0x387a, 0x3141, 0x2f39, 0x2efd, 0x394e, 0x2e35, 0x3528, 0x3c00, 0x3b44, 0x342b, 0x3b4d, 0x3bdb, 0x3185, 0x39cb, 0x358a, 0x39ce, 0x2060, 0x3baa, 0x3bc4, 0x30eb, 0x3aed, 0x3734, 0x3a1f, 0x15f9, 0x3a5c, 0x372e, 0x33f9, 0x3b71, 0x3715, 0x37e3, 0x3384, 0x38ff, 0x36e6, 0x28a1, 0x2d9e, 0x280b, 0x3853, 0x3b42, 0x2eda, 0x3a63, 0x2328, 0x3830, 0x35a6, 0x39e9, 0x33df, 0x3be1, 0x220a, 0x39b4, 0x3ade, 0x2e17, 0x3831, 0x2cfe, 0x3752, 0x38fb, 0x39ce, 0x350b, 0x3600, 0x2ffd, 0x363a, 0x358b, 0x2582, 0x3510, 0x36db, 0x2e28, 0x38e0, 0x3a49, 0x277a, 0x301e, 0x39ca, 0x3861, 0x31a7, 0x3550, 0x3862, 0x3476, 0x3a8d, 0x38c2, 0x394b, 0x3156, 0x39ea, 0x3bdf, 0x3880, 0x389a, +0x3a75, 0x35a7, 0x37b1, 0x3b17, 0x24de, 0x32cd, 0x2c9b, 0x3968, 0x3a36, 0x2e6f, 0x3549, 0x3971, 0x34cb, 0x34ac, 0x3bf7, 0x34b8, 0x3841, 0x3527, 0x3a22, 0x3955, 0x3454, 0x380d, 0x38cd, 0x39b3, 0x39c4, 0x3777, 0x3737, 0x2ead, 0x39ef, 0x3420, 0x3a95, 0x35f0, 0x347f, 0x2c76, 0x2cfd, 0x33de, 0x3363, 0x3bf0, 0x3afc, 0x3ab1, 0x3b88, 0x3bcb, 0x23ba, 0x3353, 0x2169, 0x33a7, 0x3484, 0x307b, 0x20b7, 0x384d, 0x302a, 0x3448, 0x39b1, 0x39ab, 0x3be0, 0x3430, 0x3a05, 0x3715, 0x35fe, 0x1e5c, 0x3b84, 0x3b3a, 0x3b0a, 0x320e, 0x2e29, 0x2f00, 0x37c3, 0x3865, 0x37ae, 0x3959, 0x3ba0, 0x3b56, 0x3b4a, 0x3934, 0x35bf, 0x3aa7, 0x3814, 0x320c, 0x3b4a, 0x2499, 0x34bd, 0x3a25, 0x39b8, 0x318b, 0x3b42, 0x3a28, 0x3912, 0x3be5, 0x37af, 0x2cb7, 0x3799, 0x37eb, 0x3981, 0x3033, 0x2f89, 0x3471, +0x3a59, 0x3ab8, 0x3a8d, 0x3bd7, 0x3ba2, 0x39d4, 0x3a8b, 0x278d, 0x32e2, 0x2ced, 0x397f, 0x39f2, 0x3b27, 0x3798, 0x35bf, 0x3597, 0x374e, 0x3ac6, 0x3728, 0x3673, 0x252b, 0x30c8, 0x3b7b, 0x39fb, 0x38db, 0x3ac7, 0x3728, 0x3420, 0x3749, 0x3749, 0x37f3, 0x3977, 0x3181, 0x2d5c, 0x37f8, 0x3966, 0x3b9f, 0x3901, 0x369f, 0x36fa, 0x2468, 0x38f7, 0x3900, 0x37f1, 0x39d6, 0x342d, 0x35d0, 0x359f, 0x3b0b, 0x3a28, 0x34b4, 0x3979, 0x3346, 0x3b9a, 0x391f, 0x3823, 0x350e, 0x3b34, 0x3202, 0x3a2b, 0x313e, 0x355b, 0x37fb, 0x3ac1, 0x36ac, 0x2452, 0x2711, 0x360d, 0x34b7, 0x3af8, 0x2b80, 0x3621, 0x3950, 0x3824, 0x3578, 0x3900, 0x2ac0, 0x38c6, 0x39e1, 0x3565, 0x348f, 0x32d5, 0x388c, 0x38c0, 0x30e3, 0x3738, 0x3bbb, 0x3b46, 0x3b6e, 0x3bd1, 0x3b3d, 0x2d5b, 0x3acd, 0x3a67, 0x35f0, 0x3956, +0x39dd, 0x3be7, 0x3468, 0x2fb1, 0x3b73, 0x348b, 0x37a8, 0x2c37, 0x3b32, 0x375a, 0x3a14, 0x353d, 0x371f, 0x3b1b, 0x3b62, 0x3aaa, 0x39e8, 0x32d1, 0x3b3e, 0x3b74, 0x337c, 0x383e, 0x2d50, 0x3bc2, 0x33f5, 0x330f, 0x3b93, 0x3552, 0x3842, 0x37b5, 0x3918, 0x3654, 0x38a6, 0x2863, 0x3b0c, 0x38e8, 0x3b18, 0x28d3, 0x3b95, 0x3ad8, 0x38d1, 0x39ac, 0x31fb, 0x396b, 0x3b8f, 0x3818, 0x2d54, 0x3bd6, 0x340f, 0x3a89, 0x3192, 0x2cff, 0x3a00, 0x3680, 0x3843, 0x353a, 0x3591, 0x320f, 0x380e, 0x3709, 0xca6, 0x3783, 0x2f2b, 0x2ca1, 0x3885, 0x3391, 0x2c3b, 0x3933, 0x3812, 0x363e, 0x39b5, 0x39d8, 0x3a4b, 0x3951, 0x38b6, 0x399a, 0x318f, 0x2c20, 0x3925, 0x37cc, 0x3795, 0x38b8, 0x3184, 0x3961, 0x376a, 0x302b, 0x319e, 0x3b7d, 0x29a8, 0x3ae9, 0x313d, 0x3b7c, 0x3b7a, 0x3729, 0x3455, 0x2da3, +0x355c, 0x351e, 0x39d5, 0x3bf8, 0x3b11, 0x338f, 0x3990, 0x34cd, 0x3378, 0x2cbc, 0x3948, 0x39ab, 0x3be7, 0x3b59, 0x38e2, 0x2d9f, 0x378b, 0x385b, 0x31e4, 0x35ed, 0x3b0e, 0x3915, 0x3984, 0x3a44, 0x3869, 0x39f7, 0x3239, 0x3a8b, 0x36fb, 0x3081, 0x3ac3, 0x3b0e, 0x3104, 0x2078, 0x3962, 0x29bc, 0x3bb8, 0x3985, 0x3a56, 0x3648, 0x3a7d, 0x3ad3, 0x34d9, 0x3bb5, 0x38d9, 0x39b6, 0x3a2f, 0x3767, 0x3a56, 0x3620, 0x394d, 0x2d7c, 0x322a, 0x3899, 0x3a53, 0x3353, 0x383e, 0x316e, 0x348d, 0x3af5, 0x3a16, 0x3804, 0x3418, 0x3b1a, 0x3be6, 0x3166, 0x2911, 0x3656, 0x3acd, 0x392e, 0x3112, 0x3968, 0x37b7, 0x3af6, 0x38dd, 0x36b4, 0x3444, 0x3be7, 0x3991, 0x375f, 0x38da, 0x315a, 0x3684, 0x21a4, 0x38f4, 0x3860, 0x3935, 0x3b0f, 0x3b40, 0x37b6, 0x35b3, 0x3476, 0x35e9, 0x38ad, 0x3b82, 0x2964, +0x3880, 0x3844, 0x3615, 0x39d0, 0x3310, 0x306b, 0x329d, 0x338a, 0x2f84, 0x3a43, 0x300b, 0x3a47, 0x3821, 0x3b60, 0x387a, 0x3301, 0x3046, 0x351a, 0x3711, 0x38ec, 0x33a1, 0x376e, 0x39da, 0x3aae, 0x3877, 0x3960, 0x38ef, 0x3412, 0x3bbd, 0x3b24, 0x39e5, 0x355d, 0x3ab6, 0x2de8, 0x3ab5, 0x34a8, 0x3856, 0x32b4, 0x3673, 0x3a8b, 0x2e18, 0x3035, 0x3823, 0x38e7, 0x398e, 0x3743, 0x36e4, 0x381c, 0x3893, 0x3ae2, 0x331f, 0x3bdb, 0x34ae, 0x3a85, 0x277f, 0x342f, 0x38da, 0x3b62, 0x393a, 0x26bc, 0x3563, 0x39ce, 0x38e1, 0x395a, 0x3698, 0x3907, 0x30ed, 0x3536, 0x3925, 0x3bc8, 0x30ee, 0x38c2, 0x351d, 0x306e, 0x3952, 0x327f, 0x3a90, 0x3875, 0x337f, 0x3ab1, 0x342c, 0x39e7, 0x3be5, 0x33a6, 0x39af, 0x36ab, 0x2bca, 0x3984, 0x3a01, 0x319e, 0x3904, 0x3b78, 0x3785, 0x3a75, 0x3ace, 0x39c2, +0x3a6e, 0x39c8, 0x3b65, 0x342b, 0x3491, 0x320a, 0x3a81, 0x1f58, 0x3af6, 0x3881, 0x35d6, 0x389c, 0x3a23, 0x336f, 0x36ad, 0x39ab, 0x3062, 0x37fc, 0x317b, 0x3870, 0x3add, 0x3a7f, 0x37fe, 0x340b, 0x3211, 0x3944, 0x3714, 0x3806, 0x3bce, 0x3441, 0x3781, 0x397e, 0x391c, 0x3182, 0x31ac, 0x3456, 0x38f3, 0x3b15, 0x3b76, 0x3bf1, 0x3971, 0x3601, 0x318d, 0x34f2, 0x3a78, 0x35f5, 0x35c7, 0x354f, 0x3570, 0x36c5, 0x39fc, 0x35cd, 0x380e, 0x3606, 0x39c0, 0x352c, 0x3112, 0x3b6b, 0x355c, 0x3977, 0x328f, 0x2d34, 0x3abb, 0x3942, 0x1cba, 0x367a, 0x3aa6, 0x341f, 0x383f, 0x3a9a, 0x3960, 0x358f, 0x2dce, 0x21ac, 0x3bef, 0x3bca, 0x3bdb, 0x3967, 0x38aa, 0x39c1, 0x3b5b, 0x3185, 0x352c, 0x388a, 0x3893, 0x3a70, 0x34e4, 0x38e2, 0x31ba, 0x34d8, 0x32b5, 0x3aed, 0x3802, 0x2f06, 0x36d9, 0x3493, +0x3a09, 0x2994, 0x2e77, 0x3ae8, 0x3bc6, 0x3ace, 0x3926, 0x35b6, 0x326a, 0x3079, 0x3769, 0x28d1, 0x3b41, 0x357b, 0x3aed, 0x34cd, 0x3361, 0x2b6a, 0x3bc8, 0x2115, 0x3b73, 0x371f, 0x3b10, 0x2d39, 0x3092, 0x3264, 0x39df, 0x34c1, 0x2a04, 0x3a86, 0x306c, 0x33bf, 0x37dd, 0x3b17, 0x2f12, 0x3676, 0x3991, 0x3a7a, 0x3bb9, 0x3a80, 0x3441, 0x3592, 0x358d, 0x39dc, 0x31d3, 0x3887, 0x30f5, 0x3855, 0x3be6, 0x3b49, 0x3a7f, 0x3a6c, 0x2de5, 0x269d, 0x37e8, 0x3b49, 0x3026, 0x318b, 0x35e1, 0x39ba, 0x3a34, 0x3a43, 0x35a4, 0x34dd, 0x3918, 0x3a6a, 0x3780, 0x38d0, 0x3b78, 0x3b3e, 0x23b9, 0x37d9, 0x2b95, 0x3619, 0x3377, 0x2df7, 0x3b1e, 0x36de, 0x368b, 0x3bc4, 0x22d2, 0x3730, 0x30cf, 0x379d, 0x3824, 0x37fe, 0x39ba, 0x28c6, 0x36d3, 0x3587, 0x3aaa, 0x3155, 0x3a2d, 0x26ff, 0x2ffb, 0x3a19, +0x31b1, 0x302e, 0x2eba, 0x31f0, 0x3ba8, 0x3510, 0x243a, 0x30a4, 0x3638, 0x3b45, 0x2954, 0x3530, 0x39bc, 0x3944, 0x3951, 0x3026, 0x368f, 0x38e4, 0x36ce, 0x3b31, 0x38e5, 0x3471, 0x3af0, 0x3acf, 0x3842, 0x3be1, 0x319c, 0x2f2d, 0x3490, 0x3bec, 0x3b40, 0x3837, 0x3b38, 0x37fb, 0x3887, 0x383e, 0x382e, 0x31bd, 0x3ae1, 0x3a96, 0x3814, 0x37e0, 0x279d, 0x3363, 0x2ba9, 0x312b, 0x3a46, 0x3617, 0x3a0d, 0x2817, 0x3a37, 0x3981, 0x2d54, 0x3437, 0x3959, 0x3151, 0x3bc2, 0x39c9, 0x3aa3, 0x2d25, 0x3976, 0x3a2b, 0x3acd, 0x3a43, 0x3a9e, 0x39a1, 0x3914, 0x37ac, 0x3702, 0x382c, 0x38d9, 0x318c, 0x210a, 0x2c14, 0x34e2, 0x3a22, 0x2861, 0x3bc6, 0x1265, 0x3b43, 0x332e, 0x3992, 0x3330, 0x3a50, 0x3b38, 0x3aad, 0x33ce, 0x39a9, 0x33be, 0x387d, 0x3ade, 0x3a94, 0x3a56, 0x3ae4, 0x38a9, 0x1ace, +0x3551, 0x3ad8, 0x37c2, 0x3b00, 0x3b8d, 0x36d9, 0x3baa, 0x38bb, 0x34df, 0x3710, 0x3599, 0x3b7b, 0x2fea, 0x385e, 0x2dd8, 0x2e4e, 0x394d, 0x208a, 0x350b, 0x3876, 0x2df7, 0x34f4, 0x3b4c, 0x386d, 0x3260, 0x3b9d, 0x3343, 0x383f, 0x3bf4, 0x333b, 0x3bde, 0x3bd3, 0x392f, 0x3a2d, 0x3bdd, 0x341e, 0x3b13, 0x2b1c, 0x3b34, 0x2bb7, 0x2a93, 0x39c2, 0x3634, 0x358c, 0x3ba9, 0x3231, 0x3a0d, 0x3bc7, 0x3813, 0x2814, 0x3a1b, 0x3b03, 0x2e0e, 0x3616, 0x383a, 0x3578, 0x3a1f, 0x3685, 0x303c, 0x34a7, 0x3bad, 0x3548, 0x2380, 0x364f, 0x36ac, 0x28f8, 0x3a74, 0x34e2, 0x392e, 0x3409, 0x30e5, 0x340f, 0x3581, 0x36a3, 0x3366, 0x35f1, 0x30c4, 0x374f, 0x3921, 0x3aec, 0x3881, 0x2b48, 0x38e7, 0x31ce, 0x3626, 0x3b4b, 0x3b9f, 0x34cd, 0x313e, 0x379e, 0x39a6, 0x38cf, 0x38e3, 0x3031, 0x398f, 0x3bbc, +0x3a15, 0x3737, 0x361a, 0x3b25, 0x3992, 0x350a, 0x3698, 0x37de, 0x3a78, 0x37f5, 0x36d2, 0x3a12, 0x348e, 0x3923, 0x352f, 0x3b28, 0x3989, 0x39d8, 0x3b7b, 0x37cf, 0x3bfd, 0x3143, 0x31f5, 0x36a2, 0x3ae8, 0x3b3d, 0x3aab, 0x320e, 0x2ecc, 0x368f, 0x29c4, 0x36d0, 0x3a8c, 0x35c1, 0x2daa, 0x3128, 0x3b96, 0x388c, 0x3786, 0x349a, 0x390b, 0x2843, 0x381f, 0x2d05, 0x31ee, 0x3976, 0x3722, 0x368a, 0x3899, 0x3b64, 0x3b84, 0x3ae4, 0x3135, 0x3838, 0x387c, 0x2636, 0x2cd7, 0x3bcd, 0x39a6, 0x3ac6, 0x34c3, 0x364d, 0x384b, 0x2c55, 0x34b6, 0x201f, 0x38de, 0x2fc0, 0x389c, 0x381b, 0x36a8, 0x372f, 0x2b5c, 0x3491, 0x30d7, 0x38d2, 0x3893, 0x33a0, 0x33c8, 0x3405, 0x3490, 0x387d, 0x3411, 0x3907, 0x3bc0, 0x3aa9, 0x3023, 0x395c, 0x3b10, 0x3b8e, 0x3791, 0x3b17, 0x3980, 0x3b13, 0x336a, 0x354d, +0x39d9, 0x35f5, 0x3034, 0x300f, 0x38e5, 0x395c, 0x3394, 0x392f, 0x390a, 0x2567, 0x3151, 0x3861, 0x3a84, 0x3759, 0x382b, 0x3185, 0x359b, 0x3a6b, 0x3927, 0x3b6c, 0x39ed, 0x2cc3, 0x34bc, 0x389f, 0x3617, 0x335f, 0x3a9e, 0x35c0, 0x378c, 0x38e7, 0x2d21, 0x2ec0, 0x3874, 0x3af1, 0x36c6, 0x3b7e, 0x364f, 0x386e, 0x34f3, 0x2761, 0x386e, 0x3ac9, 0x308e, 0x3ad6, 0x3194, 0x35f7, 0x31d0, 0x3a36, 0x34d6, 0x36b0, 0x34bf, 0x38cb, 0x2f2c, 0x3945, 0x325c, 0x39d0, 0x1fce, 0x3a04, 0x3118, 0x3a0c, 0x3a56, 0x3794, 0x3744, 0x3ad3, 0x36c3, 0x2700, 0x392c, 0x34fa, 0x3b4d, 0x2649, 0x393c, 0x3967, 0x37f7, 0x369e, 0x3ac1, 0x39b3, 0x39a1, 0x36a4, 0x3645, 0x39cc, 0x3af9, 0x31e3, 0x237a, 0x35d3, 0x35fa, 0x3b53, 0x3872, 0x3bcc, 0x3a9c, 0x3ba9, 0x34e9, 0x34ec, 0x3b31, 0x3b09, 0x31d7, 0x3a45, +0x33ab, 0x38b0, 0x384c, 0x3a48, 0x3340, 0x390f, 0x340e, 0x3937, 0x2ceb, 0x3b0d, 0x3b15, 0x3979, 0x3884, 0x376b, 0x3b79, 0x39d2, 0x36fb, 0x3442, 0x3994, 0x35c1, 0x3b6f, 0x3918, 0x3bea, 0x37f1, 0x3b25, 0x3bd5, 0x3ab4, 0x3604, 0x3593, 0x39fc, 0x3893, 0x37f7, 0x3a56, 0x3118, 0x3444, 0x36ac, 0x315a, 0x2eaa, 0x3a55, 0x3bea, 0x372f, 0x3b79, 0x38fa, 0x32a9, 0x2a8d, 0x326b, 0x39dd, 0x2c6e, 0x3a63, 0x39a8, 0x34dd, 0x2fa8, 0x3afa, 0x3ab1, 0x3854, 0x2e58, 0x3a7b, 0x39e6, 0x3489, 0x3631, 0x3826, 0x3ad2, 0x384d, 0x3565, 0x3a21, 0x3beb, 0x334d, 0x3603, 0x2de5, 0x31fa, 0x3111, 0x3455, 0x390c, 0x38aa, 0x3822, 0x2e75, 0x36cb, 0x3bb0, 0x38d7, 0x386a, 0x336f, 0x3150, 0x395a, 0x3219, 0x39f2, 0x3675, 0x2b46, 0x39d6, 0x2e2f, 0x3752, 0x3b23, 0x3670, 0x3b64, 0x39f4, 0x3bec, 0x3848, +0x389e, 0x3214, 0x3618, 0x32ca, 0x333b, 0x2fe6, 0x2cf6, 0x36f3, 0x3748, 0x380b, 0x3b5f, 0x3b4e, 0x2dce, 0x2474, 0x3a17, 0x320e, 0x38ac, 0x3b44, 0x3595, 0x3bd7, 0x3896, 0x32ea, 0x37d0, 0x34a8, 0x31f2, 0x3a51, 0x3b6c, 0x3753, 0x3abd, 0x3b26, 0x24a0, 0x32fb, 0x3a3a, 0x3bf9, 0x2fc5, 0x390d, 0x3a42, 0x331d, 0x3b2e, 0x370e, 0x32d3, 0x3b26, 0x3b7f, 0x2d64, 0x39ca, 0x3405, 0x3962, 0x36c0, 0x2ffe, 0x3b76, 0x3811, 0x3287, 0x34d7, 0x3beb, 0x3a37, 0x3756, 0x390e, 0x398b, 0x3160, 0x3bf9, 0x3a09, 0x38ee, 0x382a, 0x366e, 0x3836, 0x3b95, 0x3b30, 0x3bd4, 0x1c94, 0x33c6, 0x3391, 0x3b2c, 0x3b07, 0x37b6, 0x3499, 0x3942, 0x2dc7, 0x357d, 0x380f, 0x32e5, 0x3628, 0x386a, 0x3b66, 0x395b, 0x3611, 0x3bef, 0x3935, 0x34c3, 0x3354, 0x39ab, 0x3b9e, 0x34f5, 0x358b, 0x326f, 0x3952, 0x359f, +0x39c7, 0x399f, 0x2d59, 0x379e, 0x33fd, 0x3b7a, 0x327e, 0x392d, 0x3b6c, 0x34b5, 0x3a50, 0x365b, 0x392f, 0x3b31, 0x3a20, 0x3131, 0x3a43, 0x292e, 0x3a0c, 0x3bb1, 0x3bf6, 0x29e8, 0x32d4, 0x3b07, 0x3189, 0x32d5, 0x3689, 0x3a3e, 0x3857, 0x281c, 0x2b7b, 0x3545, 0x35a9, 0x3aa0, 0x2cf4, 0x3356, 0x3b2f, 0x3845, 0x3a9d, 0x38fa, 0x285c, 0x3aef, 0x387a, 0x2121, 0x376d, 0x30bb, 0x38b8, 0x3ad4, 0x3bf3, 0x3219, 0x398e, 0x2dc8, 0x31ae, 0x38b2, 0x34f9, 0x3846, 0x3bb0, 0x3bc9, 0x2fd2, 0x3403, 0x34c1, 0x3043, 0x3823, 0x38f1, 0x384a, 0x396a, 0x37c2, 0x3839, 0x3441, 0x3821, 0x2774, 0x380f, 0x39e4, 0x3832, 0x375b, 0x3a10, 0x3894, 0x2f6b, 0x3586, 0x34fe, 0x3bad, 0x3856, 0x35c6, 0x38ad, 0x3835, 0x368d, 0x39a1, 0x3736, 0x349e, 0x32c2, 0x2df5, 0x34c5, 0x3ba0, 0x349b, 0x35af, 0x35aa, +0x3a17, 0x3696, 0x3169, 0x3433, 0x3800, 0x38f3, 0x37f8, 0x376a, 0x2ec7, 0x3bad, 0x373f, 0x281c, 0x3968, 0x3403, 0x2c9e, 0x3b1f, 0x3003, 0x35cc, 0x3810, 0x367c, 0x3a68, 0x26e9, 0x34e2, 0x3902, 0x2edb, 0x3478, 0x2a6a, 0x3a45, 0x3867, 0x38c5, 0x3a61, 0x388c, 0x3738, 0x34be, 0x35e6, 0x36b3, 0x325c, 0x35c6, 0x384e, 0x358d, 0x3894, 0x31c8, 0x3820, 0x363b, 0x380e, 0x385f, 0x38ac, 0x36a3, 0x31da, 0x3b46, 0x3715, 0x37ec, 0x386b, 0x35c7, 0x3100, 0x3a7a, 0x3504, 0x3810, 0x3a22, 0x36a9, 0x3995, 0x3b0c, 0x37f0, 0x2d4e, 0x36c4, 0x347e, 0x39dc, 0x3a2a, 0x3951, 0x3bca, 0x3bf5, 0x3bb3, 0x3b46, 0x3afa, 0x311c, 0x3929, 0x3291, 0x372f, 0x306d, 0x2843, 0x391a, 0x30c4, 0x3a5b, 0x3be7, 0x3924, 0x38ae, 0x3734, 0x32bd, 0x3b39, 0x39f6, 0x3aaa, 0x327a, 0x3045, 0x383c, 0x3303, 0x352c, +0x3bcd, 0x3baa, 0x3116, 0x3ad3, 0x39bc, 0x3aee, 0x36b3, 0x3a06, 0x3408, 0x3971, 0x3545, 0x38aa, 0x3a21, 0x3743, 0x367e, 0x3ac3, 0x3a54, 0x2cad, 0x3820, 0x39eb, 0x398a, 0x34a9, 0x3b95, 0x3a34, 0x32bb, 0x3bda, 0x3704, 0x3aa2, 0x39a3, 0x3953, 0x38ed, 0x3821, 0x39eb, 0x36b4, 0x38b5, 0x382e, 0x3753, 0x3203, 0x3796, 0x2e26, 0x303a, 0x3895, 0x39a3, 0x3a1f, 0x3ad6, 0x302f, 0x376d, 0x347f, 0x32fc, 0x382d, 0x39fa, 0x2d39, 0x32b2, 0x2fef, 0x3044, 0x3497, 0x39a9, 0x3994, 0x346d, 0x38a8, 0x3487, 0x3431, 0x39a7, 0x375a, 0x3935, 0x2eaf, 0x2ff3, 0x3467, 0x35cf, 0x3738, 0x2df4, 0x3b14, 0x3978, 0x36a8, 0x3406, 0x3aad, 0x3169, 0x355a, 0x3a49, 0x2e40, 0x34a4, 0x34ac, 0x308a, 0x3546, 0x3b34, 0x3514, 0x3aaf, 0x3707, 0x3999, 0x3a99, 0x2cc7, 0x326d, 0x3a95, 0x3bb1, 0x315b, 0x3989, +0x39d7, 0x3684, 0x39f7, 0x3963, 0x31e0, 0x3a96, 0x3492, 0x3b63, 0x37fd, 0x3b38, 0x37ba, 0x34fd, 0x365b, 0x3496, 0x3a38, 0x3906, 0x3bed, 0x39d9, 0x389b, 0x34eb, 0x3332, 0x2b11, 0x31c8, 0x3889, 0x3810, 0x30b7, 0x28b6, 0x29d1, 0x3420, 0x3222, 0x387e, 0x3a70, 0x2cf8, 0x3b07, 0x304f, 0x3998, 0x360b, 0x3b8b, 0x3434, 0x38ee, 0x304f, 0x39e7, 0x3685, 0x3981, 0x3a46, 0x39af, 0x387a, 0x36e7, 0x3a5e, 0x33ef, 0x3a38, 0x32d1, 0x39f0, 0x345c, 0x36af, 0x3416, 0x3be9, 0x23fa, 0x3b3a, 0x3b59, 0x3732, 0x3578, 0x3bd8, 0x3a83, 0x387d, 0x3ad8, 0x394e, 0x3431, 0x3748, 0x3809, 0x3ac3, 0x3a1a, 0x38e0, 0x37ca, 0x2e29, 0x386d, 0x2e50, 0x360f, 0x31e4, 0x3715, 0x3986, 0x35a7, 0x3bd1, 0x3ae4, 0x3432, 0x3750, 0x38e8, 0x3926, 0x3b12, 0x3460, 0x358f, 0x3aab, 0x3906, 0x355a, 0x27fc, 0x3a2f, +0x386f, 0x3b47, 0x309b, 0x3098, 0x3b47, 0x35a2, 0x3677, 0x39a2, 0x35a4, 0x389e, 0x3b5f, 0x37e9, 0x32d3, 0x30cb, 0x2cc7, 0x2f1d, 0x392f, 0x3bfb, 0x392b, 0x3909, 0x3a3a, 0x38f8, 0x2e08, 0x3962, 0x358f, 0x37ea, 0x34db, 0x3bc8, 0x38ca, 0x3ba2, 0x3a0b, 0x39ba, 0x369c, 0x2cce, 0x3988, 0x3a39, 0x3be5, 0x2a39, 0x35c1, 0x3643, 0x37c9, 0x35bf, 0x352f, 0x3a7f, 0x350f, 0x330f, 0x3a34, 0x36aa, 0x38da, 0x2fc0, 0x387b, 0x37b7, 0x34a8, 0x396b, 0x39f3, 0x37f4, 0x3649, 0x3959, 0x3024, 0x373f, 0x38fd, 0x38c3, 0x39d3, 0x340b, 0x38cb, 0x30c4, 0x3877, 0x3af4, 0x28ef, 0x3a81, 0x2ff9, 0x3992, 0x2902, 0x3b16, 0x3590, 0x3a95, 0x3708, 0x3a63, 0x1ba7, 0x347d, 0x3a3e, 0x3bd4, 0x3946, 0x2da1, 0x38df, 0x396d, 0x39c9, 0x3810, 0x39de, 0x3b69, 0x30ad, 0x3748, 0x3678, 0x3a92, 0x39b8, 0x30c9, +0x3990, 0x2cd8, 0x303c, 0x2c03, 0x35c0, 0x3b10, 0x39b6, 0x35f6, 0x3bb8, 0x3733, 0x320f, 0x3a45, 0x3457, 0x392e, 0x3462, 0x36f3, 0x32d4, 0x3025, 0x24ba, 0x3826, 0x37a7, 0x3714, 0x38d7, 0x3630, 0x3a29, 0x3582, 0x3af6, 0x2639, 0x3b0e, 0x3872, 0x39c2, 0x2e2e, 0x396d, 0x3b99, 0x34b3, 0x3551, 0x3162, 0x3a7d, 0x35f0, 0x351b, 0x3661, 0x3ad0, 0x39cf, 0x25f1, 0x3987, 0x3296, 0x365f, 0x3902, 0x38fd, 0x3745, 0x3990, 0x3972, 0x3317, 0x3a87, 0x3985, 0x392d, 0x36a3, 0x34f1, 0x396f, 0x3a7a, 0x3465, 0x3362, 0x3b0b, 0x208d, 0x37e0, 0x3ade, 0x31dc, 0x3854, 0x34cc, 0x3874, 0x311e, 0x38ec, 0x35e2, 0x2de6, 0x3219, 0x38b0, 0x3be3, 0x3381, 0x3b39, 0x38e6, 0x3b20, 0x3bea, 0x38e2, 0x38d6, 0x39e6, 0x2db4, 0x3884, 0x1cb8, 0x176a, 0x2eba, 0x3bb1, 0x37fe, 0x371a, 0x3b1c, 0x3402, 0x3462, +0x3632, 0x2a7c, 0x3897, 0x32c6, 0x34d7, 0x3ad2, 0x3b38, 0x3aa2, 0x2c56, 0x392e, 0x376a, 0x3356, 0x36b3, 0x3b8d, 0x2fc0, 0x3b16, 0x38dd, 0x2f21, 0x3852, 0x3aeb, 0x3aad, 0x379e, 0x32c9, 0x324b, 0x3b1f, 0x382a, 0x3929, 0x2cbe, 0x3867, 0x3651, 0x389b, 0x2fd3, 0x3809, 0x3ade, 0x38ba, 0x3a92, 0x398d, 0x38c2, 0x3061, 0x37f4, 0x3ab9, 0x3a17, 0x2d4b, 0x3255, 0x3656, 0x3884, 0x3b75, 0x3b1a, 0x3a56, 0x353d, 0x2fab, 0x3a0d, 0x3180, 0x3bd5, 0x3ac0, 0x3298, 0x3a5f, 0x3009, 0x39d4, 0x3b69, 0x39ad, 0x3b16, 0x36b3, 0x2c5b, 0x3ab1, 0x39d1, 0x30bc, 0x36ba, 0x2f6d, 0x3817, 0x3b4c, 0x3b31, 0x39d1, 0x348b, 0x3b82, 0x3032, 0x2586, 0x3bbf, 0x2dea, 0x2f5f, 0x383a, 0x3bb8, 0x3a4c, 0x3421, 0x33f7, 0x3ab6, 0x398e, 0x3335, 0x3a1c, 0x37dd, 0x2fc9, 0x3824, 0x3463, 0x3bed, 0x3b6c, 0x313b, +0x3b2d, 0x3426, 0x335b, 0x3952, 0x347e, 0x3ba0, 0x3bbb, 0x39ec, 0x3b16, 0x3561, 0x3a65, 0x3196, 0x3bd4, 0x30b6, 0x3891, 0x3749, 0x3a0b, 0x3a40, 0x3485, 0x3b5d, 0x3b0d, 0x33b5, 0x3812, 0x37be, 0x3a0a, 0x38c9, 0x38d2, 0x398f, 0x3235, 0x3a91, 0x2b81, 0x26f6, 0x2d3a, 0x1cd9, 0x2ea1, 0x3970, 0x3a5b, 0x30e8, 0x2a5f, 0x390b, 0x38f4, 0x396c, 0x3b50, 0x3b24, 0x35dd, 0x396c, 0x33c7, 0x2c40, 0x397b, 0x390b, 0x348f, 0x38df, 0x38fb, 0x3be2, 0x3122, 0x3bb5, 0x2c56, 0x322f, 0x3836, 0x1ee5, 0x3b35, 0x359e, 0x3966, 0x39b3, 0x3163, 0x2902, 0x38b4, 0x3ace, 0x34ed, 0x3add, 0x3428, 0x369b, 0x3116, 0x3a77, 0x34f6, 0x39c9, 0x3263, 0x359d, 0x352c, 0x3b0b, 0x38c9, 0x31dc, 0x373d, 0x2ad4, 0x3452, 0x3156, 0x360d, 0x2d93, 0x38d0, 0x3978, 0x3901, 0x36f4, 0x3b26, 0x2e42, 0x3983, 0x3bce, +0x3990, 0x37f3, 0x2645, 0x3938, 0x3868, 0x3a22, 0x3a6a, 0x3b78, 0x3b4e, 0x371f, 0x39fb, 0x2e11, 0x38b8, 0x36d2, 0x3468, 0x34f2, 0x39bf, 0x3b8e, 0x3710, 0x348b, 0x38d6, 0x3aae, 0x35f0, 0x3ae0, 0x3ba8, 0x3857, 0x39c1, 0x3a03, 0x35b3, 0x3a2c, 0x3a7b, 0x350c, 0x30f8, 0x3830, 0x25aa, 0x24b3, 0x380b, 0x3879, 0x3929, 0x354d, 0x38b4, 0x2fea, 0x34bc, 0x3ba6, 0x3832, 0x3a2a, 0x387b, 0x343f, 0x3114, 0x2edb, 0x36ec, 0x3a24, 0x32ea, 0x2f80, 0x3675, 0x2df4, 0x39ce, 0x37ea, 0x3091, 0x3766, 0x38e3, 0x37d4, 0x39bc, 0x3425, 0x3336, 0x38aa, 0x34b9, 0x3bce, 0x37dc, 0x3af9, 0x39a9, 0x3b3e, 0x386a, 0x392b, 0x3942, 0x338a, 0x36f9, 0x36f3, 0x3b56, 0x33e2, 0x3bd1, 0x38aa, 0x3337, 0x3a61, 0x3ac5, 0x377c, 0x3819, 0x2ff3, 0x3870, 0x3b2c, 0x3925, 0x38cd, 0x3b0e, 0x3719, 0x3a2a, 0x326d, +0x32b3, 0x35f8, 0x3b6e, 0x3bde, 0x3baf, 0x3027, 0x3433, 0x3819, 0x2eab, 0x3b4f, 0x34a1, 0x34f8, 0x393a, 0x3a09, 0x38f7, 0x3489, 0x37ae, 0x3bfa, 0x2dc1, 0x3468, 0x26f5, 0x343f, 0x3b4e, 0x39b2, 0x339a, 0x3441, 0x3b51, 0x38dc, 0x3914, 0x2699, 0x3339, 0x2f3a, 0x38f1, 0x3a57, 0x2e7e, 0x36a4, 0x2cf6, 0x31e6, 0x3802, 0x3a75, 0x39f5, 0x38f5, 0x3327, 0x38d5, 0x36b4, 0x3b6c, 0x2279, 0x3b08, 0x39e9, 0x380f, 0x3b8c, 0x3432, 0x39c9, 0x343d, 0x38ad, 0x3be5, 0x3602, 0x3bc4, 0x3952, 0x350a, 0xc4c, 0x267d, 0x35e1, 0x3bdb, 0x3937, 0x348d, 0x3768, 0x3a78, 0x3717, 0x3342, 0x34f0, 0x36db, 0x2788, 0x3b52, 0x2acf, 0x3bef, 0x3899, 0x3279, 0x38e4, 0x3bc5, 0x38ed, 0x3369, 0x3652, 0x34b4, 0x378a, 0x3bf9, 0x3a9d, 0x3841, 0x3a01, 0x3065, 0x35a4, 0x3b47, 0x376f, 0x35e0, 0x34f0, 0x396c, +0x3a1e, 0x354b, 0x390b, 0x3165, 0x3435, 0x329e, 0x386e, 0x36ba, 0x2046, 0x385b, 0x3493, 0x3537, 0x2e29, 0x3bda, 0x3b0c, 0x35e0, 0x34b8, 0x25c1, 0x3698, 0x2ef1, 0x3516, 0x330e, 0x387a, 0x37eb, 0x3011, 0x2658, 0x350a, 0x393c, 0x2c1c, 0x2dbc, 0x25f3, 0x376f, 0x3a1c, 0x3112, 0x2c6d, 0x2e2a, 0x3a3d, 0x3ba0, 0x391a, 0x36ac, 0x3876, 0x32b9, 0x3ad9, 0x36f8, 0x39aa, 0x3095, 0x348d, 0x39a6, 0x35be, 0x3747, 0x31e9, 0x33b9, 0x31c0, 0x3926, 0x2d3f, 0x3b32, 0x3412, 0x3b52, 0x29eb, 0x333e, 0x3af4, 0x3974, 0x36ab, 0x3ba6, 0x3aed, 0x3807, 0x2b53, 0x33b0, 0x35d7, 0x37aa, 0x3838, 0x3478, 0x2f9d, 0x3b1b, 0x3b31, 0x30fb, 0x30fa, 0x38d7, 0x329f, 0x372b, 0x31b1, 0x38a9, 0x3932, 0x315d, 0x2d85, 0x374b, 0x3aa3, 0x3621, 0x2da1, 0x373a, 0x386d, 0x38ba, 0x3a4e, 0x1eea, 0x3887, 0x3438 +}; \ No newline at end of file diff --git a/redmule/inc/x_input.h b/redmule/inc/x_input.h new file mode 100644 index 0000000..6295303 --- /dev/null +++ b/redmule/inc/x_input.h @@ -0,0 +1,99 @@ + /* Header file generated by RedMulE Golden Model */ +uint16_t x_inp [9216] = { +0x3122, 0x369c, 0x39bd, 0x3b58, 0x3be0, 0x3a5a, 0x3416, 0x386c, 0x3a11, 0x350e, 0x38ab, 0x35ad, 0x35d9, 0x390f, 0x3565, 0x36b0, 0x3aad, 0x3a64, 0x3797, 0x368d, 0x35a6, 0x396f, 0x2a5e, 0x3a29, 0x38a7, 0x33a8, 0x3409, 0x3621, 0x3b02, 0x34a7, 0x3a94, 0x3819, 0x3695, 0x380a, 0x3acd, 0x396a, 0x395a, 0x3663, 0x3bbe, 0x3306, 0x3a4d, 0x3b0d, 0x3bc3, 0x30fa, 0x32ab, 0x31fd, 0x3bc9, 0x38ce, 0x3180, 0x3980, 0x34ec, 0x3a84, 0x3bc9, 0x3719, 0x3a76, 0x38ab, 0x3707, 0x3904, 0x33d9, 0x34d6, 0x3053, 0x3bd4, 0x2f03, 0x1dbf, 0x2e5f, 0x36fa, 0x191d, 0x3187, 0x223f, 0x384b, 0x36dc, 0x3549, 0x343f, 0x36d8, 0x36de, 0x31ff, 0x174e, 0x30d3, 0x3452, 0x3258, 0x30b1, 0x3127, 0x3840, 0x3991, 0x3b1b, 0x3a7c, 0x36ec, 0x2304, 0x3946, 0x3876, 0x3a5d, 0x3a76, 0x2f78, 0x3b01, 0x3934, 0x3bc4, +0x2b27, 0x3669, 0x38ce, 0x2cde, 0x38e1, 0x3abd, 0x2c4f, 0x3971, 0x3964, 0x3a9d, 0x38b9, 0x390f, 0x3475, 0x3b16, 0x38f0, 0x397e, 0x3996, 0x3223, 0x36c6, 0x3bfd, 0x3161, 0x3a70, 0x3961, 0x38e1, 0x2b2b, 0x32c1, 0x3683, 0x36bb, 0x381a, 0x3b92, 0x356a, 0x38c4, 0x38df, 0x3a7b, 0x3b3a, 0x35a2, 0x27d3, 0x3af2, 0x3489, 0x38c7, 0x3985, 0x3a03, 0x30f6, 0x3a92, 0x38d5, 0x39a0, 0x3749, 0x3784, 0x1c70, 0x356b, 0x2d5f, 0x39db, 0x37ab, 0x39fb, 0x3b2c, 0x2ef8, 0x3336, 0x3afd, 0x38f0, 0x358f, 0x3ac4, 0x293d, 0x3328, 0x3741, 0x3993, 0x3463, 0x3918, 0x332e, 0x356d, 0x36ee, 0x34e7, 0x3757, 0x34b5, 0x3b7c, 0x3a63, 0x3b6c, 0x34a6, 0x34f3, 0x346a, 0x2bcf, 0x363d, 0x3081, 0x3abc, 0x35a5, 0x36ff, 0x2cb7, 0x2a53, 0x37a3, 0x3a98, 0x3b92, 0x3a9a, 0x38ff, 0x39dc, 0x3289, 0x3357, 0x39f6, +0x3b74, 0x3a5e, 0x3ba9, 0x365e, 0x3aa5, 0x3b42, 0x39b5, 0x2fb7, 0x39e5, 0x263d, 0x3405, 0x259f, 0x381d, 0x38dc, 0x3152, 0x37f5, 0x38b6, 0x3bfd, 0x3a4e, 0x3804, 0x370f, 0x382f, 0x395d, 0x38a5, 0x2edd, 0x3ac9, 0x34dc, 0x2a2a, 0x2aba, 0x35d0, 0x36b4, 0x3ae1, 0x3b35, 0x3a49, 0x3b5e, 0x38e8, 0x30ed, 0x3ab4, 0x3a92, 0x3bd9, 0x3437, 0x36d0, 0x3aad, 0x36d6, 0x35ed, 0x3635, 0x3bf7, 0x345a, 0x300a, 0x31d2, 0x340c, 0x38fd, 0x39ad, 0x39ac, 0x38bf, 0x38f6, 0x2f7e, 0x3685, 0x3be9, 0x3af0, 0x35d1, 0x35fb, 0x35ad, 0x3a6d, 0x3a78, 0x3813, 0x36a8, 0x3a6e, 0x39fc, 0x3918, 0x2179, 0x38a2, 0x37f9, 0x38dc, 0x24a9, 0x3647, 0x386a, 0x2890, 0x2d0f, 0x31e3, 0x394a, 0x36b2, 0x3071, 0x292d, 0x3568, 0x3adb, 0x394a, 0x2ff6, 0x3142, 0x322b, 0x2696, 0x3954, 0x229d, 0x383a, 0x2f3d, 0x3b4e, +0x3b1c, 0xd7b, 0x379c, 0x3421, 0x39a0, 0x3557, 0x2e38, 0x3b3a, 0x270e, 0x250b, 0x3b0a, 0x3aa1, 0x2d72, 0x351c, 0x3a11, 0x382b, 0x37f8, 0x3a82, 0x39e8, 0x3a1d, 0x3a45, 0x2fb7, 0x341b, 0x39ea, 0x3646, 0x3b27, 0x3abd, 0x350b, 0x3a3a, 0x3557, 0x37db, 0x315b, 0x305a, 0x3bd7, 0x3b33, 0x32b9, 0x3503, 0x2749, 0x3532, 0x37f2, 0x348e, 0x3422, 0x32a4, 0x37bf, 0x3b7b, 0x378f, 0x3476, 0x3a1a, 0x39a2, 0x35d9, 0x3b4d, 0x39f0, 0x34a7, 0x36c6, 0x3ab4, 0x39c2, 0x385b, 0x3add, 0x34cf, 0x3604, 0x39e1, 0x3872, 0x3751, 0x32db, 0x38df, 0x3602, 0x3509, 0x37d5, 0x342e, 0x39ef, 0x2f59, 0x2505, 0x314d, 0x35ff, 0x3bae, 0x3b38, 0x32af, 0x3b9b, 0x3b03, 0x2c5e, 0x3940, 0x38ef, 0x324c, 0x399a, 0x3a14, 0x39c6, 0x3a33, 0x382a, 0x3b36, 0x3ae7, 0x3b71, 0x3020, 0x3a14, 0x33d2, 0x3b1d, 0x2660, +0x2ace, 0x3a36, 0x39d6, 0x398d, 0x3ae2, 0x39dc, 0x3bb3, 0x26d5, 0x3a4a, 0x36ad, 0x3b31, 0x2b7e, 0x3baf, 0x3314, 0x2e0b, 0x31c1, 0x25a9, 0x378c, 0x3b45, 0x3ae9, 0x3586, 0x39fe, 0x3b5b, 0x3b18, 0x3a1b, 0x399b, 0x3aad, 0x30e1, 0x3b3b, 0x2d9f, 0x2614, 0x354e, 0x3806, 0x393e, 0x3564, 0x2346, 0x3b5e, 0x382f, 0x31c9, 0x3be1, 0x2e41, 0x394e, 0x346a, 0x3976, 0x38e7, 0x3503, 0x387f, 0x3025, 0x3232, 0x283b, 0x37d2, 0x32aa, 0x36e0, 0x3b92, 0x3a41, 0x2f32, 0x34cc, 0x3a30, 0x3a69, 0x3671, 0x3894, 0x3b3d, 0x3468, 0x3836, 0x2303, 0x2e8f, 0x3186, 0x37d1, 0x371f, 0x381a, 0x3af8, 0x2ca8, 0x31ba, 0x3a59, 0x3971, 0x3bdb, 0x3add, 0x35af, 0x3b81, 0x2f19, 0x3963, 0x3b58, 0x3aa4, 0x3b98, 0x3808, 0x33b7, 0x3833, 0x3506, 0x3467, 0x2f27, 0x35be, 0x346e, 0x39c9, 0x3677, 0x31b5, 0x3bf4, +0x3506, 0x30a7, 0x370d, 0x367e, 0x3264, 0x2fb7, 0x30d5, 0x3814, 0x3152, 0x38aa, 0x3a77, 0x2dde, 0x3077, 0x38df, 0x3744, 0x2af8, 0x37f8, 0x3aa2, 0x39e3, 0x3ada, 0x3931, 0x3bc0, 0x34b2, 0x35de, 0x33c8, 0x34d4, 0x395a, 0x36a1, 0x3a3a, 0x33e3, 0x38d7, 0x3476, 0x3b6f, 0x3506, 0x3448, 0x3b2c, 0x3766, 0x382b, 0x2efd, 0x33ec, 0x242c, 0x3976, 0x3027, 0x2c5f, 0x37df, 0x3b1a, 0x3641, 0x352d, 0x39ab, 0x3b49, 0x3a91, 0x35ba, 0x382f, 0x2b4c, 0x366f, 0x2f0b, 0x33e3, 0x2ccd, 0x3530, 0x33d0, 0x264e, 0x39b4, 0x3968, 0x29f5, 0x3a2c, 0x299a, 0x39c4, 0x380d, 0x3be2, 0x34b2, 0x3879, 0x3532, 0x34ac, 0x3685, 0x3b5e, 0x3426, 0x3b4d, 0x34ec, 0x32e0, 0x3767, 0x39d7, 0x3119, 0x39db, 0x36e1, 0x39ec, 0x388d, 0x3731, 0x314a, 0x39c5, 0x3325, 0x3284, 0x38c5, 0x2cf4, 0x2180, 0x3614, 0x382e, +0x2afc, 0x3562, 0x365c, 0x32dd, 0x3a1d, 0x39c0, 0x3510, 0x3ae7, 0x22b7, 0x3538, 0x3604, 0x3bb0, 0x3a8e, 0x38ca, 0x379d, 0x36f1, 0x3947, 0x317f, 0x2bfa, 0x3bc0, 0x3ad4, 0x3a19, 0x308b, 0x390b, 0x353d, 0x3599, 0x344e, 0x3159, 0x39fc, 0x362e, 0x3bf5, 0x3246, 0x38e9, 0x3551, 0x3981, 0x3776, 0x3964, 0x3966, 0x335b, 0x3361, 0x3abc, 0x39d1, 0x3b96, 0x3a40, 0x3bfc, 0x30f6, 0x2fc2, 0x350a, 0x3857, 0x3175, 0x3929, 0x383e, 0x38c1, 0x3b21, 0x3025, 0x3a20, 0x3b6f, 0x3600, 0x3b06, 0x30d2, 0x30c3, 0x3550, 0x3025, 0x33c7, 0x3724, 0x3819, 0x38e3, 0x33fe, 0x3ad1, 0x2f0b, 0x38fe, 0x3458, 0x3bca, 0x391e, 0x345a, 0x36da, 0x38d7, 0x2dbd, 0x2c4e, 0x38b4, 0x35ea, 0x2970, 0x2ec0, 0x2519, 0x3552, 0x37cd, 0x3893, 0x3150, 0x38d6, 0x360d, 0x3986, 0x38e3, 0x3847, 0x36dc, 0x3a12, 0x3a3b, +0x34ea, 0x3a8b, 0x31db, 0x3a10, 0x34ca, 0x3b7e, 0x324e, 0x393b, 0x3a38, 0x3791, 0x2727, 0x31a9, 0x3beb, 0x3a43, 0x3ad3, 0x2c46, 0x3bc4, 0x38a9, 0x3918, 0x3b1c, 0x381d, 0x32aa, 0x367b, 0x3a80, 0x3a59, 0x37f6, 0x37ac, 0x36aa, 0x3072, 0x3960, 0x388c, 0x3a91, 0x3908, 0x34ab, 0x2f14, 0x3b72, 0x38f9, 0x359f, 0x38e2, 0x2938, 0x39ba, 0x2aa7, 0x3276, 0x3a66, 0x394d, 0x2de4, 0x39b0, 0x3835, 0x3b49, 0x2d77, 0x3ba2, 0x348b, 0x39f0, 0x381d, 0x382c, 0x384d, 0x3798, 0x3a0f, 0x38c3, 0x2ecb, 0x3472, 0x308f, 0x350c, 0x3014, 0x38e7, 0x2aff, 0x30ec, 0x3928, 0x36f5, 0x3909, 0x3b46, 0x2a93, 0x37cb, 0x3bb6, 0x2fbc, 0x3a3a, 0x3a47, 0x343e, 0x3bf1, 0x3b8f, 0x3bcb, 0x376d, 0x3669, 0x3892, 0x35c2, 0x3512, 0x370f, 0x35dc, 0x3923, 0x39e8, 0x3880, 0x288b, 0x36e7, 0x359e, 0x346f, 0x3b64, +0x3b1c, 0x340e, 0x25ab, 0x3b4e, 0x3897, 0x3bdb, 0x2da4, 0x389c, 0x36fd, 0x3a3c, 0x2f2d, 0x38fb, 0x395c, 0x2ea7, 0x3949, 0x368b, 0x35a3, 0x377c, 0x32de, 0x35b1, 0x3529, 0x301d, 0x3771, 0x393f, 0x3993, 0x3ae0, 0x3bda, 0x375b, 0x31ff, 0x3989, 0x3ad0, 0x3bb6, 0x3814, 0x3999, 0x3854, 0x39e7, 0x37fa, 0x3afc, 0x185f, 0x2e32, 0x3697, 0x3942, 0x3aa0, 0x3b75, 0x3ad3, 0x3aa8, 0x39b8, 0x38c2, 0x38fb, 0x39a4, 0x3b8f, 0x3b2e, 0x334d, 0x3a0c, 0x361b, 0x3a46, 0x3337, 0x388d, 0x321b, 0x38bc, 0x3005, 0x35a4, 0x3bf5, 0x3bcf, 0x3a44, 0x3ac7, 0x3a7d, 0x3b2c, 0x39c5, 0x2001, 0x3594, 0x3a29, 0x3131, 0x3ab9, 0x39d9, 0x38c4, 0x3666, 0x37a8, 0x3a75, 0x3a10, 0x3441, 0x3b7e, 0x23f5, 0x3ab2, 0x306f, 0x3bc0, 0x3989, 0x3361, 0x36ea, 0x2eb9, 0x360f, 0x351c, 0x2a16, 0x3bfe, 0x372b, 0x3b97, +0x3bbf, 0x2cf5, 0x3922, 0x316e, 0x37ad, 0x3a7f, 0x3863, 0x3a4c, 0x37a4, 0x35c1, 0x3b77, 0x3549, 0x3a83, 0x37c4, 0x3b84, 0x38c6, 0x3a7f, 0x2f24, 0x2fc0, 0x3475, 0x3a6a, 0x3bc4, 0x3a21, 0x3b96, 0x365c, 0x38b7, 0x31ce, 0x3bcc, 0x3b80, 0x3a31, 0x3523, 0x2d9d, 0x359e, 0x3afe, 0x371d, 0x2d94, 0x3a2a, 0x3ace, 0x3bed, 0x3726, 0x2fa1, 0x3abe, 0x3624, 0x2be4, 0x2b70, 0x394e, 0x3640, 0x391d, 0x3892, 0x38e2, 0x333c, 0x3080, 0x2ac2, 0x326c, 0x2f8b, 0x38ac, 0x3097, 0x3b80, 0x3ae4, 0x39d4, 0x3676, 0x3969, 0x34c8, 0x3906, 0x2930, 0x3acb, 0x3bb3, 0x3bba, 0x3646, 0x2ba1, 0x30bf, 0x38f2, 0x3bbc, 0x3a3f, 0x34c2, 0x3832, 0x3938, 0x3a79, 0x3546, 0x3bd5, 0x3ae5, 0x329a, 0x342c, 0x2c42, 0x35c1, 0x2616, 0x3ad4, 0x38c6, 0x38b6, 0x3b0d, 0x38dd, 0x2e8d, 0x3891, 0x2f1c, 0x3b9d, 0x3a8f, +0x30e4, 0x2c4f, 0x2fb6, 0x31da, 0x3784, 0x3043, 0x2d5c, 0x3bc0, 0x3998, 0x3b84, 0x387f, 0x3b93, 0x3898, 0x337c, 0x32b4, 0x28c3, 0x334f, 0x389c, 0x3865, 0x360b, 0x3a70, 0x3201, 0x324c, 0x3583, 0x381a, 0x3a58, 0x33e9, 0x3b02, 0x3093, 0x33c0, 0x375c, 0x305d, 0x1f9a, 0x38e4, 0x3bc7, 0x35bb, 0x2d39, 0x3299, 0x3753, 0x3b37, 0x3af5, 0x36d7, 0x3324, 0x3716, 0x3b60, 0x3202, 0x3949, 0x3b79, 0x36c3, 0x3901, 0x39f5, 0x2b55, 0x3996, 0x38e1, 0x3836, 0x3b5a, 0x3790, 0x39f6, 0x3532, 0x37ac, 0x2bc5, 0x3948, 0x3b8f, 0x37b8, 0x3999, 0x3413, 0x3a8f, 0x2b74, 0x2839, 0x3870, 0x369f, 0x38b9, 0x3819, 0x3aef, 0x37f9, 0x368b, 0x3bf4, 0x30a6, 0x2e58, 0x3b6e, 0x3b59, 0x3a5d, 0x2e63, 0x2a40, 0x34b3, 0x377d, 0x3991, 0x3542, 0x3300, 0x396d, 0x3bf4, 0x371b, 0x2c09, 0x3020, 0x3a1e, 0x32c5, +0x3b59, 0x3bb5, 0x3a14, 0x384f, 0x3534, 0x3bb6, 0x3aef, 0x3b51, 0x357e, 0x3760, 0x3395, 0x3046, 0x3977, 0x380e, 0x3b85, 0x39ed, 0x3038, 0x2bdc, 0x3aec, 0x3aa6, 0x3ace, 0x38b5, 0x308b, 0x39e2, 0x3271, 0x3b31, 0x3693, 0x397e, 0x39a9, 0x396f, 0x3021, 0x3b12, 0x350e, 0x38ea, 0x38ef, 0x3aae, 0x37b3, 0x2e83, 0x32f6, 0x3818, 0x3702, 0x332d, 0x3bfc, 0x3b15, 0x3ae6, 0x337f, 0x29f9, 0x3ba8, 0x38b1, 0x381a, 0x3bd6, 0x3a40, 0x3027, 0x3b8b, 0x38b2, 0x35d1, 0x39b7, 0x3adf, 0x2b70, 0x1a44, 0x3470, 0x3b21, 0x3774, 0x3b7a, 0x38b8, 0x304d, 0x3bd6, 0x2a2a, 0x3a95, 0x34bc, 0x2835, 0x3b03, 0x35bd, 0x3bc2, 0x30fe, 0x3a5d, 0x3829, 0x34be, 0x3398, 0x32f7, 0x3b1c, 0x34a5, 0x3511, 0x3802, 0x383e, 0x3176, 0x3241, 0x359f, 0x36f9, 0x380a, 0x310c, 0x3b1f, 0x375d, 0x365a, 0x35d0, 0x3302, +0x3459, 0x35e1, 0x3514, 0x3ba6, 0x381e, 0x30d8, 0x320a, 0x3b8a, 0x39b8, 0x3873, 0x3982, 0x3ae7, 0x3a5b, 0x380d, 0x3bf6, 0x396d, 0x3126, 0x1cf5, 0x37f7, 0x3b43, 0x37a7, 0x3b91, 0x357b, 0x216d, 0x3336, 0x3885, 0x26d5, 0x38f1, 0x369e, 0x3b62, 0x30d5, 0x3a41, 0x31b1, 0x3b8d, 0x3983, 0x2cfb, 0x3857, 0x3239, 0x2ecf, 0x2e22, 0x3889, 0x31a0, 0x3432, 0x3957, 0x2aad, 0x3b93, 0x38e5, 0x3a32, 0x3bf6, 0x2a9e, 0x3a57, 0x34b8, 0x2e9b, 0x3a83, 0x3b86, 0x314e, 0x3738, 0x3954, 0x36bb, 0x3a82, 0x361e, 0x380a, 0x3bc7, 0x39ea, 0x37f9, 0x3a9f, 0x38fa, 0x3916, 0x3b87, 0x389c, 0x375f, 0x30b5, 0x381d, 0x39f9, 0x3969, 0x3b91, 0x31b3, 0x3968, 0x3baf, 0x3395, 0x38a5, 0x3ae2, 0x3b91, 0x3a31, 0x3a75, 0x3667, 0x346f, 0x31b1, 0x3921, 0x38a1, 0x3981, 0x3ab5, 0x34c5, 0x324b, 0x3b5f, 0x3b66, +0x35e0, 0x3b4e, 0x34ef, 0x1c7e, 0x3b6e, 0x3724, 0x3858, 0x381c, 0x3bc1, 0x3475, 0x3a93, 0x38a0, 0x3489, 0x3951, 0x3918, 0x304f, 0x314f, 0x3ad7, 0x382d, 0x38ef, 0x3818, 0x33a3, 0x392d, 0x3079, 0x39b8, 0x3b2f, 0x3ad7, 0x3a4a, 0x383b, 0x295b, 0x380a, 0x3895, 0x3a0a, 0x3b28, 0x36ef, 0x3617, 0x3668, 0x3b95, 0x38e3, 0x3b69, 0x3448, 0x38bc, 0x34b1, 0x34d7, 0x3146, 0x269b, 0x2b3b, 0x371a, 0x3a3e, 0x3a71, 0x3791, 0x3b89, 0x3a76, 0x3bfd, 0x354e, 0x3bc8, 0x3937, 0x302e, 0x38e3, 0x2c2c, 0x20e6, 0x3880, 0x2c5e, 0x2506, 0x38b6, 0x3b42, 0x3be1, 0x3ab4, 0x3a0d, 0x3573, 0x31a6, 0x366c, 0x37c2, 0x34b2, 0x3856, 0x3bd4, 0x3150, 0x2adb, 0x3779, 0x3694, 0x2a1e, 0x3763, 0x39cd, 0x39a5, 0x3470, 0x348e, 0x399f, 0x3326, 0x2d96, 0x363a, 0x3610, 0x38fd, 0x24f0, 0x34bd, 0x32c9, 0x3869, +0x361b, 0x3307, 0x3bfc, 0x36bd, 0x2784, 0x37f1, 0x3a2e, 0x3579, 0x35ab, 0x39c9, 0x39b4, 0x2e9a, 0x3869, 0x24bf, 0x2c45, 0x3a0b, 0x369d, 0x391f, 0x3789, 0x2d9b, 0x37ac, 0x3829, 0x3177, 0x3286, 0x312b, 0x3153, 0x2ff3, 0x375c, 0x2afb, 0x290a, 0x3aaf, 0x3b17, 0x39f6, 0x3a53, 0x3888, 0x3ab6, 0x37e8, 0x3442, 0x3523, 0x3a72, 0x2d0a, 0x3551, 0x3923, 0x3538, 0x3abc, 0x3a29, 0x358a, 0x2ec5, 0x3a32, 0x3371, 0x3438, 0x301a, 0x3877, 0x36f7, 0x39e0, 0x372f, 0x3b39, 0x399c, 0x38b5, 0x3488, 0x392b, 0x312e, 0x3bd2, 0x3b34, 0x35d7, 0x3193, 0x38a5, 0x3a75, 0x3768, 0x3660, 0x3add, 0x38c6, 0x3944, 0x353a, 0x398e, 0x3627, 0x361a, 0x32ca, 0x38dd, 0x3293, 0x37f1, 0x2b97, 0x2465, 0x3a2e, 0x39c5, 0x3bef, 0x3879, 0x3a91, 0x3873, 0x39ae, 0x3994, 0x35aa, 0x3648, 0x376e, 0x371e, 0x3a8c, +0x359b, 0x381d, 0x3506, 0x382e, 0x39b0, 0x2f4c, 0x3022, 0x3af3, 0x3828, 0x3407, 0x3244, 0x306d, 0x3c00, 0x3019, 0x39b3, 0x357e, 0x36bd, 0x3979, 0x369a, 0x2025, 0x3ab5, 0x3509, 0x3969, 0x3b5f, 0x38b3, 0x3a55, 0x3899, 0x3a8d, 0x348a, 0x3010, 0x3b00, 0x374c, 0x37e7, 0x35f2, 0x36bc, 0x31ec, 0x3b49, 0x3960, 0x27a1, 0x3984, 0x3824, 0x3a95, 0x39e4, 0x3901, 0x34a8, 0x354a, 0x3929, 0x38ef, 0x399c, 0x381a, 0x34ea, 0x247b, 0x3113, 0x37ff, 0x3923, 0x3a12, 0x398a, 0x3135, 0x374c, 0x345b, 0x3aae, 0x33ad, 0x3834, 0x3426, 0x32a3, 0x3854, 0x31cd, 0x3a78, 0x32ea, 0x288e, 0x38a9, 0x2d3a, 0x31ce, 0x2ed6, 0x393d, 0x197a, 0x3880, 0x39cd, 0x3884, 0x3af0, 0x312d, 0x3711, 0x32be, 0x3193, 0x323d, 0x3222, 0x28b9, 0x3bcc, 0x3626, 0x3836, 0x36bf, 0x3393, 0x32d3, 0x39f3, 0x3b91, 0x3719, +0x38ac, 0x1036, 0x3759, 0x3547, 0x365e, 0x3a68, 0x37eb, 0x353b, 0x3931, 0x294d, 0x35c8, 0x3aad, 0x387c, 0x3ac5, 0x3a08, 0x3a0d, 0x34b8, 0x3747, 0x3a10, 0x3908, 0x3825, 0x3509, 0x379f, 0x2ebe, 0x3a30, 0x353f, 0x3ab6, 0x35d3, 0x3ae3, 0x39a0, 0x272d, 0x2da5, 0x3a07, 0x323e, 0x3865, 0x3700, 0x2c37, 0x2fb3, 0x36e3, 0x279c, 0x364d, 0x38b9, 0x39b5, 0x35d8, 0x376b, 0x37f2, 0x3421, 0x3a83, 0x3562, 0x2cad, 0x382f, 0x3703, 0x38bf, 0x3afc, 0x3800, 0x3793, 0x3ae7, 0x39f6, 0x2d8f, 0x365d, 0x380f, 0x39cf, 0x3609, 0x2da9, 0x2cc7, 0x361c, 0x3682, 0x2762, 0x3611, 0x3954, 0x21e5, 0x29bd, 0x3b94, 0x32e9, 0x36fc, 0x3b3c, 0x3bec, 0x3bde, 0x35b2, 0x3640, 0x3824, 0x2dba, 0x35da, 0x3853, 0x3b62, 0x3b56, 0x373f, 0x324d, 0x395f, 0x2a6b, 0x3b59, 0x392f, 0x3953, 0x3bbe, 0x3a44, 0x38fc, +0x38aa, 0x3987, 0x24c1, 0x3a51, 0x3b03, 0x3770, 0x381d, 0x3847, 0x394a, 0x35fe, 0x3b59, 0x34d4, 0x380f, 0x3985, 0x2719, 0x3811, 0x3a63, 0x387d, 0x370b, 0x36e2, 0x38f4, 0x3af2, 0x364c, 0x30e7, 0x3816, 0x2afe, 0x339b, 0x380d, 0x304e, 0x3b55, 0x3a4e, 0x2ebb, 0x377a, 0x396d, 0x31bf, 0x3914, 0x372b, 0x38a5, 0x39a9, 0x24f1, 0x39ad, 0x348a, 0x3b26, 0x3ab0, 0x35f3, 0x38ac, 0x34a5, 0x39b2, 0x3a88, 0x364d, 0x36a3, 0x33eb, 0x39f7, 0x3ad7, 0x37c1, 0x3805, 0x357a, 0x3949, 0x28ee, 0x3b2e, 0x3ba7, 0x381c, 0x35bf, 0x323a, 0x39dd, 0x3b40, 0x3908, 0x32c0, 0x3a12, 0x3419, 0x388e, 0x3890, 0x3b59, 0x2ea4, 0x363b, 0x3790, 0x3a00, 0x3b36, 0x2a03, 0x3875, 0x3932, 0x3513, 0x3755, 0x2d73, 0x19b7, 0x352b, 0x309e, 0x2842, 0x38cc, 0x38a0, 0x3423, 0x380e, 0x3b76, 0x39ad, 0x3a11, 0x3a5b, +0x3bd8, 0x3b5c, 0x30ee, 0x3b97, 0x32ee, 0x3a5d, 0x3bfb, 0x3706, 0x2e45, 0x2f4f, 0x3281, 0x39ec, 0x3705, 0x369c, 0x3022, 0x3b27, 0x3a91, 0x3a6d, 0x3438, 0x3461, 0x3846, 0x394f, 0x3772, 0x36f3, 0x34d2, 0x39ee, 0x3578, 0x3959, 0x3282, 0x1b2c, 0x39be, 0x37f0, 0x3909, 0x34aa, 0x3ad6, 0x3ad8, 0x392b, 0x39b5, 0x3391, 0x3aa3, 0x3854, 0x3a72, 0x31bc, 0x23fa, 0x331a, 0x38aa, 0x3a73, 0x2a74, 0x3956, 0x30fd, 0x36bd, 0x312d, 0x38b3, 0x3b26, 0x1e7f, 0x310a, 0x235b, 0x367b, 0x383e, 0x3b57, 0x39b0, 0x3785, 0x2ddc, 0x38de, 0x2c79, 0x386b, 0x3ace, 0x32e5, 0x2c3a, 0x3bc5, 0x3a95, 0x317b, 0x3a54, 0x3ba1, 0x38ff, 0x3b54, 0x39dd, 0x344c, 0x38d0, 0x3984, 0x32d7, 0x35c3, 0x319e, 0x3881, 0x3b80, 0x3923, 0x396f, 0x343d, 0x378e, 0x39e0, 0x3434, 0x38ab, 0x3a55, 0x3905, 0x2a86, 0x3aa6, +0x2c3b, 0x33da, 0x2eb0, 0x3aa4, 0x2871, 0x31a0, 0x35ba, 0x35ed, 0x3a48, 0x3968, 0x35f8, 0x2810, 0x3ab8, 0x395a, 0x369e, 0x3664, 0x3bef, 0x30b9, 0x33f3, 0x366d, 0x3961, 0x377d, 0x3367, 0x3aa2, 0x39de, 0x3bdc, 0x37f3, 0x3618, 0x394c, 0x39c6, 0x3867, 0x34c3, 0x358b, 0x3256, 0x3aac, 0x3623, 0x39ee, 0x3723, 0x3b2a, 0x3a63, 0x3855, 0x38a1, 0x2cb1, 0x3b80, 0x38d6, 0x3045, 0x3bc3, 0x3bdf, 0x378b, 0x3af4, 0x2411, 0x3863, 0x3869, 0x353b, 0x24cc, 0x396a, 0x3a09, 0x3aab, 0x32cd, 0x3970, 0x3178, 0x3a61, 0x2faa, 0x3a82, 0x3487, 0x3af5, 0x36ee, 0x39f0, 0x2a25, 0x3006, 0x3bc0, 0x3151, 0x31b0, 0x36e6, 0x351c, 0x2a55, 0x3846, 0x38b7, 0x37e3, 0x3a7c, 0x293b, 0x327d, 0x3680, 0x390a, 0x3ad5, 0x2e0c, 0x3bb9, 0x1ddf, 0x35fa, 0x3995, 0x380c, 0x3923, 0x3a4f, 0x3ad5, 0x3a80, 0x3113, +0x324a, 0x39c6, 0x353b, 0x2d16, 0x346a, 0x321f, 0x3703, 0x2f6c, 0x2c37, 0x3ada, 0x3be4, 0x3b3e, 0x3aac, 0x3a7f, 0x36d4, 0x3606, 0x3343, 0x393a, 0x382b, 0x3424, 0x38d4, 0x39ed, 0x3013, 0x31ff, 0x3794, 0x3b1c, 0x3919, 0x3bb5, 0x3769, 0x39a1, 0x3be5, 0x3b1a, 0x35fd, 0x3ba8, 0x2af5, 0x38ea, 0x3b19, 0x3814, 0x39ea, 0x3b1e, 0x37c0, 0x34f3, 0x395a, 0x38b6, 0x392a, 0x38a5, 0x3121, 0x2d9b, 0x3799, 0x304c, 0x349d, 0x3153, 0x398a, 0x3a70, 0x3a3d, 0x34bd, 0x39d7, 0x37b6, 0x3817, 0x34a8, 0x3ae2, 0x350d, 0x3ad0, 0x3a0e, 0x3496, 0x3b73, 0x3879, 0x3841, 0x3316, 0x3671, 0x36a4, 0x30bf, 0x3a5e, 0x3594, 0x3bde, 0x3b55, 0x3982, 0x395b, 0x364c, 0x3a6c, 0x32b0, 0x39cd, 0x3900, 0x38dc, 0x390a, 0x2d48, 0x376e, 0x3473, 0x2c65, 0x3934, 0x30cd, 0x3518, 0x3ba4, 0x3423, 0x2f57, 0x3682, +0x3979, 0x37b1, 0x3926, 0x343b, 0x360a, 0x234e, 0x3895, 0x3a09, 0x3810, 0x39d4, 0x3529, 0x3a28, 0x331a, 0x385f, 0x2576, 0x3973, 0x3a0e, 0x33b0, 0x21da, 0x3925, 0x32c8, 0x2fbe, 0x32e7, 0x3b38, 0x3a9a, 0x2ab2, 0x320d, 0x3be9, 0x3720, 0x351d, 0x311b, 0x38f2, 0x3952, 0x3985, 0x3b4b, 0x3634, 0x38af, 0x398b, 0x278f, 0x3460, 0x2f0d, 0x28e1, 0x3412, 0x3978, 0x372c, 0x3a02, 0x2e72, 0x10dc, 0x36c6, 0x3883, 0x3b5a, 0x38e8, 0x3b97, 0x394e, 0x2d07, 0x39b1, 0x3754, 0x2c54, 0x3577, 0x3ab3, 0x3a2a, 0x376a, 0x39b4, 0x396a, 0x3222, 0x396c, 0x39dc, 0x34d5, 0x3903, 0x3841, 0x3912, 0x3bdb, 0x3ba8, 0x364c, 0x39b0, 0x38a9, 0x3acd, 0x3015, 0x368d, 0x3b46, 0x351a, 0x38e2, 0x36f2, 0x37c7, 0x3bdb, 0x3b60, 0x3ba0, 0x3bc3, 0x363f, 0x28c1, 0x2add, 0x3aaa, 0x397b, 0x390f, 0x2f8f, 0x3836, +0x380f, 0x35e9, 0x35ee, 0x3386, 0x388f, 0x3bca, 0x3782, 0x37f2, 0x308e, 0x3a28, 0x3738, 0x31f6, 0x36a4, 0x39eb, 0x2b1f, 0x3ba6, 0x3322, 0x3ad6, 0x386f, 0x3b19, 0x3aa5, 0x2dd8, 0x3a6a, 0x380b, 0x39e3, 0x3225, 0x3bb2, 0x39e9, 0x30e5, 0x39df, 0x3ae8, 0x3075, 0x3025, 0x2f80, 0x30c1, 0x3854, 0x3914, 0x24e1, 0x3b4c, 0x32f6, 0x2e0e, 0x38a8, 0x3572, 0x2e9b, 0x38c3, 0x31f1, 0x3357, 0x3770, 0x3575, 0x317f, 0x345d, 0x3162, 0x38cd, 0x3111, 0x3543, 0x36c2, 0x36d6, 0x3754, 0x3b6e, 0x3900, 0x3996, 0x38b5, 0x352e, 0x3a32, 0x3881, 0x2487, 0x3795, 0x3814, 0x38f9, 0x388b, 0x366d, 0x3b8a, 0x3751, 0x3a1b, 0x380d, 0x39da, 0x3a56, 0x306c, 0x3295, 0x3992, 0x345c, 0x3a88, 0x370a, 0x357e, 0x31bc, 0x3af0, 0x2f33, 0x2c05, 0x3255, 0x595, 0x3acd, 0x3615, 0x26d4, 0x31b8, 0x3860, 0x3839, +0x30a4, 0x2aed, 0x381b, 0x3438, 0x3519, 0x3a7d, 0x39e4, 0x3704, 0x376f, 0x31d2, 0x3643, 0x29d2, 0x3101, 0x34cc, 0x39c1, 0x333f, 0x3a92, 0x2b34, 0x2d97, 0x334d, 0x3b85, 0x3b74, 0x37f2, 0x38e0, 0x3092, 0x34d3, 0x38af, 0x3489, 0x365c, 0x3bab, 0x3abc, 0x3b90, 0x3251, 0x3397, 0x399d, 0x32a2, 0x3545, 0x29ac, 0x3405, 0x37dd, 0x3899, 0x312c, 0x3500, 0x3983, 0x3bd4, 0x3bfc, 0x33a7, 0x2df1, 0x2c94, 0x374e, 0x351c, 0x3a18, 0x3984, 0x3b46, 0x2d2c, 0x2997, 0x365e, 0x3461, 0x3654, 0x2530, 0x3945, 0x1e1e, 0x3374, 0x2fb7, 0x31de, 0x3bff, 0x387b, 0x3701, 0x284f, 0x3b59, 0x3a7d, 0x3866, 0x3958, 0x3a6c, 0x358a, 0x3132, 0x35be, 0x3819, 0x386a, 0x369d, 0x3b3b, 0x3549, 0x3b06, 0x3173, 0x31f2, 0x39fb, 0x35a6, 0x3525, 0x3737, 0x3abb, 0x3b5e, 0x3122, 0x39e5, 0x3538, 0x3817, 0x3727, +0x3979, 0x39fe, 0x3487, 0x3a8e, 0x3407, 0x3140, 0x3afa, 0x39b7, 0x374e, 0x3b66, 0x3b0f, 0x39c9, 0x3266, 0x34dc, 0x396a, 0x38db, 0x35bd, 0x31c8, 0x37ed, 0x3667, 0x357e, 0x3518, 0x3139, 0x3bd5, 0x3157, 0x3960, 0x39d2, 0x3a38, 0x366c, 0x3876, 0x39b9, 0x2cf0, 0x3825, 0x3a80, 0x3bbf, 0x3a2d, 0x2fd3, 0x35e2, 0x35c6, 0x3a07, 0x368f, 0x391e, 0x3be7, 0x39be, 0x3533, 0x39c7, 0x3137, 0x2d6e, 0x3905, 0x3b95, 0x38f8, 0x39f5, 0x3bc1, 0x38a7, 0x38e5, 0x2c58, 0x343c, 0x3656, 0x2c1c, 0x3b1d, 0x39c9, 0x3801, 0x39c1, 0x3bed, 0x26be, 0x362a, 0x3655, 0x31b4, 0x2ad7, 0x3810, 0x3afd, 0x1edc, 0x35e8, 0x2d9f, 0x32fb, 0x316e, 0x38ed, 0x3839, 0x390b, 0x3b97, 0x38e2, 0x3746, 0x3b3b, 0x3b03, 0x395e, 0x353e, 0x375a, 0x3824, 0x25bf, 0x357f, 0x31a9, 0x3aa5, 0x35d6, 0x2a95, 0x1b91, 0x318c, +0x3650, 0x38de, 0x32bf, 0x287b, 0x305d, 0x393e, 0x3bb2, 0x352d, 0x2593, 0x386f, 0x3814, 0x38bd, 0x3532, 0x3084, 0x2880, 0x3bdb, 0x37da, 0x3073, 0x3850, 0x3026, 0x337f, 0x3b64, 0x37e5, 0x33ad, 0x3624, 0x319f, 0x36d7, 0x3939, 0x3553, 0x359d, 0x392d, 0x385f, 0x394f, 0x3aca, 0x34b8, 0x3138, 0x367a, 0x38a4, 0x3a8e, 0x369e, 0x34ef, 0x3b01, 0x3ad8, 0x3875, 0x3bd5, 0x39c4, 0x3b56, 0x394d, 0x38ba, 0x3a48, 0x3ade, 0x3bd6, 0x395f, 0x3737, 0x2dee, 0x3891, 0x35ed, 0x39b2, 0x2fe6, 0x3130, 0x346e, 0x3886, 0x2fb6, 0x3183, 0x3ae1, 0x3301, 0x38f9, 0x3470, 0x3701, 0x3845, 0x327d, 0x33b3, 0x3b06, 0x358e, 0x35eb, 0x38a2, 0x34d1, 0x317c, 0x3b0f, 0x395e, 0x36dc, 0x3511, 0x3a8b, 0x3997, 0x380b, 0x38cb, 0x3b3c, 0x3b54, 0x3330, 0x33d7, 0x357d, 0x3439, 0x2bd4, 0x3678, 0x3891, 0x39cc, +0x3bdb, 0x3af1, 0x3828, 0x3a2b, 0x39b6, 0x36f5, 0x374a, 0x3752, 0x3b11, 0x3306, 0x3bac, 0x3799, 0x39fe, 0x38f5, 0x3219, 0x36df, 0x3ade, 0x3ab0, 0x2fa1, 0x3472, 0x3a33, 0x34d9, 0x390e, 0x37c0, 0x2d6b, 0x38e1, 0x3bdc, 0x3887, 0x3644, 0x319b, 0x32a7, 0x2876, 0x337a, 0x3b38, 0x3904, 0x354b, 0x24b5, 0x1699, 0x3b55, 0x39b7, 0x278d, 0x3784, 0x388d, 0x389f, 0x34ac, 0x30bc, 0x3180, 0x37e5, 0x3462, 0x3641, 0x363a, 0x3805, 0x2fa2, 0x260f, 0x3a51, 0x38c4, 0x30e4, 0x3836, 0x3478, 0x3a31, 0x36ae, 0x3294, 0x3b82, 0x3321, 0x3877, 0x3209, 0x38ad, 0x31af, 0x35b4, 0x28af, 0x3699, 0x3490, 0x3974, 0x3272, 0x391c, 0x3864, 0x31fe, 0x3780, 0x39d9, 0x3607, 0x35a1, 0x339e, 0x3047, 0x33c0, 0x3506, 0x2f45, 0x3b6e, 0x3875, 0x383b, 0x3b4b, 0x3859, 0x35c7, 0x2afe, 0x34f1, 0x363f, 0x2ccc, +0x2888, 0x3101, 0x397a, 0x3715, 0x35b1, 0x369b, 0x3a0c, 0x3839, 0x3514, 0x3189, 0x3be6, 0x3214, 0x3b29, 0x312e, 0x3879, 0x33a8, 0x3a6f, 0x3998, 0x3959, 0x3b41, 0x348b, 0x3acb, 0x391f, 0x39b5, 0x353b, 0x3513, 0x395b, 0x3a72, 0x329c, 0x3a2e, 0x2c1b, 0x376e, 0x3857, 0x35ce, 0x34d3, 0x3952, 0x3b6f, 0x3978, 0x3942, 0x3741, 0x35a2, 0x3201, 0x3806, 0x397a, 0x393f, 0x2f4e, 0x3a07, 0x3b5b, 0x33aa, 0x3686, 0x394b, 0x3b64, 0x3a53, 0x385a, 0x390a, 0x3965, 0x34b6, 0x2f08, 0x39b3, 0x3808, 0x3631, 0x35af, 0x3628, 0x31a2, 0x3b7f, 0x3a04, 0x2951, 0x3a91, 0x39a9, 0x3877, 0x3acc, 0x3aff, 0x3bae, 0x2aa4, 0x3bbe, 0x3b0c, 0x3462, 0x3842, 0x3902, 0x3a55, 0x30e8, 0x3520, 0x30bd, 0x3147, 0x3ba1, 0x3945, 0x37b9, 0x30b4, 0x3573, 0x3b4f, 0x3a1b, 0x3a4a, 0x2d52, 0x345c, 0x366c, 0x3451, +0x34b3, 0x2d91, 0x3564, 0x3803, 0x3b06, 0x3bf5, 0x36b0, 0x356e, 0x341d, 0x39fe, 0x3b9e, 0x2d69, 0x3329, 0x3b30, 0x300d, 0x34e8, 0x3823, 0x3ab8, 0x38ce, 0x3b3c, 0x2983, 0x3680, 0x2841, 0x39ed, 0x393e, 0x30cc, 0x3828, 0x3af3, 0x2d8e, 0x381c, 0x382b, 0x3b29, 0x3b58, 0x380a, 0x2c56, 0x36b0, 0x3b53, 0x2f0b, 0x357b, 0x38de, 0x374e, 0x3aef, 0x3a95, 0x3a7a, 0x3a23, 0x2f2b, 0x3903, 0x3b97, 0x39e3, 0x2e50, 0x35fd, 0x3bf5, 0x3ae9, 0x3bb6, 0x3ab7, 0x391f, 0x326f, 0x3264, 0x3453, 0x37b3, 0x2d1b, 0x3a55, 0x3921, 0x36d7, 0x2b01, 0x388e, 0x3969, 0x2f04, 0x31b9, 0x3bd2, 0x3a16, 0x362a, 0x31d7, 0x3ae1, 0x3735, 0x2e5f, 0x3b56, 0x38a8, 0x3b30, 0x3a77, 0x35e2, 0x3aa6, 0x3222, 0x38f3, 0x399b, 0x330b, 0x350f, 0x2b19, 0x3b45, 0x38b4, 0x3ba8, 0x3a8f, 0x3abe, 0x2760, 0x341e, 0x323d, +0x2eab, 0x3514, 0x3b83, 0x39bd, 0x331e, 0x2bfc, 0x389d, 0x381c, 0x36b5, 0x35e9, 0x392e, 0x2b7a, 0x2fcf, 0x3523, 0x3b37, 0x3129, 0x3a56, 0x3861, 0x3b75, 0x38cd, 0x3604, 0x3286, 0x3ac4, 0x3926, 0x3495, 0x3bfc, 0x351b, 0x3696, 0x34e1, 0x2f4e, 0x26e3, 0x39ce, 0x34db, 0x2e38, 0x393c, 0x371c, 0x3843, 0x3a1b, 0x272b, 0x3a27, 0x376c, 0x393f, 0x39cc, 0x39be, 0x39f7, 0x2c76, 0x3bd3, 0x3a3b, 0x3970, 0x3ab5, 0x3915, 0x35c3, 0x36d0, 0x3957, 0x3aa5, 0x25d6, 0x3b79, 0x2217, 0x39c7, 0x3b15, 0x3aa1, 0x3901, 0x378e, 0x3ada, 0x3a6f, 0x384d, 0x372d, 0x39d9, 0x3819, 0x37e8, 0x3527, 0x30ee, 0x3867, 0x3229, 0x3126, 0x3290, 0x3a62, 0x3b2f, 0x32f3, 0x39e0, 0x36e6, 0x3981, 0x305a, 0x2fd0, 0x3724, 0x3822, 0x3359, 0x3869, 0x3bcc, 0x37f1, 0x357c, 0x39df, 0x2e31, 0x3b10, 0x3601, 0x37b1, +0x3aa3, 0x385a, 0x392b, 0x3909, 0x3774, 0x3aab, 0x38a2, 0x3801, 0x2882, 0x38a7, 0x3621, 0x373e, 0x34b4, 0x2e13, 0x3999, 0x381c, 0x369f, 0x2633, 0x3acd, 0x386d, 0x3b94, 0x32a0, 0x1bdc, 0x3873, 0x3249, 0x3692, 0x3be9, 0x325a, 0x32c2, 0x3ad9, 0x1de3, 0x308f, 0x3971, 0x34e6, 0x212b, 0x3bd3, 0x3790, 0x3814, 0x3346, 0x3358, 0x3115, 0x3914, 0x35c7, 0x3287, 0x3b0b, 0x388f, 0x35ac, 0x3002, 0x3a5e, 0x2ede, 0x38cd, 0x374f, 0x3b4c, 0x3578, 0x394c, 0x3951, 0x353c, 0x2e59, 0x3877, 0x31f5, 0x3912, 0x394b, 0x37e7, 0x3667, 0x38c9, 0x3641, 0x343c, 0x37ee, 0x3aa8, 0x3440, 0x34d3, 0x394b, 0x301f, 0x3a76, 0x387e, 0x3a7d, 0x347e, 0x21c8, 0x397c, 0x301a, 0x3a2d, 0x3710, 0x399a, 0x359b, 0x3756, 0x3679, 0x37eb, 0x38e6, 0x2a71, 0x35f9, 0x37eb, 0x3afc, 0x370d, 0x3bce, 0x3884, 0x3211, +0x3a18, 0x3a44, 0x2fcd, 0x3b65, 0x3788, 0x2a46, 0x322a, 0x3538, 0x3bc2, 0x33f4, 0x3932, 0x3835, 0x2fa9, 0x3b95, 0x3756, 0x399d, 0x36b6, 0x3186, 0x389d, 0x346c, 0x3abb, 0x3be4, 0x3919, 0x3993, 0x2ffc, 0x39db, 0x3bce, 0x3b0e, 0x336e, 0x36af, 0x3192, 0x38b7, 0x37ba, 0x3ae4, 0x3116, 0x2c45, 0x3494, 0x3aea, 0x302c, 0x3816, 0x3686, 0x34f2, 0x2fa4, 0x3aa1, 0x222f, 0x370f, 0x341a, 0x3aae, 0x380d, 0x3863, 0x36ca, 0x3a60, 0x3695, 0x387d, 0x391c, 0x2c8b, 0x2d94, 0x369e, 0x399e, 0x36fd, 0x38fc, 0x3b6c, 0x36a8, 0x3a73, 0x33fb, 0x36d0, 0x3720, 0x36d7, 0x37be, 0x2a8f, 0x3180, 0x3ad3, 0x2a1f, 0x3737, 0x3920, 0x2b67, 0x3abf, 0x395e, 0x322b, 0x3ace, 0x39b1, 0x3bdf, 0x2e0b, 0x3018, 0x3278, 0x393a, 0x3a8c, 0x39d0, 0x39cd, 0x308f, 0x3776, 0x38b7, 0x3527, 0x388b, 0x3901, 0x3b8b, +0x237d, 0x38f9, 0x3431, 0x3b1f, 0x3a12, 0x33ac, 0x3a3d, 0x3943, 0x348d, 0x363f, 0x3a2a, 0x2420, 0x3081, 0x3815, 0x382e, 0x38e5, 0x3238, 0x284e, 0x2ec3, 0x3af5, 0x3191, 0x32d6, 0x31c8, 0x39bc, 0x3a2a, 0x340d, 0x3bd9, 0x33dc, 0x3066, 0x39df, 0x30e2, 0x350a, 0x37fc, 0x341d, 0x3828, 0x3a1b, 0x3010, 0x2992, 0x32fd, 0x3bb3, 0x368c, 0x2af2, 0x3af4, 0x3a8f, 0x3793, 0x3620, 0x3b85, 0x3557, 0x316b, 0x288d, 0x3408, 0x3ae8, 0x3af0, 0x3420, 0x3bbd, 0x3a80, 0x309a, 0x3a5d, 0x3a57, 0x3987, 0x3a47, 0x377f, 0x3a01, 0x3a72, 0x3b37, 0x3594, 0x3bfd, 0x36ae, 0x3b99, 0x3bd4, 0x3920, 0x3b8d, 0x37ae, 0x3a46, 0x3184, 0x38ba, 0x1ff8, 0x3b9c, 0x3b68, 0x3621, 0x37f4, 0x2fb7, 0x3010, 0x3b58, 0x33d3, 0x3bbb, 0x291f, 0x3945, 0x3be1, 0x30c6, 0x3bc3, 0x35c6, 0x3bdf, 0x2a15, 0x2e3f, 0x2b1a, +0x3847, 0x3671, 0x34cf, 0x35e0, 0x3b80, 0x34e1, 0x3b3b, 0x305a, 0x327f, 0x3a9e, 0x3803, 0x2a3a, 0x3969, 0x3765, 0x3891, 0x3acc, 0x397d, 0x3549, 0x356e, 0x34c8, 0x2632, 0x30ca, 0x36ba, 0x3a56, 0x37ca, 0x344d, 0x39bc, 0x32f3, 0x3be2, 0x3b24, 0x353f, 0x3ab8, 0x373e, 0x3906, 0x318e, 0x3993, 0x27e3, 0x255c, 0x3afa, 0x33a3, 0x3819, 0x333b, 0x3bb6, 0x3179, 0x3414, 0x35d6, 0x30b1, 0x386b, 0x3b8e, 0x3942, 0x386c, 0x3b39, 0x32d2, 0x37f6, 0x2503, 0x3b14, 0x385c, 0x3a12, 0x3895, 0x39d7, 0x377f, 0x2c2d, 0x3066, 0x3855, 0x35a4, 0x3aeb, 0x3a9c, 0x35a4, 0x2eb7, 0x3b6b, 0x3bfd, 0x38fa, 0x1fd4, 0x3583, 0x3bc9, 0x35d2, 0x3913, 0x34b8, 0x271f, 0x3453, 0x3833, 0x3bb2, 0x3a7f, 0x1c15, 0x1b01, 0x39f1, 0x3bdd, 0x3988, 0x3ac8, 0x397f, 0x3bb4, 0x36d5, 0x37bf, 0x34b4, 0x30f5, 0x39c7, +0x391e, 0x3b4f, 0x2eb2, 0x3b31, 0x3073, 0x39d0, 0x2cd1, 0x2f3b, 0x36cc, 0x3739, 0x222d, 0x3a71, 0x3ba4, 0x3b60, 0x2bb5, 0x3885, 0x3b90, 0x2cea, 0x3ab6, 0x37b0, 0x3813, 0x31a7, 0x3545, 0x3392, 0x39f4, 0x34ae, 0x36c2, 0x3177, 0x3902, 0x39b5, 0x2f98, 0x36c1, 0x36d5, 0x32e8, 0x39ed, 0x30c3, 0x39a8, 0x30f1, 0x39a1, 0x36ec, 0x3bea, 0x34b1, 0x3260, 0x343e, 0x3929, 0x31d9, 0x33d7, 0x3bee, 0x379c, 0x2395, 0x3983, 0x38ce, 0x3297, 0x35fc, 0x3776, 0x3b0a, 0x3ae2, 0x3991, 0x2c03, 0x3712, 0x3b68, 0x2e82, 0x2e43, 0x3705, 0x39d1, 0x3b64, 0x2ff0, 0x3a4a, 0x2f9e, 0x2f32, 0x3ba6, 0x3559, 0x3aa5, 0x39cb, 0x3671, 0x39d2, 0x3aaf, 0x3385, 0x3a0a, 0x3a03, 0x396d, 0x391d, 0x2685, 0x3802, 0x39d5, 0x2af3, 0x39e4, 0x3ace, 0x313a, 0x2d88, 0x2999, 0x39a4, 0x3302, 0x390b, 0x3847, 0x3b87, +0x3813, 0x30fa, 0x3986, 0x3bc2, 0x3bc2, 0x3bf1, 0x3251, 0x391a, 0x2445, 0x3884, 0x3649, 0x320f, 0x305c, 0x3418, 0x337f, 0x38fa, 0x39ac, 0x3a4d, 0x346d, 0x33ca, 0x32da, 0x335c, 0x37ff, 0x389e, 0x39b3, 0x364e, 0x328a, 0x3690, 0x36cb, 0x3126, 0x374a, 0x3ba4, 0x37fe, 0x3233, 0x2afb, 0x3335, 0x3095, 0x38c9, 0x3a8b, 0x39c4, 0x3505, 0x32f2, 0x3a53, 0x388e, 0x34b9, 0x39d7, 0x34e7, 0x3a78, 0x3b19, 0x34e0, 0x35e9, 0x375f, 0x3a89, 0x38c6, 0x3764, 0x383c, 0x266a, 0x3672, 0x31fc, 0x3b60, 0x3a99, 0x3917, 0x3b92, 0x3759, 0x3acd, 0x39ad, 0x31fe, 0x3bcc, 0x3bec, 0x31a6, 0x33fa, 0x36f4, 0x2295, 0x3b2b, 0x3625, 0x3882, 0x3a88, 0x369a, 0x3b81, 0x399f, 0x34a9, 0x381c, 0x2db8, 0x365d, 0x3741, 0x382c, 0x3b87, 0x3b1c, 0x300b, 0x2ef6, 0x2e99, 0x3975, 0x24d7, 0x387e, 0x344a, 0x3503, +0x3b1e, 0x3900, 0x2bf3, 0x3170, 0x39bd, 0x3a2e, 0x37ad, 0x38b6, 0x38bf, 0x31c3, 0x3ae8, 0x368d, 0x36ac, 0x35e2, 0x3497, 0x2dec, 0x39c9, 0x389b, 0x3156, 0x3a86, 0x3892, 0x3976, 0x394b, 0x3b82, 0x3907, 0x392e, 0x2538, 0x3871, 0x348e, 0x3a0d, 0x347f, 0x316b, 0x378b, 0x3aa4, 0x38f5, 0x3595, 0x2d85, 0x2d42, 0x3aca, 0x3688, 0x3085, 0x3694, 0x399c, 0x3b6c, 0x3bb8, 0x3bac, 0x3a69, 0x35bf, 0x316c, 0x335f, 0x2e66, 0x2f7e, 0x360e, 0x3b28, 0x3254, 0x347f, 0x3687, 0x3018, 0x37b7, 0x3ba9, 0x3814, 0x3bd2, 0x22ed, 0x3735, 0x39a7, 0x3a17, 0x3a9c, 0x3264, 0x35f9, 0x38e9, 0x3610, 0x3ad7, 0x39ab, 0x304c, 0x3734, 0x3a58, 0x30be, 0x394f, 0x2f1c, 0x33be, 0x3818, 0x38b7, 0x3845, 0x3a9d, 0x3721, 0x324f, 0x34e0, 0x3a0e, 0x3b77, 0x3b14, 0x3884, 0x3a5a, 0x3aed, 0x3349, 0x39d0, 0x3ba6, +0x3345, 0x3494, 0x396e, 0x33e0, 0x3a01, 0x26be, 0x3a27, 0x3a66, 0x3a48, 0x3bc4, 0x3a0e, 0x39ac, 0x3758, 0x32d8, 0x3570, 0x2add, 0x2f32, 0x3856, 0x3814, 0x39a6, 0x3418, 0x3919, 0x2faf, 0x3a0f, 0x3816, 0x3366, 0x388c, 0x3471, 0x2993, 0x395d, 0x32cc, 0x3b00, 0x3a82, 0x3b5a, 0x2edd, 0x30f7, 0x3bba, 0x2a65, 0x368e, 0x311e, 0x35ff, 0x3734, 0x2931, 0x34db, 0x3734, 0x3b8a, 0x2441, 0x33bc, 0x3aed, 0x3793, 0x31ee, 0x37fe, 0x31f4, 0x36f4, 0x390e, 0x3b97, 0x3963, 0x3510, 0x30f9, 0x3a6e, 0x35d3, 0x34ba, 0x3a05, 0x39de, 0x3646, 0x3b0f, 0x3b2e, 0x3698, 0x3bbd, 0x3306, 0x3990, 0x3984, 0x2e28, 0x3880, 0x3b82, 0x350c, 0x3a3e, 0x3b00, 0x3735, 0x3944, 0x39a1, 0x34ea, 0x3812, 0x3a9c, 0x2270, 0x3b9b, 0x383d, 0x34b9, 0x33ff, 0x314b, 0x35e9, 0x3a76, 0x3b80, 0x3922, 0x3767, 0x3119, +0x39f0, 0x391b, 0x37d6, 0x37d9, 0x3b86, 0x3923, 0x2434, 0x3be9, 0x3918, 0x36cb, 0x3b4a, 0x296e, 0x3bcf, 0x38d5, 0x3342, 0x3482, 0x3995, 0x3958, 0x33a0, 0x38a7, 0x3be6, 0x3b68, 0x3168, 0x398d, 0x3ab4, 0x325a, 0x3bd2, 0x3915, 0x1a9f, 0x356c, 0x303d, 0x3b50, 0x32c5, 0x3a1c, 0x3a0e, 0x392c, 0x3b24, 0x3b8b, 0x322b, 0x2661, 0x3bba, 0x35e3, 0x3be0, 0x38f5, 0x39ab, 0x316b, 0x3b05, 0x3a05, 0x3969, 0x370c, 0x3851, 0x3a7c, 0x3801, 0x3b8b, 0x38db, 0x3aef, 0x354a, 0x2845, 0x3ac7, 0x3547, 0x35c2, 0x3564, 0x30d5, 0x3bf1, 0x301b, 0x3434, 0x3583, 0x3a9c, 0x1c52, 0x2e1e, 0x3522, 0x3993, 0x3bfe, 0x3524, 0x370c, 0x33ed, 0x3981, 0x2bfe, 0x2ca4, 0x3b56, 0x3b03, 0x3450, 0x3768, 0x3baf, 0x3760, 0x3a8f, 0x2d31, 0x2c4e, 0x3167, 0x35e6, 0x396d, 0x3b31, 0x309b, 0x347e, 0x39ea, 0x3bb8, +0x3164, 0x2bac, 0x368e, 0x3bd4, 0x3427, 0x38b4, 0x3a4d, 0x39ba, 0x3a0d, 0x301a, 0x2fec, 0x2ce1, 0x3985, 0x2acc, 0x386d, 0x3808, 0x346b, 0x383b, 0x3b1b, 0x3406, 0x3bc5, 0x3b86, 0x3860, 0x35ae, 0x2e1c, 0x35d4, 0x350b, 0x35f5, 0x2a73, 0x3a6b, 0x364b, 0x3526, 0x278a, 0x375e, 0x299f, 0x39b0, 0x394e, 0x345d, 0x3760, 0x31ba, 0x3400, 0x3566, 0x3b36, 0x3a48, 0x34e3, 0x3b24, 0x347c, 0x32a3, 0x2da7, 0x364a, 0x33de, 0x33c5, 0x324f, 0x38f7, 0x3bfb, 0x3a94, 0x3312, 0x3924, 0x3831, 0x2ee6, 0x3b4a, 0x338b, 0x2bb3, 0x33ee, 0x3bf2, 0x3aa3, 0x376d, 0x1512, 0x37b5, 0x2e44, 0x39ad, 0x3b2f, 0x39a7, 0x3aa1, 0x2e75, 0x3955, 0x3663, 0x39a6, 0x296f, 0x34c6, 0x2ef3, 0x2fe3, 0x3647, 0x3bc2, 0x3b91, 0x376a, 0x39e5, 0x3466, 0x38b9, 0x3a80, 0x3861, 0x36ca, 0x3a2c, 0x3145, 0x3102, 0x33bc, +0x2ba4, 0x2eb9, 0x39ab, 0x33cf, 0x2c9f, 0x372c, 0x3973, 0x2ff9, 0x36a5, 0x3641, 0x3b93, 0x3bc9, 0x3ba9, 0x36cd, 0x3a8d, 0x3bd2, 0x399e, 0x34ed, 0x3b4c, 0x2c2b, 0x38f7, 0x3824, 0x2edd, 0x32fc, 0x30cc, 0x2b90, 0x2628, 0x3a65, 0x39de, 0x3800, 0x3a8c, 0x3a88, 0x1e84, 0x3890, 0x33b4, 0x37e8, 0x3aab, 0x342c, 0x3697, 0x379a, 0x2472, 0x38bb, 0x38d0, 0x3a8e, 0x393a, 0x34e7, 0x3baf, 0x37ce, 0x28c7, 0x32a5, 0x3a68, 0x3925, 0x3a49, 0x3944, 0x3976, 0x3866, 0x363a, 0x35e2, 0x296d, 0x29f3, 0x39a8, 0x3831, 0x3682, 0x3898, 0x2bca, 0x13aa, 0x37b8, 0x35fe, 0x3a5d, 0x3362, 0x34bd, 0x38c1, 0x3b66, 0x3801, 0x391b, 0x307b, 0x3936, 0x3ae2, 0x3899, 0x390a, 0x384b, 0x3af4, 0x3ae2, 0x35d2, 0x271a, 0x37ad, 0x3102, 0x38e5, 0x30b8, 0x2419, 0x30ee, 0x3437, 0x39b9, 0x3a44, 0x374e, 0x3551, +0x39a4, 0x35f6, 0x385e, 0x3864, 0x3977, 0x3159, 0x3625, 0x379a, 0x3b94, 0x3a2a, 0x2ea6, 0x38a1, 0x3ad9, 0x31cd, 0x3be9, 0x34ac, 0x38be, 0x3925, 0x36ae, 0x3bd3, 0x2e3b, 0x39d0, 0x3a89, 0x336b, 0x2d09, 0x3533, 0x382c, 0x2f0c, 0x385e, 0x3ba1, 0x3436, 0x39e4, 0x3a6b, 0x39b1, 0x3622, 0x334e, 0x38cd, 0x3740, 0x30d6, 0x391d, 0x3a70, 0x3390, 0x2c34, 0x3bf0, 0x3566, 0x3864, 0x2aaa, 0x2df7, 0x20cf, 0x3621, 0x39f8, 0x3ab0, 0x3a54, 0x39fb, 0x389e, 0x3724, 0x3755, 0x369d, 0x3944, 0x2843, 0x13b6, 0x316f, 0x3860, 0x3848, 0x3816, 0x315b, 0x3b72, 0x35e9, 0x396a, 0x399c, 0x3a7b, 0x315c, 0x3667, 0x37ae, 0x39f0, 0x386f, 0x3875, 0x3b25, 0x38ba, 0x3a14, 0x3abc, 0x36e1, 0x352d, 0x3904, 0x385d, 0x3b24, 0x32c9, 0x3afb, 0x3bd8, 0x3520, 0x145c, 0x378f, 0x3821, 0x2801, 0x3496, 0x3b18, +0x3716, 0x3bfe, 0x3591, 0x3b7d, 0x3a85, 0x3af1, 0x3abf, 0x38ae, 0x30cb, 0x3457, 0x3b9f, 0x32bc, 0x39e0, 0x33d6, 0x3acd, 0x38e4, 0x39bf, 0x39ce, 0x2c1a, 0x36c2, 0x3a5e, 0x3ba5, 0x3a2d, 0x3629, 0x3b8d, 0x36ce, 0x3997, 0x384a, 0x3acb, 0x36d2, 0x3b60, 0x3a38, 0x347d, 0x35b3, 0x286f, 0x2bf4, 0x3795, 0x2d33, 0x20c0, 0x3857, 0x3aac, 0x3766, 0x38c1, 0x3628, 0x2e3a, 0x3a93, 0x3ac6, 0x35ca, 0x3366, 0x3b05, 0x3a4c, 0x3be7, 0x37a8, 0x38c4, 0x36ae, 0x39b0, 0x34e1, 0x2dfc, 0x3b41, 0x385a, 0x306b, 0x3bfa, 0x39ab, 0x3ade, 0x3a80, 0x3574, 0x397e, 0x3792, 0x342e, 0x373c, 0x3918, 0x3275, 0x3827, 0x397e, 0x3889, 0x35b5, 0x30d7, 0x1d25, 0x30b4, 0x3580, 0x2ae1, 0x2bba, 0x38ea, 0x3a03, 0x3b44, 0x3539, 0x2de4, 0x3b56, 0x3949, 0x2792, 0x39ac, 0x31af, 0x3514, 0x3ac1, 0x34a6, 0x2c44, +0x330d, 0x36f5, 0x374e, 0x3bf7, 0x33ea, 0x3770, 0x2733, 0x30ef, 0x3b72, 0x2d2a, 0x392d, 0x36fb, 0x3a83, 0x34a1, 0x334c, 0x30b3, 0x2987, 0x3584, 0x3ab0, 0x3a9d, 0x2b67, 0x3a56, 0x35ba, 0x325f, 0x39b7, 0x2abd, 0x3a40, 0x38bf, 0x37b9, 0x3a67, 0x204a, 0x328d, 0x3403, 0x3adc, 0x2c0f, 0x3923, 0x39bc, 0x366a, 0x3082, 0x39d1, 0x3ad5, 0x3a4f, 0x3207, 0x3631, 0x381e, 0x3961, 0x358d, 0x3664, 0x3363, 0x3bf9, 0x372c, 0x3a5d, 0x3878, 0x335a, 0x35a2, 0x3532, 0x3809, 0x2ecb, 0x32e3, 0x3996, 0x36cf, 0x362f, 0x38d5, 0x39c7, 0x2ccd, 0x37c7, 0x2ba2, 0x3b59, 0x26c9, 0x38fa, 0x3b8a, 0x3bed, 0x3868, 0x3942, 0x393a, 0x3999, 0x363f, 0x3375, 0x3bc6, 0x3098, 0x384c, 0x381e, 0x39c6, 0x39be, 0x3204, 0x2023, 0x3acf, 0x3b55, 0x3850, 0x3ae7, 0x37ac, 0x388a, 0x3b11, 0x36e1, 0x2f03, 0x3a6d, +0x2f6f, 0x39b2, 0x308a, 0x3253, 0x3976, 0x38bd, 0x3bfa, 0x3b6d, 0x3816, 0x287b, 0x3588, 0x392b, 0x30bc, 0x3b83, 0x3a9b, 0x300d, 0x3ba4, 0x2d26, 0x372a, 0x3914, 0x36ee, 0x2f72, 0x3ad3, 0x323b, 0x32b6, 0x3a71, 0x3a92, 0x2416, 0x3ab2, 0x39c8, 0x313c, 0x3a5e, 0x3ab9, 0x30ed, 0x3ac3, 0x3339, 0x291e, 0x3847, 0x3bb9, 0x3b7c, 0x3369, 0x3aa1, 0x3b93, 0x380a, 0x33fd, 0x3545, 0x399a, 0x25a4, 0x36c6, 0x37fe, 0x3ae8, 0x3ad7, 0x3be3, 0x3589, 0x370e, 0x3299, 0x3358, 0x3960, 0x36e2, 0x3af9, 0x3676, 0x3b75, 0x39df, 0x32bf, 0x387f, 0x2764, 0x39ae, 0x32b4, 0x36bf, 0x3161, 0x3a40, 0x3bcb, 0x3447, 0x3a0d, 0x2baa, 0x38c7, 0x333a, 0x3a4b, 0x394f, 0x381d, 0x38bd, 0x2b6b, 0x388d, 0x3a37, 0x384e, 0x3b19, 0x31dc, 0x3236, 0x33aa, 0x32f2, 0x32b0, 0x3b95, 0x3bd2, 0x1db0, 0x36d4, 0x38ae, +0x3161, 0x30b6, 0x3784, 0x3701, 0x387e, 0x36ef, 0x2ad7, 0x3ab4, 0x3897, 0x397d, 0x355d, 0x34e3, 0x351d, 0x3b95, 0x3b12, 0x1c76, 0x3b71, 0x3b9a, 0x37e5, 0x3bc6, 0x2576, 0x33c0, 0x398e, 0x39d1, 0x37b9, 0x3a9f, 0x234c, 0x3979, 0x36a2, 0x3aad, 0x355c, 0x3479, 0x2d97, 0x2d54, 0x2ecb, 0x3481, 0x38ba, 0x32e2, 0x380c, 0x2f81, 0x3b87, 0x3a01, 0x35b6, 0x35f6, 0x389a, 0x341e, 0x3180, 0x35d7, 0x31af, 0x3983, 0x38ec, 0x298c, 0x3bea, 0x38d3, 0x2ba1, 0x32b9, 0x2f3e, 0x3b84, 0x3003, 0x34ff, 0x3bd9, 0x323b, 0x375a, 0x3462, 0x3824, 0x303d, 0x381a, 0x385e, 0x3bfd, 0x3993, 0x39c6, 0x3a0f, 0x3b8c, 0x3353, 0x3295, 0x39b6, 0x28dd, 0x3a8e, 0x3043, 0x2d8e, 0x3b67, 0x3504, 0x3b32, 0x30b6, 0x3a4c, 0x3239, 0x3443, 0x3031, 0x3afb, 0x3b11, 0x30f8, 0x3299, 0x3be6, 0x3476, 0x3a49, 0x3441, +0x31e8, 0x3992, 0x3509, 0x3313, 0x3635, 0x35cc, 0x3963, 0x3545, 0x3ba3, 0x2443, 0x35c5, 0x3bb8, 0x3a2e, 0x3642, 0x3ae7, 0x3832, 0x333e, 0x34d3, 0x37f5, 0x38a6, 0x39a9, 0x3850, 0x3ad9, 0x2a1f, 0x271c, 0x3878, 0x3586, 0x362d, 0x3922, 0x3ab8, 0x310e, 0x369c, 0x2efb, 0x3bde, 0x38c2, 0x3af3, 0x393a, 0x3401, 0x315e, 0x305f, 0x38f5, 0x39bf, 0x36c6, 0x3544, 0x3213, 0x386f, 0x378f, 0x3214, 0x3900, 0x35a4, 0x3bbd, 0x2f98, 0x3a9d, 0x3b3d, 0x395a, 0x3932, 0x3515, 0x2ef8, 0x3af6, 0x2d82, 0x2845, 0x39f8, 0x2b6d, 0x38eb, 0x3300, 0x2e15, 0x3788, 0x3962, 0x2e88, 0x356d, 0x3a36, 0x3bd3, 0x2485, 0x38fc, 0x3843, 0x38c0, 0x1351, 0x3aea, 0x2c6d, 0x3ad0, 0x337d, 0x394e, 0x3823, 0x34f9, 0x342e, 0x3203, 0x3b9a, 0x3ade, 0x357a, 0x3734, 0x398f, 0x3302, 0x3b51, 0x3607, 0x35c9, 0x2be4, +0x38d7, 0x3450, 0x359a, 0x2a01, 0x3a33, 0x3536, 0x3a66, 0x360d, 0x3b2f, 0x3a0f, 0x3a84, 0x36b5, 0x3920, 0x389e, 0x3622, 0x3175, 0x370e, 0x32d1, 0x3a64, 0x3a2d, 0x3afc, 0x36f1, 0x3b64, 0x3268, 0x36b8, 0x3b0e, 0x34f4, 0x3b5d, 0x38ac, 0x3153, 0x3128, 0x3670, 0x3b70, 0x39be, 0x3989, 0x35ae, 0x333a, 0x2bfb, 0x3ad9, 0x344c, 0x3ba9, 0x3b6c, 0x335e, 0x3a80, 0x2451, 0x3823, 0x385e, 0x30e0, 0x38e3, 0x30ad, 0x36a0, 0x3a1e, 0x37db, 0x193d, 0x3675, 0x3110, 0x394c, 0x2f96, 0x2c1f, 0x3982, 0x388d, 0x2ccc, 0x343e, 0x3a8c, 0x3710, 0x2da8, 0x384f, 0x35d2, 0x3174, 0x3267, 0x349c, 0x345a, 0x37f3, 0x380a, 0x3814, 0x380c, 0x3acc, 0x325e, 0x3738, 0x32ef, 0x3223, 0x3488, 0x36d9, 0x394d, 0x3450, 0x378c, 0x328e, 0x332a, 0x3b8e, 0x381d, 0x314a, 0x3530, 0x3378, 0x3a88, 0x3bf8, 0x30e7, +0x3860, 0x38b5, 0x3bc1, 0x2da6, 0x3b83, 0x3a43, 0x372a, 0x392c, 0x3404, 0x3449, 0x3972, 0x3bc5, 0x2dc0, 0x39dc, 0x354c, 0x24f9, 0x3617, 0x3bc1, 0x3960, 0x3762, 0x3962, 0x39e3, 0x3afe, 0x3a21, 0x3834, 0x3856, 0x3ad1, 0x36a8, 0x3b2b, 0x36eb, 0x2f4f, 0x3801, 0x3b42, 0x3af3, 0x380f, 0x326c, 0x351a, 0x3914, 0x38b2, 0x3a84, 0x369e, 0x3925, 0x3213, 0x3b80, 0x3763, 0x3af9, 0x2e55, 0x30ba, 0x3a12, 0x347f, 0x39d7, 0x3a46, 0x2ec5, 0x3b6a, 0x3b7f, 0x3a3f, 0x2eea, 0x38db, 0x33be, 0x356a, 0x3a21, 0x3623, 0x3822, 0x3a63, 0x34ef, 0x373b, 0x2d60, 0x3428, 0x3121, 0x3b9a, 0x3948, 0x3687, 0x382b, 0x2144, 0x3254, 0x387f, 0x3512, 0x357c, 0x3891, 0x2e61, 0x368a, 0x33a8, 0x3b26, 0x2e33, 0x282a, 0x2c3a, 0x365c, 0x35c7, 0x3b90, 0x3866, 0x3a86, 0x35cc, 0x3689, 0x3212, 0x3a1e, 0x3555, +0x2f7e, 0x3b2e, 0x3204, 0x3b95, 0x38c5, 0x394d, 0x3908, 0x3b28, 0x388d, 0x36c6, 0x3ac3, 0x3bc6, 0x305d, 0x3a21, 0x3477, 0x39c1, 0x34e7, 0x3ba1, 0x3850, 0x3276, 0x3513, 0x3576, 0x3407, 0x37e4, 0x2dde, 0x3113, 0x389b, 0x34cc, 0x3736, 0x34de, 0x3348, 0x3942, 0x3044, 0x365f, 0x3a40, 0x3a33, 0x34fb, 0x389a, 0x3983, 0x382e, 0x381d, 0x3293, 0x34a2, 0x330d, 0x31f1, 0x3b44, 0x3861, 0x35e1, 0x331a, 0x3839, 0x39d0, 0x3b0a, 0x34d0, 0x37dd, 0x332b, 0x38f4, 0x3ad1, 0x25b4, 0x3bee, 0x31ee, 0x31fc, 0x382d, 0x3889, 0x352b, 0x38a5, 0x21c1, 0x2e21, 0x3425, 0x2d5e, 0x28f2, 0x3ad7, 0x3945, 0x3282, 0x3844, 0x39d9, 0x2e75, 0x3adb, 0x3703, 0x3966, 0x383a, 0x2d09, 0x3008, 0x3b9f, 0x3b0f, 0x304a, 0x373e, 0x3a84, 0x3739, 0x39cd, 0x3678, 0x3a04, 0x2fe1, 0x3572, 0x3853, 0x38f6, 0x3abc, +0x3b09, 0x3b5a, 0x3be6, 0x2424, 0x345a, 0x3992, 0x3738, 0x35a8, 0x3379, 0x3949, 0x3a93, 0x37d9, 0x2fe8, 0x3a1c, 0x322a, 0x26b8, 0x3af8, 0x327a, 0x34f0, 0x3632, 0x3485, 0x385f, 0x3b33, 0x3396, 0x3ad8, 0x379a, 0x384e, 0x35e6, 0x331e, 0x3b6d, 0x34ca, 0x3997, 0x39c8, 0x3a97, 0x387d, 0x1854, 0x35d1, 0x3bd9, 0x389e, 0x365a, 0x396e, 0x2f7d, 0x3910, 0x388f, 0x39e6, 0x3a8e, 0x3a9e, 0x39b2, 0x2ff2, 0x39fc, 0x346f, 0x39bf, 0x3711, 0x3951, 0x3856, 0x39ea, 0x318e, 0x3778, 0x393c, 0x37ba, 0x3781, 0x3ad5, 0x3638, 0x3b18, 0x286d, 0x314b, 0x3b67, 0x3186, 0x37c4, 0x39f7, 0x376f, 0x3b12, 0x3882, 0x36b6, 0x3a84, 0x329a, 0x24a9, 0x38e3, 0x35ca, 0x3b5b, 0x333f, 0x3994, 0x3369, 0x385b, 0x3871, 0x3aac, 0x3649, 0x3953, 0x31d4, 0x3b45, 0x3808, 0x36e0, 0x35c6, 0x2bd8, 0x39b7, 0x3bd9, +0x3aa5, 0x340f, 0x3721, 0x35e0, 0x3a8f, 0x3ac1, 0x3b3f, 0x1e07, 0x342a, 0x36a2, 0x3830, 0x2dff, 0x35c4, 0x3441, 0x3ac6, 0x383f, 0x3bb1, 0x32d5, 0x3870, 0x3757, 0x36a5, 0x38c3, 0x3158, 0x377d, 0x363d, 0x2ede, 0x3698, 0x2f0b, 0x3860, 0x1a39, 0x39b4, 0x39c3, 0x35e2, 0x3529, 0x35e4, 0x38d3, 0x358a, 0x2cc9, 0x3665, 0x3479, 0x3917, 0x36f9, 0x34d3, 0x39f7, 0x3688, 0x3950, 0x36d5, 0x3a15, 0x35fd, 0x3556, 0x3751, 0x30b6, 0x3906, 0x3b32, 0x387f, 0x2d69, 0x3628, 0x3b4c, 0x3b17, 0x38ff, 0x3852, 0x38c4, 0x37e0, 0x368d, 0x38f6, 0x3885, 0x398e, 0x37dd, 0x3867, 0x35e7, 0x3bd1, 0x38a1, 0x3882, 0x2d3d, 0x3b21, 0x3443, 0x3381, 0x36df, 0x38ba, 0x3a7c, 0x3a03, 0x3881, 0x352b, 0x3914, 0x3b69, 0x3564, 0x3141, 0x3940, 0x327b, 0x390b, 0x3710, 0x3952, 0x3a3e, 0x3825, 0x3ae8, 0x39f8, +0x3950, 0x3a9d, 0x3a2c, 0x35d5, 0x34b7, 0x3a46, 0x3a47, 0x344e, 0x3a08, 0x3362, 0x3285, 0x33e8, 0x3618, 0x39fb, 0x2c3c, 0x39b0, 0x1336, 0x36bd, 0x358c, 0x3bc0, 0x354d, 0x38be, 0x3a08, 0x34e9, 0x3801, 0x3be9, 0x35fa, 0x3015, 0x26bc, 0x399e, 0x36d1, 0x3218, 0x3a92, 0x2ad4, 0x3114, 0x364e, 0x3aa5, 0x35cb, 0x354a, 0x2da0, 0x2fc1, 0x36a2, 0x2fde, 0x3b28, 0x367f, 0x32eb, 0x3b7e, 0x3912, 0x3894, 0x323f, 0x3807, 0x3971, 0x3b61, 0x2381, 0x3ac6, 0x3868, 0x3980, 0x3a49, 0x3183, 0x3657, 0x3851, 0x3956, 0x37be, 0x38ea, 0x38b3, 0x37e2, 0x38ca, 0x3b3b, 0x3543, 0x38af, 0x247b, 0x3716, 0x3b75, 0x3667, 0x3801, 0x2a16, 0x3b46, 0x2bb3, 0x3832, 0x3b8e, 0x3a02, 0x37e2, 0x38b7, 0x2a58, 0x3b4b, 0x3b3c, 0x3914, 0x27f4, 0x3512, 0x3934, 0x3a17, 0x3a1b, 0x3bab, 0x3ae0, 0x3ab8, 0x3454, +0x32bc, 0x35d5, 0x3b7f, 0x388c, 0x3740, 0x3290, 0x2d2a, 0x2bf5, 0x304b, 0x3a10, 0x388e, 0x2e4e, 0x3126, 0x3477, 0x386d, 0x3bc5, 0x3643, 0x3589, 0x3665, 0x39c5, 0x315d, 0x3375, 0x3b3d, 0x38bb, 0x320a, 0x371d, 0x3873, 0x31df, 0x3534, 0x3b7a, 0x3809, 0x3b1f, 0x3868, 0x35ec, 0x397c, 0x3535, 0x3be5, 0x3857, 0x3ae4, 0x338c, 0x3ace, 0x3931, 0x3bcc, 0x30d9, 0x3bb2, 0x38d5, 0x3840, 0x3aef, 0x385c, 0x3974, 0x3b1b, 0x369c, 0x3b54, 0x3074, 0x39bb, 0x3a1d, 0x2e7d, 0x34f9, 0x3a6c, 0x3505, 0x3ae2, 0x30df, 0x3ac9, 0x3460, 0x3517, 0x3b85, 0x3488, 0x3440, 0x3aab, 0x3089, 0x3879, 0x3343, 0x3395, 0x329f, 0x3753, 0x3a08, 0x388b, 0x3ac1, 0x3478, 0x33f5, 0x3a65, 0x343f, 0x307e, 0x38f3, 0x37a0, 0x3259, 0x3210, 0x385a, 0x3bff, 0x297f, 0x2e3b, 0x2e41, 0x3921, 0x3654, 0x34c2, 0x3bf6, +0x2dca, 0x391f, 0x399f, 0x2fae, 0x38c6, 0x2fea, 0x36a0, 0x31d7, 0x3a0a, 0x2adb, 0x31c7, 0x3bf1, 0x313c, 0x3a0f, 0x36d3, 0x3854, 0x355f, 0x3991, 0x3b44, 0x3b0c, 0x3aa8, 0x37f0, 0x38cf, 0x3394, 0x373a, 0x38ee, 0x3871, 0x3977, 0x29ef, 0x23f6, 0x3b79, 0x2430, 0x31ea, 0x2f51, 0x3b09, 0x39fa, 0x34c0, 0x2a71, 0x3186, 0x3869, 0x2c9d, 0x3995, 0x3a89, 0x3a6a, 0x308a, 0x32f2, 0x39e9, 0x3902, 0x3970, 0x3986, 0x3931, 0x3918, 0x36ab, 0x3a86, 0x38c2, 0x39f0, 0x2ca6, 0x3bac, 0x36b8, 0x34d2, 0x383e, 0x304a, 0x299b, 0x3172, 0x3b3b, 0x38e3, 0x39a0, 0x3b28, 0x3822, 0x3548, 0x35d3, 0x3a14, 0x282b, 0x39e4, 0x2d29, 0x3a68, 0x2dc2, 0x32c2, 0x3aa2, 0x3625, 0x3553, 0x3809, 0x3993, 0x3811, 0x3456, 0x2f37, 0x3210, 0x393f, 0x323c, 0x30eb, 0x361c, 0x3276, 0x3097, 0x34ee, 0x34f8, 0x31cd, +0x3ba8, 0x2a42, 0x31b2, 0x38e3, 0x3951, 0x29e1, 0x2e0a, 0x3a69, 0x2f3f, 0x3b90, 0x3634, 0x3b61, 0x35ef, 0x34c4, 0x386f, 0x2aae, 0x38a6, 0x1edc, 0x38f0, 0x37e7, 0x3ac3, 0x32fe, 0x3645, 0x31ef, 0x33e8, 0x3447, 0x3ad8, 0x3b4e, 0x193e, 0x2514, 0x36ad, 0x3b4c, 0x39d8, 0x3285, 0x31c9, 0x3a64, 0x2c2d, 0x3994, 0x302a, 0x3a31, 0x3adb, 0x2bfa, 0x3554, 0x399f, 0x32a0, 0x393b, 0x3831, 0x3a94, 0x2f96, 0x38bb, 0x3b49, 0x2168, 0x396c, 0x3425, 0x3b8d, 0x2634, 0x38fd, 0x3894, 0x3ac8, 0x3b82, 0x3891, 0x39a0, 0x3422, 0x36e1, 0x3727, 0x3802, 0x388e, 0x392d, 0x37ec, 0x340f, 0x2424, 0x3812, 0x3af6, 0x3352, 0x36e2, 0x385e, 0x3ba8, 0x38ca, 0x3986, 0x3b9e, 0x3319, 0x3be8, 0x389f, 0x29ea, 0x35c2, 0x394f, 0x33b7, 0x388b, 0x388d, 0x3bb5, 0x34f9, 0x35ff, 0x3842, 0x3181, 0x3889, 0x38ec, +0x34b9, 0x3818, 0x3af1, 0x35b7, 0x3462, 0x39bf, 0x3641, 0x367d, 0x3560, 0x2c3b, 0x3b63, 0x2cdc, 0x33be, 0x3a92, 0x2cf5, 0x3216, 0x315f, 0x39dc, 0x3b1a, 0x37e4, 0x3446, 0x37dc, 0x3934, 0x3835, 0x3916, 0x37d0, 0x384e, 0x2d75, 0x3268, 0x3570, 0x3506, 0x38e0, 0x38c0, 0x395f, 0x38bd, 0x3022, 0x3b3e, 0x393b, 0x3479, 0x3726, 0x3432, 0x3699, 0x38dc, 0x2def, 0x2ab6, 0x2fad, 0x3a35, 0x35b5, 0x30a8, 0x3968, 0x38ab, 0x3a6e, 0x346e, 0x3988, 0x3434, 0x35b6, 0x36dc, 0x2e2e, 0x2b5c, 0x3300, 0x32f9, 0x382a, 0x3bc2, 0x3b6f, 0x2ca0, 0x2d85, 0x397c, 0x38a1, 0x36e4, 0x37f0, 0x39ec, 0x30fb, 0x3bfb, 0x3a04, 0x301a, 0x3b8c, 0x39eb, 0x3a96, 0x39bc, 0x3921, 0x319b, 0x3805, 0x3b5f, 0x39ad, 0x316b, 0x3b91, 0x2c1d, 0x3b87, 0x35d3, 0x3b01, 0x36ad, 0x393f, 0x3674, 0x3603, 0x3af9, 0x2fa1, +0x3a49, 0x34d3, 0x3af0, 0x28b4, 0x3afb, 0x3684, 0x3640, 0x37ae, 0x38d3, 0x3916, 0x3699, 0x3b36, 0x38e7, 0x3ad9, 0x39af, 0x376a, 0x388f, 0x35c7, 0x3664, 0x3840, 0x3506, 0x3b62, 0x3347, 0x3a30, 0x347c, 0x3ae5, 0x3542, 0x35d6, 0x32f6, 0x38e3, 0x2091, 0x3a7f, 0x3b5a, 0x3610, 0x38c9, 0x348b, 0x37bf, 0x346a, 0x38a2, 0x3939, 0x3842, 0x3a03, 0x3afe, 0x1ec8, 0x3158, 0x3afc, 0x39e9, 0x3b79, 0x351a, 0x314e, 0x242c, 0x34b5, 0x3bc6, 0x25a0, 0x3b95, 0x29e3, 0x3517, 0x3bff, 0x3a4b, 0x3a79, 0x355f, 0x33cd, 0x35df, 0x3ab8, 0x39d4, 0x3afe, 0x35f7, 0x38aa, 0x2fc1, 0x3342, 0x394c, 0x3603, 0x3811, 0x3a0b, 0x34eb, 0x2ca7, 0x3192, 0x3a89, 0x396e, 0x3731, 0x3af0, 0x2cca, 0x3843, 0x36e3, 0x39f5, 0x2d99, 0x2a6b, 0x33bf, 0x2609, 0x32f0, 0x32ce, 0x35dd, 0x380d, 0x32e2, 0x3b6a, 0x3a8e, +0x2ced, 0x32da, 0x3a21, 0x367d, 0x36cd, 0x3631, 0x2b0d, 0x31fd, 0x3b89, 0x2e45, 0x3916, 0x362b, 0x3852, 0x2c73, 0x32a6, 0x3013, 0x396f, 0x3984, 0x3104, 0x3a93, 0x39de, 0x3807, 0x3464, 0x36bb, 0x36e7, 0x3aa3, 0x372a, 0x38ce, 0x3a85, 0x3bae, 0x27b1, 0x34c7, 0x37e5, 0x2be5, 0x3a8c, 0x2e62, 0x3b13, 0x2ee8, 0x3782, 0x3a40, 0x31b0, 0x37fd, 0x3759, 0x3382, 0x3bcc, 0x32fd, 0x3bdc, 0x39eb, 0x3a01, 0x380e, 0x31a6, 0x39f6, 0x38fc, 0x37c5, 0x3be0, 0x347a, 0x3524, 0x2da5, 0x23ed, 0x25e0, 0x3af4, 0x27f6, 0x39cd, 0x3575, 0x3827, 0x3b1d, 0x3bf3, 0x3bd8, 0x3697, 0x3b52, 0x2ec3, 0x33c0, 0x3b26, 0x3ab5, 0x34f6, 0x30f2, 0x38ff, 0x39ae, 0x3620, 0x32a6, 0x365a, 0x3a13, 0x2a9a, 0x28a9, 0x3198, 0x3819, 0x38bb, 0x3731, 0x3b3d, 0x37db, 0x3abb, 0x3be6, 0x34c7, 0x3709, 0x3959, 0x3556, +0x3b82, 0x36c8, 0x352e, 0x3a99, 0x3942, 0x37e9, 0x39c9, 0x3900, 0x123c, 0x3b9a, 0x3b46, 0x3a9a, 0x3a06, 0x36e3, 0x38bd, 0x3622, 0x396c, 0x3a7d, 0x361f, 0x3b83, 0x297b, 0x3a4b, 0x323f, 0x3b61, 0x3ac5, 0x24e9, 0x3138, 0x359a, 0x2931, 0x3b63, 0x3a8d, 0x3aa0, 0x384f, 0x3a36, 0x3641, 0x3af0, 0x3ada, 0x3526, 0x3a5c, 0x39cc, 0x3803, 0x3572, 0x3994, 0x3b9e, 0x3a64, 0x36ae, 0x37ec, 0x3ad2, 0x312b, 0x3434, 0x3b89, 0x38d1, 0x3309, 0x3573, 0x38e2, 0x2c51, 0x3b19, 0x3a0b, 0x3a49, 0x392a, 0x3ae7, 0x341f, 0x3701, 0x3577, 0x3a6b, 0x3864, 0x356f, 0x3a73, 0x3bdd, 0x39e1, 0x3397, 0x31c9, 0x3618, 0x3973, 0x3848, 0x2e85, 0x3adb, 0x30d0, 0x349e, 0x3121, 0x397e, 0x3ae2, 0x351f, 0x3137, 0x3903, 0x3b71, 0x3a3e, 0x3189, 0x3a1a, 0x39a5, 0x38b6, 0x35ee, 0x2c56, 0x3a09, 0x33a1, 0x294a, +0x382b, 0x39a6, 0x335a, 0x3687, 0x30cf, 0x38cc, 0x32d6, 0x2181, 0x3a52, 0x2cfb, 0x3991, 0x39bc, 0x3706, 0x3a02, 0x386e, 0x3b54, 0x3781, 0x381c, 0x38eb, 0x3b5d, 0x39c2, 0x38f2, 0x3b4c, 0x3bd7, 0x292a, 0x37c1, 0x3bfa, 0x29b6, 0x381e, 0x32ca, 0x3a70, 0x3a3a, 0x3ad7, 0x3042, 0x2ecb, 0x3bb6, 0x3703, 0x38fe, 0x3866, 0x3a69, 0x3bc7, 0x3b34, 0x2cfd, 0x2220, 0x3ba7, 0x3849, 0x39b3, 0x284b, 0x3a18, 0x39d9, 0x3aaf, 0x3809, 0x3be3, 0x3749, 0x2b7b, 0x382c, 0x356c, 0x37ac, 0x2a66, 0x3abb, 0x23d2, 0x3912, 0x3085, 0x2a21, 0x3b7a, 0x3616, 0x35f1, 0x3595, 0x3bd3, 0x356b, 0x3929, 0x3b99, 0x3a5f, 0x30f4, 0x3866, 0x3a8e, 0x2ca2, 0x3904, 0x3735, 0x373a, 0x3a5f, 0x3ba5, 0x2001, 0x39dc, 0x3a26, 0x3987, 0x3163, 0x3816, 0x2b55, 0x369c, 0x3aab, 0x3508, 0x3b86, 0x340d, 0x34d6, 0x3766, +0x3691, 0x3723, 0x2e9f, 0x38a2, 0x3a6a, 0x3645, 0x2e83, 0x2f93, 0x3947, 0x3744, 0x352b, 0x365c, 0x3a34, 0x3a63, 0x3bae, 0x3977, 0x281c, 0x377c, 0x3584, 0x3bf9, 0x2f97, 0x34c8, 0x3af7, 0x38e7, 0x3acf, 0x384d, 0x3bdd, 0x387d, 0x3a8f, 0x399e, 0x34e0, 0x3a84, 0x31b5, 0x291d, 0x394d, 0x3967, 0x3a1f, 0x378e, 0x3618, 0x386e, 0x345c, 0x3916, 0x353a, 0x3176, 0x396f, 0x2bc1, 0x3b5c, 0x3b8a, 0x2d3c, 0x354b, 0x2c50, 0x3539, 0x2c35, 0x320f, 0x3914, 0x2a96, 0x3bcf, 0x3a20, 0x3a5b, 0x372e, 0x35f5, 0x3992, 0x3b39, 0x39b8, 0x3aea, 0x3bb5, 0x3a65, 0x3884, 0x2b7a, 0x3b7d, 0x3455, 0x3039, 0x36b1, 0x31c8, 0x391b, 0x3942, 0x3b4b, 0x365c, 0x3a2c, 0x39b6, 0x3b02, 0x3901, 0x33b8, 0x3ad1, 0x2c3d, 0x3955, 0x3857, 0x33bb, 0x2ef2, 0x3446, 0x3917, 0x3ad2, 0x34be, 0x3939, 0x35ab, 0x370f, +0x32c0, 0x2fdc, 0x3b63, 0x2a85, 0x3a47, 0x34c2, 0x3651, 0x31c5, 0x2b72, 0x3b43, 0x3ba3, 0x2c85, 0x3958, 0x3bc2, 0x3818, 0x35d3, 0x3bec, 0x32c4, 0x301a, 0x351a, 0x3706, 0x348e, 0x2194, 0x3830, 0x324f, 0x3a6d, 0x3b87, 0x2a73, 0x3ba9, 0x3ad9, 0x39cd, 0x3af6, 0x1d41, 0x31e5, 0x3abb, 0x3184, 0x3911, 0x318e, 0x39a7, 0x3295, 0x39fd, 0x342a, 0x3822, 0x3be0, 0x3a97, 0x386d, 0x35cf, 0x39bd, 0x29b2, 0x320f, 0x2fe7, 0x2f1e, 0x2c19, 0x3054, 0x3907, 0x3a78, 0x2093, 0x3901, 0x2e53, 0x3981, 0x3713, 0x3b18, 0x3b76, 0x3bee, 0x39f2, 0x2c64, 0x3680, 0x3b35, 0x39db, 0x34a2, 0x3963, 0x3a3c, 0x3b52, 0x34a1, 0x3951, 0x3aad, 0x2870, 0x35fc, 0x3a47, 0x3955, 0x37e9, 0x36c2, 0x3a4c, 0x2bd8, 0x34ee, 0x3751, 0x3ae0, 0x3b51, 0x2861, 0x3391, 0x2fa9, 0x3837, 0x35cb, 0x304b, 0x3b0f, 0x358b, +0x2f61, 0x3096, 0x3a54, 0x3059, 0x39af, 0x3b95, 0x2c6d, 0x2faf, 0x38f6, 0x3427, 0x3af3, 0x343d, 0x3b5a, 0x341e, 0x32d7, 0x224f, 0x3af7, 0x3159, 0x346d, 0x3535, 0x34c2, 0x371f, 0x39d4, 0x380b, 0x310c, 0x206a, 0x3a65, 0x3976, 0x3af2, 0x39ab, 0x39df, 0x327f, 0x399c, 0x2d96, 0x38a4, 0x357c, 0x2f8f, 0x3046, 0x38ae, 0x3ac4, 0x38b8, 0x2c03, 0x34c0, 0x3171, 0x39c1, 0x3802, 0x366d, 0x341f, 0x3286, 0x36f0, 0x397f, 0x2176, 0x3aac, 0x3b7a, 0x3a3a, 0x3919, 0x3585, 0x2cc4, 0x39ed, 0x2833, 0x3b9e, 0x36e3, 0x3a31, 0x3a48, 0x38a8, 0x3401, 0x3b8e, 0x38a0, 0x3a07, 0x378d, 0x3512, 0x33a7, 0x3977, 0x3862, 0x357d, 0x3922, 0x371f, 0x318d, 0x3b57, 0x3667, 0x313b, 0x3bf3, 0x35e0, 0x3ae6, 0x3668, 0x2940, 0x2d29, 0x30f4, 0x3a66, 0x3b0d, 0x3b12, 0x35dd, 0x390b, 0x3990, 0x3011, 0x2b64, +0x334f, 0x3b09, 0x398f, 0x34e0, 0x28d3, 0x3385, 0x39e4, 0x357c, 0x3a45, 0x2df3, 0x2c61, 0x3569, 0x355e, 0x3b14, 0x3012, 0x1c32, 0x3a0e, 0x39d3, 0x20f2, 0x38f4, 0x398b, 0x3b9c, 0x374a, 0x3916, 0x3a5a, 0x3892, 0x3720, 0x38de, 0x3809, 0x3173, 0x38a4, 0x3698, 0x3815, 0x30a5, 0x3a18, 0x3534, 0x2e89, 0x3657, 0x2fc1, 0x39c5, 0x3b59, 0x337f, 0x383b, 0x3ba1, 0x2d4d, 0x2d7a, 0x3b8e, 0x39c9, 0x2b4a, 0x2d1b, 0x3af3, 0x375a, 0x360a, 0x3977, 0x398f, 0x3bb2, 0x358c, 0x369e, 0x390f, 0x35ed, 0x392c, 0x33d4, 0x3a6b, 0x3ade, 0x38b2, 0x3424, 0x2d4f, 0x3aeb, 0x3802, 0x33fa, 0x31c4, 0x35ef, 0x3b51, 0x2d27, 0x3912, 0x351a, 0x36ea, 0x3869, 0x2c73, 0x264b, 0x371d, 0x3a9e, 0x3159, 0x3a54, 0x3849, 0x394e, 0x3921, 0x3435, 0x38aa, 0x33ae, 0x3950, 0x3adf, 0x3b9b, 0x3a1d, 0x3706, 0x3b43, +0x3541, 0x3b8a, 0x3528, 0x39da, 0x36fa, 0x392e, 0x3195, 0x38e7, 0x392a, 0x366f, 0x308f, 0x29d5, 0x3be5, 0x345a, 0x35b5, 0x395b, 0x3a76, 0x3224, 0x1958, 0x39e1, 0x3b98, 0x3b80, 0x30a5, 0x3461, 0x3471, 0x365a, 0x3af0, 0x30ac, 0x38dd, 0x38ca, 0x2d58, 0x3bf4, 0x35bc, 0x3478, 0x235b, 0x3b92, 0x391f, 0x39e3, 0x3b11, 0x3afb, 0x2ea4, 0x2c61, 0x3756, 0x3821, 0x38d6, 0x3938, 0x3478, 0x3813, 0x3740, 0x31ea, 0x3b6d, 0x3be6, 0x2a58, 0x36c6, 0x31ee, 0x3642, 0x3b29, 0x37df, 0x337d, 0x336b, 0x3afa, 0x352b, 0x3aa6, 0x3898, 0x37cc, 0x33f2, 0x3b20, 0x3a61, 0x380e, 0x3b37, 0x38e6, 0x3b79, 0x365a, 0x387a, 0x24c7, 0x3301, 0x3b10, 0x3afb, 0x3819, 0x3aa3, 0x38cd, 0x384d, 0x3661, 0x383e, 0x3a34, 0x3b1a, 0x2d83, 0x36a8, 0x3b75, 0x3b0e, 0x363d, 0x3a67, 0x392e, 0x389c, 0x35a3, 0x2e39, +0x3ae7, 0x3849, 0x3bc7, 0x2a99, 0x31b2, 0x3535, 0x32dc, 0x2ab5, 0x3b34, 0x398c, 0x2b94, 0x36b5, 0x39fe, 0x376a, 0x39ee, 0x34f9, 0x31ce, 0x3968, 0x3809, 0x3261, 0x38f8, 0x3b62, 0x3807, 0x3992, 0x3b8e, 0x39e0, 0x3614, 0x3b23, 0x36d0, 0x38da, 0x3a8c, 0x3b55, 0x316c, 0x3b5d, 0x3531, 0x39a5, 0x24db, 0x293c, 0x3822, 0x38dc, 0x316f, 0x3750, 0x3601, 0x30bf, 0x3a74, 0x24af, 0x258b, 0x3bec, 0x293c, 0x3868, 0x360e, 0x310d, 0x36b3, 0x344c, 0x2cf0, 0x3476, 0x3a3a, 0x2e52, 0x3939, 0x3a69, 0x34df, 0x3a5b, 0x39c0, 0x347c, 0x371d, 0x391d, 0x3913, 0x306f, 0x3bfe, 0x380f, 0x3959, 0x39bd, 0x3619, 0x34e2, 0x36c6, 0x39bc, 0x3a2c, 0x3bc3, 0x3a29, 0x2c45, 0x3ac4, 0x3b46, 0x3a5c, 0x3be6, 0x2c2c, 0x3757, 0x39cb, 0x30f0, 0x38c8, 0x3154, 0x38b5, 0x3480, 0x3835, 0x3b8c, 0x311d, 0x3570, +0x38c4, 0x3400, 0x2d91, 0x3a09, 0x312a, 0x39e9, 0x3b4e, 0x320d, 0x372d, 0x33f0, 0x3b4c, 0x2253, 0x37dd, 0x39a8, 0x3a18, 0x3aeb, 0x3b0a, 0x35eb, 0x3a4c, 0x39ff, 0x3a97, 0x2b96, 0x37c0, 0x3169, 0x3727, 0x3859, 0x3874, 0x3a11, 0x356e, 0x39e4, 0x3849, 0x38ab, 0x292b, 0x38a8, 0x2e0b, 0x1e53, 0x3814, 0x367d, 0x3962, 0x39ff, 0x3a0e, 0x38a1, 0x3249, 0x2d7c, 0x31df, 0x3924, 0x3ae4, 0x3978, 0x38c9, 0x3808, 0x288b, 0x3004, 0x3983, 0x3427, 0x3aa2, 0x3bb9, 0x38bc, 0x380d, 0x3ba3, 0x3522, 0x3607, 0x38c1, 0x35d4, 0x3a19, 0x38d6, 0x3aef, 0x3682, 0x3b5c, 0x2de4, 0x35bb, 0x363b, 0x36df, 0x3803, 0x39e5, 0x2e9f, 0x3a36, 0x3a9c, 0x36dc, 0x3908, 0x3ada, 0x3978, 0x382c, 0x3ba7, 0x398e, 0x3800, 0x3ad7, 0x387e, 0x3429, 0x2d19, 0x3971, 0x37f1, 0x3af3, 0x3986, 0x3a07, 0x382f, 0x359b, +0x2f4d, 0x3a0f, 0x3890, 0x386e, 0x3229, 0x2fb8, 0x390a, 0x390e, 0x3b53, 0x3812, 0x2961, 0x3017, 0x39d5, 0x3958, 0x2d80, 0x2fad, 0x3730, 0x3853, 0x2882, 0x3bb9, 0x3939, 0x3bab, 0x2ffa, 0x28ff, 0x3a54, 0x38d5, 0x3456, 0x3bd4, 0x3a38, 0x30a8, 0x3a38, 0x32ab, 0x3788, 0x3a1d, 0x3bec, 0x325c, 0x3981, 0x3a5a, 0x2941, 0x3925, 0x353a, 0x360a, 0x38cf, 0x374d, 0x30a4, 0x2819, 0x3021, 0x3143, 0x3684, 0x3af2, 0x3a61, 0x3a31, 0x3625, 0x38a6, 0x3a5d, 0x3963, 0x3997, 0x391a, 0x3767, 0x3b35, 0x383c, 0x37bf, 0x3753, 0x357a, 0x3993, 0x382b, 0x3128, 0x3a93, 0x3b03, 0x38e2, 0x37e9, 0x3b05, 0x3789, 0x3be9, 0x3068, 0x36f4, 0x19c7, 0x3523, 0x28f3, 0x3746, 0x324c, 0x31cc, 0x377e, 0x35b4, 0x3127, 0x3a24, 0x351a, 0x3b16, 0x3801, 0x398d, 0x39a8, 0x3b6f, 0x3933, 0x3535, 0x30e3, 0x3b25, +0x353f, 0x306c, 0x3bd1, 0x380e, 0x3b05, 0x3859, 0x2e39, 0x37b4, 0x38fb, 0x392e, 0x32c0, 0x3adb, 0x29c4, 0x3b0e, 0x28a6, 0x341f, 0x371a, 0x39bc, 0x30a1, 0x3790, 0x3439, 0x3102, 0x3bcc, 0x2f3d, 0x39ad, 0x3b38, 0x390e, 0x391f, 0x39a7, 0x3099, 0x3a5b, 0x3894, 0x3674, 0x3948, 0x3895, 0x3458, 0x3bc6, 0x3a36, 0x381e, 0x3069, 0x39fc, 0x3a3f, 0x39f5, 0x3a9d, 0x3169, 0x39a9, 0x3b16, 0x362d, 0x3951, 0x3881, 0x3ac4, 0x2ecf, 0x3b79, 0x3abe, 0x3841, 0x2c1a, 0x3b7a, 0x3083, 0x3ad1, 0x3a90, 0x3974, 0x2e92, 0x3b5f, 0x3003, 0x39c1, 0x2ff2, 0x39dc, 0x3bbf, 0x3972, 0x3997, 0x3667, 0x3409, 0x3239, 0x3aaf, 0x358e, 0x33b8, 0x397a, 0x3b54, 0x399d, 0x351d, 0x35c8, 0x3362, 0x2964, 0x3102, 0x3bc4, 0x22b3, 0x3b29, 0x3925, 0x37f0, 0x23fc, 0x3bc8, 0x39f0, 0x30cd, 0x3569, 0x3a27, 0x3b0b, +0x392e, 0x38e0, 0x3436, 0x3aa6, 0x395a, 0x397e, 0x38f6, 0x3b45, 0x3050, 0x34b0, 0x3b1d, 0x3932, 0x3a3a, 0x3915, 0x3816, 0x3b23, 0x3342, 0x2c1e, 0x3bfa, 0x3978, 0x304c, 0x2cd7, 0x3a11, 0x37d8, 0x3ad2, 0x37cb, 0x3bf8, 0x37d3, 0x3589, 0x37aa, 0x399a, 0x3661, 0x3965, 0x328a, 0x3969, 0x3100, 0x2dc4, 0x34a0, 0x30a4, 0x3950, 0x2f40, 0x32ab, 0x3904, 0x398d, 0x3293, 0x34a7, 0x33a4, 0x38b6, 0x3834, 0x3add, 0x3a08, 0x38cf, 0x3a13, 0x3a6f, 0x382e, 0x3682, 0x3b4b, 0x323e, 0x38e0, 0x38dc, 0x3854, 0x3b9d, 0x3b13, 0x3940, 0x38d4, 0x30ac, 0x3061, 0x3906, 0x3b2d, 0x38f9, 0x3ab0, 0x3a5a, 0x34fd, 0x3b15, 0x3472, 0x3985, 0x3634, 0x3940, 0x35da, 0x38ba, 0x395b, 0x3488, 0x39ca, 0x3a14, 0x2b22, 0x3829, 0x3479, 0x30a6, 0x3910, 0x34e2, 0x3506, 0x3663, 0x23b2, 0x3812, 0x3416, 0x3455, +0x3bc0, 0x3487, 0x3853, 0x3738, 0x3a19, 0x38a3, 0x339a, 0x3906, 0x3a98, 0x3a4c, 0x32bb, 0x3460, 0x2031, 0x36a4, 0x387a, 0x3141, 0x2f39, 0x2efd, 0x394e, 0x2e35, 0x3528, 0x3c00, 0x3b44, 0x342b, 0x3b4d, 0x3bdb, 0x3185, 0x39cb, 0x358a, 0x39ce, 0x2060, 0x3baa, 0x3bc4, 0x30eb, 0x3aed, 0x3734, 0x3a1f, 0x15f9, 0x3a5c, 0x372e, 0x33f9, 0x3b71, 0x3715, 0x37e3, 0x3384, 0x38ff, 0x36e6, 0x28a1, 0x2d9e, 0x280b, 0x3853, 0x3b42, 0x2eda, 0x3a63, 0x2328, 0x3830, 0x35a6, 0x39e9, 0x33df, 0x3be1, 0x220a, 0x39b4, 0x3ade, 0x2e17, 0x3831, 0x2cfe, 0x3752, 0x38fb, 0x39ce, 0x350b, 0x3600, 0x2ffd, 0x363a, 0x358b, 0x2582, 0x3510, 0x36db, 0x2e28, 0x38e0, 0x3a49, 0x277a, 0x301e, 0x39ca, 0x3861, 0x31a7, 0x3550, 0x3862, 0x3476, 0x3a8d, 0x38c2, 0x394b, 0x3156, 0x39ea, 0x3bdf, 0x3880, 0x389a, +0x3a75, 0x35a7, 0x37b1, 0x3b17, 0x24de, 0x32cd, 0x2c9b, 0x3968, 0x3a36, 0x2e6f, 0x3549, 0x3971, 0x34cb, 0x34ac, 0x3bf7, 0x34b8, 0x3841, 0x3527, 0x3a22, 0x3955, 0x3454, 0x380d, 0x38cd, 0x39b3, 0x39c4, 0x3777, 0x3737, 0x2ead, 0x39ef, 0x3420, 0x3a95, 0x35f0, 0x347f, 0x2c76, 0x2cfd, 0x33de, 0x3363, 0x3bf0, 0x3afc, 0x3ab1, 0x3b88, 0x3bcb, 0x23ba, 0x3353, 0x2169, 0x33a7, 0x3484, 0x307b, 0x20b7, 0x384d, 0x302a, 0x3448, 0x39b1, 0x39ab, 0x3be0, 0x3430, 0x3a05, 0x3715, 0x35fe, 0x1e5c, 0x3b84, 0x3b3a, 0x3b0a, 0x320e, 0x2e29, 0x2f00, 0x37c3, 0x3865, 0x37ae, 0x3959, 0x3ba0, 0x3b56, 0x3b4a, 0x3934, 0x35bf, 0x3aa7, 0x3814, 0x320c, 0x3b4a, 0x2499, 0x34bd, 0x3a25, 0x39b8, 0x318b, 0x3b42, 0x3a28, 0x3912, 0x3be5, 0x37af, 0x2cb7, 0x3799, 0x37eb, 0x3981, 0x3033, 0x2f89, 0x3471, +0x3a59, 0x3ab8, 0x3a8d, 0x3bd7, 0x3ba2, 0x39d4, 0x3a8b, 0x278d, 0x32e2, 0x2ced, 0x397f, 0x39f2, 0x3b27, 0x3798, 0x35bf, 0x3597, 0x374e, 0x3ac6, 0x3728, 0x3673, 0x252b, 0x30c8, 0x3b7b, 0x39fb, 0x38db, 0x3ac7, 0x3728, 0x3420, 0x3749, 0x3749, 0x37f3, 0x3977, 0x3181, 0x2d5c, 0x37f8, 0x3966, 0x3b9f, 0x3901, 0x369f, 0x36fa, 0x2468, 0x38f7, 0x3900, 0x37f1, 0x39d6, 0x342d, 0x35d0, 0x359f, 0x3b0b, 0x3a28, 0x34b4, 0x3979, 0x3346, 0x3b9a, 0x391f, 0x3823, 0x350e, 0x3b34, 0x3202, 0x3a2b, 0x313e, 0x355b, 0x37fb, 0x3ac1, 0x36ac, 0x2452, 0x2711, 0x360d, 0x34b7, 0x3af8, 0x2b80, 0x3621, 0x3950, 0x3824, 0x3578, 0x3900, 0x2ac0, 0x38c6, 0x39e1, 0x3565, 0x348f, 0x32d5, 0x388c, 0x38c0, 0x30e3, 0x3738, 0x3bbb, 0x3b46, 0x3b6e, 0x3bd1, 0x3b3d, 0x2d5b, 0x3acd, 0x3a67, 0x35f0, 0x3956, +0x39dd, 0x3be7, 0x3468, 0x2fb1, 0x3b73, 0x348b, 0x37a8, 0x2c37, 0x3b32, 0x375a, 0x3a14, 0x353d, 0x371f, 0x3b1b, 0x3b62, 0x3aaa, 0x39e8, 0x32d1, 0x3b3e, 0x3b74, 0x337c, 0x383e, 0x2d50, 0x3bc2, 0x33f5, 0x330f, 0x3b93, 0x3552, 0x3842, 0x37b5, 0x3918, 0x3654, 0x38a6, 0x2863, 0x3b0c, 0x38e8, 0x3b18, 0x28d3, 0x3b95, 0x3ad8, 0x38d1, 0x39ac, 0x31fb, 0x396b, 0x3b8f, 0x3818, 0x2d54, 0x3bd6, 0x340f, 0x3a89, 0x3192, 0x2cff, 0x3a00, 0x3680, 0x3843, 0x353a, 0x3591, 0x320f, 0x380e, 0x3709, 0xca6, 0x3783, 0x2f2b, 0x2ca1, 0x3885, 0x3391, 0x2c3b, 0x3933, 0x3812, 0x363e, 0x39b5, 0x39d8, 0x3a4b, 0x3951, 0x38b6, 0x399a, 0x318f, 0x2c20, 0x3925, 0x37cc, 0x3795, 0x38b8, 0x3184, 0x3961, 0x376a, 0x302b, 0x319e, 0x3b7d, 0x29a8, 0x3ae9, 0x313d, 0x3b7c, 0x3b7a, 0x3729, 0x3455, 0x2da3, +0x355c, 0x351e, 0x39d5, 0x3bf8, 0x3b11, 0x338f, 0x3990, 0x34cd, 0x3378, 0x2cbc, 0x3948, 0x39ab, 0x3be7, 0x3b59, 0x38e2, 0x2d9f, 0x378b, 0x385b, 0x31e4, 0x35ed, 0x3b0e, 0x3915, 0x3984, 0x3a44, 0x3869, 0x39f7, 0x3239, 0x3a8b, 0x36fb, 0x3081, 0x3ac3, 0x3b0e, 0x3104, 0x2078, 0x3962, 0x29bc, 0x3bb8, 0x3985, 0x3a56, 0x3648, 0x3a7d, 0x3ad3, 0x34d9, 0x3bb5, 0x38d9, 0x39b6, 0x3a2f, 0x3767, 0x3a56, 0x3620, 0x394d, 0x2d7c, 0x322a, 0x3899, 0x3a53, 0x3353, 0x383e, 0x316e, 0x348d, 0x3af5, 0x3a16, 0x3804, 0x3418, 0x3b1a, 0x3be6, 0x3166, 0x2911, 0x3656, 0x3acd, 0x392e, 0x3112, 0x3968, 0x37b7, 0x3af6, 0x38dd, 0x36b4, 0x3444, 0x3be7, 0x3991, 0x375f, 0x38da, 0x315a, 0x3684, 0x21a4, 0x38f4, 0x3860, 0x3935, 0x3b0f, 0x3b40, 0x37b6, 0x35b3, 0x3476, 0x35e9, 0x38ad, 0x3b82, 0x2964, +0x3880, 0x3844, 0x3615, 0x39d0, 0x3310, 0x306b, 0x329d, 0x338a, 0x2f84, 0x3a43, 0x300b, 0x3a47, 0x3821, 0x3b60, 0x387a, 0x3301, 0x3046, 0x351a, 0x3711, 0x38ec, 0x33a1, 0x376e, 0x39da, 0x3aae, 0x3877, 0x3960, 0x38ef, 0x3412, 0x3bbd, 0x3b24, 0x39e5, 0x355d, 0x3ab6, 0x2de8, 0x3ab5, 0x34a8, 0x3856, 0x32b4, 0x3673, 0x3a8b, 0x2e18, 0x3035, 0x3823, 0x38e7, 0x398e, 0x3743, 0x36e4, 0x381c, 0x3893, 0x3ae2, 0x331f, 0x3bdb, 0x34ae, 0x3a85, 0x277f, 0x342f, 0x38da, 0x3b62, 0x393a, 0x26bc, 0x3563, 0x39ce, 0x38e1, 0x395a, 0x3698, 0x3907, 0x30ed, 0x3536, 0x3925, 0x3bc8, 0x30ee, 0x38c2, 0x351d, 0x306e, 0x3952, 0x327f, 0x3a90, 0x3875, 0x337f, 0x3ab1, 0x342c, 0x39e7, 0x3be5, 0x33a6, 0x39af, 0x36ab, 0x2bca, 0x3984, 0x3a01, 0x319e, 0x3904, 0x3b78, 0x3785, 0x3a75, 0x3ace, 0x39c2, +0x3a6e, 0x39c8, 0x3b65, 0x342b, 0x3491, 0x320a, 0x3a81, 0x1f58, 0x3af6, 0x3881, 0x35d6, 0x389c, 0x3a23, 0x336f, 0x36ad, 0x39ab, 0x3062, 0x37fc, 0x317b, 0x3870, 0x3add, 0x3a7f, 0x37fe, 0x340b, 0x3211, 0x3944, 0x3714, 0x3806, 0x3bce, 0x3441, 0x3781, 0x397e, 0x391c, 0x3182, 0x31ac, 0x3456, 0x38f3, 0x3b15, 0x3b76, 0x3bf1, 0x3971, 0x3601, 0x318d, 0x34f2, 0x3a78, 0x35f5, 0x35c7, 0x354f, 0x3570, 0x36c5, 0x39fc, 0x35cd, 0x380e, 0x3606, 0x39c0, 0x352c, 0x3112, 0x3b6b, 0x355c, 0x3977, 0x328f, 0x2d34, 0x3abb, 0x3942, 0x1cba, 0x367a, 0x3aa6, 0x341f, 0x383f, 0x3a9a, 0x3960, 0x358f, 0x2dce, 0x21ac, 0x3bef, 0x3bca, 0x3bdb, 0x3967, 0x38aa, 0x39c1, 0x3b5b, 0x3185, 0x352c, 0x388a, 0x3893, 0x3a70, 0x34e4, 0x38e2, 0x31ba, 0x34d8, 0x32b5, 0x3aed, 0x3802, 0x2f06, 0x36d9, 0x3493, +0x3a09, 0x2994, 0x2e77, 0x3ae8, 0x3bc6, 0x3ace, 0x3926, 0x35b6, 0x326a, 0x3079, 0x3769, 0x28d1, 0x3b41, 0x357b, 0x3aed, 0x34cd, 0x3361, 0x2b6a, 0x3bc8, 0x2115, 0x3b73, 0x371f, 0x3b10, 0x2d39, 0x3092, 0x3264, 0x39df, 0x34c1, 0x2a04, 0x3a86, 0x306c, 0x33bf, 0x37dd, 0x3b17, 0x2f12, 0x3676, 0x3991, 0x3a7a, 0x3bb9, 0x3a80, 0x3441, 0x3592, 0x358d, 0x39dc, 0x31d3, 0x3887, 0x30f5, 0x3855, 0x3be6, 0x3b49, 0x3a7f, 0x3a6c, 0x2de5, 0x269d, 0x37e8, 0x3b49, 0x3026, 0x318b, 0x35e1, 0x39ba, 0x3a34, 0x3a43, 0x35a4, 0x34dd, 0x3918, 0x3a6a, 0x3780, 0x38d0, 0x3b78, 0x3b3e, 0x23b9, 0x37d9, 0x2b95, 0x3619, 0x3377, 0x2df7, 0x3b1e, 0x36de, 0x368b, 0x3bc4, 0x22d2, 0x3730, 0x30cf, 0x379d, 0x3824, 0x37fe, 0x39ba, 0x28c6, 0x36d3, 0x3587, 0x3aaa, 0x3155, 0x3a2d, 0x26ff, 0x2ffb, 0x3a19, +0x31b1, 0x302e, 0x2eba, 0x31f0, 0x3ba8, 0x3510, 0x243a, 0x30a4, 0x3638, 0x3b45, 0x2954, 0x3530, 0x39bc, 0x3944, 0x3951, 0x3026, 0x368f, 0x38e4, 0x36ce, 0x3b31, 0x38e5, 0x3471, 0x3af0, 0x3acf, 0x3842, 0x3be1, 0x319c, 0x2f2d, 0x3490, 0x3bec, 0x3b40, 0x3837, 0x3b38, 0x37fb, 0x3887, 0x383e, 0x382e, 0x31bd, 0x3ae1, 0x3a96, 0x3814, 0x37e0, 0x279d, 0x3363, 0x2ba9, 0x312b, 0x3a46, 0x3617, 0x3a0d, 0x2817, 0x3a37, 0x3981, 0x2d54, 0x3437, 0x3959, 0x3151, 0x3bc2, 0x39c9, 0x3aa3, 0x2d25, 0x3976, 0x3a2b, 0x3acd, 0x3a43, 0x3a9e, 0x39a1, 0x3914, 0x37ac, 0x3702, 0x382c, 0x38d9, 0x318c, 0x210a, 0x2c14, 0x34e2, 0x3a22, 0x2861, 0x3bc6, 0x1265, 0x3b43, 0x332e, 0x3992, 0x3330, 0x3a50, 0x3b38, 0x3aad, 0x33ce, 0x39a9, 0x33be, 0x387d, 0x3ade, 0x3a94, 0x3a56, 0x3ae4, 0x38a9, 0x1ace, +0x3551, 0x3ad8, 0x37c2, 0x3b00, 0x3b8d, 0x36d9, 0x3baa, 0x38bb, 0x34df, 0x3710, 0x3599, 0x3b7b, 0x2fea, 0x385e, 0x2dd8, 0x2e4e, 0x394d, 0x208a, 0x350b, 0x3876, 0x2df7, 0x34f4, 0x3b4c, 0x386d, 0x3260, 0x3b9d, 0x3343, 0x383f, 0x3bf4, 0x333b, 0x3bde, 0x3bd3, 0x392f, 0x3a2d, 0x3bdd, 0x341e, 0x3b13, 0x2b1c, 0x3b34, 0x2bb7, 0x2a93, 0x39c2, 0x3634, 0x358c, 0x3ba9, 0x3231, 0x3a0d, 0x3bc7, 0x3813, 0x2814, 0x3a1b, 0x3b03, 0x2e0e, 0x3616, 0x383a, 0x3578, 0x3a1f, 0x3685, 0x303c, 0x34a7, 0x3bad, 0x3548, 0x2380, 0x364f, 0x36ac, 0x28f8, 0x3a74, 0x34e2, 0x392e, 0x3409, 0x30e5, 0x340f, 0x3581, 0x36a3, 0x3366, 0x35f1, 0x30c4, 0x374f, 0x3921, 0x3aec, 0x3881, 0x2b48, 0x38e7, 0x31ce, 0x3626, 0x3b4b, 0x3b9f, 0x34cd, 0x313e, 0x379e, 0x39a6, 0x38cf, 0x38e3, 0x3031, 0x398f, 0x3bbc, +0x3a15, 0x3737, 0x361a, 0x3b25, 0x3992, 0x350a, 0x3698, 0x37de, 0x3a78, 0x37f5, 0x36d2, 0x3a12, 0x348e, 0x3923, 0x352f, 0x3b28, 0x3989, 0x39d8, 0x3b7b, 0x37cf, 0x3bfd, 0x3143, 0x31f5, 0x36a2, 0x3ae8, 0x3b3d, 0x3aab, 0x320e, 0x2ecc, 0x368f, 0x29c4, 0x36d0, 0x3a8c, 0x35c1, 0x2daa, 0x3128, 0x3b96, 0x388c, 0x3786, 0x349a, 0x390b, 0x2843, 0x381f, 0x2d05, 0x31ee, 0x3976, 0x3722, 0x368a, 0x3899, 0x3b64, 0x3b84, 0x3ae4, 0x3135, 0x3838, 0x387c, 0x2636, 0x2cd7, 0x3bcd, 0x39a6, 0x3ac6, 0x34c3, 0x364d, 0x384b, 0x2c55, 0x34b6, 0x201f, 0x38de, 0x2fc0, 0x389c, 0x381b, 0x36a8, 0x372f, 0x2b5c, 0x3491, 0x30d7, 0x38d2, 0x3893, 0x33a0, 0x33c8, 0x3405, 0x3490, 0x387d, 0x3411, 0x3907, 0x3bc0, 0x3aa9, 0x3023, 0x395c, 0x3b10, 0x3b8e, 0x3791, 0x3b17, 0x3980, 0x3b13, 0x336a, 0x354d, +0x39d9, 0x35f5, 0x3034, 0x300f, 0x38e5, 0x395c, 0x3394, 0x392f, 0x390a, 0x2567, 0x3151, 0x3861, 0x3a84, 0x3759, 0x382b, 0x3185, 0x359b, 0x3a6b, 0x3927, 0x3b6c, 0x39ed, 0x2cc3, 0x34bc, 0x389f, 0x3617, 0x335f, 0x3a9e, 0x35c0, 0x378c, 0x38e7, 0x2d21, 0x2ec0, 0x3874, 0x3af1, 0x36c6, 0x3b7e, 0x364f, 0x386e, 0x34f3, 0x2761, 0x386e, 0x3ac9, 0x308e, 0x3ad6, 0x3194, 0x35f7, 0x31d0, 0x3a36, 0x34d6, 0x36b0, 0x34bf, 0x38cb, 0x2f2c, 0x3945, 0x325c, 0x39d0, 0x1fce, 0x3a04, 0x3118, 0x3a0c, 0x3a56, 0x3794, 0x3744, 0x3ad3, 0x36c3, 0x2700, 0x392c, 0x34fa, 0x3b4d, 0x2649, 0x393c, 0x3967, 0x37f7, 0x369e, 0x3ac1, 0x39b3, 0x39a1, 0x36a4, 0x3645, 0x39cc, 0x3af9, 0x31e3, 0x237a, 0x35d3, 0x35fa, 0x3b53, 0x3872, 0x3bcc, 0x3a9c, 0x3ba9, 0x34e9, 0x34ec, 0x3b31, 0x3b09, 0x31d7, 0x3a45, +0x33ab, 0x38b0, 0x384c, 0x3a48, 0x3340, 0x390f, 0x340e, 0x3937, 0x2ceb, 0x3b0d, 0x3b15, 0x3979, 0x3884, 0x376b, 0x3b79, 0x39d2, 0x36fb, 0x3442, 0x3994, 0x35c1, 0x3b6f, 0x3918, 0x3bea, 0x37f1, 0x3b25, 0x3bd5, 0x3ab4, 0x3604, 0x3593, 0x39fc, 0x3893, 0x37f7, 0x3a56, 0x3118, 0x3444, 0x36ac, 0x315a, 0x2eaa, 0x3a55, 0x3bea, 0x372f, 0x3b79, 0x38fa, 0x32a9, 0x2a8d, 0x326b, 0x39dd, 0x2c6e, 0x3a63, 0x39a8, 0x34dd, 0x2fa8, 0x3afa, 0x3ab1, 0x3854, 0x2e58, 0x3a7b, 0x39e6, 0x3489, 0x3631, 0x3826, 0x3ad2, 0x384d, 0x3565, 0x3a21, 0x3beb, 0x334d, 0x3603, 0x2de5, 0x31fa, 0x3111, 0x3455, 0x390c, 0x38aa, 0x3822, 0x2e75, 0x36cb, 0x3bb0, 0x38d7, 0x386a, 0x336f, 0x3150, 0x395a, 0x3219, 0x39f2, 0x3675, 0x2b46, 0x39d6, 0x2e2f, 0x3752, 0x3b23, 0x3670, 0x3b64, 0x39f4, 0x3bec, 0x3848, +0x389e, 0x3214, 0x3618, 0x32ca, 0x333b, 0x2fe6, 0x2cf6, 0x36f3, 0x3748, 0x380b, 0x3b5f, 0x3b4e, 0x2dce, 0x2474, 0x3a17, 0x320e, 0x38ac, 0x3b44, 0x3595, 0x3bd7, 0x3896, 0x32ea, 0x37d0, 0x34a8, 0x31f2, 0x3a51, 0x3b6c, 0x3753, 0x3abd, 0x3b26, 0x24a0, 0x32fb, 0x3a3a, 0x3bf9, 0x2fc5, 0x390d, 0x3a42, 0x331d, 0x3b2e, 0x370e, 0x32d3, 0x3b26, 0x3b7f, 0x2d64, 0x39ca, 0x3405, 0x3962, 0x36c0, 0x2ffe, 0x3b76, 0x3811, 0x3287, 0x34d7, 0x3beb, 0x3a37, 0x3756, 0x390e, 0x398b, 0x3160, 0x3bf9, 0x3a09, 0x38ee, 0x382a, 0x366e, 0x3836, 0x3b95, 0x3b30, 0x3bd4, 0x1c94, 0x33c6, 0x3391, 0x3b2c, 0x3b07, 0x37b6, 0x3499, 0x3942, 0x2dc7, 0x357d, 0x380f, 0x32e5, 0x3628, 0x386a, 0x3b66, 0x395b, 0x3611, 0x3bef, 0x3935, 0x34c3, 0x3354, 0x39ab, 0x3b9e, 0x34f5, 0x358b, 0x326f, 0x3952, 0x359f, +0x39c7, 0x399f, 0x2d59, 0x379e, 0x33fd, 0x3b7a, 0x327e, 0x392d, 0x3b6c, 0x34b5, 0x3a50, 0x365b, 0x392f, 0x3b31, 0x3a20, 0x3131, 0x3a43, 0x292e, 0x3a0c, 0x3bb1, 0x3bf6, 0x29e8, 0x32d4, 0x3b07, 0x3189, 0x32d5, 0x3689, 0x3a3e, 0x3857, 0x281c, 0x2b7b, 0x3545, 0x35a9, 0x3aa0, 0x2cf4, 0x3356, 0x3b2f, 0x3845, 0x3a9d, 0x38fa, 0x285c, 0x3aef, 0x387a, 0x2121, 0x376d, 0x30bb, 0x38b8, 0x3ad4, 0x3bf3, 0x3219, 0x398e, 0x2dc8, 0x31ae, 0x38b2, 0x34f9, 0x3846, 0x3bb0, 0x3bc9, 0x2fd2, 0x3403, 0x34c1, 0x3043, 0x3823, 0x38f1, 0x384a, 0x396a, 0x37c2, 0x3839, 0x3441, 0x3821, 0x2774, 0x380f, 0x39e4, 0x3832, 0x375b, 0x3a10, 0x3894, 0x2f6b, 0x3586, 0x34fe, 0x3bad, 0x3856, 0x35c6, 0x38ad, 0x3835, 0x368d, 0x39a1, 0x3736, 0x349e, 0x32c2, 0x2df5, 0x34c5, 0x3ba0, 0x349b, 0x35af, 0x35aa, +0x3a17, 0x3696, 0x3169, 0x3433, 0x3800, 0x38f3, 0x37f8, 0x376a, 0x2ec7, 0x3bad, 0x373f, 0x281c, 0x3968, 0x3403, 0x2c9e, 0x3b1f, 0x3003, 0x35cc, 0x3810, 0x367c, 0x3a68, 0x26e9, 0x34e2, 0x3902, 0x2edb, 0x3478, 0x2a6a, 0x3a45, 0x3867, 0x38c5, 0x3a61, 0x388c, 0x3738, 0x34be, 0x35e6, 0x36b3, 0x325c, 0x35c6, 0x384e, 0x358d, 0x3894, 0x31c8, 0x3820, 0x363b, 0x380e, 0x385f, 0x38ac, 0x36a3, 0x31da, 0x3b46, 0x3715, 0x37ec, 0x386b, 0x35c7, 0x3100, 0x3a7a, 0x3504, 0x3810, 0x3a22, 0x36a9, 0x3995, 0x3b0c, 0x37f0, 0x2d4e, 0x36c4, 0x347e, 0x39dc, 0x3a2a, 0x3951, 0x3bca, 0x3bf5, 0x3bb3, 0x3b46, 0x3afa, 0x311c, 0x3929, 0x3291, 0x372f, 0x306d, 0x2843, 0x391a, 0x30c4, 0x3a5b, 0x3be7, 0x3924, 0x38ae, 0x3734, 0x32bd, 0x3b39, 0x39f6, 0x3aaa, 0x327a, 0x3045, 0x383c, 0x3303, 0x352c, +0x3bcd, 0x3baa, 0x3116, 0x3ad3, 0x39bc, 0x3aee, 0x36b3, 0x3a06, 0x3408, 0x3971, 0x3545, 0x38aa, 0x3a21, 0x3743, 0x367e, 0x3ac3, 0x3a54, 0x2cad, 0x3820, 0x39eb, 0x398a, 0x34a9, 0x3b95, 0x3a34, 0x32bb, 0x3bda, 0x3704, 0x3aa2, 0x39a3, 0x3953, 0x38ed, 0x3821, 0x39eb, 0x36b4, 0x38b5, 0x382e, 0x3753, 0x3203, 0x3796, 0x2e26, 0x303a, 0x3895, 0x39a3, 0x3a1f, 0x3ad6, 0x302f, 0x376d, 0x347f, 0x32fc, 0x382d, 0x39fa, 0x2d39, 0x32b2, 0x2fef, 0x3044, 0x3497, 0x39a9, 0x3994, 0x346d, 0x38a8, 0x3487, 0x3431, 0x39a7, 0x375a, 0x3935, 0x2eaf, 0x2ff3, 0x3467, 0x35cf, 0x3738, 0x2df4, 0x3b14, 0x3978, 0x36a8, 0x3406, 0x3aad, 0x3169, 0x355a, 0x3a49, 0x2e40, 0x34a4, 0x34ac, 0x308a, 0x3546, 0x3b34, 0x3514, 0x3aaf, 0x3707, 0x3999, 0x3a99, 0x2cc7, 0x326d, 0x3a95, 0x3bb1, 0x315b, 0x3989, +0x39d7, 0x3684, 0x39f7, 0x3963, 0x31e0, 0x3a96, 0x3492, 0x3b63, 0x37fd, 0x3b38, 0x37ba, 0x34fd, 0x365b, 0x3496, 0x3a38, 0x3906, 0x3bed, 0x39d9, 0x389b, 0x34eb, 0x3332, 0x2b11, 0x31c8, 0x3889, 0x3810, 0x30b7, 0x28b6, 0x29d1, 0x3420, 0x3222, 0x387e, 0x3a70, 0x2cf8, 0x3b07, 0x304f, 0x3998, 0x360b, 0x3b8b, 0x3434, 0x38ee, 0x304f, 0x39e7, 0x3685, 0x3981, 0x3a46, 0x39af, 0x387a, 0x36e7, 0x3a5e, 0x33ef, 0x3a38, 0x32d1, 0x39f0, 0x345c, 0x36af, 0x3416, 0x3be9, 0x23fa, 0x3b3a, 0x3b59, 0x3732, 0x3578, 0x3bd8, 0x3a83, 0x387d, 0x3ad8, 0x394e, 0x3431, 0x3748, 0x3809, 0x3ac3, 0x3a1a, 0x38e0, 0x37ca, 0x2e29, 0x386d, 0x2e50, 0x360f, 0x31e4, 0x3715, 0x3986, 0x35a7, 0x3bd1, 0x3ae4, 0x3432, 0x3750, 0x38e8, 0x3926, 0x3b12, 0x3460, 0x358f, 0x3aab, 0x3906, 0x355a, 0x27fc, 0x3a2f, +0x386f, 0x3b47, 0x309b, 0x3098, 0x3b47, 0x35a2, 0x3677, 0x39a2, 0x35a4, 0x389e, 0x3b5f, 0x37e9, 0x32d3, 0x30cb, 0x2cc7, 0x2f1d, 0x392f, 0x3bfb, 0x392b, 0x3909, 0x3a3a, 0x38f8, 0x2e08, 0x3962, 0x358f, 0x37ea, 0x34db, 0x3bc8, 0x38ca, 0x3ba2, 0x3a0b, 0x39ba, 0x369c, 0x2cce, 0x3988, 0x3a39, 0x3be5, 0x2a39, 0x35c1, 0x3643, 0x37c9, 0x35bf, 0x352f, 0x3a7f, 0x350f, 0x330f, 0x3a34, 0x36aa, 0x38da, 0x2fc0, 0x387b, 0x37b7, 0x34a8, 0x396b, 0x39f3, 0x37f4, 0x3649, 0x3959, 0x3024, 0x373f, 0x38fd, 0x38c3, 0x39d3, 0x340b, 0x38cb, 0x30c4, 0x3877, 0x3af4, 0x28ef, 0x3a81, 0x2ff9, 0x3992, 0x2902, 0x3b16, 0x3590, 0x3a95, 0x3708, 0x3a63, 0x1ba7, 0x347d, 0x3a3e, 0x3bd4, 0x3946, 0x2da1, 0x38df, 0x396d, 0x39c9, 0x3810, 0x39de, 0x3b69, 0x30ad, 0x3748, 0x3678, 0x3a92, 0x39b8, 0x30c9, +0x3990, 0x2cd8, 0x303c, 0x2c03, 0x35c0, 0x3b10, 0x39b6, 0x35f6, 0x3bb8, 0x3733, 0x320f, 0x3a45, 0x3457, 0x392e, 0x3462, 0x36f3, 0x32d4, 0x3025, 0x24ba, 0x3826, 0x37a7, 0x3714, 0x38d7, 0x3630, 0x3a29, 0x3582, 0x3af6, 0x2639, 0x3b0e, 0x3872, 0x39c2, 0x2e2e, 0x396d, 0x3b99, 0x34b3, 0x3551, 0x3162, 0x3a7d, 0x35f0, 0x351b, 0x3661, 0x3ad0, 0x39cf, 0x25f1, 0x3987, 0x3296, 0x365f, 0x3902, 0x38fd, 0x3745, 0x3990, 0x3972, 0x3317, 0x3a87, 0x3985, 0x392d, 0x36a3, 0x34f1, 0x396f, 0x3a7a, 0x3465, 0x3362, 0x3b0b, 0x208d, 0x37e0, 0x3ade, 0x31dc, 0x3854, 0x34cc, 0x3874, 0x311e, 0x38ec, 0x35e2, 0x2de6, 0x3219, 0x38b0, 0x3be3, 0x3381, 0x3b39, 0x38e6, 0x3b20, 0x3bea, 0x38e2, 0x38d6, 0x39e6, 0x2db4, 0x3884, 0x1cb8, 0x176a, 0x2eba, 0x3bb1, 0x37fe, 0x371a, 0x3b1c, 0x3402, 0x3462, +0x3632, 0x2a7c, 0x3897, 0x32c6, 0x34d7, 0x3ad2, 0x3b38, 0x3aa2, 0x2c56, 0x392e, 0x376a, 0x3356, 0x36b3, 0x3b8d, 0x2fc0, 0x3b16, 0x38dd, 0x2f21, 0x3852, 0x3aeb, 0x3aad, 0x379e, 0x32c9, 0x324b, 0x3b1f, 0x382a, 0x3929, 0x2cbe, 0x3867, 0x3651, 0x389b, 0x2fd3, 0x3809, 0x3ade, 0x38ba, 0x3a92, 0x398d, 0x38c2, 0x3061, 0x37f4, 0x3ab9, 0x3a17, 0x2d4b, 0x3255, 0x3656, 0x3884, 0x3b75, 0x3b1a, 0x3a56, 0x353d, 0x2fab, 0x3a0d, 0x3180, 0x3bd5, 0x3ac0, 0x3298, 0x3a5f, 0x3009, 0x39d4, 0x3b69, 0x39ad, 0x3b16, 0x36b3, 0x2c5b, 0x3ab1, 0x39d1, 0x30bc, 0x36ba, 0x2f6d, 0x3817, 0x3b4c, 0x3b31, 0x39d1, 0x348b, 0x3b82, 0x3032, 0x2586, 0x3bbf, 0x2dea, 0x2f5f, 0x383a, 0x3bb8, 0x3a4c, 0x3421, 0x33f7, 0x3ab6, 0x398e, 0x3335, 0x3a1c, 0x37dd, 0x2fc9, 0x3824, 0x3463, 0x3bed, 0x3b6c, 0x313b, +0x3b2d, 0x3426, 0x335b, 0x3952, 0x347e, 0x3ba0, 0x3bbb, 0x39ec, 0x3b16, 0x3561, 0x3a65, 0x3196, 0x3bd4, 0x30b6, 0x3891, 0x3749, 0x3a0b, 0x3a40, 0x3485, 0x3b5d, 0x3b0d, 0x33b5, 0x3812, 0x37be, 0x3a0a, 0x38c9, 0x38d2, 0x398f, 0x3235, 0x3a91, 0x2b81, 0x26f6, 0x2d3a, 0x1cd9, 0x2ea1, 0x3970, 0x3a5b, 0x30e8, 0x2a5f, 0x390b, 0x38f4, 0x396c, 0x3b50, 0x3b24, 0x35dd, 0x396c, 0x33c7, 0x2c40, 0x397b, 0x390b, 0x348f, 0x38df, 0x38fb, 0x3be2, 0x3122, 0x3bb5, 0x2c56, 0x322f, 0x3836, 0x1ee5, 0x3b35, 0x359e, 0x3966, 0x39b3, 0x3163, 0x2902, 0x38b4, 0x3ace, 0x34ed, 0x3add, 0x3428, 0x369b, 0x3116, 0x3a77, 0x34f6, 0x39c9, 0x3263, 0x359d, 0x352c, 0x3b0b, 0x38c9, 0x31dc, 0x373d, 0x2ad4, 0x3452, 0x3156, 0x360d, 0x2d93, 0x38d0, 0x3978, 0x3901, 0x36f4, 0x3b26, 0x2e42, 0x3983, 0x3bce, +0x3990, 0x37f3, 0x2645, 0x3938, 0x3868, 0x3a22, 0x3a6a, 0x3b78, 0x3b4e, 0x371f, 0x39fb, 0x2e11, 0x38b8, 0x36d2, 0x3468, 0x34f2, 0x39bf, 0x3b8e, 0x3710, 0x348b, 0x38d6, 0x3aae, 0x35f0, 0x3ae0, 0x3ba8, 0x3857, 0x39c1, 0x3a03, 0x35b3, 0x3a2c, 0x3a7b, 0x350c, 0x30f8, 0x3830, 0x25aa, 0x24b3, 0x380b, 0x3879, 0x3929, 0x354d, 0x38b4, 0x2fea, 0x34bc, 0x3ba6, 0x3832, 0x3a2a, 0x387b, 0x343f, 0x3114, 0x2edb, 0x36ec, 0x3a24, 0x32ea, 0x2f80, 0x3675, 0x2df4, 0x39ce, 0x37ea, 0x3091, 0x3766, 0x38e3, 0x37d4, 0x39bc, 0x3425, 0x3336, 0x38aa, 0x34b9, 0x3bce, 0x37dc, 0x3af9, 0x39a9, 0x3b3e, 0x386a, 0x392b, 0x3942, 0x338a, 0x36f9, 0x36f3, 0x3b56, 0x33e2, 0x3bd1, 0x38aa, 0x3337, 0x3a61, 0x3ac5, 0x377c, 0x3819, 0x2ff3, 0x3870, 0x3b2c, 0x3925, 0x38cd, 0x3b0e, 0x3719, 0x3a2a, 0x326d, +0x32b3, 0x35f8, 0x3b6e, 0x3bde, 0x3baf, 0x3027, 0x3433, 0x3819, 0x2eab, 0x3b4f, 0x34a1, 0x34f8, 0x393a, 0x3a09, 0x38f7, 0x3489, 0x37ae, 0x3bfa, 0x2dc1, 0x3468, 0x26f5, 0x343f, 0x3b4e, 0x39b2, 0x339a, 0x3441, 0x3b51, 0x38dc, 0x3914, 0x2699, 0x3339, 0x2f3a, 0x38f1, 0x3a57, 0x2e7e, 0x36a4, 0x2cf6, 0x31e6, 0x3802, 0x3a75, 0x39f5, 0x38f5, 0x3327, 0x38d5, 0x36b4, 0x3b6c, 0x2279, 0x3b08, 0x39e9, 0x380f, 0x3b8c, 0x3432, 0x39c9, 0x343d, 0x38ad, 0x3be5, 0x3602, 0x3bc4, 0x3952, 0x350a, 0xc4c, 0x267d, 0x35e1, 0x3bdb, 0x3937, 0x348d, 0x3768, 0x3a78, 0x3717, 0x3342, 0x34f0, 0x36db, 0x2788, 0x3b52, 0x2acf, 0x3bef, 0x3899, 0x3279, 0x38e4, 0x3bc5, 0x38ed, 0x3369, 0x3652, 0x34b4, 0x378a, 0x3bf9, 0x3a9d, 0x3841, 0x3a01, 0x3065, 0x35a4, 0x3b47, 0x376f, 0x35e0, 0x34f0, 0x396c, +0x3a1e, 0x354b, 0x390b, 0x3165, 0x3435, 0x329e, 0x386e, 0x36ba, 0x2046, 0x385b, 0x3493, 0x3537, 0x2e29, 0x3bda, 0x3b0c, 0x35e0, 0x34b8, 0x25c1, 0x3698, 0x2ef1, 0x3516, 0x330e, 0x387a, 0x37eb, 0x3011, 0x2658, 0x350a, 0x393c, 0x2c1c, 0x2dbc, 0x25f3, 0x376f, 0x3a1c, 0x3112, 0x2c6d, 0x2e2a, 0x3a3d, 0x3ba0, 0x391a, 0x36ac, 0x3876, 0x32b9, 0x3ad9, 0x36f8, 0x39aa, 0x3095, 0x348d, 0x39a6, 0x35be, 0x3747, 0x31e9, 0x33b9, 0x31c0, 0x3926, 0x2d3f, 0x3b32, 0x3412, 0x3b52, 0x29eb, 0x333e, 0x3af4, 0x3974, 0x36ab, 0x3ba6, 0x3aed, 0x3807, 0x2b53, 0x33b0, 0x35d7, 0x37aa, 0x3838, 0x3478, 0x2f9d, 0x3b1b, 0x3b31, 0x30fb, 0x30fa, 0x38d7, 0x329f, 0x372b, 0x31b1, 0x38a9, 0x3932, 0x315d, 0x2d85, 0x374b, 0x3aa3, 0x3621, 0x2da1, 0x373a, 0x386d, 0x38ba, 0x3a4e, 0x1eea, 0x3887, 0x3438 +}; \ No newline at end of file diff --git a/redmule/inc/y_2D.h b/redmule/inc/y_2D.h new file mode 100644 index 0000000..9ea877d --- /dev/null +++ b/redmule/inc/y_2D.h @@ -0,0 +1,99 @@ + /* Header file generated by RedMulE Golden Model */ +uint16_t y_inp_2D [96][96] = { +0x39fc, 0x3a87, 0x3a35, 0x2bf4, 0x34f8, 0x2c8c, 0x3822, 0x38a2, 0x3bf8, 0x3b3a, 0x37d8, 0x3041, 0x28b2, 0x38d2, 0x1822, 0x3044, 0x38dc, 0x308d, 0x3a14, 0x3952, 0x38be, 0x32ef, 0x351e, 0x38ab, 0x2eb4, 0x3689, 0x33ca, 0x3a1f, 0x3bbc, 0x37ed, 0x38d5, 0x35c8, 0x341b, 0x3b74, 0x3627, 0x3a34, 0x3220, 0x3b85, 0x3a43, 0x2eca, 0x3550, 0x3958, 0x3813, 0x2cca, 0x3869, 0x391e, 0x3260, 0x2e42, 0x3493, 0x39ed, 0x3b7b, 0x3699, 0x3863, 0x3a7e, 0x3ab4, 0x3bcb, 0x3920, 0x3502, 0x28df, 0x38c5, 0x35e5, 0x282d, 0x3645, 0x3a29, 0x2fbb, 0x338d, 0x3ba0, 0x320d, 0x2830, 0x3bb4, 0x390a, 0x367f, 0x3335, 0x3b1a, 0x38c0, 0x3781, 0x3773, 0x39b0, 0x3b74, 0x38ba, 0x3383, 0x3550, 0x357a, 0x3ba7, 0x30e6, 0x39f4, 0x3b11, 0x282b, 0x334f, 0x3644, 0x367c, 0x3ac3, 0x38f3, 0x39f9, 0x3b1d, 0x35cf, +0x3433, 0x2eea, 0x38c1, 0x362a, 0x35e6, 0x3070, 0x1c1d, 0x308e, 0x381d, 0x39e5, 0x3a51, 0x2fb2, 0x3723, 0x3b58, 0x293e, 0x337a, 0x3a39, 0x349c, 0x3766, 0x3a73, 0x39bd, 0x3a0c, 0x3843, 0x21b9, 0x39a5, 0x2fd6, 0x2cf4, 0x3112, 0x3a1a, 0x3bb6, 0x3a83, 0x398e, 0x3b92, 0x2a3f, 0x37f1, 0x3664, 0x35f0, 0x39be, 0x3279, 0x39e0, 0x3241, 0x3bc7, 0x3bae, 0x36bd, 0x1bf5, 0x3806, 0x37d3, 0x247c, 0x3789, 0x36b9, 0x3b84, 0x3093, 0x3a5d, 0x2863, 0x2fe0, 0x2c4b, 0x3bd5, 0x38b6, 0x3b0e, 0x3ad1, 0x3ba2, 0x3914, 0x3947, 0x3984, 0x397a, 0x35ed, 0x3891, 0x3b7f, 0x3b32, 0x3857, 0x3717, 0x2b73, 0x38c1, 0x3bc6, 0x3330, 0x35c8, 0x34ff, 0x3924, 0x387b, 0x3a27, 0x3b92, 0x22d9, 0x29be, 0x3b39, 0x361c, 0x34e6, 0x2b7e, 0x34d8, 0x38c2, 0x3a4c, 0x3a2f, 0x381f, 0x38f6, 0x3a9a, 0x394f, 0x382d, +0x3939, 0x397a, 0x3926, 0x3a59, 0x34e3, 0x3077, 0x3190, 0x3a6b, 0x2c3f, 0x3a51, 0x35d9, 0x3866, 0x2f73, 0x38f2, 0x3766, 0x3aa1, 0x3b55, 0x2f8f, 0x3993, 0x354a, 0x3650, 0x340d, 0x2f01, 0x3731, 0x394d, 0x3b15, 0x3806, 0x39b9, 0x3aa7, 0x387c, 0x3beb, 0x2e2f, 0x38e8, 0x353a, 0x36ba, 0x3b2e, 0x3b5c, 0x2d4b, 0x357e, 0x3bd8, 0x3be0, 0x38b0, 0x2a3b, 0x2ff0, 0x3268, 0x38f3, 0x31fc, 0x318c, 0x35b5, 0x3980, 0x3a4d, 0x33cc, 0x365b, 0x397e, 0x3809, 0x39af, 0x3537, 0x2ba6, 0x30f1, 0x38b2, 0x39fe, 0x39f3, 0x373b, 0x3bff, 0x36ce, 0x3b5d, 0x3b5a, 0x2f1d, 0x3be3, 0x395d, 0x34d0, 0x36a3, 0x3937, 0x33b3, 0x3b91, 0x3ab5, 0x3215, 0x396b, 0x3bed, 0x302d, 0x3862, 0x3b05, 0x2ba1, 0x2fa6, 0x35d2, 0x3806, 0x3b84, 0x3233, 0x2664, 0x3a63, 0x3bdb, 0x375f, 0x3b0b, 0x34ff, 0x3020, 0x375d, +0x3931, 0x2d6c, 0x31c3, 0x3a24, 0x34b8, 0x3865, 0x366e, 0x3aaf, 0x3530, 0x20d6, 0x35ac, 0x33e8, 0x3b37, 0x32d8, 0x333c, 0x3349, 0x30cd, 0x392f, 0x2c30, 0x3b0a, 0x390a, 0x3703, 0x3b5f, 0x39ac, 0x31ba, 0x32a4, 0x3b8f, 0x3a5e, 0x3ad1, 0x38bf, 0x38bb, 0x369f, 0x3b75, 0x32c6, 0x31d2, 0x280f, 0x3891, 0x3b09, 0x3531, 0x3899, 0x3a55, 0x37fe, 0x3b5e, 0x364a, 0x3ada, 0x386f, 0x38bb, 0x3a7b, 0x313f, 0x3592, 0x2ca6, 0x2eeb, 0x38b1, 0x35df, 0x326f, 0x3bf5, 0x3848, 0x2fbd, 0x3268, 0x3922, 0x376b, 0x3a5e, 0x3826, 0x3207, 0x33f3, 0x3302, 0x3a80, 0x3bf1, 0x35dd, 0x2a83, 0x3460, 0x3296, 0x3ada, 0x3484, 0x3989, 0x3680, 0x3969, 0x3ab4, 0x2fb1, 0x3b50, 0x38bd, 0x3ad1, 0x34ac, 0x3718, 0x2ed7, 0x3b53, 0x3114, 0x248a, 0x3960, 0x3ab6, 0x39ef, 0x21dd, 0x33b9, 0x3a05, 0x2fbe, 0x37a2, +0x3a70, 0x37f8, 0x37f1, 0x3591, 0x382f, 0x3276, 0x33ed, 0x3935, 0x275e, 0x353c, 0x3b24, 0x3b42, 0x38db, 0x33ca, 0x3bd7, 0x3694, 0x365f, 0x3997, 0x39b7, 0x3bcb, 0x3b6a, 0x269a, 0x3956, 0x3b4e, 0x3ba1, 0x3bee, 0x2aaf, 0x3530, 0x3ad7, 0x3bce, 0x3bd2, 0x397c, 0x3aee, 0x3b62, 0x3bfc, 0x3ba1, 0x3b44, 0x38e6, 0x3747, 0x3855, 0x3baf, 0x3b16, 0x3b35, 0x34e7, 0x3858, 0x3bdb, 0x39c3, 0x3898, 0x381e, 0x3899, 0x36be, 0x363c, 0x3a70, 0x1518, 0x334e, 0x38cd, 0x3a74, 0x3420, 0x35a7, 0x3a00, 0x3282, 0x32db, 0x3656, 0x2dd8, 0x2e5b, 0x399e, 0x3bd7, 0x3366, 0x34cd, 0x257c, 0x3a2e, 0x375b, 0x3971, 0x3472, 0x269f, 0x39ac, 0x39e6, 0x396b, 0x335b, 0x38cc, 0x3b3d, 0x38ee, 0x3895, 0x2e3b, 0x3ba0, 0x3bb7, 0x3401, 0x35df, 0x3b06, 0x3adf, 0x37af, 0x3948, 0x33a6, 0x3aa7, 0x36b2, 0x373c, +0x3872, 0x3674, 0x34d5, 0x3918, 0x37cd, 0x369a, 0x3a26, 0x3bc3, 0x380c, 0x35ba, 0x36eb, 0x3b54, 0x37a9, 0x3405, 0x397d, 0x351f, 0x2f10, 0x34fd, 0x333c, 0x36c9, 0x3584, 0x3998, 0x3b22, 0x3aff, 0x3931, 0x31b7, 0x39ae, 0x31e7, 0x3847, 0x392a, 0x3bff, 0x3a24, 0x15c5, 0x3905, 0x36e8, 0x3356, 0x2f46, 0x38a9, 0x3bd8, 0x3bfc, 0x2fbf, 0x3a7d, 0x3989, 0x3a6c, 0x3a8b, 0x32c9, 0x37da, 0x3b16, 0x394a, 0x3aa5, 0x2c30, 0x3968, 0x3119, 0x3af2, 0x2f8f, 0x34ef, 0x3ab3, 0x2445, 0x38d9, 0x3856, 0x3592, 0x389d, 0x2932, 0x31f8, 0x3775, 0x3947, 0x3893, 0x3b50, 0x3465, 0x355c, 0x3547, 0x3925, 0x32c2, 0x3a0e, 0x39f9, 0x39f0, 0x2a1c, 0x34a0, 0x3b51, 0x3bb8, 0x38af, 0x36c7, 0x361f, 0x397b, 0x3a7f, 0x39e2, 0x3a7e, 0x3a67, 0x304c, 0x34d8, 0x3921, 0x3287, 0x2d90, 0x3b36, 0x30cc, 0x1958, +0x36ea, 0x3419, 0x39f3, 0x3bf1, 0x3271, 0x3763, 0x3643, 0x337f, 0x3161, 0x3944, 0x33b1, 0x30c7, 0x3687, 0x342b, 0x2402, 0x394a, 0x3480, 0x3052, 0x2a6e, 0x376a, 0x3236, 0x381e, 0x3596, 0x3939, 0x373e, 0x34b4, 0x201a, 0x3245, 0x3169, 0x26c8, 0x3a1c, 0x389b, 0x3351, 0x3bac, 0x3261, 0x37ab, 0x39bb, 0x350f, 0x3b5d, 0x3b86, 0x34e8, 0x3104, 0x3969, 0x31f4, 0x399a, 0x370e, 0x34a3, 0x3064, 0x3519, 0x3542, 0x3a72, 0x3be0, 0x3ba2, 0x3a5b, 0x3455, 0x3ae5, 0x38ef, 0x358a, 0x3908, 0x38eb, 0x3572, 0x3b41, 0x39cb, 0x39f4, 0x3bb6, 0x2f51, 0x3345, 0x3475, 0x3b20, 0x3b7c, 0x385d, 0x36a4, 0x35b8, 0x3368, 0x3867, 0x37cb, 0x3b8c, 0x32e9, 0x366b, 0x3a3f, 0x3147, 0x3534, 0x25bc, 0x3828, 0x38f8, 0x27cd, 0x35c8, 0x2a95, 0x39cf, 0x328b, 0x3a6d, 0x34f4, 0x38ae, 0x2b5f, 0x3845, 0x3b30, +0x3719, 0x37fc, 0x3adc, 0x2273, 0x385f, 0x39d1, 0x2f2c, 0x2df2, 0x36a6, 0x3523, 0x234d, 0x3a3f, 0x2817, 0x355d, 0x399f, 0x3924, 0x3bd4, 0x35ca, 0x3319, 0x301a, 0x353f, 0x34d2, 0x3bfd, 0x373e, 0x3a2a, 0x320b, 0x2e90, 0x38e8, 0x2f48, 0x3873, 0x3b61, 0x39d5, 0x3af7, 0x3885, 0x3be2, 0x3963, 0x36cc, 0x331b, 0x31ad, 0x3668, 0x39a2, 0x36f9, 0x3b52, 0x3985, 0x395d, 0x2e15, 0x30c2, 0x37ed, 0x32d1, 0x3a04, 0x3bef, 0x2fd7, 0x301d, 0x3a39, 0x3999, 0x342d, 0x34e3, 0x3bde, 0x3825, 0x3ac0, 0x3495, 0x3505, 0x3820, 0x30df, 0x37fd, 0x386c, 0x37c5, 0x3bab, 0x3b3d, 0x37f1, 0x3b42, 0x3825, 0x3bb4, 0x38a0, 0x383b, 0x3a92, 0x3a5c, 0x24c7, 0x38c8, 0x3492, 0x30af, 0x3b63, 0x35bb, 0x3046, 0x3aec, 0x357f, 0x3bb6, 0x3886, 0x37c6, 0x3315, 0x39cd, 0x32ae, 0x3b6d, 0x2d8c, 0x3607, 0x3420, +0x385d, 0x3782, 0x38ad, 0x34af, 0x3aad, 0x3bf3, 0x34bc, 0x3bfc, 0x33f0, 0x34ab, 0x37b6, 0x308d, 0x3ac8, 0x3935, 0x3b3a, 0x3517, 0x2579, 0x3b26, 0x36f6, 0x381f, 0x3b3c, 0x3a9f, 0x3667, 0x1c3e, 0x3b29, 0x2344, 0x3010, 0x36f7, 0x3470, 0x3834, 0x33bc, 0x306f, 0x392b, 0x37bc, 0x357a, 0x38a5, 0x3a09, 0x38f3, 0x34c6, 0x304b, 0x3bb7, 0x36c3, 0x3435, 0x3984, 0x357c, 0x345b, 0x39b5, 0x3286, 0x3a6b, 0x2e0e, 0x3613, 0x33e9, 0x379f, 0x3a14, 0x3a3a, 0x2e0e, 0x38f6, 0x3589, 0x3807, 0x3a49, 0x3818, 0x39dd, 0x31b0, 0x3a67, 0x39de, 0x175e, 0x394b, 0x34de, 0x394a, 0x3853, 0x371b, 0x3b5d, 0x39bb, 0x3029, 0x3091, 0x37b8, 0x33f0, 0x3517, 0x391e, 0x35ce, 0x3bc7, 0x2c6e, 0x2d9c, 0x36c1, 0x3143, 0x35c5, 0x39c6, 0x3a05, 0x3b1f, 0x3941, 0x3adc, 0x393a, 0x3993, 0x3bac, 0x2781, 0x3912, +0x36b8, 0x3a59, 0x397c, 0x25c3, 0x3b19, 0x3304, 0x399d, 0x3bde, 0x2e7c, 0x341e, 0x3172, 0x3bfd, 0x3b45, 0x3186, 0x37fe, 0x3b92, 0x390e, 0x2d85, 0x34fa, 0x2c58, 0x3ac5, 0x398f, 0x386a, 0x3ae3, 0x2f53, 0x3b4d, 0x3602, 0x3042, 0x353d, 0x3811, 0x3928, 0x2414, 0x3bb8, 0x3841, 0x3990, 0x388a, 0x25d4, 0x3787, 0x39a9, 0x3963, 0x3554, 0x3b41, 0x3921, 0x2938, 0x39cc, 0x34d1, 0x38ec, 0x31ac, 0x3aed, 0x36ca, 0x3a41, 0x3754, 0x3ab4, 0x39ac, 0x387a, 0x3851, 0x3097, 0x3885, 0x2ef9, 0x2530, 0x3a9d, 0x39ec, 0x38ca, 0x3ad4, 0x39ea, 0x37ce, 0x3ac0, 0x2879, 0x3bda, 0x3af5, 0x2eaa, 0x35e9, 0x3a11, 0x3a48, 0x2782, 0x3a7f, 0x3662, 0x3a99, 0x2194, 0x3628, 0x3668, 0x36e5, 0x38ab, 0x3833, 0x30b4, 0x3237, 0x39df, 0x3a63, 0x370d, 0x2c4a, 0x3ae0, 0x3b29, 0x3bba, 0x3b64, 0x260a, 0x38f8, +0x2679, 0x3412, 0x395a, 0x3054, 0x3ac9, 0x3bb3, 0x31a7, 0x38f7, 0x1d33, 0x3aeb, 0x38f5, 0x3649, 0x3aab, 0x3894, 0x353b, 0x3bbf, 0x37e2, 0x3b2d, 0x3a05, 0x3b7f, 0x318f, 0x2487, 0x3a3b, 0x36e8, 0x35d0, 0x2e1b, 0x3a03, 0x3bb9, 0x2d71, 0x32e5, 0x31c0, 0x2a74, 0x3898, 0x3ae0, 0x381b, 0x308d, 0x3afa, 0x2e44, 0x3aa2, 0x39cb, 0x3a19, 0x321f, 0x3975, 0x3a94, 0x20b7, 0x3843, 0x3942, 0x38c2, 0x3587, 0x3ba0, 0x3b5b, 0x3981, 0x3ba0, 0x3988, 0x2fc0, 0x34d2, 0x30ad, 0x3102, 0x394d, 0x38ef, 0x353c, 0x39d3, 0x3b57, 0x36c4, 0x3619, 0x3a4d, 0x382f, 0x35e7, 0x26ce, 0x33c6, 0x25a6, 0x36b8, 0x3b5f, 0x3a6d, 0x34cb, 0x2bb8, 0x368b, 0x3368, 0x312a, 0x3869, 0x37a7, 0x3804, 0x34af, 0x39ff, 0x350d, 0x358e, 0x3a40, 0x349c, 0x3ac3, 0x39fa, 0x3153, 0x38da, 0x390b, 0x30ea, 0x3205, 0x3915, +0x3a69, 0x385c, 0x34dc, 0x2e57, 0x2dff, 0x2a23, 0x2f74, 0x2efc, 0x397f, 0x367e, 0x2932, 0x3565, 0x38f6, 0x3bae, 0x3abe, 0x34cf, 0x39f9, 0x3995, 0x3844, 0x3846, 0x3674, 0x39ab, 0x382b, 0x3aa9, 0x36eb, 0x3a6f, 0x37d9, 0x3804, 0x2c69, 0x3883, 0x367d, 0x3b09, 0x25e5, 0x34d7, 0x3848, 0x310c, 0x3bdf, 0x3890, 0x3623, 0x3951, 0x3a1e, 0x385c, 0x3a27, 0x2747, 0x37f7, 0x344d, 0x2903, 0x3b96, 0x396d, 0x3868, 0x3766, 0x3689, 0x3705, 0x2dc4, 0x39f1, 0x389b, 0x39b0, 0x31b3, 0x3a14, 0x309a, 0x3ba3, 0x32a9, 0x3652, 0x390d, 0x316f, 0x3812, 0x38dd, 0x3473, 0x396a, 0x3b35, 0x3a31, 0x2cb3, 0x1c90, 0x3794, 0x372c, 0x3238, 0x3b57, 0x3516, 0x3b9c, 0x3a83, 0x386e, 0x3747, 0x353b, 0x31d2, 0x3b04, 0x338e, 0x3802, 0x373c, 0x373c, 0x380f, 0x28c7, 0x3936, 0x37eb, 0x32a6, 0x30cc, 0x3be5, +0x3428, 0x3592, 0x3226, 0x38dd, 0x3823, 0x374e, 0x3ac7, 0x38cb, 0x32a9, 0x354b, 0x3517, 0x2f43, 0x3812, 0x3a7a, 0x3627, 0x3b87, 0x3849, 0x377a, 0x2fae, 0x3bf8, 0x38e2, 0x387d, 0x3bab, 0x3a95, 0x31c0, 0x2be8, 0x30fb, 0x3bd8, 0x3828, 0x2ac0, 0x39ef, 0x3927, 0x2417, 0x34a8, 0x3626, 0x3751, 0x3b5b, 0x3a42, 0x2c4c, 0x3806, 0x358e, 0x34c1, 0x2d4f, 0x3bda, 0x3990, 0x3651, 0x3431, 0x31a2, 0x3379, 0x339a, 0x37cf, 0x3bf3, 0x3ada, 0x384a, 0x373d, 0x38a4, 0x2d47, 0x390a, 0x312a, 0x3adb, 0x3bee, 0x3463, 0x3857, 0x3950, 0x349f, 0x3a8a, 0x3767, 0x3552, 0x2d8a, 0x2cc8, 0x36cd, 0x3510, 0x3a04, 0x35ac, 0x3b20, 0x3076, 0x3a93, 0x36d0, 0x315a, 0x3af1, 0x355d, 0x3b34, 0x3b5c, 0x2247, 0x37c7, 0x3b02, 0x3a5d, 0x3669, 0x282c, 0x3b81, 0x319c, 0x3700, 0x3a0d, 0x33c0, 0x3985, 0x335e, +0x3af9, 0x3733, 0x2f0c, 0x392a, 0x2528, 0x34c8, 0x39e5, 0x3409, 0x3424, 0x389e, 0x358a, 0x3664, 0x3541, 0x38fa, 0x1d31, 0x2d02, 0x3889, 0x3690, 0x3a15, 0x3a4b, 0x364a, 0x3791, 0x3a6f, 0x3aa1, 0x3ab0, 0x39ed, 0x37da, 0x3abc, 0x3b09, 0x376d, 0x2c63, 0x314f, 0x34b9, 0x3142, 0x39cf, 0x3242, 0x384f, 0x3bf9, 0x36a1, 0x358d, 0x3ade, 0x3bc9, 0x347d, 0x3a5a, 0x3b4e, 0x3aa3, 0x39bf, 0x318d, 0x3a37, 0x3833, 0x333b, 0x3bb9, 0x39f4, 0x2ff2, 0x38b3, 0x3508, 0x3817, 0x3bd8, 0x35a8, 0x38b0, 0x3aac, 0x3984, 0x3bff, 0x29ea, 0x34ca, 0x38c6, 0x3885, 0x3bd8, 0x38df, 0x38fa, 0x358e, 0x3528, 0x39e8, 0x2d40, 0x3464, 0x3bac, 0x3ad1, 0x399b, 0x3a77, 0x3bfe, 0x3b52, 0x3934, 0x35ca, 0x3bf7, 0x3852, 0x3858, 0x35a1, 0x3a72, 0x34d7, 0x39e3, 0x2fe5, 0x3b1c, 0x3aee, 0x3bf7, 0x25f0, 0x3881, +0x376e, 0x3833, 0x3ab2, 0x3b59, 0x3b7f, 0x3ac3, 0x3954, 0x302d, 0x3a5d, 0x38f9, 0x3a41, 0x3a0f, 0x33a5, 0x3150, 0x29b7, 0x39aa, 0x35d5, 0x31db, 0x389b, 0x3aa1, 0x3529, 0x3bf1, 0x38de, 0x39a9, 0x321d, 0x35d6, 0x3423, 0x3be2, 0x34b2, 0x3b42, 0x31d8, 0x345b, 0x3a2d, 0x3b72, 0x3a10, 0x338a, 0x3b84, 0x3be8, 0x3810, 0x38a5, 0x3ba8, 0x3921, 0x3ac0, 0x3329, 0x3bca, 0x3bbb, 0x389a, 0x35f3, 0x3908, 0x3927, 0x3534, 0x381b, 0x2d5f, 0x3bef, 0x35f6, 0x3b13, 0x3834, 0x25d5, 0x30f9, 0x397c, 0x31af, 0x3867, 0x2cc7, 0x28ea, 0x3afe, 0x3014, 0x3806, 0x31c4, 0x39fa, 0x3bb6, 0x250c, 0x391b, 0x39a4, 0x37e3, 0x38d9, 0x3747, 0x2b7e, 0x3939, 0x32d2, 0x3a48, 0x38c3, 0x312d, 0x3a2d, 0x3afd, 0x3101, 0x3b28, 0x370d, 0x2fce, 0x32fc, 0x3840, 0x39f5, 0x37b6, 0x39df, 0x1d49, 0x3b9b, 0x3694, +0x3580, 0x392f, 0x3953, 0x3ac8, 0x3af3, 0x33cd, 0x39a0, 0x3672, 0x373d, 0x236a, 0x3935, 0x39fa, 0x348e, 0x3759, 0x348d, 0x36e7, 0x391b, 0x3b46, 0x386c, 0x3515, 0x389f, 0x3b21, 0x3aef, 0x3bf5, 0x3a2d, 0x3428, 0x39d1, 0x3931, 0x39af, 0x38ba, 0x2cbf, 0x3bf4, 0x31be, 0x2dd5, 0x350d, 0x3af6, 0x2044, 0x36ae, 0x3810, 0x3690, 0x31f8, 0x2ed1, 0x3a21, 0x3b7b, 0x3a96, 0x355c, 0x3704, 0x34e4, 0x38d3, 0x2f90, 0x3902, 0x37b1, 0x3b2a, 0x3a69, 0x3792, 0x338b, 0x3006, 0x345e, 0x3530, 0x3b40, 0x3733, 0x2c59, 0x3bf1, 0x39e6, 0x3b20, 0x3bc1, 0x3b71, 0x37fc, 0x363f, 0x36f9, 0x3b39, 0x380a, 0x3516, 0x3814, 0x34b8, 0x3493, 0x3bbe, 0x328b, 0x3709, 0x393b, 0x373e, 0x3929, 0x37c0, 0x3464, 0x39f8, 0x35d1, 0x364e, 0x39ed, 0x3806, 0x398c, 0x39e1, 0x3be5, 0x3317, 0x3482, 0x3b35, 0x3bc5, +0x2be7, 0x3026, 0x3b12, 0x3476, 0x3967, 0x3767, 0x3a01, 0x385a, 0x30f5, 0x2ccc, 0x349d, 0x2811, 0x399c, 0x3afe, 0x39ee, 0x3903, 0x3490, 0x2d4b, 0x367c, 0x361f, 0x3add, 0x312b, 0x3502, 0x3a4b, 0x3b74, 0x38b0, 0x31bd, 0x3327, 0x3a68, 0x3078, 0x3811, 0x3bce, 0x3867, 0x362d, 0x39f7, 0x2c93, 0x325f, 0x3370, 0x3bcf, 0x3b0c, 0x3656, 0x3644, 0x3130, 0x34f1, 0x326f, 0x3ab4, 0x38b5, 0x2e0b, 0x38ec, 0x3b21, 0x3be6, 0x3a39, 0x38f2, 0x3621, 0x3bf7, 0x390d, 0x39ef, 0x2b80, 0x394b, 0x3b3c, 0x31c4, 0x1a0a, 0x354e, 0x3655, 0x3564, 0x2b0e, 0x3072, 0x3838, 0x3190, 0x3b46, 0x3909, 0x31d8, 0x3b8d, 0x3b39, 0x3773, 0x35a3, 0x394f, 0x3971, 0x3919, 0x3848, 0x3a7d, 0x3b3d, 0x357e, 0x2755, 0x3a56, 0x3488, 0x3ac6, 0x3a25, 0x3991, 0x347e, 0x3472, 0x3b22, 0x38c8, 0x3b54, 0x384c, 0x28a2, +0x3b41, 0x3ab1, 0x3a5d, 0x35d6, 0x36e5, 0x3a33, 0x3a55, 0x3457, 0x35b4, 0x34d5, 0x389b, 0x3928, 0x3be7, 0x32d5, 0x3b26, 0x3790, 0x3203, 0x3296, 0x3b45, 0x3bc4, 0x38d4, 0x34f7, 0x3b50, 0x3ab1, 0x36eb, 0x3120, 0x35af, 0x396d, 0x28f5, 0x37f3, 0x3b0b, 0x31a6, 0x3a46, 0x1ce8, 0x38f3, 0x39c2, 0x3970, 0x3bb5, 0x28d7, 0x3b21, 0x39b4, 0x355e, 0x35a6, 0x3bb9, 0x2cc3, 0x38c2, 0x376c, 0x2e88, 0x34b2, 0x3967, 0x3325, 0x3bda, 0x37c6, 0x39dc, 0x3135, 0x3966, 0x22f4, 0x3433, 0x37e1, 0x34dd, 0x3900, 0x3ae7, 0x38ee, 0x3926, 0x2a4a, 0x3a16, 0x3ba9, 0x38de, 0x343a, 0x3a6f, 0x315c, 0x392b, 0x38ce, 0x35c3, 0x3810, 0x3ae9, 0x3627, 0x29b7, 0x2816, 0x289e, 0x3bb0, 0x39d1, 0x335c, 0x39b1, 0x3b48, 0x3614, 0x3581, 0x33df, 0x332b, 0x3750, 0x3438, 0x3309, 0x3854, 0x3830, 0x32e3, 0x3a27, +0x38f4, 0x3074, 0x351c, 0x2b8d, 0x35c2, 0x33dc, 0x3972, 0x39f2, 0x3af7, 0x3b12, 0x3b1a, 0x352d, 0x335e, 0x357a, 0x32e1, 0x3a63, 0x3426, 0x316d, 0x3903, 0x36e4, 0x36cc, 0x35fd, 0x3b29, 0x3304, 0x387e, 0x347d, 0x3af3, 0x33b5, 0x3859, 0x3800, 0x39b1, 0x3ae4, 0x2839, 0x38e6, 0x3341, 0x3346, 0x3ad4, 0x38b2, 0x392b, 0x3bfa, 0x3090, 0x36f1, 0x29b5, 0x2fa6, 0x3bb5, 0x36bc, 0x30c4, 0x38f4, 0x1e3b, 0x34fd, 0x2c4c, 0x3a6b, 0x393c, 0x3aba, 0x3866, 0x356a, 0x3441, 0x3802, 0x367d, 0x3546, 0x380f, 0x38f2, 0x354b, 0x30af, 0x2e2f, 0x37cb, 0x3994, 0x36e3, 0x37a7, 0x3a8c, 0x395c, 0x3aa2, 0x2c2f, 0x35b4, 0x3180, 0x3ad0, 0x3237, 0x3ac6, 0x31f5, 0x3637, 0x398c, 0x3443, 0x3bd6, 0x3b63, 0x35d0, 0x3351, 0x3336, 0x3aa8, 0x3b66, 0x39df, 0x36fe, 0x3477, 0x3823, 0x38ef, 0x399e, 0x394b, +0x3a85, 0x2d22, 0x39b4, 0x3a4e, 0x3334, 0x1c3b, 0x3466, 0x3469, 0x3820, 0x3a70, 0x2d5e, 0x37d9, 0x37bb, 0x3bd8, 0x25ea, 0x3292, 0x3a58, 0x3847, 0x3aea, 0x389d, 0x386e, 0x3870, 0x3bc4, 0x3a95, 0x307f, 0x3928, 0x31c2, 0x38e5, 0x3994, 0x3b83, 0x297a, 0x33c0, 0x3a55, 0x390d, 0x3550, 0x3447, 0x3b6d, 0x2809, 0x3993, 0x2944, 0x3ae1, 0x3845, 0x3703, 0x38fb, 0x3880, 0x3b1b, 0x3312, 0x2d51, 0x2e33, 0x3ba5, 0x3805, 0x3359, 0x3b3c, 0x3663, 0x354f, 0x3904, 0x3787, 0x39ac, 0x3bc4, 0x2f65, 0x3778, 0x3ba8, 0x3100, 0x3840, 0x3b67, 0x3abe, 0x2d5b, 0x391f, 0x3670, 0x39b3, 0x3a4e, 0x3947, 0x2e35, 0x3755, 0x3bb9, 0x31bf, 0x3ba6, 0x3a10, 0x39d1, 0x3aae, 0x3b88, 0x380a, 0x345f, 0x3aeb, 0x3660, 0x373a, 0x2d6f, 0x33b0, 0x3518, 0x3b25, 0x3872, 0x3aab, 0x2ed0, 0x347d, 0x2fd0, 0x38c5, +0x2cda, 0x353c, 0x3866, 0x2332, 0x3bde, 0x3912, 0x3762, 0x3ae3, 0x3a55, 0x39df, 0x32e0, 0x3b63, 0x3ac3, 0x3a85, 0x34e8, 0x38d7, 0x3543, 0x3a1e, 0x36e7, 0x3008, 0x359e, 0x298b, 0x3b6c, 0x3b51, 0x38d1, 0x3444, 0x39ec, 0x391e, 0x3a6d, 0x39e9, 0x3b7c, 0x36bb, 0x21f7, 0x2896, 0x3308, 0x3afc, 0x3879, 0x2cac, 0x2699, 0x3475, 0x331b, 0x340f, 0x373b, 0x3814, 0x3b6d, 0x39bb, 0x2e09, 0x3284, 0x286f, 0x371d, 0x3966, 0x27c2, 0x3ac4, 0x3b92, 0x3ba4, 0x3acb, 0x30b0, 0x3a11, 0x3721, 0x34cc, 0x3b84, 0x3002, 0x38bc, 0x341e, 0x36c3, 0x3bd2, 0x39fe, 0x380f, 0x38c3, 0x3a9c, 0x373a, 0x3a79, 0x3bfa, 0x31c7, 0x340d, 0x3602, 0x38e4, 0x1ddd, 0x38b2, 0x3985, 0x2574, 0x339e, 0x3b39, 0x3765, 0x3369, 0x39b6, 0x3974, 0x3a25, 0x362c, 0x3aeb, 0x3935, 0x3271, 0x2de2, 0x35d5, 0x3b93, 0x32f0, +0x3425, 0x3871, 0x2d6d, 0x3070, 0x319d, 0x33b5, 0x333e, 0x397e, 0x2a76, 0x39eb, 0x3b34, 0x3988, 0x3b40, 0x36de, 0x39a6, 0x38d9, 0x398b, 0x3623, 0x325e, 0x37d1, 0x3406, 0x377f, 0x3a58, 0x3486, 0x3855, 0x3acc, 0x378c, 0x3b1b, 0x3bed, 0x3aae, 0x3998, 0x39dc, 0x38a0, 0x3b74, 0x38a1, 0x2a79, 0x2e26, 0x39fd, 0x377c, 0x39bb, 0x3ad6, 0x1a6c, 0x2e6b, 0x377b, 0x3b5c, 0x39bd, 0x32f6, 0x371a, 0x348d, 0x348b, 0x359c, 0x38c7, 0x3022, 0x389f, 0x3a5b, 0x328d, 0x3158, 0x3206, 0x364d, 0x3a90, 0x36df, 0x3934, 0x3a5e, 0x39e4, 0x3a42, 0x3afe, 0x38d5, 0x36c5, 0x3050, 0x2acf, 0x3a39, 0x29da, 0x365c, 0x364e, 0x2bc, 0x3850, 0x381b, 0x39b2, 0x3643, 0x390a, 0x30da, 0x3243, 0x2dd9, 0x3b6c, 0x38cc, 0x309c, 0x27f0, 0x3b84, 0x3979, 0x3b3e, 0x3b08, 0x376a, 0x390d, 0x2d9e, 0x3527, 0x3a25, +0x33e2, 0x3840, 0x3afd, 0x385b, 0x350a, 0x3b04, 0x377a, 0x38ad, 0x3aec, 0x39d7, 0x38ad, 0x3b9d, 0x37d6, 0x36f1, 0x3586, 0x325c, 0x2cf4, 0x3b30, 0x387d, 0x3a1d, 0x3a29, 0x3048, 0x3bdc, 0x30d7, 0x359a, 0x30c4, 0x3a22, 0x3148, 0x3bd3, 0x3699, 0x353e, 0x398f, 0x36f2, 0x3115, 0x3505, 0x39bc, 0x39b1, 0x37ec, 0x353f, 0x379f, 0x36df, 0x3479, 0x3815, 0x3503, 0x30dd, 0x39c5, 0x3a1e, 0x30a0, 0x385d, 0x3a44, 0x3819, 0x3599, 0x3994, 0x394a, 0x316a, 0x39ab, 0x2c23, 0x3985, 0x3bbe, 0x3bdd, 0x3486, 0x36f7, 0x3559, 0x391b, 0x2642, 0x3a96, 0x3bac, 0x367c, 0x3b59, 0x38f0, 0x268a, 0x3a03, 0x3106, 0x3bd1, 0x3279, 0x36c9, 0x3b40, 0x3750, 0x2e02, 0x3965, 0x3636, 0x3afb, 0x3960, 0x38d6, 0x3a62, 0x2910, 0x3a84, 0x359d, 0x3ad9, 0x33f7, 0x3b5d, 0x26e1, 0x376b, 0x3824, 0x2852, 0x3982, +0x3797, 0x36e3, 0x3924, 0x3947, 0x3b36, 0x361e, 0x376b, 0x365b, 0x37e8, 0x329f, 0x3970, 0x3126, 0x3562, 0x3b17, 0x3aca, 0x3602, 0x3b9d, 0x394a, 0x2388, 0x2b85, 0x3a24, 0x3a66, 0x3648, 0x28d2, 0x3b67, 0x38b8, 0x3b15, 0x352c, 0x3b39, 0x3838, 0x388e, 0x3576, 0x39f5, 0x31f9, 0x35a0, 0x3a41, 0x3afa, 0x3513, 0x3688, 0x3b2b, 0x32b6, 0x32de, 0x3949, 0x3b1e, 0x3a1e, 0x280d, 0x38da, 0x388e, 0x316f, 0x38d4, 0x29c5, 0x3637, 0x34af, 0x2d8c, 0x3872, 0x30ac, 0x396e, 0x38bd, 0x39ab, 0x3b69, 0x3120, 0x355f, 0x2e7f, 0x35ab, 0x3821, 0x2b37, 0x3bc5, 0x3a0a, 0x3572, 0x30b5, 0x399e, 0x2a66, 0x31b8, 0x3abc, 0x3754, 0x36a7, 0x3b8b, 0x347d, 0x3b36, 0x3924, 0x2f95, 0x3ba9, 0x2224, 0x34cd, 0x3aaf, 0x3608, 0x34ce, 0x344b, 0x34b5, 0x3bd8, 0x37d3, 0x3757, 0x2c21, 0x3b8f, 0x38d3, 0x3aa4, +0x39c6, 0x381d, 0x3842, 0x3bd1, 0x3092, 0x35d5, 0x251f, 0x2529, 0x3133, 0x3862, 0x3444, 0x3519, 0x3b60, 0x2fb5, 0x38c7, 0x387e, 0x3138, 0x36a9, 0x353c, 0x3411, 0x3bd3, 0x2a07, 0x3a5c, 0x3826, 0x3228, 0x334d, 0x2f07, 0x2c6a, 0x3b43, 0x3425, 0x3568, 0x382a, 0x348c, 0x3b5f, 0x3745, 0x2ae7, 0x3772, 0x302b, 0x336a, 0x383a, 0x3361, 0x3110, 0x3684, 0x39d1, 0x3151, 0x34f1, 0x295b, 0x26ba, 0x3b1b, 0x38d5, 0x36b1, 0x3069, 0x3bfa, 0x385f, 0x3695, 0x3b50, 0x3be0, 0x3741, 0x3af4, 0x2cd1, 0x3862, 0x352d, 0x3b8d, 0x3800, 0x3868, 0x3931, 0x37f8, 0x3ad0, 0x341d, 0x3507, 0x3602, 0x3831, 0x393b, 0x3695, 0x380e, 0x383f, 0x38de, 0x3954, 0x38b3, 0x20be, 0x2428, 0x2e52, 0x3b5b, 0x20ea, 0x3aa9, 0x3430, 0x3aac, 0x393b, 0x32e7, 0x2d58, 0x366e, 0x32f5, 0x3990, 0x3b9d, 0x2f4c, 0x3420, +0x38d5, 0x31e4, 0x2c0e, 0x3742, 0x3bc0, 0x30f9, 0x3656, 0x3aaa, 0x385e, 0x3908, 0x3584, 0x2814, 0x3891, 0x3553, 0x391c, 0x3330, 0x38e5, 0x1aaf, 0x3be5, 0x3ac7, 0x3936, 0x3bf5, 0x361f, 0x39b3, 0x38c1, 0x394a, 0x39e1, 0x2b67, 0x3585, 0x380e, 0x3344, 0x3001, 0x3983, 0x31ec, 0x3ac2, 0x380a, 0x32c2, 0x34aa, 0x393d, 0x364d, 0x239a, 0x3727, 0x3b5c, 0x3265, 0x2d1f, 0x32dd, 0x3ae3, 0x36a0, 0x3600, 0x38f3, 0x378a, 0x357c, 0x34dd, 0x39a9, 0x3846, 0x2431, 0x3abe, 0x36fa, 0x38bd, 0x3696, 0x2c2e, 0x229d, 0x386f, 0x3a8b, 0x3aa4, 0x34f4, 0x35af, 0x34c1, 0x2222, 0x1820, 0x3a30, 0x38ec, 0x3855, 0x3952, 0x3873, 0x384b, 0x3bb1, 0x35aa, 0x363a, 0x380e, 0x3b3d, 0x397a, 0x38ca, 0x3a88, 0x35de, 0x3bac, 0x3ab4, 0x3654, 0x38f3, 0x2076, 0x3585, 0x300a, 0x3a71, 0x3b90, 0x3a83, 0x3a86, +0x3ab7, 0x3bee, 0x37bd, 0x3b2c, 0x39fb, 0x274a, 0x3a7d, 0x38df, 0x2a8d, 0x3611, 0x34b4, 0x38e4, 0x36f8, 0x3b2a, 0x364b, 0x3ac3, 0x2d73, 0x38e3, 0x2fcd, 0x3af3, 0x359e, 0x3afd, 0x3b13, 0x3a89, 0x379e, 0x35d5, 0x30bc, 0x34ae, 0x3a6a, 0x312e, 0x293a, 0x39df, 0x3a97, 0x39db, 0x3b98, 0x3818, 0x344f, 0x26c9, 0x3a30, 0x3505, 0x3885, 0x3206, 0x38e4, 0x3940, 0x3a5d, 0x3aab, 0x35e7, 0x3458, 0x381d, 0x3959, 0x3930, 0x3476, 0x348f, 0x3469, 0x2e03, 0x3889, 0x3ba1, 0x35ac, 0x3ac1, 0x3bcb, 0x3acc, 0x34d7, 0x38bd, 0x2b4c, 0x21ff, 0x3802, 0x34a4, 0x36f9, 0x352f, 0x394e, 0x3796, 0x2456, 0x38c8, 0x302d, 0x2de8, 0x3539, 0x39e8, 0x3560, 0x3913, 0x3bbf, 0x331a, 0x3969, 0x3a9e, 0x3972, 0x3a32, 0x3a15, 0x386f, 0x3a17, 0x3956, 0x39c3, 0x3762, 0x3b51, 0x32af, 0x3b58, 0x34ff, 0x319d, +0x3431, 0x34fc, 0x3a81, 0x3ada, 0x39e6, 0x3a49, 0x33ad, 0x38c8, 0x33cb, 0x3576, 0x3aaf, 0x34ee, 0x2e14, 0x38d0, 0x39c1, 0x29cb, 0x3112, 0x3593, 0x2f07, 0x2fa0, 0x34c0, 0x366e, 0x3998, 0x3540, 0x37c6, 0x39b7, 0x396d, 0x3319, 0x341e, 0x354a, 0x3773, 0x2c1c, 0x3bfc, 0x381b, 0x3529, 0x37f8, 0x3bbd, 0x37a2, 0x36f1, 0x3870, 0x3a69, 0x3494, 0x3169, 0x3455, 0x356f, 0x32e7, 0x35c0, 0x398e, 0x2c2f, 0x2ffe, 0x3140, 0x39ff, 0x3aae, 0x3bb7, 0x35b8, 0x39b2, 0x3303, 0x3948, 0x3a7f, 0x25f7, 0x3750, 0x357e, 0x3785, 0x3817, 0x3b05, 0x3a90, 0x38ad, 0x376f, 0x3ac5, 0x3a07, 0x3311, 0x3b9b, 0x24d1, 0x3451, 0x32a6, 0x342c, 0x3a8c, 0x360a, 0x36ad, 0x3abf, 0x2116, 0x3bb1, 0x328b, 0x37a9, 0x3aab, 0x39c9, 0x345e, 0x36b0, 0x384c, 0x3bfb, 0x2d31, 0x3a05, 0x3427, 0x3726, 0x3743, 0x3398, +0x3b0a, 0x3b85, 0x33ed, 0x32b0, 0x3a95, 0x2135, 0x3712, 0x2f34, 0x378e, 0x390f, 0x39b1, 0x2ad2, 0x300a, 0x34ec, 0x3a00, 0x20f8, 0x3b47, 0x3861, 0x341d, 0x3015, 0x3959, 0x37c9, 0x2f6c, 0x3758, 0x37e5, 0x353b, 0x38da, 0x39ae, 0x3947, 0x36d7, 0x3284, 0x3bb9, 0x357f, 0x3999, 0x39c2, 0x3889, 0x38b7, 0x3684, 0x355e, 0x390d, 0x3b96, 0x385c, 0x3ba5, 0x36c0, 0x3bbc, 0x37fc, 0x391c, 0x3a42, 0x39ca, 0x34ae, 0x394c, 0x3271, 0x2cd6, 0x343b, 0x2d7b, 0x2eea, 0x38a3, 0x2ca6, 0x3549, 0x3847, 0x3bcb, 0x3adc, 0x2e68, 0x3809, 0x3930, 0x357b, 0x3b89, 0x3b94, 0x3875, 0x3640, 0x387c, 0x376c, 0x33b9, 0x3b7e, 0x384c, 0x3906, 0x3b91, 0x209d, 0x2c43, 0x32cf, 0x3686, 0x310c, 0x3a7a, 0x38ef, 0x3645, 0x354a, 0x3670, 0x3732, 0x37b9, 0x3928, 0x358d, 0x3893, 0x3602, 0x2e3d, 0x2a22, 0x2f70, +0x34c9, 0x38f4, 0x374e, 0x3828, 0x37ff, 0x3723, 0x35b4, 0x34b7, 0x3b94, 0x265a, 0x3658, 0x3938, 0x38f5, 0x3bb9, 0x3960, 0x3b5c, 0x38d3, 0x31ea, 0x3412, 0x3be3, 0x3b95, 0x3a20, 0x353b, 0x39c5, 0x3291, 0x387d, 0x3af8, 0x3915, 0x3af7, 0x3be4, 0x399c, 0x34e5, 0x324b, 0x3838, 0x3914, 0x385e, 0x38cd, 0x39fd, 0x39a0, 0x3495, 0x38a1, 0x382c, 0x2ed2, 0x3866, 0x33d8, 0x3396, 0x3b0c, 0x39c8, 0x314f, 0x346f, 0x3aee, 0x313e, 0x39b8, 0x34fe, 0x3882, 0x36d2, 0x3a8b, 0x3a8e, 0x3ae4, 0x3b31, 0x30da, 0x34e8, 0x38ce, 0x3643, 0x39b6, 0x34fb, 0x38d7, 0x3bde, 0x3ac9, 0x3af2, 0x38fe, 0x275f, 0x3748, 0x30ee, 0x3010, 0x3b23, 0x3a55, 0x3a43, 0x3a23, 0x37eb, 0x38fa, 0x3335, 0x3996, 0x39a0, 0x360f, 0x2630, 0x39f3, 0x3870, 0x383c, 0x384c, 0x3392, 0x3754, 0x3b4f, 0x3bc1, 0x382f, 0x3802, +0x3bb0, 0x36ad, 0x3a3f, 0x389e, 0x2d0c, 0x34b1, 0x3592, 0x3933, 0x25f1, 0x3ac7, 0x308e, 0x36b7, 0x3ab0, 0x2994, 0x38e4, 0x3689, 0x3c00, 0x3441, 0x30f6, 0x3a71, 0x3b19, 0x394e, 0x3826, 0x19a6, 0x3b2a, 0x3594, 0x3893, 0x34af, 0x3b34, 0x3ab3, 0x37e9, 0x3ba1, 0x3b01, 0x29ca, 0x3715, 0x3643, 0x312e, 0x3289, 0x311d, 0x383e, 0x38dc, 0x33a1, 0x384d, 0x3ba6, 0x3982, 0x34a7, 0x3b20, 0x3728, 0x3add, 0x2f89, 0x377b, 0x3a2d, 0x342e, 0x36e5, 0x3aa2, 0x3864, 0x38fe, 0x2d84, 0x3bef, 0x3bcd, 0x3553, 0x3953, 0x37be, 0x394a, 0x3a5f, 0x1d30, 0x3bfb, 0x3737, 0x3aa1, 0x3b6e, 0x3809, 0x3b5f, 0x389b, 0x3905, 0x3b29, 0x387d, 0x3afc, 0x3807, 0x3881, 0x3a2c, 0x37d5, 0x3a76, 0x35c4, 0x39ec, 0x3abf, 0x36ed, 0x3135, 0x381e, 0x3593, 0x3968, 0x2d97, 0x350c, 0x3a61, 0x3550, 0x2bde, 0x3400, +0x35ed, 0x34e7, 0x3846, 0x2e9e, 0x3afd, 0x3658, 0x36c2, 0x3863, 0x30b9, 0x350a, 0x3a30, 0x34cd, 0x3b2c, 0x3061, 0x3bc4, 0x2e78, 0x3475, 0x388a, 0x3678, 0x30c5, 0x38f2, 0x3807, 0x311d, 0x3aad, 0x3804, 0x3a1b, 0x38bf, 0x2c7f, 0x3be8, 0x3523, 0x32d3, 0x3a33, 0x38f1, 0x34af, 0x3797, 0x32e6, 0x3886, 0x33e8, 0x3a63, 0x34d3, 0x3618, 0x3571, 0x3abb, 0x3a0d, 0x39d4, 0x361c, 0x3b81, 0x3598, 0x301d, 0x390a, 0x2876, 0x39db, 0x344c, 0x3518, 0x3825, 0x33a5, 0x392b, 0x3671, 0x39a6, 0x3320, 0x3a67, 0x3447, 0x3a75, 0x34c7, 0x3ba8, 0x3108, 0x394f, 0x3986, 0x2c4d, 0x3856, 0x3b1c, 0x3343, 0x399d, 0x3a25, 0x2f68, 0x3be3, 0x3131, 0x349d, 0x39b0, 0x32d3, 0x305c, 0x3b49, 0x2e61, 0x36e1, 0x3a0c, 0x36cb, 0x3b96, 0x3648, 0x36a2, 0x3879, 0x387f, 0x3aa3, 0x2ac5, 0x30d8, 0x3424, 0x2bc4, +0x39b8, 0x38d0, 0x3bd2, 0x311b, 0x2cff, 0x2e9c, 0x3908, 0x39d9, 0x3628, 0x3c00, 0x39b7, 0x3a20, 0x3a6d, 0x3909, 0x37c2, 0x2c06, 0x3a29, 0x374d, 0x30c7, 0x3204, 0x392c, 0x3af6, 0x30de, 0x35ec, 0x3b48, 0x3b34, 0x38ec, 0x3b9f, 0x3625, 0x1a62, 0x3681, 0x2cbc, 0x39e6, 0x348b, 0x3726, 0x38d1, 0x35df, 0x382b, 0x3bc9, 0x39e9, 0x3a7b, 0x32df, 0x22ec, 0x35fa, 0x3a1d, 0x3b56, 0x37d2, 0x35af, 0x3bb3, 0x35bf, 0x38f2, 0x3090, 0x3163, 0x2ce6, 0x39a1, 0x3aa2, 0x38d3, 0x398d, 0x3a80, 0x35ff, 0x33e6, 0x3a00, 0x35a3, 0x3a52, 0x3175, 0x337b, 0x39c7, 0x399c, 0x3873, 0x390a, 0x39f9, 0x3766, 0x33d1, 0x38fe, 0x3a2b, 0x37ec, 0x39f9, 0x3980, 0x3ac0, 0x309f, 0x3313, 0x3897, 0x34a5, 0x36fb, 0x3725, 0x3a71, 0x3553, 0x3b09, 0x36ad, 0x3923, 0x3bdd, 0x3b9e, 0x2960, 0x3a59, 0x3a20, 0x375d, +0x39b6, 0x31e6, 0x34bc, 0x391e, 0x38cd, 0xca5, 0x360c, 0x35e6, 0x35b5, 0x3be9, 0x3be4, 0x3bea, 0x3741, 0x302e, 0x3557, 0x3bb1, 0x3be4, 0x342c, 0x350c, 0x352b, 0x3825, 0x3b05, 0x309d, 0x38f8, 0x3be3, 0x2d5d, 0x399a, 0x36b9, 0x3924, 0x3936, 0x3a45, 0x3a8f, 0x3853, 0x38a9, 0x381b, 0x3a9a, 0x393e, 0x31df, 0x3855, 0x38da, 0x37c6, 0x3bd8, 0x34fb, 0x2e5f, 0x3450, 0x304e, 0x3990, 0x29e1, 0x373c, 0x39a5, 0x3a5e, 0x3356, 0x2c13, 0x34a0, 0x3185, 0x3a8a, 0x3672, 0x2ee4, 0x2dbc, 0x22ae, 0x3a88, 0x388c, 0x30ce, 0x384d, 0x3453, 0x3ad0, 0x2e7f, 0x367a, 0x34c5, 0x39d6, 0x35de, 0x39fc, 0x3aa8, 0x3667, 0x3bb9, 0x35e7, 0x38c7, 0x2c83, 0x35a3, 0x35d7, 0x1a7c, 0x393e, 0x3588, 0x39dd, 0x3af3, 0x3965, 0x365b, 0x3a7e, 0x38ed, 0x3990, 0x3786, 0x3b07, 0x350e, 0x38b7, 0x357f, 0x3bb6, +0x2de9, 0x2ef1, 0x2cc9, 0x38a5, 0x347b, 0x310a, 0x351d, 0x3a9b, 0x3a68, 0x2228, 0x35d3, 0x338d, 0x3a3a, 0x24ec, 0x3ad0, 0x385a, 0x1c64, 0x39f9, 0x335e, 0x348c, 0x211e, 0x37d4, 0x353b, 0x3290, 0x3b68, 0x2f75, 0x2ff5, 0x3579, 0x3967, 0x3b5a, 0x3982, 0x3950, 0x35e9, 0x3a85, 0x3be5, 0x3252, 0x359b, 0x3799, 0x38ec, 0x3a0e, 0x3a45, 0x2d8e, 0x389d, 0x34d6, 0x3726, 0x3320, 0x3acd, 0x3642, 0x2574, 0x314a, 0x32a5, 0x3898, 0x370a, 0x3941, 0x340a, 0x2e05, 0x28b8, 0x39ad, 0x392e, 0x3821, 0x38d7, 0x3b07, 0x3485, 0x34d1, 0x399c, 0x1844, 0x2c8f, 0x3964, 0x3b56, 0x2dde, 0x2ede, 0x317b, 0x3a44, 0x3901, 0x3844, 0x382e, 0x29e6, 0x35ad, 0x3913, 0x3430, 0x3604, 0x3a5f, 0x3080, 0x3628, 0x3383, 0x3b3d, 0x385a, 0x38e8, 0x3ade, 0x3af3, 0x3a56, 0x3889, 0x2cf5, 0x3a61, 0x3b6a, 0x3b38, +0x2e45, 0x3736, 0x3743, 0x3680, 0x328f, 0x3a88, 0x39bb, 0x36a0, 0x3957, 0x2f27, 0x3a33, 0x3a9e, 0x3a9e, 0x2e09, 0x3154, 0x37b7, 0x3807, 0x3937, 0x390b, 0x3041, 0x3758, 0x39cf, 0x2e66, 0x2bc5, 0x3461, 0x3897, 0x39fd, 0x3b92, 0x36e3, 0x3a20, 0x3a8d, 0x335b, 0x3be1, 0x383d, 0x38ab, 0x3665, 0x3588, 0x3a4b, 0x33d5, 0x341b, 0x3806, 0x38fd, 0x382e, 0x32c1, 0x38d9, 0x2ccb, 0x292d, 0x380f, 0x35a2, 0x3b6e, 0x34af, 0x3889, 0x3109, 0x3480, 0x34bf, 0x3a56, 0x3163, 0x33fa, 0x345a, 0x39bb, 0x3b6e, 0x3a80, 0x36f6, 0x33c8, 0x3b98, 0x3663, 0x3aaf, 0x3926, 0x3a2d, 0x3a11, 0x33ac, 0x37a0, 0x3986, 0x3374, 0x3667, 0x3482, 0x378a, 0x2a39, 0x3535, 0x34f3, 0x3783, 0x36a7, 0x3606, 0x3843, 0x3acb, 0x2dcc, 0x3961, 0x34ed, 0x3890, 0x38e5, 0x3a7c, 0x384c, 0x39bf, 0x3a6b, 0x34a0, 0x361b, +0x2e5e, 0x3650, 0x3417, 0x36e5, 0x3b4c, 0x3892, 0x38ba, 0x32f3, 0x3b80, 0x39ea, 0x3357, 0x3212, 0x3b42, 0x3622, 0x3c00, 0x34c0, 0x38e0, 0x360c, 0x36bc, 0x34b0, 0x3b53, 0x2587, 0x387e, 0x3966, 0x3800, 0x35e2, 0x3917, 0x3be4, 0x378f, 0x2d21, 0x3415, 0x2ea8, 0x34d0, 0x36ac, 0x3a51, 0x3ba5, 0x3b7e, 0x2d48, 0x39c1, 0x30d5, 0x3244, 0x3894, 0x3aaa, 0x3451, 0x3a9f, 0x2e40, 0x3832, 0x35f6, 0x3429, 0x253c, 0x2c2e, 0x3bd6, 0x3a5c, 0x3622, 0x3155, 0x3a50, 0x313f, 0x31dc, 0x3b9d, 0x2d67, 0x3914, 0x38f5, 0x3ab6, 0x3bd3, 0x3754, 0x3683, 0x32b0, 0x31dd, 0x3911, 0x37c2, 0x2b09, 0x33b7, 0x3b7c, 0x344a, 0x2a7c, 0x3350, 0x3792, 0x36ea, 0x3463, 0x3a87, 0x29be, 0x3a23, 0x390d, 0x3b10, 0x381d, 0x3227, 0x38f4, 0x39bc, 0x3a71, 0x375d, 0x349d, 0x271c, 0x3921, 0x2e0a, 0x3b08, 0x3ba3, +0x3a92, 0x3923, 0x3012, 0x3527, 0x2ba3, 0x3aa1, 0x3ba3, 0x349a, 0x3729, 0x393a, 0x2ea9, 0x398a, 0x38a5, 0x3ad5, 0x38e6, 0x3a7b, 0x3783, 0x3822, 0x371a, 0x3247, 0x3af0, 0x3ac9, 0x35f6, 0x39d5, 0x39c3, 0x39bc, 0x3a9e, 0x39a8, 0x3af5, 0x3a01, 0x39ab, 0x35f6, 0x392e, 0x3bca, 0x2f53, 0x3595, 0x34c6, 0x3a96, 0x396f, 0x3515, 0x39c5, 0x37b3, 0x37c4, 0x2f64, 0x37ed, 0x3013, 0x3939, 0x3be7, 0x3a5e, 0x3526, 0x3a32, 0x3a8c, 0x334e, 0x39d6, 0x3b45, 0x395d, 0x3500, 0x375f, 0x2498, 0x3ad9, 0x3a04, 0x3961, 0x3a1e, 0x38cb, 0x383d, 0x35c3, 0x37ec, 0x38ab, 0x3aca, 0x29aa, 0x3480, 0x374c, 0x35d1, 0x33cc, 0x387a, 0x3544, 0x367d, 0x3259, 0x306b, 0x39c9, 0x323b, 0x3a58, 0x3156, 0x353d, 0x323a, 0x2987, 0x31ff, 0x3998, 0x311c, 0x38d0, 0x3a03, 0x38cc, 0x35b5, 0x398b, 0x3a0c, 0x3a96, +0x3ab6, 0x3a1c, 0x3a48, 0x3974, 0x3815, 0x368a, 0x36d5, 0x37aa, 0x345b, 0x3bd3, 0x3b1f, 0x3167, 0x2ecf, 0x3a80, 0x3636, 0x3a8e, 0x39d3, 0x3a1a, 0x3087, 0x3823, 0x3b9c, 0x3969, 0x2fb9, 0x3bb8, 0x39c5, 0x3991, 0x3392, 0x38f2, 0x3939, 0x2c68, 0x3b0a, 0x383a, 0x3bd7, 0x3a74, 0x3956, 0x3465, 0x39f3, 0x3880, 0x39bc, 0x39c5, 0x35e4, 0x3738, 0x3856, 0x399b, 0x3bda, 0x3366, 0x31a0, 0x3868, 0x3aa3, 0x38bd, 0x305a, 0x3743, 0x3a85, 0x2336, 0x39eb, 0x2d06, 0x37df, 0x3852, 0x3b46, 0x302c, 0x3a1e, 0x3b46, 0x3068, 0x3bd6, 0x381d, 0x31f6, 0x3491, 0x3848, 0x3315, 0x38c7, 0x3600, 0x3b9d, 0x38b2, 0x3977, 0x388c, 0x3ac2, 0x37ee, 0x35c4, 0x3b45, 0x374a, 0x3355, 0x1dbb, 0x38ec, 0x3003, 0x3a97, 0x311f, 0x3749, 0x2b59, 0x3842, 0x34a9, 0x3561, 0x3b07, 0x3a4a, 0x292f, 0x3961, 0x3546, +0x35dd, 0x3966, 0x2c7d, 0x3833, 0x285f, 0x20f2, 0x3a12, 0x392b, 0x2bae, 0x2fa6, 0x3a36, 0x303c, 0x3303, 0x2bc6, 0x3b94, 0x3a0e, 0x3ae2, 0x3a3c, 0x315c, 0x37bb, 0x3452, 0x3267, 0x2731, 0x3985, 0x3bcf, 0x397e, 0x2fae, 0x28b1, 0x39cc, 0x3536, 0x37a1, 0x3aa3, 0x396b, 0x2c59, 0x3bbf, 0x303c, 0x3bcf, 0x3a8e, 0x3afc, 0x3ab1, 0x2943, 0x3a17, 0x3552, 0x2f57, 0x3353, 0x3512, 0x2e78, 0x3b53, 0x388e, 0x399c, 0x336e, 0x38d4, 0x3849, 0x32b1, 0x316a, 0x2877, 0x2feb, 0x35b9, 0x375d, 0x29fa, 0x3ad2, 0x3569, 0x3981, 0x3455, 0x3847, 0x3a81, 0x3514, 0x29d0, 0x3137, 0x39ba, 0x3b1a, 0x2dd4, 0x383f, 0x39f7, 0x37f6, 0x3964, 0x371c, 0x39e4, 0x3136, 0x35da, 0x3b2f, 0x3946, 0x36dd, 0x3801, 0x3927, 0x2614, 0x2ca7, 0x39ae, 0x3401, 0x3242, 0x3a91, 0x3a1d, 0x3790, 0x333f, 0x3bb9, 0x3a1d, +0x3be5, 0x39e1, 0x35f3, 0x38fd, 0x3726, 0x3946, 0x3baf, 0x3a2f, 0x15e0, 0x318b, 0x359c, 0x2fbf, 0x3060, 0x3a09, 0x35c9, 0x39e2, 0x317e, 0x25ec, 0x3546, 0x3254, 0x36e9, 0x374c, 0x35c0, 0x3787, 0x3b82, 0x3727, 0x34a8, 0x3820, 0x3aee, 0x3814, 0x33da, 0x357f, 0x2f56, 0x3231, 0x3ba0, 0x35e4, 0x3998, 0x3609, 0x3979, 0x3311, 0x33e8, 0x39bd, 0x39f0, 0x3a32, 0x31dc, 0x3aee, 0x310e, 0x3843, 0x38c1, 0x382a, 0x382f, 0x3b24, 0x335c, 0x383b, 0x24f4, 0x371c, 0x3162, 0x2dce, 0x3ae6, 0x2d1e, 0x3a20, 0x39e9, 0x39c5, 0x219a, 0x37d4, 0x34fe, 0x14f6, 0x2e13, 0x3949, 0x3b98, 0x3a42, 0x3aee, 0x298f, 0x3740, 0x28e0, 0x3854, 0x3925, 0x3951, 0x3426, 0x3b4a, 0x3043, 0x345d, 0x3aec, 0x3b89, 0x378c, 0x355a, 0x3287, 0x340c, 0x35fb, 0x2f7d, 0x3839, 0x383a, 0x3a66, 0x388c, 0x36b3, 0x3908, +0x3323, 0x35b2, 0x3823, 0x3ad3, 0x3b52, 0x3634, 0x3a70, 0x3b37, 0x2d59, 0x3893, 0x3978, 0x3515, 0x2733, 0x399b, 0x3a86, 0x3b9c, 0x3582, 0x38e0, 0x389d, 0x3b34, 0x2d41, 0x31d7, 0x2db9, 0x3474, 0x35f6, 0x38fa, 0x3296, 0x3a85, 0x3102, 0x3129, 0x38e1, 0x39d4, 0x36ec, 0x2fea, 0x3a44, 0x3393, 0x39e0, 0x3613, 0x3bc1, 0x3145, 0x23d7, 0x3a17, 0x3515, 0x3845, 0x38f7, 0x33ee, 0x3b6f, 0x38f9, 0x38c7, 0x3489, 0x352b, 0x3b74, 0x39ab, 0x32e2, 0x37be, 0x38e6, 0x34e1, 0x31a5, 0x3be8, 0x2b0f, 0x3b16, 0x3a43, 0x3ae7, 0x39a2, 0x36a2, 0x33a5, 0x3160, 0x33c8, 0x30de, 0x38d9, 0x33f6, 0x35b0, 0x2982, 0x38e6, 0x3ae7, 0x3bca, 0x3911, 0x397b, 0x3596, 0x3790, 0x38eb, 0x3aa2, 0x38f6, 0x381f, 0x398e, 0x343b, 0x39ef, 0x39a3, 0x35f2, 0x2c2c, 0x39e2, 0x3b7f, 0x3858, 0x3b83, 0x3b02, 0x33df, +0x379c, 0x3ae9, 0x340b, 0x368f, 0x3a50, 0x38a6, 0x3aa2, 0x3bd6, 0x3855, 0x3841, 0x3410, 0x348d, 0x3625, 0x38a0, 0x3bdc, 0x34e3, 0x38f6, 0x3274, 0x3a03, 0x3adc, 0x35df, 0x39f5, 0x38b4, 0x38cc, 0x384d, 0x394f, 0x3597, 0x3a9c, 0x3767, 0x3b65, 0x39f5, 0x3857, 0x38c2, 0x3b12, 0x3580, 0x32b0, 0x3595, 0x3723, 0x3b92, 0x347f, 0x3526, 0x377d, 0x35c3, 0x354b, 0x3651, 0x3ae9, 0x38c7, 0x3bc0, 0x30d2, 0x395a, 0x34f2, 0x370d, 0x3748, 0x35fb, 0x3401, 0x34e8, 0x3931, 0x3a34, 0x381e, 0x3886, 0x3afc, 0x3bbc, 0x3af0, 0x3a9c, 0x3a5b, 0x34ef, 0x3979, 0x3ab0, 0x31f2, 0x34f8, 0x1c09, 0x3a9c, 0x36a0, 0x3af7, 0x3b87, 0x3745, 0x39b8, 0x3582, 0x3be2, 0x3bd6, 0x373f, 0x3552, 0x31c1, 0x3a29, 0x2f37, 0x363b, 0x3a9d, 0x39ee, 0x3aa7, 0x3a03, 0x3551, 0x39ce, 0x3a95, 0x3894, 0x32d1, 0x36f2, +0x385b, 0x342c, 0x3643, 0x3be4, 0x3b88, 0x3b64, 0x3975, 0x3142, 0x3583, 0x2f10, 0x34bb, 0x3b4d, 0x3924, 0x2609, 0x3929, 0x274b, 0x3476, 0x3bfd, 0x3abd, 0x3874, 0x33cf, 0x3756, 0x3820, 0x31a3, 0x35dd, 0x39a3, 0x3359, 0x397e, 0x3a12, 0x3ad6, 0x3a25, 0x38ab, 0x392c, 0x3bca, 0x38a9, 0x2f91, 0x381c, 0x29fb, 0x390e, 0x34f7, 0x3a14, 0x39fa, 0x3104, 0x3488, 0x326e, 0x3593, 0x3b50, 0x2e3d, 0x3423, 0x3919, 0x38db, 0x308b, 0x3883, 0x3ba9, 0x38e2, 0x3b74, 0x2b9d, 0x303d, 0x35ef, 0x29a3, 0x364d, 0x2fb5, 0x3991, 0x3a6a, 0x3bf5, 0x391f, 0x373f, 0x3a0a, 0x3a6f, 0x3ad6, 0x35ba, 0x3889, 0x3982, 0x3b8b, 0x3a43, 0x3bfb, 0x3355, 0x3591, 0x39de, 0x34b8, 0x3b76, 0x2a30, 0x30cc, 0x33d3, 0x2f46, 0x380e, 0x3b6e, 0x3576, 0x388b, 0x3b42, 0x35de, 0x39ab, 0x32f3, 0x35dc, 0x3594, 0x3184, +0x3b0c, 0x3478, 0x3b70, 0x389e, 0x3a28, 0x3bf3, 0x3350, 0x35fc, 0x396f, 0x3a40, 0x3242, 0x3a86, 0x3bd1, 0x314b, 0x2e15, 0x394f, 0x391b, 0x3763, 0x31e4, 0x3908, 0x3b48, 0x39e5, 0x3aca, 0x3a5b, 0x3626, 0x37fa, 0x381c, 0x3867, 0x342c, 0x3842, 0x3b77, 0x3ad7, 0x39a8, 0x3867, 0x3b9c, 0x3938, 0x3969, 0x2f52, 0x3a11, 0x3982, 0x3963, 0x3873, 0x3278, 0x3193, 0x369e, 0x3848, 0x3a63, 0x399a, 0x3ba0, 0x39c1, 0x3987, 0x3595, 0x2993, 0x3517, 0x31f2, 0x35a9, 0x3628, 0x3a6b, 0x3bf2, 0x3a75, 0x3129, 0x3460, 0x38d0, 0x370e, 0x3a52, 0x381a, 0x3b57, 0x388c, 0x3a87, 0x2c5a, 0x3ac9, 0x3686, 0x2023, 0x2fcb, 0x2845, 0x36f2, 0x3ac6, 0x2f91, 0x2a3b, 0x37bc, 0x3865, 0x3b91, 0x3887, 0x3b8b, 0x2edc, 0x38e1, 0x3465, 0x348f, 0x3bfb, 0x393a, 0x3b42, 0x394e, 0x2f39, 0x364b, 0x37a7, 0x3b51, +0x3810, 0x35e7, 0x388f, 0x38fc, 0x3740, 0x322e, 0x2f12, 0x39d5, 0x3834, 0x366f, 0x2c74, 0x35da, 0x3901, 0x39c1, 0x39f1, 0x381a, 0xc05, 0x3541, 0x39d3, 0x326a, 0x3993, 0x3ba8, 0x3bc9, 0x3b2b, 0x390d, 0x3a4b, 0x38db, 0x39a7, 0x3043, 0x345e, 0x2e17, 0x2cd7, 0x38ba, 0x3a26, 0x3a7d, 0x385b, 0x3a40, 0x25b0, 0x3ba4, 0x3b75, 0x30f9, 0x3508, 0x3885, 0x375d, 0x3acf, 0x36fb, 0x334b, 0x3a92, 0x3bbd, 0x3b15, 0x392e, 0x3b14, 0x33b3, 0x3ac3, 0x39f8, 0x35ae, 0x391d, 0x3b24, 0x316a, 0x30e9, 0x3813, 0x3736, 0x3b34, 0x2db4, 0x395a, 0x37ac, 0x3a01, 0x3671, 0x37af, 0x368a, 0x2de1, 0x3a69, 0x3416, 0x3294, 0x344d, 0x393e, 0x399f, 0x1d48, 0x38db, 0x3b08, 0x3944, 0x3a99, 0x39d5, 0x35fb, 0x2828, 0x3a19, 0x38b3, 0x3209, 0x3660, 0x38fa, 0x3a01, 0x3ba5, 0x322e, 0x3048, 0x3bb1, 0x3be6, +0x3b6f, 0x327c, 0x3932, 0x3721, 0x39b5, 0x28b8, 0x3b6d, 0x3a9e, 0x393c, 0x35e6, 0x3b4d, 0x2515, 0x2921, 0x395a, 0x3762, 0x34c7, 0x38ed, 0x3b61, 0x35ab, 0x2d3c, 0x3132, 0x35ef, 0x37e1, 0x37cf, 0x383c, 0x3b5e, 0x3a9d, 0x39af, 0x362e, 0x3b02, 0x3a85, 0x3ad0, 0x3739, 0x38f9, 0x3a16, 0x30e5, 0x3b92, 0x39b6, 0x39c4, 0x3b4d, 0x30c6, 0x35c6, 0x3513, 0x2e7a, 0x32a9, 0x346a, 0x359a, 0x3ae2, 0x3a27, 0x3b87, 0x3934, 0x358e, 0x33cd, 0x37a7, 0x3bbb, 0x383f, 0x357d, 0x3714, 0x35c1, 0x3540, 0x35ff, 0x39a6, 0x3686, 0x39bd, 0x3906, 0x357b, 0x3b22, 0x3be6, 0x38e3, 0x3876, 0x3954, 0x2c83, 0x3acf, 0x3aef, 0x3a67, 0x3548, 0x38d1, 0x359f, 0x3b59, 0x3b61, 0x39c8, 0x392e, 0x39a6, 0x3a3a, 0x3ad5, 0x3831, 0x39ae, 0x3b0e, 0x3b00, 0x3acf, 0x30e1, 0x3751, 0x2f93, 0x39e5, 0x39c3, 0x3928, +0x2df5, 0x36e5, 0x2605, 0x3827, 0x3566, 0x38b3, 0x3345, 0x3869, 0x38e2, 0x31a5, 0x37cf, 0x3b01, 0x3add, 0x2e7e, 0x3573, 0x2f1a, 0x2d92, 0x3a72, 0x3821, 0x313b, 0x3970, 0x3943, 0x3af1, 0x3aeb, 0x37d8, 0x35c7, 0x38a8, 0x3abb, 0x3893, 0x33a0, 0x3a05, 0x3830, 0x37d5, 0x2708, 0x3685, 0x3907, 0x3a07, 0x39f9, 0x3889, 0x2fd1, 0x38c8, 0x3091, 0x3b6a, 0x3332, 0x35f0, 0x36f0, 0x35ce, 0x3b5e, 0x3927, 0x3bf3, 0x392e, 0x39e6, 0x3703, 0x38c6, 0x37db, 0x364c, 0x3984, 0x2bd1, 0x34b3, 0x3873, 0x332b, 0x38a5, 0x2b51, 0x3a1c, 0x3446, 0x2f6a, 0x3975, 0x2f99, 0x38f4, 0x3849, 0x35f2, 0x3734, 0x38da, 0x38b9, 0x39cb, 0x3a6d, 0x39ea, 0x3160, 0x2fde, 0x3acb, 0x2d2d, 0x325b, 0x3a86, 0x3b66, 0x3a07, 0x361c, 0x394a, 0x2b5d, 0x3a45, 0x2dfa, 0x3505, 0x3263, 0x39e5, 0x3655, 0x32de, 0x3295, +0x38c9, 0x2f7b, 0x2f9e, 0x2d42, 0x3b0c, 0x378c, 0x2dac, 0x22ef, 0x3603, 0x396c, 0x3460, 0x3a7a, 0x3b62, 0x3177, 0x3703, 0x2936, 0x39a0, 0x38e7, 0x3b0d, 0x331e, 0x34cb, 0x39f3, 0x3138, 0x3a4d, 0x35d5, 0x399f, 0x3229, 0x39d3, 0x385c, 0x28ea, 0x3895, 0x3653, 0x3561, 0x3927, 0x35b6, 0x34b7, 0x3983, 0x2d4f, 0x2ad7, 0x3562, 0x324b, 0x29e0, 0x3928, 0x3a3d, 0x3aa2, 0x3128, 0x357a, 0x3a20, 0x3b17, 0x2919, 0x3702, 0x35bd, 0x3578, 0x3a6c, 0x3a68, 0x38e2, 0x3888, 0x38cd, 0x36f9, 0x3164, 0x351b, 0x39c4, 0x219b, 0x301f, 0x31fb, 0x343d, 0x38d5, 0x3900, 0x1dad, 0x3a61, 0x385e, 0x385b, 0x388e, 0x38b1, 0x351e, 0x34dc, 0x35c8, 0x316e, 0x36b7, 0x3beb, 0x3646, 0x2d3d, 0x35ff, 0x33bb, 0x36bf, 0x3adf, 0x3a75, 0x3b1f, 0x3a07, 0x38f1, 0x390a, 0x2e57, 0x27c6, 0x3afa, 0x396a, 0x2d0d, +0x3173, 0x3b83, 0x3ace, 0x3631, 0x3aa6, 0x38b6, 0x37c5, 0x365e, 0x2f2a, 0x3528, 0x3be0, 0x3af3, 0x37e7, 0x3947, 0x292e, 0x3b1b, 0x3959, 0x3082, 0x279b, 0x3a83, 0x3052, 0x3b4e, 0x3948, 0x39e1, 0x3566, 0x38c3, 0x3738, 0x30ee, 0x2731, 0x2ce3, 0x39a0, 0x3b90, 0x36c8, 0x3980, 0x357c, 0x34cf, 0x3a92, 0x3ac1, 0x1fc8, 0x3b89, 0x399c, 0x380f, 0x366e, 0x3767, 0x3650, 0x399b, 0x3413, 0x357b, 0x3610, 0x3a32, 0x3b9e, 0x3ae2, 0x3a84, 0x399b, 0x3ad1, 0x38a6, 0x3a6e, 0x36d4, 0x3bcc, 0x3043, 0x30ad, 0x35c2, 0x3b07, 0x2a03, 0x3658, 0x39ba, 0x3bf3, 0x3b92, 0x38ad, 0x36dc, 0x398e, 0x35ed, 0x3409, 0x3b31, 0x36d5, 0x3221, 0x3b12, 0x3887, 0x38e0, 0x3550, 0x31fa, 0x2f61, 0x3bd0, 0x34b8, 0x3860, 0x30db, 0x3415, 0x3b42, 0x31cb, 0x39c3, 0x3125, 0x3b66, 0x2468, 0x3a27, 0x3b63, 0x3ae5, +0x3809, 0x37a7, 0x39a2, 0x35c1, 0x3baf, 0x3798, 0x3518, 0x3583, 0x3bfc, 0x3bab, 0x3ab0, 0x3822, 0x3589, 0x33b1, 0x33e7, 0x3899, 0x3b93, 0x36bd, 0x3a87, 0x343c, 0x39a1, 0x3a0a, 0x38c6, 0x3b47, 0x3b64, 0x2d7e, 0x3bfd, 0x2d2d, 0x3a8a, 0x306c, 0x3766, 0x340d, 0x38e7, 0x3617, 0x3bd3, 0x398c, 0x3819, 0x3171, 0x36e6, 0x391f, 0x30d4, 0x39d5, 0x31bb, 0x3833, 0x3012, 0x2db1, 0x3aab, 0x3903, 0x3749, 0x379e, 0x3089, 0x2d69, 0x251b, 0x3448, 0x3418, 0x3b4e, 0x37de, 0x38c6, 0x373b, 0x38aa, 0x3968, 0x3b36, 0x3bfe, 0x38c9, 0x3ada, 0x38ba, 0x354e, 0x3a6e, 0x373d, 0x380c, 0x374b, 0x34d2, 0x35fd, 0x3a5d, 0x3a8d, 0x3a14, 0x3abd, 0x346c, 0x3766, 0x3908, 0x3ad3, 0x3a52, 0x341b, 0x2ad8, 0x3abb, 0x3083, 0x2933, 0x3b56, 0x3a33, 0x3753, 0x3529, 0x3bfd, 0x34a1, 0x3229, 0x3be1, 0x3b71, +0x3a9e, 0x3764, 0x35e7, 0x3831, 0x398a, 0x3877, 0x3aec, 0x39f0, 0x3159, 0x389f, 0x38bc, 0x3878, 0x3bc7, 0x3a01, 0x2896, 0x39af, 0x3784, 0x3260, 0x38d9, 0x3bcf, 0x3bfa, 0x3bc3, 0x2b23, 0x387d, 0x2e5b, 0x35a6, 0x3468, 0x3933, 0x2783, 0x37e8, 0x3af2, 0x332e, 0x3b77, 0x3ac3, 0x3514, 0x3bcd, 0x3bd8, 0x372f, 0x3979, 0x3b30, 0x3993, 0x3888, 0x38d5, 0x3a18, 0x3be4, 0x2b5c, 0x2518, 0x3b55, 0x3bbc, 0x3ba0, 0x2f21, 0x33b6, 0x352c, 0x39b3, 0x3bc7, 0x3a59, 0x38ea, 0x3432, 0x3b9b, 0x3b74, 0x3baf, 0x34a2, 0x3457, 0x3593, 0x3967, 0x3879, 0x3b79, 0x3806, 0x30ca, 0x384c, 0x394c, 0x37a7, 0x21ce, 0x3bbc, 0x305c, 0x3b11, 0x3a1a, 0x3a64, 0x2e80, 0x27ac, 0x3635, 0x361d, 0x2d4c, 0x2264, 0x37ba, 0x165c, 0x2ec8, 0x386b, 0x1b60, 0x3992, 0x357f, 0x2b6b, 0x37da, 0x3942, 0x2d77, 0x2f25, +0x34e0, 0x3809, 0x395b, 0x33dd, 0x38af, 0x3546, 0x2f78, 0x3469, 0x3832, 0x34b7, 0x3839, 0x32c0, 0x3676, 0x3b1f, 0x3872, 0x317b, 0x3403, 0x3444, 0x3438, 0x39cb, 0x3102, 0x3a90, 0x381a, 0x2db5, 0x3b1f, 0x3a44, 0x3aff, 0x354f, 0x3578, 0x3921, 0x38b0, 0x301f, 0x2da3, 0x3062, 0x3596, 0x3a07, 0x382a, 0x37bd, 0x3634, 0x34b1, 0x31a5, 0x353f, 0x33ec, 0x3986, 0x37a7, 0x332d, 0x3874, 0x3046, 0x3b5b, 0x3bf8, 0x37a0, 0x3822, 0x36c4, 0x385c, 0x3868, 0x39ec, 0x3959, 0x39cc, 0x382e, 0x2505, 0x3471, 0x358c, 0x3905, 0x395b, 0x312b, 0x3706, 0x2eec, 0x3a2a, 0x3be9, 0x3a96, 0x2932, 0x3a84, 0x38b2, 0x3884, 0x3655, 0x341f, 0x30b6, 0x363a, 0x3a7d, 0x389b, 0x348c, 0x3b98, 0x38cc, 0x3699, 0x373b, 0x3ad9, 0x377b, 0x33b4, 0x8ef, 0x3a4c, 0x39a2, 0x3bbc, 0x3b01, 0x3a46, 0x3b56, 0x38db, +0x29ab, 0x29e8, 0x3830, 0x39d7, 0x38ff, 0x33a2, 0x2ed0, 0x38e9, 0x3bd2, 0x380b, 0x3940, 0x3b79, 0x3477, 0x36f4, 0x38b8, 0x382d, 0x3838, 0x37f7, 0x219f, 0x34ec, 0x3af5, 0x347d, 0x3a0e, 0x352e, 0x39f3, 0x39ae, 0x3624, 0x1a5a, 0x329c, 0x3a57, 0x254a, 0x361b, 0x3554, 0x3a17, 0x3888, 0x34c7, 0x3628, 0x3321, 0x39de, 0x34f1, 0x386f, 0x37ae, 0x3709, 0x3909, 0x3ae3, 0x3a0e, 0x3495, 0x3bb8, 0x363c, 0x3039, 0x37e4, 0x30ff, 0x164f, 0x37aa, 0x3b7d, 0x2c60, 0x3828, 0x36b8, 0x235d, 0x29b9, 0x3917, 0x24db, 0x3946, 0x2e75, 0x359c, 0x35c3, 0x3b91, 0x35b5, 0x341f, 0x3873, 0x343a, 0x326a, 0x215c, 0x34f3, 0x35a9, 0x2efa, 0x29dd, 0x3b37, 0x3594, 0x305f, 0x3b48, 0x3bc9, 0x3957, 0x3bac, 0x3638, 0x369e, 0x3a45, 0x3173, 0x3bad, 0x354c, 0x32d9, 0x38d2, 0x3b97, 0x3409, 0x3871, 0x3ac2, +0x3739, 0x2c5b, 0x3480, 0x3206, 0x2ede, 0x345e, 0x3806, 0x354c, 0x38ac, 0x3404, 0x35b5, 0x2250, 0x3957, 0x3831, 0x37c2, 0x331a, 0x36c9, 0x3b7c, 0x2a94, 0x3b00, 0x3722, 0x38c4, 0x35b9, 0x3b30, 0x3af4, 0x3758, 0x3290, 0x33a6, 0x31fe, 0x3937, 0x3b74, 0x3010, 0x3076, 0x344d, 0x3773, 0x22d7, 0x25f7, 0x2cde, 0x3999, 0x3859, 0x32b9, 0x3985, 0x3a7e, 0x39eb, 0x35f1, 0x3a36, 0x3735, 0x3337, 0x34da, 0x30ca, 0x3a16, 0x3523, 0x3802, 0x3a05, 0x3609, 0x310b, 0x3770, 0x389c, 0x2d46, 0x382e, 0x332f, 0x2d06, 0x39d5, 0x3b65, 0x3a48, 0x3b45, 0x2d13, 0x389d, 0x27e8, 0x34e9, 0x3a4d, 0x2802, 0x3903, 0x3ac4, 0x3bb7, 0x38ab, 0x3a80, 0x3725, 0x2f22, 0x358e, 0x3b17, 0x3a80, 0x39b0, 0x3bdd, 0x3aa6, 0x326d, 0x34d4, 0x2f73, 0x39c3, 0x297f, 0x210c, 0x2713, 0x3887, 0x3aec, 0x3a48, 0x3a58, +0x35dc, 0x2ea9, 0x3576, 0x3b80, 0x34c8, 0x3bfb, 0x3268, 0x336c, 0x3574, 0x3712, 0x349c, 0x3bb4, 0x3875, 0x3be8, 0x3b9f, 0x3436, 0x31e8, 0x3a22, 0x2d06, 0x3222, 0x3b99, 0x37ef, 0x3511, 0x3a6f, 0x36dc, 0x3b58, 0x353a, 0x3985, 0x3938, 0x3b64, 0x2753, 0x21b5, 0x2bb1, 0x3291, 0x3af9, 0x30eb, 0x3819, 0x376e, 0x357f, 0x2d58, 0x398d, 0x3966, 0x3a12, 0x32f5, 0x3b9e, 0x3bac, 0x38e8, 0x37bc, 0x3106, 0x3750, 0x39f4, 0x3bf3, 0x38d4, 0x3b41, 0x3b4e, 0x3722, 0x3536, 0x35b1, 0x3a85, 0x34f8, 0x3bcf, 0x351f, 0x3953, 0x39d4, 0x3abc, 0x3521, 0x389f, 0x2386, 0x350b, 0x3b1d, 0x35a3, 0x359c, 0x3607, 0x3b0a, 0x385b, 0x3927, 0x39f9, 0x3a58, 0x36c7, 0x3030, 0x3ba8, 0x348e, 0x2f3d, 0x3973, 0x3b3c, 0x3a02, 0x3abd, 0x3a2e, 0x28f3, 0x3b9b, 0x348e, 0x396b, 0x3963, 0x39dc, 0x3a38, 0x3b12, +0x3a7c, 0x378c, 0x3a31, 0x3068, 0x3790, 0x24a7, 0x39b5, 0x3629, 0x34a4, 0x3bd4, 0x357b, 0x3bc8, 0x356b, 0x3a00, 0x3776, 0x32ad, 0x3327, 0x2da5, 0x2f3a, 0x366c, 0x25f9, 0x34e3, 0x3b50, 0x25c1, 0x33c4, 0x3822, 0x34d7, 0x3bed, 0x3a05, 0x3bab, 0x37e9, 0x37fe, 0x3a3c, 0x380d, 0x369f, 0x3b86, 0x2460, 0x39aa, 0x38e7, 0x388b, 0x1e16, 0x2f0c, 0x39a6, 0x3a99, 0x39b7, 0x35b2, 0x3221, 0x3618, 0x3a08, 0x37fc, 0x3481, 0x3ba6, 0x3408, 0x3415, 0x3adf, 0x3b77, 0x19f6, 0x328c, 0x3830, 0x3996, 0x3afb, 0x3528, 0x37e6, 0x39e1, 0x380b, 0x35bc, 0x3b6c, 0x3a1f, 0x385b, 0x34c9, 0x3b7c, 0x35f5, 0x258c, 0x39ec, 0x30f8, 0x322d, 0x3b8a, 0x3159, 0x399f, 0x2f24, 0x346a, 0x3738, 0x39cb, 0x3949, 0x3a2e, 0x3b54, 0x3adf, 0x3b62, 0x3ab1, 0x316d, 0x3aa6, 0x2ec2, 0x38f8, 0x2b3b, 0x2861, 0x3026, +0x2a43, 0x3b6a, 0x3a73, 0x31d4, 0x352e, 0x3461, 0x345c, 0x34f2, 0x2c0e, 0x38b3, 0x2e79, 0x3ba2, 0x2c1e, 0x3314, 0x371a, 0x3973, 0x2f6f, 0x3a7b, 0x3031, 0x39f1, 0x3b78, 0x381b, 0x2d2b, 0x38a6, 0x3864, 0x3a6b, 0x3045, 0x3731, 0x2d60, 0x382b, 0x31e4, 0x3985, 0x3bce, 0x34fe, 0x39f0, 0x381d, 0x35d3, 0x38a2, 0x2eeb, 0x3278, 0x3ace, 0x344a, 0x37a5, 0x341b, 0x3a62, 0x3549, 0x365d, 0x3a82, 0x3842, 0x37de, 0x3b1f, 0x32d3, 0x3b8e, 0x3a44, 0x2cfd, 0x3885, 0x3b2e, 0x34b1, 0x3674, 0x37d8, 0x3bff, 0x3535, 0x3487, 0x2fbe, 0x3abe, 0x3266, 0x31ad, 0x340a, 0x3be2, 0x21a8, 0x3924, 0x39ea, 0x381b, 0x3351, 0x3aa6, 0x3903, 0x38b5, 0x3284, 0x3937, 0x3a34, 0x344a, 0x3a26, 0x312f, 0x39a8, 0x3b8d, 0x373e, 0x3b66, 0x2764, 0x386d, 0x20a8, 0x381c, 0x395e, 0x2ee0, 0x3820, 0x37f5, 0x3bc2, +0x3bd7, 0x37b6, 0x39dd, 0x3b50, 0x3621, 0x3726, 0x3484, 0x360f, 0x39fa, 0x3b62, 0x2318, 0x1a60, 0x35b8, 0x340b, 0x2d49, 0x35ec, 0x3783, 0x3b02, 0x3654, 0x3b4f, 0x337c, 0x3bff, 0x36aa, 0x34cc, 0x38cd, 0x3555, 0x39a0, 0x34da, 0x2840, 0x3897, 0x3bcc, 0x30ff, 0x347f, 0x3acf, 0x39ac, 0x2544, 0x352e, 0x36d2, 0x3643, 0x33f1, 0x3bd2, 0x30b1, 0x38f3, 0x3a47, 0x3863, 0x37e5, 0x2048, 0x388c, 0x2c07, 0x3abc, 0x342a, 0x3986, 0x38ee, 0x39ff, 0x3485, 0x3947, 0x386c, 0x39e0, 0x3a96, 0x3bdc, 0x3158, 0x3ba6, 0x28fc, 0x29dd, 0x3b4e, 0x3a74, 0x3834, 0x3b8d, 0x1c2f, 0x390f, 0x3009, 0x39db, 0x2dc1, 0x3802, 0x3bb2, 0x3428, 0x2dff, 0x3a33, 0x355f, 0x3122, 0x3152, 0x3615, 0x38d7, 0x38f6, 0x3624, 0x3ac4, 0x1527, 0x3a83, 0x2db8, 0x3847, 0x3afe, 0x3a7e, 0x307e, 0x3711, 0x3726, 0x3a68, +0x2b4b, 0x3b91, 0x360b, 0x3b18, 0x375e, 0x2be2, 0x3a8d, 0x2bbb, 0x2f24, 0x3271, 0x2e97, 0x3734, 0x3a56, 0x35d8, 0x355c, 0x1578, 0x33d1, 0x3b60, 0x2793, 0x350b, 0x34c6, 0x38d3, 0x387f, 0x3a3f, 0x3928, 0x3021, 0x384d, 0x36f8, 0x3413, 0x3be3, 0x3817, 0x2280, 0x36ef, 0x3795, 0x385b, 0x3be6, 0x323d, 0x3880, 0x35d7, 0x3201, 0x3329, 0x3a49, 0x36bf, 0x3585, 0x2df9, 0x3897, 0x338c, 0x313c, 0x343c, 0x3ab6, 0x3927, 0x3514, 0x3944, 0x3bfa, 0x347e, 0x32a5, 0x357f, 0x3b96, 0x375b, 0x38cc, 0x3bc9, 0x384c, 0x39ec, 0x35f4, 0x36a6, 0x3bf9, 0x2aa9, 0x3b18, 0x3172, 0x3bc9, 0x3b41, 0x2e94, 0x39cd, 0x368f, 0x3903, 0x2d54, 0x3a45, 0x3378, 0x3a00, 0x392f, 0x39f1, 0x38c5, 0x2b64, 0x390d, 0x3b77, 0x391d, 0x343c, 0x3627, 0x3826, 0x344a, 0x3a0a, 0x37cb, 0x3b06, 0x3b16, 0x3656, 0x3a47, +0x3be3, 0x35b8, 0x37af, 0x3765, 0x38e8, 0x3bf3, 0x344e, 0x39f7, 0x3320, 0x3590, 0x30b6, 0x395c, 0x3abf, 0x34fe, 0x359a, 0x3a55, 0x39fd, 0x3a41, 0x3a8c, 0x382b, 0x3741, 0x36bb, 0x387f, 0x358a, 0x36f9, 0x3bc8, 0x33f7, 0x34bd, 0x3460, 0x3aa3, 0x39dc, 0x31f7, 0x38e1, 0x3b21, 0x384d, 0x38bb, 0x38ce, 0x381d, 0x38d7, 0x349a, 0x2d43, 0x3251, 0x3917, 0x39aa, 0x3871, 0x3a59, 0x3a1c, 0x382c, 0x37c1, 0x3a9e, 0x2f8f, 0x32a5, 0x1583, 0x319d, 0x38ff, 0x393c, 0x38e8, 0x2da0, 0x396a, 0x3987, 0x3887, 0x339d, 0x360c, 0x37d5, 0x3ad6, 0x3986, 0x3559, 0x3a60, 0x392b, 0x2e25, 0x2878, 0x3184, 0x309b, 0x35c8, 0x38cf, 0x358b, 0x3804, 0x3943, 0x312d, 0x3a2a, 0x29ab, 0x3b0d, 0x3959, 0x33c5, 0x3bfe, 0x33f0, 0x3a98, 0x29f1, 0x39ee, 0x37da, 0x3a1c, 0x3896, 0x387b, 0x3a07, 0x2e45, 0x3932, +0x3556, 0x38f6, 0x3826, 0x3299, 0x2e6c, 0x3957, 0x3687, 0x35e5, 0x34ea, 0x34ab, 0x2b4e, 0x3a50, 0x365f, 0x39d6, 0x3968, 0x3ad5, 0x3966, 0x305e, 0x2ef6, 0x3471, 0x343d, 0x3bab, 0x2e4b, 0x3853, 0x3a96, 0x3be5, 0x2a10, 0x3790, 0x34c6, 0x3aa6, 0x3864, 0x3b07, 0x31b7, 0x3b38, 0x25f8, 0x2f15, 0x34dc, 0x3bbd, 0x379f, 0x363d, 0x3b1a, 0x3862, 0x37c5, 0x32a9, 0x3590, 0x3074, 0x31de, 0x30f6, 0x37ed, 0x3722, 0x34fd, 0x3a1f, 0x3580, 0x37c5, 0x3b84, 0x3be4, 0x357c, 0x36ed, 0x30d5, 0x38cd, 0x343e, 0x3831, 0x397f, 0x36db, 0x383a, 0x24e2, 0x3a9d, 0x39dd, 0x36f7, 0x360a, 0x2be4, 0x2dca, 0x321c, 0x361b, 0x378e, 0xe22, 0x2486, 0x3550, 0x3900, 0x34a9, 0x3b2f, 0x3829, 0x1f15, 0x3906, 0x3220, 0x25b1, 0x38b1, 0x398d, 0x382e, 0x298d, 0x39a5, 0x3bb2, 0x31fd, 0x3964, 0x36f6, 0x3835, +0x3907, 0x3b4f, 0x3b17, 0x390d, 0x2b5c, 0x3533, 0x3a28, 0x345e, 0x3954, 0x386e, 0x3b0f, 0x321c, 0x3bce, 0x326d, 0x3a39, 0x3a70, 0x38b1, 0x38c6, 0x3aa4, 0x3aa1, 0x38b6, 0x3a65, 0x3b54, 0x3230, 0x397a, 0x3b63, 0x3869, 0x3003, 0x368e, 0x3a48, 0x3a19, 0x38be, 0x3bb0, 0x2e6e, 0x3ad2, 0x2a53, 0x35d9, 0x39d2, 0x2dd0, 0x32b2, 0x3180, 0x229f, 0x3bcc, 0x38d6, 0x3b74, 0x3bd1, 0x37f7, 0x380d, 0x3928, 0x3b54, 0x35ff, 0x3457, 0x3470, 0x3155, 0x3a41, 0x342c, 0x3af8, 0x2de0, 0x3608, 0x36ab, 0x3bdd, 0x35e3, 0x2aa9, 0x37d0, 0x3a4c, 0x35dc, 0x2e36, 0x37a3, 0x39b3, 0x2e4b, 0x3b11, 0x323a, 0x38de, 0x3ba3, 0x38ff, 0x3823, 0x310d, 0x3b05, 0x39f8, 0x3abf, 0x3bcf, 0x36c4, 0x3ae2, 0x36cd, 0x3a8f, 0x3a91, 0x368f, 0x37aa, 0x3969, 0x39aa, 0x3bff, 0x3422, 0x37c5, 0x35f0, 0x3b46, 0x3a21, +0x384a, 0x3984, 0x3349, 0x2014, 0x38ea, 0x28c4, 0x3520, 0x3a22, 0x3bec, 0x32e8, 0x275e, 0x3b5a, 0x3a2d, 0x3a3f, 0x3690, 0x321c, 0x3b62, 0x392f, 0x3a2c, 0x36b7, 0x38a2, 0x3205, 0x3520, 0x3b6f, 0x3378, 0x3911, 0x3833, 0x3991, 0x380b, 0x3a4a, 0x38a6, 0x3865, 0x3aa6, 0x38e7, 0x397a, 0x38fa, 0x3b10, 0x3440, 0x39a2, 0x3566, 0x365d, 0x307a, 0x2d18, 0x3978, 0x389c, 0x39f5, 0x38df, 0x29c3, 0x3a62, 0x3b75, 0x39b5, 0x2015, 0x307b, 0x39e1, 0x288f, 0x3936, 0x31ee, 0x3be2, 0x35e1, 0x391f, 0x345d, 0x39ff, 0x390c, 0x32cb, 0x38ce, 0x3441, 0x3a3a, 0x3713, 0x2fce, 0x321b, 0x2deb, 0x34e3, 0x3ade, 0x2a6e, 0x3bff, 0x3882, 0x3bec, 0x3ad9, 0x3abc, 0x3bb4, 0x36d8, 0x3617, 0x3015, 0x3a62, 0x3115, 0x384d, 0x3a19, 0x35cf, 0x3468, 0x300f, 0x371e, 0x34ba, 0x378b, 0x37fb, 0x3af8, 0x2fad, +0x2bed, 0x3854, 0x38ab, 0x3879, 0x2ff5, 0x3808, 0x38d5, 0x3ba2, 0x390c, 0x3ba1, 0x3343, 0x373d, 0x34b8, 0x37b5, 0x3653, 0x2db9, 0x3433, 0x318b, 0x39c9, 0x333d, 0x2ca0, 0x3b89, 0x3002, 0x34f2, 0x3969, 0x3a48, 0x1df8, 0x2421, 0x3b9d, 0x3b5a, 0x398a, 0x394b, 0x2fea, 0x296d, 0x3b39, 0x3696, 0x3b4d, 0x340d, 0x3b7e, 0x39ba, 0x2f44, 0x37af, 0x38e4, 0x3a86, 0x3b2d, 0x3954, 0x2bed, 0x3506, 0x2501, 0x3bc9, 0x3a58, 0x3abb, 0x384d, 0x33d6, 0x34d0, 0x3468, 0x3bbf, 0x3a17, 0x3534, 0x3b31, 0x3a7a, 0x3644, 0x36e3, 0x3a50, 0x2284, 0x3b1e, 0x37ed, 0x3ba9, 0x3919, 0x39d3, 0x3235, 0x3bc0, 0x3938, 0x32ea, 0x32fc, 0x3bc0, 0x3a91, 0x3af2, 0x3410, 0x38b5, 0x2ca8, 0x3097, 0x2b7c, 0x3528, 0x3b69, 0x3602, 0x3637, 0x383d, 0x34a3, 0x3ac4, 0x2c6b, 0x302e, 0x3b38, 0x34a3, 0x3519, 0x3674, +0x2f15, 0x2cb7, 0x3a46, 0x3663, 0x3b63, 0x38b4, 0x3b34, 0x3ba3, 0x2d14, 0x3422, 0x3701, 0x38e1, 0x39fe, 0x3112, 0x38dd, 0x357c, 0x2e9f, 0x35d1, 0x36ec, 0x306e, 0x38ea, 0x36c8, 0x34c7, 0x38e4, 0x3aee, 0x3ab5, 0x355e, 0x395c, 0x242b, 0x3197, 0x3832, 0x3987, 0x3682, 0x38f9, 0x3aaa, 0x209e, 0x35d4, 0x36a0, 0x3779, 0x39ff, 0x33e5, 0x3138, 0x35a6, 0x362f, 0x3b4e, 0x3417, 0x27c8, 0x39db, 0x3004, 0x3b6b, 0x30bd, 0x31e3, 0x3988, 0x32f4, 0x3ac7, 0x305a, 0x248b, 0x2dae, 0x21bf, 0x34c6, 0x2993, 0x3b6b, 0x3530, 0x3acc, 0x3563, 0x2e8c, 0x3492, 0x3954, 0x388b, 0x3b35, 0x3880, 0x38c4, 0x34c6, 0x3bb8, 0x360d, 0x28f6, 0x390a, 0x39e5, 0x2f09, 0x38e5, 0x34ca, 0x3634, 0x38b2, 0x39b7, 0x2d73, 0x396d, 0x3490, 0x39fd, 0x38dd, 0x39b9, 0x3adb, 0x326e, 0x3afc, 0x3bf5, 0x3bfc, 0x2b6a, +0x3440, 0x36eb, 0x32c4, 0x3be7, 0x3215, 0x3a10, 0x2dd5, 0x3999, 0x3bcd, 0x39a9, 0x351a, 0x36ad, 0x3732, 0x28a4, 0x205e, 0x30a4, 0x3a0b, 0x399e, 0x356a, 0x2c98, 0x3912, 0x3471, 0x3b45, 0x38df, 0x3b91, 0x303f, 0x3bf6, 0x374a, 0x3813, 0x3739, 0x30a9, 0x3155, 0x385b, 0x3952, 0x3229, 0x3639, 0x39c8, 0x3827, 0x333c, 0x3978, 0x38be, 0x3a90, 0x35b5, 0x3655, 0x33be, 0x39df, 0x3b24, 0x392a, 0x2bda, 0x3895, 0x3ac0, 0x352c, 0x2c77, 0x3893, 0x3ac3, 0x3305, 0x3699, 0x2a79, 0x3bf9, 0x3821, 0x39fa, 0x38b3, 0x3428, 0x3564, 0x3073, 0x37ba, 0x2877, 0x3b5f, 0x2c54, 0x35da, 0x3a33, 0x37d7, 0x396b, 0x3408, 0x36a3, 0x2d1b, 0x3860, 0x3bf5, 0x36cc, 0x3b43, 0x3846, 0x34ce, 0x3b1d, 0x34ca, 0x351d, 0x323d, 0x37ce, 0x3ac1, 0x35e5, 0x3b80, 0x3b7e, 0x3a78, 0x38e5, 0x3106, 0x3892, 0x35a5, +0x38f9, 0x3ac7, 0x3886, 0x3a8d, 0x3a5c, 0x39f0, 0x2c1e, 0x3ad7, 0x37bf, 0x366d, 0x3715, 0x290c, 0x320b, 0x3639, 0x3442, 0x33eb, 0x3602, 0x2b7b, 0x344e, 0x3906, 0x3780, 0x372b, 0x39f5, 0x39d7, 0x3742, 0x35d3, 0x3672, 0x2d25, 0x397c, 0x3953, 0x3970, 0x37d2, 0x38f2, 0x3790, 0x30c7, 0x3417, 0x31e2, 0x3b53, 0x3587, 0x3ad8, 0x3875, 0x3908, 0x2c27, 0x33b7, 0x3ad5, 0x3641, 0x3bcb, 0x3b70, 0x3b87, 0x346d, 0x397f, 0x25be, 0x3137, 0x3946, 0x36c4, 0x3b67, 0x3a20, 0x36e7, 0x31b1, 0x3948, 0x3bf5, 0x2b26, 0x34fe, 0x3522, 0x30e8, 0x2630, 0x37ff, 0x368f, 0x389e, 0x2d92, 0x37b4, 0x39b1, 0x3532, 0x39cf, 0x39ae, 0x3a2f, 0x3862, 0x3656, 0x39cb, 0x3a84, 0x37e3, 0x3b06, 0x3901, 0x2ccb, 0x2b4e, 0x348b, 0x3abf, 0x3a1f, 0x2e1e, 0x2d75, 0x39e5, 0x3143, 0x39ff, 0x38c2, 0x3ba0, 0x3a64, +0x3969, 0x2ffd, 0x39fd, 0x399d, 0x3863, 0x3896, 0x3ab1, 0x3815, 0x3bd8, 0x34fb, 0x3419, 0x3bf7, 0x38cc, 0x3659, 0x2bbc, 0x3bb0, 0x3abb, 0x3554, 0x394a, 0x3ad8, 0x2ea5, 0x3bf6, 0x37bb, 0x2363, 0x3aef, 0x36dc, 0x2dfb, 0x3721, 0x3558, 0x390c, 0x36df, 0x2ff3, 0x3b70, 0x266e, 0x3b66, 0x3957, 0x2884, 0x34e4, 0x3589, 0x3864, 0x3a4b, 0x30d7, 0x3611, 0x34ec, 0x36d2, 0x37f9, 0x3abe, 0x2be6, 0x39ed, 0x336a, 0x3aba, 0x396c, 0x3838, 0x23cb, 0x3bbb, 0x3944, 0x2f70, 0x2d41, 0x3b28, 0x3b81, 0x305c, 0x3a88, 0x38a6, 0x3829, 0x33c9, 0x34e0, 0x3a41, 0x346a, 0x3b1b, 0x378f, 0x3a1a, 0x395f, 0x3ba3, 0x3072, 0x3918, 0x302d, 0x3949, 0x3a56, 0x37ac, 0x3807, 0x3b7f, 0x3461, 0x3a65, 0x349a, 0x3b40, 0x2c4d, 0x39d3, 0x3b6e, 0x2f82, 0x3797, 0x3bdb, 0x3b73, 0x30ee, 0x3b5a, 0x2fa1, 0x3be4, +0x3b02, 0x38ec, 0x3b86, 0x3569, 0x3bef, 0x3029, 0x3368, 0x3ad9, 0x2e8e, 0x3bd8, 0x34cb, 0x2db1, 0x3aa2, 0x38da, 0x2ca5, 0x3ad4, 0x3842, 0x3a34, 0x3777, 0x3a3d, 0x3b37, 0x3bc7, 0x32ef, 0x3bd1, 0x3bd9, 0x34b4, 0x301f, 0x38af, 0x235f, 0x3595, 0x3a7d, 0x3a9a, 0x3b4b, 0x2801, 0x318e, 0x2ce5, 0x39ab, 0x39d5, 0x3986, 0x3823, 0x2b17, 0x395e, 0x35e3, 0x3740, 0x39e9, 0x3882, 0x384c, 0x36b7, 0x3426, 0x396b, 0x3b1d, 0x2c8e, 0x3bb6, 0x30a8, 0x37b3, 0x35f6, 0x3a37, 0x367f, 0x3877, 0x342f, 0x3939, 0x317c, 0x38b9, 0x3b47, 0x3437, 0x3533, 0x3ba2, 0x3b25, 0x3b39, 0x36d3, 0x34b1, 0x39b0, 0x30f6, 0x349a, 0x1e90, 0x3a7f, 0x3559, 0x37ed, 0x3aa9, 0x360f, 0x3445, 0x3256, 0x3925, 0x3974, 0x3897, 0x3ab0, 0x3410, 0x36d2, 0x367d, 0x2f29, 0x3917, 0x34d4, 0x3996, 0x3450, 0x3486, 0x3b67, +0x2c33, 0x3407, 0x3708, 0x321b, 0x39aa, 0x388f, 0x3427, 0x39c1, 0x3990, 0x3a24, 0x3970, 0x3bb4, 0x34be, 0x366e, 0x3bfc, 0x3748, 0x3bcc, 0x2d09, 0x394d, 0x398c, 0x3b19, 0x3855, 0x3954, 0x3268, 0x32ae, 0x3a02, 0x39e1, 0x3122, 0x3a60, 0x3b17, 0x3be2, 0x3b90, 0x36a0, 0x3962, 0x3b1d, 0x3871, 0x3368, 0x3114, 0x355d, 0x39ea, 0x3a34, 0x35dd, 0x3976, 0x3b29, 0x239b, 0x3576, 0x2bf6, 0x35f5, 0x314f, 0x3af9, 0x3535, 0x3a04, 0x3b55, 0x3a1c, 0x1f50, 0x348a, 0x3ab2, 0x39d1, 0x3bad, 0x255b, 0x344f, 0x24a5, 0x29c8, 0x38aa, 0x3a5f, 0x34b3, 0x395e, 0x35b9, 0x3a6b, 0x3ad1, 0x357f, 0x38c1, 0x37c8, 0x3b16, 0x31cb, 0x3464, 0x3a8b, 0x39ce, 0x3592, 0x3a6c, 0x39a6, 0x303b, 0x34eb, 0x3019, 0x3a0a, 0x3996, 0x3a65, 0x3bb8, 0x3804, 0x2a64, 0x3481, 0x3452, 0x39e7, 0x3be7, 0x34e4, 0x39ae, +0x3a52, 0x3a35, 0x3365, 0x35c6, 0x1e02, 0x2e5d, 0x399f, 0x375a, 0x3b3f, 0x3a1d, 0x34a7, 0x37fd, 0x34f5, 0x3a0f, 0x2909, 0x2ece, 0x350b, 0x38e1, 0x3a4e, 0x2c7f, 0x384d, 0x3aab, 0x2fc3, 0x3852, 0x3473, 0x3936, 0x359c, 0x3750, 0x3602, 0x36c7, 0x3815, 0x3790, 0x3980, 0x3544, 0x39b9, 0x3bcd, 0x3c00, 0x3560, 0x3aaa, 0x3b5a, 0x3301, 0x2c5a, 0x3a33, 0x2ccf, 0x3a7e, 0x364c, 0x393c, 0x34a1, 0x2da5, 0x372d, 0x350b, 0x3977, 0x37f4, 0x37d6, 0x3536, 0x3861, 0x360a, 0x3abb, 0x3871, 0x389e, 0x383e, 0x3b3e, 0x2744, 0x33d3, 0x3b94, 0x3028, 0x3bb7, 0x3736, 0x2da7, 0x2b10, 0x3a43, 0x345c, 0x38ac, 0x3574, 0x3689, 0x350d, 0x3bb1, 0x3acc, 0x38eb, 0x345f, 0x39f8, 0x325c, 0x36d3, 0x30a4, 0x3b49, 0x2b46, 0x3692, 0x3a37, 0x3788, 0x358d, 0x391b, 0x3872, 0x3632, 0x3ae4, 0x3b05, 0x35e4, +0x39ac, 0x34fc, 0x37e4, 0x3b1b, 0x380e, 0x2d0a, 0x38e3, 0x394b, 0x2c45, 0x3bcf, 0x3b0f, 0x38a0, 0x3456, 0x3668, 0x38ce, 0x3992, 0x38c0, 0x35fa, 0x320a, 0x38d9, 0x3bb9, 0x3334, 0x396b, 0x398f, 0x3854, 0x3bbf, 0x34c2, 0x2ae6, 0x3808, 0x3625, 0x29bb, 0x3aec, 0x246c, 0x3573, 0x3ae7, 0x3879, 0x3bdf, 0x2c64, 0x33f4, 0x3a63, 0x39c0, 0x3a35, 0x38f8, 0x38c6, 0x3b30, 0x3a3b, 0x2ec2, 0x32da, 0x316d, 0x2136, 0x3be5, 0x332b, 0x36c6, 0x38db, 0x3058, 0x2d9e, 0x37f9, 0x3733, 0x3ba2, 0x1d40, 0x339d, 0x2d02, 0x39e3, 0x3952, 0x380f, 0x3a19, 0x3795, 0x3799, 0x3547, 0x3b2a, 0x37c2, 0x3958, 0x39d1, 0x3303, 0x3612, 0x3aa8, 0x3ac2, 0x38f3, 0x2d4a, 0x37e8, 0x37e4, 0x39c1, 0x3bab, 0x36da, 0x3809, 0x2fe2, 0x3bd9, 0x3328, 0x397b, 0x3456, 0x324e, 0x34c7, 0x37d2, 0x3017, 0x3a40, 0x2c48, +0x39cc, 0x2c1f, 0x3a56, 0x3a9b, 0x3987, 0x2d9c, 0x38db, 0x39c4, 0x3a54, 0x373c, 0x367c, 0x3b9d, 0x38af, 0x3649, 0x38bc, 0x382e, 0x2f5f, 0x34b9, 0x2d83, 0x3720, 0x3b84, 0x39f7, 0x38b1, 0x3600, 0x3ba5, 0x3880, 0x39d6, 0x33af, 0x3bcd, 0x3bc0, 0x38aa, 0x277a, 0x3548, 0x2f9b, 0x3521, 0x3a8d, 0x3622, 0x2fd5, 0x35ca, 0x3405, 0x3399, 0x3428, 0x3ac0, 0x34e7, 0x3866, 0x3454, 0x3631, 0x2247, 0x34a1, 0x398b, 0x388d, 0x39cb, 0x3461, 0x3937, 0x351e, 0x3b71, 0x36a4, 0x3a61, 0x3ac2, 0x3b05, 0x39b4, 0x3b1c, 0x3bdf, 0x3835, 0x3398, 0x3931, 0x38c3, 0x3922, 0x292f, 0x39a7, 0x3688, 0x3817, 0x32d1, 0x37e9, 0x382b, 0x355c, 0x39a1, 0x38cc, 0x36ee, 0x35c6, 0x395f, 0x2c4a, 0x39db, 0x29f5, 0x3886, 0x3b23, 0x38db, 0x3bc0, 0x345a, 0x39da, 0x3ac1, 0x3b5f, 0x3ae9, 0x368f, 0x397e, 0x3b89, +0x3805, 0x3adf, 0x3610, 0x3a37, 0x3947, 0x3618, 0x31d9, 0x3b3a, 0x3a13, 0x376f, 0x3141, 0x3b63, 0x39ce, 0x3ad7, 0x28dc, 0x340b, 0x30e4, 0x35e0, 0x354f, 0x387c, 0x37fa, 0x3455, 0x38b9, 0x3726, 0x2d54, 0x3338, 0x343a, 0x3a7c, 0x24e3, 0x3892, 0x3a8e, 0x3a8f, 0x37a8, 0x39e6, 0x398a, 0x3b42, 0x3360, 0x3a57, 0x38e5, 0x3afb, 0x3719, 0x36cf, 0x387c, 0x3a4e, 0x2edd, 0x3a36, 0x25b5, 0x3135, 0x346b, 0x3b0e, 0x2f3a, 0x2ee6, 0x384b, 0x3aab, 0x3b0b, 0x34e7, 0x30ea, 0x34e8, 0x38ef, 0x3899, 0x387a, 0x3786, 0x2456, 0x2ccb, 0x3af0, 0x3699, 0x35d2, 0x379d, 0x39bd, 0x36f8, 0x27a8, 0x397a, 0x2511, 0x35a2, 0x3a21, 0x3848, 0x27c8, 0x20df, 0x3a83, 0x3bb3, 0x2044, 0x38ec, 0x3095, 0x39cf, 0x2f28, 0x3bd6, 0x3939, 0x360c, 0x2d7b, 0x389c, 0x3585, 0x3bcc, 0x11d9, 0x3a41, 0x3591, 0x3813, +0x38ae, 0x3998, 0x3a8d, 0x31c7, 0x3af7, 0x3392, 0x3586, 0x3881, 0x3a64, 0x3b82, 0x3a29, 0x3497, 0x3b46, 0x3083, 0x3523, 0x3685, 0x3bb9, 0x3575, 0x317b, 0x38da, 0x3b2a, 0x38cc, 0x3764, 0x3103, 0x396e, 0x3bad, 0x35e5, 0x3a46, 0x3b72, 0x37d0, 0x3359, 0x3b8e, 0x3845, 0x2fc1, 0x2b03, 0x3837, 0x3186, 0x366f, 0x185a, 0x2ceb, 0x36be, 0x390a, 0x3513, 0x31d2, 0x357a, 0x3769, 0x392e, 0x39cb, 0x31a1, 0x3197, 0x3283, 0x39f2, 0x37d5, 0x2d92, 0x3599, 0x31f7, 0x30d1, 0x3b0b, 0x39b9, 0x3434, 0x324f, 0x3627, 0x321a, 0x30b3, 0x39f5, 0x387d, 0x32e6, 0x3a6c, 0x3597, 0x34ad, 0x2fd5, 0x3a5e, 0x2cbd, 0x34c2, 0x3a9c, 0x369e, 0x3192, 0x321c, 0x2600, 0x37af, 0x3841, 0x3a09, 0x3348, 0x309c, 0x3396, 0x1439, 0x34de, 0x3978, 0x3938, 0x3600, 0x28e3, 0x2d7e, 0x3296, 0x36ac, 0x35d4, 0x265a, +0x318c, 0x383d, 0x3955, 0x3473, 0x3ad5, 0x3949, 0x3923, 0x2f75, 0x31e1, 0x36ba, 0x3b86, 0x393c, 0x3563, 0x38a8, 0x37ee, 0x378a, 0x38d6, 0x38e6, 0x3922, 0x2c66, 0x33fc, 0x3875, 0x388d, 0x3b8b, 0x295c, 0x3ac3, 0x3432, 0x2d94, 0x37f3, 0x2a0b, 0x38c1, 0x3bbb, 0x3735, 0x3b36, 0x3a8b, 0x3291, 0x3908, 0x39d7, 0x375a, 0x2f3a, 0x330d, 0x398d, 0x3890, 0x3bf0, 0x38ba, 0x3ac0, 0x21f8, 0x3b00, 0x396c, 0x34d9, 0x3409, 0x3463, 0x3187, 0x3522, 0x2bb8, 0x358a, 0x30e2, 0x33bd, 0x38db, 0x36f9, 0x2f32, 0x3a39, 0x3884, 0x3be5, 0x3879, 0x3126, 0x3878, 0x3775, 0x397e, 0x3a5f, 0x3974, 0x3a58, 0x3ada, 0x3b0a, 0x3917, 0x3b63, 0x3176, 0x384b, 0x3a52, 0x3b01, 0x3ace, 0x3b86, 0x336a, 0x3647, 0x3877, 0x37b3, 0x2a41, 0x2db4, 0x189d, 0x39e4, 0x3470, 0x2d16, 0x2c98, 0x3a47, 0x3495, 0x38fd, +0x3bae, 0x322f, 0x39ff, 0x3075, 0x20be, 0x3583, 0x3b80, 0x39b5, 0x34a9, 0x3a4b, 0x362a, 0x3a70, 0x3964, 0x3925, 0x37ec, 0x3b19, 0x30e9, 0x38a7, 0x3688, 0x386d, 0x3a48, 0x2faa, 0x3b5f, 0x3693, 0x367a, 0x374c, 0x3b97, 0x3beb, 0x36ce, 0x37fc, 0x38fe, 0x39c9, 0x38d5, 0x25d5, 0x36e3, 0x3a77, 0x3987, 0x3bad, 0x3a48, 0x3871, 0x318d, 0x371f, 0x3614, 0x3a6e, 0x3662, 0x3bae, 0x3a41, 0x2973, 0x3aa6, 0x29d1, 0x3910, 0x3bca, 0x34d4, 0x24ea, 0x3611, 0x37c5, 0x32cc, 0x3a93, 0x3a4c, 0x3b10, 0x3790, 0x3181, 0x346f, 0x39b8, 0x3720, 0x3a7e, 0x39c7, 0x2d80, 0x324f, 0x3bf8, 0x373f, 0x3039, 0x3872, 0x2ad3, 0x2b33, 0x3803, 0x39d1, 0x38c2, 0x2ce6, 0x3943, 0x375f, 0x37ca, 0x37a5, 0x3a00, 0x20f2, 0x3449, 0x2fc9, 0x39bb, 0x3775, 0x364c, 0x3926, 0x39ae, 0x3b18, 0x38ad, 0x3803, 0x3032, +0x2d61, 0x322b, 0x383d, 0x3a27, 0x3437, 0x290e, 0x3314, 0x3222, 0x3862, 0x3712, 0x310c, 0x3984, 0x3b97, 0x35b6, 0x39dd, 0x305e, 0x3986, 0x3a78, 0x2e12, 0x3091, 0x3ae9, 0x3b2a, 0x3887, 0x3a31, 0x2fd3, 0x381c, 0x3082, 0x3934, 0x37a5, 0x3b6a, 0x35a3, 0x320e, 0x39f1, 0x2ad6, 0x3295, 0x388a, 0x3baa, 0x372c, 0x3345, 0x3985, 0x3b40, 0x2caa, 0x3264, 0x30ad, 0x3965, 0x3bcd, 0x3830, 0x3921, 0x3ae3, 0x3bdd, 0x3b55, 0x3804, 0x38c9, 0x3430, 0x3995, 0x3b93, 0x37b7, 0x398e, 0x348e, 0x3a2b, 0x3ad6, 0x336c, 0x35c2, 0x3a01, 0x3284, 0x3a0f, 0x306c, 0x37e3, 0x3836, 0x3aea, 0x3490, 0x30bd, 0x3bb3, 0x3495, 0x3b7a, 0x3908, 0x3905, 0x34ff, 0x3a18, 0x2c6d, 0x31f6, 0x393b, 0x2b1c, 0x3b05, 0x3367, 0x383c, 0x3a5c, 0x34d2, 0x37dd, 0x364e, 0x38a6, 0x30ac, 0x36ab, 0x3272, 0x3a96, 0x34e8, +0x3705, 0x2f61, 0x3879, 0x3ae0, 0x2bec, 0x3a46, 0x39fc, 0x3b64, 0x3964, 0x390a, 0x3827, 0x30c6, 0x38c4, 0x3897, 0x3855, 0x38cf, 0x3074, 0x39fe, 0x3513, 0x38b8, 0x3a90, 0x3506, 0x3a0b, 0x39bf, 0x3ba3, 0x35b1, 0x3942, 0x30dc, 0x3a64, 0x3624, 0x39bd, 0x3725, 0x1c9a, 0x34cb, 0x335a, 0x3b3b, 0x3329, 0x2bda, 0x3368, 0x3b70, 0x3096, 0x3754, 0x2fd4, 0x35de, 0x2d13, 0x3618, 0x3025, 0x3684, 0x35b2, 0x3732, 0x384a, 0x2dbe, 0x317b, 0x3a1e, 0x388c, 0x3729, 0x393b, 0x377d, 0x3be1, 0x3a7b, 0x2776, 0x38c5, 0x3afb, 0x3334, 0x33d8, 0x3b7e, 0x369a, 0x39be, 0x3aa4, 0x3afb, 0x3a6c, 0x38c3, 0x3a6a, 0x3911, 0x2a60, 0x3543, 0x3249, 0x3592, 0x2bd4, 0x3a76, 0x3ab9, 0x38a3, 0x399a, 0x3b60, 0x3a47, 0x31ec, 0x385b, 0x3677, 0x3909, 0x3915, 0x30fb, 0x3ae8, 0x3a23, 0x38e7, 0x2364, 0x38f0, +0x3bb5, 0x31e2, 0x2bb9, 0x3443, 0x3631, 0x392e, 0x389f, 0x3447, 0x3ba3, 0x3a47, 0x3673, 0x3ab7, 0x3acf, 0x3871, 0x3770, 0x3865, 0x3139, 0x2830, 0x3b65, 0x38ab, 0x35d1, 0x38c0, 0x3684, 0x2fa5, 0x36ba, 0x38cb, 0x3a9d, 0x34b8, 0x3b1a, 0x3bcb, 0x3830, 0x3ab6, 0x2eec, 0x3832, 0x3b33, 0x3678, 0x38a2, 0x31ff, 0x3a7d, 0x3bd3, 0x34e8, 0x3819, 0x392f, 0x3704, 0x3b01, 0x25fd, 0x3729, 0x3557, 0x3bc3, 0x2e36, 0x3323, 0x3aed, 0x357a, 0x3b4b, 0x3412, 0x3637, 0x3b92, 0x3360, 0x39c2, 0x3776, 0x32a8, 0x3896, 0x2f5b, 0x328a, 0x31d9, 0x3bb4, 0x3ba2, 0x3a2c, 0x3a12, 0x305a, 0x31f9, 0x3523, 0x32b6, 0x3822, 0x2624, 0x3491, 0x3811, 0x3238, 0x3acb, 0x3a6f, 0x3662, 0x38b9, 0x3b68, 0x3a24, 0x35fb, 0x3be2, 0x37d9, 0x347b, 0x33b2, 0x3a36, 0x3816, 0x39cf, 0x377e, 0x2cee, 0x300a, 0x330d, +0x359c, 0x3826, 0x2baa, 0x3b80, 0x3b04, 0x380d, 0x3a4e, 0x2f7c, 0x3667, 0x3be5, 0x3b0a, 0x380a, 0x360d, 0x3be3, 0x3b83, 0x39c0, 0x391b, 0x285a, 0x3b4b, 0x38cb, 0x3a85, 0x3aeb, 0x3853, 0x355f, 0x3ab5, 0x33be, 0x38ff, 0x382f, 0x3be6, 0x3916, 0x36ff, 0x3a3e, 0x3b88, 0x3812, 0x3687, 0x2c26, 0x3921, 0x394b, 0x2e6f, 0x3aa9, 0x3b77, 0x3848, 0x3b3e, 0x38b4, 0x3811, 0x3659, 0x31d5, 0x3977, 0x3b06, 0x39b4, 0x34bf, 0x31cc, 0x3b30, 0x3a6e, 0x3712, 0x3b52, 0x3b7a, 0x37bd, 0x3484, 0x3bdd, 0x343d, 0x3bb5, 0x3952, 0x2f41, 0x3a12, 0x3b3e, 0x27fe, 0x39d2, 0x39f4, 0x2ca1, 0x3485, 0x36ba, 0x3156, 0x3905, 0x3ba8, 0x39cd, 0x3b64, 0x3ba5, 0x3c00, 0x3ae8, 0x3452, 0x3a39, 0x3861, 0x3b8e, 0x37b1, 0x3bcd, 0x350e, 0x379d, 0x3b83, 0x34cb, 0x3205, 0x39fc, 0x3669, 0x3508, 0x2a1c, 0x39f9, +0x3876, 0x3602, 0x2b8f, 0x36be, 0x3885, 0x2caa, 0x3532, 0x31a8, 0x3956, 0x3139, 0x3709, 0x2fce, 0x3987, 0x3ab4, 0x3406, 0x3727, 0x32dd, 0x3ac9, 0x356b, 0x30c9, 0x2cbb, 0x3552, 0x2c69, 0x39ce, 0x3ad5, 0x3753, 0x290e, 0x36c4, 0x3a7c, 0x3b32, 0x2e36, 0x37db, 0x38b0, 0x3912, 0x34f7, 0x228b, 0x391f, 0x2fbd, 0x3850, 0x3a5e, 0x3a5b, 0x3b82, 0x3a6e, 0x349c, 0x38ce, 0x3bcb, 0x3b4f, 0x31e8, 0x38bd, 0x34ad, 0x3451, 0x3318, 0x34d5, 0x388f, 0x39cf, 0x3844, 0x38d4, 0x3421, 0x38fa, 0x269e, 0x293c, 0x34f0, 0x3438, 0x372c, 0x34b0, 0x36d5, 0x2aa6, 0x3805, 0x3821, 0x31db, 0x39fc, 0x3aa9, 0x26e4, 0x34b9, 0x3215, 0x214a, 0x39e6, 0x3278, 0x39b1, 0x2e97, 0x34e4, 0x3ae7, 0x3bb6, 0x3b79, 0x388d, 0x3b2d, 0x3642, 0x32fe, 0x3b36, 0x39b3, 0x3957, 0x2d0f, 0x34e9, 0x3aef, 0x381d, 0x3b22, +0x2fcf, 0x38e8, 0x3648, 0x2d35, 0x3773, 0x3936, 0x38f7, 0x242a, 0x3bef, 0x3bfa, 0x389a, 0x34e9, 0x328b, 0x3392, 0x3753, 0x3a4c, 0x3ada, 0x2937, 0x38c5, 0x3a6a, 0x2fae, 0x2d27, 0x349e, 0x3be1, 0x34fe, 0x3604, 0x3a69, 0x3b92, 0x384b, 0x387b, 0x28ae, 0x347e, 0x3b9f, 0x3a73, 0x384d, 0x3a08, 0x3961, 0x35a6, 0x38fe, 0x36cc, 0x3962, 0x3456, 0x3ae6, 0x2782, 0x38f8, 0x3bc1, 0x3639, 0x301e, 0x38cf, 0x3873, 0x32d4, 0x3a2c, 0x3aba, 0x3a42, 0x204d, 0x37ae, 0x3adb, 0x3b1a, 0x29ed, 0x30ba, 0x381f, 0x36c0, 0x3602, 0x2dde, 0x3735, 0x3701, 0x3bae, 0x3645, 0x3412, 0x3601, 0x37d5, 0x3aee, 0x39b3, 0x3a06, 0x3ac6, 0x3822, 0x363e, 0x3af8, 0x32f9, 0x39c9, 0x2c2d, 0x3672, 0x29bf, 0x3a06, 0x3875, 0x3758, 0x35cc, 0x3b92, 0x3a44, 0x35ac, 0x3b23, 0x2c6f, 0x3aa4, 0x3676, 0x3be5, 0x3137, +0x38fb, 0x371e, 0x38ad, 0x39cf, 0x347c, 0x3a24, 0x3887, 0x3811, 0x396e, 0x39d1, 0x33cc, 0x3bb5, 0x34e3, 0x39dd, 0x35c5, 0x38be, 0x37cf, 0x372a, 0x3ada, 0x3acd, 0x332c, 0x38c5, 0x35fe, 0x2e0c, 0x388e, 0x3480, 0x3bac, 0x39ad, 0x3770, 0x3aec, 0x3ba5, 0x38eb, 0x3b10, 0x33fd, 0x26db, 0x319c, 0x3aa4, 0x3895, 0x379b, 0x349c, 0x3ab3, 0x3840, 0x3b70, 0x3b4e, 0x2e46, 0x3aff, 0x2f7f, 0x3732, 0x3991, 0x346c, 0x39ff, 0x2be5, 0x36cb, 0x3bb1, 0x35d4, 0x3883, 0x3ba4, 0x3362, 0x3866, 0x394c, 0x38c4, 0x3b6f, 0x378d, 0x2bdf, 0x3443, 0x3959, 0x30ae, 0x3a18, 0x2472, 0x2f6a, 0x3111, 0x3a6d, 0x394e, 0x35c4, 0x3834, 0x3bc5, 0x3afc, 0x3291, 0x34b3, 0x3863, 0x3778, 0x3a6c, 0x3903, 0x2d65, 0x372e, 0x2dfb, 0x32ff, 0x3586, 0x34d2, 0x2d32, 0x3a7f, 0x3002, 0x1d54, 0x34a5, 0x3b4b, 0x3455, +0x3975, 0x27ae, 0x37e0, 0x34c3, 0x31f6, 0x3896, 0x3993, 0x29df, 0x31c1, 0x2e25, 0x2cae, 0x3889, 0x3826, 0x33cd, 0x3bc4, 0x2400, 0x38a7, 0x313d, 0x3826, 0x3670, 0x3922, 0x25bf, 0x390e, 0x3b99, 0x358a, 0x344d, 0x3926, 0x3b4d, 0x239f, 0x3576, 0x3576, 0x356b, 0x3b40, 0x2ebc, 0x34ff, 0x2e6c, 0x3817, 0x35bf, 0x35fc, 0x285e, 0x3b5d, 0x3908, 0x3848, 0x3441, 0x321f, 0x28a5, 0x3a73, 0x342f, 0x37db, 0x39ff, 0x3ac1, 0x3409, 0x3808, 0x34aa, 0x3aee, 0x3590, 0x2ea7, 0x2db9, 0x3b2f, 0x3845, 0x3a0d, 0x34d7, 0x3902, 0x3b44, 0x37b4, 0x3737, 0x3174, 0x394a, 0x3769, 0x3b0a, 0x370f, 0x31a6, 0x3b3d, 0x3a37, 0x3bc7, 0x2d68, 0x363a, 0x31cc, 0x3289, 0x3983, 0x3825, 0x3bf4, 0x34b9, 0x37fe, 0x2de5, 0x3975, 0x3ac9, 0x3083, 0x2c4d, 0x37a2, 0x3544, 0x36ac, 0x387c, 0x30a6, 0x321c, 0x37cc, +0x3a9e, 0x3310, 0x3bf9, 0x36c9, 0x3845, 0x3877, 0x3b5c, 0x3b20, 0x392f, 0x398c, 0x3b42, 0x2c1e, 0x3229, 0x395f, 0x3749, 0x377f, 0x3390, 0x3a80, 0x35b4, 0x2ed5, 0x3795, 0x3067, 0x3998, 0x3a51, 0x3b44, 0x3a52, 0x397d, 0x37fc, 0x298f, 0x2d3d, 0x344b, 0x363e, 0x39bd, 0x3590, 0x3b40, 0x37f3, 0x2d81, 0x3295, 0x35ff, 0x3b02, 0x37f2, 0x37e0, 0x1de3, 0x375e, 0x2fd9, 0x3271, 0x3548, 0x363e, 0x39bb, 0x3817, 0x327a, 0x2bb1, 0x3bbf, 0x3bf3, 0x38e9, 0x39be, 0x392b, 0x2f02, 0x34c5, 0x39c3, 0x38ab, 0x393b, 0x1e1d, 0x3bc3, 0x3972, 0x3be2, 0x3391, 0x3a3f, 0x3b68, 0x33a1, 0x384a, 0x3503, 0x3353, 0x343d, 0x3ac3, 0x2e04, 0x2f98, 0x3020, 0x38f3, 0x3814, 0x3a21, 0x3b92, 0x3083, 0x35fe, 0x3993, 0x32cb, 0x3b67, 0x2f42, 0x3070, 0x32a5, 0x2d98, 0x3b98, 0x31b4, 0x306f, 0x2dc2, 0x3ad5, +0x38d9, 0x38e4, 0x31e3, 0x38d7, 0x3b05, 0x3645, 0x388a, 0x3964, 0x3ab3, 0x39d3, 0x35f4, 0x2777, 0x34e4, 0x3874, 0x3bf6, 0x3b51, 0x3b2e, 0x3887, 0x3bf3, 0x3b3a, 0x348d, 0x35f3, 0x3a72, 0x3bd9, 0x31ec, 0x2d30, 0x34e5, 0x36c2, 0x3907, 0x33da, 0x2e75, 0x2fa8, 0x2fbf, 0x342e, 0x385d, 0x3421, 0x3897, 0x3841, 0x195c, 0x322b, 0x315d, 0x3325, 0x306d, 0x394b, 0x2f4e, 0x3896, 0x3a65, 0x3bf9, 0x30dd, 0x3957, 0x39a5, 0x2f7f, 0x3a29, 0x38c9, 0x35d6, 0x3248, 0x371d, 0x3412, 0x3660, 0x3609, 0x3944, 0x3b17, 0x3af3, 0x3b89, 0x39da, 0x3764, 0x344d, 0x3462, 0x3907, 0x388a, 0x38f0, 0x2960, 0x393b, 0x32f0, 0x3956, 0x31d3, 0x3328, 0x33fd, 0x3256, 0x2913, 0x3665, 0x397f, 0x36ad, 0x31db, 0x3aa5, 0x39db, 0x329b, 0x38f0, 0x32a5, 0x3051, 0x3855, 0x3a9c, 0x3870, 0x3a27, 0x3b93, 0x3942, +0x34e3, 0x37d4, 0x36b0, 0x384f, 0x2eef, 0x2e05, 0x35bc, 0x3bee, 0x34c7, 0x374f, 0x3811, 0x39c4, 0x2de0, 0x3bda, 0x3700, 0x2dc6, 0x349f, 0x29cf, 0x3b8b, 0x39b9, 0x2e31, 0x39f9, 0x3815, 0x3076, 0x38cc, 0x39c1, 0x398c, 0x3a20, 0x3865, 0x34d3, 0x3ba8, 0x3b16, 0x2057, 0x248a, 0x3859, 0x2e3f, 0x30e1, 0x3842, 0x3627, 0x383d, 0x3bb8, 0x34c8, 0x3ad0, 0x3b23, 0x388b, 0x3014, 0x3235, 0x357c, 0x3ba7, 0x3977, 0x3a32, 0x3aba, 0x30f5, 0x31d2, 0x3857, 0x393a, 0x3894, 0x351a, 0x3805, 0x35ee, 0x3967, 0x3862, 0x2a1b, 0x3afc, 0x3a4a, 0x38a0, 0x2f0d, 0x38d3, 0x393c, 0x3a13, 0x3973, 0x3831, 0x3a43, 0x3865, 0x3b80, 0x395a, 0x3275, 0x3874, 0x3735, 0x399c, 0x395e, 0x3abb, 0x2fd8, 0x381a, 0x3834, 0x2ae7, 0x3b2f, 0x39f3, 0x38be, 0x3ade, 0x351f, 0x3900, 0x34e5, 0x389a, 0x31d6, 0x3be4, +0x394f, 0x3a3d, 0x3b26, 0x3a2f, 0x399e, 0x2e0a, 0x3bc9, 0x38d2, 0x3920, 0x343d, 0x3a0b, 0x2c78, 0x38aa, 0x3b54, 0x3639, 0x37b3, 0x377b, 0x3b67, 0x3836, 0x2d52, 0x3b65, 0x38fb, 0x3836, 0x32cf, 0x3a40, 0x367e, 0x3a47, 0x3b47, 0x2d4d, 0x36fc, 0x398a, 0x3b7c, 0x3290, 0x3b4f, 0x3bf6, 0x25de, 0x3937, 0x3798, 0x3b0f, 0x3a95, 0x3bbc, 0x3beb, 0x34cf, 0x269a, 0x3b63, 0x3543, 0x366f, 0x344f, 0x361b, 0x3518, 0x35fb, 0x39aa, 0x3922, 0x3969, 0x3024, 0x2965, 0x2f2d, 0x2e6c, 0x385e, 0x3ab9, 0x34af, 0x3aec, 0x3af1, 0x348b, 0x2f86, 0x3bda, 0x3888, 0x3909, 0x3ba0, 0x3743, 0x3b40, 0x3306, 0x3999, 0x36c0, 0x35f8, 0x3531, 0x3457, 0x397a, 0x3a86, 0x37b8, 0x3bf2, 0x3bb3, 0x378e, 0x3bc7, 0x38f8, 0x3515, 0x3be1, 0x26dd, 0x28e4, 0x3a19, 0x3a28, 0x289c, 0x38ed, 0x3a77, 0x32b0, 0x392e, +0x2fcb, 0x3b43, 0x357f, 0x3987, 0x3056, 0x39dc, 0x3bc7, 0x34c0, 0x3a41, 0x3b4a, 0x3317, 0x2230, 0x3b8c, 0x363d, 0x25bf, 0x3b25, 0x39e3, 0x39d5, 0x37bd, 0x3a52, 0x3a14, 0x1aec, 0x3756, 0x353a, 0x3826, 0x331e, 0x34f7, 0x3690, 0x3973, 0x3269, 0x2c1c, 0x1bea, 0x32da, 0x2d21, 0x346d, 0x351f, 0x2df0, 0x3be0, 0x3bee, 0x3bb2, 0x3b6f, 0x3596, 0x38a2, 0x3408, 0x2281, 0x3864, 0x3516, 0x3b24, 0x3a8d, 0x3a63, 0x3806, 0x36e1, 0x3b6b, 0x3656, 0x3b8f, 0x31d3, 0x3a70, 0x39f8, 0x3953, 0x31eb, 0x3a05, 0x3a58, 0x2f81, 0x395b, 0x3721, 0x3353, 0x35db, 0x2d72, 0x3786, 0x3ab5, 0x3b4b, 0x3bd0, 0x3607, 0x35b4, 0x3a79, 0x32e2, 0x3299, 0x36a2, 0x381c, 0x2fb4, 0x2b3f, 0x3a01, 0x390c, 0x29d1, 0x2b63, 0x3a4b, 0x3309, 0x34f5, 0x3b7b, 0x348d, 0x3a7e, 0x30ca, 0x3269, 0x363a, 0x35a4, 0x3735, +0x36c4, 0x396c, 0x377a, 0x2fac, 0x3bba, 0x3511, 0x38fd, 0x3be0, 0x392d, 0x3864, 0x3bef, 0x3ae7, 0x2cd2, 0x37e5, 0x31c9, 0x332d, 0x3be0, 0x326a, 0x309a, 0x387e, 0x39f2, 0x3302, 0x39ee, 0x3956, 0x3b30, 0x3829, 0x2894, 0x368f, 0x361d, 0x35cd, 0x3b8c, 0x3677, 0x3a95, 0x3a41, 0x382f, 0x3457, 0x3194, 0x31bc, 0x3abd, 0x392a, 0x387b, 0x3912, 0x388a, 0x3051, 0x3a9b, 0x2fc4, 0x3468, 0x33f7, 0x20fe, 0x3489, 0x1d98, 0x39f4, 0x2f82, 0x2c37, 0x391e, 0x37ef, 0x3bb0, 0x3538, 0x1e8b, 0x3985, 0x3805, 0x3823, 0x32eb, 0x36e7, 0x3569, 0x387d, 0x30f2, 0x38d2, 0x39b5, 0x3544, 0x3009, 0x377c, 0x3a65, 0x342a, 0x2cc6, 0x3983, 0x2720, 0x2760, 0x3443, 0x3856, 0x3949, 0x37b5, 0x3944, 0x33e1, 0x320c, 0x3a83, 0x39be, 0x36f2, 0x3bf3, 0x384d, 0x35dd, 0x3150, 0x36ee, 0x2f4b, 0x3bd4, 0x2816, +0x3bb4, 0x3590, 0x3bf3, 0x38dd, 0x3472, 0x37f9, 0x38ec, 0x25b3, 0x3aac, 0x394d, 0x2e48, 0x387c, 0x39ed, 0x350a, 0x36e1, 0x3ad8, 0x3580, 0x3a08, 0x38d7, 0x390f, 0x370e, 0x30ed, 0x2fb2, 0x37f2, 0x35a8, 0x38bb, 0x389a, 0x3960, 0x35e1, 0x35d1, 0x3799, 0x3356, 0x375c, 0x3889, 0x38e7, 0x385e, 0x30f1, 0x3032, 0x3006, 0x3356, 0x36b1, 0x3af5, 0x342c, 0x3a9f, 0x386d, 0x3a8d, 0x2670, 0x3ba5, 0x3907, 0x39cb, 0x389b, 0x2914, 0x2db1, 0x2f6f, 0x3aa3, 0x346a, 0x3716, 0x303d, 0x3991, 0x3a21, 0x3b53, 0x3589, 0x3a6b, 0x34f7, 0x2d99, 0x380b, 0x392f, 0x36d9, 0x2e31, 0x30a2, 0x3569, 0x2657, 0x36dd, 0x306d, 0x36b5, 0x3ac4, 0x3a7a, 0x36f7, 0x38d6, 0x3b02, 0x355e, 0x3a19, 0x3bc4, 0x365c, 0x3b77, 0x3660, 0x3bc9, 0x380a, 0x3673, 0x3a4a, 0x3b19, 0x3843, 0x328c, 0x1a13, 0x3bd6, 0x3be2, +0x388d, 0x30c3, 0x3998, 0x389e, 0x3354, 0x3174, 0x3922, 0x3970, 0x2962, 0x3bc2, 0x3b1e, 0x3bd7, 0x2d84, 0x3573, 0x3846, 0x3703, 0x31ec, 0x3a5a, 0x3459, 0x2674, 0x291f, 0x3b76, 0x364f, 0x316f, 0x3a52, 0x3866, 0x34de, 0x33fc, 0x37fc, 0x3a20, 0x3ac2, 0x3893, 0x3208, 0x38d0, 0x3b1c, 0x39cd, 0x36f6, 0x301f, 0x3965, 0x3971, 0x3afa, 0x34d9, 0x2e34, 0x35a3, 0x390d, 0x2e83, 0x3b5a, 0x3acb, 0x377e, 0x2416, 0x38b8, 0x3a2e, 0x3a04, 0x3062, 0x2ef1, 0x3584, 0x2afb, 0x382a, 0x3a74, 0x37da, 0x3730, 0x32a6, 0x3866, 0x389e, 0x3850, 0x3551, 0x3939, 0x3a0e, 0x2deb, 0x3b97, 0x38e9, 0x39b6, 0x35b5, 0x3999, 0x38fe, 0x1918, 0x326d, 0x3477, 0x34e5, 0x3855, 0x38f8, 0x3307, 0x385d, 0x3b17, 0x36d8, 0x3020, 0x3a66, 0x3bf9, 0x3b17, 0x28cf, 0x3abb, 0x38b3, 0x3bc0, 0x31e4, 0x30d8, 0x3090, +0x393f, 0x350a, 0x2171, 0x31dd, 0x3aa3, 0x3962, 0x2a30, 0x3a0c, 0x3983, 0x3474, 0x38a4, 0x30fc, 0x348a, 0x3afd, 0x3ab0, 0x2fca, 0x3bb3, 0x3be9, 0x3984, 0x3a8d, 0x3119, 0x3b78, 0x3bd6, 0x2ef6, 0x31ef, 0x27c9, 0x39be, 0x32fb, 0x2ce0, 0x368b, 0x3612, 0x32b6, 0x2d58, 0x3787, 0x3811, 0x3745, 0x3b86, 0x32f4, 0x3941, 0x3936, 0x2ab3, 0x39cd, 0x3851, 0x395d, 0x355e, 0x383e, 0x380a, 0x3b5d, 0x34d8, 0x3292, 0x3124, 0x31af, 0x3942, 0x2d54, 0x3b54, 0x3b1b, 0x3bbd, 0x3507, 0x324e, 0x3364, 0x2514, 0x3af6, 0x3236, 0x361c, 0x3721, 0x39b4, 0x3b86, 0x3907, 0x3316, 0x2c3b, 0x3bf4, 0x3abb, 0x38b8, 0x38e5, 0x38e4, 0x3941, 0x318e, 0x3563, 0x318a, 0x3953, 0x328a, 0x2ed0, 0x3782, 0x38b3, 0x3632, 0x35f0, 0x3a31, 0x3112, 0x3b49, 0x3b8e, 0x31f8, 0x3a70, 0x3bf1, 0x375e, 0x381c, 0x3791, +0x38f7, 0x2f6a, 0x3b74, 0x3198, 0x3815, 0x3184, 0x39cc, 0x37c1, 0x3b16, 0x39dd, 0x3690, 0x36ee, 0x3ba5, 0x383d, 0x3bee, 0x37f9, 0x3617, 0x399a, 0x3597, 0x3703, 0x3281, 0x3047, 0x35b6, 0x3835, 0x3708, 0x3634, 0x3965, 0x39b8, 0x3a00, 0x3996, 0x2bd0, 0x2ced, 0x36de, 0x35e6, 0x3b4d, 0x3888, 0x3bc5, 0x290f, 0x3baf, 0x388e, 0x3721, 0x3896, 0x3565, 0x33f9, 0x312b, 0x37c8, 0x3889, 0x376b, 0x3bb6, 0x375e, 0x35bf, 0x2f6b, 0x39f6, 0x34ba, 0x3936, 0x3969, 0x39de, 0x3ad4, 0x39eb, 0x3a5c, 0x33e3, 0x3367, 0x3297, 0x3bea, 0x3bcf, 0x3806, 0x39b7, 0x3b63, 0x37d2, 0x385b, 0x3a88, 0x3a6a, 0x3447, 0x385b, 0x3078, 0x347b, 0x3790, 0x32c5, 0x30f3, 0x33d2, 0x3864, 0x35a7, 0x359b, 0x32c2, 0x3bf7, 0x379d, 0x39ed, 0x3964, 0x367e, 0x2f3e, 0x3b0a, 0x3a32, 0x3b2b, 0x287e, 0x2ee6, 0x3ba2 +}; \ No newline at end of file diff --git a/redmule/inc/y_input.h b/redmule/inc/y_input.h new file mode 100644 index 0000000..19b8197 --- /dev/null +++ b/redmule/inc/y_input.h @@ -0,0 +1,99 @@ + /* Header file generated by RedMulE Golden Model */ +uint16_t y_inp [9216] = { +0x39fc, 0x3a87, 0x3a35, 0x2bf4, 0x34f8, 0x2c8c, 0x3822, 0x38a2, 0x3bf8, 0x3b3a, 0x37d8, 0x3041, 0x28b2, 0x38d2, 0x1822, 0x3044, 0x38dc, 0x308d, 0x3a14, 0x3952, 0x38be, 0x32ef, 0x351e, 0x38ab, 0x2eb4, 0x3689, 0x33ca, 0x3a1f, 0x3bbc, 0x37ed, 0x38d5, 0x35c8, 0x341b, 0x3b74, 0x3627, 0x3a34, 0x3220, 0x3b85, 0x3a43, 0x2eca, 0x3550, 0x3958, 0x3813, 0x2cca, 0x3869, 0x391e, 0x3260, 0x2e42, 0x3493, 0x39ed, 0x3b7b, 0x3699, 0x3863, 0x3a7e, 0x3ab4, 0x3bcb, 0x3920, 0x3502, 0x28df, 0x38c5, 0x35e5, 0x282d, 0x3645, 0x3a29, 0x2fbb, 0x338d, 0x3ba0, 0x320d, 0x2830, 0x3bb4, 0x390a, 0x367f, 0x3335, 0x3b1a, 0x38c0, 0x3781, 0x3773, 0x39b0, 0x3b74, 0x38ba, 0x3383, 0x3550, 0x357a, 0x3ba7, 0x30e6, 0x39f4, 0x3b11, 0x282b, 0x334f, 0x3644, 0x367c, 0x3ac3, 0x38f3, 0x39f9, 0x3b1d, 0x35cf, +0x3433, 0x2eea, 0x38c1, 0x362a, 0x35e6, 0x3070, 0x1c1d, 0x308e, 0x381d, 0x39e5, 0x3a51, 0x2fb2, 0x3723, 0x3b58, 0x293e, 0x337a, 0x3a39, 0x349c, 0x3766, 0x3a73, 0x39bd, 0x3a0c, 0x3843, 0x21b9, 0x39a5, 0x2fd6, 0x2cf4, 0x3112, 0x3a1a, 0x3bb6, 0x3a83, 0x398e, 0x3b92, 0x2a3f, 0x37f1, 0x3664, 0x35f0, 0x39be, 0x3279, 0x39e0, 0x3241, 0x3bc7, 0x3bae, 0x36bd, 0x1bf5, 0x3806, 0x37d3, 0x247c, 0x3789, 0x36b9, 0x3b84, 0x3093, 0x3a5d, 0x2863, 0x2fe0, 0x2c4b, 0x3bd5, 0x38b6, 0x3b0e, 0x3ad1, 0x3ba2, 0x3914, 0x3947, 0x3984, 0x397a, 0x35ed, 0x3891, 0x3b7f, 0x3b32, 0x3857, 0x3717, 0x2b73, 0x38c1, 0x3bc6, 0x3330, 0x35c8, 0x34ff, 0x3924, 0x387b, 0x3a27, 0x3b92, 0x22d9, 0x29be, 0x3b39, 0x361c, 0x34e6, 0x2b7e, 0x34d8, 0x38c2, 0x3a4c, 0x3a2f, 0x381f, 0x38f6, 0x3a9a, 0x394f, 0x382d, +0x3939, 0x397a, 0x3926, 0x3a59, 0x34e3, 0x3077, 0x3190, 0x3a6b, 0x2c3f, 0x3a51, 0x35d9, 0x3866, 0x2f73, 0x38f2, 0x3766, 0x3aa1, 0x3b55, 0x2f8f, 0x3993, 0x354a, 0x3650, 0x340d, 0x2f01, 0x3731, 0x394d, 0x3b15, 0x3806, 0x39b9, 0x3aa7, 0x387c, 0x3beb, 0x2e2f, 0x38e8, 0x353a, 0x36ba, 0x3b2e, 0x3b5c, 0x2d4b, 0x357e, 0x3bd8, 0x3be0, 0x38b0, 0x2a3b, 0x2ff0, 0x3268, 0x38f3, 0x31fc, 0x318c, 0x35b5, 0x3980, 0x3a4d, 0x33cc, 0x365b, 0x397e, 0x3809, 0x39af, 0x3537, 0x2ba6, 0x30f1, 0x38b2, 0x39fe, 0x39f3, 0x373b, 0x3bff, 0x36ce, 0x3b5d, 0x3b5a, 0x2f1d, 0x3be3, 0x395d, 0x34d0, 0x36a3, 0x3937, 0x33b3, 0x3b91, 0x3ab5, 0x3215, 0x396b, 0x3bed, 0x302d, 0x3862, 0x3b05, 0x2ba1, 0x2fa6, 0x35d2, 0x3806, 0x3b84, 0x3233, 0x2664, 0x3a63, 0x3bdb, 0x375f, 0x3b0b, 0x34ff, 0x3020, 0x375d, +0x3931, 0x2d6c, 0x31c3, 0x3a24, 0x34b8, 0x3865, 0x366e, 0x3aaf, 0x3530, 0x20d6, 0x35ac, 0x33e8, 0x3b37, 0x32d8, 0x333c, 0x3349, 0x30cd, 0x392f, 0x2c30, 0x3b0a, 0x390a, 0x3703, 0x3b5f, 0x39ac, 0x31ba, 0x32a4, 0x3b8f, 0x3a5e, 0x3ad1, 0x38bf, 0x38bb, 0x369f, 0x3b75, 0x32c6, 0x31d2, 0x280f, 0x3891, 0x3b09, 0x3531, 0x3899, 0x3a55, 0x37fe, 0x3b5e, 0x364a, 0x3ada, 0x386f, 0x38bb, 0x3a7b, 0x313f, 0x3592, 0x2ca6, 0x2eeb, 0x38b1, 0x35df, 0x326f, 0x3bf5, 0x3848, 0x2fbd, 0x3268, 0x3922, 0x376b, 0x3a5e, 0x3826, 0x3207, 0x33f3, 0x3302, 0x3a80, 0x3bf1, 0x35dd, 0x2a83, 0x3460, 0x3296, 0x3ada, 0x3484, 0x3989, 0x3680, 0x3969, 0x3ab4, 0x2fb1, 0x3b50, 0x38bd, 0x3ad1, 0x34ac, 0x3718, 0x2ed7, 0x3b53, 0x3114, 0x248a, 0x3960, 0x3ab6, 0x39ef, 0x21dd, 0x33b9, 0x3a05, 0x2fbe, 0x37a2, +0x3a70, 0x37f8, 0x37f1, 0x3591, 0x382f, 0x3276, 0x33ed, 0x3935, 0x275e, 0x353c, 0x3b24, 0x3b42, 0x38db, 0x33ca, 0x3bd7, 0x3694, 0x365f, 0x3997, 0x39b7, 0x3bcb, 0x3b6a, 0x269a, 0x3956, 0x3b4e, 0x3ba1, 0x3bee, 0x2aaf, 0x3530, 0x3ad7, 0x3bce, 0x3bd2, 0x397c, 0x3aee, 0x3b62, 0x3bfc, 0x3ba1, 0x3b44, 0x38e6, 0x3747, 0x3855, 0x3baf, 0x3b16, 0x3b35, 0x34e7, 0x3858, 0x3bdb, 0x39c3, 0x3898, 0x381e, 0x3899, 0x36be, 0x363c, 0x3a70, 0x1518, 0x334e, 0x38cd, 0x3a74, 0x3420, 0x35a7, 0x3a00, 0x3282, 0x32db, 0x3656, 0x2dd8, 0x2e5b, 0x399e, 0x3bd7, 0x3366, 0x34cd, 0x257c, 0x3a2e, 0x375b, 0x3971, 0x3472, 0x269f, 0x39ac, 0x39e6, 0x396b, 0x335b, 0x38cc, 0x3b3d, 0x38ee, 0x3895, 0x2e3b, 0x3ba0, 0x3bb7, 0x3401, 0x35df, 0x3b06, 0x3adf, 0x37af, 0x3948, 0x33a6, 0x3aa7, 0x36b2, 0x373c, +0x3872, 0x3674, 0x34d5, 0x3918, 0x37cd, 0x369a, 0x3a26, 0x3bc3, 0x380c, 0x35ba, 0x36eb, 0x3b54, 0x37a9, 0x3405, 0x397d, 0x351f, 0x2f10, 0x34fd, 0x333c, 0x36c9, 0x3584, 0x3998, 0x3b22, 0x3aff, 0x3931, 0x31b7, 0x39ae, 0x31e7, 0x3847, 0x392a, 0x3bff, 0x3a24, 0x15c5, 0x3905, 0x36e8, 0x3356, 0x2f46, 0x38a9, 0x3bd8, 0x3bfc, 0x2fbf, 0x3a7d, 0x3989, 0x3a6c, 0x3a8b, 0x32c9, 0x37da, 0x3b16, 0x394a, 0x3aa5, 0x2c30, 0x3968, 0x3119, 0x3af2, 0x2f8f, 0x34ef, 0x3ab3, 0x2445, 0x38d9, 0x3856, 0x3592, 0x389d, 0x2932, 0x31f8, 0x3775, 0x3947, 0x3893, 0x3b50, 0x3465, 0x355c, 0x3547, 0x3925, 0x32c2, 0x3a0e, 0x39f9, 0x39f0, 0x2a1c, 0x34a0, 0x3b51, 0x3bb8, 0x38af, 0x36c7, 0x361f, 0x397b, 0x3a7f, 0x39e2, 0x3a7e, 0x3a67, 0x304c, 0x34d8, 0x3921, 0x3287, 0x2d90, 0x3b36, 0x30cc, 0x1958, +0x36ea, 0x3419, 0x39f3, 0x3bf1, 0x3271, 0x3763, 0x3643, 0x337f, 0x3161, 0x3944, 0x33b1, 0x30c7, 0x3687, 0x342b, 0x2402, 0x394a, 0x3480, 0x3052, 0x2a6e, 0x376a, 0x3236, 0x381e, 0x3596, 0x3939, 0x373e, 0x34b4, 0x201a, 0x3245, 0x3169, 0x26c8, 0x3a1c, 0x389b, 0x3351, 0x3bac, 0x3261, 0x37ab, 0x39bb, 0x350f, 0x3b5d, 0x3b86, 0x34e8, 0x3104, 0x3969, 0x31f4, 0x399a, 0x370e, 0x34a3, 0x3064, 0x3519, 0x3542, 0x3a72, 0x3be0, 0x3ba2, 0x3a5b, 0x3455, 0x3ae5, 0x38ef, 0x358a, 0x3908, 0x38eb, 0x3572, 0x3b41, 0x39cb, 0x39f4, 0x3bb6, 0x2f51, 0x3345, 0x3475, 0x3b20, 0x3b7c, 0x385d, 0x36a4, 0x35b8, 0x3368, 0x3867, 0x37cb, 0x3b8c, 0x32e9, 0x366b, 0x3a3f, 0x3147, 0x3534, 0x25bc, 0x3828, 0x38f8, 0x27cd, 0x35c8, 0x2a95, 0x39cf, 0x328b, 0x3a6d, 0x34f4, 0x38ae, 0x2b5f, 0x3845, 0x3b30, +0x3719, 0x37fc, 0x3adc, 0x2273, 0x385f, 0x39d1, 0x2f2c, 0x2df2, 0x36a6, 0x3523, 0x234d, 0x3a3f, 0x2817, 0x355d, 0x399f, 0x3924, 0x3bd4, 0x35ca, 0x3319, 0x301a, 0x353f, 0x34d2, 0x3bfd, 0x373e, 0x3a2a, 0x320b, 0x2e90, 0x38e8, 0x2f48, 0x3873, 0x3b61, 0x39d5, 0x3af7, 0x3885, 0x3be2, 0x3963, 0x36cc, 0x331b, 0x31ad, 0x3668, 0x39a2, 0x36f9, 0x3b52, 0x3985, 0x395d, 0x2e15, 0x30c2, 0x37ed, 0x32d1, 0x3a04, 0x3bef, 0x2fd7, 0x301d, 0x3a39, 0x3999, 0x342d, 0x34e3, 0x3bde, 0x3825, 0x3ac0, 0x3495, 0x3505, 0x3820, 0x30df, 0x37fd, 0x386c, 0x37c5, 0x3bab, 0x3b3d, 0x37f1, 0x3b42, 0x3825, 0x3bb4, 0x38a0, 0x383b, 0x3a92, 0x3a5c, 0x24c7, 0x38c8, 0x3492, 0x30af, 0x3b63, 0x35bb, 0x3046, 0x3aec, 0x357f, 0x3bb6, 0x3886, 0x37c6, 0x3315, 0x39cd, 0x32ae, 0x3b6d, 0x2d8c, 0x3607, 0x3420, +0x385d, 0x3782, 0x38ad, 0x34af, 0x3aad, 0x3bf3, 0x34bc, 0x3bfc, 0x33f0, 0x34ab, 0x37b6, 0x308d, 0x3ac8, 0x3935, 0x3b3a, 0x3517, 0x2579, 0x3b26, 0x36f6, 0x381f, 0x3b3c, 0x3a9f, 0x3667, 0x1c3e, 0x3b29, 0x2344, 0x3010, 0x36f7, 0x3470, 0x3834, 0x33bc, 0x306f, 0x392b, 0x37bc, 0x357a, 0x38a5, 0x3a09, 0x38f3, 0x34c6, 0x304b, 0x3bb7, 0x36c3, 0x3435, 0x3984, 0x357c, 0x345b, 0x39b5, 0x3286, 0x3a6b, 0x2e0e, 0x3613, 0x33e9, 0x379f, 0x3a14, 0x3a3a, 0x2e0e, 0x38f6, 0x3589, 0x3807, 0x3a49, 0x3818, 0x39dd, 0x31b0, 0x3a67, 0x39de, 0x175e, 0x394b, 0x34de, 0x394a, 0x3853, 0x371b, 0x3b5d, 0x39bb, 0x3029, 0x3091, 0x37b8, 0x33f0, 0x3517, 0x391e, 0x35ce, 0x3bc7, 0x2c6e, 0x2d9c, 0x36c1, 0x3143, 0x35c5, 0x39c6, 0x3a05, 0x3b1f, 0x3941, 0x3adc, 0x393a, 0x3993, 0x3bac, 0x2781, 0x3912, +0x36b8, 0x3a59, 0x397c, 0x25c3, 0x3b19, 0x3304, 0x399d, 0x3bde, 0x2e7c, 0x341e, 0x3172, 0x3bfd, 0x3b45, 0x3186, 0x37fe, 0x3b92, 0x390e, 0x2d85, 0x34fa, 0x2c58, 0x3ac5, 0x398f, 0x386a, 0x3ae3, 0x2f53, 0x3b4d, 0x3602, 0x3042, 0x353d, 0x3811, 0x3928, 0x2414, 0x3bb8, 0x3841, 0x3990, 0x388a, 0x25d4, 0x3787, 0x39a9, 0x3963, 0x3554, 0x3b41, 0x3921, 0x2938, 0x39cc, 0x34d1, 0x38ec, 0x31ac, 0x3aed, 0x36ca, 0x3a41, 0x3754, 0x3ab4, 0x39ac, 0x387a, 0x3851, 0x3097, 0x3885, 0x2ef9, 0x2530, 0x3a9d, 0x39ec, 0x38ca, 0x3ad4, 0x39ea, 0x37ce, 0x3ac0, 0x2879, 0x3bda, 0x3af5, 0x2eaa, 0x35e9, 0x3a11, 0x3a48, 0x2782, 0x3a7f, 0x3662, 0x3a99, 0x2194, 0x3628, 0x3668, 0x36e5, 0x38ab, 0x3833, 0x30b4, 0x3237, 0x39df, 0x3a63, 0x370d, 0x2c4a, 0x3ae0, 0x3b29, 0x3bba, 0x3b64, 0x260a, 0x38f8, +0x2679, 0x3412, 0x395a, 0x3054, 0x3ac9, 0x3bb3, 0x31a7, 0x38f7, 0x1d33, 0x3aeb, 0x38f5, 0x3649, 0x3aab, 0x3894, 0x353b, 0x3bbf, 0x37e2, 0x3b2d, 0x3a05, 0x3b7f, 0x318f, 0x2487, 0x3a3b, 0x36e8, 0x35d0, 0x2e1b, 0x3a03, 0x3bb9, 0x2d71, 0x32e5, 0x31c0, 0x2a74, 0x3898, 0x3ae0, 0x381b, 0x308d, 0x3afa, 0x2e44, 0x3aa2, 0x39cb, 0x3a19, 0x321f, 0x3975, 0x3a94, 0x20b7, 0x3843, 0x3942, 0x38c2, 0x3587, 0x3ba0, 0x3b5b, 0x3981, 0x3ba0, 0x3988, 0x2fc0, 0x34d2, 0x30ad, 0x3102, 0x394d, 0x38ef, 0x353c, 0x39d3, 0x3b57, 0x36c4, 0x3619, 0x3a4d, 0x382f, 0x35e7, 0x26ce, 0x33c6, 0x25a6, 0x36b8, 0x3b5f, 0x3a6d, 0x34cb, 0x2bb8, 0x368b, 0x3368, 0x312a, 0x3869, 0x37a7, 0x3804, 0x34af, 0x39ff, 0x350d, 0x358e, 0x3a40, 0x349c, 0x3ac3, 0x39fa, 0x3153, 0x38da, 0x390b, 0x30ea, 0x3205, 0x3915, +0x3a69, 0x385c, 0x34dc, 0x2e57, 0x2dff, 0x2a23, 0x2f74, 0x2efc, 0x397f, 0x367e, 0x2932, 0x3565, 0x38f6, 0x3bae, 0x3abe, 0x34cf, 0x39f9, 0x3995, 0x3844, 0x3846, 0x3674, 0x39ab, 0x382b, 0x3aa9, 0x36eb, 0x3a6f, 0x37d9, 0x3804, 0x2c69, 0x3883, 0x367d, 0x3b09, 0x25e5, 0x34d7, 0x3848, 0x310c, 0x3bdf, 0x3890, 0x3623, 0x3951, 0x3a1e, 0x385c, 0x3a27, 0x2747, 0x37f7, 0x344d, 0x2903, 0x3b96, 0x396d, 0x3868, 0x3766, 0x3689, 0x3705, 0x2dc4, 0x39f1, 0x389b, 0x39b0, 0x31b3, 0x3a14, 0x309a, 0x3ba3, 0x32a9, 0x3652, 0x390d, 0x316f, 0x3812, 0x38dd, 0x3473, 0x396a, 0x3b35, 0x3a31, 0x2cb3, 0x1c90, 0x3794, 0x372c, 0x3238, 0x3b57, 0x3516, 0x3b9c, 0x3a83, 0x386e, 0x3747, 0x353b, 0x31d2, 0x3b04, 0x338e, 0x3802, 0x373c, 0x373c, 0x380f, 0x28c7, 0x3936, 0x37eb, 0x32a6, 0x30cc, 0x3be5, +0x3428, 0x3592, 0x3226, 0x38dd, 0x3823, 0x374e, 0x3ac7, 0x38cb, 0x32a9, 0x354b, 0x3517, 0x2f43, 0x3812, 0x3a7a, 0x3627, 0x3b87, 0x3849, 0x377a, 0x2fae, 0x3bf8, 0x38e2, 0x387d, 0x3bab, 0x3a95, 0x31c0, 0x2be8, 0x30fb, 0x3bd8, 0x3828, 0x2ac0, 0x39ef, 0x3927, 0x2417, 0x34a8, 0x3626, 0x3751, 0x3b5b, 0x3a42, 0x2c4c, 0x3806, 0x358e, 0x34c1, 0x2d4f, 0x3bda, 0x3990, 0x3651, 0x3431, 0x31a2, 0x3379, 0x339a, 0x37cf, 0x3bf3, 0x3ada, 0x384a, 0x373d, 0x38a4, 0x2d47, 0x390a, 0x312a, 0x3adb, 0x3bee, 0x3463, 0x3857, 0x3950, 0x349f, 0x3a8a, 0x3767, 0x3552, 0x2d8a, 0x2cc8, 0x36cd, 0x3510, 0x3a04, 0x35ac, 0x3b20, 0x3076, 0x3a93, 0x36d0, 0x315a, 0x3af1, 0x355d, 0x3b34, 0x3b5c, 0x2247, 0x37c7, 0x3b02, 0x3a5d, 0x3669, 0x282c, 0x3b81, 0x319c, 0x3700, 0x3a0d, 0x33c0, 0x3985, 0x335e, +0x3af9, 0x3733, 0x2f0c, 0x392a, 0x2528, 0x34c8, 0x39e5, 0x3409, 0x3424, 0x389e, 0x358a, 0x3664, 0x3541, 0x38fa, 0x1d31, 0x2d02, 0x3889, 0x3690, 0x3a15, 0x3a4b, 0x364a, 0x3791, 0x3a6f, 0x3aa1, 0x3ab0, 0x39ed, 0x37da, 0x3abc, 0x3b09, 0x376d, 0x2c63, 0x314f, 0x34b9, 0x3142, 0x39cf, 0x3242, 0x384f, 0x3bf9, 0x36a1, 0x358d, 0x3ade, 0x3bc9, 0x347d, 0x3a5a, 0x3b4e, 0x3aa3, 0x39bf, 0x318d, 0x3a37, 0x3833, 0x333b, 0x3bb9, 0x39f4, 0x2ff2, 0x38b3, 0x3508, 0x3817, 0x3bd8, 0x35a8, 0x38b0, 0x3aac, 0x3984, 0x3bff, 0x29ea, 0x34ca, 0x38c6, 0x3885, 0x3bd8, 0x38df, 0x38fa, 0x358e, 0x3528, 0x39e8, 0x2d40, 0x3464, 0x3bac, 0x3ad1, 0x399b, 0x3a77, 0x3bfe, 0x3b52, 0x3934, 0x35ca, 0x3bf7, 0x3852, 0x3858, 0x35a1, 0x3a72, 0x34d7, 0x39e3, 0x2fe5, 0x3b1c, 0x3aee, 0x3bf7, 0x25f0, 0x3881, +0x376e, 0x3833, 0x3ab2, 0x3b59, 0x3b7f, 0x3ac3, 0x3954, 0x302d, 0x3a5d, 0x38f9, 0x3a41, 0x3a0f, 0x33a5, 0x3150, 0x29b7, 0x39aa, 0x35d5, 0x31db, 0x389b, 0x3aa1, 0x3529, 0x3bf1, 0x38de, 0x39a9, 0x321d, 0x35d6, 0x3423, 0x3be2, 0x34b2, 0x3b42, 0x31d8, 0x345b, 0x3a2d, 0x3b72, 0x3a10, 0x338a, 0x3b84, 0x3be8, 0x3810, 0x38a5, 0x3ba8, 0x3921, 0x3ac0, 0x3329, 0x3bca, 0x3bbb, 0x389a, 0x35f3, 0x3908, 0x3927, 0x3534, 0x381b, 0x2d5f, 0x3bef, 0x35f6, 0x3b13, 0x3834, 0x25d5, 0x30f9, 0x397c, 0x31af, 0x3867, 0x2cc7, 0x28ea, 0x3afe, 0x3014, 0x3806, 0x31c4, 0x39fa, 0x3bb6, 0x250c, 0x391b, 0x39a4, 0x37e3, 0x38d9, 0x3747, 0x2b7e, 0x3939, 0x32d2, 0x3a48, 0x38c3, 0x312d, 0x3a2d, 0x3afd, 0x3101, 0x3b28, 0x370d, 0x2fce, 0x32fc, 0x3840, 0x39f5, 0x37b6, 0x39df, 0x1d49, 0x3b9b, 0x3694, +0x3580, 0x392f, 0x3953, 0x3ac8, 0x3af3, 0x33cd, 0x39a0, 0x3672, 0x373d, 0x236a, 0x3935, 0x39fa, 0x348e, 0x3759, 0x348d, 0x36e7, 0x391b, 0x3b46, 0x386c, 0x3515, 0x389f, 0x3b21, 0x3aef, 0x3bf5, 0x3a2d, 0x3428, 0x39d1, 0x3931, 0x39af, 0x38ba, 0x2cbf, 0x3bf4, 0x31be, 0x2dd5, 0x350d, 0x3af6, 0x2044, 0x36ae, 0x3810, 0x3690, 0x31f8, 0x2ed1, 0x3a21, 0x3b7b, 0x3a96, 0x355c, 0x3704, 0x34e4, 0x38d3, 0x2f90, 0x3902, 0x37b1, 0x3b2a, 0x3a69, 0x3792, 0x338b, 0x3006, 0x345e, 0x3530, 0x3b40, 0x3733, 0x2c59, 0x3bf1, 0x39e6, 0x3b20, 0x3bc1, 0x3b71, 0x37fc, 0x363f, 0x36f9, 0x3b39, 0x380a, 0x3516, 0x3814, 0x34b8, 0x3493, 0x3bbe, 0x328b, 0x3709, 0x393b, 0x373e, 0x3929, 0x37c0, 0x3464, 0x39f8, 0x35d1, 0x364e, 0x39ed, 0x3806, 0x398c, 0x39e1, 0x3be5, 0x3317, 0x3482, 0x3b35, 0x3bc5, +0x2be7, 0x3026, 0x3b12, 0x3476, 0x3967, 0x3767, 0x3a01, 0x385a, 0x30f5, 0x2ccc, 0x349d, 0x2811, 0x399c, 0x3afe, 0x39ee, 0x3903, 0x3490, 0x2d4b, 0x367c, 0x361f, 0x3add, 0x312b, 0x3502, 0x3a4b, 0x3b74, 0x38b0, 0x31bd, 0x3327, 0x3a68, 0x3078, 0x3811, 0x3bce, 0x3867, 0x362d, 0x39f7, 0x2c93, 0x325f, 0x3370, 0x3bcf, 0x3b0c, 0x3656, 0x3644, 0x3130, 0x34f1, 0x326f, 0x3ab4, 0x38b5, 0x2e0b, 0x38ec, 0x3b21, 0x3be6, 0x3a39, 0x38f2, 0x3621, 0x3bf7, 0x390d, 0x39ef, 0x2b80, 0x394b, 0x3b3c, 0x31c4, 0x1a0a, 0x354e, 0x3655, 0x3564, 0x2b0e, 0x3072, 0x3838, 0x3190, 0x3b46, 0x3909, 0x31d8, 0x3b8d, 0x3b39, 0x3773, 0x35a3, 0x394f, 0x3971, 0x3919, 0x3848, 0x3a7d, 0x3b3d, 0x357e, 0x2755, 0x3a56, 0x3488, 0x3ac6, 0x3a25, 0x3991, 0x347e, 0x3472, 0x3b22, 0x38c8, 0x3b54, 0x384c, 0x28a2, +0x3b41, 0x3ab1, 0x3a5d, 0x35d6, 0x36e5, 0x3a33, 0x3a55, 0x3457, 0x35b4, 0x34d5, 0x389b, 0x3928, 0x3be7, 0x32d5, 0x3b26, 0x3790, 0x3203, 0x3296, 0x3b45, 0x3bc4, 0x38d4, 0x34f7, 0x3b50, 0x3ab1, 0x36eb, 0x3120, 0x35af, 0x396d, 0x28f5, 0x37f3, 0x3b0b, 0x31a6, 0x3a46, 0x1ce8, 0x38f3, 0x39c2, 0x3970, 0x3bb5, 0x28d7, 0x3b21, 0x39b4, 0x355e, 0x35a6, 0x3bb9, 0x2cc3, 0x38c2, 0x376c, 0x2e88, 0x34b2, 0x3967, 0x3325, 0x3bda, 0x37c6, 0x39dc, 0x3135, 0x3966, 0x22f4, 0x3433, 0x37e1, 0x34dd, 0x3900, 0x3ae7, 0x38ee, 0x3926, 0x2a4a, 0x3a16, 0x3ba9, 0x38de, 0x343a, 0x3a6f, 0x315c, 0x392b, 0x38ce, 0x35c3, 0x3810, 0x3ae9, 0x3627, 0x29b7, 0x2816, 0x289e, 0x3bb0, 0x39d1, 0x335c, 0x39b1, 0x3b48, 0x3614, 0x3581, 0x33df, 0x332b, 0x3750, 0x3438, 0x3309, 0x3854, 0x3830, 0x32e3, 0x3a27, +0x38f4, 0x3074, 0x351c, 0x2b8d, 0x35c2, 0x33dc, 0x3972, 0x39f2, 0x3af7, 0x3b12, 0x3b1a, 0x352d, 0x335e, 0x357a, 0x32e1, 0x3a63, 0x3426, 0x316d, 0x3903, 0x36e4, 0x36cc, 0x35fd, 0x3b29, 0x3304, 0x387e, 0x347d, 0x3af3, 0x33b5, 0x3859, 0x3800, 0x39b1, 0x3ae4, 0x2839, 0x38e6, 0x3341, 0x3346, 0x3ad4, 0x38b2, 0x392b, 0x3bfa, 0x3090, 0x36f1, 0x29b5, 0x2fa6, 0x3bb5, 0x36bc, 0x30c4, 0x38f4, 0x1e3b, 0x34fd, 0x2c4c, 0x3a6b, 0x393c, 0x3aba, 0x3866, 0x356a, 0x3441, 0x3802, 0x367d, 0x3546, 0x380f, 0x38f2, 0x354b, 0x30af, 0x2e2f, 0x37cb, 0x3994, 0x36e3, 0x37a7, 0x3a8c, 0x395c, 0x3aa2, 0x2c2f, 0x35b4, 0x3180, 0x3ad0, 0x3237, 0x3ac6, 0x31f5, 0x3637, 0x398c, 0x3443, 0x3bd6, 0x3b63, 0x35d0, 0x3351, 0x3336, 0x3aa8, 0x3b66, 0x39df, 0x36fe, 0x3477, 0x3823, 0x38ef, 0x399e, 0x394b, +0x3a85, 0x2d22, 0x39b4, 0x3a4e, 0x3334, 0x1c3b, 0x3466, 0x3469, 0x3820, 0x3a70, 0x2d5e, 0x37d9, 0x37bb, 0x3bd8, 0x25ea, 0x3292, 0x3a58, 0x3847, 0x3aea, 0x389d, 0x386e, 0x3870, 0x3bc4, 0x3a95, 0x307f, 0x3928, 0x31c2, 0x38e5, 0x3994, 0x3b83, 0x297a, 0x33c0, 0x3a55, 0x390d, 0x3550, 0x3447, 0x3b6d, 0x2809, 0x3993, 0x2944, 0x3ae1, 0x3845, 0x3703, 0x38fb, 0x3880, 0x3b1b, 0x3312, 0x2d51, 0x2e33, 0x3ba5, 0x3805, 0x3359, 0x3b3c, 0x3663, 0x354f, 0x3904, 0x3787, 0x39ac, 0x3bc4, 0x2f65, 0x3778, 0x3ba8, 0x3100, 0x3840, 0x3b67, 0x3abe, 0x2d5b, 0x391f, 0x3670, 0x39b3, 0x3a4e, 0x3947, 0x2e35, 0x3755, 0x3bb9, 0x31bf, 0x3ba6, 0x3a10, 0x39d1, 0x3aae, 0x3b88, 0x380a, 0x345f, 0x3aeb, 0x3660, 0x373a, 0x2d6f, 0x33b0, 0x3518, 0x3b25, 0x3872, 0x3aab, 0x2ed0, 0x347d, 0x2fd0, 0x38c5, +0x2cda, 0x353c, 0x3866, 0x2332, 0x3bde, 0x3912, 0x3762, 0x3ae3, 0x3a55, 0x39df, 0x32e0, 0x3b63, 0x3ac3, 0x3a85, 0x34e8, 0x38d7, 0x3543, 0x3a1e, 0x36e7, 0x3008, 0x359e, 0x298b, 0x3b6c, 0x3b51, 0x38d1, 0x3444, 0x39ec, 0x391e, 0x3a6d, 0x39e9, 0x3b7c, 0x36bb, 0x21f7, 0x2896, 0x3308, 0x3afc, 0x3879, 0x2cac, 0x2699, 0x3475, 0x331b, 0x340f, 0x373b, 0x3814, 0x3b6d, 0x39bb, 0x2e09, 0x3284, 0x286f, 0x371d, 0x3966, 0x27c2, 0x3ac4, 0x3b92, 0x3ba4, 0x3acb, 0x30b0, 0x3a11, 0x3721, 0x34cc, 0x3b84, 0x3002, 0x38bc, 0x341e, 0x36c3, 0x3bd2, 0x39fe, 0x380f, 0x38c3, 0x3a9c, 0x373a, 0x3a79, 0x3bfa, 0x31c7, 0x340d, 0x3602, 0x38e4, 0x1ddd, 0x38b2, 0x3985, 0x2574, 0x339e, 0x3b39, 0x3765, 0x3369, 0x39b6, 0x3974, 0x3a25, 0x362c, 0x3aeb, 0x3935, 0x3271, 0x2de2, 0x35d5, 0x3b93, 0x32f0, +0x3425, 0x3871, 0x2d6d, 0x3070, 0x319d, 0x33b5, 0x333e, 0x397e, 0x2a76, 0x39eb, 0x3b34, 0x3988, 0x3b40, 0x36de, 0x39a6, 0x38d9, 0x398b, 0x3623, 0x325e, 0x37d1, 0x3406, 0x377f, 0x3a58, 0x3486, 0x3855, 0x3acc, 0x378c, 0x3b1b, 0x3bed, 0x3aae, 0x3998, 0x39dc, 0x38a0, 0x3b74, 0x38a1, 0x2a79, 0x2e26, 0x39fd, 0x377c, 0x39bb, 0x3ad6, 0x1a6c, 0x2e6b, 0x377b, 0x3b5c, 0x39bd, 0x32f6, 0x371a, 0x348d, 0x348b, 0x359c, 0x38c7, 0x3022, 0x389f, 0x3a5b, 0x328d, 0x3158, 0x3206, 0x364d, 0x3a90, 0x36df, 0x3934, 0x3a5e, 0x39e4, 0x3a42, 0x3afe, 0x38d5, 0x36c5, 0x3050, 0x2acf, 0x3a39, 0x29da, 0x365c, 0x364e, 0x2bc, 0x3850, 0x381b, 0x39b2, 0x3643, 0x390a, 0x30da, 0x3243, 0x2dd9, 0x3b6c, 0x38cc, 0x309c, 0x27f0, 0x3b84, 0x3979, 0x3b3e, 0x3b08, 0x376a, 0x390d, 0x2d9e, 0x3527, 0x3a25, +0x33e2, 0x3840, 0x3afd, 0x385b, 0x350a, 0x3b04, 0x377a, 0x38ad, 0x3aec, 0x39d7, 0x38ad, 0x3b9d, 0x37d6, 0x36f1, 0x3586, 0x325c, 0x2cf4, 0x3b30, 0x387d, 0x3a1d, 0x3a29, 0x3048, 0x3bdc, 0x30d7, 0x359a, 0x30c4, 0x3a22, 0x3148, 0x3bd3, 0x3699, 0x353e, 0x398f, 0x36f2, 0x3115, 0x3505, 0x39bc, 0x39b1, 0x37ec, 0x353f, 0x379f, 0x36df, 0x3479, 0x3815, 0x3503, 0x30dd, 0x39c5, 0x3a1e, 0x30a0, 0x385d, 0x3a44, 0x3819, 0x3599, 0x3994, 0x394a, 0x316a, 0x39ab, 0x2c23, 0x3985, 0x3bbe, 0x3bdd, 0x3486, 0x36f7, 0x3559, 0x391b, 0x2642, 0x3a96, 0x3bac, 0x367c, 0x3b59, 0x38f0, 0x268a, 0x3a03, 0x3106, 0x3bd1, 0x3279, 0x36c9, 0x3b40, 0x3750, 0x2e02, 0x3965, 0x3636, 0x3afb, 0x3960, 0x38d6, 0x3a62, 0x2910, 0x3a84, 0x359d, 0x3ad9, 0x33f7, 0x3b5d, 0x26e1, 0x376b, 0x3824, 0x2852, 0x3982, +0x3797, 0x36e3, 0x3924, 0x3947, 0x3b36, 0x361e, 0x376b, 0x365b, 0x37e8, 0x329f, 0x3970, 0x3126, 0x3562, 0x3b17, 0x3aca, 0x3602, 0x3b9d, 0x394a, 0x2388, 0x2b85, 0x3a24, 0x3a66, 0x3648, 0x28d2, 0x3b67, 0x38b8, 0x3b15, 0x352c, 0x3b39, 0x3838, 0x388e, 0x3576, 0x39f5, 0x31f9, 0x35a0, 0x3a41, 0x3afa, 0x3513, 0x3688, 0x3b2b, 0x32b6, 0x32de, 0x3949, 0x3b1e, 0x3a1e, 0x280d, 0x38da, 0x388e, 0x316f, 0x38d4, 0x29c5, 0x3637, 0x34af, 0x2d8c, 0x3872, 0x30ac, 0x396e, 0x38bd, 0x39ab, 0x3b69, 0x3120, 0x355f, 0x2e7f, 0x35ab, 0x3821, 0x2b37, 0x3bc5, 0x3a0a, 0x3572, 0x30b5, 0x399e, 0x2a66, 0x31b8, 0x3abc, 0x3754, 0x36a7, 0x3b8b, 0x347d, 0x3b36, 0x3924, 0x2f95, 0x3ba9, 0x2224, 0x34cd, 0x3aaf, 0x3608, 0x34ce, 0x344b, 0x34b5, 0x3bd8, 0x37d3, 0x3757, 0x2c21, 0x3b8f, 0x38d3, 0x3aa4, +0x39c6, 0x381d, 0x3842, 0x3bd1, 0x3092, 0x35d5, 0x251f, 0x2529, 0x3133, 0x3862, 0x3444, 0x3519, 0x3b60, 0x2fb5, 0x38c7, 0x387e, 0x3138, 0x36a9, 0x353c, 0x3411, 0x3bd3, 0x2a07, 0x3a5c, 0x3826, 0x3228, 0x334d, 0x2f07, 0x2c6a, 0x3b43, 0x3425, 0x3568, 0x382a, 0x348c, 0x3b5f, 0x3745, 0x2ae7, 0x3772, 0x302b, 0x336a, 0x383a, 0x3361, 0x3110, 0x3684, 0x39d1, 0x3151, 0x34f1, 0x295b, 0x26ba, 0x3b1b, 0x38d5, 0x36b1, 0x3069, 0x3bfa, 0x385f, 0x3695, 0x3b50, 0x3be0, 0x3741, 0x3af4, 0x2cd1, 0x3862, 0x352d, 0x3b8d, 0x3800, 0x3868, 0x3931, 0x37f8, 0x3ad0, 0x341d, 0x3507, 0x3602, 0x3831, 0x393b, 0x3695, 0x380e, 0x383f, 0x38de, 0x3954, 0x38b3, 0x20be, 0x2428, 0x2e52, 0x3b5b, 0x20ea, 0x3aa9, 0x3430, 0x3aac, 0x393b, 0x32e7, 0x2d58, 0x366e, 0x32f5, 0x3990, 0x3b9d, 0x2f4c, 0x3420, +0x38d5, 0x31e4, 0x2c0e, 0x3742, 0x3bc0, 0x30f9, 0x3656, 0x3aaa, 0x385e, 0x3908, 0x3584, 0x2814, 0x3891, 0x3553, 0x391c, 0x3330, 0x38e5, 0x1aaf, 0x3be5, 0x3ac7, 0x3936, 0x3bf5, 0x361f, 0x39b3, 0x38c1, 0x394a, 0x39e1, 0x2b67, 0x3585, 0x380e, 0x3344, 0x3001, 0x3983, 0x31ec, 0x3ac2, 0x380a, 0x32c2, 0x34aa, 0x393d, 0x364d, 0x239a, 0x3727, 0x3b5c, 0x3265, 0x2d1f, 0x32dd, 0x3ae3, 0x36a0, 0x3600, 0x38f3, 0x378a, 0x357c, 0x34dd, 0x39a9, 0x3846, 0x2431, 0x3abe, 0x36fa, 0x38bd, 0x3696, 0x2c2e, 0x229d, 0x386f, 0x3a8b, 0x3aa4, 0x34f4, 0x35af, 0x34c1, 0x2222, 0x1820, 0x3a30, 0x38ec, 0x3855, 0x3952, 0x3873, 0x384b, 0x3bb1, 0x35aa, 0x363a, 0x380e, 0x3b3d, 0x397a, 0x38ca, 0x3a88, 0x35de, 0x3bac, 0x3ab4, 0x3654, 0x38f3, 0x2076, 0x3585, 0x300a, 0x3a71, 0x3b90, 0x3a83, 0x3a86, +0x3ab7, 0x3bee, 0x37bd, 0x3b2c, 0x39fb, 0x274a, 0x3a7d, 0x38df, 0x2a8d, 0x3611, 0x34b4, 0x38e4, 0x36f8, 0x3b2a, 0x364b, 0x3ac3, 0x2d73, 0x38e3, 0x2fcd, 0x3af3, 0x359e, 0x3afd, 0x3b13, 0x3a89, 0x379e, 0x35d5, 0x30bc, 0x34ae, 0x3a6a, 0x312e, 0x293a, 0x39df, 0x3a97, 0x39db, 0x3b98, 0x3818, 0x344f, 0x26c9, 0x3a30, 0x3505, 0x3885, 0x3206, 0x38e4, 0x3940, 0x3a5d, 0x3aab, 0x35e7, 0x3458, 0x381d, 0x3959, 0x3930, 0x3476, 0x348f, 0x3469, 0x2e03, 0x3889, 0x3ba1, 0x35ac, 0x3ac1, 0x3bcb, 0x3acc, 0x34d7, 0x38bd, 0x2b4c, 0x21ff, 0x3802, 0x34a4, 0x36f9, 0x352f, 0x394e, 0x3796, 0x2456, 0x38c8, 0x302d, 0x2de8, 0x3539, 0x39e8, 0x3560, 0x3913, 0x3bbf, 0x331a, 0x3969, 0x3a9e, 0x3972, 0x3a32, 0x3a15, 0x386f, 0x3a17, 0x3956, 0x39c3, 0x3762, 0x3b51, 0x32af, 0x3b58, 0x34ff, 0x319d, +0x3431, 0x34fc, 0x3a81, 0x3ada, 0x39e6, 0x3a49, 0x33ad, 0x38c8, 0x33cb, 0x3576, 0x3aaf, 0x34ee, 0x2e14, 0x38d0, 0x39c1, 0x29cb, 0x3112, 0x3593, 0x2f07, 0x2fa0, 0x34c0, 0x366e, 0x3998, 0x3540, 0x37c6, 0x39b7, 0x396d, 0x3319, 0x341e, 0x354a, 0x3773, 0x2c1c, 0x3bfc, 0x381b, 0x3529, 0x37f8, 0x3bbd, 0x37a2, 0x36f1, 0x3870, 0x3a69, 0x3494, 0x3169, 0x3455, 0x356f, 0x32e7, 0x35c0, 0x398e, 0x2c2f, 0x2ffe, 0x3140, 0x39ff, 0x3aae, 0x3bb7, 0x35b8, 0x39b2, 0x3303, 0x3948, 0x3a7f, 0x25f7, 0x3750, 0x357e, 0x3785, 0x3817, 0x3b05, 0x3a90, 0x38ad, 0x376f, 0x3ac5, 0x3a07, 0x3311, 0x3b9b, 0x24d1, 0x3451, 0x32a6, 0x342c, 0x3a8c, 0x360a, 0x36ad, 0x3abf, 0x2116, 0x3bb1, 0x328b, 0x37a9, 0x3aab, 0x39c9, 0x345e, 0x36b0, 0x384c, 0x3bfb, 0x2d31, 0x3a05, 0x3427, 0x3726, 0x3743, 0x3398, +0x3b0a, 0x3b85, 0x33ed, 0x32b0, 0x3a95, 0x2135, 0x3712, 0x2f34, 0x378e, 0x390f, 0x39b1, 0x2ad2, 0x300a, 0x34ec, 0x3a00, 0x20f8, 0x3b47, 0x3861, 0x341d, 0x3015, 0x3959, 0x37c9, 0x2f6c, 0x3758, 0x37e5, 0x353b, 0x38da, 0x39ae, 0x3947, 0x36d7, 0x3284, 0x3bb9, 0x357f, 0x3999, 0x39c2, 0x3889, 0x38b7, 0x3684, 0x355e, 0x390d, 0x3b96, 0x385c, 0x3ba5, 0x36c0, 0x3bbc, 0x37fc, 0x391c, 0x3a42, 0x39ca, 0x34ae, 0x394c, 0x3271, 0x2cd6, 0x343b, 0x2d7b, 0x2eea, 0x38a3, 0x2ca6, 0x3549, 0x3847, 0x3bcb, 0x3adc, 0x2e68, 0x3809, 0x3930, 0x357b, 0x3b89, 0x3b94, 0x3875, 0x3640, 0x387c, 0x376c, 0x33b9, 0x3b7e, 0x384c, 0x3906, 0x3b91, 0x209d, 0x2c43, 0x32cf, 0x3686, 0x310c, 0x3a7a, 0x38ef, 0x3645, 0x354a, 0x3670, 0x3732, 0x37b9, 0x3928, 0x358d, 0x3893, 0x3602, 0x2e3d, 0x2a22, 0x2f70, +0x34c9, 0x38f4, 0x374e, 0x3828, 0x37ff, 0x3723, 0x35b4, 0x34b7, 0x3b94, 0x265a, 0x3658, 0x3938, 0x38f5, 0x3bb9, 0x3960, 0x3b5c, 0x38d3, 0x31ea, 0x3412, 0x3be3, 0x3b95, 0x3a20, 0x353b, 0x39c5, 0x3291, 0x387d, 0x3af8, 0x3915, 0x3af7, 0x3be4, 0x399c, 0x34e5, 0x324b, 0x3838, 0x3914, 0x385e, 0x38cd, 0x39fd, 0x39a0, 0x3495, 0x38a1, 0x382c, 0x2ed2, 0x3866, 0x33d8, 0x3396, 0x3b0c, 0x39c8, 0x314f, 0x346f, 0x3aee, 0x313e, 0x39b8, 0x34fe, 0x3882, 0x36d2, 0x3a8b, 0x3a8e, 0x3ae4, 0x3b31, 0x30da, 0x34e8, 0x38ce, 0x3643, 0x39b6, 0x34fb, 0x38d7, 0x3bde, 0x3ac9, 0x3af2, 0x38fe, 0x275f, 0x3748, 0x30ee, 0x3010, 0x3b23, 0x3a55, 0x3a43, 0x3a23, 0x37eb, 0x38fa, 0x3335, 0x3996, 0x39a0, 0x360f, 0x2630, 0x39f3, 0x3870, 0x383c, 0x384c, 0x3392, 0x3754, 0x3b4f, 0x3bc1, 0x382f, 0x3802, +0x3bb0, 0x36ad, 0x3a3f, 0x389e, 0x2d0c, 0x34b1, 0x3592, 0x3933, 0x25f1, 0x3ac7, 0x308e, 0x36b7, 0x3ab0, 0x2994, 0x38e4, 0x3689, 0x3c00, 0x3441, 0x30f6, 0x3a71, 0x3b19, 0x394e, 0x3826, 0x19a6, 0x3b2a, 0x3594, 0x3893, 0x34af, 0x3b34, 0x3ab3, 0x37e9, 0x3ba1, 0x3b01, 0x29ca, 0x3715, 0x3643, 0x312e, 0x3289, 0x311d, 0x383e, 0x38dc, 0x33a1, 0x384d, 0x3ba6, 0x3982, 0x34a7, 0x3b20, 0x3728, 0x3add, 0x2f89, 0x377b, 0x3a2d, 0x342e, 0x36e5, 0x3aa2, 0x3864, 0x38fe, 0x2d84, 0x3bef, 0x3bcd, 0x3553, 0x3953, 0x37be, 0x394a, 0x3a5f, 0x1d30, 0x3bfb, 0x3737, 0x3aa1, 0x3b6e, 0x3809, 0x3b5f, 0x389b, 0x3905, 0x3b29, 0x387d, 0x3afc, 0x3807, 0x3881, 0x3a2c, 0x37d5, 0x3a76, 0x35c4, 0x39ec, 0x3abf, 0x36ed, 0x3135, 0x381e, 0x3593, 0x3968, 0x2d97, 0x350c, 0x3a61, 0x3550, 0x2bde, 0x3400, +0x35ed, 0x34e7, 0x3846, 0x2e9e, 0x3afd, 0x3658, 0x36c2, 0x3863, 0x30b9, 0x350a, 0x3a30, 0x34cd, 0x3b2c, 0x3061, 0x3bc4, 0x2e78, 0x3475, 0x388a, 0x3678, 0x30c5, 0x38f2, 0x3807, 0x311d, 0x3aad, 0x3804, 0x3a1b, 0x38bf, 0x2c7f, 0x3be8, 0x3523, 0x32d3, 0x3a33, 0x38f1, 0x34af, 0x3797, 0x32e6, 0x3886, 0x33e8, 0x3a63, 0x34d3, 0x3618, 0x3571, 0x3abb, 0x3a0d, 0x39d4, 0x361c, 0x3b81, 0x3598, 0x301d, 0x390a, 0x2876, 0x39db, 0x344c, 0x3518, 0x3825, 0x33a5, 0x392b, 0x3671, 0x39a6, 0x3320, 0x3a67, 0x3447, 0x3a75, 0x34c7, 0x3ba8, 0x3108, 0x394f, 0x3986, 0x2c4d, 0x3856, 0x3b1c, 0x3343, 0x399d, 0x3a25, 0x2f68, 0x3be3, 0x3131, 0x349d, 0x39b0, 0x32d3, 0x305c, 0x3b49, 0x2e61, 0x36e1, 0x3a0c, 0x36cb, 0x3b96, 0x3648, 0x36a2, 0x3879, 0x387f, 0x3aa3, 0x2ac5, 0x30d8, 0x3424, 0x2bc4, +0x39b8, 0x38d0, 0x3bd2, 0x311b, 0x2cff, 0x2e9c, 0x3908, 0x39d9, 0x3628, 0x3c00, 0x39b7, 0x3a20, 0x3a6d, 0x3909, 0x37c2, 0x2c06, 0x3a29, 0x374d, 0x30c7, 0x3204, 0x392c, 0x3af6, 0x30de, 0x35ec, 0x3b48, 0x3b34, 0x38ec, 0x3b9f, 0x3625, 0x1a62, 0x3681, 0x2cbc, 0x39e6, 0x348b, 0x3726, 0x38d1, 0x35df, 0x382b, 0x3bc9, 0x39e9, 0x3a7b, 0x32df, 0x22ec, 0x35fa, 0x3a1d, 0x3b56, 0x37d2, 0x35af, 0x3bb3, 0x35bf, 0x38f2, 0x3090, 0x3163, 0x2ce6, 0x39a1, 0x3aa2, 0x38d3, 0x398d, 0x3a80, 0x35ff, 0x33e6, 0x3a00, 0x35a3, 0x3a52, 0x3175, 0x337b, 0x39c7, 0x399c, 0x3873, 0x390a, 0x39f9, 0x3766, 0x33d1, 0x38fe, 0x3a2b, 0x37ec, 0x39f9, 0x3980, 0x3ac0, 0x309f, 0x3313, 0x3897, 0x34a5, 0x36fb, 0x3725, 0x3a71, 0x3553, 0x3b09, 0x36ad, 0x3923, 0x3bdd, 0x3b9e, 0x2960, 0x3a59, 0x3a20, 0x375d, +0x39b6, 0x31e6, 0x34bc, 0x391e, 0x38cd, 0xca5, 0x360c, 0x35e6, 0x35b5, 0x3be9, 0x3be4, 0x3bea, 0x3741, 0x302e, 0x3557, 0x3bb1, 0x3be4, 0x342c, 0x350c, 0x352b, 0x3825, 0x3b05, 0x309d, 0x38f8, 0x3be3, 0x2d5d, 0x399a, 0x36b9, 0x3924, 0x3936, 0x3a45, 0x3a8f, 0x3853, 0x38a9, 0x381b, 0x3a9a, 0x393e, 0x31df, 0x3855, 0x38da, 0x37c6, 0x3bd8, 0x34fb, 0x2e5f, 0x3450, 0x304e, 0x3990, 0x29e1, 0x373c, 0x39a5, 0x3a5e, 0x3356, 0x2c13, 0x34a0, 0x3185, 0x3a8a, 0x3672, 0x2ee4, 0x2dbc, 0x22ae, 0x3a88, 0x388c, 0x30ce, 0x384d, 0x3453, 0x3ad0, 0x2e7f, 0x367a, 0x34c5, 0x39d6, 0x35de, 0x39fc, 0x3aa8, 0x3667, 0x3bb9, 0x35e7, 0x38c7, 0x2c83, 0x35a3, 0x35d7, 0x1a7c, 0x393e, 0x3588, 0x39dd, 0x3af3, 0x3965, 0x365b, 0x3a7e, 0x38ed, 0x3990, 0x3786, 0x3b07, 0x350e, 0x38b7, 0x357f, 0x3bb6, +0x2de9, 0x2ef1, 0x2cc9, 0x38a5, 0x347b, 0x310a, 0x351d, 0x3a9b, 0x3a68, 0x2228, 0x35d3, 0x338d, 0x3a3a, 0x24ec, 0x3ad0, 0x385a, 0x1c64, 0x39f9, 0x335e, 0x348c, 0x211e, 0x37d4, 0x353b, 0x3290, 0x3b68, 0x2f75, 0x2ff5, 0x3579, 0x3967, 0x3b5a, 0x3982, 0x3950, 0x35e9, 0x3a85, 0x3be5, 0x3252, 0x359b, 0x3799, 0x38ec, 0x3a0e, 0x3a45, 0x2d8e, 0x389d, 0x34d6, 0x3726, 0x3320, 0x3acd, 0x3642, 0x2574, 0x314a, 0x32a5, 0x3898, 0x370a, 0x3941, 0x340a, 0x2e05, 0x28b8, 0x39ad, 0x392e, 0x3821, 0x38d7, 0x3b07, 0x3485, 0x34d1, 0x399c, 0x1844, 0x2c8f, 0x3964, 0x3b56, 0x2dde, 0x2ede, 0x317b, 0x3a44, 0x3901, 0x3844, 0x382e, 0x29e6, 0x35ad, 0x3913, 0x3430, 0x3604, 0x3a5f, 0x3080, 0x3628, 0x3383, 0x3b3d, 0x385a, 0x38e8, 0x3ade, 0x3af3, 0x3a56, 0x3889, 0x2cf5, 0x3a61, 0x3b6a, 0x3b38, +0x2e45, 0x3736, 0x3743, 0x3680, 0x328f, 0x3a88, 0x39bb, 0x36a0, 0x3957, 0x2f27, 0x3a33, 0x3a9e, 0x3a9e, 0x2e09, 0x3154, 0x37b7, 0x3807, 0x3937, 0x390b, 0x3041, 0x3758, 0x39cf, 0x2e66, 0x2bc5, 0x3461, 0x3897, 0x39fd, 0x3b92, 0x36e3, 0x3a20, 0x3a8d, 0x335b, 0x3be1, 0x383d, 0x38ab, 0x3665, 0x3588, 0x3a4b, 0x33d5, 0x341b, 0x3806, 0x38fd, 0x382e, 0x32c1, 0x38d9, 0x2ccb, 0x292d, 0x380f, 0x35a2, 0x3b6e, 0x34af, 0x3889, 0x3109, 0x3480, 0x34bf, 0x3a56, 0x3163, 0x33fa, 0x345a, 0x39bb, 0x3b6e, 0x3a80, 0x36f6, 0x33c8, 0x3b98, 0x3663, 0x3aaf, 0x3926, 0x3a2d, 0x3a11, 0x33ac, 0x37a0, 0x3986, 0x3374, 0x3667, 0x3482, 0x378a, 0x2a39, 0x3535, 0x34f3, 0x3783, 0x36a7, 0x3606, 0x3843, 0x3acb, 0x2dcc, 0x3961, 0x34ed, 0x3890, 0x38e5, 0x3a7c, 0x384c, 0x39bf, 0x3a6b, 0x34a0, 0x361b, +0x2e5e, 0x3650, 0x3417, 0x36e5, 0x3b4c, 0x3892, 0x38ba, 0x32f3, 0x3b80, 0x39ea, 0x3357, 0x3212, 0x3b42, 0x3622, 0x3c00, 0x34c0, 0x38e0, 0x360c, 0x36bc, 0x34b0, 0x3b53, 0x2587, 0x387e, 0x3966, 0x3800, 0x35e2, 0x3917, 0x3be4, 0x378f, 0x2d21, 0x3415, 0x2ea8, 0x34d0, 0x36ac, 0x3a51, 0x3ba5, 0x3b7e, 0x2d48, 0x39c1, 0x30d5, 0x3244, 0x3894, 0x3aaa, 0x3451, 0x3a9f, 0x2e40, 0x3832, 0x35f6, 0x3429, 0x253c, 0x2c2e, 0x3bd6, 0x3a5c, 0x3622, 0x3155, 0x3a50, 0x313f, 0x31dc, 0x3b9d, 0x2d67, 0x3914, 0x38f5, 0x3ab6, 0x3bd3, 0x3754, 0x3683, 0x32b0, 0x31dd, 0x3911, 0x37c2, 0x2b09, 0x33b7, 0x3b7c, 0x344a, 0x2a7c, 0x3350, 0x3792, 0x36ea, 0x3463, 0x3a87, 0x29be, 0x3a23, 0x390d, 0x3b10, 0x381d, 0x3227, 0x38f4, 0x39bc, 0x3a71, 0x375d, 0x349d, 0x271c, 0x3921, 0x2e0a, 0x3b08, 0x3ba3, +0x3a92, 0x3923, 0x3012, 0x3527, 0x2ba3, 0x3aa1, 0x3ba3, 0x349a, 0x3729, 0x393a, 0x2ea9, 0x398a, 0x38a5, 0x3ad5, 0x38e6, 0x3a7b, 0x3783, 0x3822, 0x371a, 0x3247, 0x3af0, 0x3ac9, 0x35f6, 0x39d5, 0x39c3, 0x39bc, 0x3a9e, 0x39a8, 0x3af5, 0x3a01, 0x39ab, 0x35f6, 0x392e, 0x3bca, 0x2f53, 0x3595, 0x34c6, 0x3a96, 0x396f, 0x3515, 0x39c5, 0x37b3, 0x37c4, 0x2f64, 0x37ed, 0x3013, 0x3939, 0x3be7, 0x3a5e, 0x3526, 0x3a32, 0x3a8c, 0x334e, 0x39d6, 0x3b45, 0x395d, 0x3500, 0x375f, 0x2498, 0x3ad9, 0x3a04, 0x3961, 0x3a1e, 0x38cb, 0x383d, 0x35c3, 0x37ec, 0x38ab, 0x3aca, 0x29aa, 0x3480, 0x374c, 0x35d1, 0x33cc, 0x387a, 0x3544, 0x367d, 0x3259, 0x306b, 0x39c9, 0x323b, 0x3a58, 0x3156, 0x353d, 0x323a, 0x2987, 0x31ff, 0x3998, 0x311c, 0x38d0, 0x3a03, 0x38cc, 0x35b5, 0x398b, 0x3a0c, 0x3a96, +0x3ab6, 0x3a1c, 0x3a48, 0x3974, 0x3815, 0x368a, 0x36d5, 0x37aa, 0x345b, 0x3bd3, 0x3b1f, 0x3167, 0x2ecf, 0x3a80, 0x3636, 0x3a8e, 0x39d3, 0x3a1a, 0x3087, 0x3823, 0x3b9c, 0x3969, 0x2fb9, 0x3bb8, 0x39c5, 0x3991, 0x3392, 0x38f2, 0x3939, 0x2c68, 0x3b0a, 0x383a, 0x3bd7, 0x3a74, 0x3956, 0x3465, 0x39f3, 0x3880, 0x39bc, 0x39c5, 0x35e4, 0x3738, 0x3856, 0x399b, 0x3bda, 0x3366, 0x31a0, 0x3868, 0x3aa3, 0x38bd, 0x305a, 0x3743, 0x3a85, 0x2336, 0x39eb, 0x2d06, 0x37df, 0x3852, 0x3b46, 0x302c, 0x3a1e, 0x3b46, 0x3068, 0x3bd6, 0x381d, 0x31f6, 0x3491, 0x3848, 0x3315, 0x38c7, 0x3600, 0x3b9d, 0x38b2, 0x3977, 0x388c, 0x3ac2, 0x37ee, 0x35c4, 0x3b45, 0x374a, 0x3355, 0x1dbb, 0x38ec, 0x3003, 0x3a97, 0x311f, 0x3749, 0x2b59, 0x3842, 0x34a9, 0x3561, 0x3b07, 0x3a4a, 0x292f, 0x3961, 0x3546, +0x35dd, 0x3966, 0x2c7d, 0x3833, 0x285f, 0x20f2, 0x3a12, 0x392b, 0x2bae, 0x2fa6, 0x3a36, 0x303c, 0x3303, 0x2bc6, 0x3b94, 0x3a0e, 0x3ae2, 0x3a3c, 0x315c, 0x37bb, 0x3452, 0x3267, 0x2731, 0x3985, 0x3bcf, 0x397e, 0x2fae, 0x28b1, 0x39cc, 0x3536, 0x37a1, 0x3aa3, 0x396b, 0x2c59, 0x3bbf, 0x303c, 0x3bcf, 0x3a8e, 0x3afc, 0x3ab1, 0x2943, 0x3a17, 0x3552, 0x2f57, 0x3353, 0x3512, 0x2e78, 0x3b53, 0x388e, 0x399c, 0x336e, 0x38d4, 0x3849, 0x32b1, 0x316a, 0x2877, 0x2feb, 0x35b9, 0x375d, 0x29fa, 0x3ad2, 0x3569, 0x3981, 0x3455, 0x3847, 0x3a81, 0x3514, 0x29d0, 0x3137, 0x39ba, 0x3b1a, 0x2dd4, 0x383f, 0x39f7, 0x37f6, 0x3964, 0x371c, 0x39e4, 0x3136, 0x35da, 0x3b2f, 0x3946, 0x36dd, 0x3801, 0x3927, 0x2614, 0x2ca7, 0x39ae, 0x3401, 0x3242, 0x3a91, 0x3a1d, 0x3790, 0x333f, 0x3bb9, 0x3a1d, +0x3be5, 0x39e1, 0x35f3, 0x38fd, 0x3726, 0x3946, 0x3baf, 0x3a2f, 0x15e0, 0x318b, 0x359c, 0x2fbf, 0x3060, 0x3a09, 0x35c9, 0x39e2, 0x317e, 0x25ec, 0x3546, 0x3254, 0x36e9, 0x374c, 0x35c0, 0x3787, 0x3b82, 0x3727, 0x34a8, 0x3820, 0x3aee, 0x3814, 0x33da, 0x357f, 0x2f56, 0x3231, 0x3ba0, 0x35e4, 0x3998, 0x3609, 0x3979, 0x3311, 0x33e8, 0x39bd, 0x39f0, 0x3a32, 0x31dc, 0x3aee, 0x310e, 0x3843, 0x38c1, 0x382a, 0x382f, 0x3b24, 0x335c, 0x383b, 0x24f4, 0x371c, 0x3162, 0x2dce, 0x3ae6, 0x2d1e, 0x3a20, 0x39e9, 0x39c5, 0x219a, 0x37d4, 0x34fe, 0x14f6, 0x2e13, 0x3949, 0x3b98, 0x3a42, 0x3aee, 0x298f, 0x3740, 0x28e0, 0x3854, 0x3925, 0x3951, 0x3426, 0x3b4a, 0x3043, 0x345d, 0x3aec, 0x3b89, 0x378c, 0x355a, 0x3287, 0x340c, 0x35fb, 0x2f7d, 0x3839, 0x383a, 0x3a66, 0x388c, 0x36b3, 0x3908, +0x3323, 0x35b2, 0x3823, 0x3ad3, 0x3b52, 0x3634, 0x3a70, 0x3b37, 0x2d59, 0x3893, 0x3978, 0x3515, 0x2733, 0x399b, 0x3a86, 0x3b9c, 0x3582, 0x38e0, 0x389d, 0x3b34, 0x2d41, 0x31d7, 0x2db9, 0x3474, 0x35f6, 0x38fa, 0x3296, 0x3a85, 0x3102, 0x3129, 0x38e1, 0x39d4, 0x36ec, 0x2fea, 0x3a44, 0x3393, 0x39e0, 0x3613, 0x3bc1, 0x3145, 0x23d7, 0x3a17, 0x3515, 0x3845, 0x38f7, 0x33ee, 0x3b6f, 0x38f9, 0x38c7, 0x3489, 0x352b, 0x3b74, 0x39ab, 0x32e2, 0x37be, 0x38e6, 0x34e1, 0x31a5, 0x3be8, 0x2b0f, 0x3b16, 0x3a43, 0x3ae7, 0x39a2, 0x36a2, 0x33a5, 0x3160, 0x33c8, 0x30de, 0x38d9, 0x33f6, 0x35b0, 0x2982, 0x38e6, 0x3ae7, 0x3bca, 0x3911, 0x397b, 0x3596, 0x3790, 0x38eb, 0x3aa2, 0x38f6, 0x381f, 0x398e, 0x343b, 0x39ef, 0x39a3, 0x35f2, 0x2c2c, 0x39e2, 0x3b7f, 0x3858, 0x3b83, 0x3b02, 0x33df, +0x379c, 0x3ae9, 0x340b, 0x368f, 0x3a50, 0x38a6, 0x3aa2, 0x3bd6, 0x3855, 0x3841, 0x3410, 0x348d, 0x3625, 0x38a0, 0x3bdc, 0x34e3, 0x38f6, 0x3274, 0x3a03, 0x3adc, 0x35df, 0x39f5, 0x38b4, 0x38cc, 0x384d, 0x394f, 0x3597, 0x3a9c, 0x3767, 0x3b65, 0x39f5, 0x3857, 0x38c2, 0x3b12, 0x3580, 0x32b0, 0x3595, 0x3723, 0x3b92, 0x347f, 0x3526, 0x377d, 0x35c3, 0x354b, 0x3651, 0x3ae9, 0x38c7, 0x3bc0, 0x30d2, 0x395a, 0x34f2, 0x370d, 0x3748, 0x35fb, 0x3401, 0x34e8, 0x3931, 0x3a34, 0x381e, 0x3886, 0x3afc, 0x3bbc, 0x3af0, 0x3a9c, 0x3a5b, 0x34ef, 0x3979, 0x3ab0, 0x31f2, 0x34f8, 0x1c09, 0x3a9c, 0x36a0, 0x3af7, 0x3b87, 0x3745, 0x39b8, 0x3582, 0x3be2, 0x3bd6, 0x373f, 0x3552, 0x31c1, 0x3a29, 0x2f37, 0x363b, 0x3a9d, 0x39ee, 0x3aa7, 0x3a03, 0x3551, 0x39ce, 0x3a95, 0x3894, 0x32d1, 0x36f2, +0x385b, 0x342c, 0x3643, 0x3be4, 0x3b88, 0x3b64, 0x3975, 0x3142, 0x3583, 0x2f10, 0x34bb, 0x3b4d, 0x3924, 0x2609, 0x3929, 0x274b, 0x3476, 0x3bfd, 0x3abd, 0x3874, 0x33cf, 0x3756, 0x3820, 0x31a3, 0x35dd, 0x39a3, 0x3359, 0x397e, 0x3a12, 0x3ad6, 0x3a25, 0x38ab, 0x392c, 0x3bca, 0x38a9, 0x2f91, 0x381c, 0x29fb, 0x390e, 0x34f7, 0x3a14, 0x39fa, 0x3104, 0x3488, 0x326e, 0x3593, 0x3b50, 0x2e3d, 0x3423, 0x3919, 0x38db, 0x308b, 0x3883, 0x3ba9, 0x38e2, 0x3b74, 0x2b9d, 0x303d, 0x35ef, 0x29a3, 0x364d, 0x2fb5, 0x3991, 0x3a6a, 0x3bf5, 0x391f, 0x373f, 0x3a0a, 0x3a6f, 0x3ad6, 0x35ba, 0x3889, 0x3982, 0x3b8b, 0x3a43, 0x3bfb, 0x3355, 0x3591, 0x39de, 0x34b8, 0x3b76, 0x2a30, 0x30cc, 0x33d3, 0x2f46, 0x380e, 0x3b6e, 0x3576, 0x388b, 0x3b42, 0x35de, 0x39ab, 0x32f3, 0x35dc, 0x3594, 0x3184, +0x3b0c, 0x3478, 0x3b70, 0x389e, 0x3a28, 0x3bf3, 0x3350, 0x35fc, 0x396f, 0x3a40, 0x3242, 0x3a86, 0x3bd1, 0x314b, 0x2e15, 0x394f, 0x391b, 0x3763, 0x31e4, 0x3908, 0x3b48, 0x39e5, 0x3aca, 0x3a5b, 0x3626, 0x37fa, 0x381c, 0x3867, 0x342c, 0x3842, 0x3b77, 0x3ad7, 0x39a8, 0x3867, 0x3b9c, 0x3938, 0x3969, 0x2f52, 0x3a11, 0x3982, 0x3963, 0x3873, 0x3278, 0x3193, 0x369e, 0x3848, 0x3a63, 0x399a, 0x3ba0, 0x39c1, 0x3987, 0x3595, 0x2993, 0x3517, 0x31f2, 0x35a9, 0x3628, 0x3a6b, 0x3bf2, 0x3a75, 0x3129, 0x3460, 0x38d0, 0x370e, 0x3a52, 0x381a, 0x3b57, 0x388c, 0x3a87, 0x2c5a, 0x3ac9, 0x3686, 0x2023, 0x2fcb, 0x2845, 0x36f2, 0x3ac6, 0x2f91, 0x2a3b, 0x37bc, 0x3865, 0x3b91, 0x3887, 0x3b8b, 0x2edc, 0x38e1, 0x3465, 0x348f, 0x3bfb, 0x393a, 0x3b42, 0x394e, 0x2f39, 0x364b, 0x37a7, 0x3b51, +0x3810, 0x35e7, 0x388f, 0x38fc, 0x3740, 0x322e, 0x2f12, 0x39d5, 0x3834, 0x366f, 0x2c74, 0x35da, 0x3901, 0x39c1, 0x39f1, 0x381a, 0xc05, 0x3541, 0x39d3, 0x326a, 0x3993, 0x3ba8, 0x3bc9, 0x3b2b, 0x390d, 0x3a4b, 0x38db, 0x39a7, 0x3043, 0x345e, 0x2e17, 0x2cd7, 0x38ba, 0x3a26, 0x3a7d, 0x385b, 0x3a40, 0x25b0, 0x3ba4, 0x3b75, 0x30f9, 0x3508, 0x3885, 0x375d, 0x3acf, 0x36fb, 0x334b, 0x3a92, 0x3bbd, 0x3b15, 0x392e, 0x3b14, 0x33b3, 0x3ac3, 0x39f8, 0x35ae, 0x391d, 0x3b24, 0x316a, 0x30e9, 0x3813, 0x3736, 0x3b34, 0x2db4, 0x395a, 0x37ac, 0x3a01, 0x3671, 0x37af, 0x368a, 0x2de1, 0x3a69, 0x3416, 0x3294, 0x344d, 0x393e, 0x399f, 0x1d48, 0x38db, 0x3b08, 0x3944, 0x3a99, 0x39d5, 0x35fb, 0x2828, 0x3a19, 0x38b3, 0x3209, 0x3660, 0x38fa, 0x3a01, 0x3ba5, 0x322e, 0x3048, 0x3bb1, 0x3be6, +0x3b6f, 0x327c, 0x3932, 0x3721, 0x39b5, 0x28b8, 0x3b6d, 0x3a9e, 0x393c, 0x35e6, 0x3b4d, 0x2515, 0x2921, 0x395a, 0x3762, 0x34c7, 0x38ed, 0x3b61, 0x35ab, 0x2d3c, 0x3132, 0x35ef, 0x37e1, 0x37cf, 0x383c, 0x3b5e, 0x3a9d, 0x39af, 0x362e, 0x3b02, 0x3a85, 0x3ad0, 0x3739, 0x38f9, 0x3a16, 0x30e5, 0x3b92, 0x39b6, 0x39c4, 0x3b4d, 0x30c6, 0x35c6, 0x3513, 0x2e7a, 0x32a9, 0x346a, 0x359a, 0x3ae2, 0x3a27, 0x3b87, 0x3934, 0x358e, 0x33cd, 0x37a7, 0x3bbb, 0x383f, 0x357d, 0x3714, 0x35c1, 0x3540, 0x35ff, 0x39a6, 0x3686, 0x39bd, 0x3906, 0x357b, 0x3b22, 0x3be6, 0x38e3, 0x3876, 0x3954, 0x2c83, 0x3acf, 0x3aef, 0x3a67, 0x3548, 0x38d1, 0x359f, 0x3b59, 0x3b61, 0x39c8, 0x392e, 0x39a6, 0x3a3a, 0x3ad5, 0x3831, 0x39ae, 0x3b0e, 0x3b00, 0x3acf, 0x30e1, 0x3751, 0x2f93, 0x39e5, 0x39c3, 0x3928, +0x2df5, 0x36e5, 0x2605, 0x3827, 0x3566, 0x38b3, 0x3345, 0x3869, 0x38e2, 0x31a5, 0x37cf, 0x3b01, 0x3add, 0x2e7e, 0x3573, 0x2f1a, 0x2d92, 0x3a72, 0x3821, 0x313b, 0x3970, 0x3943, 0x3af1, 0x3aeb, 0x37d8, 0x35c7, 0x38a8, 0x3abb, 0x3893, 0x33a0, 0x3a05, 0x3830, 0x37d5, 0x2708, 0x3685, 0x3907, 0x3a07, 0x39f9, 0x3889, 0x2fd1, 0x38c8, 0x3091, 0x3b6a, 0x3332, 0x35f0, 0x36f0, 0x35ce, 0x3b5e, 0x3927, 0x3bf3, 0x392e, 0x39e6, 0x3703, 0x38c6, 0x37db, 0x364c, 0x3984, 0x2bd1, 0x34b3, 0x3873, 0x332b, 0x38a5, 0x2b51, 0x3a1c, 0x3446, 0x2f6a, 0x3975, 0x2f99, 0x38f4, 0x3849, 0x35f2, 0x3734, 0x38da, 0x38b9, 0x39cb, 0x3a6d, 0x39ea, 0x3160, 0x2fde, 0x3acb, 0x2d2d, 0x325b, 0x3a86, 0x3b66, 0x3a07, 0x361c, 0x394a, 0x2b5d, 0x3a45, 0x2dfa, 0x3505, 0x3263, 0x39e5, 0x3655, 0x32de, 0x3295, +0x38c9, 0x2f7b, 0x2f9e, 0x2d42, 0x3b0c, 0x378c, 0x2dac, 0x22ef, 0x3603, 0x396c, 0x3460, 0x3a7a, 0x3b62, 0x3177, 0x3703, 0x2936, 0x39a0, 0x38e7, 0x3b0d, 0x331e, 0x34cb, 0x39f3, 0x3138, 0x3a4d, 0x35d5, 0x399f, 0x3229, 0x39d3, 0x385c, 0x28ea, 0x3895, 0x3653, 0x3561, 0x3927, 0x35b6, 0x34b7, 0x3983, 0x2d4f, 0x2ad7, 0x3562, 0x324b, 0x29e0, 0x3928, 0x3a3d, 0x3aa2, 0x3128, 0x357a, 0x3a20, 0x3b17, 0x2919, 0x3702, 0x35bd, 0x3578, 0x3a6c, 0x3a68, 0x38e2, 0x3888, 0x38cd, 0x36f9, 0x3164, 0x351b, 0x39c4, 0x219b, 0x301f, 0x31fb, 0x343d, 0x38d5, 0x3900, 0x1dad, 0x3a61, 0x385e, 0x385b, 0x388e, 0x38b1, 0x351e, 0x34dc, 0x35c8, 0x316e, 0x36b7, 0x3beb, 0x3646, 0x2d3d, 0x35ff, 0x33bb, 0x36bf, 0x3adf, 0x3a75, 0x3b1f, 0x3a07, 0x38f1, 0x390a, 0x2e57, 0x27c6, 0x3afa, 0x396a, 0x2d0d, +0x3173, 0x3b83, 0x3ace, 0x3631, 0x3aa6, 0x38b6, 0x37c5, 0x365e, 0x2f2a, 0x3528, 0x3be0, 0x3af3, 0x37e7, 0x3947, 0x292e, 0x3b1b, 0x3959, 0x3082, 0x279b, 0x3a83, 0x3052, 0x3b4e, 0x3948, 0x39e1, 0x3566, 0x38c3, 0x3738, 0x30ee, 0x2731, 0x2ce3, 0x39a0, 0x3b90, 0x36c8, 0x3980, 0x357c, 0x34cf, 0x3a92, 0x3ac1, 0x1fc8, 0x3b89, 0x399c, 0x380f, 0x366e, 0x3767, 0x3650, 0x399b, 0x3413, 0x357b, 0x3610, 0x3a32, 0x3b9e, 0x3ae2, 0x3a84, 0x399b, 0x3ad1, 0x38a6, 0x3a6e, 0x36d4, 0x3bcc, 0x3043, 0x30ad, 0x35c2, 0x3b07, 0x2a03, 0x3658, 0x39ba, 0x3bf3, 0x3b92, 0x38ad, 0x36dc, 0x398e, 0x35ed, 0x3409, 0x3b31, 0x36d5, 0x3221, 0x3b12, 0x3887, 0x38e0, 0x3550, 0x31fa, 0x2f61, 0x3bd0, 0x34b8, 0x3860, 0x30db, 0x3415, 0x3b42, 0x31cb, 0x39c3, 0x3125, 0x3b66, 0x2468, 0x3a27, 0x3b63, 0x3ae5, +0x3809, 0x37a7, 0x39a2, 0x35c1, 0x3baf, 0x3798, 0x3518, 0x3583, 0x3bfc, 0x3bab, 0x3ab0, 0x3822, 0x3589, 0x33b1, 0x33e7, 0x3899, 0x3b93, 0x36bd, 0x3a87, 0x343c, 0x39a1, 0x3a0a, 0x38c6, 0x3b47, 0x3b64, 0x2d7e, 0x3bfd, 0x2d2d, 0x3a8a, 0x306c, 0x3766, 0x340d, 0x38e7, 0x3617, 0x3bd3, 0x398c, 0x3819, 0x3171, 0x36e6, 0x391f, 0x30d4, 0x39d5, 0x31bb, 0x3833, 0x3012, 0x2db1, 0x3aab, 0x3903, 0x3749, 0x379e, 0x3089, 0x2d69, 0x251b, 0x3448, 0x3418, 0x3b4e, 0x37de, 0x38c6, 0x373b, 0x38aa, 0x3968, 0x3b36, 0x3bfe, 0x38c9, 0x3ada, 0x38ba, 0x354e, 0x3a6e, 0x373d, 0x380c, 0x374b, 0x34d2, 0x35fd, 0x3a5d, 0x3a8d, 0x3a14, 0x3abd, 0x346c, 0x3766, 0x3908, 0x3ad3, 0x3a52, 0x341b, 0x2ad8, 0x3abb, 0x3083, 0x2933, 0x3b56, 0x3a33, 0x3753, 0x3529, 0x3bfd, 0x34a1, 0x3229, 0x3be1, 0x3b71, +0x3a9e, 0x3764, 0x35e7, 0x3831, 0x398a, 0x3877, 0x3aec, 0x39f0, 0x3159, 0x389f, 0x38bc, 0x3878, 0x3bc7, 0x3a01, 0x2896, 0x39af, 0x3784, 0x3260, 0x38d9, 0x3bcf, 0x3bfa, 0x3bc3, 0x2b23, 0x387d, 0x2e5b, 0x35a6, 0x3468, 0x3933, 0x2783, 0x37e8, 0x3af2, 0x332e, 0x3b77, 0x3ac3, 0x3514, 0x3bcd, 0x3bd8, 0x372f, 0x3979, 0x3b30, 0x3993, 0x3888, 0x38d5, 0x3a18, 0x3be4, 0x2b5c, 0x2518, 0x3b55, 0x3bbc, 0x3ba0, 0x2f21, 0x33b6, 0x352c, 0x39b3, 0x3bc7, 0x3a59, 0x38ea, 0x3432, 0x3b9b, 0x3b74, 0x3baf, 0x34a2, 0x3457, 0x3593, 0x3967, 0x3879, 0x3b79, 0x3806, 0x30ca, 0x384c, 0x394c, 0x37a7, 0x21ce, 0x3bbc, 0x305c, 0x3b11, 0x3a1a, 0x3a64, 0x2e80, 0x27ac, 0x3635, 0x361d, 0x2d4c, 0x2264, 0x37ba, 0x165c, 0x2ec8, 0x386b, 0x1b60, 0x3992, 0x357f, 0x2b6b, 0x37da, 0x3942, 0x2d77, 0x2f25, +0x34e0, 0x3809, 0x395b, 0x33dd, 0x38af, 0x3546, 0x2f78, 0x3469, 0x3832, 0x34b7, 0x3839, 0x32c0, 0x3676, 0x3b1f, 0x3872, 0x317b, 0x3403, 0x3444, 0x3438, 0x39cb, 0x3102, 0x3a90, 0x381a, 0x2db5, 0x3b1f, 0x3a44, 0x3aff, 0x354f, 0x3578, 0x3921, 0x38b0, 0x301f, 0x2da3, 0x3062, 0x3596, 0x3a07, 0x382a, 0x37bd, 0x3634, 0x34b1, 0x31a5, 0x353f, 0x33ec, 0x3986, 0x37a7, 0x332d, 0x3874, 0x3046, 0x3b5b, 0x3bf8, 0x37a0, 0x3822, 0x36c4, 0x385c, 0x3868, 0x39ec, 0x3959, 0x39cc, 0x382e, 0x2505, 0x3471, 0x358c, 0x3905, 0x395b, 0x312b, 0x3706, 0x2eec, 0x3a2a, 0x3be9, 0x3a96, 0x2932, 0x3a84, 0x38b2, 0x3884, 0x3655, 0x341f, 0x30b6, 0x363a, 0x3a7d, 0x389b, 0x348c, 0x3b98, 0x38cc, 0x3699, 0x373b, 0x3ad9, 0x377b, 0x33b4, 0x8ef, 0x3a4c, 0x39a2, 0x3bbc, 0x3b01, 0x3a46, 0x3b56, 0x38db, +0x29ab, 0x29e8, 0x3830, 0x39d7, 0x38ff, 0x33a2, 0x2ed0, 0x38e9, 0x3bd2, 0x380b, 0x3940, 0x3b79, 0x3477, 0x36f4, 0x38b8, 0x382d, 0x3838, 0x37f7, 0x219f, 0x34ec, 0x3af5, 0x347d, 0x3a0e, 0x352e, 0x39f3, 0x39ae, 0x3624, 0x1a5a, 0x329c, 0x3a57, 0x254a, 0x361b, 0x3554, 0x3a17, 0x3888, 0x34c7, 0x3628, 0x3321, 0x39de, 0x34f1, 0x386f, 0x37ae, 0x3709, 0x3909, 0x3ae3, 0x3a0e, 0x3495, 0x3bb8, 0x363c, 0x3039, 0x37e4, 0x30ff, 0x164f, 0x37aa, 0x3b7d, 0x2c60, 0x3828, 0x36b8, 0x235d, 0x29b9, 0x3917, 0x24db, 0x3946, 0x2e75, 0x359c, 0x35c3, 0x3b91, 0x35b5, 0x341f, 0x3873, 0x343a, 0x326a, 0x215c, 0x34f3, 0x35a9, 0x2efa, 0x29dd, 0x3b37, 0x3594, 0x305f, 0x3b48, 0x3bc9, 0x3957, 0x3bac, 0x3638, 0x369e, 0x3a45, 0x3173, 0x3bad, 0x354c, 0x32d9, 0x38d2, 0x3b97, 0x3409, 0x3871, 0x3ac2, +0x3739, 0x2c5b, 0x3480, 0x3206, 0x2ede, 0x345e, 0x3806, 0x354c, 0x38ac, 0x3404, 0x35b5, 0x2250, 0x3957, 0x3831, 0x37c2, 0x331a, 0x36c9, 0x3b7c, 0x2a94, 0x3b00, 0x3722, 0x38c4, 0x35b9, 0x3b30, 0x3af4, 0x3758, 0x3290, 0x33a6, 0x31fe, 0x3937, 0x3b74, 0x3010, 0x3076, 0x344d, 0x3773, 0x22d7, 0x25f7, 0x2cde, 0x3999, 0x3859, 0x32b9, 0x3985, 0x3a7e, 0x39eb, 0x35f1, 0x3a36, 0x3735, 0x3337, 0x34da, 0x30ca, 0x3a16, 0x3523, 0x3802, 0x3a05, 0x3609, 0x310b, 0x3770, 0x389c, 0x2d46, 0x382e, 0x332f, 0x2d06, 0x39d5, 0x3b65, 0x3a48, 0x3b45, 0x2d13, 0x389d, 0x27e8, 0x34e9, 0x3a4d, 0x2802, 0x3903, 0x3ac4, 0x3bb7, 0x38ab, 0x3a80, 0x3725, 0x2f22, 0x358e, 0x3b17, 0x3a80, 0x39b0, 0x3bdd, 0x3aa6, 0x326d, 0x34d4, 0x2f73, 0x39c3, 0x297f, 0x210c, 0x2713, 0x3887, 0x3aec, 0x3a48, 0x3a58, +0x35dc, 0x2ea9, 0x3576, 0x3b80, 0x34c8, 0x3bfb, 0x3268, 0x336c, 0x3574, 0x3712, 0x349c, 0x3bb4, 0x3875, 0x3be8, 0x3b9f, 0x3436, 0x31e8, 0x3a22, 0x2d06, 0x3222, 0x3b99, 0x37ef, 0x3511, 0x3a6f, 0x36dc, 0x3b58, 0x353a, 0x3985, 0x3938, 0x3b64, 0x2753, 0x21b5, 0x2bb1, 0x3291, 0x3af9, 0x30eb, 0x3819, 0x376e, 0x357f, 0x2d58, 0x398d, 0x3966, 0x3a12, 0x32f5, 0x3b9e, 0x3bac, 0x38e8, 0x37bc, 0x3106, 0x3750, 0x39f4, 0x3bf3, 0x38d4, 0x3b41, 0x3b4e, 0x3722, 0x3536, 0x35b1, 0x3a85, 0x34f8, 0x3bcf, 0x351f, 0x3953, 0x39d4, 0x3abc, 0x3521, 0x389f, 0x2386, 0x350b, 0x3b1d, 0x35a3, 0x359c, 0x3607, 0x3b0a, 0x385b, 0x3927, 0x39f9, 0x3a58, 0x36c7, 0x3030, 0x3ba8, 0x348e, 0x2f3d, 0x3973, 0x3b3c, 0x3a02, 0x3abd, 0x3a2e, 0x28f3, 0x3b9b, 0x348e, 0x396b, 0x3963, 0x39dc, 0x3a38, 0x3b12, +0x3a7c, 0x378c, 0x3a31, 0x3068, 0x3790, 0x24a7, 0x39b5, 0x3629, 0x34a4, 0x3bd4, 0x357b, 0x3bc8, 0x356b, 0x3a00, 0x3776, 0x32ad, 0x3327, 0x2da5, 0x2f3a, 0x366c, 0x25f9, 0x34e3, 0x3b50, 0x25c1, 0x33c4, 0x3822, 0x34d7, 0x3bed, 0x3a05, 0x3bab, 0x37e9, 0x37fe, 0x3a3c, 0x380d, 0x369f, 0x3b86, 0x2460, 0x39aa, 0x38e7, 0x388b, 0x1e16, 0x2f0c, 0x39a6, 0x3a99, 0x39b7, 0x35b2, 0x3221, 0x3618, 0x3a08, 0x37fc, 0x3481, 0x3ba6, 0x3408, 0x3415, 0x3adf, 0x3b77, 0x19f6, 0x328c, 0x3830, 0x3996, 0x3afb, 0x3528, 0x37e6, 0x39e1, 0x380b, 0x35bc, 0x3b6c, 0x3a1f, 0x385b, 0x34c9, 0x3b7c, 0x35f5, 0x258c, 0x39ec, 0x30f8, 0x322d, 0x3b8a, 0x3159, 0x399f, 0x2f24, 0x346a, 0x3738, 0x39cb, 0x3949, 0x3a2e, 0x3b54, 0x3adf, 0x3b62, 0x3ab1, 0x316d, 0x3aa6, 0x2ec2, 0x38f8, 0x2b3b, 0x2861, 0x3026, +0x2a43, 0x3b6a, 0x3a73, 0x31d4, 0x352e, 0x3461, 0x345c, 0x34f2, 0x2c0e, 0x38b3, 0x2e79, 0x3ba2, 0x2c1e, 0x3314, 0x371a, 0x3973, 0x2f6f, 0x3a7b, 0x3031, 0x39f1, 0x3b78, 0x381b, 0x2d2b, 0x38a6, 0x3864, 0x3a6b, 0x3045, 0x3731, 0x2d60, 0x382b, 0x31e4, 0x3985, 0x3bce, 0x34fe, 0x39f0, 0x381d, 0x35d3, 0x38a2, 0x2eeb, 0x3278, 0x3ace, 0x344a, 0x37a5, 0x341b, 0x3a62, 0x3549, 0x365d, 0x3a82, 0x3842, 0x37de, 0x3b1f, 0x32d3, 0x3b8e, 0x3a44, 0x2cfd, 0x3885, 0x3b2e, 0x34b1, 0x3674, 0x37d8, 0x3bff, 0x3535, 0x3487, 0x2fbe, 0x3abe, 0x3266, 0x31ad, 0x340a, 0x3be2, 0x21a8, 0x3924, 0x39ea, 0x381b, 0x3351, 0x3aa6, 0x3903, 0x38b5, 0x3284, 0x3937, 0x3a34, 0x344a, 0x3a26, 0x312f, 0x39a8, 0x3b8d, 0x373e, 0x3b66, 0x2764, 0x386d, 0x20a8, 0x381c, 0x395e, 0x2ee0, 0x3820, 0x37f5, 0x3bc2, +0x3bd7, 0x37b6, 0x39dd, 0x3b50, 0x3621, 0x3726, 0x3484, 0x360f, 0x39fa, 0x3b62, 0x2318, 0x1a60, 0x35b8, 0x340b, 0x2d49, 0x35ec, 0x3783, 0x3b02, 0x3654, 0x3b4f, 0x337c, 0x3bff, 0x36aa, 0x34cc, 0x38cd, 0x3555, 0x39a0, 0x34da, 0x2840, 0x3897, 0x3bcc, 0x30ff, 0x347f, 0x3acf, 0x39ac, 0x2544, 0x352e, 0x36d2, 0x3643, 0x33f1, 0x3bd2, 0x30b1, 0x38f3, 0x3a47, 0x3863, 0x37e5, 0x2048, 0x388c, 0x2c07, 0x3abc, 0x342a, 0x3986, 0x38ee, 0x39ff, 0x3485, 0x3947, 0x386c, 0x39e0, 0x3a96, 0x3bdc, 0x3158, 0x3ba6, 0x28fc, 0x29dd, 0x3b4e, 0x3a74, 0x3834, 0x3b8d, 0x1c2f, 0x390f, 0x3009, 0x39db, 0x2dc1, 0x3802, 0x3bb2, 0x3428, 0x2dff, 0x3a33, 0x355f, 0x3122, 0x3152, 0x3615, 0x38d7, 0x38f6, 0x3624, 0x3ac4, 0x1527, 0x3a83, 0x2db8, 0x3847, 0x3afe, 0x3a7e, 0x307e, 0x3711, 0x3726, 0x3a68, +0x2b4b, 0x3b91, 0x360b, 0x3b18, 0x375e, 0x2be2, 0x3a8d, 0x2bbb, 0x2f24, 0x3271, 0x2e97, 0x3734, 0x3a56, 0x35d8, 0x355c, 0x1578, 0x33d1, 0x3b60, 0x2793, 0x350b, 0x34c6, 0x38d3, 0x387f, 0x3a3f, 0x3928, 0x3021, 0x384d, 0x36f8, 0x3413, 0x3be3, 0x3817, 0x2280, 0x36ef, 0x3795, 0x385b, 0x3be6, 0x323d, 0x3880, 0x35d7, 0x3201, 0x3329, 0x3a49, 0x36bf, 0x3585, 0x2df9, 0x3897, 0x338c, 0x313c, 0x343c, 0x3ab6, 0x3927, 0x3514, 0x3944, 0x3bfa, 0x347e, 0x32a5, 0x357f, 0x3b96, 0x375b, 0x38cc, 0x3bc9, 0x384c, 0x39ec, 0x35f4, 0x36a6, 0x3bf9, 0x2aa9, 0x3b18, 0x3172, 0x3bc9, 0x3b41, 0x2e94, 0x39cd, 0x368f, 0x3903, 0x2d54, 0x3a45, 0x3378, 0x3a00, 0x392f, 0x39f1, 0x38c5, 0x2b64, 0x390d, 0x3b77, 0x391d, 0x343c, 0x3627, 0x3826, 0x344a, 0x3a0a, 0x37cb, 0x3b06, 0x3b16, 0x3656, 0x3a47, +0x3be3, 0x35b8, 0x37af, 0x3765, 0x38e8, 0x3bf3, 0x344e, 0x39f7, 0x3320, 0x3590, 0x30b6, 0x395c, 0x3abf, 0x34fe, 0x359a, 0x3a55, 0x39fd, 0x3a41, 0x3a8c, 0x382b, 0x3741, 0x36bb, 0x387f, 0x358a, 0x36f9, 0x3bc8, 0x33f7, 0x34bd, 0x3460, 0x3aa3, 0x39dc, 0x31f7, 0x38e1, 0x3b21, 0x384d, 0x38bb, 0x38ce, 0x381d, 0x38d7, 0x349a, 0x2d43, 0x3251, 0x3917, 0x39aa, 0x3871, 0x3a59, 0x3a1c, 0x382c, 0x37c1, 0x3a9e, 0x2f8f, 0x32a5, 0x1583, 0x319d, 0x38ff, 0x393c, 0x38e8, 0x2da0, 0x396a, 0x3987, 0x3887, 0x339d, 0x360c, 0x37d5, 0x3ad6, 0x3986, 0x3559, 0x3a60, 0x392b, 0x2e25, 0x2878, 0x3184, 0x309b, 0x35c8, 0x38cf, 0x358b, 0x3804, 0x3943, 0x312d, 0x3a2a, 0x29ab, 0x3b0d, 0x3959, 0x33c5, 0x3bfe, 0x33f0, 0x3a98, 0x29f1, 0x39ee, 0x37da, 0x3a1c, 0x3896, 0x387b, 0x3a07, 0x2e45, 0x3932, +0x3556, 0x38f6, 0x3826, 0x3299, 0x2e6c, 0x3957, 0x3687, 0x35e5, 0x34ea, 0x34ab, 0x2b4e, 0x3a50, 0x365f, 0x39d6, 0x3968, 0x3ad5, 0x3966, 0x305e, 0x2ef6, 0x3471, 0x343d, 0x3bab, 0x2e4b, 0x3853, 0x3a96, 0x3be5, 0x2a10, 0x3790, 0x34c6, 0x3aa6, 0x3864, 0x3b07, 0x31b7, 0x3b38, 0x25f8, 0x2f15, 0x34dc, 0x3bbd, 0x379f, 0x363d, 0x3b1a, 0x3862, 0x37c5, 0x32a9, 0x3590, 0x3074, 0x31de, 0x30f6, 0x37ed, 0x3722, 0x34fd, 0x3a1f, 0x3580, 0x37c5, 0x3b84, 0x3be4, 0x357c, 0x36ed, 0x30d5, 0x38cd, 0x343e, 0x3831, 0x397f, 0x36db, 0x383a, 0x24e2, 0x3a9d, 0x39dd, 0x36f7, 0x360a, 0x2be4, 0x2dca, 0x321c, 0x361b, 0x378e, 0xe22, 0x2486, 0x3550, 0x3900, 0x34a9, 0x3b2f, 0x3829, 0x1f15, 0x3906, 0x3220, 0x25b1, 0x38b1, 0x398d, 0x382e, 0x298d, 0x39a5, 0x3bb2, 0x31fd, 0x3964, 0x36f6, 0x3835, +0x3907, 0x3b4f, 0x3b17, 0x390d, 0x2b5c, 0x3533, 0x3a28, 0x345e, 0x3954, 0x386e, 0x3b0f, 0x321c, 0x3bce, 0x326d, 0x3a39, 0x3a70, 0x38b1, 0x38c6, 0x3aa4, 0x3aa1, 0x38b6, 0x3a65, 0x3b54, 0x3230, 0x397a, 0x3b63, 0x3869, 0x3003, 0x368e, 0x3a48, 0x3a19, 0x38be, 0x3bb0, 0x2e6e, 0x3ad2, 0x2a53, 0x35d9, 0x39d2, 0x2dd0, 0x32b2, 0x3180, 0x229f, 0x3bcc, 0x38d6, 0x3b74, 0x3bd1, 0x37f7, 0x380d, 0x3928, 0x3b54, 0x35ff, 0x3457, 0x3470, 0x3155, 0x3a41, 0x342c, 0x3af8, 0x2de0, 0x3608, 0x36ab, 0x3bdd, 0x35e3, 0x2aa9, 0x37d0, 0x3a4c, 0x35dc, 0x2e36, 0x37a3, 0x39b3, 0x2e4b, 0x3b11, 0x323a, 0x38de, 0x3ba3, 0x38ff, 0x3823, 0x310d, 0x3b05, 0x39f8, 0x3abf, 0x3bcf, 0x36c4, 0x3ae2, 0x36cd, 0x3a8f, 0x3a91, 0x368f, 0x37aa, 0x3969, 0x39aa, 0x3bff, 0x3422, 0x37c5, 0x35f0, 0x3b46, 0x3a21, +0x384a, 0x3984, 0x3349, 0x2014, 0x38ea, 0x28c4, 0x3520, 0x3a22, 0x3bec, 0x32e8, 0x275e, 0x3b5a, 0x3a2d, 0x3a3f, 0x3690, 0x321c, 0x3b62, 0x392f, 0x3a2c, 0x36b7, 0x38a2, 0x3205, 0x3520, 0x3b6f, 0x3378, 0x3911, 0x3833, 0x3991, 0x380b, 0x3a4a, 0x38a6, 0x3865, 0x3aa6, 0x38e7, 0x397a, 0x38fa, 0x3b10, 0x3440, 0x39a2, 0x3566, 0x365d, 0x307a, 0x2d18, 0x3978, 0x389c, 0x39f5, 0x38df, 0x29c3, 0x3a62, 0x3b75, 0x39b5, 0x2015, 0x307b, 0x39e1, 0x288f, 0x3936, 0x31ee, 0x3be2, 0x35e1, 0x391f, 0x345d, 0x39ff, 0x390c, 0x32cb, 0x38ce, 0x3441, 0x3a3a, 0x3713, 0x2fce, 0x321b, 0x2deb, 0x34e3, 0x3ade, 0x2a6e, 0x3bff, 0x3882, 0x3bec, 0x3ad9, 0x3abc, 0x3bb4, 0x36d8, 0x3617, 0x3015, 0x3a62, 0x3115, 0x384d, 0x3a19, 0x35cf, 0x3468, 0x300f, 0x371e, 0x34ba, 0x378b, 0x37fb, 0x3af8, 0x2fad, +0x2bed, 0x3854, 0x38ab, 0x3879, 0x2ff5, 0x3808, 0x38d5, 0x3ba2, 0x390c, 0x3ba1, 0x3343, 0x373d, 0x34b8, 0x37b5, 0x3653, 0x2db9, 0x3433, 0x318b, 0x39c9, 0x333d, 0x2ca0, 0x3b89, 0x3002, 0x34f2, 0x3969, 0x3a48, 0x1df8, 0x2421, 0x3b9d, 0x3b5a, 0x398a, 0x394b, 0x2fea, 0x296d, 0x3b39, 0x3696, 0x3b4d, 0x340d, 0x3b7e, 0x39ba, 0x2f44, 0x37af, 0x38e4, 0x3a86, 0x3b2d, 0x3954, 0x2bed, 0x3506, 0x2501, 0x3bc9, 0x3a58, 0x3abb, 0x384d, 0x33d6, 0x34d0, 0x3468, 0x3bbf, 0x3a17, 0x3534, 0x3b31, 0x3a7a, 0x3644, 0x36e3, 0x3a50, 0x2284, 0x3b1e, 0x37ed, 0x3ba9, 0x3919, 0x39d3, 0x3235, 0x3bc0, 0x3938, 0x32ea, 0x32fc, 0x3bc0, 0x3a91, 0x3af2, 0x3410, 0x38b5, 0x2ca8, 0x3097, 0x2b7c, 0x3528, 0x3b69, 0x3602, 0x3637, 0x383d, 0x34a3, 0x3ac4, 0x2c6b, 0x302e, 0x3b38, 0x34a3, 0x3519, 0x3674, +0x2f15, 0x2cb7, 0x3a46, 0x3663, 0x3b63, 0x38b4, 0x3b34, 0x3ba3, 0x2d14, 0x3422, 0x3701, 0x38e1, 0x39fe, 0x3112, 0x38dd, 0x357c, 0x2e9f, 0x35d1, 0x36ec, 0x306e, 0x38ea, 0x36c8, 0x34c7, 0x38e4, 0x3aee, 0x3ab5, 0x355e, 0x395c, 0x242b, 0x3197, 0x3832, 0x3987, 0x3682, 0x38f9, 0x3aaa, 0x209e, 0x35d4, 0x36a0, 0x3779, 0x39ff, 0x33e5, 0x3138, 0x35a6, 0x362f, 0x3b4e, 0x3417, 0x27c8, 0x39db, 0x3004, 0x3b6b, 0x30bd, 0x31e3, 0x3988, 0x32f4, 0x3ac7, 0x305a, 0x248b, 0x2dae, 0x21bf, 0x34c6, 0x2993, 0x3b6b, 0x3530, 0x3acc, 0x3563, 0x2e8c, 0x3492, 0x3954, 0x388b, 0x3b35, 0x3880, 0x38c4, 0x34c6, 0x3bb8, 0x360d, 0x28f6, 0x390a, 0x39e5, 0x2f09, 0x38e5, 0x34ca, 0x3634, 0x38b2, 0x39b7, 0x2d73, 0x396d, 0x3490, 0x39fd, 0x38dd, 0x39b9, 0x3adb, 0x326e, 0x3afc, 0x3bf5, 0x3bfc, 0x2b6a, +0x3440, 0x36eb, 0x32c4, 0x3be7, 0x3215, 0x3a10, 0x2dd5, 0x3999, 0x3bcd, 0x39a9, 0x351a, 0x36ad, 0x3732, 0x28a4, 0x205e, 0x30a4, 0x3a0b, 0x399e, 0x356a, 0x2c98, 0x3912, 0x3471, 0x3b45, 0x38df, 0x3b91, 0x303f, 0x3bf6, 0x374a, 0x3813, 0x3739, 0x30a9, 0x3155, 0x385b, 0x3952, 0x3229, 0x3639, 0x39c8, 0x3827, 0x333c, 0x3978, 0x38be, 0x3a90, 0x35b5, 0x3655, 0x33be, 0x39df, 0x3b24, 0x392a, 0x2bda, 0x3895, 0x3ac0, 0x352c, 0x2c77, 0x3893, 0x3ac3, 0x3305, 0x3699, 0x2a79, 0x3bf9, 0x3821, 0x39fa, 0x38b3, 0x3428, 0x3564, 0x3073, 0x37ba, 0x2877, 0x3b5f, 0x2c54, 0x35da, 0x3a33, 0x37d7, 0x396b, 0x3408, 0x36a3, 0x2d1b, 0x3860, 0x3bf5, 0x36cc, 0x3b43, 0x3846, 0x34ce, 0x3b1d, 0x34ca, 0x351d, 0x323d, 0x37ce, 0x3ac1, 0x35e5, 0x3b80, 0x3b7e, 0x3a78, 0x38e5, 0x3106, 0x3892, 0x35a5, +0x38f9, 0x3ac7, 0x3886, 0x3a8d, 0x3a5c, 0x39f0, 0x2c1e, 0x3ad7, 0x37bf, 0x366d, 0x3715, 0x290c, 0x320b, 0x3639, 0x3442, 0x33eb, 0x3602, 0x2b7b, 0x344e, 0x3906, 0x3780, 0x372b, 0x39f5, 0x39d7, 0x3742, 0x35d3, 0x3672, 0x2d25, 0x397c, 0x3953, 0x3970, 0x37d2, 0x38f2, 0x3790, 0x30c7, 0x3417, 0x31e2, 0x3b53, 0x3587, 0x3ad8, 0x3875, 0x3908, 0x2c27, 0x33b7, 0x3ad5, 0x3641, 0x3bcb, 0x3b70, 0x3b87, 0x346d, 0x397f, 0x25be, 0x3137, 0x3946, 0x36c4, 0x3b67, 0x3a20, 0x36e7, 0x31b1, 0x3948, 0x3bf5, 0x2b26, 0x34fe, 0x3522, 0x30e8, 0x2630, 0x37ff, 0x368f, 0x389e, 0x2d92, 0x37b4, 0x39b1, 0x3532, 0x39cf, 0x39ae, 0x3a2f, 0x3862, 0x3656, 0x39cb, 0x3a84, 0x37e3, 0x3b06, 0x3901, 0x2ccb, 0x2b4e, 0x348b, 0x3abf, 0x3a1f, 0x2e1e, 0x2d75, 0x39e5, 0x3143, 0x39ff, 0x38c2, 0x3ba0, 0x3a64, +0x3969, 0x2ffd, 0x39fd, 0x399d, 0x3863, 0x3896, 0x3ab1, 0x3815, 0x3bd8, 0x34fb, 0x3419, 0x3bf7, 0x38cc, 0x3659, 0x2bbc, 0x3bb0, 0x3abb, 0x3554, 0x394a, 0x3ad8, 0x2ea5, 0x3bf6, 0x37bb, 0x2363, 0x3aef, 0x36dc, 0x2dfb, 0x3721, 0x3558, 0x390c, 0x36df, 0x2ff3, 0x3b70, 0x266e, 0x3b66, 0x3957, 0x2884, 0x34e4, 0x3589, 0x3864, 0x3a4b, 0x30d7, 0x3611, 0x34ec, 0x36d2, 0x37f9, 0x3abe, 0x2be6, 0x39ed, 0x336a, 0x3aba, 0x396c, 0x3838, 0x23cb, 0x3bbb, 0x3944, 0x2f70, 0x2d41, 0x3b28, 0x3b81, 0x305c, 0x3a88, 0x38a6, 0x3829, 0x33c9, 0x34e0, 0x3a41, 0x346a, 0x3b1b, 0x378f, 0x3a1a, 0x395f, 0x3ba3, 0x3072, 0x3918, 0x302d, 0x3949, 0x3a56, 0x37ac, 0x3807, 0x3b7f, 0x3461, 0x3a65, 0x349a, 0x3b40, 0x2c4d, 0x39d3, 0x3b6e, 0x2f82, 0x3797, 0x3bdb, 0x3b73, 0x30ee, 0x3b5a, 0x2fa1, 0x3be4, +0x3b02, 0x38ec, 0x3b86, 0x3569, 0x3bef, 0x3029, 0x3368, 0x3ad9, 0x2e8e, 0x3bd8, 0x34cb, 0x2db1, 0x3aa2, 0x38da, 0x2ca5, 0x3ad4, 0x3842, 0x3a34, 0x3777, 0x3a3d, 0x3b37, 0x3bc7, 0x32ef, 0x3bd1, 0x3bd9, 0x34b4, 0x301f, 0x38af, 0x235f, 0x3595, 0x3a7d, 0x3a9a, 0x3b4b, 0x2801, 0x318e, 0x2ce5, 0x39ab, 0x39d5, 0x3986, 0x3823, 0x2b17, 0x395e, 0x35e3, 0x3740, 0x39e9, 0x3882, 0x384c, 0x36b7, 0x3426, 0x396b, 0x3b1d, 0x2c8e, 0x3bb6, 0x30a8, 0x37b3, 0x35f6, 0x3a37, 0x367f, 0x3877, 0x342f, 0x3939, 0x317c, 0x38b9, 0x3b47, 0x3437, 0x3533, 0x3ba2, 0x3b25, 0x3b39, 0x36d3, 0x34b1, 0x39b0, 0x30f6, 0x349a, 0x1e90, 0x3a7f, 0x3559, 0x37ed, 0x3aa9, 0x360f, 0x3445, 0x3256, 0x3925, 0x3974, 0x3897, 0x3ab0, 0x3410, 0x36d2, 0x367d, 0x2f29, 0x3917, 0x34d4, 0x3996, 0x3450, 0x3486, 0x3b67, +0x2c33, 0x3407, 0x3708, 0x321b, 0x39aa, 0x388f, 0x3427, 0x39c1, 0x3990, 0x3a24, 0x3970, 0x3bb4, 0x34be, 0x366e, 0x3bfc, 0x3748, 0x3bcc, 0x2d09, 0x394d, 0x398c, 0x3b19, 0x3855, 0x3954, 0x3268, 0x32ae, 0x3a02, 0x39e1, 0x3122, 0x3a60, 0x3b17, 0x3be2, 0x3b90, 0x36a0, 0x3962, 0x3b1d, 0x3871, 0x3368, 0x3114, 0x355d, 0x39ea, 0x3a34, 0x35dd, 0x3976, 0x3b29, 0x239b, 0x3576, 0x2bf6, 0x35f5, 0x314f, 0x3af9, 0x3535, 0x3a04, 0x3b55, 0x3a1c, 0x1f50, 0x348a, 0x3ab2, 0x39d1, 0x3bad, 0x255b, 0x344f, 0x24a5, 0x29c8, 0x38aa, 0x3a5f, 0x34b3, 0x395e, 0x35b9, 0x3a6b, 0x3ad1, 0x357f, 0x38c1, 0x37c8, 0x3b16, 0x31cb, 0x3464, 0x3a8b, 0x39ce, 0x3592, 0x3a6c, 0x39a6, 0x303b, 0x34eb, 0x3019, 0x3a0a, 0x3996, 0x3a65, 0x3bb8, 0x3804, 0x2a64, 0x3481, 0x3452, 0x39e7, 0x3be7, 0x34e4, 0x39ae, +0x3a52, 0x3a35, 0x3365, 0x35c6, 0x1e02, 0x2e5d, 0x399f, 0x375a, 0x3b3f, 0x3a1d, 0x34a7, 0x37fd, 0x34f5, 0x3a0f, 0x2909, 0x2ece, 0x350b, 0x38e1, 0x3a4e, 0x2c7f, 0x384d, 0x3aab, 0x2fc3, 0x3852, 0x3473, 0x3936, 0x359c, 0x3750, 0x3602, 0x36c7, 0x3815, 0x3790, 0x3980, 0x3544, 0x39b9, 0x3bcd, 0x3c00, 0x3560, 0x3aaa, 0x3b5a, 0x3301, 0x2c5a, 0x3a33, 0x2ccf, 0x3a7e, 0x364c, 0x393c, 0x34a1, 0x2da5, 0x372d, 0x350b, 0x3977, 0x37f4, 0x37d6, 0x3536, 0x3861, 0x360a, 0x3abb, 0x3871, 0x389e, 0x383e, 0x3b3e, 0x2744, 0x33d3, 0x3b94, 0x3028, 0x3bb7, 0x3736, 0x2da7, 0x2b10, 0x3a43, 0x345c, 0x38ac, 0x3574, 0x3689, 0x350d, 0x3bb1, 0x3acc, 0x38eb, 0x345f, 0x39f8, 0x325c, 0x36d3, 0x30a4, 0x3b49, 0x2b46, 0x3692, 0x3a37, 0x3788, 0x358d, 0x391b, 0x3872, 0x3632, 0x3ae4, 0x3b05, 0x35e4, +0x39ac, 0x34fc, 0x37e4, 0x3b1b, 0x380e, 0x2d0a, 0x38e3, 0x394b, 0x2c45, 0x3bcf, 0x3b0f, 0x38a0, 0x3456, 0x3668, 0x38ce, 0x3992, 0x38c0, 0x35fa, 0x320a, 0x38d9, 0x3bb9, 0x3334, 0x396b, 0x398f, 0x3854, 0x3bbf, 0x34c2, 0x2ae6, 0x3808, 0x3625, 0x29bb, 0x3aec, 0x246c, 0x3573, 0x3ae7, 0x3879, 0x3bdf, 0x2c64, 0x33f4, 0x3a63, 0x39c0, 0x3a35, 0x38f8, 0x38c6, 0x3b30, 0x3a3b, 0x2ec2, 0x32da, 0x316d, 0x2136, 0x3be5, 0x332b, 0x36c6, 0x38db, 0x3058, 0x2d9e, 0x37f9, 0x3733, 0x3ba2, 0x1d40, 0x339d, 0x2d02, 0x39e3, 0x3952, 0x380f, 0x3a19, 0x3795, 0x3799, 0x3547, 0x3b2a, 0x37c2, 0x3958, 0x39d1, 0x3303, 0x3612, 0x3aa8, 0x3ac2, 0x38f3, 0x2d4a, 0x37e8, 0x37e4, 0x39c1, 0x3bab, 0x36da, 0x3809, 0x2fe2, 0x3bd9, 0x3328, 0x397b, 0x3456, 0x324e, 0x34c7, 0x37d2, 0x3017, 0x3a40, 0x2c48, +0x39cc, 0x2c1f, 0x3a56, 0x3a9b, 0x3987, 0x2d9c, 0x38db, 0x39c4, 0x3a54, 0x373c, 0x367c, 0x3b9d, 0x38af, 0x3649, 0x38bc, 0x382e, 0x2f5f, 0x34b9, 0x2d83, 0x3720, 0x3b84, 0x39f7, 0x38b1, 0x3600, 0x3ba5, 0x3880, 0x39d6, 0x33af, 0x3bcd, 0x3bc0, 0x38aa, 0x277a, 0x3548, 0x2f9b, 0x3521, 0x3a8d, 0x3622, 0x2fd5, 0x35ca, 0x3405, 0x3399, 0x3428, 0x3ac0, 0x34e7, 0x3866, 0x3454, 0x3631, 0x2247, 0x34a1, 0x398b, 0x388d, 0x39cb, 0x3461, 0x3937, 0x351e, 0x3b71, 0x36a4, 0x3a61, 0x3ac2, 0x3b05, 0x39b4, 0x3b1c, 0x3bdf, 0x3835, 0x3398, 0x3931, 0x38c3, 0x3922, 0x292f, 0x39a7, 0x3688, 0x3817, 0x32d1, 0x37e9, 0x382b, 0x355c, 0x39a1, 0x38cc, 0x36ee, 0x35c6, 0x395f, 0x2c4a, 0x39db, 0x29f5, 0x3886, 0x3b23, 0x38db, 0x3bc0, 0x345a, 0x39da, 0x3ac1, 0x3b5f, 0x3ae9, 0x368f, 0x397e, 0x3b89, +0x3805, 0x3adf, 0x3610, 0x3a37, 0x3947, 0x3618, 0x31d9, 0x3b3a, 0x3a13, 0x376f, 0x3141, 0x3b63, 0x39ce, 0x3ad7, 0x28dc, 0x340b, 0x30e4, 0x35e0, 0x354f, 0x387c, 0x37fa, 0x3455, 0x38b9, 0x3726, 0x2d54, 0x3338, 0x343a, 0x3a7c, 0x24e3, 0x3892, 0x3a8e, 0x3a8f, 0x37a8, 0x39e6, 0x398a, 0x3b42, 0x3360, 0x3a57, 0x38e5, 0x3afb, 0x3719, 0x36cf, 0x387c, 0x3a4e, 0x2edd, 0x3a36, 0x25b5, 0x3135, 0x346b, 0x3b0e, 0x2f3a, 0x2ee6, 0x384b, 0x3aab, 0x3b0b, 0x34e7, 0x30ea, 0x34e8, 0x38ef, 0x3899, 0x387a, 0x3786, 0x2456, 0x2ccb, 0x3af0, 0x3699, 0x35d2, 0x379d, 0x39bd, 0x36f8, 0x27a8, 0x397a, 0x2511, 0x35a2, 0x3a21, 0x3848, 0x27c8, 0x20df, 0x3a83, 0x3bb3, 0x2044, 0x38ec, 0x3095, 0x39cf, 0x2f28, 0x3bd6, 0x3939, 0x360c, 0x2d7b, 0x389c, 0x3585, 0x3bcc, 0x11d9, 0x3a41, 0x3591, 0x3813, +0x38ae, 0x3998, 0x3a8d, 0x31c7, 0x3af7, 0x3392, 0x3586, 0x3881, 0x3a64, 0x3b82, 0x3a29, 0x3497, 0x3b46, 0x3083, 0x3523, 0x3685, 0x3bb9, 0x3575, 0x317b, 0x38da, 0x3b2a, 0x38cc, 0x3764, 0x3103, 0x396e, 0x3bad, 0x35e5, 0x3a46, 0x3b72, 0x37d0, 0x3359, 0x3b8e, 0x3845, 0x2fc1, 0x2b03, 0x3837, 0x3186, 0x366f, 0x185a, 0x2ceb, 0x36be, 0x390a, 0x3513, 0x31d2, 0x357a, 0x3769, 0x392e, 0x39cb, 0x31a1, 0x3197, 0x3283, 0x39f2, 0x37d5, 0x2d92, 0x3599, 0x31f7, 0x30d1, 0x3b0b, 0x39b9, 0x3434, 0x324f, 0x3627, 0x321a, 0x30b3, 0x39f5, 0x387d, 0x32e6, 0x3a6c, 0x3597, 0x34ad, 0x2fd5, 0x3a5e, 0x2cbd, 0x34c2, 0x3a9c, 0x369e, 0x3192, 0x321c, 0x2600, 0x37af, 0x3841, 0x3a09, 0x3348, 0x309c, 0x3396, 0x1439, 0x34de, 0x3978, 0x3938, 0x3600, 0x28e3, 0x2d7e, 0x3296, 0x36ac, 0x35d4, 0x265a, +0x318c, 0x383d, 0x3955, 0x3473, 0x3ad5, 0x3949, 0x3923, 0x2f75, 0x31e1, 0x36ba, 0x3b86, 0x393c, 0x3563, 0x38a8, 0x37ee, 0x378a, 0x38d6, 0x38e6, 0x3922, 0x2c66, 0x33fc, 0x3875, 0x388d, 0x3b8b, 0x295c, 0x3ac3, 0x3432, 0x2d94, 0x37f3, 0x2a0b, 0x38c1, 0x3bbb, 0x3735, 0x3b36, 0x3a8b, 0x3291, 0x3908, 0x39d7, 0x375a, 0x2f3a, 0x330d, 0x398d, 0x3890, 0x3bf0, 0x38ba, 0x3ac0, 0x21f8, 0x3b00, 0x396c, 0x34d9, 0x3409, 0x3463, 0x3187, 0x3522, 0x2bb8, 0x358a, 0x30e2, 0x33bd, 0x38db, 0x36f9, 0x2f32, 0x3a39, 0x3884, 0x3be5, 0x3879, 0x3126, 0x3878, 0x3775, 0x397e, 0x3a5f, 0x3974, 0x3a58, 0x3ada, 0x3b0a, 0x3917, 0x3b63, 0x3176, 0x384b, 0x3a52, 0x3b01, 0x3ace, 0x3b86, 0x336a, 0x3647, 0x3877, 0x37b3, 0x2a41, 0x2db4, 0x189d, 0x39e4, 0x3470, 0x2d16, 0x2c98, 0x3a47, 0x3495, 0x38fd, +0x3bae, 0x322f, 0x39ff, 0x3075, 0x20be, 0x3583, 0x3b80, 0x39b5, 0x34a9, 0x3a4b, 0x362a, 0x3a70, 0x3964, 0x3925, 0x37ec, 0x3b19, 0x30e9, 0x38a7, 0x3688, 0x386d, 0x3a48, 0x2faa, 0x3b5f, 0x3693, 0x367a, 0x374c, 0x3b97, 0x3beb, 0x36ce, 0x37fc, 0x38fe, 0x39c9, 0x38d5, 0x25d5, 0x36e3, 0x3a77, 0x3987, 0x3bad, 0x3a48, 0x3871, 0x318d, 0x371f, 0x3614, 0x3a6e, 0x3662, 0x3bae, 0x3a41, 0x2973, 0x3aa6, 0x29d1, 0x3910, 0x3bca, 0x34d4, 0x24ea, 0x3611, 0x37c5, 0x32cc, 0x3a93, 0x3a4c, 0x3b10, 0x3790, 0x3181, 0x346f, 0x39b8, 0x3720, 0x3a7e, 0x39c7, 0x2d80, 0x324f, 0x3bf8, 0x373f, 0x3039, 0x3872, 0x2ad3, 0x2b33, 0x3803, 0x39d1, 0x38c2, 0x2ce6, 0x3943, 0x375f, 0x37ca, 0x37a5, 0x3a00, 0x20f2, 0x3449, 0x2fc9, 0x39bb, 0x3775, 0x364c, 0x3926, 0x39ae, 0x3b18, 0x38ad, 0x3803, 0x3032, +0x2d61, 0x322b, 0x383d, 0x3a27, 0x3437, 0x290e, 0x3314, 0x3222, 0x3862, 0x3712, 0x310c, 0x3984, 0x3b97, 0x35b6, 0x39dd, 0x305e, 0x3986, 0x3a78, 0x2e12, 0x3091, 0x3ae9, 0x3b2a, 0x3887, 0x3a31, 0x2fd3, 0x381c, 0x3082, 0x3934, 0x37a5, 0x3b6a, 0x35a3, 0x320e, 0x39f1, 0x2ad6, 0x3295, 0x388a, 0x3baa, 0x372c, 0x3345, 0x3985, 0x3b40, 0x2caa, 0x3264, 0x30ad, 0x3965, 0x3bcd, 0x3830, 0x3921, 0x3ae3, 0x3bdd, 0x3b55, 0x3804, 0x38c9, 0x3430, 0x3995, 0x3b93, 0x37b7, 0x398e, 0x348e, 0x3a2b, 0x3ad6, 0x336c, 0x35c2, 0x3a01, 0x3284, 0x3a0f, 0x306c, 0x37e3, 0x3836, 0x3aea, 0x3490, 0x30bd, 0x3bb3, 0x3495, 0x3b7a, 0x3908, 0x3905, 0x34ff, 0x3a18, 0x2c6d, 0x31f6, 0x393b, 0x2b1c, 0x3b05, 0x3367, 0x383c, 0x3a5c, 0x34d2, 0x37dd, 0x364e, 0x38a6, 0x30ac, 0x36ab, 0x3272, 0x3a96, 0x34e8, +0x3705, 0x2f61, 0x3879, 0x3ae0, 0x2bec, 0x3a46, 0x39fc, 0x3b64, 0x3964, 0x390a, 0x3827, 0x30c6, 0x38c4, 0x3897, 0x3855, 0x38cf, 0x3074, 0x39fe, 0x3513, 0x38b8, 0x3a90, 0x3506, 0x3a0b, 0x39bf, 0x3ba3, 0x35b1, 0x3942, 0x30dc, 0x3a64, 0x3624, 0x39bd, 0x3725, 0x1c9a, 0x34cb, 0x335a, 0x3b3b, 0x3329, 0x2bda, 0x3368, 0x3b70, 0x3096, 0x3754, 0x2fd4, 0x35de, 0x2d13, 0x3618, 0x3025, 0x3684, 0x35b2, 0x3732, 0x384a, 0x2dbe, 0x317b, 0x3a1e, 0x388c, 0x3729, 0x393b, 0x377d, 0x3be1, 0x3a7b, 0x2776, 0x38c5, 0x3afb, 0x3334, 0x33d8, 0x3b7e, 0x369a, 0x39be, 0x3aa4, 0x3afb, 0x3a6c, 0x38c3, 0x3a6a, 0x3911, 0x2a60, 0x3543, 0x3249, 0x3592, 0x2bd4, 0x3a76, 0x3ab9, 0x38a3, 0x399a, 0x3b60, 0x3a47, 0x31ec, 0x385b, 0x3677, 0x3909, 0x3915, 0x30fb, 0x3ae8, 0x3a23, 0x38e7, 0x2364, 0x38f0, +0x3bb5, 0x31e2, 0x2bb9, 0x3443, 0x3631, 0x392e, 0x389f, 0x3447, 0x3ba3, 0x3a47, 0x3673, 0x3ab7, 0x3acf, 0x3871, 0x3770, 0x3865, 0x3139, 0x2830, 0x3b65, 0x38ab, 0x35d1, 0x38c0, 0x3684, 0x2fa5, 0x36ba, 0x38cb, 0x3a9d, 0x34b8, 0x3b1a, 0x3bcb, 0x3830, 0x3ab6, 0x2eec, 0x3832, 0x3b33, 0x3678, 0x38a2, 0x31ff, 0x3a7d, 0x3bd3, 0x34e8, 0x3819, 0x392f, 0x3704, 0x3b01, 0x25fd, 0x3729, 0x3557, 0x3bc3, 0x2e36, 0x3323, 0x3aed, 0x357a, 0x3b4b, 0x3412, 0x3637, 0x3b92, 0x3360, 0x39c2, 0x3776, 0x32a8, 0x3896, 0x2f5b, 0x328a, 0x31d9, 0x3bb4, 0x3ba2, 0x3a2c, 0x3a12, 0x305a, 0x31f9, 0x3523, 0x32b6, 0x3822, 0x2624, 0x3491, 0x3811, 0x3238, 0x3acb, 0x3a6f, 0x3662, 0x38b9, 0x3b68, 0x3a24, 0x35fb, 0x3be2, 0x37d9, 0x347b, 0x33b2, 0x3a36, 0x3816, 0x39cf, 0x377e, 0x2cee, 0x300a, 0x330d, +0x359c, 0x3826, 0x2baa, 0x3b80, 0x3b04, 0x380d, 0x3a4e, 0x2f7c, 0x3667, 0x3be5, 0x3b0a, 0x380a, 0x360d, 0x3be3, 0x3b83, 0x39c0, 0x391b, 0x285a, 0x3b4b, 0x38cb, 0x3a85, 0x3aeb, 0x3853, 0x355f, 0x3ab5, 0x33be, 0x38ff, 0x382f, 0x3be6, 0x3916, 0x36ff, 0x3a3e, 0x3b88, 0x3812, 0x3687, 0x2c26, 0x3921, 0x394b, 0x2e6f, 0x3aa9, 0x3b77, 0x3848, 0x3b3e, 0x38b4, 0x3811, 0x3659, 0x31d5, 0x3977, 0x3b06, 0x39b4, 0x34bf, 0x31cc, 0x3b30, 0x3a6e, 0x3712, 0x3b52, 0x3b7a, 0x37bd, 0x3484, 0x3bdd, 0x343d, 0x3bb5, 0x3952, 0x2f41, 0x3a12, 0x3b3e, 0x27fe, 0x39d2, 0x39f4, 0x2ca1, 0x3485, 0x36ba, 0x3156, 0x3905, 0x3ba8, 0x39cd, 0x3b64, 0x3ba5, 0x3c00, 0x3ae8, 0x3452, 0x3a39, 0x3861, 0x3b8e, 0x37b1, 0x3bcd, 0x350e, 0x379d, 0x3b83, 0x34cb, 0x3205, 0x39fc, 0x3669, 0x3508, 0x2a1c, 0x39f9, +0x3876, 0x3602, 0x2b8f, 0x36be, 0x3885, 0x2caa, 0x3532, 0x31a8, 0x3956, 0x3139, 0x3709, 0x2fce, 0x3987, 0x3ab4, 0x3406, 0x3727, 0x32dd, 0x3ac9, 0x356b, 0x30c9, 0x2cbb, 0x3552, 0x2c69, 0x39ce, 0x3ad5, 0x3753, 0x290e, 0x36c4, 0x3a7c, 0x3b32, 0x2e36, 0x37db, 0x38b0, 0x3912, 0x34f7, 0x228b, 0x391f, 0x2fbd, 0x3850, 0x3a5e, 0x3a5b, 0x3b82, 0x3a6e, 0x349c, 0x38ce, 0x3bcb, 0x3b4f, 0x31e8, 0x38bd, 0x34ad, 0x3451, 0x3318, 0x34d5, 0x388f, 0x39cf, 0x3844, 0x38d4, 0x3421, 0x38fa, 0x269e, 0x293c, 0x34f0, 0x3438, 0x372c, 0x34b0, 0x36d5, 0x2aa6, 0x3805, 0x3821, 0x31db, 0x39fc, 0x3aa9, 0x26e4, 0x34b9, 0x3215, 0x214a, 0x39e6, 0x3278, 0x39b1, 0x2e97, 0x34e4, 0x3ae7, 0x3bb6, 0x3b79, 0x388d, 0x3b2d, 0x3642, 0x32fe, 0x3b36, 0x39b3, 0x3957, 0x2d0f, 0x34e9, 0x3aef, 0x381d, 0x3b22, +0x2fcf, 0x38e8, 0x3648, 0x2d35, 0x3773, 0x3936, 0x38f7, 0x242a, 0x3bef, 0x3bfa, 0x389a, 0x34e9, 0x328b, 0x3392, 0x3753, 0x3a4c, 0x3ada, 0x2937, 0x38c5, 0x3a6a, 0x2fae, 0x2d27, 0x349e, 0x3be1, 0x34fe, 0x3604, 0x3a69, 0x3b92, 0x384b, 0x387b, 0x28ae, 0x347e, 0x3b9f, 0x3a73, 0x384d, 0x3a08, 0x3961, 0x35a6, 0x38fe, 0x36cc, 0x3962, 0x3456, 0x3ae6, 0x2782, 0x38f8, 0x3bc1, 0x3639, 0x301e, 0x38cf, 0x3873, 0x32d4, 0x3a2c, 0x3aba, 0x3a42, 0x204d, 0x37ae, 0x3adb, 0x3b1a, 0x29ed, 0x30ba, 0x381f, 0x36c0, 0x3602, 0x2dde, 0x3735, 0x3701, 0x3bae, 0x3645, 0x3412, 0x3601, 0x37d5, 0x3aee, 0x39b3, 0x3a06, 0x3ac6, 0x3822, 0x363e, 0x3af8, 0x32f9, 0x39c9, 0x2c2d, 0x3672, 0x29bf, 0x3a06, 0x3875, 0x3758, 0x35cc, 0x3b92, 0x3a44, 0x35ac, 0x3b23, 0x2c6f, 0x3aa4, 0x3676, 0x3be5, 0x3137, +0x38fb, 0x371e, 0x38ad, 0x39cf, 0x347c, 0x3a24, 0x3887, 0x3811, 0x396e, 0x39d1, 0x33cc, 0x3bb5, 0x34e3, 0x39dd, 0x35c5, 0x38be, 0x37cf, 0x372a, 0x3ada, 0x3acd, 0x332c, 0x38c5, 0x35fe, 0x2e0c, 0x388e, 0x3480, 0x3bac, 0x39ad, 0x3770, 0x3aec, 0x3ba5, 0x38eb, 0x3b10, 0x33fd, 0x26db, 0x319c, 0x3aa4, 0x3895, 0x379b, 0x349c, 0x3ab3, 0x3840, 0x3b70, 0x3b4e, 0x2e46, 0x3aff, 0x2f7f, 0x3732, 0x3991, 0x346c, 0x39ff, 0x2be5, 0x36cb, 0x3bb1, 0x35d4, 0x3883, 0x3ba4, 0x3362, 0x3866, 0x394c, 0x38c4, 0x3b6f, 0x378d, 0x2bdf, 0x3443, 0x3959, 0x30ae, 0x3a18, 0x2472, 0x2f6a, 0x3111, 0x3a6d, 0x394e, 0x35c4, 0x3834, 0x3bc5, 0x3afc, 0x3291, 0x34b3, 0x3863, 0x3778, 0x3a6c, 0x3903, 0x2d65, 0x372e, 0x2dfb, 0x32ff, 0x3586, 0x34d2, 0x2d32, 0x3a7f, 0x3002, 0x1d54, 0x34a5, 0x3b4b, 0x3455, +0x3975, 0x27ae, 0x37e0, 0x34c3, 0x31f6, 0x3896, 0x3993, 0x29df, 0x31c1, 0x2e25, 0x2cae, 0x3889, 0x3826, 0x33cd, 0x3bc4, 0x2400, 0x38a7, 0x313d, 0x3826, 0x3670, 0x3922, 0x25bf, 0x390e, 0x3b99, 0x358a, 0x344d, 0x3926, 0x3b4d, 0x239f, 0x3576, 0x3576, 0x356b, 0x3b40, 0x2ebc, 0x34ff, 0x2e6c, 0x3817, 0x35bf, 0x35fc, 0x285e, 0x3b5d, 0x3908, 0x3848, 0x3441, 0x321f, 0x28a5, 0x3a73, 0x342f, 0x37db, 0x39ff, 0x3ac1, 0x3409, 0x3808, 0x34aa, 0x3aee, 0x3590, 0x2ea7, 0x2db9, 0x3b2f, 0x3845, 0x3a0d, 0x34d7, 0x3902, 0x3b44, 0x37b4, 0x3737, 0x3174, 0x394a, 0x3769, 0x3b0a, 0x370f, 0x31a6, 0x3b3d, 0x3a37, 0x3bc7, 0x2d68, 0x363a, 0x31cc, 0x3289, 0x3983, 0x3825, 0x3bf4, 0x34b9, 0x37fe, 0x2de5, 0x3975, 0x3ac9, 0x3083, 0x2c4d, 0x37a2, 0x3544, 0x36ac, 0x387c, 0x30a6, 0x321c, 0x37cc, +0x3a9e, 0x3310, 0x3bf9, 0x36c9, 0x3845, 0x3877, 0x3b5c, 0x3b20, 0x392f, 0x398c, 0x3b42, 0x2c1e, 0x3229, 0x395f, 0x3749, 0x377f, 0x3390, 0x3a80, 0x35b4, 0x2ed5, 0x3795, 0x3067, 0x3998, 0x3a51, 0x3b44, 0x3a52, 0x397d, 0x37fc, 0x298f, 0x2d3d, 0x344b, 0x363e, 0x39bd, 0x3590, 0x3b40, 0x37f3, 0x2d81, 0x3295, 0x35ff, 0x3b02, 0x37f2, 0x37e0, 0x1de3, 0x375e, 0x2fd9, 0x3271, 0x3548, 0x363e, 0x39bb, 0x3817, 0x327a, 0x2bb1, 0x3bbf, 0x3bf3, 0x38e9, 0x39be, 0x392b, 0x2f02, 0x34c5, 0x39c3, 0x38ab, 0x393b, 0x1e1d, 0x3bc3, 0x3972, 0x3be2, 0x3391, 0x3a3f, 0x3b68, 0x33a1, 0x384a, 0x3503, 0x3353, 0x343d, 0x3ac3, 0x2e04, 0x2f98, 0x3020, 0x38f3, 0x3814, 0x3a21, 0x3b92, 0x3083, 0x35fe, 0x3993, 0x32cb, 0x3b67, 0x2f42, 0x3070, 0x32a5, 0x2d98, 0x3b98, 0x31b4, 0x306f, 0x2dc2, 0x3ad5, +0x38d9, 0x38e4, 0x31e3, 0x38d7, 0x3b05, 0x3645, 0x388a, 0x3964, 0x3ab3, 0x39d3, 0x35f4, 0x2777, 0x34e4, 0x3874, 0x3bf6, 0x3b51, 0x3b2e, 0x3887, 0x3bf3, 0x3b3a, 0x348d, 0x35f3, 0x3a72, 0x3bd9, 0x31ec, 0x2d30, 0x34e5, 0x36c2, 0x3907, 0x33da, 0x2e75, 0x2fa8, 0x2fbf, 0x342e, 0x385d, 0x3421, 0x3897, 0x3841, 0x195c, 0x322b, 0x315d, 0x3325, 0x306d, 0x394b, 0x2f4e, 0x3896, 0x3a65, 0x3bf9, 0x30dd, 0x3957, 0x39a5, 0x2f7f, 0x3a29, 0x38c9, 0x35d6, 0x3248, 0x371d, 0x3412, 0x3660, 0x3609, 0x3944, 0x3b17, 0x3af3, 0x3b89, 0x39da, 0x3764, 0x344d, 0x3462, 0x3907, 0x388a, 0x38f0, 0x2960, 0x393b, 0x32f0, 0x3956, 0x31d3, 0x3328, 0x33fd, 0x3256, 0x2913, 0x3665, 0x397f, 0x36ad, 0x31db, 0x3aa5, 0x39db, 0x329b, 0x38f0, 0x32a5, 0x3051, 0x3855, 0x3a9c, 0x3870, 0x3a27, 0x3b93, 0x3942, +0x34e3, 0x37d4, 0x36b0, 0x384f, 0x2eef, 0x2e05, 0x35bc, 0x3bee, 0x34c7, 0x374f, 0x3811, 0x39c4, 0x2de0, 0x3bda, 0x3700, 0x2dc6, 0x349f, 0x29cf, 0x3b8b, 0x39b9, 0x2e31, 0x39f9, 0x3815, 0x3076, 0x38cc, 0x39c1, 0x398c, 0x3a20, 0x3865, 0x34d3, 0x3ba8, 0x3b16, 0x2057, 0x248a, 0x3859, 0x2e3f, 0x30e1, 0x3842, 0x3627, 0x383d, 0x3bb8, 0x34c8, 0x3ad0, 0x3b23, 0x388b, 0x3014, 0x3235, 0x357c, 0x3ba7, 0x3977, 0x3a32, 0x3aba, 0x30f5, 0x31d2, 0x3857, 0x393a, 0x3894, 0x351a, 0x3805, 0x35ee, 0x3967, 0x3862, 0x2a1b, 0x3afc, 0x3a4a, 0x38a0, 0x2f0d, 0x38d3, 0x393c, 0x3a13, 0x3973, 0x3831, 0x3a43, 0x3865, 0x3b80, 0x395a, 0x3275, 0x3874, 0x3735, 0x399c, 0x395e, 0x3abb, 0x2fd8, 0x381a, 0x3834, 0x2ae7, 0x3b2f, 0x39f3, 0x38be, 0x3ade, 0x351f, 0x3900, 0x34e5, 0x389a, 0x31d6, 0x3be4, +0x394f, 0x3a3d, 0x3b26, 0x3a2f, 0x399e, 0x2e0a, 0x3bc9, 0x38d2, 0x3920, 0x343d, 0x3a0b, 0x2c78, 0x38aa, 0x3b54, 0x3639, 0x37b3, 0x377b, 0x3b67, 0x3836, 0x2d52, 0x3b65, 0x38fb, 0x3836, 0x32cf, 0x3a40, 0x367e, 0x3a47, 0x3b47, 0x2d4d, 0x36fc, 0x398a, 0x3b7c, 0x3290, 0x3b4f, 0x3bf6, 0x25de, 0x3937, 0x3798, 0x3b0f, 0x3a95, 0x3bbc, 0x3beb, 0x34cf, 0x269a, 0x3b63, 0x3543, 0x366f, 0x344f, 0x361b, 0x3518, 0x35fb, 0x39aa, 0x3922, 0x3969, 0x3024, 0x2965, 0x2f2d, 0x2e6c, 0x385e, 0x3ab9, 0x34af, 0x3aec, 0x3af1, 0x348b, 0x2f86, 0x3bda, 0x3888, 0x3909, 0x3ba0, 0x3743, 0x3b40, 0x3306, 0x3999, 0x36c0, 0x35f8, 0x3531, 0x3457, 0x397a, 0x3a86, 0x37b8, 0x3bf2, 0x3bb3, 0x378e, 0x3bc7, 0x38f8, 0x3515, 0x3be1, 0x26dd, 0x28e4, 0x3a19, 0x3a28, 0x289c, 0x38ed, 0x3a77, 0x32b0, 0x392e, +0x2fcb, 0x3b43, 0x357f, 0x3987, 0x3056, 0x39dc, 0x3bc7, 0x34c0, 0x3a41, 0x3b4a, 0x3317, 0x2230, 0x3b8c, 0x363d, 0x25bf, 0x3b25, 0x39e3, 0x39d5, 0x37bd, 0x3a52, 0x3a14, 0x1aec, 0x3756, 0x353a, 0x3826, 0x331e, 0x34f7, 0x3690, 0x3973, 0x3269, 0x2c1c, 0x1bea, 0x32da, 0x2d21, 0x346d, 0x351f, 0x2df0, 0x3be0, 0x3bee, 0x3bb2, 0x3b6f, 0x3596, 0x38a2, 0x3408, 0x2281, 0x3864, 0x3516, 0x3b24, 0x3a8d, 0x3a63, 0x3806, 0x36e1, 0x3b6b, 0x3656, 0x3b8f, 0x31d3, 0x3a70, 0x39f8, 0x3953, 0x31eb, 0x3a05, 0x3a58, 0x2f81, 0x395b, 0x3721, 0x3353, 0x35db, 0x2d72, 0x3786, 0x3ab5, 0x3b4b, 0x3bd0, 0x3607, 0x35b4, 0x3a79, 0x32e2, 0x3299, 0x36a2, 0x381c, 0x2fb4, 0x2b3f, 0x3a01, 0x390c, 0x29d1, 0x2b63, 0x3a4b, 0x3309, 0x34f5, 0x3b7b, 0x348d, 0x3a7e, 0x30ca, 0x3269, 0x363a, 0x35a4, 0x3735, +0x36c4, 0x396c, 0x377a, 0x2fac, 0x3bba, 0x3511, 0x38fd, 0x3be0, 0x392d, 0x3864, 0x3bef, 0x3ae7, 0x2cd2, 0x37e5, 0x31c9, 0x332d, 0x3be0, 0x326a, 0x309a, 0x387e, 0x39f2, 0x3302, 0x39ee, 0x3956, 0x3b30, 0x3829, 0x2894, 0x368f, 0x361d, 0x35cd, 0x3b8c, 0x3677, 0x3a95, 0x3a41, 0x382f, 0x3457, 0x3194, 0x31bc, 0x3abd, 0x392a, 0x387b, 0x3912, 0x388a, 0x3051, 0x3a9b, 0x2fc4, 0x3468, 0x33f7, 0x20fe, 0x3489, 0x1d98, 0x39f4, 0x2f82, 0x2c37, 0x391e, 0x37ef, 0x3bb0, 0x3538, 0x1e8b, 0x3985, 0x3805, 0x3823, 0x32eb, 0x36e7, 0x3569, 0x387d, 0x30f2, 0x38d2, 0x39b5, 0x3544, 0x3009, 0x377c, 0x3a65, 0x342a, 0x2cc6, 0x3983, 0x2720, 0x2760, 0x3443, 0x3856, 0x3949, 0x37b5, 0x3944, 0x33e1, 0x320c, 0x3a83, 0x39be, 0x36f2, 0x3bf3, 0x384d, 0x35dd, 0x3150, 0x36ee, 0x2f4b, 0x3bd4, 0x2816, +0x3bb4, 0x3590, 0x3bf3, 0x38dd, 0x3472, 0x37f9, 0x38ec, 0x25b3, 0x3aac, 0x394d, 0x2e48, 0x387c, 0x39ed, 0x350a, 0x36e1, 0x3ad8, 0x3580, 0x3a08, 0x38d7, 0x390f, 0x370e, 0x30ed, 0x2fb2, 0x37f2, 0x35a8, 0x38bb, 0x389a, 0x3960, 0x35e1, 0x35d1, 0x3799, 0x3356, 0x375c, 0x3889, 0x38e7, 0x385e, 0x30f1, 0x3032, 0x3006, 0x3356, 0x36b1, 0x3af5, 0x342c, 0x3a9f, 0x386d, 0x3a8d, 0x2670, 0x3ba5, 0x3907, 0x39cb, 0x389b, 0x2914, 0x2db1, 0x2f6f, 0x3aa3, 0x346a, 0x3716, 0x303d, 0x3991, 0x3a21, 0x3b53, 0x3589, 0x3a6b, 0x34f7, 0x2d99, 0x380b, 0x392f, 0x36d9, 0x2e31, 0x30a2, 0x3569, 0x2657, 0x36dd, 0x306d, 0x36b5, 0x3ac4, 0x3a7a, 0x36f7, 0x38d6, 0x3b02, 0x355e, 0x3a19, 0x3bc4, 0x365c, 0x3b77, 0x3660, 0x3bc9, 0x380a, 0x3673, 0x3a4a, 0x3b19, 0x3843, 0x328c, 0x1a13, 0x3bd6, 0x3be2, +0x388d, 0x30c3, 0x3998, 0x389e, 0x3354, 0x3174, 0x3922, 0x3970, 0x2962, 0x3bc2, 0x3b1e, 0x3bd7, 0x2d84, 0x3573, 0x3846, 0x3703, 0x31ec, 0x3a5a, 0x3459, 0x2674, 0x291f, 0x3b76, 0x364f, 0x316f, 0x3a52, 0x3866, 0x34de, 0x33fc, 0x37fc, 0x3a20, 0x3ac2, 0x3893, 0x3208, 0x38d0, 0x3b1c, 0x39cd, 0x36f6, 0x301f, 0x3965, 0x3971, 0x3afa, 0x34d9, 0x2e34, 0x35a3, 0x390d, 0x2e83, 0x3b5a, 0x3acb, 0x377e, 0x2416, 0x38b8, 0x3a2e, 0x3a04, 0x3062, 0x2ef1, 0x3584, 0x2afb, 0x382a, 0x3a74, 0x37da, 0x3730, 0x32a6, 0x3866, 0x389e, 0x3850, 0x3551, 0x3939, 0x3a0e, 0x2deb, 0x3b97, 0x38e9, 0x39b6, 0x35b5, 0x3999, 0x38fe, 0x1918, 0x326d, 0x3477, 0x34e5, 0x3855, 0x38f8, 0x3307, 0x385d, 0x3b17, 0x36d8, 0x3020, 0x3a66, 0x3bf9, 0x3b17, 0x28cf, 0x3abb, 0x38b3, 0x3bc0, 0x31e4, 0x30d8, 0x3090, +0x393f, 0x350a, 0x2171, 0x31dd, 0x3aa3, 0x3962, 0x2a30, 0x3a0c, 0x3983, 0x3474, 0x38a4, 0x30fc, 0x348a, 0x3afd, 0x3ab0, 0x2fca, 0x3bb3, 0x3be9, 0x3984, 0x3a8d, 0x3119, 0x3b78, 0x3bd6, 0x2ef6, 0x31ef, 0x27c9, 0x39be, 0x32fb, 0x2ce0, 0x368b, 0x3612, 0x32b6, 0x2d58, 0x3787, 0x3811, 0x3745, 0x3b86, 0x32f4, 0x3941, 0x3936, 0x2ab3, 0x39cd, 0x3851, 0x395d, 0x355e, 0x383e, 0x380a, 0x3b5d, 0x34d8, 0x3292, 0x3124, 0x31af, 0x3942, 0x2d54, 0x3b54, 0x3b1b, 0x3bbd, 0x3507, 0x324e, 0x3364, 0x2514, 0x3af6, 0x3236, 0x361c, 0x3721, 0x39b4, 0x3b86, 0x3907, 0x3316, 0x2c3b, 0x3bf4, 0x3abb, 0x38b8, 0x38e5, 0x38e4, 0x3941, 0x318e, 0x3563, 0x318a, 0x3953, 0x328a, 0x2ed0, 0x3782, 0x38b3, 0x3632, 0x35f0, 0x3a31, 0x3112, 0x3b49, 0x3b8e, 0x31f8, 0x3a70, 0x3bf1, 0x375e, 0x381c, 0x3791, +0x38f7, 0x2f6a, 0x3b74, 0x3198, 0x3815, 0x3184, 0x39cc, 0x37c1, 0x3b16, 0x39dd, 0x3690, 0x36ee, 0x3ba5, 0x383d, 0x3bee, 0x37f9, 0x3617, 0x399a, 0x3597, 0x3703, 0x3281, 0x3047, 0x35b6, 0x3835, 0x3708, 0x3634, 0x3965, 0x39b8, 0x3a00, 0x3996, 0x2bd0, 0x2ced, 0x36de, 0x35e6, 0x3b4d, 0x3888, 0x3bc5, 0x290f, 0x3baf, 0x388e, 0x3721, 0x3896, 0x3565, 0x33f9, 0x312b, 0x37c8, 0x3889, 0x376b, 0x3bb6, 0x375e, 0x35bf, 0x2f6b, 0x39f6, 0x34ba, 0x3936, 0x3969, 0x39de, 0x3ad4, 0x39eb, 0x3a5c, 0x33e3, 0x3367, 0x3297, 0x3bea, 0x3bcf, 0x3806, 0x39b7, 0x3b63, 0x37d2, 0x385b, 0x3a88, 0x3a6a, 0x3447, 0x385b, 0x3078, 0x347b, 0x3790, 0x32c5, 0x30f3, 0x33d2, 0x3864, 0x35a7, 0x359b, 0x32c2, 0x3bf7, 0x379d, 0x39ed, 0x3964, 0x367e, 0x2f3e, 0x3b0a, 0x3a32, 0x3b2b, 0x287e, 0x2ee6, 0x3ba2 +}; \ No newline at end of file diff --git a/redmule/inc/z_2D.h b/redmule/inc/z_2D.h new file mode 100644 index 0000000..047fe23 --- /dev/null +++ b/redmule/inc/z_2D.h @@ -0,0 +1,99 @@ + /* Header file generated by RedMulE Golden Model */ +uint16_t z_oup_2D [96][96] = { +0x4e2d, 0x4e0e, 0x4dda, 0x4de5, 0x4e0e, 0x4dbc, 0x4e3f, 0x4ed6, 0x4dce, 0x4eef, 0x4dfc, 0x4e55, 0x4e2f, 0x4d96, 0x4ddd, 0x4d8a, 0x4e4c, 0x4dc2, 0x4d63, 0x4daa, 0x4e0a, 0x4d89, 0x4dff, 0x4d7d, 0x4d9e, 0x4e07, 0x4ded, 0x4d68, 0x4e69, 0x4ea9, 0x4e7b, 0x4e13, 0x4e22, 0x4e13, 0x4e34, 0x4dd6, 0x4db5, 0x4db6, 0x4d9c, 0x4dfd, 0x4e51, 0x4e0f, 0x4d92, 0x4e46, 0x4db8, 0x4e97, 0x4d14, 0x4dcb, 0x4e6a, 0x4d8e, 0x4eb5, 0x4dee, 0x4d95, 0x4e1c, 0x4dcb, 0x4e1e, 0x4dff, 0x4d5d, 0x4d53, 0x4dde, 0x4dda, 0x4ea4, 0x4d1c, 0x4e1d, 0x4d30, 0x4dad, 0x4e27, 0x4e04, 0x4e55, 0x4ebb, 0x4e47, 0x4daa, 0x4ddf, 0x4dd8, 0x4e3a, 0x4db0, 0x4dc0, 0x4e1c, 0x4dc1, 0x4e33, 0x4e2b, 0x4dcd, 0x4da2, 0x4ebe, 0x4d64, 0x4da9, 0x4e7f, 0x4d80, 0x4e14, 0x4e9b, 0x4d7e, 0x4e85, 0x4e6d, 0x4e6e, 0x4e1e, 0x4def, +0x4def, 0x4d5f, 0x4e1d, 0x4daa, 0x4e29, 0x4dc0, 0x4e5f, 0x4f01, 0x4dcf, 0x4f33, 0x4dcf, 0x4e86, 0x4ecf, 0x4dfd, 0x4deb, 0x4d92, 0x4eda, 0x4e29, 0x4dae, 0x4e35, 0x4e49, 0x4da9, 0x4e33, 0x4d7d, 0x4e23, 0x4e28, 0x4dc0, 0x4e12, 0x4e62, 0x4eda, 0x4e71, 0x4e43, 0x4e2d, 0x4df3, 0x4e69, 0x4e0d, 0x4df7, 0x4dbd, 0x4dbc, 0x4da3, 0x4d9d, 0x4e3c, 0x4e01, 0x4ebb, 0x4dd5, 0x4e35, 0x4d3f, 0x4de4, 0x4efa, 0x4dc4, 0x4ee3, 0x4dac, 0x4d93, 0x4da3, 0x4da1, 0x4dee, 0x4e9a, 0x4db0, 0x4db0, 0x4e99, 0x4dfe, 0x4eaf, 0x4d59, 0x4e35, 0x4dee, 0x4de7, 0x4e60, 0x4e5d, 0x4ec7, 0x4eb1, 0x4e59, 0x4de0, 0x4e35, 0x4df5, 0x4df4, 0x4df1, 0x4df4, 0x4e27, 0x4dd5, 0x4e4b, 0x4e87, 0x4da1, 0x4dbc, 0x4eb6, 0x4d77, 0x4e4f, 0x4e04, 0x4d77, 0x4e43, 0x4ede, 0x4df7, 0x4e38, 0x4e81, 0x4e43, 0x4e43, 0x4e01, +0x4d9d, 0x4dbc, 0x4e1d, 0x4e2f, 0x4e69, 0x4ddf, 0x4e62, 0x4f1f, 0x4dbd, 0x4f0c, 0x4d88, 0x4da7, 0x4f23, 0x4dfa, 0x4e2e, 0x4de9, 0x4e67, 0x4de4, 0x4da6, 0x4ded, 0x4e28, 0x4d1b, 0x4e1d, 0x4dbb, 0x4dea, 0x4e1c, 0x4e67, 0x4ddc, 0x4de6, 0x4e7d, 0x4e2c, 0x4e1c, 0x4e41, 0x4def, 0x4e14, 0x4ddc, 0x4dc3, 0x4cfa, 0x4dac, 0x4db0, 0x4e84, 0x4df6, 0x4d77, 0x4e5a, 0x4dd5, 0x4ea7, 0x4d34, 0x4da6, 0x4eb7, 0x4dca, 0x4e9c, 0x4dcb, 0x4d04, 0x4dd7, 0x4dcd, 0x4e29, 0x4df3, 0x4d80, 0x4dc5, 0x4e3d, 0x4dd1, 0x4e42, 0x4d76, 0x4e54, 0x4d5a, 0x4db3, 0x4e0a, 0x4de8, 0x4ea2, 0x4e8e, 0x4dd8, 0x4e43, 0x4e16, 0x4d9b, 0x4e8b, 0x4e39, 0x4e02, 0x4dfa, 0x4de8, 0x4e07, 0x4ddd, 0x4dd4, 0x4d3f, 0x4e05, 0x4dac, 0x4e33, 0x4e61, 0x4d4c, 0x4e0b, 0x4e63, 0x4ddd, 0x4e37, 0x4e7d, 0x4e47, 0x4dbd, 0x4db9, +0x4db6, 0x4e32, 0x4e87, 0x4e33, 0x4e43, 0x4e2b, 0x4e79, 0x4f28, 0x4de8, 0x4edc, 0x4e5e, 0x4e94, 0x4f32, 0x4e18, 0x4dbc, 0x4e77, 0x4ea9, 0x4e8c, 0x4daa, 0x4ea9, 0x4e43, 0x4e20, 0x4e3c, 0x4da8, 0x4eb0, 0x4e1b, 0x4e7a, 0x4e32, 0x4eb8, 0x4eb2, 0x4ea5, 0x4e8b, 0x4e7f, 0x4de9, 0x4ee2, 0x4df5, 0x4e01, 0x4e5c, 0x4dbb, 0x4dee, 0x4e41, 0x4e65, 0x4e2d, 0x4ef5, 0x4e84, 0x4e78, 0x4de8, 0x4e32, 0x4ee1, 0x4dea, 0x4ef6, 0x4def, 0x4da8, 0x4e4f, 0x4dd0, 0x4e76, 0x4e84, 0x4def, 0x4d88, 0x4e53, 0x4e34, 0x4f79, 0x4db4, 0x4ea1, 0x4dc1, 0x4dee, 0x4e44, 0x4ec4, 0x4ed6, 0x4e82, 0x4e5e, 0x4df4, 0x4ec3, 0x4e45, 0x4ea1, 0x4e16, 0x4e00, 0x4e6f, 0x4e50, 0x4e80, 0x4e9c, 0x4df7, 0x4e1c, 0x4edf, 0x4dcb, 0x4e27, 0x4e39, 0x4d78, 0x4e1c, 0x4ec7, 0x4e37, 0x4e81, 0x4e8f, 0x4e4b, 0x4e45, 0x4dfa, +0x4e2a, 0x4e3d, 0x4e3d, 0x4df5, 0x4e3a, 0x4def, 0x4e2f, 0x4ed6, 0x4db3, 0x4ef3, 0x4e5a, 0x4e8e, 0x4f50, 0x4db6, 0x4e46, 0x4e34, 0x4ec9, 0x4e1b, 0x4dd6, 0x4e80, 0x4e1f, 0x4d99, 0x4e76, 0x4e52, 0x4e8a, 0x4e8d, 0x4e5b, 0x4dc1, 0x4eaf, 0x4efc, 0x4ebb, 0x4e52, 0x4e78, 0x4df4, 0x4e78, 0x4df1, 0x4dfa, 0x4dd4, 0x4d47, 0x4e48, 0x4e04, 0x4e20, 0x4ddd, 0x4ebb, 0x4e44, 0x4eca, 0x4d9b, 0x4dec, 0x4e9c, 0x4e12, 0x4ec7, 0x4dfd, 0x4d6c, 0x4e46, 0x4dc0, 0x4e37, 0x4e59, 0x4dbc, 0x4d8b, 0x4e40, 0x4e31, 0x4ef8, 0x4de1, 0x4de8, 0x4d97, 0x4dd2, 0x4ea0, 0x4e1c, 0x4e3a, 0x4eb4, 0x4dd5, 0x4e41, 0x4e5d, 0x4dbc, 0x4e1d, 0x4e55, 0x4e77, 0x4dfc, 0x4e4b, 0x4e22, 0x4ebe, 0x4d6d, 0x4dad, 0x4e2a, 0x4dd3, 0x4e56, 0x4e3a, 0x4d2e, 0x4e42, 0x4e95, 0x4dce, 0x4e3b, 0x4eef, 0x4e46, 0x4ded, 0x4df8, +0x4d39, 0x4d7b, 0x4da0, 0x4cfa, 0x4d82, 0x4d16, 0x4d98, 0x4e32, 0x4ce2, 0x4e4a, 0x4d6a, 0x4d64, 0x4e27, 0x4d47, 0x4d4c, 0x4d16, 0x4d7c, 0x4d49, 0x4d0d, 0x4d3e, 0x4d83, 0x4d12, 0x4d19, 0x4cbe, 0x4d0f, 0x4d83, 0x4d65, 0x4cdb, 0x4d3d, 0x4ded, 0x4dff, 0x4d5b, 0x4d74, 0x4d70, 0x4df1, 0x4ccd, 0x4d49, 0x4d16, 0x4cc3, 0x4d2f, 0x4d25, 0x4d85, 0x4d31, 0x4dc3, 0x4d5b, 0x4dcb, 0x4cb3, 0x4d51, 0x4d98, 0x4d29, 0x4dc9, 0x4cc1, 0x4cd1, 0x4d90, 0x4cd3, 0x4d59, 0x4d5e, 0x4cf7, 0x4cda, 0x4dae, 0x4d8f, 0x4e13, 0x4cee, 0x4d6a, 0x4d0f, 0x4d33, 0x4d00, 0x4d56, 0x4d88, 0x4dae, 0x4d78, 0x4d40, 0x4d9c, 0x4d7c, 0x4d58, 0x4d2c, 0x4d47, 0x4d28, 0x4db4, 0x4dfc, 0x4d97, 0x4cec, 0x4cf7, 0x4dc0, 0x4d0c, 0x4d81, 0x4d58, 0x4d28, 0x4d63, 0x4dad, 0x4d12, 0x4d75, 0x4d77, 0x4d51, 0x4ceb, 0x4d0b, +0x4d6b, 0x4d5e, 0x4e5d, 0x4da9, 0x4e1f, 0x4d97, 0x4df3, 0x4ec4, 0x4d90, 0x4ee0, 0x4da1, 0x4e24, 0x4e3b, 0x4d68, 0x4da9, 0x4ddf, 0x4dfd, 0x4d99, 0x4d6c, 0x4dba, 0x4e07, 0x4daa, 0x4df3, 0x4dd8, 0x4d51, 0x4dc7, 0x4ddb, 0x4d6e, 0x4dd9, 0x4df2, 0x4e39, 0x4e15, 0x4e04, 0x4e02, 0x4e05, 0x4dbf, 0x4de1, 0x4d43, 0x4d73, 0x4d9e, 0x4dd5, 0x4daf, 0x4daf, 0x4e51, 0x4dcc, 0x4e5c, 0x4d8f, 0x4d5d, 0x4e2f, 0x4d7c, 0x4e80, 0x4dd7, 0x4dbd, 0x4dc2, 0x4d5f, 0x4e11, 0x4de6, 0x4d6b, 0x4d1a, 0x4db4, 0x4dcb, 0x4eba, 0x4d24, 0x4ded, 0x4dc5, 0x4d51, 0x4dfe, 0x4dfd, 0x4e44, 0x4e33, 0x4e59, 0x4d99, 0x4ddf, 0x4d99, 0x4dd4, 0x4d66, 0x4df2, 0x4de9, 0x4d80, 0x4e30, 0x4e0a, 0x4daf, 0x4dc3, 0x4e3d, 0x4d79, 0x4d72, 0x4de1, 0x4d42, 0x4e4e, 0x4ea1, 0x4d84, 0x4e13, 0x4e0c, 0x4dc9, 0x4ddf, 0x4df4, +0x4db8, 0x4e02, 0x4e6b, 0x4d8a, 0x4e8f, 0x4e49, 0x4e5b, 0x4eb6, 0x4e1d, 0x4ef9, 0x4e2f, 0x4e65, 0x4ef9, 0x4db4, 0x4e86, 0x4e5c, 0x4eae, 0x4e23, 0x4d8f, 0x4e5a, 0x4e1e, 0x4de0, 0x4e5c, 0x4dbd, 0x4e38, 0x4e37, 0x4ec8, 0x4ded, 0x4ecd, 0x4ec5, 0x4f06, 0x4e9b, 0x4e8a, 0x4ea2, 0x4e41, 0x4dea, 0x4e04, 0x4d70, 0x4d5a, 0x4e34, 0x4e01, 0x4e51, 0x4e0f, 0x4ef0, 0x4dfe, 0x4edd, 0x4d8b, 0x4dd0, 0x4e6d, 0x4e69, 0x4f18, 0x4de4, 0x4d8f, 0x4e21, 0x4de2, 0x4e07, 0x4e56, 0x4ded, 0x4d8d, 0x4e39, 0x4e50, 0x4f37, 0x4dd6, 0x4e27, 0x4e04, 0x4df0, 0x4e92, 0x4e5b, 0x4e99, 0x4eeb, 0x4e66, 0x4e60, 0x4ebc, 0x4df6, 0x4e57, 0x4e40, 0x4eaf, 0x4e5c, 0x4e3f, 0x4e44, 0x4e23, 0x4de8, 0x4e56, 0x4e7e, 0x4e01, 0x4e52, 0x4e5b, 0x4dc5, 0x4e94, 0x4ee0, 0x4e48, 0x4e48, 0x4e63, 0x4e79, 0x4e21, 0x4e3c, +0x4e6a, 0x4e58, 0x4f33, 0x4e57, 0x4ef5, 0x4ee8, 0x4f08, 0x4fd1, 0x4e62, 0x4fc6, 0x4f04, 0x4eab, 0x4fda, 0x4e9b, 0x4eec, 0x4f27, 0x4f04, 0x4eaf, 0x4e19, 0x4f17, 0x4f28, 0x4e59, 0x4ea0, 0x4e0d, 0x4eec, 0x4e73, 0x4f0c, 0x4e6a, 0x4ead, 0x4f95, 0x4edf, 0x4e8f, 0x4eca, 0x4ecd, 0x4edd, 0x4ea5, 0x4edf, 0x4dff, 0x4e28, 0x4e64, 0x4f27, 0x4ed2, 0x4e25, 0x4f29, 0x4e6c, 0x4f95, 0x4e35, 0x4e5b, 0x4f4d, 0x4ea8, 0x4f3b, 0x4eb4, 0x4e2b, 0x4ec0, 0x4e61, 0x4e91, 0x4ee7, 0x4e8c, 0x4e76, 0x4f05, 0x4ed3, 0x4f5e, 0x4e81, 0x4f16, 0x4dfd, 0x4e55, 0x4e9d, 0x4ed1, 0x4ec6, 0x4fa5, 0x4ef2, 0x4ee3, 0x4f1d, 0x4e51, 0x4ebf, 0x4ed8, 0x4ee9, 0x4ef1, 0x4ee2, 0x4f02, 0x4fae, 0x4e7b, 0x4ee4, 0x4f3c, 0x4e59, 0x4ec7, 0x4e97, 0x4e36, 0x4efb, 0x4f02, 0x4ecb, 0x4f03, 0x4f13, 0x4eb2, 0x4e94, 0x4e77, +0x4e1b, 0x4e38, 0x4edf, 0x4dc6, 0x4ee0, 0x4e35, 0x4efd, 0x4f97, 0x4e50, 0x4f9b, 0x4ddc, 0x4e39, 0x4f6b, 0x4e55, 0x4eb4, 0x4e63, 0x4ea0, 0x4e3b, 0x4e17, 0x4e2a, 0x4ed9, 0x4e23, 0x4ee7, 0x4e56, 0x4e34, 0x4e9b, 0x4eda, 0x4e0b, 0x4e82, 0x4ef2, 0x4e95, 0x4ec3, 0x4f05, 0x4e55, 0x4efc, 0x4e8f, 0x4e7c, 0x4e01, 0x4e0a, 0x4e45, 0x4e28, 0x4e65, 0x4e20, 0x4e78, 0x4ebd, 0x4ea1, 0x4e22, 0x4e2b, 0x4f6f, 0x4dcf, 0x4f35, 0x4e0f, 0x4dcb, 0x4e76, 0x4e08, 0x4e7f, 0x4f05, 0x4e5b, 0x4dd7, 0x4e83, 0x4ebd, 0x4f4c, 0x4d7b, 0x4eef, 0x4e01, 0x4e78, 0x4ee6, 0x4ea6, 0x4f28, 0x4f00, 0x4e4e, 0x4e31, 0x4ed7, 0x4e4e, 0x4e6f, 0x4e7a, 0x4e9f, 0x4ee6, 0x4e74, 0x4e91, 0x4eba, 0x4e1f, 0x4e1f, 0x4f5d, 0x4e22, 0x4e84, 0x4e2c, 0x4da3, 0x4e82, 0x4ec5, 0x4ec8, 0x4f13, 0x4ef4, 0x4e9a, 0x4eb6, 0x4e5a, +0x4d6b, 0x4db6, 0x4e0b, 0x4d3b, 0x4df7, 0x4d88, 0x4e15, 0x4e81, 0x4d5f, 0x4ef0, 0x4e2f, 0x4da2, 0x4e6a, 0x4da1, 0x4d9c, 0x4e6c, 0x4e0b, 0x4db1, 0x4d3c, 0x4dfc, 0x4d97, 0x4d63, 0x4e39, 0x4d4d, 0x4da9, 0x4d99, 0x4e40, 0x4da0, 0x4de3, 0x4e28, 0x4e04, 0x4ddc, 0x4dcb, 0x4de6, 0x4e6b, 0x4d91, 0x4dd5, 0x4d84, 0x4d44, 0x4d36, 0x4d75, 0x4de6, 0x4dba, 0x4ed7, 0x4d6f, 0x4e5a, 0x4d88, 0x4d6d, 0x4e03, 0x4d64, 0x4e96, 0x4d8a, 0x4d5c, 0x4dca, 0x4d7c, 0x4e1b, 0x4dfc, 0x4d86, 0x4d66, 0x4dd9, 0x4df3, 0x4e53, 0x4d4b, 0x4e2a, 0x4d9b, 0x4d43, 0x4ddb, 0x4e5a, 0x4de7, 0x4e56, 0x4dee, 0x4d8c, 0x4dcc, 0x4dc7, 0x4daa, 0x4d80, 0x4d97, 0x4e56, 0x4d5f, 0x4e77, 0x4d98, 0x4d51, 0x4d8d, 0x4e89, 0x4d38, 0x4d6b, 0x4dc8, 0x4d8e, 0x4df9, 0x4e13, 0x4d2f, 0x4e07, 0x4e0f, 0x4da0, 0x4d95, 0x4d6a, +0x4e54, 0x4deb, 0x4ea3, 0x4d9d, 0x4e6c, 0x4e3c, 0x4e8d, 0x4f56, 0x4de7, 0x4fa9, 0x4e3a, 0x4eb4, 0x4f3d, 0x4e5d, 0x4ea7, 0x4ead, 0x4f1d, 0x4ea7, 0x4deb, 0x4ea7, 0x4e17, 0x4e36, 0x4e45, 0x4e27, 0x4e42, 0x4e3a, 0x4f1a, 0x4e11, 0x4eb4, 0x4ee0, 0x4e33, 0x4ed2, 0x4e16, 0x4e07, 0x4ea9, 0x4df2, 0x4e4c, 0x4dda, 0x4e31, 0x4e0e, 0x4e32, 0x4e56, 0x4e0c, 0x4efb, 0x4e64, 0x4ebb, 0x4dbf, 0x4e3b, 0x4f0c, 0x4e63, 0x4f04, 0x4e4f, 0x4d9c, 0x4e3a, 0x4e16, 0x4e7c, 0x4e46, 0x4de2, 0x4df4, 0x4e91, 0x4eb6, 0x4f27, 0x4d8a, 0x4ecc, 0x4e0d, 0x4db3, 0x4e8e, 0x4e8a, 0x4ef0, 0x4f1f, 0x4eab, 0x4ea3, 0x4e4a, 0x4df3, 0x4ec1, 0x4e6a, 0x4e6c, 0x4eff, 0x4e45, 0x4ed3, 0x4ec6, 0x4e6f, 0x4e4a, 0x4ebf, 0x4de4, 0x4e40, 0x4e27, 0x4d9e, 0x4e79, 0x4ecb, 0x4e61, 0x4ed6, 0x4e9a, 0x4e4b, 0x4e55, 0x4e73, +0x4e5e, 0x4e1e, 0x4ea1, 0x4df7, 0x4e66, 0x4e71, 0x4f2d, 0x4fbf, 0x4ea4, 0x4fe2, 0x4eab, 0x4eb4, 0x4f9c, 0x4e8b, 0x4e41, 0x4e79, 0x4f69, 0x4e96, 0x4e07, 0x4e86, 0x4ec0, 0x4e14, 0x4e95, 0x4df4, 0x4e9e, 0x4e78, 0x4eea, 0x4df9, 0x4f28, 0x4f40, 0x4f87, 0x4e93, 0x4e29, 0x4ec5, 0x4ec1, 0x4eb6, 0x4e8f, 0x4e9f, 0x4def, 0x4e75, 0x4e75, 0x4e9b, 0x4e29, 0x4f68, 0x4eac, 0x4ed8, 0x4da6, 0x4e52, 0x4f2e, 0x4ea6, 0x4f46, 0x4ea9, 0x4e5b, 0x4e52, 0x4e4d, 0x4e99, 0x4ea2, 0x4e9e, 0x4ded, 0x4ed3, 0x4f10, 0x4fe3, 0x4df6, 0x4ee2, 0x4e13, 0x4f05, 0x4ed1, 0x4ef3, 0x4ef8, 0x4ef2, 0x4eb6, 0x4e1f, 0x4ecc, 0x4e25, 0x4ea1, 0x4ea3, 0x4ef8, 0x4e98, 0x4e43, 0x4ee0, 0x4f0e, 0x4e38, 0x4e74, 0x4f7b, 0x4df6, 0x4ee6, 0x4eba, 0x4de8, 0x4e70, 0x4f1a, 0x4e91, 0x4ed2, 0x4f2a, 0x4e84, 0x4ed3, 0x4ea0, +0x4e1c, 0x4e04, 0x4dfd, 0x4e12, 0x4de2, 0x4e0b, 0x4e45, 0x4ecf, 0x4d91, 0x4edb, 0x4e15, 0x4de1, 0x4ee1, 0x4e07, 0x4da5, 0x4dc1, 0x4e24, 0x4e0f, 0x4d89, 0x4e26, 0x4da5, 0x4d97, 0x4e39, 0x4ddb, 0x4e48, 0x4e3b, 0x4e20, 0x4d9f, 0x4e65, 0x4e82, 0x4e0b, 0x4d9e, 0x4de7, 0x4dbd, 0x4e42, 0x4da5, 0x4dc9, 0x4da4, 0x4dc0, 0x4da9, 0x4e74, 0x4e5c, 0x4de2, 0x4ee1, 0x4e10, 0x4eb1, 0x4d66, 0x4da6, 0x4eba, 0x4e1f, 0x4e9c, 0x4e61, 0x4d43, 0x4dcb, 0x4d98, 0x4e08, 0x4e22, 0x4dea, 0x4ddd, 0x4e76, 0x4e4e, 0x4e86, 0x4d7b, 0x4dfe, 0x4d4c, 0x4e37, 0x4d97, 0x4e31, 0x4e4f, 0x4ebe, 0x4e34, 0x4da1, 0x4e64, 0x4d9e, 0x4df2, 0x4e04, 0x4dd1, 0x4e3a, 0x4dd7, 0x4ea4, 0x4e09, 0x4db9, 0x4d96, 0x4e9a, 0x4d95, 0x4dd5, 0x4e1d, 0x4d54, 0x4de8, 0x4e4a, 0x4dd0, 0x4e6e, 0x4e53, 0x4e49, 0x4d86, 0x4d68, +0x4da0, 0x4dee, 0x4e81, 0x4df4, 0x4de0, 0x4dcd, 0x4ddd, 0x4eae, 0x4dce, 0x4f09, 0x4e0f, 0x4df0, 0x4ecc, 0x4df5, 0x4ddf, 0x4dca, 0x4dd6, 0x4d7f, 0x4dc1, 0x4e0d, 0x4dff, 0x4d9f, 0x4dd5, 0x4d55, 0x4daa, 0x4d84, 0x4e57, 0x4da9, 0x4e39, 0x4eb3, 0x4e60, 0x4dea, 0x4dd4, 0x4e18, 0x4e4a, 0x4dbf, 0x4d8b, 0x4d9f, 0x4d54, 0x4d9f, 0x4e12, 0x4de5, 0x4d9b, 0x4e24, 0x4db4, 0x4e48, 0x4dba, 0x4d88, 0x4e72, 0x4d39, 0x4e4e, 0x4d65, 0x4cef, 0x4e05, 0x4da6, 0x4dbe, 0x4e07, 0x4d71, 0x4d4a, 0x4deb, 0x4e37, 0x4e5e, 0x4dc0, 0x4e20, 0x4d3a, 0x4d5a, 0x4dbd, 0x4e31, 0x4e64, 0x4e77, 0x4e40, 0x4da2, 0x4e46, 0x4da5, 0x4db6, 0x4db4, 0x4db0, 0x4e17, 0x4dc7, 0x4e14, 0x4e24, 0x4dc0, 0x4d5b, 0x4e25, 0x4d91, 0x4e08, 0x4e39, 0x4db0, 0x4ddc, 0x4e55, 0x4d39, 0x4e17, 0x4e75, 0x4dd5, 0x4de9, 0x4e2c, +0x4d74, 0x4d5a, 0x4dde, 0x4d5b, 0x4dc3, 0x4d09, 0x4d93, 0x4e08, 0x4da7, 0x4e79, 0x4d85, 0x4dea, 0x4e38, 0x4d6f, 0x4d63, 0x4d92, 0x4df3, 0x4d6a, 0x4cd6, 0x4d9c, 0x4d83, 0x4d56, 0x4dd5, 0x4d8e, 0x4d84, 0x4da6, 0x4e24, 0x4d2a, 0x4dbb, 0x4e22, 0x4da3, 0x4de8, 0x4d30, 0x4dcc, 0x4db8, 0x4d87, 0x4d63, 0x4d3b, 0x4d3a, 0x4d78, 0x4d6c, 0x4d6c, 0x4d72, 0x4df4, 0x4d6a, 0x4e25, 0x4d3a, 0x4d20, 0x4e25, 0x4d00, 0x4dfc, 0x4d64, 0x4cf9, 0x4d95, 0x4d05, 0x4d3b, 0x4db6, 0x4d0e, 0x4d12, 0x4dd1, 0x4d95, 0x4e0b, 0x4d6a, 0x4de4, 0x4d38, 0x4d87, 0x4e22, 0x4df4, 0x4dc1, 0x4e09, 0x4d9d, 0x4dca, 0x4dd9, 0x4d6a, 0x4d8f, 0x4d3e, 0x4dba, 0x4dbb, 0x4d84, 0x4d7b, 0x4e1e, 0x4d4d, 0x4d67, 0x4e00, 0x4d27, 0x4d54, 0x4db9, 0x4cda, 0x4db1, 0x4e29, 0x4d71, 0x4e22, 0x4df2, 0x4d61, 0x4df0, 0x4d52, +0x4d31, 0x4d90, 0x4e17, 0x4db3, 0x4e1b, 0x4dac, 0x4e08, 0x4ec6, 0x4da8, 0x4eea, 0x4dcb, 0x4e2c, 0x4ee0, 0x4df0, 0x4dda, 0x4dcc, 0x4ea1, 0x4d9a, 0x4dac, 0x4d91, 0x4e2b, 0x4daf, 0x4d8d, 0x4dc6, 0x4e1f, 0x4e0e, 0x4e23, 0x4d57, 0x4e3b, 0x4e3d, 0x4e32, 0x4e66, 0x4e1f, 0x4da7, 0x4e4d, 0x4d47, 0x4da1, 0x4d69, 0x4d6f, 0x4df5, 0x4e0b, 0x4e09, 0x4d7c, 0x4e41, 0x4e09, 0x4e4f, 0x4db3, 0x4df9, 0x4e6a, 0x4de9, 0x4f3e, 0x4e2d, 0x4da0, 0x4e44, 0x4e1a, 0x4df6, 0x4dfc, 0x4d91, 0x4d48, 0x4dcf, 0x4e23, 0x4eb4, 0x4ce1, 0x4e40, 0x4d7d, 0x4da5, 0x4e55, 0x4e34, 0x4e67, 0x4ea2, 0x4e48, 0x4db5, 0x4e25, 0x4e0b, 0x4e1a, 0x4dc4, 0x4e27, 0x4df3, 0x4de6, 0x4e31, 0x4e6f, 0x4de8, 0x4d85, 0x4e70, 0x4d69, 0x4dd9, 0x4de8, 0x4d18, 0x4da7, 0x4e04, 0x4dd3, 0x4e2c, 0x4e3d, 0x4e23, 0x4dd6, 0x4dd2, +0x4e0b, 0x4de2, 0x4e76, 0x4dc3, 0x4e4c, 0x4da5, 0x4e8f, 0x4ec5, 0x4e4d, 0x4f7d, 0x4df4, 0x4e19, 0x4efc, 0x4dc4, 0x4de0, 0x4dd8, 0x4ec5, 0x4dc9, 0x4dd7, 0x4e2b, 0x4e79, 0x4d8d, 0x4e5a, 0x4daa, 0x4e09, 0x4e3f, 0x4e7d, 0x4d99, 0x4e50, 0x4ed9, 0x4ec7, 0x4e5b, 0x4e31, 0x4e6d, 0x4ea8, 0x4e52, 0x4e4a, 0x4dfa, 0x4d61, 0x4e28, 0x4dfa, 0x4e30, 0x4dbd, 0x4ebd, 0x4e1c, 0x4f17, 0x4dad, 0x4e34, 0x4e90, 0x4dd8, 0x4f2e, 0x4e40, 0x4d4b, 0x4e2a, 0x4d89, 0x4deb, 0x4e42, 0x4de8, 0x4d63, 0x4e29, 0x4e46, 0x4f35, 0x4dd4, 0x4e25, 0x4d5f, 0x4e3a, 0x4ee4, 0x4e5b, 0x4e97, 0x4ea5, 0x4e51, 0x4e34, 0x4e6b, 0x4e53, 0x4e7a, 0x4e14, 0x4e12, 0x4e0e, 0x4df0, 0x4e0d, 0x4ebc, 0x4de5, 0x4dbb, 0x4ead, 0x4df9, 0x4e62, 0x4e34, 0x4d91, 0x4e53, 0x4ec3, 0x4e2a, 0x4e18, 0x4e5c, 0x4eac, 0x4e3c, 0x4e1a, +0x4db4, 0x4ded, 0x4e56, 0x4dd8, 0x4dd5, 0x4e20, 0x4f02, 0x4f27, 0x4e56, 0x4f17, 0x4e18, 0x4e35, 0x4f47, 0x4e28, 0x4e4c, 0x4e26, 0x4e8c, 0x4db7, 0x4dab, 0x4e2b, 0x4e62, 0x4de7, 0x4e47, 0x4d76, 0x4dd3, 0x4e32, 0x4e41, 0x4d9b, 0x4e36, 0x4ee1, 0x4eda, 0x4e4e, 0x4e46, 0x4e28, 0x4e76, 0x4e65, 0x4df2, 0x4dd6, 0x4dc5, 0x4e0c, 0x4e02, 0x4da9, 0x4da7, 0x4eb1, 0x4e0c, 0x4e9c, 0x4db8, 0x4e4b, 0x4ea5, 0x4dca, 0x4ea0, 0x4e03, 0x4d89, 0x4e30, 0x4da8, 0x4e2f, 0x4e4f, 0x4e24, 0x4dce, 0x4e2a, 0x4e77, 0x4f06, 0x4d80, 0x4e7e, 0x4d88, 0x4df1, 0x4e6b, 0x4e12, 0x4e4f, 0x4eed, 0x4e20, 0x4e44, 0x4df4, 0x4e38, 0x4e62, 0x4e44, 0x4e3a, 0x4e7d, 0x4e02, 0x4eac, 0x4e74, 0x4e07, 0x4df2, 0x4e84, 0x4dfe, 0x4e3a, 0x4e0c, 0x4d86, 0x4e4d, 0x4e72, 0x4dfb, 0x4e39, 0x4e61, 0x4e46, 0x4dfd, 0x4e42, +0x4de9, 0x4dbb, 0x4e30, 0x4d6f, 0x4dfa, 0x4d82, 0x4e70, 0x4ec5, 0x4da1, 0x4f06, 0x4e5b, 0x4e47, 0x4e79, 0x4dad, 0x4dd5, 0x4e61, 0x4e44, 0x4dae, 0x4dee, 0x4e4f, 0x4e40, 0x4d9e, 0x4e3e, 0x4ddf, 0x4dab, 0x4e84, 0x4e5e, 0x4da7, 0x4e58, 0x4f0e, 0x4e10, 0x4e42, 0x4e18, 0x4e24, 0x4e7c, 0x4e08, 0x4e14, 0x4db7, 0x4db8, 0x4e22, 0x4df6, 0x4e07, 0x4d8b, 0x4ebc, 0x4db7, 0x4eb3, 0x4d91, 0x4d9e, 0x4e45, 0x4db8, 0x4ed5, 0x4dc6, 0x4db4, 0x4da1, 0x4d70, 0x4e4c, 0x4e72, 0x4d8a, 0x4dc9, 0x4d7f, 0x4e1d, 0x4f30, 0x4d7c, 0x4e93, 0x4dd2, 0x4de4, 0x4e93, 0x4e72, 0x4e34, 0x4f3d, 0x4e42, 0x4de7, 0x4e76, 0x4df4, 0x4eae, 0x4df6, 0x4e2b, 0x4e50, 0x4e4b, 0x4e66, 0x4e63, 0x4de2, 0x4de1, 0x4e80, 0x4d96, 0x4dd7, 0x4dee, 0x4ce7, 0x4d9a, 0x4e60, 0x4dc3, 0x4e68, 0x4e4f, 0x4e2d, 0x4e06, 0x4e31, +0x4e00, 0x4e5b, 0x4e77, 0x4dda, 0x4e1a, 0x4dee, 0x4e83, 0x4f15, 0x4e59, 0x4f9a, 0x4e31, 0x4e60, 0x4f31, 0x4e94, 0x4df9, 0x4e36, 0x4eaf, 0x4e48, 0x4dd9, 0x4e49, 0x4e2c, 0x4e35, 0x4ec4, 0x4e48, 0x4e46, 0x4e24, 0x4e95, 0x4dbc, 0x4edf, 0x4f2e, 0x4eeb, 0x4e2f, 0x4e0d, 0x4e31, 0x4ef6, 0x4e75, 0x4dd4, 0x4dd9, 0x4d8f, 0x4e1f, 0x4e09, 0x4dc8, 0x4dfd, 0x4ef2, 0x4e8f, 0x4ed0, 0x4de5, 0x4e12, 0x4ebd, 0x4df4, 0x4ece, 0x4dda, 0x4d36, 0x4e4e, 0x4e0d, 0x4e28, 0x4ead, 0x4e24, 0x4df9, 0x4e79, 0x4eae, 0x4f04, 0x4deb, 0x4e71, 0x4d7e, 0x4e7b, 0x4e6d, 0x4ee2, 0x4e66, 0x4f2b, 0x4e6f, 0x4df6, 0x4ec0, 0x4e28, 0x4e7a, 0x4e28, 0x4e28, 0x4e4e, 0x4e66, 0x4ef7, 0x4ed3, 0x4deb, 0x4e05, 0x4eb3, 0x4dd9, 0x4e88, 0x4e61, 0x4dfd, 0x4e3b, 0x4e89, 0x4e3a, 0x4e50, 0x4ec6, 0x4e51, 0x4e3f, 0x4de0, +0x4dcf, 0x4e18, 0x4e1c, 0x4db7, 0x4e2e, 0x4e1f, 0x4e65, 0x4f10, 0x4dc9, 0x4fb4, 0x4e91, 0x4e63, 0x4f7c, 0x4e56, 0x4e23, 0x4e0d, 0x4e8d, 0x4dea, 0x4db7, 0x4e18, 0x4e14, 0x4da8, 0x4e1e, 0x4d71, 0x4df0, 0x4e35, 0x4e39, 0x4dec, 0x4e2a, 0x4f10, 0x4e78, 0x4e50, 0x4e31, 0x4e77, 0x4f16, 0x4dca, 0x4d9c, 0x4e1c, 0x4da1, 0x4e11, 0x4e25, 0x4e03, 0x4d87, 0x4ecf, 0x4e2a, 0x4ec7, 0x4d9b, 0x4e44, 0x4e78, 0x4dc2, 0x4f13, 0x4e08, 0x4d85, 0x4ddc, 0x4dd4, 0x4db3, 0x4e2e, 0x4e26, 0x4df4, 0x4e2e, 0x4e60, 0x4f22, 0x4d9d, 0x4ebb, 0x4d96, 0x4e65, 0x4e39, 0x4e4b, 0x4e0f, 0x4ee2, 0x4e96, 0x4dd0, 0x4e47, 0x4e26, 0x4e9e, 0x4e32, 0x4dfa, 0x4e81, 0x4e39, 0x4e73, 0x4ec3, 0x4d8e, 0x4dfe, 0x4e9d, 0x4ded, 0x4e43, 0x4ddb, 0x4d85, 0x4e00, 0x4e59, 0x4def, 0x4e65, 0x4e9c, 0x4e31, 0x4df9, 0x4dd1, +0x4d16, 0x4d87, 0x4e0a, 0x4d67, 0x4dfb, 0x4d49, 0x4daa, 0x4e26, 0x4d51, 0x4e60, 0x4d6f, 0x4d77, 0x4eb9, 0x4da7, 0x4d87, 0x4d9f, 0x4ddd, 0x4d9e, 0x4d4e, 0x4dc1, 0x4dc3, 0x4d44, 0x4d6b, 0x4d53, 0x4d48, 0x4d3f, 0x4ddb, 0x4d6f, 0x4db5, 0x4de9, 0x4dfc, 0x4ddb, 0x4de2, 0x4d7e, 0x4e02, 0x4d6f, 0x4d80, 0x4d13, 0x4d1b, 0x4d08, 0x4dc7, 0x4d52, 0x4d7f, 0x4d8b, 0x4db3, 0x4dfe, 0x4d24, 0x4d12, 0x4dd6, 0x4d8c, 0x4e24, 0x4d61, 0x4d12, 0x4dcd, 0x4d2d, 0x4d83, 0x4db3, 0x4dc8, 0x4d3f, 0x4dd5, 0x4d9e, 0x4e44, 0x4d09, 0x4dbc, 0x4d01, 0x4d29, 0x4d96, 0x4d7d, 0x4dd3, 0x4e10, 0x4d50, 0x4dd2, 0x4d5d, 0x4da8, 0x4dac, 0x4d98, 0x4d92, 0x4d5f, 0x4d9a, 0x4de5, 0x4dcd, 0x4da5, 0x4d6a, 0x4dd6, 0x4d0c, 0x4d65, 0x4d4c, 0x4d42, 0x4dd3, 0x4dbd, 0x4db7, 0x4d89, 0x4dcd, 0x4de3, 0x4d99, 0x4d64, +0x4cf5, 0x4d4a, 0x4dd3, 0x4d03, 0x4d77, 0x4d6c, 0x4db3, 0x4e28, 0x4d32, 0x4e34, 0x4d68, 0x4d9a, 0x4dad, 0x4db7, 0x4dad, 0x4d6d, 0x4e1e, 0x4d30, 0x4d3d, 0x4d9d, 0x4df3, 0x4d29, 0x4d33, 0x4ce2, 0x4d74, 0x4d67, 0x4d9d, 0x4d11, 0x4dca, 0x4e34, 0x4d92, 0x4dca, 0x4d8c, 0x4d33, 0x4da0, 0x4db5, 0x4d3b, 0x4d32, 0x4d0f, 0x4d4f, 0x4cf7, 0x4da4, 0x4d97, 0x4e28, 0x4d40, 0x4d7d, 0x4d00, 0x4d56, 0x4e0a, 0x4cc8, 0x4e0d, 0x4d08, 0x4d21, 0x4d52, 0x4cce, 0x4d5a, 0x4de3, 0x4ced, 0x4ced, 0x4db9, 0x4dbd, 0x4e16, 0x4cf5, 0x4da1, 0x4d57, 0x4d4f, 0x4ddc, 0x4daf, 0x4dfa, 0x4db2, 0x4e26, 0x4d1c, 0x4d8a, 0x4d31, 0x4d88, 0x4cd3, 0x4da8, 0x4dac, 0x4d50, 0x4d91, 0x4d76, 0x4d56, 0x4d5b, 0x4dab, 0x4d56, 0x4d93, 0x4d6f, 0x4cef, 0x4d8e, 0x4ddb, 0x4d6a, 0x4dd8, 0x4db3, 0x4dff, 0x4d77, 0x4d73, +0x4e14, 0x4df9, 0x4e48, 0x4dc5, 0x4dbd, 0x4dcc, 0x4e10, 0x4ec3, 0x4df1, 0x4f5c, 0x4e1c, 0x4e5d, 0x4edc, 0x4df1, 0x4dc0, 0x4e2d, 0x4e62, 0x4de3, 0x4d61, 0x4e39, 0x4e3b, 0x4d79, 0x4e3f, 0x4d76, 0x4daf, 0x4dc8, 0x4e42, 0x4d8d, 0x4e79, 0x4f05, 0x4e44, 0x4e3d, 0x4dce, 0x4e92, 0x4eb7, 0x4df7, 0x4dc4, 0x4db0, 0x4da3, 0x4df3, 0x4db6, 0x4dd6, 0x4dc5, 0x4ea3, 0x4d9e, 0x4ec8, 0x4d7c, 0x4e22, 0x4ee2, 0x4d92, 0x4f08, 0x4db2, 0x4dc3, 0x4df6, 0x4d31, 0x4e50, 0x4e8f, 0x4dd7, 0x4d6e, 0x4e1a, 0x4e86, 0x4f14, 0x4d99, 0x4e85, 0x4d54, 0x4e46, 0x4e26, 0x4e60, 0x4e4b, 0x4f02, 0x4e22, 0x4e04, 0x4e08, 0x4e0e, 0x4e68, 0x4e4a, 0x4de0, 0x4e5a, 0x4e36, 0x4e3d, 0x4e54, 0x4de2, 0x4df7, 0x4e14, 0x4dc6, 0x4e2f, 0x4e56, 0x4d70, 0x4dd2, 0x4e2a, 0x4e35, 0x4e7f, 0x4e7c, 0x4e20, 0x4db4, 0x4d7e, +0x4dc6, 0x4dc2, 0x4e0e, 0x4d9c, 0x4df6, 0x4df8, 0x4dfa, 0x4eb0, 0x4dbc, 0x4ee4, 0x4df7, 0x4da7, 0x4e6e, 0x4d80, 0x4dd3, 0x4dcf, 0x4e02, 0x4d96, 0x4df7, 0x4e57, 0x4e54, 0x4db1, 0x4e11, 0x4d54, 0x4e15, 0x4de1, 0x4e29, 0x4d6c, 0x4dfd, 0x4e7b, 0x4e56, 0x4dfb, 0x4e05, 0x4db1, 0x4e80, 0x4dde, 0x4db5, 0x4d95, 0x4d5e, 0x4de3, 0x4e10, 0x4dea, 0x4d4f, 0x4e65, 0x4dbc, 0x4e8c, 0x4d8d, 0x4ddc, 0x4e2d, 0x4daf, 0x4eb2, 0x4d7d, 0x4d12, 0x4dfc, 0x4d73, 0x4dcf, 0x4e1f, 0x4ddf, 0x4da2, 0x4e58, 0x4e2c, 0x4e98, 0x4d5b, 0x4dec, 0x4d85, 0x4d9f, 0x4de6, 0x4e43, 0x4dca, 0x4e3e, 0x4e6e, 0x4db7, 0x4e2e, 0x4dc1, 0x4dc9, 0x4da4, 0x4dc9, 0x4e02, 0x4df8, 0x4e2f, 0x4e59, 0x4dfe, 0x4d43, 0x4e64, 0x4d80, 0x4ddd, 0x4e15, 0x4d57, 0x4e48, 0x4df3, 0x4dad, 0x4e2f, 0x4e47, 0x4e28, 0x4d94, 0x4db7, +0x4d5f, 0x4d44, 0x4de2, 0x4d6d, 0x4d9b, 0x4d02, 0x4dbe, 0x4e08, 0x4d52, 0x4e16, 0x4d7f, 0x4d66, 0x4e4e, 0x4d55, 0x4d0f, 0x4d7f, 0x4d95, 0x4d6e, 0x4ce8, 0x4dad, 0x4d69, 0x4d42, 0x4dd8, 0x4d33, 0x4d9f, 0x4d61, 0x4dcb, 0x4d43, 0x4dbe, 0x4e12, 0x4dd1, 0x4da1, 0x4d81, 0x4da9, 0x4dff, 0x4d57, 0x4d5b, 0x4cef, 0x4d36, 0x4ccd, 0x4d6a, 0x4d20, 0x4d73, 0x4e30, 0x4d5c, 0x4e02, 0x4d09, 0x4d13, 0x4dee, 0x4d08, 0x4e28, 0x4ce2, 0x4ca5, 0x4d53, 0x4ce4, 0x4d25, 0x4dec, 0x4d44, 0x4d3a, 0x4dc9, 0x4da0, 0x4e0f, 0x4d36, 0x4d80, 0x4c83, 0x4d4c, 0x4d64, 0x4da2, 0x4e08, 0x4e17, 0x4d3f, 0x4d3b, 0x4db3, 0x4d82, 0x4d60, 0x4d87, 0x4d58, 0x4d7a, 0x4d47, 0x4da7, 0x4d24, 0x4d1c, 0x4d2b, 0x4e06, 0x4d16, 0x4dc6, 0x4d87, 0x4cdf, 0x4d70, 0x4db9, 0x4d27, 0x4dc9, 0x4dbb, 0x4d8f, 0x4d3f, 0x4d16, +0x4e12, 0x4e6c, 0x4e94, 0x4e81, 0x4ec0, 0x4e60, 0x4e3b, 0x4f8e, 0x4df8, 0x4f5a, 0x4e88, 0x4e88, 0x4f1c, 0x4e40, 0x4dea, 0x4ddf, 0x4ecb, 0x4e4e, 0x4e15, 0x4e32, 0x4ec9, 0x4dc5, 0x4e88, 0x4dd2, 0x4e51, 0x4e38, 0x4e88, 0x4e03, 0x4e75, 0x4ef6, 0x4eda, 0x4e88, 0x4ea8, 0x4e77, 0x4ec2, 0x4df3, 0x4e12, 0x4e23, 0x4df5, 0x4e0a, 0x4e86, 0x4e65, 0x4df8, 0x4ede, 0x4e52, 0x4ea9, 0x4da0, 0x4e3d, 0x4f16, 0x4e37, 0x4ee0, 0x4df5, 0x4def, 0x4e7a, 0x4dc7, 0x4e6b, 0x4ea5, 0x4e02, 0x4e52, 0x4e35, 0x4e6f, 0x4f2c, 0x4dd0, 0x4e5d, 0x4e27, 0x4e36, 0x4e9b, 0x4e77, 0x4eaa, 0x4f73, 0x4e60, 0x4dfc, 0x4f07, 0x4e60, 0x4e77, 0x4dfd, 0x4e39, 0x4e7a, 0x4e32, 0x4e65, 0x4e35, 0x4e28, 0x4dfe, 0x4eb3, 0x4e20, 0x4e8f, 0x4e7a, 0x4e05, 0x4e5b, 0x4eca, 0x4dcf, 0x4ec3, 0x4eee, 0x4ea4, 0x4e05, 0x4ded, +0x4e2a, 0x4e81, 0x4e68, 0x4de3, 0x4e93, 0x4dc5, 0x4e6a, 0x4f2a, 0x4df5, 0x4fa3, 0x4e54, 0x4e50, 0x4edf, 0x4e46, 0x4e9a, 0x4e35, 0x4ef8, 0x4e70, 0x4da1, 0x4e3d, 0x4e71, 0x4dfb, 0x4e64, 0x4d8e, 0x4e2f, 0x4e3d, 0x4e51, 0x4dd6, 0x4ecd, 0x4ea0, 0x4ecf, 0x4eba, 0x4e64, 0x4e65, 0x4ed8, 0x4dfd, 0x4e11, 0x4e1a, 0x4dc1, 0x4e5c, 0x4e66, 0x4e31, 0x4e6d, 0x4efa, 0x4dfe, 0x4f06, 0x4dd9, 0x4e0a, 0x4eed, 0x4df1, 0x4ef5, 0x4e12, 0x4dc6, 0x4e56, 0x4e31, 0x4dec, 0x4e66, 0x4db6, 0x4d8c, 0x4e40, 0x4e38, 0x4f37, 0x4dc4, 0x4ebe, 0x4e42, 0x4de6, 0x4e8b, 0x4eab, 0x4e84, 0x4eee, 0x4ec7, 0x4e13, 0x4e45, 0x4e7c, 0x4ea5, 0x4e72, 0x4e7f, 0x4e91, 0x4e53, 0x4e74, 0x4e5f, 0x4e41, 0x4e9c, 0x4ea3, 0x4da1, 0x4e06, 0x4e0b, 0x4dce, 0x4e5a, 0x4ed8, 0x4deb, 0x4e5c, 0x4ecd, 0x4eaf, 0x4e17, 0x4dc0, +0x4de1, 0x4df5, 0x4e47, 0x4de4, 0x4e55, 0x4de7, 0x4e23, 0x4f36, 0x4e02, 0x4f54, 0x4e1d, 0x4e77, 0x4ef4, 0x4e3a, 0x4e11, 0x4e2f, 0x4ef2, 0x4dd7, 0x4d78, 0x4e6f, 0x4e4b, 0x4da1, 0x4dc0, 0x4df2, 0x4de6, 0x4e31, 0x4ed7, 0x4e12, 0x4e15, 0x4eba, 0x4e06, 0x4e6e, 0x4e1e, 0x4e11, 0x4e69, 0x4dc7, 0x4df4, 0x4d9a, 0x4dbb, 0x4e16, 0x4dd8, 0x4e22, 0x4dad, 0x4e5c, 0x4df8, 0x4ea6, 0x4d9d, 0x4e12, 0x4ec1, 0x4dd9, 0x4f1a, 0x4ded, 0x4d6c, 0x4de3, 0x4dc5, 0x4e41, 0x4e66, 0x4d96, 0x4def, 0x4e15, 0x4e17, 0x4ec8, 0x4da2, 0x4e8e, 0x4de3, 0x4de2, 0x4ead, 0x4e9c, 0x4e8d, 0x4f0e, 0x4e35, 0x4e42, 0x4ebd, 0x4e0f, 0x4e8e, 0x4e1b, 0x4e29, 0x4e37, 0x4e5f, 0x4e33, 0x4e74, 0x4e10, 0x4dc6, 0x4e6f, 0x4dd4, 0x4e07, 0x4e8f, 0x4d7c, 0x4da2, 0x4ea6, 0x4ddd, 0x4ea0, 0x4edc, 0x4e44, 0x4e3f, 0x4dcf, +0x4d64, 0x4dbc, 0x4e2a, 0x4d7b, 0x4e0c, 0x4d70, 0x4d5c, 0x4e7f, 0x4d22, 0x4e82, 0x4dc7, 0x4e34, 0x4eb8, 0x4d43, 0x4d93, 0x4db4, 0x4e62, 0x4d6c, 0x4d5d, 0x4df9, 0x4daf, 0x4d4c, 0x4d4d, 0x4d5e, 0x4dc0, 0x4d68, 0x4e15, 0x4d39, 0x4e00, 0x4e8d, 0x4df5, 0x4e3d, 0x4dbd, 0x4d3d, 0x4ddc, 0x4d68, 0x4d55, 0x4d32, 0x4cec, 0x4d58, 0x4d8d, 0x4dcc, 0x4d55, 0x4ded, 0x4dfd, 0x4e14, 0x4d4e, 0x4d69, 0x4e63, 0x4d60, 0x4e56, 0x4db8, 0x4d40, 0x4daf, 0x4d4b, 0x4db7, 0x4d88, 0x4d57, 0x4d78, 0x4df0, 0x4ddf, 0x4ea7, 0x4d74, 0x4ddf, 0x4d1f, 0x4d45, 0x4dda, 0x4dc0, 0x4e11, 0x4e5e, 0x4de0, 0x4dfb, 0x4db1, 0x4dbe, 0x4df9, 0x4df0, 0x4db3, 0x4de6, 0x4d9c, 0x4e03, 0x4e08, 0x4d73, 0x4d70, 0x4df1, 0x4dca, 0x4dc5, 0x4d97, 0x4d15, 0x4db0, 0x4e61, 0x4d67, 0x4dc5, 0x4e20, 0x4d85, 0x4d6b, 0x4d62, +0x4d80, 0x4df6, 0x4e6f, 0x4d6a, 0x4e44, 0x4dc4, 0x4e6c, 0x4e7a, 0x4dd6, 0x4f7d, 0x4dda, 0x4dc4, 0x4f2e, 0x4db6, 0x4e17, 0x4ddb, 0x4e6f, 0x4dae, 0x4d64, 0x4dd7, 0x4e04, 0x4dba, 0x4dc3, 0x4de4, 0x4e27, 0x4e3a, 0x4e65, 0x4d7c, 0x4e06, 0x4ead, 0x4dfa, 0x4e4d, 0x4df1, 0x4e0d, 0x4eb9, 0x4dd6, 0x4e4e, 0x4d75, 0x4dca, 0x4df0, 0x4dde, 0x4e13, 0x4de3, 0x4ef2, 0x4dfe, 0x4e7e, 0x4d4a, 0x4dd2, 0x4e5c, 0x4dac, 0x4e79, 0x4dce, 0x4d0a, 0x4e15, 0x4dfc, 0x4df1, 0x4e77, 0x4db2, 0x4d70, 0x4e5c, 0x4e18, 0x4ee6, 0x4db1, 0x4e6b, 0x4d81, 0x4e15, 0x4e18, 0x4e15, 0x4dff, 0x4e9d, 0x4e3a, 0x4e0b, 0x4e75, 0x4dee, 0x4e31, 0x4e0e, 0x4de0, 0x4e45, 0x4e2c, 0x4e78, 0x4e7c, 0x4da5, 0x4dad, 0x4edc, 0x4df9, 0x4e0d, 0x4e39, 0x4d71, 0x4d8a, 0x4e50, 0x4dd8, 0x4e38, 0x4e5e, 0x4ddd, 0x4e18, 0x4d7e, +0x4dd4, 0x4df2, 0x4e8f, 0x4dd6, 0x4e08, 0x4dc1, 0x4e1b, 0x4f76, 0x4dea, 0x4f19, 0x4e8a, 0x4eb4, 0x4f5a, 0x4de2, 0x4df5, 0x4e7d, 0x4e87, 0x4e40, 0x4db8, 0x4ea9, 0x4e79, 0x4da2, 0x4e33, 0x4d4a, 0x4e4b, 0x4e18, 0x4e44, 0x4e00, 0x4e51, 0x4e9f, 0x4e5d, 0x4e73, 0x4e09, 0x4e51, 0x4e4f, 0x4e52, 0x4ddf, 0x4dc7, 0x4dd6, 0x4e21, 0x4e2f, 0x4e62, 0x4ddb, 0x4ea4, 0x4e07, 0x4eb9, 0x4ded, 0x4dcc, 0x4ed5, 0x4dcd, 0x4ebf, 0x4dce, 0x4d8e, 0x4dd4, 0x4d90, 0x4e36, 0x4e69, 0x4de2, 0x4d98, 0x4e4c, 0x4e10, 0x4ecc, 0x4d5d, 0x4ebc, 0x4dd7, 0x4e00, 0x4e78, 0x4e8f, 0x4ea8, 0x4ee1, 0x4e82, 0x4e2e, 0x4e0b, 0x4e1d, 0x4e94, 0x4e36, 0x4dff, 0x4e1d, 0x4e2d, 0x4dd3, 0x4e2e, 0x4e02, 0x4def, 0x4e83, 0x4dc1, 0x4e30, 0x4e18, 0x4dc8, 0x4dcc, 0x4e7b, 0x4deb, 0x4e91, 0x4e53, 0x4ead, 0x4e39, 0x4de7, +0x4db6, 0x4dde, 0x4e7e, 0x4d9c, 0x4e4d, 0x4d7f, 0x4dd3, 0x4e1d, 0x4dee, 0x4efe, 0x4e96, 0x4e29, 0x4e9f, 0x4e12, 0x4dfb, 0x4e03, 0x4e55, 0x4e4d, 0x4d8e, 0x4df4, 0x4e23, 0x4dd3, 0x4dbf, 0x4dd2, 0x4e6f, 0x4dab, 0x4e07, 0x4e0d, 0x4e82, 0x4e89, 0x4e4c, 0x4e3f, 0x4e3b, 0x4e64, 0x4e44, 0x4e2d, 0x4db1, 0x4dc5, 0x4db7, 0x4dcf, 0x4e33, 0x4e54, 0x4e27, 0x4e12, 0x4e13, 0x4e28, 0x4d7e, 0x4df7, 0x4eb3, 0x4df0, 0x4eda, 0x4df1, 0x4d04, 0x4df4, 0x4d89, 0x4dfb, 0x4e5b, 0x4dd4, 0x4d9e, 0x4e56, 0x4e47, 0x4ec2, 0x4d55, 0x4e0c, 0x4d56, 0x4e2c, 0x4d9b, 0x4e3c, 0x4e5b, 0x4ed3, 0x4e76, 0x4de1, 0x4e24, 0x4e31, 0x4e21, 0x4dec, 0x4dfe, 0x4e35, 0x4e3a, 0x4e7f, 0x4e71, 0x4dc9, 0x4e07, 0x4ea7, 0x4dbf, 0x4e4d, 0x4e21, 0x4d4e, 0x4dff, 0x4e44, 0x4dbc, 0x4e34, 0x4e63, 0x4e9d, 0x4ddd, 0x4e09, +0x4d5f, 0x4d52, 0x4e04, 0x4d4d, 0x4dc9, 0x4d7b, 0x4e22, 0x4e97, 0x4dc6, 0x4ec4, 0x4e0e, 0x4e14, 0x4ea4, 0x4d64, 0x4dbc, 0x4df1, 0x4e04, 0x4d9f, 0x4db5, 0x4dcb, 0x4dbc, 0x4d69, 0x4dc0, 0x4da8, 0x4e3e, 0x4e16, 0x4e73, 0x4d5d, 0x4e6c, 0x4eb7, 0x4e6f, 0x4de6, 0x4dc8, 0x4e02, 0x4e9e, 0x4d83, 0x4d8c, 0x4d6f, 0x4d25, 0x4dfd, 0x4e12, 0x4d9a, 0x4d58, 0x4e95, 0x4de8, 0x4e74, 0x4d50, 0x4df8, 0x4ddf, 0x4e0e, 0x4eb7, 0x4de1, 0x4d5f, 0x4d95, 0x4d8a, 0x4dcf, 0x4e35, 0x4dc7, 0x4d95, 0x4db6, 0x4db7, 0x4f00, 0x4d61, 0x4dc9, 0x4daa, 0x4daf, 0x4e2e, 0x4e12, 0x4e12, 0x4ed4, 0x4e2f, 0x4db5, 0x4e30, 0x4dfc, 0x4e4e, 0x4e39, 0x4e06, 0x4e30, 0x4ddd, 0x4e11, 0x4e6b, 0x4dc2, 0x4d96, 0x4e6a, 0x4d42, 0x4e30, 0x4e1f, 0x4d21, 0x4de8, 0x4e8c, 0x4dbc, 0x4dcc, 0x4e03, 0x4e61, 0x4df3, 0x4e23, +0x4d73, 0x4d6b, 0x4e65, 0x4d83, 0x4e07, 0x4de4, 0x4e20, 0x4ecc, 0x4d8e, 0x4eca, 0x4ddf, 0x4dc7, 0x4ead, 0x4d93, 0x4d81, 0x4df7, 0x4e5a, 0x4dac, 0x4d5e, 0x4dd7, 0x4e0c, 0x4d53, 0x4db1, 0x4cc3, 0x4e09, 0x4dac, 0x4e44, 0x4d97, 0x4df3, 0x4e6c, 0x4e2d, 0x4da1, 0x4df0, 0x4df1, 0x4e35, 0x4d86, 0x4d8f, 0x4da9, 0x4ce6, 0x4d92, 0x4e33, 0x4e02, 0x4d57, 0x4e1e, 0x4d6f, 0x4e9b, 0x4cf6, 0x4db4, 0x4df2, 0x4e0a, 0x4e79, 0x4db6, 0x4d5e, 0x4d87, 0x4d94, 0x4d98, 0x4dd8, 0x4d9f, 0x4d9b, 0x4e07, 0x4db5, 0x4e90, 0x4d8f, 0x4e04, 0x4d37, 0x4df3, 0x4dbb, 0x4e0b, 0x4e46, 0x4e72, 0x4e38, 0x4d88, 0x4de0, 0x4dd0, 0x4e34, 0x4e1c, 0x4ddc, 0x4de9, 0x4df7, 0x4dc5, 0x4e26, 0x4dcb, 0x4dc6, 0x4e10, 0x4db4, 0x4dda, 0x4e2c, 0x4d42, 0x4dda, 0x4e34, 0x4df9, 0x4df6, 0x4e4c, 0x4e60, 0x4dce, 0x4da1, +0x4dfb, 0x4ddc, 0x4dfc, 0x4df6, 0x4e60, 0x4e79, 0x4ee5, 0x4f0d, 0x4e50, 0x4f64, 0x4e51, 0x4e14, 0x4f68, 0x4e42, 0x4e0e, 0x4dea, 0x4e93, 0x4e28, 0x4dd7, 0x4e3a, 0x4e8b, 0x4d3a, 0x4e6a, 0x4dd7, 0x4e04, 0x4e77, 0x4e54, 0x4de5, 0x4e6e, 0x4ead, 0x4e4d, 0x4ed8, 0x4e36, 0x4e13, 0x4ef5, 0x4e57, 0x4e79, 0x4df7, 0x4dca, 0x4dd7, 0x4dc8, 0x4e46, 0x4df8, 0x4ea0, 0x4e57, 0x4eab, 0x4dbd, 0x4de8, 0x4ebc, 0x4ddd, 0x4f0b, 0x4e75, 0x4d8e, 0x4e2c, 0x4d68, 0x4e38, 0x4e5d, 0x4de2, 0x4e27, 0x4e44, 0x4e80, 0x4f24, 0x4db1, 0x4e59, 0x4dcb, 0x4df5, 0x4e8c, 0x4e7c, 0x4ec9, 0x4eca, 0x4e37, 0x4e6b, 0x4e74, 0x4e1e, 0x4ebb, 0x4e4e, 0x4e39, 0x4e60, 0x4e2e, 0x4e6a, 0x4ebd, 0x4ddd, 0x4dd9, 0x4e88, 0x4db2, 0x4e21, 0x4de8, 0x4daf, 0x4e9e, 0x4e7e, 0x4e1d, 0x4e78, 0x4e9e, 0x4e69, 0x4e48, 0x4df0, +0x4e18, 0x4e15, 0x4e0d, 0x4d9d, 0x4de2, 0x4db6, 0x4e03, 0x4e90, 0x4db2, 0x4f64, 0x4e3c, 0x4e44, 0x4f07, 0x4e61, 0x4e19, 0x4e2a, 0x4e27, 0x4dea, 0x4dda, 0x4e0d, 0x4e2a, 0x4d6f, 0x4df2, 0x4dae, 0x4e27, 0x4e12, 0x4e69, 0x4d56, 0x4e61, 0x4ec9, 0x4e75, 0x4dfb, 0x4df1, 0x4e4b, 0x4e66, 0x4e00, 0x4df6, 0x4dd5, 0x4d9c, 0x4dd9, 0x4dc1, 0x4e0f, 0x4dff, 0x4e66, 0x4e12, 0x4e5e, 0x4dc5, 0x4e06, 0x4ea9, 0x4d9a, 0x4edd, 0x4d9c, 0x4d79, 0x4dfa, 0x4dec, 0x4de7, 0x4e23, 0x4dde, 0x4d74, 0x4e25, 0x4e5e, 0x4ed2, 0x4dbe, 0x4eb2, 0x4d68, 0x4df8, 0x4e4e, 0x4e5f, 0x4e72, 0x4eae, 0x4e68, 0x4d79, 0x4e1b, 0x4df4, 0x4e5c, 0x4e0b, 0x4e38, 0x4e14, 0x4e30, 0x4e1e, 0x4e6e, 0x4da5, 0x4e15, 0x4e83, 0x4d85, 0x4e05, 0x4dc2, 0x4d58, 0x4dfe, 0x4e6a, 0x4dbd, 0x4df2, 0x4e78, 0x4e34, 0x4e58, 0x4de8, +0x4ed2, 0x4e61, 0x4e8f, 0x4ebf, 0x4ef5, 0x4e4a, 0x4ed0, 0x4f75, 0x4dcc, 0x500b, 0x4e3a, 0x4ed7, 0x4f6a, 0x4e6b, 0x4e3d, 0x4e69, 0x4ee1, 0x4ef6, 0x4de0, 0x4e8a, 0x4ea9, 0x4dd9, 0x4e98, 0x4e63, 0x4e1a, 0x4eb5, 0x4f27, 0x4dfb, 0x4eec, 0x4f05, 0x4ee4, 0x4ec3, 0x4ede, 0x4ed6, 0x4eee, 0x4e11, 0x4e56, 0x4dc8, 0x4e3e, 0x4e6d, 0x4ebb, 0x4e82, 0x4e5e, 0x4f27, 0x4ec1, 0x4f29, 0x4dc5, 0x4e07, 0x4f4b, 0x4e3a, 0x4f06, 0x4e9b, 0x4e12, 0x4e68, 0x4e1b, 0x4e6c, 0x4ec0, 0x4e53, 0x4dd4, 0x4e71, 0x4ea6, 0x4f59, 0x4d84, 0x4ed9, 0x4dd2, 0x4e56, 0x4ecf, 0x4e41, 0x4e5b, 0x4f78, 0x4eaa, 0x4ee4, 0x4ec2, 0x4e0f, 0x4ea8, 0x4e99, 0x4e0f, 0x4ed0, 0x4e36, 0x4e7e, 0x4ea4, 0x4e09, 0x4ea2, 0x4ed1, 0x4e45, 0x4e2d, 0x4e7f, 0x4dfe, 0x4ea7, 0x4f08, 0x4e5b, 0x4f1e, 0x4f1b, 0x4e8d, 0x4e63, 0x4e1f, +0x4d50, 0x4d58, 0x4dc6, 0x4d63, 0x4d51, 0x4cf4, 0x4dea, 0x4e93, 0x4d63, 0x4e41, 0x4d61, 0x4dd5, 0x4e3a, 0x4d60, 0x4dd1, 0x4d9f, 0x4e21, 0x4d1d, 0x4d52, 0x4d9e, 0x4df7, 0x4d53, 0x4d8c, 0x4d57, 0x4dad, 0x4d52, 0x4ddb, 0x4ccb, 0x4e0b, 0x4e33, 0x4e0d, 0x4e17, 0x4d8e, 0x4d64, 0x4e15, 0x4d7d, 0x4db1, 0x4d3c, 0x4d35, 0x4d81, 0x4d5b, 0x4ddf, 0x4d29, 0x4e15, 0x4d2c, 0x4dbe, 0x4ca5, 0x4d96, 0x4dd8, 0x4d8b, 0x4deb, 0x4d1f, 0x4d1e, 0x4d79, 0x4ce2, 0x4d9c, 0x4de9, 0x4d13, 0x4d46, 0x4d99, 0x4ddf, 0x4e32, 0x4d14, 0x4dae, 0x4d49, 0x4d7d, 0x4dd3, 0x4dc0, 0x4e07, 0x4e17, 0x4de2, 0x4d3c, 0x4dcc, 0x4dd0, 0x4dff, 0x4d24, 0x4d49, 0x4dc4, 0x4d5e, 0x4d94, 0x4e1d, 0x4d76, 0x4d29, 0x4dce, 0x4d50, 0x4d84, 0x4d8a, 0x4d39, 0x4dcc, 0x4dd3, 0x4d6b, 0x4de9, 0x4e08, 0x4d81, 0x4d94, 0x4d8a, +0x4d9f, 0x4e04, 0x4e12, 0x4d91, 0x4df5, 0x4d8b, 0x4dbb, 0x4ea8, 0x4da5, 0x4edd, 0x4da2, 0x4da1, 0x4e67, 0x4dae, 0x4db6, 0x4df3, 0x4e3c, 0x4d05, 0x4d7d, 0x4dcd, 0x4dbd, 0x4d86, 0x4da9, 0x4d85, 0x4dc9, 0x4daa, 0x4e3d, 0x4d34, 0x4dfa, 0x4e65, 0x4e16, 0x4ddf, 0x4dae, 0x4d7e, 0x4e6f, 0x4d42, 0x4d8c, 0x4d5c, 0x4d39, 0x4e04, 0x4d90, 0x4da6, 0x4d72, 0x4e42, 0x4e03, 0x4e15, 0x4d9b, 0x4dc6, 0x4e18, 0x4d68, 0x4e3e, 0x4da7, 0x4cfb, 0x4db9, 0x4db4, 0x4d47, 0x4dac, 0x4d0d, 0x4d91, 0x4de7, 0x4dcc, 0x4ece, 0x4d39, 0x4ddb, 0x4d3f, 0x4d17, 0x4e3d, 0x4e87, 0x4da9, 0x4e9d, 0x4df6, 0x4dba, 0x4de3, 0x4d73, 0x4ddf, 0x4d6c, 0x4df5, 0x4dc4, 0x4d89, 0x4dac, 0x4e55, 0x4d8d, 0x4d29, 0x4e7c, 0x4d3e, 0x4dc3, 0x4dc6, 0x4d16, 0x4db1, 0x4db6, 0x4d2e, 0x4e10, 0x4e8f, 0x4e53, 0x4def, 0x4d93, +0x4d7c, 0x4dc3, 0x4e09, 0x4e1d, 0x4e57, 0x4dfd, 0x4ea6, 0x4f29, 0x4e11, 0x4f37, 0x4e26, 0x4e3f, 0x4f1f, 0x4e26, 0x4e37, 0x4e0b, 0x4ea0, 0x4e58, 0x4d9f, 0x4df1, 0x4e40, 0x4d80, 0x4e42, 0x4da5, 0x4e6b, 0x4e59, 0x4e1a, 0x4dc2, 0x4e18, 0x4eae, 0x4eb2, 0x4e4e, 0x4e46, 0x4e70, 0x4e78, 0x4de5, 0x4dfb, 0x4d66, 0x4ddb, 0x4dcf, 0x4de8, 0x4e80, 0x4e25, 0x4efd, 0x4e0a, 0x4e74, 0x4d9c, 0x4e3a, 0x4ec3, 0x4e2a, 0x4ea9, 0x4db9, 0x4d98, 0x4e32, 0x4dfd, 0x4e29, 0x4e8b, 0x4da4, 0x4dda, 0x4e59, 0x4e6d, 0x4f14, 0x4da8, 0x4e73, 0x4e03, 0x4e0e, 0x4e3f, 0x4e4f, 0x4e67, 0x4ece, 0x4e6d, 0x4db3, 0x4e71, 0x4e03, 0x4e4d, 0x4e1d, 0x4e9e, 0x4deb, 0x4dd6, 0x4de6, 0x4ebf, 0x4da2, 0x4e25, 0x4eb3, 0x4dbd, 0x4e42, 0x4e33, 0x4dfa, 0x4e18, 0x4e34, 0x4db7, 0x4e62, 0x4e91, 0x4e55, 0x4e39, 0x4e0e, +0x4e1c, 0x4e0e, 0x4ea5, 0x4dfe, 0x4e42, 0x4e24, 0x4ee6, 0x4f64, 0x4e07, 0x4f49, 0x4e23, 0x4e79, 0x4f00, 0x4e39, 0x4e49, 0x4e64, 0x4efa, 0x4e6b, 0x4dcb, 0x4ebb, 0x4dec, 0x4e02, 0x4e6b, 0x4dad, 0x4e53, 0x4e8d, 0x4e1b, 0x4dbe, 0x4e5f, 0x4f4a, 0x4ea3, 0x4e1b, 0x4e26, 0x4e29, 0x4e9b, 0x4e22, 0x4e06, 0x4e0a, 0x4e12, 0x4dd4, 0x4e83, 0x4e6b, 0x4e03, 0x4ebb, 0x4e0e, 0x4eef, 0x4db8, 0x4de8, 0x4ef8, 0x4dfa, 0x4e70, 0x4dfe, 0x4db4, 0x4e48, 0x4db3, 0x4dd6, 0x4e90, 0x4e0f, 0x4e43, 0x4eb7, 0x4eb4, 0x4f39, 0x4db4, 0x4eea, 0x4dc9, 0x4e4f, 0x4e79, 0x4e82, 0x4e4d, 0x4ebe, 0x4ea0, 0x4e1d, 0x4e88, 0x4e2a, 0x4ea2, 0x4dff, 0x4e4a, 0x4e1e, 0x4e56, 0x4e42, 0x4eee, 0x4e13, 0x4e05, 0x4e8d, 0x4d84, 0x4e5f, 0x4e72, 0x4da9, 0x4e65, 0x4e82, 0x4dd0, 0x4eec, 0x4ebf, 0x4e6d, 0x4e05, 0x4e34, +0x4df7, 0x4df8, 0x4e19, 0x4dc2, 0x4e08, 0x4d96, 0x4e15, 0x4e8b, 0x4dd6, 0x4ee6, 0x4e2a, 0x4e81, 0x4eb0, 0x4dbc, 0x4db3, 0x4dc1, 0x4e4a, 0x4e07, 0x4de6, 0x4e38, 0x4e01, 0x4d73, 0x4de0, 0x4d6b, 0x4e18, 0x4e38, 0x4e4c, 0x4d81, 0x4e65, 0x4efa, 0x4e48, 0x4e20, 0x4e19, 0x4dc1, 0x4e7b, 0x4dd9, 0x4e18, 0x4dd3, 0x4d4c, 0x4ddd, 0x4dc0, 0x4e14, 0x4d8a, 0x4e9f, 0x4dbf, 0x4e45, 0x4d36, 0x4e03, 0x4e7c, 0x4d8b, 0x4e7a, 0x4dc3, 0x4d4d, 0x4dff, 0x4d84, 0x4ddd, 0x4e76, 0x4d7d, 0x4d74, 0x4e02, 0x4e10, 0x4e5f, 0x4d8c, 0x4e26, 0x4d8b, 0x4dd5, 0x4e33, 0x4e0a, 0x4df0, 0x4ee1, 0x4e21, 0x4d9d, 0x4e45, 0x4e22, 0x4e2a, 0x4de6, 0x4e22, 0x4e4c, 0x4de5, 0x4e0e, 0x4e9d, 0x4d29, 0x4d9c, 0x4e5e, 0x4d53, 0x4e15, 0x4e02, 0x4d64, 0x4dd4, 0x4e46, 0x4d64, 0x4e19, 0x4e5f, 0x4e3a, 0x4d78, 0x4db6, +0x4dec, 0x4ddb, 0x4e68, 0x4d9e, 0x4e3c, 0x4e3e, 0x4e41, 0x4f6c, 0x4e24, 0x4f2a, 0x4e2e, 0x4e7c, 0x4f37, 0x4dde, 0x4dd5, 0x4e75, 0x4eb7, 0x4dc9, 0x4dcb, 0x4e36, 0x4e72, 0x4df6, 0x4e52, 0x4db5, 0x4dfa, 0x4e34, 0x4ebf, 0x4dcd, 0x4e14, 0x4edf, 0x4e6b, 0x4e8b, 0x4e41, 0x4e5f, 0x4e82, 0x4dd6, 0x4e0a, 0x4db8, 0x4dc6, 0x4e34, 0x4e16, 0x4eb4, 0x4e02, 0x4ed2, 0x4e2d, 0x4ef5, 0x4dc5, 0x4e36, 0x4eb4, 0x4df0, 0x4f4d, 0x4de8, 0x4dac, 0x4e0a, 0x4d9c, 0x4e45, 0x4e79, 0x4dd1, 0x4db0, 0x4ec1, 0x4dfb, 0x4ee0, 0x4d70, 0x4e88, 0x4df2, 0x4df6, 0x4e3f, 0x4e33, 0x4ef4, 0x4f0b, 0x4e75, 0x4e45, 0x4e05, 0x4d91, 0x4e72, 0x4e1b, 0x4e66, 0x4e32, 0x4dd1, 0x4e14, 0x4e63, 0x4e10, 0x4df1, 0x4ebf, 0x4d89, 0x4e6a, 0x4e7b, 0x4d91, 0x4e3f, 0x4e61, 0x4e31, 0x4e7f, 0x4ddd, 0x4e16, 0x4e2b, 0x4de8, +0x4d4a, 0x4d3f, 0x4d6a, 0x4d6a, 0x4e2b, 0x4d74, 0x4de3, 0x4eb1, 0x4dd9, 0x4e75, 0x4da3, 0x4dde, 0x4e51, 0x4ded, 0x4e0a, 0x4d83, 0x4e72, 0x4dd7, 0x4d43, 0x4d74, 0x4e0c, 0x4da8, 0x4df0, 0x4d54, 0x4df0, 0x4e0a, 0x4e25, 0x4d74, 0x4e0f, 0x4e13, 0x4e18, 0x4e0e, 0x4e0c, 0x4dfa, 0x4e2f, 0x4d82, 0x4dbe, 0x4d6a, 0x4d42, 0x4d8b, 0x4ce1, 0x4dc9, 0x4d63, 0x4e1f, 0x4db1, 0x4e11, 0x4d22, 0x4df3, 0x4e58, 0x4d7d, 0x4ec2, 0x4d84, 0x4d46, 0x4d6e, 0x4d20, 0x4d68, 0x4dfe, 0x4d39, 0x4d23, 0x4d87, 0x4d7e, 0x4ec7, 0x4d2a, 0x4dbf, 0x4d44, 0x4d8f, 0x4e0a, 0x4dff, 0x4e30, 0x4e2e, 0x4d94, 0x4d89, 0x4e04, 0x4d72, 0x4dee, 0x4d41, 0x4dd4, 0x4d58, 0x4dba, 0x4d8f, 0x4e19, 0x4dac, 0x4db5, 0x4dea, 0x4ce2, 0x4e1a, 0x4d87, 0x4d54, 0x4d86, 0x4e3e, 0x4e04, 0x4e41, 0x4dd4, 0x4df5, 0x4e28, 0x4d92, +0x4d5e, 0x4dba, 0x4df8, 0x4d94, 0x4df0, 0x4d7d, 0x4dfc, 0x4e83, 0x4df1, 0x4e98, 0x4dd4, 0x4dc6, 0x4e84, 0x4daa, 0x4d97, 0x4d98, 0x4dfd, 0x4d9e, 0x4d4a, 0x4dd7, 0x4d7e, 0x4da5, 0x4dbf, 0x4dd1, 0x4de8, 0x4db7, 0x4dfd, 0x4d45, 0x4dba, 0x4e6c, 0x4df2, 0x4dfc, 0x4dc2, 0x4dad, 0x4e19, 0x4d4d, 0x4df1, 0x4dab, 0x4d76, 0x4da8, 0x4d60, 0x4e55, 0x4dab, 0x4e58, 0x4d6a, 0x4e07, 0x4d48, 0x4d82, 0x4e78, 0x4d73, 0x4e49, 0x4dbe, 0x4d0c, 0x4d80, 0x4dbb, 0x4d67, 0x4e27, 0x4d34, 0x4d72, 0x4de1, 0x4e1d, 0x4e81, 0x4cf1, 0x4e18, 0x4d84, 0x4d8d, 0x4e1b, 0x4e4d, 0x4dd0, 0x4e69, 0x4dc1, 0x4da0, 0x4e4a, 0x4d7b, 0x4dc0, 0x4d4f, 0x4de4, 0x4e1b, 0x4da1, 0x4e14, 0x4e2c, 0x4d53, 0x4d67, 0x4ecd, 0x4d98, 0x4dc2, 0x4dff, 0x4d37, 0x4deb, 0x4dcb, 0x4cff, 0x4de8, 0x4e0a, 0x4d80, 0x4dba, 0x4d6a, +0x4d78, 0x4d5c, 0x4dbd, 0x4d18, 0x4d9d, 0x4d98, 0x4d95, 0x4e53, 0x4d96, 0x4e9f, 0x4db1, 0x4dea, 0x4ea8, 0x4d7f, 0x4d8b, 0x4d7a, 0x4de6, 0x4d5d, 0x4d91, 0x4da5, 0x4da8, 0x4d38, 0x4ddd, 0x4d87, 0x4d57, 0x4dfd, 0x4e38, 0x4d7b, 0x4d9a, 0x4e34, 0x4e26, 0x4da2, 0x4dc3, 0x4d63, 0x4de6, 0x4d54, 0x4dec, 0x4cfb, 0x4d33, 0x4d01, 0x4d50, 0x4da9, 0x4da2, 0x4e13, 0x4dbf, 0x4dff, 0x4d20, 0x4de2, 0x4e2b, 0x4d73, 0x4e87, 0x4d96, 0x4ce3, 0x4d66, 0x4d63, 0x4d8a, 0x4e2e, 0x4d32, 0x4d64, 0x4da9, 0x4da7, 0x4e99, 0x4cff, 0x4e26, 0x4d53, 0x4d79, 0x4df7, 0x4daf, 0x4e47, 0x4e48, 0x4d6a, 0x4dc0, 0x4ddd, 0x4d4d, 0x4dfb, 0x4d9b, 0x4db0, 0x4d67, 0x4ddb, 0x4dfc, 0x4d88, 0x4d4f, 0x4cfd, 0x4e65, 0x4d56, 0x4dca, 0x4dcb, 0x4cdd, 0x4d73, 0x4db6, 0x4d42, 0x4dae, 0x4e26, 0x4d76, 0x4d67, 0x4d82, +0x4dbf, 0x4df6, 0x4e63, 0x4dbc, 0x4edf, 0x4e0f, 0x4dfc, 0x4ecc, 0x4e07, 0x4f24, 0x4e00, 0x4e3b, 0x4f2d, 0x4e76, 0x4e0c, 0x4d9b, 0x4ecf, 0x4e60, 0x4df9, 0x4e4e, 0x4e0e, 0x4dd0, 0x4e7d, 0x4dfb, 0x4e65, 0x4eab, 0x4e78, 0x4e0c, 0x4e44, 0x4e4c, 0x4e70, 0x4e9f, 0x4e78, 0x4e01, 0x4e8d, 0x4e02, 0x4e1e, 0x4dcd, 0x4dce, 0x4dac, 0x4e25, 0x4e11, 0x4df9, 0x4ee4, 0x4e60, 0x4eb6, 0x4dc2, 0x4e32, 0x4f0f, 0x4dad, 0x4f16, 0x4dac, 0x4d37, 0x4e75, 0x4daf, 0x4df5, 0x4e91, 0x4db6, 0x4dc3, 0x4e51, 0x4e1a, 0x4f04, 0x4dd3, 0x4e22, 0x4dcd, 0x4dd4, 0x4e5a, 0x4e38, 0x4e9f, 0x4e7a, 0x4ea4, 0x4e59, 0x4e63, 0x4e09, 0x4e3f, 0x4dff, 0x4e0b, 0x4e1b, 0x4e1b, 0x4e7a, 0x4e5f, 0x4d96, 0x4dc5, 0x4e7d, 0x4d96, 0x4e22, 0x4e39, 0x4d5a, 0x4e54, 0x4eb5, 0x4e10, 0x4e66, 0x4e83, 0x4e2c, 0x4e34, 0x4d5a, +0x4d71, 0x4dd1, 0x4e56, 0x4d84, 0x4dcc, 0x4d86, 0x4e2f, 0x4e5a, 0x4dc0, 0x4ea7, 0x4e1e, 0x4e25, 0x4ea5, 0x4d59, 0x4d96, 0x4e00, 0x4e1c, 0x4d7f, 0x4d79, 0x4e33, 0x4d81, 0x4d99, 0x4d92, 0x4d4f, 0x4d9b, 0x4dec, 0x4e45, 0x4d44, 0x4dcf, 0x4e43, 0x4e26, 0x4dfe, 0x4dd8, 0x4e01, 0x4e6b, 0x4dd2, 0x4ddd, 0x4db8, 0x4d2e, 0x4dec, 0x4de0, 0x4e0f, 0x4da8, 0x4ed9, 0x4da5, 0x4e7f, 0x4cfb, 0x4d7b, 0x4e07, 0x4da2, 0x4e9f, 0x4d95, 0x4d3b, 0x4db7, 0x4da1, 0x4dc7, 0x4dfb, 0x4d73, 0x4d74, 0x4dfb, 0x4df9, 0x4ed7, 0x4d61, 0x4de7, 0x4d74, 0x4db0, 0x4da0, 0x4e05, 0x4e52, 0x4e67, 0x4e3b, 0x4d86, 0x4dca, 0x4ded, 0x4d7e, 0x4d87, 0x4dee, 0x4dec, 0x4dd8, 0x4df7, 0x4e19, 0x4d39, 0x4da2, 0x4e7b, 0x4d5f, 0x4de3, 0x4de7, 0x4d6e, 0x4dad, 0x4e39, 0x4d1b, 0x4e13, 0x4dfe, 0x4de6, 0x4dad, 0x4dd7, +0x4e08, 0x4de7, 0x4e3b, 0x4e57, 0x4ec6, 0x4e89, 0x4eae, 0x4f6b, 0x4e5a, 0x4fbb, 0x4e68, 0x4e30, 0x4f54, 0x4e46, 0x4e31, 0x4e01, 0x4f2d, 0x4e6e, 0x4e0a, 0x4e3e, 0x4ead, 0x4dd6, 0x4e96, 0x4e12, 0x4e62, 0x4e8d, 0x4ec0, 0x4e03, 0x4e58, 0x4eec, 0x4ea5, 0x4eac, 0x4e98, 0x4e68, 0x4efa, 0x4e20, 0x4e2d, 0x4e0a, 0x4e29, 0x4e36, 0x4e62, 0x4e6e, 0x4dc5, 0x4ee7, 0x4e9f, 0x4ef0, 0x4e06, 0x4e0e, 0x4f08, 0x4df4, 0x4f16, 0x4dc9, 0x4d49, 0x4e98, 0x4dcd, 0x4e73, 0x4ecb, 0x4e7e, 0x4e22, 0x4e87, 0x4e90, 0x4f22, 0x4dd9, 0x4ed8, 0x4e21, 0x4e27, 0x4e54, 0x4e73, 0x4e8d, 0x4f3b, 0x4e98, 0x4dfe, 0x4ec4, 0x4e22, 0x4e8b, 0x4e79, 0x4e10, 0x4e68, 0x4e06, 0x4e7a, 0x4ef9, 0x4e1c, 0x4e11, 0x4e9c, 0x4dc7, 0x4e2a, 0x4dec, 0x4e0c, 0x4e55, 0x4e89, 0x4e5f, 0x4f06, 0x4eaf, 0x4e44, 0x4ea0, 0x4e10, +0x4dbc, 0x4dc0, 0x4e13, 0x4da8, 0x4e6c, 0x4e0f, 0x4e94, 0x4ee8, 0x4df0, 0x4f1d, 0x4e41, 0x4e33, 0x4f18, 0x4dbd, 0x4df9, 0x4e19, 0x4e6e, 0x4d98, 0x4d78, 0x4ddf, 0x4e5e, 0x4dad, 0x4dbf, 0x4d88, 0x4e07, 0x4e26, 0x4e1c, 0x4dd3, 0x4e6d, 0x4ef3, 0x4e99, 0x4e3d, 0x4e3c, 0x4e6b, 0x4e6f, 0x4e0e, 0x4df7, 0x4dab, 0x4dd2, 0x4e20, 0x4e18, 0x4dfe, 0x4da4, 0x4e68, 0x4e1e, 0x4e3d, 0x4d7f, 0x4df2, 0x4eb9, 0x4dda, 0x4ec6, 0x4ddb, 0x4d6c, 0x4e1c, 0x4d9e, 0x4e23, 0x4e36, 0x4d74, 0x4dd5, 0x4e31, 0x4e36, 0x4f13, 0x4d62, 0x4e07, 0x4d70, 0x4df5, 0x4e70, 0x4e46, 0x4e5d, 0x4eb4, 0x4e6d, 0x4de1, 0x4e64, 0x4e17, 0x4e36, 0x4e2f, 0x4e29, 0x4e32, 0x4dde, 0x4dc9, 0x4e74, 0x4de5, 0x4de6, 0x4e52, 0x4da3, 0x4e0e, 0x4e4b, 0x4daf, 0x4dec, 0x4ebe, 0x4dc5, 0x4e10, 0x4e83, 0x4e8d, 0x4e13, 0x4e0d, +0x4de6, 0x4e03, 0x4e4f, 0x4d8b, 0x4e9b, 0x4e0f, 0x4ea4, 0x4ed6, 0x4dca, 0x4f1d, 0x4e28, 0x4e48, 0x4eff, 0x4e00, 0x4e96, 0x4e11, 0x4eb8, 0x4dae, 0x4df2, 0x4e6d, 0x4e65, 0x4e1a, 0x4e33, 0x4e04, 0x4e00, 0x4e74, 0x4eca, 0x4df9, 0x4e32, 0x4e8c, 0x4eac, 0x4e81, 0x4e27, 0x4e2a, 0x4e53, 0x4de1, 0x4df1, 0x4d9c, 0x4dd9, 0x4e37, 0x4e26, 0x4e2f, 0x4d63, 0x4edb, 0x4e62, 0x4ebd, 0x4dd5, 0x4e05, 0x4eb9, 0x4dd1, 0x4f1c, 0x4dee, 0x4d5f, 0x4e2c, 0x4e1e, 0x4e07, 0x4e03, 0x4ddf, 0x4dc5, 0x4dd1, 0x4e05, 0x4edb, 0x4dca, 0x4e5a, 0x4d80, 0x4dd5, 0x4e75, 0x4e6a, 0x4e69, 0x4eb3, 0x4e49, 0x4e88, 0x4ea2, 0x4e28, 0x4ea6, 0x4e21, 0x4e0a, 0x4e2f, 0x4e39, 0x4e43, 0x4e3b, 0x4e07, 0x4d9a, 0x4e97, 0x4d98, 0x4e81, 0x4dd9, 0x4d1d, 0x4e15, 0x4e7c, 0x4e15, 0x4e48, 0x4ec0, 0x4e99, 0x4e31, 0x4e50, +0x4d4e, 0x4dcf, 0x4e16, 0x4e0f, 0x4e3d, 0x4d5b, 0x4dd0, 0x4ed8, 0x4dfa, 0x4f4d, 0x4dbd, 0x4e5d, 0x4e9b, 0x4d9b, 0x4e37, 0x4dcd, 0x4e8e, 0x4e45, 0x4d87, 0x4dfa, 0x4e43, 0x4dd6, 0x4e1c, 0x4d8a, 0x4e32, 0x4ddb, 0x4e30, 0x4d75, 0x4db6, 0x4eca, 0x4dcd, 0x4e08, 0x4e13, 0x4e61, 0x4e35, 0x4dd9, 0x4dbc, 0x4d9e, 0x4d85, 0x4dfe, 0x4e2a, 0x4e31, 0x4d76, 0x4e50, 0x4dcc, 0x4e8e, 0x4d2d, 0x4de9, 0x4eaf, 0x4d8a, 0x4ebd, 0x4db0, 0x4d28, 0x4def, 0x4da2, 0x4db8, 0x4e71, 0x4dc0, 0x4d07, 0x4dd9, 0x4e0d, 0x4eec, 0x4dd4, 0x4dff, 0x4d97, 0x4ded, 0x4e33, 0x4e55, 0x4e1f, 0x4e88, 0x4e25, 0x4da1, 0x4e0d, 0x4de9, 0x4e00, 0x4dc7, 0x4de5, 0x4dc9, 0x4e36, 0x4dd4, 0x4eae, 0x4df1, 0x4e29, 0x4ecc, 0x4d81, 0x4e1d, 0x4e1a, 0x4d93, 0x4dd0, 0x4e67, 0x4ddf, 0x4e49, 0x4e29, 0x4dfc, 0x4e4e, 0x4e15, +0x4d53, 0x4d54, 0x4dcb, 0x4d20, 0x4d9f, 0x4d7b, 0x4db1, 0x4e61, 0x4d86, 0x4e2b, 0x4d85, 0x4dca, 0x4e88, 0x4d8f, 0x4d7c, 0x4dbd, 0x4dd1, 0x4d53, 0x4cf8, 0x4e33, 0x4daa, 0x4d52, 0x4d77, 0x4d28, 0x4db3, 0x4db7, 0x4da2, 0x4d5f, 0x4d8b, 0x4e40, 0x4e0a, 0x4d4e, 0x4d44, 0x4d89, 0x4dd4, 0x4ced, 0x4d7e, 0x4d23, 0x4d3b, 0x4d33, 0x4d97, 0x4dbe, 0x4d4e, 0x4e18, 0x4d25, 0x4e37, 0x4cec, 0x4d58, 0x4dd8, 0x4d79, 0x4e3c, 0x4d8d, 0x4d0e, 0x4d56, 0x4ce2, 0x4d47, 0x4dec, 0x4d34, 0x4d24, 0x4df8, 0x4d54, 0x4dc0, 0x4ce1, 0x4db2, 0x4d4d, 0x4d59, 0x4d7b, 0x4db2, 0x4db9, 0x4e11, 0x4d44, 0x4daa, 0x4dc6, 0x4d61, 0x4db8, 0x4d7d, 0x4d94, 0x4dc4, 0x4d64, 0x4da8, 0x4db3, 0x4d5b, 0x4d48, 0x4e4c, 0x4d38, 0x4cf7, 0x4dda, 0x4ce7, 0x4de8, 0x4de0, 0x4d34, 0x4dc4, 0x4e01, 0x4db9, 0x4d72, 0x4d31, +0x4d50, 0x4d8a, 0x4e4e, 0x4d70, 0x4e36, 0x4db3, 0x4e2c, 0x4ec3, 0x4de3, 0x4f03, 0x4e28, 0x4e59, 0x4ec1, 0x4dee, 0x4db6, 0x4dfa, 0x4e6c, 0x4de5, 0x4d40, 0x4dc9, 0x4e59, 0x4d89, 0x4dc7, 0x4da5, 0x4d83, 0x4e48, 0x4e69, 0x4df2, 0x4e0e, 0x4ebb, 0x4e4c, 0x4e39, 0x4e07, 0x4e1c, 0x4e5c, 0x4db9, 0x4e05, 0x4d7f, 0x4d54, 0x4de6, 0x4dca, 0x4df7, 0x4d7c, 0x4e50, 0x4e43, 0x4e69, 0x4da0, 0x4e1d, 0x4e57, 0x4db8, 0x4eb1, 0x4e23, 0x4d6d, 0x4e1c, 0x4d74, 0x4e16, 0x4e3b, 0x4dcc, 0x4d94, 0x4e5b, 0x4e25, 0x4ec5, 0x4d65, 0x4e1c, 0x4d5b, 0x4ded, 0x4e12, 0x4e06, 0x4e1a, 0x4eb6, 0x4de4, 0x4dbf, 0x4e1a, 0x4e3b, 0x4e57, 0x4dff, 0x4dd6, 0x4e6a, 0x4dc5, 0x4e4f, 0x4e81, 0x4d7e, 0x4dc1, 0x4e84, 0x4dd8, 0x4dff, 0x4e2f, 0x4dc2, 0x4db1, 0x4e70, 0x4de1, 0x4de9, 0x4e31, 0x4e11, 0x4e46, 0x4dbf, +0x4daa, 0x4da3, 0x4dcd, 0x4dce, 0x4d97, 0x4d78, 0x4e0a, 0x4eeb, 0x4ddb, 0x4f2f, 0x4dbe, 0x4e55, 0x4eca, 0x4e37, 0x4deb, 0x4d90, 0x4e6f, 0x4dbd, 0x4d88, 0x4e24, 0x4d99, 0x4d4a, 0x4dd8, 0x4ceb, 0x4d9c, 0x4e53, 0x4e45, 0x4d8f, 0x4dc8, 0x4e40, 0x4e47, 0x4dff, 0x4e47, 0x4dba, 0x4e4b, 0x4d96, 0x4dc2, 0x4db6, 0x4d80, 0x4dbc, 0x4d66, 0x4dec, 0x4d6b, 0x4e8e, 0x4e05, 0x4e1c, 0x4d0c, 0x4da3, 0x4e61, 0x4d3a, 0x4e7c, 0x4d5f, 0x4d0d, 0x4db2, 0x4db0, 0x4dec, 0x4dbd, 0x4d72, 0x4d40, 0x4db3, 0x4e06, 0x4e52, 0x4d18, 0x4e65, 0x4d80, 0x4d43, 0x4e0b, 0x4dc6, 0x4e60, 0x4e71, 0x4e0e, 0x4d92, 0x4e0a, 0x4d7c, 0x4dbb, 0x4d6b, 0x4df5, 0x4d64, 0x4d99, 0x4d9a, 0x4de1, 0x4d52, 0x4d93, 0x4de8, 0x4d70, 0x4e12, 0x4db2, 0x4d20, 0x4de8, 0x4df9, 0x4dcb, 0x4e62, 0x4e5e, 0x4dd3, 0x4d3f, 0x4d5a, +0x4d97, 0x4db8, 0x4e07, 0x4d81, 0x4e2e, 0x4db2, 0x4e2a, 0x4f25, 0x4ddf, 0x4f35, 0x4d9b, 0x4e84, 0x4ecf, 0x4df4, 0x4e15, 0x4e10, 0x4e45, 0x4e11, 0x4d9c, 0x4dda, 0x4e85, 0x4d3e, 0x4e4e, 0x4d9c, 0x4de0, 0x4e49, 0x4e53, 0x4d84, 0x4e03, 0x4eb8, 0x4e40, 0x4e82, 0x4e10, 0x4e2e, 0x4e7c, 0x4dd6, 0x4de8, 0x4d6f, 0x4db7, 0x4de3, 0x4e01, 0x4db7, 0x4da6, 0x4e61, 0x4e0a, 0x4e53, 0x4dc8, 0x4df9, 0x4ed6, 0x4d8b, 0x4ef9, 0x4da4, 0x4dd6, 0x4dc9, 0x4db2, 0x4dee, 0x4e8c, 0x4d86, 0x4d9c, 0x4e36, 0x4e13, 0x4ebd, 0x4d11, 0x4e28, 0x4d81, 0x4e22, 0x4e2f, 0x4e4f, 0x4ed6, 0x4e82, 0x4e2f, 0x4e17, 0x4e48, 0x4d87, 0x4e49, 0x4e4e, 0x4e39, 0x4e45, 0x4ddc, 0x4df7, 0x4e29, 0x4df2, 0x4dc2, 0x4eef, 0x4d9b, 0x4df4, 0x4e4a, 0x4d73, 0x4e0f, 0x4e7e, 0x4de6, 0x4e4c, 0x4e43, 0x4e12, 0x4e38, 0x4de6, +0x4dca, 0x4e05, 0x4e41, 0x4da4, 0x4e08, 0x4dc1, 0x4dfa, 0x4ed4, 0x4d4c, 0x4ee9, 0x4dfb, 0x4dd2, 0x4e70, 0x4ddc, 0x4d8e, 0x4dc3, 0x4e7b, 0x4dec, 0x4d8f, 0x4e28, 0x4e1d, 0x4d79, 0x4dde, 0x4db1, 0x4df1, 0x4dd5, 0x4e31, 0x4d3a, 0x4ddd, 0x4e3b, 0x4e47, 0x4df8, 0x4dec, 0x4d7f, 0x4e3c, 0x4d7f, 0x4d7f, 0x4d62, 0x4d46, 0x4dc9, 0x4df7, 0x4de7, 0x4ddf, 0x4e5c, 0x4dc1, 0x4e44, 0x4d43, 0x4db3, 0x4e4d, 0x4dae, 0x4e60, 0x4dbf, 0x4d71, 0x4de0, 0x4dba, 0x4dc1, 0x4e2a, 0x4d6d, 0x4dab, 0x4df8, 0x4de5, 0x4e56, 0x4d64, 0x4dcc, 0x4e01, 0x4dce, 0x4e3a, 0x4e88, 0x4dff, 0x4e6b, 0x4e35, 0x4e05, 0x4de3, 0x4dc4, 0x4e69, 0x4dc4, 0x4de5, 0x4df8, 0x4da5, 0x4e0e, 0x4d96, 0x4dc7, 0x4d53, 0x4ec2, 0x4d82, 0x4ddf, 0x4dac, 0x4d33, 0x4d9b, 0x4e30, 0x4d97, 0x4e3b, 0x4e89, 0x4e5c, 0x4db9, 0x4d9d, +0x4e27, 0x4e5c, 0x4f2b, 0x4e51, 0x4ee2, 0x4e60, 0x4f10, 0x4f9b, 0x4e52, 0x4f9e, 0x4e9d, 0x4e87, 0x4f8a, 0x4e8b, 0x4e8b, 0x4e96, 0x4f19, 0x4f34, 0x4e0a, 0x4ece, 0x4eec, 0x4e27, 0x4ea4, 0x4e3e, 0x4eb1, 0x4e34, 0x4ed1, 0x4ea7, 0x4f40, 0x4f9a, 0x4f51, 0x4e8e, 0x4f25, 0x4ec4, 0x4f12, 0x4ea6, 0x4e7c, 0x4e17, 0x4de8, 0x4e73, 0x4ebf, 0x4e45, 0x4e3c, 0x4f00, 0x4e94, 0x4f3d, 0x4e02, 0x4ea7, 0x4f5b, 0x4eab, 0x4f40, 0x4e4d, 0x4e05, 0x4e79, 0x4e13, 0x4e81, 0x4f20, 0x4e9d, 0x4e6d, 0x4eda, 0x4ec8, 0x4f9e, 0x4e39, 0x4ebb, 0x4de4, 0x4e67, 0x4ed6, 0x4f43, 0x4eef, 0x4f8e, 0x4edd, 0x4e5d, 0x4ebe, 0x4f3b, 0x4f37, 0x4e7a, 0x4ec0, 0x4ecc, 0x4f01, 0x4ef6, 0x4f29, 0x4e9d, 0x4e7a, 0x4ed0, 0x4e93, 0x4ef1, 0x4eb9, 0x4e43, 0x4eca, 0x4f54, 0x4e4a, 0x4e98, 0x4f5d, 0x4f33, 0x4e9e, 0x4e9f, +0x4dd7, 0x4ebb, 0x4e87, 0x4e2d, 0x4ed6, 0x4ed8, 0x4e71, 0x4f2b, 0x4e32, 0x4f42, 0x4eb7, 0x4e64, 0x4f8f, 0x4e1a, 0x4e53, 0x4ec8, 0x4e44, 0x4e5b, 0x4e7e, 0x4e80, 0x4ec2, 0x4e18, 0x4e55, 0x4e2e, 0x4e9e, 0x4ec8, 0x4e5f, 0x4dfb, 0x4e68, 0x4f3b, 0x4e83, 0x4e36, 0x4ec6, 0x4e3e, 0x4ee6, 0x4e26, 0x4e82, 0x4e57, 0x4e3b, 0x4e3d, 0x4e2f, 0x4e84, 0x4e1f, 0x4f3a, 0x4e2c, 0x4ebc, 0x4e1e, 0x4e4b, 0x4f06, 0x4e2a, 0x4f35, 0x4e4a, 0x4dc1, 0x4e5e, 0x4e0d, 0x4e33, 0x4e6b, 0x4daa, 0x4ddc, 0x4e74, 0x4e61, 0x4f4e, 0x4e23, 0x4e9d, 0x4dc1, 0x4df8, 0x4e6c, 0x4ed2, 0x4ea7, 0x4f25, 0x4e7b, 0x4e3e, 0x4e69, 0x4e17, 0x4ed4, 0x4e04, 0x4e81, 0x4e74, 0x4e3a, 0x4edf, 0x4e87, 0x4e5a, 0x4e63, 0x4ea2, 0x4ddd, 0x4eaf, 0x4eac, 0x4db0, 0x4ea1, 0x4efd, 0x4e60, 0x4e88, 0x4df4, 0x4f25, 0x4e13, 0x4e34, +0x4e0d, 0x4dd9, 0x4e1e, 0x4dbd, 0x4e05, 0x4e05, 0x4e9b, 0x4ef7, 0x4e05, 0x4ee9, 0x4e79, 0x4e50, 0x4f3d, 0x4e4d, 0x4e45, 0x4ec1, 0x4eaa, 0x4e11, 0x4da2, 0x4e41, 0x4e50, 0x4df9, 0x4e0e, 0x4dff, 0x4e54, 0x4e44, 0x4e2b, 0x4e1e, 0x4e8f, 0x4ef0, 0x4e44, 0x4e5a, 0x4e65, 0x4e53, 0x4e7c, 0x4e31, 0x4e00, 0x4d7c, 0x4e09, 0x4e2d, 0x4e8c, 0x4e18, 0x4def, 0x4e73, 0x4e1e, 0x4eb6, 0x4d9e, 0x4e23, 0x4eaa, 0x4e62, 0x4ee7, 0x4e4f, 0x4d89, 0x4e3c, 0x4e0f, 0x4e80, 0x4e2e, 0x4e16, 0x4df6, 0x4e79, 0x4e9e, 0x4ef9, 0x4d5f, 0x4e39, 0x4d87, 0x4e04, 0x4eda, 0x4e99, 0x4e75, 0x4f32, 0x4e55, 0x4e47, 0x4e23, 0x4e5a, 0x4eb0, 0x4e39, 0x4e6d, 0x4e3b, 0x4e5c, 0x4e89, 0x4ec6, 0x4e16, 0x4e36, 0x4f0b, 0x4d76, 0x4e1a, 0x4e5b, 0x4dc4, 0x4dfb, 0x4e5b, 0x4e5f, 0x4e8c, 0x4e8b, 0x4e7d, 0x4e14, 0x4df3, +0x4db1, 0x4da2, 0x4e28, 0x4dc6, 0x4e3d, 0x4e08, 0x4df4, 0x4e7e, 0x4db8, 0x4ee4, 0x4e5c, 0x4df9, 0x4eee, 0x4db3, 0x4daf, 0x4e26, 0x4e20, 0x4dee, 0x4df8, 0x4e2e, 0x4e2a, 0x4d7e, 0x4e32, 0x4d94, 0x4e1b, 0x4e49, 0x4e84, 0x4dc4, 0x4dff, 0x4ead, 0x4e55, 0x4e4a, 0x4e04, 0x4e07, 0x4ebb, 0x4dac, 0x4daf, 0x4ded, 0x4d53, 0x4d9a, 0x4dd7, 0x4de6, 0x4d5b, 0x4e3d, 0x4dff, 0x4ea8, 0x4d9d, 0x4da4, 0x4e1e, 0x4d92, 0x4e7a, 0x4d3e, 0x4d57, 0x4db5, 0x4d77, 0x4d96, 0x4e1a, 0x4d7a, 0x4d74, 0x4de0, 0x4dba, 0x4eb6, 0x4d49, 0x4e27, 0x4d55, 0x4dca, 0x4e02, 0x4e83, 0x4e6b, 0x4eaf, 0x4e2b, 0x4de9, 0x4e53, 0x4db5, 0x4e0b, 0x4dd7, 0x4dbe, 0x4df5, 0x4dd0, 0x4dc9, 0x4e66, 0x4d69, 0x4e0e, 0x4e3b, 0x4d50, 0x4dff, 0x4de3, 0x4d65, 0x4dd4, 0x4e0e, 0x4df0, 0x4e52, 0x4ee9, 0x4e3e, 0x4e53, 0x4dbd, +0x4d94, 0x4d90, 0x4e41, 0x4d3c, 0x4de7, 0x4d6d, 0x4dfa, 0x4e97, 0x4de8, 0x4e5c, 0x4dde, 0x4dfe, 0x4e81, 0x4d8a, 0x4d99, 0x4dce, 0x4e82, 0x4de2, 0x4dba, 0x4dab, 0x4dc5, 0x4d4e, 0x4d64, 0x4db5, 0x4d8c, 0x4dcb, 0x4dc9, 0x4d74, 0x4dfa, 0x4e2f, 0x4e29, 0x4db3, 0x4deb, 0x4d7e, 0x4ddd, 0x4d9a, 0x4d6e, 0x4da2, 0x4cdf, 0x4d82, 0x4da5, 0x4dd1, 0x4da7, 0x4e45, 0x4dba, 0x4df1, 0x4d49, 0x4d32, 0x4e97, 0x4d3f, 0x4e88, 0x4d72, 0x4cfe, 0x4dd3, 0x4d33, 0x4d53, 0x4db0, 0x4d6b, 0x4d5f, 0x4e02, 0x4dcb, 0x4e93, 0x4d95, 0x4dc5, 0x4da2, 0x4d86, 0x4ddf, 0x4df4, 0x4dac, 0x4e0d, 0x4dd1, 0x4d3f, 0x4df6, 0x4d42, 0x4e24, 0x4dac, 0x4e2e, 0x4da2, 0x4db6, 0x4df0, 0x4dd6, 0x4d6f, 0x4d6b, 0x4e2f, 0x4d51, 0x4e39, 0x4dfd, 0x4d12, 0x4d9a, 0x4ded, 0x4d3a, 0x4dec, 0x4e1b, 0x4e0d, 0x4dbc, 0x4dad, +0x4d87, 0x4dd5, 0x4e10, 0x4dd0, 0x4e3f, 0x4ddf, 0x4ea2, 0x4ec6, 0x4ddd, 0x4f15, 0x4df0, 0x4e47, 0x4ed0, 0x4dcc, 0x4dfa, 0x4de6, 0x4e44, 0x4dd7, 0x4da0, 0x4e0c, 0x4db8, 0x4d9c, 0x4dde, 0x4dcf, 0x4dfe, 0x4e85, 0x4e7b, 0x4da6, 0x4e87, 0x4e73, 0x4e85, 0x4e39, 0x4de2, 0x4e46, 0x4e55, 0x4dc6, 0x4d80, 0x4d68, 0x4d9e, 0x4e35, 0x4e1c, 0x4e41, 0x4d37, 0x4eab, 0x4e25, 0x4ea0, 0x4dab, 0x4dd5, 0x4e40, 0x4dc4, 0x4ea6, 0x4e0b, 0x4d35, 0x4ddd, 0x4d6f, 0x4dec, 0x4e3e, 0x4d86, 0x4dc7, 0x4e1b, 0x4dd1, 0x4e7d, 0x4d5b, 0x4e56, 0x4d3e, 0x4dc6, 0x4e47, 0x4e41, 0x4deb, 0x4ea3, 0x4e0b, 0x4e1e, 0x4e4f, 0x4d7d, 0x4e69, 0x4e05, 0x4e07, 0x4de1, 0x4dd4, 0x4df4, 0x4e23, 0x4daa, 0x4d5c, 0x4e50, 0x4d8c, 0x4e56, 0x4df2, 0x4d1b, 0x4db1, 0x4e56, 0x4d5c, 0x4e3b, 0x4ea7, 0x4e3d, 0x4dc1, 0x4dce, +0x4dd5, 0x4e1b, 0x4f0a, 0x4d93, 0x4e7e, 0x4e1d, 0x4e8c, 0x4f7b, 0x4df4, 0x4f3f, 0x4e9f, 0x4e5e, 0x4f33, 0x4e21, 0x4e55, 0x4e7b, 0x4ec6, 0x4e75, 0x4e2f, 0x4e95, 0x4ead, 0x4df1, 0x4e00, 0x4e1b, 0x4e6a, 0x4e69, 0x4f05, 0x4dce, 0x4e65, 0x4ecc, 0x4e72, 0x4e86, 0x4ea7, 0x4e4c, 0x4ef1, 0x4e36, 0x4e28, 0x4dd8, 0x4dca, 0x4e83, 0x4e23, 0x4e65, 0x4e7f, 0x4f31, 0x4ebf, 0x4e83, 0x4d66, 0x4e3d, 0x4e9e, 0x4e64, 0x4eba, 0x4e12, 0x4d90, 0x4e34, 0x4e11, 0x4e31, 0x4e89, 0x4de1, 0x4dca, 0x4e9f, 0x4e43, 0x4f58, 0x4dc9, 0x4e96, 0x4e38, 0x4dfa, 0x4e94, 0x4eb1, 0x4ed4, 0x4f1b, 0x4ee2, 0x4e92, 0x4e30, 0x4e86, 0x4eb1, 0x4e4e, 0x4ea0, 0x4e74, 0x4e52, 0x4ebc, 0x4edd, 0x4dd8, 0x4e1d, 0x4ee2, 0x4df0, 0x4eb0, 0x4e12, 0x4dd4, 0x4e3d, 0x4e9e, 0x4e31, 0x4e44, 0x4ecb, 0x4ebb, 0x4e2c, 0x4e6d, +0x4dc2, 0x4e12, 0x4e1c, 0x4de3, 0x4dfc, 0x4df2, 0x4e09, 0x4ed4, 0x4e52, 0x4f49, 0x4e69, 0x4dc9, 0x4f08, 0x4e73, 0x4e21, 0x4e51, 0x4e85, 0x4e2d, 0x4da5, 0x4e0c, 0x4e09, 0x4d7b, 0x4de6, 0x4dec, 0x4e9e, 0x4e06, 0x4ea8, 0x4da2, 0x4e74, 0x4eac, 0x4e13, 0x4e45, 0x4e43, 0x4dea, 0x4e85, 0x4dbb, 0x4df5, 0x4dc4, 0x4d87, 0x4e18, 0x4de4, 0x4e20, 0x4dd5, 0x4ebd, 0x4e32, 0x4e40, 0x4de9, 0x4e07, 0x4e5a, 0x4de1, 0x4f32, 0x4e22, 0x4d57, 0x4e23, 0x4ded, 0x4dd4, 0x4e11, 0x4dd4, 0x4dfd, 0x4e5d, 0x4e9f, 0x4ed0, 0x4d86, 0x4ea8, 0x4d69, 0x4de3, 0x4e2b, 0x4ec8, 0x4e3c, 0x4eca, 0x4e2f, 0x4de7, 0x4e3e, 0x4e01, 0x4e59, 0x4df2, 0x4e82, 0x4e3a, 0x4e45, 0x4e91, 0x4e9a, 0x4dc0, 0x4e61, 0x4e8d, 0x4d51, 0x4e31, 0x4dc1, 0x4d96, 0x4dad, 0x4e37, 0x4e2b, 0x4e8d, 0x4e69, 0x4dfe, 0x4e37, 0x4ddd, +0x4e19, 0x4e6d, 0x4ec5, 0x4e2a, 0x4e9c, 0x4e04, 0x4ec6, 0x4f61, 0x4e1f, 0x4f72, 0x4e4d, 0x4e51, 0x4f2c, 0x4e6a, 0x4e48, 0x4e99, 0x4edc, 0x4dd0, 0x4e2e, 0x4eb1, 0x4e52, 0x4de8, 0x4e5b, 0x4e0a, 0x4e2c, 0x4e35, 0x4ef2, 0x4dd0, 0x4eff, 0x4f6d, 0x4ef2, 0x4eca, 0x4e90, 0x4e6e, 0x4ece, 0x4e89, 0x4dfc, 0x4e16, 0x4dcd, 0x4eb7, 0x4e79, 0x4ee7, 0x4e2e, 0x4ec0, 0x4e93, 0x4ec0, 0x4dc4, 0x4e5a, 0x4f28, 0x4e17, 0x4efc, 0x4e44, 0x4dbc, 0x4e77, 0x4df3, 0x4eda, 0x4ec2, 0x4e34, 0x4e15, 0x4e78, 0x4eb2, 0x4f87, 0x4da1, 0x4f1e, 0x4dcb, 0x4e72, 0x4eea, 0x4e8c, 0x4edb, 0x4f22, 0x4ecd, 0x4e54, 0x4eb8, 0x4e87, 0x4ef0, 0x4ea3, 0x4e57, 0x4e79, 0x4e85, 0x4e82, 0x4ebb, 0x4e3c, 0x4e29, 0x4ec4, 0x4e06, 0x4ea8, 0x4eb7, 0x4dc5, 0x4e31, 0x4e8a, 0x4e72, 0x4eac, 0x4ed9, 0x4f1d, 0x4e7e, 0x4e68, +0x4e35, 0x4dd4, 0x4e38, 0x4dda, 0x4e05, 0x4db1, 0x4e5a, 0x4f1a, 0x4e2b, 0x4f39, 0x4e30, 0x4e96, 0x4ecf, 0x4df6, 0x4dd0, 0x4ddc, 0x4e5e, 0x4ddc, 0x4d6c, 0x4e50, 0x4dd5, 0x4dc0, 0x4e05, 0x4d65, 0x4e16, 0x4e46, 0x4e57, 0x4dc0, 0x4e5c, 0x4ed2, 0x4e79, 0x4e11, 0x4e1a, 0x4e14, 0x4e85, 0x4e2f, 0x4dc9, 0x4dd8, 0x4d4c, 0x4ddb, 0x4e37, 0x4e35, 0x4dba, 0x4eb9, 0x4dee, 0x4ed1, 0x4d7c, 0x4dfc, 0x4e86, 0x4d78, 0x4e88, 0x4e1e, 0x4d54, 0x4dc0, 0x4da2, 0x4e0f, 0x4e83, 0x4db6, 0x4dc1, 0x4e78, 0x4e0a, 0x4e34, 0x4d73, 0x4e83, 0x4d8c, 0x4dce, 0x4e55, 0x4e11, 0x4e83, 0x4e43, 0x4e7c, 0x4e05, 0x4e93, 0x4ddf, 0x4e3f, 0x4dc4, 0x4e19, 0x4e6c, 0x4db9, 0x4e54, 0x4e9e, 0x4da3, 0x4dbe, 0x4e6a, 0x4db0, 0x4e1a, 0x4e57, 0x4d7b, 0x4e6e, 0x4eac, 0x4da4, 0x4e9a, 0x4e6c, 0x4e7f, 0x4de6, 0x4e0c, +0x4e70, 0x4e5d, 0x4ea9, 0x4e2c, 0x4ee1, 0x4e13, 0x4e9d, 0x4f97, 0x4e21, 0x4ff6, 0x4e48, 0x4e57, 0x4f7e, 0x4e75, 0x4e56, 0x4e79, 0x4f65, 0x4e3f, 0x4da0, 0x4e90, 0x4edc, 0x4e8e, 0x4e4d, 0x4e51, 0x4e9c, 0x4e2a, 0x4e9e, 0x4e30, 0x4e4c, 0x4edf, 0x4ef8, 0x4e91, 0x4eb6, 0x4e71, 0x4ead, 0x4e48, 0x4e87, 0x4de3, 0x4df8, 0x4e29, 0x4e76, 0x4ebb, 0x4e35, 0x4ef6, 0x4e9e, 0x4fa9, 0x4dd5, 0x4e21, 0x4ec4, 0x4e4a, 0x4f80, 0x4e0d, 0x4e07, 0x4e07, 0x4e45, 0x4e40, 0x4ef9, 0x4e38, 0x4dd3, 0x4e67, 0x4e85, 0x4ecf, 0x4dde, 0x4eaf, 0x4e1a, 0x4e83, 0x4e6d, 0x4f2c, 0x4ee4, 0x4eab, 0x4e78, 0x4e42, 0x4e9f, 0x4e30, 0x4e70, 0x4e27, 0x4eee, 0x4e55, 0x4e96, 0x4e9f, 0x4e9c, 0x4e3e, 0x4e46, 0x4f72, 0x4e1a, 0x4e80, 0x4eb9, 0x4e04, 0x4e5e, 0x4ee7, 0x4e43, 0x4ec0, 0x4f4b, 0x4e59, 0x4e76, 0x4e27, +0x4dd1, 0x4dbf, 0x4ec4, 0x4df3, 0x4e12, 0x4e04, 0x4e47, 0x4f88, 0x4e3e, 0x4f9c, 0x4e70, 0x4eb7, 0x4f21, 0x4e20, 0x4e02, 0x4ec1, 0x4f47, 0x4e07, 0x4e00, 0x4e95, 0x4e30, 0x4dd6, 0x4dee, 0x4d9d, 0x4e09, 0x4e05, 0x4ec7, 0x4ddb, 0x4e57, 0x4f16, 0x4e8d, 0x4e60, 0x4e58, 0x4e2e, 0x4ed0, 0x4df3, 0x4e32, 0x4df6, 0x4d99, 0x4def, 0x4e67, 0x4e3d, 0x4e21, 0x4f1d, 0x4e24, 0x4ef2, 0x4da9, 0x4e02, 0x4eea, 0x4e2d, 0x4f3d, 0x4e61, 0x4de9, 0x4e51, 0x4db4, 0x4e1e, 0x4e8c, 0x4e23, 0x4dc5, 0x4e4f, 0x4e56, 0x4f11, 0x4d7f, 0x4eda, 0x4de8, 0x4e06, 0x4e52, 0x4e14, 0x4e97, 0x4f22, 0x4e29, 0x4e43, 0x4e97, 0x4e37, 0x4e58, 0x4e4c, 0x4e7f, 0x4e69, 0x4e35, 0x4e48, 0x4efe, 0x4de6, 0x4e23, 0x4e4f, 0x4df0, 0x4e55, 0x4e59, 0x4daf, 0x4e32, 0x4e56, 0x4dea, 0x4ea4, 0x4e72, 0x4e7f, 0x4e22, 0x4e13, +0x4d97, 0x4d55, 0x4d67, 0x4d11, 0x4d7c, 0x4d95, 0x4e13, 0x4ea2, 0x4e15, 0x4ef3, 0x4db7, 0x4db6, 0x4eb7, 0x4d99, 0x4e38, 0x4d63, 0x4df6, 0x4da1, 0x4d6d, 0x4d9c, 0x4dda, 0x4d83, 0x4db0, 0x4d74, 0x4db4, 0x4e71, 0x4e1a, 0x4d50, 0x4dec, 0x4e26, 0x4df3, 0x4dd0, 0x4ddf, 0x4d85, 0x4dfb, 0x4da2, 0x4ddc, 0x4d82, 0x4d45, 0x4d6e, 0x4d55, 0x4d8f, 0x4d1e, 0x4de2, 0x4d78, 0x4e5d, 0x4d4b, 0x4da0, 0x4e24, 0x4d4a, 0x4e82, 0x4dc8, 0x4d13, 0x4d73, 0x4d4e, 0x4d5c, 0x4de9, 0x4d89, 0x4d71, 0x4db5, 0x4e0d, 0x4e4b, 0x4d15, 0x4e2f, 0x4d88, 0x4da4, 0x4de9, 0x4ded, 0x4e35, 0x4e27, 0x4dcb, 0x4d4c, 0x4dc5, 0x4d59, 0x4de3, 0x4da6, 0x4e7e, 0x4dfa, 0x4ddc, 0x4dfc, 0x4e23, 0x4d71, 0x4d5d, 0x4e2a, 0x4d4c, 0x4daa, 0x4d9c, 0x4cff, 0x4ddd, 0x4df5, 0x4d8f, 0x4dd1, 0x4de1, 0x4d5f, 0x4e4c, 0x4d88, +0x4d87, 0x4dde, 0x4e24, 0x4dd2, 0x4e20, 0x4e17, 0x4e1d, 0x4f2c, 0x4d91, 0x4f09, 0x4e23, 0x4e27, 0x4ec8, 0x4e1a, 0x4dcd, 0x4e00, 0x4e75, 0x4d91, 0x4d53, 0x4db2, 0x4e16, 0x4dac, 0x4e22, 0x4dfb, 0x4e20, 0x4dee, 0x4e47, 0x4d7a, 0x4e7b, 0x4e9e, 0x4dff, 0x4e26, 0x4e2e, 0x4dc3, 0x4ec2, 0x4da2, 0x4dca, 0x4d87, 0x4da3, 0x4e18, 0x4dd7, 0x4e50, 0x4d98, 0x4e92, 0x4e26, 0x4e14, 0x4d10, 0x4e33, 0x4e59, 0x4db0, 0x4e95, 0x4da1, 0x4d9b, 0x4df6, 0x4d2d, 0x4deb, 0x4e1b, 0x4d76, 0x4da5, 0x4df7, 0x4dd6, 0x4ea5, 0x4d40, 0x4e65, 0x4d83, 0x4e04, 0x4df1, 0x4e6e, 0x4e48, 0x4ee2, 0x4e35, 0x4da7, 0x4da9, 0x4dd4, 0x4e79, 0x4db5, 0x4e37, 0x4dc8, 0x4d68, 0x4e17, 0x4e90, 0x4d82, 0x4dec, 0x4dfe, 0x4d30, 0x4d85, 0x4e2a, 0x4d6d, 0x4de9, 0x4e64, 0x4da7, 0x4e1c, 0x4e59, 0x4e02, 0x4e09, 0x4d96, +0x4df9, 0x4e01, 0x4e8b, 0x4e85, 0x4ed5, 0x4e7a, 0x4e85, 0x4eed, 0x4e77, 0x4f1c, 0x4e7f, 0x4eb9, 0x4f54, 0x4e45, 0x4eaa, 0x4e35, 0x4ec6, 0x4e41, 0x4d94, 0x4ec8, 0x4e7b, 0x4e37, 0x4e55, 0x4df2, 0x4e9f, 0x4e53, 0x4ef9, 0x4e48, 0x4ebc, 0x4ee7, 0x4eb1, 0x4e74, 0x4ea0, 0x4ddc, 0x4e90, 0x4e52, 0x4e1c, 0x4de6, 0x4dbe, 0x4e24, 0x4e5c, 0x4e12, 0x4dc0, 0x4ebd, 0x4e07, 0x4f14, 0x4e16, 0x4e15, 0x4f3c, 0x4e16, 0x4f0c, 0x4e40, 0x4d4d, 0x4e9d, 0x4dff, 0x4dbc, 0x4e61, 0x4e0d, 0x4e13, 0x4e52, 0x4e85, 0x4f06, 0x4e05, 0x4e79, 0x4d69, 0x4dcf, 0x4ed8, 0x4e6b, 0x4e76, 0x4f03, 0x4e57, 0x4e66, 0x4edb, 0x4e8f, 0x4e75, 0x4e3c, 0x4e88, 0x4e9f, 0x4e6d, 0x4e35, 0x4ef2, 0x4e30, 0x4e50, 0x4e68, 0x4df4, 0x4e6b, 0x4e3d, 0x4da2, 0x4e5d, 0x4ed7, 0x4e33, 0x4ec0, 0x4f16, 0x4eb7, 0x4e7a, 0x4e3a, +0x4db5, 0x4dff, 0x4e06, 0x4e03, 0x4e6e, 0x4e3e, 0x4e52, 0x4edb, 0x4e09, 0x4f15, 0x4e4b, 0x4e9c, 0x4f54, 0x4d9e, 0x4dbe, 0x4e42, 0x4e0c, 0x4e1e, 0x4dd6, 0x4e41, 0x4e17, 0x4d7b, 0x4de5, 0x4deb, 0x4df3, 0x4e40, 0x4e41, 0x4e02, 0x4e89, 0x4f23, 0x4e46, 0x4e53, 0x4e20, 0x4e27, 0x4ee9, 0x4df9, 0x4e15, 0x4e38, 0x4df4, 0x4e14, 0x4e1a, 0x4e01, 0x4db3, 0x4ebc, 0x4d8c, 0x4e77, 0x4d53, 0x4dbd, 0x4ed1, 0x4dde, 0x4eb1, 0x4dd4, 0x4db1, 0x4e08, 0x4d6e, 0x4da6, 0x4e43, 0x4d66, 0x4dbe, 0x4e1d, 0x4e10, 0x4f3f, 0x4d2a, 0x4e1f, 0x4da6, 0x4dca, 0x4e6b, 0x4e59, 0x4e81, 0x4f21, 0x4dfd, 0x4e23, 0x4e33, 0x4e48, 0x4eb9, 0x4e08, 0x4dd9, 0x4e5c, 0x4df8, 0x4e6e, 0x4e16, 0x4dca, 0x4e50, 0x4e5c, 0x4d71, 0x4e32, 0x4e43, 0x4d64, 0x4dfe, 0x4ee3, 0x4d83, 0x4e66, 0x4e3d, 0x4eeb, 0x4e28, 0x4ddf, +0x4e3e, 0x4e49, 0x4ee3, 0x4e3f, 0x4ef6, 0x4eac, 0x4ea8, 0x4f54, 0x4ea4, 0x4fdf, 0x4e91, 0x4eb4, 0x4f8a, 0x4e75, 0x4e81, 0x4e8e, 0x4f45, 0x4e2f, 0x4e26, 0x4edd, 0x4ed4, 0x4e5b, 0x4e64, 0x4de7, 0x4e6b, 0x4e8b, 0x4f22, 0x4e3b, 0x4e8e, 0x4f34, 0x4ed1, 0x4edd, 0x4eaf, 0x4e27, 0x4ef4, 0x4e73, 0x4ea4, 0x4e3b, 0x4da0, 0x4e2d, 0x4e7c, 0x4e81, 0x4e2e, 0x4f31, 0x4e48, 0x4f48, 0x4e39, 0x4e7c, 0x4f0f, 0x4df3, 0x4f12, 0x4e19, 0x4dcb, 0x4e4f, 0x4e16, 0x4dea, 0x4eb6, 0x4e0b, 0x4e3c, 0x4ea1, 0x4e48, 0x4f80, 0x4dd3, 0x4ed8, 0x4e21, 0x4e47, 0x4f42, 0x4f09, 0x4eec, 0x4ef0, 0x4e6e, 0x4ec3, 0x4ed3, 0x4e99, 0x4ee3, 0x4e24, 0x4ebc, 0x4eb2, 0x4e78, 0x4e8a, 0x4f01, 0x4e89, 0x4e67, 0x4ed7, 0x4e1d, 0x4e37, 0x4e9f, 0x4e03, 0x4e95, 0x4f02, 0x4df4, 0x4efe, 0x4f55, 0x4ee1, 0x4eb7, 0x4e4f, +0x4d92, 0x4dde, 0x4e21, 0x4d5d, 0x4e90, 0x4e15, 0x4e89, 0x4ea3, 0x4deb, 0x4f4c, 0x4ec4, 0x4e70, 0x4eda, 0x4e2f, 0x4e38, 0x4e19, 0x4ecf, 0x4e55, 0x4dbc, 0x4e20, 0x4e52, 0x4de4, 0x4de0, 0x4e1e, 0x4db4, 0x4e72, 0x4e1b, 0x4dd5, 0x4e30, 0x4ea3, 0x4e57, 0x4ea3, 0x4e27, 0x4e31, 0x4ede, 0x4dd0, 0x4df6, 0x4e00, 0x4dca, 0x4e1c, 0x4e49, 0x4e2b, 0x4ddc, 0x4eb6, 0x4e62, 0x4ed8, 0x4d69, 0x4e49, 0x4eb5, 0x4de9, 0x4eeb, 0x4df2, 0x4d4c, 0x4e79, 0x4dba, 0x4e24, 0x4e5b, 0x4dd0, 0x4e06, 0x4e3e, 0x4e41, 0x4f2c, 0x4dbb, 0x4e7a, 0x4dff, 0x4d9f, 0x4e54, 0x4e51, 0x4e3a, 0x4f00, 0x4e88, 0x4e3d, 0x4eaa, 0x4e47, 0x4eb3, 0x4e57, 0x4e32, 0x4e26, 0x4e80, 0x4efc, 0x4f49, 0x4e0b, 0x4dfb, 0x4e9b, 0x4d69, 0x4e31, 0x4deb, 0x4d4e, 0x4de8, 0x4e9a, 0x4e12, 0x4e74, 0x4e6a, 0x4e94, 0x4e34, 0x4de3, +0x4de1, 0x4e39, 0x4e47, 0x4de2, 0x4e53, 0x4e02, 0x4e7e, 0x4ec5, 0x4e01, 0x4f33, 0x4e30, 0x4dfc, 0x4f1f, 0x4e5c, 0x4e28, 0x4e30, 0x4ea0, 0x4e23, 0x4dd5, 0x4e19, 0x4e43, 0x4dc9, 0x4e8f, 0x4dd0, 0x4e3e, 0x4e3e, 0x4e9a, 0x4dd4, 0x4e31, 0x4f06, 0x4e76, 0x4e21, 0x4e7f, 0x4e1f, 0x4eb7, 0x4e0c, 0x4dde, 0x4dc8, 0x4de7, 0x4dfe, 0x4e10, 0x4e2b, 0x4ded, 0x4edf, 0x4e37, 0x4e72, 0x4dec, 0x4e3a, 0x4ebb, 0x4ddf, 0x4ec0, 0x4dbe, 0x4d1e, 0x4e87, 0x4dc6, 0x4e0b, 0x4e5a, 0x4de7, 0x4dcd, 0x4e96, 0x4e66, 0x4eda, 0x4d77, 0x4e4a, 0x4da4, 0x4df5, 0x4e8d, 0x4e4c, 0x4e68, 0x4ede, 0x4e5d, 0x4dd1, 0x4e06, 0x4e2d, 0x4e0c, 0x4e46, 0x4e5e, 0x4e15, 0x4de8, 0x4e6c, 0x4e54, 0x4daa, 0x4df4, 0x4ed0, 0x4d80, 0x4e1a, 0x4df9, 0x4dcb, 0x4dee, 0x4e1c, 0x4e17, 0x4e5c, 0x4e8c, 0x4e33, 0x4dd3, 0x4e27, +0x4d34, 0x4dbb, 0x4e7d, 0x4d47, 0x4dfd, 0x4d0b, 0x4ddc, 0x4e68, 0x4dc6, 0x4ecd, 0x4d9c, 0x4d7d, 0x4ee0, 0x4d69, 0x4ded, 0x4dca, 0x4e3c, 0x4dcd, 0x4d5e, 0x4dbf, 0x4e4c, 0x4db0, 0x4db2, 0x4d97, 0x4da9, 0x4d9f, 0x4e43, 0x4d2a, 0x4dab, 0x4e3d, 0x4e06, 0x4dd4, 0x4daa, 0x4d79, 0x4de6, 0x4de1, 0x4e01, 0x4d62, 0x4d05, 0x4dc7, 0x4ea2, 0x4db4, 0x4d8b, 0x4e6e, 0x4ddd, 0x4e74, 0x4d00, 0x4d9a, 0x4e77, 0x4ddc, 0x4e8b, 0x4dd1, 0x4ccc, 0x4e3f, 0x4d93, 0x4e15, 0x4e91, 0x4de6, 0x4d2c, 0x4e2d, 0x4e02, 0x4ea1, 0x4daf, 0x4e3f, 0x4d8b, 0x4db9, 0x4dde, 0x4e0e, 0x4de3, 0x4e50, 0x4e05, 0x4d89, 0x4e03, 0x4e13, 0x4e4e, 0x4d9c, 0x4df4, 0x4e2d, 0x4df6, 0x4e00, 0x4df1, 0x4ddd, 0x4d7e, 0x4e68, 0x4d6c, 0x4e07, 0x4dca, 0x4d0b, 0x4dba, 0x4dde, 0x4e18, 0x4db6, 0x4dc8, 0x4e2b, 0x4dfa, 0x4d96, +0x4d85, 0x4dc7, 0x4e03, 0x4dc7, 0x4ddd, 0x4dce, 0x4e82, 0x4f1b, 0x4e5b, 0x4f6b, 0x4ec1, 0x4e3e, 0x4f42, 0x4e4a, 0x4e5e, 0x4e3c, 0x4e55, 0x4e43, 0x4dbe, 0x4e0d, 0x4e30, 0x4d9f, 0x4e29, 0x4df5, 0x4e4f, 0x4e49, 0x4e01, 0x4dc1, 0x4e7c, 0x4e7f, 0x4e9d, 0x4e1b, 0x4e00, 0x4e55, 0x4e85, 0x4e25, 0x4e0b, 0x4da9, 0x4da2, 0x4e0e, 0x4e49, 0x4e9b, 0x4ded, 0x4e7f, 0x4df3, 0x4ea5, 0x4d68, 0x4dd6, 0x4ec1, 0x4db5, 0x4ed0, 0x4e11, 0x4d68, 0x4e0c, 0x4e37, 0x4e5f, 0x4e8a, 0x4d98, 0x4e15, 0x4e34, 0x4e33, 0x4ef1, 0x4dc1, 0x4e90, 0x4dd5, 0x4dfb, 0x4e50, 0x4eb3, 0x4ebf, 0x4f41, 0x4e9b, 0x4e12, 0x4e83, 0x4df5, 0x4e9e, 0x4e2f, 0x4e5c, 0x4dfd, 0x4e64, 0x4ea9, 0x4ec7, 0x4e31, 0x4e1b, 0x4eb6, 0x4ddc, 0x4e68, 0x4e72, 0x4d96, 0x4e27, 0x4e93, 0x4dd6, 0x4e70, 0x4e8a, 0x4e37, 0x4e0b, 0x4e0e, +0x4e2a, 0x4db0, 0x4e2a, 0x4d72, 0x4dbf, 0x4e19, 0x4e05, 0x4ea8, 0x4dfa, 0x4eed, 0x4e02, 0x4e06, 0x4e93, 0x4de1, 0x4e4e, 0x4da8, 0x4e27, 0x4d5d, 0x4dc5, 0x4e0c, 0x4e4f, 0x4e0a, 0x4dc2, 0x4da0, 0x4db7, 0x4ddf, 0x4e72, 0x4dc6, 0x4e8d, 0x4e41, 0x4e66, 0x4e35, 0x4dc7, 0x4e21, 0x4e2d, 0x4df3, 0x4df3, 0x4d7e, 0x4da9, 0x4e2e, 0x4e07, 0x4ded, 0x4d9d, 0x4e6c, 0x4e27, 0x4ec2, 0x4d98, 0x4e01, 0x4e73, 0x4d6e, 0x4ed1, 0x4d9e, 0x4d36, 0x4de8, 0x4da2, 0x4e1c, 0x4dcb, 0x4de2, 0x4d8c, 0x4e31, 0x4e44, 0x4eee, 0x4d69, 0x4dd4, 0x4d7e, 0x4de5, 0x4e35, 0x4e4f, 0x4e55, 0x4e9c, 0x4e58, 0x4da4, 0x4e09, 0x4dd2, 0x4e27, 0x4dec, 0x4e42, 0x4e28, 0x4e50, 0x4e66, 0x4e37, 0x4e51, 0x4dd0, 0x4ebe, 0x4d62, 0x4e19, 0x4e4e, 0x4d5a, 0x4e12, 0x4e5d, 0x4ddc, 0x4e4c, 0x4e8f, 0x4e44, 0x4e84, 0x4dbe, +0x4d61, 0x4dfd, 0x4ded, 0x4ddc, 0x4e50, 0x4d9c, 0x4e71, 0x4e90, 0x4e16, 0x4f8b, 0x4e5d, 0x4e68, 0x4f60, 0x4e08, 0x4e2a, 0x4e27, 0x4f17, 0x4e21, 0x4d68, 0x4e1d, 0x4dea, 0x4de6, 0x4dd9, 0x4d88, 0x4e27, 0x4e43, 0x4e60, 0x4da5, 0x4e57, 0x4f23, 0x4e7d, 0x4e5f, 0x4e69, 0x4dfe, 0x4ebf, 0x4d9b, 0x4e4f, 0x4de4, 0x4d8e, 0x4dfa, 0x4e03, 0x4e22, 0x4df2, 0x4e90, 0x4e18, 0x4e72, 0x4cf7, 0x4dfe, 0x4e7e, 0x4dfa, 0x4e98, 0x4dd4, 0x4d98, 0x4e42, 0x4de0, 0x4e02, 0x4ec0, 0x4dcb, 0x4d4f, 0x4e5a, 0x4df3, 0x4f15, 0x4d77, 0x4e51, 0x4da6, 0x4e02, 0x4de0, 0x4e2d, 0x4ea4, 0x4e88, 0x4dec, 0x4df1, 0x4e0a, 0x4e5a, 0x4e9c, 0x4e02, 0x4df8, 0x4e2c, 0x4e4a, 0x4e9a, 0x4e7b, 0x4d92, 0x4e1c, 0x4e88, 0x4ddb, 0x4e52, 0x4e18, 0x4d6c, 0x4dde, 0x4eb1, 0x4dc8, 0x4e2d, 0x4e24, 0x4df0, 0x4dea, 0x4e1e, +0x4daf, 0x4da3, 0x4e3a, 0x4dec, 0x4e70, 0x4d93, 0x4e3a, 0x4e83, 0x4df9, 0x4efd, 0x4e07, 0x4e51, 0x4f5d, 0x4dde, 0x4e0b, 0x4dfc, 0x4e45, 0x4ddc, 0x4d75, 0x4dc9, 0x4df3, 0x4d8d, 0x4de0, 0x4da4, 0x4e37, 0x4e7a, 0x4e46, 0x4dc8, 0x4e2e, 0x4ebd, 0x4e27, 0x4e67, 0x4e3e, 0x4e2f, 0x4e5f, 0x4d98, 0x4e5f, 0x4d6e, 0x4da8, 0x4dc7, 0x4dd5, 0x4e31, 0x4ddb, 0x4e89, 0x4de0, 0x4e73, 0x4d87, 0x4dd9, 0x4ea2, 0x4dae, 0x4e92, 0x4dc9, 0x4d4f, 0x4df1, 0x4e02, 0x4df1, 0x4e69, 0x4de0, 0x4d7f, 0x4e39, 0x4dc3, 0x4e99, 0x4d2f, 0x4e69, 0x4d99, 0x4d5a, 0x4e3d, 0x4e3b, 0x4e74, 0x4eac, 0x4e2d, 0x4e43, 0x4e44, 0x4e36, 0x4e2d, 0x4dc2, 0x4e43, 0x4e3a, 0x4e22, 0x4de6, 0x4e76, 0x4d64, 0x4e25, 0x4e7c, 0x4dc2, 0x4e51, 0x4daa, 0x4d57, 0x4e4f, 0x4e55, 0x4db5, 0x4df2, 0x4e66, 0x4e42, 0x4e18, 0x4e30, +0x4df6, 0x4e52, 0x4e8b, 0x4da7, 0x4e2b, 0x4e27, 0x4e8a, 0x4f5e, 0x4e20, 0x4fd0, 0x4e78, 0x4ed1, 0x4ef4, 0x4e3b, 0x4e31, 0x4e7c, 0x4ec6, 0x4de8, 0x4e00, 0x4e9b, 0x4e95, 0x4df6, 0x4e8f, 0x4e58, 0x4e3b, 0x4e7a, 0x4ea5, 0x4e09, 0x4ea0, 0x4f19, 0x4e5c, 0x4e85, 0x4e5f, 0x4e71, 0x4e94, 0x4e66, 0x4e34, 0x4dfd, 0x4ddc, 0x4e1d, 0x4e27, 0x4e64, 0x4e43, 0x4eb2, 0x4e7d, 0x4f30, 0x4e1a, 0x4e05, 0x4f21, 0x4dde, 0x4f53, 0x4e6f, 0x4e0a, 0x4e5e, 0x4dd2, 0x4e50, 0x4ee9, 0x4e05, 0x4dab, 0x4e4b, 0x4eb3, 0x4f2d, 0x4e0a, 0x4ec8, 0x4dbf, 0x4e3f, 0x4eca, 0x4ec0, 0x4ed5, 0x4f2c, 0x4e9c, 0x4e3d, 0x4ebc, 0x4e31, 0x4e9c, 0x4e33, 0x4e4e, 0x4e9c, 0x4e15, 0x4edc, 0x4ee4, 0x4e68, 0x4dd4, 0x4ef6, 0x4de9, 0x4e52, 0x4ebb, 0x4d9b, 0x4e7b, 0x4f28, 0x4e7d, 0x4e9c, 0x4e77, 0x4e80, 0x4e9f, 0x4e17, +0x4e60, 0x4e53, 0x4e8b, 0x4e28, 0x4e69, 0x4e47, 0x4e69, 0x4f88, 0x4dfc, 0x4f2c, 0x4e91, 0x4e75, 0x4f10, 0x4ecc, 0x4deb, 0x4dfa, 0x4e6d, 0x4e37, 0x4e21, 0x4e5c, 0x4ebd, 0x4dc5, 0x4e7f, 0x4e47, 0x4e82, 0x4e61, 0x4ea7, 0x4df0, 0x4eb8, 0x4f35, 0x4eac, 0x4ea1, 0x4f06, 0x4e15, 0x4ea4, 0x4df5, 0x4e63, 0x4de8, 0x4dd8, 0x4e0d, 0x4e25, 0x4e7f, 0x4e50, 0x4e90, 0x4e3d, 0x4ecd, 0x4dad, 0x4e6c, 0x4f1a, 0x4dd8, 0x4f33, 0x4e40, 0x4dfb, 0x4e3e, 0x4db5, 0x4e5f, 0x4eeb, 0x4e34, 0x4dda, 0x4e80, 0x4ecc, 0x4ed4, 0x4db3, 0x4e12, 0x4d87, 0x4e52, 0x4e2f, 0x4ed6, 0x4e9c, 0x4f17, 0x4e5e, 0x4e12, 0x4e48, 0x4e31, 0x4e88, 0x4e64, 0x4e44, 0x4e23, 0x4e16, 0x4ea3, 0x4e98, 0x4e0a, 0x4de2, 0x4ebc, 0x4dfc, 0x4e22, 0x4e5b, 0x4dd5, 0x4e85, 0x4ea4, 0x4e42, 0x4e4f, 0x4ea1, 0x4e2d, 0x4e44, 0x4d7d, +0x4db5, 0x4dad, 0x4e2a, 0x4d31, 0x4e06, 0x4dbc, 0x4e4e, 0x4e78, 0x4d7e, 0x4ea3, 0x4dc2, 0x4db8, 0x4ec4, 0x4daa, 0x4e42, 0x4de2, 0x4e01, 0x4dac, 0x4dbc, 0x4e00, 0x4da6, 0x4d71, 0x4e01, 0x4dd2, 0x4d92, 0x4db6, 0x4ec5, 0x4d54, 0x4e7b, 0x4e3f, 0x4e0b, 0x4dfc, 0x4e05, 0x4d6c, 0x4e96, 0x4d90, 0x4dae, 0x4d2d, 0x4d7c, 0x4dc9, 0x4d91, 0x4dcc, 0x4dab, 0x4e48, 0x4df2, 0x4e26, 0x4da6, 0x4dd1, 0x4e7d, 0x4dc3, 0x4eab, 0x4e04, 0x4d1f, 0x4dcb, 0x4db2, 0x4da9, 0x4dd1, 0x4d8c, 0x4d8d, 0x4df2, 0x4e1c, 0x4ef9, 0x4d3c, 0x4e0a, 0x4d23, 0x4d8f, 0x4e02, 0x4e27, 0x4e29, 0x4ea2, 0x4e10, 0x4dc6, 0x4de3, 0x4db2, 0x4e61, 0x4df7, 0x4df5, 0x4e25, 0x4de6, 0x4e46, 0x4e0f, 0x4dc8, 0x4d8f, 0x4e3c, 0x4d4e, 0x4ddd, 0x4df1, 0x4cfa, 0x4e06, 0x4e72, 0x4de3, 0x4dda, 0x4df9, 0x4e24, 0x4da8, 0x4d7f, +0x4d8f, 0x4d95, 0x4e5a, 0x4dbc, 0x4ded, 0x4daf, 0x4e1c, 0x4eea, 0x4db3, 0x4ee9, 0x4e7d, 0x4dd2, 0x4e60, 0x4df6, 0x4dfd, 0x4e2d, 0x4e5d, 0x4df0, 0x4db2, 0x4dde, 0x4de1, 0x4d4e, 0x4dd9, 0x4db6, 0x4de8, 0x4dcd, 0x4dff, 0x4d63, 0x4dee, 0x4e75, 0x4e5d, 0x4dfd, 0x4e30, 0x4d88, 0x4e6f, 0x4dc4, 0x4d8b, 0x4d90, 0x4d4e, 0x4dc2, 0x4e07, 0x4e3e, 0x4d82, 0x4e79, 0x4da7, 0x4de0, 0x4d1a, 0x4d8a, 0x4e91, 0x4da7, 0x4e5c, 0x4dcc, 0x4d9d, 0x4df7, 0x4d69, 0x4dee, 0x4e05, 0x4da3, 0x4d41, 0x4e2d, 0x4e13, 0x4ec4, 0x4cf6, 0x4e41, 0x4dc4, 0x4dad, 0x4d96, 0x4e74, 0x4e66, 0x4e4b, 0x4df8, 0x4da1, 0x4dbe, 0x4ddd, 0x4e12, 0x4d81, 0x4da9, 0x4dba, 0x4df4, 0x4dfb, 0x4e53, 0x4dbb, 0x4d79, 0x4e13, 0x4d93, 0x4dfc, 0x4da8, 0x4d6e, 0x4ddb, 0x4dee, 0x4db2, 0x4e71, 0x4e06, 0x4e15, 0x4dad, 0x4e10, +0x4dbe, 0x4d9a, 0x4e47, 0x4d82, 0x4e18, 0x4e0e, 0x4e70, 0x4ebd, 0x4e2f, 0x4eee, 0x4e47, 0x4e16, 0x4ed6, 0x4dee, 0x4e5a, 0x4e64, 0x4e99, 0x4dfa, 0x4dd7, 0x4e82, 0x4e32, 0x4dd0, 0x4e4a, 0x4e31, 0x4db7, 0x4dab, 0x4e6f, 0x4df7, 0x4e5e, 0x4ea5, 0x4e2f, 0x4e3d, 0x4e1b, 0x4dee, 0x4e6e, 0x4df6, 0x4e07, 0x4d94, 0x4d52, 0x4d9d, 0x4d9a, 0x4dc1, 0x4d68, 0x4e8a, 0x4de5, 0x4ed0, 0x4dbc, 0x4e0e, 0x4e82, 0x4df1, 0x4eda, 0x4deb, 0x4d7d, 0x4e03, 0x4d79, 0x4d9c, 0x4e18, 0x4df0, 0x4dc0, 0x4e04, 0x4e3c, 0x4f3c, 0x4dcf, 0x4e53, 0x4d88, 0x4dad, 0x4e2e, 0x4e30, 0x4e7a, 0x4ea5, 0x4dca, 0x4df9, 0x4e4a, 0x4e05, 0x4e9c, 0x4dca, 0x4e18, 0x4e1c, 0x4e4d, 0x4e3a, 0x4ed8, 0x4dd7, 0x4dd2, 0x4e56, 0x4da1, 0x4e5c, 0x4dec, 0x4d66, 0x4e07, 0x4e62, 0x4e15, 0x4e5e, 0x4e30, 0x4e1d, 0x4e47, 0x4e0e, +0x4dec, 0x4e01, 0x4e70, 0x4dfa, 0x4e67, 0x4db4, 0x4e83, 0x4f89, 0x4e1b, 0x4f76, 0x4e4b, 0x4e2b, 0x4f33, 0x4e79, 0x4e5f, 0x4e1d, 0x4e90, 0x4df1, 0x4df9, 0x4e53, 0x4deb, 0x4d95, 0x4e23, 0x4d81, 0x4e0a, 0x4e1e, 0x4efc, 0x4df0, 0x4e8d, 0x4ee7, 0x4e99, 0x4ecb, 0x4e37, 0x4e41, 0x4ece, 0x4e28, 0x4deb, 0x4dba, 0x4dd7, 0x4e1d, 0x4e40, 0x4e1e, 0x4e08, 0x4eab, 0x4e61, 0x4e9e, 0x4db5, 0x4e32, 0x4ed9, 0x4df4, 0x4f2d, 0x4e58, 0x4d91, 0x4dd9, 0x4dd4, 0x4e32, 0x4e5e, 0x4db8, 0x4dfb, 0x4e4d, 0x4e87, 0x4f3e, 0x4dcc, 0x4ea3, 0x4d85, 0x4e3b, 0x4e3a, 0x4e95, 0x4ea9, 0x4efa, 0x4f03, 0x4e56, 0x4e70, 0x4e59, 0x4e85, 0x4e7b, 0x4e0a, 0x4e5e, 0x4e33, 0x4e61, 0x4edb, 0x4e24, 0x4e24, 0x4e4e, 0x4ddc, 0x4e35, 0x4e52, 0x4dc2, 0x4e58, 0x4ecb, 0x4dea, 0x4e93, 0x4e7a, 0x4e7a, 0x4e24, 0x4e24, +0x4e1a, 0x4e76, 0x4e5f, 0x4dcb, 0x4e4c, 0x4e37, 0x4ed6, 0x4ec9, 0x4de4, 0x4f1e, 0x4e8e, 0x4e22, 0x4eef, 0x4e5e, 0x4e26, 0x4e5b, 0x4ed3, 0x4e7a, 0x4dbf, 0x4e76, 0x4e06, 0x4de0, 0x4e59, 0x4de5, 0x4e66, 0x4e1f, 0x4e76, 0x4dd8, 0x4e8d, 0x4ef8, 0x4ed3, 0x4e45, 0x4e84, 0x4e3d, 0x4ef2, 0x4df1, 0x4df6, 0x4e09, 0x4d77, 0x4e22, 0x4dc6, 0x4e8a, 0x4dcd, 0x4e8f, 0x4e57, 0x4eef, 0x4dbc, 0x4e40, 0x4f00, 0x4deb, 0x4e93, 0x4e33, 0x4d66, 0x4e1a, 0x4dc6, 0x4dee, 0x4e42, 0x4dd8, 0x4e23, 0x4e83, 0x4e0b, 0x4ee3, 0x4da3, 0x4e63, 0x4dbf, 0x4e1a, 0x4e7a, 0x4e8f, 0x4ede, 0x4eed, 0x4e27, 0x4e5a, 0x4e42, 0x4e2f, 0x4ea2, 0x4e1d, 0x4e16, 0x4e7e, 0x4eab, 0x4e64, 0x4ec7, 0x4dc2, 0x4d9a, 0x4eca, 0x4e4a, 0x4e22, 0x4e54, 0x4dd1, 0x4e67, 0x4e81, 0x4de7, 0x4e32, 0x4f41, 0x4e70, 0x4e0d, 0x4ddc, +0x4da1, 0x4deb, 0x4e14, 0x4d79, 0x4e1c, 0x4db9, 0x4e1a, 0x4e73, 0x4dd2, 0x4ee5, 0x4dd8, 0x4dbd, 0x4e94, 0x4dd3, 0x4da2, 0x4e2d, 0x4e62, 0x4dda, 0x4d75, 0x4e2d, 0x4e01, 0x4d3e, 0x4ddf, 0x4ddb, 0x4e1e, 0x4d91, 0x4e09, 0x4da9, 0x4e74, 0x4e7a, 0x4dba, 0x4dd4, 0x4e30, 0x4da4, 0x4e3e, 0x4d81, 0x4d95, 0x4d95, 0x4d81, 0x4e30, 0x4e23, 0x4e35, 0x4dbd, 0x4e34, 0x4e0a, 0x4e89, 0x4d2f, 0x4df7, 0x4e72, 0x4dbe, 0x4ef1, 0x4e28, 0x4d7e, 0x4dd9, 0x4dc9, 0x4dd5, 0x4e30, 0x4de8, 0x4da4, 0x4e00, 0x4e0a, 0x4e66, 0x4d32, 0x4e04, 0x4d5e, 0x4db9, 0x4e11, 0x4e3e, 0x4de4, 0x4e6c, 0x4e38, 0x4e10, 0x4db9, 0x4df4, 0x4e63, 0x4dec, 0x4deb, 0x4dd5, 0x4e2c, 0x4e28, 0x4e22, 0x4d86, 0x4dd8, 0x4e3e, 0x4d27, 0x4e7e, 0x4dc5, 0x4cf5, 0x4e04, 0x4e4e, 0x4e1c, 0x4df2, 0x4e10, 0x4de0, 0x4d6b, 0x4d53, +0x4de7, 0x4e37, 0x4e87, 0x4e27, 0x4e9b, 0x4e07, 0x4e87, 0x4f9e, 0x4e14, 0x4faf, 0x4edd, 0x4f04, 0x4f20, 0x4e28, 0x4d9f, 0x4e6d, 0x4f14, 0x4df2, 0x4e1b, 0x4e74, 0x4e77, 0x4d6f, 0x4e33, 0x4dff, 0x4e7c, 0x4e75, 0x4e6e, 0x4e2c, 0x4e68, 0x4f3a, 0x4ec2, 0x4e8f, 0x4eda, 0x4e35, 0x4f59, 0x4e42, 0x4e34, 0x4dfe, 0x4e42, 0x4e5b, 0x4e3a, 0x4e91, 0x4e20, 0x4e71, 0x4eec, 0x4eba, 0x4e03, 0x4e1f, 0x4eac, 0x4dd8, 0x4f57, 0x4ead, 0x4de8, 0x4de5, 0x4e17, 0x4e96, 0x4e7c, 0x4db7, 0x4ddb, 0x4e47, 0x4e6a, 0x4f17, 0x4d7d, 0x4e98, 0x4e04, 0x4e32, 0x4e82, 0x4ecf, 0x4ed7, 0x4f05, 0x4e77, 0x4ec6, 0x4ee5, 0x4e3f, 0x4e8f, 0x4e83, 0x4dcd, 0x4e0e, 0x4e9d, 0x4e58, 0x4eea, 0x4df3, 0x4de0, 0x4ecb, 0x4e06, 0x4e8a, 0x4e68, 0x4d67, 0x4e5a, 0x4eef, 0x4e05, 0x4e8b, 0x4eff, 0x4e46, 0x4e60, 0x4dd7, +0x4dcc, 0x4dee, 0x4e78, 0x4db4, 0x4e61, 0x4db1, 0x4e3e, 0x4edd, 0x4db1, 0x4ede, 0x4d68, 0x4e5a, 0x4efb, 0x4dd2, 0x4dfe, 0x4e28, 0x4ec4, 0x4e16, 0x4d85, 0x4e55, 0x4dff, 0x4dc4, 0x4e27, 0x4dc9, 0x4dc7, 0x4dd2, 0x4e79, 0x4d94, 0x4e4e, 0x4e8b, 0x4e6a, 0x4e52, 0x4dfc, 0x4e08, 0x4e1e, 0x4dff, 0x4daf, 0x4d7b, 0x4d51, 0x4da5, 0x4deb, 0x4e25, 0x4e00, 0x4e7a, 0x4de4, 0x4ea6, 0x4d64, 0x4ddc, 0x4ea0, 0x4ddb, 0x4e73, 0x4dfa, 0x4d1b, 0x4e17, 0x4d78, 0x4de8, 0x4eb9, 0x4dc4, 0x4dc0, 0x4e2e, 0x4e61, 0x4eb6, 0x4dac, 0x4e6a, 0x4d86, 0x4dd0, 0x4e92, 0x4e20, 0x4e2b, 0x4e5f, 0x4df0, 0x4e2d, 0x4e1b, 0x4dd7, 0x4e1d, 0x4e1f, 0x4e45, 0x4e6e, 0x4dc8, 0x4de8, 0x4e5f, 0x4dea, 0x4dd3, 0x4e5e, 0x4dda, 0x4dee, 0x4dac, 0x4d7d, 0x4e39, 0x4e3c, 0x4e22, 0x4e6e, 0x4e77, 0x4e45, 0x4e0b, 0x4dd3, +0x4e35, 0x4e33, 0x4e9c, 0x4de7, 0x4e4c, 0x4e54, 0x4eeb, 0x4f2a, 0x4e39, 0x4f67, 0x4e9e, 0x4e61, 0x4f2b, 0x4e50, 0x4e45, 0x4eab, 0x4f08, 0x4e4f, 0x4e01, 0x4e7a, 0x4e73, 0x4df9, 0x4e88, 0x4dd9, 0x4ea5, 0x4e6d, 0x4ef7, 0x4dcf, 0x4f2f, 0x4f58, 0x4ef7, 0x4eca, 0x4e71, 0x4e82, 0x4f22, 0x4e73, 0x4e35, 0x4e09, 0x4de6, 0x4e4a, 0x4e4c, 0x4e58, 0x4e07, 0x4f1c, 0x4ea0, 0x4f1d, 0x4de4, 0x4e88, 0x4ec8, 0x4e27, 0x4f13, 0x4df9, 0x4dc0, 0x4e55, 0x4da9, 0x4e3b, 0x4eb5, 0x4df2, 0x4e28, 0x4ea0, 0x4e45, 0x4f56, 0x4dfe, 0x4ebe, 0x4db8, 0x4e2b, 0x4ea1, 0x4ebc, 0x4ec6, 0x4f16, 0x4e85, 0x4e5a, 0x4e8c, 0x4e67, 0x4efc, 0x4e11, 0x4e3e, 0x4e7c, 0x4e7b, 0x4e66, 0x4ecf, 0x4df3, 0x4e39, 0x4e97, 0x4dd1, 0x4eb3, 0x4e47, 0x4e05, 0x4e7d, 0x4eb7, 0x4e7b, 0x4eca, 0x4f2b, 0x4ea0, 0x4e2b, 0x4e51, +0x4db9, 0x4dbf, 0x4e60, 0x4db6, 0x4ec2, 0x4da9, 0x4e40, 0x4eb2, 0x4dd0, 0x4ee8, 0x4df1, 0x4e3d, 0x4eef, 0x4e3a, 0x4e4c, 0x4dfe, 0x4e5e, 0x4e52, 0x4df0, 0x4e28, 0x4e65, 0x4de5, 0x4e47, 0x4d6d, 0x4e02, 0x4dd1, 0x4e7c, 0x4dde, 0x4e2f, 0x4e87, 0x4e9e, 0x4e58, 0x4e0a, 0x4e91, 0x4e0c, 0x4e05, 0x4e1d, 0x4d89, 0x4d53, 0x4da9, 0x4e6b, 0x4e71, 0x4df8, 0x4e8a, 0x4dcd, 0x4ed8, 0x4d7f, 0x4e1d, 0x4e77, 0x4d97, 0x4ea3, 0x4d6f, 0x4d9d, 0x4e0f, 0x4dcb, 0x4e2b, 0x4e8e, 0x4dbd, 0x4d96, 0x4e28, 0x4e09, 0x4f0c, 0x4d95, 0x4e53, 0x4d66, 0x4e32, 0x4e1c, 0x4dfb, 0x4e2a, 0x4e91, 0x4ed8, 0x4dd0, 0x4e94, 0x4e1e, 0x4dd3, 0x4e4a, 0x4dcd, 0x4e56, 0x4e2f, 0x4e7e, 0x4e22, 0x4dd2, 0x4e42, 0x4e9a, 0x4ddc, 0x4e3c, 0x4e8a, 0x4d97, 0x4e00, 0x4e7e, 0x4d80, 0x4e5c, 0x4eba, 0x4e5e, 0x4e47, 0x4e02, +0x4c99, 0x4c81, 0x4d53, 0x4cb2, 0x4d3f, 0x4ca4, 0x4d31, 0x4dab, 0x4d46, 0x4dae, 0x4ce7, 0x4d3d, 0x4da8, 0x4d00, 0x4d6a, 0x4d0d, 0x4d75, 0x4d0c, 0x4cc1, 0x4cf5, 0x4d2e, 0x4cc4, 0x4ccf, 0x4cac, 0x4cfc, 0x4cfa, 0x4d7f, 0x4ccd, 0x4d41, 0x4d62, 0x4d43, 0x4d2f, 0x4cf8, 0x4cfc, 0x4db4, 0x4d00, 0x4cfa, 0x4cad, 0x4cf2, 0x4cf7, 0x4d04, 0x4cf2, 0x4caf, 0x4d56, 0x4cda, 0x4d5b, 0x4cef, 0x4d37, 0x4d81, 0x4cca, 0x4ddd, 0x4ca3, 0x4c50, 0x4d2d, 0x4c81, 0x4cf7, 0x4d46, 0x4ce2, 0x4ce5, 0x4d38, 0x4cf5, 0x4de8, 0x4c6a, 0x4d4f, 0x4c86, 0x4cc3, 0x4d31, 0x4d5b, 0x4d55, 0x4d82, 0x4d74, 0x4cc0, 0x4d08, 0x4d27, 0x4d0a, 0x4cd9, 0x4cf2, 0x4d38, 0x4c9b, 0x4d29, 0x4d67, 0x4d1a, 0x4d25, 0x4d1d, 0x4cdd, 0x4cd0, 0x4ced, 0x4c6d, 0x4d0d, 0x4d72, 0x4d3f, 0x4d94, 0x4d5a, 0x4d2d, 0x4d00, 0x4cb8 +}; \ No newline at end of file diff --git a/redmule/inc/z_output.h b/redmule/inc/z_output.h new file mode 100644 index 0000000..9cc0610 --- /dev/null +++ b/redmule/inc/z_output.h @@ -0,0 +1,99 @@ + /* Header file generated by RedMulE Golden Model */ +uint16_t z_oup [9216] = { +0x4e2d, 0x4e0e, 0x4dda, 0x4de5, 0x4e0e, 0x4dbc, 0x4e3f, 0x4ed6, 0x4dce, 0x4eef, 0x4dfc, 0x4e55, 0x4e2f, 0x4d96, 0x4ddd, 0x4d8a, 0x4e4c, 0x4dc2, 0x4d63, 0x4daa, 0x4e0a, 0x4d89, 0x4dff, 0x4d7d, 0x4d9e, 0x4e07, 0x4ded, 0x4d68, 0x4e69, 0x4ea9, 0x4e7b, 0x4e13, 0x4e22, 0x4e13, 0x4e34, 0x4dd6, 0x4db5, 0x4db6, 0x4d9c, 0x4dfd, 0x4e51, 0x4e0f, 0x4d92, 0x4e46, 0x4db8, 0x4e97, 0x4d14, 0x4dcb, 0x4e6a, 0x4d8e, 0x4eb5, 0x4dee, 0x4d95, 0x4e1c, 0x4dcb, 0x4e1e, 0x4dff, 0x4d5d, 0x4d53, 0x4dde, 0x4dda, 0x4ea4, 0x4d1c, 0x4e1d, 0x4d30, 0x4dad, 0x4e27, 0x4e04, 0x4e55, 0x4ebb, 0x4e47, 0x4daa, 0x4ddf, 0x4dd8, 0x4e3a, 0x4db0, 0x4dc0, 0x4e1c, 0x4dc1, 0x4e33, 0x4e2b, 0x4dcd, 0x4da2, 0x4ebe, 0x4d64, 0x4da9, 0x4e7f, 0x4d80, 0x4e14, 0x4e9b, 0x4d7e, 0x4e85, 0x4e6d, 0x4e6e, 0x4e1e, 0x4def, +0x4def, 0x4d5f, 0x4e1d, 0x4daa, 0x4e29, 0x4dc0, 0x4e5f, 0x4f01, 0x4dcf, 0x4f33, 0x4dcf, 0x4e86, 0x4ecf, 0x4dfd, 0x4deb, 0x4d92, 0x4eda, 0x4e29, 0x4dae, 0x4e35, 0x4e49, 0x4da9, 0x4e33, 0x4d7d, 0x4e23, 0x4e28, 0x4dc0, 0x4e12, 0x4e62, 0x4eda, 0x4e71, 0x4e43, 0x4e2d, 0x4df3, 0x4e69, 0x4e0d, 0x4df7, 0x4dbd, 0x4dbc, 0x4da3, 0x4d9d, 0x4e3c, 0x4e01, 0x4ebb, 0x4dd5, 0x4e35, 0x4d3f, 0x4de4, 0x4efa, 0x4dc4, 0x4ee3, 0x4dac, 0x4d93, 0x4da3, 0x4da1, 0x4dee, 0x4e9a, 0x4db0, 0x4db0, 0x4e99, 0x4dfe, 0x4eaf, 0x4d59, 0x4e35, 0x4dee, 0x4de7, 0x4e60, 0x4e5d, 0x4ec7, 0x4eb1, 0x4e59, 0x4de0, 0x4e35, 0x4df5, 0x4df4, 0x4df1, 0x4df4, 0x4e27, 0x4dd5, 0x4e4b, 0x4e87, 0x4da1, 0x4dbc, 0x4eb6, 0x4d77, 0x4e4f, 0x4e04, 0x4d77, 0x4e43, 0x4ede, 0x4df7, 0x4e38, 0x4e81, 0x4e43, 0x4e43, 0x4e01, +0x4d9d, 0x4dbc, 0x4e1d, 0x4e2f, 0x4e69, 0x4ddf, 0x4e62, 0x4f1f, 0x4dbd, 0x4f0c, 0x4d88, 0x4da7, 0x4f23, 0x4dfa, 0x4e2e, 0x4de9, 0x4e67, 0x4de4, 0x4da6, 0x4ded, 0x4e28, 0x4d1b, 0x4e1d, 0x4dbb, 0x4dea, 0x4e1c, 0x4e67, 0x4ddc, 0x4de6, 0x4e7d, 0x4e2c, 0x4e1c, 0x4e41, 0x4def, 0x4e14, 0x4ddc, 0x4dc3, 0x4cfa, 0x4dac, 0x4db0, 0x4e84, 0x4df6, 0x4d77, 0x4e5a, 0x4dd5, 0x4ea7, 0x4d34, 0x4da6, 0x4eb7, 0x4dca, 0x4e9c, 0x4dcb, 0x4d04, 0x4dd7, 0x4dcd, 0x4e29, 0x4df3, 0x4d80, 0x4dc5, 0x4e3d, 0x4dd1, 0x4e42, 0x4d76, 0x4e54, 0x4d5a, 0x4db3, 0x4e0a, 0x4de8, 0x4ea2, 0x4e8e, 0x4dd8, 0x4e43, 0x4e16, 0x4d9b, 0x4e8b, 0x4e39, 0x4e02, 0x4dfa, 0x4de8, 0x4e07, 0x4ddd, 0x4dd4, 0x4d3f, 0x4e05, 0x4dac, 0x4e33, 0x4e61, 0x4d4c, 0x4e0b, 0x4e63, 0x4ddd, 0x4e37, 0x4e7d, 0x4e47, 0x4dbd, 0x4db9, +0x4db6, 0x4e32, 0x4e87, 0x4e33, 0x4e43, 0x4e2b, 0x4e79, 0x4f28, 0x4de8, 0x4edc, 0x4e5e, 0x4e94, 0x4f32, 0x4e18, 0x4dbc, 0x4e77, 0x4ea9, 0x4e8c, 0x4daa, 0x4ea9, 0x4e43, 0x4e20, 0x4e3c, 0x4da8, 0x4eb0, 0x4e1b, 0x4e7a, 0x4e32, 0x4eb8, 0x4eb2, 0x4ea5, 0x4e8b, 0x4e7f, 0x4de9, 0x4ee2, 0x4df5, 0x4e01, 0x4e5c, 0x4dbb, 0x4dee, 0x4e41, 0x4e65, 0x4e2d, 0x4ef5, 0x4e84, 0x4e78, 0x4de8, 0x4e32, 0x4ee1, 0x4dea, 0x4ef6, 0x4def, 0x4da8, 0x4e4f, 0x4dd0, 0x4e76, 0x4e84, 0x4def, 0x4d88, 0x4e53, 0x4e34, 0x4f79, 0x4db4, 0x4ea1, 0x4dc1, 0x4dee, 0x4e44, 0x4ec4, 0x4ed6, 0x4e82, 0x4e5e, 0x4df4, 0x4ec3, 0x4e45, 0x4ea1, 0x4e16, 0x4e00, 0x4e6f, 0x4e50, 0x4e80, 0x4e9c, 0x4df7, 0x4e1c, 0x4edf, 0x4dcb, 0x4e27, 0x4e39, 0x4d78, 0x4e1c, 0x4ec7, 0x4e37, 0x4e81, 0x4e8f, 0x4e4b, 0x4e45, 0x4dfa, +0x4e2a, 0x4e3d, 0x4e3d, 0x4df5, 0x4e3a, 0x4def, 0x4e2f, 0x4ed6, 0x4db3, 0x4ef3, 0x4e5a, 0x4e8e, 0x4f50, 0x4db6, 0x4e46, 0x4e34, 0x4ec9, 0x4e1b, 0x4dd6, 0x4e80, 0x4e1f, 0x4d99, 0x4e76, 0x4e52, 0x4e8a, 0x4e8d, 0x4e5b, 0x4dc1, 0x4eaf, 0x4efc, 0x4ebb, 0x4e52, 0x4e78, 0x4df4, 0x4e78, 0x4df1, 0x4dfa, 0x4dd4, 0x4d47, 0x4e48, 0x4e04, 0x4e20, 0x4ddd, 0x4ebb, 0x4e44, 0x4eca, 0x4d9b, 0x4dec, 0x4e9c, 0x4e12, 0x4ec7, 0x4dfd, 0x4d6c, 0x4e46, 0x4dc0, 0x4e37, 0x4e59, 0x4dbc, 0x4d8b, 0x4e40, 0x4e31, 0x4ef8, 0x4de1, 0x4de8, 0x4d97, 0x4dd2, 0x4ea0, 0x4e1c, 0x4e3a, 0x4eb4, 0x4dd5, 0x4e41, 0x4e5d, 0x4dbc, 0x4e1d, 0x4e55, 0x4e77, 0x4dfc, 0x4e4b, 0x4e22, 0x4ebe, 0x4d6d, 0x4dad, 0x4e2a, 0x4dd3, 0x4e56, 0x4e3a, 0x4d2e, 0x4e42, 0x4e95, 0x4dce, 0x4e3b, 0x4eef, 0x4e46, 0x4ded, 0x4df8, +0x4d39, 0x4d7b, 0x4da0, 0x4cfa, 0x4d82, 0x4d16, 0x4d98, 0x4e32, 0x4ce2, 0x4e4a, 0x4d6a, 0x4d64, 0x4e27, 0x4d47, 0x4d4c, 0x4d16, 0x4d7c, 0x4d49, 0x4d0d, 0x4d3e, 0x4d83, 0x4d12, 0x4d19, 0x4cbe, 0x4d0f, 0x4d83, 0x4d65, 0x4cdb, 0x4d3d, 0x4ded, 0x4dff, 0x4d5b, 0x4d74, 0x4d70, 0x4df1, 0x4ccd, 0x4d49, 0x4d16, 0x4cc3, 0x4d2f, 0x4d25, 0x4d85, 0x4d31, 0x4dc3, 0x4d5b, 0x4dcb, 0x4cb3, 0x4d51, 0x4d98, 0x4d29, 0x4dc9, 0x4cc1, 0x4cd1, 0x4d90, 0x4cd3, 0x4d59, 0x4d5e, 0x4cf7, 0x4cda, 0x4dae, 0x4d8f, 0x4e13, 0x4cee, 0x4d6a, 0x4d0f, 0x4d33, 0x4d00, 0x4d56, 0x4d88, 0x4dae, 0x4d78, 0x4d40, 0x4d9c, 0x4d7c, 0x4d58, 0x4d2c, 0x4d47, 0x4d28, 0x4db4, 0x4dfc, 0x4d97, 0x4cec, 0x4cf7, 0x4dc0, 0x4d0c, 0x4d81, 0x4d58, 0x4d28, 0x4d63, 0x4dad, 0x4d12, 0x4d75, 0x4d77, 0x4d51, 0x4ceb, 0x4d0b, +0x4d6b, 0x4d5e, 0x4e5d, 0x4da9, 0x4e1f, 0x4d97, 0x4df3, 0x4ec4, 0x4d90, 0x4ee0, 0x4da1, 0x4e24, 0x4e3b, 0x4d68, 0x4da9, 0x4ddf, 0x4dfd, 0x4d99, 0x4d6c, 0x4dba, 0x4e07, 0x4daa, 0x4df3, 0x4dd8, 0x4d51, 0x4dc7, 0x4ddb, 0x4d6e, 0x4dd9, 0x4df2, 0x4e39, 0x4e15, 0x4e04, 0x4e02, 0x4e05, 0x4dbf, 0x4de1, 0x4d43, 0x4d73, 0x4d9e, 0x4dd5, 0x4daf, 0x4daf, 0x4e51, 0x4dcc, 0x4e5c, 0x4d8f, 0x4d5d, 0x4e2f, 0x4d7c, 0x4e80, 0x4dd7, 0x4dbd, 0x4dc2, 0x4d5f, 0x4e11, 0x4de6, 0x4d6b, 0x4d1a, 0x4db4, 0x4dcb, 0x4eba, 0x4d24, 0x4ded, 0x4dc5, 0x4d51, 0x4dfe, 0x4dfd, 0x4e44, 0x4e33, 0x4e59, 0x4d99, 0x4ddf, 0x4d99, 0x4dd4, 0x4d66, 0x4df2, 0x4de9, 0x4d80, 0x4e30, 0x4e0a, 0x4daf, 0x4dc3, 0x4e3d, 0x4d79, 0x4d72, 0x4de1, 0x4d42, 0x4e4e, 0x4ea1, 0x4d84, 0x4e13, 0x4e0c, 0x4dc9, 0x4ddf, 0x4df4, +0x4db8, 0x4e02, 0x4e6b, 0x4d8a, 0x4e8f, 0x4e49, 0x4e5b, 0x4eb6, 0x4e1d, 0x4ef9, 0x4e2f, 0x4e65, 0x4ef9, 0x4db4, 0x4e86, 0x4e5c, 0x4eae, 0x4e23, 0x4d8f, 0x4e5a, 0x4e1e, 0x4de0, 0x4e5c, 0x4dbd, 0x4e38, 0x4e37, 0x4ec8, 0x4ded, 0x4ecd, 0x4ec5, 0x4f06, 0x4e9b, 0x4e8a, 0x4ea2, 0x4e41, 0x4dea, 0x4e04, 0x4d70, 0x4d5a, 0x4e34, 0x4e01, 0x4e51, 0x4e0f, 0x4ef0, 0x4dfe, 0x4edd, 0x4d8b, 0x4dd0, 0x4e6d, 0x4e69, 0x4f18, 0x4de4, 0x4d8f, 0x4e21, 0x4de2, 0x4e07, 0x4e56, 0x4ded, 0x4d8d, 0x4e39, 0x4e50, 0x4f37, 0x4dd6, 0x4e27, 0x4e04, 0x4df0, 0x4e92, 0x4e5b, 0x4e99, 0x4eeb, 0x4e66, 0x4e60, 0x4ebc, 0x4df6, 0x4e57, 0x4e40, 0x4eaf, 0x4e5c, 0x4e3f, 0x4e44, 0x4e23, 0x4de8, 0x4e56, 0x4e7e, 0x4e01, 0x4e52, 0x4e5b, 0x4dc5, 0x4e94, 0x4ee0, 0x4e48, 0x4e48, 0x4e63, 0x4e79, 0x4e21, 0x4e3c, +0x4e6a, 0x4e58, 0x4f33, 0x4e57, 0x4ef5, 0x4ee8, 0x4f08, 0x4fd1, 0x4e62, 0x4fc6, 0x4f04, 0x4eab, 0x4fda, 0x4e9b, 0x4eec, 0x4f27, 0x4f04, 0x4eaf, 0x4e19, 0x4f17, 0x4f28, 0x4e59, 0x4ea0, 0x4e0d, 0x4eec, 0x4e73, 0x4f0c, 0x4e6a, 0x4ead, 0x4f95, 0x4edf, 0x4e8f, 0x4eca, 0x4ecd, 0x4edd, 0x4ea5, 0x4edf, 0x4dff, 0x4e28, 0x4e64, 0x4f27, 0x4ed2, 0x4e25, 0x4f29, 0x4e6c, 0x4f95, 0x4e35, 0x4e5b, 0x4f4d, 0x4ea8, 0x4f3b, 0x4eb4, 0x4e2b, 0x4ec0, 0x4e61, 0x4e91, 0x4ee7, 0x4e8c, 0x4e76, 0x4f05, 0x4ed3, 0x4f5e, 0x4e81, 0x4f16, 0x4dfd, 0x4e55, 0x4e9d, 0x4ed1, 0x4ec6, 0x4fa5, 0x4ef2, 0x4ee3, 0x4f1d, 0x4e51, 0x4ebf, 0x4ed8, 0x4ee9, 0x4ef1, 0x4ee2, 0x4f02, 0x4fae, 0x4e7b, 0x4ee4, 0x4f3c, 0x4e59, 0x4ec7, 0x4e97, 0x4e36, 0x4efb, 0x4f02, 0x4ecb, 0x4f03, 0x4f13, 0x4eb2, 0x4e94, 0x4e77, +0x4e1b, 0x4e38, 0x4edf, 0x4dc6, 0x4ee0, 0x4e35, 0x4efd, 0x4f97, 0x4e50, 0x4f9b, 0x4ddc, 0x4e39, 0x4f6b, 0x4e55, 0x4eb4, 0x4e63, 0x4ea0, 0x4e3b, 0x4e17, 0x4e2a, 0x4ed9, 0x4e23, 0x4ee7, 0x4e56, 0x4e34, 0x4e9b, 0x4eda, 0x4e0b, 0x4e82, 0x4ef2, 0x4e95, 0x4ec3, 0x4f05, 0x4e55, 0x4efc, 0x4e8f, 0x4e7c, 0x4e01, 0x4e0a, 0x4e45, 0x4e28, 0x4e65, 0x4e20, 0x4e78, 0x4ebd, 0x4ea1, 0x4e22, 0x4e2b, 0x4f6f, 0x4dcf, 0x4f35, 0x4e0f, 0x4dcb, 0x4e76, 0x4e08, 0x4e7f, 0x4f05, 0x4e5b, 0x4dd7, 0x4e83, 0x4ebd, 0x4f4c, 0x4d7b, 0x4eef, 0x4e01, 0x4e78, 0x4ee6, 0x4ea6, 0x4f28, 0x4f00, 0x4e4e, 0x4e31, 0x4ed7, 0x4e4e, 0x4e6f, 0x4e7a, 0x4e9f, 0x4ee6, 0x4e74, 0x4e91, 0x4eba, 0x4e1f, 0x4e1f, 0x4f5d, 0x4e22, 0x4e84, 0x4e2c, 0x4da3, 0x4e82, 0x4ec5, 0x4ec8, 0x4f13, 0x4ef4, 0x4e9a, 0x4eb6, 0x4e5a, +0x4d6b, 0x4db6, 0x4e0b, 0x4d3b, 0x4df7, 0x4d88, 0x4e15, 0x4e81, 0x4d5f, 0x4ef0, 0x4e2f, 0x4da2, 0x4e6a, 0x4da1, 0x4d9c, 0x4e6c, 0x4e0b, 0x4db1, 0x4d3c, 0x4dfc, 0x4d97, 0x4d63, 0x4e39, 0x4d4d, 0x4da9, 0x4d99, 0x4e40, 0x4da0, 0x4de3, 0x4e28, 0x4e04, 0x4ddc, 0x4dcb, 0x4de6, 0x4e6b, 0x4d91, 0x4dd5, 0x4d84, 0x4d44, 0x4d36, 0x4d75, 0x4de6, 0x4dba, 0x4ed7, 0x4d6f, 0x4e5a, 0x4d88, 0x4d6d, 0x4e03, 0x4d64, 0x4e96, 0x4d8a, 0x4d5c, 0x4dca, 0x4d7c, 0x4e1b, 0x4dfc, 0x4d86, 0x4d66, 0x4dd9, 0x4df3, 0x4e53, 0x4d4b, 0x4e2a, 0x4d9b, 0x4d43, 0x4ddb, 0x4e5a, 0x4de7, 0x4e56, 0x4dee, 0x4d8c, 0x4dcc, 0x4dc7, 0x4daa, 0x4d80, 0x4d97, 0x4e56, 0x4d5f, 0x4e77, 0x4d98, 0x4d51, 0x4d8d, 0x4e89, 0x4d38, 0x4d6b, 0x4dc8, 0x4d8e, 0x4df9, 0x4e13, 0x4d2f, 0x4e07, 0x4e0f, 0x4da0, 0x4d95, 0x4d6a, +0x4e54, 0x4deb, 0x4ea3, 0x4d9d, 0x4e6c, 0x4e3c, 0x4e8d, 0x4f56, 0x4de7, 0x4fa9, 0x4e3a, 0x4eb4, 0x4f3d, 0x4e5d, 0x4ea7, 0x4ead, 0x4f1d, 0x4ea7, 0x4deb, 0x4ea7, 0x4e17, 0x4e36, 0x4e45, 0x4e27, 0x4e42, 0x4e3a, 0x4f1a, 0x4e11, 0x4eb4, 0x4ee0, 0x4e33, 0x4ed2, 0x4e16, 0x4e07, 0x4ea9, 0x4df2, 0x4e4c, 0x4dda, 0x4e31, 0x4e0e, 0x4e32, 0x4e56, 0x4e0c, 0x4efb, 0x4e64, 0x4ebb, 0x4dbf, 0x4e3b, 0x4f0c, 0x4e63, 0x4f04, 0x4e4f, 0x4d9c, 0x4e3a, 0x4e16, 0x4e7c, 0x4e46, 0x4de2, 0x4df4, 0x4e91, 0x4eb6, 0x4f27, 0x4d8a, 0x4ecc, 0x4e0d, 0x4db3, 0x4e8e, 0x4e8a, 0x4ef0, 0x4f1f, 0x4eab, 0x4ea3, 0x4e4a, 0x4df3, 0x4ec1, 0x4e6a, 0x4e6c, 0x4eff, 0x4e45, 0x4ed3, 0x4ec6, 0x4e6f, 0x4e4a, 0x4ebf, 0x4de4, 0x4e40, 0x4e27, 0x4d9e, 0x4e79, 0x4ecb, 0x4e61, 0x4ed6, 0x4e9a, 0x4e4b, 0x4e55, 0x4e73, +0x4e5e, 0x4e1e, 0x4ea1, 0x4df7, 0x4e66, 0x4e71, 0x4f2d, 0x4fbf, 0x4ea4, 0x4fe2, 0x4eab, 0x4eb4, 0x4f9c, 0x4e8b, 0x4e41, 0x4e79, 0x4f69, 0x4e96, 0x4e07, 0x4e86, 0x4ec0, 0x4e14, 0x4e95, 0x4df4, 0x4e9e, 0x4e78, 0x4eea, 0x4df9, 0x4f28, 0x4f40, 0x4f87, 0x4e93, 0x4e29, 0x4ec5, 0x4ec1, 0x4eb6, 0x4e8f, 0x4e9f, 0x4def, 0x4e75, 0x4e75, 0x4e9b, 0x4e29, 0x4f68, 0x4eac, 0x4ed8, 0x4da6, 0x4e52, 0x4f2e, 0x4ea6, 0x4f46, 0x4ea9, 0x4e5b, 0x4e52, 0x4e4d, 0x4e99, 0x4ea2, 0x4e9e, 0x4ded, 0x4ed3, 0x4f10, 0x4fe3, 0x4df6, 0x4ee2, 0x4e13, 0x4f05, 0x4ed1, 0x4ef3, 0x4ef8, 0x4ef2, 0x4eb6, 0x4e1f, 0x4ecc, 0x4e25, 0x4ea1, 0x4ea3, 0x4ef8, 0x4e98, 0x4e43, 0x4ee0, 0x4f0e, 0x4e38, 0x4e74, 0x4f7b, 0x4df6, 0x4ee6, 0x4eba, 0x4de8, 0x4e70, 0x4f1a, 0x4e91, 0x4ed2, 0x4f2a, 0x4e84, 0x4ed3, 0x4ea0, +0x4e1c, 0x4e04, 0x4dfd, 0x4e12, 0x4de2, 0x4e0b, 0x4e45, 0x4ecf, 0x4d91, 0x4edb, 0x4e15, 0x4de1, 0x4ee1, 0x4e07, 0x4da5, 0x4dc1, 0x4e24, 0x4e0f, 0x4d89, 0x4e26, 0x4da5, 0x4d97, 0x4e39, 0x4ddb, 0x4e48, 0x4e3b, 0x4e20, 0x4d9f, 0x4e65, 0x4e82, 0x4e0b, 0x4d9e, 0x4de7, 0x4dbd, 0x4e42, 0x4da5, 0x4dc9, 0x4da4, 0x4dc0, 0x4da9, 0x4e74, 0x4e5c, 0x4de2, 0x4ee1, 0x4e10, 0x4eb1, 0x4d66, 0x4da6, 0x4eba, 0x4e1f, 0x4e9c, 0x4e61, 0x4d43, 0x4dcb, 0x4d98, 0x4e08, 0x4e22, 0x4dea, 0x4ddd, 0x4e76, 0x4e4e, 0x4e86, 0x4d7b, 0x4dfe, 0x4d4c, 0x4e37, 0x4d97, 0x4e31, 0x4e4f, 0x4ebe, 0x4e34, 0x4da1, 0x4e64, 0x4d9e, 0x4df2, 0x4e04, 0x4dd1, 0x4e3a, 0x4dd7, 0x4ea4, 0x4e09, 0x4db9, 0x4d96, 0x4e9a, 0x4d95, 0x4dd5, 0x4e1d, 0x4d54, 0x4de8, 0x4e4a, 0x4dd0, 0x4e6e, 0x4e53, 0x4e49, 0x4d86, 0x4d68, +0x4da0, 0x4dee, 0x4e81, 0x4df4, 0x4de0, 0x4dcd, 0x4ddd, 0x4eae, 0x4dce, 0x4f09, 0x4e0f, 0x4df0, 0x4ecc, 0x4df5, 0x4ddf, 0x4dca, 0x4dd6, 0x4d7f, 0x4dc1, 0x4e0d, 0x4dff, 0x4d9f, 0x4dd5, 0x4d55, 0x4daa, 0x4d84, 0x4e57, 0x4da9, 0x4e39, 0x4eb3, 0x4e60, 0x4dea, 0x4dd4, 0x4e18, 0x4e4a, 0x4dbf, 0x4d8b, 0x4d9f, 0x4d54, 0x4d9f, 0x4e12, 0x4de5, 0x4d9b, 0x4e24, 0x4db4, 0x4e48, 0x4dba, 0x4d88, 0x4e72, 0x4d39, 0x4e4e, 0x4d65, 0x4cef, 0x4e05, 0x4da6, 0x4dbe, 0x4e07, 0x4d71, 0x4d4a, 0x4deb, 0x4e37, 0x4e5e, 0x4dc0, 0x4e20, 0x4d3a, 0x4d5a, 0x4dbd, 0x4e31, 0x4e64, 0x4e77, 0x4e40, 0x4da2, 0x4e46, 0x4da5, 0x4db6, 0x4db4, 0x4db0, 0x4e17, 0x4dc7, 0x4e14, 0x4e24, 0x4dc0, 0x4d5b, 0x4e25, 0x4d91, 0x4e08, 0x4e39, 0x4db0, 0x4ddc, 0x4e55, 0x4d39, 0x4e17, 0x4e75, 0x4dd5, 0x4de9, 0x4e2c, +0x4d74, 0x4d5a, 0x4dde, 0x4d5b, 0x4dc3, 0x4d09, 0x4d93, 0x4e08, 0x4da7, 0x4e79, 0x4d85, 0x4dea, 0x4e38, 0x4d6f, 0x4d63, 0x4d92, 0x4df3, 0x4d6a, 0x4cd6, 0x4d9c, 0x4d83, 0x4d56, 0x4dd5, 0x4d8e, 0x4d84, 0x4da6, 0x4e24, 0x4d2a, 0x4dbb, 0x4e22, 0x4da3, 0x4de8, 0x4d30, 0x4dcc, 0x4db8, 0x4d87, 0x4d63, 0x4d3b, 0x4d3a, 0x4d78, 0x4d6c, 0x4d6c, 0x4d72, 0x4df4, 0x4d6a, 0x4e25, 0x4d3a, 0x4d20, 0x4e25, 0x4d00, 0x4dfc, 0x4d64, 0x4cf9, 0x4d95, 0x4d05, 0x4d3b, 0x4db6, 0x4d0e, 0x4d12, 0x4dd1, 0x4d95, 0x4e0b, 0x4d6a, 0x4de4, 0x4d38, 0x4d87, 0x4e22, 0x4df4, 0x4dc1, 0x4e09, 0x4d9d, 0x4dca, 0x4dd9, 0x4d6a, 0x4d8f, 0x4d3e, 0x4dba, 0x4dbb, 0x4d84, 0x4d7b, 0x4e1e, 0x4d4d, 0x4d67, 0x4e00, 0x4d27, 0x4d54, 0x4db9, 0x4cda, 0x4db1, 0x4e29, 0x4d71, 0x4e22, 0x4df2, 0x4d61, 0x4df0, 0x4d52, +0x4d31, 0x4d90, 0x4e17, 0x4db3, 0x4e1b, 0x4dac, 0x4e08, 0x4ec6, 0x4da8, 0x4eea, 0x4dcb, 0x4e2c, 0x4ee0, 0x4df0, 0x4dda, 0x4dcc, 0x4ea1, 0x4d9a, 0x4dac, 0x4d91, 0x4e2b, 0x4daf, 0x4d8d, 0x4dc6, 0x4e1f, 0x4e0e, 0x4e23, 0x4d57, 0x4e3b, 0x4e3d, 0x4e32, 0x4e66, 0x4e1f, 0x4da7, 0x4e4d, 0x4d47, 0x4da1, 0x4d69, 0x4d6f, 0x4df5, 0x4e0b, 0x4e09, 0x4d7c, 0x4e41, 0x4e09, 0x4e4f, 0x4db3, 0x4df9, 0x4e6a, 0x4de9, 0x4f3e, 0x4e2d, 0x4da0, 0x4e44, 0x4e1a, 0x4df6, 0x4dfc, 0x4d91, 0x4d48, 0x4dcf, 0x4e23, 0x4eb4, 0x4ce1, 0x4e40, 0x4d7d, 0x4da5, 0x4e55, 0x4e34, 0x4e67, 0x4ea2, 0x4e48, 0x4db5, 0x4e25, 0x4e0b, 0x4e1a, 0x4dc4, 0x4e27, 0x4df3, 0x4de6, 0x4e31, 0x4e6f, 0x4de8, 0x4d85, 0x4e70, 0x4d69, 0x4dd9, 0x4de8, 0x4d18, 0x4da7, 0x4e04, 0x4dd3, 0x4e2c, 0x4e3d, 0x4e23, 0x4dd6, 0x4dd2, +0x4e0b, 0x4de2, 0x4e76, 0x4dc3, 0x4e4c, 0x4da5, 0x4e8f, 0x4ec5, 0x4e4d, 0x4f7d, 0x4df4, 0x4e19, 0x4efc, 0x4dc4, 0x4de0, 0x4dd8, 0x4ec5, 0x4dc9, 0x4dd7, 0x4e2b, 0x4e79, 0x4d8d, 0x4e5a, 0x4daa, 0x4e09, 0x4e3f, 0x4e7d, 0x4d99, 0x4e50, 0x4ed9, 0x4ec7, 0x4e5b, 0x4e31, 0x4e6d, 0x4ea8, 0x4e52, 0x4e4a, 0x4dfa, 0x4d61, 0x4e28, 0x4dfa, 0x4e30, 0x4dbd, 0x4ebd, 0x4e1c, 0x4f17, 0x4dad, 0x4e34, 0x4e90, 0x4dd8, 0x4f2e, 0x4e40, 0x4d4b, 0x4e2a, 0x4d89, 0x4deb, 0x4e42, 0x4de8, 0x4d63, 0x4e29, 0x4e46, 0x4f35, 0x4dd4, 0x4e25, 0x4d5f, 0x4e3a, 0x4ee4, 0x4e5b, 0x4e97, 0x4ea5, 0x4e51, 0x4e34, 0x4e6b, 0x4e53, 0x4e7a, 0x4e14, 0x4e12, 0x4e0e, 0x4df0, 0x4e0d, 0x4ebc, 0x4de5, 0x4dbb, 0x4ead, 0x4df9, 0x4e62, 0x4e34, 0x4d91, 0x4e53, 0x4ec3, 0x4e2a, 0x4e18, 0x4e5c, 0x4eac, 0x4e3c, 0x4e1a, +0x4db4, 0x4ded, 0x4e56, 0x4dd8, 0x4dd5, 0x4e20, 0x4f02, 0x4f27, 0x4e56, 0x4f17, 0x4e18, 0x4e35, 0x4f47, 0x4e28, 0x4e4c, 0x4e26, 0x4e8c, 0x4db7, 0x4dab, 0x4e2b, 0x4e62, 0x4de7, 0x4e47, 0x4d76, 0x4dd3, 0x4e32, 0x4e41, 0x4d9b, 0x4e36, 0x4ee1, 0x4eda, 0x4e4e, 0x4e46, 0x4e28, 0x4e76, 0x4e65, 0x4df2, 0x4dd6, 0x4dc5, 0x4e0c, 0x4e02, 0x4da9, 0x4da7, 0x4eb1, 0x4e0c, 0x4e9c, 0x4db8, 0x4e4b, 0x4ea5, 0x4dca, 0x4ea0, 0x4e03, 0x4d89, 0x4e30, 0x4da8, 0x4e2f, 0x4e4f, 0x4e24, 0x4dce, 0x4e2a, 0x4e77, 0x4f06, 0x4d80, 0x4e7e, 0x4d88, 0x4df1, 0x4e6b, 0x4e12, 0x4e4f, 0x4eed, 0x4e20, 0x4e44, 0x4df4, 0x4e38, 0x4e62, 0x4e44, 0x4e3a, 0x4e7d, 0x4e02, 0x4eac, 0x4e74, 0x4e07, 0x4df2, 0x4e84, 0x4dfe, 0x4e3a, 0x4e0c, 0x4d86, 0x4e4d, 0x4e72, 0x4dfb, 0x4e39, 0x4e61, 0x4e46, 0x4dfd, 0x4e42, +0x4de9, 0x4dbb, 0x4e30, 0x4d6f, 0x4dfa, 0x4d82, 0x4e70, 0x4ec5, 0x4da1, 0x4f06, 0x4e5b, 0x4e47, 0x4e79, 0x4dad, 0x4dd5, 0x4e61, 0x4e44, 0x4dae, 0x4dee, 0x4e4f, 0x4e40, 0x4d9e, 0x4e3e, 0x4ddf, 0x4dab, 0x4e84, 0x4e5e, 0x4da7, 0x4e58, 0x4f0e, 0x4e10, 0x4e42, 0x4e18, 0x4e24, 0x4e7c, 0x4e08, 0x4e14, 0x4db7, 0x4db8, 0x4e22, 0x4df6, 0x4e07, 0x4d8b, 0x4ebc, 0x4db7, 0x4eb3, 0x4d91, 0x4d9e, 0x4e45, 0x4db8, 0x4ed5, 0x4dc6, 0x4db4, 0x4da1, 0x4d70, 0x4e4c, 0x4e72, 0x4d8a, 0x4dc9, 0x4d7f, 0x4e1d, 0x4f30, 0x4d7c, 0x4e93, 0x4dd2, 0x4de4, 0x4e93, 0x4e72, 0x4e34, 0x4f3d, 0x4e42, 0x4de7, 0x4e76, 0x4df4, 0x4eae, 0x4df6, 0x4e2b, 0x4e50, 0x4e4b, 0x4e66, 0x4e63, 0x4de2, 0x4de1, 0x4e80, 0x4d96, 0x4dd7, 0x4dee, 0x4ce7, 0x4d9a, 0x4e60, 0x4dc3, 0x4e68, 0x4e4f, 0x4e2d, 0x4e06, 0x4e31, +0x4e00, 0x4e5b, 0x4e77, 0x4dda, 0x4e1a, 0x4dee, 0x4e83, 0x4f15, 0x4e59, 0x4f9a, 0x4e31, 0x4e60, 0x4f31, 0x4e94, 0x4df9, 0x4e36, 0x4eaf, 0x4e48, 0x4dd9, 0x4e49, 0x4e2c, 0x4e35, 0x4ec4, 0x4e48, 0x4e46, 0x4e24, 0x4e95, 0x4dbc, 0x4edf, 0x4f2e, 0x4eeb, 0x4e2f, 0x4e0d, 0x4e31, 0x4ef6, 0x4e75, 0x4dd4, 0x4dd9, 0x4d8f, 0x4e1f, 0x4e09, 0x4dc8, 0x4dfd, 0x4ef2, 0x4e8f, 0x4ed0, 0x4de5, 0x4e12, 0x4ebd, 0x4df4, 0x4ece, 0x4dda, 0x4d36, 0x4e4e, 0x4e0d, 0x4e28, 0x4ead, 0x4e24, 0x4df9, 0x4e79, 0x4eae, 0x4f04, 0x4deb, 0x4e71, 0x4d7e, 0x4e7b, 0x4e6d, 0x4ee2, 0x4e66, 0x4f2b, 0x4e6f, 0x4df6, 0x4ec0, 0x4e28, 0x4e7a, 0x4e28, 0x4e28, 0x4e4e, 0x4e66, 0x4ef7, 0x4ed3, 0x4deb, 0x4e05, 0x4eb3, 0x4dd9, 0x4e88, 0x4e61, 0x4dfd, 0x4e3b, 0x4e89, 0x4e3a, 0x4e50, 0x4ec6, 0x4e51, 0x4e3f, 0x4de0, +0x4dcf, 0x4e18, 0x4e1c, 0x4db7, 0x4e2e, 0x4e1f, 0x4e65, 0x4f10, 0x4dc9, 0x4fb4, 0x4e91, 0x4e63, 0x4f7c, 0x4e56, 0x4e23, 0x4e0d, 0x4e8d, 0x4dea, 0x4db7, 0x4e18, 0x4e14, 0x4da8, 0x4e1e, 0x4d71, 0x4df0, 0x4e35, 0x4e39, 0x4dec, 0x4e2a, 0x4f10, 0x4e78, 0x4e50, 0x4e31, 0x4e77, 0x4f16, 0x4dca, 0x4d9c, 0x4e1c, 0x4da1, 0x4e11, 0x4e25, 0x4e03, 0x4d87, 0x4ecf, 0x4e2a, 0x4ec7, 0x4d9b, 0x4e44, 0x4e78, 0x4dc2, 0x4f13, 0x4e08, 0x4d85, 0x4ddc, 0x4dd4, 0x4db3, 0x4e2e, 0x4e26, 0x4df4, 0x4e2e, 0x4e60, 0x4f22, 0x4d9d, 0x4ebb, 0x4d96, 0x4e65, 0x4e39, 0x4e4b, 0x4e0f, 0x4ee2, 0x4e96, 0x4dd0, 0x4e47, 0x4e26, 0x4e9e, 0x4e32, 0x4dfa, 0x4e81, 0x4e39, 0x4e73, 0x4ec3, 0x4d8e, 0x4dfe, 0x4e9d, 0x4ded, 0x4e43, 0x4ddb, 0x4d85, 0x4e00, 0x4e59, 0x4def, 0x4e65, 0x4e9c, 0x4e31, 0x4df9, 0x4dd1, +0x4d16, 0x4d87, 0x4e0a, 0x4d67, 0x4dfb, 0x4d49, 0x4daa, 0x4e26, 0x4d51, 0x4e60, 0x4d6f, 0x4d77, 0x4eb9, 0x4da7, 0x4d87, 0x4d9f, 0x4ddd, 0x4d9e, 0x4d4e, 0x4dc1, 0x4dc3, 0x4d44, 0x4d6b, 0x4d53, 0x4d48, 0x4d3f, 0x4ddb, 0x4d6f, 0x4db5, 0x4de9, 0x4dfc, 0x4ddb, 0x4de2, 0x4d7e, 0x4e02, 0x4d6f, 0x4d80, 0x4d13, 0x4d1b, 0x4d08, 0x4dc7, 0x4d52, 0x4d7f, 0x4d8b, 0x4db3, 0x4dfe, 0x4d24, 0x4d12, 0x4dd6, 0x4d8c, 0x4e24, 0x4d61, 0x4d12, 0x4dcd, 0x4d2d, 0x4d83, 0x4db3, 0x4dc8, 0x4d3f, 0x4dd5, 0x4d9e, 0x4e44, 0x4d09, 0x4dbc, 0x4d01, 0x4d29, 0x4d96, 0x4d7d, 0x4dd3, 0x4e10, 0x4d50, 0x4dd2, 0x4d5d, 0x4da8, 0x4dac, 0x4d98, 0x4d92, 0x4d5f, 0x4d9a, 0x4de5, 0x4dcd, 0x4da5, 0x4d6a, 0x4dd6, 0x4d0c, 0x4d65, 0x4d4c, 0x4d42, 0x4dd3, 0x4dbd, 0x4db7, 0x4d89, 0x4dcd, 0x4de3, 0x4d99, 0x4d64, +0x4cf5, 0x4d4a, 0x4dd3, 0x4d03, 0x4d77, 0x4d6c, 0x4db3, 0x4e28, 0x4d32, 0x4e34, 0x4d68, 0x4d9a, 0x4dad, 0x4db7, 0x4dad, 0x4d6d, 0x4e1e, 0x4d30, 0x4d3d, 0x4d9d, 0x4df3, 0x4d29, 0x4d33, 0x4ce2, 0x4d74, 0x4d67, 0x4d9d, 0x4d11, 0x4dca, 0x4e34, 0x4d92, 0x4dca, 0x4d8c, 0x4d33, 0x4da0, 0x4db5, 0x4d3b, 0x4d32, 0x4d0f, 0x4d4f, 0x4cf7, 0x4da4, 0x4d97, 0x4e28, 0x4d40, 0x4d7d, 0x4d00, 0x4d56, 0x4e0a, 0x4cc8, 0x4e0d, 0x4d08, 0x4d21, 0x4d52, 0x4cce, 0x4d5a, 0x4de3, 0x4ced, 0x4ced, 0x4db9, 0x4dbd, 0x4e16, 0x4cf5, 0x4da1, 0x4d57, 0x4d4f, 0x4ddc, 0x4daf, 0x4dfa, 0x4db2, 0x4e26, 0x4d1c, 0x4d8a, 0x4d31, 0x4d88, 0x4cd3, 0x4da8, 0x4dac, 0x4d50, 0x4d91, 0x4d76, 0x4d56, 0x4d5b, 0x4dab, 0x4d56, 0x4d93, 0x4d6f, 0x4cef, 0x4d8e, 0x4ddb, 0x4d6a, 0x4dd8, 0x4db3, 0x4dff, 0x4d77, 0x4d73, +0x4e14, 0x4df9, 0x4e48, 0x4dc5, 0x4dbd, 0x4dcc, 0x4e10, 0x4ec3, 0x4df1, 0x4f5c, 0x4e1c, 0x4e5d, 0x4edc, 0x4df1, 0x4dc0, 0x4e2d, 0x4e62, 0x4de3, 0x4d61, 0x4e39, 0x4e3b, 0x4d79, 0x4e3f, 0x4d76, 0x4daf, 0x4dc8, 0x4e42, 0x4d8d, 0x4e79, 0x4f05, 0x4e44, 0x4e3d, 0x4dce, 0x4e92, 0x4eb7, 0x4df7, 0x4dc4, 0x4db0, 0x4da3, 0x4df3, 0x4db6, 0x4dd6, 0x4dc5, 0x4ea3, 0x4d9e, 0x4ec8, 0x4d7c, 0x4e22, 0x4ee2, 0x4d92, 0x4f08, 0x4db2, 0x4dc3, 0x4df6, 0x4d31, 0x4e50, 0x4e8f, 0x4dd7, 0x4d6e, 0x4e1a, 0x4e86, 0x4f14, 0x4d99, 0x4e85, 0x4d54, 0x4e46, 0x4e26, 0x4e60, 0x4e4b, 0x4f02, 0x4e22, 0x4e04, 0x4e08, 0x4e0e, 0x4e68, 0x4e4a, 0x4de0, 0x4e5a, 0x4e36, 0x4e3d, 0x4e54, 0x4de2, 0x4df7, 0x4e14, 0x4dc6, 0x4e2f, 0x4e56, 0x4d70, 0x4dd2, 0x4e2a, 0x4e35, 0x4e7f, 0x4e7c, 0x4e20, 0x4db4, 0x4d7e, +0x4dc6, 0x4dc2, 0x4e0e, 0x4d9c, 0x4df6, 0x4df8, 0x4dfa, 0x4eb0, 0x4dbc, 0x4ee4, 0x4df7, 0x4da7, 0x4e6e, 0x4d80, 0x4dd3, 0x4dcf, 0x4e02, 0x4d96, 0x4df7, 0x4e57, 0x4e54, 0x4db1, 0x4e11, 0x4d54, 0x4e15, 0x4de1, 0x4e29, 0x4d6c, 0x4dfd, 0x4e7b, 0x4e56, 0x4dfb, 0x4e05, 0x4db1, 0x4e80, 0x4dde, 0x4db5, 0x4d95, 0x4d5e, 0x4de3, 0x4e10, 0x4dea, 0x4d4f, 0x4e65, 0x4dbc, 0x4e8c, 0x4d8d, 0x4ddc, 0x4e2d, 0x4daf, 0x4eb2, 0x4d7d, 0x4d12, 0x4dfc, 0x4d73, 0x4dcf, 0x4e1f, 0x4ddf, 0x4da2, 0x4e58, 0x4e2c, 0x4e98, 0x4d5b, 0x4dec, 0x4d85, 0x4d9f, 0x4de6, 0x4e43, 0x4dca, 0x4e3e, 0x4e6e, 0x4db7, 0x4e2e, 0x4dc1, 0x4dc9, 0x4da4, 0x4dc9, 0x4e02, 0x4df8, 0x4e2f, 0x4e59, 0x4dfe, 0x4d43, 0x4e64, 0x4d80, 0x4ddd, 0x4e15, 0x4d57, 0x4e48, 0x4df3, 0x4dad, 0x4e2f, 0x4e47, 0x4e28, 0x4d94, 0x4db7, +0x4d5f, 0x4d44, 0x4de2, 0x4d6d, 0x4d9b, 0x4d02, 0x4dbe, 0x4e08, 0x4d52, 0x4e16, 0x4d7f, 0x4d66, 0x4e4e, 0x4d55, 0x4d0f, 0x4d7f, 0x4d95, 0x4d6e, 0x4ce8, 0x4dad, 0x4d69, 0x4d42, 0x4dd8, 0x4d33, 0x4d9f, 0x4d61, 0x4dcb, 0x4d43, 0x4dbe, 0x4e12, 0x4dd1, 0x4da1, 0x4d81, 0x4da9, 0x4dff, 0x4d57, 0x4d5b, 0x4cef, 0x4d36, 0x4ccd, 0x4d6a, 0x4d20, 0x4d73, 0x4e30, 0x4d5c, 0x4e02, 0x4d09, 0x4d13, 0x4dee, 0x4d08, 0x4e28, 0x4ce2, 0x4ca5, 0x4d53, 0x4ce4, 0x4d25, 0x4dec, 0x4d44, 0x4d3a, 0x4dc9, 0x4da0, 0x4e0f, 0x4d36, 0x4d80, 0x4c83, 0x4d4c, 0x4d64, 0x4da2, 0x4e08, 0x4e17, 0x4d3f, 0x4d3b, 0x4db3, 0x4d82, 0x4d60, 0x4d87, 0x4d58, 0x4d7a, 0x4d47, 0x4da7, 0x4d24, 0x4d1c, 0x4d2b, 0x4e06, 0x4d16, 0x4dc6, 0x4d87, 0x4cdf, 0x4d70, 0x4db9, 0x4d27, 0x4dc9, 0x4dbb, 0x4d8f, 0x4d3f, 0x4d16, +0x4e12, 0x4e6c, 0x4e94, 0x4e81, 0x4ec0, 0x4e60, 0x4e3b, 0x4f8e, 0x4df8, 0x4f5a, 0x4e88, 0x4e88, 0x4f1c, 0x4e40, 0x4dea, 0x4ddf, 0x4ecb, 0x4e4e, 0x4e15, 0x4e32, 0x4ec9, 0x4dc5, 0x4e88, 0x4dd2, 0x4e51, 0x4e38, 0x4e88, 0x4e03, 0x4e75, 0x4ef6, 0x4eda, 0x4e88, 0x4ea8, 0x4e77, 0x4ec2, 0x4df3, 0x4e12, 0x4e23, 0x4df5, 0x4e0a, 0x4e86, 0x4e65, 0x4df8, 0x4ede, 0x4e52, 0x4ea9, 0x4da0, 0x4e3d, 0x4f16, 0x4e37, 0x4ee0, 0x4df5, 0x4def, 0x4e7a, 0x4dc7, 0x4e6b, 0x4ea5, 0x4e02, 0x4e52, 0x4e35, 0x4e6f, 0x4f2c, 0x4dd0, 0x4e5d, 0x4e27, 0x4e36, 0x4e9b, 0x4e77, 0x4eaa, 0x4f73, 0x4e60, 0x4dfc, 0x4f07, 0x4e60, 0x4e77, 0x4dfd, 0x4e39, 0x4e7a, 0x4e32, 0x4e65, 0x4e35, 0x4e28, 0x4dfe, 0x4eb3, 0x4e20, 0x4e8f, 0x4e7a, 0x4e05, 0x4e5b, 0x4eca, 0x4dcf, 0x4ec3, 0x4eee, 0x4ea4, 0x4e05, 0x4ded, +0x4e2a, 0x4e81, 0x4e68, 0x4de3, 0x4e93, 0x4dc5, 0x4e6a, 0x4f2a, 0x4df5, 0x4fa3, 0x4e54, 0x4e50, 0x4edf, 0x4e46, 0x4e9a, 0x4e35, 0x4ef8, 0x4e70, 0x4da1, 0x4e3d, 0x4e71, 0x4dfb, 0x4e64, 0x4d8e, 0x4e2f, 0x4e3d, 0x4e51, 0x4dd6, 0x4ecd, 0x4ea0, 0x4ecf, 0x4eba, 0x4e64, 0x4e65, 0x4ed8, 0x4dfd, 0x4e11, 0x4e1a, 0x4dc1, 0x4e5c, 0x4e66, 0x4e31, 0x4e6d, 0x4efa, 0x4dfe, 0x4f06, 0x4dd9, 0x4e0a, 0x4eed, 0x4df1, 0x4ef5, 0x4e12, 0x4dc6, 0x4e56, 0x4e31, 0x4dec, 0x4e66, 0x4db6, 0x4d8c, 0x4e40, 0x4e38, 0x4f37, 0x4dc4, 0x4ebe, 0x4e42, 0x4de6, 0x4e8b, 0x4eab, 0x4e84, 0x4eee, 0x4ec7, 0x4e13, 0x4e45, 0x4e7c, 0x4ea5, 0x4e72, 0x4e7f, 0x4e91, 0x4e53, 0x4e74, 0x4e5f, 0x4e41, 0x4e9c, 0x4ea3, 0x4da1, 0x4e06, 0x4e0b, 0x4dce, 0x4e5a, 0x4ed8, 0x4deb, 0x4e5c, 0x4ecd, 0x4eaf, 0x4e17, 0x4dc0, +0x4de1, 0x4df5, 0x4e47, 0x4de4, 0x4e55, 0x4de7, 0x4e23, 0x4f36, 0x4e02, 0x4f54, 0x4e1d, 0x4e77, 0x4ef4, 0x4e3a, 0x4e11, 0x4e2f, 0x4ef2, 0x4dd7, 0x4d78, 0x4e6f, 0x4e4b, 0x4da1, 0x4dc0, 0x4df2, 0x4de6, 0x4e31, 0x4ed7, 0x4e12, 0x4e15, 0x4eba, 0x4e06, 0x4e6e, 0x4e1e, 0x4e11, 0x4e69, 0x4dc7, 0x4df4, 0x4d9a, 0x4dbb, 0x4e16, 0x4dd8, 0x4e22, 0x4dad, 0x4e5c, 0x4df8, 0x4ea6, 0x4d9d, 0x4e12, 0x4ec1, 0x4dd9, 0x4f1a, 0x4ded, 0x4d6c, 0x4de3, 0x4dc5, 0x4e41, 0x4e66, 0x4d96, 0x4def, 0x4e15, 0x4e17, 0x4ec8, 0x4da2, 0x4e8e, 0x4de3, 0x4de2, 0x4ead, 0x4e9c, 0x4e8d, 0x4f0e, 0x4e35, 0x4e42, 0x4ebd, 0x4e0f, 0x4e8e, 0x4e1b, 0x4e29, 0x4e37, 0x4e5f, 0x4e33, 0x4e74, 0x4e10, 0x4dc6, 0x4e6f, 0x4dd4, 0x4e07, 0x4e8f, 0x4d7c, 0x4da2, 0x4ea6, 0x4ddd, 0x4ea0, 0x4edc, 0x4e44, 0x4e3f, 0x4dcf, +0x4d64, 0x4dbc, 0x4e2a, 0x4d7b, 0x4e0c, 0x4d70, 0x4d5c, 0x4e7f, 0x4d22, 0x4e82, 0x4dc7, 0x4e34, 0x4eb8, 0x4d43, 0x4d93, 0x4db4, 0x4e62, 0x4d6c, 0x4d5d, 0x4df9, 0x4daf, 0x4d4c, 0x4d4d, 0x4d5e, 0x4dc0, 0x4d68, 0x4e15, 0x4d39, 0x4e00, 0x4e8d, 0x4df5, 0x4e3d, 0x4dbd, 0x4d3d, 0x4ddc, 0x4d68, 0x4d55, 0x4d32, 0x4cec, 0x4d58, 0x4d8d, 0x4dcc, 0x4d55, 0x4ded, 0x4dfd, 0x4e14, 0x4d4e, 0x4d69, 0x4e63, 0x4d60, 0x4e56, 0x4db8, 0x4d40, 0x4daf, 0x4d4b, 0x4db7, 0x4d88, 0x4d57, 0x4d78, 0x4df0, 0x4ddf, 0x4ea7, 0x4d74, 0x4ddf, 0x4d1f, 0x4d45, 0x4dda, 0x4dc0, 0x4e11, 0x4e5e, 0x4de0, 0x4dfb, 0x4db1, 0x4dbe, 0x4df9, 0x4df0, 0x4db3, 0x4de6, 0x4d9c, 0x4e03, 0x4e08, 0x4d73, 0x4d70, 0x4df1, 0x4dca, 0x4dc5, 0x4d97, 0x4d15, 0x4db0, 0x4e61, 0x4d67, 0x4dc5, 0x4e20, 0x4d85, 0x4d6b, 0x4d62, +0x4d80, 0x4df6, 0x4e6f, 0x4d6a, 0x4e44, 0x4dc4, 0x4e6c, 0x4e7a, 0x4dd6, 0x4f7d, 0x4dda, 0x4dc4, 0x4f2e, 0x4db6, 0x4e17, 0x4ddb, 0x4e6f, 0x4dae, 0x4d64, 0x4dd7, 0x4e04, 0x4dba, 0x4dc3, 0x4de4, 0x4e27, 0x4e3a, 0x4e65, 0x4d7c, 0x4e06, 0x4ead, 0x4dfa, 0x4e4d, 0x4df1, 0x4e0d, 0x4eb9, 0x4dd6, 0x4e4e, 0x4d75, 0x4dca, 0x4df0, 0x4dde, 0x4e13, 0x4de3, 0x4ef2, 0x4dfe, 0x4e7e, 0x4d4a, 0x4dd2, 0x4e5c, 0x4dac, 0x4e79, 0x4dce, 0x4d0a, 0x4e15, 0x4dfc, 0x4df1, 0x4e77, 0x4db2, 0x4d70, 0x4e5c, 0x4e18, 0x4ee6, 0x4db1, 0x4e6b, 0x4d81, 0x4e15, 0x4e18, 0x4e15, 0x4dff, 0x4e9d, 0x4e3a, 0x4e0b, 0x4e75, 0x4dee, 0x4e31, 0x4e0e, 0x4de0, 0x4e45, 0x4e2c, 0x4e78, 0x4e7c, 0x4da5, 0x4dad, 0x4edc, 0x4df9, 0x4e0d, 0x4e39, 0x4d71, 0x4d8a, 0x4e50, 0x4dd8, 0x4e38, 0x4e5e, 0x4ddd, 0x4e18, 0x4d7e, +0x4dd4, 0x4df2, 0x4e8f, 0x4dd6, 0x4e08, 0x4dc1, 0x4e1b, 0x4f76, 0x4dea, 0x4f19, 0x4e8a, 0x4eb4, 0x4f5a, 0x4de2, 0x4df5, 0x4e7d, 0x4e87, 0x4e40, 0x4db8, 0x4ea9, 0x4e79, 0x4da2, 0x4e33, 0x4d4a, 0x4e4b, 0x4e18, 0x4e44, 0x4e00, 0x4e51, 0x4e9f, 0x4e5d, 0x4e73, 0x4e09, 0x4e51, 0x4e4f, 0x4e52, 0x4ddf, 0x4dc7, 0x4dd6, 0x4e21, 0x4e2f, 0x4e62, 0x4ddb, 0x4ea4, 0x4e07, 0x4eb9, 0x4ded, 0x4dcc, 0x4ed5, 0x4dcd, 0x4ebf, 0x4dce, 0x4d8e, 0x4dd4, 0x4d90, 0x4e36, 0x4e69, 0x4de2, 0x4d98, 0x4e4c, 0x4e10, 0x4ecc, 0x4d5d, 0x4ebc, 0x4dd7, 0x4e00, 0x4e78, 0x4e8f, 0x4ea8, 0x4ee1, 0x4e82, 0x4e2e, 0x4e0b, 0x4e1d, 0x4e94, 0x4e36, 0x4dff, 0x4e1d, 0x4e2d, 0x4dd3, 0x4e2e, 0x4e02, 0x4def, 0x4e83, 0x4dc1, 0x4e30, 0x4e18, 0x4dc8, 0x4dcc, 0x4e7b, 0x4deb, 0x4e91, 0x4e53, 0x4ead, 0x4e39, 0x4de7, +0x4db6, 0x4dde, 0x4e7e, 0x4d9c, 0x4e4d, 0x4d7f, 0x4dd3, 0x4e1d, 0x4dee, 0x4efe, 0x4e96, 0x4e29, 0x4e9f, 0x4e12, 0x4dfb, 0x4e03, 0x4e55, 0x4e4d, 0x4d8e, 0x4df4, 0x4e23, 0x4dd3, 0x4dbf, 0x4dd2, 0x4e6f, 0x4dab, 0x4e07, 0x4e0d, 0x4e82, 0x4e89, 0x4e4c, 0x4e3f, 0x4e3b, 0x4e64, 0x4e44, 0x4e2d, 0x4db1, 0x4dc5, 0x4db7, 0x4dcf, 0x4e33, 0x4e54, 0x4e27, 0x4e12, 0x4e13, 0x4e28, 0x4d7e, 0x4df7, 0x4eb3, 0x4df0, 0x4eda, 0x4df1, 0x4d04, 0x4df4, 0x4d89, 0x4dfb, 0x4e5b, 0x4dd4, 0x4d9e, 0x4e56, 0x4e47, 0x4ec2, 0x4d55, 0x4e0c, 0x4d56, 0x4e2c, 0x4d9b, 0x4e3c, 0x4e5b, 0x4ed3, 0x4e76, 0x4de1, 0x4e24, 0x4e31, 0x4e21, 0x4dec, 0x4dfe, 0x4e35, 0x4e3a, 0x4e7f, 0x4e71, 0x4dc9, 0x4e07, 0x4ea7, 0x4dbf, 0x4e4d, 0x4e21, 0x4d4e, 0x4dff, 0x4e44, 0x4dbc, 0x4e34, 0x4e63, 0x4e9d, 0x4ddd, 0x4e09, +0x4d5f, 0x4d52, 0x4e04, 0x4d4d, 0x4dc9, 0x4d7b, 0x4e22, 0x4e97, 0x4dc6, 0x4ec4, 0x4e0e, 0x4e14, 0x4ea4, 0x4d64, 0x4dbc, 0x4df1, 0x4e04, 0x4d9f, 0x4db5, 0x4dcb, 0x4dbc, 0x4d69, 0x4dc0, 0x4da8, 0x4e3e, 0x4e16, 0x4e73, 0x4d5d, 0x4e6c, 0x4eb7, 0x4e6f, 0x4de6, 0x4dc8, 0x4e02, 0x4e9e, 0x4d83, 0x4d8c, 0x4d6f, 0x4d25, 0x4dfd, 0x4e12, 0x4d9a, 0x4d58, 0x4e95, 0x4de8, 0x4e74, 0x4d50, 0x4df8, 0x4ddf, 0x4e0e, 0x4eb7, 0x4de1, 0x4d5f, 0x4d95, 0x4d8a, 0x4dcf, 0x4e35, 0x4dc7, 0x4d95, 0x4db6, 0x4db7, 0x4f00, 0x4d61, 0x4dc9, 0x4daa, 0x4daf, 0x4e2e, 0x4e12, 0x4e12, 0x4ed4, 0x4e2f, 0x4db5, 0x4e30, 0x4dfc, 0x4e4e, 0x4e39, 0x4e06, 0x4e30, 0x4ddd, 0x4e11, 0x4e6b, 0x4dc2, 0x4d96, 0x4e6a, 0x4d42, 0x4e30, 0x4e1f, 0x4d21, 0x4de8, 0x4e8c, 0x4dbc, 0x4dcc, 0x4e03, 0x4e61, 0x4df3, 0x4e23, +0x4d73, 0x4d6b, 0x4e65, 0x4d83, 0x4e07, 0x4de4, 0x4e20, 0x4ecc, 0x4d8e, 0x4eca, 0x4ddf, 0x4dc7, 0x4ead, 0x4d93, 0x4d81, 0x4df7, 0x4e5a, 0x4dac, 0x4d5e, 0x4dd7, 0x4e0c, 0x4d53, 0x4db1, 0x4cc3, 0x4e09, 0x4dac, 0x4e44, 0x4d97, 0x4df3, 0x4e6c, 0x4e2d, 0x4da1, 0x4df0, 0x4df1, 0x4e35, 0x4d86, 0x4d8f, 0x4da9, 0x4ce6, 0x4d92, 0x4e33, 0x4e02, 0x4d57, 0x4e1e, 0x4d6f, 0x4e9b, 0x4cf6, 0x4db4, 0x4df2, 0x4e0a, 0x4e79, 0x4db6, 0x4d5e, 0x4d87, 0x4d94, 0x4d98, 0x4dd8, 0x4d9f, 0x4d9b, 0x4e07, 0x4db5, 0x4e90, 0x4d8f, 0x4e04, 0x4d37, 0x4df3, 0x4dbb, 0x4e0b, 0x4e46, 0x4e72, 0x4e38, 0x4d88, 0x4de0, 0x4dd0, 0x4e34, 0x4e1c, 0x4ddc, 0x4de9, 0x4df7, 0x4dc5, 0x4e26, 0x4dcb, 0x4dc6, 0x4e10, 0x4db4, 0x4dda, 0x4e2c, 0x4d42, 0x4dda, 0x4e34, 0x4df9, 0x4df6, 0x4e4c, 0x4e60, 0x4dce, 0x4da1, +0x4dfb, 0x4ddc, 0x4dfc, 0x4df6, 0x4e60, 0x4e79, 0x4ee5, 0x4f0d, 0x4e50, 0x4f64, 0x4e51, 0x4e14, 0x4f68, 0x4e42, 0x4e0e, 0x4dea, 0x4e93, 0x4e28, 0x4dd7, 0x4e3a, 0x4e8b, 0x4d3a, 0x4e6a, 0x4dd7, 0x4e04, 0x4e77, 0x4e54, 0x4de5, 0x4e6e, 0x4ead, 0x4e4d, 0x4ed8, 0x4e36, 0x4e13, 0x4ef5, 0x4e57, 0x4e79, 0x4df7, 0x4dca, 0x4dd7, 0x4dc8, 0x4e46, 0x4df8, 0x4ea0, 0x4e57, 0x4eab, 0x4dbd, 0x4de8, 0x4ebc, 0x4ddd, 0x4f0b, 0x4e75, 0x4d8e, 0x4e2c, 0x4d68, 0x4e38, 0x4e5d, 0x4de2, 0x4e27, 0x4e44, 0x4e80, 0x4f24, 0x4db1, 0x4e59, 0x4dcb, 0x4df5, 0x4e8c, 0x4e7c, 0x4ec9, 0x4eca, 0x4e37, 0x4e6b, 0x4e74, 0x4e1e, 0x4ebb, 0x4e4e, 0x4e39, 0x4e60, 0x4e2e, 0x4e6a, 0x4ebd, 0x4ddd, 0x4dd9, 0x4e88, 0x4db2, 0x4e21, 0x4de8, 0x4daf, 0x4e9e, 0x4e7e, 0x4e1d, 0x4e78, 0x4e9e, 0x4e69, 0x4e48, 0x4df0, +0x4e18, 0x4e15, 0x4e0d, 0x4d9d, 0x4de2, 0x4db6, 0x4e03, 0x4e90, 0x4db2, 0x4f64, 0x4e3c, 0x4e44, 0x4f07, 0x4e61, 0x4e19, 0x4e2a, 0x4e27, 0x4dea, 0x4dda, 0x4e0d, 0x4e2a, 0x4d6f, 0x4df2, 0x4dae, 0x4e27, 0x4e12, 0x4e69, 0x4d56, 0x4e61, 0x4ec9, 0x4e75, 0x4dfb, 0x4df1, 0x4e4b, 0x4e66, 0x4e00, 0x4df6, 0x4dd5, 0x4d9c, 0x4dd9, 0x4dc1, 0x4e0f, 0x4dff, 0x4e66, 0x4e12, 0x4e5e, 0x4dc5, 0x4e06, 0x4ea9, 0x4d9a, 0x4edd, 0x4d9c, 0x4d79, 0x4dfa, 0x4dec, 0x4de7, 0x4e23, 0x4dde, 0x4d74, 0x4e25, 0x4e5e, 0x4ed2, 0x4dbe, 0x4eb2, 0x4d68, 0x4df8, 0x4e4e, 0x4e5f, 0x4e72, 0x4eae, 0x4e68, 0x4d79, 0x4e1b, 0x4df4, 0x4e5c, 0x4e0b, 0x4e38, 0x4e14, 0x4e30, 0x4e1e, 0x4e6e, 0x4da5, 0x4e15, 0x4e83, 0x4d85, 0x4e05, 0x4dc2, 0x4d58, 0x4dfe, 0x4e6a, 0x4dbd, 0x4df2, 0x4e78, 0x4e34, 0x4e58, 0x4de8, +0x4ed2, 0x4e61, 0x4e8f, 0x4ebf, 0x4ef5, 0x4e4a, 0x4ed0, 0x4f75, 0x4dcc, 0x500b, 0x4e3a, 0x4ed7, 0x4f6a, 0x4e6b, 0x4e3d, 0x4e69, 0x4ee1, 0x4ef6, 0x4de0, 0x4e8a, 0x4ea9, 0x4dd9, 0x4e98, 0x4e63, 0x4e1a, 0x4eb5, 0x4f27, 0x4dfb, 0x4eec, 0x4f05, 0x4ee4, 0x4ec3, 0x4ede, 0x4ed6, 0x4eee, 0x4e11, 0x4e56, 0x4dc8, 0x4e3e, 0x4e6d, 0x4ebb, 0x4e82, 0x4e5e, 0x4f27, 0x4ec1, 0x4f29, 0x4dc5, 0x4e07, 0x4f4b, 0x4e3a, 0x4f06, 0x4e9b, 0x4e12, 0x4e68, 0x4e1b, 0x4e6c, 0x4ec0, 0x4e53, 0x4dd4, 0x4e71, 0x4ea6, 0x4f59, 0x4d84, 0x4ed9, 0x4dd2, 0x4e56, 0x4ecf, 0x4e41, 0x4e5b, 0x4f78, 0x4eaa, 0x4ee4, 0x4ec2, 0x4e0f, 0x4ea8, 0x4e99, 0x4e0f, 0x4ed0, 0x4e36, 0x4e7e, 0x4ea4, 0x4e09, 0x4ea2, 0x4ed1, 0x4e45, 0x4e2d, 0x4e7f, 0x4dfe, 0x4ea7, 0x4f08, 0x4e5b, 0x4f1e, 0x4f1b, 0x4e8d, 0x4e63, 0x4e1f, +0x4d50, 0x4d58, 0x4dc6, 0x4d63, 0x4d51, 0x4cf4, 0x4dea, 0x4e93, 0x4d63, 0x4e41, 0x4d61, 0x4dd5, 0x4e3a, 0x4d60, 0x4dd1, 0x4d9f, 0x4e21, 0x4d1d, 0x4d52, 0x4d9e, 0x4df7, 0x4d53, 0x4d8c, 0x4d57, 0x4dad, 0x4d52, 0x4ddb, 0x4ccb, 0x4e0b, 0x4e33, 0x4e0d, 0x4e17, 0x4d8e, 0x4d64, 0x4e15, 0x4d7d, 0x4db1, 0x4d3c, 0x4d35, 0x4d81, 0x4d5b, 0x4ddf, 0x4d29, 0x4e15, 0x4d2c, 0x4dbe, 0x4ca5, 0x4d96, 0x4dd8, 0x4d8b, 0x4deb, 0x4d1f, 0x4d1e, 0x4d79, 0x4ce2, 0x4d9c, 0x4de9, 0x4d13, 0x4d46, 0x4d99, 0x4ddf, 0x4e32, 0x4d14, 0x4dae, 0x4d49, 0x4d7d, 0x4dd3, 0x4dc0, 0x4e07, 0x4e17, 0x4de2, 0x4d3c, 0x4dcc, 0x4dd0, 0x4dff, 0x4d24, 0x4d49, 0x4dc4, 0x4d5e, 0x4d94, 0x4e1d, 0x4d76, 0x4d29, 0x4dce, 0x4d50, 0x4d84, 0x4d8a, 0x4d39, 0x4dcc, 0x4dd3, 0x4d6b, 0x4de9, 0x4e08, 0x4d81, 0x4d94, 0x4d8a, +0x4d9f, 0x4e04, 0x4e12, 0x4d91, 0x4df5, 0x4d8b, 0x4dbb, 0x4ea8, 0x4da5, 0x4edd, 0x4da2, 0x4da1, 0x4e67, 0x4dae, 0x4db6, 0x4df3, 0x4e3c, 0x4d05, 0x4d7d, 0x4dcd, 0x4dbd, 0x4d86, 0x4da9, 0x4d85, 0x4dc9, 0x4daa, 0x4e3d, 0x4d34, 0x4dfa, 0x4e65, 0x4e16, 0x4ddf, 0x4dae, 0x4d7e, 0x4e6f, 0x4d42, 0x4d8c, 0x4d5c, 0x4d39, 0x4e04, 0x4d90, 0x4da6, 0x4d72, 0x4e42, 0x4e03, 0x4e15, 0x4d9b, 0x4dc6, 0x4e18, 0x4d68, 0x4e3e, 0x4da7, 0x4cfb, 0x4db9, 0x4db4, 0x4d47, 0x4dac, 0x4d0d, 0x4d91, 0x4de7, 0x4dcc, 0x4ece, 0x4d39, 0x4ddb, 0x4d3f, 0x4d17, 0x4e3d, 0x4e87, 0x4da9, 0x4e9d, 0x4df6, 0x4dba, 0x4de3, 0x4d73, 0x4ddf, 0x4d6c, 0x4df5, 0x4dc4, 0x4d89, 0x4dac, 0x4e55, 0x4d8d, 0x4d29, 0x4e7c, 0x4d3e, 0x4dc3, 0x4dc6, 0x4d16, 0x4db1, 0x4db6, 0x4d2e, 0x4e10, 0x4e8f, 0x4e53, 0x4def, 0x4d93, +0x4d7c, 0x4dc3, 0x4e09, 0x4e1d, 0x4e57, 0x4dfd, 0x4ea6, 0x4f29, 0x4e11, 0x4f37, 0x4e26, 0x4e3f, 0x4f1f, 0x4e26, 0x4e37, 0x4e0b, 0x4ea0, 0x4e58, 0x4d9f, 0x4df1, 0x4e40, 0x4d80, 0x4e42, 0x4da5, 0x4e6b, 0x4e59, 0x4e1a, 0x4dc2, 0x4e18, 0x4eae, 0x4eb2, 0x4e4e, 0x4e46, 0x4e70, 0x4e78, 0x4de5, 0x4dfb, 0x4d66, 0x4ddb, 0x4dcf, 0x4de8, 0x4e80, 0x4e25, 0x4efd, 0x4e0a, 0x4e74, 0x4d9c, 0x4e3a, 0x4ec3, 0x4e2a, 0x4ea9, 0x4db9, 0x4d98, 0x4e32, 0x4dfd, 0x4e29, 0x4e8b, 0x4da4, 0x4dda, 0x4e59, 0x4e6d, 0x4f14, 0x4da8, 0x4e73, 0x4e03, 0x4e0e, 0x4e3f, 0x4e4f, 0x4e67, 0x4ece, 0x4e6d, 0x4db3, 0x4e71, 0x4e03, 0x4e4d, 0x4e1d, 0x4e9e, 0x4deb, 0x4dd6, 0x4de6, 0x4ebf, 0x4da2, 0x4e25, 0x4eb3, 0x4dbd, 0x4e42, 0x4e33, 0x4dfa, 0x4e18, 0x4e34, 0x4db7, 0x4e62, 0x4e91, 0x4e55, 0x4e39, 0x4e0e, +0x4e1c, 0x4e0e, 0x4ea5, 0x4dfe, 0x4e42, 0x4e24, 0x4ee6, 0x4f64, 0x4e07, 0x4f49, 0x4e23, 0x4e79, 0x4f00, 0x4e39, 0x4e49, 0x4e64, 0x4efa, 0x4e6b, 0x4dcb, 0x4ebb, 0x4dec, 0x4e02, 0x4e6b, 0x4dad, 0x4e53, 0x4e8d, 0x4e1b, 0x4dbe, 0x4e5f, 0x4f4a, 0x4ea3, 0x4e1b, 0x4e26, 0x4e29, 0x4e9b, 0x4e22, 0x4e06, 0x4e0a, 0x4e12, 0x4dd4, 0x4e83, 0x4e6b, 0x4e03, 0x4ebb, 0x4e0e, 0x4eef, 0x4db8, 0x4de8, 0x4ef8, 0x4dfa, 0x4e70, 0x4dfe, 0x4db4, 0x4e48, 0x4db3, 0x4dd6, 0x4e90, 0x4e0f, 0x4e43, 0x4eb7, 0x4eb4, 0x4f39, 0x4db4, 0x4eea, 0x4dc9, 0x4e4f, 0x4e79, 0x4e82, 0x4e4d, 0x4ebe, 0x4ea0, 0x4e1d, 0x4e88, 0x4e2a, 0x4ea2, 0x4dff, 0x4e4a, 0x4e1e, 0x4e56, 0x4e42, 0x4eee, 0x4e13, 0x4e05, 0x4e8d, 0x4d84, 0x4e5f, 0x4e72, 0x4da9, 0x4e65, 0x4e82, 0x4dd0, 0x4eec, 0x4ebf, 0x4e6d, 0x4e05, 0x4e34, +0x4df7, 0x4df8, 0x4e19, 0x4dc2, 0x4e08, 0x4d96, 0x4e15, 0x4e8b, 0x4dd6, 0x4ee6, 0x4e2a, 0x4e81, 0x4eb0, 0x4dbc, 0x4db3, 0x4dc1, 0x4e4a, 0x4e07, 0x4de6, 0x4e38, 0x4e01, 0x4d73, 0x4de0, 0x4d6b, 0x4e18, 0x4e38, 0x4e4c, 0x4d81, 0x4e65, 0x4efa, 0x4e48, 0x4e20, 0x4e19, 0x4dc1, 0x4e7b, 0x4dd9, 0x4e18, 0x4dd3, 0x4d4c, 0x4ddd, 0x4dc0, 0x4e14, 0x4d8a, 0x4e9f, 0x4dbf, 0x4e45, 0x4d36, 0x4e03, 0x4e7c, 0x4d8b, 0x4e7a, 0x4dc3, 0x4d4d, 0x4dff, 0x4d84, 0x4ddd, 0x4e76, 0x4d7d, 0x4d74, 0x4e02, 0x4e10, 0x4e5f, 0x4d8c, 0x4e26, 0x4d8b, 0x4dd5, 0x4e33, 0x4e0a, 0x4df0, 0x4ee1, 0x4e21, 0x4d9d, 0x4e45, 0x4e22, 0x4e2a, 0x4de6, 0x4e22, 0x4e4c, 0x4de5, 0x4e0e, 0x4e9d, 0x4d29, 0x4d9c, 0x4e5e, 0x4d53, 0x4e15, 0x4e02, 0x4d64, 0x4dd4, 0x4e46, 0x4d64, 0x4e19, 0x4e5f, 0x4e3a, 0x4d78, 0x4db6, +0x4dec, 0x4ddb, 0x4e68, 0x4d9e, 0x4e3c, 0x4e3e, 0x4e41, 0x4f6c, 0x4e24, 0x4f2a, 0x4e2e, 0x4e7c, 0x4f37, 0x4dde, 0x4dd5, 0x4e75, 0x4eb7, 0x4dc9, 0x4dcb, 0x4e36, 0x4e72, 0x4df6, 0x4e52, 0x4db5, 0x4dfa, 0x4e34, 0x4ebf, 0x4dcd, 0x4e14, 0x4edf, 0x4e6b, 0x4e8b, 0x4e41, 0x4e5f, 0x4e82, 0x4dd6, 0x4e0a, 0x4db8, 0x4dc6, 0x4e34, 0x4e16, 0x4eb4, 0x4e02, 0x4ed2, 0x4e2d, 0x4ef5, 0x4dc5, 0x4e36, 0x4eb4, 0x4df0, 0x4f4d, 0x4de8, 0x4dac, 0x4e0a, 0x4d9c, 0x4e45, 0x4e79, 0x4dd1, 0x4db0, 0x4ec1, 0x4dfb, 0x4ee0, 0x4d70, 0x4e88, 0x4df2, 0x4df6, 0x4e3f, 0x4e33, 0x4ef4, 0x4f0b, 0x4e75, 0x4e45, 0x4e05, 0x4d91, 0x4e72, 0x4e1b, 0x4e66, 0x4e32, 0x4dd1, 0x4e14, 0x4e63, 0x4e10, 0x4df1, 0x4ebf, 0x4d89, 0x4e6a, 0x4e7b, 0x4d91, 0x4e3f, 0x4e61, 0x4e31, 0x4e7f, 0x4ddd, 0x4e16, 0x4e2b, 0x4de8, +0x4d4a, 0x4d3f, 0x4d6a, 0x4d6a, 0x4e2b, 0x4d74, 0x4de3, 0x4eb1, 0x4dd9, 0x4e75, 0x4da3, 0x4dde, 0x4e51, 0x4ded, 0x4e0a, 0x4d83, 0x4e72, 0x4dd7, 0x4d43, 0x4d74, 0x4e0c, 0x4da8, 0x4df0, 0x4d54, 0x4df0, 0x4e0a, 0x4e25, 0x4d74, 0x4e0f, 0x4e13, 0x4e18, 0x4e0e, 0x4e0c, 0x4dfa, 0x4e2f, 0x4d82, 0x4dbe, 0x4d6a, 0x4d42, 0x4d8b, 0x4ce1, 0x4dc9, 0x4d63, 0x4e1f, 0x4db1, 0x4e11, 0x4d22, 0x4df3, 0x4e58, 0x4d7d, 0x4ec2, 0x4d84, 0x4d46, 0x4d6e, 0x4d20, 0x4d68, 0x4dfe, 0x4d39, 0x4d23, 0x4d87, 0x4d7e, 0x4ec7, 0x4d2a, 0x4dbf, 0x4d44, 0x4d8f, 0x4e0a, 0x4dff, 0x4e30, 0x4e2e, 0x4d94, 0x4d89, 0x4e04, 0x4d72, 0x4dee, 0x4d41, 0x4dd4, 0x4d58, 0x4dba, 0x4d8f, 0x4e19, 0x4dac, 0x4db5, 0x4dea, 0x4ce2, 0x4e1a, 0x4d87, 0x4d54, 0x4d86, 0x4e3e, 0x4e04, 0x4e41, 0x4dd4, 0x4df5, 0x4e28, 0x4d92, +0x4d5e, 0x4dba, 0x4df8, 0x4d94, 0x4df0, 0x4d7d, 0x4dfc, 0x4e83, 0x4df1, 0x4e98, 0x4dd4, 0x4dc6, 0x4e84, 0x4daa, 0x4d97, 0x4d98, 0x4dfd, 0x4d9e, 0x4d4a, 0x4dd7, 0x4d7e, 0x4da5, 0x4dbf, 0x4dd1, 0x4de8, 0x4db7, 0x4dfd, 0x4d45, 0x4dba, 0x4e6c, 0x4df2, 0x4dfc, 0x4dc2, 0x4dad, 0x4e19, 0x4d4d, 0x4df1, 0x4dab, 0x4d76, 0x4da8, 0x4d60, 0x4e55, 0x4dab, 0x4e58, 0x4d6a, 0x4e07, 0x4d48, 0x4d82, 0x4e78, 0x4d73, 0x4e49, 0x4dbe, 0x4d0c, 0x4d80, 0x4dbb, 0x4d67, 0x4e27, 0x4d34, 0x4d72, 0x4de1, 0x4e1d, 0x4e81, 0x4cf1, 0x4e18, 0x4d84, 0x4d8d, 0x4e1b, 0x4e4d, 0x4dd0, 0x4e69, 0x4dc1, 0x4da0, 0x4e4a, 0x4d7b, 0x4dc0, 0x4d4f, 0x4de4, 0x4e1b, 0x4da1, 0x4e14, 0x4e2c, 0x4d53, 0x4d67, 0x4ecd, 0x4d98, 0x4dc2, 0x4dff, 0x4d37, 0x4deb, 0x4dcb, 0x4cff, 0x4de8, 0x4e0a, 0x4d80, 0x4dba, 0x4d6a, +0x4d78, 0x4d5c, 0x4dbd, 0x4d18, 0x4d9d, 0x4d98, 0x4d95, 0x4e53, 0x4d96, 0x4e9f, 0x4db1, 0x4dea, 0x4ea8, 0x4d7f, 0x4d8b, 0x4d7a, 0x4de6, 0x4d5d, 0x4d91, 0x4da5, 0x4da8, 0x4d38, 0x4ddd, 0x4d87, 0x4d57, 0x4dfd, 0x4e38, 0x4d7b, 0x4d9a, 0x4e34, 0x4e26, 0x4da2, 0x4dc3, 0x4d63, 0x4de6, 0x4d54, 0x4dec, 0x4cfb, 0x4d33, 0x4d01, 0x4d50, 0x4da9, 0x4da2, 0x4e13, 0x4dbf, 0x4dff, 0x4d20, 0x4de2, 0x4e2b, 0x4d73, 0x4e87, 0x4d96, 0x4ce3, 0x4d66, 0x4d63, 0x4d8a, 0x4e2e, 0x4d32, 0x4d64, 0x4da9, 0x4da7, 0x4e99, 0x4cff, 0x4e26, 0x4d53, 0x4d79, 0x4df7, 0x4daf, 0x4e47, 0x4e48, 0x4d6a, 0x4dc0, 0x4ddd, 0x4d4d, 0x4dfb, 0x4d9b, 0x4db0, 0x4d67, 0x4ddb, 0x4dfc, 0x4d88, 0x4d4f, 0x4cfd, 0x4e65, 0x4d56, 0x4dca, 0x4dcb, 0x4cdd, 0x4d73, 0x4db6, 0x4d42, 0x4dae, 0x4e26, 0x4d76, 0x4d67, 0x4d82, +0x4dbf, 0x4df6, 0x4e63, 0x4dbc, 0x4edf, 0x4e0f, 0x4dfc, 0x4ecc, 0x4e07, 0x4f24, 0x4e00, 0x4e3b, 0x4f2d, 0x4e76, 0x4e0c, 0x4d9b, 0x4ecf, 0x4e60, 0x4df9, 0x4e4e, 0x4e0e, 0x4dd0, 0x4e7d, 0x4dfb, 0x4e65, 0x4eab, 0x4e78, 0x4e0c, 0x4e44, 0x4e4c, 0x4e70, 0x4e9f, 0x4e78, 0x4e01, 0x4e8d, 0x4e02, 0x4e1e, 0x4dcd, 0x4dce, 0x4dac, 0x4e25, 0x4e11, 0x4df9, 0x4ee4, 0x4e60, 0x4eb6, 0x4dc2, 0x4e32, 0x4f0f, 0x4dad, 0x4f16, 0x4dac, 0x4d37, 0x4e75, 0x4daf, 0x4df5, 0x4e91, 0x4db6, 0x4dc3, 0x4e51, 0x4e1a, 0x4f04, 0x4dd3, 0x4e22, 0x4dcd, 0x4dd4, 0x4e5a, 0x4e38, 0x4e9f, 0x4e7a, 0x4ea4, 0x4e59, 0x4e63, 0x4e09, 0x4e3f, 0x4dff, 0x4e0b, 0x4e1b, 0x4e1b, 0x4e7a, 0x4e5f, 0x4d96, 0x4dc5, 0x4e7d, 0x4d96, 0x4e22, 0x4e39, 0x4d5a, 0x4e54, 0x4eb5, 0x4e10, 0x4e66, 0x4e83, 0x4e2c, 0x4e34, 0x4d5a, +0x4d71, 0x4dd1, 0x4e56, 0x4d84, 0x4dcc, 0x4d86, 0x4e2f, 0x4e5a, 0x4dc0, 0x4ea7, 0x4e1e, 0x4e25, 0x4ea5, 0x4d59, 0x4d96, 0x4e00, 0x4e1c, 0x4d7f, 0x4d79, 0x4e33, 0x4d81, 0x4d99, 0x4d92, 0x4d4f, 0x4d9b, 0x4dec, 0x4e45, 0x4d44, 0x4dcf, 0x4e43, 0x4e26, 0x4dfe, 0x4dd8, 0x4e01, 0x4e6b, 0x4dd2, 0x4ddd, 0x4db8, 0x4d2e, 0x4dec, 0x4de0, 0x4e0f, 0x4da8, 0x4ed9, 0x4da5, 0x4e7f, 0x4cfb, 0x4d7b, 0x4e07, 0x4da2, 0x4e9f, 0x4d95, 0x4d3b, 0x4db7, 0x4da1, 0x4dc7, 0x4dfb, 0x4d73, 0x4d74, 0x4dfb, 0x4df9, 0x4ed7, 0x4d61, 0x4de7, 0x4d74, 0x4db0, 0x4da0, 0x4e05, 0x4e52, 0x4e67, 0x4e3b, 0x4d86, 0x4dca, 0x4ded, 0x4d7e, 0x4d87, 0x4dee, 0x4dec, 0x4dd8, 0x4df7, 0x4e19, 0x4d39, 0x4da2, 0x4e7b, 0x4d5f, 0x4de3, 0x4de7, 0x4d6e, 0x4dad, 0x4e39, 0x4d1b, 0x4e13, 0x4dfe, 0x4de6, 0x4dad, 0x4dd7, +0x4e08, 0x4de7, 0x4e3b, 0x4e57, 0x4ec6, 0x4e89, 0x4eae, 0x4f6b, 0x4e5a, 0x4fbb, 0x4e68, 0x4e30, 0x4f54, 0x4e46, 0x4e31, 0x4e01, 0x4f2d, 0x4e6e, 0x4e0a, 0x4e3e, 0x4ead, 0x4dd6, 0x4e96, 0x4e12, 0x4e62, 0x4e8d, 0x4ec0, 0x4e03, 0x4e58, 0x4eec, 0x4ea5, 0x4eac, 0x4e98, 0x4e68, 0x4efa, 0x4e20, 0x4e2d, 0x4e0a, 0x4e29, 0x4e36, 0x4e62, 0x4e6e, 0x4dc5, 0x4ee7, 0x4e9f, 0x4ef0, 0x4e06, 0x4e0e, 0x4f08, 0x4df4, 0x4f16, 0x4dc9, 0x4d49, 0x4e98, 0x4dcd, 0x4e73, 0x4ecb, 0x4e7e, 0x4e22, 0x4e87, 0x4e90, 0x4f22, 0x4dd9, 0x4ed8, 0x4e21, 0x4e27, 0x4e54, 0x4e73, 0x4e8d, 0x4f3b, 0x4e98, 0x4dfe, 0x4ec4, 0x4e22, 0x4e8b, 0x4e79, 0x4e10, 0x4e68, 0x4e06, 0x4e7a, 0x4ef9, 0x4e1c, 0x4e11, 0x4e9c, 0x4dc7, 0x4e2a, 0x4dec, 0x4e0c, 0x4e55, 0x4e89, 0x4e5f, 0x4f06, 0x4eaf, 0x4e44, 0x4ea0, 0x4e10, +0x4dbc, 0x4dc0, 0x4e13, 0x4da8, 0x4e6c, 0x4e0f, 0x4e94, 0x4ee8, 0x4df0, 0x4f1d, 0x4e41, 0x4e33, 0x4f18, 0x4dbd, 0x4df9, 0x4e19, 0x4e6e, 0x4d98, 0x4d78, 0x4ddf, 0x4e5e, 0x4dad, 0x4dbf, 0x4d88, 0x4e07, 0x4e26, 0x4e1c, 0x4dd3, 0x4e6d, 0x4ef3, 0x4e99, 0x4e3d, 0x4e3c, 0x4e6b, 0x4e6f, 0x4e0e, 0x4df7, 0x4dab, 0x4dd2, 0x4e20, 0x4e18, 0x4dfe, 0x4da4, 0x4e68, 0x4e1e, 0x4e3d, 0x4d7f, 0x4df2, 0x4eb9, 0x4dda, 0x4ec6, 0x4ddb, 0x4d6c, 0x4e1c, 0x4d9e, 0x4e23, 0x4e36, 0x4d74, 0x4dd5, 0x4e31, 0x4e36, 0x4f13, 0x4d62, 0x4e07, 0x4d70, 0x4df5, 0x4e70, 0x4e46, 0x4e5d, 0x4eb4, 0x4e6d, 0x4de1, 0x4e64, 0x4e17, 0x4e36, 0x4e2f, 0x4e29, 0x4e32, 0x4dde, 0x4dc9, 0x4e74, 0x4de5, 0x4de6, 0x4e52, 0x4da3, 0x4e0e, 0x4e4b, 0x4daf, 0x4dec, 0x4ebe, 0x4dc5, 0x4e10, 0x4e83, 0x4e8d, 0x4e13, 0x4e0d, +0x4de6, 0x4e03, 0x4e4f, 0x4d8b, 0x4e9b, 0x4e0f, 0x4ea4, 0x4ed6, 0x4dca, 0x4f1d, 0x4e28, 0x4e48, 0x4eff, 0x4e00, 0x4e96, 0x4e11, 0x4eb8, 0x4dae, 0x4df2, 0x4e6d, 0x4e65, 0x4e1a, 0x4e33, 0x4e04, 0x4e00, 0x4e74, 0x4eca, 0x4df9, 0x4e32, 0x4e8c, 0x4eac, 0x4e81, 0x4e27, 0x4e2a, 0x4e53, 0x4de1, 0x4df1, 0x4d9c, 0x4dd9, 0x4e37, 0x4e26, 0x4e2f, 0x4d63, 0x4edb, 0x4e62, 0x4ebd, 0x4dd5, 0x4e05, 0x4eb9, 0x4dd1, 0x4f1c, 0x4dee, 0x4d5f, 0x4e2c, 0x4e1e, 0x4e07, 0x4e03, 0x4ddf, 0x4dc5, 0x4dd1, 0x4e05, 0x4edb, 0x4dca, 0x4e5a, 0x4d80, 0x4dd5, 0x4e75, 0x4e6a, 0x4e69, 0x4eb3, 0x4e49, 0x4e88, 0x4ea2, 0x4e28, 0x4ea6, 0x4e21, 0x4e0a, 0x4e2f, 0x4e39, 0x4e43, 0x4e3b, 0x4e07, 0x4d9a, 0x4e97, 0x4d98, 0x4e81, 0x4dd9, 0x4d1d, 0x4e15, 0x4e7c, 0x4e15, 0x4e48, 0x4ec0, 0x4e99, 0x4e31, 0x4e50, +0x4d4e, 0x4dcf, 0x4e16, 0x4e0f, 0x4e3d, 0x4d5b, 0x4dd0, 0x4ed8, 0x4dfa, 0x4f4d, 0x4dbd, 0x4e5d, 0x4e9b, 0x4d9b, 0x4e37, 0x4dcd, 0x4e8e, 0x4e45, 0x4d87, 0x4dfa, 0x4e43, 0x4dd6, 0x4e1c, 0x4d8a, 0x4e32, 0x4ddb, 0x4e30, 0x4d75, 0x4db6, 0x4eca, 0x4dcd, 0x4e08, 0x4e13, 0x4e61, 0x4e35, 0x4dd9, 0x4dbc, 0x4d9e, 0x4d85, 0x4dfe, 0x4e2a, 0x4e31, 0x4d76, 0x4e50, 0x4dcc, 0x4e8e, 0x4d2d, 0x4de9, 0x4eaf, 0x4d8a, 0x4ebd, 0x4db0, 0x4d28, 0x4def, 0x4da2, 0x4db8, 0x4e71, 0x4dc0, 0x4d07, 0x4dd9, 0x4e0d, 0x4eec, 0x4dd4, 0x4dff, 0x4d97, 0x4ded, 0x4e33, 0x4e55, 0x4e1f, 0x4e88, 0x4e25, 0x4da1, 0x4e0d, 0x4de9, 0x4e00, 0x4dc7, 0x4de5, 0x4dc9, 0x4e36, 0x4dd4, 0x4eae, 0x4df1, 0x4e29, 0x4ecc, 0x4d81, 0x4e1d, 0x4e1a, 0x4d93, 0x4dd0, 0x4e67, 0x4ddf, 0x4e49, 0x4e29, 0x4dfc, 0x4e4e, 0x4e15, +0x4d53, 0x4d54, 0x4dcb, 0x4d20, 0x4d9f, 0x4d7b, 0x4db1, 0x4e61, 0x4d86, 0x4e2b, 0x4d85, 0x4dca, 0x4e88, 0x4d8f, 0x4d7c, 0x4dbd, 0x4dd1, 0x4d53, 0x4cf8, 0x4e33, 0x4daa, 0x4d52, 0x4d77, 0x4d28, 0x4db3, 0x4db7, 0x4da2, 0x4d5f, 0x4d8b, 0x4e40, 0x4e0a, 0x4d4e, 0x4d44, 0x4d89, 0x4dd4, 0x4ced, 0x4d7e, 0x4d23, 0x4d3b, 0x4d33, 0x4d97, 0x4dbe, 0x4d4e, 0x4e18, 0x4d25, 0x4e37, 0x4cec, 0x4d58, 0x4dd8, 0x4d79, 0x4e3c, 0x4d8d, 0x4d0e, 0x4d56, 0x4ce2, 0x4d47, 0x4dec, 0x4d34, 0x4d24, 0x4df8, 0x4d54, 0x4dc0, 0x4ce1, 0x4db2, 0x4d4d, 0x4d59, 0x4d7b, 0x4db2, 0x4db9, 0x4e11, 0x4d44, 0x4daa, 0x4dc6, 0x4d61, 0x4db8, 0x4d7d, 0x4d94, 0x4dc4, 0x4d64, 0x4da8, 0x4db3, 0x4d5b, 0x4d48, 0x4e4c, 0x4d38, 0x4cf7, 0x4dda, 0x4ce7, 0x4de8, 0x4de0, 0x4d34, 0x4dc4, 0x4e01, 0x4db9, 0x4d72, 0x4d31, +0x4d50, 0x4d8a, 0x4e4e, 0x4d70, 0x4e36, 0x4db3, 0x4e2c, 0x4ec3, 0x4de3, 0x4f03, 0x4e28, 0x4e59, 0x4ec1, 0x4dee, 0x4db6, 0x4dfa, 0x4e6c, 0x4de5, 0x4d40, 0x4dc9, 0x4e59, 0x4d89, 0x4dc7, 0x4da5, 0x4d83, 0x4e48, 0x4e69, 0x4df2, 0x4e0e, 0x4ebb, 0x4e4c, 0x4e39, 0x4e07, 0x4e1c, 0x4e5c, 0x4db9, 0x4e05, 0x4d7f, 0x4d54, 0x4de6, 0x4dca, 0x4df7, 0x4d7c, 0x4e50, 0x4e43, 0x4e69, 0x4da0, 0x4e1d, 0x4e57, 0x4db8, 0x4eb1, 0x4e23, 0x4d6d, 0x4e1c, 0x4d74, 0x4e16, 0x4e3b, 0x4dcc, 0x4d94, 0x4e5b, 0x4e25, 0x4ec5, 0x4d65, 0x4e1c, 0x4d5b, 0x4ded, 0x4e12, 0x4e06, 0x4e1a, 0x4eb6, 0x4de4, 0x4dbf, 0x4e1a, 0x4e3b, 0x4e57, 0x4dff, 0x4dd6, 0x4e6a, 0x4dc5, 0x4e4f, 0x4e81, 0x4d7e, 0x4dc1, 0x4e84, 0x4dd8, 0x4dff, 0x4e2f, 0x4dc2, 0x4db1, 0x4e70, 0x4de1, 0x4de9, 0x4e31, 0x4e11, 0x4e46, 0x4dbf, +0x4daa, 0x4da3, 0x4dcd, 0x4dce, 0x4d97, 0x4d78, 0x4e0a, 0x4eeb, 0x4ddb, 0x4f2f, 0x4dbe, 0x4e55, 0x4eca, 0x4e37, 0x4deb, 0x4d90, 0x4e6f, 0x4dbd, 0x4d88, 0x4e24, 0x4d99, 0x4d4a, 0x4dd8, 0x4ceb, 0x4d9c, 0x4e53, 0x4e45, 0x4d8f, 0x4dc8, 0x4e40, 0x4e47, 0x4dff, 0x4e47, 0x4dba, 0x4e4b, 0x4d96, 0x4dc2, 0x4db6, 0x4d80, 0x4dbc, 0x4d66, 0x4dec, 0x4d6b, 0x4e8e, 0x4e05, 0x4e1c, 0x4d0c, 0x4da3, 0x4e61, 0x4d3a, 0x4e7c, 0x4d5f, 0x4d0d, 0x4db2, 0x4db0, 0x4dec, 0x4dbd, 0x4d72, 0x4d40, 0x4db3, 0x4e06, 0x4e52, 0x4d18, 0x4e65, 0x4d80, 0x4d43, 0x4e0b, 0x4dc6, 0x4e60, 0x4e71, 0x4e0e, 0x4d92, 0x4e0a, 0x4d7c, 0x4dbb, 0x4d6b, 0x4df5, 0x4d64, 0x4d99, 0x4d9a, 0x4de1, 0x4d52, 0x4d93, 0x4de8, 0x4d70, 0x4e12, 0x4db2, 0x4d20, 0x4de8, 0x4df9, 0x4dcb, 0x4e62, 0x4e5e, 0x4dd3, 0x4d3f, 0x4d5a, +0x4d97, 0x4db8, 0x4e07, 0x4d81, 0x4e2e, 0x4db2, 0x4e2a, 0x4f25, 0x4ddf, 0x4f35, 0x4d9b, 0x4e84, 0x4ecf, 0x4df4, 0x4e15, 0x4e10, 0x4e45, 0x4e11, 0x4d9c, 0x4dda, 0x4e85, 0x4d3e, 0x4e4e, 0x4d9c, 0x4de0, 0x4e49, 0x4e53, 0x4d84, 0x4e03, 0x4eb8, 0x4e40, 0x4e82, 0x4e10, 0x4e2e, 0x4e7c, 0x4dd6, 0x4de8, 0x4d6f, 0x4db7, 0x4de3, 0x4e01, 0x4db7, 0x4da6, 0x4e61, 0x4e0a, 0x4e53, 0x4dc8, 0x4df9, 0x4ed6, 0x4d8b, 0x4ef9, 0x4da4, 0x4dd6, 0x4dc9, 0x4db2, 0x4dee, 0x4e8c, 0x4d86, 0x4d9c, 0x4e36, 0x4e13, 0x4ebd, 0x4d11, 0x4e28, 0x4d81, 0x4e22, 0x4e2f, 0x4e4f, 0x4ed6, 0x4e82, 0x4e2f, 0x4e17, 0x4e48, 0x4d87, 0x4e49, 0x4e4e, 0x4e39, 0x4e45, 0x4ddc, 0x4df7, 0x4e29, 0x4df2, 0x4dc2, 0x4eef, 0x4d9b, 0x4df4, 0x4e4a, 0x4d73, 0x4e0f, 0x4e7e, 0x4de6, 0x4e4c, 0x4e43, 0x4e12, 0x4e38, 0x4de6, +0x4dca, 0x4e05, 0x4e41, 0x4da4, 0x4e08, 0x4dc1, 0x4dfa, 0x4ed4, 0x4d4c, 0x4ee9, 0x4dfb, 0x4dd2, 0x4e70, 0x4ddc, 0x4d8e, 0x4dc3, 0x4e7b, 0x4dec, 0x4d8f, 0x4e28, 0x4e1d, 0x4d79, 0x4dde, 0x4db1, 0x4df1, 0x4dd5, 0x4e31, 0x4d3a, 0x4ddd, 0x4e3b, 0x4e47, 0x4df8, 0x4dec, 0x4d7f, 0x4e3c, 0x4d7f, 0x4d7f, 0x4d62, 0x4d46, 0x4dc9, 0x4df7, 0x4de7, 0x4ddf, 0x4e5c, 0x4dc1, 0x4e44, 0x4d43, 0x4db3, 0x4e4d, 0x4dae, 0x4e60, 0x4dbf, 0x4d71, 0x4de0, 0x4dba, 0x4dc1, 0x4e2a, 0x4d6d, 0x4dab, 0x4df8, 0x4de5, 0x4e56, 0x4d64, 0x4dcc, 0x4e01, 0x4dce, 0x4e3a, 0x4e88, 0x4dff, 0x4e6b, 0x4e35, 0x4e05, 0x4de3, 0x4dc4, 0x4e69, 0x4dc4, 0x4de5, 0x4df8, 0x4da5, 0x4e0e, 0x4d96, 0x4dc7, 0x4d53, 0x4ec2, 0x4d82, 0x4ddf, 0x4dac, 0x4d33, 0x4d9b, 0x4e30, 0x4d97, 0x4e3b, 0x4e89, 0x4e5c, 0x4db9, 0x4d9d, +0x4e27, 0x4e5c, 0x4f2b, 0x4e51, 0x4ee2, 0x4e60, 0x4f10, 0x4f9b, 0x4e52, 0x4f9e, 0x4e9d, 0x4e87, 0x4f8a, 0x4e8b, 0x4e8b, 0x4e96, 0x4f19, 0x4f34, 0x4e0a, 0x4ece, 0x4eec, 0x4e27, 0x4ea4, 0x4e3e, 0x4eb1, 0x4e34, 0x4ed1, 0x4ea7, 0x4f40, 0x4f9a, 0x4f51, 0x4e8e, 0x4f25, 0x4ec4, 0x4f12, 0x4ea6, 0x4e7c, 0x4e17, 0x4de8, 0x4e73, 0x4ebf, 0x4e45, 0x4e3c, 0x4f00, 0x4e94, 0x4f3d, 0x4e02, 0x4ea7, 0x4f5b, 0x4eab, 0x4f40, 0x4e4d, 0x4e05, 0x4e79, 0x4e13, 0x4e81, 0x4f20, 0x4e9d, 0x4e6d, 0x4eda, 0x4ec8, 0x4f9e, 0x4e39, 0x4ebb, 0x4de4, 0x4e67, 0x4ed6, 0x4f43, 0x4eef, 0x4f8e, 0x4edd, 0x4e5d, 0x4ebe, 0x4f3b, 0x4f37, 0x4e7a, 0x4ec0, 0x4ecc, 0x4f01, 0x4ef6, 0x4f29, 0x4e9d, 0x4e7a, 0x4ed0, 0x4e93, 0x4ef1, 0x4eb9, 0x4e43, 0x4eca, 0x4f54, 0x4e4a, 0x4e98, 0x4f5d, 0x4f33, 0x4e9e, 0x4e9f, +0x4dd7, 0x4ebb, 0x4e87, 0x4e2d, 0x4ed6, 0x4ed8, 0x4e71, 0x4f2b, 0x4e32, 0x4f42, 0x4eb7, 0x4e64, 0x4f8f, 0x4e1a, 0x4e53, 0x4ec8, 0x4e44, 0x4e5b, 0x4e7e, 0x4e80, 0x4ec2, 0x4e18, 0x4e55, 0x4e2e, 0x4e9e, 0x4ec8, 0x4e5f, 0x4dfb, 0x4e68, 0x4f3b, 0x4e83, 0x4e36, 0x4ec6, 0x4e3e, 0x4ee6, 0x4e26, 0x4e82, 0x4e57, 0x4e3b, 0x4e3d, 0x4e2f, 0x4e84, 0x4e1f, 0x4f3a, 0x4e2c, 0x4ebc, 0x4e1e, 0x4e4b, 0x4f06, 0x4e2a, 0x4f35, 0x4e4a, 0x4dc1, 0x4e5e, 0x4e0d, 0x4e33, 0x4e6b, 0x4daa, 0x4ddc, 0x4e74, 0x4e61, 0x4f4e, 0x4e23, 0x4e9d, 0x4dc1, 0x4df8, 0x4e6c, 0x4ed2, 0x4ea7, 0x4f25, 0x4e7b, 0x4e3e, 0x4e69, 0x4e17, 0x4ed4, 0x4e04, 0x4e81, 0x4e74, 0x4e3a, 0x4edf, 0x4e87, 0x4e5a, 0x4e63, 0x4ea2, 0x4ddd, 0x4eaf, 0x4eac, 0x4db0, 0x4ea1, 0x4efd, 0x4e60, 0x4e88, 0x4df4, 0x4f25, 0x4e13, 0x4e34, +0x4e0d, 0x4dd9, 0x4e1e, 0x4dbd, 0x4e05, 0x4e05, 0x4e9b, 0x4ef7, 0x4e05, 0x4ee9, 0x4e79, 0x4e50, 0x4f3d, 0x4e4d, 0x4e45, 0x4ec1, 0x4eaa, 0x4e11, 0x4da2, 0x4e41, 0x4e50, 0x4df9, 0x4e0e, 0x4dff, 0x4e54, 0x4e44, 0x4e2b, 0x4e1e, 0x4e8f, 0x4ef0, 0x4e44, 0x4e5a, 0x4e65, 0x4e53, 0x4e7c, 0x4e31, 0x4e00, 0x4d7c, 0x4e09, 0x4e2d, 0x4e8c, 0x4e18, 0x4def, 0x4e73, 0x4e1e, 0x4eb6, 0x4d9e, 0x4e23, 0x4eaa, 0x4e62, 0x4ee7, 0x4e4f, 0x4d89, 0x4e3c, 0x4e0f, 0x4e80, 0x4e2e, 0x4e16, 0x4df6, 0x4e79, 0x4e9e, 0x4ef9, 0x4d5f, 0x4e39, 0x4d87, 0x4e04, 0x4eda, 0x4e99, 0x4e75, 0x4f32, 0x4e55, 0x4e47, 0x4e23, 0x4e5a, 0x4eb0, 0x4e39, 0x4e6d, 0x4e3b, 0x4e5c, 0x4e89, 0x4ec6, 0x4e16, 0x4e36, 0x4f0b, 0x4d76, 0x4e1a, 0x4e5b, 0x4dc4, 0x4dfb, 0x4e5b, 0x4e5f, 0x4e8c, 0x4e8b, 0x4e7d, 0x4e14, 0x4df3, +0x4db1, 0x4da2, 0x4e28, 0x4dc6, 0x4e3d, 0x4e08, 0x4df4, 0x4e7e, 0x4db8, 0x4ee4, 0x4e5c, 0x4df9, 0x4eee, 0x4db3, 0x4daf, 0x4e26, 0x4e20, 0x4dee, 0x4df8, 0x4e2e, 0x4e2a, 0x4d7e, 0x4e32, 0x4d94, 0x4e1b, 0x4e49, 0x4e84, 0x4dc4, 0x4dff, 0x4ead, 0x4e55, 0x4e4a, 0x4e04, 0x4e07, 0x4ebb, 0x4dac, 0x4daf, 0x4ded, 0x4d53, 0x4d9a, 0x4dd7, 0x4de6, 0x4d5b, 0x4e3d, 0x4dff, 0x4ea8, 0x4d9d, 0x4da4, 0x4e1e, 0x4d92, 0x4e7a, 0x4d3e, 0x4d57, 0x4db5, 0x4d77, 0x4d96, 0x4e1a, 0x4d7a, 0x4d74, 0x4de0, 0x4dba, 0x4eb6, 0x4d49, 0x4e27, 0x4d55, 0x4dca, 0x4e02, 0x4e83, 0x4e6b, 0x4eaf, 0x4e2b, 0x4de9, 0x4e53, 0x4db5, 0x4e0b, 0x4dd7, 0x4dbe, 0x4df5, 0x4dd0, 0x4dc9, 0x4e66, 0x4d69, 0x4e0e, 0x4e3b, 0x4d50, 0x4dff, 0x4de3, 0x4d65, 0x4dd4, 0x4e0e, 0x4df0, 0x4e52, 0x4ee9, 0x4e3e, 0x4e53, 0x4dbd, +0x4d94, 0x4d90, 0x4e41, 0x4d3c, 0x4de7, 0x4d6d, 0x4dfa, 0x4e97, 0x4de8, 0x4e5c, 0x4dde, 0x4dfe, 0x4e81, 0x4d8a, 0x4d99, 0x4dce, 0x4e82, 0x4de2, 0x4dba, 0x4dab, 0x4dc5, 0x4d4e, 0x4d64, 0x4db5, 0x4d8c, 0x4dcb, 0x4dc9, 0x4d74, 0x4dfa, 0x4e2f, 0x4e29, 0x4db3, 0x4deb, 0x4d7e, 0x4ddd, 0x4d9a, 0x4d6e, 0x4da2, 0x4cdf, 0x4d82, 0x4da5, 0x4dd1, 0x4da7, 0x4e45, 0x4dba, 0x4df1, 0x4d49, 0x4d32, 0x4e97, 0x4d3f, 0x4e88, 0x4d72, 0x4cfe, 0x4dd3, 0x4d33, 0x4d53, 0x4db0, 0x4d6b, 0x4d5f, 0x4e02, 0x4dcb, 0x4e93, 0x4d95, 0x4dc5, 0x4da2, 0x4d86, 0x4ddf, 0x4df4, 0x4dac, 0x4e0d, 0x4dd1, 0x4d3f, 0x4df6, 0x4d42, 0x4e24, 0x4dac, 0x4e2e, 0x4da2, 0x4db6, 0x4df0, 0x4dd6, 0x4d6f, 0x4d6b, 0x4e2f, 0x4d51, 0x4e39, 0x4dfd, 0x4d12, 0x4d9a, 0x4ded, 0x4d3a, 0x4dec, 0x4e1b, 0x4e0d, 0x4dbc, 0x4dad, +0x4d87, 0x4dd5, 0x4e10, 0x4dd0, 0x4e3f, 0x4ddf, 0x4ea2, 0x4ec6, 0x4ddd, 0x4f15, 0x4df0, 0x4e47, 0x4ed0, 0x4dcc, 0x4dfa, 0x4de6, 0x4e44, 0x4dd7, 0x4da0, 0x4e0c, 0x4db8, 0x4d9c, 0x4dde, 0x4dcf, 0x4dfe, 0x4e85, 0x4e7b, 0x4da6, 0x4e87, 0x4e73, 0x4e85, 0x4e39, 0x4de2, 0x4e46, 0x4e55, 0x4dc6, 0x4d80, 0x4d68, 0x4d9e, 0x4e35, 0x4e1c, 0x4e41, 0x4d37, 0x4eab, 0x4e25, 0x4ea0, 0x4dab, 0x4dd5, 0x4e40, 0x4dc4, 0x4ea6, 0x4e0b, 0x4d35, 0x4ddd, 0x4d6f, 0x4dec, 0x4e3e, 0x4d86, 0x4dc7, 0x4e1b, 0x4dd1, 0x4e7d, 0x4d5b, 0x4e56, 0x4d3e, 0x4dc6, 0x4e47, 0x4e41, 0x4deb, 0x4ea3, 0x4e0b, 0x4e1e, 0x4e4f, 0x4d7d, 0x4e69, 0x4e05, 0x4e07, 0x4de1, 0x4dd4, 0x4df4, 0x4e23, 0x4daa, 0x4d5c, 0x4e50, 0x4d8c, 0x4e56, 0x4df2, 0x4d1b, 0x4db1, 0x4e56, 0x4d5c, 0x4e3b, 0x4ea7, 0x4e3d, 0x4dc1, 0x4dce, +0x4dd5, 0x4e1b, 0x4f0a, 0x4d93, 0x4e7e, 0x4e1d, 0x4e8c, 0x4f7b, 0x4df4, 0x4f3f, 0x4e9f, 0x4e5e, 0x4f33, 0x4e21, 0x4e55, 0x4e7b, 0x4ec6, 0x4e75, 0x4e2f, 0x4e95, 0x4ead, 0x4df1, 0x4e00, 0x4e1b, 0x4e6a, 0x4e69, 0x4f05, 0x4dce, 0x4e65, 0x4ecc, 0x4e72, 0x4e86, 0x4ea7, 0x4e4c, 0x4ef1, 0x4e36, 0x4e28, 0x4dd8, 0x4dca, 0x4e83, 0x4e23, 0x4e65, 0x4e7f, 0x4f31, 0x4ebf, 0x4e83, 0x4d66, 0x4e3d, 0x4e9e, 0x4e64, 0x4eba, 0x4e12, 0x4d90, 0x4e34, 0x4e11, 0x4e31, 0x4e89, 0x4de1, 0x4dca, 0x4e9f, 0x4e43, 0x4f58, 0x4dc9, 0x4e96, 0x4e38, 0x4dfa, 0x4e94, 0x4eb1, 0x4ed4, 0x4f1b, 0x4ee2, 0x4e92, 0x4e30, 0x4e86, 0x4eb1, 0x4e4e, 0x4ea0, 0x4e74, 0x4e52, 0x4ebc, 0x4edd, 0x4dd8, 0x4e1d, 0x4ee2, 0x4df0, 0x4eb0, 0x4e12, 0x4dd4, 0x4e3d, 0x4e9e, 0x4e31, 0x4e44, 0x4ecb, 0x4ebb, 0x4e2c, 0x4e6d, +0x4dc2, 0x4e12, 0x4e1c, 0x4de3, 0x4dfc, 0x4df2, 0x4e09, 0x4ed4, 0x4e52, 0x4f49, 0x4e69, 0x4dc9, 0x4f08, 0x4e73, 0x4e21, 0x4e51, 0x4e85, 0x4e2d, 0x4da5, 0x4e0c, 0x4e09, 0x4d7b, 0x4de6, 0x4dec, 0x4e9e, 0x4e06, 0x4ea8, 0x4da2, 0x4e74, 0x4eac, 0x4e13, 0x4e45, 0x4e43, 0x4dea, 0x4e85, 0x4dbb, 0x4df5, 0x4dc4, 0x4d87, 0x4e18, 0x4de4, 0x4e20, 0x4dd5, 0x4ebd, 0x4e32, 0x4e40, 0x4de9, 0x4e07, 0x4e5a, 0x4de1, 0x4f32, 0x4e22, 0x4d57, 0x4e23, 0x4ded, 0x4dd4, 0x4e11, 0x4dd4, 0x4dfd, 0x4e5d, 0x4e9f, 0x4ed0, 0x4d86, 0x4ea8, 0x4d69, 0x4de3, 0x4e2b, 0x4ec8, 0x4e3c, 0x4eca, 0x4e2f, 0x4de7, 0x4e3e, 0x4e01, 0x4e59, 0x4df2, 0x4e82, 0x4e3a, 0x4e45, 0x4e91, 0x4e9a, 0x4dc0, 0x4e61, 0x4e8d, 0x4d51, 0x4e31, 0x4dc1, 0x4d96, 0x4dad, 0x4e37, 0x4e2b, 0x4e8d, 0x4e69, 0x4dfe, 0x4e37, 0x4ddd, +0x4e19, 0x4e6d, 0x4ec5, 0x4e2a, 0x4e9c, 0x4e04, 0x4ec6, 0x4f61, 0x4e1f, 0x4f72, 0x4e4d, 0x4e51, 0x4f2c, 0x4e6a, 0x4e48, 0x4e99, 0x4edc, 0x4dd0, 0x4e2e, 0x4eb1, 0x4e52, 0x4de8, 0x4e5b, 0x4e0a, 0x4e2c, 0x4e35, 0x4ef2, 0x4dd0, 0x4eff, 0x4f6d, 0x4ef2, 0x4eca, 0x4e90, 0x4e6e, 0x4ece, 0x4e89, 0x4dfc, 0x4e16, 0x4dcd, 0x4eb7, 0x4e79, 0x4ee7, 0x4e2e, 0x4ec0, 0x4e93, 0x4ec0, 0x4dc4, 0x4e5a, 0x4f28, 0x4e17, 0x4efc, 0x4e44, 0x4dbc, 0x4e77, 0x4df3, 0x4eda, 0x4ec2, 0x4e34, 0x4e15, 0x4e78, 0x4eb2, 0x4f87, 0x4da1, 0x4f1e, 0x4dcb, 0x4e72, 0x4eea, 0x4e8c, 0x4edb, 0x4f22, 0x4ecd, 0x4e54, 0x4eb8, 0x4e87, 0x4ef0, 0x4ea3, 0x4e57, 0x4e79, 0x4e85, 0x4e82, 0x4ebb, 0x4e3c, 0x4e29, 0x4ec4, 0x4e06, 0x4ea8, 0x4eb7, 0x4dc5, 0x4e31, 0x4e8a, 0x4e72, 0x4eac, 0x4ed9, 0x4f1d, 0x4e7e, 0x4e68, +0x4e35, 0x4dd4, 0x4e38, 0x4dda, 0x4e05, 0x4db1, 0x4e5a, 0x4f1a, 0x4e2b, 0x4f39, 0x4e30, 0x4e96, 0x4ecf, 0x4df6, 0x4dd0, 0x4ddc, 0x4e5e, 0x4ddc, 0x4d6c, 0x4e50, 0x4dd5, 0x4dc0, 0x4e05, 0x4d65, 0x4e16, 0x4e46, 0x4e57, 0x4dc0, 0x4e5c, 0x4ed2, 0x4e79, 0x4e11, 0x4e1a, 0x4e14, 0x4e85, 0x4e2f, 0x4dc9, 0x4dd8, 0x4d4c, 0x4ddb, 0x4e37, 0x4e35, 0x4dba, 0x4eb9, 0x4dee, 0x4ed1, 0x4d7c, 0x4dfc, 0x4e86, 0x4d78, 0x4e88, 0x4e1e, 0x4d54, 0x4dc0, 0x4da2, 0x4e0f, 0x4e83, 0x4db6, 0x4dc1, 0x4e78, 0x4e0a, 0x4e34, 0x4d73, 0x4e83, 0x4d8c, 0x4dce, 0x4e55, 0x4e11, 0x4e83, 0x4e43, 0x4e7c, 0x4e05, 0x4e93, 0x4ddf, 0x4e3f, 0x4dc4, 0x4e19, 0x4e6c, 0x4db9, 0x4e54, 0x4e9e, 0x4da3, 0x4dbe, 0x4e6a, 0x4db0, 0x4e1a, 0x4e57, 0x4d7b, 0x4e6e, 0x4eac, 0x4da4, 0x4e9a, 0x4e6c, 0x4e7f, 0x4de6, 0x4e0c, +0x4e70, 0x4e5d, 0x4ea9, 0x4e2c, 0x4ee1, 0x4e13, 0x4e9d, 0x4f97, 0x4e21, 0x4ff6, 0x4e48, 0x4e57, 0x4f7e, 0x4e75, 0x4e56, 0x4e79, 0x4f65, 0x4e3f, 0x4da0, 0x4e90, 0x4edc, 0x4e8e, 0x4e4d, 0x4e51, 0x4e9c, 0x4e2a, 0x4e9e, 0x4e30, 0x4e4c, 0x4edf, 0x4ef8, 0x4e91, 0x4eb6, 0x4e71, 0x4ead, 0x4e48, 0x4e87, 0x4de3, 0x4df8, 0x4e29, 0x4e76, 0x4ebb, 0x4e35, 0x4ef6, 0x4e9e, 0x4fa9, 0x4dd5, 0x4e21, 0x4ec4, 0x4e4a, 0x4f80, 0x4e0d, 0x4e07, 0x4e07, 0x4e45, 0x4e40, 0x4ef9, 0x4e38, 0x4dd3, 0x4e67, 0x4e85, 0x4ecf, 0x4dde, 0x4eaf, 0x4e1a, 0x4e83, 0x4e6d, 0x4f2c, 0x4ee4, 0x4eab, 0x4e78, 0x4e42, 0x4e9f, 0x4e30, 0x4e70, 0x4e27, 0x4eee, 0x4e55, 0x4e96, 0x4e9f, 0x4e9c, 0x4e3e, 0x4e46, 0x4f72, 0x4e1a, 0x4e80, 0x4eb9, 0x4e04, 0x4e5e, 0x4ee7, 0x4e43, 0x4ec0, 0x4f4b, 0x4e59, 0x4e76, 0x4e27, +0x4dd1, 0x4dbf, 0x4ec4, 0x4df3, 0x4e12, 0x4e04, 0x4e47, 0x4f88, 0x4e3e, 0x4f9c, 0x4e70, 0x4eb7, 0x4f21, 0x4e20, 0x4e02, 0x4ec1, 0x4f47, 0x4e07, 0x4e00, 0x4e95, 0x4e30, 0x4dd6, 0x4dee, 0x4d9d, 0x4e09, 0x4e05, 0x4ec7, 0x4ddb, 0x4e57, 0x4f16, 0x4e8d, 0x4e60, 0x4e58, 0x4e2e, 0x4ed0, 0x4df3, 0x4e32, 0x4df6, 0x4d99, 0x4def, 0x4e67, 0x4e3d, 0x4e21, 0x4f1d, 0x4e24, 0x4ef2, 0x4da9, 0x4e02, 0x4eea, 0x4e2d, 0x4f3d, 0x4e61, 0x4de9, 0x4e51, 0x4db4, 0x4e1e, 0x4e8c, 0x4e23, 0x4dc5, 0x4e4f, 0x4e56, 0x4f11, 0x4d7f, 0x4eda, 0x4de8, 0x4e06, 0x4e52, 0x4e14, 0x4e97, 0x4f22, 0x4e29, 0x4e43, 0x4e97, 0x4e37, 0x4e58, 0x4e4c, 0x4e7f, 0x4e69, 0x4e35, 0x4e48, 0x4efe, 0x4de6, 0x4e23, 0x4e4f, 0x4df0, 0x4e55, 0x4e59, 0x4daf, 0x4e32, 0x4e56, 0x4dea, 0x4ea4, 0x4e72, 0x4e7f, 0x4e22, 0x4e13, +0x4d97, 0x4d55, 0x4d67, 0x4d11, 0x4d7c, 0x4d95, 0x4e13, 0x4ea2, 0x4e15, 0x4ef3, 0x4db7, 0x4db6, 0x4eb7, 0x4d99, 0x4e38, 0x4d63, 0x4df6, 0x4da1, 0x4d6d, 0x4d9c, 0x4dda, 0x4d83, 0x4db0, 0x4d74, 0x4db4, 0x4e71, 0x4e1a, 0x4d50, 0x4dec, 0x4e26, 0x4df3, 0x4dd0, 0x4ddf, 0x4d85, 0x4dfb, 0x4da2, 0x4ddc, 0x4d82, 0x4d45, 0x4d6e, 0x4d55, 0x4d8f, 0x4d1e, 0x4de2, 0x4d78, 0x4e5d, 0x4d4b, 0x4da0, 0x4e24, 0x4d4a, 0x4e82, 0x4dc8, 0x4d13, 0x4d73, 0x4d4e, 0x4d5c, 0x4de9, 0x4d89, 0x4d71, 0x4db5, 0x4e0d, 0x4e4b, 0x4d15, 0x4e2f, 0x4d88, 0x4da4, 0x4de9, 0x4ded, 0x4e35, 0x4e27, 0x4dcb, 0x4d4c, 0x4dc5, 0x4d59, 0x4de3, 0x4da6, 0x4e7e, 0x4dfa, 0x4ddc, 0x4dfc, 0x4e23, 0x4d71, 0x4d5d, 0x4e2a, 0x4d4c, 0x4daa, 0x4d9c, 0x4cff, 0x4ddd, 0x4df5, 0x4d8f, 0x4dd1, 0x4de1, 0x4d5f, 0x4e4c, 0x4d88, +0x4d87, 0x4dde, 0x4e24, 0x4dd2, 0x4e20, 0x4e17, 0x4e1d, 0x4f2c, 0x4d91, 0x4f09, 0x4e23, 0x4e27, 0x4ec8, 0x4e1a, 0x4dcd, 0x4e00, 0x4e75, 0x4d91, 0x4d53, 0x4db2, 0x4e16, 0x4dac, 0x4e22, 0x4dfb, 0x4e20, 0x4dee, 0x4e47, 0x4d7a, 0x4e7b, 0x4e9e, 0x4dff, 0x4e26, 0x4e2e, 0x4dc3, 0x4ec2, 0x4da2, 0x4dca, 0x4d87, 0x4da3, 0x4e18, 0x4dd7, 0x4e50, 0x4d98, 0x4e92, 0x4e26, 0x4e14, 0x4d10, 0x4e33, 0x4e59, 0x4db0, 0x4e95, 0x4da1, 0x4d9b, 0x4df6, 0x4d2d, 0x4deb, 0x4e1b, 0x4d76, 0x4da5, 0x4df7, 0x4dd6, 0x4ea5, 0x4d40, 0x4e65, 0x4d83, 0x4e04, 0x4df1, 0x4e6e, 0x4e48, 0x4ee2, 0x4e35, 0x4da7, 0x4da9, 0x4dd4, 0x4e79, 0x4db5, 0x4e37, 0x4dc8, 0x4d68, 0x4e17, 0x4e90, 0x4d82, 0x4dec, 0x4dfe, 0x4d30, 0x4d85, 0x4e2a, 0x4d6d, 0x4de9, 0x4e64, 0x4da7, 0x4e1c, 0x4e59, 0x4e02, 0x4e09, 0x4d96, +0x4df9, 0x4e01, 0x4e8b, 0x4e85, 0x4ed5, 0x4e7a, 0x4e85, 0x4eed, 0x4e77, 0x4f1c, 0x4e7f, 0x4eb9, 0x4f54, 0x4e45, 0x4eaa, 0x4e35, 0x4ec6, 0x4e41, 0x4d94, 0x4ec8, 0x4e7b, 0x4e37, 0x4e55, 0x4df2, 0x4e9f, 0x4e53, 0x4ef9, 0x4e48, 0x4ebc, 0x4ee7, 0x4eb1, 0x4e74, 0x4ea0, 0x4ddc, 0x4e90, 0x4e52, 0x4e1c, 0x4de6, 0x4dbe, 0x4e24, 0x4e5c, 0x4e12, 0x4dc0, 0x4ebd, 0x4e07, 0x4f14, 0x4e16, 0x4e15, 0x4f3c, 0x4e16, 0x4f0c, 0x4e40, 0x4d4d, 0x4e9d, 0x4dff, 0x4dbc, 0x4e61, 0x4e0d, 0x4e13, 0x4e52, 0x4e85, 0x4f06, 0x4e05, 0x4e79, 0x4d69, 0x4dcf, 0x4ed8, 0x4e6b, 0x4e76, 0x4f03, 0x4e57, 0x4e66, 0x4edb, 0x4e8f, 0x4e75, 0x4e3c, 0x4e88, 0x4e9f, 0x4e6d, 0x4e35, 0x4ef2, 0x4e30, 0x4e50, 0x4e68, 0x4df4, 0x4e6b, 0x4e3d, 0x4da2, 0x4e5d, 0x4ed7, 0x4e33, 0x4ec0, 0x4f16, 0x4eb7, 0x4e7a, 0x4e3a, +0x4db5, 0x4dff, 0x4e06, 0x4e03, 0x4e6e, 0x4e3e, 0x4e52, 0x4edb, 0x4e09, 0x4f15, 0x4e4b, 0x4e9c, 0x4f54, 0x4d9e, 0x4dbe, 0x4e42, 0x4e0c, 0x4e1e, 0x4dd6, 0x4e41, 0x4e17, 0x4d7b, 0x4de5, 0x4deb, 0x4df3, 0x4e40, 0x4e41, 0x4e02, 0x4e89, 0x4f23, 0x4e46, 0x4e53, 0x4e20, 0x4e27, 0x4ee9, 0x4df9, 0x4e15, 0x4e38, 0x4df4, 0x4e14, 0x4e1a, 0x4e01, 0x4db3, 0x4ebc, 0x4d8c, 0x4e77, 0x4d53, 0x4dbd, 0x4ed1, 0x4dde, 0x4eb1, 0x4dd4, 0x4db1, 0x4e08, 0x4d6e, 0x4da6, 0x4e43, 0x4d66, 0x4dbe, 0x4e1d, 0x4e10, 0x4f3f, 0x4d2a, 0x4e1f, 0x4da6, 0x4dca, 0x4e6b, 0x4e59, 0x4e81, 0x4f21, 0x4dfd, 0x4e23, 0x4e33, 0x4e48, 0x4eb9, 0x4e08, 0x4dd9, 0x4e5c, 0x4df8, 0x4e6e, 0x4e16, 0x4dca, 0x4e50, 0x4e5c, 0x4d71, 0x4e32, 0x4e43, 0x4d64, 0x4dfe, 0x4ee3, 0x4d83, 0x4e66, 0x4e3d, 0x4eeb, 0x4e28, 0x4ddf, +0x4e3e, 0x4e49, 0x4ee3, 0x4e3f, 0x4ef6, 0x4eac, 0x4ea8, 0x4f54, 0x4ea4, 0x4fdf, 0x4e91, 0x4eb4, 0x4f8a, 0x4e75, 0x4e81, 0x4e8e, 0x4f45, 0x4e2f, 0x4e26, 0x4edd, 0x4ed4, 0x4e5b, 0x4e64, 0x4de7, 0x4e6b, 0x4e8b, 0x4f22, 0x4e3b, 0x4e8e, 0x4f34, 0x4ed1, 0x4edd, 0x4eaf, 0x4e27, 0x4ef4, 0x4e73, 0x4ea4, 0x4e3b, 0x4da0, 0x4e2d, 0x4e7c, 0x4e81, 0x4e2e, 0x4f31, 0x4e48, 0x4f48, 0x4e39, 0x4e7c, 0x4f0f, 0x4df3, 0x4f12, 0x4e19, 0x4dcb, 0x4e4f, 0x4e16, 0x4dea, 0x4eb6, 0x4e0b, 0x4e3c, 0x4ea1, 0x4e48, 0x4f80, 0x4dd3, 0x4ed8, 0x4e21, 0x4e47, 0x4f42, 0x4f09, 0x4eec, 0x4ef0, 0x4e6e, 0x4ec3, 0x4ed3, 0x4e99, 0x4ee3, 0x4e24, 0x4ebc, 0x4eb2, 0x4e78, 0x4e8a, 0x4f01, 0x4e89, 0x4e67, 0x4ed7, 0x4e1d, 0x4e37, 0x4e9f, 0x4e03, 0x4e95, 0x4f02, 0x4df4, 0x4efe, 0x4f55, 0x4ee1, 0x4eb7, 0x4e4f, +0x4d92, 0x4dde, 0x4e21, 0x4d5d, 0x4e90, 0x4e15, 0x4e89, 0x4ea3, 0x4deb, 0x4f4c, 0x4ec4, 0x4e70, 0x4eda, 0x4e2f, 0x4e38, 0x4e19, 0x4ecf, 0x4e55, 0x4dbc, 0x4e20, 0x4e52, 0x4de4, 0x4de0, 0x4e1e, 0x4db4, 0x4e72, 0x4e1b, 0x4dd5, 0x4e30, 0x4ea3, 0x4e57, 0x4ea3, 0x4e27, 0x4e31, 0x4ede, 0x4dd0, 0x4df6, 0x4e00, 0x4dca, 0x4e1c, 0x4e49, 0x4e2b, 0x4ddc, 0x4eb6, 0x4e62, 0x4ed8, 0x4d69, 0x4e49, 0x4eb5, 0x4de9, 0x4eeb, 0x4df2, 0x4d4c, 0x4e79, 0x4dba, 0x4e24, 0x4e5b, 0x4dd0, 0x4e06, 0x4e3e, 0x4e41, 0x4f2c, 0x4dbb, 0x4e7a, 0x4dff, 0x4d9f, 0x4e54, 0x4e51, 0x4e3a, 0x4f00, 0x4e88, 0x4e3d, 0x4eaa, 0x4e47, 0x4eb3, 0x4e57, 0x4e32, 0x4e26, 0x4e80, 0x4efc, 0x4f49, 0x4e0b, 0x4dfb, 0x4e9b, 0x4d69, 0x4e31, 0x4deb, 0x4d4e, 0x4de8, 0x4e9a, 0x4e12, 0x4e74, 0x4e6a, 0x4e94, 0x4e34, 0x4de3, +0x4de1, 0x4e39, 0x4e47, 0x4de2, 0x4e53, 0x4e02, 0x4e7e, 0x4ec5, 0x4e01, 0x4f33, 0x4e30, 0x4dfc, 0x4f1f, 0x4e5c, 0x4e28, 0x4e30, 0x4ea0, 0x4e23, 0x4dd5, 0x4e19, 0x4e43, 0x4dc9, 0x4e8f, 0x4dd0, 0x4e3e, 0x4e3e, 0x4e9a, 0x4dd4, 0x4e31, 0x4f06, 0x4e76, 0x4e21, 0x4e7f, 0x4e1f, 0x4eb7, 0x4e0c, 0x4dde, 0x4dc8, 0x4de7, 0x4dfe, 0x4e10, 0x4e2b, 0x4ded, 0x4edf, 0x4e37, 0x4e72, 0x4dec, 0x4e3a, 0x4ebb, 0x4ddf, 0x4ec0, 0x4dbe, 0x4d1e, 0x4e87, 0x4dc6, 0x4e0b, 0x4e5a, 0x4de7, 0x4dcd, 0x4e96, 0x4e66, 0x4eda, 0x4d77, 0x4e4a, 0x4da4, 0x4df5, 0x4e8d, 0x4e4c, 0x4e68, 0x4ede, 0x4e5d, 0x4dd1, 0x4e06, 0x4e2d, 0x4e0c, 0x4e46, 0x4e5e, 0x4e15, 0x4de8, 0x4e6c, 0x4e54, 0x4daa, 0x4df4, 0x4ed0, 0x4d80, 0x4e1a, 0x4df9, 0x4dcb, 0x4dee, 0x4e1c, 0x4e17, 0x4e5c, 0x4e8c, 0x4e33, 0x4dd3, 0x4e27, +0x4d34, 0x4dbb, 0x4e7d, 0x4d47, 0x4dfd, 0x4d0b, 0x4ddc, 0x4e68, 0x4dc6, 0x4ecd, 0x4d9c, 0x4d7d, 0x4ee0, 0x4d69, 0x4ded, 0x4dca, 0x4e3c, 0x4dcd, 0x4d5e, 0x4dbf, 0x4e4c, 0x4db0, 0x4db2, 0x4d97, 0x4da9, 0x4d9f, 0x4e43, 0x4d2a, 0x4dab, 0x4e3d, 0x4e06, 0x4dd4, 0x4daa, 0x4d79, 0x4de6, 0x4de1, 0x4e01, 0x4d62, 0x4d05, 0x4dc7, 0x4ea2, 0x4db4, 0x4d8b, 0x4e6e, 0x4ddd, 0x4e74, 0x4d00, 0x4d9a, 0x4e77, 0x4ddc, 0x4e8b, 0x4dd1, 0x4ccc, 0x4e3f, 0x4d93, 0x4e15, 0x4e91, 0x4de6, 0x4d2c, 0x4e2d, 0x4e02, 0x4ea1, 0x4daf, 0x4e3f, 0x4d8b, 0x4db9, 0x4dde, 0x4e0e, 0x4de3, 0x4e50, 0x4e05, 0x4d89, 0x4e03, 0x4e13, 0x4e4e, 0x4d9c, 0x4df4, 0x4e2d, 0x4df6, 0x4e00, 0x4df1, 0x4ddd, 0x4d7e, 0x4e68, 0x4d6c, 0x4e07, 0x4dca, 0x4d0b, 0x4dba, 0x4dde, 0x4e18, 0x4db6, 0x4dc8, 0x4e2b, 0x4dfa, 0x4d96, +0x4d85, 0x4dc7, 0x4e03, 0x4dc7, 0x4ddd, 0x4dce, 0x4e82, 0x4f1b, 0x4e5b, 0x4f6b, 0x4ec1, 0x4e3e, 0x4f42, 0x4e4a, 0x4e5e, 0x4e3c, 0x4e55, 0x4e43, 0x4dbe, 0x4e0d, 0x4e30, 0x4d9f, 0x4e29, 0x4df5, 0x4e4f, 0x4e49, 0x4e01, 0x4dc1, 0x4e7c, 0x4e7f, 0x4e9d, 0x4e1b, 0x4e00, 0x4e55, 0x4e85, 0x4e25, 0x4e0b, 0x4da9, 0x4da2, 0x4e0e, 0x4e49, 0x4e9b, 0x4ded, 0x4e7f, 0x4df3, 0x4ea5, 0x4d68, 0x4dd6, 0x4ec1, 0x4db5, 0x4ed0, 0x4e11, 0x4d68, 0x4e0c, 0x4e37, 0x4e5f, 0x4e8a, 0x4d98, 0x4e15, 0x4e34, 0x4e33, 0x4ef1, 0x4dc1, 0x4e90, 0x4dd5, 0x4dfb, 0x4e50, 0x4eb3, 0x4ebf, 0x4f41, 0x4e9b, 0x4e12, 0x4e83, 0x4df5, 0x4e9e, 0x4e2f, 0x4e5c, 0x4dfd, 0x4e64, 0x4ea9, 0x4ec7, 0x4e31, 0x4e1b, 0x4eb6, 0x4ddc, 0x4e68, 0x4e72, 0x4d96, 0x4e27, 0x4e93, 0x4dd6, 0x4e70, 0x4e8a, 0x4e37, 0x4e0b, 0x4e0e, +0x4e2a, 0x4db0, 0x4e2a, 0x4d72, 0x4dbf, 0x4e19, 0x4e05, 0x4ea8, 0x4dfa, 0x4eed, 0x4e02, 0x4e06, 0x4e93, 0x4de1, 0x4e4e, 0x4da8, 0x4e27, 0x4d5d, 0x4dc5, 0x4e0c, 0x4e4f, 0x4e0a, 0x4dc2, 0x4da0, 0x4db7, 0x4ddf, 0x4e72, 0x4dc6, 0x4e8d, 0x4e41, 0x4e66, 0x4e35, 0x4dc7, 0x4e21, 0x4e2d, 0x4df3, 0x4df3, 0x4d7e, 0x4da9, 0x4e2e, 0x4e07, 0x4ded, 0x4d9d, 0x4e6c, 0x4e27, 0x4ec2, 0x4d98, 0x4e01, 0x4e73, 0x4d6e, 0x4ed1, 0x4d9e, 0x4d36, 0x4de8, 0x4da2, 0x4e1c, 0x4dcb, 0x4de2, 0x4d8c, 0x4e31, 0x4e44, 0x4eee, 0x4d69, 0x4dd4, 0x4d7e, 0x4de5, 0x4e35, 0x4e4f, 0x4e55, 0x4e9c, 0x4e58, 0x4da4, 0x4e09, 0x4dd2, 0x4e27, 0x4dec, 0x4e42, 0x4e28, 0x4e50, 0x4e66, 0x4e37, 0x4e51, 0x4dd0, 0x4ebe, 0x4d62, 0x4e19, 0x4e4e, 0x4d5a, 0x4e12, 0x4e5d, 0x4ddc, 0x4e4c, 0x4e8f, 0x4e44, 0x4e84, 0x4dbe, +0x4d61, 0x4dfd, 0x4ded, 0x4ddc, 0x4e50, 0x4d9c, 0x4e71, 0x4e90, 0x4e16, 0x4f8b, 0x4e5d, 0x4e68, 0x4f60, 0x4e08, 0x4e2a, 0x4e27, 0x4f17, 0x4e21, 0x4d68, 0x4e1d, 0x4dea, 0x4de6, 0x4dd9, 0x4d88, 0x4e27, 0x4e43, 0x4e60, 0x4da5, 0x4e57, 0x4f23, 0x4e7d, 0x4e5f, 0x4e69, 0x4dfe, 0x4ebf, 0x4d9b, 0x4e4f, 0x4de4, 0x4d8e, 0x4dfa, 0x4e03, 0x4e22, 0x4df2, 0x4e90, 0x4e18, 0x4e72, 0x4cf7, 0x4dfe, 0x4e7e, 0x4dfa, 0x4e98, 0x4dd4, 0x4d98, 0x4e42, 0x4de0, 0x4e02, 0x4ec0, 0x4dcb, 0x4d4f, 0x4e5a, 0x4df3, 0x4f15, 0x4d77, 0x4e51, 0x4da6, 0x4e02, 0x4de0, 0x4e2d, 0x4ea4, 0x4e88, 0x4dec, 0x4df1, 0x4e0a, 0x4e5a, 0x4e9c, 0x4e02, 0x4df8, 0x4e2c, 0x4e4a, 0x4e9a, 0x4e7b, 0x4d92, 0x4e1c, 0x4e88, 0x4ddb, 0x4e52, 0x4e18, 0x4d6c, 0x4dde, 0x4eb1, 0x4dc8, 0x4e2d, 0x4e24, 0x4df0, 0x4dea, 0x4e1e, +0x4daf, 0x4da3, 0x4e3a, 0x4dec, 0x4e70, 0x4d93, 0x4e3a, 0x4e83, 0x4df9, 0x4efd, 0x4e07, 0x4e51, 0x4f5d, 0x4dde, 0x4e0b, 0x4dfc, 0x4e45, 0x4ddc, 0x4d75, 0x4dc9, 0x4df3, 0x4d8d, 0x4de0, 0x4da4, 0x4e37, 0x4e7a, 0x4e46, 0x4dc8, 0x4e2e, 0x4ebd, 0x4e27, 0x4e67, 0x4e3e, 0x4e2f, 0x4e5f, 0x4d98, 0x4e5f, 0x4d6e, 0x4da8, 0x4dc7, 0x4dd5, 0x4e31, 0x4ddb, 0x4e89, 0x4de0, 0x4e73, 0x4d87, 0x4dd9, 0x4ea2, 0x4dae, 0x4e92, 0x4dc9, 0x4d4f, 0x4df1, 0x4e02, 0x4df1, 0x4e69, 0x4de0, 0x4d7f, 0x4e39, 0x4dc3, 0x4e99, 0x4d2f, 0x4e69, 0x4d99, 0x4d5a, 0x4e3d, 0x4e3b, 0x4e74, 0x4eac, 0x4e2d, 0x4e43, 0x4e44, 0x4e36, 0x4e2d, 0x4dc2, 0x4e43, 0x4e3a, 0x4e22, 0x4de6, 0x4e76, 0x4d64, 0x4e25, 0x4e7c, 0x4dc2, 0x4e51, 0x4daa, 0x4d57, 0x4e4f, 0x4e55, 0x4db5, 0x4df2, 0x4e66, 0x4e42, 0x4e18, 0x4e30, +0x4df6, 0x4e52, 0x4e8b, 0x4da7, 0x4e2b, 0x4e27, 0x4e8a, 0x4f5e, 0x4e20, 0x4fd0, 0x4e78, 0x4ed1, 0x4ef4, 0x4e3b, 0x4e31, 0x4e7c, 0x4ec6, 0x4de8, 0x4e00, 0x4e9b, 0x4e95, 0x4df6, 0x4e8f, 0x4e58, 0x4e3b, 0x4e7a, 0x4ea5, 0x4e09, 0x4ea0, 0x4f19, 0x4e5c, 0x4e85, 0x4e5f, 0x4e71, 0x4e94, 0x4e66, 0x4e34, 0x4dfd, 0x4ddc, 0x4e1d, 0x4e27, 0x4e64, 0x4e43, 0x4eb2, 0x4e7d, 0x4f30, 0x4e1a, 0x4e05, 0x4f21, 0x4dde, 0x4f53, 0x4e6f, 0x4e0a, 0x4e5e, 0x4dd2, 0x4e50, 0x4ee9, 0x4e05, 0x4dab, 0x4e4b, 0x4eb3, 0x4f2d, 0x4e0a, 0x4ec8, 0x4dbf, 0x4e3f, 0x4eca, 0x4ec0, 0x4ed5, 0x4f2c, 0x4e9c, 0x4e3d, 0x4ebc, 0x4e31, 0x4e9c, 0x4e33, 0x4e4e, 0x4e9c, 0x4e15, 0x4edc, 0x4ee4, 0x4e68, 0x4dd4, 0x4ef6, 0x4de9, 0x4e52, 0x4ebb, 0x4d9b, 0x4e7b, 0x4f28, 0x4e7d, 0x4e9c, 0x4e77, 0x4e80, 0x4e9f, 0x4e17, +0x4e60, 0x4e53, 0x4e8b, 0x4e28, 0x4e69, 0x4e47, 0x4e69, 0x4f88, 0x4dfc, 0x4f2c, 0x4e91, 0x4e75, 0x4f10, 0x4ecc, 0x4deb, 0x4dfa, 0x4e6d, 0x4e37, 0x4e21, 0x4e5c, 0x4ebd, 0x4dc5, 0x4e7f, 0x4e47, 0x4e82, 0x4e61, 0x4ea7, 0x4df0, 0x4eb8, 0x4f35, 0x4eac, 0x4ea1, 0x4f06, 0x4e15, 0x4ea4, 0x4df5, 0x4e63, 0x4de8, 0x4dd8, 0x4e0d, 0x4e25, 0x4e7f, 0x4e50, 0x4e90, 0x4e3d, 0x4ecd, 0x4dad, 0x4e6c, 0x4f1a, 0x4dd8, 0x4f33, 0x4e40, 0x4dfb, 0x4e3e, 0x4db5, 0x4e5f, 0x4eeb, 0x4e34, 0x4dda, 0x4e80, 0x4ecc, 0x4ed4, 0x4db3, 0x4e12, 0x4d87, 0x4e52, 0x4e2f, 0x4ed6, 0x4e9c, 0x4f17, 0x4e5e, 0x4e12, 0x4e48, 0x4e31, 0x4e88, 0x4e64, 0x4e44, 0x4e23, 0x4e16, 0x4ea3, 0x4e98, 0x4e0a, 0x4de2, 0x4ebc, 0x4dfc, 0x4e22, 0x4e5b, 0x4dd5, 0x4e85, 0x4ea4, 0x4e42, 0x4e4f, 0x4ea1, 0x4e2d, 0x4e44, 0x4d7d, +0x4db5, 0x4dad, 0x4e2a, 0x4d31, 0x4e06, 0x4dbc, 0x4e4e, 0x4e78, 0x4d7e, 0x4ea3, 0x4dc2, 0x4db8, 0x4ec4, 0x4daa, 0x4e42, 0x4de2, 0x4e01, 0x4dac, 0x4dbc, 0x4e00, 0x4da6, 0x4d71, 0x4e01, 0x4dd2, 0x4d92, 0x4db6, 0x4ec5, 0x4d54, 0x4e7b, 0x4e3f, 0x4e0b, 0x4dfc, 0x4e05, 0x4d6c, 0x4e96, 0x4d90, 0x4dae, 0x4d2d, 0x4d7c, 0x4dc9, 0x4d91, 0x4dcc, 0x4dab, 0x4e48, 0x4df2, 0x4e26, 0x4da6, 0x4dd1, 0x4e7d, 0x4dc3, 0x4eab, 0x4e04, 0x4d1f, 0x4dcb, 0x4db2, 0x4da9, 0x4dd1, 0x4d8c, 0x4d8d, 0x4df2, 0x4e1c, 0x4ef9, 0x4d3c, 0x4e0a, 0x4d23, 0x4d8f, 0x4e02, 0x4e27, 0x4e29, 0x4ea2, 0x4e10, 0x4dc6, 0x4de3, 0x4db2, 0x4e61, 0x4df7, 0x4df5, 0x4e25, 0x4de6, 0x4e46, 0x4e0f, 0x4dc8, 0x4d8f, 0x4e3c, 0x4d4e, 0x4ddd, 0x4df1, 0x4cfa, 0x4e06, 0x4e72, 0x4de3, 0x4dda, 0x4df9, 0x4e24, 0x4da8, 0x4d7f, +0x4d8f, 0x4d95, 0x4e5a, 0x4dbc, 0x4ded, 0x4daf, 0x4e1c, 0x4eea, 0x4db3, 0x4ee9, 0x4e7d, 0x4dd2, 0x4e60, 0x4df6, 0x4dfd, 0x4e2d, 0x4e5d, 0x4df0, 0x4db2, 0x4dde, 0x4de1, 0x4d4e, 0x4dd9, 0x4db6, 0x4de8, 0x4dcd, 0x4dff, 0x4d63, 0x4dee, 0x4e75, 0x4e5d, 0x4dfd, 0x4e30, 0x4d88, 0x4e6f, 0x4dc4, 0x4d8b, 0x4d90, 0x4d4e, 0x4dc2, 0x4e07, 0x4e3e, 0x4d82, 0x4e79, 0x4da7, 0x4de0, 0x4d1a, 0x4d8a, 0x4e91, 0x4da7, 0x4e5c, 0x4dcc, 0x4d9d, 0x4df7, 0x4d69, 0x4dee, 0x4e05, 0x4da3, 0x4d41, 0x4e2d, 0x4e13, 0x4ec4, 0x4cf6, 0x4e41, 0x4dc4, 0x4dad, 0x4d96, 0x4e74, 0x4e66, 0x4e4b, 0x4df8, 0x4da1, 0x4dbe, 0x4ddd, 0x4e12, 0x4d81, 0x4da9, 0x4dba, 0x4df4, 0x4dfb, 0x4e53, 0x4dbb, 0x4d79, 0x4e13, 0x4d93, 0x4dfc, 0x4da8, 0x4d6e, 0x4ddb, 0x4dee, 0x4db2, 0x4e71, 0x4e06, 0x4e15, 0x4dad, 0x4e10, +0x4dbe, 0x4d9a, 0x4e47, 0x4d82, 0x4e18, 0x4e0e, 0x4e70, 0x4ebd, 0x4e2f, 0x4eee, 0x4e47, 0x4e16, 0x4ed6, 0x4dee, 0x4e5a, 0x4e64, 0x4e99, 0x4dfa, 0x4dd7, 0x4e82, 0x4e32, 0x4dd0, 0x4e4a, 0x4e31, 0x4db7, 0x4dab, 0x4e6f, 0x4df7, 0x4e5e, 0x4ea5, 0x4e2f, 0x4e3d, 0x4e1b, 0x4dee, 0x4e6e, 0x4df6, 0x4e07, 0x4d94, 0x4d52, 0x4d9d, 0x4d9a, 0x4dc1, 0x4d68, 0x4e8a, 0x4de5, 0x4ed0, 0x4dbc, 0x4e0e, 0x4e82, 0x4df1, 0x4eda, 0x4deb, 0x4d7d, 0x4e03, 0x4d79, 0x4d9c, 0x4e18, 0x4df0, 0x4dc0, 0x4e04, 0x4e3c, 0x4f3c, 0x4dcf, 0x4e53, 0x4d88, 0x4dad, 0x4e2e, 0x4e30, 0x4e7a, 0x4ea5, 0x4dca, 0x4df9, 0x4e4a, 0x4e05, 0x4e9c, 0x4dca, 0x4e18, 0x4e1c, 0x4e4d, 0x4e3a, 0x4ed8, 0x4dd7, 0x4dd2, 0x4e56, 0x4da1, 0x4e5c, 0x4dec, 0x4d66, 0x4e07, 0x4e62, 0x4e15, 0x4e5e, 0x4e30, 0x4e1d, 0x4e47, 0x4e0e, +0x4dec, 0x4e01, 0x4e70, 0x4dfa, 0x4e67, 0x4db4, 0x4e83, 0x4f89, 0x4e1b, 0x4f76, 0x4e4b, 0x4e2b, 0x4f33, 0x4e79, 0x4e5f, 0x4e1d, 0x4e90, 0x4df1, 0x4df9, 0x4e53, 0x4deb, 0x4d95, 0x4e23, 0x4d81, 0x4e0a, 0x4e1e, 0x4efc, 0x4df0, 0x4e8d, 0x4ee7, 0x4e99, 0x4ecb, 0x4e37, 0x4e41, 0x4ece, 0x4e28, 0x4deb, 0x4dba, 0x4dd7, 0x4e1d, 0x4e40, 0x4e1e, 0x4e08, 0x4eab, 0x4e61, 0x4e9e, 0x4db5, 0x4e32, 0x4ed9, 0x4df4, 0x4f2d, 0x4e58, 0x4d91, 0x4dd9, 0x4dd4, 0x4e32, 0x4e5e, 0x4db8, 0x4dfb, 0x4e4d, 0x4e87, 0x4f3e, 0x4dcc, 0x4ea3, 0x4d85, 0x4e3b, 0x4e3a, 0x4e95, 0x4ea9, 0x4efa, 0x4f03, 0x4e56, 0x4e70, 0x4e59, 0x4e85, 0x4e7b, 0x4e0a, 0x4e5e, 0x4e33, 0x4e61, 0x4edb, 0x4e24, 0x4e24, 0x4e4e, 0x4ddc, 0x4e35, 0x4e52, 0x4dc2, 0x4e58, 0x4ecb, 0x4dea, 0x4e93, 0x4e7a, 0x4e7a, 0x4e24, 0x4e24, +0x4e1a, 0x4e76, 0x4e5f, 0x4dcb, 0x4e4c, 0x4e37, 0x4ed6, 0x4ec9, 0x4de4, 0x4f1e, 0x4e8e, 0x4e22, 0x4eef, 0x4e5e, 0x4e26, 0x4e5b, 0x4ed3, 0x4e7a, 0x4dbf, 0x4e76, 0x4e06, 0x4de0, 0x4e59, 0x4de5, 0x4e66, 0x4e1f, 0x4e76, 0x4dd8, 0x4e8d, 0x4ef8, 0x4ed3, 0x4e45, 0x4e84, 0x4e3d, 0x4ef2, 0x4df1, 0x4df6, 0x4e09, 0x4d77, 0x4e22, 0x4dc6, 0x4e8a, 0x4dcd, 0x4e8f, 0x4e57, 0x4eef, 0x4dbc, 0x4e40, 0x4f00, 0x4deb, 0x4e93, 0x4e33, 0x4d66, 0x4e1a, 0x4dc6, 0x4dee, 0x4e42, 0x4dd8, 0x4e23, 0x4e83, 0x4e0b, 0x4ee3, 0x4da3, 0x4e63, 0x4dbf, 0x4e1a, 0x4e7a, 0x4e8f, 0x4ede, 0x4eed, 0x4e27, 0x4e5a, 0x4e42, 0x4e2f, 0x4ea2, 0x4e1d, 0x4e16, 0x4e7e, 0x4eab, 0x4e64, 0x4ec7, 0x4dc2, 0x4d9a, 0x4eca, 0x4e4a, 0x4e22, 0x4e54, 0x4dd1, 0x4e67, 0x4e81, 0x4de7, 0x4e32, 0x4f41, 0x4e70, 0x4e0d, 0x4ddc, +0x4da1, 0x4deb, 0x4e14, 0x4d79, 0x4e1c, 0x4db9, 0x4e1a, 0x4e73, 0x4dd2, 0x4ee5, 0x4dd8, 0x4dbd, 0x4e94, 0x4dd3, 0x4da2, 0x4e2d, 0x4e62, 0x4dda, 0x4d75, 0x4e2d, 0x4e01, 0x4d3e, 0x4ddf, 0x4ddb, 0x4e1e, 0x4d91, 0x4e09, 0x4da9, 0x4e74, 0x4e7a, 0x4dba, 0x4dd4, 0x4e30, 0x4da4, 0x4e3e, 0x4d81, 0x4d95, 0x4d95, 0x4d81, 0x4e30, 0x4e23, 0x4e35, 0x4dbd, 0x4e34, 0x4e0a, 0x4e89, 0x4d2f, 0x4df7, 0x4e72, 0x4dbe, 0x4ef1, 0x4e28, 0x4d7e, 0x4dd9, 0x4dc9, 0x4dd5, 0x4e30, 0x4de8, 0x4da4, 0x4e00, 0x4e0a, 0x4e66, 0x4d32, 0x4e04, 0x4d5e, 0x4db9, 0x4e11, 0x4e3e, 0x4de4, 0x4e6c, 0x4e38, 0x4e10, 0x4db9, 0x4df4, 0x4e63, 0x4dec, 0x4deb, 0x4dd5, 0x4e2c, 0x4e28, 0x4e22, 0x4d86, 0x4dd8, 0x4e3e, 0x4d27, 0x4e7e, 0x4dc5, 0x4cf5, 0x4e04, 0x4e4e, 0x4e1c, 0x4df2, 0x4e10, 0x4de0, 0x4d6b, 0x4d53, +0x4de7, 0x4e37, 0x4e87, 0x4e27, 0x4e9b, 0x4e07, 0x4e87, 0x4f9e, 0x4e14, 0x4faf, 0x4edd, 0x4f04, 0x4f20, 0x4e28, 0x4d9f, 0x4e6d, 0x4f14, 0x4df2, 0x4e1b, 0x4e74, 0x4e77, 0x4d6f, 0x4e33, 0x4dff, 0x4e7c, 0x4e75, 0x4e6e, 0x4e2c, 0x4e68, 0x4f3a, 0x4ec2, 0x4e8f, 0x4eda, 0x4e35, 0x4f59, 0x4e42, 0x4e34, 0x4dfe, 0x4e42, 0x4e5b, 0x4e3a, 0x4e91, 0x4e20, 0x4e71, 0x4eec, 0x4eba, 0x4e03, 0x4e1f, 0x4eac, 0x4dd8, 0x4f57, 0x4ead, 0x4de8, 0x4de5, 0x4e17, 0x4e96, 0x4e7c, 0x4db7, 0x4ddb, 0x4e47, 0x4e6a, 0x4f17, 0x4d7d, 0x4e98, 0x4e04, 0x4e32, 0x4e82, 0x4ecf, 0x4ed7, 0x4f05, 0x4e77, 0x4ec6, 0x4ee5, 0x4e3f, 0x4e8f, 0x4e83, 0x4dcd, 0x4e0e, 0x4e9d, 0x4e58, 0x4eea, 0x4df3, 0x4de0, 0x4ecb, 0x4e06, 0x4e8a, 0x4e68, 0x4d67, 0x4e5a, 0x4eef, 0x4e05, 0x4e8b, 0x4eff, 0x4e46, 0x4e60, 0x4dd7, +0x4dcc, 0x4dee, 0x4e78, 0x4db4, 0x4e61, 0x4db1, 0x4e3e, 0x4edd, 0x4db1, 0x4ede, 0x4d68, 0x4e5a, 0x4efb, 0x4dd2, 0x4dfe, 0x4e28, 0x4ec4, 0x4e16, 0x4d85, 0x4e55, 0x4dff, 0x4dc4, 0x4e27, 0x4dc9, 0x4dc7, 0x4dd2, 0x4e79, 0x4d94, 0x4e4e, 0x4e8b, 0x4e6a, 0x4e52, 0x4dfc, 0x4e08, 0x4e1e, 0x4dff, 0x4daf, 0x4d7b, 0x4d51, 0x4da5, 0x4deb, 0x4e25, 0x4e00, 0x4e7a, 0x4de4, 0x4ea6, 0x4d64, 0x4ddc, 0x4ea0, 0x4ddb, 0x4e73, 0x4dfa, 0x4d1b, 0x4e17, 0x4d78, 0x4de8, 0x4eb9, 0x4dc4, 0x4dc0, 0x4e2e, 0x4e61, 0x4eb6, 0x4dac, 0x4e6a, 0x4d86, 0x4dd0, 0x4e92, 0x4e20, 0x4e2b, 0x4e5f, 0x4df0, 0x4e2d, 0x4e1b, 0x4dd7, 0x4e1d, 0x4e1f, 0x4e45, 0x4e6e, 0x4dc8, 0x4de8, 0x4e5f, 0x4dea, 0x4dd3, 0x4e5e, 0x4dda, 0x4dee, 0x4dac, 0x4d7d, 0x4e39, 0x4e3c, 0x4e22, 0x4e6e, 0x4e77, 0x4e45, 0x4e0b, 0x4dd3, +0x4e35, 0x4e33, 0x4e9c, 0x4de7, 0x4e4c, 0x4e54, 0x4eeb, 0x4f2a, 0x4e39, 0x4f67, 0x4e9e, 0x4e61, 0x4f2b, 0x4e50, 0x4e45, 0x4eab, 0x4f08, 0x4e4f, 0x4e01, 0x4e7a, 0x4e73, 0x4df9, 0x4e88, 0x4dd9, 0x4ea5, 0x4e6d, 0x4ef7, 0x4dcf, 0x4f2f, 0x4f58, 0x4ef7, 0x4eca, 0x4e71, 0x4e82, 0x4f22, 0x4e73, 0x4e35, 0x4e09, 0x4de6, 0x4e4a, 0x4e4c, 0x4e58, 0x4e07, 0x4f1c, 0x4ea0, 0x4f1d, 0x4de4, 0x4e88, 0x4ec8, 0x4e27, 0x4f13, 0x4df9, 0x4dc0, 0x4e55, 0x4da9, 0x4e3b, 0x4eb5, 0x4df2, 0x4e28, 0x4ea0, 0x4e45, 0x4f56, 0x4dfe, 0x4ebe, 0x4db8, 0x4e2b, 0x4ea1, 0x4ebc, 0x4ec6, 0x4f16, 0x4e85, 0x4e5a, 0x4e8c, 0x4e67, 0x4efc, 0x4e11, 0x4e3e, 0x4e7c, 0x4e7b, 0x4e66, 0x4ecf, 0x4df3, 0x4e39, 0x4e97, 0x4dd1, 0x4eb3, 0x4e47, 0x4e05, 0x4e7d, 0x4eb7, 0x4e7b, 0x4eca, 0x4f2b, 0x4ea0, 0x4e2b, 0x4e51, +0x4db9, 0x4dbf, 0x4e60, 0x4db6, 0x4ec2, 0x4da9, 0x4e40, 0x4eb2, 0x4dd0, 0x4ee8, 0x4df1, 0x4e3d, 0x4eef, 0x4e3a, 0x4e4c, 0x4dfe, 0x4e5e, 0x4e52, 0x4df0, 0x4e28, 0x4e65, 0x4de5, 0x4e47, 0x4d6d, 0x4e02, 0x4dd1, 0x4e7c, 0x4dde, 0x4e2f, 0x4e87, 0x4e9e, 0x4e58, 0x4e0a, 0x4e91, 0x4e0c, 0x4e05, 0x4e1d, 0x4d89, 0x4d53, 0x4da9, 0x4e6b, 0x4e71, 0x4df8, 0x4e8a, 0x4dcd, 0x4ed8, 0x4d7f, 0x4e1d, 0x4e77, 0x4d97, 0x4ea3, 0x4d6f, 0x4d9d, 0x4e0f, 0x4dcb, 0x4e2b, 0x4e8e, 0x4dbd, 0x4d96, 0x4e28, 0x4e09, 0x4f0c, 0x4d95, 0x4e53, 0x4d66, 0x4e32, 0x4e1c, 0x4dfb, 0x4e2a, 0x4e91, 0x4ed8, 0x4dd0, 0x4e94, 0x4e1e, 0x4dd3, 0x4e4a, 0x4dcd, 0x4e56, 0x4e2f, 0x4e7e, 0x4e22, 0x4dd2, 0x4e42, 0x4e9a, 0x4ddc, 0x4e3c, 0x4e8a, 0x4d97, 0x4e00, 0x4e7e, 0x4d80, 0x4e5c, 0x4eba, 0x4e5e, 0x4e47, 0x4e02, +0x4c99, 0x4c81, 0x4d53, 0x4cb2, 0x4d3f, 0x4ca4, 0x4d31, 0x4dab, 0x4d46, 0x4dae, 0x4ce7, 0x4d3d, 0x4da8, 0x4d00, 0x4d6a, 0x4d0d, 0x4d75, 0x4d0c, 0x4cc1, 0x4cf5, 0x4d2e, 0x4cc4, 0x4ccf, 0x4cac, 0x4cfc, 0x4cfa, 0x4d7f, 0x4ccd, 0x4d41, 0x4d62, 0x4d43, 0x4d2f, 0x4cf8, 0x4cfc, 0x4db4, 0x4d00, 0x4cfa, 0x4cad, 0x4cf2, 0x4cf7, 0x4d04, 0x4cf2, 0x4caf, 0x4d56, 0x4cda, 0x4d5b, 0x4cef, 0x4d37, 0x4d81, 0x4cca, 0x4ddd, 0x4ca3, 0x4c50, 0x4d2d, 0x4c81, 0x4cf7, 0x4d46, 0x4ce2, 0x4ce5, 0x4d38, 0x4cf5, 0x4de8, 0x4c6a, 0x4d4f, 0x4c86, 0x4cc3, 0x4d31, 0x4d5b, 0x4d55, 0x4d82, 0x4d74, 0x4cc0, 0x4d08, 0x4d27, 0x4d0a, 0x4cd9, 0x4cf2, 0x4d38, 0x4c9b, 0x4d29, 0x4d67, 0x4d1a, 0x4d25, 0x4d1d, 0x4cdd, 0x4cd0, 0x4ced, 0x4c6d, 0x4d0d, 0x4d72, 0x4d3f, 0x4d94, 0x4d5a, 0x4d2d, 0x4d00, 0x4cb8 +}; \ No newline at end of file diff --git a/redmule/redmule.c b/redmule/redmule.c new file mode 100644 index 0000000..5b5c037 --- /dev/null +++ b/redmule/redmule.c @@ -0,0 +1,91 @@ +/* + * Copyright (C) 2022-2023 ETH Zurich and University of Bologna + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * SPDX-License-Identifier: Apache-2.0 + * + * Author: Yvan Tortorella + * + * RedMulE SW test + */ + +#include +#include "stdio.h" +#include "utils/redmule_utils.h" +#include "archi_redmule.h" +#include "hal_redmule.h" + +// #include "inc/x_input.h" +// #include "inc/w_input.h" +// #include "inc/y_input.h" +// #include "inc/z_output.h" +#include "inc/golden.h" + +int main() { + + volatile int errors = 0; + + if(get_core_id() == 0){ + uint16_t m_size = M_SIZE; + uint16_t n_size = N_SIZE; + uint16_t k_size = K_SIZE; + + uint8_t volatile *x = (uint8_t volatile *) pi_l1_malloc(0, (2*m_size*n_size)); + uint8_t volatile *w = (uint8_t volatile *) pi_l1_malloc(0, (2*n_size*k_size)); + uint8_t volatile *y = (uint8_t volatile *) pi_l1_malloc(0, (2*m_size*k_size)); + + generate_test_data16((int) x, (int) w, (int) y, (int) m_size, (int) n_size, (int) k_size); + + int gold_sum = 0, check_sum = 0; + int i,j; + + int offload_id_tmp, offload_id; + + // Enable RedMulE + hwpe_cg_enable(); + + hwpe_soft_clear(); + + // while( ( offload_id_tmp = hwpe_acquire_job() ) < 0); + + // redmule_cfg ((unsigned int) x, + // (unsigned int) w, + // (unsigned int) y, + // m_size, n_size, k_size, + // (uint8_t) GEMM, + // (uint8_t) Float16); + redmule_x_add_set ((unsigned int) x); + redmule_w_add_set ((unsigned int) w); + redmule_y_add_set ((unsigned int) y); + redmule_z_add_set ((unsigned int) y); + redmule_cfg (m_size, n_size, k_size, gemm_ops); + + // Start RedMulE operation + hwpe_trigger_job(); + + // Wait for end of computation + redmule_evt_wait(); + + // Disable RedMulE + hwpe_cg_disable(); + + errors = redmule_compare16((int) y, (int) m_size, (int) k_size); + + *(int *) 0x1A1040A0 = errors; + + printf ("Terminated test with %d errors. See you!\n", errors); + + } + synch_barrier(); + return errors; +} diff --git a/redmule/utils/redmule_utils.h b/redmule/utils/redmule_utils.h new file mode 100644 index 0000000..3f7fa59 --- /dev/null +++ b/redmule/utils/redmule_utils.h @@ -0,0 +1,246 @@ +/* + * Copyright (C) 2022-2023 ETH Zurich and University of Bologna + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * SPDX-License-Identifier: Apache-2.0 + * + * Author: Yvan Tortorella + * + */ + +#include "../inc/x_input.h" +#include "../inc/w_input.h" +#include "../inc/y_input.h" +#include "../inc/z_output.h" + +#ifndef REDMULE_UTILS_H +#define REDMULE_UTILS_H + +void generate_test_data16(int x_start_addr, + int w_start_addr, + int y_start_addr, + int m_size, + int n_size, + int k_size) { + + int x_addr = x_start_addr; + int w_addr = w_start_addr; + int y_addr = y_start_addr; + int x_end_addr = x_start_addr + (2*m_size*n_size); + int w_end_addr = w_start_addr + (2*n_size*k_size); + int y_end_addr = y_start_addr + (2*m_size*k_size); + + // Generating input stimuli from golden model + for (x_addr = x_start_addr; x_addr < x_end_addr; x_addr += 2) { + int x = x_addr - x_start_addr; + *(uint32_t *)(x_addr) = x_inp[x/2]; + } + + // Generating Weight stimuli from golden model + for (w_addr = w_start_addr; w_addr < w_end_addr; w_addr += 2) { + int w = w_addr - w_start_addr; + *(uint32_t *)(w_addr) = w_inp[w/2]; + } + + for (y_addr = y_start_addr; y_addr < y_end_addr; y_addr += 2) { + int y = y_addr - y_start_addr; + *(uint32_t *)(y_addr) = y_inp[y/2]; + } +} + +int redmule_compare16 (int z_start_addr, int m_size, int k_size) { + int err = 0; + int z_end_addr = z_start_addr + 2*m_size*k_size; + uint16_t z_computed; + uint16_t diff, diff_1, diff_2; + + for (int z_addr = z_start_addr; z_addr < z_end_addr; z_addr += 2) { + int z = z_addr - z_start_addr; + z_computed = *(uint32_t *)(z_addr); + + if ( z_computed != z_oup[z/2] ) { + diff_1 = z_computed - z_oup[z/2]; + if (diff_1 > 3) { + diff_2 = z_oup[z/2] - z_computed; + if (diff_2 > 3) { + err++; + } + } + } + } + + return err; + +} + +int redmule16_compare_int(uint32_t *actual_z, uint32_t *golden_z, int len) { + #define ERR 0x0011 + uint32_t actual_word = 0; + uint16_t actual_MSHWord, actual_LSHWord; + uint32_t golden_word = 0; + uint16_t golden_MSHWord, golden_LSHWord; + uint32_t actual = 0; + uint32_t golden = 0; + + int errors = 0; + int error; + + for (int i=0; i golden_LSHWord) ? (actual_LSHWord - golden_LSHWord) : 0; + diff = (actual_LSHWord < golden_LSHWord) ? (golden_LSHWord - actual_LSHWord) : 0; + + if (diff > ERR) { + error = 1; + #ifdef VERBOSE + tfp_printf ("diff: 0x%08x\n", diff); + tfp_printf ("LSW: Error!\n"); + #endif + } + + // Checking Most Significant Half-Word + actual_MSHWord = (uint16_t)((actual_word >> 16) & 0x0000FFFF); + golden_MSHWord = (uint16_t)((golden_word >> 16) & 0x0000FFFF); + + diff = (actual_MSHWord > golden_MSHWord) ? (actual_MSHWord - golden_MSHWord) : 0; + diff = (actual_MSHWord < golden_MSHWord) ? (golden_MSHWord - actual_MSHWord) : 0; + + if (diff > ERR) { + error = 1; + #ifdef VERBOSE + tfp_printf ("diff: 0x%08x\n", diff); + tfp_printf ("MSW: Error!\n"); + #endif + } + + errors += error; + + #ifdef DEBUG + tfp_printf(" Golden: 0x%08x; Actual: 0x%08x,\n", golden_word, actual_word); + #endif + + #ifdef VERBOSE + if(error) { + if(errors==1) tfp_printf(" golden <- actual @ address @ index\n"); + tfp_printf(" 0x%08x <- 0x%08x @ 0x%08x @ 0x%08x\n", golden_word, actual_word, (actual_z+i), i*4); + } + #endif + } + return errors; +} + +int redmule8_compare_int(uint32_t *actual_z, uint32_t *golden_z, int len) { + #define ERR 0x0011 + uint32_t actual_word = 0; + uint8_t actual_Byte0, + actual_Byte1, + actual_Byte2, + actual_Byte3; + uint32_t golden_word = 0; + uint8_t golden_Byte0, + golden_Byte1, + golden_Byte2, + golden_Byte3; + uint32_t actual = 0; + uint32_t golden = 0; + + int errors = 0; + int error; + + for (int i=0; i golden_Byte0) ? (actual_Byte0 - golden_Byte0) : 0; + diff = (actual_Byte0 < golden_Byte0) ? (golden_Byte0 - actual_Byte0) : 0; + + if (diff > ERR) { + error = 1; + tfp_printf ("diff: 0x%08x\n", diff); + tfp_printf ("Byte0: Error!\n"); + } + + // Cheching Byte1 + actual_Byte1 = (uint8_t)( (actual_word >> 8 ) & 0x000000FF); + golden_Byte1 = (uint8_t)( (golden_word >> 8 ) & 0x000000FF); + + diff = (actual_Byte1 > golden_Byte1) ? (actual_Byte1 - golden_Byte1) : 0; + diff = (actual_Byte1 < golden_Byte1) ? (golden_Byte1 - actual_Byte1) : 0; + + if (diff > ERR) { + error = 1; + tfp_printf ("diff: 0x%08x\n", diff); + tfp_printf ("Byte1: Error!\n"); + } + + // Cheching Byte2 + actual_Byte2 = (uint8_t)( (actual_word >> 16 ) & 0x000000FF); + golden_Byte2 = (uint8_t)( (golden_word >> 16 ) & 0x000000FF); + + diff = (actual_Byte2 > golden_Byte2) ? (actual_Byte2 - golden_Byte2) : 0; + diff = (actual_Byte2 < golden_Byte2) ? (golden_Byte2 - actual_Byte2) : 0; + + if (diff > ERR) { + error = 1; + tfp_printf ("diff: 0x%08x\n", diff); + tfp_printf ("Byte2: Error!\n"); + } + + // Cheching Byte3 + actual_Byte3 = (uint8_t)( (actual_word >> 24 ) & 0x000000FF); + golden_Byte3 = (uint8_t)( (golden_word >> 24 ) & 0x000000FF); + + diff = (actual_Byte3 > golden_Byte3) ? (actual_Byte3 - golden_Byte3) : 0; + diff = (actual_Byte3 < golden_Byte3) ? (golden_Byte3 - actual_Byte3) : 0; + + if (diff > ERR) { + error = 1; + tfp_printf ("diff: 0x%08x\n", diff); + tfp_printf ("Byte3: Error!\n"); + } + + errors += error; + + #ifdef DEBUG + tfp_printf(" Golden: 0x%08x; Actual: 0x%08x,\n", golden_word, actual_word); + #endif + + #ifdef VERBOSE + if(error) { + if(errors==1) tfp_printf(" golden <- actual @ address @ index\n"); + tfp_printf(" 0x%08x <- 0x%08x @ 0x%08x @ 0x%08x\n", golden_word, actual_word, (actual_z+i), i*4); + } + #endif + } + return errors; +} + +#endif From 7ee9073a21314f82bf140dafba783c96382cc9a3 Mon Sep 17 00:00:00 2001 From: Yvan Tortorella Date: Mon, 11 Sep 2023 10:58:35 +0200 Subject: [PATCH 08/56] Cleaner HWPE test integration, added DMA-based tensors initialization. TODO: understand why the core reads Xs during matrix checks. --- {redmule => hwpe/redmule}/Makefile | 4 + {redmule => hwpe/redmule}/archi_redmule.h | 29 ++- {redmule => hwpe/redmule}/hal_redmule.h | 271 +++++++++++++++++++-- {redmule => hwpe/redmule}/inc/golden.h | 0 {redmule => hwpe/redmule}/inc/tensor_dim.h | 0 {redmule => hwpe/redmule}/inc/w_2D.h | 0 {redmule => hwpe/redmule}/inc/w_input.h | 0 {redmule => hwpe/redmule}/inc/x_2D.h | 0 {redmule => hwpe/redmule}/inc/x_input.h | 0 {redmule => hwpe/redmule}/inc/y_2D.h | 0 {redmule => hwpe/redmule}/inc/y_input.h | 0 {redmule => hwpe/redmule}/inc/z_2D.h | 0 {redmule => hwpe/redmule}/inc/z_output.h | 0 {redmule => hwpe/redmule}/redmule.c | 40 ++- redmule/utils/redmule_utils.h | 246 ------------------- 15 files changed, 315 insertions(+), 275 deletions(-) rename {redmule => hwpe/redmule}/Makefile (67%) rename {redmule => hwpe/redmule}/archi_redmule.h (88%) rename {redmule => hwpe/redmule}/hal_redmule.h (54%) rename {redmule => hwpe/redmule}/inc/golden.h (100%) rename {redmule => hwpe/redmule}/inc/tensor_dim.h (100%) rename {redmule => hwpe/redmule}/inc/w_2D.h (100%) rename {redmule => hwpe/redmule}/inc/w_input.h (100%) rename {redmule => hwpe/redmule}/inc/x_2D.h (100%) rename {redmule => hwpe/redmule}/inc/x_input.h (100%) rename {redmule => hwpe/redmule}/inc/y_2D.h (100%) rename {redmule => hwpe/redmule}/inc/y_input.h (100%) rename {redmule => hwpe/redmule}/inc/z_2D.h (100%) rename {redmule => hwpe/redmule}/inc/z_output.h (100%) rename {redmule => hwpe/redmule}/redmule.c (70%) delete mode 100644 redmule/utils/redmule_utils.h diff --git a/redmule/Makefile b/hwpe/redmule/Makefile similarity index 67% rename from redmule/Makefile rename to hwpe/redmule/Makefile index ce481f9..0b85ed2 100644 --- a/redmule/Makefile +++ b/hwpe/redmule/Makefile @@ -2,4 +2,8 @@ PULP_APP = test PULP_APP_SRCS = redmule.c PULP_CFLAGS = -O3 +ifeq ($(use_dma),1) + PULP_CFLAGS += -DUSE_DMA +endif + include $(PULP_SDK_HOME)/install/rules/pulp_rt.mk diff --git a/redmule/archi_redmule.h b/hwpe/redmule/archi_redmule.h similarity index 88% rename from redmule/archi_redmule.h rename to hwpe/redmule/archi_redmule.h index 956c190..39f3203 100644 --- a/redmule/archi_redmule.h +++ b/hwpe/redmule/archi_redmule.h @@ -62,8 +62,17 @@ * */ -#define ARCHI_CL_EVT_ACC0 12 -#define ARCHI_CL_EVT_ACC1 13 +/* PULP Cluster Archi defines */ +#define ARCHI_CLUST_CTRL_BASE 0x50200000 +#define ARCHI_CLUST_HWPE_BASE 0x50201000 +#define DMA_COMMAND_QUEUE 0x50204400 +#define DMA_STATUS_REGISTER 0x50204404 +#define ARCHI_CL_HWPE_EVT0 12 +#define ARCHI_CL_HWPE_EVT1 13 +#define FC_DMA_EVENT 8 +#define CL_DMA_EVENT 22 +#define CLUST_CTRL_HWPE_EN 0x18 +#define CLUST_CTRL_HWPE_EN_MASK 0x800 #define __builtin_bitinsert(a,b,c,d) (a | (((b << (32-c)) >> (32-c)) << d)) // RedMulE architecture @@ -74,9 +83,6 @@ #define PIPE_REGS 3 #define ARRAY_WIDTH 12 /* Superior limit is ARRAY_HEIGHT*PIPE_REGS */ -// Base address -#define REDMULE_BASE_ADD 0x50201000 - // Commands #define REDMULE_TRIGGER 0x00 #define REDMULE_ACQUIRE 0x04 @@ -142,4 +148,17 @@ #define FP16ALT 0x4 #define FP8ALT 0x5 +/* DMA Archi */ +#define DMA_TX 0 +#define DMA_RX 1 +#define DMA_INC 1 + +#define PLP_DMA_TYPE_BIT 0x00000011 +#define PLP_DMA_INCR_BIT 0x00000012 +#define PLP_DMA_2D_BIT 0x00000013 +#define PLP_DMA_ELE_BIT 0x00000014 +#define PLP_DMA_ILE_BIT 0x00000015 +#define PLP_DMA_BLE_BIT 0x00000016 +#define PLP_DMA_2D_TCDM_BIT 0x0000017 + #endif diff --git a/redmule/hal_redmule.h b/hwpe/redmule/hal_redmule.h similarity index 54% rename from redmule/hal_redmule.h rename to hwpe/redmule/hal_redmule.h index b4595e0..c5a0c32 100644 --- a/redmule/hal_redmule.h +++ b/hwpe/redmule/hal_redmule.h @@ -23,6 +23,11 @@ #define __HAL_REDMULE_H__ #include +#include "inc/x_input.h" +#include "inc/w_input.h" +#include "inc/y_input.h" +#include "inc/z_output.h" +#include "inc/golden.h" #include "inc/tensor_dim.h" /* @@ -32,20 +37,12 @@ * */ -/* LOW-LEVEL HAL */ -#define CLUST_CTRL_BASE 0x50200000 -#define REDMULE_ADDR_BASE 0x50201000 -#define REDMULE_ADDR_SPACE 0x00000100 - -#define CLUST_CTRL_HWPE_EN 0x18 -#define CLUS_CTRL_REDMULE_CG_EN_MASK 0x800 - // For all the following functions we use __builtin_pulp_OffsetedWrite and __builtin_pulp_OffsetedRead // instead of classic load/store because otherwise the compiler is not able to correctly factorize // the HWPE base in case several accesses are done, ending up with twice more code -#define HWPE_WRITE(value, offset) *(int *)(REDMULE_ADDR_BASE + offset) = value -#define HWPE_READ(offset) *(int *)(REDMULE_ADDR_BASE + offset) +#define HWPE_WRITE(value, offset) *(int *)(ARCHI_CLUST_HWPE_BASE + offset) = value +#define HWPE_READ(offset) *(int *)(ARCHI_CLUST_HWPE_BASE + offset) static inline void redmule_x_add_set (unsigned int value) { HWPE_WRITE(value, REDMULE_REG_OFFS + REDMULE_REG_X_PTR); @@ -89,17 +86,48 @@ static inline void hwpe_soft_clear() { } static inline void hwpe_cg_enable() { - *(volatile int*) (CLUST_CTRL_BASE + CLUST_CTRL_HWPE_EN) |= CLUS_CTRL_REDMULE_CG_EN_MASK; + *(volatile int*) (ARCHI_CLUST_CTRL_BASE + CLUST_CTRL_HWPE_EN) |= CLUST_CTRL_HWPE_EN_MASK; } static inline void hwpe_cg_disable() { - *(volatile int*) (CLUST_CTRL_BASE + CLUST_CTRL_HWPE_EN) &= ~CLUS_CTRL_REDMULE_CG_EN_MASK; + *(volatile int*) (ARCHI_CLUST_CTRL_BASE + CLUST_CTRL_HWPE_EN) &= ~CLUST_CTRL_HWPE_EN_MASK; } static inline void redmule_evt_wait() { do { - eu_evt_maskWaitAndClr (1 << ARCHI_CL_EVT_ACC0); - } while((*(int volatile *)(REDMULE_ADDR_BASE + REDMULE_STATUS)) != 0); + eu_evt_maskWaitAndClr (1 << ARCHI_CL_HWPE_EVT0); + } while((*(int volatile *)(ARCHI_CLUST_HWPE_BASE + REDMULE_STATUS)) != 0); +} + +/* DMA APIs */ +static inline int mchan_alloc(){ + return *(volatile int*) DMA_COMMAND_QUEUE; +} + +static inline void mchan_transfer(unsigned int len, + unsigned int ext_addr, + unsigned int tcdm_addr) { + + *(volatile int*) DMA_COMMAND_QUEUE = len | + (DMA_RX << PLP_DMA_TYPE_BIT) | + (DMA_INC << PLP_DMA_INCR_BIT) | + (0 << PLP_DMA_2D_BIT) | + (1 << PLP_DMA_ELE_BIT) | + (1 << PLP_DMA_ILE_BIT) | + (0 << PLP_DMA_BLE_BIT) | + (0 << PLP_DMA_2D_TCDM_BIT); + *(volatile int*) DMA_COMMAND_QUEUE = tcdm_addr; + *(volatile int*) DMA_COMMAND_QUEUE = ext_addr; +} + +static inline void mchan_barrier(int id) { + while(((*(volatile int*)(DMA_STATUS_REGISTER)) >> id ) & 0x1 ) { + eu_evt_maskWaitAndClr(1 << FC_DMA_EVENT); + } +} + +static inline void mchan_free(int id) { + *(volatile int*) DMA_STATUS_REGISTER = 0x1 << id; } // void redmule_cfg (unsigned int x, unsigned int w, unsigned int z, @@ -281,4 +309,219 @@ void redmule_cfg (uint16_t m_size, uint16_t n_size, uint16_t k_size, uint8_t gem HWPE_WRITE(op_selection , REDMULE_REG_OFFS + REDMULE_REG_OP_SELECTION ); } +void generate_test_data16(int x_start_addr, + int w_start_addr, + int y_start_addr, + int m_size, + int n_size, + int k_size) { + + int x_addr = x_start_addr; + int w_addr = w_start_addr; + int y_addr = y_start_addr; + int x_end_addr = x_start_addr + (2*m_size*n_size); + int w_end_addr = w_start_addr + (2*n_size*k_size); + int y_end_addr = y_start_addr + (2*m_size*k_size); + + // Generating input stimuli from golden model + for (x_addr = x_start_addr; x_addr < x_end_addr; x_addr += 2) { + int x = x_addr - x_start_addr; + *(uint32_t *)(x_addr) = x_inp[x/2]; + } + + // Generating Weight stimuli from golden model + for (w_addr = w_start_addr; w_addr < w_end_addr; w_addr += 2) { + int w = w_addr - w_start_addr; + *(uint32_t *)(w_addr) = w_inp[w/2]; + } + + for (y_addr = y_start_addr; y_addr < y_end_addr; y_addr += 2) { + int y = y_addr - y_start_addr; + *(uint32_t *)(y_addr) = y_inp[y/2]; + } +} + +int redmule_compare16 (int z_start_addr, int m_size, int k_size) { + int err = 0; + int z_end_addr = z_start_addr + 2*m_size*k_size; + uint16_t z_computed; + uint16_t diff, diff_1, diff_2; + + for (int z_addr = z_start_addr; z_addr < z_end_addr; z_addr += 2) { + int z = z_addr - z_start_addr; + z_computed = *(uint32_t *)(z_addr); + + if ( z_computed != z_oup[z/2] ) { + diff_1 = z_computed - z_oup[z/2]; + if (diff_1 > 3) { + diff_2 = z_oup[z/2] - z_computed; + if (diff_2 > 3) { + err++; + } + } + } + } + + return err; + +} + +int redmule16_compare_int(uint32_t *actual_z, uint32_t *golden_z, int len) { + #define ERR 0x0011 + uint32_t actual_word = 0; + uint16_t actual_MSHWord, actual_LSHWord; + uint32_t golden_word = 0; + uint16_t golden_MSHWord, golden_LSHWord; + uint32_t actual = 0; + uint32_t golden = 0; + + int errors = 0; + int error; + + for (int i=0; i golden_LSHWord) ? (actual_LSHWord - golden_LSHWord) : 0; + diff = (actual_LSHWord < golden_LSHWord) ? (golden_LSHWord - actual_LSHWord) : 0; + + if (diff > ERR) { + error = 1; + #ifdef VERBOSE + tfp_printf ("diff: 0x%08x\n", diff); + tfp_printf ("LSW: Error!\n"); + #endif + } + + // Checking Most Significant Half-Word + actual_MSHWord = (uint16_t)((actual_word >> 16) & 0x0000FFFF); + golden_MSHWord = (uint16_t)((golden_word >> 16) & 0x0000FFFF); + + diff = (actual_MSHWord > golden_MSHWord) ? (actual_MSHWord - golden_MSHWord) : 0; + diff = (actual_MSHWord < golden_MSHWord) ? (golden_MSHWord - actual_MSHWord) : 0; + + if (diff > ERR) { + error = 1; + #ifdef VERBOSE + tfp_printf ("diff: 0x%08x\n", diff); + tfp_printf ("MSW: Error!\n"); + #endif + } + + errors += error; + + #ifdef DEBUG + tfp_printf(" Golden: 0x%08x; Actual: 0x%08x,\n", golden_word, actual_word); + #endif + + #ifdef VERBOSE + if(error) { + if(errors==1) tfp_printf(" golden <- actual @ address @ index\n"); + tfp_printf(" 0x%08x <- 0x%08x @ 0x%08x @ 0x%08x\n", golden_word, actual_word, (actual_z+i), i*4); + } + #endif + } + return errors; +} + +int redmule8_compare_int(uint32_t *actual_z, uint32_t *golden_z, int len) { + #define ERR 0x0011 + uint32_t actual_word = 0; + uint8_t actual_Byte0, + actual_Byte1, + actual_Byte2, + actual_Byte3; + uint32_t golden_word = 0; + uint8_t golden_Byte0, + golden_Byte1, + golden_Byte2, + golden_Byte3; + uint32_t actual = 0; + uint32_t golden = 0; + + int errors = 0; + int error; + + for (int i=0; i golden_Byte0) ? (actual_Byte0 - golden_Byte0) : 0; + diff = (actual_Byte0 < golden_Byte0) ? (golden_Byte0 - actual_Byte0) : 0; + + if (diff > ERR) { + error = 1; + tfp_printf ("diff: 0x%08x\n", diff); + tfp_printf ("Byte0: Error!\n"); + } + + // Cheching Byte1 + actual_Byte1 = (uint8_t)( (actual_word >> 8 ) & 0x000000FF); + golden_Byte1 = (uint8_t)( (golden_word >> 8 ) & 0x000000FF); + + diff = (actual_Byte1 > golden_Byte1) ? (actual_Byte1 - golden_Byte1) : 0; + diff = (actual_Byte1 < golden_Byte1) ? (golden_Byte1 - actual_Byte1) : 0; + + if (diff > ERR) { + error = 1; + tfp_printf ("diff: 0x%08x\n", diff); + tfp_printf ("Byte1: Error!\n"); + } + + // Cheching Byte2 + actual_Byte2 = (uint8_t)( (actual_word >> 16 ) & 0x000000FF); + golden_Byte2 = (uint8_t)( (golden_word >> 16 ) & 0x000000FF); + + diff = (actual_Byte2 > golden_Byte2) ? (actual_Byte2 - golden_Byte2) : 0; + diff = (actual_Byte2 < golden_Byte2) ? (golden_Byte2 - actual_Byte2) : 0; + + if (diff > ERR) { + error = 1; + tfp_printf ("diff: 0x%08x\n", diff); + tfp_printf ("Byte2: Error!\n"); + } + + // Cheching Byte3 + actual_Byte3 = (uint8_t)( (actual_word >> 24 ) & 0x000000FF); + golden_Byte3 = (uint8_t)( (golden_word >> 24 ) & 0x000000FF); + + diff = (actual_Byte3 > golden_Byte3) ? (actual_Byte3 - golden_Byte3) : 0; + diff = (actual_Byte3 < golden_Byte3) ? (golden_Byte3 - actual_Byte3) : 0; + + if (diff > ERR) { + error = 1; + tfp_printf ("diff: 0x%08x\n", diff); + tfp_printf ("Byte3: Error!\n"); + } + + errors += error; + + #ifdef DEBUG + tfp_printf(" Golden: 0x%08x; Actual: 0x%08x,\n", golden_word, actual_word); + #endif + + #ifdef VERBOSE + if(error) { + if(errors==1) tfp_printf(" golden <- actual @ address @ index\n"); + tfp_printf(" 0x%08x <- 0x%08x @ 0x%08x @ 0x%08x\n", golden_word, actual_word, (actual_z+i), i*4); + } + #endif + } + return errors; +} + #endif diff --git a/redmule/inc/golden.h b/hwpe/redmule/inc/golden.h similarity index 100% rename from redmule/inc/golden.h rename to hwpe/redmule/inc/golden.h diff --git a/redmule/inc/tensor_dim.h b/hwpe/redmule/inc/tensor_dim.h similarity index 100% rename from redmule/inc/tensor_dim.h rename to hwpe/redmule/inc/tensor_dim.h diff --git a/redmule/inc/w_2D.h b/hwpe/redmule/inc/w_2D.h similarity index 100% rename from redmule/inc/w_2D.h rename to hwpe/redmule/inc/w_2D.h diff --git a/redmule/inc/w_input.h b/hwpe/redmule/inc/w_input.h similarity index 100% rename from redmule/inc/w_input.h rename to hwpe/redmule/inc/w_input.h diff --git a/redmule/inc/x_2D.h b/hwpe/redmule/inc/x_2D.h similarity index 100% rename from redmule/inc/x_2D.h rename to hwpe/redmule/inc/x_2D.h diff --git a/redmule/inc/x_input.h b/hwpe/redmule/inc/x_input.h similarity index 100% rename from redmule/inc/x_input.h rename to hwpe/redmule/inc/x_input.h diff --git a/redmule/inc/y_2D.h b/hwpe/redmule/inc/y_2D.h similarity index 100% rename from redmule/inc/y_2D.h rename to hwpe/redmule/inc/y_2D.h diff --git a/redmule/inc/y_input.h b/hwpe/redmule/inc/y_input.h similarity index 100% rename from redmule/inc/y_input.h rename to hwpe/redmule/inc/y_input.h diff --git a/redmule/inc/z_2D.h b/hwpe/redmule/inc/z_2D.h similarity index 100% rename from redmule/inc/z_2D.h rename to hwpe/redmule/inc/z_2D.h diff --git a/redmule/inc/z_output.h b/hwpe/redmule/inc/z_output.h similarity index 100% rename from redmule/inc/z_output.h rename to hwpe/redmule/inc/z_output.h diff --git a/redmule/redmule.c b/hwpe/redmule/redmule.c similarity index 70% rename from redmule/redmule.c rename to hwpe/redmule/redmule.c index 5b5c037..9e361b1 100644 --- a/redmule/redmule.c +++ b/hwpe/redmule/redmule.c @@ -21,30 +21,52 @@ #include #include "stdio.h" -#include "utils/redmule_utils.h" #include "archi_redmule.h" #include "hal_redmule.h" -// #include "inc/x_input.h" -// #include "inc/w_input.h" -// #include "inc/y_input.h" -// #include "inc/z_output.h" -#include "inc/golden.h" - int main() { volatile int errors = 0; if(get_core_id() == 0){ + uint16_t m_size = M_SIZE; uint16_t n_size = N_SIZE; uint16_t k_size = K_SIZE; + uint8_t *x_ext = x_inp; + uint8_t *w_ext = w_inp; + uint8_t *y_ext = y_inp; + uint8_t *z_ext = z_oup; + uint8_t volatile *x = (uint8_t volatile *) pi_l1_malloc(0, (2*m_size*n_size)); uint8_t volatile *w = (uint8_t volatile *) pi_l1_malloc(0, (2*n_size*k_size)); uint8_t volatile *y = (uint8_t volatile *) pi_l1_malloc(0, (2*m_size*k_size)); - generate_test_data16((int) x, (int) w, (int) y, (int) m_size, (int) n_size, (int) k_size); + #ifdef USE_DMA + volatile unsigned int dma_id = 0; + dma_id = mchan_alloc(); + mchan_transfer((unsigned int) 2*(2*m_size*n_size), + (unsigned int) x_ext, + (unsigned int) x ); + mchan_barrier(dma_id); + mchan_free(dma_id); + + dma_id = mchan_alloc(); + mchan_transfer((unsigned int) 2*(2*n_size*k_size), + (unsigned int) w_ext, + (unsigned int) w ); + mchan_barrier(dma_id); + mchan_free(dma_id); + + dma_id = mchan_alloc(); + mchan_transfer((unsigned int) 2*(2*m_size*k_size), + (unsigned int) y_ext, + (unsigned int) y ); + mchan_barrier(dma_id); + #else + generate_test_data16((int) x, (int) w, (int) y, (int) m_size, (int) n_size, (int) k_size); + #endif int gold_sum = 0, check_sum = 0; int i,j; @@ -56,8 +78,6 @@ int main() { hwpe_soft_clear(); - // while( ( offload_id_tmp = hwpe_acquire_job() ) < 0); - // redmule_cfg ((unsigned int) x, // (unsigned int) w, // (unsigned int) y, diff --git a/redmule/utils/redmule_utils.h b/redmule/utils/redmule_utils.h deleted file mode 100644 index 3f7fa59..0000000 --- a/redmule/utils/redmule_utils.h +++ /dev/null @@ -1,246 +0,0 @@ -/* - * Copyright (C) 2022-2023 ETH Zurich and University of Bologna - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * SPDX-License-Identifier: Apache-2.0 - * - * Author: Yvan Tortorella - * - */ - -#include "../inc/x_input.h" -#include "../inc/w_input.h" -#include "../inc/y_input.h" -#include "../inc/z_output.h" - -#ifndef REDMULE_UTILS_H -#define REDMULE_UTILS_H - -void generate_test_data16(int x_start_addr, - int w_start_addr, - int y_start_addr, - int m_size, - int n_size, - int k_size) { - - int x_addr = x_start_addr; - int w_addr = w_start_addr; - int y_addr = y_start_addr; - int x_end_addr = x_start_addr + (2*m_size*n_size); - int w_end_addr = w_start_addr + (2*n_size*k_size); - int y_end_addr = y_start_addr + (2*m_size*k_size); - - // Generating input stimuli from golden model - for (x_addr = x_start_addr; x_addr < x_end_addr; x_addr += 2) { - int x = x_addr - x_start_addr; - *(uint32_t *)(x_addr) = x_inp[x/2]; - } - - // Generating Weight stimuli from golden model - for (w_addr = w_start_addr; w_addr < w_end_addr; w_addr += 2) { - int w = w_addr - w_start_addr; - *(uint32_t *)(w_addr) = w_inp[w/2]; - } - - for (y_addr = y_start_addr; y_addr < y_end_addr; y_addr += 2) { - int y = y_addr - y_start_addr; - *(uint32_t *)(y_addr) = y_inp[y/2]; - } -} - -int redmule_compare16 (int z_start_addr, int m_size, int k_size) { - int err = 0; - int z_end_addr = z_start_addr + 2*m_size*k_size; - uint16_t z_computed; - uint16_t diff, diff_1, diff_2; - - for (int z_addr = z_start_addr; z_addr < z_end_addr; z_addr += 2) { - int z = z_addr - z_start_addr; - z_computed = *(uint32_t *)(z_addr); - - if ( z_computed != z_oup[z/2] ) { - diff_1 = z_computed - z_oup[z/2]; - if (diff_1 > 3) { - diff_2 = z_oup[z/2] - z_computed; - if (diff_2 > 3) { - err++; - } - } - } - } - - return err; - -} - -int redmule16_compare_int(uint32_t *actual_z, uint32_t *golden_z, int len) { - #define ERR 0x0011 - uint32_t actual_word = 0; - uint16_t actual_MSHWord, actual_LSHWord; - uint32_t golden_word = 0; - uint16_t golden_MSHWord, golden_LSHWord; - uint32_t actual = 0; - uint32_t golden = 0; - - int errors = 0; - int error; - - for (int i=0; i golden_LSHWord) ? (actual_LSHWord - golden_LSHWord) : 0; - diff = (actual_LSHWord < golden_LSHWord) ? (golden_LSHWord - actual_LSHWord) : 0; - - if (diff > ERR) { - error = 1; - #ifdef VERBOSE - tfp_printf ("diff: 0x%08x\n", diff); - tfp_printf ("LSW: Error!\n"); - #endif - } - - // Checking Most Significant Half-Word - actual_MSHWord = (uint16_t)((actual_word >> 16) & 0x0000FFFF); - golden_MSHWord = (uint16_t)((golden_word >> 16) & 0x0000FFFF); - - diff = (actual_MSHWord > golden_MSHWord) ? (actual_MSHWord - golden_MSHWord) : 0; - diff = (actual_MSHWord < golden_MSHWord) ? (golden_MSHWord - actual_MSHWord) : 0; - - if (diff > ERR) { - error = 1; - #ifdef VERBOSE - tfp_printf ("diff: 0x%08x\n", diff); - tfp_printf ("MSW: Error!\n"); - #endif - } - - errors += error; - - #ifdef DEBUG - tfp_printf(" Golden: 0x%08x; Actual: 0x%08x,\n", golden_word, actual_word); - #endif - - #ifdef VERBOSE - if(error) { - if(errors==1) tfp_printf(" golden <- actual @ address @ index\n"); - tfp_printf(" 0x%08x <- 0x%08x @ 0x%08x @ 0x%08x\n", golden_word, actual_word, (actual_z+i), i*4); - } - #endif - } - return errors; -} - -int redmule8_compare_int(uint32_t *actual_z, uint32_t *golden_z, int len) { - #define ERR 0x0011 - uint32_t actual_word = 0; - uint8_t actual_Byte0, - actual_Byte1, - actual_Byte2, - actual_Byte3; - uint32_t golden_word = 0; - uint8_t golden_Byte0, - golden_Byte1, - golden_Byte2, - golden_Byte3; - uint32_t actual = 0; - uint32_t golden = 0; - - int errors = 0; - int error; - - for (int i=0; i golden_Byte0) ? (actual_Byte0 - golden_Byte0) : 0; - diff = (actual_Byte0 < golden_Byte0) ? (golden_Byte0 - actual_Byte0) : 0; - - if (diff > ERR) { - error = 1; - tfp_printf ("diff: 0x%08x\n", diff); - tfp_printf ("Byte0: Error!\n"); - } - - // Cheching Byte1 - actual_Byte1 = (uint8_t)( (actual_word >> 8 ) & 0x000000FF); - golden_Byte1 = (uint8_t)( (golden_word >> 8 ) & 0x000000FF); - - diff = (actual_Byte1 > golden_Byte1) ? (actual_Byte1 - golden_Byte1) : 0; - diff = (actual_Byte1 < golden_Byte1) ? (golden_Byte1 - actual_Byte1) : 0; - - if (diff > ERR) { - error = 1; - tfp_printf ("diff: 0x%08x\n", diff); - tfp_printf ("Byte1: Error!\n"); - } - - // Cheching Byte2 - actual_Byte2 = (uint8_t)( (actual_word >> 16 ) & 0x000000FF); - golden_Byte2 = (uint8_t)( (golden_word >> 16 ) & 0x000000FF); - - diff = (actual_Byte2 > golden_Byte2) ? (actual_Byte2 - golden_Byte2) : 0; - diff = (actual_Byte2 < golden_Byte2) ? (golden_Byte2 - actual_Byte2) : 0; - - if (diff > ERR) { - error = 1; - tfp_printf ("diff: 0x%08x\n", diff); - tfp_printf ("Byte2: Error!\n"); - } - - // Cheching Byte3 - actual_Byte3 = (uint8_t)( (actual_word >> 24 ) & 0x000000FF); - golden_Byte3 = (uint8_t)( (golden_word >> 24 ) & 0x000000FF); - - diff = (actual_Byte3 > golden_Byte3) ? (actual_Byte3 - golden_Byte3) : 0; - diff = (actual_Byte3 < golden_Byte3) ? (golden_Byte3 - actual_Byte3) : 0; - - if (diff > ERR) { - error = 1; - tfp_printf ("diff: 0x%08x\n", diff); - tfp_printf ("Byte3: Error!\n"); - } - - errors += error; - - #ifdef DEBUG - tfp_printf(" Golden: 0x%08x; Actual: 0x%08x,\n", golden_word, actual_word); - #endif - - #ifdef VERBOSE - if(error) { - if(errors==1) tfp_printf(" golden <- actual @ address @ index\n"); - tfp_printf(" 0x%08x <- 0x%08x @ 0x%08x @ 0x%08x\n", golden_word, actual_word, (actual_z+i), i*4); - } - #endif - } - return errors; -} - -#endif From 5489a97d39721e6d6eedc028e4dacc75eb706ed6 Mon Sep 17 00:00:00 2001 From: Yvan Tortorella Date: Sat, 30 Sep 2023 11:06:21 +0200 Subject: [PATCH 09/56] Updated HWPE test, restored old CI script for mchan tests --- hwpe/redmule/archi_redmule.h | 8 +- hwpe/redmule/inc/golden.h | 4994 +++------------------------------ hwpe/redmule/inc/tensor_dim.h | 6 +- hwpe/redmule/inc/w_2D.h | 130 +- hwpe/redmule/inc/w_input.h | 130 +- hwpe/redmule/inc/x_2D.h | 122 +- hwpe/redmule/inc/x_input.h | 122 +- hwpe/redmule/inc/y_2D.h | 122 +- hwpe/redmule/inc/y_input.h | 122 +- hwpe/redmule/inc/z_2D.h | 122 +- hwpe/redmule/inc/z_output.h | 122 +- hwpe/redmule/redmule.c | 1 + pulp_cluster-mchan-tests.yaml | 10 +- 13 files changed, 614 insertions(+), 5397 deletions(-) diff --git a/hwpe/redmule/archi_redmule.h b/hwpe/redmule/archi_redmule.h index 39f3203..9222d63 100644 --- a/hwpe/redmule/archi_redmule.h +++ b/hwpe/redmule/archi_redmule.h @@ -137,10 +137,10 @@ #define RNE 0x0 #define RTZ 0x1 -#define OP_FMADD 0x3 -#define OP_ADD 0x5 -#define OP_MUL 0x6 -#define OP_MINMAX 0xA +#define OP_FMADD 0x0 +#define OP_ADD 0x2 +#define OP_MUL 0x3 +#define OP_MINMAX 0x7 // FP Formats encoding #define FP16 0x2 diff --git a/hwpe/redmule/inc/golden.h b/hwpe/redmule/inc/golden.h index 3e6ba0d..f664e47 100644 --- a/hwpe/redmule/inc/golden.h +++ b/hwpe/redmule/inc/golden.h @@ -1,4611 +1,387 @@ /* Header file generated by RedMulE Golden Model */ -uint32_t golden [4608] = { -0x4e0e4e2d, -0x4de54dda, -0x4dbc4e0e, -0x4ed64e3f, -0x4eef4dce, -0x4e554dfc, -0x4d964e2f, -0x4d8a4ddd, -0x4dc24e4c, -0x4daa4d63, -0x4d894e0a, -0x4d7d4dff, -0x4e074d9e, -0x4d684ded, -0x4ea94e69, -0x4e134e7b, -0x4e134e22, -0x4dd64e34, -0x4db64db5, -0x4dfd4d9c, -0x4e0f4e51, -0x4e464d92, -0x4e974db8, -0x4dcb4d14, -0x4d8e4e6a, -0x4dee4eb5, -0x4e1c4d95, -0x4e1e4dcb, -0x4d5d4dff, -0x4dde4d53, -0x4ea44dda, -0x4e1d4d1c, -0x4dad4d30, -0x4e044e27, -0x4ebb4e55, -0x4daa4e47, -0x4dd84ddf, -0x4db04e3a, -0x4e1c4dc0, -0x4e334dc1, -0x4dcd4e2b, -0x4ebe4da2, -0x4da94d64, -0x4d804e7f, -0x4e9b4e14, -0x4e854d7e, -0x4e6e4e6d, -0x4def4e1e, -0x4d5f4def, -0x4daa4e1d, -0x4dc04e29, -0x4f014e5f, -0x4f334dcf, -0x4e864dcf, -0x4dfd4ecf, -0x4d924deb, -0x4e294eda, -0x4e354dae, -0x4da94e49, -0x4d7d4e33, -0x4e284e23, -0x4e124dc0, -0x4eda4e62, -0x4e434e71, -0x4df34e2d, -0x4e0d4e69, -0x4dbd4df7, -0x4da34dbc, -0x4e3c4d9d, -0x4ebb4e01, -0x4e354dd5, -0x4de44d3f, -0x4dc44efa, -0x4dac4ee3, -0x4da34d93, -0x4dee4da1, -0x4db04e9a, -0x4e994db0, -0x4eaf4dfe, -0x4e354d59, -0x4de74dee, -0x4e5d4e60, -0x4eb14ec7, -0x4de04e59, -0x4df54e35, -0x4df14df4, -0x4e274df4, -0x4e4b4dd5, -0x4da14e87, -0x4eb64dbc, -0x4e4f4d77, -0x4d774e04, -0x4ede4e43, -0x4e384df7, -0x4e434e81, -0x4e014e43, -0x4dbc4d9d, -0x4e2f4e1d, -0x4ddf4e69, -0x4f1f4e62, -0x4f0c4dbd, -0x4da74d88, -0x4dfa4f23, -0x4de94e2e, -0x4de44e67, -0x4ded4da6, -0x4d1b4e28, -0x4dbb4e1d, -0x4e1c4dea, -0x4ddc4e67, -0x4e7d4de6, -0x4e1c4e2c, -0x4def4e41, -0x4ddc4e14, -0x4cfa4dc3, -0x4db04dac, -0x4df64e84, -0x4e5a4d77, -0x4ea74dd5, -0x4da64d34, -0x4dca4eb7, -0x4dcb4e9c, -0x4dd74d04, -0x4e294dcd, -0x4d804df3, -0x4e3d4dc5, -0x4e424dd1, -0x4e544d76, -0x4db34d5a, -0x4de84e0a, -0x4e8e4ea2, -0x4e434dd8, -0x4d9b4e16, -0x4e394e8b, -0x4dfa4e02, -0x4e074de8, -0x4dd44ddd, -0x4e054d3f, -0x4e334dac, -0x4d4c4e61, -0x4e634e0b, -0x4e374ddd, -0x4e474e7d, -0x4db94dbd, -0x4e324db6, -0x4e334e87, -0x4e2b4e43, -0x4f284e79, -0x4edc4de8, -0x4e944e5e, -0x4e184f32, -0x4e774dbc, -0x4e8c4ea9, -0x4ea94daa, -0x4e204e43, -0x4da84e3c, -0x4e1b4eb0, -0x4e324e7a, -0x4eb24eb8, -0x4e8b4ea5, -0x4de94e7f, -0x4df54ee2, -0x4e5c4e01, -0x4dee4dbb, -0x4e654e41, -0x4ef54e2d, -0x4e784e84, -0x4e324de8, -0x4dea4ee1, -0x4def4ef6, -0x4e4f4da8, -0x4e764dd0, -0x4def4e84, -0x4e534d88, -0x4f794e34, -0x4ea14db4, -0x4dee4dc1, -0x4ec44e44, -0x4e824ed6, -0x4df44e5e, -0x4e454ec3, -0x4e164ea1, -0x4e6f4e00, -0x4e804e50, -0x4df74e9c, -0x4edf4e1c, -0x4e274dcb, -0x4d784e39, -0x4ec74e1c, -0x4e814e37, -0x4e4b4e8f, -0x4dfa4e45, -0x4e3d4e2a, -0x4df54e3d, -0x4def4e3a, -0x4ed64e2f, -0x4ef34db3, -0x4e8e4e5a, -0x4db64f50, -0x4e344e46, -0x4e1b4ec9, -0x4e804dd6, -0x4d994e1f, -0x4e524e76, -0x4e8d4e8a, -0x4dc14e5b, -0x4efc4eaf, -0x4e524ebb, -0x4df44e78, -0x4df14e78, -0x4dd44dfa, -0x4e484d47, -0x4e204e04, -0x4ebb4ddd, -0x4eca4e44, -0x4dec4d9b, -0x4e124e9c, -0x4dfd4ec7, -0x4e464d6c, -0x4e374dc0, -0x4dbc4e59, -0x4e404d8b, -0x4ef84e31, -0x4de84de1, -0x4dd24d97, -0x4e1c4ea0, -0x4eb44e3a, -0x4e414dd5, -0x4dbc4e5d, -0x4e554e1d, -0x4dfc4e77, -0x4e224e4b, -0x4d6d4ebe, -0x4e2a4dad, -0x4e564dd3, -0x4d2e4e3a, -0x4e954e42, -0x4e3b4dce, -0x4e464eef, -0x4df84ded, -0x4d7b4d39, -0x4cfa4da0, -0x4d164d82, -0x4e324d98, -0x4e4a4ce2, -0x4d644d6a, -0x4d474e27, -0x4d164d4c, -0x4d494d7c, -0x4d3e4d0d, -0x4d124d83, -0x4cbe4d19, -0x4d834d0f, -0x4cdb4d65, -0x4ded4d3d, -0x4d5b4dff, -0x4d704d74, -0x4ccd4df1, -0x4d164d49, -0x4d2f4cc3, -0x4d854d25, -0x4dc34d31, -0x4dcb4d5b, -0x4d514cb3, -0x4d294d98, -0x4cc14dc9, -0x4d904cd1, -0x4d594cd3, -0x4cf74d5e, -0x4dae4cda, -0x4e134d8f, -0x4d6a4cee, -0x4d334d0f, -0x4d564d00, -0x4dae4d88, -0x4d404d78, -0x4d7c4d9c, -0x4d2c4d58, -0x4d284d47, -0x4dfc4db4, -0x4cec4d97, -0x4dc04cf7, -0x4d814d0c, -0x4d284d58, -0x4dad4d63, -0x4d754d12, -0x4d514d77, -0x4d0b4ceb, -0x4d5e4d6b, -0x4da94e5d, -0x4d974e1f, -0x4ec44df3, -0x4ee04d90, -0x4e244da1, -0x4d684e3b, -0x4ddf4da9, -0x4d994dfd, -0x4dba4d6c, -0x4daa4e07, -0x4dd84df3, -0x4dc74d51, -0x4d6e4ddb, -0x4df24dd9, -0x4e154e39, -0x4e024e04, -0x4dbf4e05, -0x4d434de1, -0x4d9e4d73, -0x4daf4dd5, -0x4e514daf, -0x4e5c4dcc, -0x4d5d4d8f, -0x4d7c4e2f, -0x4dd74e80, -0x4dc24dbd, -0x4e114d5f, -0x4d6b4de6, -0x4db44d1a, -0x4eba4dcb, -0x4ded4d24, -0x4d514dc5, -0x4dfd4dfe, -0x4e334e44, -0x4d994e59, -0x4d994ddf, -0x4d664dd4, -0x4de94df2, -0x4e304d80, -0x4daf4e0a, -0x4e3d4dc3, -0x4d724d79, -0x4d424de1, -0x4ea14e4e, -0x4e134d84, -0x4dc94e0c, -0x4df44ddf, -0x4e024db8, -0x4d8a4e6b, -0x4e494e8f, -0x4eb64e5b, -0x4ef94e1d, -0x4e654e2f, -0x4db44ef9, -0x4e5c4e86, -0x4e234eae, -0x4e5a4d8f, -0x4de04e1e, -0x4dbd4e5c, -0x4e374e38, -0x4ded4ec8, -0x4ec54ecd, -0x4e9b4f06, -0x4ea24e8a, -0x4dea4e41, -0x4d704e04, -0x4e344d5a, -0x4e514e01, -0x4ef04e0f, -0x4edd4dfe, -0x4dd04d8b, -0x4e694e6d, -0x4de44f18, -0x4e214d8f, -0x4e074de2, -0x4ded4e56, -0x4e394d8d, -0x4f374e50, -0x4e274dd6, -0x4df04e04, -0x4e5b4e92, -0x4eeb4e99, -0x4e604e66, -0x4df64ebc, -0x4e404e57, -0x4e5c4eaf, -0x4e444e3f, -0x4de84e23, -0x4e7e4e56, -0x4e524e01, -0x4dc54e5b, -0x4ee04e94, -0x4e484e48, -0x4e794e63, -0x4e3c4e21, -0x4e584e6a, -0x4e574f33, -0x4ee84ef5, -0x4fd14f08, -0x4fc64e62, -0x4eab4f04, -0x4e9b4fda, -0x4f274eec, -0x4eaf4f04, -0x4f174e19, -0x4e594f28, -0x4e0d4ea0, -0x4e734eec, -0x4e6a4f0c, -0x4f954ead, -0x4e8f4edf, -0x4ecd4eca, -0x4ea54edd, -0x4dff4edf, -0x4e644e28, -0x4ed24f27, -0x4f294e25, -0x4f954e6c, -0x4e5b4e35, -0x4ea84f4d, -0x4eb44f3b, -0x4ec04e2b, -0x4e914e61, -0x4e8c4ee7, -0x4f054e76, -0x4f5e4ed3, -0x4f164e81, -0x4e554dfd, -0x4ed14e9d, -0x4fa54ec6, -0x4ee34ef2, -0x4e514f1d, -0x4ed84ebf, -0x4ef14ee9, -0x4f024ee2, -0x4e7b4fae, -0x4f3c4ee4, -0x4ec74e59, -0x4e364e97, -0x4f024efb, -0x4f034ecb, -0x4eb24f13, -0x4e774e94, -0x4e384e1b, -0x4dc64edf, -0x4e354ee0, -0x4f974efd, -0x4f9b4e50, -0x4e394ddc, -0x4e554f6b, -0x4e634eb4, -0x4e3b4ea0, -0x4e2a4e17, -0x4e234ed9, -0x4e564ee7, -0x4e9b4e34, -0x4e0b4eda, -0x4ef24e82, -0x4ec34e95, -0x4e554f05, -0x4e8f4efc, -0x4e014e7c, -0x4e454e0a, -0x4e654e28, -0x4e784e20, -0x4ea14ebd, -0x4e2b4e22, -0x4dcf4f6f, -0x4e0f4f35, -0x4e764dcb, -0x4e7f4e08, -0x4e5b4f05, -0x4e834dd7, -0x4f4c4ebd, -0x4eef4d7b, -0x4e784e01, -0x4ea64ee6, -0x4f004f28, -0x4e314e4e, -0x4e4e4ed7, -0x4e7a4e6f, -0x4ee64e9f, -0x4e914e74, -0x4e1f4eba, -0x4f5d4e1f, -0x4e844e22, -0x4da34e2c, -0x4ec54e82, -0x4f134ec8, -0x4e9a4ef4, -0x4e5a4eb6, -0x4db64d6b, -0x4d3b4e0b, -0x4d884df7, -0x4e814e15, -0x4ef04d5f, -0x4da24e2f, -0x4da14e6a, -0x4e6c4d9c, -0x4db14e0b, -0x4dfc4d3c, -0x4d634d97, -0x4d4d4e39, -0x4d994da9, -0x4da04e40, -0x4e284de3, -0x4ddc4e04, -0x4de64dcb, -0x4d914e6b, -0x4d844dd5, -0x4d364d44, -0x4de64d75, -0x4ed74dba, -0x4e5a4d6f, -0x4d6d4d88, -0x4d644e03, -0x4d8a4e96, -0x4dca4d5c, -0x4e1b4d7c, -0x4d864dfc, -0x4dd94d66, -0x4e534df3, -0x4e2a4d4b, -0x4d434d9b, -0x4e5a4ddb, -0x4e564de7, -0x4d8c4dee, -0x4dc74dcc, -0x4d804daa, -0x4e564d97, -0x4e774d5f, -0x4d514d98, -0x4e894d8d, -0x4d6b4d38, -0x4d8e4dc8, -0x4e134df9, -0x4e074d2f, -0x4da04e0f, -0x4d6a4d95, -0x4deb4e54, -0x4d9d4ea3, -0x4e3c4e6c, -0x4f564e8d, -0x4fa94de7, -0x4eb44e3a, -0x4e5d4f3d, -0x4ead4ea7, -0x4ea74f1d, -0x4ea74deb, -0x4e364e17, -0x4e274e45, -0x4e3a4e42, -0x4e114f1a, -0x4ee04eb4, -0x4ed24e33, -0x4e074e16, -0x4df24ea9, -0x4dda4e4c, -0x4e0e4e31, -0x4e564e32, -0x4efb4e0c, -0x4ebb4e64, -0x4e3b4dbf, -0x4e634f0c, -0x4e4f4f04, -0x4e3a4d9c, -0x4e7c4e16, -0x4de24e46, -0x4e914df4, -0x4f274eb6, -0x4ecc4d8a, -0x4db34e0d, -0x4e8a4e8e, -0x4f1f4ef0, -0x4ea34eab, -0x4df34e4a, -0x4e6a4ec1, -0x4eff4e6c, -0x4ed34e45, -0x4e6f4ec6, -0x4ebf4e4a, -0x4e404de4, -0x4d9e4e27, -0x4ecb4e79, -0x4ed64e61, -0x4e4b4e9a, -0x4e734e55, -0x4e1e4e5e, -0x4df74ea1, -0x4e714e66, -0x4fbf4f2d, -0x4fe24ea4, -0x4eb44eab, -0x4e8b4f9c, -0x4e794e41, -0x4e964f69, -0x4e864e07, -0x4e144ec0, -0x4df44e95, -0x4e784e9e, -0x4df94eea, -0x4f404f28, -0x4e934f87, -0x4ec54e29, -0x4eb64ec1, -0x4e9f4e8f, -0x4e754def, -0x4e9b4e75, -0x4f684e29, -0x4ed84eac, -0x4e524da6, -0x4ea64f2e, -0x4ea94f46, -0x4e524e5b, -0x4e994e4d, -0x4e9e4ea2, -0x4ed34ded, -0x4fe34f10, -0x4ee24df6, -0x4f054e13, -0x4ef34ed1, -0x4ef24ef8, -0x4e1f4eb6, -0x4e254ecc, -0x4ea34ea1, -0x4e984ef8, -0x4ee04e43, -0x4e384f0e, -0x4f7b4e74, -0x4ee64df6, -0x4de84eba, -0x4f1a4e70, -0x4ed24e91, -0x4e844f2a, -0x4ea04ed3, -0x4e044e1c, -0x4e124dfd, -0x4e0b4de2, -0x4ecf4e45, -0x4edb4d91, -0x4de14e15, -0x4e074ee1, -0x4dc14da5, -0x4e0f4e24, -0x4e264d89, -0x4d974da5, -0x4ddb4e39, -0x4e3b4e48, -0x4d9f4e20, -0x4e824e65, -0x4d9e4e0b, -0x4dbd4de7, -0x4da54e42, -0x4da44dc9, -0x4da94dc0, -0x4e5c4e74, -0x4ee14de2, -0x4eb14e10, -0x4da64d66, -0x4e1f4eba, -0x4e614e9c, -0x4dcb4d43, -0x4e084d98, -0x4dea4e22, -0x4e764ddd, -0x4e864e4e, -0x4dfe4d7b, -0x4e374d4c, -0x4e314d97, -0x4ebe4e4f, -0x4da14e34, -0x4d9e4e64, -0x4e044df2, -0x4e3a4dd1, -0x4ea44dd7, -0x4db94e09, -0x4e9a4d96, -0x4dd54d95, -0x4d544e1d, -0x4e4a4de8, -0x4e6e4dd0, -0x4e494e53, -0x4d684d86, -0x4dee4da0, -0x4df44e81, -0x4dcd4de0, -0x4eae4ddd, -0x4f094dce, -0x4df04e0f, -0x4df54ecc, -0x4dca4ddf, -0x4d7f4dd6, -0x4e0d4dc1, -0x4d9f4dff, -0x4d554dd5, -0x4d844daa, -0x4da94e57, -0x4eb34e39, -0x4dea4e60, -0x4e184dd4, -0x4dbf4e4a, -0x4d9f4d8b, -0x4d9f4d54, -0x4de54e12, -0x4e244d9b, -0x4e484db4, -0x4d884dba, -0x4d394e72, -0x4d654e4e, -0x4e054cef, -0x4dbe4da6, -0x4d714e07, -0x4deb4d4a, -0x4e5e4e37, -0x4e204dc0, -0x4d5a4d3a, -0x4e314dbd, -0x4e774e64, -0x4da24e40, -0x4da54e46, -0x4db44db6, -0x4e174db0, -0x4e144dc7, -0x4dc04e24, -0x4e254d5b, -0x4e084d91, -0x4db04e39, -0x4e554ddc, -0x4e174d39, -0x4dd54e75, -0x4e2c4de9, -0x4d5a4d74, -0x4d5b4dde, -0x4d094dc3, -0x4e084d93, -0x4e794da7, -0x4dea4d85, -0x4d6f4e38, -0x4d924d63, -0x4d6a4df3, -0x4d9c4cd6, -0x4d564d83, -0x4d8e4dd5, -0x4da64d84, -0x4d2a4e24, -0x4e224dbb, -0x4de84da3, -0x4dcc4d30, -0x4d874db8, -0x4d3b4d63, -0x4d784d3a, -0x4d6c4d6c, -0x4df44d72, -0x4e254d6a, -0x4d204d3a, -0x4d004e25, -0x4d644dfc, -0x4d954cf9, -0x4d3b4d05, -0x4d0e4db6, -0x4dd14d12, -0x4e0b4d95, -0x4de44d6a, -0x4d874d38, -0x4df44e22, -0x4e094dc1, -0x4dca4d9d, -0x4d6a4dd9, -0x4d3e4d8f, -0x4dbb4dba, -0x4d7b4d84, -0x4d4d4e1e, -0x4e004d67, -0x4d544d27, -0x4cda4db9, -0x4e294db1, -0x4e224d71, -0x4d614df2, -0x4d524df0, -0x4d904d31, -0x4db34e17, -0x4dac4e1b, -0x4ec64e08, -0x4eea4da8, -0x4e2c4dcb, -0x4df04ee0, -0x4dcc4dda, -0x4d9a4ea1, -0x4d914dac, -0x4daf4e2b, -0x4dc64d8d, -0x4e0e4e1f, -0x4d574e23, -0x4e3d4e3b, -0x4e664e32, -0x4da74e1f, -0x4d474e4d, -0x4d694da1, -0x4df54d6f, -0x4e094e0b, -0x4e414d7c, -0x4e4f4e09, -0x4df94db3, -0x4de94e6a, -0x4e2d4f3e, -0x4e444da0, -0x4df64e1a, -0x4d914dfc, -0x4dcf4d48, -0x4eb44e23, -0x4e404ce1, -0x4da54d7d, -0x4e344e55, -0x4ea24e67, -0x4db54e48, -0x4e0b4e25, -0x4dc44e1a, -0x4df34e27, -0x4e314de6, -0x4de84e6f, -0x4e704d85, -0x4dd94d69, -0x4d184de8, -0x4e044da7, -0x4e2c4dd3, -0x4e234e3d, -0x4dd24dd6, -0x4de24e0b, -0x4dc34e76, -0x4da54e4c, -0x4ec54e8f, -0x4f7d4e4d, -0x4e194df4, -0x4dc44efc, -0x4dd84de0, -0x4dc94ec5, -0x4e2b4dd7, -0x4d8d4e79, -0x4daa4e5a, -0x4e3f4e09, -0x4d994e7d, -0x4ed94e50, -0x4e5b4ec7, -0x4e6d4e31, -0x4e524ea8, -0x4dfa4e4a, -0x4e284d61, -0x4e304dfa, -0x4ebd4dbd, -0x4f174e1c, -0x4e344dad, -0x4dd84e90, -0x4e404f2e, -0x4e2a4d4b, -0x4deb4d89, -0x4de84e42, -0x4e294d63, -0x4f354e46, -0x4e254dd4, -0x4e3a4d5f, -0x4e5b4ee4, -0x4ea54e97, -0x4e344e51, -0x4e534e6b, -0x4e144e7a, -0x4e0e4e12, -0x4e0d4df0, -0x4de54ebc, -0x4ead4dbb, -0x4e624df9, -0x4d914e34, -0x4ec34e53, -0x4e184e2a, -0x4eac4e5c, -0x4e1a4e3c, -0x4ded4db4, -0x4dd84e56, -0x4e204dd5, -0x4f274f02, -0x4f174e56, -0x4e354e18, -0x4e284f47, -0x4e264e4c, -0x4db74e8c, -0x4e2b4dab, -0x4de74e62, -0x4d764e47, -0x4e324dd3, -0x4d9b4e41, -0x4ee14e36, -0x4e4e4eda, -0x4e284e46, -0x4e654e76, -0x4dd64df2, -0x4e0c4dc5, -0x4da94e02, -0x4eb14da7, -0x4e9c4e0c, -0x4e4b4db8, -0x4dca4ea5, -0x4e034ea0, -0x4e304d89, -0x4e2f4da8, -0x4e244e4f, -0x4e2a4dce, -0x4f064e77, -0x4e7e4d80, -0x4df14d88, -0x4e124e6b, -0x4eed4e4f, -0x4e444e20, -0x4e384df4, -0x4e444e62, -0x4e7d4e3a, -0x4eac4e02, -0x4e074e74, -0x4e844df2, -0x4e3a4dfe, -0x4d864e0c, -0x4e724e4d, -0x4e394dfb, -0x4e464e61, -0x4e424dfd, -0x4dbb4de9, -0x4d6f4e30, -0x4d824dfa, -0x4ec54e70, -0x4f064da1, -0x4e474e5b, -0x4dad4e79, -0x4e614dd5, -0x4dae4e44, -0x4e4f4dee, -0x4d9e4e40, -0x4ddf4e3e, -0x4e844dab, -0x4da74e5e, -0x4f0e4e58, -0x4e424e10, -0x4e244e18, -0x4e084e7c, -0x4db74e14, -0x4e224db8, -0x4e074df6, -0x4ebc4d8b, -0x4eb34db7, -0x4d9e4d91, -0x4db84e45, -0x4dc64ed5, -0x4da14db4, -0x4e4c4d70, -0x4d8a4e72, -0x4d7f4dc9, -0x4f304e1d, -0x4e934d7c, -0x4de44dd2, -0x4e724e93, -0x4f3d4e34, -0x4de74e42, -0x4df44e76, -0x4df64eae, -0x4e504e2b, -0x4e664e4b, -0x4de24e63, -0x4e804de1, -0x4dd74d96, -0x4ce74dee, -0x4e604d9a, -0x4e684dc3, -0x4e2d4e4f, -0x4e314e06, -0x4e5b4e00, -0x4dda4e77, -0x4dee4e1a, -0x4f154e83, -0x4f9a4e59, -0x4e604e31, -0x4e944f31, -0x4e364df9, -0x4e484eaf, -0x4e494dd9, -0x4e354e2c, -0x4e484ec4, -0x4e244e46, -0x4dbc4e95, -0x4f2e4edf, -0x4e2f4eeb, -0x4e314e0d, -0x4e754ef6, -0x4dd94dd4, -0x4e1f4d8f, -0x4dc84e09, -0x4ef24dfd, -0x4ed04e8f, -0x4e124de5, -0x4df44ebd, -0x4dda4ece, -0x4e4e4d36, -0x4e284e0d, -0x4e244ead, -0x4e794df9, -0x4f044eae, -0x4e714deb, -0x4e7b4d7e, -0x4ee24e6d, -0x4f2b4e66, -0x4df64e6f, -0x4e284ec0, -0x4e284e7a, -0x4e4e4e28, -0x4ef74e66, -0x4deb4ed3, -0x4eb34e05, -0x4e884dd9, -0x4dfd4e61, -0x4e894e3b, -0x4e504e3a, -0x4e514ec6, -0x4de04e3f, -0x4e184dcf, -0x4db74e1c, -0x4e1f4e2e, -0x4f104e65, -0x4fb44dc9, -0x4e634e91, -0x4e564f7c, -0x4e0d4e23, -0x4dea4e8d, -0x4e184db7, -0x4da84e14, -0x4d714e1e, -0x4e354df0, -0x4dec4e39, -0x4f104e2a, -0x4e504e78, -0x4e774e31, -0x4dca4f16, -0x4e1c4d9c, -0x4e114da1, -0x4e034e25, -0x4ecf4d87, -0x4ec74e2a, -0x4e444d9b, -0x4dc24e78, -0x4e084f13, -0x4ddc4d85, -0x4db34dd4, -0x4e264e2e, -0x4e2e4df4, -0x4f224e60, -0x4ebb4d9d, -0x4e654d96, -0x4e4b4e39, -0x4ee24e0f, -0x4dd04e96, -0x4e264e47, -0x4e324e9e, -0x4e814dfa, -0x4e734e39, -0x4d8e4ec3, -0x4e9d4dfe, -0x4e434ded, -0x4d854ddb, -0x4e594e00, -0x4e654def, -0x4e314e9c, -0x4dd14df9, -0x4d874d16, -0x4d674e0a, -0x4d494dfb, -0x4e264daa, -0x4e604d51, -0x4d774d6f, -0x4da74eb9, -0x4d9f4d87, -0x4d9e4ddd, -0x4dc14d4e, -0x4d444dc3, -0x4d534d6b, -0x4d3f4d48, -0x4d6f4ddb, -0x4de94db5, -0x4ddb4dfc, -0x4d7e4de2, -0x4d6f4e02, -0x4d134d80, -0x4d084d1b, -0x4d524dc7, -0x4d8b4d7f, -0x4dfe4db3, -0x4d124d24, -0x4d8c4dd6, -0x4d614e24, -0x4dcd4d12, -0x4d834d2d, -0x4dc84db3, -0x4dd54d3f, -0x4e444d9e, -0x4dbc4d09, -0x4d294d01, -0x4d7d4d96, -0x4e104dd3, -0x4dd24d50, -0x4da84d5d, -0x4d984dac, -0x4d5f4d92, -0x4de54d9a, -0x4da54dcd, -0x4dd64d6a, -0x4d654d0c, -0x4d424d4c, -0x4dbd4dd3, -0x4d894db7, -0x4de34dcd, -0x4d644d99, -0x4d4a4cf5, -0x4d034dd3, -0x4d6c4d77, -0x4e284db3, -0x4e344d32, -0x4d9a4d68, -0x4db74dad, -0x4d6d4dad, -0x4d304e1e, -0x4d9d4d3d, -0x4d294df3, -0x4ce24d33, -0x4d674d74, -0x4d114d9d, -0x4e344dca, -0x4dca4d92, -0x4d334d8c, -0x4db54da0, -0x4d324d3b, -0x4d4f4d0f, -0x4da44cf7, -0x4e284d97, -0x4d7d4d40, -0x4d564d00, -0x4cc84e0a, -0x4d084e0d, -0x4d524d21, -0x4d5a4cce, -0x4ced4de3, -0x4db94ced, -0x4e164dbd, -0x4da14cf5, -0x4d4f4d57, -0x4daf4ddc, -0x4db24dfa, -0x4d1c4e26, -0x4d314d8a, -0x4cd34d88, -0x4dac4da8, -0x4d914d50, -0x4d564d76, -0x4dab4d5b, -0x4d934d56, -0x4cef4d6f, -0x4ddb4d8e, -0x4dd84d6a, -0x4dff4db3, -0x4d734d77, -0x4df94e14, -0x4dc54e48, -0x4dcc4dbd, -0x4ec34e10, -0x4f5c4df1, -0x4e5d4e1c, -0x4df14edc, -0x4e2d4dc0, -0x4de34e62, -0x4e394d61, -0x4d794e3b, -0x4d764e3f, -0x4dc84daf, -0x4d8d4e42, -0x4f054e79, -0x4e3d4e44, -0x4e924dce, -0x4df74eb7, -0x4db04dc4, -0x4df34da3, -0x4dd64db6, -0x4ea34dc5, -0x4ec84d9e, -0x4e224d7c, -0x4d924ee2, -0x4db24f08, -0x4df64dc3, -0x4e504d31, -0x4dd74e8f, -0x4e1a4d6e, -0x4f144e86, -0x4e854d99, -0x4e464d54, -0x4e604e26, -0x4f024e4b, -0x4e044e22, -0x4e0e4e08, -0x4e4a4e68, -0x4e5a4de0, -0x4e3d4e36, -0x4de24e54, -0x4e144df7, -0x4e2f4dc6, -0x4d704e56, -0x4e2a4dd2, -0x4e7f4e35, -0x4e204e7c, -0x4d7e4db4, -0x4dc24dc6, -0x4d9c4e0e, -0x4df84df6, -0x4eb04dfa, -0x4ee44dbc, -0x4da74df7, -0x4d804e6e, -0x4dcf4dd3, -0x4d964e02, -0x4e574df7, -0x4db14e54, -0x4d544e11, -0x4de14e15, -0x4d6c4e29, -0x4e7b4dfd, -0x4dfb4e56, -0x4db14e05, -0x4dde4e80, -0x4d954db5, -0x4de34d5e, -0x4dea4e10, -0x4e654d4f, -0x4e8c4dbc, -0x4ddc4d8d, -0x4daf4e2d, -0x4d7d4eb2, -0x4dfc4d12, -0x4dcf4d73, -0x4ddf4e1f, -0x4e584da2, -0x4e984e2c, -0x4dec4d5b, -0x4d9f4d85, -0x4e434de6, -0x4e3e4dca, -0x4db74e6e, -0x4dc14e2e, -0x4da44dc9, -0x4e024dc9, -0x4e2f4df8, -0x4dfe4e59, -0x4e644d43, -0x4ddd4d80, -0x4d574e15, -0x4df34e48, -0x4e2f4dad, -0x4e284e47, -0x4db74d94, -0x4d444d5f, -0x4d6d4de2, -0x4d024d9b, -0x4e084dbe, -0x4e164d52, -0x4d664d7f, -0x4d554e4e, -0x4d7f4d0f, -0x4d6e4d95, -0x4dad4ce8, -0x4d424d69, -0x4d334dd8, -0x4d614d9f, -0x4d434dcb, -0x4e124dbe, -0x4da14dd1, -0x4da94d81, -0x4d574dff, -0x4cef4d5b, -0x4ccd4d36, -0x4d204d6a, -0x4e304d73, -0x4e024d5c, -0x4d134d09, -0x4d084dee, -0x4ce24e28, -0x4d534ca5, -0x4d254ce4, -0x4d444dec, -0x4dc94d3a, -0x4e0f4da0, -0x4d804d36, -0x4d4c4c83, -0x4da24d64, -0x4e174e08, -0x4d3b4d3f, -0x4d824db3, -0x4d874d60, -0x4d7a4d58, -0x4da74d47, -0x4d1c4d24, -0x4e064d2b, -0x4dc64d16, -0x4cdf4d87, -0x4db94d70, -0x4dc94d27, -0x4d8f4dbb, -0x4d164d3f, -0x4e6c4e12, -0x4e814e94, -0x4e604ec0, -0x4f8e4e3b, -0x4f5a4df8, -0x4e884e88, -0x4e404f1c, -0x4ddf4dea, -0x4e4e4ecb, -0x4e324e15, -0x4dc54ec9, -0x4dd24e88, -0x4e384e51, -0x4e034e88, -0x4ef64e75, -0x4e884eda, -0x4e774ea8, -0x4df34ec2, -0x4e234e12, -0x4e0a4df5, -0x4e654e86, -0x4ede4df8, -0x4ea94e52, -0x4e3d4da0, -0x4e374f16, -0x4df54ee0, -0x4e7a4def, -0x4e6b4dc7, -0x4e024ea5, -0x4e354e52, -0x4f2c4e6f, -0x4e5d4dd0, -0x4e364e27, -0x4e774e9b, -0x4f734eaa, -0x4dfc4e60, -0x4e604f07, -0x4dfd4e77, -0x4e7a4e39, -0x4e654e32, -0x4e284e35, -0x4eb34dfe, -0x4e8f4e20, -0x4e054e7a, -0x4eca4e5b, -0x4ec34dcf, -0x4ea44eee, -0x4ded4e05, -0x4e814e2a, -0x4de34e68, -0x4dc54e93, -0x4f2a4e6a, -0x4fa34df5, -0x4e504e54, -0x4e464edf, -0x4e354e9a, -0x4e704ef8, -0x4e3d4da1, -0x4dfb4e71, -0x4d8e4e64, -0x4e3d4e2f, -0x4dd64e51, -0x4ea04ecd, -0x4eba4ecf, -0x4e654e64, -0x4dfd4ed8, -0x4e1a4e11, -0x4e5c4dc1, -0x4e314e66, -0x4efa4e6d, -0x4f064dfe, -0x4e0a4dd9, -0x4df14eed, -0x4e124ef5, -0x4e564dc6, -0x4dec4e31, -0x4db64e66, -0x4e404d8c, -0x4f374e38, -0x4ebe4dc4, -0x4de64e42, -0x4eab4e8b, -0x4eee4e84, -0x4e134ec7, -0x4e7c4e45, -0x4e724ea5, -0x4e914e7f, -0x4e744e53, -0x4e414e5f, -0x4ea34e9c, -0x4e064da1, -0x4dce4e0b, -0x4ed84e5a, -0x4e5c4deb, -0x4eaf4ecd, -0x4dc04e17, -0x4df54de1, -0x4de44e47, -0x4de74e55, -0x4f364e23, -0x4f544e02, -0x4e774e1d, -0x4e3a4ef4, -0x4e2f4e11, -0x4dd74ef2, -0x4e6f4d78, -0x4da14e4b, -0x4df24dc0, -0x4e314de6, -0x4e124ed7, -0x4eba4e15, -0x4e6e4e06, -0x4e114e1e, -0x4dc74e69, -0x4d9a4df4, -0x4e164dbb, -0x4e224dd8, -0x4e5c4dad, -0x4ea64df8, -0x4e124d9d, -0x4dd94ec1, -0x4ded4f1a, -0x4de34d6c, -0x4e414dc5, -0x4d964e66, -0x4e154def, -0x4ec84e17, -0x4e8e4da2, -0x4de24de3, -0x4e9c4ead, -0x4f0e4e8d, -0x4e424e35, -0x4e0f4ebd, -0x4e1b4e8e, -0x4e374e29, -0x4e334e5f, -0x4e104e74, -0x4e6f4dc6, -0x4e074dd4, -0x4d7c4e8f, -0x4ea64da2, -0x4ea04ddd, -0x4e444edc, -0x4dcf4e3f, -0x4dbc4d64, -0x4d7b4e2a, -0x4d704e0c, -0x4e7f4d5c, -0x4e824d22, -0x4e344dc7, -0x4d434eb8, -0x4db44d93, -0x4d6c4e62, -0x4df94d5d, -0x4d4c4daf, -0x4d5e4d4d, -0x4d684dc0, -0x4d394e15, -0x4e8d4e00, -0x4e3d4df5, -0x4d3d4dbd, -0x4d684ddc, -0x4d324d55, -0x4d584cec, -0x4dcc4d8d, -0x4ded4d55, -0x4e144dfd, -0x4d694d4e, -0x4d604e63, -0x4db84e56, -0x4daf4d40, -0x4db74d4b, -0x4d574d88, -0x4df04d78, -0x4ea74ddf, -0x4ddf4d74, -0x4d454d1f, -0x4dc04dda, -0x4e5e4e11, -0x4dfb4de0, -0x4dbe4db1, -0x4df04df9, -0x4de64db3, -0x4e034d9c, -0x4d734e08, -0x4df14d70, -0x4dc54dca, -0x4d154d97, -0x4e614db0, -0x4dc54d67, -0x4d854e20, -0x4d624d6b, -0x4df64d80, -0x4d6a4e6f, -0x4dc44e44, -0x4e7a4e6c, -0x4f7d4dd6, -0x4dc44dda, -0x4db64f2e, -0x4ddb4e17, -0x4dae4e6f, -0x4dd74d64, -0x4dba4e04, -0x4de44dc3, -0x4e3a4e27, -0x4d7c4e65, -0x4ead4e06, -0x4e4d4dfa, -0x4e0d4df1, -0x4dd64eb9, -0x4d754e4e, -0x4df04dca, -0x4e134dde, -0x4ef24de3, -0x4e7e4dfe, -0x4dd24d4a, -0x4dac4e5c, -0x4dce4e79, -0x4e154d0a, -0x4df14dfc, -0x4db24e77, -0x4e5c4d70, -0x4ee64e18, -0x4e6b4db1, -0x4e154d81, -0x4e154e18, -0x4e9d4dff, -0x4e0b4e3a, -0x4dee4e75, -0x4e0e4e31, -0x4e454de0, -0x4e784e2c, -0x4da54e7c, -0x4edc4dad, -0x4e0d4df9, -0x4d714e39, -0x4e504d8a, -0x4e384dd8, -0x4ddd4e5e, -0x4d7e4e18, -0x4df24dd4, -0x4dd64e8f, -0x4dc14e08, -0x4f764e1b, -0x4f194dea, -0x4eb44e8a, -0x4de24f5a, -0x4e7d4df5, -0x4e404e87, -0x4ea94db8, -0x4da24e79, -0x4d4a4e33, -0x4e184e4b, -0x4e004e44, -0x4e9f4e51, -0x4e734e5d, -0x4e514e09, -0x4e524e4f, -0x4dc74ddf, -0x4e214dd6, -0x4e624e2f, -0x4ea44ddb, -0x4eb94e07, -0x4dcc4ded, -0x4dcd4ed5, -0x4dce4ebf, -0x4dd44d8e, -0x4e364d90, -0x4de24e69, -0x4e4c4d98, -0x4ecc4e10, -0x4ebc4d5d, -0x4e004dd7, -0x4e8f4e78, -0x4ee14ea8, -0x4e2e4e82, -0x4e1d4e0b, -0x4e364e94, -0x4e1d4dff, -0x4dd34e2d, -0x4e024e2e, -0x4e834def, -0x4e304dc1, -0x4dc84e18, -0x4e7b4dcc, -0x4e914deb, -0x4ead4e53, -0x4de74e39, -0x4dde4db6, -0x4d9c4e7e, -0x4d7f4e4d, -0x4e1d4dd3, -0x4efe4dee, -0x4e294e96, -0x4e124e9f, -0x4e034dfb, -0x4e4d4e55, -0x4df44d8e, -0x4dd34e23, -0x4dd24dbf, -0x4dab4e6f, -0x4e0d4e07, -0x4e894e82, -0x4e3f4e4c, -0x4e644e3b, -0x4e2d4e44, -0x4dc54db1, -0x4dcf4db7, -0x4e544e33, -0x4e124e27, -0x4e284e13, -0x4df74d7e, -0x4df04eb3, -0x4df14eda, -0x4df44d04, -0x4dfb4d89, -0x4dd44e5b, -0x4e564d9e, -0x4ec24e47, -0x4e0c4d55, -0x4e2c4d56, -0x4e3c4d9b, -0x4ed34e5b, -0x4de14e76, -0x4e314e24, -0x4dec4e21, -0x4e354dfe, -0x4e7f4e3a, -0x4dc94e71, -0x4ea74e07, -0x4e4d4dbf, -0x4d4e4e21, -0x4e444dff, -0x4e344dbc, -0x4e9d4e63, -0x4e094ddd, -0x4d524d5f, -0x4d4d4e04, -0x4d7b4dc9, -0x4e974e22, -0x4ec44dc6, -0x4e144e0e, -0x4d644ea4, -0x4df14dbc, -0x4d9f4e04, -0x4dcb4db5, -0x4d694dbc, -0x4da84dc0, -0x4e164e3e, -0x4d5d4e73, -0x4eb74e6c, -0x4de64e6f, -0x4e024dc8, -0x4d834e9e, -0x4d6f4d8c, -0x4dfd4d25, -0x4d9a4e12, -0x4e954d58, -0x4e744de8, -0x4df84d50, -0x4e0e4ddf, -0x4de14eb7, -0x4d954d5f, -0x4dcf4d8a, -0x4dc74e35, -0x4db64d95, -0x4f004db7, -0x4dc94d61, -0x4daf4daa, -0x4e124e2e, -0x4ed44e12, -0x4db54e2f, -0x4dfc4e30, -0x4e394e4e, -0x4e304e06, -0x4e114ddd, -0x4dc24e6b, -0x4e6a4d96, -0x4e304d42, -0x4d214e1f, -0x4e8c4de8, -0x4dcc4dbc, -0x4e614e03, -0x4e234df3, -0x4d6b4d73, -0x4d834e65, -0x4de44e07, -0x4ecc4e20, -0x4eca4d8e, -0x4dc74ddf, -0x4d934ead, -0x4df74d81, -0x4dac4e5a, -0x4dd74d5e, -0x4d534e0c, -0x4cc34db1, -0x4dac4e09, -0x4d974e44, -0x4e6c4df3, -0x4da14e2d, -0x4df14df0, -0x4d864e35, -0x4da94d8f, -0x4d924ce6, -0x4e024e33, -0x4e1e4d57, -0x4e9b4d6f, -0x4db44cf6, -0x4e0a4df2, -0x4db64e79, -0x4d874d5e, -0x4d984d94, -0x4d9f4dd8, -0x4e074d9b, -0x4e904db5, -0x4e044d8f, -0x4df34d37, -0x4e0b4dbb, -0x4e724e46, -0x4d884e38, -0x4dd04de0, -0x4e1c4e34, -0x4de94ddc, -0x4dc54df7, -0x4dcb4e26, -0x4e104dc6, -0x4dda4db4, -0x4d424e2c, -0x4e344dda, -0x4df64df9, -0x4e604e4c, -0x4da14dce, -0x4ddc4dfb, -0x4df64dfc, -0x4e794e60, -0x4f0d4ee5, -0x4f644e50, -0x4e144e51, -0x4e424f68, -0x4dea4e0e, -0x4e284e93, -0x4e3a4dd7, -0x4d3a4e8b, -0x4dd74e6a, -0x4e774e04, -0x4de54e54, -0x4ead4e6e, -0x4ed84e4d, -0x4e134e36, -0x4e574ef5, -0x4df74e79, -0x4dd74dca, -0x4e464dc8, -0x4ea04df8, -0x4eab4e57, -0x4de84dbd, -0x4ddd4ebc, -0x4e754f0b, -0x4e2c4d8e, -0x4e384d68, -0x4de24e5d, -0x4e444e27, -0x4f244e80, -0x4e594db1, -0x4df54dcb, -0x4e7c4e8c, -0x4eca4ec9, -0x4e6b4e37, -0x4e1e4e74, -0x4e4e4ebb, -0x4e604e39, -0x4e6a4e2e, -0x4ddd4ebd, -0x4e884dd9, -0x4e214db2, -0x4daf4de8, -0x4e7e4e9e, -0x4e784e1d, -0x4e694e9e, -0x4df04e48, -0x4e154e18, -0x4d9d4e0d, -0x4db64de2, -0x4e904e03, -0x4f644db2, -0x4e444e3c, -0x4e614f07, -0x4e2a4e19, -0x4dea4e27, -0x4e0d4dda, -0x4d6f4e2a, -0x4dae4df2, -0x4e124e27, -0x4d564e69, -0x4ec94e61, -0x4dfb4e75, -0x4e4b4df1, -0x4e004e66, -0x4dd54df6, -0x4dd94d9c, -0x4e0f4dc1, -0x4e664dff, -0x4e5e4e12, -0x4e064dc5, -0x4d9a4ea9, -0x4d9c4edd, -0x4dfa4d79, -0x4de74dec, -0x4dde4e23, -0x4e254d74, -0x4ed24e5e, -0x4eb24dbe, -0x4df84d68, -0x4e5f4e4e, -0x4eae4e72, -0x4d794e68, -0x4df44e1b, -0x4e0b4e5c, -0x4e144e38, -0x4e1e4e30, -0x4da54e6e, -0x4e834e15, -0x4e054d85, -0x4d584dc2, -0x4e6a4dfe, -0x4df24dbd, -0x4e344e78, -0x4de84e58, -0x4e614ed2, -0x4ebf4e8f, -0x4e4a4ef5, -0x4f754ed0, -0x500b4dcc, -0x4ed74e3a, -0x4e6b4f6a, -0x4e694e3d, -0x4ef64ee1, -0x4e8a4de0, -0x4dd94ea9, -0x4e634e98, -0x4eb54e1a, -0x4dfb4f27, -0x4f054eec, -0x4ec34ee4, -0x4ed64ede, -0x4e114eee, -0x4dc84e56, -0x4e6d4e3e, -0x4e824ebb, -0x4f274e5e, -0x4f294ec1, -0x4e074dc5, -0x4e3a4f4b, -0x4e9b4f06, -0x4e684e12, -0x4e6c4e1b, -0x4e534ec0, -0x4e714dd4, -0x4f594ea6, -0x4ed94d84, -0x4e564dd2, -0x4e414ecf, -0x4f784e5b, -0x4ee44eaa, -0x4e0f4ec2, -0x4e994ea8, -0x4ed04e0f, -0x4e7e4e36, -0x4e094ea4, -0x4ed14ea2, -0x4e2d4e45, -0x4dfe4e7f, -0x4f084ea7, -0x4f1e4e5b, -0x4e8d4f1b, -0x4e1f4e63, -0x4d584d50, -0x4d634dc6, -0x4cf44d51, -0x4e934dea, -0x4e414d63, -0x4dd54d61, -0x4d604e3a, -0x4d9f4dd1, -0x4d1d4e21, -0x4d9e4d52, -0x4d534df7, -0x4d574d8c, -0x4d524dad, -0x4ccb4ddb, -0x4e334e0b, -0x4e174e0d, -0x4d644d8e, -0x4d7d4e15, -0x4d3c4db1, -0x4d814d35, -0x4ddf4d5b, -0x4e154d29, -0x4dbe4d2c, -0x4d964ca5, -0x4d8b4dd8, -0x4d1f4deb, -0x4d794d1e, -0x4d9c4ce2, -0x4d134de9, -0x4d994d46, -0x4e324ddf, -0x4dae4d14, -0x4d7d4d49, -0x4dc04dd3, -0x4e174e07, -0x4d3c4de2, -0x4dd04dcc, -0x4d244dff, -0x4dc44d49, -0x4d944d5e, -0x4d764e1d, -0x4dce4d29, -0x4d844d50, -0x4d394d8a, -0x4dd34dcc, -0x4de94d6b, -0x4d814e08, -0x4d8a4d94, -0x4e044d9f, -0x4d914e12, -0x4d8b4df5, -0x4ea84dbb, -0x4edd4da5, -0x4da14da2, -0x4dae4e67, -0x4df34db6, -0x4d054e3c, -0x4dcd4d7d, -0x4d864dbd, -0x4d854da9, -0x4daa4dc9, -0x4d344e3d, -0x4e654dfa, -0x4ddf4e16, -0x4d7e4dae, -0x4d424e6f, -0x4d5c4d8c, -0x4e044d39, -0x4da64d90, -0x4e424d72, -0x4e154e03, -0x4dc64d9b, -0x4d684e18, -0x4da74e3e, -0x4db94cfb, -0x4d474db4, -0x4d0d4dac, -0x4de74d91, -0x4ece4dcc, -0x4ddb4d39, -0x4d174d3f, -0x4e874e3d, -0x4e9d4da9, -0x4dba4df6, -0x4d734de3, -0x4d6c4ddf, -0x4dc44df5, -0x4dac4d89, -0x4d8d4e55, -0x4e7c4d29, -0x4dc34d3e, -0x4d164dc6, -0x4db64db1, -0x4e104d2e, -0x4e534e8f, -0x4d934def, -0x4dc34d7c, -0x4e1d4e09, -0x4dfd4e57, -0x4f294ea6, -0x4f374e11, -0x4e3f4e26, -0x4e264f1f, -0x4e0b4e37, -0x4e584ea0, -0x4df14d9f, -0x4d804e40, -0x4da54e42, -0x4e594e6b, -0x4dc24e1a, -0x4eae4e18, -0x4e4e4eb2, -0x4e704e46, -0x4de54e78, -0x4d664dfb, -0x4dcf4ddb, -0x4e804de8, -0x4efd4e25, -0x4e744e0a, -0x4e3a4d9c, -0x4e2a4ec3, -0x4db94ea9, -0x4e324d98, -0x4e294dfd, -0x4da44e8b, -0x4e594dda, -0x4f144e6d, -0x4e734da8, -0x4e0e4e03, -0x4e4f4e3f, -0x4ece4e67, -0x4db34e6d, -0x4e034e71, -0x4e1d4e4d, -0x4deb4e9e, -0x4de64dd6, -0x4da24ebf, -0x4eb34e25, -0x4e424dbd, -0x4dfa4e33, -0x4e344e18, -0x4e624db7, -0x4e554e91, -0x4e0e4e39, -0x4e0e4e1c, -0x4dfe4ea5, -0x4e244e42, -0x4f644ee6, -0x4f494e07, -0x4e794e23, -0x4e394f00, -0x4e644e49, -0x4e6b4efa, -0x4ebb4dcb, -0x4e024dec, -0x4dad4e6b, -0x4e8d4e53, -0x4dbe4e1b, -0x4f4a4e5f, -0x4e1b4ea3, -0x4e294e26, -0x4e224e9b, -0x4e0a4e06, -0x4dd44e12, -0x4e6b4e83, -0x4ebb4e03, -0x4eef4e0e, -0x4de84db8, -0x4dfa4ef8, -0x4dfe4e70, -0x4e484db4, -0x4dd64db3, -0x4e0f4e90, -0x4eb74e43, -0x4f394eb4, -0x4eea4db4, -0x4e4f4dc9, -0x4e824e79, -0x4ebe4e4d, -0x4e1d4ea0, -0x4e2a4e88, -0x4dff4ea2, -0x4e1e4e4a, -0x4e424e56, -0x4e134eee, -0x4e8d4e05, -0x4e5f4d84, -0x4da94e72, -0x4e824e65, -0x4eec4dd0, -0x4e6d4ebf, -0x4e344e05, -0x4df84df7, -0x4dc24e19, -0x4d964e08, -0x4e8b4e15, -0x4ee64dd6, -0x4e814e2a, -0x4dbc4eb0, -0x4dc14db3, -0x4e074e4a, -0x4e384de6, -0x4d734e01, -0x4d6b4de0, -0x4e384e18, -0x4d814e4c, -0x4efa4e65, -0x4e204e48, -0x4dc14e19, -0x4dd94e7b, -0x4dd34e18, -0x4ddd4d4c, -0x4e144dc0, -0x4e9f4d8a, -0x4e454dbf, -0x4e034d36, -0x4d8b4e7c, -0x4dc34e7a, -0x4dff4d4d, -0x4ddd4d84, -0x4d7d4e76, -0x4e024d74, -0x4e5f4e10, -0x4e264d8c, -0x4dd54d8b, -0x4e0a4e33, -0x4ee14df0, -0x4d9d4e21, -0x4e224e45, -0x4de64e2a, -0x4e4c4e22, -0x4e0e4de5, -0x4d294e9d, -0x4e5e4d9c, -0x4e154d53, -0x4d644e02, -0x4e464dd4, -0x4e194d64, -0x4e3a4e5f, -0x4db64d78, -0x4ddb4dec, -0x4d9e4e68, -0x4e3e4e3c, -0x4f6c4e41, -0x4f2a4e24, -0x4e7c4e2e, -0x4dde4f37, -0x4e754dd5, -0x4dc94eb7, -0x4e364dcb, -0x4df64e72, -0x4db54e52, -0x4e344dfa, -0x4dcd4ebf, -0x4edf4e14, -0x4e8b4e6b, -0x4e5f4e41, -0x4dd64e82, -0x4db84e0a, -0x4e344dc6, -0x4eb44e16, -0x4ed24e02, -0x4ef54e2d, -0x4e364dc5, -0x4df04eb4, -0x4de84f4d, -0x4e0a4dac, -0x4e454d9c, -0x4dd14e79, -0x4ec14db0, -0x4ee04dfb, -0x4e884d70, -0x4df64df2, -0x4e334e3f, -0x4f0b4ef4, -0x4e454e75, -0x4d914e05, -0x4e1b4e72, -0x4e324e66, -0x4e144dd1, -0x4e104e63, -0x4ebf4df1, -0x4e6a4d89, -0x4d914e7b, -0x4e614e3f, -0x4e7f4e31, -0x4e164ddd, -0x4de84e2b, -0x4d3f4d4a, -0x4d6a4d6a, -0x4d744e2b, -0x4eb14de3, -0x4e754dd9, -0x4dde4da3, -0x4ded4e51, -0x4d834e0a, -0x4dd74e72, -0x4d744d43, -0x4da84e0c, -0x4d544df0, -0x4e0a4df0, -0x4d744e25, -0x4e134e0f, -0x4e0e4e18, -0x4dfa4e0c, -0x4d824e2f, -0x4d6a4dbe, -0x4d8b4d42, -0x4dc94ce1, -0x4e1f4d63, -0x4e114db1, -0x4df34d22, -0x4d7d4e58, -0x4d844ec2, -0x4d6e4d46, -0x4d684d20, -0x4d394dfe, -0x4d874d23, -0x4ec74d7e, -0x4dbf4d2a, -0x4d8f4d44, -0x4dff4e0a, -0x4e2e4e30, -0x4d894d94, -0x4d724e04, -0x4d414dee, -0x4d584dd4, -0x4d8f4dba, -0x4dac4e19, -0x4dea4db5, -0x4e1a4ce2, -0x4d544d87, -0x4e3e4d86, -0x4e414e04, -0x4df54dd4, -0x4d924e28, -0x4dba4d5e, -0x4d944df8, -0x4d7d4df0, -0x4e834dfc, -0x4e984df1, -0x4dc64dd4, -0x4daa4e84, -0x4d984d97, -0x4d9e4dfd, -0x4dd74d4a, -0x4da54d7e, -0x4dd14dbf, -0x4db74de8, -0x4d454dfd, -0x4e6c4dba, -0x4dfc4df2, -0x4dad4dc2, -0x4d4d4e19, -0x4dab4df1, -0x4da84d76, -0x4e554d60, -0x4e584dab, -0x4e074d6a, -0x4d824d48, -0x4d734e78, -0x4dbe4e49, -0x4d804d0c, -0x4d674dbb, -0x4d344e27, -0x4de14d72, -0x4e814e1d, -0x4e184cf1, -0x4d8d4d84, -0x4e4d4e1b, -0x4e694dd0, -0x4da04dc1, -0x4d7b4e4a, -0x4d4f4dc0, -0x4e1b4de4, -0x4e144da1, -0x4d534e2c, -0x4ecd4d67, -0x4dc24d98, -0x4d374dff, -0x4dcb4deb, -0x4de84cff, -0x4d804e0a, -0x4d6a4dba, -0x4d5c4d78, -0x4d184dbd, -0x4d984d9d, -0x4e534d95, -0x4e9f4d96, -0x4dea4db1, -0x4d7f4ea8, -0x4d7a4d8b, -0x4d5d4de6, -0x4da54d91, -0x4d384da8, -0x4d874ddd, -0x4dfd4d57, -0x4d7b4e38, -0x4e344d9a, -0x4da24e26, -0x4d634dc3, -0x4d544de6, -0x4cfb4dec, -0x4d014d33, -0x4da94d50, -0x4e134da2, -0x4dff4dbf, -0x4de24d20, -0x4d734e2b, -0x4d964e87, -0x4d664ce3, -0x4d8a4d63, -0x4d324e2e, -0x4da94d64, -0x4e994da7, -0x4e264cff, -0x4d794d53, -0x4daf4df7, -0x4e484e47, -0x4dc04d6a, -0x4d4d4ddd, -0x4d9b4dfb, -0x4d674db0, -0x4dfc4ddb, -0x4d4f4d88, -0x4e654cfd, -0x4dca4d56, -0x4cdd4dcb, -0x4db64d73, -0x4dae4d42, -0x4d764e26, -0x4d824d67, -0x4df64dbf, -0x4dbc4e63, -0x4e0f4edf, -0x4ecc4dfc, -0x4f244e07, -0x4e3b4e00, -0x4e764f2d, -0x4d9b4e0c, -0x4e604ecf, -0x4e4e4df9, -0x4dd04e0e, -0x4dfb4e7d, -0x4eab4e65, -0x4e0c4e78, -0x4e4c4e44, -0x4e9f4e70, -0x4e014e78, -0x4e024e8d, -0x4dcd4e1e, -0x4dac4dce, -0x4e114e25, -0x4ee44df9, -0x4eb64e60, -0x4e324dc2, -0x4dad4f0f, -0x4dac4f16, -0x4e754d37, -0x4df54daf, -0x4db64e91, -0x4e514dc3, -0x4f044e1a, -0x4e224dd3, -0x4dd44dcd, -0x4e384e5a, -0x4e7a4e9f, -0x4e594ea4, -0x4e094e63, -0x4dff4e3f, -0x4e1b4e0b, -0x4e7a4e1b, -0x4d964e5f, -0x4e7d4dc5, -0x4e224d96, -0x4d5a4e39, -0x4eb54e54, -0x4e664e10, -0x4e2c4e83, -0x4d5a4e34, -0x4dd14d71, -0x4d844e56, -0x4d864dcc, -0x4e5a4e2f, -0x4ea74dc0, -0x4e254e1e, -0x4d594ea5, -0x4e004d96, -0x4d7f4e1c, -0x4e334d79, -0x4d994d81, -0x4d4f4d92, -0x4dec4d9b, -0x4d444e45, -0x4e434dcf, -0x4dfe4e26, -0x4e014dd8, -0x4dd24e6b, -0x4db84ddd, -0x4dec4d2e, -0x4e0f4de0, -0x4ed94da8, -0x4e7f4da5, -0x4d7b4cfb, -0x4da24e07, -0x4d954e9f, -0x4db74d3b, -0x4dc74da1, -0x4d734dfb, -0x4dfb4d74, -0x4ed74df9, -0x4de74d61, -0x4db04d74, -0x4e054da0, -0x4e674e52, -0x4d864e3b, -0x4ded4dca, -0x4d874d7e, -0x4dec4dee, -0x4df74dd8, -0x4d394e19, -0x4e7b4da2, -0x4de34d5f, -0x4d6e4de7, -0x4e394dad, -0x4e134d1b, -0x4de64dfe, -0x4dd74dad, -0x4de74e08, -0x4e574e3b, -0x4e894ec6, -0x4f6b4eae, -0x4fbb4e5a, -0x4e304e68, -0x4e464f54, -0x4e014e31, -0x4e6e4f2d, -0x4e3e4e0a, -0x4dd64ead, -0x4e124e96, -0x4e8d4e62, -0x4e034ec0, -0x4eec4e58, -0x4eac4ea5, -0x4e684e98, -0x4e204efa, -0x4e0a4e2d, -0x4e364e29, -0x4e6e4e62, -0x4ee74dc5, -0x4ef04e9f, -0x4e0e4e06, -0x4df44f08, -0x4dc94f16, -0x4e984d49, -0x4e734dcd, -0x4e7e4ecb, -0x4e874e22, -0x4f224e90, -0x4ed84dd9, -0x4e274e21, -0x4e734e54, -0x4f3b4e8d, -0x4dfe4e98, -0x4e224ec4, -0x4e794e8b, -0x4e684e10, -0x4e7a4e06, -0x4e1c4ef9, -0x4e9c4e11, -0x4e2a4dc7, -0x4e0c4dec, -0x4e894e55, -0x4f064e5f, -0x4e444eaf, -0x4e104ea0, -0x4dc04dbc, -0x4da84e13, -0x4e0f4e6c, -0x4ee84e94, -0x4f1d4df0, -0x4e334e41, -0x4dbd4f18, -0x4e194df9, -0x4d984e6e, -0x4ddf4d78, -0x4dad4e5e, -0x4d884dbf, -0x4e264e07, -0x4dd34e1c, -0x4ef34e6d, -0x4e3d4e99, -0x4e6b4e3c, -0x4e0e4e6f, -0x4dab4df7, -0x4e204dd2, -0x4dfe4e18, -0x4e684da4, -0x4e3d4e1e, -0x4df24d7f, -0x4dda4eb9, -0x4ddb4ec6, -0x4e1c4d6c, -0x4e234d9e, -0x4d744e36, -0x4e314dd5, -0x4f134e36, -0x4e074d62, -0x4df54d70, -0x4e464e70, -0x4eb44e5d, -0x4de14e6d, -0x4e174e64, -0x4e2f4e36, -0x4e324e29, -0x4dc94dde, -0x4de54e74, -0x4e524de6, -0x4e0e4da3, -0x4daf4e4b, -0x4ebe4dec, -0x4e104dc5, -0x4e8d4e83, -0x4e0d4e13, -0x4e034de6, -0x4d8b4e4f, -0x4e0f4e9b, -0x4ed64ea4, -0x4f1d4dca, -0x4e484e28, -0x4e004eff, -0x4e114e96, -0x4dae4eb8, -0x4e6d4df2, -0x4e1a4e65, -0x4e044e33, -0x4e744e00, -0x4df94eca, -0x4e8c4e32, -0x4e814eac, -0x4e2a4e27, -0x4de14e53, -0x4d9c4df1, -0x4e374dd9, -0x4e2f4e26, -0x4edb4d63, -0x4ebd4e62, -0x4e054dd5, -0x4dd14eb9, -0x4dee4f1c, -0x4e2c4d5f, -0x4e074e1e, -0x4ddf4e03, -0x4dd14dc5, -0x4edb4e05, -0x4e5a4dca, -0x4dd54d80, -0x4e6a4e75, -0x4eb34e69, -0x4e884e49, -0x4e284ea2, -0x4e214ea6, -0x4e2f4e0a, -0x4e434e39, -0x4e074e3b, -0x4e974d9a, -0x4e814d98, -0x4d1d4dd9, -0x4e7c4e15, -0x4e484e15, -0x4e994ec0, -0x4e504e31, -0x4dcf4d4e, -0x4e0f4e16, -0x4d5b4e3d, -0x4ed84dd0, -0x4f4d4dfa, -0x4e5d4dbd, -0x4d9b4e9b, -0x4dcd4e37, -0x4e454e8e, -0x4dfa4d87, -0x4dd64e43, -0x4d8a4e1c, -0x4ddb4e32, -0x4d754e30, -0x4eca4db6, -0x4e084dcd, -0x4e614e13, -0x4dd94e35, -0x4d9e4dbc, -0x4dfe4d85, -0x4e314e2a, -0x4e504d76, -0x4e8e4dcc, -0x4de94d2d, -0x4d8a4eaf, -0x4db04ebd, -0x4def4d28, -0x4db84da2, -0x4dc04e71, -0x4dd94d07, -0x4eec4e0d, -0x4dff4dd4, -0x4ded4d97, -0x4e554e33, -0x4e884e1f, -0x4da14e25, -0x4de94e0d, -0x4dc74e00, -0x4dc94de5, -0x4dd44e36, -0x4df14eae, -0x4ecc4e29, -0x4e1d4d81, -0x4d934e1a, -0x4e674dd0, -0x4e494ddf, -0x4dfc4e29, -0x4e154e4e, -0x4d544d53, -0x4d204dcb, -0x4d7b4d9f, -0x4e614db1, -0x4e2b4d86, -0x4dca4d85, -0x4d8f4e88, -0x4dbd4d7c, -0x4d534dd1, -0x4e334cf8, -0x4d524daa, -0x4d284d77, -0x4db74db3, -0x4d5f4da2, -0x4e404d8b, -0x4d4e4e0a, -0x4d894d44, -0x4ced4dd4, -0x4d234d7e, -0x4d334d3b, -0x4dbe4d97, -0x4e184d4e, -0x4e374d25, -0x4d584cec, -0x4d794dd8, -0x4d8d4e3c, -0x4d564d0e, -0x4d474ce2, -0x4d344dec, -0x4df84d24, -0x4dc04d54, -0x4db24ce1, -0x4d594d4d, -0x4db24d7b, -0x4e114db9, -0x4daa4d44, -0x4d614dc6, -0x4d7d4db8, -0x4dc44d94, -0x4da84d64, -0x4d5b4db3, -0x4e4c4d48, -0x4cf74d38, -0x4ce74dda, -0x4de04de8, -0x4dc44d34, -0x4db94e01, -0x4d314d72, -0x4d8a4d50, -0x4d704e4e, -0x4db34e36, -0x4ec34e2c, -0x4f034de3, -0x4e594e28, -0x4dee4ec1, -0x4dfa4db6, -0x4de54e6c, -0x4dc94d40, -0x4d894e59, -0x4da54dc7, -0x4e484d83, -0x4df24e69, -0x4ebb4e0e, -0x4e394e4c, -0x4e1c4e07, -0x4db94e5c, -0x4d7f4e05, -0x4de64d54, -0x4df74dca, -0x4e504d7c, -0x4e694e43, -0x4e1d4da0, -0x4db84e57, -0x4e234eb1, -0x4e1c4d6d, -0x4e164d74, -0x4dcc4e3b, -0x4e5b4d94, -0x4ec54e25, -0x4e1c4d65, -0x4ded4d5b, -0x4e064e12, -0x4eb64e1a, -0x4dbf4de4, -0x4e3b4e1a, -0x4dff4e57, -0x4e6a4dd6, -0x4e4f4dc5, -0x4d7e4e81, -0x4e844dc1, -0x4dff4dd8, -0x4dc24e2f, -0x4e704db1, -0x4de94de1, -0x4e114e31, -0x4dbf4e46, -0x4da34daa, -0x4dce4dcd, -0x4d784d97, -0x4eeb4e0a, -0x4f2f4ddb, -0x4e554dbe, -0x4e374eca, -0x4d904deb, -0x4dbd4e6f, -0x4e244d88, -0x4d4a4d99, -0x4ceb4dd8, -0x4e534d9c, -0x4d8f4e45, -0x4e404dc8, -0x4dff4e47, -0x4dba4e47, -0x4d964e4b, -0x4db64dc2, -0x4dbc4d80, -0x4dec4d66, -0x4e8e4d6b, -0x4e1c4e05, -0x4da34d0c, -0x4d3a4e61, -0x4d5f4e7c, -0x4db24d0d, -0x4dec4db0, -0x4d724dbd, -0x4db34d40, -0x4e524e06, -0x4e654d18, -0x4d434d80, -0x4dc64e0b, -0x4e714e60, -0x4d924e0e, -0x4d7c4e0a, -0x4d6b4dbb, -0x4d644df5, -0x4d9a4d99, -0x4d524de1, -0x4de84d93, -0x4e124d70, -0x4d204db2, -0x4df94de8, -0x4e624dcb, -0x4dd34e5e, -0x4d5a4d3f, -0x4db84d97, -0x4d814e07, -0x4db24e2e, -0x4f254e2a, -0x4f354ddf, -0x4e844d9b, -0x4df44ecf, -0x4e104e15, -0x4e114e45, -0x4dda4d9c, -0x4d3e4e85, -0x4d9c4e4e, -0x4e494de0, -0x4d844e53, -0x4eb84e03, -0x4e824e40, -0x4e2e4e10, -0x4dd64e7c, -0x4d6f4de8, -0x4de34db7, -0x4db74e01, -0x4e614da6, -0x4e534e0a, -0x4df94dc8, -0x4d8b4ed6, -0x4da44ef9, -0x4dc94dd6, -0x4dee4db2, -0x4d864e8c, -0x4e364d9c, -0x4ebd4e13, -0x4e284d11, -0x4e224d81, -0x4e4f4e2f, -0x4e824ed6, -0x4e174e2f, -0x4d874e48, -0x4e4e4e49, -0x4e454e39, -0x4df74ddc, -0x4df24e29, -0x4eef4dc2, -0x4df44d9b, -0x4d734e4a, -0x4e7e4e0f, -0x4e4c4de6, -0x4e124e43, -0x4de64e38, -0x4e054dca, -0x4da44e41, -0x4dc14e08, -0x4ed44dfa, -0x4ee94d4c, -0x4dd24dfb, -0x4ddc4e70, -0x4dc34d8e, -0x4dec4e7b, -0x4e284d8f, -0x4d794e1d, -0x4db14dde, -0x4dd54df1, -0x4d3a4e31, -0x4e3b4ddd, -0x4df84e47, -0x4d7f4dec, -0x4d7f4e3c, -0x4d624d7f, -0x4dc94d46, -0x4de74df7, -0x4e5c4ddf, -0x4e444dc1, -0x4db34d43, -0x4dae4e4d, -0x4dbf4e60, -0x4de04d71, -0x4dc14dba, -0x4d6d4e2a, -0x4df84dab, -0x4e564de5, -0x4dcc4d64, -0x4dce4e01, -0x4e884e3a, -0x4e6b4dff, -0x4e054e35, -0x4dc44de3, -0x4dc44e69, -0x4df84de5, -0x4e0e4da5, -0x4dc74d96, -0x4ec24d53, -0x4ddf4d82, -0x4d334dac, -0x4e304d9b, -0x4e3b4d97, -0x4e5c4e89, -0x4d9d4db9, -0x4e5c4e27, -0x4e514f2b, -0x4e604ee2, -0x4f9b4f10, -0x4f9e4e52, -0x4e874e9d, -0x4e8b4f8a, -0x4e964e8b, -0x4f344f19, -0x4ece4e0a, -0x4e274eec, -0x4e3e4ea4, -0x4e344eb1, -0x4ea74ed1, -0x4f9a4f40, -0x4e8e4f51, -0x4ec44f25, -0x4ea64f12, -0x4e174e7c, -0x4e734de8, -0x4e454ebf, -0x4f004e3c, -0x4f3d4e94, -0x4ea74e02, -0x4eab4f5b, -0x4e4d4f40, -0x4e794e05, -0x4e814e13, -0x4e9d4f20, -0x4eda4e6d, -0x4f9e4ec8, -0x4ebb4e39, -0x4e674de4, -0x4f434ed6, -0x4f8e4eef, -0x4e5d4edd, -0x4f3b4ebe, -0x4e7a4f37, -0x4ecc4ec0, -0x4ef64f01, -0x4e9d4f29, -0x4ed04e7a, -0x4ef14e93, -0x4e434eb9, -0x4f544eca, -0x4e984e4a, -0x4f334f5d, -0x4e9f4e9e, -0x4ebb4dd7, -0x4e2d4e87, -0x4ed84ed6, -0x4f2b4e71, -0x4f424e32, -0x4e644eb7, -0x4e1a4f8f, -0x4ec84e53, -0x4e5b4e44, -0x4e804e7e, -0x4e184ec2, -0x4e2e4e55, -0x4ec84e9e, -0x4dfb4e5f, -0x4f3b4e68, -0x4e364e83, -0x4e3e4ec6, -0x4e264ee6, -0x4e574e82, -0x4e3d4e3b, -0x4e844e2f, -0x4f3a4e1f, -0x4ebc4e2c, -0x4e4b4e1e, -0x4e2a4f06, -0x4e4a4f35, -0x4e5e4dc1, -0x4e334e0d, -0x4daa4e6b, -0x4e744ddc, -0x4f4e4e61, -0x4e9d4e23, -0x4df84dc1, -0x4ed24e6c, -0x4f254ea7, -0x4e3e4e7b, -0x4e174e69, -0x4e044ed4, -0x4e744e81, -0x4edf4e3a, -0x4e5a4e87, -0x4ea24e63, -0x4eaf4ddd, -0x4db04eac, -0x4efd4ea1, -0x4e884e60, -0x4f254df4, -0x4e344e13, -0x4dd94e0d, -0x4dbd4e1e, -0x4e054e05, -0x4ef74e9b, -0x4ee94e05, -0x4e504e79, -0x4e4d4f3d, -0x4ec14e45, -0x4e114eaa, -0x4e414da2, -0x4df94e50, -0x4dff4e0e, -0x4e444e54, -0x4e1e4e2b, -0x4ef04e8f, -0x4e5a4e44, -0x4e534e65, -0x4e314e7c, -0x4d7c4e00, -0x4e2d4e09, -0x4e184e8c, -0x4e734def, -0x4eb64e1e, -0x4e234d9e, -0x4e624eaa, -0x4e4f4ee7, -0x4e3c4d89, -0x4e804e0f, -0x4e164e2e, -0x4e794df6, -0x4ef94e9e, -0x4e394d5f, -0x4e044d87, -0x4e994eda, -0x4f324e75, -0x4e474e55, -0x4e5a4e23, -0x4e394eb0, -0x4e3b4e6d, -0x4e894e5c, -0x4e164ec6, -0x4f0b4e36, -0x4e1a4d76, -0x4dc44e5b, -0x4e5b4dfb, -0x4e8c4e5f, -0x4e7d4e8b, -0x4df34e14, -0x4da24db1, -0x4dc64e28, -0x4e084e3d, -0x4e7e4df4, -0x4ee44db8, -0x4df94e5c, -0x4db34eee, -0x4e264daf, -0x4dee4e20, -0x4e2e4df8, -0x4d7e4e2a, -0x4d944e32, -0x4e494e1b, -0x4dc44e84, -0x4ead4dff, -0x4e4a4e55, -0x4e074e04, -0x4dac4ebb, -0x4ded4daf, -0x4d9a4d53, -0x4de64dd7, -0x4e3d4d5b, -0x4ea84dff, -0x4da44d9d, -0x4d924e1e, -0x4d3e4e7a, -0x4db54d57, -0x4d964d77, -0x4d7a4e1a, -0x4de04d74, -0x4eb64dba, -0x4e274d49, -0x4dca4d55, -0x4e834e02, -0x4eaf4e6b, -0x4de94e2b, -0x4db54e53, -0x4dd74e0b, -0x4df54dbe, -0x4dc94dd0, -0x4d694e66, -0x4e3b4e0e, -0x4dff4d50, -0x4d654de3, -0x4e0e4dd4, -0x4e524df0, -0x4e3e4ee9, -0x4dbd4e53, -0x4d904d94, -0x4d3c4e41, -0x4d6d4de7, -0x4e974dfa, -0x4e5c4de8, -0x4dfe4dde, -0x4d8a4e81, -0x4dce4d99, -0x4de24e82, -0x4dab4dba, -0x4d4e4dc5, -0x4db54d64, -0x4dcb4d8c, -0x4d744dc9, -0x4e2f4dfa, -0x4db34e29, -0x4d7e4deb, -0x4d9a4ddd, -0x4da24d6e, -0x4d824cdf, -0x4dd14da5, -0x4e454da7, -0x4df14dba, -0x4d324d49, -0x4d3f4e97, -0x4d724e88, -0x4dd34cfe, -0x4d534d33, -0x4d6b4db0, -0x4e024d5f, -0x4e934dcb, -0x4dc54d95, -0x4d864da2, -0x4df44ddf, -0x4e0d4dac, -0x4d3f4dd1, -0x4d424df6, -0x4dac4e24, -0x4da24e2e, -0x4df04db6, -0x4d6f4dd6, -0x4e2f4d6b, -0x4e394d51, -0x4d124dfd, -0x4ded4d9a, -0x4dec4d3a, -0x4e0d4e1b, -0x4dad4dbc, -0x4dd54d87, -0x4dd04e10, -0x4ddf4e3f, -0x4ec64ea2, -0x4f154ddd, -0x4e474df0, -0x4dcc4ed0, -0x4de64dfa, -0x4dd74e44, -0x4e0c4da0, -0x4d9c4db8, -0x4dcf4dde, -0x4e854dfe, -0x4da64e7b, -0x4e734e87, -0x4e394e85, -0x4e464de2, -0x4dc64e55, -0x4d684d80, -0x4e354d9e, -0x4e414e1c, -0x4eab4d37, -0x4ea04e25, -0x4dd54dab, -0x4dc44e40, -0x4e0b4ea6, -0x4ddd4d35, -0x4dec4d6f, -0x4d864e3e, -0x4e1b4dc7, -0x4e7d4dd1, -0x4e564d5b, -0x4dc64d3e, -0x4e414e47, -0x4ea34deb, -0x4e1e4e0b, -0x4d7d4e4f, -0x4e054e69, -0x4de14e07, -0x4df44dd4, -0x4daa4e23, -0x4e504d5c, -0x4e564d8c, -0x4d1b4df2, -0x4e564db1, -0x4e3b4d5c, -0x4e3d4ea7, -0x4dce4dc1, -0x4e1b4dd5, -0x4d934f0a, -0x4e1d4e7e, -0x4f7b4e8c, -0x4f3f4df4, -0x4e5e4e9f, -0x4e214f33, -0x4e7b4e55, -0x4e754ec6, -0x4e954e2f, -0x4df14ead, -0x4e1b4e00, -0x4e694e6a, -0x4dce4f05, -0x4ecc4e65, -0x4e864e72, -0x4e4c4ea7, -0x4e364ef1, -0x4dd84e28, -0x4e834dca, -0x4e654e23, -0x4f314e7f, -0x4e834ebf, -0x4e3d4d66, -0x4e644e9e, -0x4e124eba, -0x4e344d90, -0x4e314e11, -0x4de14e89, -0x4e9f4dca, -0x4f584e43, -0x4e964dc9, -0x4dfa4e38, -0x4eb14e94, -0x4f1b4ed4, -0x4e924ee2, -0x4e864e30, -0x4e4e4eb1, -0x4e744ea0, -0x4ebc4e52, -0x4dd84edd, -0x4ee24e1d, -0x4eb04df0, -0x4dd44e12, -0x4e9e4e3d, -0x4e444e31, -0x4ebb4ecb, -0x4e6d4e2c, -0x4e124dc2, -0x4de34e1c, -0x4df24dfc, -0x4ed44e09, -0x4f494e52, -0x4dc94e69, -0x4e734f08, -0x4e514e21, -0x4e2d4e85, -0x4e0c4da5, -0x4d7b4e09, -0x4dec4de6, -0x4e064e9e, -0x4da24ea8, -0x4eac4e74, -0x4e454e13, -0x4dea4e43, -0x4dbb4e85, -0x4dc44df5, -0x4e184d87, -0x4e204de4, -0x4ebd4dd5, -0x4e404e32, -0x4e074de9, -0x4de14e5a, -0x4e224f32, -0x4e234d57, -0x4dd44ded, -0x4dd44e11, -0x4e5d4dfd, -0x4ed04e9f, -0x4ea84d86, -0x4de34d69, -0x4ec84e2b, -0x4eca4e3c, -0x4de74e2f, -0x4e014e3e, -0x4df24e59, -0x4e3a4e82, -0x4e914e45, -0x4dc04e9a, -0x4e8d4e61, -0x4e314d51, -0x4d964dc1, -0x4e374dad, -0x4e8d4e2b, -0x4dfe4e69, -0x4ddd4e37, -0x4e6d4e19, -0x4e2a4ec5, -0x4e044e9c, -0x4f614ec6, -0x4f724e1f, -0x4e514e4d, -0x4e6a4f2c, -0x4e994e48, -0x4dd04edc, -0x4eb14e2e, -0x4de84e52, -0x4e0a4e5b, -0x4e354e2c, -0x4dd04ef2, -0x4f6d4eff, -0x4eca4ef2, -0x4e6e4e90, -0x4e894ece, -0x4e164dfc, -0x4eb74dcd, -0x4ee74e79, -0x4ec04e2e, -0x4ec04e93, -0x4e5a4dc4, -0x4e174f28, -0x4e444efc, -0x4e774dbc, -0x4eda4df3, -0x4e344ec2, -0x4e784e15, -0x4f874eb2, -0x4f1e4da1, -0x4e724dcb, -0x4e8c4eea, -0x4f224edb, -0x4e544ecd, -0x4e874eb8, -0x4ea34ef0, -0x4e794e57, -0x4e824e85, -0x4e3c4ebb, -0x4ec44e29, -0x4ea84e06, -0x4dc54eb7, -0x4e8a4e31, -0x4eac4e72, -0x4f1d4ed9, -0x4e684e7e, -0x4dd44e35, -0x4dda4e38, -0x4db14e05, -0x4f1a4e5a, -0x4f394e2b, -0x4e964e30, -0x4df64ecf, -0x4ddc4dd0, -0x4ddc4e5e, -0x4e504d6c, -0x4dc04dd5, -0x4d654e05, -0x4e464e16, -0x4dc04e57, -0x4ed24e5c, -0x4e114e79, -0x4e144e1a, -0x4e2f4e85, -0x4dd84dc9, -0x4ddb4d4c, -0x4e354e37, -0x4eb94dba, -0x4ed14dee, -0x4dfc4d7c, -0x4d784e86, -0x4e1e4e88, -0x4dc04d54, -0x4e0f4da2, -0x4db64e83, -0x4e784dc1, -0x4e344e0a, -0x4e834d73, -0x4dce4d8c, -0x4e114e55, -0x4e434e83, -0x4e054e7c, -0x4ddf4e93, -0x4dc44e3f, -0x4e6c4e19, -0x4e544db9, -0x4da34e9e, -0x4e6a4dbe, -0x4e1a4db0, -0x4d7b4e57, -0x4eac4e6e, -0x4e9a4da4, -0x4e7f4e6c, -0x4e0c4de6, -0x4e5d4e70, -0x4e2c4ea9, -0x4e134ee1, -0x4f974e9d, -0x4ff64e21, -0x4e574e48, -0x4e754f7e, -0x4e794e56, -0x4e3f4f65, -0x4e904da0, -0x4e8e4edc, -0x4e514e4d, -0x4e2a4e9c, -0x4e304e9e, -0x4edf4e4c, -0x4e914ef8, -0x4e714eb6, -0x4e484ead, -0x4de34e87, -0x4e294df8, -0x4ebb4e76, -0x4ef64e35, -0x4fa94e9e, -0x4e214dd5, -0x4e4a4ec4, -0x4e0d4f80, -0x4e074e07, -0x4e404e45, -0x4e384ef9, -0x4e674dd3, -0x4ecf4e85, -0x4eaf4dde, -0x4e834e1a, -0x4f2c4e6d, -0x4eab4ee4, -0x4e424e78, -0x4e304e9f, -0x4e274e70, -0x4e554eee, -0x4e9f4e96, -0x4e3e4e9c, -0x4f724e46, -0x4e804e1a, -0x4e044eb9, -0x4ee74e5e, -0x4ec04e43, -0x4e594f4b, -0x4e274e76, -0x4dbf4dd1, -0x4df34ec4, -0x4e044e12, -0x4f884e47, -0x4f9c4e3e, -0x4eb74e70, -0x4e204f21, -0x4ec14e02, -0x4e074f47, -0x4e954e00, -0x4dd64e30, -0x4d9d4dee, -0x4e054e09, -0x4ddb4ec7, -0x4f164e57, -0x4e604e8d, -0x4e2e4e58, -0x4df34ed0, -0x4df64e32, -0x4def4d99, -0x4e3d4e67, -0x4f1d4e21, -0x4ef24e24, -0x4e024da9, -0x4e2d4eea, -0x4e614f3d, -0x4e514de9, -0x4e1e4db4, -0x4e234e8c, -0x4e4f4dc5, -0x4f114e56, -0x4eda4d7f, -0x4e064de8, -0x4e144e52, -0x4f224e97, -0x4e434e29, -0x4e374e97, -0x4e4c4e58, -0x4e694e7f, -0x4e484e35, -0x4de64efe, -0x4e4f4e23, -0x4e554df0, -0x4daf4e59, -0x4e564e32, -0x4ea44dea, -0x4e7f4e72, -0x4e134e22, -0x4d554d97, -0x4d114d67, -0x4d954d7c, -0x4ea24e13, -0x4ef34e15, -0x4db64db7, -0x4d994eb7, -0x4d634e38, -0x4da14df6, -0x4d9c4d6d, -0x4d834dda, -0x4d744db0, -0x4e714db4, -0x4d504e1a, -0x4e264dec, -0x4dd04df3, -0x4d854ddf, -0x4da24dfb, -0x4d824ddc, -0x4d6e4d45, -0x4d8f4d55, -0x4de24d1e, -0x4e5d4d78, -0x4da04d4b, -0x4d4a4e24, -0x4dc84e82, -0x4d734d13, -0x4d5c4d4e, -0x4d894de9, -0x4db54d71, -0x4e4b4e0d, -0x4e2f4d15, -0x4da44d88, -0x4ded4de9, -0x4e274e35, -0x4d4c4dcb, -0x4d594dc5, -0x4da64de3, -0x4dfa4e7e, -0x4dfc4ddc, -0x4d714e23, -0x4e2a4d5d, -0x4daa4d4c, -0x4cff4d9c, -0x4df54ddd, -0x4dd14d8f, -0x4d5f4de1, -0x4d884e4c, -0x4dde4d87, -0x4dd24e24, -0x4e174e20, -0x4f2c4e1d, -0x4f094d91, -0x4e274e23, -0x4e1a4ec8, -0x4e004dcd, -0x4d914e75, -0x4db24d53, -0x4dac4e16, -0x4dfb4e22, -0x4dee4e20, -0x4d7a4e47, -0x4e9e4e7b, -0x4e264dff, -0x4dc34e2e, -0x4da24ec2, -0x4d874dca, -0x4e184da3, -0x4e504dd7, -0x4e924d98, -0x4e144e26, -0x4e334d10, -0x4db04e59, -0x4da14e95, -0x4df64d9b, -0x4deb4d2d, -0x4d764e1b, -0x4df74da5, -0x4ea54dd6, -0x4e654d40, -0x4e044d83, -0x4e6e4df1, -0x4ee24e48, -0x4da74e35, -0x4dd44da9, -0x4db54e79, -0x4dc84e37, -0x4e174d68, -0x4d824e90, -0x4dfe4dec, -0x4d854d30, -0x4d6d4e2a, -0x4e644de9, -0x4e1c4da7, -0x4e024e59, -0x4d964e09, -0x4e014df9, -0x4e854e8b, -0x4e7a4ed5, -0x4eed4e85, -0x4f1c4e77, -0x4eb94e7f, -0x4e454f54, -0x4e354eaa, -0x4e414ec6, -0x4ec84d94, -0x4e374e7b, -0x4df24e55, -0x4e534e9f, -0x4e484ef9, -0x4ee74ebc, -0x4e744eb1, -0x4ddc4ea0, -0x4e524e90, -0x4de64e1c, -0x4e244dbe, -0x4e124e5c, -0x4ebd4dc0, -0x4f144e07, -0x4e154e16, -0x4e164f3c, -0x4e404f0c, -0x4e9d4d4d, -0x4dbc4dff, -0x4e0d4e61, -0x4e524e13, -0x4f064e85, -0x4e794e05, -0x4dcf4d69, -0x4e6b4ed8, -0x4f034e76, -0x4e664e57, -0x4e8f4edb, -0x4e3c4e75, -0x4e9f4e88, -0x4e354e6d, -0x4e304ef2, -0x4e684e50, -0x4e6b4df4, -0x4da24e3d, -0x4ed74e5d, -0x4ec04e33, -0x4eb74f16, -0x4e3a4e7a, -0x4dff4db5, -0x4e034e06, -0x4e3e4e6e, -0x4edb4e52, -0x4f154e09, -0x4e9c4e4b, -0x4d9e4f54, -0x4e424dbe, -0x4e1e4e0c, -0x4e414dd6, -0x4d7b4e17, -0x4deb4de5, -0x4e404df3, -0x4e024e41, -0x4f234e89, -0x4e534e46, -0x4e274e20, -0x4df94ee9, -0x4e384e15, -0x4e144df4, -0x4e014e1a, -0x4ebc4db3, -0x4e774d8c, -0x4dbd4d53, -0x4dde4ed1, -0x4dd44eb1, -0x4e084db1, -0x4da64d6e, -0x4d664e43, -0x4e1d4dbe, -0x4f3f4e10, -0x4e1f4d2a, -0x4dca4da6, -0x4e594e6b, -0x4f214e81, -0x4e234dfd, -0x4e484e33, -0x4e084eb9, -0x4e5c4dd9, -0x4e6e4df8, -0x4dca4e16, -0x4e5c4e50, -0x4e324d71, -0x4d644e43, -0x4ee34dfe, -0x4e664d83, -0x4eeb4e3d, -0x4ddf4e28, -0x4e494e3e, -0x4e3f4ee3, -0x4eac4ef6, -0x4f544ea8, -0x4fdf4ea4, -0x4eb44e91, -0x4e754f8a, -0x4e8e4e81, -0x4e2f4f45, -0x4edd4e26, -0x4e5b4ed4, -0x4de74e64, -0x4e8b4e6b, -0x4e3b4f22, -0x4f344e8e, -0x4edd4ed1, -0x4e274eaf, -0x4e734ef4, -0x4e3b4ea4, -0x4e2d4da0, -0x4e814e7c, -0x4f314e2e, -0x4f484e48, -0x4e7c4e39, -0x4df34f0f, -0x4e194f12, -0x4e4f4dcb, -0x4dea4e16, -0x4e0b4eb6, -0x4ea14e3c, -0x4f804e48, -0x4ed84dd3, -0x4e474e21, -0x4f094f42, -0x4ef04eec, -0x4ec34e6e, -0x4e994ed3, -0x4e244ee3, -0x4eb24ebc, -0x4e8a4e78, -0x4e894f01, -0x4ed74e67, -0x4e374e1d, -0x4e034e9f, -0x4f024e95, -0x4efe4df4, -0x4ee14f55, -0x4e4f4eb7, -0x4dde4d92, -0x4d5d4e21, -0x4e154e90, -0x4ea34e89, -0x4f4c4deb, -0x4e704ec4, -0x4e2f4eda, -0x4e194e38, -0x4e554ecf, -0x4e204dbc, -0x4de44e52, -0x4e1e4de0, -0x4e724db4, -0x4dd54e1b, -0x4ea34e30, -0x4ea34e57, -0x4e314e27, -0x4dd04ede, -0x4e004df6, -0x4e1c4dca, -0x4e2b4e49, -0x4eb64ddc, -0x4ed84e62, -0x4e494d69, -0x4de94eb5, -0x4df24eeb, -0x4e794d4c, -0x4e244dba, -0x4dd04e5b, -0x4e3e4e06, -0x4f2c4e41, -0x4e7a4dbb, -0x4d9f4dff, -0x4e514e54, -0x4f004e3a, -0x4e3d4e88, -0x4e474eaa, -0x4e574eb3, -0x4e264e32, -0x4efc4e80, -0x4e0b4f49, -0x4e9b4dfb, -0x4e314d69, -0x4d4e4deb, -0x4e9a4de8, -0x4e744e12, -0x4e944e6a, -0x4de34e34, -0x4e394de1, -0x4de24e47, -0x4e024e53, -0x4ec54e7e, -0x4f334e01, -0x4dfc4e30, -0x4e5c4f1f, -0x4e304e28, -0x4e234ea0, -0x4e194dd5, -0x4dc94e43, -0x4dd04e8f, -0x4e3e4e3e, -0x4dd44e9a, -0x4f064e31, -0x4e214e76, -0x4e1f4e7f, -0x4e0c4eb7, -0x4dc84dde, -0x4dfe4de7, -0x4e2b4e10, -0x4edf4ded, -0x4e724e37, -0x4e3a4dec, -0x4ddf4ebb, -0x4dbe4ec0, -0x4e874d1e, -0x4e0b4dc6, -0x4de74e5a, -0x4e964dcd, -0x4eda4e66, -0x4e4a4d77, -0x4df54da4, -0x4e4c4e8d, -0x4ede4e68, -0x4dd14e5d, -0x4e2d4e06, -0x4e464e0c, -0x4e154e5e, -0x4e6c4de8, -0x4daa4e54, -0x4ed04df4, -0x4e1a4d80, -0x4dcb4df9, -0x4e1c4dee, -0x4e5c4e17, -0x4e334e8c, -0x4e274dd3, -0x4dbb4d34, -0x4d474e7d, -0x4d0b4dfd, -0x4e684ddc, -0x4ecd4dc6, -0x4d7d4d9c, -0x4d694ee0, -0x4dca4ded, -0x4dcd4e3c, -0x4dbf4d5e, -0x4db04e4c, -0x4d974db2, -0x4d9f4da9, -0x4d2a4e43, -0x4e3d4dab, -0x4dd44e06, -0x4d794daa, -0x4de14de6, -0x4d624e01, -0x4dc74d05, -0x4db44ea2, -0x4e6e4d8b, -0x4e744ddd, -0x4d9a4d00, -0x4ddc4e77, -0x4dd14e8b, -0x4e3f4ccc, -0x4e154d93, -0x4de64e91, -0x4e2d4d2c, -0x4ea14e02, -0x4e3f4daf, -0x4db94d8b, -0x4e0e4dde, -0x4e504de3, -0x4d894e05, -0x4e134e03, -0x4d9c4e4e, -0x4e2d4df4, -0x4e004df6, -0x4ddd4df1, -0x4e684d7e, -0x4e074d6c, -0x4d0b4dca, -0x4dde4dba, -0x4db64e18, -0x4e2b4dc8, -0x4d964dfa, -0x4dc74d85, -0x4dc74e03, -0x4dce4ddd, -0x4f1b4e82, -0x4f6b4e5b, -0x4e3e4ec1, -0x4e4a4f42, -0x4e3c4e5e, -0x4e434e55, -0x4e0d4dbe, -0x4d9f4e30, -0x4df54e29, -0x4e494e4f, -0x4dc14e01, -0x4e7f4e7c, -0x4e1b4e9d, -0x4e554e00, -0x4e254e85, -0x4da94e0b, -0x4e0e4da2, -0x4e9b4e49, -0x4e7f4ded, -0x4ea54df3, -0x4dd64d68, -0x4db54ec1, -0x4e114ed0, -0x4e0c4d68, -0x4e5f4e37, -0x4d984e8a, -0x4e344e15, -0x4ef14e33, -0x4e904dc1, -0x4dfb4dd5, -0x4eb34e50, -0x4f414ebf, -0x4e124e9b, -0x4df54e83, -0x4e2f4e9e, -0x4dfd4e5c, -0x4ea94e64, -0x4e314ec7, -0x4eb64e1b, -0x4e684ddc, -0x4d964e72, -0x4e934e27, -0x4e704dd6, -0x4e374e8a, -0x4e0e4e0b, -0x4db04e2a, -0x4d724e2a, -0x4e194dbf, -0x4ea84e05, -0x4eed4dfa, -0x4e064e02, -0x4de14e93, -0x4da84e4e, -0x4d5d4e27, -0x4e0c4dc5, -0x4e0a4e4f, -0x4da04dc2, -0x4ddf4db7, -0x4dc64e72, -0x4e414e8d, -0x4e354e66, -0x4e214dc7, -0x4df34e2d, -0x4d7e4df3, -0x4e2e4da9, -0x4ded4e07, -0x4e6c4d9d, -0x4ec24e27, -0x4e014d98, -0x4d6e4e73, -0x4d9e4ed1, -0x4de84d36, -0x4e1c4da2, -0x4de24dcb, -0x4e314d8c, -0x4eee4e44, -0x4dd44d69, -0x4de54d7e, -0x4e4f4e35, -0x4e9c4e55, -0x4da44e58, -0x4dd24e09, -0x4dec4e27, -0x4e284e42, -0x4e664e50, -0x4e514e37, -0x4ebe4dd0, -0x4e194d62, -0x4d5a4e4e, -0x4e5d4e12, -0x4e4c4ddc, -0x4e444e8f, -0x4dbe4e84, -0x4dfd4d61, -0x4ddc4ded, -0x4d9c4e50, -0x4e904e71, -0x4f8b4e16, -0x4e684e5d, -0x4e084f60, -0x4e274e2a, -0x4e214f17, -0x4e1d4d68, -0x4de64dea, -0x4d884dd9, -0x4e434e27, -0x4da54e60, -0x4f234e57, -0x4e5f4e7d, -0x4dfe4e69, -0x4d9b4ebf, -0x4de44e4f, -0x4dfa4d8e, -0x4e224e03, -0x4e904df2, -0x4e724e18, -0x4dfe4cf7, -0x4dfa4e7e, -0x4dd44e98, -0x4e424d98, -0x4e024de0, -0x4dcb4ec0, -0x4e5a4d4f, -0x4f154df3, -0x4e514d77, -0x4e024da6, -0x4e2d4de0, -0x4e884ea4, -0x4df14dec, -0x4e5a4e0a, -0x4e024e9c, -0x4e2c4df8, -0x4e9a4e4a, -0x4d924e7b, -0x4e884e1c, -0x4e524ddb, -0x4d6c4e18, -0x4eb14dde, -0x4e2d4dc8, -0x4df04e24, -0x4e1e4dea, -0x4da34daf, -0x4dec4e3a, -0x4d934e70, -0x4e834e3a, -0x4efd4df9, -0x4e514e07, -0x4dde4f5d, -0x4dfc4e0b, -0x4ddc4e45, -0x4dc94d75, -0x4d8d4df3, -0x4da44de0, -0x4e7a4e37, -0x4dc84e46, -0x4ebd4e2e, -0x4e674e27, -0x4e2f4e3e, -0x4d984e5f, -0x4d6e4e5f, -0x4dc74da8, -0x4e314dd5, -0x4e894ddb, -0x4e734de0, -0x4dd94d87, -0x4dae4ea2, -0x4dc94e92, -0x4df14d4f, -0x4df14e02, -0x4de04e69, -0x4e394d7f, -0x4e994dc3, -0x4e694d2f, -0x4d5a4d99, -0x4e3b4e3d, -0x4eac4e74, -0x4e434e2d, -0x4e364e44, -0x4dc24e2d, -0x4e3a4e43, -0x4de64e22, -0x4d644e76, -0x4e7c4e25, -0x4e514dc2, -0x4d574daa, -0x4e554e4f, -0x4df24db5, -0x4e424e66, -0x4e304e18, -0x4e524df6, -0x4da74e8b, -0x4e274e2b, -0x4f5e4e8a, -0x4fd04e20, -0x4ed14e78, -0x4e3b4ef4, -0x4e7c4e31, -0x4de84ec6, -0x4e9b4e00, -0x4df64e95, -0x4e584e8f, -0x4e7a4e3b, -0x4e094ea5, -0x4f194ea0, -0x4e854e5c, -0x4e714e5f, -0x4e664e94, -0x4dfd4e34, -0x4e1d4ddc, -0x4e644e27, -0x4eb24e43, -0x4f304e7d, -0x4e054e1a, -0x4dde4f21, -0x4e6f4f53, -0x4e5e4e0a, -0x4e504dd2, -0x4e054ee9, -0x4e4b4dab, -0x4f2d4eb3, -0x4ec84e0a, -0x4e3f4dbf, -0x4ec04eca, -0x4f2c4ed5, -0x4e3d4e9c, -0x4e314ebc, -0x4e334e9c, -0x4e9c4e4e, -0x4edc4e15, -0x4e684ee4, -0x4ef64dd4, -0x4e524de9, -0x4d9b4ebb, -0x4f284e7b, -0x4e9c4e7d, -0x4e804e77, -0x4e174e9f, -0x4e534e60, -0x4e284e8b, -0x4e474e69, -0x4f884e69, -0x4f2c4dfc, -0x4e754e91, -0x4ecc4f10, -0x4dfa4deb, -0x4e374e6d, -0x4e5c4e21, -0x4dc54ebd, -0x4e474e7f, -0x4e614e82, -0x4df04ea7, -0x4f354eb8, -0x4ea14eac, -0x4e154f06, -0x4df54ea4, -0x4de84e63, -0x4e0d4dd8, -0x4e7f4e25, -0x4e904e50, -0x4ecd4e3d, -0x4e6c4dad, -0x4dd84f1a, -0x4e404f33, -0x4e3e4dfb, -0x4e5f4db5, -0x4e344eeb, -0x4e804dda, -0x4ed44ecc, -0x4e124db3, -0x4e524d87, -0x4ed64e2f, -0x4f174e9c, -0x4e124e5e, -0x4e314e48, -0x4e644e88, -0x4e234e44, -0x4ea34e16, -0x4e0a4e98, -0x4ebc4de2, -0x4e224dfc, -0x4dd54e5b, -0x4ea44e85, -0x4e4f4e42, -0x4e2d4ea1, -0x4d7d4e44, -0x4dad4db5, -0x4d314e2a, -0x4dbc4e06, -0x4e784e4e, -0x4ea34d7e, -0x4db84dc2, -0x4daa4ec4, -0x4de24e42, -0x4dac4e01, -0x4e004dbc, -0x4d714da6, -0x4dd24e01, -0x4db64d92, -0x4d544ec5, -0x4e3f4e7b, -0x4dfc4e0b, -0x4d6c4e05, -0x4d904e96, -0x4d2d4dae, -0x4dc94d7c, -0x4dcc4d91, -0x4e484dab, -0x4e264df2, -0x4dd14da6, -0x4dc34e7d, -0x4e044eab, -0x4dcb4d1f, -0x4da94db2, -0x4d8c4dd1, -0x4df24d8d, -0x4ef94e1c, -0x4e0a4d3c, -0x4d8f4d23, -0x4e274e02, -0x4ea24e29, -0x4dc64e10, -0x4db24de3, -0x4df74e61, -0x4e254df5, -0x4e464de6, -0x4dc84e0f, -0x4e3c4d8f, -0x4ddd4d4e, -0x4cfa4df1, -0x4e724e06, -0x4dda4de3, -0x4e244df9, -0x4d7f4da8, -0x4d954d8f, -0x4dbc4e5a, -0x4daf4ded, -0x4eea4e1c, -0x4ee94db3, -0x4dd24e7d, -0x4df64e60, -0x4e2d4dfd, -0x4df04e5d, -0x4dde4db2, -0x4d4e4de1, -0x4db64dd9, -0x4dcd4de8, -0x4d634dff, -0x4e754dee, -0x4dfd4e5d, -0x4d884e30, -0x4dc44e6f, -0x4d904d8b, -0x4dc24d4e, -0x4e3e4e07, -0x4e794d82, -0x4de04da7, -0x4d8a4d1a, -0x4da74e91, -0x4dcc4e5c, -0x4df74d9d, -0x4dee4d69, -0x4da34e05, -0x4e2d4d41, -0x4ec44e13, -0x4e414cf6, -0x4dad4dc4, -0x4e744d96, -0x4e4b4e66, -0x4da14df8, -0x4ddd4dbe, -0x4d814e12, -0x4dba4da9, -0x4dfb4df4, -0x4dbb4e53, -0x4e134d79, -0x4dfc4d93, -0x4d6e4da8, -0x4dee4ddb, -0x4e714db2, -0x4e154e06, -0x4e104dad, -0x4d9a4dbe, -0x4d824e47, -0x4e0e4e18, -0x4ebd4e70, -0x4eee4e2f, -0x4e164e47, -0x4dee4ed6, -0x4e644e5a, -0x4dfa4e99, -0x4e824dd7, -0x4dd04e32, -0x4e314e4a, -0x4dab4db7, -0x4df74e6f, -0x4ea54e5e, -0x4e3d4e2f, -0x4dee4e1b, -0x4df64e6e, -0x4d944e07, -0x4d9d4d52, -0x4dc14d9a, -0x4e8a4d68, -0x4ed04de5, -0x4e0e4dbc, -0x4df14e82, -0x4deb4eda, -0x4e034d7d, -0x4d9c4d79, -0x4df04e18, -0x4e044dc0, -0x4f3c4e3c, -0x4e534dcf, -0x4dad4d88, -0x4e304e2e, -0x4ea54e7a, -0x4df94dca, -0x4e054e4a, -0x4dca4e9c, -0x4e1c4e18, -0x4e3a4e4d, -0x4dd74ed8, -0x4e564dd2, -0x4e5c4da1, -0x4d664dec, -0x4e624e07, -0x4e5e4e15, -0x4e1d4e30, -0x4e0e4e47, -0x4e014dec, -0x4dfa4e70, -0x4db44e67, -0x4f894e83, -0x4f764e1b, -0x4e2b4e4b, -0x4e794f33, -0x4e1d4e5f, -0x4df14e90, -0x4e534df9, -0x4d954deb, -0x4d814e23, -0x4e1e4e0a, -0x4df04efc, -0x4ee74e8d, -0x4ecb4e99, -0x4e414e37, -0x4e284ece, -0x4dba4deb, -0x4e1d4dd7, -0x4e1e4e40, -0x4eab4e08, -0x4e9e4e61, -0x4e324db5, -0x4df44ed9, -0x4e584f2d, -0x4dd94d91, -0x4e324dd4, -0x4db84e5e, -0x4e4d4dfb, -0x4f3e4e87, -0x4ea34dcc, -0x4e3b4d85, -0x4e954e3a, -0x4efa4ea9, -0x4e564f03, -0x4e594e70, -0x4e7b4e85, -0x4e5e4e0a, -0x4e614e33, -0x4e244edb, -0x4e4e4e24, -0x4e354ddc, -0x4dc24e52, -0x4ecb4e58, -0x4e934dea, -0x4e7a4e7a, -0x4e244e24, -0x4e764e1a, -0x4dcb4e5f, -0x4e374e4c, -0x4ec94ed6, -0x4f1e4de4, -0x4e224e8e, -0x4e5e4eef, -0x4e5b4e26, -0x4e7a4ed3, -0x4e764dbf, -0x4de04e06, -0x4de54e59, -0x4e1f4e66, -0x4dd84e76, -0x4ef84e8d, -0x4e454ed3, -0x4e3d4e84, -0x4df14ef2, -0x4e094df6, -0x4e224d77, -0x4e8a4dc6, -0x4e8f4dcd, -0x4eef4e57, -0x4e404dbc, -0x4deb4f00, -0x4e334e93, -0x4e1a4d66, -0x4dee4dc6, -0x4dd84e42, -0x4e834e23, -0x4ee34e0b, -0x4e634da3, -0x4e1a4dbf, -0x4e8f4e7a, -0x4eed4ede, -0x4e5a4e27, -0x4e2f4e42, -0x4e1d4ea2, -0x4e7e4e16, -0x4e644eab, -0x4dc24ec7, -0x4eca4d9a, -0x4e224e4a, -0x4dd14e54, -0x4e814e67, -0x4e324de7, -0x4e704f41, -0x4ddc4e0d, -0x4deb4da1, -0x4d794e14, -0x4db94e1c, -0x4e734e1a, -0x4ee54dd2, -0x4dbd4dd8, -0x4dd34e94, -0x4e2d4da2, -0x4dda4e62, -0x4e2d4d75, -0x4d3e4e01, -0x4ddb4ddf, -0x4d914e1e, -0x4da94e09, -0x4e7a4e74, -0x4dd44dba, -0x4da44e30, -0x4d814e3e, -0x4d954d95, -0x4e304d81, -0x4e354e23, -0x4e344dbd, -0x4e894e0a, -0x4df74d2f, -0x4dbe4e72, -0x4e284ef1, -0x4dd94d7e, -0x4dd54dc9, -0x4de84e30, -0x4e004da4, -0x4e664e0a, -0x4e044d32, -0x4db94d5e, -0x4e3e4e11, -0x4e6c4de4, -0x4e104e38, -0x4df44db9, -0x4dec4e63, -0x4dd54deb, -0x4e284e2c, -0x4d864e22, -0x4e3e4dd8, -0x4e7e4d27, -0x4cf54dc5, -0x4e4e4e04, -0x4df24e1c, -0x4de04e10, -0x4d534d6b, -0x4e374de7, -0x4e274e87, -0x4e074e9b, -0x4f9e4e87, -0x4faf4e14, -0x4f044edd, -0x4e284f20, -0x4e6d4d9f, -0x4df24f14, -0x4e744e1b, -0x4d6f4e77, -0x4dff4e33, -0x4e754e7c, -0x4e2c4e6e, -0x4f3a4e68, -0x4e8f4ec2, -0x4e354eda, -0x4e424f59, -0x4dfe4e34, -0x4e5b4e42, -0x4e914e3a, -0x4e714e20, -0x4eba4eec, -0x4e1f4e03, -0x4dd84eac, -0x4ead4f57, -0x4de54de8, -0x4e964e17, -0x4db74e7c, -0x4e474ddb, -0x4f174e6a, -0x4e984d7d, -0x4e324e04, -0x4ecf4e82, -0x4f054ed7, -0x4ec64e77, -0x4e3f4ee5, -0x4e834e8f, -0x4e0e4dcd, -0x4e584e9d, -0x4df34eea, -0x4ecb4de0, -0x4e8a4e06, -0x4d674e68, -0x4eef4e5a, -0x4e8b4e05, -0x4e464eff, -0x4dd74e60, -0x4dee4dcc, -0x4db44e78, -0x4db14e61, -0x4edd4e3e, -0x4ede4db1, -0x4e5a4d68, -0x4dd24efb, -0x4e284dfe, -0x4e164ec4, -0x4e554d85, -0x4dc44dff, -0x4dc94e27, -0x4dd24dc7, -0x4d944e79, -0x4e8b4e4e, -0x4e524e6a, -0x4e084dfc, -0x4dff4e1e, -0x4d7b4daf, -0x4da54d51, -0x4e254deb, -0x4e7a4e00, -0x4ea64de4, -0x4ddc4d64, -0x4ddb4ea0, -0x4dfa4e73, -0x4e174d1b, -0x4de84d78, -0x4dc44eb9, -0x4e2e4dc0, -0x4eb64e61, -0x4e6a4dac, -0x4dd04d86, -0x4e204e92, -0x4e5f4e2b, -0x4e2d4df0, -0x4dd74e1b, -0x4e1f4e1d, -0x4e6e4e45, -0x4de84dc8, -0x4dea4e5f, -0x4e5e4dd3, -0x4dee4dda, -0x4d7d4dac, -0x4e3c4e39, -0x4e6e4e22, -0x4e454e77, -0x4dd34e0b, -0x4e334e35, -0x4de74e9c, -0x4e544e4c, -0x4f2a4eeb, -0x4f674e39, -0x4e614e9e, -0x4e504f2b, -0x4eab4e45, -0x4e4f4f08, -0x4e7a4e01, -0x4df94e73, -0x4dd94e88, -0x4e6d4ea5, -0x4dcf4ef7, -0x4f584f2f, -0x4eca4ef7, -0x4e824e71, -0x4e734f22, -0x4e094e35, -0x4e4a4de6, -0x4e584e4c, -0x4f1c4e07, -0x4f1d4ea0, -0x4e884de4, -0x4e274ec8, -0x4df94f13, -0x4e554dc0, -0x4e3b4da9, -0x4df24eb5, -0x4ea04e28, -0x4f564e45, -0x4ebe4dfe, -0x4e2b4db8, -0x4ebc4ea1, -0x4f164ec6, -0x4e5a4e85, -0x4e674e8c, -0x4e114efc, -0x4e7c4e3e, -0x4e664e7b, -0x4df34ecf, -0x4e974e39, -0x4eb34dd1, -0x4e054e47, -0x4eb74e7d, -0x4eca4e7b, -0x4ea04f2b, -0x4e514e2b, -0x4dbf4db9, -0x4db64e60, -0x4da94ec2, -0x4eb24e40, -0x4ee84dd0, -0x4e3d4df1, -0x4e3a4eef, -0x4dfe4e4c, -0x4e524e5e, -0x4e284df0, -0x4de54e65, -0x4d6d4e47, -0x4dd14e02, -0x4dde4e7c, -0x4e874e2f, -0x4e584e9e, -0x4e914e0a, -0x4e054e0c, -0x4d894e1d, -0x4da94d53, -0x4e714e6b, -0x4e8a4df8, -0x4ed84dcd, -0x4e1d4d7f, -0x4d974e77, -0x4d6f4ea3, -0x4e0f4d9d, -0x4e2b4dcb, -0x4dbd4e8e, -0x4e284d96, -0x4f0c4e09, -0x4e534d95, -0x4e324d66, -0x4dfb4e1c, -0x4e914e2a, -0x4dd04ed8, -0x4e1e4e94, -0x4e4a4dd3, -0x4e564dcd, -0x4e7e4e2f, -0x4dd24e22, -0x4e9a4e42, -0x4e3c4ddc, -0x4d974e8a, -0x4e7e4e00, -0x4e5c4d80, -0x4e5e4eba, -0x4e024e47, -0x4c814c99, -0x4cb24d53, -0x4ca44d3f, -0x4dab4d31, -0x4dae4d46, -0x4d3d4ce7, -0x4d004da8, -0x4d0d4d6a, -0x4d0c4d75, -0x4cf54cc1, -0x4cc44d2e, -0x4cac4ccf, -0x4cfa4cfc, -0x4ccd4d7f, -0x4d624d41, -0x4d2f4d43, -0x4cfc4cf8, -0x4d004db4, -0x4cad4cfa, -0x4cf74cf2, -0x4cf24d04, -0x4d564caf, -0x4d5b4cda, -0x4d374cef, -0x4cca4d81, -0x4ca34ddd, -0x4d2d4c50, -0x4cf74c81, -0x4ce24d46, -0x4d384ce5, -0x4de84cf5, -0x4d4f4c6a, -0x4cc34c86, -0x4d5b4d31, -0x4d824d55, -0x4cc04d74, -0x4d274d08, -0x4cd94d0a, -0x4d384cf2, -0x4d294c9b, -0x4d1a4d67, -0x4d1d4d25, -0x4cd04cdd, -0x4c6d4ced, -0x4d724d0d, -0x4d944d3f, -0x4d2d4d5a, -0x4cb84d00, +uint32_t golden [384] = { +0x48974845, +0x48384608, +0x487b4855, +0x48804869, +0x48b046d1, +0x483f48db, +0x485f48c9, +0x483a4881, +0x472c484b, +0x492b4762, +0x48fd4822, +0x492e488e, +0x484f483e, +0x46d749e8, +0x489d484b, +0x47e9490b, +0x47d2484f, +0x474744be, +0x46c047c7, +0x48af4727, +0x482d46c5, +0x482e483d, +0x479f4897, +0x4749488b, +0x46a8489a, +0x488b46f2, +0x47e84891, +0x483d4872, +0x46fd4716, +0x46a049b5, +0x47a446e7, +0x476748a1, +0x49354939, +0x48c14703, +0x48bd4863, +0x48cf4913, +0x48b848b6, +0x49204946, +0x48e1495e, +0x48b24938, +0x4882493a, +0x49d5483b, +0x49724911, +0x49df496b, +0x488848f2, +0x48214a46, +0x490c48c1, +0x48a349b2, +0x47b0463a, +0x476244cb, +0x46b94765, +0x4814466a, +0x47964631, +0x474b4666, +0x47044798, +0x47614838, +0x459047d3, +0x48a245ea, +0x484447f1, +0x4776484b, +0x46d847d6, +0x44d348f3, +0x478d46fa, +0x466e481e, +0x481e4827, +0x479445a2, +0x48064727, +0x48d5475d, +0x48284708, +0x480d4862, +0x48324895, +0x47f148bd, +0x46a7482a, +0x492d47b1, +0x4884484d, +0x485f48dc, +0x480c476d, +0x46d348e9, +0x48844728, +0x480e48a0, +0x48134862, +0x485a4675, +0x473847e8, +0x48234836, +0x482146e7, +0x47b34822, +0x48554846, +0x47174863, +0x47c14872, +0x488e46d5, +0x485f47e2, +0x48b8487c, +0x4788481e, +0x467748bd, +0x47f846c9, +0x47fc48fe, +0x47b247a0, +0x467e4588, +0x46c74662, +0x481246e8, +0x474e4536, +0x468f46c0, +0x4679481f, +0x46e246a1, +0x45604809, +0x47eb4630, +0x475746b5, +0x477f4848, +0x46d846a6, +0x459a4870, +0x46784670, +0x468c47d2, +0x48c44762, +0x479146e3, +0x486d46b1, +0x486747d0, +0x47f6468d, +0x475648a5, +0x48544857, +0x48384866, +0x46ec484d, +0x48f647d2, +0x4879484a, +0x483c4848, +0x4806471d, +0x473048fa, +0x47b84768, +0x46f94865, +0x491848a8, +0x486746ca, +0x48624800, +0x491048d3, +0x4849474e, +0x486b48eb, +0x48c54966, +0x483048f4, +0x477848f9, +0x499e481e, +0x48f148cf, +0x49234982, +0x47cf487c, +0x464949ea, +0x495e4773, +0x483f48b2, +0x497548a7, +0x481e4616, +0x4866481f, +0x486448b6, +0x487347dc, +0x487f485c, +0x491f4938, +0x48b6490d, +0x48a148f8, +0x492d4859, +0x4915489c, +0x48874899, +0x4859486c, +0x471e49ca, +0x49184867, +0x482748d3, +0x4998488b, +0x481d4704, +0x488048b8, +0x49444876, +0x48f2470c, +0x489b48b9, +0x48e54956, +0x48a548d6, +0x485648dc, +0x49ab484e, +0x490e48e0, +0x494548dd, +0x48dd488b, +0x47ea4a32, +0x49114835, +0x48194965, +0x481e460e, +0x4673452c, +0x4717475c, +0x46d046f6, +0x46bc4696, +0x481e4726, +0x46ea4763, +0x475846fe, +0x4627478b, +0x483f4704, +0x47b146ad, +0x48164792, +0x468446f2, +0x45a84827, +0x47a4472f, +0x462b4797, +0x48ab483f, +0x4863468f, +0x4766485a, +0x48cb481d, +0x490347dc, +0x483048fc, +0x483e48cc, +0x486448ab, +0x47634966, +0x499d4794, +0x488b488e, +0x496048dc, +0x484c4854, +0x474c499c, +0x48bc4826, +0x48834949, +0x4905489d, +0x481e4718, +0x48f448e3, +0x490448c1, +0x48b347e8, +0x48d44892, +0x489448ff, +0x488648d5, +0x480348fa, +0x492e47d2, +0x48b24870, +0x492b48e5, +0x4785487b, +0x471d49e3, +0x48bf4837, +0x48c4489b, +0x4871475c, +0x4811464a, +0x471c47af, +0x48174817, +0x484e463b, +0x464f477f, +0x487c4704, +0x472547a3, +0x462a4853, +0x4860465a, +0x48804736, +0x482b47e1, +0x46c04811, +0x475d48dc, +0x48064668, +0x46f44893, +0x49594858, +0x487b463d, +0x484e480f, +0x48a648c0, +0x48944847, +0x484a48a0, +0x48f4491e, +0x48b548fc, +0x47d248ce, +0x497f47db, +0x49394955, +0x48ce48a7, +0x48844890, +0x476349d6, +0x4922486e, +0x48c348f4, +0x491c47ec, +0x47834698, +0x47544715, +0x47524745, +0x4832472f, +0x48094817, +0x48c347f8, +0x480047e6, +0x473048b6, +0x48cb480a, +0x488e479e, +0x488e47c2, +0x47ee472f, +0x4744489d, +0x48514755, +0x47d34846, +0x48a04838, +0x47624634, +0x48064786, +0x482d47e3, +0x486c4726, +0x480347b7, +0x481448ac, +0x483948e0, +0x47504827, +0x48c546f2, +0x4886483f, +0x485648ad, +0x47a947e8, +0x47434937, +0x481f46d0, +0x4804484c, +0x481f47fd, +0x4813456d, +0x4807474d, +0x480e4688, +0x481046e8, +0x4799469f, +0x478f4853, +0x482447f2, +0x471f47d0, +0x485f46da, +0x481c4813, +0x4863482e, +0x480b4786, +0x46b848c9, +0x46e2475a, +0x46c54852, +0x480245af, +0x46c24466, +0x4743465d, +0x47ba46b7, +0x46c34636, +0x47844677, +0x47c2485a, +0x46ac46dc, +0x460e47de, +0x4834465f, +0x476947f4, +0x481046fc, +0x45ea45fd, +0x45b548d0, +0x47834704, +0x46c44830, +0x47c74759, +0x45b0453d, +0x47024741, +0x47934736, +0x47ba461b, +0x46dd470b, +0x470b4657, +0x4710470d, +0x468f486c, +0x46ba45c3, +0x483b479d, +0x477446c9, +0x46a746a9, +0x46064833, +0x46a94690, +0x46a746f5, +0x48bb47ac, +0x4803452c, +0x4824470f, +0x48cb47d5, +0x484a4707, +0x47974832, +0x482c4851, +0x4877487a, +0x465d4891, +0x48ce47f4, +0x48994898, +0x486a484e, +0x47f047ac, +0x4611493e, +0x489e47e2, +0x46af488c, +0x48364665, +0x46b645e4, +0x46b946a1, +0x46dd46c8, +0x474b4658, +0x4777467b, +0x47984769, +0x475e4785, +0x4656472a, +0x488145fb, +0x472d46fc, +0x47a3476e, +0x46ca465d, +0x45004855, +0x479a464f, +0x473846c3, +0x486c481e, +0x48014659, +0x477a4756, +0x487b47d5, +0x48084706, +0x4838484f, +0x48634870, +0x480648d3, +0x47714865, +0x494c46be, +0x484c4915, +0x48624900, +0x46e8481a, +0x46a04974, +0x483d4775, +0x480e487c, }; \ No newline at end of file diff --git a/hwpe/redmule/inc/tensor_dim.h b/hwpe/redmule/inc/tensor_dim.h index 284125f..21bd0d8 100644 --- a/hwpe/redmule/inc/tensor_dim.h +++ b/hwpe/redmule/inc/tensor_dim.h @@ -2,9 +2,9 @@ #ifndef __TENSOR_DIM__ #define __TENSOR_DIM__ -#define M_SIZE 96 -#define N_SIZE 96 -#define K_SIZE 96 +#define M_SIZE 24 +#define N_SIZE 32 +#define K_SIZE 32 #define SRC_FMT FP16 #define DST_FMT FP16 #define FPFORMAT 16 diff --git a/hwpe/redmule/inc/w_2D.h b/hwpe/redmule/inc/w_2D.h index 74b1a11..9409c64 100644 --- a/hwpe/redmule/inc/w_2D.h +++ b/hwpe/redmule/inc/w_2D.h @@ -1,99 +1,35 @@ /* Header file generated by RedMulE Golden Model */ -uint16_t w_inp_2D [96][96] = { -0x2d1a, 0x2f9c, 0x3596, 0x38eb, 0x3a5c, 0x3827, 0x3b07, 0x397a, 0x347f, 0x3703, 0x2e26, 0x305c, 0x3ba2, 0x39cd, 0x36fa, 0x3899, 0x38dc, 0x3a60, 0x345b, 0x2d80, 0x36ad, 0x2eb8, 0x34ca, 0x384a, 0x33ef, 0x353e, 0x370e, 0x38f6, 0x3947, 0x387c, 0x3893, 0x38fd, 0x39a9, 0x29fb, 0x39ec, 0x3232, 0x35f8, 0x320c, 0x3b5c, 0x34b6, 0x39e6, 0x2b02, 0x340d, 0x30cc, 0x3b7d, 0x3298, 0x381a, 0x3aa8, 0x3b2b, 0x3605, 0x389e, 0x3a3a, 0x2f2c, 0x3ae4, 0x2cc3, 0x2e6b, 0x3850, 0x3a94, 0x396f, 0x3683, 0x3983, 0x39ea, 0x349f, 0x3b95, 0x28a5, 0x3853, 0x349a, 0x30cc, 0x389b, 0x3595, 0x31f9, 0x3a85, 0x367d, 0x3bbe, 0x3bde, 0x3ae7, 0x3977, 0x3a5d, 0x2497, 0x32ed, 0x39c5, 0x3553, 0x3b87, 0x357c, 0x3868, 0x2fc2, 0x1ad7, 0x3079, 0x3b2f, 0x3570, 0x3a70, 0x3761, 0x29cd, 0x3640, 0x3885, 0x2c6e, -0x3a6c, 0x322b, 0x34e2, 0x1a14, 0x385b, 0x3bdd, 0x3b0f, 0x3548, 0x35d5, 0x3105, 0x39f6, 0x2ce7, 0x365f, 0x286d, 0x3673, 0x3517, 0x3847, 0x3905, 0x34f8, 0x3a5b, 0x2809, 0x38e8, 0x3910, 0x3bce, 0x3aa7, 0x3a98, 0x3a82, 0x318b, 0x39a1, 0x39c7, 0x3960, 0x3206, 0x3320, 0x3893, 0x2e29, 0x391a, 0x28ae, 0x3535, 0x3a37, 0x3821, 0x32de, 0x326d, 0x3196, 0x3b5f, 0x38f2, 0x3b44, 0x3680, 0x3309, 0x3bf2, 0x3bb2, 0x3874, 0x3531, 0x2c98, 0x3648, 0x2d18, 0x2af5, 0x25d7, 0x3a75, 0x38bc, 0x3a77, 0x39bb, 0x3a92, 0x397d, 0x3486, 0x35e3, 0x3917, 0x3805, 0x3001, 0x3619, 0x3952, 0x34c7, 0x3a87, 0x35de, 0x385e, 0x2590, 0x3bb1, 0x2b49, 0x3526, 0x35c5, 0x3963, 0x374e, 0x346a, 0x35d0, 0x3622, 0x2dd8, 0x3aa0, 0x3292, 0x30d8, 0x3883, 0x3ad4, 0x3a22, 0x360f, 0x3424, 0x348f, 0x3886, 0x38f3, -0x3945, 0x3792, 0x3629, 0x3b2b, 0x3bf5, 0x3a69, 0x3199, 0x3b84, 0x35c4, 0x3b13, 0x27a5, 0x3b8a, 0x393d, 0x3a14, 0x3a40, 0x35e7, 0x3a6a, 0x38ad, 0x3bb9, 0x24d8, 0x3b90, 0x3797, 0x3716, 0x384e, 0x3832, 0x3855, 0x39c3, 0x39de, 0x2684, 0x3627, 0x35f0, 0x3a86, 0x3995, 0x2abc, 0x347a, 0x2409, 0x2758, 0x3664, 0x3ae9, 0x1eb1, 0x386a, 0x33dd, 0x3413, 0x243b, 0x3b5b, 0x36fb, 0x38ab, 0x39cb, 0x38e8, 0x308c, 0x3be2, 0x30c8, 0x382c, 0x3bcc, 0x3b0f, 0x30e7, 0x31b4, 0x2adb, 0x2354, 0x2c7e, 0x3774, 0x3299, 0x3574, 0x3b35, 0x38a3, 0x3836, 0x3400, 0x3721, 0x3acb, 0x37da, 0x3688, 0x35d5, 0x3977, 0x3247, 0x2a12, 0x3b36, 0x371a, 0x3750, 0x2ad9, 0x242b, 0x306f, 0x3502, 0x3b35, 0x394d, 0x3646, 0x315d, 0x387d, 0x349f, 0x305a, 0x3a84, 0x3a3e, 0x3be3, 0x3bf9, 0x3580, 0x3b14, 0x3a13, -0x371c, 0x2da9, 0x3995, 0x38be, 0x323e, 0x328d, 0x383d, 0x3991, 0x3a57, 0x38ca, 0x3867, 0x3982, 0x34fd, 0x347c, 0x380f, 0x3074, 0x38d4, 0x34fa, 0x326a, 0x377c, 0x3a52, 0x3abd, 0x3536, 0x226f, 0x319c, 0x3321, 0x393e, 0x3467, 0x3b37, 0x3bc1, 0x3a17, 0x394d, 0x33a2, 0x395d, 0x33e4, 0x3b09, 0x3855, 0x354d, 0x2f53, 0x34e7, 0x375b, 0x35f1, 0x367f, 0x3674, 0x2e07, 0x3ba0, 0x314b, 0x3bce, 0x2c5f, 0x384d, 0x3443, 0x36b1, 0x3973, 0x38d8, 0x340d, 0x3a77, 0x2ec7, 0x3538, 0x2e0e, 0x2d39, 0x3a81, 0x3b54, 0x3bdc, 0x3461, 0x2d5f, 0x3a52, 0x390c, 0x2186, 0x3896, 0x39d5, 0x3868, 0x2171, 0x303e, 0x3b19, 0x3915, 0x3be0, 0x39cb, 0x34ce, 0x357f, 0x394b, 0x39d3, 0x3af8, 0x3855, 0x3430, 0x36d6, 0x38bd, 0x3ad5, 0x38f4, 0x252e, 0x3b49, 0x36b0, 0x32b2, 0x3610, 0x3baa, 0x398b, 0x3ac1, -0x3655, 0x2ad4, 0x38e1, 0x3a9a, 0x37b9, 0x3027, 0x3889, 0x3017, 0x3baf, 0x32b8, 0x3922, 0x3984, 0x3ac3, 0x3775, 0x37f5, 0x38f0, 0x3a37, 0x3a8a, 0x283a, 0x1b5c, 0x3998, 0x2c23, 0x380e, 0x3254, 0x3ad7, 0x39f2, 0x328e, 0x36da, 0x370d, 0x2f71, 0x3944, 0x2e44, 0x36d7, 0x362a, 0x370d, 0x38a7, 0x3b99, 0x3850, 0x3111, 0x329d, 0x3bbf, 0x353e, 0x3932, 0x3542, 0x2ab8, 0x3bf2, 0x312c, 0x3070, 0x3983, 0x3882, 0x3aa6, 0x39fd, 0x384b, 0x3a76, 0x3b1f, 0x312a, 0x183e, 0x362e, 0x347e, 0x38cf, 0x3186, 0x38eb, 0x1c0b, 0x2def, 0x33ec, 0x3b0f, 0x387e, 0x344f, 0x3b28, 0x367f, 0x3661, 0x382a, 0x28c2, 0x3980, 0x3709, 0x3875, 0x3922, 0x37fb, 0x36a9, 0x2f28, 0x36c2, 0x30c6, 0x3bcf, 0x3aba, 0x3965, 0x3397, 0x39ab, 0x3812, 0x344e, 0x39ff, 0x3866, 0x3895, 0x3ba0, 0x3a13, 0x3a1b, 0x35ef, -0x382a, 0x34ad, 0x39c7, 0x2ef8, 0x377e, 0x3915, 0x3beb, 0x3a4f, 0x35e7, 0x3465, 0x3668, 0x3404, 0x3233, 0x3361, 0x3b7e, 0x3702, 0x3b3b, 0x3834, 0x36e7, 0x3a65, 0x2ed7, 0x3965, 0x3914, 0x34c7, 0x3722, 0x3612, 0x397f, 0x2e03, 0x36b6, 0x2da9, 0x33d1, 0x350e, 0x38af, 0x1b8f, 0x360b, 0x3803, 0x38e4, 0x328a, 0x330b, 0x383c, 0x3501, 0x334b, 0x35bf, 0x395f, 0x394f, 0x359b, 0x3b66, 0x2eee, 0x350f, 0x3759, 0x3a91, 0x3b46, 0x3808, 0x3b0e, 0x38c7, 0x3846, 0x2e4b, 0x2edb, 0x382a, 0x348d, 0x1a8b, 0x3510, 0x39c3, 0x30f8, 0x3758, 0x2fc8, 0x3386, 0x3316, 0x393f, 0x3351, 0x3b46, 0x389f, 0x3312, 0x28a9, 0x34ff, 0x3a51, 0x3b00, 0x36a4, 0x3811, 0x281c, 0x3646, 0x3b42, 0x3453, 0x32ea, 0x2f6b, 0x3a64, 0x2cd4, 0x28d1, 0x3a0b, 0x3276, 0x3b1d, 0x368e, 0x340a, 0x3ac3, 0x3067, 0x3987, -0x25a7, 0x39f4, 0x3b54, 0x38d8, 0x3708, 0x3999, 0x313e, 0x316b, 0x39af, 0x2e81, 0x3667, 0x39e3, 0x3904, 0x391d, 0x383d, 0x3956, 0x36c0, 0x30d0, 0x346d, 0x39cf, 0x3236, 0x354f, 0x377f, 0x326a, 0x3800, 0x3022, 0x3b2f, 0x3b98, 0x3a97, 0x3bca, 0x3a1e, 0x3a5b, 0x337d, 0x385c, 0x2fff, 0x399e, 0x33e3, 0x355a, 0x3835, 0x3a1e, 0x38d5, 0x3791, 0x2f0d, 0x2ef4, 0x3581, 0x397a, 0x3a26, 0x391b, 0x3727, 0x3874, 0x3a25, 0x30ba, 0x2b99, 0x3a8b, 0x345b, 0x3bab, 0x3900, 0x3743, 0x3b73, 0x391a, 0x3bd2, 0x39ea, 0x3599, 0x383b, 0x34c0, 0x34b3, 0x3bf0, 0x396d, 0x3b6f, 0x36f9, 0x350e, 0x3b43, 0x39da, 0x3b16, 0x38af, 0x369c, 0x3530, 0x3a87, 0x3a68, 0x2220, 0x2d27, 0x3a49, 0x2df1, 0x353a, 0x3a08, 0x3bdb, 0x378e, 0x2942, 0x35f0, 0x3618, 0x3897, 0x3946, 0x3b7d, 0x3a44, 0x356f, 0x389f, -0x3bd0, 0x2946, 0x3aa2, 0x3711, 0x3462, 0x369c, 0x3a56, 0x3b59, 0x32ac, 0x3813, 0x2f28, 0x3c00, 0x3404, 0x34dc, 0x29ec, 0x3bf1, 0x393e, 0x3b63, 0x3513, 0x3822, 0x382b, 0x35f2, 0x3b2c, 0x3498, 0x2515, 0x31aa, 0x3a7f, 0x391d, 0x3a54, 0x34ef, 0x353a, 0x3a41, 0x334a, 0x3b6a, 0x376f, 0x3bb0, 0x3821, 0x38c2, 0x3b57, 0x333d, 0x2ba8, 0x368e, 0x3a2c, 0x345b, 0x3b9a, 0x3976, 0x3870, 0x34b5, 0x386c, 0x3916, 0x38cc, 0x32a3, 0x3bd8, 0x30bc, 0x30a7, 0x38bc, 0x3727, 0x38e7, 0x337a, 0x3b34, 0x39b7, 0x391f, 0x27fa, 0x3b3f, 0x3940, 0x3698, 0x3256, 0x3a9b, 0x39c3, 0x2e76, 0x3899, 0x3915, 0x36a4, 0x3606, 0x3bd9, 0x314f, 0x2822, 0x3bba, 0x381b, 0x3252, 0x38dd, 0x2cb9, 0x38f3, 0x385c, 0x348d, 0x3220, 0x31a8, 0x3128, 0x3aed, 0x3903, 0x3be2, 0x3971, 0x29f4, 0x3130, 0x3b11, 0x35d7, -0x3a04, 0x393c, 0x3573, 0x3870, 0x3568, 0x38f5, 0x38a4, 0x353f, 0x3b0f, 0x363a, 0x35de, 0x3241, 0x3b97, 0x2e15, 0x3a8a, 0x3823, 0x38e0, 0x3556, 0x3a96, 0x364f, 0x337a, 0x34e3, 0x342b, 0x3994, 0x3b5c, 0x3b57, 0x3a63, 0x2f0d, 0x3b7a, 0x3a08, 0x3102, 0x34ce, 0x3036, 0x3864, 0x3887, 0x280c, 0x3bb5, 0x38a1, 0x3b71, 0x3b0c, 0x3487, 0x3b6e, 0x3aec, 0x3af6, 0x1cd8, 0x3381, 0x2923, 0x3b78, 0x3597, 0x3528, 0x3afe, 0x39c2, 0x3258, 0x3898, 0x3b8c, 0x2c32, 0x38e1, 0x2f4a, 0x3948, 0x39bb, 0x39cb, 0x386b, 0x3778, 0x3847, 0x2fa6, 0x3b01, 0x3a0c, 0x3a67, 0x3b8e, 0x3959, 0x346b, 0x38ba, 0x34f8, 0x3606, 0x3940, 0x3562, 0x3be6, 0x390c, 0x2d8b, 0x3987, 0x2f30, 0x2d65, 0x36d1, 0x3b44, 0x3421, 0x37cb, 0x3a4a, 0x338e, 0x3693, 0x3699, 0x3521, 0x3aae, 0x3930, 0x391c, 0x3654, 0x3898, -0x36f8, 0x34cd, 0x2149, 0x326e, 0x36fa, 0x3179, 0x2e80, 0x3a76, 0x3027, 0x3847, 0x3b9b, 0x38eb, 0x35c2, 0x34d4, 0x384a, 0x3595, 0x35ab, 0x3937, 0x3668, 0x3953, 0x3697, 0x2d28, 0x3baa, 0x3a75, 0x3889, 0x3996, 0x34d8, 0x39b2, 0x3b7d, 0x37c5, 0x3b60, 0x316d, 0x324c, 0x3a17, 0x35bd, 0x3914, 0x334e, 0x3375, 0x29e3, 0x34a3, 0x3346, 0x39e3, 0x32d6, 0x2b0b, 0x3ac7, 0x3aca, 0x3813, 0x3752, 0x3022, 0x39f7, 0x3971, 0x389f, 0x39c2, 0x3205, 0x3739, 0x38b3, 0x3942, 0x39dc, 0x39db, 0x382a, 0x3abb, 0x3978, 0x3ad0, 0x3568, 0x2c42, 0x3773, 0x31c8, 0x3b9f, 0x3594, 0x3a9a, 0x37c3, 0x31c2, 0x325a, 0x3931, 0x2265, 0x39ab, 0x24b6, 0x3291, 0x3a79, 0x3b31, 0x39ef, 0x3a6b, 0x381f, 0x304d, 0x33fb, 0x39d6, 0x3849, 0x3891, 0x367a, 0x3b66, 0x380e, 0x3481, 0x3b30, 0x2a58, 0x3bf3, 0x35d3, -0x3b73, 0x3bcf, 0x3a9c, 0x3a9f, 0x2d30, 0x3abe, 0x3510, 0x3980, 0x2809, 0x3bed, 0x2477, 0x31d1, 0x37d6, 0x3553, 0x3190, 0x38fd, 0x366f, 0x3917, 0x3bf2, 0x3b54, 0x34f0, 0x2f3f, 0x3b0a, 0x379a, 0x342d, 0x2db5, 0x3105, 0x35a8, 0x39a2, 0x3b84, 0x350e, 0x2c79, 0x3a84, 0x3419, 0x3af7, 0x3508, 0x39e6, 0x3a46, 0x2f9c, 0x3759, 0x2504, 0x37b5, 0x3b2b, 0x39cc, 0x3ae4, 0x38ec, 0x3751, 0x3841, 0x3b66, 0x2811, 0x34ac, 0x380a, 0x3666, 0x38f0, 0x3447, 0x33b7, 0x3bab, 0x388e, 0x2ce5, 0x307c, 0x3588, 0x3bf6, 0x38f9, 0x3b01, 0x340a, 0x3ae9, 0x3890, 0x3995, 0x3b9a, 0x3a50, 0x3751, 0x2cf7, 0x3a1b, 0x3b4b, 0x2474, 0x2eb0, 0x21b8, 0x38cd, 0x38d8, 0x35d6, 0x36f5, 0x240e, 0x29e9, 0x3686, 0x39d1, 0x3575, 0x3b7c, 0x3886, 0x2e72, 0x38d9, 0x34ac, 0x3816, 0x3b69, 0x3b7c, 0x2f10, 0x3428, -0x2aba, 0x3a08, 0x3acf, 0x364d, 0x344d, 0x3adf, 0x3526, 0x3a64, 0x3ad3, 0x34eb, 0x3943, 0x3894, 0x383a, 0x3bab, 0x3183, 0x3928, 0x3999, 0x300a, 0x35c5, 0x37a3, 0x384d, 0x3a84, 0x3959, 0x39ef, 0x360b, 0x350e, 0x36bf, 0x2f32, 0x3410, 0x383c, 0x3952, 0x33ee, 0x3899, 0x30a8, 0x3b1e, 0x30fa, 0x3b5c, 0x359d, 0x3802, 0x390f, 0x3815, 0x140e, 0x35f6, 0x3bfa, 0x38c4, 0x364f, 0x3b7f, 0x3b9f, 0x35a6, 0x3bf3, 0x3a2d, 0x3727, 0x39ab, 0x3944, 0x3ac5, 0x36df, 0x3b27, 0x3a1f, 0x3a69, 0x3994, 0x3673, 0x3b0c, 0x2f2f, 0x3303, 0x319f, 0x3567, 0x3753, 0x3b8f, 0x30f0, 0x3b7b, 0x36dc, 0x2941, 0x2b6c, 0x3ad2, 0x39cb, 0x3884, 0x3a58, 0x3a0c, 0x337a, 0x3a6e, 0x3b94, 0x37d1, 0x38f2, 0x3bf1, 0x3843, 0x2ae6, 0x384b, 0x3bf9, 0x36cb, 0x362e, 0x309a, 0x35ef, 0x36e6, 0x3484, 0x38a4, 0x3457, -0x370e, 0x341f, 0x39c0, 0x3527, 0x393f, 0x3438, 0x2685, 0x375f, 0x3803, 0x38eb, 0x39fe, 0x39b3, 0x380f, 0x3370, 0x2766, 0x3b26, 0x35b6, 0x38ab, 0x3890, 0x26a8, 0x3879, 0x3819, 0x3ae8, 0x3aae, 0x3385, 0x2944, 0x3966, 0x35cc, 0x3641, 0x3a73, 0x3b91, 0x35d5, 0x31f8, 0x34a1, 0x2bbe, 0x3419, 0x369f, 0x3289, 0x98e, 0x2fef, 0x3ad5, 0x3029, 0x3ae0, 0x3b11, 0x3a03, 0x2e69, 0x38ae, 0x2eed, 0x3871, 0x3848, 0x2f40, 0x3946, 0x38bb, 0x3851, 0x39f5, 0x2e9a, 0x38fc, 0x33e4, 0x349f, 0x3b2e, 0x3873, 0x388c, 0x395a, 0x3519, 0x3636, 0x2df3, 0x3bd5, 0x3a94, 0x2e66, 0x38af, 0x2e50, 0x3aff, 0x3b0e, 0x36c8, 0x187b, 0x3733, 0x3a82, 0x3baf, 0x35c4, 0x2f20, 0x3a36, 0x3266, 0x38c6, 0x37e7, 0x31c5, 0x3a24, 0x3805, 0x299b, 0x3b3b, 0x3163, 0x2f34, 0x30d5, 0x38a2, 0x392a, 0x32af, 0x3be7, -0x3377, 0x2cce, 0x36d4, 0x3852, 0x39ad, 0x30e1, 0x397f, 0x380e, 0x3bd1, 0x3ae1, 0x3413, 0x3aa8, 0x3bcf, 0x3b5f, 0x393f, 0x37cf, 0x391e, 0x38a4, 0x3a1c, 0x3778, 0x35ca, 0x3b75, 0x2fe7, 0x2f20, 0x2d50, 0x3b72, 0x37b3, 0x3ba6, 0x37f5, 0x3866, 0x3b8c, 0x382c, 0x2c3e, 0x39ba, 0x3be2, 0x3602, 0x3ba5, 0x38d5, 0x37ed, 0x36d6, 0x3b11, 0x34de, 0x3831, 0x39e8, 0x377f, 0x38e4, 0x363d, 0x2b40, 0x2c1e, 0x304c, 0x3bcc, 0x347f, 0x34d7, 0x313b, 0x3a3b, 0x1f13, 0x379e, 0x331f, 0x2d1c, 0x3778, 0x3550, 0x3a5f, 0x2fea, 0x3ab4, 0x32bb, 0x386c, 0x3690, 0x3787, 0x3a95, 0x367b, 0x385a, 0x3b3b, 0x3b49, 0x387c, 0x38f5, 0x2f80, 0x37d4, 0x3b87, 0x3881, 0x3996, 0x3547, 0x38d2, 0x3ab2, 0x3a1c, 0x3483, 0x3ae7, 0x394d, 0x333c, 0x34df, 0x39e5, 0x3aaf, 0x39e6, 0x30a3, 0x3a4d, 0x3890, 0x34cc, -0x3482, 0x3420, 0x2dcc, 0x310d, 0x38c5, 0x3b6a, 0x38ca, 0x3ba1, 0x3a7c, 0x318a, 0x2d61, 0x3635, 0x39e2, 0x3837, 0x39fe, 0x3842, 0x3574, 0x3992, 0x246c, 0x3565, 0x380e, 0x3712, 0x35e8, 0x3712, 0x38ed, 0x3307, 0x398f, 0x31f3, 0x3a5c, 0x3a73, 0x33ba, 0x3841, 0x35d0, 0x36df, 0x2ce4, 0x366e, 0x38a3, 0x251a, 0x399f, 0x372c, 0x359d, 0x3913, 0x397c, 0x2e64, 0x3861, 0x2d47, 0x3a98, 0x381d, 0x3b60, 0x3b4a, 0x381d, 0x3a0d, 0x3adb, 0x3869, 0x3353, 0x3939, 0x39ad, 0x3114, 0x3b12, 0x3860, 0x39fe, 0x3ba6, 0x247b, 0x3a0e, 0x3206, 0x3b0b, 0x3b25, 0x399f, 0x39b4, 0x3b42, 0x3a81, 0x36bb, 0x3522, 0x349e, 0x3494, 0x3081, 0x3978, 0x3768, 0x2edd, 0x37b4, 0x34d1, 0x3bf8, 0x3ad6, 0x3773, 0x3034, 0x381a, 0x3a52, 0x3771, 0x2b52, 0x3b3d, 0x3b20, 0x3bf8, 0x342f, 0x34f8, 0x3b72, 0x35b4, -0x3029, 0x36c3, 0x39c0, 0x393c, 0x30da, 0x3152, 0x3917, 0x3864, 0x390b, 0x3aea, 0x2c08, 0x36c6, 0x3bcd, 0x3375, 0x35bc, 0x3a2b, 0x3684, 0x368f, 0x3974, 0x37fd, 0x3901, 0x37a4, 0x3729, 0x35a0, 0x3ab0, 0x3251, 0x2857, 0x38ef, 0x2e96, 0x38d6, 0x2cda, 0x331c, 0x39a8, 0x3a44, 0x3a7c, 0x3aa8, 0x3851, 0x3974, 0x3b93, 0x3587, 0x3baf, 0x2eac, 0x37f4, 0x38a7, 0x292d, 0x2fc0, 0x330d, 0x3404, 0x3459, 0x3999, 0x385a, 0x396c, 0x3834, 0x2534, 0x3b44, 0x2ecf, 0x34f6, 0x3632, 0x2898, 0x3511, 0x3514, 0x3bd8, 0x3284, 0x3913, 0x34c4, 0x3967, 0x3845, 0x3ab4, 0x37eb, 0x30b8, 0x3629, 0x39c1, 0x2b02, 0x37f7, 0x31d5, 0x3812, 0x2c1b, 0x2a24, 0x3499, 0x36a7, 0x39c2, 0x3952, 0x351b, 0x3ba0, 0x3706, 0x3896, 0x3600, 0x22c8, 0x3077, 0x3839, 0x36ed, 0x38d4, 0x2fd0, 0x3a29, 0x370c, 0x3bfe, -0x335b, 0x311a, 0x39b1, 0x32aa, 0x3a7e, 0x387f, 0x3846, 0x3a3b, 0x379b, 0x34c4, 0x38dc, 0x2c37, 0x394c, 0x381d, 0x3113, 0x300e, 0x3922, 0x2ddd, 0x30ee, 0x3347, 0x3881, 0x2cb5, 0x311e, 0x3023, 0x384c, 0x3a29, 0x39b9, 0x391d, 0x36ff, 0x38d7, 0x3adf, 0x3892, 0x39d7, 0x3b41, 0x3a26, 0x35cf, 0x2fa9, 0x32ff, 0x3218, 0x34af, 0x3282, 0x2ff1, 0x3823, 0x3249, 0x35c7, 0x3baf, 0x3817, 0x39c2, 0x3799, 0x38e2, 0x39f5, 0x30d1, 0x3934, 0x3696, 0x351b, 0x3586, 0x3adf, 0x3747, 0x3aa0, 0x33d7, 0x3600, 0x3a9a, 0x3b09, 0x3a96, 0x364b, 0x38d2, 0x3b1e, 0x2793, 0x3555, 0x3b85, 0x3460, 0x3747, 0x3a29, 0x21c7, 0x3b24, 0x3b7a, 0x3902, 0x2cd6, 0x379b, 0x2970, 0x3910, 0x38c2, 0x3930, 0x3674, 0x39e6, 0x3ac8, 0x38e2, 0x3841, 0x37a2, 0x3a56, 0x3424, 0x3406, 0x385c, 0x3924, 0x3923, 0x36aa, -0x33bd, 0x37ed, 0x2b2e, 0x3bdc, 0x3ae1, 0x3055, 0x3b41, 0x31d7, 0x3880, 0x3125, 0x3015, 0x282f, 0x3bc1, 0x3bd1, 0x3684, 0x2ca5, 0x344e, 0x3bb1, 0x2094, 0x349a, 0x3211, 0x31bc, 0x3bd1, 0x2d9d, 0x3b07, 0x3b33, 0x350f, 0x3459, 0x3851, 0x36b4, 0x3a84, 0x3965, 0x3a34, 0x3b3c, 0x353d, 0x2ffd, 0x33e6, 0x376b, 0x3272, 0x2e28, 0x3aea, 0x3485, 0x39f4, 0x3955, 0x277e, 0x3bfc, 0x3526, 0x384e, 0x2485, 0x38b2, 0x3101, 0x2fbd, 0x359e, 0x36ba, 0x3aa5, 0x308a, 0x38d1, 0x3434, 0x3ae9, 0x3954, 0x33e0, 0x2ff9, 0x3aa9, 0x3721, 0x2cb5, 0x28e9, 0x3524, 0x3658, 0x3a2f, 0x315c, 0x38d9, 0x396e, 0x383b, 0x3a0a, 0x32fe, 0x3479, 0x2a64, 0x3162, 0x35dd, 0x350b, 0x2c86, 0x3878, 0x346b, 0x2719, 0x204d, 0x38a4, 0x3778, 0x3863, 0x3ae3, 0x3784, 0x3174, 0x3562, 0x3a26, 0x39c4, 0x31b9, 0x3600, -0x2cf9, 0x3a34, 0x3834, 0x346f, 0x3712, 0x29e1, 0x2cfe, 0x3873, 0x3b1f, 0x3bc2, 0x3936, 0x3551, 0x3b8e, 0x3742, 0x39b1, 0x36ab, 0x390f, 0x2a6d, 0x3805, 0x32b1, 0x2e34, 0x3898, 0x3375, 0x3997, 0x3845, 0x3b9a, 0x3bac, 0x3876, 0x392c, 0x3811, 0x3aad, 0x3700, 0x2ab0, 0x340c, 0x3ba5, 0x2d7c, 0x36c7, 0x38dc, 0x3745, 0x2c5c, 0x2d0d, 0x34ee, 0x339e, 0x3565, 0x3983, 0x302c, 0x2cd8, 0x3886, 0x3994, 0x3ba6, 0x38d1, 0x315d, 0x3083, 0x3860, 0x3769, 0x3bf0, 0x33cd, 0x2b0f, 0x360c, 0x380a, 0x3442, 0x3b5b, 0x36eb, 0x3938, 0x3b69, 0x3283, 0x301b, 0x2fb0, 0x3b51, 0x3aa6, 0x2b81, 0x2cfd, 0x3aaa, 0x38fc, 0x3a73, 0x3232, 0x3614, 0x3963, 0x3b01, 0x3b9c, 0x3889, 0x372a, 0x20de, 0x3629, 0x36c0, 0x31ca, 0x3b87, 0x3543, 0x38bf, 0x3aae, 0x37d6, 0x365e, 0x35a4, 0x35da, 0x3962, 0x3741, -0x2910, 0x3478, 0x38b6, 0x355e, 0x3a0a, 0x3969, 0x36b2, 0x3bcd, 0x2633, 0x36d6, 0x395c, 0x39d9, 0x3505, 0x34cf, 0x337f, 0x3560, 0x2f11, 0x3a3d, 0x3386, 0x39ac, 0x38d3, 0x2dbe, 0x3908, 0x3599, 0x2d42, 0x38eb, 0x2d1e, 0x3bb5, 0x3550, 0x377e, 0x387f, 0x2f07, 0x3b2f, 0x37a5, 0x390a, 0x3902, 0x38e8, 0x345a, 0x38a5, 0x378b, 0x2e8d, 0x3ab3, 0x3a78, 0x34d9, 0x341a, 0x3387, 0x289a, 0x2db0, 0x384f, 0x3be6, 0x24e4, 0x3b02, 0x3af5, 0x34b2, 0x2af4, 0x3ae6, 0x337d, 0x3875, 0x34f6, 0x262d, 0x3488, 0x3a14, 0x2cb8, 0x357c, 0x3b96, 0x3208, 0x3969, 0x2bae, 0x3b77, 0x3515, 0x345d, 0x39c9, 0x354d, 0x38cf, 0x3b12, 0x3af9, 0x3a3c, 0x2f0f, 0x3a0b, 0x3075, 0x3859, 0x2045, 0x382e, 0x3901, 0x159e, 0x30fd, 0x2b73, 0x31e0, 0x3bf4, 0x3a46, 0x3afd, 0x2bbe, 0x274d, 0x39dd, 0x2bc7, 0x3450, -0x2ace, 0x3a96, 0x3bae, 0x386d, 0x3a6a, 0x2a87, 0x3913, 0x3618, 0x2cce, 0x391e, 0x3346, 0x3a02, 0x3981, 0x3afe, 0x34da, 0x3aa3, 0x3846, 0x303e, 0x377a, 0x3bc0, 0x2d77, 0x2f1a, 0x3916, 0x3b20, 0x2896, 0x3b93, 0x3a74, 0x24dd, 0x3396, 0x3b7c, 0x3a9b, 0x3b17, 0x366a, 0x1e78, 0x3b60, 0x3153, 0x3844, 0x2aa8, 0x37ab, 0x352c, 0x3455, 0x3a4d, 0x3a7a, 0x3a2f, 0x35bb, 0x358f, 0x3781, 0x2288, 0x2e69, 0x39c4, 0x3534, 0x3ba4, 0x3b8a, 0x398b, 0x3998, 0x392a, 0x3bd5, 0x3a5b, 0x31e5, 0x39af, 0x3a90, 0x3ac1, 0x374e, 0x3791, 0x3aa4, 0x3519, 0x3b0a, 0x398e, 0x3bae, 0x339e, 0x35fe, 0x3ab9, 0x2a73, 0x38b3, 0x388c, 0x3530, 0x2fe3, 0x37b5, 0x3188, 0x3b00, 0x31b2, 0x34de, 0x2f74, 0x397b, 0x3a17, 0x2df1, 0x357a, 0x3882, 0x3958, 0x39f1, 0x3ba4, 0x3864, 0x36f8, 0x33d2, 0x390f, 0x395b, -0x3a33, 0x39ea, 0x3846, 0x3502, 0x29a0, 0x38da, 0x3a62, 0x39c8, 0x3a32, 0x3987, 0x2807, 0x3895, 0x3621, 0x3981, 0x368f, 0x25b3, 0x312e, 0x3bfe, 0x38c8, 0x396d, 0x3b4b, 0x380a, 0x3b65, 0x36ca, 0x3954, 0x3ae0, 0x32f0, 0x33b6, 0x3920, 0x35fd, 0x39b3, 0x2f18, 0x3876, 0x396c, 0x39eb, 0x3b39, 0x3ab4, 0x3b9b, 0x2504, 0x3621, 0x3534, 0x2ea1, 0x33e7, 0x3af5, 0x3965, 0x33ed, 0x38d8, 0x37cc, 0x3682, 0x311b, 0x36e0, 0x2805, 0x3502, 0x38ac, 0x2dfa, 0x39d6, 0x3a41, 0x38e1, 0x3992, 0x38da, 0x3a54, 0x356b, 0x3701, 0x389d, 0x35de, 0x3b8e, 0x3b4c, 0x302b, 0x36b5, 0x2dd3, 0x397b, 0x2e07, 0x3645, 0x3267, 0x38ca, 0x1b3c, 0x3a0b, 0x3821, 0x3881, 0x3a2b, 0x3980, 0x3711, 0x2b68, 0x3a27, 0x38ca, 0x3057, 0x3a56, 0x386a, 0x3bb8, 0x38ca, 0x3152, 0x3683, 0x39c4, 0x2cf6, 0x3351, 0x3903, -0x342c, 0x30b8, 0x3704, 0x38b1, 0x3811, 0x3860, 0x3916, 0x381f, 0x3892, 0x3349, 0x1e6c, 0x30e3, 0x38c8, 0x3b7b, 0x39d3, 0x30df, 0x3bf3, 0x2f61, 0x37fa, 0x396a, 0x3bbe, 0x3872, 0x38c1, 0x3ad8, 0x3624, 0x3536, 0x35bb, 0x3b72, 0x222a, 0x31e0, 0x34d3, 0x2ee5, 0x386d, 0x3a1e, 0x28b7, 0x21e6, 0x37ef, 0x3263, 0x3ae0, 0x211e, 0x38c4, 0x3ba4, 0x380b, 0x3757, 0x34f5, 0x3a18, 0x36fa, 0x3844, 0x39fd, 0x3aa1, 0x3be2, 0x33b5, 0x3523, 0x386c, 0x20a5, 0x314f, 0x3a95, 0x3a54, 0x3bdd, 0x35de, 0x3a9f, 0x398e, 0x3a70, 0x2a6d, 0x3538, 0x31d5, 0x38b4, 0x2199, 0x2bf6, 0x3a4a, 0x3057, 0x31e5, 0x3b51, 0x31d8, 0x398b, 0x2c16, 0x3571, 0x2a31, 0x39cf, 0x3507, 0x3874, 0x3b15, 0x2e8a, 0x36f5, 0x2f3b, 0x3be1, 0x3a1b, 0x38cb, 0x3759, 0x1e24, 0x3b85, 0x3998, 0x30f7, 0x2d7d, 0x3a8a, 0x3378, -0x37a0, 0x3b60, 0x32f2, 0x34cc, 0x3ba4, 0x3b40, 0x35b1, 0x1a3c, 0x239a, 0x3ab0, 0x38cf, 0x3b26, 0x3990, 0x39d7, 0x3b7e, 0x3980, 0x2b0a, 0x3985, 0x3862, 0x3a53, 0x3409, 0x27e2, 0x38f7, 0x3a2f, 0x2dd9, 0x34f1, 0x2dda, 0x395e, 0x375b, 0x3086, 0x3053, 0x3baf, 0x365b, 0x38b6, 0x3a51, 0x34e4, 0x356d, 0x35f9, 0x3b6e, 0x38aa, 0x2d39, 0x34ac, 0x27d5, 0x38c8, 0x280c, 0x1999, 0x36da, 0x31ca, 0x3bf6, 0x31be, 0x37a2, 0x3296, 0x3902, 0x2f66, 0x2f5e, 0x3867, 0x26c6, 0x32c4, 0x3412, 0x2dd7, 0x34a6, 0x3b89, 0x354b, 0x345e, 0x33cd, 0x35ad, 0x3804, 0x3583, 0x37ea, 0x3bcb, 0x30d0, 0x38e3, 0x3100, 0x2c8f, 0x3be4, 0x35e4, 0x35cb, 0x3a5e, 0x3a50, 0x3837, 0x3540, 0x3a4f, 0x3b11, 0x32fb, 0x3949, 0x3870, 0x36e9, 0x3382, 0x3aca, 0x3b72, 0x3b03, 0x3a4d, 0x369f, 0x389c, 0x3a02, 0x27e4, -0x3954, 0x36ba, 0x25e2, 0x3847, 0x357e, 0x38da, 0x361d, 0x3b50, 0x2a0f, 0x3af9, 0x37f1, 0x3831, 0x3bc1, 0x3aaf, 0x32de, 0x3980, 0x3877, 0x3a73, 0x2944, 0x3b22, 0x30e3, 0x357e, 0x3987, 0x26ed, 0x3a5c, 0x3a5e, 0x381a, 0x3ae1, 0x3bc4, 0x3b3e, 0x3579, 0x3835, 0x3ba0, 0x37d2, 0x38b9, 0x2c78, 0x3875, 0x3808, 0x346b, 0x38c6, 0x3970, 0x342d, 0x3104, 0x2b1a, 0x3aa6, 0x3b64, 0x3a9f, 0x36f1, 0x2cac, 0x3b98, 0x3ab5, 0x3ab7, 0x3685, 0x33a5, 0x30ae, 0x3689, 0x3bd4, 0x39c1, 0x3bb8, 0x3566, 0x37bb, 0x2ee2, 0x3036, 0x3a93, 0x35d2, 0x3a4a, 0x3be5, 0x324b, 0x357c, 0x3b9a, 0x3759, 0x39f8, 0x397c, 0x3a80, 0x39d9, 0x39f4, 0x2fbd, 0x390e, 0x3865, 0x39f1, 0x3b87, 0x37c1, 0x3a3f, 0x348c, 0x368b, 0x2714, 0x2a26, 0x32a9, 0x30dc, 0x3a35, 0x371a, 0x3b96, 0x3569, 0x388b, 0x3775, 0x3604, -0x386a, 0x391b, 0x3826, 0x38fd, 0x3156, 0x3bae, 0x3755, 0x38df, 0x391c, 0x3b3b, 0x3aa5, 0x3870, 0x3b20, 0x3a0b, 0x3a85, 0x395f, 0x3a77, 0x3264, 0x2c48, 0x3a8f, 0x3815, 0x3acc, 0x3b2d, 0x3be0, 0x39ac, 0x3a41, 0x3bc0, 0x39f6, 0x3524, 0x3024, 0x2ae0, 0x3b6f, 0x366f, 0x38e7, 0x3a0c, 0x38de, 0x3a12, 0x380b, 0x38ec, 0x3222, 0x308c, 0x3871, 0x381f, 0x3be5, 0x3a0f, 0x3ac7, 0x36fe, 0x3406, 0x331f, 0x354c, 0x379d, 0x373b, 0x380f, 0x37c2, 0x3822, 0x3b8f, 0x3871, 0x3444, 0x3357, 0x3052, 0x35a3, 0x353b, 0x3a18, 0x3b60, 0x3b2e, 0x39f1, 0x1bf8, 0x3b34, 0x3a45, 0x373b, 0x311e, 0x3b4f, 0x3bb9, 0x2f13, 0x390b, 0x38eb, 0x3a53, 0x3712, 0x3ad6, 0x3b2e, 0x3a91, 0x3171, 0x361b, 0x3ad7, 0x3577, 0x37d3, 0x31f3, 0x26d3, 0x2995, 0x3060, 0x3960, 0x38d3, 0x3a9b, 0x1aa9, 0x381e, 0x349b, -0x3485, 0x3be7, 0x3a58, 0x39bb, 0x36de, 0x3456, 0x2a1e, 0x2ed2, 0x2e40, 0x3041, 0x38f1, 0x3beb, 0x3aea, 0x3049, 0x3117, 0x3bf2, 0x3707, 0x3bf3, 0x38e3, 0x3b27, 0x3a88, 0x3b5a, 0x34a6, 0x3b51, 0x39bc, 0x3841, 0x3a1d, 0x3867, 0x35e7, 0x3b46, 0x2916, 0x3a6b, 0x3956, 0x3825, 0x352f, 0x3b66, 0x3975, 0x3637, 0x3b44, 0x356e, 0x387b, 0x34eb, 0x3a4b, 0x384f, 0x3b29, 0x3ad3, 0x3a09, 0x3542, 0x3a39, 0x3551, 0x3889, 0x3429, 0x3637, 0x3bc8, 0x1aee, 0x3b20, 0x3b0a, 0x3994, 0x2fea, 0x3b4b, 0x381d, 0x3758, 0x397e, 0x3861, 0x25cc, 0x391a, 0x28d2, 0x2524, 0x3424, 0x3a6a, 0x34f3, 0x3aca, 0x3a40, 0x34e1, 0x3647, 0x3623, 0x34e9, 0x3786, 0x38a6, 0x3be1, 0x34d6, 0x350c, 0x3bf3, 0x368b, 0x39bb, 0x34e0, 0x39b0, 0x342e, 0x360d, 0x34e3, 0x3867, 0x389a, 0x38d7, 0x31f9, 0x3565, 0x2e93, -0x39a8, 0x3b31, 0x384a, 0x3370, 0x316f, 0x3815, 0x35b5, 0x3594, 0x3bbd, 0x3afe, 0x39be, 0x2276, 0x3805, 0x3b69, 0x3964, 0x33c0, 0x3a3b, 0x3231, 0x3358, 0x2b23, 0x3645, 0x3b99, 0x3735, 0x2255, 0x3595, 0x2f45, 0x381a, 0x257c, 0x3ac7, 0x38e9, 0x381b, 0x36d0, 0x3132, 0x3814, 0x3a17, 0x3ad4, 0x2abf, 0x3887, 0x3424, 0x2e96, 0x3361, 0x341a, 0x38cf, 0x3448, 0x287f, 0x3b1c, 0x3b09, 0x3983, 0x3a6e, 0x375d, 0x3458, 0x383c, 0x3196, 0x3b2f, 0x1cbe, 0x31e6, 0x29c4, 0x3745, 0x395c, 0x3aac, 0x3b2f, 0x38f1, 0x320c, 0x3a9d, 0x375f, 0x3b01, 0x32ef, 0x3531, 0x36d3, 0x3726, 0x3642, 0x2c76, 0x3916, 0x342a, 0x3548, 0x39d7, 0x39de, 0x3c00, 0x3b1e, 0x391a, 0x35e8, 0x3b2b, 0x3645, 0x3a81, 0x3876, 0x37e2, 0x36c8, 0x3b62, 0x3302, 0x1bad, 0x3961, 0x3beb, 0x39a7, 0x3611, 0x381b, 0x3266, -0x3b25, 0x384e, 0x3940, 0x2891, 0x3a32, 0x3828, 0x34f3, 0x3652, 0x3178, 0x2839, 0x3aa2, 0x2a96, 0x2df4, 0x347b, 0x28ad, 0x3699, 0x36ba, 0x32ad, 0x39e5, 0x1c06, 0x340e, 0x3968, 0x387c, 0x3bc6, 0x3839, 0x39d4, 0x2645, 0x38ae, 0x3ae3, 0x367e, 0x3090, 0x34fe, 0x3b6b, 0x2e64, 0x36bb, 0x33ef, 0x2c5a, 0x38ae, 0x36db, 0x3a6e, 0x38ac, 0x39eb, 0x387f, 0x1b0d, 0x3b7c, 0x3461, 0x34cc, 0x3b4f, 0x3045, 0x38e9, 0x35fa, 0x3625, 0x33e7, 0x35f4, 0x3939, 0x35dd, 0x2b8e, 0x3574, 0x3b6a, 0x3921, 0x38de, 0x393e, 0x29f5, 0x2e2c, 0x3a10, 0x39a3, 0x32c2, 0x38e5, 0x38c7, 0x30c3, 0x3b6e, 0x34b3, 0x36f9, 0x38bb, 0x3b24, 0x359f, 0x3308, 0x2d54, 0x3a03, 0x39ee, 0x3a7b, 0x3076, 0x2ab0, 0x3b94, 0x32a7, 0x39b8, 0x3b78, 0x28ce, 0x375d, 0x3209, 0x3385, 0x38f1, 0x38ca, 0x3b51, 0x374e, 0x3593, -0x33ca, 0x33b7, 0x3663, 0x36c1, 0x3831, 0x347e, 0x39f8, 0x34bf, 0x39dc, 0x39e6, 0x2fa9, 0x32d9, 0x3a58, 0x39e5, 0x3116, 0x3026, 0x3b59, 0x3b82, 0x3a92, 0x316a, 0x38c3, 0x2770, 0x38e7, 0x380b, 0x3b2b, 0x380d, 0x32d6, 0x3602, 0x39df, 0x382c, 0x383c, 0x3b76, 0x3647, 0x38f3, 0x36b4, 0x3693, 0x251e, 0x3b19, 0x357e, 0x37d4, 0x37ab, 0x3aee, 0x349f, 0x32ec, 0x3401, 0x3bcc, 0x3145, 0x3845, 0x3b76, 0x38a9, 0x37f4, 0x343b, 0x3933, 0x38fe, 0x3af8, 0x3178, 0x392b, 0x3aed, 0x2f64, 0x3992, 0x39f8, 0x34fe, 0x3737, 0x3a24, 0x3bf9, 0x3a31, 0x3a60, 0x37b6, 0x39ad, 0x3ba5, 0x381d, 0x384d, 0x3702, 0x39d8, 0x379e, 0x38ba, 0x3a79, 0x391a, 0x34ce, 0x2d57, 0x3a7e, 0x35f0, 0x382f, 0x3937, 0x3698, 0x3acc, 0x34ca, 0x382d, 0x35f7, 0x34f7, 0x3b90, 0x374d, 0x380f, 0x2e14, 0x3ac3, 0x3583, -0x36fe, 0x38aa, 0x3abd, 0x3750, 0x2f2d, 0x3906, 0x3aed, 0x32e7, 0x3b42, 0x3823, 0x265f, 0x17f9, 0x248a, 0x38ee, 0x3a11, 0x3b21, 0x35a9, 0x2dd7, 0x35dc, 0x38ed, 0x3860, 0x3989, 0x3229, 0x333d, 0x2c78, 0x30fa, 0x2d3c, 0x3a04, 0x39c2, 0x3895, 0x3a67, 0x2f53, 0x3583, 0x39bd, 0x3a03, 0x3afd, 0x3892, 0x3889, 0x39e5, 0x3825, 0x39dd, 0x3a23, 0x3644, 0x31d1, 0x3875, 0x3a46, 0x38c1, 0x390c, 0x394d, 0x262a, 0x2823, 0x2c94, 0x3645, 0x39f9, 0x3366, 0x3710, 0x2f70, 0x348c, 0x2fa3, 0x3b0e, 0x3241, 0x3491, 0x386f, 0x38b6, 0x34e1, 0x30fc, 0x32cc, 0x37be, 0x3519, 0x334b, 0x389c, 0x34c1, 0x388b, 0x38cf, 0x3980, 0x2463, 0x3a34, 0x32ff, 0x3a3c, 0x3932, 0x3b47, 0x39ab, 0x3a9c, 0x27b6, 0x2d90, 0x35d2, 0x39d2, 0x3a5d, 0x3bf2, 0x3a5f, 0x38e1, 0x3b81, 0x3865, 0x3a31, 0x3b03, 0x3906, -0x35bf, 0x3818, 0x373b, 0x3491, 0x34a9, 0x3b40, 0x2cda, 0x381b, 0x2a00, 0x396e, 0x347a, 0x2d46, 0x2fa1, 0x3bef, 0x3acd, 0x362f, 0x2a7f, 0x3a38, 0x3346, 0x3889, 0x3061, 0x3b20, 0x3836, 0x35a4, 0x3a7d, 0x3487, 0x381a, 0x381f, 0x3977, 0x3862, 0x312a, 0x315e, 0x3841, 0x3453, 0x21f5, 0x363d, 0x2ddb, 0x35bb, 0x3bb4, 0x3b36, 0x382a, 0x36d8, 0x3764, 0x3b9e, 0x26b4, 0x29ce, 0x3451, 0x33ba, 0x37fb, 0x3a4f, 0x2181, 0x35cc, 0x3288, 0x2de2, 0x3a13, 0x2dd5, 0x326d, 0x3731, 0x3931, 0x3b0d, 0x34c6, 0x36bd, 0x38fe, 0x3a0a, 0x283b, 0x38c0, 0x3806, 0x39fa, 0x39a6, 0x39f8, 0x3b09, 0x36dc, 0x385c, 0x329a, 0x3a89, 0x2dbb, 0x39ee, 0x3b65, 0x3436, 0x37e3, 0x3a27, 0x3910, 0x3b43, 0x398c, 0x2efa, 0x3467, 0x39ce, 0x38ae, 0x3567, 0x3484, 0x38e0, 0x327e, 0x2c32, 0x39c1, 0x3b63, 0x35ac, -0x35c1, 0x2d9e, 0x38af, 0x32e3, 0x347f, 0x3855, 0x3527, 0x3850, 0x3b55, 0x3baa, 0x392a, 0x37d9, 0x39d3, 0x3960, 0x3ab0, 0x2ccb, 0x2da9, 0x3990, 0x3b87, 0x2c1c, 0x397d, 0x28f6, 0x397d, 0x3944, 0x30be, 0x3ba4, 0x2f6d, 0x34d4, 0x3416, 0x39e7, 0x398f, 0x3958, 0x3b7b, 0x3a1d, 0x31e6, 0x27fe, 0x3ba0, 0x33b2, 0x3080, 0x35a9, 0x3800, 0x37f6, 0x3965, 0x3594, 0x322e, 0x3b27, 0x3bdb, 0x3b7a, 0x38a6, 0x1848, 0x3b61, 0x3842, 0x3ad2, 0x390f, 0x3b17, 0x3715, 0x3798, 0x33cb, 0x33db, 0x383f, 0x394b, 0x30cb, 0x3bbb, 0x366d, 0x3b5b, 0x38ca, 0x36cb, 0x3558, 0x39f6, 0x3776, 0x388a, 0x35d1, 0x3475, 0x3509, 0x3742, 0x3b15, 0x3ad4, 0x3182, 0x39e7, 0x3b5a, 0x35dd, 0x3751, 0x32b8, 0x349f, 0x3996, 0x3a4c, 0x35e9, 0x266e, 0x37f2, 0x3be3, 0x2525, 0x26af, 0x3282, 0x3810, 0x2cf1, 0x383a, -0x3aa3, 0x399c, 0x3630, 0x38c8, 0x3203, 0x19a2, 0x35e2, 0x38fe, 0x38a2, 0x3b63, 0x3318, 0x231d, 0x3999, 0x3ae9, 0x3132, 0x21b2, 0x2a77, 0x394e, 0x2cf4, 0x3890, 0x38a6, 0x30ff, 0x3be2, 0x3231, 0x3b72, 0x3487, 0x3496, 0x351c, 0x38d6, 0x3944, 0x3949, 0x3b7b, 0x362f, 0x37cd, 0x38f6, 0x3a10, 0x3a93, 0x31be, 0x3b8e, 0x360a, 0x3567, 0x3803, 0x3b16, 0x3b59, 0x3a4e, 0x3770, 0x2d73, 0x3312, 0x382f, 0x30fa, 0x3921, 0x339d, 0x2222, 0x3049, 0x3b4e, 0x3b67, 0x3b07, 0x3b31, 0x34e8, 0x3684, 0x3a09, 0x389b, 0x3999, 0x39d1, 0x3765, 0x37bc, 0x3732, 0x3b35, 0x3819, 0x36ef, 0x38fc, 0x3665, 0x3b96, 0x3015, 0x3847, 0x35e6, 0x3167, 0x34ba, 0x3794, 0x3a6a, 0x35d8, 0x30f4, 0x34c7, 0x3bce, 0x3903, 0x3bf3, 0x3a72, 0x3828, 0x381a, 0x3981, 0x3925, 0x39a1, 0x35f4, 0x35dd, 0x3954, 0x2bc5, -0x3884, 0x2d8e, 0x2a49, 0x383f, 0x15af, 0x3a4c, 0x3af6, 0x3ad8, 0x3847, 0x3b07, 0x3a15, 0x3bdd, 0x3a8c, 0x2caf, 0x364a, 0x3825, 0x2b2c, 0x3a97, 0x33b8, 0x3ac4, 0x347e, 0x36f7, 0x36ed, 0x3131, 0x2bea, 0x3841, 0x3880, 0x39e4, 0x30c3, 0x3b62, 0x32ba, 0x34f0, 0x34c7, 0x396a, 0x3722, 0x384d, 0x3165, 0x3a71, 0x34bf, 0x3018, 0x372c, 0x3876, 0x347f, 0x3be2, 0x117d, 0x3a2c, 0x3917, 0x3895, 0x3a3b, 0x2f92, 0x3b65, 0x3af3, 0x39b3, 0x290c, 0x301b, 0x3a9e, 0x39ef, 0x38d0, 0x34e8, 0x336a, 0x37e8, 0x3685, 0x376e, 0x3b8b, 0x3b4c, 0x35a7, 0x3919, 0x3504, 0x3b59, 0x3a85, 0x2edc, 0x3b32, 0x36bc, 0x21fa, 0x357b, 0x38a6, 0x380d, 0x3969, 0x348c, 0x39cd, 0x2d9a, 0x3818, 0x380e, 0x39f4, 0x35ce, 0x3823, 0x3a29, 0x2c1a, 0x3846, 0x3811, 0x2f33, 0x38a1, 0x382b, 0x355a, 0x3961, 0x3a97, -0x352f, 0x3bec, 0x3a27, 0x3888, 0x39d2, 0x38d8, 0x314c, 0x38c8, 0x3779, 0x2f99, 0x3a5b, 0x3971, 0x3b93, 0x368c, 0x3904, 0x35f5, 0x277f, 0x34f9, 0x3368, 0x3824, 0x3a74, 0x3843, 0x3284, 0x35aa, 0x35b4, 0x372a, 0x35ca, 0x3b2b, 0x3877, 0x37cb, 0x3110, 0x33ad, 0x3ba3, 0x3bba, 0x34e4, 0x36ab, 0x3984, 0x2aac, 0x39ec, 0x38ae, 0x3931, 0x3410, 0x333e, 0x2c45, 0x3482, 0x3868, 0x392c, 0x384e, 0x3678, 0x38ee, 0x395b, 0x38f8, 0x3194, 0x33e2, 0x2af5, 0x397c, 0x32ca, 0x32c3, 0x3913, 0x3309, 0x3bb1, 0x3253, 0x3640, 0x2cc8, 0x3385, 0x28d0, 0x385e, 0x39fd, 0x38cc, 0x3bf6, 0x332e, 0x3be1, 0x3835, 0x3b3e, 0x38cc, 0x38ff, 0x365f, 0x3a09, 0x3a32, 0x3b84, 0x3596, 0x37f3, 0x3431, 0x3af6, 0x3bec, 0x38cd, 0x35ab, 0x3af5, 0x3359, 0x3762, 0x3844, 0x374c, 0x3980, 0x3886, 0x2e62, 0x35cc, -0x3b76, 0x3b5f, 0x2434, 0x35fc, 0x38d5, 0x3095, 0x3944, 0x380e, 0x349f, 0x39d7, 0x3755, 0x3768, 0x3b3a, 0x34ce, 0x3bef, 0x365a, 0x3987, 0x3897, 0x3509, 0x3984, 0x32f8, 0x3b7b, 0x37b9, 0x3a4b, 0x2c86, 0x369a, 0x396d, 0x2d21, 0x3477, 0x39af, 0x3b60, 0x3680, 0x39d7, 0x31d8, 0x3b8a, 0x3aed, 0x3a65, 0x3710, 0x39d3, 0x3bf1, 0x331f, 0x20c0, 0x34f2, 0x34cc, 0x3934, 0x38c5, 0x396b, 0x3894, 0x38fa, 0x33c9, 0x3408, 0x3340, 0x360e, 0x36e6, 0x3942, 0x2f3c, 0x3be4, 0x38f4, 0x35a1, 0x2cf7, 0x3931, 0x3911, 0x39e7, 0x2dcc, 0x3951, 0x334c, 0x3b00, 0x39ad, 0x2370, 0x35ea, 0x3402, 0x37d6, 0x377d, 0x3652, 0x3b56, 0x2cc4, 0x3b1f, 0x35af, 0x3920, 0x3423, 0x398a, 0x35e2, 0x39f1, 0x3ab5, 0x3ae2, 0x345c, 0x31ef, 0x38ef, 0x3bb1, 0x3937, 0x2ae8, 0x3221, 0x3ae9, 0x390d, 0x3b2f, 0x3048, -0x3047, 0x3767, 0x37f7, 0x3bfa, 0x3b33, 0x3a2d, 0x362c, 0x3a93, 0x3b66, 0x391a, 0x31c7, 0x3282, 0x39b9, 0x3454, 0x37b7, 0x3019, 0x3a9a, 0x37b5, 0x2dcd, 0x3618, 0x34db, 0x3471, 0x3b35, 0x3684, 0x385c, 0x38bf, 0x3bd7, 0x3a44, 0x3130, 0x38c8, 0x30cf, 0x37bb, 0x3bcc, 0x3669, 0x3b27, 0x3949, 0x355f, 0x314a, 0x383d, 0x3a20, 0x381c, 0x3bcf, 0x3282, 0x39f3, 0x3a49, 0x3ad9, 0x34aa, 0x3add, 0x3938, 0x3bbe, 0x3650, 0x37f2, 0x2c79, 0x39c4, 0x3304, 0x3a8c, 0x3162, 0x3520, 0x3637, 0x39e3, 0x2478, 0x3803, 0x34dd, 0x3104, 0x37ee, 0x3861, 0x38e8, 0x356c, 0x3be0, 0x3633, 0x395a, 0x3afb, 0x378b, 0x3b8d, 0x2f97, 0x37df, 0x31dd, 0x3475, 0x34f7, 0x36ef, 0x3966, 0x2c50, 0x38a1, 0x2720, 0x39f3, 0x3805, 0x3310, 0x3656, 0x3571, 0x3bd9, 0x3bc0, 0x391c, 0x38d6, 0x2562, 0x1fc8, 0x3524, -0x362a, 0x3a8c, 0x3830, 0x39c7, 0x38ca, 0x3af3, 0x3602, 0x3700, 0x3773, 0x3a78, 0x38f3, 0x22be, 0x3822, 0x2eac, 0x3748, 0x32ee, 0x2a0e, 0x38ed, 0x3830, 0x3401, 0x3971, 0x3a35, 0x3984, 0x3a86, 0x3501, 0x2fe8, 0x3ba3, 0x3587, 0x3895, 0x3858, 0x2d46, 0x3724, 0x3b84, 0x39b6, 0x3a17, 0x3b1f, 0x38a9, 0x33de, 0x3723, 0x367d, 0x3bc4, 0x3817, 0x3b1e, 0x35f1, 0x3abb, 0x373d, 0x2abe, 0x3206, 0x3872, 0x3946, 0x3898, 0x33b2, 0x25fb, 0x36ae, 0x256a, 0x390e, 0x3b3b, 0x34d8, 0x36ba, 0x389b, 0x377a, 0x3b0e, 0x32a6, 0x26f9, 0x39e1, 0x327e, 0x2d58, 0x3bd3, 0x3a7f, 0x38b9, 0x3811, 0x29b7, 0x2816, 0x38f9, 0x3b64, 0x39b6, 0x3a29, 0x30a4, 0x3989, 0x3b73, 0x307a, 0x37c7, 0x372d, 0x3830, 0x390e, 0x315b, 0x335d, 0x3929, 0x3917, 0x374c, 0x34af, 0x3531, 0x34e9, 0x3bcf, 0x3761, 0x3b62, -0x34e5, 0x39e3, 0x3b35, 0x2a57, 0x3688, 0x2f0c, 0x3b87, 0x3bdd, 0x358d, 0x381a, 0x39ae, 0x2f79, 0x394f, 0x3708, 0x3560, 0x3ada, 0x3480, 0x3af5, 0x3bd8, 0x39d1, 0x3795, 0x2a29, 0x3b0a, 0x3515, 0x3858, 0x3ab4, 0x3968, 0x3660, 0x37b2, 0x3601, 0x36ae, 0x3229, 0x3383, 0x2c30, 0x3a41, 0x3b0d, 0x33ef, 0x3b6b, 0x366f, 0x3b33, 0x3a82, 0x3841, 0x3a89, 0x3bea, 0x3542, 0x328a, 0x3bc9, 0x34f2, 0x3ac0, 0x3067, 0x3311, 0x38f4, 0x23d0, 0x3964, 0x38b1, 0x390c, 0x3a9f, 0x28bb, 0x3ac1, 0x39e6, 0x31dd, 0x2f55, 0x3a19, 0x3a51, 0x3a38, 0x2841, 0x381a, 0x3938, 0x36ea, 0x3be0, 0x3b35, 0x39c1, 0x2fef, 0x37ec, 0x389f, 0x3b72, 0x37b9, 0x3bf7, 0x325d, 0x38e9, 0x333d, 0x39ce, 0x2e79, 0x3682, 0x37c1, 0x38b9, 0x3990, 0x37fd, 0x3302, 0x32a6, 0x2a69, 0x3831, 0x2b59, 0x3b48, 0x35b4, 0x2aed, -0x37e2, 0x340a, 0x3279, 0x3723, 0x397d, 0x3839, 0x39ec, 0x3025, 0x3803, 0x3b54, 0x3a70, 0x3b7d, 0x2f2a, 0x315c, 0x35ed, 0x3ace, 0x3845, 0x3bee, 0x3870, 0x3492, 0x380e, 0x3431, 0x3a47, 0x3a33, 0x38ae, 0x3a40, 0x3908, 0x33c5, 0x38db, 0x3b24, 0x3847, 0x32a3, 0x3959, 0x3a36, 0x35c4, 0x3960, 0x396f, 0x3786, 0x38ef, 0x36e7, 0x35c3, 0x3a28, 0x3893, 0x3b2c, 0x2e03, 0x374d, 0x3489, 0x3bf4, 0x38fb, 0x35b2, 0x38c1, 0x3a0f, 0x394f, 0x35e0, 0x34bd, 0x3bcc, 0x3be1, 0x315f, 0x2a41, 0x308d, 0x2e5d, 0x3a02, 0x2e99, 0x3b1a, 0x3b6c, 0x3ba1, 0x38da, 0x395a, 0x3877, 0x39ec, 0x3855, 0x2fd6, 0x2857, 0x2e1d, 0x3677, 0x3034, 0x3136, 0x3880, 0x327c, 0x38a3, 0x243e, 0x3921, 0x3b69, 0x3bca, 0x376e, 0x3998, 0x3b02, 0x3a2b, 0x35c0, 0x3985, 0x3b14, 0x38d5, 0x347b, 0x3adc, 0x3639, 0x3b9f, -0x3b50, 0x3334, 0x38b6, 0x3ae5, 0x3b39, 0x35fa, 0x2752, 0x3ba6, 0x3439, 0x389a, 0x2888, 0x39be, 0x3710, 0x3922, 0x3bbf, 0x3726, 0x2d91, 0x22ef, 0x398f, 0x3465, 0x3ba8, 0x3ad4, 0x39a0, 0x3a55, 0x3a2f, 0x387d, 0x3788, 0x3a19, 0x3926, 0x38a0, 0x383c, 0x3adc, 0x3b84, 0x3518, 0x322f, 0x3773, 0x3a74, 0x31b7, 0x3901, 0x3361, 0x3959, 0x2d8e, 0x3575, 0x2faf, 0x2ccf, 0x39ad, 0x339b, 0x3bcc, 0x3be6, 0x267e, 0x3582, 0x3973, 0x3b23, 0x3513, 0x3946, 0x38c8, 0x3b09, 0x383a, 0x34a6, 0x3aaa, 0x36f8, 0x34af, 0x368d, 0x3beb, 0x361f, 0x357f, 0x3b7f, 0x3ada, 0x37bb, 0x3986, 0x358c, 0x3ac2, 0x3448, 0x3ace, 0x2896, 0x377a, 0x3a2d, 0x3992, 0x381a, 0x389d, 0x3a18, 0x3bec, 0x37ac, 0x384d, 0x3107, 0x3323, 0x36d0, 0x371d, 0x3a21, 0x3b07, 0x2ef3, 0x342a, 0x39e6, 0x3037, 0x39a5, 0x3510, -0x3b81, 0x2559, 0x3914, 0x3883, 0x3534, 0x33e2, 0x29d9, 0x3b82, 0x3bf7, 0x390c, 0x31e3, 0x3af0, 0x2a26, 0x3803, 0x34ec, 0x356f, 0x3aed, 0x3af7, 0x34fc, 0x39f9, 0x3ad2, 0x39f6, 0x3abf, 0x397d, 0x2d55, 0x27f6, 0x3b03, 0x3335, 0x3872, 0x34df, 0x3801, 0x39c9, 0x326f, 0x3a15, 0x3810, 0x22c5, 0x359e, 0x366c, 0x3493, 0x39b2, 0x38c5, 0x3a6d, 0x39b9, 0x33dc, 0x34d7, 0x3b0b, 0x378d, 0x39ed, 0x3566, 0x396a, 0x368e, 0x3a4f, 0x3571, 0x3831, 0x3290, 0x3232, 0x39f4, 0x3915, 0x377d, 0x3af9, 0x3460, 0x31da, 0x23e6, 0x315c, 0x2b67, 0x366b, 0x2ccf, 0x38f8, 0x39c0, 0x37cc, 0x322b, 0x3979, 0x2529, 0x34b5, 0x3759, 0x360c, 0x3180, 0x3962, 0x30d2, 0x394f, 0x3ac5, 0x3b52, 0x371b, 0x3588, 0x3437, 0x34e5, 0x3a58, 0x3bb8, 0x3bd6, 0x3858, 0x3915, 0x3bcc, 0x3835, 0x30c9, 0x259f, 0x3051, -0x399d, 0x3044, 0x382b, 0x3449, 0x3b82, 0x3a4a, 0x38b5, 0x383f, 0x1c23, 0x3b6f, 0x3941, 0x35ff, 0x395e, 0x26c0, 0x3474, 0x39b9, 0x39da, 0x2aca, 0x380a, 0x39c3, 0x393e, 0x39e9, 0x3b77, 0x3a64, 0x345b, 0x3712, 0x38e4, 0x3a97, 0x3451, 0x3a3d, 0x379f, 0x3a01, 0x3642, 0x3b7e, 0x30b6, 0x35d6, 0x39b6, 0x2cb3, 0x383a, 0x3566, 0x3a76, 0x3418, 0x31ac, 0x3ae2, 0x350d, 0x3af6, 0x382c, 0x37b8, 0x339c, 0x3969, 0x379b, 0x36b8, 0x3444, 0x382a, 0x2fab, 0x3727, 0x3b3c, 0x2e19, 0x3643, 0x30d4, 0x284c, 0x388b, 0x3a47, 0x35cc, 0x3945, 0x3470, 0x3ae6, 0x39e5, 0x36fd, 0x38ed, 0x344b, 0x3b7c, 0x39d0, 0x3833, 0x3a38, 0x34f4, 0x3046, 0x3757, 0x371d, 0x25a8, 0x386d, 0x2f66, 0x38a2, 0x2e32, 0x39e3, 0x1969, 0x313d, 0x35f5, 0x3804, 0x28f5, 0x2e8a, 0x342c, 0x3bdc, 0x3ad3, 0x3259, 0x3622, -0x325e, 0x3912, 0x398b, 0x3b70, 0x39cd, 0x3931, 0x2f75, 0x3542, 0x357a, 0x315f, 0x3ac4, 0x374f, 0x32dd, 0x386c, 0x35f1, 0x39b7, 0x38b7, 0x3b2f, 0x3a7b, 0x3b5c, 0x3bef, 0x37f6, 0x3047, 0x386a, 0x3903, 0x3607, 0x3946, 0x3911, 0x399d, 0x3be8, 0x2d83, 0x3a3c, 0x369b, 0x204f, 0x3a4c, 0x3185, 0x38c8, 0x39c3, 0x3075, 0x3542, 0x361d, 0x250f, 0x385d, 0x3485, 0x1ac2, 0x37af, 0x3ab4, 0x2dd4, 0x3595, 0x36de, 0x3add, 0x3564, 0x3566, 0x3b8d, 0x2d55, 0x3629, 0x2c8a, 0x3280, 0x3801, 0x329a, 0x3b20, 0x3b42, 0x3bf0, 0x2f27, 0x3866, 0x2caf, 0x3b40, 0x3922, 0x351e, 0x3925, 0x3b42, 0x3968, 0x39db, 0x3b77, 0x3877, 0x384a, 0x3058, 0x3aaf, 0x3a70, 0x3b33, 0x3685, 0x3b0a, 0x3a8d, 0x2d38, 0x35bb, 0x31b2, 0x36e8, 0x3a79, 0x367e, 0x3a09, 0x3a74, 0x3b9f, 0x3367, 0x37a5, 0x38a3, 0x3949, -0x2bea, 0x2b88, 0x3965, 0x3112, 0x3b79, 0x391b, 0x38a9, 0x38dc, 0x36c4, 0x3ab1, 0x3677, 0x346e, 0x3b44, 0x34b7, 0x3301, 0x381d, 0x3a3a, 0x3254, 0x3b6b, 0x389a, 0x3a65, 0x379d, 0x3178, 0x2df2, 0x3380, 0x385d, 0x383c, 0x36ef, 0x3243, 0x3b7c, 0x38cb, 0x39f5, 0x3144, 0x3336, 0x3a1b, 0x3b54, 0x3983, 0x3b54, 0x3861, 0x34dd, 0x3996, 0x3a96, 0x34ec, 0x2e9e, 0x36db, 0x392f, 0x3164, 0x34df, 0x38fc, 0x35e5, 0x3432, 0x2a1b, 0x39d0, 0x385b, 0x2d25, 0x3405, 0x3809, 0x36f6, 0x3947, 0x3a23, 0x3ba7, 0x3a6f, 0x394f, 0x381c, 0x387e, 0x3aa3, 0x3586, 0x38ba, 0x3aed, 0x2f65, 0x3b77, 0x3921, 0x3843, 0x3652, 0x35ef, 0x39ea, 0x399a, 0x3a10, 0x3b1e, 0x39af, 0x3bac, 0x2f72, 0x3755, 0x38c7, 0x348e, 0x3aaf, 0x32cd, 0x3210, 0x3a78, 0x3462, 0x35a1, 0x327d, 0x38a4, 0x3569, 0x39fe, 0x3809, -0x39d6, 0x3985, 0x2211, 0x36f1, 0x36da, 0x34e8, 0x3bd7, 0x3aa3, 0x370b, 0x2e90, 0x3973, 0x3754, 0x3994, 0x31fe, 0x35e6, 0x3b87, 0x3967, 0x34d6, 0x3a01, 0x3935, 0x3afb, 0x3078, 0x3b9f, 0x31cf, 0x2496, 0x3ab7, 0x345e, 0x31a2, 0x3548, 0x3892, 0x38d8, 0x38e4, 0x3908, 0x340c, 0x3114, 0x37a7, 0x3a05, 0x37db, 0x39ee, 0x3b9e, 0x37e4, 0x375e, 0x27b0, 0x27ee, 0x3b89, 0x3bd6, 0x3911, 0x329d, 0x3596, 0x36b7, 0x38ea, 0x37b5, 0x353e, 0x368e, 0x3a25, 0x3989, 0x29cb, 0x36e2, 0x3b80, 0x390f, 0x3978, 0x359a, 0x3150, 0x3865, 0x3827, 0x2ebb, 0x3afc, 0x3ad8, 0x291b, 0x3b1f, 0x3036, 0x3b4b, 0x3411, 0x2450, 0x3928, 0x382f, 0x3968, 0x32af, 0x36e1, 0x34a0, 0x3076, 0x3289, 0x284d, 0x39ca, 0x3765, 0x2fc3, 0x3ad0, 0x2a90, 0x3a9e, 0x347f, 0x367c, 0x3bee, 0x3982, 0x380e, 0x3623, 0x33d5, -0x33eb, 0x315b, 0x3b82, 0x3901, 0x39d8, 0x3409, 0x394f, 0x38aa, 0x34e5, 0x3b0e, 0x30d8, 0x37db, 0x37cb, 0x32e0, 0x37de, 0x3896, 0x3b9f, 0x3919, 0x3869, 0x3762, 0x3698, 0x2dc6, 0x31ce, 0x3200, 0x36fa, 0x396f, 0x3b96, 0x3890, 0x3ac3, 0x331a, 0x3619, 0x3ac2, 0x2f37, 0x39e4, 0x39a0, 0x2130, 0x391c, 0x3a27, 0x3b7a, 0x3b49, 0x3ba8, 0x3a95, 0x2c78, 0x3a1a, 0x3591, 0x354a, 0x36c1, 0x38ba, 0x392f, 0x37a5, 0x3898, 0x3a9d, 0x3b8f, 0x389f, 0x3a6e, 0x389d, 0x36de, 0x3abe, 0x3669, 0x38f1, 0x391a, 0x3b6f, 0x2987, 0x30aa, 0x3ae7, 0x3709, 0x389a, 0x39a1, 0x34a0, 0x3a1a, 0x3bd0, 0x35d7, 0x3936, 0x3bc9, 0x327a, 0x3a1b, 0x31c8, 0x3be6, 0x3926, 0x3654, 0x317b, 0x39d2, 0x3b54, 0x39ae, 0x2d1e, 0x31a0, 0x30dd, 0x362a, 0x2c28, 0x3020, 0x3585, 0x30c7, 0x3af0, 0x3ad3, 0x3b2b, 0x382f, -0x384d, 0x3ace, 0x3a7d, 0x300d, 0x3a39, 0x3ac5, 0x2b3b, 0x2c05, 0x2dfc, 0x3bee, 0x3b46, 0x343f, 0x3a00, 0x33be, 0x2d9e, 0x3790, 0x3467, 0x3a11, 0x39e5, 0x3943, 0x34b2, 0x393c, 0x2e29, 0x34ae, 0x34dd, 0x2491, 0x3ac2, 0x3279, 0x3a46, 0x318d, 0x389a, 0x2f39, 0x1cb3, 0x37cf, 0x31c3, 0x318a, 0x3172, 0x3b66, 0x357a, 0x3896, 0x3b6b, 0x3a47, 0x3a43, 0x33bc, 0x35f4, 0x39f5, 0x39c1, 0x34fe, 0x39a2, 0x367b, 0x3b19, 0x3bef, 0x3461, 0x39a9, 0x3a35, 0x2bfa, 0x34b4, 0x38fa, 0x3203, 0x332b, 0x39ef, 0x3a2a, 0x3bc2, 0x39ef, 0x364e, 0x3a8c, 0x2fa8, 0x2612, 0x3406, 0x391a, 0x39ff, 0x3bba, 0x3971, 0x2637, 0x3664, 0x3a2b, 0x3053, 0x3bf4, 0x3b2c, 0x3b1f, 0x27e3, 0x3ba0, 0x38ee, 0x388f, 0x3a17, 0x328e, 0x3bcd, 0x306a, 0x3909, 0x38f2, 0x3a16, 0x380b, 0x2e11, 0x38b5, 0x36ba, 0x387a, -0x3a4f, 0x38f9, 0x3862, 0x3525, 0x38ae, 0x34bd, 0x3a07, 0x3881, 0x2e59, 0x3969, 0x3a7a, 0x3b75, 0x2619, 0x399d, 0x314a, 0x39fe, 0x3af1, 0x3a0c, 0x2875, 0x39c6, 0x3887, 0x3ab2, 0x36e8, 0x3497, 0x396f, 0x3567, 0x2ef7, 0x3845, 0x2cd3, 0x3b99, 0x30cc, 0x300d, 0x3a4f, 0x3453, 0x386a, 0x39d5, 0x3beb, 0x392e, 0x3766, 0x3b37, 0x3b57, 0x355c, 0x37fb, 0x3a36, 0x343a, 0x37e1, 0x1f1c, 0x218b, 0x3820, 0x345b, 0x3bd5, 0x329f, 0x3679, 0x3b0f, 0x28d4, 0x3891, 0x3b51, 0x3937, 0x3585, 0x3936, 0x3ace, 0x30fa, 0x384e, 0x3a16, 0x34bf, 0x34f4, 0x3a08, 0x3916, 0x2ed6, 0x3740, 0x382c, 0x3446, 0x3b77, 0x3af7, 0x3a42, 0x284f, 0x366c, 0x36ea, 0x3680, 0x326a, 0x3b5c, 0x3678, 0x3bee, 0x3853, 0x36cc, 0x35c2, 0x2f28, 0x34f6, 0x31d8, 0x38b6, 0x3a7b, 0x3b96, 0x3056, 0x3afc, 0x351a, 0x3570, -0x3439, 0x3a20, 0x3b65, 0x362f, 0x38f8, 0x30e5, 0x3974, 0x38cf, 0x3b7e, 0x3b2d, 0x3828, 0x382c, 0x3979, 0x349c, 0x3b6f, 0x3887, 0x3a3a, 0x3bec, 0x3aee, 0x3abd, 0x3510, 0x3a50, 0x2dcb, 0x31d9, 0x39ed, 0x3a5b, 0x39d6, 0x3a89, 0x3511, 0x3199, 0x39a3, 0x3803, 0x3a02, 0x3bdd, 0x3588, 0x35cb, 0x3a69, 0x3bab, 0x23ea, 0x3750, 0x3b92, 0x3bfc, 0x359f, 0x3bdb, 0x3a6b, 0x3b07, 0x355d, 0x3a0a, 0x39cd, 0x1e5e, 0x38c2, 0x3965, 0x34f4, 0x37d0, 0x35b2, 0x34c8, 0x3ad5, 0x34f4, 0xba8, 0x3b62, 0x380b, 0x3b8f, 0x3ae7, 0x30c0, 0x38a0, 0x3341, 0x323a, 0x32d1, 0x32a8, 0x3413, 0x38bb, 0x37cf, 0x397e, 0x3884, 0x2952, 0x2b54, 0x3b8a, 0x3bd4, 0x3522, 0x3b0f, 0x3888, 0x38e4, 0x38d1, 0x3bfa, 0x3adc, 0x3b72, 0x3bc5, 0x33de, 0x39f6, 0x390e, 0x2fd3, 0x3875, 0x261c, 0x2a54, 0x315d, 0x388a, -0x36a4, 0x38d4, 0x3405, 0x3761, 0x37ae, 0x3650, 0x3065, 0x3b0b, 0x283f, 0x3a67, 0x360c, 0x3b9c, 0x2eea, 0x2e99, 0x349f, 0x3849, 0x3b43, 0x3744, 0x3834, 0x3852, 0x36e7, 0x3835, 0x3499, 0x2ee3, 0x3aa2, 0x3823, 0x31c2, 0x380c, 0x354c, 0x37f5, 0x324c, 0x302b, 0x34bf, 0x26e6, 0x39a0, 0x3068, 0x2e1d, 0x3061, 0x3b24, 0x33a7, 0x3ada, 0x38a5, 0x37c3, 0x39a0, 0x3aa0, 0x382f, 0x21e9, 0x3a36, 0x3a8b, 0x395a, 0x343d, 0x3837, 0x361d, 0x33af, 0x3b87, 0x399b, 0x3904, 0x344a, 0x3a10, 0x3b08, 0x348c, 0x2fc7, 0x3239, 0x390b, 0x384c, 0x34c6, 0x2873, 0x357c, 0x32b6, 0x3ae5, 0x3bb4, 0x30f2, 0x39e7, 0x2b6a, 0x3969, 0x39ab, 0x3316, 0x3638, 0x3a22, 0x3505, 0x35f5, 0x3b42, 0x3372, 0x33e5, 0x322a, 0x3a8f, 0x36be, 0x3982, 0x341d, 0x3510, 0x3714, 0x3871, 0x3a56, 0x3739, 0x3457, 0x3822, -0x35ee, 0x3bb5, 0x357c, 0x3a66, 0x3bfe, 0x3469, 0x37e0, 0x39c0, 0x2c91, 0x3805, 0x31c4, 0x39e4, 0x32f9, 0x3140, 0x2ef9, 0x389c, 0x38e8, 0x3404, 0x2d4b, 0x36fd, 0x32a8, 0x397e, 0x3939, 0x2c8f, 0x327d, 0x341a, 0x35eb, 0x36bb, 0x307c, 0x3a9c, 0x3b25, 0x3b83, 0x31b7, 0x377c, 0x3450, 0x34af, 0x2d66, 0x36ab, 0x3520, 0x3648, 0x2e5e, 0x3adc, 0x3422, 0x3b9e, 0x36b4, 0x35ac, 0x3a7b, 0x36ae, 0x39c5, 0x2c2d, 0x3b8f, 0x3998, 0x3a82, 0x2cb5, 0x3a0b, 0x34aa, 0x3895, 0x3811, 0x3545, 0x35b5, 0x39c4, 0x3b43, 0x39ae, 0x355a, 0x2db8, 0x3b7f, 0x3655, 0x354d, 0x34ee, 0x30fb, 0x3a7c, 0x338b, 0x3b6c, 0x2c39, 0x38bb, 0x2de3, 0x3114, 0x38bf, 0x2e01, 0x3483, 0x2964, 0x3828, 0x2da3, 0x3a05, 0x3add, 0x3477, 0x3bf6, 0x3a7a, 0x38a8, 0x34be, 0x2d01, 0x2f9b, 0x29d1, 0x3995, 0x38a1, 0x3632, -0x3629, 0x3451, 0x31ca, 0x3b76, 0x382e, 0x3aad, 0x3a3a, 0x3aed, 0x3471, 0x3b38, 0x2a7b, 0x38f4, 0x3975, 0x383f, 0x30ba, 0x2cbb, 0x3adc, 0x31c2, 0x2ef0, 0x270a, 0x3734, 0x30a5, 0x3481, 0x3764, 0x3a6c, 0x3845, 0x2bfd, 0x3407, 0x3be1, 0x35ba, 0x3163, 0x332f, 0x38ae, 0x3361, 0x38a5, 0x3556, 0x265c, 0x38ac, 0x3869, 0x2d4e, 0x300a, 0x39bd, 0x38ef, 0x372d, 0x2d3e, 0x3a3a, 0x30a2, 0x1e66, 0x3bc7, 0x38c5, 0x3966, 0x3ace, 0x3a34, 0x2d9c, 0x3845, 0x30f3, 0x2c21, 0x3405, 0x2c4f, 0x3629, 0x3bcb, 0x315b, 0x2e94, 0x3399, 0x39a7, 0x3696, 0x377d, 0x36a0, 0x312d, 0x366f, 0x379a, 0x25a6, 0x3808, 0x2da5, 0x2bbf, 0x381d, 0x3a94, 0x3577, 0x31ba, 0x344e, 0x385f, 0x3687, 0x38a7, 0x2a84, 0x399a, 0x317a, 0x3a59, 0x3467, 0x3af3, 0x3b1d, 0x33c8, 0x35cf, 0x3af4, 0x2c27, 0x38ab, 0x2850, -0x3be1, 0x3a7a, 0x363b, 0x3aa9, 0x3af3, 0x37f1, 0x3815, 0x3a54, 0x2d86, 0x3b67, 0x3780, 0x3b73, 0x3755, 0x38a3, 0x3435, 0x2df3, 0x3bc1, 0x32c0, 0x2da1, 0x395b, 0x32a7, 0x377e, 0x3ba5, 0x3ace, 0x3971, 0x3095, 0x3a2b, 0x3780, 0x3a68, 0x3979, 0x392b, 0x38ca, 0x385a, 0x3a82, 0x385f, 0x36e3, 0x3318, 0x2aad, 0x3670, 0x3ba1, 0x3bd0, 0x3a29, 0x3116, 0x390c, 0x3756, 0x3aa6, 0x39f6, 0x31a7, 0x3be8, 0x389c, 0x3248, 0x3608, 0x357a, 0x37bd, 0x37a4, 0x3456, 0x3563, 0x31a3, 0x398a, 0x3940, 0x364b, 0x2273, 0x3847, 0x356c, 0x3574, 0x382e, 0x3b27, 0x39d7, 0x311b, 0x3825, 0x3abb, 0x3bb9, 0x3b33, 0x386f, 0x3b02, 0x3b39, 0x2453, 0x3888, 0x34e1, 0x318d, 0x36df, 0x3ba2, 0x2ba7, 0x3943, 0x3586, 0x38f6, 0x3a2a, 0x3b90, 0x3b00, 0x39f3, 0x3108, 0x3533, 0x3bb7, 0x3264, 0x3aa8, 0x3669, -0x3748, 0x3a5c, 0x3959, 0x3c00, 0x3b73, 0x30f8, 0x2e58, 0x37d5, 0x3836, 0x2e91, 0x3603, 0x38f2, 0x3647, 0x3855, 0x3a9e, 0x3851, 0x24fd, 0x3990, 0x38a2, 0x3aae, 0x314a, 0x39d4, 0x3afd, 0x3a0d, 0x3a94, 0x38d4, 0x3970, 0x35d2, 0x3899, 0x2e93, 0x388f, 0x3850, 0x367f, 0x3bbf, 0x3581, 0x3a5d, 0x261c, 0x3bb3, 0x3594, 0x3988, 0x3b5b, 0x3b6e, 0x37a7, 0x39fa, 0x3a8e, 0x3629, 0x3b1d, 0x3068, 0x38d0, 0x3859, 0x3514, 0x3865, 0x33e0, 0x39f5, 0x20bf, 0x3a8f, 0x2ff9, 0x3bc8, 0x3abf, 0x324d, 0x2b88, 0x3856, 0x38a6, 0x3bd7, 0x38d8, 0x3722, 0x39ee, 0x3947, 0x3794, 0x36a5, 0x3acd, 0x1f3f, 0x3497, 0x39d0, 0x3947, 0x38c7, 0x3a3f, 0x3661, 0x36dd, 0x2c46, 0x3bee, 0x2885, 0x3430, 0x38f7, 0x27b3, 0x3134, 0x3265, 0x2666, 0x3930, 0x3514, 0x2ec0, 0x3985, 0x37ef, 0x3a11, 0x3a70, 0x3578, -0x3a6e, 0x333d, 0x36c8, 0x33e0, 0x27ae, 0x2954, 0x36cc, 0x37db, 0x382f, 0x38cd, 0x3944, 0x3a4b, 0x3671, 0x3966, 0x33a3, 0x3882, 0x3739, 0x349b, 0x39b6, 0x3573, 0x2cbf, 0x374e, 0x2cc0, 0x3af4, 0x34ca, 0x314c, 0x3bb4, 0x3554, 0x3a8b, 0x335f, 0x2d08, 0x387b, 0x37c4, 0x34a9, 0x388d, 0x3884, 0x332e, 0x36de, 0x3590, 0x3803, 0x33dc, 0x28bf, 0x386a, 0x39e4, 0x3b9d, 0x3aff, 0x3b0b, 0x393a, 0x37fa, 0x3577, 0x3bfb, 0x3b19, 0x3422, 0x34cd, 0x39d4, 0x39dc, 0x31b9, 0x38f4, 0x3871, 0x2e80, 0x3b90, 0x3513, 0x363a, 0x39f9, 0x332f, 0x391a, 0x39f9, 0x38fd, 0x3b16, 0x382c, 0x3b91, 0x2fa4, 0x34db, 0x30f4, 0x37c5, 0x392c, 0x3b6f, 0x3835, 0x35ac, 0x379d, 0x3b39, 0x3924, 0x2f94, 0x34b0, 0x3149, 0x307c, 0x3a7e, 0x3656, 0x398a, 0x390f, 0x27f6, 0x31a6, 0x3a80, 0x3582, 0x3863, 0x3ae1, -0x3265, 0x257e, 0x360a, 0x2fc7, 0x3ba9, 0x3515, 0x3a80, 0x3056, 0x37c5, 0x2a16, 0x3915, 0x357a, 0x3556, 0x337e, 0x3af8, 0x3a9f, 0x35aa, 0x3903, 0x2ec4, 0x3751, 0x3a1b, 0x39d2, 0x3b76, 0x34ef, 0x3b5a, 0x394c, 0x3851, 0x3b4b, 0x3bb2, 0x3b80, 0x3bef, 0x3a09, 0x3af7, 0x3902, 0x3711, 0x3704, 0x374b, 0x3325, 0x39ee, 0x385c, 0x32a7, 0x281b, 0x2193, 0x3418, 0x35ac, 0x3800, 0x3a5f, 0x3bf9, 0x37f4, 0x3819, 0x3891, 0x3534, 0x366b, 0x3b04, 0x35b1, 0x3969, 0x3bc5, 0x3856, 0x2e11, 0x3784, 0x3388, 0x36eb, 0x35e3, 0x32f8, 0x2a50, 0x33ed, 0x3989, 0x34b8, 0x3be4, 0x3844, 0x34b0, 0x355e, 0x3a56, 0x3431, 0x345d, 0x389a, 0x366e, 0x3902, 0x3858, 0x38e1, 0x388c, 0x3565, 0x33c4, 0x3b68, 0x372f, 0x307c, 0x3bb9, 0x359f, 0x3a41, 0x3bcf, 0x3bb3, 0x2d88, 0x32f8, 0x354c, 0x3b9e, 0x3ae5, -0x3059, 0x3359, 0x382d, 0x3a91, 0x3bed, 0x28fb, 0x3885, 0x3a3c, 0x39e9, 0x39f7, 0x351e, 0x37e3, 0x3bad, 0x2834, 0x37d1, 0x3839, 0x3ad1, 0x39f3, 0x362f, 0x35ba, 0x3312, 0x3b21, 0x3536, 0x3bfd, 0x3518, 0x201e, 0x2022, 0x3b03, 0x3910, 0x39ce, 0x363c, 0x3b25, 0x3b4f, 0x3be8, 0x3655, 0x38dc, 0x344b, 0x3372, 0x3939, 0x372a, 0x3b86, 0x384e, 0x3b9e, 0x32c3, 0x3bd5, 0x3041, 0x3051, 0x257f, 0x3a6c, 0x3379, 0x2f52, 0x37de, 0x37ac, 0x3734, 0x3447, 0x3bbc, 0x3aaf, 0x38eb, 0x384a, 0x3ad6, 0x3a49, 0x3944, 0x2cf5, 0x38a3, 0x398b, 0x3b0e, 0x307a, 0x3504, 0x3728, 0x3500, 0x2f6e, 0x2e34, 0x3aa4, 0x39f7, 0x3831, 0x3902, 0x3509, 0x2d20, 0x3b99, 0x3860, 0x3901, 0x3420, 0x3944, 0x3926, 0x3acd, 0x3786, 0x3b09, 0x3ad7, 0x2cb6, 0x3a8e, 0x2233, 0x3892, 0x398a, 0x272e, 0x3853, 0x389c, -0x3a14, 0x3877, 0x3320, 0x34b7, 0x3a85, 0x34da, 0x38db, 0x3758, 0x3b8d, 0x3aa8, 0x3766, 0x34db, 0x3a54, 0x3806, 0x31ef, 0x33ab, 0x38bd, 0x3778, 0x3543, 0x36ec, 0x36fa, 0x2fc5, 0x3676, 0x350c, 0x390f, 0x3b8b, 0x394a, 0x38bb, 0x31d9, 0x3bf1, 0x36ce, 0x35dc, 0x38c2, 0x3910, 0x3944, 0x38f8, 0x37f6, 0x3b9b, 0x3574, 0x31ed, 0x244e, 0x28ef, 0x34fa, 0x3398, 0x3912, 0x365f, 0x3bb2, 0x38f7, 0x3af2, 0x3500, 0x3a8e, 0x3a55, 0x39be, 0x2471, 0x34b0, 0x336f, 0x380a, 0x3ae7, 0x34f5, 0x35f9, 0x3227, 0x263d, 0x3385, 0x372f, 0x2046, 0x3a80, 0x3b0a, 0x35cf, 0x38e1, 0x38b4, 0x2eb6, 0x353f, 0x314f, 0x3a4c, 0x3a52, 0x3b84, 0x39b8, 0x367d, 0x3b22, 0x310a, 0x3611, 0x37ad, 0x3496, 0x2e9c, 0x3215, 0x3b29, 0x38cf, 0x343f, 0x380a, 0x36b0, 0x3a08, 0x2c90, 0x36e4, 0x354a, 0x3b56, 0x37a1, -0x39f1, 0x340d, 0x3b34, 0x309a, 0x3074, 0x24a8, 0x261c, 0x3a16, 0x3846, 0x35dd, 0x2830, 0x3a03, 0x3729, 0x3766, 0x3461, 0x33db, 0x3b4a, 0x33eb, 0x3813, 0x34cd, 0x3875, 0x3a95, 0x31ef, 0x38b2, 0x3acc, 0x34d9, 0x3542, 0x37f4, 0x3937, 0x3858, 0x3997, 0x3538, 0x338b, 0x35ff, 0x3613, 0x3809, 0x3878, 0x3870, 0x2df0, 0x39f4, 0x3863, 0x30ce, 0x38ae, 0x384f, 0x3b24, 0x3045, 0x297f, 0x3b58, 0x3123, 0x2b6b, 0x3bc5, 0x388a, 0x3003, 0x3077, 0x34dc, 0x39cb, 0x3bcf, 0x3b16, 0x344c, 0x3aac, 0x364a, 0x399b, 0x3a68, 0x3583, 0x34c3, 0x3bc0, 0x3b1d, 0x3a15, 0x387f, 0x3756, 0x382e, 0x3a58, 0x18c3, 0x3a2e, 0x3b81, 0x34f8, 0x3802, 0x3631, 0x3920, 0x340c, 0x3b6c, 0x39a7, 0x1a4a, 0x38cc, 0x38ec, 0x3912, 0x3bd6, 0x3358, 0x3275, 0x3954, 0x3b39, 0x3674, 0x3a2e, 0x387c, 0x3a86, 0x34c2, -0x3585, 0x36c0, 0x3762, 0x380b, 0x31cf, 0x3992, 0x365a, 0x3b73, 0x35e8, 0x3925, 0x3b3b, 0x37cc, 0x3823, 0x2cd7, 0x2a80, 0x3a41, 0x37a5, 0x3479, 0x36eb, 0x29cc, 0x317d, 0x38b8, 0x32f8, 0x355e, 0x392c, 0x3b16, 0x3275, 0x306a, 0x22a8, 0x35fb, 0x32d4, 0x3a42, 0x32ba, 0x2443, 0x3898, 0x3164, 0x38ff, 0x3ba6, 0x35ae, 0x396a, 0x3a5c, 0x3922, 0x1df2, 0x3943, 0x309b, 0x3a53, 0x3439, 0x3802, 0x32bc, 0x34f6, 0x3957, 0x3a59, 0x36c9, 0x3b3c, 0x3aa0, 0x3903, 0x2b86, 0x380e, 0x2f83, 0x397a, 0x3a11, 0x3ab3, 0x38b9, 0x3a54, 0x3191, 0x2eb7, 0x3549, 0x3a39, 0x375b, 0x38d8, 0x346a, 0x3a3e, 0x35ff, 0x305b, 0x3b1d, 0x3882, 0x39da, 0x3a92, 0x2f74, 0x38f1, 0x3b8e, 0x361f, 0x38d4, 0x365b, 0x367c, 0x2658, 0x3762, 0x3905, 0x393f, 0x34c8, 0x3830, 0x39d1, 0x35e1, 0x23b7, 0x3b28, 0x39f4, -0x27a7, 0x38a0, 0x3954, 0x32c7, 0x3572, 0x25b3, 0x384f, 0x38fb, 0x3a34, 0x3b79, 0x3af6, 0x34c8, 0x3a0d, 0x3906, 0x3981, 0x3a97, 0x3b17, 0x34d5, 0x2dc4, 0x3401, 0x21b1, 0x3999, 0x3898, 0x2def, 0x3747, 0x300c, 0x3afe, 0x34d6, 0x36ac, 0x3b5f, 0x3952, 0x2a90, 0x34b4, 0x3a77, 0x3b03, 0x385e, 0x33d0, 0x37a9, 0x36a7, 0x231e, 0x3534, 0x35f6, 0x30e1, 0x3873, 0x2299, 0x387e, 0x3499, 0x30dc, 0x383a, 0x256e, 0x387f, 0x3395, 0x33c1, 0x38ac, 0x38fe, 0x383b, 0x36c3, 0x392b, 0x3812, 0x3168, 0x3b18, 0x386a, 0x3b17, 0x3981, 0x3577, 0x3874, 0x308a, 0x38d1, 0x3a7b, 0x361f, 0x38bf, 0x29c5, 0x2d56, 0x343b, 0x33bc, 0x38ab, 0x3a82, 0x2feb, 0x3885, 0x3531, 0x3588, 0x2ff6, 0x3851, 0x3a08, 0x36e7, 0x3b8c, 0x3182, 0x3a4e, 0x3849, 0x3509, 0x3909, 0x380e, 0x3692, 0x2e1e, 0x2f7f, 0x35eb, -0x3816, 0x2f7d, 0x3b42, 0x38c2, 0x3884, 0x3096, 0x39b7, 0x3868, 0x3879, 0x3606, 0x3111, 0x36d8, 0x39eb, 0x3bcf, 0x3ac4, 0x38bd, 0x3877, 0x3967, 0x398b, 0x39fe, 0x3514, 0x3139, 0x30a8, 0x3431, 0x2d75, 0x3a3a, 0x3b80, 0x3917, 0x307a, 0x2c42, 0x3143, 0x3954, 0x36ff, 0x381f, 0x37dd, 0x3b2f, 0x3972, 0x317f, 0x397b, 0x350d, 0x382e, 0x2ed6, 0x375c, 0x3462, 0x36ff, 0x364c, 0x39ba, 0x36c7, 0x3bea, 0x3211, 0x354e, 0x2d30, 0x1f03, 0x35f6, 0x3a24, 0x3576, 0x38ce, 0x38e5, 0x3bbe, 0x38a8, 0x3831, 0x39d0, 0x3772, 0x3ba5, 0x314f, 0x2572, 0x39d2, 0x2de3, 0x1d7a, 0x360b, 0x399a, 0x3863, 0x3a18, 0x3141, 0x3a7d, 0x391b, 0x3957, 0x33f7, 0x3801, 0x392a, 0x3a5a, 0x3a51, 0x3841, 0x2a4a, 0x3786, 0x355f, 0x28d9, 0x35cc, 0x2dfc, 0x302a, 0x2c60, 0x3b50, 0x3abe, 0x382f, 0x35ed, 0x3a8d, -0x3b1b, 0x3525, 0x3725, 0x2e88, 0x304b, 0x3920, 0x3962, 0x3908, 0x352b, 0x3667, 0x3880, 0x3692, 0x38bd, 0x317c, 0x30f3, 0x3beb, 0x302b, 0x326c, 0x3a36, 0x3a30, 0x39b6, 0x2a61, 0x34f1, 0x22d6, 0x39b6, 0x310f, 0x2dff, 0x38d1, 0x3700, 0x3412, 0x38de, 0x394f, 0x2de4, 0x2ed8, 0x3beb, 0x3a50, 0x3526, 0x246d, 0x361e, 0x2e4b, 0x3272, 0x3b5a, 0x3805, 0x3a98, 0x3653, 0x3abc, 0x301d, 0x399f, 0x2dae, 0x3ac4, 0x39dc, 0x3403, 0x3109, 0x2d85, 0x381e, 0x36b6, 0x348d, 0x35c6, 0x3b5f, 0x3b3a, 0x35c0, 0x36de, 0x38bc, 0x3308, 0x39a0, 0x39cf, 0x3456, 0x3a80, 0x39fc, 0x311a, 0x3bb1, 0x3a38, 0x3b9d, 0x3a27, 0x3912, 0x3377, 0x38a9, 0x34c6, 0x34ec, 0x35fa, 0x378c, 0x387e, 0x3686, 0x372c, 0x388d, 0x3ad6, 0x3bd3, 0x3b26, 0x3bd6, 0x3b91, 0x31e3, 0x381e, 0x353b, 0x3a90, 0x2cd6, 0x3047, -0x33df, 0x35c8, 0x396a, 0x321c, 0x286f, 0x2daa, 0x39aa, 0x3a83, 0x36ff, 0x3476, 0x3a33, 0x37d6, 0x2c5f, 0x3a23, 0x38cb, 0x36a9, 0x331b, 0x24ec, 0x3960, 0x2d61, 0x3a61, 0x330f, 0x3937, 0x2e70, 0x3797, 0x399d, 0x26dc, 0x320e, 0x342c, 0x3b32, 0x22bc, 0x3466, 0x3447, 0x3896, 0x31b7, 0x3b22, 0x383a, 0x3623, 0x38f8, 0x3552, 0x3a55, 0x29c5, 0x34bb, 0x3663, 0x2c7b, 0x378d, 0x250c, 0x3ac9, 0x39c4, 0x378d, 0x39d2, 0x39a9, 0x379f, 0x3473, 0x2db0, 0x3993, 0x3ad3, 0x3494, 0x39ae, 0x36d2, 0x397c, 0x39c9, 0x3adc, 0x359f, 0x2c2f, 0x3b0d, 0x3595, 0x3687, 0x39b3, 0x34e4, 0x3af6, 0x2f71, 0x39af, 0x3b28, 0x38fe, 0x381d, 0x28ef, 0x3abc, 0x3723, 0x3b6c, 0x381e, 0x3442, 0x3b90, 0x39cc, 0x39c5, 0x3654, 0x38ac, 0x1b4d, 0x391f, 0x38d2, 0x3ac7, 0x385a, 0x322c, 0x39e6, 0x289c, 0x3786, -0x3b5f, 0x37c4, 0x3906, 0x3069, 0x3478, 0x383c, 0x3a34, 0x3a85, 0x33b3, 0x3be6, 0x3a71, 0x33ac, 0x3a77, 0x3b21, 0x3b7d, 0x3957, 0x3814, 0x39b2, 0x3504, 0x387f, 0x37c6, 0x39e0, 0x39f1, 0x393b, 0x2fe0, 0x3806, 0x2d6e, 0x37a5, 0x3069, 0x3831, 0x3959, 0x3363, 0x2d3a, 0x3980, 0x35ec, 0x3a3c, 0x389c, 0x23eb, 0x3a24, 0x30fa, 0x3040, 0x38b4, 0x3b7b, 0x381f, 0x3a66, 0x246e, 0x3b37, 0x30c1, 0x38a5, 0x387e, 0x34aa, 0x362a, 0x3556, 0x2a52, 0x3445, 0x3a9b, 0x2986, 0x38d2, 0x3513, 0x3bca, 0x39fa, 0x303b, 0x31cc, 0x3414, 0x3b16, 0x3a43, 0x2e2c, 0x3a29, 0x3996, 0x3973, 0x39b3, 0x36dc, 0x2761, 0x32a1, 0x3815, 0x3708, 0x38fa, 0x38cb, 0x36d3, 0x39c8, 0x266c, 0x3b60, 0x33cf, 0x3be3, 0x3854, 0x34c0, 0x34d3, 0x39ac, 0x37ad, 0x2fcb, 0x3966, 0x31a2, 0x363f, 0x3434, 0x381e, 0x3a53, -0x3795, 0x38cd, 0x3c00, 0x393c, 0x38af, 0x3b72, 0x37c4, 0x3b4f, 0x30b0, 0x36fd, 0x377b, 0x38f2, 0x371b, 0x3ada, 0x2edd, 0x3782, 0x33a2, 0x3a25, 0x38ae, 0x3be0, 0x3a31, 0x32b2, 0x3323, 0x3b1f, 0x39fc, 0x3986, 0x3b38, 0x3881, 0x3a9d, 0x3936, 0x3946, 0x3159, 0x3504, 0x3792, 0x3547, 0x28ff, 0x3449, 0x3214, 0x313f, 0x3866, 0x3a59, 0x3b06, 0x2e51, 0x2759, 0x342e, 0x3726, 0x3473, 0x37ea, 0x3b1d, 0x3be8, 0x346d, 0x3b73, 0x38c3, 0x296c, 0x33b2, 0x34a7, 0x3af5, 0x3284, 0x359c, 0x384d, 0x2ff7, 0x3337, 0x339b, 0x30e4, 0x3001, 0x3b02, 0x2ddf, 0x3997, 0x320c, 0x3af9, 0x2c92, 0x37e8, 0x3b5d, 0x3132, 0x3860, 0x396b, 0x39fd, 0x38f3, 0x3968, 0x32e8, 0x3523, 0x395b, 0x2e01, 0x37b9, 0x3b53, 0x3b37, 0x398e, 0x389b, 0x3586, 0x37d6, 0x3976, 0x3785, 0x3b0c, 0x3975, 0x39e2, 0x3bb5, -0x3675, 0x343a, 0x38d9, 0x392e, 0x3b61, 0x35db, 0x3527, 0x3a75, 0x3a1e, 0x36bd, 0x3af7, 0x2dae, 0x3b77, 0x2fe7, 0x3a80, 0x3745, 0x3a6e, 0x3748, 0x37ad, 0x3492, 0x3a82, 0x35db, 0x2e6a, 0x34bf, 0x3984, 0x3aff, 0x3a9a, 0x2720, 0x3786, 0x3475, 0x3842, 0x36ce, 0x387f, 0x3875, 0x292c, 0x35b8, 0x3ac0, 0x39f1, 0x3537, 0x3920, 0x3a93, 0x2a40, 0x2c60, 0x39b0, 0x3559, 0x3989, 0x3670, 0x33ef, 0x36e4, 0x3ac3, 0x3802, 0x35b3, 0x36e9, 0x34b6, 0x3911, 0x35f1, 0x3591, 0x3a96, 0x39df, 0x3892, 0x3582, 0x3a67, 0x39cf, 0x3bf8, 0x3587, 0x2adb, 0x36f3, 0x3a9f, 0x34c5, 0x31ab, 0x3481, 0x26aa, 0x3929, 0x3749, 0x3764, 0x3743, 0x39db, 0x2850, 0x363d, 0x386f, 0x349c, 0x3ae1, 0x3834, 0x3480, 0x305d, 0x3bca, 0x3418, 0x3580, 0x3897, 0x3831, 0x3898, 0x39aa, 0x372b, 0x3b98, 0x3b92, 0x3adc, -0x355f, 0x3915, 0x21ad, 0x3a2a, 0x3803, 0x3af4, 0x34e4, 0x37b0, 0x399e, 0x33d8, 0x3904, 0x1c2b, 0x3831, 0x3b39, 0x3a0e, 0x37dd, 0x3bfb, 0x3a0f, 0x3623, 0x3beb, 0x39d0, 0x335e, 0x38e5, 0x3810, 0x37df, 0x2c84, 0x30bc, 0x3013, 0x342f, 0x285f, 0x3855, 0x3b81, 0x3a35, 0x33e5, 0x3a11, 0x3bab, 0x32df, 0x303d, 0x3973, 0x340f, 0x3aba, 0x34d9, 0x3924, 0x3b84, 0x3a67, 0x3980, 0x3612, 0x3b64, 0x39e3, 0x3ac3, 0x3350, 0x3865, 0x24d5, 0x3bac, 0x3594, 0x38d7, 0x3b53, 0x3b76, 0x39ee, 0x36de, 0x3a1c, 0x38ce, 0x25cc, 0x3847, 0x3b28, 0x34c5, 0x3a7e, 0x3afb, 0x3361, 0x2266, 0x37d1, 0x3886, 0x306b, 0x3b12, 0x3a8b, 0x2aad, 0x3855, 0x35b0, 0x35c4, 0x3b4e, 0x36fa, 0x396a, 0x26f4, 0x381a, 0x2f06, 0x2c3e, 0x3116, 0x3adf, 0x358b, 0x2f88, 0x3adf, 0x3842, 0x3a1a, 0x3b35, 0x291a, 0x2e9d, -0x32d1, 0x3946, 0x3a50, 0x398e, 0x2970, 0x3122, 0x286c, 0x3b80, 0x3bbe, 0x38ad, 0x3b51, 0x385a, 0x38c4, 0x3af0, 0x352a, 0x38e9, 0x3a80, 0x28e3, 0x395e, 0x34aa, 0x3973, 0x3492, 0x398c, 0x327b, 0x39d4, 0x3995, 0x3740, 0x2742, 0x388f, 0x3a24, 0x3a2f, 0x38d3, 0x384e, 0x3abd, 0x3bb8, 0x3814, 0x394b, 0x3aa0, 0x3af2, 0x37ad, 0x32aa, 0x3aa3, 0x3aa6, 0x3ac5, 0x2fbf, 0x3759, 0x3848, 0x32c6, 0x3459, 0x38af, 0x3980, 0x24db, 0x3ac5, 0x377c, 0x1d75, 0x36e9, 0x389b, 0x314e, 0x344f, 0x30ff, 0x3921, 0x3b72, 0x3884, 0x3836, 0x3af2, 0x35b8, 0x3116, 0x38ce, 0x3ae6, 0x3b16, 0x3bca, 0x373b, 0x3a8e, 0x3872, 0x2d2a, 0x344d, 0x3b2e, 0x3608, 0x320e, 0x2aa7, 0x361a, 0x2dc4, 0x3b4f, 0x2d4d, 0x34b3, 0x34c0, 0x393b, 0x3a76, 0x372f, 0x3637, 0x2b5c, 0x3a38, 0x367b, 0x2b1e, 0x344e, 0x385e, -0x3ab6, 0x38a2, 0x3674, 0x2d4d, 0x3bad, 0x3b44, 0x35ed, 0x38a7, 0x325e, 0x3b29, 0x3b65, 0x2f0f, 0x3a30, 0x3b4c, 0x3843, 0x3a21, 0x2e34, 0x3180, 0x3ae0, 0x3a02, 0x3a82, 0x2ad9, 0x3826, 0x3a94, 0x2f66, 0x217b, 0x3b82, 0x3839, 0x3263, 0x3a1b, 0x2958, 0x3b26, 0x3a3e, 0x3039, 0x3bd7, 0x2057, 0x3b99, 0x38ac, 0x372d, 0x344e, 0x31fa, 0x3bf8, 0x394e, 0x3acb, 0x3b88, 0x38cf, 0x3582, 0x3a2b, 0x370e, 0x34b5, 0x36d2, 0x3ae3, 0x38b9, 0x37a5, 0x3979, 0x3204, 0x3ba2, 0x3591, 0x3a00, 0x3944, 0x1b7f, 0x271e, 0x38a2, 0x38ad, 0x3ade, 0x3008, 0x34c9, 0x3269, 0x31da, 0x3bad, 0x3587, 0x3bea, 0x3512, 0x2deb, 0x3825, 0x3488, 0x30aa, 0x3baf, 0x378f, 0x39d9, 0x3ac4, 0x3427, 0x371e, 0x3b2d, 0x3138, 0x3654, 0x3815, 0x3b7c, 0x38cf, 0x382e, 0x1cdb, 0x2fa4, 0x3783, 0x383c, 0x37d1, 0x2df8, -0x335b, 0x3071, 0x367f, 0x3be1, 0x3a1b, 0x3afd, 0x390b, 0x3b17, 0x3861, 0x3adb, 0x3a04, 0x3859, 0x3a95, 0x37b6, 0x37ff, 0x3400, 0x34e3, 0x367d, 0x3ad0, 0x3506, 0x3b50, 0x33e6, 0x3a42, 0x3b3c, 0x382a, 0x3bf8, 0x3be8, 0x3917, 0x39ec, 0x265b, 0x3b11, 0x3b2a, 0x3aef, 0x35f9, 0x3a2b, 0x371d, 0x32f8, 0x338b, 0x3bc2, 0x399e, 0x3aa8, 0x34b1, 0x182c, 0x3691, 0x39c5, 0x359a, 0x3b2b, 0x38f9, 0x3953, 0x362a, 0x3a8e, 0x363d, 0x3b96, 0x380a, 0x37fc, 0x3694, 0x2fa9, 0x35d1, 0x3699, 0x2e36, 0x3922, 0x38b6, 0x2d05, 0x3161, 0x353e, 0x371f, 0x3913, 0x39b6, 0x35d6, 0x3b29, 0x395c, 0x3677, 0x3ac8, 0x35e1, 0x3b02, 0x3479, 0x321a, 0x2a17, 0x2890, 0x388a, 0x3109, 0x3a45, 0x301c, 0x349a, 0x31a2, 0x3b19, 0x2eb4, 0x2eff, 0x353c, 0x39f5, 0x396c, 0x3ae4, 0x3873, 0x3bf6, 0x3887, 0x3507, -0x34d1, 0x35d3, 0x3ad2, 0x3759, 0x2918, 0x36eb, 0x39bd, 0x3b25, 0x31b8, 0x35eb, 0x2999, 0x3b69, 0x3829, 0x3385, 0x3bf4, 0x3a9b, 0x3aa7, 0x319a, 0x3824, 0x38e6, 0x38aa, 0x375d, 0x3188, 0x34eb, 0x37bc, 0x3375, 0x367b, 0x33df, 0x34f6, 0x38b3, 0x38e3, 0x3010, 0x3a05, 0x2e64, 0x336a, 0x3466, 0x3962, 0x3640, 0x2a17, 0x31c5, 0x3815, 0x3472, 0x3b2c, 0x3b79, 0x32d7, 0x3656, 0x2a54, 0x3409, 0x3887, 0x34e6, 0x30ea, 0x2851, 0x39cc, 0x3153, 0x38af, 0x3868, 0x3ad3, 0x3853, 0x38a7, 0x3583, 0x31e3, 0x3284, 0x2909, 0x3ae9, 0x3abe, 0x310b, 0x3564, 0x33cb, 0x3999, 0x37bc, 0x352c, 0x32f7, 0x3522, 0x36de, 0x340c, 0x37f7, 0x3839, 0x39f8, 0x2b3b, 0x3ada, 0x3258, 0x3764, 0x395c, 0x374b, 0x3bbc, 0x35fd, 0x306c, 0x3645, 0x3b20, 0x3a18, 0x2c2b, 0x39e2, 0x3a43, 0x3934, 0x34b5, 0x390a, -0x3bc0, 0x358b, 0x3817, 0x3b77, 0x36de, 0x3868, 0x3b93, 0x2d8d, 0x3607, 0x37f9, 0x39b4, 0x3bc5, 0x3997, 0x33e1, 0x328b, 0x226a, 0x3aab, 0x390e, 0x34ee, 0x34ae, 0x3645, 0x3a4d, 0x31db, 0x3576, 0x38ed, 0x39d5, 0x2974, 0x3982, 0x34ca, 0x3839, 0x3b7a, 0x2e37, 0x2045, 0x3a1b, 0x3bf9, 0x2f9a, 0x2aba, 0x3944, 0x3a82, 0x24d0, 0x38fa, 0x2c8f, 0x3a4c, 0x391f, 0x39d2, 0x3154, 0x3a64, 0x3902, 0x398d, 0x3921, 0x3800, 0x3443, 0x2fb9, 0x3aa5, 0x3973, 0x2a30, 0x367d, 0x3850, 0x3a1e, 0x3b86, 0x34eb, 0x383c, 0x37b1, 0x2db1, 0x30d7, 0x347a, 0x2b61, 0x3441, 0x288b, 0x3bea, 0x2a52, 0x29de, 0x3a65, 0x37c2, 0x3370, 0x39e2, 0x3850, 0x3691, 0x2f33, 0x39cb, 0x3bbd, 0x35fe, 0x3696, 0x3bbe, 0x3451, 0x384e, 0x2f01, 0x380e, 0x3810, 0x35e9, 0x2c3b, 0x34bd, 0x3905, 0x3505, 0x36e9, 0x3b23, -0x38d5, 0x38b3, 0x2e40, 0x39da, 0x3459, 0x39b9, 0x385c, 0x3a5a, 0x37d8, 0x37bb, 0x3549, 0x3ba9, 0x3a79, 0x3b72, 0x2c21, 0x3576, 0x3bd3, 0x3ae5, 0x3b63, 0x3979, 0x319a, 0x3bb2, 0x39e7, 0x328c, 0x3af2, 0x34d2, 0x32c2, 0x38d1, 0x3831, 0x3a23, 0x3a51, 0x3646, 0x38be, 0x2f1b, 0x36a5, 0x3891, 0x38f0, 0x3a6a, 0x3249, 0x2f87, 0x36d8, 0x3a85, 0x2870, 0x369e, 0x3a6a, 0x34d5, 0x3419, 0x3b3e, 0x38d2, 0x3a7f, 0x3938, 0x38e4, 0x3332, 0x39db, 0x3933, 0x3a2a, 0x38cc, 0x3bae, 0x3b1a, 0x3837, 0x3ba2, 0x3582, 0x3639, 0x392a, 0x30d0, 0x3966, 0x3b0f, 0x35a7, 0x3962, 0x3b6d, 0x3503, 0x38e2, 0x370e, 0x3341, 0x3694, 0x3a68, 0x3879, 0x3661, 0x377f, 0x38fc, 0x38d5, 0x3238, 0x3a69, 0x32d0, 0x3a61, 0x388f, 0x3591, 0x3b25, 0x3818, 0x304b, 0x39f0, 0x3826, 0x399e, 0x332c, 0x3496, 0x3822, -0x3a10, 0x3839, 0x3b02, 0x248f, 0x39a8, 0x31fa, 0x3964, 0x34e5, 0x2abc, 0x3a82, 0x3440, 0x321b, 0x3859, 0x38f1, 0x3845, 0x3bbd, 0x3b28, 0x3410, 0x3855, 0x3acb, 0x3afe, 0x38fb, 0x341d, 0x3713, 0x3281, 0x387c, 0x3b3a, 0x388d, 0x34f1, 0x33b1, 0x35df, 0x3a40, 0x3b5a, 0x37a8, 0x3997, 0x32c0, 0x38e1, 0x287f, 0x30ed, 0x398d, 0x2fc0, 0x399c, 0x34b5, 0x3b4e, 0x3a20, 0x39ed, 0x2dfe, 0x3b53, 0x3529, 0x3b5d, 0x39b7, 0x3469, 0x35fb, 0x3af6, 0x3b95, 0x39bd, 0x39be, 0x3bad, 0x308a, 0x380a, 0x3851, 0x3810, 0x3866, 0x3adb, 0x3b96, 0x3118, 0x3a45, 0x36ab, 0x3250, 0x38f5, 0x360e, 0x3ac2, 0x30d1, 0x3a5f, 0x3a09, 0x3550, 0x3ba9, 0x360d, 0x3ad6, 0x3a1f, 0x376e, 0x308b, 0x3908, 0x38ac, 0x348a, 0x3ba4, 0x3704, 0x37ef, 0x35ea, 0x3836, 0x395a, 0x2c3d, 0x382e, 0x360a, 0x321a, 0x3967, -0x26ea, 0x3845, 0x344c, 0x3b46, 0x33ca, 0x2f66, 0x220e, 0x39c5, 0x35d6, 0x3af3, 0x39d0, 0x38f7, 0x3082, 0x3924, 0x3198, 0x3a81, 0x3a45, 0x3945, 0x368d, 0x3a76, 0x3a14, 0x3145, 0x2430, 0x37f0, 0x3af8, 0x31d6, 0x36ab, 0x3453, 0x2dcc, 0x359c, 0x3699, 0x37b4, 0x399c, 0x375e, 0x386a, 0x3927, 0x38c2, 0x33ac, 0x32de, 0x3ba4, 0xece, 0x398a, 0x3b1f, 0x3583, 0x3b41, 0x340f, 0x3bef, 0x3777, 0x3acd, 0x3818, 0x3ad3, 0x385d, 0x38f7, 0x399c, 0x38a1, 0x3a11, 0x38ad, 0x2fc0, 0x32c3, 0x3293, 0x3499, 0x3757, 0x28a6, 0x3b3d, 0x3b9b, 0x37a1, 0x3bcd, 0x3a17, 0x3b46, 0x39b0, 0x2cee, 0x346a, 0x3b63, 0x3855, 0x37a4, 0x36dc, 0x3baa, 0x20a7, 0x3b32, 0x2a40, 0x3ac4, 0x3855, 0x35cb, 0x3bcc, 0x3a66, 0x38bd, 0x213a, 0x2be8, 0x2793, 0x32a2, 0x3a2c, 0x3aae, 0x384b, 0x3a00, 0x375d, 0x35e2, -0x3938, 0x3629, 0x398a, 0x263c, 0x37f1, 0x39ed, 0x332c, 0x3879, 0x38df, 0x2cc1, 0x38cb, 0x398a, 0x3935, 0x3607, 0x2791, 0x3a21, 0x3590, 0x306b, 0x3720, 0x3abb, 0x3a6a, 0x2a36, 0x388b, 0x2c62, 0x393e, 0x36bc, 0x37be, 0x39bd, 0x39db, 0x35d8, 0x3b2d, 0x39ba, 0x33a4, 0x3a4b, 0x2f93, 0x38ca, 0x325d, 0x3974, 0x3116, 0x3bd6, 0x3630, 0x3888, 0x3a58, 0x3a1d, 0x3868, 0x38c5, 0x316f, 0x353d, 0x2a18, 0x3994, 0x399a, 0x2e05, 0x3b8b, 0x32f3, 0x3242, 0x2e23, 0x3191, 0x3ab7, 0x2aaf, 0x3a7d, 0x3726, 0x3b42, 0x3abc, 0x372b, 0x3a73, 0x390e, 0x38d0, 0x38e2, 0x39f9, 0x2fae, 0x3372, 0x3370, 0x3699, 0x3851, 0x3430, 0x3559, 0x3b7c, 0x3671, 0x35dd, 0x2d3e, 0x35c8, 0x2260, 0x3ab4, 0x3b38, 0x3327, 0x33df, 0x3a01, 0x3368, 0x361e, 0x3baa, 0x3990, 0x382b, 0x38fb, 0x35b9, 0x3921, 0x3918, -0x38ea, 0x349a, 0x3123, 0x2d03, 0x356f, 0x3735, 0x3b50, 0x355b, 0x3b23, 0x3a35, 0x30a3, 0x3568, 0x365c, 0x3328, 0x3ac5, 0x323f, 0x271b, 0x24a7, 0x369d, 0x32a5, 0x39e7, 0x37dc, 0x3a48, 0x36a7, 0x3037, 0x39b8, 0x35b5, 0x320c, 0x29c0, 0x3770, 0x3893, 0x384c, 0x3888, 0x399a, 0x3a4e, 0x31e7, 0x397d, 0x3876, 0x3425, 0x3929, 0x3734, 0x2cb9, 0x39e8, 0x399d, 0x27d8, 0x3a89, 0x3198, 0x35ee, 0x2576, 0x31a6, 0x398b, 0x31cb, 0x2e6d, 0x386a, 0x3b4e, 0x3882, 0x3a5b, 0x3797, 0x38f0, 0x3229, 0x3849, 0x3874, 0x2cb5, 0x3b07, 0x3b6f, 0x3b29, 0x3bdf, 0x34fd, 0x3502, 0x3ae1, 0x39ac, 0x37ef, 0x3bbc, 0x39f7, 0x3503, 0x3bf0, 0x34da, 0x3bb9, 0x3811, 0x3ac2, 0x37e5, 0x37a9, 0x38a2, 0x3ba7, 0x3862, 0x369c, 0x35f7, 0x388b, 0x3aa8, 0x335b, 0x3a6f, 0x3885, 0x36c6, 0x38a9, 0x396d, 0x34ec, -0x3a09, 0x3869, 0x34bb, 0x3761, 0x36a1, 0x3852, 0x3849, 0x3659, 0x3805, 0x3a89, 0x3539, 0x35eb, 0x3439, 0x3863, 0x3a88, 0x38e0, 0x388c, 0x351c, 0x350e, 0x3383, 0x31ad, 0x389e, 0x39a5, 0x363f, 0x3b6a, 0x30f5, 0x3a4f, 0x3669, 0x3ae5, 0x3950, 0x2e12, 0x3801, 0x3af3, 0x393f, 0x377b, 0x390c, 0x34ff, 0x30f2, 0x271a, 0x37a5, 0x289e, 0x39b6, 0x3bf3, 0x389f, 0x3a33, 0x3bf0, 0x39c0, 0x392a, 0x394d, 0x349c, 0x3b62, 0x327a, 0x377b, 0x3590, 0x397a, 0x3a04, 0x3247, 0x329c, 0x2d99, 0x3b76, 0x33ff, 0x3456, 0x32c3, 0x35b6, 0x3282, 0x32b5, 0x3a23, 0x39e0, 0x3767, 0x3600, 0x38d6, 0x3a7c, 0x3515, 0x36bc, 0x381a, 0x3bd6, 0x3baf, 0x3811, 0x39e0, 0x22ac, 0x391b, 0x29be, 0x39aa, 0x3329, 0x3a6f, 0x3bcb, 0x3118, 0x3bbf, 0x3674, 0x3918, 0x30cd, 0x3924, 0x3a6b, 0x3a8b, 0x34b5, 0x39cc, -0x2cde, 0x3945, 0x37ff, 0x3115, 0x3a3b, 0x3ae1, 0x3958, 0x28f5, 0x3b19, 0x33ff, 0x3bc4, 0x3476, 0x3886, 0x3511, 0x342b, 0x3b18, 0x36e9, 0x3ab9, 0x2423, 0x32e2, 0x3623, 0x38b4, 0x371b, 0x3bc0, 0x3b8d, 0x3366, 0x384f, 0x3a1a, 0x3a09, 0x3918, 0x3959, 0x3652, 0x3baa, 0x3685, 0x38b7, 0x378b, 0x32e9, 0x3a53, 0x3405, 0x3bc3, 0x34b9, 0x339d, 0x3819, 0x2fe8, 0x3bdb, 0x3421, 0x3575, 0x3796, 0x207e, 0x3b04, 0x38a8, 0x3b69, 0x35f1, 0x389a, 0x37ee, 0x38c3, 0x34db, 0x35a5, 0x3b83, 0x36a9, 0x2883, 0x3955, 0x3aa0, 0x334a, 0x34a9, 0x3772, 0x312a, 0x3bde, 0x3338, 0x3601, 0x3125, 0x3a73, 0x316c, 0x348e, 0x3bef, 0x3b52, 0x343b, 0x249c, 0x3a68, 0x3905, 0x3b4d, 0x1cf8, 0x356a, 0x3499, 0x3385, 0x3b44, 0x2aaf, 0x28a1, 0x3199, 0x379d, 0x3832, 0x2da7, 0x3a9e, 0x3bc7, 0x34a2, 0x2c5a, -0x3bde, 0x3822, 0x3715, 0x345e, 0x38c1, 0x3315, 0x38d1, 0x2da9, 0x37f6, 0x38d3, 0x3beb, 0x3ba6, 0x343f, 0x3af0, 0x3b0e, 0x2bd6, 0x3b3b, 0x3a5a, 0x3930, 0x3af7, 0x3504, 0x31a5, 0x2918, 0x3853, 0x214f, 0x3b67, 0x3b64, 0x34a9, 0x3894, 0x3a87, 0x3ad1, 0x3a09, 0x38a2, 0x39da, 0x3a16, 0x3485, 0x36bf, 0x3ada, 0x31eb, 0x3b8c, 0x2de3, 0x3914, 0x39d4, 0x399f, 0x3968, 0x3200, 0x3631, 0x3bd6, 0x390b, 0x312d, 0x3b94, 0x3bf1, 0x38ee, 0x378b, 0x29f3, 0x3810, 0x2f19, 0x3808, 0x389c, 0x3a3a, 0x376c, 0x3b58, 0x346d, 0x2e32, 0x3848, 0x3bec, 0x3779, 0x3237, 0x37d2, 0x3963, 0x37a5, 0x3993, 0x3495, 0x3679, 0x2c1d, 0x3add, 0x3722, 0x305d, 0x38a0, 0x3851, 0x3a01, 0x291b, 0x3447, 0x35f7, 0x3617, 0x3928, 0x2e5d, 0x1f75, 0x3b78, 0x12cc, 0x39db, 0x39be, 0x3b11, 0x3b5a, 0x2fae, 0x3696, -0x3b26, 0x3229, 0x31d8, 0x3b61, 0x290e, 0x3b7d, 0x3bf3, 0x38cc, 0x3a78, 0x35f8, 0x3b7d, 0x3883, 0x3b43, 0x3571, 0x3991, 0x3bc3, 0x3095, 0x350f, 0x39bf, 0x3823, 0x370c, 0x2aa8, 0x3473, 0x33da, 0x38c7, 0x3ab7, 0x3b3d, 0x20f4, 0x3b12, 0x3997, 0x3bfe, 0x3479, 0x3a5f, 0x3550, 0x3af7, 0x34f2, 0x382f, 0x3109, 0x3287, 0x3a6f, 0x3b41, 0x3919, 0x2a88, 0x3b07, 0x3097, 0x398d, 0x35a7, 0x3921, 0x332f, 0x3b65, 0x39c2, 0x3aea, 0x3a54, 0x3996, 0x38c1, 0x396c, 0x3a06, 0x3831, 0x33a9, 0x3457, 0x3a8f, 0x3b43, 0x310d, 0x38e9, 0x36b8, 0x392c, 0x36b7, 0x323f, 0x2e02, 0x3b91, 0x36ef, 0x356b, 0x35e9, 0x339f, 0x39ce, 0x3ba8, 0x31bf, 0x2d8d, 0x3b09, 0x2dd7, 0x3960, 0x3b44, 0x37df, 0x3814, 0x3783, 0x39e7, 0x3716, 0x397f, 0x3429, 0x35ef, 0x3a37, 0x3743, 0x342a, 0x33cf, 0x184a, 0x3829, -0x384e, 0x3ade, 0x35c2, 0x36b9, 0x3429, 0x3abf, 0x3ac6, 0x3a36, 0x2108, 0x38ef, 0x37ff, 0x39fe, 0x3815, 0x3935, 0x3ab5, 0x351d, 0x3add, 0x3b57, 0x37ad, 0x2cc3, 0x3ace, 0x3ac4, 0x37ac, 0x3904, 0x3951, 0x32e7, 0x3337, 0x270b, 0x3a71, 0x3b9c, 0x3808, 0x3033, 0x34be, 0x3742, 0x3a39, 0x27f7, 0x26a2, 0x3b34, 0x35e5, 0x3a0f, 0x3939, 0x365f, 0x3853, 0x3b36, 0x364e, 0x3334, 0x1c8a, 0x330f, 0x3b6a, 0x3a34, 0x37fc, 0x353d, 0x3922, 0x387e, 0x390d, 0x3950, 0x37fc, 0x3946, 0x3afd, 0x342b, 0x2a9d, 0x3b85, 0x32b2, 0x3afc, 0x39a0, 0x3a38, 0x3182, 0x3aac, 0x3840, 0x3b40, 0x3703, 0x2f71, 0x3992, 0x3a53, 0x3a8a, 0x370c, 0x3101, 0x3826, 0x3b5b, 0x39c0, 0x3a46, 0x37d7, 0x3751, 0x2ab9, 0x342b, 0x39e0, 0x36fc, 0x3a8a, 0x1fb5, 0x355b, 0x38dc, 0x3b4d, 0x3be0, 0x3793, 0x307f, 0x3bae, -0x33ae, 0x39cc, 0x3a09, 0x3b3a, 0x34bf, 0x3b1c, 0x35cf, 0x3aa3, 0x3504, 0x381b, 0x3a9d, 0x3703, 0x3bce, 0x3b36, 0x35ea, 0x3503, 0x3687, 0x2661, 0x3bff, 0x2d04, 0x3bee, 0x3841, 0x3074, 0x309f, 0x35a3, 0x34ca, 0x36d5, 0x3640, 0x37e6, 0x37c9, 0x3a6d, 0x34fd, 0x3918, 0x3aa0, 0x3762, 0x34e0, 0x3527, 0x3780, 0x341d, 0x385a, 0x3af7, 0x3bf7, 0x3926, 0x3617, 0x3615, 0x2a99, 0x3649, 0x3a98, 0x3613, 0x2e24, 0x3809, 0x35b6, 0x3a63, 0x3bdd, 0x3825, 0x38fb, 0x2ed9, 0x39a5, 0x2d38, 0x364c, 0x3a63, 0x397c, 0x35e5, 0x3ad5, 0x31a7, 0x3979, 0x2873, 0x2e5c, 0x3abb, 0x39b6, 0x3b74, 0x2ce6, 0x35ab, 0x3920, 0x2fee, 0x308b, 0x229f, 0x3547, 0x36d3, 0x359c, 0x3814, 0x34de, 0x3a39, 0x2ed6, 0x3bd6, 0x353d, 0x3afb, 0x3b17, 0x3733, 0x16f0, 0x3011, 0x38b2, 0x387a, 0x3984, 0x3747, 0x394d, -0x34f7, 0x3755, 0x3960, 0x355f, 0x3765, 0x38fa, 0x3be8, 0x33ca, 0x351f, 0x31eb, 0x397e, 0x1412, 0x3022, 0x3467, 0x39d7, 0x3a60, 0x2c85, 0x3241, 0x3a90, 0x3926, 0x397a, 0x38f1, 0x3996, 0x3a51, 0x3ad5, 0x2e68, 0x38a9, 0x3663, 0x399f, 0x35f3, 0x3b4c, 0x34aa, 0x3b6b, 0x32af, 0x3aa8, 0x3a22, 0x38b6, 0x34cd, 0x2c81, 0x3945, 0x37a9, 0x3a20, 0x2523, 0x3ad8, 0x29ca, 0x3b63, 0x3a69, 0x37dc, 0x323b, 0x3898, 0x38e3, 0x3637, 0x394a, 0x2d82, 0x392c, 0x3993, 0x35b8, 0x3810, 0x399e, 0x3672, 0x39fa, 0x36c2, 0x351f, 0x3797, 0x244f, 0x3b02, 0x3304, 0x385f, 0x3312, 0x394e, 0x396b, 0x28bf, 0x3885, 0x39e2, 0x347e, 0x33ad, 0x3526, 0x3a5f, 0x3b90, 0x3b1e, 0x2572, 0x3a9c, 0x30ec, 0x393e, 0x3a9b, 0x357a, 0x394b, 0x3449, 0x3545, 0x2fee, 0x3702, 0x362b, 0x3bd4, 0x27d9, 0x2d6d, 0x3080, -0x30fb, 0x382e, 0x387a, 0x3b71, 0x355f, 0x39cc, 0x33c0, 0x2f57, 0x3b2f, 0x3b79, 0x3aea, 0x3b17, 0x3b46, 0x3844, 0x380d, 0x30a7, 0x2348, 0x381f, 0x2c21, 0x3a3b, 0x2cf6, 0x3523, 0x3835, 0x1b53, 0x3ad3, 0x3b18, 0x372a, 0x39a5, 0x37e6, 0x39bd, 0x2cfd, 0x395d, 0x2ea2, 0x39cb, 0x3bdc, 0x36db, 0x3b48, 0x3acc, 0x3439, 0x34c8, 0x3361, 0x3b5b, 0x324a, 0x35ec, 0x2c87, 0x395e, 0x35fe, 0x37a4, 0x361f, 0x315f, 0x305e, 0x35f7, 0x3541, 0x3729, 0x37ed, 0x31b7, 0x3a9a, 0x34ee, 0x376c, 0x3a7a, 0x389e, 0x30b3, 0x328e, 0x3811, 0x36f5, 0x35d9, 0x37f9, 0x3bcf, 0x3a0d, 0x3658, 0x3ba9, 0x38df, 0x3997, 0x3a6d, 0x375e, 0x32f7, 0x382e, 0x3b0d, 0x38ed, 0x346a, 0x3b8a, 0x2da9, 0x359c, 0x3574, 0x3840, 0x3333, 0x3a5b, 0x358d, 0x39f3, 0x385d, 0x2959, 0x3908, 0x3b84, 0x3a40, 0x2f0d, 0x35e0, -0x2066, 0x3940, 0x3b3b, 0x320f, 0x37cc, 0x377a, 0x3b22, 0x36da, 0x3aa0, 0x3476, 0x34b4, 0x3941, 0x36f4, 0x391e, 0x3a8d, 0x32ca, 0x3853, 0x3af6, 0x34d2, 0x36a6, 0x33f1, 0x39a0, 0x3790, 0x3440, 0x390f, 0x3a83, 0x399d, 0x367d, 0x2b8e, 0x3575, 0x3a1b, 0x3a7c, 0x3a6c, 0x2eb2, 0x3a27, 0x369b, 0x3a45, 0x38a4, 0x346f, 0x3a8c, 0x307a, 0x36d0, 0x39be, 0x39ae, 0x34ee, 0x2ae7, 0x3559, 0x3858, 0x3705, 0x38eb, 0x39fa, 0x3565, 0x3285, 0x392a, 0x394a, 0x300a, 0x39f6, 0x2e3e, 0x33dc, 0x39c7, 0x295d, 0x3b80, 0x3888, 0x3760, 0x3bfb, 0x396f, 0x3729, 0x386d, 0x39bb, 0x2d93, 0x387a, 0x3b12, 0x3b2e, 0x3bdc, 0x33ec, 0x383d, 0x38d0, 0x3373, 0x3bb0, 0x3987, 0x3b2b, 0x3097, 0x3884, 0x3b20, 0x39bf, 0x3360, 0x2b53, 0x370a, 0x2f02, 0x38ab, 0x24ee, 0x3947, 0x3927, 0x29d7, 0x3b8d, 0x3b8b, -0x3a58, 0x292b, 0x3604, 0x398f, 0x321b, 0x341f, 0x3909, 0x3901, 0x3b49, 0x32ee, 0x3940, 0x3b77, 0x31f0, 0x344e, 0x380c, 0x36b1, 0x3a4e, 0x3638, 0x3922, 0x3864, 0x393b, 0x3903, 0x302f, 0x2ff2, 0x30b7, 0x3997, 0x385b, 0x3bbf, 0x3b39, 0x38de, 0x3a69, 0x3b51, 0x3aed, 0x387b, 0x269d, 0x39c7, 0x3a99, 0x3beb, 0x3672, 0x33ee, 0x200e, 0x3834, 0x34f7, 0x3971, 0x355a, 0x31fd, 0x2531, 0x385f, 0x3bf2, 0x2686, 0x364a, 0x358a, 0x2e99, 0x2f89, 0x3809, 0x3924, 0x39ee, 0x3990, 0x3987, 0x3972, 0x3813, 0x3840, 0x34dd, 0x374a, 0x3250, 0x2f4c, 0x35d9, 0x2991, 0x3b3f, 0x362e, 0x3455, 0x2abb, 0x3a2d, 0x3b57, 0x3567, 0x2cc0, 0x2d0d, 0x3be3, 0x2f3e, 0x3a9f, 0x3253, 0x34e8, 0x3712, 0x334e, 0x3ab9, 0x3bae, 0x3a1d, 0x3a5c, 0x3b96, 0x3adf, 0x3088, 0x3a8e, 0x35f3, 0x3795, 0x35d1, 0x3bb4, -0x3862, 0x3976, 0x3b9a, 0x3291, 0x3b5c, 0x3540, 0x2d00, 0x3702, 0x3519, 0x39dd, 0x3bff, 0x3560, 0x3642, 0x392c, 0x3a6f, 0x32ff, 0x32f2, 0x3836, 0x2d5f, 0x368d, 0x383b, 0x3abb, 0x2ec9, 0x3ada, 0x391a, 0x3811, 0x35d9, 0x3b90, 0x3aa3, 0x3149, 0x3b10, 0x3912, 0x3391, 0x318b, 0x22ed, 0x3a32, 0x3819, 0x39c9, 0x3865, 0x332e, 0x399b, 0x3aaa, 0x3b3e, 0x37b6, 0x35db, 0x3286, 0x3765, 0x2afe, 0x3b7a, 0x32b2, 0x38c9, 0x37d0, 0x3a6d, 0x3a3a, 0x3a9c, 0x364d, 0x3915, 0x36d5, 0x24fb, 0x35ed, 0x3abd, 0x3200, 0x3ae4, 0x3a0f, 0x3ac2, 0x33be, 0x3812, 0x3bae, 0x3969, 0x3237, 0x3bb0, 0x3681, 0x35c9, 0x37da, 0x2f15, 0x3362, 0x3b5c, 0x3a74, 0x315a, 0x3b44, 0x2f83, 0x3971, 0x3bfd, 0x3ab3, 0x35ae, 0x3a5a, 0x303d, 0x2a1d, 0x3a0c, 0x3bbe, 0x3365, 0x33df, 0x3521, 0x3bce, 0x3880, 0x3842, -0x3a15, 0x3835, 0x2ac7, 0x3640, 0x3864, 0x309d, 0x3934, 0x364d, 0x30f9, 0x3954, 0x34c0, 0x39a2, 0x36c1, 0x3a64, 0x2f3d, 0x338e, 0x3993, 0x34c0, 0x2c7e, 0x30a8, 0x3696, 0x2d67, 0x2017, 0x3757, 0x2ebc, 0x2c37, 0x3422, 0x36a8, 0x3a49, 0x364d, 0x3b0a, 0x3adc, 0x34f1, 0x3a15, 0x389b, 0x389b, 0x3557, 0x3542, 0x3a12, 0x38b4, 0x3a49, 0x38fd, 0x3a25, 0x3516, 0x3bc9, 0x3811, 0x1b72, 0x391e, 0x2ecb, 0x3a69, 0x3818, 0x342b, 0x3b44, 0x3912, 0x2ae6, 0x3bb1, 0x355e, 0x3182, 0x3793, 0x385b, 0x2983, 0x394d, 0x3021, 0x307c, 0x3419, 0x364f, 0x395f, 0x3395, 0x365d, 0x3a90, 0x3b4d, 0x3660, 0x35ad, 0x3b87, 0x3b40, 0x3919, 0x3800, 0x385c, 0x187b, 0x3b1e, 0x38c8, 0x38bf, 0x3844, 0x390b, 0x3672, 0x37df, 0x3a46, 0x3013, 0x30fd, 0x3a86, 0x36aa, 0x3a60, 0x39a7, 0x39b7, 0x37d2, 0x33e7, -0x2cde, 0x3a8d, 0x33d3, 0x2c74, 0x34c5, 0x2b02, 0x3ab0, 0x375d, 0x3a8f, 0x39c7, 0x340c, 0x3bc7, 0x39ae, 0x2ea6, 0x3b0b, 0x394b, 0x3823, 0x3504, 0x383a, 0x38f6, 0x382d, 0x3bda, 0x3a1b, 0x38c9, 0x35e2, 0x39f1, 0x38b9, 0x3281, 0x3bb3, 0x3156, 0x2c35, 0x3b28, 0x2cfe, 0x392a, 0x3908, 0x3a72, 0x2d0e, 0x3b20, 0x369d, 0x3bae, 0x2f9f, 0x3aac, 0x331f, 0x3ab7, 0x3999, 0x3980, 0x3b17, 0x39d3, 0x3609, 0x231d, 0x386c, 0x39b7, 0x2a32, 0x37b0, 0x350d, 0x2554, 0x33ee, 0x2c9a, 0x319a, 0x37d6, 0x347e, 0x3a54, 0x3903, 0x3aaa, 0x31fc, 0x33c9, 0x3988, 0x3ac7, 0x31b5, 0x354c, 0x3ba7, 0x342e, 0x3898, 0x3907, 0x3bc4, 0x36b6, 0x36fc, 0x3896, 0x3832, 0x33d8, 0x3af7, 0x38df, 0x3b8b, 0x2dc9, 0x29a0, 0x3b24, 0x34e6, 0x2d49, 0x34c2, 0x388e, 0x36cb, 0x2eff, 0x34fb, 0x3b91, 0x3be3, 0x39ed, -0x38fb, 0x3675, 0x36d9, 0x385b, 0x36ce, 0x3755, 0x354b, 0x3014, 0x3670, 0x3be2, 0x3af2, 0x3b6e, 0x345f, 0x2f8d, 0x3a55, 0x3919, 0x3ad3, 0x3388, 0x368a, 0x3bbf, 0x2b8e, 0x28fd, 0x2e73, 0x3baa, 0x3326, 0x3625, 0x351e, 0x35eb, 0x305c, 0x3bc5, 0x345b, 0x3473, 0x3555, 0x28bb, 0x357a, 0x39c2, 0x3871, 0x3232, 0x2c3a, 0x3983, 0x340a, 0x3af8, 0x3932, 0x3354, 0x3a39, 0x36b8, 0x367a, 0x29ce, 0x3bf0, 0x290d, 0x339f, 0x3afb, 0x340d, 0x3128, 0x38ac, 0x2b34, 0x346f, 0x3356, 0x3bb9, 0x2967, 0x355a, 0x37cd, 0x34f4, 0x3a66, 0x36b6, 0x2968, 0x3bf7, 0x3a0d, 0x361c, 0x3898, 0x3859, 0x39fe, 0x3bdb, 0x38aa, 0x3b92, 0x2fcc, 0x38b1, 0x3713, 0x3be1, 0x3826, 0x3b00, 0x32c3, 0x30a1, 0x38d7, 0x3bf3, 0x3b42, 0x38af, 0x304b, 0x3279, 0x37c5, 0x2072, 0x346c, 0x3857, 0x3597, 0x3624, 0x39d7, -0x3042, 0x392a, 0x3120, 0x20d7, 0x3b8c, 0x3a8f, 0x383a, 0x3a52, 0x3bbd, 0x31ad, 0x3781, 0x3359, 0x36cb, 0x33f1, 0x385b, 0x3225, 0x38d5, 0x3019, 0x3a17, 0x34d3, 0x3a34, 0x39ba, 0x3a17, 0x31e8, 0x3b53, 0x3b9c, 0x3b54, 0x33b6, 0x3488, 0x367a, 0x3a2c, 0x3ac7, 0x3b0a, 0x399a, 0x3891, 0x3a51, 0x3a4a, 0x380b, 0x391c, 0x3805, 0x381d, 0x3b2a, 0x2a0d, 0x3acc, 0x3b55, 0x3958, 0x3a2b, 0x35cd, 0x340e, 0x36e1, 0x3a09, 0x2569, 0x2c5f, 0x376c, 0x3431, 0x3ad3, 0x31fc, 0x331e, 0x396b, 0x2ebd, 0x380f, 0x3bce, 0x3a74, 0x32de, 0x30ec, 0x3300, 0x3aba, 0x34c3, 0x3abd, 0x30c6, 0x39af, 0x3a3d, 0x3ad9, 0x3097, 0x2af9, 0x38a6, 0x3071, 0x25c5, 0x34ea, 0x2ff3, 0x355e, 0x3b66, 0x1edc, 0x3a1f, 0x32c7, 0x381c, 0x3837, 0x3bc1, 0x3033, 0x3bcb, 0x3a53, 0x3ab7, 0x38be, 0x2a81, 0x36ad, 0x301f, -0x3931, 0x3ba1, 0x34ac, 0x383d, 0x3636, 0x35b9, 0x38f2, 0x2c53, 0x32a9, 0x3b31, 0x3181, 0x383c, 0x395b, 0x30ef, 0x3aa7, 0x30ce, 0x32ff, 0x328b, 0x3329, 0x2c12, 0x394e, 0x2c60, 0x35de, 0x3938, 0x2c18, 0x37be, 0x392e, 0x3438, 0x3650, 0x34c7, 0x392c, 0x39aa, 0x2e72, 0x3ab6, 0x2bc9, 0x3bfa, 0x36f2, 0x2830, 0x2ad4, 0x3b3f, 0x3ae7, 0x34c7, 0x3064, 0x35ef, 0x3956, 0x39e9, 0x31eb, 0x2ff8, 0x36f3, 0x38de, 0x34b8, 0x3aa8, 0x1c30, 0x3b4f, 0x38d9, 0x3bba, 0x39b7, 0x3b4c, 0x2ee9, 0x3837, 0x3835, 0x36c6, 0x3928, 0x2e72, 0x37d2, 0x3642, 0x31cb, 0x35d6, 0x3408, 0x3404, 0x39d4, 0x3877, 0x38a5, 0x31ae, 0x2c75, 0x341a, 0x3af5, 0x3abc, 0x330b, 0x387d, 0x3b46, 0x369f, 0x2bf0, 0x3bdc, 0x36fc, 0x362a, 0x374f, 0x3bc3, 0x3ac5, 0x38c1, 0x3965, 0x380f, 0x3675, 0x3bba, 0x3a38, 0x39ca +uint16_t w_inp_2D [32][32] = { +0x311a, 0x39e0, 0x387d, 0x3a4a, 0x386f, 0x3ada, 0x392f, 0x3854, 0x3014, 0x2fd2, 0x31c9, 0x2fca, 0x2e55, 0x3bc8, 0x396d, 0x3b1d, 0x39f6, 0x333a, 0x3908, 0x3628, 0x3bab, 0x3b8b, 0x3b4a, 0x322d, 0x3925, 0x317a, 0x3725, 0x31c2, 0x3066, 0x38f3, 0x3a17, 0x3476, +0x3bda, 0x3196, 0x3922, 0x3680, 0x396a, 0x3021, 0x3761, 0x374d, 0x2fc2, 0x3967, 0x3b94, 0x33b5, 0x3797, 0x34d6, 0x3655, 0x2176, 0x39bc, 0x3999, 0x3658, 0x3904, 0x3759, 0x2ade, 0x3a5a, 0x3b78, 0x36c7, 0x2d01, 0x3b58, 0x2d9a, 0x373d, 0x3952, 0x38e8, 0x3887, +0x37b6, 0x3a88, 0x2f8a, 0x2d79, 0x3413, 0x3421, 0x3976, 0x32b2, 0x3446, 0x2d99, 0x3a56, 0x3322, 0x3b49, 0x39fa, 0x3acd, 0x3af6, 0x304c, 0x3abb, 0x3a83, 0x38b2, 0x3ab9, 0x363e, 0x389f, 0x31bb, 0x38e1, 0x3bc4, 0x3b9b, 0x2984, 0x3a43, 0x3b2f, 0x35d6, 0x3bda, +0x2df3, 0x3bf8, 0x2acc, 0x378b, 0x3555, 0x2e59, 0x31d4, 0x34ec, 0x3a46, 0x3bab, 0x3214, 0x3161, 0x3470, 0x3a03, 0x368e, 0x31ad, 0x27cb, 0x2ecb, 0x3422, 0x39f7, 0x3644, 0x3a77, 0x313f, 0x34f2, 0x39b3, 0x3bf2, 0x379a, 0x3456, 0x35fe, 0x3ae7, 0x3964, 0x385f, +0x3b16, 0x3999, 0x3833, 0x2eda, 0x3afd, 0x3a4a, 0x3ba2, 0x2bd4, 0x3b38, 0x31a2, 0x32dd, 0x353c, 0x366f, 0x375e, 0x3821, 0x367a, 0x3b44, 0x39e6, 0x3787, 0x339e, 0x39d7, 0x38c6, 0x37d5, 0x342f, 0x3984, 0x319b, 0x33b5, 0x35ab, 0x398a, 0x374e, 0x36b6, 0x3b21, +0x3bbb, 0x2ab3, 0x2ad5, 0x33bc, 0x2bef, 0x3780, 0x3738, 0x3a0b, 0x3b09, 0x30ca, 0x384e, 0x3ab3, 0x39bd, 0x3453, 0x3a6d, 0x3957, 0x2c10, 0x30e9, 0x35d4, 0x3aef, 0x3be9, 0x39ad, 0x3a74, 0x3af9, 0x3739, 0x2d4d, 0x39fe, 0x3b72, 0x2c57, 0x398c, 0x381f, 0x3930, +0x3820, 0x321b, 0x3964, 0x2964, 0x33a0, 0x2d00, 0x2490, 0x336b, 0x3465, 0x3b2e, 0x3aa0, 0x371f, 0x300e, 0x3a09, 0x3bf1, 0x25cc, 0x3b6f, 0x3384, 0x3a88, 0x3acb, 0x3814, 0x36d0, 0x3081, 0x3a2c, 0x3353, 0x39cb, 0x31ed, 0x3af6, 0x3721, 0x36c7, 0x2ce2, 0x390d, +0x3698, 0x3ab2, 0x3b3e, 0x2eb4, 0x3998, 0x39e3, 0x3a77, 0x3632, 0x2c12, 0x3bd5, 0x3ba3, 0x3bba, 0x323c, 0x367b, 0x3557, 0x39c8, 0x37db, 0x3b45, 0x3b6e, 0x3931, 0x3121, 0x3a8d, 0x3a55, 0x3b9b, 0x358a, 0x3925, 0x3491, 0x3912, 0x3b6b, 0x3584, 0x32df, 0x3120, +0x32b2, 0x3b0a, 0x2cad, 0x3465, 0x3ad3, 0x3bcd, 0x363b, 0x3afe, 0x354b, 0x3374, 0x39af, 0x3b7f, 0x308c, 0x2e72, 0x3380, 0x3b70, 0x3902, 0x38d8, 0x39f3, 0x3a4b, 0x3853, 0x397b, 0x2ebe, 0x387f, 0x2845, 0x37e2, 0x360f, 0x370b, 0x3acb, 0x35d4, 0x36e6, 0x3262, +0x2e88, 0x3a54, 0x2ee3, 0x3575, 0x3afe, 0x2aee, 0x39a0, 0x3aae, 0x3693, 0x3432, 0x3834, 0x3b9b, 0x3bcb, 0x2e3a, 0x356d, 0x374e, 0x3924, 0x383c, 0x311e, 0x3ac5, 0x352d, 0x311e, 0x38ca, 0x34d4, 0x36ca, 0x34ed, 0x3a13, 0x33eb, 0x3639, 0x3828, 0x3b3c, 0x3939, +0x3837, 0x3521, 0x2cb5, 0x3629, 0x3924, 0x384c, 0x366a, 0x3bbf, 0x2e9e, 0x3ba8, 0x33ad, 0x38c8, 0x3934, 0x3907, 0x249a, 0x3690, 0x3a09, 0x3215, 0x3898, 0x325d, 0x37d5, 0x3195, 0x361c, 0x3ae4, 0x351f, 0x3452, 0x3bc0, 0x375c, 0x39bf, 0x317a, 0x3aae, 0x283a, +0x3476, 0x3b92, 0x3472, 0x383e, 0x280f, 0x39d6, 0x2fd1, 0x31f4, 0x2ffb, 0x3b97, 0x3692, 0x36c0, 0x3989, 0x33cf, 0x3ba6, 0x3239, 0x35d7, 0x33ab, 0x31eb, 0x3b47, 0x389b, 0x3b88, 0x3580, 0x354c, 0x3802, 0x3b9a, 0x3b94, 0x2a92, 0x2db1, 0x38bd, 0x2dfb, 0x3900, +0x344f, 0x3739, 0x27a5, 0x3b2e, 0x342b, 0x34bb, 0x30c8, 0x3ae8, 0x3b26, 0x3982, 0x38c0, 0x3408, 0x38c8, 0x36ef, 0x3bf0, 0x3acf, 0x3a3c, 0x3825, 0x31a5, 0x3ada, 0x3b5b, 0x37db, 0x3a01, 0x3663, 0x3a7d, 0x327b, 0x3a1f, 0x3862, 0x38af, 0x3204, 0x372e, 0x3b19, +0x3708, 0x3622, 0x2e62, 0x39ab, 0x2d4d, 0x31b4, 0x3552, 0x3bbc, 0x36f2, 0x36eb, 0x38ef, 0x3755, 0x3bbe, 0x2c17, 0x3815, 0x2f53, 0x363f, 0x38c1, 0x3246, 0x386b, 0x34de, 0x34e4, 0x3baa, 0x349e, 0x32ce, 0x3a68, 0x373f, 0x2cce, 0x3b36, 0x28ba, 0x3b50, 0x3232, +0x1f34, 0x3928, 0x35cd, 0x3b38, 0x30ce, 0x35a1, 0x3a06, 0x3a32, 0x3a53, 0x3489, 0x3241, 0x372f, 0x390c, 0x3a1b, 0x378a, 0x3713, 0x3769, 0x37a8, 0x3418, 0x3ad4, 0x3a4e, 0x3bf7, 0x37a5, 0x34dc, 0x39b2, 0x351b, 0x3372, 0x349f, 0x2f50, 0x3ab1, 0x3795, 0x2db7, +0x3864, 0x3157, 0x3900, 0x323e, 0x389e, 0x3880, 0x3b1f, 0x37a1, 0x396c, 0x2e43, 0x2c2a, 0x3b78, 0x3988, 0x3a14, 0x39c1, 0x3b51, 0x3780, 0x3bf2, 0x2d19, 0x3815, 0x3a5f, 0x3641, 0x2f62, 0x37d5, 0x3564, 0x139a, 0x3ab8, 0x28f7, 0x3785, 0x34e1, 0x3097, 0x3768, +0x3971, 0x3ae2, 0x32ae, 0x2fd5, 0x382a, 0x346c, 0x3133, 0x3167, 0x3940, 0x2d12, 0x389a, 0x3bd0, 0x3943, 0x391c, 0x3a75, 0x2a11, 0x391e, 0x372d, 0x3a79, 0x3b72, 0x3373, 0x39b7, 0x35d7, 0x372b, 0x3a6d, 0x38a1, 0x3279, 0x3434, 0x3694, 0x3b45, 0x3abb, 0x392d, +0x34a8, 0x3757, 0x32ca, 0x345d, 0x36a5, 0x3854, 0x2dcd, 0x30af, 0x38dd, 0x3067, 0x3411, 0x3997, 0x397a, 0x3a64, 0x38b8, 0x3962, 0x3509, 0x3bb6, 0x3a66, 0x339f, 0x372a, 0x31a8, 0x37da, 0x36ff, 0x33c6, 0x31da, 0x3977, 0x3b72, 0x3841, 0x3567, 0x3433, 0x33b8, +0x39fe, 0x3a10, 0x3bf2, 0x35e7, 0x3a4a, 0x3b3e, 0x2ec7, 0x3aa4, 0x3846, 0x3af9, 0x38a9, 0x2c1f, 0x39ab, 0x349f, 0x31d6, 0x39ae, 0x3b79, 0x352d, 0x3516, 0x347c, 0x2f33, 0x35ad, 0x31c4, 0x3b52, 0x354b, 0x3786, 0x3ab7, 0x3896, 0x34ac, 0x352f, 0x37e6, 0x326a, +0x2e44, 0x34c7, 0x388d, 0x3bf4, 0x363f, 0x3b3d, 0x33b1, 0x3b8b, 0x3340, 0x37f7, 0x3b07, 0x25bf, 0x398e, 0x3505, 0x3bd7, 0x366d, 0x388a, 0x2cc0, 0x359a, 0x3b9a, 0x3b99, 0x379d, 0x3b6b, 0x39b8, 0x3223, 0x2703, 0x3ba9, 0x2ecb, 0x3759, 0x39d8, 0x37ac, 0x32cf, +0x35f2, 0x38a3, 0x399e, 0x3bd2, 0x3780, 0x3af3, 0x3b5e, 0x337b, 0x3a08, 0x35da, 0x3446, 0x3b25, 0x3ad0, 0x3bee, 0x3141, 0x32d8, 0x34ce, 0x2ac9, 0x3800, 0x3a8a, 0x2d53, 0x368a, 0x3561, 0x3998, 0x35a3, 0x3677, 0x3ab2, 0x3269, 0x3236, 0x3b3e, 0x3aba, 0x3bac, +0x395d, 0x3820, 0x1df6, 0x3bb5, 0x35b5, 0x3675, 0x3b74, 0x360f, 0x34de, 0x3a0c, 0x3aeb, 0x299d, 0x3207, 0x3bd8, 0x2178, 0x3995, 0x3948, 0x3908, 0x3843, 0x2ea5, 0x3045, 0x3989, 0x345d, 0x39c5, 0x3a89, 0x3863, 0x3be0, 0x397a, 0x38f1, 0x39e2, 0x3b08, 0x352e, +0x385f, 0x28f2, 0x3bc3, 0x35e0, 0x380c, 0x3b9c, 0x3afc, 0x390a, 0x3689, 0x34fd, 0x2cf5, 0x308e, 0x342b, 0x3921, 0x3a67, 0x3ad6, 0x2986, 0x32fc, 0x35aa, 0x3507, 0x3608, 0x33fd, 0x3bf3, 0x39e2, 0x3b0f, 0x30b7, 0x3896, 0x3ae4, 0x2145, 0x35b6, 0x2e1d, 0x3ad1, +0x333d, 0x3afb, 0x2703, 0x3413, 0x1d7d, 0x3b7f, 0x3ae1, 0x303c, 0x3004, 0x39d3, 0x3554, 0x31a4, 0x354e, 0x3662, 0x39c5, 0x2eb7, 0x2c6e, 0x397f, 0x31d8, 0x1f0c, 0x38e3, 0x35f0, 0x2714, 0x28d1, 0x375e, 0x3a75, 0x3830, 0x3578, 0x397d, 0x3b18, 0x383c, 0x3498, +0x39ad, 0x3598, 0x23c4, 0x34ea, 0x3a61, 0x2b00, 0x3707, 0x3ae1, 0x37ae, 0x389d, 0x37fa, 0x3673, 0x3278, 0xf3e, 0x3809, 0x33c6, 0x3bf5, 0x3279, 0x3816, 0x360c, 0x39c8, 0x381f, 0x3741, 0x2d66, 0x38c0, 0x37d3, 0x377a, 0x3621, 0x2faf, 0x392e, 0x2de6, 0x33c5, +0x3803, 0x2600, 0x32e9, 0x39b4, 0x38d2, 0x34e8, 0x2fe6, 0x3199, 0x3643, 0x3a77, 0x27cc, 0x39d7, 0x34c6, 0x2ea8, 0x364e, 0x3b07, 0x31c7, 0x30a1, 0x31b1, 0x3b8f, 0x3571, 0x3b75, 0x3989, 0x3805, 0x39fb, 0x3945, 0x352b, 0x31d8, 0x3904, 0x3440, 0x3a57, 0x2cf7, +0x3b39, 0x2fcd, 0x2b89, 0x2edd, 0x3682, 0x36a9, 0x32c8, 0x37ac, 0x32a5, 0x3311, 0x394b, 0x3b84, 0x3aec, 0x3601, 0x2765, 0x3b69, 0x396b, 0x3727, 0x3bfe, 0x3907, 0x376f, 0x3674, 0x3973, 0x3671, 0x3491, 0x3993, 0x383f, 0x3335, 0x3989, 0x3550, 0x3077, 0x35f5, +0x3a59, 0x3950, 0x380c, 0x37cd, 0x30bf, 0x3607, 0x3afa, 0x3b5d, 0x32b9, 0x386b, 0x35bd, 0x3aca, 0x3ba5, 0x3b2d, 0x3b19, 0x3b8b, 0x345e, 0x2845, 0x34aa, 0x372a, 0x3448, 0x34f5, 0x3ae2, 0x3637, 0x2cb5, 0x354b, 0x3b15, 0x2ca8, 0x2641, 0x3178, 0x2cfe, 0x39b4, +0x3bdd, 0x3acb, 0x3a05, 0x38a2, 0x3b4a, 0x34e5, 0x395f, 0x394b, 0x34c4, 0x3aa5, 0x29bb, 0x2d96, 0x339d, 0x387c, 0x382e, 0x385a, 0x396b, 0x3aa9, 0x2f1e, 0x33a7, 0x3b90, 0x3b7b, 0x3b5f, 0x39d3, 0x3b18, 0x354f, 0x2cdb, 0x3a6f, 0x3434, 0x34ff, 0x3a5b, 0x3b84, +0x3a33, 0x384b, 0x2e67, 0x3b85, 0x3853, 0x380c, 0x346a, 0x3aaa, 0x3492, 0x33e8, 0x3bf2, 0x38ae, 0x3a29, 0x3830, 0x3221, 0x35b1, 0x3a48, 0x2c68, 0x2ced, 0x3a7e, 0x3539, 0x3922, 0x374c, 0x3aaa, 0x2dae, 0x395d, 0x3b3d, 0x3890, 0x2cfe, 0x2dd6, 0x3bad, 0x33c5, +0x2c07, 0x3a2c, 0x37a8, 0x390f, 0x2fc8, 0x35ae, 0x388c, 0x30ee, 0x3674, 0x391d, 0x3bfc, 0x36bf, 0x322d, 0x3a78, 0x35c0, 0x3492, 0x3ac8, 0x3504, 0x3315, 0x381d, 0x3a7a, 0x3a08, 0x343c, 0x3bda, 0x341b, 0x39f0, 0x3b9e, 0x395d, 0x3c00, 0x38ab, 0x3bcf, 0x3564, +0x33c4, 0x3b0d, 0x3623, 0x33b9, 0x3b92, 0x1e71, 0x2c57, 0x36d0, 0x314b, 0x3a16, 0x3372, 0x341b, 0x3aaa, 0x3444, 0x396b, 0x2dd7, 0x3b30, 0x3559, 0x3b5b, 0x3a29, 0x2d19, 0x38b7, 0x3b01, 0x3afa, 0x398a, 0x3839, 0x3ac9, 0x2e31, 0x3924, 0x39f2, 0x3a7f, 0x3285 }; \ No newline at end of file diff --git a/hwpe/redmule/inc/w_input.h b/hwpe/redmule/inc/w_input.h index dd2e275..dc4d3be 100644 --- a/hwpe/redmule/inc/w_input.h +++ b/hwpe/redmule/inc/w_input.h @@ -1,99 +1,35 @@ /* Header file generated by RedMulE Golden Model */ -uint16_t w_inp [9216] = { -0x2d1a, 0x2f9c, 0x3596, 0x38eb, 0x3a5c, 0x3827, 0x3b07, 0x397a, 0x347f, 0x3703, 0x2e26, 0x305c, 0x3ba2, 0x39cd, 0x36fa, 0x3899, 0x38dc, 0x3a60, 0x345b, 0x2d80, 0x36ad, 0x2eb8, 0x34ca, 0x384a, 0x33ef, 0x353e, 0x370e, 0x38f6, 0x3947, 0x387c, 0x3893, 0x38fd, 0x39a9, 0x29fb, 0x39ec, 0x3232, 0x35f8, 0x320c, 0x3b5c, 0x34b6, 0x39e6, 0x2b02, 0x340d, 0x30cc, 0x3b7d, 0x3298, 0x381a, 0x3aa8, 0x3b2b, 0x3605, 0x389e, 0x3a3a, 0x2f2c, 0x3ae4, 0x2cc3, 0x2e6b, 0x3850, 0x3a94, 0x396f, 0x3683, 0x3983, 0x39ea, 0x349f, 0x3b95, 0x28a5, 0x3853, 0x349a, 0x30cc, 0x389b, 0x3595, 0x31f9, 0x3a85, 0x367d, 0x3bbe, 0x3bde, 0x3ae7, 0x3977, 0x3a5d, 0x2497, 0x32ed, 0x39c5, 0x3553, 0x3b87, 0x357c, 0x3868, 0x2fc2, 0x1ad7, 0x3079, 0x3b2f, 0x3570, 0x3a70, 0x3761, 0x29cd, 0x3640, 0x3885, 0x2c6e, -0x3a6c, 0x322b, 0x34e2, 0x1a14, 0x385b, 0x3bdd, 0x3b0f, 0x3548, 0x35d5, 0x3105, 0x39f6, 0x2ce7, 0x365f, 0x286d, 0x3673, 0x3517, 0x3847, 0x3905, 0x34f8, 0x3a5b, 0x2809, 0x38e8, 0x3910, 0x3bce, 0x3aa7, 0x3a98, 0x3a82, 0x318b, 0x39a1, 0x39c7, 0x3960, 0x3206, 0x3320, 0x3893, 0x2e29, 0x391a, 0x28ae, 0x3535, 0x3a37, 0x3821, 0x32de, 0x326d, 0x3196, 0x3b5f, 0x38f2, 0x3b44, 0x3680, 0x3309, 0x3bf2, 0x3bb2, 0x3874, 0x3531, 0x2c98, 0x3648, 0x2d18, 0x2af5, 0x25d7, 0x3a75, 0x38bc, 0x3a77, 0x39bb, 0x3a92, 0x397d, 0x3486, 0x35e3, 0x3917, 0x3805, 0x3001, 0x3619, 0x3952, 0x34c7, 0x3a87, 0x35de, 0x385e, 0x2590, 0x3bb1, 0x2b49, 0x3526, 0x35c5, 0x3963, 0x374e, 0x346a, 0x35d0, 0x3622, 0x2dd8, 0x3aa0, 0x3292, 0x30d8, 0x3883, 0x3ad4, 0x3a22, 0x360f, 0x3424, 0x348f, 0x3886, 0x38f3, -0x3945, 0x3792, 0x3629, 0x3b2b, 0x3bf5, 0x3a69, 0x3199, 0x3b84, 0x35c4, 0x3b13, 0x27a5, 0x3b8a, 0x393d, 0x3a14, 0x3a40, 0x35e7, 0x3a6a, 0x38ad, 0x3bb9, 0x24d8, 0x3b90, 0x3797, 0x3716, 0x384e, 0x3832, 0x3855, 0x39c3, 0x39de, 0x2684, 0x3627, 0x35f0, 0x3a86, 0x3995, 0x2abc, 0x347a, 0x2409, 0x2758, 0x3664, 0x3ae9, 0x1eb1, 0x386a, 0x33dd, 0x3413, 0x243b, 0x3b5b, 0x36fb, 0x38ab, 0x39cb, 0x38e8, 0x308c, 0x3be2, 0x30c8, 0x382c, 0x3bcc, 0x3b0f, 0x30e7, 0x31b4, 0x2adb, 0x2354, 0x2c7e, 0x3774, 0x3299, 0x3574, 0x3b35, 0x38a3, 0x3836, 0x3400, 0x3721, 0x3acb, 0x37da, 0x3688, 0x35d5, 0x3977, 0x3247, 0x2a12, 0x3b36, 0x371a, 0x3750, 0x2ad9, 0x242b, 0x306f, 0x3502, 0x3b35, 0x394d, 0x3646, 0x315d, 0x387d, 0x349f, 0x305a, 0x3a84, 0x3a3e, 0x3be3, 0x3bf9, 0x3580, 0x3b14, 0x3a13, -0x371c, 0x2da9, 0x3995, 0x38be, 0x323e, 0x328d, 0x383d, 0x3991, 0x3a57, 0x38ca, 0x3867, 0x3982, 0x34fd, 0x347c, 0x380f, 0x3074, 0x38d4, 0x34fa, 0x326a, 0x377c, 0x3a52, 0x3abd, 0x3536, 0x226f, 0x319c, 0x3321, 0x393e, 0x3467, 0x3b37, 0x3bc1, 0x3a17, 0x394d, 0x33a2, 0x395d, 0x33e4, 0x3b09, 0x3855, 0x354d, 0x2f53, 0x34e7, 0x375b, 0x35f1, 0x367f, 0x3674, 0x2e07, 0x3ba0, 0x314b, 0x3bce, 0x2c5f, 0x384d, 0x3443, 0x36b1, 0x3973, 0x38d8, 0x340d, 0x3a77, 0x2ec7, 0x3538, 0x2e0e, 0x2d39, 0x3a81, 0x3b54, 0x3bdc, 0x3461, 0x2d5f, 0x3a52, 0x390c, 0x2186, 0x3896, 0x39d5, 0x3868, 0x2171, 0x303e, 0x3b19, 0x3915, 0x3be0, 0x39cb, 0x34ce, 0x357f, 0x394b, 0x39d3, 0x3af8, 0x3855, 0x3430, 0x36d6, 0x38bd, 0x3ad5, 0x38f4, 0x252e, 0x3b49, 0x36b0, 0x32b2, 0x3610, 0x3baa, 0x398b, 0x3ac1, -0x3655, 0x2ad4, 0x38e1, 0x3a9a, 0x37b9, 0x3027, 0x3889, 0x3017, 0x3baf, 0x32b8, 0x3922, 0x3984, 0x3ac3, 0x3775, 0x37f5, 0x38f0, 0x3a37, 0x3a8a, 0x283a, 0x1b5c, 0x3998, 0x2c23, 0x380e, 0x3254, 0x3ad7, 0x39f2, 0x328e, 0x36da, 0x370d, 0x2f71, 0x3944, 0x2e44, 0x36d7, 0x362a, 0x370d, 0x38a7, 0x3b99, 0x3850, 0x3111, 0x329d, 0x3bbf, 0x353e, 0x3932, 0x3542, 0x2ab8, 0x3bf2, 0x312c, 0x3070, 0x3983, 0x3882, 0x3aa6, 0x39fd, 0x384b, 0x3a76, 0x3b1f, 0x312a, 0x183e, 0x362e, 0x347e, 0x38cf, 0x3186, 0x38eb, 0x1c0b, 0x2def, 0x33ec, 0x3b0f, 0x387e, 0x344f, 0x3b28, 0x367f, 0x3661, 0x382a, 0x28c2, 0x3980, 0x3709, 0x3875, 0x3922, 0x37fb, 0x36a9, 0x2f28, 0x36c2, 0x30c6, 0x3bcf, 0x3aba, 0x3965, 0x3397, 0x39ab, 0x3812, 0x344e, 0x39ff, 0x3866, 0x3895, 0x3ba0, 0x3a13, 0x3a1b, 0x35ef, -0x382a, 0x34ad, 0x39c7, 0x2ef8, 0x377e, 0x3915, 0x3beb, 0x3a4f, 0x35e7, 0x3465, 0x3668, 0x3404, 0x3233, 0x3361, 0x3b7e, 0x3702, 0x3b3b, 0x3834, 0x36e7, 0x3a65, 0x2ed7, 0x3965, 0x3914, 0x34c7, 0x3722, 0x3612, 0x397f, 0x2e03, 0x36b6, 0x2da9, 0x33d1, 0x350e, 0x38af, 0x1b8f, 0x360b, 0x3803, 0x38e4, 0x328a, 0x330b, 0x383c, 0x3501, 0x334b, 0x35bf, 0x395f, 0x394f, 0x359b, 0x3b66, 0x2eee, 0x350f, 0x3759, 0x3a91, 0x3b46, 0x3808, 0x3b0e, 0x38c7, 0x3846, 0x2e4b, 0x2edb, 0x382a, 0x348d, 0x1a8b, 0x3510, 0x39c3, 0x30f8, 0x3758, 0x2fc8, 0x3386, 0x3316, 0x393f, 0x3351, 0x3b46, 0x389f, 0x3312, 0x28a9, 0x34ff, 0x3a51, 0x3b00, 0x36a4, 0x3811, 0x281c, 0x3646, 0x3b42, 0x3453, 0x32ea, 0x2f6b, 0x3a64, 0x2cd4, 0x28d1, 0x3a0b, 0x3276, 0x3b1d, 0x368e, 0x340a, 0x3ac3, 0x3067, 0x3987, -0x25a7, 0x39f4, 0x3b54, 0x38d8, 0x3708, 0x3999, 0x313e, 0x316b, 0x39af, 0x2e81, 0x3667, 0x39e3, 0x3904, 0x391d, 0x383d, 0x3956, 0x36c0, 0x30d0, 0x346d, 0x39cf, 0x3236, 0x354f, 0x377f, 0x326a, 0x3800, 0x3022, 0x3b2f, 0x3b98, 0x3a97, 0x3bca, 0x3a1e, 0x3a5b, 0x337d, 0x385c, 0x2fff, 0x399e, 0x33e3, 0x355a, 0x3835, 0x3a1e, 0x38d5, 0x3791, 0x2f0d, 0x2ef4, 0x3581, 0x397a, 0x3a26, 0x391b, 0x3727, 0x3874, 0x3a25, 0x30ba, 0x2b99, 0x3a8b, 0x345b, 0x3bab, 0x3900, 0x3743, 0x3b73, 0x391a, 0x3bd2, 0x39ea, 0x3599, 0x383b, 0x34c0, 0x34b3, 0x3bf0, 0x396d, 0x3b6f, 0x36f9, 0x350e, 0x3b43, 0x39da, 0x3b16, 0x38af, 0x369c, 0x3530, 0x3a87, 0x3a68, 0x2220, 0x2d27, 0x3a49, 0x2df1, 0x353a, 0x3a08, 0x3bdb, 0x378e, 0x2942, 0x35f0, 0x3618, 0x3897, 0x3946, 0x3b7d, 0x3a44, 0x356f, 0x389f, -0x3bd0, 0x2946, 0x3aa2, 0x3711, 0x3462, 0x369c, 0x3a56, 0x3b59, 0x32ac, 0x3813, 0x2f28, 0x3c00, 0x3404, 0x34dc, 0x29ec, 0x3bf1, 0x393e, 0x3b63, 0x3513, 0x3822, 0x382b, 0x35f2, 0x3b2c, 0x3498, 0x2515, 0x31aa, 0x3a7f, 0x391d, 0x3a54, 0x34ef, 0x353a, 0x3a41, 0x334a, 0x3b6a, 0x376f, 0x3bb0, 0x3821, 0x38c2, 0x3b57, 0x333d, 0x2ba8, 0x368e, 0x3a2c, 0x345b, 0x3b9a, 0x3976, 0x3870, 0x34b5, 0x386c, 0x3916, 0x38cc, 0x32a3, 0x3bd8, 0x30bc, 0x30a7, 0x38bc, 0x3727, 0x38e7, 0x337a, 0x3b34, 0x39b7, 0x391f, 0x27fa, 0x3b3f, 0x3940, 0x3698, 0x3256, 0x3a9b, 0x39c3, 0x2e76, 0x3899, 0x3915, 0x36a4, 0x3606, 0x3bd9, 0x314f, 0x2822, 0x3bba, 0x381b, 0x3252, 0x38dd, 0x2cb9, 0x38f3, 0x385c, 0x348d, 0x3220, 0x31a8, 0x3128, 0x3aed, 0x3903, 0x3be2, 0x3971, 0x29f4, 0x3130, 0x3b11, 0x35d7, -0x3a04, 0x393c, 0x3573, 0x3870, 0x3568, 0x38f5, 0x38a4, 0x353f, 0x3b0f, 0x363a, 0x35de, 0x3241, 0x3b97, 0x2e15, 0x3a8a, 0x3823, 0x38e0, 0x3556, 0x3a96, 0x364f, 0x337a, 0x34e3, 0x342b, 0x3994, 0x3b5c, 0x3b57, 0x3a63, 0x2f0d, 0x3b7a, 0x3a08, 0x3102, 0x34ce, 0x3036, 0x3864, 0x3887, 0x280c, 0x3bb5, 0x38a1, 0x3b71, 0x3b0c, 0x3487, 0x3b6e, 0x3aec, 0x3af6, 0x1cd8, 0x3381, 0x2923, 0x3b78, 0x3597, 0x3528, 0x3afe, 0x39c2, 0x3258, 0x3898, 0x3b8c, 0x2c32, 0x38e1, 0x2f4a, 0x3948, 0x39bb, 0x39cb, 0x386b, 0x3778, 0x3847, 0x2fa6, 0x3b01, 0x3a0c, 0x3a67, 0x3b8e, 0x3959, 0x346b, 0x38ba, 0x34f8, 0x3606, 0x3940, 0x3562, 0x3be6, 0x390c, 0x2d8b, 0x3987, 0x2f30, 0x2d65, 0x36d1, 0x3b44, 0x3421, 0x37cb, 0x3a4a, 0x338e, 0x3693, 0x3699, 0x3521, 0x3aae, 0x3930, 0x391c, 0x3654, 0x3898, -0x36f8, 0x34cd, 0x2149, 0x326e, 0x36fa, 0x3179, 0x2e80, 0x3a76, 0x3027, 0x3847, 0x3b9b, 0x38eb, 0x35c2, 0x34d4, 0x384a, 0x3595, 0x35ab, 0x3937, 0x3668, 0x3953, 0x3697, 0x2d28, 0x3baa, 0x3a75, 0x3889, 0x3996, 0x34d8, 0x39b2, 0x3b7d, 0x37c5, 0x3b60, 0x316d, 0x324c, 0x3a17, 0x35bd, 0x3914, 0x334e, 0x3375, 0x29e3, 0x34a3, 0x3346, 0x39e3, 0x32d6, 0x2b0b, 0x3ac7, 0x3aca, 0x3813, 0x3752, 0x3022, 0x39f7, 0x3971, 0x389f, 0x39c2, 0x3205, 0x3739, 0x38b3, 0x3942, 0x39dc, 0x39db, 0x382a, 0x3abb, 0x3978, 0x3ad0, 0x3568, 0x2c42, 0x3773, 0x31c8, 0x3b9f, 0x3594, 0x3a9a, 0x37c3, 0x31c2, 0x325a, 0x3931, 0x2265, 0x39ab, 0x24b6, 0x3291, 0x3a79, 0x3b31, 0x39ef, 0x3a6b, 0x381f, 0x304d, 0x33fb, 0x39d6, 0x3849, 0x3891, 0x367a, 0x3b66, 0x380e, 0x3481, 0x3b30, 0x2a58, 0x3bf3, 0x35d3, -0x3b73, 0x3bcf, 0x3a9c, 0x3a9f, 0x2d30, 0x3abe, 0x3510, 0x3980, 0x2809, 0x3bed, 0x2477, 0x31d1, 0x37d6, 0x3553, 0x3190, 0x38fd, 0x366f, 0x3917, 0x3bf2, 0x3b54, 0x34f0, 0x2f3f, 0x3b0a, 0x379a, 0x342d, 0x2db5, 0x3105, 0x35a8, 0x39a2, 0x3b84, 0x350e, 0x2c79, 0x3a84, 0x3419, 0x3af7, 0x3508, 0x39e6, 0x3a46, 0x2f9c, 0x3759, 0x2504, 0x37b5, 0x3b2b, 0x39cc, 0x3ae4, 0x38ec, 0x3751, 0x3841, 0x3b66, 0x2811, 0x34ac, 0x380a, 0x3666, 0x38f0, 0x3447, 0x33b7, 0x3bab, 0x388e, 0x2ce5, 0x307c, 0x3588, 0x3bf6, 0x38f9, 0x3b01, 0x340a, 0x3ae9, 0x3890, 0x3995, 0x3b9a, 0x3a50, 0x3751, 0x2cf7, 0x3a1b, 0x3b4b, 0x2474, 0x2eb0, 0x21b8, 0x38cd, 0x38d8, 0x35d6, 0x36f5, 0x240e, 0x29e9, 0x3686, 0x39d1, 0x3575, 0x3b7c, 0x3886, 0x2e72, 0x38d9, 0x34ac, 0x3816, 0x3b69, 0x3b7c, 0x2f10, 0x3428, -0x2aba, 0x3a08, 0x3acf, 0x364d, 0x344d, 0x3adf, 0x3526, 0x3a64, 0x3ad3, 0x34eb, 0x3943, 0x3894, 0x383a, 0x3bab, 0x3183, 0x3928, 0x3999, 0x300a, 0x35c5, 0x37a3, 0x384d, 0x3a84, 0x3959, 0x39ef, 0x360b, 0x350e, 0x36bf, 0x2f32, 0x3410, 0x383c, 0x3952, 0x33ee, 0x3899, 0x30a8, 0x3b1e, 0x30fa, 0x3b5c, 0x359d, 0x3802, 0x390f, 0x3815, 0x140e, 0x35f6, 0x3bfa, 0x38c4, 0x364f, 0x3b7f, 0x3b9f, 0x35a6, 0x3bf3, 0x3a2d, 0x3727, 0x39ab, 0x3944, 0x3ac5, 0x36df, 0x3b27, 0x3a1f, 0x3a69, 0x3994, 0x3673, 0x3b0c, 0x2f2f, 0x3303, 0x319f, 0x3567, 0x3753, 0x3b8f, 0x30f0, 0x3b7b, 0x36dc, 0x2941, 0x2b6c, 0x3ad2, 0x39cb, 0x3884, 0x3a58, 0x3a0c, 0x337a, 0x3a6e, 0x3b94, 0x37d1, 0x38f2, 0x3bf1, 0x3843, 0x2ae6, 0x384b, 0x3bf9, 0x36cb, 0x362e, 0x309a, 0x35ef, 0x36e6, 0x3484, 0x38a4, 0x3457, -0x370e, 0x341f, 0x39c0, 0x3527, 0x393f, 0x3438, 0x2685, 0x375f, 0x3803, 0x38eb, 0x39fe, 0x39b3, 0x380f, 0x3370, 0x2766, 0x3b26, 0x35b6, 0x38ab, 0x3890, 0x26a8, 0x3879, 0x3819, 0x3ae8, 0x3aae, 0x3385, 0x2944, 0x3966, 0x35cc, 0x3641, 0x3a73, 0x3b91, 0x35d5, 0x31f8, 0x34a1, 0x2bbe, 0x3419, 0x369f, 0x3289, 0x98e, 0x2fef, 0x3ad5, 0x3029, 0x3ae0, 0x3b11, 0x3a03, 0x2e69, 0x38ae, 0x2eed, 0x3871, 0x3848, 0x2f40, 0x3946, 0x38bb, 0x3851, 0x39f5, 0x2e9a, 0x38fc, 0x33e4, 0x349f, 0x3b2e, 0x3873, 0x388c, 0x395a, 0x3519, 0x3636, 0x2df3, 0x3bd5, 0x3a94, 0x2e66, 0x38af, 0x2e50, 0x3aff, 0x3b0e, 0x36c8, 0x187b, 0x3733, 0x3a82, 0x3baf, 0x35c4, 0x2f20, 0x3a36, 0x3266, 0x38c6, 0x37e7, 0x31c5, 0x3a24, 0x3805, 0x299b, 0x3b3b, 0x3163, 0x2f34, 0x30d5, 0x38a2, 0x392a, 0x32af, 0x3be7, -0x3377, 0x2cce, 0x36d4, 0x3852, 0x39ad, 0x30e1, 0x397f, 0x380e, 0x3bd1, 0x3ae1, 0x3413, 0x3aa8, 0x3bcf, 0x3b5f, 0x393f, 0x37cf, 0x391e, 0x38a4, 0x3a1c, 0x3778, 0x35ca, 0x3b75, 0x2fe7, 0x2f20, 0x2d50, 0x3b72, 0x37b3, 0x3ba6, 0x37f5, 0x3866, 0x3b8c, 0x382c, 0x2c3e, 0x39ba, 0x3be2, 0x3602, 0x3ba5, 0x38d5, 0x37ed, 0x36d6, 0x3b11, 0x34de, 0x3831, 0x39e8, 0x377f, 0x38e4, 0x363d, 0x2b40, 0x2c1e, 0x304c, 0x3bcc, 0x347f, 0x34d7, 0x313b, 0x3a3b, 0x1f13, 0x379e, 0x331f, 0x2d1c, 0x3778, 0x3550, 0x3a5f, 0x2fea, 0x3ab4, 0x32bb, 0x386c, 0x3690, 0x3787, 0x3a95, 0x367b, 0x385a, 0x3b3b, 0x3b49, 0x387c, 0x38f5, 0x2f80, 0x37d4, 0x3b87, 0x3881, 0x3996, 0x3547, 0x38d2, 0x3ab2, 0x3a1c, 0x3483, 0x3ae7, 0x394d, 0x333c, 0x34df, 0x39e5, 0x3aaf, 0x39e6, 0x30a3, 0x3a4d, 0x3890, 0x34cc, -0x3482, 0x3420, 0x2dcc, 0x310d, 0x38c5, 0x3b6a, 0x38ca, 0x3ba1, 0x3a7c, 0x318a, 0x2d61, 0x3635, 0x39e2, 0x3837, 0x39fe, 0x3842, 0x3574, 0x3992, 0x246c, 0x3565, 0x380e, 0x3712, 0x35e8, 0x3712, 0x38ed, 0x3307, 0x398f, 0x31f3, 0x3a5c, 0x3a73, 0x33ba, 0x3841, 0x35d0, 0x36df, 0x2ce4, 0x366e, 0x38a3, 0x251a, 0x399f, 0x372c, 0x359d, 0x3913, 0x397c, 0x2e64, 0x3861, 0x2d47, 0x3a98, 0x381d, 0x3b60, 0x3b4a, 0x381d, 0x3a0d, 0x3adb, 0x3869, 0x3353, 0x3939, 0x39ad, 0x3114, 0x3b12, 0x3860, 0x39fe, 0x3ba6, 0x247b, 0x3a0e, 0x3206, 0x3b0b, 0x3b25, 0x399f, 0x39b4, 0x3b42, 0x3a81, 0x36bb, 0x3522, 0x349e, 0x3494, 0x3081, 0x3978, 0x3768, 0x2edd, 0x37b4, 0x34d1, 0x3bf8, 0x3ad6, 0x3773, 0x3034, 0x381a, 0x3a52, 0x3771, 0x2b52, 0x3b3d, 0x3b20, 0x3bf8, 0x342f, 0x34f8, 0x3b72, 0x35b4, -0x3029, 0x36c3, 0x39c0, 0x393c, 0x30da, 0x3152, 0x3917, 0x3864, 0x390b, 0x3aea, 0x2c08, 0x36c6, 0x3bcd, 0x3375, 0x35bc, 0x3a2b, 0x3684, 0x368f, 0x3974, 0x37fd, 0x3901, 0x37a4, 0x3729, 0x35a0, 0x3ab0, 0x3251, 0x2857, 0x38ef, 0x2e96, 0x38d6, 0x2cda, 0x331c, 0x39a8, 0x3a44, 0x3a7c, 0x3aa8, 0x3851, 0x3974, 0x3b93, 0x3587, 0x3baf, 0x2eac, 0x37f4, 0x38a7, 0x292d, 0x2fc0, 0x330d, 0x3404, 0x3459, 0x3999, 0x385a, 0x396c, 0x3834, 0x2534, 0x3b44, 0x2ecf, 0x34f6, 0x3632, 0x2898, 0x3511, 0x3514, 0x3bd8, 0x3284, 0x3913, 0x34c4, 0x3967, 0x3845, 0x3ab4, 0x37eb, 0x30b8, 0x3629, 0x39c1, 0x2b02, 0x37f7, 0x31d5, 0x3812, 0x2c1b, 0x2a24, 0x3499, 0x36a7, 0x39c2, 0x3952, 0x351b, 0x3ba0, 0x3706, 0x3896, 0x3600, 0x22c8, 0x3077, 0x3839, 0x36ed, 0x38d4, 0x2fd0, 0x3a29, 0x370c, 0x3bfe, -0x335b, 0x311a, 0x39b1, 0x32aa, 0x3a7e, 0x387f, 0x3846, 0x3a3b, 0x379b, 0x34c4, 0x38dc, 0x2c37, 0x394c, 0x381d, 0x3113, 0x300e, 0x3922, 0x2ddd, 0x30ee, 0x3347, 0x3881, 0x2cb5, 0x311e, 0x3023, 0x384c, 0x3a29, 0x39b9, 0x391d, 0x36ff, 0x38d7, 0x3adf, 0x3892, 0x39d7, 0x3b41, 0x3a26, 0x35cf, 0x2fa9, 0x32ff, 0x3218, 0x34af, 0x3282, 0x2ff1, 0x3823, 0x3249, 0x35c7, 0x3baf, 0x3817, 0x39c2, 0x3799, 0x38e2, 0x39f5, 0x30d1, 0x3934, 0x3696, 0x351b, 0x3586, 0x3adf, 0x3747, 0x3aa0, 0x33d7, 0x3600, 0x3a9a, 0x3b09, 0x3a96, 0x364b, 0x38d2, 0x3b1e, 0x2793, 0x3555, 0x3b85, 0x3460, 0x3747, 0x3a29, 0x21c7, 0x3b24, 0x3b7a, 0x3902, 0x2cd6, 0x379b, 0x2970, 0x3910, 0x38c2, 0x3930, 0x3674, 0x39e6, 0x3ac8, 0x38e2, 0x3841, 0x37a2, 0x3a56, 0x3424, 0x3406, 0x385c, 0x3924, 0x3923, 0x36aa, -0x33bd, 0x37ed, 0x2b2e, 0x3bdc, 0x3ae1, 0x3055, 0x3b41, 0x31d7, 0x3880, 0x3125, 0x3015, 0x282f, 0x3bc1, 0x3bd1, 0x3684, 0x2ca5, 0x344e, 0x3bb1, 0x2094, 0x349a, 0x3211, 0x31bc, 0x3bd1, 0x2d9d, 0x3b07, 0x3b33, 0x350f, 0x3459, 0x3851, 0x36b4, 0x3a84, 0x3965, 0x3a34, 0x3b3c, 0x353d, 0x2ffd, 0x33e6, 0x376b, 0x3272, 0x2e28, 0x3aea, 0x3485, 0x39f4, 0x3955, 0x277e, 0x3bfc, 0x3526, 0x384e, 0x2485, 0x38b2, 0x3101, 0x2fbd, 0x359e, 0x36ba, 0x3aa5, 0x308a, 0x38d1, 0x3434, 0x3ae9, 0x3954, 0x33e0, 0x2ff9, 0x3aa9, 0x3721, 0x2cb5, 0x28e9, 0x3524, 0x3658, 0x3a2f, 0x315c, 0x38d9, 0x396e, 0x383b, 0x3a0a, 0x32fe, 0x3479, 0x2a64, 0x3162, 0x35dd, 0x350b, 0x2c86, 0x3878, 0x346b, 0x2719, 0x204d, 0x38a4, 0x3778, 0x3863, 0x3ae3, 0x3784, 0x3174, 0x3562, 0x3a26, 0x39c4, 0x31b9, 0x3600, -0x2cf9, 0x3a34, 0x3834, 0x346f, 0x3712, 0x29e1, 0x2cfe, 0x3873, 0x3b1f, 0x3bc2, 0x3936, 0x3551, 0x3b8e, 0x3742, 0x39b1, 0x36ab, 0x390f, 0x2a6d, 0x3805, 0x32b1, 0x2e34, 0x3898, 0x3375, 0x3997, 0x3845, 0x3b9a, 0x3bac, 0x3876, 0x392c, 0x3811, 0x3aad, 0x3700, 0x2ab0, 0x340c, 0x3ba5, 0x2d7c, 0x36c7, 0x38dc, 0x3745, 0x2c5c, 0x2d0d, 0x34ee, 0x339e, 0x3565, 0x3983, 0x302c, 0x2cd8, 0x3886, 0x3994, 0x3ba6, 0x38d1, 0x315d, 0x3083, 0x3860, 0x3769, 0x3bf0, 0x33cd, 0x2b0f, 0x360c, 0x380a, 0x3442, 0x3b5b, 0x36eb, 0x3938, 0x3b69, 0x3283, 0x301b, 0x2fb0, 0x3b51, 0x3aa6, 0x2b81, 0x2cfd, 0x3aaa, 0x38fc, 0x3a73, 0x3232, 0x3614, 0x3963, 0x3b01, 0x3b9c, 0x3889, 0x372a, 0x20de, 0x3629, 0x36c0, 0x31ca, 0x3b87, 0x3543, 0x38bf, 0x3aae, 0x37d6, 0x365e, 0x35a4, 0x35da, 0x3962, 0x3741, -0x2910, 0x3478, 0x38b6, 0x355e, 0x3a0a, 0x3969, 0x36b2, 0x3bcd, 0x2633, 0x36d6, 0x395c, 0x39d9, 0x3505, 0x34cf, 0x337f, 0x3560, 0x2f11, 0x3a3d, 0x3386, 0x39ac, 0x38d3, 0x2dbe, 0x3908, 0x3599, 0x2d42, 0x38eb, 0x2d1e, 0x3bb5, 0x3550, 0x377e, 0x387f, 0x2f07, 0x3b2f, 0x37a5, 0x390a, 0x3902, 0x38e8, 0x345a, 0x38a5, 0x378b, 0x2e8d, 0x3ab3, 0x3a78, 0x34d9, 0x341a, 0x3387, 0x289a, 0x2db0, 0x384f, 0x3be6, 0x24e4, 0x3b02, 0x3af5, 0x34b2, 0x2af4, 0x3ae6, 0x337d, 0x3875, 0x34f6, 0x262d, 0x3488, 0x3a14, 0x2cb8, 0x357c, 0x3b96, 0x3208, 0x3969, 0x2bae, 0x3b77, 0x3515, 0x345d, 0x39c9, 0x354d, 0x38cf, 0x3b12, 0x3af9, 0x3a3c, 0x2f0f, 0x3a0b, 0x3075, 0x3859, 0x2045, 0x382e, 0x3901, 0x159e, 0x30fd, 0x2b73, 0x31e0, 0x3bf4, 0x3a46, 0x3afd, 0x2bbe, 0x274d, 0x39dd, 0x2bc7, 0x3450, -0x2ace, 0x3a96, 0x3bae, 0x386d, 0x3a6a, 0x2a87, 0x3913, 0x3618, 0x2cce, 0x391e, 0x3346, 0x3a02, 0x3981, 0x3afe, 0x34da, 0x3aa3, 0x3846, 0x303e, 0x377a, 0x3bc0, 0x2d77, 0x2f1a, 0x3916, 0x3b20, 0x2896, 0x3b93, 0x3a74, 0x24dd, 0x3396, 0x3b7c, 0x3a9b, 0x3b17, 0x366a, 0x1e78, 0x3b60, 0x3153, 0x3844, 0x2aa8, 0x37ab, 0x352c, 0x3455, 0x3a4d, 0x3a7a, 0x3a2f, 0x35bb, 0x358f, 0x3781, 0x2288, 0x2e69, 0x39c4, 0x3534, 0x3ba4, 0x3b8a, 0x398b, 0x3998, 0x392a, 0x3bd5, 0x3a5b, 0x31e5, 0x39af, 0x3a90, 0x3ac1, 0x374e, 0x3791, 0x3aa4, 0x3519, 0x3b0a, 0x398e, 0x3bae, 0x339e, 0x35fe, 0x3ab9, 0x2a73, 0x38b3, 0x388c, 0x3530, 0x2fe3, 0x37b5, 0x3188, 0x3b00, 0x31b2, 0x34de, 0x2f74, 0x397b, 0x3a17, 0x2df1, 0x357a, 0x3882, 0x3958, 0x39f1, 0x3ba4, 0x3864, 0x36f8, 0x33d2, 0x390f, 0x395b, -0x3a33, 0x39ea, 0x3846, 0x3502, 0x29a0, 0x38da, 0x3a62, 0x39c8, 0x3a32, 0x3987, 0x2807, 0x3895, 0x3621, 0x3981, 0x368f, 0x25b3, 0x312e, 0x3bfe, 0x38c8, 0x396d, 0x3b4b, 0x380a, 0x3b65, 0x36ca, 0x3954, 0x3ae0, 0x32f0, 0x33b6, 0x3920, 0x35fd, 0x39b3, 0x2f18, 0x3876, 0x396c, 0x39eb, 0x3b39, 0x3ab4, 0x3b9b, 0x2504, 0x3621, 0x3534, 0x2ea1, 0x33e7, 0x3af5, 0x3965, 0x33ed, 0x38d8, 0x37cc, 0x3682, 0x311b, 0x36e0, 0x2805, 0x3502, 0x38ac, 0x2dfa, 0x39d6, 0x3a41, 0x38e1, 0x3992, 0x38da, 0x3a54, 0x356b, 0x3701, 0x389d, 0x35de, 0x3b8e, 0x3b4c, 0x302b, 0x36b5, 0x2dd3, 0x397b, 0x2e07, 0x3645, 0x3267, 0x38ca, 0x1b3c, 0x3a0b, 0x3821, 0x3881, 0x3a2b, 0x3980, 0x3711, 0x2b68, 0x3a27, 0x38ca, 0x3057, 0x3a56, 0x386a, 0x3bb8, 0x38ca, 0x3152, 0x3683, 0x39c4, 0x2cf6, 0x3351, 0x3903, -0x342c, 0x30b8, 0x3704, 0x38b1, 0x3811, 0x3860, 0x3916, 0x381f, 0x3892, 0x3349, 0x1e6c, 0x30e3, 0x38c8, 0x3b7b, 0x39d3, 0x30df, 0x3bf3, 0x2f61, 0x37fa, 0x396a, 0x3bbe, 0x3872, 0x38c1, 0x3ad8, 0x3624, 0x3536, 0x35bb, 0x3b72, 0x222a, 0x31e0, 0x34d3, 0x2ee5, 0x386d, 0x3a1e, 0x28b7, 0x21e6, 0x37ef, 0x3263, 0x3ae0, 0x211e, 0x38c4, 0x3ba4, 0x380b, 0x3757, 0x34f5, 0x3a18, 0x36fa, 0x3844, 0x39fd, 0x3aa1, 0x3be2, 0x33b5, 0x3523, 0x386c, 0x20a5, 0x314f, 0x3a95, 0x3a54, 0x3bdd, 0x35de, 0x3a9f, 0x398e, 0x3a70, 0x2a6d, 0x3538, 0x31d5, 0x38b4, 0x2199, 0x2bf6, 0x3a4a, 0x3057, 0x31e5, 0x3b51, 0x31d8, 0x398b, 0x2c16, 0x3571, 0x2a31, 0x39cf, 0x3507, 0x3874, 0x3b15, 0x2e8a, 0x36f5, 0x2f3b, 0x3be1, 0x3a1b, 0x38cb, 0x3759, 0x1e24, 0x3b85, 0x3998, 0x30f7, 0x2d7d, 0x3a8a, 0x3378, -0x37a0, 0x3b60, 0x32f2, 0x34cc, 0x3ba4, 0x3b40, 0x35b1, 0x1a3c, 0x239a, 0x3ab0, 0x38cf, 0x3b26, 0x3990, 0x39d7, 0x3b7e, 0x3980, 0x2b0a, 0x3985, 0x3862, 0x3a53, 0x3409, 0x27e2, 0x38f7, 0x3a2f, 0x2dd9, 0x34f1, 0x2dda, 0x395e, 0x375b, 0x3086, 0x3053, 0x3baf, 0x365b, 0x38b6, 0x3a51, 0x34e4, 0x356d, 0x35f9, 0x3b6e, 0x38aa, 0x2d39, 0x34ac, 0x27d5, 0x38c8, 0x280c, 0x1999, 0x36da, 0x31ca, 0x3bf6, 0x31be, 0x37a2, 0x3296, 0x3902, 0x2f66, 0x2f5e, 0x3867, 0x26c6, 0x32c4, 0x3412, 0x2dd7, 0x34a6, 0x3b89, 0x354b, 0x345e, 0x33cd, 0x35ad, 0x3804, 0x3583, 0x37ea, 0x3bcb, 0x30d0, 0x38e3, 0x3100, 0x2c8f, 0x3be4, 0x35e4, 0x35cb, 0x3a5e, 0x3a50, 0x3837, 0x3540, 0x3a4f, 0x3b11, 0x32fb, 0x3949, 0x3870, 0x36e9, 0x3382, 0x3aca, 0x3b72, 0x3b03, 0x3a4d, 0x369f, 0x389c, 0x3a02, 0x27e4, -0x3954, 0x36ba, 0x25e2, 0x3847, 0x357e, 0x38da, 0x361d, 0x3b50, 0x2a0f, 0x3af9, 0x37f1, 0x3831, 0x3bc1, 0x3aaf, 0x32de, 0x3980, 0x3877, 0x3a73, 0x2944, 0x3b22, 0x30e3, 0x357e, 0x3987, 0x26ed, 0x3a5c, 0x3a5e, 0x381a, 0x3ae1, 0x3bc4, 0x3b3e, 0x3579, 0x3835, 0x3ba0, 0x37d2, 0x38b9, 0x2c78, 0x3875, 0x3808, 0x346b, 0x38c6, 0x3970, 0x342d, 0x3104, 0x2b1a, 0x3aa6, 0x3b64, 0x3a9f, 0x36f1, 0x2cac, 0x3b98, 0x3ab5, 0x3ab7, 0x3685, 0x33a5, 0x30ae, 0x3689, 0x3bd4, 0x39c1, 0x3bb8, 0x3566, 0x37bb, 0x2ee2, 0x3036, 0x3a93, 0x35d2, 0x3a4a, 0x3be5, 0x324b, 0x357c, 0x3b9a, 0x3759, 0x39f8, 0x397c, 0x3a80, 0x39d9, 0x39f4, 0x2fbd, 0x390e, 0x3865, 0x39f1, 0x3b87, 0x37c1, 0x3a3f, 0x348c, 0x368b, 0x2714, 0x2a26, 0x32a9, 0x30dc, 0x3a35, 0x371a, 0x3b96, 0x3569, 0x388b, 0x3775, 0x3604, -0x386a, 0x391b, 0x3826, 0x38fd, 0x3156, 0x3bae, 0x3755, 0x38df, 0x391c, 0x3b3b, 0x3aa5, 0x3870, 0x3b20, 0x3a0b, 0x3a85, 0x395f, 0x3a77, 0x3264, 0x2c48, 0x3a8f, 0x3815, 0x3acc, 0x3b2d, 0x3be0, 0x39ac, 0x3a41, 0x3bc0, 0x39f6, 0x3524, 0x3024, 0x2ae0, 0x3b6f, 0x366f, 0x38e7, 0x3a0c, 0x38de, 0x3a12, 0x380b, 0x38ec, 0x3222, 0x308c, 0x3871, 0x381f, 0x3be5, 0x3a0f, 0x3ac7, 0x36fe, 0x3406, 0x331f, 0x354c, 0x379d, 0x373b, 0x380f, 0x37c2, 0x3822, 0x3b8f, 0x3871, 0x3444, 0x3357, 0x3052, 0x35a3, 0x353b, 0x3a18, 0x3b60, 0x3b2e, 0x39f1, 0x1bf8, 0x3b34, 0x3a45, 0x373b, 0x311e, 0x3b4f, 0x3bb9, 0x2f13, 0x390b, 0x38eb, 0x3a53, 0x3712, 0x3ad6, 0x3b2e, 0x3a91, 0x3171, 0x361b, 0x3ad7, 0x3577, 0x37d3, 0x31f3, 0x26d3, 0x2995, 0x3060, 0x3960, 0x38d3, 0x3a9b, 0x1aa9, 0x381e, 0x349b, -0x3485, 0x3be7, 0x3a58, 0x39bb, 0x36de, 0x3456, 0x2a1e, 0x2ed2, 0x2e40, 0x3041, 0x38f1, 0x3beb, 0x3aea, 0x3049, 0x3117, 0x3bf2, 0x3707, 0x3bf3, 0x38e3, 0x3b27, 0x3a88, 0x3b5a, 0x34a6, 0x3b51, 0x39bc, 0x3841, 0x3a1d, 0x3867, 0x35e7, 0x3b46, 0x2916, 0x3a6b, 0x3956, 0x3825, 0x352f, 0x3b66, 0x3975, 0x3637, 0x3b44, 0x356e, 0x387b, 0x34eb, 0x3a4b, 0x384f, 0x3b29, 0x3ad3, 0x3a09, 0x3542, 0x3a39, 0x3551, 0x3889, 0x3429, 0x3637, 0x3bc8, 0x1aee, 0x3b20, 0x3b0a, 0x3994, 0x2fea, 0x3b4b, 0x381d, 0x3758, 0x397e, 0x3861, 0x25cc, 0x391a, 0x28d2, 0x2524, 0x3424, 0x3a6a, 0x34f3, 0x3aca, 0x3a40, 0x34e1, 0x3647, 0x3623, 0x34e9, 0x3786, 0x38a6, 0x3be1, 0x34d6, 0x350c, 0x3bf3, 0x368b, 0x39bb, 0x34e0, 0x39b0, 0x342e, 0x360d, 0x34e3, 0x3867, 0x389a, 0x38d7, 0x31f9, 0x3565, 0x2e93, -0x39a8, 0x3b31, 0x384a, 0x3370, 0x316f, 0x3815, 0x35b5, 0x3594, 0x3bbd, 0x3afe, 0x39be, 0x2276, 0x3805, 0x3b69, 0x3964, 0x33c0, 0x3a3b, 0x3231, 0x3358, 0x2b23, 0x3645, 0x3b99, 0x3735, 0x2255, 0x3595, 0x2f45, 0x381a, 0x257c, 0x3ac7, 0x38e9, 0x381b, 0x36d0, 0x3132, 0x3814, 0x3a17, 0x3ad4, 0x2abf, 0x3887, 0x3424, 0x2e96, 0x3361, 0x341a, 0x38cf, 0x3448, 0x287f, 0x3b1c, 0x3b09, 0x3983, 0x3a6e, 0x375d, 0x3458, 0x383c, 0x3196, 0x3b2f, 0x1cbe, 0x31e6, 0x29c4, 0x3745, 0x395c, 0x3aac, 0x3b2f, 0x38f1, 0x320c, 0x3a9d, 0x375f, 0x3b01, 0x32ef, 0x3531, 0x36d3, 0x3726, 0x3642, 0x2c76, 0x3916, 0x342a, 0x3548, 0x39d7, 0x39de, 0x3c00, 0x3b1e, 0x391a, 0x35e8, 0x3b2b, 0x3645, 0x3a81, 0x3876, 0x37e2, 0x36c8, 0x3b62, 0x3302, 0x1bad, 0x3961, 0x3beb, 0x39a7, 0x3611, 0x381b, 0x3266, -0x3b25, 0x384e, 0x3940, 0x2891, 0x3a32, 0x3828, 0x34f3, 0x3652, 0x3178, 0x2839, 0x3aa2, 0x2a96, 0x2df4, 0x347b, 0x28ad, 0x3699, 0x36ba, 0x32ad, 0x39e5, 0x1c06, 0x340e, 0x3968, 0x387c, 0x3bc6, 0x3839, 0x39d4, 0x2645, 0x38ae, 0x3ae3, 0x367e, 0x3090, 0x34fe, 0x3b6b, 0x2e64, 0x36bb, 0x33ef, 0x2c5a, 0x38ae, 0x36db, 0x3a6e, 0x38ac, 0x39eb, 0x387f, 0x1b0d, 0x3b7c, 0x3461, 0x34cc, 0x3b4f, 0x3045, 0x38e9, 0x35fa, 0x3625, 0x33e7, 0x35f4, 0x3939, 0x35dd, 0x2b8e, 0x3574, 0x3b6a, 0x3921, 0x38de, 0x393e, 0x29f5, 0x2e2c, 0x3a10, 0x39a3, 0x32c2, 0x38e5, 0x38c7, 0x30c3, 0x3b6e, 0x34b3, 0x36f9, 0x38bb, 0x3b24, 0x359f, 0x3308, 0x2d54, 0x3a03, 0x39ee, 0x3a7b, 0x3076, 0x2ab0, 0x3b94, 0x32a7, 0x39b8, 0x3b78, 0x28ce, 0x375d, 0x3209, 0x3385, 0x38f1, 0x38ca, 0x3b51, 0x374e, 0x3593, -0x33ca, 0x33b7, 0x3663, 0x36c1, 0x3831, 0x347e, 0x39f8, 0x34bf, 0x39dc, 0x39e6, 0x2fa9, 0x32d9, 0x3a58, 0x39e5, 0x3116, 0x3026, 0x3b59, 0x3b82, 0x3a92, 0x316a, 0x38c3, 0x2770, 0x38e7, 0x380b, 0x3b2b, 0x380d, 0x32d6, 0x3602, 0x39df, 0x382c, 0x383c, 0x3b76, 0x3647, 0x38f3, 0x36b4, 0x3693, 0x251e, 0x3b19, 0x357e, 0x37d4, 0x37ab, 0x3aee, 0x349f, 0x32ec, 0x3401, 0x3bcc, 0x3145, 0x3845, 0x3b76, 0x38a9, 0x37f4, 0x343b, 0x3933, 0x38fe, 0x3af8, 0x3178, 0x392b, 0x3aed, 0x2f64, 0x3992, 0x39f8, 0x34fe, 0x3737, 0x3a24, 0x3bf9, 0x3a31, 0x3a60, 0x37b6, 0x39ad, 0x3ba5, 0x381d, 0x384d, 0x3702, 0x39d8, 0x379e, 0x38ba, 0x3a79, 0x391a, 0x34ce, 0x2d57, 0x3a7e, 0x35f0, 0x382f, 0x3937, 0x3698, 0x3acc, 0x34ca, 0x382d, 0x35f7, 0x34f7, 0x3b90, 0x374d, 0x380f, 0x2e14, 0x3ac3, 0x3583, -0x36fe, 0x38aa, 0x3abd, 0x3750, 0x2f2d, 0x3906, 0x3aed, 0x32e7, 0x3b42, 0x3823, 0x265f, 0x17f9, 0x248a, 0x38ee, 0x3a11, 0x3b21, 0x35a9, 0x2dd7, 0x35dc, 0x38ed, 0x3860, 0x3989, 0x3229, 0x333d, 0x2c78, 0x30fa, 0x2d3c, 0x3a04, 0x39c2, 0x3895, 0x3a67, 0x2f53, 0x3583, 0x39bd, 0x3a03, 0x3afd, 0x3892, 0x3889, 0x39e5, 0x3825, 0x39dd, 0x3a23, 0x3644, 0x31d1, 0x3875, 0x3a46, 0x38c1, 0x390c, 0x394d, 0x262a, 0x2823, 0x2c94, 0x3645, 0x39f9, 0x3366, 0x3710, 0x2f70, 0x348c, 0x2fa3, 0x3b0e, 0x3241, 0x3491, 0x386f, 0x38b6, 0x34e1, 0x30fc, 0x32cc, 0x37be, 0x3519, 0x334b, 0x389c, 0x34c1, 0x388b, 0x38cf, 0x3980, 0x2463, 0x3a34, 0x32ff, 0x3a3c, 0x3932, 0x3b47, 0x39ab, 0x3a9c, 0x27b6, 0x2d90, 0x35d2, 0x39d2, 0x3a5d, 0x3bf2, 0x3a5f, 0x38e1, 0x3b81, 0x3865, 0x3a31, 0x3b03, 0x3906, -0x35bf, 0x3818, 0x373b, 0x3491, 0x34a9, 0x3b40, 0x2cda, 0x381b, 0x2a00, 0x396e, 0x347a, 0x2d46, 0x2fa1, 0x3bef, 0x3acd, 0x362f, 0x2a7f, 0x3a38, 0x3346, 0x3889, 0x3061, 0x3b20, 0x3836, 0x35a4, 0x3a7d, 0x3487, 0x381a, 0x381f, 0x3977, 0x3862, 0x312a, 0x315e, 0x3841, 0x3453, 0x21f5, 0x363d, 0x2ddb, 0x35bb, 0x3bb4, 0x3b36, 0x382a, 0x36d8, 0x3764, 0x3b9e, 0x26b4, 0x29ce, 0x3451, 0x33ba, 0x37fb, 0x3a4f, 0x2181, 0x35cc, 0x3288, 0x2de2, 0x3a13, 0x2dd5, 0x326d, 0x3731, 0x3931, 0x3b0d, 0x34c6, 0x36bd, 0x38fe, 0x3a0a, 0x283b, 0x38c0, 0x3806, 0x39fa, 0x39a6, 0x39f8, 0x3b09, 0x36dc, 0x385c, 0x329a, 0x3a89, 0x2dbb, 0x39ee, 0x3b65, 0x3436, 0x37e3, 0x3a27, 0x3910, 0x3b43, 0x398c, 0x2efa, 0x3467, 0x39ce, 0x38ae, 0x3567, 0x3484, 0x38e0, 0x327e, 0x2c32, 0x39c1, 0x3b63, 0x35ac, -0x35c1, 0x2d9e, 0x38af, 0x32e3, 0x347f, 0x3855, 0x3527, 0x3850, 0x3b55, 0x3baa, 0x392a, 0x37d9, 0x39d3, 0x3960, 0x3ab0, 0x2ccb, 0x2da9, 0x3990, 0x3b87, 0x2c1c, 0x397d, 0x28f6, 0x397d, 0x3944, 0x30be, 0x3ba4, 0x2f6d, 0x34d4, 0x3416, 0x39e7, 0x398f, 0x3958, 0x3b7b, 0x3a1d, 0x31e6, 0x27fe, 0x3ba0, 0x33b2, 0x3080, 0x35a9, 0x3800, 0x37f6, 0x3965, 0x3594, 0x322e, 0x3b27, 0x3bdb, 0x3b7a, 0x38a6, 0x1848, 0x3b61, 0x3842, 0x3ad2, 0x390f, 0x3b17, 0x3715, 0x3798, 0x33cb, 0x33db, 0x383f, 0x394b, 0x30cb, 0x3bbb, 0x366d, 0x3b5b, 0x38ca, 0x36cb, 0x3558, 0x39f6, 0x3776, 0x388a, 0x35d1, 0x3475, 0x3509, 0x3742, 0x3b15, 0x3ad4, 0x3182, 0x39e7, 0x3b5a, 0x35dd, 0x3751, 0x32b8, 0x349f, 0x3996, 0x3a4c, 0x35e9, 0x266e, 0x37f2, 0x3be3, 0x2525, 0x26af, 0x3282, 0x3810, 0x2cf1, 0x383a, -0x3aa3, 0x399c, 0x3630, 0x38c8, 0x3203, 0x19a2, 0x35e2, 0x38fe, 0x38a2, 0x3b63, 0x3318, 0x231d, 0x3999, 0x3ae9, 0x3132, 0x21b2, 0x2a77, 0x394e, 0x2cf4, 0x3890, 0x38a6, 0x30ff, 0x3be2, 0x3231, 0x3b72, 0x3487, 0x3496, 0x351c, 0x38d6, 0x3944, 0x3949, 0x3b7b, 0x362f, 0x37cd, 0x38f6, 0x3a10, 0x3a93, 0x31be, 0x3b8e, 0x360a, 0x3567, 0x3803, 0x3b16, 0x3b59, 0x3a4e, 0x3770, 0x2d73, 0x3312, 0x382f, 0x30fa, 0x3921, 0x339d, 0x2222, 0x3049, 0x3b4e, 0x3b67, 0x3b07, 0x3b31, 0x34e8, 0x3684, 0x3a09, 0x389b, 0x3999, 0x39d1, 0x3765, 0x37bc, 0x3732, 0x3b35, 0x3819, 0x36ef, 0x38fc, 0x3665, 0x3b96, 0x3015, 0x3847, 0x35e6, 0x3167, 0x34ba, 0x3794, 0x3a6a, 0x35d8, 0x30f4, 0x34c7, 0x3bce, 0x3903, 0x3bf3, 0x3a72, 0x3828, 0x381a, 0x3981, 0x3925, 0x39a1, 0x35f4, 0x35dd, 0x3954, 0x2bc5, -0x3884, 0x2d8e, 0x2a49, 0x383f, 0x15af, 0x3a4c, 0x3af6, 0x3ad8, 0x3847, 0x3b07, 0x3a15, 0x3bdd, 0x3a8c, 0x2caf, 0x364a, 0x3825, 0x2b2c, 0x3a97, 0x33b8, 0x3ac4, 0x347e, 0x36f7, 0x36ed, 0x3131, 0x2bea, 0x3841, 0x3880, 0x39e4, 0x30c3, 0x3b62, 0x32ba, 0x34f0, 0x34c7, 0x396a, 0x3722, 0x384d, 0x3165, 0x3a71, 0x34bf, 0x3018, 0x372c, 0x3876, 0x347f, 0x3be2, 0x117d, 0x3a2c, 0x3917, 0x3895, 0x3a3b, 0x2f92, 0x3b65, 0x3af3, 0x39b3, 0x290c, 0x301b, 0x3a9e, 0x39ef, 0x38d0, 0x34e8, 0x336a, 0x37e8, 0x3685, 0x376e, 0x3b8b, 0x3b4c, 0x35a7, 0x3919, 0x3504, 0x3b59, 0x3a85, 0x2edc, 0x3b32, 0x36bc, 0x21fa, 0x357b, 0x38a6, 0x380d, 0x3969, 0x348c, 0x39cd, 0x2d9a, 0x3818, 0x380e, 0x39f4, 0x35ce, 0x3823, 0x3a29, 0x2c1a, 0x3846, 0x3811, 0x2f33, 0x38a1, 0x382b, 0x355a, 0x3961, 0x3a97, -0x352f, 0x3bec, 0x3a27, 0x3888, 0x39d2, 0x38d8, 0x314c, 0x38c8, 0x3779, 0x2f99, 0x3a5b, 0x3971, 0x3b93, 0x368c, 0x3904, 0x35f5, 0x277f, 0x34f9, 0x3368, 0x3824, 0x3a74, 0x3843, 0x3284, 0x35aa, 0x35b4, 0x372a, 0x35ca, 0x3b2b, 0x3877, 0x37cb, 0x3110, 0x33ad, 0x3ba3, 0x3bba, 0x34e4, 0x36ab, 0x3984, 0x2aac, 0x39ec, 0x38ae, 0x3931, 0x3410, 0x333e, 0x2c45, 0x3482, 0x3868, 0x392c, 0x384e, 0x3678, 0x38ee, 0x395b, 0x38f8, 0x3194, 0x33e2, 0x2af5, 0x397c, 0x32ca, 0x32c3, 0x3913, 0x3309, 0x3bb1, 0x3253, 0x3640, 0x2cc8, 0x3385, 0x28d0, 0x385e, 0x39fd, 0x38cc, 0x3bf6, 0x332e, 0x3be1, 0x3835, 0x3b3e, 0x38cc, 0x38ff, 0x365f, 0x3a09, 0x3a32, 0x3b84, 0x3596, 0x37f3, 0x3431, 0x3af6, 0x3bec, 0x38cd, 0x35ab, 0x3af5, 0x3359, 0x3762, 0x3844, 0x374c, 0x3980, 0x3886, 0x2e62, 0x35cc, -0x3b76, 0x3b5f, 0x2434, 0x35fc, 0x38d5, 0x3095, 0x3944, 0x380e, 0x349f, 0x39d7, 0x3755, 0x3768, 0x3b3a, 0x34ce, 0x3bef, 0x365a, 0x3987, 0x3897, 0x3509, 0x3984, 0x32f8, 0x3b7b, 0x37b9, 0x3a4b, 0x2c86, 0x369a, 0x396d, 0x2d21, 0x3477, 0x39af, 0x3b60, 0x3680, 0x39d7, 0x31d8, 0x3b8a, 0x3aed, 0x3a65, 0x3710, 0x39d3, 0x3bf1, 0x331f, 0x20c0, 0x34f2, 0x34cc, 0x3934, 0x38c5, 0x396b, 0x3894, 0x38fa, 0x33c9, 0x3408, 0x3340, 0x360e, 0x36e6, 0x3942, 0x2f3c, 0x3be4, 0x38f4, 0x35a1, 0x2cf7, 0x3931, 0x3911, 0x39e7, 0x2dcc, 0x3951, 0x334c, 0x3b00, 0x39ad, 0x2370, 0x35ea, 0x3402, 0x37d6, 0x377d, 0x3652, 0x3b56, 0x2cc4, 0x3b1f, 0x35af, 0x3920, 0x3423, 0x398a, 0x35e2, 0x39f1, 0x3ab5, 0x3ae2, 0x345c, 0x31ef, 0x38ef, 0x3bb1, 0x3937, 0x2ae8, 0x3221, 0x3ae9, 0x390d, 0x3b2f, 0x3048, -0x3047, 0x3767, 0x37f7, 0x3bfa, 0x3b33, 0x3a2d, 0x362c, 0x3a93, 0x3b66, 0x391a, 0x31c7, 0x3282, 0x39b9, 0x3454, 0x37b7, 0x3019, 0x3a9a, 0x37b5, 0x2dcd, 0x3618, 0x34db, 0x3471, 0x3b35, 0x3684, 0x385c, 0x38bf, 0x3bd7, 0x3a44, 0x3130, 0x38c8, 0x30cf, 0x37bb, 0x3bcc, 0x3669, 0x3b27, 0x3949, 0x355f, 0x314a, 0x383d, 0x3a20, 0x381c, 0x3bcf, 0x3282, 0x39f3, 0x3a49, 0x3ad9, 0x34aa, 0x3add, 0x3938, 0x3bbe, 0x3650, 0x37f2, 0x2c79, 0x39c4, 0x3304, 0x3a8c, 0x3162, 0x3520, 0x3637, 0x39e3, 0x2478, 0x3803, 0x34dd, 0x3104, 0x37ee, 0x3861, 0x38e8, 0x356c, 0x3be0, 0x3633, 0x395a, 0x3afb, 0x378b, 0x3b8d, 0x2f97, 0x37df, 0x31dd, 0x3475, 0x34f7, 0x36ef, 0x3966, 0x2c50, 0x38a1, 0x2720, 0x39f3, 0x3805, 0x3310, 0x3656, 0x3571, 0x3bd9, 0x3bc0, 0x391c, 0x38d6, 0x2562, 0x1fc8, 0x3524, -0x362a, 0x3a8c, 0x3830, 0x39c7, 0x38ca, 0x3af3, 0x3602, 0x3700, 0x3773, 0x3a78, 0x38f3, 0x22be, 0x3822, 0x2eac, 0x3748, 0x32ee, 0x2a0e, 0x38ed, 0x3830, 0x3401, 0x3971, 0x3a35, 0x3984, 0x3a86, 0x3501, 0x2fe8, 0x3ba3, 0x3587, 0x3895, 0x3858, 0x2d46, 0x3724, 0x3b84, 0x39b6, 0x3a17, 0x3b1f, 0x38a9, 0x33de, 0x3723, 0x367d, 0x3bc4, 0x3817, 0x3b1e, 0x35f1, 0x3abb, 0x373d, 0x2abe, 0x3206, 0x3872, 0x3946, 0x3898, 0x33b2, 0x25fb, 0x36ae, 0x256a, 0x390e, 0x3b3b, 0x34d8, 0x36ba, 0x389b, 0x377a, 0x3b0e, 0x32a6, 0x26f9, 0x39e1, 0x327e, 0x2d58, 0x3bd3, 0x3a7f, 0x38b9, 0x3811, 0x29b7, 0x2816, 0x38f9, 0x3b64, 0x39b6, 0x3a29, 0x30a4, 0x3989, 0x3b73, 0x307a, 0x37c7, 0x372d, 0x3830, 0x390e, 0x315b, 0x335d, 0x3929, 0x3917, 0x374c, 0x34af, 0x3531, 0x34e9, 0x3bcf, 0x3761, 0x3b62, -0x34e5, 0x39e3, 0x3b35, 0x2a57, 0x3688, 0x2f0c, 0x3b87, 0x3bdd, 0x358d, 0x381a, 0x39ae, 0x2f79, 0x394f, 0x3708, 0x3560, 0x3ada, 0x3480, 0x3af5, 0x3bd8, 0x39d1, 0x3795, 0x2a29, 0x3b0a, 0x3515, 0x3858, 0x3ab4, 0x3968, 0x3660, 0x37b2, 0x3601, 0x36ae, 0x3229, 0x3383, 0x2c30, 0x3a41, 0x3b0d, 0x33ef, 0x3b6b, 0x366f, 0x3b33, 0x3a82, 0x3841, 0x3a89, 0x3bea, 0x3542, 0x328a, 0x3bc9, 0x34f2, 0x3ac0, 0x3067, 0x3311, 0x38f4, 0x23d0, 0x3964, 0x38b1, 0x390c, 0x3a9f, 0x28bb, 0x3ac1, 0x39e6, 0x31dd, 0x2f55, 0x3a19, 0x3a51, 0x3a38, 0x2841, 0x381a, 0x3938, 0x36ea, 0x3be0, 0x3b35, 0x39c1, 0x2fef, 0x37ec, 0x389f, 0x3b72, 0x37b9, 0x3bf7, 0x325d, 0x38e9, 0x333d, 0x39ce, 0x2e79, 0x3682, 0x37c1, 0x38b9, 0x3990, 0x37fd, 0x3302, 0x32a6, 0x2a69, 0x3831, 0x2b59, 0x3b48, 0x35b4, 0x2aed, -0x37e2, 0x340a, 0x3279, 0x3723, 0x397d, 0x3839, 0x39ec, 0x3025, 0x3803, 0x3b54, 0x3a70, 0x3b7d, 0x2f2a, 0x315c, 0x35ed, 0x3ace, 0x3845, 0x3bee, 0x3870, 0x3492, 0x380e, 0x3431, 0x3a47, 0x3a33, 0x38ae, 0x3a40, 0x3908, 0x33c5, 0x38db, 0x3b24, 0x3847, 0x32a3, 0x3959, 0x3a36, 0x35c4, 0x3960, 0x396f, 0x3786, 0x38ef, 0x36e7, 0x35c3, 0x3a28, 0x3893, 0x3b2c, 0x2e03, 0x374d, 0x3489, 0x3bf4, 0x38fb, 0x35b2, 0x38c1, 0x3a0f, 0x394f, 0x35e0, 0x34bd, 0x3bcc, 0x3be1, 0x315f, 0x2a41, 0x308d, 0x2e5d, 0x3a02, 0x2e99, 0x3b1a, 0x3b6c, 0x3ba1, 0x38da, 0x395a, 0x3877, 0x39ec, 0x3855, 0x2fd6, 0x2857, 0x2e1d, 0x3677, 0x3034, 0x3136, 0x3880, 0x327c, 0x38a3, 0x243e, 0x3921, 0x3b69, 0x3bca, 0x376e, 0x3998, 0x3b02, 0x3a2b, 0x35c0, 0x3985, 0x3b14, 0x38d5, 0x347b, 0x3adc, 0x3639, 0x3b9f, -0x3b50, 0x3334, 0x38b6, 0x3ae5, 0x3b39, 0x35fa, 0x2752, 0x3ba6, 0x3439, 0x389a, 0x2888, 0x39be, 0x3710, 0x3922, 0x3bbf, 0x3726, 0x2d91, 0x22ef, 0x398f, 0x3465, 0x3ba8, 0x3ad4, 0x39a0, 0x3a55, 0x3a2f, 0x387d, 0x3788, 0x3a19, 0x3926, 0x38a0, 0x383c, 0x3adc, 0x3b84, 0x3518, 0x322f, 0x3773, 0x3a74, 0x31b7, 0x3901, 0x3361, 0x3959, 0x2d8e, 0x3575, 0x2faf, 0x2ccf, 0x39ad, 0x339b, 0x3bcc, 0x3be6, 0x267e, 0x3582, 0x3973, 0x3b23, 0x3513, 0x3946, 0x38c8, 0x3b09, 0x383a, 0x34a6, 0x3aaa, 0x36f8, 0x34af, 0x368d, 0x3beb, 0x361f, 0x357f, 0x3b7f, 0x3ada, 0x37bb, 0x3986, 0x358c, 0x3ac2, 0x3448, 0x3ace, 0x2896, 0x377a, 0x3a2d, 0x3992, 0x381a, 0x389d, 0x3a18, 0x3bec, 0x37ac, 0x384d, 0x3107, 0x3323, 0x36d0, 0x371d, 0x3a21, 0x3b07, 0x2ef3, 0x342a, 0x39e6, 0x3037, 0x39a5, 0x3510, -0x3b81, 0x2559, 0x3914, 0x3883, 0x3534, 0x33e2, 0x29d9, 0x3b82, 0x3bf7, 0x390c, 0x31e3, 0x3af0, 0x2a26, 0x3803, 0x34ec, 0x356f, 0x3aed, 0x3af7, 0x34fc, 0x39f9, 0x3ad2, 0x39f6, 0x3abf, 0x397d, 0x2d55, 0x27f6, 0x3b03, 0x3335, 0x3872, 0x34df, 0x3801, 0x39c9, 0x326f, 0x3a15, 0x3810, 0x22c5, 0x359e, 0x366c, 0x3493, 0x39b2, 0x38c5, 0x3a6d, 0x39b9, 0x33dc, 0x34d7, 0x3b0b, 0x378d, 0x39ed, 0x3566, 0x396a, 0x368e, 0x3a4f, 0x3571, 0x3831, 0x3290, 0x3232, 0x39f4, 0x3915, 0x377d, 0x3af9, 0x3460, 0x31da, 0x23e6, 0x315c, 0x2b67, 0x366b, 0x2ccf, 0x38f8, 0x39c0, 0x37cc, 0x322b, 0x3979, 0x2529, 0x34b5, 0x3759, 0x360c, 0x3180, 0x3962, 0x30d2, 0x394f, 0x3ac5, 0x3b52, 0x371b, 0x3588, 0x3437, 0x34e5, 0x3a58, 0x3bb8, 0x3bd6, 0x3858, 0x3915, 0x3bcc, 0x3835, 0x30c9, 0x259f, 0x3051, -0x399d, 0x3044, 0x382b, 0x3449, 0x3b82, 0x3a4a, 0x38b5, 0x383f, 0x1c23, 0x3b6f, 0x3941, 0x35ff, 0x395e, 0x26c0, 0x3474, 0x39b9, 0x39da, 0x2aca, 0x380a, 0x39c3, 0x393e, 0x39e9, 0x3b77, 0x3a64, 0x345b, 0x3712, 0x38e4, 0x3a97, 0x3451, 0x3a3d, 0x379f, 0x3a01, 0x3642, 0x3b7e, 0x30b6, 0x35d6, 0x39b6, 0x2cb3, 0x383a, 0x3566, 0x3a76, 0x3418, 0x31ac, 0x3ae2, 0x350d, 0x3af6, 0x382c, 0x37b8, 0x339c, 0x3969, 0x379b, 0x36b8, 0x3444, 0x382a, 0x2fab, 0x3727, 0x3b3c, 0x2e19, 0x3643, 0x30d4, 0x284c, 0x388b, 0x3a47, 0x35cc, 0x3945, 0x3470, 0x3ae6, 0x39e5, 0x36fd, 0x38ed, 0x344b, 0x3b7c, 0x39d0, 0x3833, 0x3a38, 0x34f4, 0x3046, 0x3757, 0x371d, 0x25a8, 0x386d, 0x2f66, 0x38a2, 0x2e32, 0x39e3, 0x1969, 0x313d, 0x35f5, 0x3804, 0x28f5, 0x2e8a, 0x342c, 0x3bdc, 0x3ad3, 0x3259, 0x3622, -0x325e, 0x3912, 0x398b, 0x3b70, 0x39cd, 0x3931, 0x2f75, 0x3542, 0x357a, 0x315f, 0x3ac4, 0x374f, 0x32dd, 0x386c, 0x35f1, 0x39b7, 0x38b7, 0x3b2f, 0x3a7b, 0x3b5c, 0x3bef, 0x37f6, 0x3047, 0x386a, 0x3903, 0x3607, 0x3946, 0x3911, 0x399d, 0x3be8, 0x2d83, 0x3a3c, 0x369b, 0x204f, 0x3a4c, 0x3185, 0x38c8, 0x39c3, 0x3075, 0x3542, 0x361d, 0x250f, 0x385d, 0x3485, 0x1ac2, 0x37af, 0x3ab4, 0x2dd4, 0x3595, 0x36de, 0x3add, 0x3564, 0x3566, 0x3b8d, 0x2d55, 0x3629, 0x2c8a, 0x3280, 0x3801, 0x329a, 0x3b20, 0x3b42, 0x3bf0, 0x2f27, 0x3866, 0x2caf, 0x3b40, 0x3922, 0x351e, 0x3925, 0x3b42, 0x3968, 0x39db, 0x3b77, 0x3877, 0x384a, 0x3058, 0x3aaf, 0x3a70, 0x3b33, 0x3685, 0x3b0a, 0x3a8d, 0x2d38, 0x35bb, 0x31b2, 0x36e8, 0x3a79, 0x367e, 0x3a09, 0x3a74, 0x3b9f, 0x3367, 0x37a5, 0x38a3, 0x3949, -0x2bea, 0x2b88, 0x3965, 0x3112, 0x3b79, 0x391b, 0x38a9, 0x38dc, 0x36c4, 0x3ab1, 0x3677, 0x346e, 0x3b44, 0x34b7, 0x3301, 0x381d, 0x3a3a, 0x3254, 0x3b6b, 0x389a, 0x3a65, 0x379d, 0x3178, 0x2df2, 0x3380, 0x385d, 0x383c, 0x36ef, 0x3243, 0x3b7c, 0x38cb, 0x39f5, 0x3144, 0x3336, 0x3a1b, 0x3b54, 0x3983, 0x3b54, 0x3861, 0x34dd, 0x3996, 0x3a96, 0x34ec, 0x2e9e, 0x36db, 0x392f, 0x3164, 0x34df, 0x38fc, 0x35e5, 0x3432, 0x2a1b, 0x39d0, 0x385b, 0x2d25, 0x3405, 0x3809, 0x36f6, 0x3947, 0x3a23, 0x3ba7, 0x3a6f, 0x394f, 0x381c, 0x387e, 0x3aa3, 0x3586, 0x38ba, 0x3aed, 0x2f65, 0x3b77, 0x3921, 0x3843, 0x3652, 0x35ef, 0x39ea, 0x399a, 0x3a10, 0x3b1e, 0x39af, 0x3bac, 0x2f72, 0x3755, 0x38c7, 0x348e, 0x3aaf, 0x32cd, 0x3210, 0x3a78, 0x3462, 0x35a1, 0x327d, 0x38a4, 0x3569, 0x39fe, 0x3809, -0x39d6, 0x3985, 0x2211, 0x36f1, 0x36da, 0x34e8, 0x3bd7, 0x3aa3, 0x370b, 0x2e90, 0x3973, 0x3754, 0x3994, 0x31fe, 0x35e6, 0x3b87, 0x3967, 0x34d6, 0x3a01, 0x3935, 0x3afb, 0x3078, 0x3b9f, 0x31cf, 0x2496, 0x3ab7, 0x345e, 0x31a2, 0x3548, 0x3892, 0x38d8, 0x38e4, 0x3908, 0x340c, 0x3114, 0x37a7, 0x3a05, 0x37db, 0x39ee, 0x3b9e, 0x37e4, 0x375e, 0x27b0, 0x27ee, 0x3b89, 0x3bd6, 0x3911, 0x329d, 0x3596, 0x36b7, 0x38ea, 0x37b5, 0x353e, 0x368e, 0x3a25, 0x3989, 0x29cb, 0x36e2, 0x3b80, 0x390f, 0x3978, 0x359a, 0x3150, 0x3865, 0x3827, 0x2ebb, 0x3afc, 0x3ad8, 0x291b, 0x3b1f, 0x3036, 0x3b4b, 0x3411, 0x2450, 0x3928, 0x382f, 0x3968, 0x32af, 0x36e1, 0x34a0, 0x3076, 0x3289, 0x284d, 0x39ca, 0x3765, 0x2fc3, 0x3ad0, 0x2a90, 0x3a9e, 0x347f, 0x367c, 0x3bee, 0x3982, 0x380e, 0x3623, 0x33d5, -0x33eb, 0x315b, 0x3b82, 0x3901, 0x39d8, 0x3409, 0x394f, 0x38aa, 0x34e5, 0x3b0e, 0x30d8, 0x37db, 0x37cb, 0x32e0, 0x37de, 0x3896, 0x3b9f, 0x3919, 0x3869, 0x3762, 0x3698, 0x2dc6, 0x31ce, 0x3200, 0x36fa, 0x396f, 0x3b96, 0x3890, 0x3ac3, 0x331a, 0x3619, 0x3ac2, 0x2f37, 0x39e4, 0x39a0, 0x2130, 0x391c, 0x3a27, 0x3b7a, 0x3b49, 0x3ba8, 0x3a95, 0x2c78, 0x3a1a, 0x3591, 0x354a, 0x36c1, 0x38ba, 0x392f, 0x37a5, 0x3898, 0x3a9d, 0x3b8f, 0x389f, 0x3a6e, 0x389d, 0x36de, 0x3abe, 0x3669, 0x38f1, 0x391a, 0x3b6f, 0x2987, 0x30aa, 0x3ae7, 0x3709, 0x389a, 0x39a1, 0x34a0, 0x3a1a, 0x3bd0, 0x35d7, 0x3936, 0x3bc9, 0x327a, 0x3a1b, 0x31c8, 0x3be6, 0x3926, 0x3654, 0x317b, 0x39d2, 0x3b54, 0x39ae, 0x2d1e, 0x31a0, 0x30dd, 0x362a, 0x2c28, 0x3020, 0x3585, 0x30c7, 0x3af0, 0x3ad3, 0x3b2b, 0x382f, -0x384d, 0x3ace, 0x3a7d, 0x300d, 0x3a39, 0x3ac5, 0x2b3b, 0x2c05, 0x2dfc, 0x3bee, 0x3b46, 0x343f, 0x3a00, 0x33be, 0x2d9e, 0x3790, 0x3467, 0x3a11, 0x39e5, 0x3943, 0x34b2, 0x393c, 0x2e29, 0x34ae, 0x34dd, 0x2491, 0x3ac2, 0x3279, 0x3a46, 0x318d, 0x389a, 0x2f39, 0x1cb3, 0x37cf, 0x31c3, 0x318a, 0x3172, 0x3b66, 0x357a, 0x3896, 0x3b6b, 0x3a47, 0x3a43, 0x33bc, 0x35f4, 0x39f5, 0x39c1, 0x34fe, 0x39a2, 0x367b, 0x3b19, 0x3bef, 0x3461, 0x39a9, 0x3a35, 0x2bfa, 0x34b4, 0x38fa, 0x3203, 0x332b, 0x39ef, 0x3a2a, 0x3bc2, 0x39ef, 0x364e, 0x3a8c, 0x2fa8, 0x2612, 0x3406, 0x391a, 0x39ff, 0x3bba, 0x3971, 0x2637, 0x3664, 0x3a2b, 0x3053, 0x3bf4, 0x3b2c, 0x3b1f, 0x27e3, 0x3ba0, 0x38ee, 0x388f, 0x3a17, 0x328e, 0x3bcd, 0x306a, 0x3909, 0x38f2, 0x3a16, 0x380b, 0x2e11, 0x38b5, 0x36ba, 0x387a, -0x3a4f, 0x38f9, 0x3862, 0x3525, 0x38ae, 0x34bd, 0x3a07, 0x3881, 0x2e59, 0x3969, 0x3a7a, 0x3b75, 0x2619, 0x399d, 0x314a, 0x39fe, 0x3af1, 0x3a0c, 0x2875, 0x39c6, 0x3887, 0x3ab2, 0x36e8, 0x3497, 0x396f, 0x3567, 0x2ef7, 0x3845, 0x2cd3, 0x3b99, 0x30cc, 0x300d, 0x3a4f, 0x3453, 0x386a, 0x39d5, 0x3beb, 0x392e, 0x3766, 0x3b37, 0x3b57, 0x355c, 0x37fb, 0x3a36, 0x343a, 0x37e1, 0x1f1c, 0x218b, 0x3820, 0x345b, 0x3bd5, 0x329f, 0x3679, 0x3b0f, 0x28d4, 0x3891, 0x3b51, 0x3937, 0x3585, 0x3936, 0x3ace, 0x30fa, 0x384e, 0x3a16, 0x34bf, 0x34f4, 0x3a08, 0x3916, 0x2ed6, 0x3740, 0x382c, 0x3446, 0x3b77, 0x3af7, 0x3a42, 0x284f, 0x366c, 0x36ea, 0x3680, 0x326a, 0x3b5c, 0x3678, 0x3bee, 0x3853, 0x36cc, 0x35c2, 0x2f28, 0x34f6, 0x31d8, 0x38b6, 0x3a7b, 0x3b96, 0x3056, 0x3afc, 0x351a, 0x3570, -0x3439, 0x3a20, 0x3b65, 0x362f, 0x38f8, 0x30e5, 0x3974, 0x38cf, 0x3b7e, 0x3b2d, 0x3828, 0x382c, 0x3979, 0x349c, 0x3b6f, 0x3887, 0x3a3a, 0x3bec, 0x3aee, 0x3abd, 0x3510, 0x3a50, 0x2dcb, 0x31d9, 0x39ed, 0x3a5b, 0x39d6, 0x3a89, 0x3511, 0x3199, 0x39a3, 0x3803, 0x3a02, 0x3bdd, 0x3588, 0x35cb, 0x3a69, 0x3bab, 0x23ea, 0x3750, 0x3b92, 0x3bfc, 0x359f, 0x3bdb, 0x3a6b, 0x3b07, 0x355d, 0x3a0a, 0x39cd, 0x1e5e, 0x38c2, 0x3965, 0x34f4, 0x37d0, 0x35b2, 0x34c8, 0x3ad5, 0x34f4, 0xba8, 0x3b62, 0x380b, 0x3b8f, 0x3ae7, 0x30c0, 0x38a0, 0x3341, 0x323a, 0x32d1, 0x32a8, 0x3413, 0x38bb, 0x37cf, 0x397e, 0x3884, 0x2952, 0x2b54, 0x3b8a, 0x3bd4, 0x3522, 0x3b0f, 0x3888, 0x38e4, 0x38d1, 0x3bfa, 0x3adc, 0x3b72, 0x3bc5, 0x33de, 0x39f6, 0x390e, 0x2fd3, 0x3875, 0x261c, 0x2a54, 0x315d, 0x388a, -0x36a4, 0x38d4, 0x3405, 0x3761, 0x37ae, 0x3650, 0x3065, 0x3b0b, 0x283f, 0x3a67, 0x360c, 0x3b9c, 0x2eea, 0x2e99, 0x349f, 0x3849, 0x3b43, 0x3744, 0x3834, 0x3852, 0x36e7, 0x3835, 0x3499, 0x2ee3, 0x3aa2, 0x3823, 0x31c2, 0x380c, 0x354c, 0x37f5, 0x324c, 0x302b, 0x34bf, 0x26e6, 0x39a0, 0x3068, 0x2e1d, 0x3061, 0x3b24, 0x33a7, 0x3ada, 0x38a5, 0x37c3, 0x39a0, 0x3aa0, 0x382f, 0x21e9, 0x3a36, 0x3a8b, 0x395a, 0x343d, 0x3837, 0x361d, 0x33af, 0x3b87, 0x399b, 0x3904, 0x344a, 0x3a10, 0x3b08, 0x348c, 0x2fc7, 0x3239, 0x390b, 0x384c, 0x34c6, 0x2873, 0x357c, 0x32b6, 0x3ae5, 0x3bb4, 0x30f2, 0x39e7, 0x2b6a, 0x3969, 0x39ab, 0x3316, 0x3638, 0x3a22, 0x3505, 0x35f5, 0x3b42, 0x3372, 0x33e5, 0x322a, 0x3a8f, 0x36be, 0x3982, 0x341d, 0x3510, 0x3714, 0x3871, 0x3a56, 0x3739, 0x3457, 0x3822, -0x35ee, 0x3bb5, 0x357c, 0x3a66, 0x3bfe, 0x3469, 0x37e0, 0x39c0, 0x2c91, 0x3805, 0x31c4, 0x39e4, 0x32f9, 0x3140, 0x2ef9, 0x389c, 0x38e8, 0x3404, 0x2d4b, 0x36fd, 0x32a8, 0x397e, 0x3939, 0x2c8f, 0x327d, 0x341a, 0x35eb, 0x36bb, 0x307c, 0x3a9c, 0x3b25, 0x3b83, 0x31b7, 0x377c, 0x3450, 0x34af, 0x2d66, 0x36ab, 0x3520, 0x3648, 0x2e5e, 0x3adc, 0x3422, 0x3b9e, 0x36b4, 0x35ac, 0x3a7b, 0x36ae, 0x39c5, 0x2c2d, 0x3b8f, 0x3998, 0x3a82, 0x2cb5, 0x3a0b, 0x34aa, 0x3895, 0x3811, 0x3545, 0x35b5, 0x39c4, 0x3b43, 0x39ae, 0x355a, 0x2db8, 0x3b7f, 0x3655, 0x354d, 0x34ee, 0x30fb, 0x3a7c, 0x338b, 0x3b6c, 0x2c39, 0x38bb, 0x2de3, 0x3114, 0x38bf, 0x2e01, 0x3483, 0x2964, 0x3828, 0x2da3, 0x3a05, 0x3add, 0x3477, 0x3bf6, 0x3a7a, 0x38a8, 0x34be, 0x2d01, 0x2f9b, 0x29d1, 0x3995, 0x38a1, 0x3632, -0x3629, 0x3451, 0x31ca, 0x3b76, 0x382e, 0x3aad, 0x3a3a, 0x3aed, 0x3471, 0x3b38, 0x2a7b, 0x38f4, 0x3975, 0x383f, 0x30ba, 0x2cbb, 0x3adc, 0x31c2, 0x2ef0, 0x270a, 0x3734, 0x30a5, 0x3481, 0x3764, 0x3a6c, 0x3845, 0x2bfd, 0x3407, 0x3be1, 0x35ba, 0x3163, 0x332f, 0x38ae, 0x3361, 0x38a5, 0x3556, 0x265c, 0x38ac, 0x3869, 0x2d4e, 0x300a, 0x39bd, 0x38ef, 0x372d, 0x2d3e, 0x3a3a, 0x30a2, 0x1e66, 0x3bc7, 0x38c5, 0x3966, 0x3ace, 0x3a34, 0x2d9c, 0x3845, 0x30f3, 0x2c21, 0x3405, 0x2c4f, 0x3629, 0x3bcb, 0x315b, 0x2e94, 0x3399, 0x39a7, 0x3696, 0x377d, 0x36a0, 0x312d, 0x366f, 0x379a, 0x25a6, 0x3808, 0x2da5, 0x2bbf, 0x381d, 0x3a94, 0x3577, 0x31ba, 0x344e, 0x385f, 0x3687, 0x38a7, 0x2a84, 0x399a, 0x317a, 0x3a59, 0x3467, 0x3af3, 0x3b1d, 0x33c8, 0x35cf, 0x3af4, 0x2c27, 0x38ab, 0x2850, -0x3be1, 0x3a7a, 0x363b, 0x3aa9, 0x3af3, 0x37f1, 0x3815, 0x3a54, 0x2d86, 0x3b67, 0x3780, 0x3b73, 0x3755, 0x38a3, 0x3435, 0x2df3, 0x3bc1, 0x32c0, 0x2da1, 0x395b, 0x32a7, 0x377e, 0x3ba5, 0x3ace, 0x3971, 0x3095, 0x3a2b, 0x3780, 0x3a68, 0x3979, 0x392b, 0x38ca, 0x385a, 0x3a82, 0x385f, 0x36e3, 0x3318, 0x2aad, 0x3670, 0x3ba1, 0x3bd0, 0x3a29, 0x3116, 0x390c, 0x3756, 0x3aa6, 0x39f6, 0x31a7, 0x3be8, 0x389c, 0x3248, 0x3608, 0x357a, 0x37bd, 0x37a4, 0x3456, 0x3563, 0x31a3, 0x398a, 0x3940, 0x364b, 0x2273, 0x3847, 0x356c, 0x3574, 0x382e, 0x3b27, 0x39d7, 0x311b, 0x3825, 0x3abb, 0x3bb9, 0x3b33, 0x386f, 0x3b02, 0x3b39, 0x2453, 0x3888, 0x34e1, 0x318d, 0x36df, 0x3ba2, 0x2ba7, 0x3943, 0x3586, 0x38f6, 0x3a2a, 0x3b90, 0x3b00, 0x39f3, 0x3108, 0x3533, 0x3bb7, 0x3264, 0x3aa8, 0x3669, -0x3748, 0x3a5c, 0x3959, 0x3c00, 0x3b73, 0x30f8, 0x2e58, 0x37d5, 0x3836, 0x2e91, 0x3603, 0x38f2, 0x3647, 0x3855, 0x3a9e, 0x3851, 0x24fd, 0x3990, 0x38a2, 0x3aae, 0x314a, 0x39d4, 0x3afd, 0x3a0d, 0x3a94, 0x38d4, 0x3970, 0x35d2, 0x3899, 0x2e93, 0x388f, 0x3850, 0x367f, 0x3bbf, 0x3581, 0x3a5d, 0x261c, 0x3bb3, 0x3594, 0x3988, 0x3b5b, 0x3b6e, 0x37a7, 0x39fa, 0x3a8e, 0x3629, 0x3b1d, 0x3068, 0x38d0, 0x3859, 0x3514, 0x3865, 0x33e0, 0x39f5, 0x20bf, 0x3a8f, 0x2ff9, 0x3bc8, 0x3abf, 0x324d, 0x2b88, 0x3856, 0x38a6, 0x3bd7, 0x38d8, 0x3722, 0x39ee, 0x3947, 0x3794, 0x36a5, 0x3acd, 0x1f3f, 0x3497, 0x39d0, 0x3947, 0x38c7, 0x3a3f, 0x3661, 0x36dd, 0x2c46, 0x3bee, 0x2885, 0x3430, 0x38f7, 0x27b3, 0x3134, 0x3265, 0x2666, 0x3930, 0x3514, 0x2ec0, 0x3985, 0x37ef, 0x3a11, 0x3a70, 0x3578, -0x3a6e, 0x333d, 0x36c8, 0x33e0, 0x27ae, 0x2954, 0x36cc, 0x37db, 0x382f, 0x38cd, 0x3944, 0x3a4b, 0x3671, 0x3966, 0x33a3, 0x3882, 0x3739, 0x349b, 0x39b6, 0x3573, 0x2cbf, 0x374e, 0x2cc0, 0x3af4, 0x34ca, 0x314c, 0x3bb4, 0x3554, 0x3a8b, 0x335f, 0x2d08, 0x387b, 0x37c4, 0x34a9, 0x388d, 0x3884, 0x332e, 0x36de, 0x3590, 0x3803, 0x33dc, 0x28bf, 0x386a, 0x39e4, 0x3b9d, 0x3aff, 0x3b0b, 0x393a, 0x37fa, 0x3577, 0x3bfb, 0x3b19, 0x3422, 0x34cd, 0x39d4, 0x39dc, 0x31b9, 0x38f4, 0x3871, 0x2e80, 0x3b90, 0x3513, 0x363a, 0x39f9, 0x332f, 0x391a, 0x39f9, 0x38fd, 0x3b16, 0x382c, 0x3b91, 0x2fa4, 0x34db, 0x30f4, 0x37c5, 0x392c, 0x3b6f, 0x3835, 0x35ac, 0x379d, 0x3b39, 0x3924, 0x2f94, 0x34b0, 0x3149, 0x307c, 0x3a7e, 0x3656, 0x398a, 0x390f, 0x27f6, 0x31a6, 0x3a80, 0x3582, 0x3863, 0x3ae1, -0x3265, 0x257e, 0x360a, 0x2fc7, 0x3ba9, 0x3515, 0x3a80, 0x3056, 0x37c5, 0x2a16, 0x3915, 0x357a, 0x3556, 0x337e, 0x3af8, 0x3a9f, 0x35aa, 0x3903, 0x2ec4, 0x3751, 0x3a1b, 0x39d2, 0x3b76, 0x34ef, 0x3b5a, 0x394c, 0x3851, 0x3b4b, 0x3bb2, 0x3b80, 0x3bef, 0x3a09, 0x3af7, 0x3902, 0x3711, 0x3704, 0x374b, 0x3325, 0x39ee, 0x385c, 0x32a7, 0x281b, 0x2193, 0x3418, 0x35ac, 0x3800, 0x3a5f, 0x3bf9, 0x37f4, 0x3819, 0x3891, 0x3534, 0x366b, 0x3b04, 0x35b1, 0x3969, 0x3bc5, 0x3856, 0x2e11, 0x3784, 0x3388, 0x36eb, 0x35e3, 0x32f8, 0x2a50, 0x33ed, 0x3989, 0x34b8, 0x3be4, 0x3844, 0x34b0, 0x355e, 0x3a56, 0x3431, 0x345d, 0x389a, 0x366e, 0x3902, 0x3858, 0x38e1, 0x388c, 0x3565, 0x33c4, 0x3b68, 0x372f, 0x307c, 0x3bb9, 0x359f, 0x3a41, 0x3bcf, 0x3bb3, 0x2d88, 0x32f8, 0x354c, 0x3b9e, 0x3ae5, -0x3059, 0x3359, 0x382d, 0x3a91, 0x3bed, 0x28fb, 0x3885, 0x3a3c, 0x39e9, 0x39f7, 0x351e, 0x37e3, 0x3bad, 0x2834, 0x37d1, 0x3839, 0x3ad1, 0x39f3, 0x362f, 0x35ba, 0x3312, 0x3b21, 0x3536, 0x3bfd, 0x3518, 0x201e, 0x2022, 0x3b03, 0x3910, 0x39ce, 0x363c, 0x3b25, 0x3b4f, 0x3be8, 0x3655, 0x38dc, 0x344b, 0x3372, 0x3939, 0x372a, 0x3b86, 0x384e, 0x3b9e, 0x32c3, 0x3bd5, 0x3041, 0x3051, 0x257f, 0x3a6c, 0x3379, 0x2f52, 0x37de, 0x37ac, 0x3734, 0x3447, 0x3bbc, 0x3aaf, 0x38eb, 0x384a, 0x3ad6, 0x3a49, 0x3944, 0x2cf5, 0x38a3, 0x398b, 0x3b0e, 0x307a, 0x3504, 0x3728, 0x3500, 0x2f6e, 0x2e34, 0x3aa4, 0x39f7, 0x3831, 0x3902, 0x3509, 0x2d20, 0x3b99, 0x3860, 0x3901, 0x3420, 0x3944, 0x3926, 0x3acd, 0x3786, 0x3b09, 0x3ad7, 0x2cb6, 0x3a8e, 0x2233, 0x3892, 0x398a, 0x272e, 0x3853, 0x389c, -0x3a14, 0x3877, 0x3320, 0x34b7, 0x3a85, 0x34da, 0x38db, 0x3758, 0x3b8d, 0x3aa8, 0x3766, 0x34db, 0x3a54, 0x3806, 0x31ef, 0x33ab, 0x38bd, 0x3778, 0x3543, 0x36ec, 0x36fa, 0x2fc5, 0x3676, 0x350c, 0x390f, 0x3b8b, 0x394a, 0x38bb, 0x31d9, 0x3bf1, 0x36ce, 0x35dc, 0x38c2, 0x3910, 0x3944, 0x38f8, 0x37f6, 0x3b9b, 0x3574, 0x31ed, 0x244e, 0x28ef, 0x34fa, 0x3398, 0x3912, 0x365f, 0x3bb2, 0x38f7, 0x3af2, 0x3500, 0x3a8e, 0x3a55, 0x39be, 0x2471, 0x34b0, 0x336f, 0x380a, 0x3ae7, 0x34f5, 0x35f9, 0x3227, 0x263d, 0x3385, 0x372f, 0x2046, 0x3a80, 0x3b0a, 0x35cf, 0x38e1, 0x38b4, 0x2eb6, 0x353f, 0x314f, 0x3a4c, 0x3a52, 0x3b84, 0x39b8, 0x367d, 0x3b22, 0x310a, 0x3611, 0x37ad, 0x3496, 0x2e9c, 0x3215, 0x3b29, 0x38cf, 0x343f, 0x380a, 0x36b0, 0x3a08, 0x2c90, 0x36e4, 0x354a, 0x3b56, 0x37a1, -0x39f1, 0x340d, 0x3b34, 0x309a, 0x3074, 0x24a8, 0x261c, 0x3a16, 0x3846, 0x35dd, 0x2830, 0x3a03, 0x3729, 0x3766, 0x3461, 0x33db, 0x3b4a, 0x33eb, 0x3813, 0x34cd, 0x3875, 0x3a95, 0x31ef, 0x38b2, 0x3acc, 0x34d9, 0x3542, 0x37f4, 0x3937, 0x3858, 0x3997, 0x3538, 0x338b, 0x35ff, 0x3613, 0x3809, 0x3878, 0x3870, 0x2df0, 0x39f4, 0x3863, 0x30ce, 0x38ae, 0x384f, 0x3b24, 0x3045, 0x297f, 0x3b58, 0x3123, 0x2b6b, 0x3bc5, 0x388a, 0x3003, 0x3077, 0x34dc, 0x39cb, 0x3bcf, 0x3b16, 0x344c, 0x3aac, 0x364a, 0x399b, 0x3a68, 0x3583, 0x34c3, 0x3bc0, 0x3b1d, 0x3a15, 0x387f, 0x3756, 0x382e, 0x3a58, 0x18c3, 0x3a2e, 0x3b81, 0x34f8, 0x3802, 0x3631, 0x3920, 0x340c, 0x3b6c, 0x39a7, 0x1a4a, 0x38cc, 0x38ec, 0x3912, 0x3bd6, 0x3358, 0x3275, 0x3954, 0x3b39, 0x3674, 0x3a2e, 0x387c, 0x3a86, 0x34c2, -0x3585, 0x36c0, 0x3762, 0x380b, 0x31cf, 0x3992, 0x365a, 0x3b73, 0x35e8, 0x3925, 0x3b3b, 0x37cc, 0x3823, 0x2cd7, 0x2a80, 0x3a41, 0x37a5, 0x3479, 0x36eb, 0x29cc, 0x317d, 0x38b8, 0x32f8, 0x355e, 0x392c, 0x3b16, 0x3275, 0x306a, 0x22a8, 0x35fb, 0x32d4, 0x3a42, 0x32ba, 0x2443, 0x3898, 0x3164, 0x38ff, 0x3ba6, 0x35ae, 0x396a, 0x3a5c, 0x3922, 0x1df2, 0x3943, 0x309b, 0x3a53, 0x3439, 0x3802, 0x32bc, 0x34f6, 0x3957, 0x3a59, 0x36c9, 0x3b3c, 0x3aa0, 0x3903, 0x2b86, 0x380e, 0x2f83, 0x397a, 0x3a11, 0x3ab3, 0x38b9, 0x3a54, 0x3191, 0x2eb7, 0x3549, 0x3a39, 0x375b, 0x38d8, 0x346a, 0x3a3e, 0x35ff, 0x305b, 0x3b1d, 0x3882, 0x39da, 0x3a92, 0x2f74, 0x38f1, 0x3b8e, 0x361f, 0x38d4, 0x365b, 0x367c, 0x2658, 0x3762, 0x3905, 0x393f, 0x34c8, 0x3830, 0x39d1, 0x35e1, 0x23b7, 0x3b28, 0x39f4, -0x27a7, 0x38a0, 0x3954, 0x32c7, 0x3572, 0x25b3, 0x384f, 0x38fb, 0x3a34, 0x3b79, 0x3af6, 0x34c8, 0x3a0d, 0x3906, 0x3981, 0x3a97, 0x3b17, 0x34d5, 0x2dc4, 0x3401, 0x21b1, 0x3999, 0x3898, 0x2def, 0x3747, 0x300c, 0x3afe, 0x34d6, 0x36ac, 0x3b5f, 0x3952, 0x2a90, 0x34b4, 0x3a77, 0x3b03, 0x385e, 0x33d0, 0x37a9, 0x36a7, 0x231e, 0x3534, 0x35f6, 0x30e1, 0x3873, 0x2299, 0x387e, 0x3499, 0x30dc, 0x383a, 0x256e, 0x387f, 0x3395, 0x33c1, 0x38ac, 0x38fe, 0x383b, 0x36c3, 0x392b, 0x3812, 0x3168, 0x3b18, 0x386a, 0x3b17, 0x3981, 0x3577, 0x3874, 0x308a, 0x38d1, 0x3a7b, 0x361f, 0x38bf, 0x29c5, 0x2d56, 0x343b, 0x33bc, 0x38ab, 0x3a82, 0x2feb, 0x3885, 0x3531, 0x3588, 0x2ff6, 0x3851, 0x3a08, 0x36e7, 0x3b8c, 0x3182, 0x3a4e, 0x3849, 0x3509, 0x3909, 0x380e, 0x3692, 0x2e1e, 0x2f7f, 0x35eb, -0x3816, 0x2f7d, 0x3b42, 0x38c2, 0x3884, 0x3096, 0x39b7, 0x3868, 0x3879, 0x3606, 0x3111, 0x36d8, 0x39eb, 0x3bcf, 0x3ac4, 0x38bd, 0x3877, 0x3967, 0x398b, 0x39fe, 0x3514, 0x3139, 0x30a8, 0x3431, 0x2d75, 0x3a3a, 0x3b80, 0x3917, 0x307a, 0x2c42, 0x3143, 0x3954, 0x36ff, 0x381f, 0x37dd, 0x3b2f, 0x3972, 0x317f, 0x397b, 0x350d, 0x382e, 0x2ed6, 0x375c, 0x3462, 0x36ff, 0x364c, 0x39ba, 0x36c7, 0x3bea, 0x3211, 0x354e, 0x2d30, 0x1f03, 0x35f6, 0x3a24, 0x3576, 0x38ce, 0x38e5, 0x3bbe, 0x38a8, 0x3831, 0x39d0, 0x3772, 0x3ba5, 0x314f, 0x2572, 0x39d2, 0x2de3, 0x1d7a, 0x360b, 0x399a, 0x3863, 0x3a18, 0x3141, 0x3a7d, 0x391b, 0x3957, 0x33f7, 0x3801, 0x392a, 0x3a5a, 0x3a51, 0x3841, 0x2a4a, 0x3786, 0x355f, 0x28d9, 0x35cc, 0x2dfc, 0x302a, 0x2c60, 0x3b50, 0x3abe, 0x382f, 0x35ed, 0x3a8d, -0x3b1b, 0x3525, 0x3725, 0x2e88, 0x304b, 0x3920, 0x3962, 0x3908, 0x352b, 0x3667, 0x3880, 0x3692, 0x38bd, 0x317c, 0x30f3, 0x3beb, 0x302b, 0x326c, 0x3a36, 0x3a30, 0x39b6, 0x2a61, 0x34f1, 0x22d6, 0x39b6, 0x310f, 0x2dff, 0x38d1, 0x3700, 0x3412, 0x38de, 0x394f, 0x2de4, 0x2ed8, 0x3beb, 0x3a50, 0x3526, 0x246d, 0x361e, 0x2e4b, 0x3272, 0x3b5a, 0x3805, 0x3a98, 0x3653, 0x3abc, 0x301d, 0x399f, 0x2dae, 0x3ac4, 0x39dc, 0x3403, 0x3109, 0x2d85, 0x381e, 0x36b6, 0x348d, 0x35c6, 0x3b5f, 0x3b3a, 0x35c0, 0x36de, 0x38bc, 0x3308, 0x39a0, 0x39cf, 0x3456, 0x3a80, 0x39fc, 0x311a, 0x3bb1, 0x3a38, 0x3b9d, 0x3a27, 0x3912, 0x3377, 0x38a9, 0x34c6, 0x34ec, 0x35fa, 0x378c, 0x387e, 0x3686, 0x372c, 0x388d, 0x3ad6, 0x3bd3, 0x3b26, 0x3bd6, 0x3b91, 0x31e3, 0x381e, 0x353b, 0x3a90, 0x2cd6, 0x3047, -0x33df, 0x35c8, 0x396a, 0x321c, 0x286f, 0x2daa, 0x39aa, 0x3a83, 0x36ff, 0x3476, 0x3a33, 0x37d6, 0x2c5f, 0x3a23, 0x38cb, 0x36a9, 0x331b, 0x24ec, 0x3960, 0x2d61, 0x3a61, 0x330f, 0x3937, 0x2e70, 0x3797, 0x399d, 0x26dc, 0x320e, 0x342c, 0x3b32, 0x22bc, 0x3466, 0x3447, 0x3896, 0x31b7, 0x3b22, 0x383a, 0x3623, 0x38f8, 0x3552, 0x3a55, 0x29c5, 0x34bb, 0x3663, 0x2c7b, 0x378d, 0x250c, 0x3ac9, 0x39c4, 0x378d, 0x39d2, 0x39a9, 0x379f, 0x3473, 0x2db0, 0x3993, 0x3ad3, 0x3494, 0x39ae, 0x36d2, 0x397c, 0x39c9, 0x3adc, 0x359f, 0x2c2f, 0x3b0d, 0x3595, 0x3687, 0x39b3, 0x34e4, 0x3af6, 0x2f71, 0x39af, 0x3b28, 0x38fe, 0x381d, 0x28ef, 0x3abc, 0x3723, 0x3b6c, 0x381e, 0x3442, 0x3b90, 0x39cc, 0x39c5, 0x3654, 0x38ac, 0x1b4d, 0x391f, 0x38d2, 0x3ac7, 0x385a, 0x322c, 0x39e6, 0x289c, 0x3786, -0x3b5f, 0x37c4, 0x3906, 0x3069, 0x3478, 0x383c, 0x3a34, 0x3a85, 0x33b3, 0x3be6, 0x3a71, 0x33ac, 0x3a77, 0x3b21, 0x3b7d, 0x3957, 0x3814, 0x39b2, 0x3504, 0x387f, 0x37c6, 0x39e0, 0x39f1, 0x393b, 0x2fe0, 0x3806, 0x2d6e, 0x37a5, 0x3069, 0x3831, 0x3959, 0x3363, 0x2d3a, 0x3980, 0x35ec, 0x3a3c, 0x389c, 0x23eb, 0x3a24, 0x30fa, 0x3040, 0x38b4, 0x3b7b, 0x381f, 0x3a66, 0x246e, 0x3b37, 0x30c1, 0x38a5, 0x387e, 0x34aa, 0x362a, 0x3556, 0x2a52, 0x3445, 0x3a9b, 0x2986, 0x38d2, 0x3513, 0x3bca, 0x39fa, 0x303b, 0x31cc, 0x3414, 0x3b16, 0x3a43, 0x2e2c, 0x3a29, 0x3996, 0x3973, 0x39b3, 0x36dc, 0x2761, 0x32a1, 0x3815, 0x3708, 0x38fa, 0x38cb, 0x36d3, 0x39c8, 0x266c, 0x3b60, 0x33cf, 0x3be3, 0x3854, 0x34c0, 0x34d3, 0x39ac, 0x37ad, 0x2fcb, 0x3966, 0x31a2, 0x363f, 0x3434, 0x381e, 0x3a53, -0x3795, 0x38cd, 0x3c00, 0x393c, 0x38af, 0x3b72, 0x37c4, 0x3b4f, 0x30b0, 0x36fd, 0x377b, 0x38f2, 0x371b, 0x3ada, 0x2edd, 0x3782, 0x33a2, 0x3a25, 0x38ae, 0x3be0, 0x3a31, 0x32b2, 0x3323, 0x3b1f, 0x39fc, 0x3986, 0x3b38, 0x3881, 0x3a9d, 0x3936, 0x3946, 0x3159, 0x3504, 0x3792, 0x3547, 0x28ff, 0x3449, 0x3214, 0x313f, 0x3866, 0x3a59, 0x3b06, 0x2e51, 0x2759, 0x342e, 0x3726, 0x3473, 0x37ea, 0x3b1d, 0x3be8, 0x346d, 0x3b73, 0x38c3, 0x296c, 0x33b2, 0x34a7, 0x3af5, 0x3284, 0x359c, 0x384d, 0x2ff7, 0x3337, 0x339b, 0x30e4, 0x3001, 0x3b02, 0x2ddf, 0x3997, 0x320c, 0x3af9, 0x2c92, 0x37e8, 0x3b5d, 0x3132, 0x3860, 0x396b, 0x39fd, 0x38f3, 0x3968, 0x32e8, 0x3523, 0x395b, 0x2e01, 0x37b9, 0x3b53, 0x3b37, 0x398e, 0x389b, 0x3586, 0x37d6, 0x3976, 0x3785, 0x3b0c, 0x3975, 0x39e2, 0x3bb5, -0x3675, 0x343a, 0x38d9, 0x392e, 0x3b61, 0x35db, 0x3527, 0x3a75, 0x3a1e, 0x36bd, 0x3af7, 0x2dae, 0x3b77, 0x2fe7, 0x3a80, 0x3745, 0x3a6e, 0x3748, 0x37ad, 0x3492, 0x3a82, 0x35db, 0x2e6a, 0x34bf, 0x3984, 0x3aff, 0x3a9a, 0x2720, 0x3786, 0x3475, 0x3842, 0x36ce, 0x387f, 0x3875, 0x292c, 0x35b8, 0x3ac0, 0x39f1, 0x3537, 0x3920, 0x3a93, 0x2a40, 0x2c60, 0x39b0, 0x3559, 0x3989, 0x3670, 0x33ef, 0x36e4, 0x3ac3, 0x3802, 0x35b3, 0x36e9, 0x34b6, 0x3911, 0x35f1, 0x3591, 0x3a96, 0x39df, 0x3892, 0x3582, 0x3a67, 0x39cf, 0x3bf8, 0x3587, 0x2adb, 0x36f3, 0x3a9f, 0x34c5, 0x31ab, 0x3481, 0x26aa, 0x3929, 0x3749, 0x3764, 0x3743, 0x39db, 0x2850, 0x363d, 0x386f, 0x349c, 0x3ae1, 0x3834, 0x3480, 0x305d, 0x3bca, 0x3418, 0x3580, 0x3897, 0x3831, 0x3898, 0x39aa, 0x372b, 0x3b98, 0x3b92, 0x3adc, -0x355f, 0x3915, 0x21ad, 0x3a2a, 0x3803, 0x3af4, 0x34e4, 0x37b0, 0x399e, 0x33d8, 0x3904, 0x1c2b, 0x3831, 0x3b39, 0x3a0e, 0x37dd, 0x3bfb, 0x3a0f, 0x3623, 0x3beb, 0x39d0, 0x335e, 0x38e5, 0x3810, 0x37df, 0x2c84, 0x30bc, 0x3013, 0x342f, 0x285f, 0x3855, 0x3b81, 0x3a35, 0x33e5, 0x3a11, 0x3bab, 0x32df, 0x303d, 0x3973, 0x340f, 0x3aba, 0x34d9, 0x3924, 0x3b84, 0x3a67, 0x3980, 0x3612, 0x3b64, 0x39e3, 0x3ac3, 0x3350, 0x3865, 0x24d5, 0x3bac, 0x3594, 0x38d7, 0x3b53, 0x3b76, 0x39ee, 0x36de, 0x3a1c, 0x38ce, 0x25cc, 0x3847, 0x3b28, 0x34c5, 0x3a7e, 0x3afb, 0x3361, 0x2266, 0x37d1, 0x3886, 0x306b, 0x3b12, 0x3a8b, 0x2aad, 0x3855, 0x35b0, 0x35c4, 0x3b4e, 0x36fa, 0x396a, 0x26f4, 0x381a, 0x2f06, 0x2c3e, 0x3116, 0x3adf, 0x358b, 0x2f88, 0x3adf, 0x3842, 0x3a1a, 0x3b35, 0x291a, 0x2e9d, -0x32d1, 0x3946, 0x3a50, 0x398e, 0x2970, 0x3122, 0x286c, 0x3b80, 0x3bbe, 0x38ad, 0x3b51, 0x385a, 0x38c4, 0x3af0, 0x352a, 0x38e9, 0x3a80, 0x28e3, 0x395e, 0x34aa, 0x3973, 0x3492, 0x398c, 0x327b, 0x39d4, 0x3995, 0x3740, 0x2742, 0x388f, 0x3a24, 0x3a2f, 0x38d3, 0x384e, 0x3abd, 0x3bb8, 0x3814, 0x394b, 0x3aa0, 0x3af2, 0x37ad, 0x32aa, 0x3aa3, 0x3aa6, 0x3ac5, 0x2fbf, 0x3759, 0x3848, 0x32c6, 0x3459, 0x38af, 0x3980, 0x24db, 0x3ac5, 0x377c, 0x1d75, 0x36e9, 0x389b, 0x314e, 0x344f, 0x30ff, 0x3921, 0x3b72, 0x3884, 0x3836, 0x3af2, 0x35b8, 0x3116, 0x38ce, 0x3ae6, 0x3b16, 0x3bca, 0x373b, 0x3a8e, 0x3872, 0x2d2a, 0x344d, 0x3b2e, 0x3608, 0x320e, 0x2aa7, 0x361a, 0x2dc4, 0x3b4f, 0x2d4d, 0x34b3, 0x34c0, 0x393b, 0x3a76, 0x372f, 0x3637, 0x2b5c, 0x3a38, 0x367b, 0x2b1e, 0x344e, 0x385e, -0x3ab6, 0x38a2, 0x3674, 0x2d4d, 0x3bad, 0x3b44, 0x35ed, 0x38a7, 0x325e, 0x3b29, 0x3b65, 0x2f0f, 0x3a30, 0x3b4c, 0x3843, 0x3a21, 0x2e34, 0x3180, 0x3ae0, 0x3a02, 0x3a82, 0x2ad9, 0x3826, 0x3a94, 0x2f66, 0x217b, 0x3b82, 0x3839, 0x3263, 0x3a1b, 0x2958, 0x3b26, 0x3a3e, 0x3039, 0x3bd7, 0x2057, 0x3b99, 0x38ac, 0x372d, 0x344e, 0x31fa, 0x3bf8, 0x394e, 0x3acb, 0x3b88, 0x38cf, 0x3582, 0x3a2b, 0x370e, 0x34b5, 0x36d2, 0x3ae3, 0x38b9, 0x37a5, 0x3979, 0x3204, 0x3ba2, 0x3591, 0x3a00, 0x3944, 0x1b7f, 0x271e, 0x38a2, 0x38ad, 0x3ade, 0x3008, 0x34c9, 0x3269, 0x31da, 0x3bad, 0x3587, 0x3bea, 0x3512, 0x2deb, 0x3825, 0x3488, 0x30aa, 0x3baf, 0x378f, 0x39d9, 0x3ac4, 0x3427, 0x371e, 0x3b2d, 0x3138, 0x3654, 0x3815, 0x3b7c, 0x38cf, 0x382e, 0x1cdb, 0x2fa4, 0x3783, 0x383c, 0x37d1, 0x2df8, -0x335b, 0x3071, 0x367f, 0x3be1, 0x3a1b, 0x3afd, 0x390b, 0x3b17, 0x3861, 0x3adb, 0x3a04, 0x3859, 0x3a95, 0x37b6, 0x37ff, 0x3400, 0x34e3, 0x367d, 0x3ad0, 0x3506, 0x3b50, 0x33e6, 0x3a42, 0x3b3c, 0x382a, 0x3bf8, 0x3be8, 0x3917, 0x39ec, 0x265b, 0x3b11, 0x3b2a, 0x3aef, 0x35f9, 0x3a2b, 0x371d, 0x32f8, 0x338b, 0x3bc2, 0x399e, 0x3aa8, 0x34b1, 0x182c, 0x3691, 0x39c5, 0x359a, 0x3b2b, 0x38f9, 0x3953, 0x362a, 0x3a8e, 0x363d, 0x3b96, 0x380a, 0x37fc, 0x3694, 0x2fa9, 0x35d1, 0x3699, 0x2e36, 0x3922, 0x38b6, 0x2d05, 0x3161, 0x353e, 0x371f, 0x3913, 0x39b6, 0x35d6, 0x3b29, 0x395c, 0x3677, 0x3ac8, 0x35e1, 0x3b02, 0x3479, 0x321a, 0x2a17, 0x2890, 0x388a, 0x3109, 0x3a45, 0x301c, 0x349a, 0x31a2, 0x3b19, 0x2eb4, 0x2eff, 0x353c, 0x39f5, 0x396c, 0x3ae4, 0x3873, 0x3bf6, 0x3887, 0x3507, -0x34d1, 0x35d3, 0x3ad2, 0x3759, 0x2918, 0x36eb, 0x39bd, 0x3b25, 0x31b8, 0x35eb, 0x2999, 0x3b69, 0x3829, 0x3385, 0x3bf4, 0x3a9b, 0x3aa7, 0x319a, 0x3824, 0x38e6, 0x38aa, 0x375d, 0x3188, 0x34eb, 0x37bc, 0x3375, 0x367b, 0x33df, 0x34f6, 0x38b3, 0x38e3, 0x3010, 0x3a05, 0x2e64, 0x336a, 0x3466, 0x3962, 0x3640, 0x2a17, 0x31c5, 0x3815, 0x3472, 0x3b2c, 0x3b79, 0x32d7, 0x3656, 0x2a54, 0x3409, 0x3887, 0x34e6, 0x30ea, 0x2851, 0x39cc, 0x3153, 0x38af, 0x3868, 0x3ad3, 0x3853, 0x38a7, 0x3583, 0x31e3, 0x3284, 0x2909, 0x3ae9, 0x3abe, 0x310b, 0x3564, 0x33cb, 0x3999, 0x37bc, 0x352c, 0x32f7, 0x3522, 0x36de, 0x340c, 0x37f7, 0x3839, 0x39f8, 0x2b3b, 0x3ada, 0x3258, 0x3764, 0x395c, 0x374b, 0x3bbc, 0x35fd, 0x306c, 0x3645, 0x3b20, 0x3a18, 0x2c2b, 0x39e2, 0x3a43, 0x3934, 0x34b5, 0x390a, -0x3bc0, 0x358b, 0x3817, 0x3b77, 0x36de, 0x3868, 0x3b93, 0x2d8d, 0x3607, 0x37f9, 0x39b4, 0x3bc5, 0x3997, 0x33e1, 0x328b, 0x226a, 0x3aab, 0x390e, 0x34ee, 0x34ae, 0x3645, 0x3a4d, 0x31db, 0x3576, 0x38ed, 0x39d5, 0x2974, 0x3982, 0x34ca, 0x3839, 0x3b7a, 0x2e37, 0x2045, 0x3a1b, 0x3bf9, 0x2f9a, 0x2aba, 0x3944, 0x3a82, 0x24d0, 0x38fa, 0x2c8f, 0x3a4c, 0x391f, 0x39d2, 0x3154, 0x3a64, 0x3902, 0x398d, 0x3921, 0x3800, 0x3443, 0x2fb9, 0x3aa5, 0x3973, 0x2a30, 0x367d, 0x3850, 0x3a1e, 0x3b86, 0x34eb, 0x383c, 0x37b1, 0x2db1, 0x30d7, 0x347a, 0x2b61, 0x3441, 0x288b, 0x3bea, 0x2a52, 0x29de, 0x3a65, 0x37c2, 0x3370, 0x39e2, 0x3850, 0x3691, 0x2f33, 0x39cb, 0x3bbd, 0x35fe, 0x3696, 0x3bbe, 0x3451, 0x384e, 0x2f01, 0x380e, 0x3810, 0x35e9, 0x2c3b, 0x34bd, 0x3905, 0x3505, 0x36e9, 0x3b23, -0x38d5, 0x38b3, 0x2e40, 0x39da, 0x3459, 0x39b9, 0x385c, 0x3a5a, 0x37d8, 0x37bb, 0x3549, 0x3ba9, 0x3a79, 0x3b72, 0x2c21, 0x3576, 0x3bd3, 0x3ae5, 0x3b63, 0x3979, 0x319a, 0x3bb2, 0x39e7, 0x328c, 0x3af2, 0x34d2, 0x32c2, 0x38d1, 0x3831, 0x3a23, 0x3a51, 0x3646, 0x38be, 0x2f1b, 0x36a5, 0x3891, 0x38f0, 0x3a6a, 0x3249, 0x2f87, 0x36d8, 0x3a85, 0x2870, 0x369e, 0x3a6a, 0x34d5, 0x3419, 0x3b3e, 0x38d2, 0x3a7f, 0x3938, 0x38e4, 0x3332, 0x39db, 0x3933, 0x3a2a, 0x38cc, 0x3bae, 0x3b1a, 0x3837, 0x3ba2, 0x3582, 0x3639, 0x392a, 0x30d0, 0x3966, 0x3b0f, 0x35a7, 0x3962, 0x3b6d, 0x3503, 0x38e2, 0x370e, 0x3341, 0x3694, 0x3a68, 0x3879, 0x3661, 0x377f, 0x38fc, 0x38d5, 0x3238, 0x3a69, 0x32d0, 0x3a61, 0x388f, 0x3591, 0x3b25, 0x3818, 0x304b, 0x39f0, 0x3826, 0x399e, 0x332c, 0x3496, 0x3822, -0x3a10, 0x3839, 0x3b02, 0x248f, 0x39a8, 0x31fa, 0x3964, 0x34e5, 0x2abc, 0x3a82, 0x3440, 0x321b, 0x3859, 0x38f1, 0x3845, 0x3bbd, 0x3b28, 0x3410, 0x3855, 0x3acb, 0x3afe, 0x38fb, 0x341d, 0x3713, 0x3281, 0x387c, 0x3b3a, 0x388d, 0x34f1, 0x33b1, 0x35df, 0x3a40, 0x3b5a, 0x37a8, 0x3997, 0x32c0, 0x38e1, 0x287f, 0x30ed, 0x398d, 0x2fc0, 0x399c, 0x34b5, 0x3b4e, 0x3a20, 0x39ed, 0x2dfe, 0x3b53, 0x3529, 0x3b5d, 0x39b7, 0x3469, 0x35fb, 0x3af6, 0x3b95, 0x39bd, 0x39be, 0x3bad, 0x308a, 0x380a, 0x3851, 0x3810, 0x3866, 0x3adb, 0x3b96, 0x3118, 0x3a45, 0x36ab, 0x3250, 0x38f5, 0x360e, 0x3ac2, 0x30d1, 0x3a5f, 0x3a09, 0x3550, 0x3ba9, 0x360d, 0x3ad6, 0x3a1f, 0x376e, 0x308b, 0x3908, 0x38ac, 0x348a, 0x3ba4, 0x3704, 0x37ef, 0x35ea, 0x3836, 0x395a, 0x2c3d, 0x382e, 0x360a, 0x321a, 0x3967, -0x26ea, 0x3845, 0x344c, 0x3b46, 0x33ca, 0x2f66, 0x220e, 0x39c5, 0x35d6, 0x3af3, 0x39d0, 0x38f7, 0x3082, 0x3924, 0x3198, 0x3a81, 0x3a45, 0x3945, 0x368d, 0x3a76, 0x3a14, 0x3145, 0x2430, 0x37f0, 0x3af8, 0x31d6, 0x36ab, 0x3453, 0x2dcc, 0x359c, 0x3699, 0x37b4, 0x399c, 0x375e, 0x386a, 0x3927, 0x38c2, 0x33ac, 0x32de, 0x3ba4, 0xece, 0x398a, 0x3b1f, 0x3583, 0x3b41, 0x340f, 0x3bef, 0x3777, 0x3acd, 0x3818, 0x3ad3, 0x385d, 0x38f7, 0x399c, 0x38a1, 0x3a11, 0x38ad, 0x2fc0, 0x32c3, 0x3293, 0x3499, 0x3757, 0x28a6, 0x3b3d, 0x3b9b, 0x37a1, 0x3bcd, 0x3a17, 0x3b46, 0x39b0, 0x2cee, 0x346a, 0x3b63, 0x3855, 0x37a4, 0x36dc, 0x3baa, 0x20a7, 0x3b32, 0x2a40, 0x3ac4, 0x3855, 0x35cb, 0x3bcc, 0x3a66, 0x38bd, 0x213a, 0x2be8, 0x2793, 0x32a2, 0x3a2c, 0x3aae, 0x384b, 0x3a00, 0x375d, 0x35e2, -0x3938, 0x3629, 0x398a, 0x263c, 0x37f1, 0x39ed, 0x332c, 0x3879, 0x38df, 0x2cc1, 0x38cb, 0x398a, 0x3935, 0x3607, 0x2791, 0x3a21, 0x3590, 0x306b, 0x3720, 0x3abb, 0x3a6a, 0x2a36, 0x388b, 0x2c62, 0x393e, 0x36bc, 0x37be, 0x39bd, 0x39db, 0x35d8, 0x3b2d, 0x39ba, 0x33a4, 0x3a4b, 0x2f93, 0x38ca, 0x325d, 0x3974, 0x3116, 0x3bd6, 0x3630, 0x3888, 0x3a58, 0x3a1d, 0x3868, 0x38c5, 0x316f, 0x353d, 0x2a18, 0x3994, 0x399a, 0x2e05, 0x3b8b, 0x32f3, 0x3242, 0x2e23, 0x3191, 0x3ab7, 0x2aaf, 0x3a7d, 0x3726, 0x3b42, 0x3abc, 0x372b, 0x3a73, 0x390e, 0x38d0, 0x38e2, 0x39f9, 0x2fae, 0x3372, 0x3370, 0x3699, 0x3851, 0x3430, 0x3559, 0x3b7c, 0x3671, 0x35dd, 0x2d3e, 0x35c8, 0x2260, 0x3ab4, 0x3b38, 0x3327, 0x33df, 0x3a01, 0x3368, 0x361e, 0x3baa, 0x3990, 0x382b, 0x38fb, 0x35b9, 0x3921, 0x3918, -0x38ea, 0x349a, 0x3123, 0x2d03, 0x356f, 0x3735, 0x3b50, 0x355b, 0x3b23, 0x3a35, 0x30a3, 0x3568, 0x365c, 0x3328, 0x3ac5, 0x323f, 0x271b, 0x24a7, 0x369d, 0x32a5, 0x39e7, 0x37dc, 0x3a48, 0x36a7, 0x3037, 0x39b8, 0x35b5, 0x320c, 0x29c0, 0x3770, 0x3893, 0x384c, 0x3888, 0x399a, 0x3a4e, 0x31e7, 0x397d, 0x3876, 0x3425, 0x3929, 0x3734, 0x2cb9, 0x39e8, 0x399d, 0x27d8, 0x3a89, 0x3198, 0x35ee, 0x2576, 0x31a6, 0x398b, 0x31cb, 0x2e6d, 0x386a, 0x3b4e, 0x3882, 0x3a5b, 0x3797, 0x38f0, 0x3229, 0x3849, 0x3874, 0x2cb5, 0x3b07, 0x3b6f, 0x3b29, 0x3bdf, 0x34fd, 0x3502, 0x3ae1, 0x39ac, 0x37ef, 0x3bbc, 0x39f7, 0x3503, 0x3bf0, 0x34da, 0x3bb9, 0x3811, 0x3ac2, 0x37e5, 0x37a9, 0x38a2, 0x3ba7, 0x3862, 0x369c, 0x35f7, 0x388b, 0x3aa8, 0x335b, 0x3a6f, 0x3885, 0x36c6, 0x38a9, 0x396d, 0x34ec, -0x3a09, 0x3869, 0x34bb, 0x3761, 0x36a1, 0x3852, 0x3849, 0x3659, 0x3805, 0x3a89, 0x3539, 0x35eb, 0x3439, 0x3863, 0x3a88, 0x38e0, 0x388c, 0x351c, 0x350e, 0x3383, 0x31ad, 0x389e, 0x39a5, 0x363f, 0x3b6a, 0x30f5, 0x3a4f, 0x3669, 0x3ae5, 0x3950, 0x2e12, 0x3801, 0x3af3, 0x393f, 0x377b, 0x390c, 0x34ff, 0x30f2, 0x271a, 0x37a5, 0x289e, 0x39b6, 0x3bf3, 0x389f, 0x3a33, 0x3bf0, 0x39c0, 0x392a, 0x394d, 0x349c, 0x3b62, 0x327a, 0x377b, 0x3590, 0x397a, 0x3a04, 0x3247, 0x329c, 0x2d99, 0x3b76, 0x33ff, 0x3456, 0x32c3, 0x35b6, 0x3282, 0x32b5, 0x3a23, 0x39e0, 0x3767, 0x3600, 0x38d6, 0x3a7c, 0x3515, 0x36bc, 0x381a, 0x3bd6, 0x3baf, 0x3811, 0x39e0, 0x22ac, 0x391b, 0x29be, 0x39aa, 0x3329, 0x3a6f, 0x3bcb, 0x3118, 0x3bbf, 0x3674, 0x3918, 0x30cd, 0x3924, 0x3a6b, 0x3a8b, 0x34b5, 0x39cc, -0x2cde, 0x3945, 0x37ff, 0x3115, 0x3a3b, 0x3ae1, 0x3958, 0x28f5, 0x3b19, 0x33ff, 0x3bc4, 0x3476, 0x3886, 0x3511, 0x342b, 0x3b18, 0x36e9, 0x3ab9, 0x2423, 0x32e2, 0x3623, 0x38b4, 0x371b, 0x3bc0, 0x3b8d, 0x3366, 0x384f, 0x3a1a, 0x3a09, 0x3918, 0x3959, 0x3652, 0x3baa, 0x3685, 0x38b7, 0x378b, 0x32e9, 0x3a53, 0x3405, 0x3bc3, 0x34b9, 0x339d, 0x3819, 0x2fe8, 0x3bdb, 0x3421, 0x3575, 0x3796, 0x207e, 0x3b04, 0x38a8, 0x3b69, 0x35f1, 0x389a, 0x37ee, 0x38c3, 0x34db, 0x35a5, 0x3b83, 0x36a9, 0x2883, 0x3955, 0x3aa0, 0x334a, 0x34a9, 0x3772, 0x312a, 0x3bde, 0x3338, 0x3601, 0x3125, 0x3a73, 0x316c, 0x348e, 0x3bef, 0x3b52, 0x343b, 0x249c, 0x3a68, 0x3905, 0x3b4d, 0x1cf8, 0x356a, 0x3499, 0x3385, 0x3b44, 0x2aaf, 0x28a1, 0x3199, 0x379d, 0x3832, 0x2da7, 0x3a9e, 0x3bc7, 0x34a2, 0x2c5a, -0x3bde, 0x3822, 0x3715, 0x345e, 0x38c1, 0x3315, 0x38d1, 0x2da9, 0x37f6, 0x38d3, 0x3beb, 0x3ba6, 0x343f, 0x3af0, 0x3b0e, 0x2bd6, 0x3b3b, 0x3a5a, 0x3930, 0x3af7, 0x3504, 0x31a5, 0x2918, 0x3853, 0x214f, 0x3b67, 0x3b64, 0x34a9, 0x3894, 0x3a87, 0x3ad1, 0x3a09, 0x38a2, 0x39da, 0x3a16, 0x3485, 0x36bf, 0x3ada, 0x31eb, 0x3b8c, 0x2de3, 0x3914, 0x39d4, 0x399f, 0x3968, 0x3200, 0x3631, 0x3bd6, 0x390b, 0x312d, 0x3b94, 0x3bf1, 0x38ee, 0x378b, 0x29f3, 0x3810, 0x2f19, 0x3808, 0x389c, 0x3a3a, 0x376c, 0x3b58, 0x346d, 0x2e32, 0x3848, 0x3bec, 0x3779, 0x3237, 0x37d2, 0x3963, 0x37a5, 0x3993, 0x3495, 0x3679, 0x2c1d, 0x3add, 0x3722, 0x305d, 0x38a0, 0x3851, 0x3a01, 0x291b, 0x3447, 0x35f7, 0x3617, 0x3928, 0x2e5d, 0x1f75, 0x3b78, 0x12cc, 0x39db, 0x39be, 0x3b11, 0x3b5a, 0x2fae, 0x3696, -0x3b26, 0x3229, 0x31d8, 0x3b61, 0x290e, 0x3b7d, 0x3bf3, 0x38cc, 0x3a78, 0x35f8, 0x3b7d, 0x3883, 0x3b43, 0x3571, 0x3991, 0x3bc3, 0x3095, 0x350f, 0x39bf, 0x3823, 0x370c, 0x2aa8, 0x3473, 0x33da, 0x38c7, 0x3ab7, 0x3b3d, 0x20f4, 0x3b12, 0x3997, 0x3bfe, 0x3479, 0x3a5f, 0x3550, 0x3af7, 0x34f2, 0x382f, 0x3109, 0x3287, 0x3a6f, 0x3b41, 0x3919, 0x2a88, 0x3b07, 0x3097, 0x398d, 0x35a7, 0x3921, 0x332f, 0x3b65, 0x39c2, 0x3aea, 0x3a54, 0x3996, 0x38c1, 0x396c, 0x3a06, 0x3831, 0x33a9, 0x3457, 0x3a8f, 0x3b43, 0x310d, 0x38e9, 0x36b8, 0x392c, 0x36b7, 0x323f, 0x2e02, 0x3b91, 0x36ef, 0x356b, 0x35e9, 0x339f, 0x39ce, 0x3ba8, 0x31bf, 0x2d8d, 0x3b09, 0x2dd7, 0x3960, 0x3b44, 0x37df, 0x3814, 0x3783, 0x39e7, 0x3716, 0x397f, 0x3429, 0x35ef, 0x3a37, 0x3743, 0x342a, 0x33cf, 0x184a, 0x3829, -0x384e, 0x3ade, 0x35c2, 0x36b9, 0x3429, 0x3abf, 0x3ac6, 0x3a36, 0x2108, 0x38ef, 0x37ff, 0x39fe, 0x3815, 0x3935, 0x3ab5, 0x351d, 0x3add, 0x3b57, 0x37ad, 0x2cc3, 0x3ace, 0x3ac4, 0x37ac, 0x3904, 0x3951, 0x32e7, 0x3337, 0x270b, 0x3a71, 0x3b9c, 0x3808, 0x3033, 0x34be, 0x3742, 0x3a39, 0x27f7, 0x26a2, 0x3b34, 0x35e5, 0x3a0f, 0x3939, 0x365f, 0x3853, 0x3b36, 0x364e, 0x3334, 0x1c8a, 0x330f, 0x3b6a, 0x3a34, 0x37fc, 0x353d, 0x3922, 0x387e, 0x390d, 0x3950, 0x37fc, 0x3946, 0x3afd, 0x342b, 0x2a9d, 0x3b85, 0x32b2, 0x3afc, 0x39a0, 0x3a38, 0x3182, 0x3aac, 0x3840, 0x3b40, 0x3703, 0x2f71, 0x3992, 0x3a53, 0x3a8a, 0x370c, 0x3101, 0x3826, 0x3b5b, 0x39c0, 0x3a46, 0x37d7, 0x3751, 0x2ab9, 0x342b, 0x39e0, 0x36fc, 0x3a8a, 0x1fb5, 0x355b, 0x38dc, 0x3b4d, 0x3be0, 0x3793, 0x307f, 0x3bae, -0x33ae, 0x39cc, 0x3a09, 0x3b3a, 0x34bf, 0x3b1c, 0x35cf, 0x3aa3, 0x3504, 0x381b, 0x3a9d, 0x3703, 0x3bce, 0x3b36, 0x35ea, 0x3503, 0x3687, 0x2661, 0x3bff, 0x2d04, 0x3bee, 0x3841, 0x3074, 0x309f, 0x35a3, 0x34ca, 0x36d5, 0x3640, 0x37e6, 0x37c9, 0x3a6d, 0x34fd, 0x3918, 0x3aa0, 0x3762, 0x34e0, 0x3527, 0x3780, 0x341d, 0x385a, 0x3af7, 0x3bf7, 0x3926, 0x3617, 0x3615, 0x2a99, 0x3649, 0x3a98, 0x3613, 0x2e24, 0x3809, 0x35b6, 0x3a63, 0x3bdd, 0x3825, 0x38fb, 0x2ed9, 0x39a5, 0x2d38, 0x364c, 0x3a63, 0x397c, 0x35e5, 0x3ad5, 0x31a7, 0x3979, 0x2873, 0x2e5c, 0x3abb, 0x39b6, 0x3b74, 0x2ce6, 0x35ab, 0x3920, 0x2fee, 0x308b, 0x229f, 0x3547, 0x36d3, 0x359c, 0x3814, 0x34de, 0x3a39, 0x2ed6, 0x3bd6, 0x353d, 0x3afb, 0x3b17, 0x3733, 0x16f0, 0x3011, 0x38b2, 0x387a, 0x3984, 0x3747, 0x394d, -0x34f7, 0x3755, 0x3960, 0x355f, 0x3765, 0x38fa, 0x3be8, 0x33ca, 0x351f, 0x31eb, 0x397e, 0x1412, 0x3022, 0x3467, 0x39d7, 0x3a60, 0x2c85, 0x3241, 0x3a90, 0x3926, 0x397a, 0x38f1, 0x3996, 0x3a51, 0x3ad5, 0x2e68, 0x38a9, 0x3663, 0x399f, 0x35f3, 0x3b4c, 0x34aa, 0x3b6b, 0x32af, 0x3aa8, 0x3a22, 0x38b6, 0x34cd, 0x2c81, 0x3945, 0x37a9, 0x3a20, 0x2523, 0x3ad8, 0x29ca, 0x3b63, 0x3a69, 0x37dc, 0x323b, 0x3898, 0x38e3, 0x3637, 0x394a, 0x2d82, 0x392c, 0x3993, 0x35b8, 0x3810, 0x399e, 0x3672, 0x39fa, 0x36c2, 0x351f, 0x3797, 0x244f, 0x3b02, 0x3304, 0x385f, 0x3312, 0x394e, 0x396b, 0x28bf, 0x3885, 0x39e2, 0x347e, 0x33ad, 0x3526, 0x3a5f, 0x3b90, 0x3b1e, 0x2572, 0x3a9c, 0x30ec, 0x393e, 0x3a9b, 0x357a, 0x394b, 0x3449, 0x3545, 0x2fee, 0x3702, 0x362b, 0x3bd4, 0x27d9, 0x2d6d, 0x3080, -0x30fb, 0x382e, 0x387a, 0x3b71, 0x355f, 0x39cc, 0x33c0, 0x2f57, 0x3b2f, 0x3b79, 0x3aea, 0x3b17, 0x3b46, 0x3844, 0x380d, 0x30a7, 0x2348, 0x381f, 0x2c21, 0x3a3b, 0x2cf6, 0x3523, 0x3835, 0x1b53, 0x3ad3, 0x3b18, 0x372a, 0x39a5, 0x37e6, 0x39bd, 0x2cfd, 0x395d, 0x2ea2, 0x39cb, 0x3bdc, 0x36db, 0x3b48, 0x3acc, 0x3439, 0x34c8, 0x3361, 0x3b5b, 0x324a, 0x35ec, 0x2c87, 0x395e, 0x35fe, 0x37a4, 0x361f, 0x315f, 0x305e, 0x35f7, 0x3541, 0x3729, 0x37ed, 0x31b7, 0x3a9a, 0x34ee, 0x376c, 0x3a7a, 0x389e, 0x30b3, 0x328e, 0x3811, 0x36f5, 0x35d9, 0x37f9, 0x3bcf, 0x3a0d, 0x3658, 0x3ba9, 0x38df, 0x3997, 0x3a6d, 0x375e, 0x32f7, 0x382e, 0x3b0d, 0x38ed, 0x346a, 0x3b8a, 0x2da9, 0x359c, 0x3574, 0x3840, 0x3333, 0x3a5b, 0x358d, 0x39f3, 0x385d, 0x2959, 0x3908, 0x3b84, 0x3a40, 0x2f0d, 0x35e0, -0x2066, 0x3940, 0x3b3b, 0x320f, 0x37cc, 0x377a, 0x3b22, 0x36da, 0x3aa0, 0x3476, 0x34b4, 0x3941, 0x36f4, 0x391e, 0x3a8d, 0x32ca, 0x3853, 0x3af6, 0x34d2, 0x36a6, 0x33f1, 0x39a0, 0x3790, 0x3440, 0x390f, 0x3a83, 0x399d, 0x367d, 0x2b8e, 0x3575, 0x3a1b, 0x3a7c, 0x3a6c, 0x2eb2, 0x3a27, 0x369b, 0x3a45, 0x38a4, 0x346f, 0x3a8c, 0x307a, 0x36d0, 0x39be, 0x39ae, 0x34ee, 0x2ae7, 0x3559, 0x3858, 0x3705, 0x38eb, 0x39fa, 0x3565, 0x3285, 0x392a, 0x394a, 0x300a, 0x39f6, 0x2e3e, 0x33dc, 0x39c7, 0x295d, 0x3b80, 0x3888, 0x3760, 0x3bfb, 0x396f, 0x3729, 0x386d, 0x39bb, 0x2d93, 0x387a, 0x3b12, 0x3b2e, 0x3bdc, 0x33ec, 0x383d, 0x38d0, 0x3373, 0x3bb0, 0x3987, 0x3b2b, 0x3097, 0x3884, 0x3b20, 0x39bf, 0x3360, 0x2b53, 0x370a, 0x2f02, 0x38ab, 0x24ee, 0x3947, 0x3927, 0x29d7, 0x3b8d, 0x3b8b, -0x3a58, 0x292b, 0x3604, 0x398f, 0x321b, 0x341f, 0x3909, 0x3901, 0x3b49, 0x32ee, 0x3940, 0x3b77, 0x31f0, 0x344e, 0x380c, 0x36b1, 0x3a4e, 0x3638, 0x3922, 0x3864, 0x393b, 0x3903, 0x302f, 0x2ff2, 0x30b7, 0x3997, 0x385b, 0x3bbf, 0x3b39, 0x38de, 0x3a69, 0x3b51, 0x3aed, 0x387b, 0x269d, 0x39c7, 0x3a99, 0x3beb, 0x3672, 0x33ee, 0x200e, 0x3834, 0x34f7, 0x3971, 0x355a, 0x31fd, 0x2531, 0x385f, 0x3bf2, 0x2686, 0x364a, 0x358a, 0x2e99, 0x2f89, 0x3809, 0x3924, 0x39ee, 0x3990, 0x3987, 0x3972, 0x3813, 0x3840, 0x34dd, 0x374a, 0x3250, 0x2f4c, 0x35d9, 0x2991, 0x3b3f, 0x362e, 0x3455, 0x2abb, 0x3a2d, 0x3b57, 0x3567, 0x2cc0, 0x2d0d, 0x3be3, 0x2f3e, 0x3a9f, 0x3253, 0x34e8, 0x3712, 0x334e, 0x3ab9, 0x3bae, 0x3a1d, 0x3a5c, 0x3b96, 0x3adf, 0x3088, 0x3a8e, 0x35f3, 0x3795, 0x35d1, 0x3bb4, -0x3862, 0x3976, 0x3b9a, 0x3291, 0x3b5c, 0x3540, 0x2d00, 0x3702, 0x3519, 0x39dd, 0x3bff, 0x3560, 0x3642, 0x392c, 0x3a6f, 0x32ff, 0x32f2, 0x3836, 0x2d5f, 0x368d, 0x383b, 0x3abb, 0x2ec9, 0x3ada, 0x391a, 0x3811, 0x35d9, 0x3b90, 0x3aa3, 0x3149, 0x3b10, 0x3912, 0x3391, 0x318b, 0x22ed, 0x3a32, 0x3819, 0x39c9, 0x3865, 0x332e, 0x399b, 0x3aaa, 0x3b3e, 0x37b6, 0x35db, 0x3286, 0x3765, 0x2afe, 0x3b7a, 0x32b2, 0x38c9, 0x37d0, 0x3a6d, 0x3a3a, 0x3a9c, 0x364d, 0x3915, 0x36d5, 0x24fb, 0x35ed, 0x3abd, 0x3200, 0x3ae4, 0x3a0f, 0x3ac2, 0x33be, 0x3812, 0x3bae, 0x3969, 0x3237, 0x3bb0, 0x3681, 0x35c9, 0x37da, 0x2f15, 0x3362, 0x3b5c, 0x3a74, 0x315a, 0x3b44, 0x2f83, 0x3971, 0x3bfd, 0x3ab3, 0x35ae, 0x3a5a, 0x303d, 0x2a1d, 0x3a0c, 0x3bbe, 0x3365, 0x33df, 0x3521, 0x3bce, 0x3880, 0x3842, -0x3a15, 0x3835, 0x2ac7, 0x3640, 0x3864, 0x309d, 0x3934, 0x364d, 0x30f9, 0x3954, 0x34c0, 0x39a2, 0x36c1, 0x3a64, 0x2f3d, 0x338e, 0x3993, 0x34c0, 0x2c7e, 0x30a8, 0x3696, 0x2d67, 0x2017, 0x3757, 0x2ebc, 0x2c37, 0x3422, 0x36a8, 0x3a49, 0x364d, 0x3b0a, 0x3adc, 0x34f1, 0x3a15, 0x389b, 0x389b, 0x3557, 0x3542, 0x3a12, 0x38b4, 0x3a49, 0x38fd, 0x3a25, 0x3516, 0x3bc9, 0x3811, 0x1b72, 0x391e, 0x2ecb, 0x3a69, 0x3818, 0x342b, 0x3b44, 0x3912, 0x2ae6, 0x3bb1, 0x355e, 0x3182, 0x3793, 0x385b, 0x2983, 0x394d, 0x3021, 0x307c, 0x3419, 0x364f, 0x395f, 0x3395, 0x365d, 0x3a90, 0x3b4d, 0x3660, 0x35ad, 0x3b87, 0x3b40, 0x3919, 0x3800, 0x385c, 0x187b, 0x3b1e, 0x38c8, 0x38bf, 0x3844, 0x390b, 0x3672, 0x37df, 0x3a46, 0x3013, 0x30fd, 0x3a86, 0x36aa, 0x3a60, 0x39a7, 0x39b7, 0x37d2, 0x33e7, -0x2cde, 0x3a8d, 0x33d3, 0x2c74, 0x34c5, 0x2b02, 0x3ab0, 0x375d, 0x3a8f, 0x39c7, 0x340c, 0x3bc7, 0x39ae, 0x2ea6, 0x3b0b, 0x394b, 0x3823, 0x3504, 0x383a, 0x38f6, 0x382d, 0x3bda, 0x3a1b, 0x38c9, 0x35e2, 0x39f1, 0x38b9, 0x3281, 0x3bb3, 0x3156, 0x2c35, 0x3b28, 0x2cfe, 0x392a, 0x3908, 0x3a72, 0x2d0e, 0x3b20, 0x369d, 0x3bae, 0x2f9f, 0x3aac, 0x331f, 0x3ab7, 0x3999, 0x3980, 0x3b17, 0x39d3, 0x3609, 0x231d, 0x386c, 0x39b7, 0x2a32, 0x37b0, 0x350d, 0x2554, 0x33ee, 0x2c9a, 0x319a, 0x37d6, 0x347e, 0x3a54, 0x3903, 0x3aaa, 0x31fc, 0x33c9, 0x3988, 0x3ac7, 0x31b5, 0x354c, 0x3ba7, 0x342e, 0x3898, 0x3907, 0x3bc4, 0x36b6, 0x36fc, 0x3896, 0x3832, 0x33d8, 0x3af7, 0x38df, 0x3b8b, 0x2dc9, 0x29a0, 0x3b24, 0x34e6, 0x2d49, 0x34c2, 0x388e, 0x36cb, 0x2eff, 0x34fb, 0x3b91, 0x3be3, 0x39ed, -0x38fb, 0x3675, 0x36d9, 0x385b, 0x36ce, 0x3755, 0x354b, 0x3014, 0x3670, 0x3be2, 0x3af2, 0x3b6e, 0x345f, 0x2f8d, 0x3a55, 0x3919, 0x3ad3, 0x3388, 0x368a, 0x3bbf, 0x2b8e, 0x28fd, 0x2e73, 0x3baa, 0x3326, 0x3625, 0x351e, 0x35eb, 0x305c, 0x3bc5, 0x345b, 0x3473, 0x3555, 0x28bb, 0x357a, 0x39c2, 0x3871, 0x3232, 0x2c3a, 0x3983, 0x340a, 0x3af8, 0x3932, 0x3354, 0x3a39, 0x36b8, 0x367a, 0x29ce, 0x3bf0, 0x290d, 0x339f, 0x3afb, 0x340d, 0x3128, 0x38ac, 0x2b34, 0x346f, 0x3356, 0x3bb9, 0x2967, 0x355a, 0x37cd, 0x34f4, 0x3a66, 0x36b6, 0x2968, 0x3bf7, 0x3a0d, 0x361c, 0x3898, 0x3859, 0x39fe, 0x3bdb, 0x38aa, 0x3b92, 0x2fcc, 0x38b1, 0x3713, 0x3be1, 0x3826, 0x3b00, 0x32c3, 0x30a1, 0x38d7, 0x3bf3, 0x3b42, 0x38af, 0x304b, 0x3279, 0x37c5, 0x2072, 0x346c, 0x3857, 0x3597, 0x3624, 0x39d7, -0x3042, 0x392a, 0x3120, 0x20d7, 0x3b8c, 0x3a8f, 0x383a, 0x3a52, 0x3bbd, 0x31ad, 0x3781, 0x3359, 0x36cb, 0x33f1, 0x385b, 0x3225, 0x38d5, 0x3019, 0x3a17, 0x34d3, 0x3a34, 0x39ba, 0x3a17, 0x31e8, 0x3b53, 0x3b9c, 0x3b54, 0x33b6, 0x3488, 0x367a, 0x3a2c, 0x3ac7, 0x3b0a, 0x399a, 0x3891, 0x3a51, 0x3a4a, 0x380b, 0x391c, 0x3805, 0x381d, 0x3b2a, 0x2a0d, 0x3acc, 0x3b55, 0x3958, 0x3a2b, 0x35cd, 0x340e, 0x36e1, 0x3a09, 0x2569, 0x2c5f, 0x376c, 0x3431, 0x3ad3, 0x31fc, 0x331e, 0x396b, 0x2ebd, 0x380f, 0x3bce, 0x3a74, 0x32de, 0x30ec, 0x3300, 0x3aba, 0x34c3, 0x3abd, 0x30c6, 0x39af, 0x3a3d, 0x3ad9, 0x3097, 0x2af9, 0x38a6, 0x3071, 0x25c5, 0x34ea, 0x2ff3, 0x355e, 0x3b66, 0x1edc, 0x3a1f, 0x32c7, 0x381c, 0x3837, 0x3bc1, 0x3033, 0x3bcb, 0x3a53, 0x3ab7, 0x38be, 0x2a81, 0x36ad, 0x301f, -0x3931, 0x3ba1, 0x34ac, 0x383d, 0x3636, 0x35b9, 0x38f2, 0x2c53, 0x32a9, 0x3b31, 0x3181, 0x383c, 0x395b, 0x30ef, 0x3aa7, 0x30ce, 0x32ff, 0x328b, 0x3329, 0x2c12, 0x394e, 0x2c60, 0x35de, 0x3938, 0x2c18, 0x37be, 0x392e, 0x3438, 0x3650, 0x34c7, 0x392c, 0x39aa, 0x2e72, 0x3ab6, 0x2bc9, 0x3bfa, 0x36f2, 0x2830, 0x2ad4, 0x3b3f, 0x3ae7, 0x34c7, 0x3064, 0x35ef, 0x3956, 0x39e9, 0x31eb, 0x2ff8, 0x36f3, 0x38de, 0x34b8, 0x3aa8, 0x1c30, 0x3b4f, 0x38d9, 0x3bba, 0x39b7, 0x3b4c, 0x2ee9, 0x3837, 0x3835, 0x36c6, 0x3928, 0x2e72, 0x37d2, 0x3642, 0x31cb, 0x35d6, 0x3408, 0x3404, 0x39d4, 0x3877, 0x38a5, 0x31ae, 0x2c75, 0x341a, 0x3af5, 0x3abc, 0x330b, 0x387d, 0x3b46, 0x369f, 0x2bf0, 0x3bdc, 0x36fc, 0x362a, 0x374f, 0x3bc3, 0x3ac5, 0x38c1, 0x3965, 0x380f, 0x3675, 0x3bba, 0x3a38, 0x39ca +uint16_t w_inp [1024] = { +0x311a, 0x39e0, 0x387d, 0x3a4a, 0x386f, 0x3ada, 0x392f, 0x3854, 0x3014, 0x2fd2, 0x31c9, 0x2fca, 0x2e55, 0x3bc8, 0x396d, 0x3b1d, 0x39f6, 0x333a, 0x3908, 0x3628, 0x3bab, 0x3b8b, 0x3b4a, 0x322d, 0x3925, 0x317a, 0x3725, 0x31c2, 0x3066, 0x38f3, 0x3a17, 0x3476, +0x3bda, 0x3196, 0x3922, 0x3680, 0x396a, 0x3021, 0x3761, 0x374d, 0x2fc2, 0x3967, 0x3b94, 0x33b5, 0x3797, 0x34d6, 0x3655, 0x2176, 0x39bc, 0x3999, 0x3658, 0x3904, 0x3759, 0x2ade, 0x3a5a, 0x3b78, 0x36c7, 0x2d01, 0x3b58, 0x2d9a, 0x373d, 0x3952, 0x38e8, 0x3887, +0x37b6, 0x3a88, 0x2f8a, 0x2d79, 0x3413, 0x3421, 0x3976, 0x32b2, 0x3446, 0x2d99, 0x3a56, 0x3322, 0x3b49, 0x39fa, 0x3acd, 0x3af6, 0x304c, 0x3abb, 0x3a83, 0x38b2, 0x3ab9, 0x363e, 0x389f, 0x31bb, 0x38e1, 0x3bc4, 0x3b9b, 0x2984, 0x3a43, 0x3b2f, 0x35d6, 0x3bda, +0x2df3, 0x3bf8, 0x2acc, 0x378b, 0x3555, 0x2e59, 0x31d4, 0x34ec, 0x3a46, 0x3bab, 0x3214, 0x3161, 0x3470, 0x3a03, 0x368e, 0x31ad, 0x27cb, 0x2ecb, 0x3422, 0x39f7, 0x3644, 0x3a77, 0x313f, 0x34f2, 0x39b3, 0x3bf2, 0x379a, 0x3456, 0x35fe, 0x3ae7, 0x3964, 0x385f, +0x3b16, 0x3999, 0x3833, 0x2eda, 0x3afd, 0x3a4a, 0x3ba2, 0x2bd4, 0x3b38, 0x31a2, 0x32dd, 0x353c, 0x366f, 0x375e, 0x3821, 0x367a, 0x3b44, 0x39e6, 0x3787, 0x339e, 0x39d7, 0x38c6, 0x37d5, 0x342f, 0x3984, 0x319b, 0x33b5, 0x35ab, 0x398a, 0x374e, 0x36b6, 0x3b21, +0x3bbb, 0x2ab3, 0x2ad5, 0x33bc, 0x2bef, 0x3780, 0x3738, 0x3a0b, 0x3b09, 0x30ca, 0x384e, 0x3ab3, 0x39bd, 0x3453, 0x3a6d, 0x3957, 0x2c10, 0x30e9, 0x35d4, 0x3aef, 0x3be9, 0x39ad, 0x3a74, 0x3af9, 0x3739, 0x2d4d, 0x39fe, 0x3b72, 0x2c57, 0x398c, 0x381f, 0x3930, +0x3820, 0x321b, 0x3964, 0x2964, 0x33a0, 0x2d00, 0x2490, 0x336b, 0x3465, 0x3b2e, 0x3aa0, 0x371f, 0x300e, 0x3a09, 0x3bf1, 0x25cc, 0x3b6f, 0x3384, 0x3a88, 0x3acb, 0x3814, 0x36d0, 0x3081, 0x3a2c, 0x3353, 0x39cb, 0x31ed, 0x3af6, 0x3721, 0x36c7, 0x2ce2, 0x390d, +0x3698, 0x3ab2, 0x3b3e, 0x2eb4, 0x3998, 0x39e3, 0x3a77, 0x3632, 0x2c12, 0x3bd5, 0x3ba3, 0x3bba, 0x323c, 0x367b, 0x3557, 0x39c8, 0x37db, 0x3b45, 0x3b6e, 0x3931, 0x3121, 0x3a8d, 0x3a55, 0x3b9b, 0x358a, 0x3925, 0x3491, 0x3912, 0x3b6b, 0x3584, 0x32df, 0x3120, +0x32b2, 0x3b0a, 0x2cad, 0x3465, 0x3ad3, 0x3bcd, 0x363b, 0x3afe, 0x354b, 0x3374, 0x39af, 0x3b7f, 0x308c, 0x2e72, 0x3380, 0x3b70, 0x3902, 0x38d8, 0x39f3, 0x3a4b, 0x3853, 0x397b, 0x2ebe, 0x387f, 0x2845, 0x37e2, 0x360f, 0x370b, 0x3acb, 0x35d4, 0x36e6, 0x3262, +0x2e88, 0x3a54, 0x2ee3, 0x3575, 0x3afe, 0x2aee, 0x39a0, 0x3aae, 0x3693, 0x3432, 0x3834, 0x3b9b, 0x3bcb, 0x2e3a, 0x356d, 0x374e, 0x3924, 0x383c, 0x311e, 0x3ac5, 0x352d, 0x311e, 0x38ca, 0x34d4, 0x36ca, 0x34ed, 0x3a13, 0x33eb, 0x3639, 0x3828, 0x3b3c, 0x3939, +0x3837, 0x3521, 0x2cb5, 0x3629, 0x3924, 0x384c, 0x366a, 0x3bbf, 0x2e9e, 0x3ba8, 0x33ad, 0x38c8, 0x3934, 0x3907, 0x249a, 0x3690, 0x3a09, 0x3215, 0x3898, 0x325d, 0x37d5, 0x3195, 0x361c, 0x3ae4, 0x351f, 0x3452, 0x3bc0, 0x375c, 0x39bf, 0x317a, 0x3aae, 0x283a, +0x3476, 0x3b92, 0x3472, 0x383e, 0x280f, 0x39d6, 0x2fd1, 0x31f4, 0x2ffb, 0x3b97, 0x3692, 0x36c0, 0x3989, 0x33cf, 0x3ba6, 0x3239, 0x35d7, 0x33ab, 0x31eb, 0x3b47, 0x389b, 0x3b88, 0x3580, 0x354c, 0x3802, 0x3b9a, 0x3b94, 0x2a92, 0x2db1, 0x38bd, 0x2dfb, 0x3900, +0x344f, 0x3739, 0x27a5, 0x3b2e, 0x342b, 0x34bb, 0x30c8, 0x3ae8, 0x3b26, 0x3982, 0x38c0, 0x3408, 0x38c8, 0x36ef, 0x3bf0, 0x3acf, 0x3a3c, 0x3825, 0x31a5, 0x3ada, 0x3b5b, 0x37db, 0x3a01, 0x3663, 0x3a7d, 0x327b, 0x3a1f, 0x3862, 0x38af, 0x3204, 0x372e, 0x3b19, +0x3708, 0x3622, 0x2e62, 0x39ab, 0x2d4d, 0x31b4, 0x3552, 0x3bbc, 0x36f2, 0x36eb, 0x38ef, 0x3755, 0x3bbe, 0x2c17, 0x3815, 0x2f53, 0x363f, 0x38c1, 0x3246, 0x386b, 0x34de, 0x34e4, 0x3baa, 0x349e, 0x32ce, 0x3a68, 0x373f, 0x2cce, 0x3b36, 0x28ba, 0x3b50, 0x3232, +0x1f34, 0x3928, 0x35cd, 0x3b38, 0x30ce, 0x35a1, 0x3a06, 0x3a32, 0x3a53, 0x3489, 0x3241, 0x372f, 0x390c, 0x3a1b, 0x378a, 0x3713, 0x3769, 0x37a8, 0x3418, 0x3ad4, 0x3a4e, 0x3bf7, 0x37a5, 0x34dc, 0x39b2, 0x351b, 0x3372, 0x349f, 0x2f50, 0x3ab1, 0x3795, 0x2db7, +0x3864, 0x3157, 0x3900, 0x323e, 0x389e, 0x3880, 0x3b1f, 0x37a1, 0x396c, 0x2e43, 0x2c2a, 0x3b78, 0x3988, 0x3a14, 0x39c1, 0x3b51, 0x3780, 0x3bf2, 0x2d19, 0x3815, 0x3a5f, 0x3641, 0x2f62, 0x37d5, 0x3564, 0x139a, 0x3ab8, 0x28f7, 0x3785, 0x34e1, 0x3097, 0x3768, +0x3971, 0x3ae2, 0x32ae, 0x2fd5, 0x382a, 0x346c, 0x3133, 0x3167, 0x3940, 0x2d12, 0x389a, 0x3bd0, 0x3943, 0x391c, 0x3a75, 0x2a11, 0x391e, 0x372d, 0x3a79, 0x3b72, 0x3373, 0x39b7, 0x35d7, 0x372b, 0x3a6d, 0x38a1, 0x3279, 0x3434, 0x3694, 0x3b45, 0x3abb, 0x392d, +0x34a8, 0x3757, 0x32ca, 0x345d, 0x36a5, 0x3854, 0x2dcd, 0x30af, 0x38dd, 0x3067, 0x3411, 0x3997, 0x397a, 0x3a64, 0x38b8, 0x3962, 0x3509, 0x3bb6, 0x3a66, 0x339f, 0x372a, 0x31a8, 0x37da, 0x36ff, 0x33c6, 0x31da, 0x3977, 0x3b72, 0x3841, 0x3567, 0x3433, 0x33b8, +0x39fe, 0x3a10, 0x3bf2, 0x35e7, 0x3a4a, 0x3b3e, 0x2ec7, 0x3aa4, 0x3846, 0x3af9, 0x38a9, 0x2c1f, 0x39ab, 0x349f, 0x31d6, 0x39ae, 0x3b79, 0x352d, 0x3516, 0x347c, 0x2f33, 0x35ad, 0x31c4, 0x3b52, 0x354b, 0x3786, 0x3ab7, 0x3896, 0x34ac, 0x352f, 0x37e6, 0x326a, +0x2e44, 0x34c7, 0x388d, 0x3bf4, 0x363f, 0x3b3d, 0x33b1, 0x3b8b, 0x3340, 0x37f7, 0x3b07, 0x25bf, 0x398e, 0x3505, 0x3bd7, 0x366d, 0x388a, 0x2cc0, 0x359a, 0x3b9a, 0x3b99, 0x379d, 0x3b6b, 0x39b8, 0x3223, 0x2703, 0x3ba9, 0x2ecb, 0x3759, 0x39d8, 0x37ac, 0x32cf, +0x35f2, 0x38a3, 0x399e, 0x3bd2, 0x3780, 0x3af3, 0x3b5e, 0x337b, 0x3a08, 0x35da, 0x3446, 0x3b25, 0x3ad0, 0x3bee, 0x3141, 0x32d8, 0x34ce, 0x2ac9, 0x3800, 0x3a8a, 0x2d53, 0x368a, 0x3561, 0x3998, 0x35a3, 0x3677, 0x3ab2, 0x3269, 0x3236, 0x3b3e, 0x3aba, 0x3bac, +0x395d, 0x3820, 0x1df6, 0x3bb5, 0x35b5, 0x3675, 0x3b74, 0x360f, 0x34de, 0x3a0c, 0x3aeb, 0x299d, 0x3207, 0x3bd8, 0x2178, 0x3995, 0x3948, 0x3908, 0x3843, 0x2ea5, 0x3045, 0x3989, 0x345d, 0x39c5, 0x3a89, 0x3863, 0x3be0, 0x397a, 0x38f1, 0x39e2, 0x3b08, 0x352e, +0x385f, 0x28f2, 0x3bc3, 0x35e0, 0x380c, 0x3b9c, 0x3afc, 0x390a, 0x3689, 0x34fd, 0x2cf5, 0x308e, 0x342b, 0x3921, 0x3a67, 0x3ad6, 0x2986, 0x32fc, 0x35aa, 0x3507, 0x3608, 0x33fd, 0x3bf3, 0x39e2, 0x3b0f, 0x30b7, 0x3896, 0x3ae4, 0x2145, 0x35b6, 0x2e1d, 0x3ad1, +0x333d, 0x3afb, 0x2703, 0x3413, 0x1d7d, 0x3b7f, 0x3ae1, 0x303c, 0x3004, 0x39d3, 0x3554, 0x31a4, 0x354e, 0x3662, 0x39c5, 0x2eb7, 0x2c6e, 0x397f, 0x31d8, 0x1f0c, 0x38e3, 0x35f0, 0x2714, 0x28d1, 0x375e, 0x3a75, 0x3830, 0x3578, 0x397d, 0x3b18, 0x383c, 0x3498, +0x39ad, 0x3598, 0x23c4, 0x34ea, 0x3a61, 0x2b00, 0x3707, 0x3ae1, 0x37ae, 0x389d, 0x37fa, 0x3673, 0x3278, 0xf3e, 0x3809, 0x33c6, 0x3bf5, 0x3279, 0x3816, 0x360c, 0x39c8, 0x381f, 0x3741, 0x2d66, 0x38c0, 0x37d3, 0x377a, 0x3621, 0x2faf, 0x392e, 0x2de6, 0x33c5, +0x3803, 0x2600, 0x32e9, 0x39b4, 0x38d2, 0x34e8, 0x2fe6, 0x3199, 0x3643, 0x3a77, 0x27cc, 0x39d7, 0x34c6, 0x2ea8, 0x364e, 0x3b07, 0x31c7, 0x30a1, 0x31b1, 0x3b8f, 0x3571, 0x3b75, 0x3989, 0x3805, 0x39fb, 0x3945, 0x352b, 0x31d8, 0x3904, 0x3440, 0x3a57, 0x2cf7, +0x3b39, 0x2fcd, 0x2b89, 0x2edd, 0x3682, 0x36a9, 0x32c8, 0x37ac, 0x32a5, 0x3311, 0x394b, 0x3b84, 0x3aec, 0x3601, 0x2765, 0x3b69, 0x396b, 0x3727, 0x3bfe, 0x3907, 0x376f, 0x3674, 0x3973, 0x3671, 0x3491, 0x3993, 0x383f, 0x3335, 0x3989, 0x3550, 0x3077, 0x35f5, +0x3a59, 0x3950, 0x380c, 0x37cd, 0x30bf, 0x3607, 0x3afa, 0x3b5d, 0x32b9, 0x386b, 0x35bd, 0x3aca, 0x3ba5, 0x3b2d, 0x3b19, 0x3b8b, 0x345e, 0x2845, 0x34aa, 0x372a, 0x3448, 0x34f5, 0x3ae2, 0x3637, 0x2cb5, 0x354b, 0x3b15, 0x2ca8, 0x2641, 0x3178, 0x2cfe, 0x39b4, +0x3bdd, 0x3acb, 0x3a05, 0x38a2, 0x3b4a, 0x34e5, 0x395f, 0x394b, 0x34c4, 0x3aa5, 0x29bb, 0x2d96, 0x339d, 0x387c, 0x382e, 0x385a, 0x396b, 0x3aa9, 0x2f1e, 0x33a7, 0x3b90, 0x3b7b, 0x3b5f, 0x39d3, 0x3b18, 0x354f, 0x2cdb, 0x3a6f, 0x3434, 0x34ff, 0x3a5b, 0x3b84, +0x3a33, 0x384b, 0x2e67, 0x3b85, 0x3853, 0x380c, 0x346a, 0x3aaa, 0x3492, 0x33e8, 0x3bf2, 0x38ae, 0x3a29, 0x3830, 0x3221, 0x35b1, 0x3a48, 0x2c68, 0x2ced, 0x3a7e, 0x3539, 0x3922, 0x374c, 0x3aaa, 0x2dae, 0x395d, 0x3b3d, 0x3890, 0x2cfe, 0x2dd6, 0x3bad, 0x33c5, +0x2c07, 0x3a2c, 0x37a8, 0x390f, 0x2fc8, 0x35ae, 0x388c, 0x30ee, 0x3674, 0x391d, 0x3bfc, 0x36bf, 0x322d, 0x3a78, 0x35c0, 0x3492, 0x3ac8, 0x3504, 0x3315, 0x381d, 0x3a7a, 0x3a08, 0x343c, 0x3bda, 0x341b, 0x39f0, 0x3b9e, 0x395d, 0x3c00, 0x38ab, 0x3bcf, 0x3564, +0x33c4, 0x3b0d, 0x3623, 0x33b9, 0x3b92, 0x1e71, 0x2c57, 0x36d0, 0x314b, 0x3a16, 0x3372, 0x341b, 0x3aaa, 0x3444, 0x396b, 0x2dd7, 0x3b30, 0x3559, 0x3b5b, 0x3a29, 0x2d19, 0x38b7, 0x3b01, 0x3afa, 0x398a, 0x3839, 0x3ac9, 0x2e31, 0x3924, 0x39f2, 0x3a7f, 0x3285 }; \ No newline at end of file diff --git a/hwpe/redmule/inc/x_2D.h b/hwpe/redmule/inc/x_2D.h index ebe42af..0b589f8 100644 --- a/hwpe/redmule/inc/x_2D.h +++ b/hwpe/redmule/inc/x_2D.h @@ -1,99 +1,27 @@ /* Header file generated by RedMulE Golden Model */ -uint16_t x_inp_2D [96][96] = { -0x3122, 0x369c, 0x39bd, 0x3b58, 0x3be0, 0x3a5a, 0x3416, 0x386c, 0x3a11, 0x350e, 0x38ab, 0x35ad, 0x35d9, 0x390f, 0x3565, 0x36b0, 0x3aad, 0x3a64, 0x3797, 0x368d, 0x35a6, 0x396f, 0x2a5e, 0x3a29, 0x38a7, 0x33a8, 0x3409, 0x3621, 0x3b02, 0x34a7, 0x3a94, 0x3819, 0x3695, 0x380a, 0x3acd, 0x396a, 0x395a, 0x3663, 0x3bbe, 0x3306, 0x3a4d, 0x3b0d, 0x3bc3, 0x30fa, 0x32ab, 0x31fd, 0x3bc9, 0x38ce, 0x3180, 0x3980, 0x34ec, 0x3a84, 0x3bc9, 0x3719, 0x3a76, 0x38ab, 0x3707, 0x3904, 0x33d9, 0x34d6, 0x3053, 0x3bd4, 0x2f03, 0x1dbf, 0x2e5f, 0x36fa, 0x191d, 0x3187, 0x223f, 0x384b, 0x36dc, 0x3549, 0x343f, 0x36d8, 0x36de, 0x31ff, 0x174e, 0x30d3, 0x3452, 0x3258, 0x30b1, 0x3127, 0x3840, 0x3991, 0x3b1b, 0x3a7c, 0x36ec, 0x2304, 0x3946, 0x3876, 0x3a5d, 0x3a76, 0x2f78, 0x3b01, 0x3934, 0x3bc4, -0x2b27, 0x3669, 0x38ce, 0x2cde, 0x38e1, 0x3abd, 0x2c4f, 0x3971, 0x3964, 0x3a9d, 0x38b9, 0x390f, 0x3475, 0x3b16, 0x38f0, 0x397e, 0x3996, 0x3223, 0x36c6, 0x3bfd, 0x3161, 0x3a70, 0x3961, 0x38e1, 0x2b2b, 0x32c1, 0x3683, 0x36bb, 0x381a, 0x3b92, 0x356a, 0x38c4, 0x38df, 0x3a7b, 0x3b3a, 0x35a2, 0x27d3, 0x3af2, 0x3489, 0x38c7, 0x3985, 0x3a03, 0x30f6, 0x3a92, 0x38d5, 0x39a0, 0x3749, 0x3784, 0x1c70, 0x356b, 0x2d5f, 0x39db, 0x37ab, 0x39fb, 0x3b2c, 0x2ef8, 0x3336, 0x3afd, 0x38f0, 0x358f, 0x3ac4, 0x293d, 0x3328, 0x3741, 0x3993, 0x3463, 0x3918, 0x332e, 0x356d, 0x36ee, 0x34e7, 0x3757, 0x34b5, 0x3b7c, 0x3a63, 0x3b6c, 0x34a6, 0x34f3, 0x346a, 0x2bcf, 0x363d, 0x3081, 0x3abc, 0x35a5, 0x36ff, 0x2cb7, 0x2a53, 0x37a3, 0x3a98, 0x3b92, 0x3a9a, 0x38ff, 0x39dc, 0x3289, 0x3357, 0x39f6, -0x3b74, 0x3a5e, 0x3ba9, 0x365e, 0x3aa5, 0x3b42, 0x39b5, 0x2fb7, 0x39e5, 0x263d, 0x3405, 0x259f, 0x381d, 0x38dc, 0x3152, 0x37f5, 0x38b6, 0x3bfd, 0x3a4e, 0x3804, 0x370f, 0x382f, 0x395d, 0x38a5, 0x2edd, 0x3ac9, 0x34dc, 0x2a2a, 0x2aba, 0x35d0, 0x36b4, 0x3ae1, 0x3b35, 0x3a49, 0x3b5e, 0x38e8, 0x30ed, 0x3ab4, 0x3a92, 0x3bd9, 0x3437, 0x36d0, 0x3aad, 0x36d6, 0x35ed, 0x3635, 0x3bf7, 0x345a, 0x300a, 0x31d2, 0x340c, 0x38fd, 0x39ad, 0x39ac, 0x38bf, 0x38f6, 0x2f7e, 0x3685, 0x3be9, 0x3af0, 0x35d1, 0x35fb, 0x35ad, 0x3a6d, 0x3a78, 0x3813, 0x36a8, 0x3a6e, 0x39fc, 0x3918, 0x2179, 0x38a2, 0x37f9, 0x38dc, 0x24a9, 0x3647, 0x386a, 0x2890, 0x2d0f, 0x31e3, 0x394a, 0x36b2, 0x3071, 0x292d, 0x3568, 0x3adb, 0x394a, 0x2ff6, 0x3142, 0x322b, 0x2696, 0x3954, 0x229d, 0x383a, 0x2f3d, 0x3b4e, -0x3b1c, 0xd7b, 0x379c, 0x3421, 0x39a0, 0x3557, 0x2e38, 0x3b3a, 0x270e, 0x250b, 0x3b0a, 0x3aa1, 0x2d72, 0x351c, 0x3a11, 0x382b, 0x37f8, 0x3a82, 0x39e8, 0x3a1d, 0x3a45, 0x2fb7, 0x341b, 0x39ea, 0x3646, 0x3b27, 0x3abd, 0x350b, 0x3a3a, 0x3557, 0x37db, 0x315b, 0x305a, 0x3bd7, 0x3b33, 0x32b9, 0x3503, 0x2749, 0x3532, 0x37f2, 0x348e, 0x3422, 0x32a4, 0x37bf, 0x3b7b, 0x378f, 0x3476, 0x3a1a, 0x39a2, 0x35d9, 0x3b4d, 0x39f0, 0x34a7, 0x36c6, 0x3ab4, 0x39c2, 0x385b, 0x3add, 0x34cf, 0x3604, 0x39e1, 0x3872, 0x3751, 0x32db, 0x38df, 0x3602, 0x3509, 0x37d5, 0x342e, 0x39ef, 0x2f59, 0x2505, 0x314d, 0x35ff, 0x3bae, 0x3b38, 0x32af, 0x3b9b, 0x3b03, 0x2c5e, 0x3940, 0x38ef, 0x324c, 0x399a, 0x3a14, 0x39c6, 0x3a33, 0x382a, 0x3b36, 0x3ae7, 0x3b71, 0x3020, 0x3a14, 0x33d2, 0x3b1d, 0x2660, -0x2ace, 0x3a36, 0x39d6, 0x398d, 0x3ae2, 0x39dc, 0x3bb3, 0x26d5, 0x3a4a, 0x36ad, 0x3b31, 0x2b7e, 0x3baf, 0x3314, 0x2e0b, 0x31c1, 0x25a9, 0x378c, 0x3b45, 0x3ae9, 0x3586, 0x39fe, 0x3b5b, 0x3b18, 0x3a1b, 0x399b, 0x3aad, 0x30e1, 0x3b3b, 0x2d9f, 0x2614, 0x354e, 0x3806, 0x393e, 0x3564, 0x2346, 0x3b5e, 0x382f, 0x31c9, 0x3be1, 0x2e41, 0x394e, 0x346a, 0x3976, 0x38e7, 0x3503, 0x387f, 0x3025, 0x3232, 0x283b, 0x37d2, 0x32aa, 0x36e0, 0x3b92, 0x3a41, 0x2f32, 0x34cc, 0x3a30, 0x3a69, 0x3671, 0x3894, 0x3b3d, 0x3468, 0x3836, 0x2303, 0x2e8f, 0x3186, 0x37d1, 0x371f, 0x381a, 0x3af8, 0x2ca8, 0x31ba, 0x3a59, 0x3971, 0x3bdb, 0x3add, 0x35af, 0x3b81, 0x2f19, 0x3963, 0x3b58, 0x3aa4, 0x3b98, 0x3808, 0x33b7, 0x3833, 0x3506, 0x3467, 0x2f27, 0x35be, 0x346e, 0x39c9, 0x3677, 0x31b5, 0x3bf4, -0x3506, 0x30a7, 0x370d, 0x367e, 0x3264, 0x2fb7, 0x30d5, 0x3814, 0x3152, 0x38aa, 0x3a77, 0x2dde, 0x3077, 0x38df, 0x3744, 0x2af8, 0x37f8, 0x3aa2, 0x39e3, 0x3ada, 0x3931, 0x3bc0, 0x34b2, 0x35de, 0x33c8, 0x34d4, 0x395a, 0x36a1, 0x3a3a, 0x33e3, 0x38d7, 0x3476, 0x3b6f, 0x3506, 0x3448, 0x3b2c, 0x3766, 0x382b, 0x2efd, 0x33ec, 0x242c, 0x3976, 0x3027, 0x2c5f, 0x37df, 0x3b1a, 0x3641, 0x352d, 0x39ab, 0x3b49, 0x3a91, 0x35ba, 0x382f, 0x2b4c, 0x366f, 0x2f0b, 0x33e3, 0x2ccd, 0x3530, 0x33d0, 0x264e, 0x39b4, 0x3968, 0x29f5, 0x3a2c, 0x299a, 0x39c4, 0x380d, 0x3be2, 0x34b2, 0x3879, 0x3532, 0x34ac, 0x3685, 0x3b5e, 0x3426, 0x3b4d, 0x34ec, 0x32e0, 0x3767, 0x39d7, 0x3119, 0x39db, 0x36e1, 0x39ec, 0x388d, 0x3731, 0x314a, 0x39c5, 0x3325, 0x3284, 0x38c5, 0x2cf4, 0x2180, 0x3614, 0x382e, -0x2afc, 0x3562, 0x365c, 0x32dd, 0x3a1d, 0x39c0, 0x3510, 0x3ae7, 0x22b7, 0x3538, 0x3604, 0x3bb0, 0x3a8e, 0x38ca, 0x379d, 0x36f1, 0x3947, 0x317f, 0x2bfa, 0x3bc0, 0x3ad4, 0x3a19, 0x308b, 0x390b, 0x353d, 0x3599, 0x344e, 0x3159, 0x39fc, 0x362e, 0x3bf5, 0x3246, 0x38e9, 0x3551, 0x3981, 0x3776, 0x3964, 0x3966, 0x335b, 0x3361, 0x3abc, 0x39d1, 0x3b96, 0x3a40, 0x3bfc, 0x30f6, 0x2fc2, 0x350a, 0x3857, 0x3175, 0x3929, 0x383e, 0x38c1, 0x3b21, 0x3025, 0x3a20, 0x3b6f, 0x3600, 0x3b06, 0x30d2, 0x30c3, 0x3550, 0x3025, 0x33c7, 0x3724, 0x3819, 0x38e3, 0x33fe, 0x3ad1, 0x2f0b, 0x38fe, 0x3458, 0x3bca, 0x391e, 0x345a, 0x36da, 0x38d7, 0x2dbd, 0x2c4e, 0x38b4, 0x35ea, 0x2970, 0x2ec0, 0x2519, 0x3552, 0x37cd, 0x3893, 0x3150, 0x38d6, 0x360d, 0x3986, 0x38e3, 0x3847, 0x36dc, 0x3a12, 0x3a3b, -0x34ea, 0x3a8b, 0x31db, 0x3a10, 0x34ca, 0x3b7e, 0x324e, 0x393b, 0x3a38, 0x3791, 0x2727, 0x31a9, 0x3beb, 0x3a43, 0x3ad3, 0x2c46, 0x3bc4, 0x38a9, 0x3918, 0x3b1c, 0x381d, 0x32aa, 0x367b, 0x3a80, 0x3a59, 0x37f6, 0x37ac, 0x36aa, 0x3072, 0x3960, 0x388c, 0x3a91, 0x3908, 0x34ab, 0x2f14, 0x3b72, 0x38f9, 0x359f, 0x38e2, 0x2938, 0x39ba, 0x2aa7, 0x3276, 0x3a66, 0x394d, 0x2de4, 0x39b0, 0x3835, 0x3b49, 0x2d77, 0x3ba2, 0x348b, 0x39f0, 0x381d, 0x382c, 0x384d, 0x3798, 0x3a0f, 0x38c3, 0x2ecb, 0x3472, 0x308f, 0x350c, 0x3014, 0x38e7, 0x2aff, 0x30ec, 0x3928, 0x36f5, 0x3909, 0x3b46, 0x2a93, 0x37cb, 0x3bb6, 0x2fbc, 0x3a3a, 0x3a47, 0x343e, 0x3bf1, 0x3b8f, 0x3bcb, 0x376d, 0x3669, 0x3892, 0x35c2, 0x3512, 0x370f, 0x35dc, 0x3923, 0x39e8, 0x3880, 0x288b, 0x36e7, 0x359e, 0x346f, 0x3b64, -0x3b1c, 0x340e, 0x25ab, 0x3b4e, 0x3897, 0x3bdb, 0x2da4, 0x389c, 0x36fd, 0x3a3c, 0x2f2d, 0x38fb, 0x395c, 0x2ea7, 0x3949, 0x368b, 0x35a3, 0x377c, 0x32de, 0x35b1, 0x3529, 0x301d, 0x3771, 0x393f, 0x3993, 0x3ae0, 0x3bda, 0x375b, 0x31ff, 0x3989, 0x3ad0, 0x3bb6, 0x3814, 0x3999, 0x3854, 0x39e7, 0x37fa, 0x3afc, 0x185f, 0x2e32, 0x3697, 0x3942, 0x3aa0, 0x3b75, 0x3ad3, 0x3aa8, 0x39b8, 0x38c2, 0x38fb, 0x39a4, 0x3b8f, 0x3b2e, 0x334d, 0x3a0c, 0x361b, 0x3a46, 0x3337, 0x388d, 0x321b, 0x38bc, 0x3005, 0x35a4, 0x3bf5, 0x3bcf, 0x3a44, 0x3ac7, 0x3a7d, 0x3b2c, 0x39c5, 0x2001, 0x3594, 0x3a29, 0x3131, 0x3ab9, 0x39d9, 0x38c4, 0x3666, 0x37a8, 0x3a75, 0x3a10, 0x3441, 0x3b7e, 0x23f5, 0x3ab2, 0x306f, 0x3bc0, 0x3989, 0x3361, 0x36ea, 0x2eb9, 0x360f, 0x351c, 0x2a16, 0x3bfe, 0x372b, 0x3b97, -0x3bbf, 0x2cf5, 0x3922, 0x316e, 0x37ad, 0x3a7f, 0x3863, 0x3a4c, 0x37a4, 0x35c1, 0x3b77, 0x3549, 0x3a83, 0x37c4, 0x3b84, 0x38c6, 0x3a7f, 0x2f24, 0x2fc0, 0x3475, 0x3a6a, 0x3bc4, 0x3a21, 0x3b96, 0x365c, 0x38b7, 0x31ce, 0x3bcc, 0x3b80, 0x3a31, 0x3523, 0x2d9d, 0x359e, 0x3afe, 0x371d, 0x2d94, 0x3a2a, 0x3ace, 0x3bed, 0x3726, 0x2fa1, 0x3abe, 0x3624, 0x2be4, 0x2b70, 0x394e, 0x3640, 0x391d, 0x3892, 0x38e2, 0x333c, 0x3080, 0x2ac2, 0x326c, 0x2f8b, 0x38ac, 0x3097, 0x3b80, 0x3ae4, 0x39d4, 0x3676, 0x3969, 0x34c8, 0x3906, 0x2930, 0x3acb, 0x3bb3, 0x3bba, 0x3646, 0x2ba1, 0x30bf, 0x38f2, 0x3bbc, 0x3a3f, 0x34c2, 0x3832, 0x3938, 0x3a79, 0x3546, 0x3bd5, 0x3ae5, 0x329a, 0x342c, 0x2c42, 0x35c1, 0x2616, 0x3ad4, 0x38c6, 0x38b6, 0x3b0d, 0x38dd, 0x2e8d, 0x3891, 0x2f1c, 0x3b9d, 0x3a8f, -0x30e4, 0x2c4f, 0x2fb6, 0x31da, 0x3784, 0x3043, 0x2d5c, 0x3bc0, 0x3998, 0x3b84, 0x387f, 0x3b93, 0x3898, 0x337c, 0x32b4, 0x28c3, 0x334f, 0x389c, 0x3865, 0x360b, 0x3a70, 0x3201, 0x324c, 0x3583, 0x381a, 0x3a58, 0x33e9, 0x3b02, 0x3093, 0x33c0, 0x375c, 0x305d, 0x1f9a, 0x38e4, 0x3bc7, 0x35bb, 0x2d39, 0x3299, 0x3753, 0x3b37, 0x3af5, 0x36d7, 0x3324, 0x3716, 0x3b60, 0x3202, 0x3949, 0x3b79, 0x36c3, 0x3901, 0x39f5, 0x2b55, 0x3996, 0x38e1, 0x3836, 0x3b5a, 0x3790, 0x39f6, 0x3532, 0x37ac, 0x2bc5, 0x3948, 0x3b8f, 0x37b8, 0x3999, 0x3413, 0x3a8f, 0x2b74, 0x2839, 0x3870, 0x369f, 0x38b9, 0x3819, 0x3aef, 0x37f9, 0x368b, 0x3bf4, 0x30a6, 0x2e58, 0x3b6e, 0x3b59, 0x3a5d, 0x2e63, 0x2a40, 0x34b3, 0x377d, 0x3991, 0x3542, 0x3300, 0x396d, 0x3bf4, 0x371b, 0x2c09, 0x3020, 0x3a1e, 0x32c5, -0x3b59, 0x3bb5, 0x3a14, 0x384f, 0x3534, 0x3bb6, 0x3aef, 0x3b51, 0x357e, 0x3760, 0x3395, 0x3046, 0x3977, 0x380e, 0x3b85, 0x39ed, 0x3038, 0x2bdc, 0x3aec, 0x3aa6, 0x3ace, 0x38b5, 0x308b, 0x39e2, 0x3271, 0x3b31, 0x3693, 0x397e, 0x39a9, 0x396f, 0x3021, 0x3b12, 0x350e, 0x38ea, 0x38ef, 0x3aae, 0x37b3, 0x2e83, 0x32f6, 0x3818, 0x3702, 0x332d, 0x3bfc, 0x3b15, 0x3ae6, 0x337f, 0x29f9, 0x3ba8, 0x38b1, 0x381a, 0x3bd6, 0x3a40, 0x3027, 0x3b8b, 0x38b2, 0x35d1, 0x39b7, 0x3adf, 0x2b70, 0x1a44, 0x3470, 0x3b21, 0x3774, 0x3b7a, 0x38b8, 0x304d, 0x3bd6, 0x2a2a, 0x3a95, 0x34bc, 0x2835, 0x3b03, 0x35bd, 0x3bc2, 0x30fe, 0x3a5d, 0x3829, 0x34be, 0x3398, 0x32f7, 0x3b1c, 0x34a5, 0x3511, 0x3802, 0x383e, 0x3176, 0x3241, 0x359f, 0x36f9, 0x380a, 0x310c, 0x3b1f, 0x375d, 0x365a, 0x35d0, 0x3302, -0x3459, 0x35e1, 0x3514, 0x3ba6, 0x381e, 0x30d8, 0x320a, 0x3b8a, 0x39b8, 0x3873, 0x3982, 0x3ae7, 0x3a5b, 0x380d, 0x3bf6, 0x396d, 0x3126, 0x1cf5, 0x37f7, 0x3b43, 0x37a7, 0x3b91, 0x357b, 0x216d, 0x3336, 0x3885, 0x26d5, 0x38f1, 0x369e, 0x3b62, 0x30d5, 0x3a41, 0x31b1, 0x3b8d, 0x3983, 0x2cfb, 0x3857, 0x3239, 0x2ecf, 0x2e22, 0x3889, 0x31a0, 0x3432, 0x3957, 0x2aad, 0x3b93, 0x38e5, 0x3a32, 0x3bf6, 0x2a9e, 0x3a57, 0x34b8, 0x2e9b, 0x3a83, 0x3b86, 0x314e, 0x3738, 0x3954, 0x36bb, 0x3a82, 0x361e, 0x380a, 0x3bc7, 0x39ea, 0x37f9, 0x3a9f, 0x38fa, 0x3916, 0x3b87, 0x389c, 0x375f, 0x30b5, 0x381d, 0x39f9, 0x3969, 0x3b91, 0x31b3, 0x3968, 0x3baf, 0x3395, 0x38a5, 0x3ae2, 0x3b91, 0x3a31, 0x3a75, 0x3667, 0x346f, 0x31b1, 0x3921, 0x38a1, 0x3981, 0x3ab5, 0x34c5, 0x324b, 0x3b5f, 0x3b66, -0x35e0, 0x3b4e, 0x34ef, 0x1c7e, 0x3b6e, 0x3724, 0x3858, 0x381c, 0x3bc1, 0x3475, 0x3a93, 0x38a0, 0x3489, 0x3951, 0x3918, 0x304f, 0x314f, 0x3ad7, 0x382d, 0x38ef, 0x3818, 0x33a3, 0x392d, 0x3079, 0x39b8, 0x3b2f, 0x3ad7, 0x3a4a, 0x383b, 0x295b, 0x380a, 0x3895, 0x3a0a, 0x3b28, 0x36ef, 0x3617, 0x3668, 0x3b95, 0x38e3, 0x3b69, 0x3448, 0x38bc, 0x34b1, 0x34d7, 0x3146, 0x269b, 0x2b3b, 0x371a, 0x3a3e, 0x3a71, 0x3791, 0x3b89, 0x3a76, 0x3bfd, 0x354e, 0x3bc8, 0x3937, 0x302e, 0x38e3, 0x2c2c, 0x20e6, 0x3880, 0x2c5e, 0x2506, 0x38b6, 0x3b42, 0x3be1, 0x3ab4, 0x3a0d, 0x3573, 0x31a6, 0x366c, 0x37c2, 0x34b2, 0x3856, 0x3bd4, 0x3150, 0x2adb, 0x3779, 0x3694, 0x2a1e, 0x3763, 0x39cd, 0x39a5, 0x3470, 0x348e, 0x399f, 0x3326, 0x2d96, 0x363a, 0x3610, 0x38fd, 0x24f0, 0x34bd, 0x32c9, 0x3869, -0x361b, 0x3307, 0x3bfc, 0x36bd, 0x2784, 0x37f1, 0x3a2e, 0x3579, 0x35ab, 0x39c9, 0x39b4, 0x2e9a, 0x3869, 0x24bf, 0x2c45, 0x3a0b, 0x369d, 0x391f, 0x3789, 0x2d9b, 0x37ac, 0x3829, 0x3177, 0x3286, 0x312b, 0x3153, 0x2ff3, 0x375c, 0x2afb, 0x290a, 0x3aaf, 0x3b17, 0x39f6, 0x3a53, 0x3888, 0x3ab6, 0x37e8, 0x3442, 0x3523, 0x3a72, 0x2d0a, 0x3551, 0x3923, 0x3538, 0x3abc, 0x3a29, 0x358a, 0x2ec5, 0x3a32, 0x3371, 0x3438, 0x301a, 0x3877, 0x36f7, 0x39e0, 0x372f, 0x3b39, 0x399c, 0x38b5, 0x3488, 0x392b, 0x312e, 0x3bd2, 0x3b34, 0x35d7, 0x3193, 0x38a5, 0x3a75, 0x3768, 0x3660, 0x3add, 0x38c6, 0x3944, 0x353a, 0x398e, 0x3627, 0x361a, 0x32ca, 0x38dd, 0x3293, 0x37f1, 0x2b97, 0x2465, 0x3a2e, 0x39c5, 0x3bef, 0x3879, 0x3a91, 0x3873, 0x39ae, 0x3994, 0x35aa, 0x3648, 0x376e, 0x371e, 0x3a8c, -0x359b, 0x381d, 0x3506, 0x382e, 0x39b0, 0x2f4c, 0x3022, 0x3af3, 0x3828, 0x3407, 0x3244, 0x306d, 0x3c00, 0x3019, 0x39b3, 0x357e, 0x36bd, 0x3979, 0x369a, 0x2025, 0x3ab5, 0x3509, 0x3969, 0x3b5f, 0x38b3, 0x3a55, 0x3899, 0x3a8d, 0x348a, 0x3010, 0x3b00, 0x374c, 0x37e7, 0x35f2, 0x36bc, 0x31ec, 0x3b49, 0x3960, 0x27a1, 0x3984, 0x3824, 0x3a95, 0x39e4, 0x3901, 0x34a8, 0x354a, 0x3929, 0x38ef, 0x399c, 0x381a, 0x34ea, 0x247b, 0x3113, 0x37ff, 0x3923, 0x3a12, 0x398a, 0x3135, 0x374c, 0x345b, 0x3aae, 0x33ad, 0x3834, 0x3426, 0x32a3, 0x3854, 0x31cd, 0x3a78, 0x32ea, 0x288e, 0x38a9, 0x2d3a, 0x31ce, 0x2ed6, 0x393d, 0x197a, 0x3880, 0x39cd, 0x3884, 0x3af0, 0x312d, 0x3711, 0x32be, 0x3193, 0x323d, 0x3222, 0x28b9, 0x3bcc, 0x3626, 0x3836, 0x36bf, 0x3393, 0x32d3, 0x39f3, 0x3b91, 0x3719, -0x38ac, 0x1036, 0x3759, 0x3547, 0x365e, 0x3a68, 0x37eb, 0x353b, 0x3931, 0x294d, 0x35c8, 0x3aad, 0x387c, 0x3ac5, 0x3a08, 0x3a0d, 0x34b8, 0x3747, 0x3a10, 0x3908, 0x3825, 0x3509, 0x379f, 0x2ebe, 0x3a30, 0x353f, 0x3ab6, 0x35d3, 0x3ae3, 0x39a0, 0x272d, 0x2da5, 0x3a07, 0x323e, 0x3865, 0x3700, 0x2c37, 0x2fb3, 0x36e3, 0x279c, 0x364d, 0x38b9, 0x39b5, 0x35d8, 0x376b, 0x37f2, 0x3421, 0x3a83, 0x3562, 0x2cad, 0x382f, 0x3703, 0x38bf, 0x3afc, 0x3800, 0x3793, 0x3ae7, 0x39f6, 0x2d8f, 0x365d, 0x380f, 0x39cf, 0x3609, 0x2da9, 0x2cc7, 0x361c, 0x3682, 0x2762, 0x3611, 0x3954, 0x21e5, 0x29bd, 0x3b94, 0x32e9, 0x36fc, 0x3b3c, 0x3bec, 0x3bde, 0x35b2, 0x3640, 0x3824, 0x2dba, 0x35da, 0x3853, 0x3b62, 0x3b56, 0x373f, 0x324d, 0x395f, 0x2a6b, 0x3b59, 0x392f, 0x3953, 0x3bbe, 0x3a44, 0x38fc, -0x38aa, 0x3987, 0x24c1, 0x3a51, 0x3b03, 0x3770, 0x381d, 0x3847, 0x394a, 0x35fe, 0x3b59, 0x34d4, 0x380f, 0x3985, 0x2719, 0x3811, 0x3a63, 0x387d, 0x370b, 0x36e2, 0x38f4, 0x3af2, 0x364c, 0x30e7, 0x3816, 0x2afe, 0x339b, 0x380d, 0x304e, 0x3b55, 0x3a4e, 0x2ebb, 0x377a, 0x396d, 0x31bf, 0x3914, 0x372b, 0x38a5, 0x39a9, 0x24f1, 0x39ad, 0x348a, 0x3b26, 0x3ab0, 0x35f3, 0x38ac, 0x34a5, 0x39b2, 0x3a88, 0x364d, 0x36a3, 0x33eb, 0x39f7, 0x3ad7, 0x37c1, 0x3805, 0x357a, 0x3949, 0x28ee, 0x3b2e, 0x3ba7, 0x381c, 0x35bf, 0x323a, 0x39dd, 0x3b40, 0x3908, 0x32c0, 0x3a12, 0x3419, 0x388e, 0x3890, 0x3b59, 0x2ea4, 0x363b, 0x3790, 0x3a00, 0x3b36, 0x2a03, 0x3875, 0x3932, 0x3513, 0x3755, 0x2d73, 0x19b7, 0x352b, 0x309e, 0x2842, 0x38cc, 0x38a0, 0x3423, 0x380e, 0x3b76, 0x39ad, 0x3a11, 0x3a5b, -0x3bd8, 0x3b5c, 0x30ee, 0x3b97, 0x32ee, 0x3a5d, 0x3bfb, 0x3706, 0x2e45, 0x2f4f, 0x3281, 0x39ec, 0x3705, 0x369c, 0x3022, 0x3b27, 0x3a91, 0x3a6d, 0x3438, 0x3461, 0x3846, 0x394f, 0x3772, 0x36f3, 0x34d2, 0x39ee, 0x3578, 0x3959, 0x3282, 0x1b2c, 0x39be, 0x37f0, 0x3909, 0x34aa, 0x3ad6, 0x3ad8, 0x392b, 0x39b5, 0x3391, 0x3aa3, 0x3854, 0x3a72, 0x31bc, 0x23fa, 0x331a, 0x38aa, 0x3a73, 0x2a74, 0x3956, 0x30fd, 0x36bd, 0x312d, 0x38b3, 0x3b26, 0x1e7f, 0x310a, 0x235b, 0x367b, 0x383e, 0x3b57, 0x39b0, 0x3785, 0x2ddc, 0x38de, 0x2c79, 0x386b, 0x3ace, 0x32e5, 0x2c3a, 0x3bc5, 0x3a95, 0x317b, 0x3a54, 0x3ba1, 0x38ff, 0x3b54, 0x39dd, 0x344c, 0x38d0, 0x3984, 0x32d7, 0x35c3, 0x319e, 0x3881, 0x3b80, 0x3923, 0x396f, 0x343d, 0x378e, 0x39e0, 0x3434, 0x38ab, 0x3a55, 0x3905, 0x2a86, 0x3aa6, -0x2c3b, 0x33da, 0x2eb0, 0x3aa4, 0x2871, 0x31a0, 0x35ba, 0x35ed, 0x3a48, 0x3968, 0x35f8, 0x2810, 0x3ab8, 0x395a, 0x369e, 0x3664, 0x3bef, 0x30b9, 0x33f3, 0x366d, 0x3961, 0x377d, 0x3367, 0x3aa2, 0x39de, 0x3bdc, 0x37f3, 0x3618, 0x394c, 0x39c6, 0x3867, 0x34c3, 0x358b, 0x3256, 0x3aac, 0x3623, 0x39ee, 0x3723, 0x3b2a, 0x3a63, 0x3855, 0x38a1, 0x2cb1, 0x3b80, 0x38d6, 0x3045, 0x3bc3, 0x3bdf, 0x378b, 0x3af4, 0x2411, 0x3863, 0x3869, 0x353b, 0x24cc, 0x396a, 0x3a09, 0x3aab, 0x32cd, 0x3970, 0x3178, 0x3a61, 0x2faa, 0x3a82, 0x3487, 0x3af5, 0x36ee, 0x39f0, 0x2a25, 0x3006, 0x3bc0, 0x3151, 0x31b0, 0x36e6, 0x351c, 0x2a55, 0x3846, 0x38b7, 0x37e3, 0x3a7c, 0x293b, 0x327d, 0x3680, 0x390a, 0x3ad5, 0x2e0c, 0x3bb9, 0x1ddf, 0x35fa, 0x3995, 0x380c, 0x3923, 0x3a4f, 0x3ad5, 0x3a80, 0x3113, -0x324a, 0x39c6, 0x353b, 0x2d16, 0x346a, 0x321f, 0x3703, 0x2f6c, 0x2c37, 0x3ada, 0x3be4, 0x3b3e, 0x3aac, 0x3a7f, 0x36d4, 0x3606, 0x3343, 0x393a, 0x382b, 0x3424, 0x38d4, 0x39ed, 0x3013, 0x31ff, 0x3794, 0x3b1c, 0x3919, 0x3bb5, 0x3769, 0x39a1, 0x3be5, 0x3b1a, 0x35fd, 0x3ba8, 0x2af5, 0x38ea, 0x3b19, 0x3814, 0x39ea, 0x3b1e, 0x37c0, 0x34f3, 0x395a, 0x38b6, 0x392a, 0x38a5, 0x3121, 0x2d9b, 0x3799, 0x304c, 0x349d, 0x3153, 0x398a, 0x3a70, 0x3a3d, 0x34bd, 0x39d7, 0x37b6, 0x3817, 0x34a8, 0x3ae2, 0x350d, 0x3ad0, 0x3a0e, 0x3496, 0x3b73, 0x3879, 0x3841, 0x3316, 0x3671, 0x36a4, 0x30bf, 0x3a5e, 0x3594, 0x3bde, 0x3b55, 0x3982, 0x395b, 0x364c, 0x3a6c, 0x32b0, 0x39cd, 0x3900, 0x38dc, 0x390a, 0x2d48, 0x376e, 0x3473, 0x2c65, 0x3934, 0x30cd, 0x3518, 0x3ba4, 0x3423, 0x2f57, 0x3682, -0x3979, 0x37b1, 0x3926, 0x343b, 0x360a, 0x234e, 0x3895, 0x3a09, 0x3810, 0x39d4, 0x3529, 0x3a28, 0x331a, 0x385f, 0x2576, 0x3973, 0x3a0e, 0x33b0, 0x21da, 0x3925, 0x32c8, 0x2fbe, 0x32e7, 0x3b38, 0x3a9a, 0x2ab2, 0x320d, 0x3be9, 0x3720, 0x351d, 0x311b, 0x38f2, 0x3952, 0x3985, 0x3b4b, 0x3634, 0x38af, 0x398b, 0x278f, 0x3460, 0x2f0d, 0x28e1, 0x3412, 0x3978, 0x372c, 0x3a02, 0x2e72, 0x10dc, 0x36c6, 0x3883, 0x3b5a, 0x38e8, 0x3b97, 0x394e, 0x2d07, 0x39b1, 0x3754, 0x2c54, 0x3577, 0x3ab3, 0x3a2a, 0x376a, 0x39b4, 0x396a, 0x3222, 0x396c, 0x39dc, 0x34d5, 0x3903, 0x3841, 0x3912, 0x3bdb, 0x3ba8, 0x364c, 0x39b0, 0x38a9, 0x3acd, 0x3015, 0x368d, 0x3b46, 0x351a, 0x38e2, 0x36f2, 0x37c7, 0x3bdb, 0x3b60, 0x3ba0, 0x3bc3, 0x363f, 0x28c1, 0x2add, 0x3aaa, 0x397b, 0x390f, 0x2f8f, 0x3836, -0x380f, 0x35e9, 0x35ee, 0x3386, 0x388f, 0x3bca, 0x3782, 0x37f2, 0x308e, 0x3a28, 0x3738, 0x31f6, 0x36a4, 0x39eb, 0x2b1f, 0x3ba6, 0x3322, 0x3ad6, 0x386f, 0x3b19, 0x3aa5, 0x2dd8, 0x3a6a, 0x380b, 0x39e3, 0x3225, 0x3bb2, 0x39e9, 0x30e5, 0x39df, 0x3ae8, 0x3075, 0x3025, 0x2f80, 0x30c1, 0x3854, 0x3914, 0x24e1, 0x3b4c, 0x32f6, 0x2e0e, 0x38a8, 0x3572, 0x2e9b, 0x38c3, 0x31f1, 0x3357, 0x3770, 0x3575, 0x317f, 0x345d, 0x3162, 0x38cd, 0x3111, 0x3543, 0x36c2, 0x36d6, 0x3754, 0x3b6e, 0x3900, 0x3996, 0x38b5, 0x352e, 0x3a32, 0x3881, 0x2487, 0x3795, 0x3814, 0x38f9, 0x388b, 0x366d, 0x3b8a, 0x3751, 0x3a1b, 0x380d, 0x39da, 0x3a56, 0x306c, 0x3295, 0x3992, 0x345c, 0x3a88, 0x370a, 0x357e, 0x31bc, 0x3af0, 0x2f33, 0x2c05, 0x3255, 0x595, 0x3acd, 0x3615, 0x26d4, 0x31b8, 0x3860, 0x3839, -0x30a4, 0x2aed, 0x381b, 0x3438, 0x3519, 0x3a7d, 0x39e4, 0x3704, 0x376f, 0x31d2, 0x3643, 0x29d2, 0x3101, 0x34cc, 0x39c1, 0x333f, 0x3a92, 0x2b34, 0x2d97, 0x334d, 0x3b85, 0x3b74, 0x37f2, 0x38e0, 0x3092, 0x34d3, 0x38af, 0x3489, 0x365c, 0x3bab, 0x3abc, 0x3b90, 0x3251, 0x3397, 0x399d, 0x32a2, 0x3545, 0x29ac, 0x3405, 0x37dd, 0x3899, 0x312c, 0x3500, 0x3983, 0x3bd4, 0x3bfc, 0x33a7, 0x2df1, 0x2c94, 0x374e, 0x351c, 0x3a18, 0x3984, 0x3b46, 0x2d2c, 0x2997, 0x365e, 0x3461, 0x3654, 0x2530, 0x3945, 0x1e1e, 0x3374, 0x2fb7, 0x31de, 0x3bff, 0x387b, 0x3701, 0x284f, 0x3b59, 0x3a7d, 0x3866, 0x3958, 0x3a6c, 0x358a, 0x3132, 0x35be, 0x3819, 0x386a, 0x369d, 0x3b3b, 0x3549, 0x3b06, 0x3173, 0x31f2, 0x39fb, 0x35a6, 0x3525, 0x3737, 0x3abb, 0x3b5e, 0x3122, 0x39e5, 0x3538, 0x3817, 0x3727, -0x3979, 0x39fe, 0x3487, 0x3a8e, 0x3407, 0x3140, 0x3afa, 0x39b7, 0x374e, 0x3b66, 0x3b0f, 0x39c9, 0x3266, 0x34dc, 0x396a, 0x38db, 0x35bd, 0x31c8, 0x37ed, 0x3667, 0x357e, 0x3518, 0x3139, 0x3bd5, 0x3157, 0x3960, 0x39d2, 0x3a38, 0x366c, 0x3876, 0x39b9, 0x2cf0, 0x3825, 0x3a80, 0x3bbf, 0x3a2d, 0x2fd3, 0x35e2, 0x35c6, 0x3a07, 0x368f, 0x391e, 0x3be7, 0x39be, 0x3533, 0x39c7, 0x3137, 0x2d6e, 0x3905, 0x3b95, 0x38f8, 0x39f5, 0x3bc1, 0x38a7, 0x38e5, 0x2c58, 0x343c, 0x3656, 0x2c1c, 0x3b1d, 0x39c9, 0x3801, 0x39c1, 0x3bed, 0x26be, 0x362a, 0x3655, 0x31b4, 0x2ad7, 0x3810, 0x3afd, 0x1edc, 0x35e8, 0x2d9f, 0x32fb, 0x316e, 0x38ed, 0x3839, 0x390b, 0x3b97, 0x38e2, 0x3746, 0x3b3b, 0x3b03, 0x395e, 0x353e, 0x375a, 0x3824, 0x25bf, 0x357f, 0x31a9, 0x3aa5, 0x35d6, 0x2a95, 0x1b91, 0x318c, -0x3650, 0x38de, 0x32bf, 0x287b, 0x305d, 0x393e, 0x3bb2, 0x352d, 0x2593, 0x386f, 0x3814, 0x38bd, 0x3532, 0x3084, 0x2880, 0x3bdb, 0x37da, 0x3073, 0x3850, 0x3026, 0x337f, 0x3b64, 0x37e5, 0x33ad, 0x3624, 0x319f, 0x36d7, 0x3939, 0x3553, 0x359d, 0x392d, 0x385f, 0x394f, 0x3aca, 0x34b8, 0x3138, 0x367a, 0x38a4, 0x3a8e, 0x369e, 0x34ef, 0x3b01, 0x3ad8, 0x3875, 0x3bd5, 0x39c4, 0x3b56, 0x394d, 0x38ba, 0x3a48, 0x3ade, 0x3bd6, 0x395f, 0x3737, 0x2dee, 0x3891, 0x35ed, 0x39b2, 0x2fe6, 0x3130, 0x346e, 0x3886, 0x2fb6, 0x3183, 0x3ae1, 0x3301, 0x38f9, 0x3470, 0x3701, 0x3845, 0x327d, 0x33b3, 0x3b06, 0x358e, 0x35eb, 0x38a2, 0x34d1, 0x317c, 0x3b0f, 0x395e, 0x36dc, 0x3511, 0x3a8b, 0x3997, 0x380b, 0x38cb, 0x3b3c, 0x3b54, 0x3330, 0x33d7, 0x357d, 0x3439, 0x2bd4, 0x3678, 0x3891, 0x39cc, -0x3bdb, 0x3af1, 0x3828, 0x3a2b, 0x39b6, 0x36f5, 0x374a, 0x3752, 0x3b11, 0x3306, 0x3bac, 0x3799, 0x39fe, 0x38f5, 0x3219, 0x36df, 0x3ade, 0x3ab0, 0x2fa1, 0x3472, 0x3a33, 0x34d9, 0x390e, 0x37c0, 0x2d6b, 0x38e1, 0x3bdc, 0x3887, 0x3644, 0x319b, 0x32a7, 0x2876, 0x337a, 0x3b38, 0x3904, 0x354b, 0x24b5, 0x1699, 0x3b55, 0x39b7, 0x278d, 0x3784, 0x388d, 0x389f, 0x34ac, 0x30bc, 0x3180, 0x37e5, 0x3462, 0x3641, 0x363a, 0x3805, 0x2fa2, 0x260f, 0x3a51, 0x38c4, 0x30e4, 0x3836, 0x3478, 0x3a31, 0x36ae, 0x3294, 0x3b82, 0x3321, 0x3877, 0x3209, 0x38ad, 0x31af, 0x35b4, 0x28af, 0x3699, 0x3490, 0x3974, 0x3272, 0x391c, 0x3864, 0x31fe, 0x3780, 0x39d9, 0x3607, 0x35a1, 0x339e, 0x3047, 0x33c0, 0x3506, 0x2f45, 0x3b6e, 0x3875, 0x383b, 0x3b4b, 0x3859, 0x35c7, 0x2afe, 0x34f1, 0x363f, 0x2ccc, -0x2888, 0x3101, 0x397a, 0x3715, 0x35b1, 0x369b, 0x3a0c, 0x3839, 0x3514, 0x3189, 0x3be6, 0x3214, 0x3b29, 0x312e, 0x3879, 0x33a8, 0x3a6f, 0x3998, 0x3959, 0x3b41, 0x348b, 0x3acb, 0x391f, 0x39b5, 0x353b, 0x3513, 0x395b, 0x3a72, 0x329c, 0x3a2e, 0x2c1b, 0x376e, 0x3857, 0x35ce, 0x34d3, 0x3952, 0x3b6f, 0x3978, 0x3942, 0x3741, 0x35a2, 0x3201, 0x3806, 0x397a, 0x393f, 0x2f4e, 0x3a07, 0x3b5b, 0x33aa, 0x3686, 0x394b, 0x3b64, 0x3a53, 0x385a, 0x390a, 0x3965, 0x34b6, 0x2f08, 0x39b3, 0x3808, 0x3631, 0x35af, 0x3628, 0x31a2, 0x3b7f, 0x3a04, 0x2951, 0x3a91, 0x39a9, 0x3877, 0x3acc, 0x3aff, 0x3bae, 0x2aa4, 0x3bbe, 0x3b0c, 0x3462, 0x3842, 0x3902, 0x3a55, 0x30e8, 0x3520, 0x30bd, 0x3147, 0x3ba1, 0x3945, 0x37b9, 0x30b4, 0x3573, 0x3b4f, 0x3a1b, 0x3a4a, 0x2d52, 0x345c, 0x366c, 0x3451, -0x34b3, 0x2d91, 0x3564, 0x3803, 0x3b06, 0x3bf5, 0x36b0, 0x356e, 0x341d, 0x39fe, 0x3b9e, 0x2d69, 0x3329, 0x3b30, 0x300d, 0x34e8, 0x3823, 0x3ab8, 0x38ce, 0x3b3c, 0x2983, 0x3680, 0x2841, 0x39ed, 0x393e, 0x30cc, 0x3828, 0x3af3, 0x2d8e, 0x381c, 0x382b, 0x3b29, 0x3b58, 0x380a, 0x2c56, 0x36b0, 0x3b53, 0x2f0b, 0x357b, 0x38de, 0x374e, 0x3aef, 0x3a95, 0x3a7a, 0x3a23, 0x2f2b, 0x3903, 0x3b97, 0x39e3, 0x2e50, 0x35fd, 0x3bf5, 0x3ae9, 0x3bb6, 0x3ab7, 0x391f, 0x326f, 0x3264, 0x3453, 0x37b3, 0x2d1b, 0x3a55, 0x3921, 0x36d7, 0x2b01, 0x388e, 0x3969, 0x2f04, 0x31b9, 0x3bd2, 0x3a16, 0x362a, 0x31d7, 0x3ae1, 0x3735, 0x2e5f, 0x3b56, 0x38a8, 0x3b30, 0x3a77, 0x35e2, 0x3aa6, 0x3222, 0x38f3, 0x399b, 0x330b, 0x350f, 0x2b19, 0x3b45, 0x38b4, 0x3ba8, 0x3a8f, 0x3abe, 0x2760, 0x341e, 0x323d, -0x2eab, 0x3514, 0x3b83, 0x39bd, 0x331e, 0x2bfc, 0x389d, 0x381c, 0x36b5, 0x35e9, 0x392e, 0x2b7a, 0x2fcf, 0x3523, 0x3b37, 0x3129, 0x3a56, 0x3861, 0x3b75, 0x38cd, 0x3604, 0x3286, 0x3ac4, 0x3926, 0x3495, 0x3bfc, 0x351b, 0x3696, 0x34e1, 0x2f4e, 0x26e3, 0x39ce, 0x34db, 0x2e38, 0x393c, 0x371c, 0x3843, 0x3a1b, 0x272b, 0x3a27, 0x376c, 0x393f, 0x39cc, 0x39be, 0x39f7, 0x2c76, 0x3bd3, 0x3a3b, 0x3970, 0x3ab5, 0x3915, 0x35c3, 0x36d0, 0x3957, 0x3aa5, 0x25d6, 0x3b79, 0x2217, 0x39c7, 0x3b15, 0x3aa1, 0x3901, 0x378e, 0x3ada, 0x3a6f, 0x384d, 0x372d, 0x39d9, 0x3819, 0x37e8, 0x3527, 0x30ee, 0x3867, 0x3229, 0x3126, 0x3290, 0x3a62, 0x3b2f, 0x32f3, 0x39e0, 0x36e6, 0x3981, 0x305a, 0x2fd0, 0x3724, 0x3822, 0x3359, 0x3869, 0x3bcc, 0x37f1, 0x357c, 0x39df, 0x2e31, 0x3b10, 0x3601, 0x37b1, -0x3aa3, 0x385a, 0x392b, 0x3909, 0x3774, 0x3aab, 0x38a2, 0x3801, 0x2882, 0x38a7, 0x3621, 0x373e, 0x34b4, 0x2e13, 0x3999, 0x381c, 0x369f, 0x2633, 0x3acd, 0x386d, 0x3b94, 0x32a0, 0x1bdc, 0x3873, 0x3249, 0x3692, 0x3be9, 0x325a, 0x32c2, 0x3ad9, 0x1de3, 0x308f, 0x3971, 0x34e6, 0x212b, 0x3bd3, 0x3790, 0x3814, 0x3346, 0x3358, 0x3115, 0x3914, 0x35c7, 0x3287, 0x3b0b, 0x388f, 0x35ac, 0x3002, 0x3a5e, 0x2ede, 0x38cd, 0x374f, 0x3b4c, 0x3578, 0x394c, 0x3951, 0x353c, 0x2e59, 0x3877, 0x31f5, 0x3912, 0x394b, 0x37e7, 0x3667, 0x38c9, 0x3641, 0x343c, 0x37ee, 0x3aa8, 0x3440, 0x34d3, 0x394b, 0x301f, 0x3a76, 0x387e, 0x3a7d, 0x347e, 0x21c8, 0x397c, 0x301a, 0x3a2d, 0x3710, 0x399a, 0x359b, 0x3756, 0x3679, 0x37eb, 0x38e6, 0x2a71, 0x35f9, 0x37eb, 0x3afc, 0x370d, 0x3bce, 0x3884, 0x3211, -0x3a18, 0x3a44, 0x2fcd, 0x3b65, 0x3788, 0x2a46, 0x322a, 0x3538, 0x3bc2, 0x33f4, 0x3932, 0x3835, 0x2fa9, 0x3b95, 0x3756, 0x399d, 0x36b6, 0x3186, 0x389d, 0x346c, 0x3abb, 0x3be4, 0x3919, 0x3993, 0x2ffc, 0x39db, 0x3bce, 0x3b0e, 0x336e, 0x36af, 0x3192, 0x38b7, 0x37ba, 0x3ae4, 0x3116, 0x2c45, 0x3494, 0x3aea, 0x302c, 0x3816, 0x3686, 0x34f2, 0x2fa4, 0x3aa1, 0x222f, 0x370f, 0x341a, 0x3aae, 0x380d, 0x3863, 0x36ca, 0x3a60, 0x3695, 0x387d, 0x391c, 0x2c8b, 0x2d94, 0x369e, 0x399e, 0x36fd, 0x38fc, 0x3b6c, 0x36a8, 0x3a73, 0x33fb, 0x36d0, 0x3720, 0x36d7, 0x37be, 0x2a8f, 0x3180, 0x3ad3, 0x2a1f, 0x3737, 0x3920, 0x2b67, 0x3abf, 0x395e, 0x322b, 0x3ace, 0x39b1, 0x3bdf, 0x2e0b, 0x3018, 0x3278, 0x393a, 0x3a8c, 0x39d0, 0x39cd, 0x308f, 0x3776, 0x38b7, 0x3527, 0x388b, 0x3901, 0x3b8b, -0x237d, 0x38f9, 0x3431, 0x3b1f, 0x3a12, 0x33ac, 0x3a3d, 0x3943, 0x348d, 0x363f, 0x3a2a, 0x2420, 0x3081, 0x3815, 0x382e, 0x38e5, 0x3238, 0x284e, 0x2ec3, 0x3af5, 0x3191, 0x32d6, 0x31c8, 0x39bc, 0x3a2a, 0x340d, 0x3bd9, 0x33dc, 0x3066, 0x39df, 0x30e2, 0x350a, 0x37fc, 0x341d, 0x3828, 0x3a1b, 0x3010, 0x2992, 0x32fd, 0x3bb3, 0x368c, 0x2af2, 0x3af4, 0x3a8f, 0x3793, 0x3620, 0x3b85, 0x3557, 0x316b, 0x288d, 0x3408, 0x3ae8, 0x3af0, 0x3420, 0x3bbd, 0x3a80, 0x309a, 0x3a5d, 0x3a57, 0x3987, 0x3a47, 0x377f, 0x3a01, 0x3a72, 0x3b37, 0x3594, 0x3bfd, 0x36ae, 0x3b99, 0x3bd4, 0x3920, 0x3b8d, 0x37ae, 0x3a46, 0x3184, 0x38ba, 0x1ff8, 0x3b9c, 0x3b68, 0x3621, 0x37f4, 0x2fb7, 0x3010, 0x3b58, 0x33d3, 0x3bbb, 0x291f, 0x3945, 0x3be1, 0x30c6, 0x3bc3, 0x35c6, 0x3bdf, 0x2a15, 0x2e3f, 0x2b1a, -0x3847, 0x3671, 0x34cf, 0x35e0, 0x3b80, 0x34e1, 0x3b3b, 0x305a, 0x327f, 0x3a9e, 0x3803, 0x2a3a, 0x3969, 0x3765, 0x3891, 0x3acc, 0x397d, 0x3549, 0x356e, 0x34c8, 0x2632, 0x30ca, 0x36ba, 0x3a56, 0x37ca, 0x344d, 0x39bc, 0x32f3, 0x3be2, 0x3b24, 0x353f, 0x3ab8, 0x373e, 0x3906, 0x318e, 0x3993, 0x27e3, 0x255c, 0x3afa, 0x33a3, 0x3819, 0x333b, 0x3bb6, 0x3179, 0x3414, 0x35d6, 0x30b1, 0x386b, 0x3b8e, 0x3942, 0x386c, 0x3b39, 0x32d2, 0x37f6, 0x2503, 0x3b14, 0x385c, 0x3a12, 0x3895, 0x39d7, 0x377f, 0x2c2d, 0x3066, 0x3855, 0x35a4, 0x3aeb, 0x3a9c, 0x35a4, 0x2eb7, 0x3b6b, 0x3bfd, 0x38fa, 0x1fd4, 0x3583, 0x3bc9, 0x35d2, 0x3913, 0x34b8, 0x271f, 0x3453, 0x3833, 0x3bb2, 0x3a7f, 0x1c15, 0x1b01, 0x39f1, 0x3bdd, 0x3988, 0x3ac8, 0x397f, 0x3bb4, 0x36d5, 0x37bf, 0x34b4, 0x30f5, 0x39c7, -0x391e, 0x3b4f, 0x2eb2, 0x3b31, 0x3073, 0x39d0, 0x2cd1, 0x2f3b, 0x36cc, 0x3739, 0x222d, 0x3a71, 0x3ba4, 0x3b60, 0x2bb5, 0x3885, 0x3b90, 0x2cea, 0x3ab6, 0x37b0, 0x3813, 0x31a7, 0x3545, 0x3392, 0x39f4, 0x34ae, 0x36c2, 0x3177, 0x3902, 0x39b5, 0x2f98, 0x36c1, 0x36d5, 0x32e8, 0x39ed, 0x30c3, 0x39a8, 0x30f1, 0x39a1, 0x36ec, 0x3bea, 0x34b1, 0x3260, 0x343e, 0x3929, 0x31d9, 0x33d7, 0x3bee, 0x379c, 0x2395, 0x3983, 0x38ce, 0x3297, 0x35fc, 0x3776, 0x3b0a, 0x3ae2, 0x3991, 0x2c03, 0x3712, 0x3b68, 0x2e82, 0x2e43, 0x3705, 0x39d1, 0x3b64, 0x2ff0, 0x3a4a, 0x2f9e, 0x2f32, 0x3ba6, 0x3559, 0x3aa5, 0x39cb, 0x3671, 0x39d2, 0x3aaf, 0x3385, 0x3a0a, 0x3a03, 0x396d, 0x391d, 0x2685, 0x3802, 0x39d5, 0x2af3, 0x39e4, 0x3ace, 0x313a, 0x2d88, 0x2999, 0x39a4, 0x3302, 0x390b, 0x3847, 0x3b87, -0x3813, 0x30fa, 0x3986, 0x3bc2, 0x3bc2, 0x3bf1, 0x3251, 0x391a, 0x2445, 0x3884, 0x3649, 0x320f, 0x305c, 0x3418, 0x337f, 0x38fa, 0x39ac, 0x3a4d, 0x346d, 0x33ca, 0x32da, 0x335c, 0x37ff, 0x389e, 0x39b3, 0x364e, 0x328a, 0x3690, 0x36cb, 0x3126, 0x374a, 0x3ba4, 0x37fe, 0x3233, 0x2afb, 0x3335, 0x3095, 0x38c9, 0x3a8b, 0x39c4, 0x3505, 0x32f2, 0x3a53, 0x388e, 0x34b9, 0x39d7, 0x34e7, 0x3a78, 0x3b19, 0x34e0, 0x35e9, 0x375f, 0x3a89, 0x38c6, 0x3764, 0x383c, 0x266a, 0x3672, 0x31fc, 0x3b60, 0x3a99, 0x3917, 0x3b92, 0x3759, 0x3acd, 0x39ad, 0x31fe, 0x3bcc, 0x3bec, 0x31a6, 0x33fa, 0x36f4, 0x2295, 0x3b2b, 0x3625, 0x3882, 0x3a88, 0x369a, 0x3b81, 0x399f, 0x34a9, 0x381c, 0x2db8, 0x365d, 0x3741, 0x382c, 0x3b87, 0x3b1c, 0x300b, 0x2ef6, 0x2e99, 0x3975, 0x24d7, 0x387e, 0x344a, 0x3503, -0x3b1e, 0x3900, 0x2bf3, 0x3170, 0x39bd, 0x3a2e, 0x37ad, 0x38b6, 0x38bf, 0x31c3, 0x3ae8, 0x368d, 0x36ac, 0x35e2, 0x3497, 0x2dec, 0x39c9, 0x389b, 0x3156, 0x3a86, 0x3892, 0x3976, 0x394b, 0x3b82, 0x3907, 0x392e, 0x2538, 0x3871, 0x348e, 0x3a0d, 0x347f, 0x316b, 0x378b, 0x3aa4, 0x38f5, 0x3595, 0x2d85, 0x2d42, 0x3aca, 0x3688, 0x3085, 0x3694, 0x399c, 0x3b6c, 0x3bb8, 0x3bac, 0x3a69, 0x35bf, 0x316c, 0x335f, 0x2e66, 0x2f7e, 0x360e, 0x3b28, 0x3254, 0x347f, 0x3687, 0x3018, 0x37b7, 0x3ba9, 0x3814, 0x3bd2, 0x22ed, 0x3735, 0x39a7, 0x3a17, 0x3a9c, 0x3264, 0x35f9, 0x38e9, 0x3610, 0x3ad7, 0x39ab, 0x304c, 0x3734, 0x3a58, 0x30be, 0x394f, 0x2f1c, 0x33be, 0x3818, 0x38b7, 0x3845, 0x3a9d, 0x3721, 0x324f, 0x34e0, 0x3a0e, 0x3b77, 0x3b14, 0x3884, 0x3a5a, 0x3aed, 0x3349, 0x39d0, 0x3ba6, -0x3345, 0x3494, 0x396e, 0x33e0, 0x3a01, 0x26be, 0x3a27, 0x3a66, 0x3a48, 0x3bc4, 0x3a0e, 0x39ac, 0x3758, 0x32d8, 0x3570, 0x2add, 0x2f32, 0x3856, 0x3814, 0x39a6, 0x3418, 0x3919, 0x2faf, 0x3a0f, 0x3816, 0x3366, 0x388c, 0x3471, 0x2993, 0x395d, 0x32cc, 0x3b00, 0x3a82, 0x3b5a, 0x2edd, 0x30f7, 0x3bba, 0x2a65, 0x368e, 0x311e, 0x35ff, 0x3734, 0x2931, 0x34db, 0x3734, 0x3b8a, 0x2441, 0x33bc, 0x3aed, 0x3793, 0x31ee, 0x37fe, 0x31f4, 0x36f4, 0x390e, 0x3b97, 0x3963, 0x3510, 0x30f9, 0x3a6e, 0x35d3, 0x34ba, 0x3a05, 0x39de, 0x3646, 0x3b0f, 0x3b2e, 0x3698, 0x3bbd, 0x3306, 0x3990, 0x3984, 0x2e28, 0x3880, 0x3b82, 0x350c, 0x3a3e, 0x3b00, 0x3735, 0x3944, 0x39a1, 0x34ea, 0x3812, 0x3a9c, 0x2270, 0x3b9b, 0x383d, 0x34b9, 0x33ff, 0x314b, 0x35e9, 0x3a76, 0x3b80, 0x3922, 0x3767, 0x3119, -0x39f0, 0x391b, 0x37d6, 0x37d9, 0x3b86, 0x3923, 0x2434, 0x3be9, 0x3918, 0x36cb, 0x3b4a, 0x296e, 0x3bcf, 0x38d5, 0x3342, 0x3482, 0x3995, 0x3958, 0x33a0, 0x38a7, 0x3be6, 0x3b68, 0x3168, 0x398d, 0x3ab4, 0x325a, 0x3bd2, 0x3915, 0x1a9f, 0x356c, 0x303d, 0x3b50, 0x32c5, 0x3a1c, 0x3a0e, 0x392c, 0x3b24, 0x3b8b, 0x322b, 0x2661, 0x3bba, 0x35e3, 0x3be0, 0x38f5, 0x39ab, 0x316b, 0x3b05, 0x3a05, 0x3969, 0x370c, 0x3851, 0x3a7c, 0x3801, 0x3b8b, 0x38db, 0x3aef, 0x354a, 0x2845, 0x3ac7, 0x3547, 0x35c2, 0x3564, 0x30d5, 0x3bf1, 0x301b, 0x3434, 0x3583, 0x3a9c, 0x1c52, 0x2e1e, 0x3522, 0x3993, 0x3bfe, 0x3524, 0x370c, 0x33ed, 0x3981, 0x2bfe, 0x2ca4, 0x3b56, 0x3b03, 0x3450, 0x3768, 0x3baf, 0x3760, 0x3a8f, 0x2d31, 0x2c4e, 0x3167, 0x35e6, 0x396d, 0x3b31, 0x309b, 0x347e, 0x39ea, 0x3bb8, -0x3164, 0x2bac, 0x368e, 0x3bd4, 0x3427, 0x38b4, 0x3a4d, 0x39ba, 0x3a0d, 0x301a, 0x2fec, 0x2ce1, 0x3985, 0x2acc, 0x386d, 0x3808, 0x346b, 0x383b, 0x3b1b, 0x3406, 0x3bc5, 0x3b86, 0x3860, 0x35ae, 0x2e1c, 0x35d4, 0x350b, 0x35f5, 0x2a73, 0x3a6b, 0x364b, 0x3526, 0x278a, 0x375e, 0x299f, 0x39b0, 0x394e, 0x345d, 0x3760, 0x31ba, 0x3400, 0x3566, 0x3b36, 0x3a48, 0x34e3, 0x3b24, 0x347c, 0x32a3, 0x2da7, 0x364a, 0x33de, 0x33c5, 0x324f, 0x38f7, 0x3bfb, 0x3a94, 0x3312, 0x3924, 0x3831, 0x2ee6, 0x3b4a, 0x338b, 0x2bb3, 0x33ee, 0x3bf2, 0x3aa3, 0x376d, 0x1512, 0x37b5, 0x2e44, 0x39ad, 0x3b2f, 0x39a7, 0x3aa1, 0x2e75, 0x3955, 0x3663, 0x39a6, 0x296f, 0x34c6, 0x2ef3, 0x2fe3, 0x3647, 0x3bc2, 0x3b91, 0x376a, 0x39e5, 0x3466, 0x38b9, 0x3a80, 0x3861, 0x36ca, 0x3a2c, 0x3145, 0x3102, 0x33bc, -0x2ba4, 0x2eb9, 0x39ab, 0x33cf, 0x2c9f, 0x372c, 0x3973, 0x2ff9, 0x36a5, 0x3641, 0x3b93, 0x3bc9, 0x3ba9, 0x36cd, 0x3a8d, 0x3bd2, 0x399e, 0x34ed, 0x3b4c, 0x2c2b, 0x38f7, 0x3824, 0x2edd, 0x32fc, 0x30cc, 0x2b90, 0x2628, 0x3a65, 0x39de, 0x3800, 0x3a8c, 0x3a88, 0x1e84, 0x3890, 0x33b4, 0x37e8, 0x3aab, 0x342c, 0x3697, 0x379a, 0x2472, 0x38bb, 0x38d0, 0x3a8e, 0x393a, 0x34e7, 0x3baf, 0x37ce, 0x28c7, 0x32a5, 0x3a68, 0x3925, 0x3a49, 0x3944, 0x3976, 0x3866, 0x363a, 0x35e2, 0x296d, 0x29f3, 0x39a8, 0x3831, 0x3682, 0x3898, 0x2bca, 0x13aa, 0x37b8, 0x35fe, 0x3a5d, 0x3362, 0x34bd, 0x38c1, 0x3b66, 0x3801, 0x391b, 0x307b, 0x3936, 0x3ae2, 0x3899, 0x390a, 0x384b, 0x3af4, 0x3ae2, 0x35d2, 0x271a, 0x37ad, 0x3102, 0x38e5, 0x30b8, 0x2419, 0x30ee, 0x3437, 0x39b9, 0x3a44, 0x374e, 0x3551, -0x39a4, 0x35f6, 0x385e, 0x3864, 0x3977, 0x3159, 0x3625, 0x379a, 0x3b94, 0x3a2a, 0x2ea6, 0x38a1, 0x3ad9, 0x31cd, 0x3be9, 0x34ac, 0x38be, 0x3925, 0x36ae, 0x3bd3, 0x2e3b, 0x39d0, 0x3a89, 0x336b, 0x2d09, 0x3533, 0x382c, 0x2f0c, 0x385e, 0x3ba1, 0x3436, 0x39e4, 0x3a6b, 0x39b1, 0x3622, 0x334e, 0x38cd, 0x3740, 0x30d6, 0x391d, 0x3a70, 0x3390, 0x2c34, 0x3bf0, 0x3566, 0x3864, 0x2aaa, 0x2df7, 0x20cf, 0x3621, 0x39f8, 0x3ab0, 0x3a54, 0x39fb, 0x389e, 0x3724, 0x3755, 0x369d, 0x3944, 0x2843, 0x13b6, 0x316f, 0x3860, 0x3848, 0x3816, 0x315b, 0x3b72, 0x35e9, 0x396a, 0x399c, 0x3a7b, 0x315c, 0x3667, 0x37ae, 0x39f0, 0x386f, 0x3875, 0x3b25, 0x38ba, 0x3a14, 0x3abc, 0x36e1, 0x352d, 0x3904, 0x385d, 0x3b24, 0x32c9, 0x3afb, 0x3bd8, 0x3520, 0x145c, 0x378f, 0x3821, 0x2801, 0x3496, 0x3b18, -0x3716, 0x3bfe, 0x3591, 0x3b7d, 0x3a85, 0x3af1, 0x3abf, 0x38ae, 0x30cb, 0x3457, 0x3b9f, 0x32bc, 0x39e0, 0x33d6, 0x3acd, 0x38e4, 0x39bf, 0x39ce, 0x2c1a, 0x36c2, 0x3a5e, 0x3ba5, 0x3a2d, 0x3629, 0x3b8d, 0x36ce, 0x3997, 0x384a, 0x3acb, 0x36d2, 0x3b60, 0x3a38, 0x347d, 0x35b3, 0x286f, 0x2bf4, 0x3795, 0x2d33, 0x20c0, 0x3857, 0x3aac, 0x3766, 0x38c1, 0x3628, 0x2e3a, 0x3a93, 0x3ac6, 0x35ca, 0x3366, 0x3b05, 0x3a4c, 0x3be7, 0x37a8, 0x38c4, 0x36ae, 0x39b0, 0x34e1, 0x2dfc, 0x3b41, 0x385a, 0x306b, 0x3bfa, 0x39ab, 0x3ade, 0x3a80, 0x3574, 0x397e, 0x3792, 0x342e, 0x373c, 0x3918, 0x3275, 0x3827, 0x397e, 0x3889, 0x35b5, 0x30d7, 0x1d25, 0x30b4, 0x3580, 0x2ae1, 0x2bba, 0x38ea, 0x3a03, 0x3b44, 0x3539, 0x2de4, 0x3b56, 0x3949, 0x2792, 0x39ac, 0x31af, 0x3514, 0x3ac1, 0x34a6, 0x2c44, -0x330d, 0x36f5, 0x374e, 0x3bf7, 0x33ea, 0x3770, 0x2733, 0x30ef, 0x3b72, 0x2d2a, 0x392d, 0x36fb, 0x3a83, 0x34a1, 0x334c, 0x30b3, 0x2987, 0x3584, 0x3ab0, 0x3a9d, 0x2b67, 0x3a56, 0x35ba, 0x325f, 0x39b7, 0x2abd, 0x3a40, 0x38bf, 0x37b9, 0x3a67, 0x204a, 0x328d, 0x3403, 0x3adc, 0x2c0f, 0x3923, 0x39bc, 0x366a, 0x3082, 0x39d1, 0x3ad5, 0x3a4f, 0x3207, 0x3631, 0x381e, 0x3961, 0x358d, 0x3664, 0x3363, 0x3bf9, 0x372c, 0x3a5d, 0x3878, 0x335a, 0x35a2, 0x3532, 0x3809, 0x2ecb, 0x32e3, 0x3996, 0x36cf, 0x362f, 0x38d5, 0x39c7, 0x2ccd, 0x37c7, 0x2ba2, 0x3b59, 0x26c9, 0x38fa, 0x3b8a, 0x3bed, 0x3868, 0x3942, 0x393a, 0x3999, 0x363f, 0x3375, 0x3bc6, 0x3098, 0x384c, 0x381e, 0x39c6, 0x39be, 0x3204, 0x2023, 0x3acf, 0x3b55, 0x3850, 0x3ae7, 0x37ac, 0x388a, 0x3b11, 0x36e1, 0x2f03, 0x3a6d, -0x2f6f, 0x39b2, 0x308a, 0x3253, 0x3976, 0x38bd, 0x3bfa, 0x3b6d, 0x3816, 0x287b, 0x3588, 0x392b, 0x30bc, 0x3b83, 0x3a9b, 0x300d, 0x3ba4, 0x2d26, 0x372a, 0x3914, 0x36ee, 0x2f72, 0x3ad3, 0x323b, 0x32b6, 0x3a71, 0x3a92, 0x2416, 0x3ab2, 0x39c8, 0x313c, 0x3a5e, 0x3ab9, 0x30ed, 0x3ac3, 0x3339, 0x291e, 0x3847, 0x3bb9, 0x3b7c, 0x3369, 0x3aa1, 0x3b93, 0x380a, 0x33fd, 0x3545, 0x399a, 0x25a4, 0x36c6, 0x37fe, 0x3ae8, 0x3ad7, 0x3be3, 0x3589, 0x370e, 0x3299, 0x3358, 0x3960, 0x36e2, 0x3af9, 0x3676, 0x3b75, 0x39df, 0x32bf, 0x387f, 0x2764, 0x39ae, 0x32b4, 0x36bf, 0x3161, 0x3a40, 0x3bcb, 0x3447, 0x3a0d, 0x2baa, 0x38c7, 0x333a, 0x3a4b, 0x394f, 0x381d, 0x38bd, 0x2b6b, 0x388d, 0x3a37, 0x384e, 0x3b19, 0x31dc, 0x3236, 0x33aa, 0x32f2, 0x32b0, 0x3b95, 0x3bd2, 0x1db0, 0x36d4, 0x38ae, -0x3161, 0x30b6, 0x3784, 0x3701, 0x387e, 0x36ef, 0x2ad7, 0x3ab4, 0x3897, 0x397d, 0x355d, 0x34e3, 0x351d, 0x3b95, 0x3b12, 0x1c76, 0x3b71, 0x3b9a, 0x37e5, 0x3bc6, 0x2576, 0x33c0, 0x398e, 0x39d1, 0x37b9, 0x3a9f, 0x234c, 0x3979, 0x36a2, 0x3aad, 0x355c, 0x3479, 0x2d97, 0x2d54, 0x2ecb, 0x3481, 0x38ba, 0x32e2, 0x380c, 0x2f81, 0x3b87, 0x3a01, 0x35b6, 0x35f6, 0x389a, 0x341e, 0x3180, 0x35d7, 0x31af, 0x3983, 0x38ec, 0x298c, 0x3bea, 0x38d3, 0x2ba1, 0x32b9, 0x2f3e, 0x3b84, 0x3003, 0x34ff, 0x3bd9, 0x323b, 0x375a, 0x3462, 0x3824, 0x303d, 0x381a, 0x385e, 0x3bfd, 0x3993, 0x39c6, 0x3a0f, 0x3b8c, 0x3353, 0x3295, 0x39b6, 0x28dd, 0x3a8e, 0x3043, 0x2d8e, 0x3b67, 0x3504, 0x3b32, 0x30b6, 0x3a4c, 0x3239, 0x3443, 0x3031, 0x3afb, 0x3b11, 0x30f8, 0x3299, 0x3be6, 0x3476, 0x3a49, 0x3441, -0x31e8, 0x3992, 0x3509, 0x3313, 0x3635, 0x35cc, 0x3963, 0x3545, 0x3ba3, 0x2443, 0x35c5, 0x3bb8, 0x3a2e, 0x3642, 0x3ae7, 0x3832, 0x333e, 0x34d3, 0x37f5, 0x38a6, 0x39a9, 0x3850, 0x3ad9, 0x2a1f, 0x271c, 0x3878, 0x3586, 0x362d, 0x3922, 0x3ab8, 0x310e, 0x369c, 0x2efb, 0x3bde, 0x38c2, 0x3af3, 0x393a, 0x3401, 0x315e, 0x305f, 0x38f5, 0x39bf, 0x36c6, 0x3544, 0x3213, 0x386f, 0x378f, 0x3214, 0x3900, 0x35a4, 0x3bbd, 0x2f98, 0x3a9d, 0x3b3d, 0x395a, 0x3932, 0x3515, 0x2ef8, 0x3af6, 0x2d82, 0x2845, 0x39f8, 0x2b6d, 0x38eb, 0x3300, 0x2e15, 0x3788, 0x3962, 0x2e88, 0x356d, 0x3a36, 0x3bd3, 0x2485, 0x38fc, 0x3843, 0x38c0, 0x1351, 0x3aea, 0x2c6d, 0x3ad0, 0x337d, 0x394e, 0x3823, 0x34f9, 0x342e, 0x3203, 0x3b9a, 0x3ade, 0x357a, 0x3734, 0x398f, 0x3302, 0x3b51, 0x3607, 0x35c9, 0x2be4, -0x38d7, 0x3450, 0x359a, 0x2a01, 0x3a33, 0x3536, 0x3a66, 0x360d, 0x3b2f, 0x3a0f, 0x3a84, 0x36b5, 0x3920, 0x389e, 0x3622, 0x3175, 0x370e, 0x32d1, 0x3a64, 0x3a2d, 0x3afc, 0x36f1, 0x3b64, 0x3268, 0x36b8, 0x3b0e, 0x34f4, 0x3b5d, 0x38ac, 0x3153, 0x3128, 0x3670, 0x3b70, 0x39be, 0x3989, 0x35ae, 0x333a, 0x2bfb, 0x3ad9, 0x344c, 0x3ba9, 0x3b6c, 0x335e, 0x3a80, 0x2451, 0x3823, 0x385e, 0x30e0, 0x38e3, 0x30ad, 0x36a0, 0x3a1e, 0x37db, 0x193d, 0x3675, 0x3110, 0x394c, 0x2f96, 0x2c1f, 0x3982, 0x388d, 0x2ccc, 0x343e, 0x3a8c, 0x3710, 0x2da8, 0x384f, 0x35d2, 0x3174, 0x3267, 0x349c, 0x345a, 0x37f3, 0x380a, 0x3814, 0x380c, 0x3acc, 0x325e, 0x3738, 0x32ef, 0x3223, 0x3488, 0x36d9, 0x394d, 0x3450, 0x378c, 0x328e, 0x332a, 0x3b8e, 0x381d, 0x314a, 0x3530, 0x3378, 0x3a88, 0x3bf8, 0x30e7, -0x3860, 0x38b5, 0x3bc1, 0x2da6, 0x3b83, 0x3a43, 0x372a, 0x392c, 0x3404, 0x3449, 0x3972, 0x3bc5, 0x2dc0, 0x39dc, 0x354c, 0x24f9, 0x3617, 0x3bc1, 0x3960, 0x3762, 0x3962, 0x39e3, 0x3afe, 0x3a21, 0x3834, 0x3856, 0x3ad1, 0x36a8, 0x3b2b, 0x36eb, 0x2f4f, 0x3801, 0x3b42, 0x3af3, 0x380f, 0x326c, 0x351a, 0x3914, 0x38b2, 0x3a84, 0x369e, 0x3925, 0x3213, 0x3b80, 0x3763, 0x3af9, 0x2e55, 0x30ba, 0x3a12, 0x347f, 0x39d7, 0x3a46, 0x2ec5, 0x3b6a, 0x3b7f, 0x3a3f, 0x2eea, 0x38db, 0x33be, 0x356a, 0x3a21, 0x3623, 0x3822, 0x3a63, 0x34ef, 0x373b, 0x2d60, 0x3428, 0x3121, 0x3b9a, 0x3948, 0x3687, 0x382b, 0x2144, 0x3254, 0x387f, 0x3512, 0x357c, 0x3891, 0x2e61, 0x368a, 0x33a8, 0x3b26, 0x2e33, 0x282a, 0x2c3a, 0x365c, 0x35c7, 0x3b90, 0x3866, 0x3a86, 0x35cc, 0x3689, 0x3212, 0x3a1e, 0x3555, -0x2f7e, 0x3b2e, 0x3204, 0x3b95, 0x38c5, 0x394d, 0x3908, 0x3b28, 0x388d, 0x36c6, 0x3ac3, 0x3bc6, 0x305d, 0x3a21, 0x3477, 0x39c1, 0x34e7, 0x3ba1, 0x3850, 0x3276, 0x3513, 0x3576, 0x3407, 0x37e4, 0x2dde, 0x3113, 0x389b, 0x34cc, 0x3736, 0x34de, 0x3348, 0x3942, 0x3044, 0x365f, 0x3a40, 0x3a33, 0x34fb, 0x389a, 0x3983, 0x382e, 0x381d, 0x3293, 0x34a2, 0x330d, 0x31f1, 0x3b44, 0x3861, 0x35e1, 0x331a, 0x3839, 0x39d0, 0x3b0a, 0x34d0, 0x37dd, 0x332b, 0x38f4, 0x3ad1, 0x25b4, 0x3bee, 0x31ee, 0x31fc, 0x382d, 0x3889, 0x352b, 0x38a5, 0x21c1, 0x2e21, 0x3425, 0x2d5e, 0x28f2, 0x3ad7, 0x3945, 0x3282, 0x3844, 0x39d9, 0x2e75, 0x3adb, 0x3703, 0x3966, 0x383a, 0x2d09, 0x3008, 0x3b9f, 0x3b0f, 0x304a, 0x373e, 0x3a84, 0x3739, 0x39cd, 0x3678, 0x3a04, 0x2fe1, 0x3572, 0x3853, 0x38f6, 0x3abc, -0x3b09, 0x3b5a, 0x3be6, 0x2424, 0x345a, 0x3992, 0x3738, 0x35a8, 0x3379, 0x3949, 0x3a93, 0x37d9, 0x2fe8, 0x3a1c, 0x322a, 0x26b8, 0x3af8, 0x327a, 0x34f0, 0x3632, 0x3485, 0x385f, 0x3b33, 0x3396, 0x3ad8, 0x379a, 0x384e, 0x35e6, 0x331e, 0x3b6d, 0x34ca, 0x3997, 0x39c8, 0x3a97, 0x387d, 0x1854, 0x35d1, 0x3bd9, 0x389e, 0x365a, 0x396e, 0x2f7d, 0x3910, 0x388f, 0x39e6, 0x3a8e, 0x3a9e, 0x39b2, 0x2ff2, 0x39fc, 0x346f, 0x39bf, 0x3711, 0x3951, 0x3856, 0x39ea, 0x318e, 0x3778, 0x393c, 0x37ba, 0x3781, 0x3ad5, 0x3638, 0x3b18, 0x286d, 0x314b, 0x3b67, 0x3186, 0x37c4, 0x39f7, 0x376f, 0x3b12, 0x3882, 0x36b6, 0x3a84, 0x329a, 0x24a9, 0x38e3, 0x35ca, 0x3b5b, 0x333f, 0x3994, 0x3369, 0x385b, 0x3871, 0x3aac, 0x3649, 0x3953, 0x31d4, 0x3b45, 0x3808, 0x36e0, 0x35c6, 0x2bd8, 0x39b7, 0x3bd9, -0x3aa5, 0x340f, 0x3721, 0x35e0, 0x3a8f, 0x3ac1, 0x3b3f, 0x1e07, 0x342a, 0x36a2, 0x3830, 0x2dff, 0x35c4, 0x3441, 0x3ac6, 0x383f, 0x3bb1, 0x32d5, 0x3870, 0x3757, 0x36a5, 0x38c3, 0x3158, 0x377d, 0x363d, 0x2ede, 0x3698, 0x2f0b, 0x3860, 0x1a39, 0x39b4, 0x39c3, 0x35e2, 0x3529, 0x35e4, 0x38d3, 0x358a, 0x2cc9, 0x3665, 0x3479, 0x3917, 0x36f9, 0x34d3, 0x39f7, 0x3688, 0x3950, 0x36d5, 0x3a15, 0x35fd, 0x3556, 0x3751, 0x30b6, 0x3906, 0x3b32, 0x387f, 0x2d69, 0x3628, 0x3b4c, 0x3b17, 0x38ff, 0x3852, 0x38c4, 0x37e0, 0x368d, 0x38f6, 0x3885, 0x398e, 0x37dd, 0x3867, 0x35e7, 0x3bd1, 0x38a1, 0x3882, 0x2d3d, 0x3b21, 0x3443, 0x3381, 0x36df, 0x38ba, 0x3a7c, 0x3a03, 0x3881, 0x352b, 0x3914, 0x3b69, 0x3564, 0x3141, 0x3940, 0x327b, 0x390b, 0x3710, 0x3952, 0x3a3e, 0x3825, 0x3ae8, 0x39f8, -0x3950, 0x3a9d, 0x3a2c, 0x35d5, 0x34b7, 0x3a46, 0x3a47, 0x344e, 0x3a08, 0x3362, 0x3285, 0x33e8, 0x3618, 0x39fb, 0x2c3c, 0x39b0, 0x1336, 0x36bd, 0x358c, 0x3bc0, 0x354d, 0x38be, 0x3a08, 0x34e9, 0x3801, 0x3be9, 0x35fa, 0x3015, 0x26bc, 0x399e, 0x36d1, 0x3218, 0x3a92, 0x2ad4, 0x3114, 0x364e, 0x3aa5, 0x35cb, 0x354a, 0x2da0, 0x2fc1, 0x36a2, 0x2fde, 0x3b28, 0x367f, 0x32eb, 0x3b7e, 0x3912, 0x3894, 0x323f, 0x3807, 0x3971, 0x3b61, 0x2381, 0x3ac6, 0x3868, 0x3980, 0x3a49, 0x3183, 0x3657, 0x3851, 0x3956, 0x37be, 0x38ea, 0x38b3, 0x37e2, 0x38ca, 0x3b3b, 0x3543, 0x38af, 0x247b, 0x3716, 0x3b75, 0x3667, 0x3801, 0x2a16, 0x3b46, 0x2bb3, 0x3832, 0x3b8e, 0x3a02, 0x37e2, 0x38b7, 0x2a58, 0x3b4b, 0x3b3c, 0x3914, 0x27f4, 0x3512, 0x3934, 0x3a17, 0x3a1b, 0x3bab, 0x3ae0, 0x3ab8, 0x3454, -0x32bc, 0x35d5, 0x3b7f, 0x388c, 0x3740, 0x3290, 0x2d2a, 0x2bf5, 0x304b, 0x3a10, 0x388e, 0x2e4e, 0x3126, 0x3477, 0x386d, 0x3bc5, 0x3643, 0x3589, 0x3665, 0x39c5, 0x315d, 0x3375, 0x3b3d, 0x38bb, 0x320a, 0x371d, 0x3873, 0x31df, 0x3534, 0x3b7a, 0x3809, 0x3b1f, 0x3868, 0x35ec, 0x397c, 0x3535, 0x3be5, 0x3857, 0x3ae4, 0x338c, 0x3ace, 0x3931, 0x3bcc, 0x30d9, 0x3bb2, 0x38d5, 0x3840, 0x3aef, 0x385c, 0x3974, 0x3b1b, 0x369c, 0x3b54, 0x3074, 0x39bb, 0x3a1d, 0x2e7d, 0x34f9, 0x3a6c, 0x3505, 0x3ae2, 0x30df, 0x3ac9, 0x3460, 0x3517, 0x3b85, 0x3488, 0x3440, 0x3aab, 0x3089, 0x3879, 0x3343, 0x3395, 0x329f, 0x3753, 0x3a08, 0x388b, 0x3ac1, 0x3478, 0x33f5, 0x3a65, 0x343f, 0x307e, 0x38f3, 0x37a0, 0x3259, 0x3210, 0x385a, 0x3bff, 0x297f, 0x2e3b, 0x2e41, 0x3921, 0x3654, 0x34c2, 0x3bf6, -0x2dca, 0x391f, 0x399f, 0x2fae, 0x38c6, 0x2fea, 0x36a0, 0x31d7, 0x3a0a, 0x2adb, 0x31c7, 0x3bf1, 0x313c, 0x3a0f, 0x36d3, 0x3854, 0x355f, 0x3991, 0x3b44, 0x3b0c, 0x3aa8, 0x37f0, 0x38cf, 0x3394, 0x373a, 0x38ee, 0x3871, 0x3977, 0x29ef, 0x23f6, 0x3b79, 0x2430, 0x31ea, 0x2f51, 0x3b09, 0x39fa, 0x34c0, 0x2a71, 0x3186, 0x3869, 0x2c9d, 0x3995, 0x3a89, 0x3a6a, 0x308a, 0x32f2, 0x39e9, 0x3902, 0x3970, 0x3986, 0x3931, 0x3918, 0x36ab, 0x3a86, 0x38c2, 0x39f0, 0x2ca6, 0x3bac, 0x36b8, 0x34d2, 0x383e, 0x304a, 0x299b, 0x3172, 0x3b3b, 0x38e3, 0x39a0, 0x3b28, 0x3822, 0x3548, 0x35d3, 0x3a14, 0x282b, 0x39e4, 0x2d29, 0x3a68, 0x2dc2, 0x32c2, 0x3aa2, 0x3625, 0x3553, 0x3809, 0x3993, 0x3811, 0x3456, 0x2f37, 0x3210, 0x393f, 0x323c, 0x30eb, 0x361c, 0x3276, 0x3097, 0x34ee, 0x34f8, 0x31cd, -0x3ba8, 0x2a42, 0x31b2, 0x38e3, 0x3951, 0x29e1, 0x2e0a, 0x3a69, 0x2f3f, 0x3b90, 0x3634, 0x3b61, 0x35ef, 0x34c4, 0x386f, 0x2aae, 0x38a6, 0x1edc, 0x38f0, 0x37e7, 0x3ac3, 0x32fe, 0x3645, 0x31ef, 0x33e8, 0x3447, 0x3ad8, 0x3b4e, 0x193e, 0x2514, 0x36ad, 0x3b4c, 0x39d8, 0x3285, 0x31c9, 0x3a64, 0x2c2d, 0x3994, 0x302a, 0x3a31, 0x3adb, 0x2bfa, 0x3554, 0x399f, 0x32a0, 0x393b, 0x3831, 0x3a94, 0x2f96, 0x38bb, 0x3b49, 0x2168, 0x396c, 0x3425, 0x3b8d, 0x2634, 0x38fd, 0x3894, 0x3ac8, 0x3b82, 0x3891, 0x39a0, 0x3422, 0x36e1, 0x3727, 0x3802, 0x388e, 0x392d, 0x37ec, 0x340f, 0x2424, 0x3812, 0x3af6, 0x3352, 0x36e2, 0x385e, 0x3ba8, 0x38ca, 0x3986, 0x3b9e, 0x3319, 0x3be8, 0x389f, 0x29ea, 0x35c2, 0x394f, 0x33b7, 0x388b, 0x388d, 0x3bb5, 0x34f9, 0x35ff, 0x3842, 0x3181, 0x3889, 0x38ec, -0x34b9, 0x3818, 0x3af1, 0x35b7, 0x3462, 0x39bf, 0x3641, 0x367d, 0x3560, 0x2c3b, 0x3b63, 0x2cdc, 0x33be, 0x3a92, 0x2cf5, 0x3216, 0x315f, 0x39dc, 0x3b1a, 0x37e4, 0x3446, 0x37dc, 0x3934, 0x3835, 0x3916, 0x37d0, 0x384e, 0x2d75, 0x3268, 0x3570, 0x3506, 0x38e0, 0x38c0, 0x395f, 0x38bd, 0x3022, 0x3b3e, 0x393b, 0x3479, 0x3726, 0x3432, 0x3699, 0x38dc, 0x2def, 0x2ab6, 0x2fad, 0x3a35, 0x35b5, 0x30a8, 0x3968, 0x38ab, 0x3a6e, 0x346e, 0x3988, 0x3434, 0x35b6, 0x36dc, 0x2e2e, 0x2b5c, 0x3300, 0x32f9, 0x382a, 0x3bc2, 0x3b6f, 0x2ca0, 0x2d85, 0x397c, 0x38a1, 0x36e4, 0x37f0, 0x39ec, 0x30fb, 0x3bfb, 0x3a04, 0x301a, 0x3b8c, 0x39eb, 0x3a96, 0x39bc, 0x3921, 0x319b, 0x3805, 0x3b5f, 0x39ad, 0x316b, 0x3b91, 0x2c1d, 0x3b87, 0x35d3, 0x3b01, 0x36ad, 0x393f, 0x3674, 0x3603, 0x3af9, 0x2fa1, -0x3a49, 0x34d3, 0x3af0, 0x28b4, 0x3afb, 0x3684, 0x3640, 0x37ae, 0x38d3, 0x3916, 0x3699, 0x3b36, 0x38e7, 0x3ad9, 0x39af, 0x376a, 0x388f, 0x35c7, 0x3664, 0x3840, 0x3506, 0x3b62, 0x3347, 0x3a30, 0x347c, 0x3ae5, 0x3542, 0x35d6, 0x32f6, 0x38e3, 0x2091, 0x3a7f, 0x3b5a, 0x3610, 0x38c9, 0x348b, 0x37bf, 0x346a, 0x38a2, 0x3939, 0x3842, 0x3a03, 0x3afe, 0x1ec8, 0x3158, 0x3afc, 0x39e9, 0x3b79, 0x351a, 0x314e, 0x242c, 0x34b5, 0x3bc6, 0x25a0, 0x3b95, 0x29e3, 0x3517, 0x3bff, 0x3a4b, 0x3a79, 0x355f, 0x33cd, 0x35df, 0x3ab8, 0x39d4, 0x3afe, 0x35f7, 0x38aa, 0x2fc1, 0x3342, 0x394c, 0x3603, 0x3811, 0x3a0b, 0x34eb, 0x2ca7, 0x3192, 0x3a89, 0x396e, 0x3731, 0x3af0, 0x2cca, 0x3843, 0x36e3, 0x39f5, 0x2d99, 0x2a6b, 0x33bf, 0x2609, 0x32f0, 0x32ce, 0x35dd, 0x380d, 0x32e2, 0x3b6a, 0x3a8e, -0x2ced, 0x32da, 0x3a21, 0x367d, 0x36cd, 0x3631, 0x2b0d, 0x31fd, 0x3b89, 0x2e45, 0x3916, 0x362b, 0x3852, 0x2c73, 0x32a6, 0x3013, 0x396f, 0x3984, 0x3104, 0x3a93, 0x39de, 0x3807, 0x3464, 0x36bb, 0x36e7, 0x3aa3, 0x372a, 0x38ce, 0x3a85, 0x3bae, 0x27b1, 0x34c7, 0x37e5, 0x2be5, 0x3a8c, 0x2e62, 0x3b13, 0x2ee8, 0x3782, 0x3a40, 0x31b0, 0x37fd, 0x3759, 0x3382, 0x3bcc, 0x32fd, 0x3bdc, 0x39eb, 0x3a01, 0x380e, 0x31a6, 0x39f6, 0x38fc, 0x37c5, 0x3be0, 0x347a, 0x3524, 0x2da5, 0x23ed, 0x25e0, 0x3af4, 0x27f6, 0x39cd, 0x3575, 0x3827, 0x3b1d, 0x3bf3, 0x3bd8, 0x3697, 0x3b52, 0x2ec3, 0x33c0, 0x3b26, 0x3ab5, 0x34f6, 0x30f2, 0x38ff, 0x39ae, 0x3620, 0x32a6, 0x365a, 0x3a13, 0x2a9a, 0x28a9, 0x3198, 0x3819, 0x38bb, 0x3731, 0x3b3d, 0x37db, 0x3abb, 0x3be6, 0x34c7, 0x3709, 0x3959, 0x3556, -0x3b82, 0x36c8, 0x352e, 0x3a99, 0x3942, 0x37e9, 0x39c9, 0x3900, 0x123c, 0x3b9a, 0x3b46, 0x3a9a, 0x3a06, 0x36e3, 0x38bd, 0x3622, 0x396c, 0x3a7d, 0x361f, 0x3b83, 0x297b, 0x3a4b, 0x323f, 0x3b61, 0x3ac5, 0x24e9, 0x3138, 0x359a, 0x2931, 0x3b63, 0x3a8d, 0x3aa0, 0x384f, 0x3a36, 0x3641, 0x3af0, 0x3ada, 0x3526, 0x3a5c, 0x39cc, 0x3803, 0x3572, 0x3994, 0x3b9e, 0x3a64, 0x36ae, 0x37ec, 0x3ad2, 0x312b, 0x3434, 0x3b89, 0x38d1, 0x3309, 0x3573, 0x38e2, 0x2c51, 0x3b19, 0x3a0b, 0x3a49, 0x392a, 0x3ae7, 0x341f, 0x3701, 0x3577, 0x3a6b, 0x3864, 0x356f, 0x3a73, 0x3bdd, 0x39e1, 0x3397, 0x31c9, 0x3618, 0x3973, 0x3848, 0x2e85, 0x3adb, 0x30d0, 0x349e, 0x3121, 0x397e, 0x3ae2, 0x351f, 0x3137, 0x3903, 0x3b71, 0x3a3e, 0x3189, 0x3a1a, 0x39a5, 0x38b6, 0x35ee, 0x2c56, 0x3a09, 0x33a1, 0x294a, -0x382b, 0x39a6, 0x335a, 0x3687, 0x30cf, 0x38cc, 0x32d6, 0x2181, 0x3a52, 0x2cfb, 0x3991, 0x39bc, 0x3706, 0x3a02, 0x386e, 0x3b54, 0x3781, 0x381c, 0x38eb, 0x3b5d, 0x39c2, 0x38f2, 0x3b4c, 0x3bd7, 0x292a, 0x37c1, 0x3bfa, 0x29b6, 0x381e, 0x32ca, 0x3a70, 0x3a3a, 0x3ad7, 0x3042, 0x2ecb, 0x3bb6, 0x3703, 0x38fe, 0x3866, 0x3a69, 0x3bc7, 0x3b34, 0x2cfd, 0x2220, 0x3ba7, 0x3849, 0x39b3, 0x284b, 0x3a18, 0x39d9, 0x3aaf, 0x3809, 0x3be3, 0x3749, 0x2b7b, 0x382c, 0x356c, 0x37ac, 0x2a66, 0x3abb, 0x23d2, 0x3912, 0x3085, 0x2a21, 0x3b7a, 0x3616, 0x35f1, 0x3595, 0x3bd3, 0x356b, 0x3929, 0x3b99, 0x3a5f, 0x30f4, 0x3866, 0x3a8e, 0x2ca2, 0x3904, 0x3735, 0x373a, 0x3a5f, 0x3ba5, 0x2001, 0x39dc, 0x3a26, 0x3987, 0x3163, 0x3816, 0x2b55, 0x369c, 0x3aab, 0x3508, 0x3b86, 0x340d, 0x34d6, 0x3766, -0x3691, 0x3723, 0x2e9f, 0x38a2, 0x3a6a, 0x3645, 0x2e83, 0x2f93, 0x3947, 0x3744, 0x352b, 0x365c, 0x3a34, 0x3a63, 0x3bae, 0x3977, 0x281c, 0x377c, 0x3584, 0x3bf9, 0x2f97, 0x34c8, 0x3af7, 0x38e7, 0x3acf, 0x384d, 0x3bdd, 0x387d, 0x3a8f, 0x399e, 0x34e0, 0x3a84, 0x31b5, 0x291d, 0x394d, 0x3967, 0x3a1f, 0x378e, 0x3618, 0x386e, 0x345c, 0x3916, 0x353a, 0x3176, 0x396f, 0x2bc1, 0x3b5c, 0x3b8a, 0x2d3c, 0x354b, 0x2c50, 0x3539, 0x2c35, 0x320f, 0x3914, 0x2a96, 0x3bcf, 0x3a20, 0x3a5b, 0x372e, 0x35f5, 0x3992, 0x3b39, 0x39b8, 0x3aea, 0x3bb5, 0x3a65, 0x3884, 0x2b7a, 0x3b7d, 0x3455, 0x3039, 0x36b1, 0x31c8, 0x391b, 0x3942, 0x3b4b, 0x365c, 0x3a2c, 0x39b6, 0x3b02, 0x3901, 0x33b8, 0x3ad1, 0x2c3d, 0x3955, 0x3857, 0x33bb, 0x2ef2, 0x3446, 0x3917, 0x3ad2, 0x34be, 0x3939, 0x35ab, 0x370f, -0x32c0, 0x2fdc, 0x3b63, 0x2a85, 0x3a47, 0x34c2, 0x3651, 0x31c5, 0x2b72, 0x3b43, 0x3ba3, 0x2c85, 0x3958, 0x3bc2, 0x3818, 0x35d3, 0x3bec, 0x32c4, 0x301a, 0x351a, 0x3706, 0x348e, 0x2194, 0x3830, 0x324f, 0x3a6d, 0x3b87, 0x2a73, 0x3ba9, 0x3ad9, 0x39cd, 0x3af6, 0x1d41, 0x31e5, 0x3abb, 0x3184, 0x3911, 0x318e, 0x39a7, 0x3295, 0x39fd, 0x342a, 0x3822, 0x3be0, 0x3a97, 0x386d, 0x35cf, 0x39bd, 0x29b2, 0x320f, 0x2fe7, 0x2f1e, 0x2c19, 0x3054, 0x3907, 0x3a78, 0x2093, 0x3901, 0x2e53, 0x3981, 0x3713, 0x3b18, 0x3b76, 0x3bee, 0x39f2, 0x2c64, 0x3680, 0x3b35, 0x39db, 0x34a2, 0x3963, 0x3a3c, 0x3b52, 0x34a1, 0x3951, 0x3aad, 0x2870, 0x35fc, 0x3a47, 0x3955, 0x37e9, 0x36c2, 0x3a4c, 0x2bd8, 0x34ee, 0x3751, 0x3ae0, 0x3b51, 0x2861, 0x3391, 0x2fa9, 0x3837, 0x35cb, 0x304b, 0x3b0f, 0x358b, -0x2f61, 0x3096, 0x3a54, 0x3059, 0x39af, 0x3b95, 0x2c6d, 0x2faf, 0x38f6, 0x3427, 0x3af3, 0x343d, 0x3b5a, 0x341e, 0x32d7, 0x224f, 0x3af7, 0x3159, 0x346d, 0x3535, 0x34c2, 0x371f, 0x39d4, 0x380b, 0x310c, 0x206a, 0x3a65, 0x3976, 0x3af2, 0x39ab, 0x39df, 0x327f, 0x399c, 0x2d96, 0x38a4, 0x357c, 0x2f8f, 0x3046, 0x38ae, 0x3ac4, 0x38b8, 0x2c03, 0x34c0, 0x3171, 0x39c1, 0x3802, 0x366d, 0x341f, 0x3286, 0x36f0, 0x397f, 0x2176, 0x3aac, 0x3b7a, 0x3a3a, 0x3919, 0x3585, 0x2cc4, 0x39ed, 0x2833, 0x3b9e, 0x36e3, 0x3a31, 0x3a48, 0x38a8, 0x3401, 0x3b8e, 0x38a0, 0x3a07, 0x378d, 0x3512, 0x33a7, 0x3977, 0x3862, 0x357d, 0x3922, 0x371f, 0x318d, 0x3b57, 0x3667, 0x313b, 0x3bf3, 0x35e0, 0x3ae6, 0x3668, 0x2940, 0x2d29, 0x30f4, 0x3a66, 0x3b0d, 0x3b12, 0x35dd, 0x390b, 0x3990, 0x3011, 0x2b64, -0x334f, 0x3b09, 0x398f, 0x34e0, 0x28d3, 0x3385, 0x39e4, 0x357c, 0x3a45, 0x2df3, 0x2c61, 0x3569, 0x355e, 0x3b14, 0x3012, 0x1c32, 0x3a0e, 0x39d3, 0x20f2, 0x38f4, 0x398b, 0x3b9c, 0x374a, 0x3916, 0x3a5a, 0x3892, 0x3720, 0x38de, 0x3809, 0x3173, 0x38a4, 0x3698, 0x3815, 0x30a5, 0x3a18, 0x3534, 0x2e89, 0x3657, 0x2fc1, 0x39c5, 0x3b59, 0x337f, 0x383b, 0x3ba1, 0x2d4d, 0x2d7a, 0x3b8e, 0x39c9, 0x2b4a, 0x2d1b, 0x3af3, 0x375a, 0x360a, 0x3977, 0x398f, 0x3bb2, 0x358c, 0x369e, 0x390f, 0x35ed, 0x392c, 0x33d4, 0x3a6b, 0x3ade, 0x38b2, 0x3424, 0x2d4f, 0x3aeb, 0x3802, 0x33fa, 0x31c4, 0x35ef, 0x3b51, 0x2d27, 0x3912, 0x351a, 0x36ea, 0x3869, 0x2c73, 0x264b, 0x371d, 0x3a9e, 0x3159, 0x3a54, 0x3849, 0x394e, 0x3921, 0x3435, 0x38aa, 0x33ae, 0x3950, 0x3adf, 0x3b9b, 0x3a1d, 0x3706, 0x3b43, -0x3541, 0x3b8a, 0x3528, 0x39da, 0x36fa, 0x392e, 0x3195, 0x38e7, 0x392a, 0x366f, 0x308f, 0x29d5, 0x3be5, 0x345a, 0x35b5, 0x395b, 0x3a76, 0x3224, 0x1958, 0x39e1, 0x3b98, 0x3b80, 0x30a5, 0x3461, 0x3471, 0x365a, 0x3af0, 0x30ac, 0x38dd, 0x38ca, 0x2d58, 0x3bf4, 0x35bc, 0x3478, 0x235b, 0x3b92, 0x391f, 0x39e3, 0x3b11, 0x3afb, 0x2ea4, 0x2c61, 0x3756, 0x3821, 0x38d6, 0x3938, 0x3478, 0x3813, 0x3740, 0x31ea, 0x3b6d, 0x3be6, 0x2a58, 0x36c6, 0x31ee, 0x3642, 0x3b29, 0x37df, 0x337d, 0x336b, 0x3afa, 0x352b, 0x3aa6, 0x3898, 0x37cc, 0x33f2, 0x3b20, 0x3a61, 0x380e, 0x3b37, 0x38e6, 0x3b79, 0x365a, 0x387a, 0x24c7, 0x3301, 0x3b10, 0x3afb, 0x3819, 0x3aa3, 0x38cd, 0x384d, 0x3661, 0x383e, 0x3a34, 0x3b1a, 0x2d83, 0x36a8, 0x3b75, 0x3b0e, 0x363d, 0x3a67, 0x392e, 0x389c, 0x35a3, 0x2e39, -0x3ae7, 0x3849, 0x3bc7, 0x2a99, 0x31b2, 0x3535, 0x32dc, 0x2ab5, 0x3b34, 0x398c, 0x2b94, 0x36b5, 0x39fe, 0x376a, 0x39ee, 0x34f9, 0x31ce, 0x3968, 0x3809, 0x3261, 0x38f8, 0x3b62, 0x3807, 0x3992, 0x3b8e, 0x39e0, 0x3614, 0x3b23, 0x36d0, 0x38da, 0x3a8c, 0x3b55, 0x316c, 0x3b5d, 0x3531, 0x39a5, 0x24db, 0x293c, 0x3822, 0x38dc, 0x316f, 0x3750, 0x3601, 0x30bf, 0x3a74, 0x24af, 0x258b, 0x3bec, 0x293c, 0x3868, 0x360e, 0x310d, 0x36b3, 0x344c, 0x2cf0, 0x3476, 0x3a3a, 0x2e52, 0x3939, 0x3a69, 0x34df, 0x3a5b, 0x39c0, 0x347c, 0x371d, 0x391d, 0x3913, 0x306f, 0x3bfe, 0x380f, 0x3959, 0x39bd, 0x3619, 0x34e2, 0x36c6, 0x39bc, 0x3a2c, 0x3bc3, 0x3a29, 0x2c45, 0x3ac4, 0x3b46, 0x3a5c, 0x3be6, 0x2c2c, 0x3757, 0x39cb, 0x30f0, 0x38c8, 0x3154, 0x38b5, 0x3480, 0x3835, 0x3b8c, 0x311d, 0x3570, -0x38c4, 0x3400, 0x2d91, 0x3a09, 0x312a, 0x39e9, 0x3b4e, 0x320d, 0x372d, 0x33f0, 0x3b4c, 0x2253, 0x37dd, 0x39a8, 0x3a18, 0x3aeb, 0x3b0a, 0x35eb, 0x3a4c, 0x39ff, 0x3a97, 0x2b96, 0x37c0, 0x3169, 0x3727, 0x3859, 0x3874, 0x3a11, 0x356e, 0x39e4, 0x3849, 0x38ab, 0x292b, 0x38a8, 0x2e0b, 0x1e53, 0x3814, 0x367d, 0x3962, 0x39ff, 0x3a0e, 0x38a1, 0x3249, 0x2d7c, 0x31df, 0x3924, 0x3ae4, 0x3978, 0x38c9, 0x3808, 0x288b, 0x3004, 0x3983, 0x3427, 0x3aa2, 0x3bb9, 0x38bc, 0x380d, 0x3ba3, 0x3522, 0x3607, 0x38c1, 0x35d4, 0x3a19, 0x38d6, 0x3aef, 0x3682, 0x3b5c, 0x2de4, 0x35bb, 0x363b, 0x36df, 0x3803, 0x39e5, 0x2e9f, 0x3a36, 0x3a9c, 0x36dc, 0x3908, 0x3ada, 0x3978, 0x382c, 0x3ba7, 0x398e, 0x3800, 0x3ad7, 0x387e, 0x3429, 0x2d19, 0x3971, 0x37f1, 0x3af3, 0x3986, 0x3a07, 0x382f, 0x359b, -0x2f4d, 0x3a0f, 0x3890, 0x386e, 0x3229, 0x2fb8, 0x390a, 0x390e, 0x3b53, 0x3812, 0x2961, 0x3017, 0x39d5, 0x3958, 0x2d80, 0x2fad, 0x3730, 0x3853, 0x2882, 0x3bb9, 0x3939, 0x3bab, 0x2ffa, 0x28ff, 0x3a54, 0x38d5, 0x3456, 0x3bd4, 0x3a38, 0x30a8, 0x3a38, 0x32ab, 0x3788, 0x3a1d, 0x3bec, 0x325c, 0x3981, 0x3a5a, 0x2941, 0x3925, 0x353a, 0x360a, 0x38cf, 0x374d, 0x30a4, 0x2819, 0x3021, 0x3143, 0x3684, 0x3af2, 0x3a61, 0x3a31, 0x3625, 0x38a6, 0x3a5d, 0x3963, 0x3997, 0x391a, 0x3767, 0x3b35, 0x383c, 0x37bf, 0x3753, 0x357a, 0x3993, 0x382b, 0x3128, 0x3a93, 0x3b03, 0x38e2, 0x37e9, 0x3b05, 0x3789, 0x3be9, 0x3068, 0x36f4, 0x19c7, 0x3523, 0x28f3, 0x3746, 0x324c, 0x31cc, 0x377e, 0x35b4, 0x3127, 0x3a24, 0x351a, 0x3b16, 0x3801, 0x398d, 0x39a8, 0x3b6f, 0x3933, 0x3535, 0x30e3, 0x3b25, -0x353f, 0x306c, 0x3bd1, 0x380e, 0x3b05, 0x3859, 0x2e39, 0x37b4, 0x38fb, 0x392e, 0x32c0, 0x3adb, 0x29c4, 0x3b0e, 0x28a6, 0x341f, 0x371a, 0x39bc, 0x30a1, 0x3790, 0x3439, 0x3102, 0x3bcc, 0x2f3d, 0x39ad, 0x3b38, 0x390e, 0x391f, 0x39a7, 0x3099, 0x3a5b, 0x3894, 0x3674, 0x3948, 0x3895, 0x3458, 0x3bc6, 0x3a36, 0x381e, 0x3069, 0x39fc, 0x3a3f, 0x39f5, 0x3a9d, 0x3169, 0x39a9, 0x3b16, 0x362d, 0x3951, 0x3881, 0x3ac4, 0x2ecf, 0x3b79, 0x3abe, 0x3841, 0x2c1a, 0x3b7a, 0x3083, 0x3ad1, 0x3a90, 0x3974, 0x2e92, 0x3b5f, 0x3003, 0x39c1, 0x2ff2, 0x39dc, 0x3bbf, 0x3972, 0x3997, 0x3667, 0x3409, 0x3239, 0x3aaf, 0x358e, 0x33b8, 0x397a, 0x3b54, 0x399d, 0x351d, 0x35c8, 0x3362, 0x2964, 0x3102, 0x3bc4, 0x22b3, 0x3b29, 0x3925, 0x37f0, 0x23fc, 0x3bc8, 0x39f0, 0x30cd, 0x3569, 0x3a27, 0x3b0b, -0x392e, 0x38e0, 0x3436, 0x3aa6, 0x395a, 0x397e, 0x38f6, 0x3b45, 0x3050, 0x34b0, 0x3b1d, 0x3932, 0x3a3a, 0x3915, 0x3816, 0x3b23, 0x3342, 0x2c1e, 0x3bfa, 0x3978, 0x304c, 0x2cd7, 0x3a11, 0x37d8, 0x3ad2, 0x37cb, 0x3bf8, 0x37d3, 0x3589, 0x37aa, 0x399a, 0x3661, 0x3965, 0x328a, 0x3969, 0x3100, 0x2dc4, 0x34a0, 0x30a4, 0x3950, 0x2f40, 0x32ab, 0x3904, 0x398d, 0x3293, 0x34a7, 0x33a4, 0x38b6, 0x3834, 0x3add, 0x3a08, 0x38cf, 0x3a13, 0x3a6f, 0x382e, 0x3682, 0x3b4b, 0x323e, 0x38e0, 0x38dc, 0x3854, 0x3b9d, 0x3b13, 0x3940, 0x38d4, 0x30ac, 0x3061, 0x3906, 0x3b2d, 0x38f9, 0x3ab0, 0x3a5a, 0x34fd, 0x3b15, 0x3472, 0x3985, 0x3634, 0x3940, 0x35da, 0x38ba, 0x395b, 0x3488, 0x39ca, 0x3a14, 0x2b22, 0x3829, 0x3479, 0x30a6, 0x3910, 0x34e2, 0x3506, 0x3663, 0x23b2, 0x3812, 0x3416, 0x3455, -0x3bc0, 0x3487, 0x3853, 0x3738, 0x3a19, 0x38a3, 0x339a, 0x3906, 0x3a98, 0x3a4c, 0x32bb, 0x3460, 0x2031, 0x36a4, 0x387a, 0x3141, 0x2f39, 0x2efd, 0x394e, 0x2e35, 0x3528, 0x3c00, 0x3b44, 0x342b, 0x3b4d, 0x3bdb, 0x3185, 0x39cb, 0x358a, 0x39ce, 0x2060, 0x3baa, 0x3bc4, 0x30eb, 0x3aed, 0x3734, 0x3a1f, 0x15f9, 0x3a5c, 0x372e, 0x33f9, 0x3b71, 0x3715, 0x37e3, 0x3384, 0x38ff, 0x36e6, 0x28a1, 0x2d9e, 0x280b, 0x3853, 0x3b42, 0x2eda, 0x3a63, 0x2328, 0x3830, 0x35a6, 0x39e9, 0x33df, 0x3be1, 0x220a, 0x39b4, 0x3ade, 0x2e17, 0x3831, 0x2cfe, 0x3752, 0x38fb, 0x39ce, 0x350b, 0x3600, 0x2ffd, 0x363a, 0x358b, 0x2582, 0x3510, 0x36db, 0x2e28, 0x38e0, 0x3a49, 0x277a, 0x301e, 0x39ca, 0x3861, 0x31a7, 0x3550, 0x3862, 0x3476, 0x3a8d, 0x38c2, 0x394b, 0x3156, 0x39ea, 0x3bdf, 0x3880, 0x389a, -0x3a75, 0x35a7, 0x37b1, 0x3b17, 0x24de, 0x32cd, 0x2c9b, 0x3968, 0x3a36, 0x2e6f, 0x3549, 0x3971, 0x34cb, 0x34ac, 0x3bf7, 0x34b8, 0x3841, 0x3527, 0x3a22, 0x3955, 0x3454, 0x380d, 0x38cd, 0x39b3, 0x39c4, 0x3777, 0x3737, 0x2ead, 0x39ef, 0x3420, 0x3a95, 0x35f0, 0x347f, 0x2c76, 0x2cfd, 0x33de, 0x3363, 0x3bf0, 0x3afc, 0x3ab1, 0x3b88, 0x3bcb, 0x23ba, 0x3353, 0x2169, 0x33a7, 0x3484, 0x307b, 0x20b7, 0x384d, 0x302a, 0x3448, 0x39b1, 0x39ab, 0x3be0, 0x3430, 0x3a05, 0x3715, 0x35fe, 0x1e5c, 0x3b84, 0x3b3a, 0x3b0a, 0x320e, 0x2e29, 0x2f00, 0x37c3, 0x3865, 0x37ae, 0x3959, 0x3ba0, 0x3b56, 0x3b4a, 0x3934, 0x35bf, 0x3aa7, 0x3814, 0x320c, 0x3b4a, 0x2499, 0x34bd, 0x3a25, 0x39b8, 0x318b, 0x3b42, 0x3a28, 0x3912, 0x3be5, 0x37af, 0x2cb7, 0x3799, 0x37eb, 0x3981, 0x3033, 0x2f89, 0x3471, -0x3a59, 0x3ab8, 0x3a8d, 0x3bd7, 0x3ba2, 0x39d4, 0x3a8b, 0x278d, 0x32e2, 0x2ced, 0x397f, 0x39f2, 0x3b27, 0x3798, 0x35bf, 0x3597, 0x374e, 0x3ac6, 0x3728, 0x3673, 0x252b, 0x30c8, 0x3b7b, 0x39fb, 0x38db, 0x3ac7, 0x3728, 0x3420, 0x3749, 0x3749, 0x37f3, 0x3977, 0x3181, 0x2d5c, 0x37f8, 0x3966, 0x3b9f, 0x3901, 0x369f, 0x36fa, 0x2468, 0x38f7, 0x3900, 0x37f1, 0x39d6, 0x342d, 0x35d0, 0x359f, 0x3b0b, 0x3a28, 0x34b4, 0x3979, 0x3346, 0x3b9a, 0x391f, 0x3823, 0x350e, 0x3b34, 0x3202, 0x3a2b, 0x313e, 0x355b, 0x37fb, 0x3ac1, 0x36ac, 0x2452, 0x2711, 0x360d, 0x34b7, 0x3af8, 0x2b80, 0x3621, 0x3950, 0x3824, 0x3578, 0x3900, 0x2ac0, 0x38c6, 0x39e1, 0x3565, 0x348f, 0x32d5, 0x388c, 0x38c0, 0x30e3, 0x3738, 0x3bbb, 0x3b46, 0x3b6e, 0x3bd1, 0x3b3d, 0x2d5b, 0x3acd, 0x3a67, 0x35f0, 0x3956, -0x39dd, 0x3be7, 0x3468, 0x2fb1, 0x3b73, 0x348b, 0x37a8, 0x2c37, 0x3b32, 0x375a, 0x3a14, 0x353d, 0x371f, 0x3b1b, 0x3b62, 0x3aaa, 0x39e8, 0x32d1, 0x3b3e, 0x3b74, 0x337c, 0x383e, 0x2d50, 0x3bc2, 0x33f5, 0x330f, 0x3b93, 0x3552, 0x3842, 0x37b5, 0x3918, 0x3654, 0x38a6, 0x2863, 0x3b0c, 0x38e8, 0x3b18, 0x28d3, 0x3b95, 0x3ad8, 0x38d1, 0x39ac, 0x31fb, 0x396b, 0x3b8f, 0x3818, 0x2d54, 0x3bd6, 0x340f, 0x3a89, 0x3192, 0x2cff, 0x3a00, 0x3680, 0x3843, 0x353a, 0x3591, 0x320f, 0x380e, 0x3709, 0xca6, 0x3783, 0x2f2b, 0x2ca1, 0x3885, 0x3391, 0x2c3b, 0x3933, 0x3812, 0x363e, 0x39b5, 0x39d8, 0x3a4b, 0x3951, 0x38b6, 0x399a, 0x318f, 0x2c20, 0x3925, 0x37cc, 0x3795, 0x38b8, 0x3184, 0x3961, 0x376a, 0x302b, 0x319e, 0x3b7d, 0x29a8, 0x3ae9, 0x313d, 0x3b7c, 0x3b7a, 0x3729, 0x3455, 0x2da3, -0x355c, 0x351e, 0x39d5, 0x3bf8, 0x3b11, 0x338f, 0x3990, 0x34cd, 0x3378, 0x2cbc, 0x3948, 0x39ab, 0x3be7, 0x3b59, 0x38e2, 0x2d9f, 0x378b, 0x385b, 0x31e4, 0x35ed, 0x3b0e, 0x3915, 0x3984, 0x3a44, 0x3869, 0x39f7, 0x3239, 0x3a8b, 0x36fb, 0x3081, 0x3ac3, 0x3b0e, 0x3104, 0x2078, 0x3962, 0x29bc, 0x3bb8, 0x3985, 0x3a56, 0x3648, 0x3a7d, 0x3ad3, 0x34d9, 0x3bb5, 0x38d9, 0x39b6, 0x3a2f, 0x3767, 0x3a56, 0x3620, 0x394d, 0x2d7c, 0x322a, 0x3899, 0x3a53, 0x3353, 0x383e, 0x316e, 0x348d, 0x3af5, 0x3a16, 0x3804, 0x3418, 0x3b1a, 0x3be6, 0x3166, 0x2911, 0x3656, 0x3acd, 0x392e, 0x3112, 0x3968, 0x37b7, 0x3af6, 0x38dd, 0x36b4, 0x3444, 0x3be7, 0x3991, 0x375f, 0x38da, 0x315a, 0x3684, 0x21a4, 0x38f4, 0x3860, 0x3935, 0x3b0f, 0x3b40, 0x37b6, 0x35b3, 0x3476, 0x35e9, 0x38ad, 0x3b82, 0x2964, -0x3880, 0x3844, 0x3615, 0x39d0, 0x3310, 0x306b, 0x329d, 0x338a, 0x2f84, 0x3a43, 0x300b, 0x3a47, 0x3821, 0x3b60, 0x387a, 0x3301, 0x3046, 0x351a, 0x3711, 0x38ec, 0x33a1, 0x376e, 0x39da, 0x3aae, 0x3877, 0x3960, 0x38ef, 0x3412, 0x3bbd, 0x3b24, 0x39e5, 0x355d, 0x3ab6, 0x2de8, 0x3ab5, 0x34a8, 0x3856, 0x32b4, 0x3673, 0x3a8b, 0x2e18, 0x3035, 0x3823, 0x38e7, 0x398e, 0x3743, 0x36e4, 0x381c, 0x3893, 0x3ae2, 0x331f, 0x3bdb, 0x34ae, 0x3a85, 0x277f, 0x342f, 0x38da, 0x3b62, 0x393a, 0x26bc, 0x3563, 0x39ce, 0x38e1, 0x395a, 0x3698, 0x3907, 0x30ed, 0x3536, 0x3925, 0x3bc8, 0x30ee, 0x38c2, 0x351d, 0x306e, 0x3952, 0x327f, 0x3a90, 0x3875, 0x337f, 0x3ab1, 0x342c, 0x39e7, 0x3be5, 0x33a6, 0x39af, 0x36ab, 0x2bca, 0x3984, 0x3a01, 0x319e, 0x3904, 0x3b78, 0x3785, 0x3a75, 0x3ace, 0x39c2, -0x3a6e, 0x39c8, 0x3b65, 0x342b, 0x3491, 0x320a, 0x3a81, 0x1f58, 0x3af6, 0x3881, 0x35d6, 0x389c, 0x3a23, 0x336f, 0x36ad, 0x39ab, 0x3062, 0x37fc, 0x317b, 0x3870, 0x3add, 0x3a7f, 0x37fe, 0x340b, 0x3211, 0x3944, 0x3714, 0x3806, 0x3bce, 0x3441, 0x3781, 0x397e, 0x391c, 0x3182, 0x31ac, 0x3456, 0x38f3, 0x3b15, 0x3b76, 0x3bf1, 0x3971, 0x3601, 0x318d, 0x34f2, 0x3a78, 0x35f5, 0x35c7, 0x354f, 0x3570, 0x36c5, 0x39fc, 0x35cd, 0x380e, 0x3606, 0x39c0, 0x352c, 0x3112, 0x3b6b, 0x355c, 0x3977, 0x328f, 0x2d34, 0x3abb, 0x3942, 0x1cba, 0x367a, 0x3aa6, 0x341f, 0x383f, 0x3a9a, 0x3960, 0x358f, 0x2dce, 0x21ac, 0x3bef, 0x3bca, 0x3bdb, 0x3967, 0x38aa, 0x39c1, 0x3b5b, 0x3185, 0x352c, 0x388a, 0x3893, 0x3a70, 0x34e4, 0x38e2, 0x31ba, 0x34d8, 0x32b5, 0x3aed, 0x3802, 0x2f06, 0x36d9, 0x3493, -0x3a09, 0x2994, 0x2e77, 0x3ae8, 0x3bc6, 0x3ace, 0x3926, 0x35b6, 0x326a, 0x3079, 0x3769, 0x28d1, 0x3b41, 0x357b, 0x3aed, 0x34cd, 0x3361, 0x2b6a, 0x3bc8, 0x2115, 0x3b73, 0x371f, 0x3b10, 0x2d39, 0x3092, 0x3264, 0x39df, 0x34c1, 0x2a04, 0x3a86, 0x306c, 0x33bf, 0x37dd, 0x3b17, 0x2f12, 0x3676, 0x3991, 0x3a7a, 0x3bb9, 0x3a80, 0x3441, 0x3592, 0x358d, 0x39dc, 0x31d3, 0x3887, 0x30f5, 0x3855, 0x3be6, 0x3b49, 0x3a7f, 0x3a6c, 0x2de5, 0x269d, 0x37e8, 0x3b49, 0x3026, 0x318b, 0x35e1, 0x39ba, 0x3a34, 0x3a43, 0x35a4, 0x34dd, 0x3918, 0x3a6a, 0x3780, 0x38d0, 0x3b78, 0x3b3e, 0x23b9, 0x37d9, 0x2b95, 0x3619, 0x3377, 0x2df7, 0x3b1e, 0x36de, 0x368b, 0x3bc4, 0x22d2, 0x3730, 0x30cf, 0x379d, 0x3824, 0x37fe, 0x39ba, 0x28c6, 0x36d3, 0x3587, 0x3aaa, 0x3155, 0x3a2d, 0x26ff, 0x2ffb, 0x3a19, -0x31b1, 0x302e, 0x2eba, 0x31f0, 0x3ba8, 0x3510, 0x243a, 0x30a4, 0x3638, 0x3b45, 0x2954, 0x3530, 0x39bc, 0x3944, 0x3951, 0x3026, 0x368f, 0x38e4, 0x36ce, 0x3b31, 0x38e5, 0x3471, 0x3af0, 0x3acf, 0x3842, 0x3be1, 0x319c, 0x2f2d, 0x3490, 0x3bec, 0x3b40, 0x3837, 0x3b38, 0x37fb, 0x3887, 0x383e, 0x382e, 0x31bd, 0x3ae1, 0x3a96, 0x3814, 0x37e0, 0x279d, 0x3363, 0x2ba9, 0x312b, 0x3a46, 0x3617, 0x3a0d, 0x2817, 0x3a37, 0x3981, 0x2d54, 0x3437, 0x3959, 0x3151, 0x3bc2, 0x39c9, 0x3aa3, 0x2d25, 0x3976, 0x3a2b, 0x3acd, 0x3a43, 0x3a9e, 0x39a1, 0x3914, 0x37ac, 0x3702, 0x382c, 0x38d9, 0x318c, 0x210a, 0x2c14, 0x34e2, 0x3a22, 0x2861, 0x3bc6, 0x1265, 0x3b43, 0x332e, 0x3992, 0x3330, 0x3a50, 0x3b38, 0x3aad, 0x33ce, 0x39a9, 0x33be, 0x387d, 0x3ade, 0x3a94, 0x3a56, 0x3ae4, 0x38a9, 0x1ace, -0x3551, 0x3ad8, 0x37c2, 0x3b00, 0x3b8d, 0x36d9, 0x3baa, 0x38bb, 0x34df, 0x3710, 0x3599, 0x3b7b, 0x2fea, 0x385e, 0x2dd8, 0x2e4e, 0x394d, 0x208a, 0x350b, 0x3876, 0x2df7, 0x34f4, 0x3b4c, 0x386d, 0x3260, 0x3b9d, 0x3343, 0x383f, 0x3bf4, 0x333b, 0x3bde, 0x3bd3, 0x392f, 0x3a2d, 0x3bdd, 0x341e, 0x3b13, 0x2b1c, 0x3b34, 0x2bb7, 0x2a93, 0x39c2, 0x3634, 0x358c, 0x3ba9, 0x3231, 0x3a0d, 0x3bc7, 0x3813, 0x2814, 0x3a1b, 0x3b03, 0x2e0e, 0x3616, 0x383a, 0x3578, 0x3a1f, 0x3685, 0x303c, 0x34a7, 0x3bad, 0x3548, 0x2380, 0x364f, 0x36ac, 0x28f8, 0x3a74, 0x34e2, 0x392e, 0x3409, 0x30e5, 0x340f, 0x3581, 0x36a3, 0x3366, 0x35f1, 0x30c4, 0x374f, 0x3921, 0x3aec, 0x3881, 0x2b48, 0x38e7, 0x31ce, 0x3626, 0x3b4b, 0x3b9f, 0x34cd, 0x313e, 0x379e, 0x39a6, 0x38cf, 0x38e3, 0x3031, 0x398f, 0x3bbc, -0x3a15, 0x3737, 0x361a, 0x3b25, 0x3992, 0x350a, 0x3698, 0x37de, 0x3a78, 0x37f5, 0x36d2, 0x3a12, 0x348e, 0x3923, 0x352f, 0x3b28, 0x3989, 0x39d8, 0x3b7b, 0x37cf, 0x3bfd, 0x3143, 0x31f5, 0x36a2, 0x3ae8, 0x3b3d, 0x3aab, 0x320e, 0x2ecc, 0x368f, 0x29c4, 0x36d0, 0x3a8c, 0x35c1, 0x2daa, 0x3128, 0x3b96, 0x388c, 0x3786, 0x349a, 0x390b, 0x2843, 0x381f, 0x2d05, 0x31ee, 0x3976, 0x3722, 0x368a, 0x3899, 0x3b64, 0x3b84, 0x3ae4, 0x3135, 0x3838, 0x387c, 0x2636, 0x2cd7, 0x3bcd, 0x39a6, 0x3ac6, 0x34c3, 0x364d, 0x384b, 0x2c55, 0x34b6, 0x201f, 0x38de, 0x2fc0, 0x389c, 0x381b, 0x36a8, 0x372f, 0x2b5c, 0x3491, 0x30d7, 0x38d2, 0x3893, 0x33a0, 0x33c8, 0x3405, 0x3490, 0x387d, 0x3411, 0x3907, 0x3bc0, 0x3aa9, 0x3023, 0x395c, 0x3b10, 0x3b8e, 0x3791, 0x3b17, 0x3980, 0x3b13, 0x336a, 0x354d, -0x39d9, 0x35f5, 0x3034, 0x300f, 0x38e5, 0x395c, 0x3394, 0x392f, 0x390a, 0x2567, 0x3151, 0x3861, 0x3a84, 0x3759, 0x382b, 0x3185, 0x359b, 0x3a6b, 0x3927, 0x3b6c, 0x39ed, 0x2cc3, 0x34bc, 0x389f, 0x3617, 0x335f, 0x3a9e, 0x35c0, 0x378c, 0x38e7, 0x2d21, 0x2ec0, 0x3874, 0x3af1, 0x36c6, 0x3b7e, 0x364f, 0x386e, 0x34f3, 0x2761, 0x386e, 0x3ac9, 0x308e, 0x3ad6, 0x3194, 0x35f7, 0x31d0, 0x3a36, 0x34d6, 0x36b0, 0x34bf, 0x38cb, 0x2f2c, 0x3945, 0x325c, 0x39d0, 0x1fce, 0x3a04, 0x3118, 0x3a0c, 0x3a56, 0x3794, 0x3744, 0x3ad3, 0x36c3, 0x2700, 0x392c, 0x34fa, 0x3b4d, 0x2649, 0x393c, 0x3967, 0x37f7, 0x369e, 0x3ac1, 0x39b3, 0x39a1, 0x36a4, 0x3645, 0x39cc, 0x3af9, 0x31e3, 0x237a, 0x35d3, 0x35fa, 0x3b53, 0x3872, 0x3bcc, 0x3a9c, 0x3ba9, 0x34e9, 0x34ec, 0x3b31, 0x3b09, 0x31d7, 0x3a45, -0x33ab, 0x38b0, 0x384c, 0x3a48, 0x3340, 0x390f, 0x340e, 0x3937, 0x2ceb, 0x3b0d, 0x3b15, 0x3979, 0x3884, 0x376b, 0x3b79, 0x39d2, 0x36fb, 0x3442, 0x3994, 0x35c1, 0x3b6f, 0x3918, 0x3bea, 0x37f1, 0x3b25, 0x3bd5, 0x3ab4, 0x3604, 0x3593, 0x39fc, 0x3893, 0x37f7, 0x3a56, 0x3118, 0x3444, 0x36ac, 0x315a, 0x2eaa, 0x3a55, 0x3bea, 0x372f, 0x3b79, 0x38fa, 0x32a9, 0x2a8d, 0x326b, 0x39dd, 0x2c6e, 0x3a63, 0x39a8, 0x34dd, 0x2fa8, 0x3afa, 0x3ab1, 0x3854, 0x2e58, 0x3a7b, 0x39e6, 0x3489, 0x3631, 0x3826, 0x3ad2, 0x384d, 0x3565, 0x3a21, 0x3beb, 0x334d, 0x3603, 0x2de5, 0x31fa, 0x3111, 0x3455, 0x390c, 0x38aa, 0x3822, 0x2e75, 0x36cb, 0x3bb0, 0x38d7, 0x386a, 0x336f, 0x3150, 0x395a, 0x3219, 0x39f2, 0x3675, 0x2b46, 0x39d6, 0x2e2f, 0x3752, 0x3b23, 0x3670, 0x3b64, 0x39f4, 0x3bec, 0x3848, -0x389e, 0x3214, 0x3618, 0x32ca, 0x333b, 0x2fe6, 0x2cf6, 0x36f3, 0x3748, 0x380b, 0x3b5f, 0x3b4e, 0x2dce, 0x2474, 0x3a17, 0x320e, 0x38ac, 0x3b44, 0x3595, 0x3bd7, 0x3896, 0x32ea, 0x37d0, 0x34a8, 0x31f2, 0x3a51, 0x3b6c, 0x3753, 0x3abd, 0x3b26, 0x24a0, 0x32fb, 0x3a3a, 0x3bf9, 0x2fc5, 0x390d, 0x3a42, 0x331d, 0x3b2e, 0x370e, 0x32d3, 0x3b26, 0x3b7f, 0x2d64, 0x39ca, 0x3405, 0x3962, 0x36c0, 0x2ffe, 0x3b76, 0x3811, 0x3287, 0x34d7, 0x3beb, 0x3a37, 0x3756, 0x390e, 0x398b, 0x3160, 0x3bf9, 0x3a09, 0x38ee, 0x382a, 0x366e, 0x3836, 0x3b95, 0x3b30, 0x3bd4, 0x1c94, 0x33c6, 0x3391, 0x3b2c, 0x3b07, 0x37b6, 0x3499, 0x3942, 0x2dc7, 0x357d, 0x380f, 0x32e5, 0x3628, 0x386a, 0x3b66, 0x395b, 0x3611, 0x3bef, 0x3935, 0x34c3, 0x3354, 0x39ab, 0x3b9e, 0x34f5, 0x358b, 0x326f, 0x3952, 0x359f, -0x39c7, 0x399f, 0x2d59, 0x379e, 0x33fd, 0x3b7a, 0x327e, 0x392d, 0x3b6c, 0x34b5, 0x3a50, 0x365b, 0x392f, 0x3b31, 0x3a20, 0x3131, 0x3a43, 0x292e, 0x3a0c, 0x3bb1, 0x3bf6, 0x29e8, 0x32d4, 0x3b07, 0x3189, 0x32d5, 0x3689, 0x3a3e, 0x3857, 0x281c, 0x2b7b, 0x3545, 0x35a9, 0x3aa0, 0x2cf4, 0x3356, 0x3b2f, 0x3845, 0x3a9d, 0x38fa, 0x285c, 0x3aef, 0x387a, 0x2121, 0x376d, 0x30bb, 0x38b8, 0x3ad4, 0x3bf3, 0x3219, 0x398e, 0x2dc8, 0x31ae, 0x38b2, 0x34f9, 0x3846, 0x3bb0, 0x3bc9, 0x2fd2, 0x3403, 0x34c1, 0x3043, 0x3823, 0x38f1, 0x384a, 0x396a, 0x37c2, 0x3839, 0x3441, 0x3821, 0x2774, 0x380f, 0x39e4, 0x3832, 0x375b, 0x3a10, 0x3894, 0x2f6b, 0x3586, 0x34fe, 0x3bad, 0x3856, 0x35c6, 0x38ad, 0x3835, 0x368d, 0x39a1, 0x3736, 0x349e, 0x32c2, 0x2df5, 0x34c5, 0x3ba0, 0x349b, 0x35af, 0x35aa, -0x3a17, 0x3696, 0x3169, 0x3433, 0x3800, 0x38f3, 0x37f8, 0x376a, 0x2ec7, 0x3bad, 0x373f, 0x281c, 0x3968, 0x3403, 0x2c9e, 0x3b1f, 0x3003, 0x35cc, 0x3810, 0x367c, 0x3a68, 0x26e9, 0x34e2, 0x3902, 0x2edb, 0x3478, 0x2a6a, 0x3a45, 0x3867, 0x38c5, 0x3a61, 0x388c, 0x3738, 0x34be, 0x35e6, 0x36b3, 0x325c, 0x35c6, 0x384e, 0x358d, 0x3894, 0x31c8, 0x3820, 0x363b, 0x380e, 0x385f, 0x38ac, 0x36a3, 0x31da, 0x3b46, 0x3715, 0x37ec, 0x386b, 0x35c7, 0x3100, 0x3a7a, 0x3504, 0x3810, 0x3a22, 0x36a9, 0x3995, 0x3b0c, 0x37f0, 0x2d4e, 0x36c4, 0x347e, 0x39dc, 0x3a2a, 0x3951, 0x3bca, 0x3bf5, 0x3bb3, 0x3b46, 0x3afa, 0x311c, 0x3929, 0x3291, 0x372f, 0x306d, 0x2843, 0x391a, 0x30c4, 0x3a5b, 0x3be7, 0x3924, 0x38ae, 0x3734, 0x32bd, 0x3b39, 0x39f6, 0x3aaa, 0x327a, 0x3045, 0x383c, 0x3303, 0x352c, -0x3bcd, 0x3baa, 0x3116, 0x3ad3, 0x39bc, 0x3aee, 0x36b3, 0x3a06, 0x3408, 0x3971, 0x3545, 0x38aa, 0x3a21, 0x3743, 0x367e, 0x3ac3, 0x3a54, 0x2cad, 0x3820, 0x39eb, 0x398a, 0x34a9, 0x3b95, 0x3a34, 0x32bb, 0x3bda, 0x3704, 0x3aa2, 0x39a3, 0x3953, 0x38ed, 0x3821, 0x39eb, 0x36b4, 0x38b5, 0x382e, 0x3753, 0x3203, 0x3796, 0x2e26, 0x303a, 0x3895, 0x39a3, 0x3a1f, 0x3ad6, 0x302f, 0x376d, 0x347f, 0x32fc, 0x382d, 0x39fa, 0x2d39, 0x32b2, 0x2fef, 0x3044, 0x3497, 0x39a9, 0x3994, 0x346d, 0x38a8, 0x3487, 0x3431, 0x39a7, 0x375a, 0x3935, 0x2eaf, 0x2ff3, 0x3467, 0x35cf, 0x3738, 0x2df4, 0x3b14, 0x3978, 0x36a8, 0x3406, 0x3aad, 0x3169, 0x355a, 0x3a49, 0x2e40, 0x34a4, 0x34ac, 0x308a, 0x3546, 0x3b34, 0x3514, 0x3aaf, 0x3707, 0x3999, 0x3a99, 0x2cc7, 0x326d, 0x3a95, 0x3bb1, 0x315b, 0x3989, -0x39d7, 0x3684, 0x39f7, 0x3963, 0x31e0, 0x3a96, 0x3492, 0x3b63, 0x37fd, 0x3b38, 0x37ba, 0x34fd, 0x365b, 0x3496, 0x3a38, 0x3906, 0x3bed, 0x39d9, 0x389b, 0x34eb, 0x3332, 0x2b11, 0x31c8, 0x3889, 0x3810, 0x30b7, 0x28b6, 0x29d1, 0x3420, 0x3222, 0x387e, 0x3a70, 0x2cf8, 0x3b07, 0x304f, 0x3998, 0x360b, 0x3b8b, 0x3434, 0x38ee, 0x304f, 0x39e7, 0x3685, 0x3981, 0x3a46, 0x39af, 0x387a, 0x36e7, 0x3a5e, 0x33ef, 0x3a38, 0x32d1, 0x39f0, 0x345c, 0x36af, 0x3416, 0x3be9, 0x23fa, 0x3b3a, 0x3b59, 0x3732, 0x3578, 0x3bd8, 0x3a83, 0x387d, 0x3ad8, 0x394e, 0x3431, 0x3748, 0x3809, 0x3ac3, 0x3a1a, 0x38e0, 0x37ca, 0x2e29, 0x386d, 0x2e50, 0x360f, 0x31e4, 0x3715, 0x3986, 0x35a7, 0x3bd1, 0x3ae4, 0x3432, 0x3750, 0x38e8, 0x3926, 0x3b12, 0x3460, 0x358f, 0x3aab, 0x3906, 0x355a, 0x27fc, 0x3a2f, -0x386f, 0x3b47, 0x309b, 0x3098, 0x3b47, 0x35a2, 0x3677, 0x39a2, 0x35a4, 0x389e, 0x3b5f, 0x37e9, 0x32d3, 0x30cb, 0x2cc7, 0x2f1d, 0x392f, 0x3bfb, 0x392b, 0x3909, 0x3a3a, 0x38f8, 0x2e08, 0x3962, 0x358f, 0x37ea, 0x34db, 0x3bc8, 0x38ca, 0x3ba2, 0x3a0b, 0x39ba, 0x369c, 0x2cce, 0x3988, 0x3a39, 0x3be5, 0x2a39, 0x35c1, 0x3643, 0x37c9, 0x35bf, 0x352f, 0x3a7f, 0x350f, 0x330f, 0x3a34, 0x36aa, 0x38da, 0x2fc0, 0x387b, 0x37b7, 0x34a8, 0x396b, 0x39f3, 0x37f4, 0x3649, 0x3959, 0x3024, 0x373f, 0x38fd, 0x38c3, 0x39d3, 0x340b, 0x38cb, 0x30c4, 0x3877, 0x3af4, 0x28ef, 0x3a81, 0x2ff9, 0x3992, 0x2902, 0x3b16, 0x3590, 0x3a95, 0x3708, 0x3a63, 0x1ba7, 0x347d, 0x3a3e, 0x3bd4, 0x3946, 0x2da1, 0x38df, 0x396d, 0x39c9, 0x3810, 0x39de, 0x3b69, 0x30ad, 0x3748, 0x3678, 0x3a92, 0x39b8, 0x30c9, -0x3990, 0x2cd8, 0x303c, 0x2c03, 0x35c0, 0x3b10, 0x39b6, 0x35f6, 0x3bb8, 0x3733, 0x320f, 0x3a45, 0x3457, 0x392e, 0x3462, 0x36f3, 0x32d4, 0x3025, 0x24ba, 0x3826, 0x37a7, 0x3714, 0x38d7, 0x3630, 0x3a29, 0x3582, 0x3af6, 0x2639, 0x3b0e, 0x3872, 0x39c2, 0x2e2e, 0x396d, 0x3b99, 0x34b3, 0x3551, 0x3162, 0x3a7d, 0x35f0, 0x351b, 0x3661, 0x3ad0, 0x39cf, 0x25f1, 0x3987, 0x3296, 0x365f, 0x3902, 0x38fd, 0x3745, 0x3990, 0x3972, 0x3317, 0x3a87, 0x3985, 0x392d, 0x36a3, 0x34f1, 0x396f, 0x3a7a, 0x3465, 0x3362, 0x3b0b, 0x208d, 0x37e0, 0x3ade, 0x31dc, 0x3854, 0x34cc, 0x3874, 0x311e, 0x38ec, 0x35e2, 0x2de6, 0x3219, 0x38b0, 0x3be3, 0x3381, 0x3b39, 0x38e6, 0x3b20, 0x3bea, 0x38e2, 0x38d6, 0x39e6, 0x2db4, 0x3884, 0x1cb8, 0x176a, 0x2eba, 0x3bb1, 0x37fe, 0x371a, 0x3b1c, 0x3402, 0x3462, -0x3632, 0x2a7c, 0x3897, 0x32c6, 0x34d7, 0x3ad2, 0x3b38, 0x3aa2, 0x2c56, 0x392e, 0x376a, 0x3356, 0x36b3, 0x3b8d, 0x2fc0, 0x3b16, 0x38dd, 0x2f21, 0x3852, 0x3aeb, 0x3aad, 0x379e, 0x32c9, 0x324b, 0x3b1f, 0x382a, 0x3929, 0x2cbe, 0x3867, 0x3651, 0x389b, 0x2fd3, 0x3809, 0x3ade, 0x38ba, 0x3a92, 0x398d, 0x38c2, 0x3061, 0x37f4, 0x3ab9, 0x3a17, 0x2d4b, 0x3255, 0x3656, 0x3884, 0x3b75, 0x3b1a, 0x3a56, 0x353d, 0x2fab, 0x3a0d, 0x3180, 0x3bd5, 0x3ac0, 0x3298, 0x3a5f, 0x3009, 0x39d4, 0x3b69, 0x39ad, 0x3b16, 0x36b3, 0x2c5b, 0x3ab1, 0x39d1, 0x30bc, 0x36ba, 0x2f6d, 0x3817, 0x3b4c, 0x3b31, 0x39d1, 0x348b, 0x3b82, 0x3032, 0x2586, 0x3bbf, 0x2dea, 0x2f5f, 0x383a, 0x3bb8, 0x3a4c, 0x3421, 0x33f7, 0x3ab6, 0x398e, 0x3335, 0x3a1c, 0x37dd, 0x2fc9, 0x3824, 0x3463, 0x3bed, 0x3b6c, 0x313b, -0x3b2d, 0x3426, 0x335b, 0x3952, 0x347e, 0x3ba0, 0x3bbb, 0x39ec, 0x3b16, 0x3561, 0x3a65, 0x3196, 0x3bd4, 0x30b6, 0x3891, 0x3749, 0x3a0b, 0x3a40, 0x3485, 0x3b5d, 0x3b0d, 0x33b5, 0x3812, 0x37be, 0x3a0a, 0x38c9, 0x38d2, 0x398f, 0x3235, 0x3a91, 0x2b81, 0x26f6, 0x2d3a, 0x1cd9, 0x2ea1, 0x3970, 0x3a5b, 0x30e8, 0x2a5f, 0x390b, 0x38f4, 0x396c, 0x3b50, 0x3b24, 0x35dd, 0x396c, 0x33c7, 0x2c40, 0x397b, 0x390b, 0x348f, 0x38df, 0x38fb, 0x3be2, 0x3122, 0x3bb5, 0x2c56, 0x322f, 0x3836, 0x1ee5, 0x3b35, 0x359e, 0x3966, 0x39b3, 0x3163, 0x2902, 0x38b4, 0x3ace, 0x34ed, 0x3add, 0x3428, 0x369b, 0x3116, 0x3a77, 0x34f6, 0x39c9, 0x3263, 0x359d, 0x352c, 0x3b0b, 0x38c9, 0x31dc, 0x373d, 0x2ad4, 0x3452, 0x3156, 0x360d, 0x2d93, 0x38d0, 0x3978, 0x3901, 0x36f4, 0x3b26, 0x2e42, 0x3983, 0x3bce, -0x3990, 0x37f3, 0x2645, 0x3938, 0x3868, 0x3a22, 0x3a6a, 0x3b78, 0x3b4e, 0x371f, 0x39fb, 0x2e11, 0x38b8, 0x36d2, 0x3468, 0x34f2, 0x39bf, 0x3b8e, 0x3710, 0x348b, 0x38d6, 0x3aae, 0x35f0, 0x3ae0, 0x3ba8, 0x3857, 0x39c1, 0x3a03, 0x35b3, 0x3a2c, 0x3a7b, 0x350c, 0x30f8, 0x3830, 0x25aa, 0x24b3, 0x380b, 0x3879, 0x3929, 0x354d, 0x38b4, 0x2fea, 0x34bc, 0x3ba6, 0x3832, 0x3a2a, 0x387b, 0x343f, 0x3114, 0x2edb, 0x36ec, 0x3a24, 0x32ea, 0x2f80, 0x3675, 0x2df4, 0x39ce, 0x37ea, 0x3091, 0x3766, 0x38e3, 0x37d4, 0x39bc, 0x3425, 0x3336, 0x38aa, 0x34b9, 0x3bce, 0x37dc, 0x3af9, 0x39a9, 0x3b3e, 0x386a, 0x392b, 0x3942, 0x338a, 0x36f9, 0x36f3, 0x3b56, 0x33e2, 0x3bd1, 0x38aa, 0x3337, 0x3a61, 0x3ac5, 0x377c, 0x3819, 0x2ff3, 0x3870, 0x3b2c, 0x3925, 0x38cd, 0x3b0e, 0x3719, 0x3a2a, 0x326d, -0x32b3, 0x35f8, 0x3b6e, 0x3bde, 0x3baf, 0x3027, 0x3433, 0x3819, 0x2eab, 0x3b4f, 0x34a1, 0x34f8, 0x393a, 0x3a09, 0x38f7, 0x3489, 0x37ae, 0x3bfa, 0x2dc1, 0x3468, 0x26f5, 0x343f, 0x3b4e, 0x39b2, 0x339a, 0x3441, 0x3b51, 0x38dc, 0x3914, 0x2699, 0x3339, 0x2f3a, 0x38f1, 0x3a57, 0x2e7e, 0x36a4, 0x2cf6, 0x31e6, 0x3802, 0x3a75, 0x39f5, 0x38f5, 0x3327, 0x38d5, 0x36b4, 0x3b6c, 0x2279, 0x3b08, 0x39e9, 0x380f, 0x3b8c, 0x3432, 0x39c9, 0x343d, 0x38ad, 0x3be5, 0x3602, 0x3bc4, 0x3952, 0x350a, 0xc4c, 0x267d, 0x35e1, 0x3bdb, 0x3937, 0x348d, 0x3768, 0x3a78, 0x3717, 0x3342, 0x34f0, 0x36db, 0x2788, 0x3b52, 0x2acf, 0x3bef, 0x3899, 0x3279, 0x38e4, 0x3bc5, 0x38ed, 0x3369, 0x3652, 0x34b4, 0x378a, 0x3bf9, 0x3a9d, 0x3841, 0x3a01, 0x3065, 0x35a4, 0x3b47, 0x376f, 0x35e0, 0x34f0, 0x396c, -0x3a1e, 0x354b, 0x390b, 0x3165, 0x3435, 0x329e, 0x386e, 0x36ba, 0x2046, 0x385b, 0x3493, 0x3537, 0x2e29, 0x3bda, 0x3b0c, 0x35e0, 0x34b8, 0x25c1, 0x3698, 0x2ef1, 0x3516, 0x330e, 0x387a, 0x37eb, 0x3011, 0x2658, 0x350a, 0x393c, 0x2c1c, 0x2dbc, 0x25f3, 0x376f, 0x3a1c, 0x3112, 0x2c6d, 0x2e2a, 0x3a3d, 0x3ba0, 0x391a, 0x36ac, 0x3876, 0x32b9, 0x3ad9, 0x36f8, 0x39aa, 0x3095, 0x348d, 0x39a6, 0x35be, 0x3747, 0x31e9, 0x33b9, 0x31c0, 0x3926, 0x2d3f, 0x3b32, 0x3412, 0x3b52, 0x29eb, 0x333e, 0x3af4, 0x3974, 0x36ab, 0x3ba6, 0x3aed, 0x3807, 0x2b53, 0x33b0, 0x35d7, 0x37aa, 0x3838, 0x3478, 0x2f9d, 0x3b1b, 0x3b31, 0x30fb, 0x30fa, 0x38d7, 0x329f, 0x372b, 0x31b1, 0x38a9, 0x3932, 0x315d, 0x2d85, 0x374b, 0x3aa3, 0x3621, 0x2da1, 0x373a, 0x386d, 0x38ba, 0x3a4e, 0x1eea, 0x3887, 0x3438 +uint16_t x_inp_2D [24][32] = { +0x2153, 0x3bb5, 0x3896, 0x365f, 0x2483, 0x3518, 0x2dd1, 0x3bca, 0x397b, 0x29b1, 0x3705, 0x36c8, 0x398b, 0x3661, 0x2f05, 0x365a, 0x3bf9, 0x34df, 0x363b, 0x38d9, 0x39c6, 0x3abb, 0x3952, 0x38f2, 0x392d, 0x3b3e, 0x2afb, 0x3a9d, 0x353b, 0x3b73, 0x3a01, 0x3679, +0x3934, 0x397d, 0x2904, 0x3822, 0x3462, 0x3b44, 0x39e9, 0x28be, 0x331e, 0x3a1d, 0x39e5, 0x34da, 0x3a19, 0x3906, 0x1d35, 0x3871, 0x31e7, 0x3b29, 0x325d, 0x3797, 0x2b2f, 0x38b4, 0x232f, 0x38aa, 0x3aca, 0x316f, 0x3811, 0x3950, 0x32ea, 0x3bc7, 0x382c, 0x38a2, +0x29ce, 0x3afa, 0x3a39, 0x2ccc, 0x39fd, 0x3b3d, 0x384a, 0x3a35, 0x3802, 0x366a, 0x37ec, 0x3598, 0x3bf8, 0x3a85, 0x3a1b, 0x386e, 0x3b4c, 0x39de, 0x38c2, 0x2f93, 0x3b4c, 0x39c4, 0x3b9e, 0x3844, 0x346d, 0x3bff, 0x32ce, 0x296d, 0x3130, 0x3b3d, 0x3b44, 0x369d, +0x3b13, 0x31ed, 0x330a, 0x3831, 0x34e7, 0x37b3, 0x331a, 0x3918, 0x32d3, 0x3995, 0x3991, 0x3919, 0x3a26, 0x385b, 0x2b76, 0x3a3b, 0x37f2, 0x26a7, 0x3225, 0x3b64, 0x28f0, 0x3456, 0x3822, 0x341e, 0x381a, 0x38d8, 0x2c11, 0x33be, 0x33ac, 0x353f, 0x3476, 0x3abc, +0x36ec, 0x3a1d, 0x39d3, 0x3821, 0x36ac, 0x3bce, 0x3ad2, 0x3616, 0x36a1, 0x2cb3, 0x38d2, 0x314f, 0x385c, 0x3b63, 0x3bb6, 0x2951, 0x372d, 0x2c42, 0x3823, 0x3883, 0x3872, 0x31ee, 0x36c5, 0x399a, 0x31b0, 0x3887, 0x3884, 0x3865, 0x3896, 0x36c3, 0x32e3, 0x346c, +0x3935, 0x3b50, 0x2b6d, 0x38cd, 0x388f, 0x3389, 0x395d, 0x31cd, 0x2efd, 0x3154, 0x2f35, 0x3444, 0x3293, 0x3b6b, 0x1bec, 0x3b69, 0x3bf3, 0x3611, 0x3508, 0x3742, 0x3a50, 0x3ab7, 0x3457, 0x38d3, 0x3344, 0x38e8, 0x33c0, 0x3668, 0x3bee, 0x3b21, 0x3727, 0x3121, +0x316c, 0x3288, 0x2d50, 0x2e74, 0x35d5, 0x37e2, 0x303d, 0x36af, 0x341f, 0x3436, 0x2df7, 0x399d, 0x30f4, 0x3aaf, 0x34e4, 0x2c2a, 0x3116, 0x34d3, 0x36ac, 0x35e3, 0x3760, 0x36e1, 0x3ad2, 0x3547, 0x38f4, 0x369c, 0x3ba9, 0x34f0, 0x3a39, 0x3b19, 0x36e6, 0x395d, +0x3be8, 0x3293, 0x3bfc, 0x3435, 0x2eb3, 0x3360, 0x3919, 0x3bed, 0x396a, 0x37fc, 0x3242, 0x384b, 0x38cb, 0x3b2c, 0x3b28, 0x28cf, 0x3828, 0x3855, 0x3ba9, 0x2fa7, 0x340b, 0x32f1, 0x3ada, 0x36fa, 0x31f5, 0x3436, 0x29d0, 0x33e6, 0x3232, 0x3bec, 0x3904, 0x2797, +0x3b81, 0x3bac, 0x38d2, 0x343d, 0x31af, 0x3b1e, 0x33fc, 0x3864, 0x3624, 0x3905, 0x2945, 0x3b52, 0x2d08, 0x3a17, 0x3b84, 0x3804, 0x3a24, 0x38a3, 0x3562, 0x3ae6, 0x3bba, 0x3a45, 0x3679, 0x31fa, 0x3994, 0x2c3d, 0x383f, 0x399d, 0x34f7, 0x360e, 0x35f3, 0x38f0, +0x38d4, 0x399a, 0x3a48, 0x3987, 0x3b54, 0x382c, 0x3210, 0x35ef, 0x36ca, 0x31b4, 0x3625, 0x371f, 0x37bd, 0x3680, 0x3a3a, 0x3ac0, 0x3bbf, 0x3bf5, 0x39f2, 0x29c2, 0x363e, 0x3a4e, 0x3596, 0x3b1b, 0x3459, 0x3669, 0x3aa1, 0x39c3, 0x3376, 0x390d, 0x2456, 0x39b5, +0x3a66, 0x3ad8, 0x3b51, 0x36aa, 0x32be, 0x3ac8, 0x392b, 0x3740, 0x3a48, 0x38f5, 0x3b2d, 0x3a5f, 0x2ff3, 0x366f, 0x39d3, 0x35e5, 0x3822, 0x38db, 0x3b8a, 0x34be, 0x2d33, 0x36dd, 0x3578, 0x3bdf, 0x2c7e, 0x39cf, 0x32ff, 0x35c9, 0x3970, 0x3bcb, 0x351e, 0x3956, +0x2c42, 0x3308, 0x377a, 0x361c, 0x39a0, 0x36c9, 0x2dcb, 0x3bf2, 0x3b5f, 0x33ee, 0x24c1, 0x2ce9, 0x3927, 0x305d, 0x3702, 0x3119, 0x35f9, 0x3855, 0x3374, 0x349b, 0x3bcf, 0x2dea, 0x34f0, 0x363f, 0x37da, 0x3a74, 0x35fc, 0x35fa, 0x316b, 0x3804, 0x37a7, 0x3986, +0x3073, 0x3aed, 0x31c7, 0x3844, 0x34a4, 0x387d, 0x3a20, 0x3037, 0x3a00, 0x3b70, 0x377f, 0x3686, 0x3b7e, 0x38b3, 0x32e3, 0x3323, 0x391e, 0x3228, 0x3930, 0x3997, 0x3a5e, 0x398b, 0x3512, 0x35b0, 0x365c, 0x325d, 0x3b61, 0x38b8, 0x39a4, 0x3423, 0x3bd7, 0x38af, +0x2d3d, 0x382d, 0x38ac, 0x26ca, 0x395e, 0x21a8, 0x3520, 0x386f, 0x3b95, 0x32c0, 0x3b84, 0x3a51, 0x3b4b, 0x31d2, 0x3747, 0x3b96, 0x3b40, 0x3535, 0x38d1, 0x3899, 0x3b00, 0x3827, 0x3ae3, 0x38c8, 0x3a07, 0x338d, 0x2e96, 0x3a46, 0x394a, 0x39de, 0x2951, 0x3a02, +0x3838, 0x2d45, 0x28c0, 0x3958, 0x3070, 0x2aa2, 0x3510, 0x38ce, 0x271c, 0x3440, 0x3954, 0x30bc, 0x3b35, 0x2f1d, 0x3afb, 0x2dae, 0x356f, 0x2e13, 0x3981, 0x326d, 0x3a28, 0x3a36, 0x3a95, 0x38cb, 0x38db, 0x3150, 0x2c9e, 0x34c5, 0x3adb, 0x3bdf, 0x38f2, 0x3994, +0x36f8, 0x31c0, 0x3a4f, 0x3825, 0x394b, 0x3a8b, 0x38ac, 0x3167, 0x2e2d, 0x3a93, 0x34f3, 0x37bd, 0x3b63, 0x2f2f, 0x3ae0, 0x3ad8, 0x34a8, 0x2e1c, 0x3890, 0x3705, 0x3b69, 0x3bc1, 0x28af, 0x3b36, 0x348b, 0x3111, 0x3a8d, 0x389c, 0x3916, 0x36dc, 0x3bae, 0x3874, +0x3593, 0x3638, 0x3018, 0x3a56, 0x38a3, 0x2ad4, 0x3a25, 0x38d7, 0x3864, 0x31c1, 0x28d1, 0x39c8, 0x37d6, 0x2c7f, 0x3ba5, 0x34b8, 0x3bef, 0x3b83, 0x3ab5, 0x3062, 0x38bc, 0x399c, 0x2ce4, 0x2f2c, 0x39bf, 0x2ed1, 0x385f, 0x37e0, 0x35ee, 0x397d, 0x3b0c, 0x3049, +0x39d5, 0x322e, 0x3936, 0x3747, 0x2e15, 0x3b41, 0x3874, 0x3bd0, 0x2c04, 0x3800, 0x375b, 0x3b2d, 0x38d8, 0x3a51, 0x3406, 0x38da, 0x38ba, 0x3497, 0x382e, 0x35fc, 0x39d4, 0x3775, 0x3b1e, 0x3813, 0x3649, 0x31af, 0x37bb, 0x334a, 0x3a6e, 0x3284, 0x26e0, 0x2e01, +0x2ebb, 0x344b, 0x3821, 0x381a, 0x385a, 0x2534, 0x3635, 0x2a92, 0x3b8c, 0x31f0, 0x3947, 0x3ac7, 0x3743, 0x3924, 0x39e4, 0x358f, 0x2b62, 0x392c, 0x3955, 0x3341, 0x3676, 0x38ac, 0x3957, 0x335b, 0x2ca2, 0x39ff, 0x37cb, 0x341f, 0x3ac9, 0x3b6c, 0x2f14, 0x34c3, +0x3018, 0x3169, 0x355b, 0x3624, 0x31ed, 0x379e, 0x3268, 0x309b, 0x35db, 0x3872, 0x3bdb, 0x34c7, 0x3408, 0x3359, 0x3920, 0x331f, 0x3866, 0x3af0, 0x2a1a, 0x39e0, 0x3b14, 0x34fa, 0x2d18, 0x3963, 0x35e8, 0x2539, 0x38f5, 0x37b3, 0x378f, 0x31b5, 0x3a6c, 0x3685, +0x3a06, 0x318a, 0x2934, 0x33c1, 0x3be8, 0x375b, 0x3860, 0x3543, 0x3702, 0x3951, 0x3677, 0x37ff, 0x2e27, 0x2e3a, 0x340f, 0x3817, 0x2f04, 0x357e, 0x3a1d, 0x2dd6, 0x252a, 0x3945, 0x162a, 0x3b19, 0x3a53, 0x35d2, 0x3a5d, 0x3474, 0x38e9, 0x374b, 0x387c, 0x1f1a, +0x38ac, 0x3291, 0x3393, 0x3b53, 0x3169, 0x3bca, 0x2f1a, 0x3551, 0x38a3, 0x28e3, 0x369d, 0x34a1, 0x38a8, 0x34c3, 0x3841, 0x390d, 0x3b13, 0x3282, 0x3a29, 0x3a78, 0x2df3, 0x3a37, 0x35f4, 0x35a6, 0x38e8, 0x3328, 0x3beb, 0x390b, 0x32dc, 0x34dc, 0x396d, 0x3a78, +0x39ba, 0x3a06, 0x2cdd, 0x3bc3, 0x2d43, 0x2992, 0x3663, 0x3a68, 0x2c3e, 0x394e, 0x2c9f, 0x380e, 0x37f5, 0x3557, 0x2873, 0x390f, 0x39e7, 0x3939, 0x3669, 0x385c, 0x3a68, 0x32c4, 0x2b04, 0x2d6d, 0x39d3, 0x3895, 0x331d, 0x3b59, 0x3463, 0x2b6a, 0x31de, 0x3296, +0x3aae, 0x3bcd, 0x345a, 0x3897, 0x374b, 0x3bd4, 0x38a2, 0x357f, 0x3402, 0x3a0c, 0x3507, 0x3865, 0x3a54, 0x3878, 0x3859, 0x383e, 0x32b5, 0x34ea, 0x328d, 0x38b6, 0x3464, 0x2f5b, 0x35ff, 0x3817, 0x2f24, 0x3533, 0x3b21, 0x37ba, 0x3837, 0x2e34, 0x3bad, 0x34bc }; \ No newline at end of file diff --git a/hwpe/redmule/inc/x_input.h b/hwpe/redmule/inc/x_input.h index 6295303..1e38d23 100644 --- a/hwpe/redmule/inc/x_input.h +++ b/hwpe/redmule/inc/x_input.h @@ -1,99 +1,27 @@ /* Header file generated by RedMulE Golden Model */ -uint16_t x_inp [9216] = { -0x3122, 0x369c, 0x39bd, 0x3b58, 0x3be0, 0x3a5a, 0x3416, 0x386c, 0x3a11, 0x350e, 0x38ab, 0x35ad, 0x35d9, 0x390f, 0x3565, 0x36b0, 0x3aad, 0x3a64, 0x3797, 0x368d, 0x35a6, 0x396f, 0x2a5e, 0x3a29, 0x38a7, 0x33a8, 0x3409, 0x3621, 0x3b02, 0x34a7, 0x3a94, 0x3819, 0x3695, 0x380a, 0x3acd, 0x396a, 0x395a, 0x3663, 0x3bbe, 0x3306, 0x3a4d, 0x3b0d, 0x3bc3, 0x30fa, 0x32ab, 0x31fd, 0x3bc9, 0x38ce, 0x3180, 0x3980, 0x34ec, 0x3a84, 0x3bc9, 0x3719, 0x3a76, 0x38ab, 0x3707, 0x3904, 0x33d9, 0x34d6, 0x3053, 0x3bd4, 0x2f03, 0x1dbf, 0x2e5f, 0x36fa, 0x191d, 0x3187, 0x223f, 0x384b, 0x36dc, 0x3549, 0x343f, 0x36d8, 0x36de, 0x31ff, 0x174e, 0x30d3, 0x3452, 0x3258, 0x30b1, 0x3127, 0x3840, 0x3991, 0x3b1b, 0x3a7c, 0x36ec, 0x2304, 0x3946, 0x3876, 0x3a5d, 0x3a76, 0x2f78, 0x3b01, 0x3934, 0x3bc4, -0x2b27, 0x3669, 0x38ce, 0x2cde, 0x38e1, 0x3abd, 0x2c4f, 0x3971, 0x3964, 0x3a9d, 0x38b9, 0x390f, 0x3475, 0x3b16, 0x38f0, 0x397e, 0x3996, 0x3223, 0x36c6, 0x3bfd, 0x3161, 0x3a70, 0x3961, 0x38e1, 0x2b2b, 0x32c1, 0x3683, 0x36bb, 0x381a, 0x3b92, 0x356a, 0x38c4, 0x38df, 0x3a7b, 0x3b3a, 0x35a2, 0x27d3, 0x3af2, 0x3489, 0x38c7, 0x3985, 0x3a03, 0x30f6, 0x3a92, 0x38d5, 0x39a0, 0x3749, 0x3784, 0x1c70, 0x356b, 0x2d5f, 0x39db, 0x37ab, 0x39fb, 0x3b2c, 0x2ef8, 0x3336, 0x3afd, 0x38f0, 0x358f, 0x3ac4, 0x293d, 0x3328, 0x3741, 0x3993, 0x3463, 0x3918, 0x332e, 0x356d, 0x36ee, 0x34e7, 0x3757, 0x34b5, 0x3b7c, 0x3a63, 0x3b6c, 0x34a6, 0x34f3, 0x346a, 0x2bcf, 0x363d, 0x3081, 0x3abc, 0x35a5, 0x36ff, 0x2cb7, 0x2a53, 0x37a3, 0x3a98, 0x3b92, 0x3a9a, 0x38ff, 0x39dc, 0x3289, 0x3357, 0x39f6, -0x3b74, 0x3a5e, 0x3ba9, 0x365e, 0x3aa5, 0x3b42, 0x39b5, 0x2fb7, 0x39e5, 0x263d, 0x3405, 0x259f, 0x381d, 0x38dc, 0x3152, 0x37f5, 0x38b6, 0x3bfd, 0x3a4e, 0x3804, 0x370f, 0x382f, 0x395d, 0x38a5, 0x2edd, 0x3ac9, 0x34dc, 0x2a2a, 0x2aba, 0x35d0, 0x36b4, 0x3ae1, 0x3b35, 0x3a49, 0x3b5e, 0x38e8, 0x30ed, 0x3ab4, 0x3a92, 0x3bd9, 0x3437, 0x36d0, 0x3aad, 0x36d6, 0x35ed, 0x3635, 0x3bf7, 0x345a, 0x300a, 0x31d2, 0x340c, 0x38fd, 0x39ad, 0x39ac, 0x38bf, 0x38f6, 0x2f7e, 0x3685, 0x3be9, 0x3af0, 0x35d1, 0x35fb, 0x35ad, 0x3a6d, 0x3a78, 0x3813, 0x36a8, 0x3a6e, 0x39fc, 0x3918, 0x2179, 0x38a2, 0x37f9, 0x38dc, 0x24a9, 0x3647, 0x386a, 0x2890, 0x2d0f, 0x31e3, 0x394a, 0x36b2, 0x3071, 0x292d, 0x3568, 0x3adb, 0x394a, 0x2ff6, 0x3142, 0x322b, 0x2696, 0x3954, 0x229d, 0x383a, 0x2f3d, 0x3b4e, -0x3b1c, 0xd7b, 0x379c, 0x3421, 0x39a0, 0x3557, 0x2e38, 0x3b3a, 0x270e, 0x250b, 0x3b0a, 0x3aa1, 0x2d72, 0x351c, 0x3a11, 0x382b, 0x37f8, 0x3a82, 0x39e8, 0x3a1d, 0x3a45, 0x2fb7, 0x341b, 0x39ea, 0x3646, 0x3b27, 0x3abd, 0x350b, 0x3a3a, 0x3557, 0x37db, 0x315b, 0x305a, 0x3bd7, 0x3b33, 0x32b9, 0x3503, 0x2749, 0x3532, 0x37f2, 0x348e, 0x3422, 0x32a4, 0x37bf, 0x3b7b, 0x378f, 0x3476, 0x3a1a, 0x39a2, 0x35d9, 0x3b4d, 0x39f0, 0x34a7, 0x36c6, 0x3ab4, 0x39c2, 0x385b, 0x3add, 0x34cf, 0x3604, 0x39e1, 0x3872, 0x3751, 0x32db, 0x38df, 0x3602, 0x3509, 0x37d5, 0x342e, 0x39ef, 0x2f59, 0x2505, 0x314d, 0x35ff, 0x3bae, 0x3b38, 0x32af, 0x3b9b, 0x3b03, 0x2c5e, 0x3940, 0x38ef, 0x324c, 0x399a, 0x3a14, 0x39c6, 0x3a33, 0x382a, 0x3b36, 0x3ae7, 0x3b71, 0x3020, 0x3a14, 0x33d2, 0x3b1d, 0x2660, -0x2ace, 0x3a36, 0x39d6, 0x398d, 0x3ae2, 0x39dc, 0x3bb3, 0x26d5, 0x3a4a, 0x36ad, 0x3b31, 0x2b7e, 0x3baf, 0x3314, 0x2e0b, 0x31c1, 0x25a9, 0x378c, 0x3b45, 0x3ae9, 0x3586, 0x39fe, 0x3b5b, 0x3b18, 0x3a1b, 0x399b, 0x3aad, 0x30e1, 0x3b3b, 0x2d9f, 0x2614, 0x354e, 0x3806, 0x393e, 0x3564, 0x2346, 0x3b5e, 0x382f, 0x31c9, 0x3be1, 0x2e41, 0x394e, 0x346a, 0x3976, 0x38e7, 0x3503, 0x387f, 0x3025, 0x3232, 0x283b, 0x37d2, 0x32aa, 0x36e0, 0x3b92, 0x3a41, 0x2f32, 0x34cc, 0x3a30, 0x3a69, 0x3671, 0x3894, 0x3b3d, 0x3468, 0x3836, 0x2303, 0x2e8f, 0x3186, 0x37d1, 0x371f, 0x381a, 0x3af8, 0x2ca8, 0x31ba, 0x3a59, 0x3971, 0x3bdb, 0x3add, 0x35af, 0x3b81, 0x2f19, 0x3963, 0x3b58, 0x3aa4, 0x3b98, 0x3808, 0x33b7, 0x3833, 0x3506, 0x3467, 0x2f27, 0x35be, 0x346e, 0x39c9, 0x3677, 0x31b5, 0x3bf4, -0x3506, 0x30a7, 0x370d, 0x367e, 0x3264, 0x2fb7, 0x30d5, 0x3814, 0x3152, 0x38aa, 0x3a77, 0x2dde, 0x3077, 0x38df, 0x3744, 0x2af8, 0x37f8, 0x3aa2, 0x39e3, 0x3ada, 0x3931, 0x3bc0, 0x34b2, 0x35de, 0x33c8, 0x34d4, 0x395a, 0x36a1, 0x3a3a, 0x33e3, 0x38d7, 0x3476, 0x3b6f, 0x3506, 0x3448, 0x3b2c, 0x3766, 0x382b, 0x2efd, 0x33ec, 0x242c, 0x3976, 0x3027, 0x2c5f, 0x37df, 0x3b1a, 0x3641, 0x352d, 0x39ab, 0x3b49, 0x3a91, 0x35ba, 0x382f, 0x2b4c, 0x366f, 0x2f0b, 0x33e3, 0x2ccd, 0x3530, 0x33d0, 0x264e, 0x39b4, 0x3968, 0x29f5, 0x3a2c, 0x299a, 0x39c4, 0x380d, 0x3be2, 0x34b2, 0x3879, 0x3532, 0x34ac, 0x3685, 0x3b5e, 0x3426, 0x3b4d, 0x34ec, 0x32e0, 0x3767, 0x39d7, 0x3119, 0x39db, 0x36e1, 0x39ec, 0x388d, 0x3731, 0x314a, 0x39c5, 0x3325, 0x3284, 0x38c5, 0x2cf4, 0x2180, 0x3614, 0x382e, -0x2afc, 0x3562, 0x365c, 0x32dd, 0x3a1d, 0x39c0, 0x3510, 0x3ae7, 0x22b7, 0x3538, 0x3604, 0x3bb0, 0x3a8e, 0x38ca, 0x379d, 0x36f1, 0x3947, 0x317f, 0x2bfa, 0x3bc0, 0x3ad4, 0x3a19, 0x308b, 0x390b, 0x353d, 0x3599, 0x344e, 0x3159, 0x39fc, 0x362e, 0x3bf5, 0x3246, 0x38e9, 0x3551, 0x3981, 0x3776, 0x3964, 0x3966, 0x335b, 0x3361, 0x3abc, 0x39d1, 0x3b96, 0x3a40, 0x3bfc, 0x30f6, 0x2fc2, 0x350a, 0x3857, 0x3175, 0x3929, 0x383e, 0x38c1, 0x3b21, 0x3025, 0x3a20, 0x3b6f, 0x3600, 0x3b06, 0x30d2, 0x30c3, 0x3550, 0x3025, 0x33c7, 0x3724, 0x3819, 0x38e3, 0x33fe, 0x3ad1, 0x2f0b, 0x38fe, 0x3458, 0x3bca, 0x391e, 0x345a, 0x36da, 0x38d7, 0x2dbd, 0x2c4e, 0x38b4, 0x35ea, 0x2970, 0x2ec0, 0x2519, 0x3552, 0x37cd, 0x3893, 0x3150, 0x38d6, 0x360d, 0x3986, 0x38e3, 0x3847, 0x36dc, 0x3a12, 0x3a3b, -0x34ea, 0x3a8b, 0x31db, 0x3a10, 0x34ca, 0x3b7e, 0x324e, 0x393b, 0x3a38, 0x3791, 0x2727, 0x31a9, 0x3beb, 0x3a43, 0x3ad3, 0x2c46, 0x3bc4, 0x38a9, 0x3918, 0x3b1c, 0x381d, 0x32aa, 0x367b, 0x3a80, 0x3a59, 0x37f6, 0x37ac, 0x36aa, 0x3072, 0x3960, 0x388c, 0x3a91, 0x3908, 0x34ab, 0x2f14, 0x3b72, 0x38f9, 0x359f, 0x38e2, 0x2938, 0x39ba, 0x2aa7, 0x3276, 0x3a66, 0x394d, 0x2de4, 0x39b0, 0x3835, 0x3b49, 0x2d77, 0x3ba2, 0x348b, 0x39f0, 0x381d, 0x382c, 0x384d, 0x3798, 0x3a0f, 0x38c3, 0x2ecb, 0x3472, 0x308f, 0x350c, 0x3014, 0x38e7, 0x2aff, 0x30ec, 0x3928, 0x36f5, 0x3909, 0x3b46, 0x2a93, 0x37cb, 0x3bb6, 0x2fbc, 0x3a3a, 0x3a47, 0x343e, 0x3bf1, 0x3b8f, 0x3bcb, 0x376d, 0x3669, 0x3892, 0x35c2, 0x3512, 0x370f, 0x35dc, 0x3923, 0x39e8, 0x3880, 0x288b, 0x36e7, 0x359e, 0x346f, 0x3b64, -0x3b1c, 0x340e, 0x25ab, 0x3b4e, 0x3897, 0x3bdb, 0x2da4, 0x389c, 0x36fd, 0x3a3c, 0x2f2d, 0x38fb, 0x395c, 0x2ea7, 0x3949, 0x368b, 0x35a3, 0x377c, 0x32de, 0x35b1, 0x3529, 0x301d, 0x3771, 0x393f, 0x3993, 0x3ae0, 0x3bda, 0x375b, 0x31ff, 0x3989, 0x3ad0, 0x3bb6, 0x3814, 0x3999, 0x3854, 0x39e7, 0x37fa, 0x3afc, 0x185f, 0x2e32, 0x3697, 0x3942, 0x3aa0, 0x3b75, 0x3ad3, 0x3aa8, 0x39b8, 0x38c2, 0x38fb, 0x39a4, 0x3b8f, 0x3b2e, 0x334d, 0x3a0c, 0x361b, 0x3a46, 0x3337, 0x388d, 0x321b, 0x38bc, 0x3005, 0x35a4, 0x3bf5, 0x3bcf, 0x3a44, 0x3ac7, 0x3a7d, 0x3b2c, 0x39c5, 0x2001, 0x3594, 0x3a29, 0x3131, 0x3ab9, 0x39d9, 0x38c4, 0x3666, 0x37a8, 0x3a75, 0x3a10, 0x3441, 0x3b7e, 0x23f5, 0x3ab2, 0x306f, 0x3bc0, 0x3989, 0x3361, 0x36ea, 0x2eb9, 0x360f, 0x351c, 0x2a16, 0x3bfe, 0x372b, 0x3b97, -0x3bbf, 0x2cf5, 0x3922, 0x316e, 0x37ad, 0x3a7f, 0x3863, 0x3a4c, 0x37a4, 0x35c1, 0x3b77, 0x3549, 0x3a83, 0x37c4, 0x3b84, 0x38c6, 0x3a7f, 0x2f24, 0x2fc0, 0x3475, 0x3a6a, 0x3bc4, 0x3a21, 0x3b96, 0x365c, 0x38b7, 0x31ce, 0x3bcc, 0x3b80, 0x3a31, 0x3523, 0x2d9d, 0x359e, 0x3afe, 0x371d, 0x2d94, 0x3a2a, 0x3ace, 0x3bed, 0x3726, 0x2fa1, 0x3abe, 0x3624, 0x2be4, 0x2b70, 0x394e, 0x3640, 0x391d, 0x3892, 0x38e2, 0x333c, 0x3080, 0x2ac2, 0x326c, 0x2f8b, 0x38ac, 0x3097, 0x3b80, 0x3ae4, 0x39d4, 0x3676, 0x3969, 0x34c8, 0x3906, 0x2930, 0x3acb, 0x3bb3, 0x3bba, 0x3646, 0x2ba1, 0x30bf, 0x38f2, 0x3bbc, 0x3a3f, 0x34c2, 0x3832, 0x3938, 0x3a79, 0x3546, 0x3bd5, 0x3ae5, 0x329a, 0x342c, 0x2c42, 0x35c1, 0x2616, 0x3ad4, 0x38c6, 0x38b6, 0x3b0d, 0x38dd, 0x2e8d, 0x3891, 0x2f1c, 0x3b9d, 0x3a8f, -0x30e4, 0x2c4f, 0x2fb6, 0x31da, 0x3784, 0x3043, 0x2d5c, 0x3bc0, 0x3998, 0x3b84, 0x387f, 0x3b93, 0x3898, 0x337c, 0x32b4, 0x28c3, 0x334f, 0x389c, 0x3865, 0x360b, 0x3a70, 0x3201, 0x324c, 0x3583, 0x381a, 0x3a58, 0x33e9, 0x3b02, 0x3093, 0x33c0, 0x375c, 0x305d, 0x1f9a, 0x38e4, 0x3bc7, 0x35bb, 0x2d39, 0x3299, 0x3753, 0x3b37, 0x3af5, 0x36d7, 0x3324, 0x3716, 0x3b60, 0x3202, 0x3949, 0x3b79, 0x36c3, 0x3901, 0x39f5, 0x2b55, 0x3996, 0x38e1, 0x3836, 0x3b5a, 0x3790, 0x39f6, 0x3532, 0x37ac, 0x2bc5, 0x3948, 0x3b8f, 0x37b8, 0x3999, 0x3413, 0x3a8f, 0x2b74, 0x2839, 0x3870, 0x369f, 0x38b9, 0x3819, 0x3aef, 0x37f9, 0x368b, 0x3bf4, 0x30a6, 0x2e58, 0x3b6e, 0x3b59, 0x3a5d, 0x2e63, 0x2a40, 0x34b3, 0x377d, 0x3991, 0x3542, 0x3300, 0x396d, 0x3bf4, 0x371b, 0x2c09, 0x3020, 0x3a1e, 0x32c5, -0x3b59, 0x3bb5, 0x3a14, 0x384f, 0x3534, 0x3bb6, 0x3aef, 0x3b51, 0x357e, 0x3760, 0x3395, 0x3046, 0x3977, 0x380e, 0x3b85, 0x39ed, 0x3038, 0x2bdc, 0x3aec, 0x3aa6, 0x3ace, 0x38b5, 0x308b, 0x39e2, 0x3271, 0x3b31, 0x3693, 0x397e, 0x39a9, 0x396f, 0x3021, 0x3b12, 0x350e, 0x38ea, 0x38ef, 0x3aae, 0x37b3, 0x2e83, 0x32f6, 0x3818, 0x3702, 0x332d, 0x3bfc, 0x3b15, 0x3ae6, 0x337f, 0x29f9, 0x3ba8, 0x38b1, 0x381a, 0x3bd6, 0x3a40, 0x3027, 0x3b8b, 0x38b2, 0x35d1, 0x39b7, 0x3adf, 0x2b70, 0x1a44, 0x3470, 0x3b21, 0x3774, 0x3b7a, 0x38b8, 0x304d, 0x3bd6, 0x2a2a, 0x3a95, 0x34bc, 0x2835, 0x3b03, 0x35bd, 0x3bc2, 0x30fe, 0x3a5d, 0x3829, 0x34be, 0x3398, 0x32f7, 0x3b1c, 0x34a5, 0x3511, 0x3802, 0x383e, 0x3176, 0x3241, 0x359f, 0x36f9, 0x380a, 0x310c, 0x3b1f, 0x375d, 0x365a, 0x35d0, 0x3302, -0x3459, 0x35e1, 0x3514, 0x3ba6, 0x381e, 0x30d8, 0x320a, 0x3b8a, 0x39b8, 0x3873, 0x3982, 0x3ae7, 0x3a5b, 0x380d, 0x3bf6, 0x396d, 0x3126, 0x1cf5, 0x37f7, 0x3b43, 0x37a7, 0x3b91, 0x357b, 0x216d, 0x3336, 0x3885, 0x26d5, 0x38f1, 0x369e, 0x3b62, 0x30d5, 0x3a41, 0x31b1, 0x3b8d, 0x3983, 0x2cfb, 0x3857, 0x3239, 0x2ecf, 0x2e22, 0x3889, 0x31a0, 0x3432, 0x3957, 0x2aad, 0x3b93, 0x38e5, 0x3a32, 0x3bf6, 0x2a9e, 0x3a57, 0x34b8, 0x2e9b, 0x3a83, 0x3b86, 0x314e, 0x3738, 0x3954, 0x36bb, 0x3a82, 0x361e, 0x380a, 0x3bc7, 0x39ea, 0x37f9, 0x3a9f, 0x38fa, 0x3916, 0x3b87, 0x389c, 0x375f, 0x30b5, 0x381d, 0x39f9, 0x3969, 0x3b91, 0x31b3, 0x3968, 0x3baf, 0x3395, 0x38a5, 0x3ae2, 0x3b91, 0x3a31, 0x3a75, 0x3667, 0x346f, 0x31b1, 0x3921, 0x38a1, 0x3981, 0x3ab5, 0x34c5, 0x324b, 0x3b5f, 0x3b66, -0x35e0, 0x3b4e, 0x34ef, 0x1c7e, 0x3b6e, 0x3724, 0x3858, 0x381c, 0x3bc1, 0x3475, 0x3a93, 0x38a0, 0x3489, 0x3951, 0x3918, 0x304f, 0x314f, 0x3ad7, 0x382d, 0x38ef, 0x3818, 0x33a3, 0x392d, 0x3079, 0x39b8, 0x3b2f, 0x3ad7, 0x3a4a, 0x383b, 0x295b, 0x380a, 0x3895, 0x3a0a, 0x3b28, 0x36ef, 0x3617, 0x3668, 0x3b95, 0x38e3, 0x3b69, 0x3448, 0x38bc, 0x34b1, 0x34d7, 0x3146, 0x269b, 0x2b3b, 0x371a, 0x3a3e, 0x3a71, 0x3791, 0x3b89, 0x3a76, 0x3bfd, 0x354e, 0x3bc8, 0x3937, 0x302e, 0x38e3, 0x2c2c, 0x20e6, 0x3880, 0x2c5e, 0x2506, 0x38b6, 0x3b42, 0x3be1, 0x3ab4, 0x3a0d, 0x3573, 0x31a6, 0x366c, 0x37c2, 0x34b2, 0x3856, 0x3bd4, 0x3150, 0x2adb, 0x3779, 0x3694, 0x2a1e, 0x3763, 0x39cd, 0x39a5, 0x3470, 0x348e, 0x399f, 0x3326, 0x2d96, 0x363a, 0x3610, 0x38fd, 0x24f0, 0x34bd, 0x32c9, 0x3869, -0x361b, 0x3307, 0x3bfc, 0x36bd, 0x2784, 0x37f1, 0x3a2e, 0x3579, 0x35ab, 0x39c9, 0x39b4, 0x2e9a, 0x3869, 0x24bf, 0x2c45, 0x3a0b, 0x369d, 0x391f, 0x3789, 0x2d9b, 0x37ac, 0x3829, 0x3177, 0x3286, 0x312b, 0x3153, 0x2ff3, 0x375c, 0x2afb, 0x290a, 0x3aaf, 0x3b17, 0x39f6, 0x3a53, 0x3888, 0x3ab6, 0x37e8, 0x3442, 0x3523, 0x3a72, 0x2d0a, 0x3551, 0x3923, 0x3538, 0x3abc, 0x3a29, 0x358a, 0x2ec5, 0x3a32, 0x3371, 0x3438, 0x301a, 0x3877, 0x36f7, 0x39e0, 0x372f, 0x3b39, 0x399c, 0x38b5, 0x3488, 0x392b, 0x312e, 0x3bd2, 0x3b34, 0x35d7, 0x3193, 0x38a5, 0x3a75, 0x3768, 0x3660, 0x3add, 0x38c6, 0x3944, 0x353a, 0x398e, 0x3627, 0x361a, 0x32ca, 0x38dd, 0x3293, 0x37f1, 0x2b97, 0x2465, 0x3a2e, 0x39c5, 0x3bef, 0x3879, 0x3a91, 0x3873, 0x39ae, 0x3994, 0x35aa, 0x3648, 0x376e, 0x371e, 0x3a8c, -0x359b, 0x381d, 0x3506, 0x382e, 0x39b0, 0x2f4c, 0x3022, 0x3af3, 0x3828, 0x3407, 0x3244, 0x306d, 0x3c00, 0x3019, 0x39b3, 0x357e, 0x36bd, 0x3979, 0x369a, 0x2025, 0x3ab5, 0x3509, 0x3969, 0x3b5f, 0x38b3, 0x3a55, 0x3899, 0x3a8d, 0x348a, 0x3010, 0x3b00, 0x374c, 0x37e7, 0x35f2, 0x36bc, 0x31ec, 0x3b49, 0x3960, 0x27a1, 0x3984, 0x3824, 0x3a95, 0x39e4, 0x3901, 0x34a8, 0x354a, 0x3929, 0x38ef, 0x399c, 0x381a, 0x34ea, 0x247b, 0x3113, 0x37ff, 0x3923, 0x3a12, 0x398a, 0x3135, 0x374c, 0x345b, 0x3aae, 0x33ad, 0x3834, 0x3426, 0x32a3, 0x3854, 0x31cd, 0x3a78, 0x32ea, 0x288e, 0x38a9, 0x2d3a, 0x31ce, 0x2ed6, 0x393d, 0x197a, 0x3880, 0x39cd, 0x3884, 0x3af0, 0x312d, 0x3711, 0x32be, 0x3193, 0x323d, 0x3222, 0x28b9, 0x3bcc, 0x3626, 0x3836, 0x36bf, 0x3393, 0x32d3, 0x39f3, 0x3b91, 0x3719, -0x38ac, 0x1036, 0x3759, 0x3547, 0x365e, 0x3a68, 0x37eb, 0x353b, 0x3931, 0x294d, 0x35c8, 0x3aad, 0x387c, 0x3ac5, 0x3a08, 0x3a0d, 0x34b8, 0x3747, 0x3a10, 0x3908, 0x3825, 0x3509, 0x379f, 0x2ebe, 0x3a30, 0x353f, 0x3ab6, 0x35d3, 0x3ae3, 0x39a0, 0x272d, 0x2da5, 0x3a07, 0x323e, 0x3865, 0x3700, 0x2c37, 0x2fb3, 0x36e3, 0x279c, 0x364d, 0x38b9, 0x39b5, 0x35d8, 0x376b, 0x37f2, 0x3421, 0x3a83, 0x3562, 0x2cad, 0x382f, 0x3703, 0x38bf, 0x3afc, 0x3800, 0x3793, 0x3ae7, 0x39f6, 0x2d8f, 0x365d, 0x380f, 0x39cf, 0x3609, 0x2da9, 0x2cc7, 0x361c, 0x3682, 0x2762, 0x3611, 0x3954, 0x21e5, 0x29bd, 0x3b94, 0x32e9, 0x36fc, 0x3b3c, 0x3bec, 0x3bde, 0x35b2, 0x3640, 0x3824, 0x2dba, 0x35da, 0x3853, 0x3b62, 0x3b56, 0x373f, 0x324d, 0x395f, 0x2a6b, 0x3b59, 0x392f, 0x3953, 0x3bbe, 0x3a44, 0x38fc, -0x38aa, 0x3987, 0x24c1, 0x3a51, 0x3b03, 0x3770, 0x381d, 0x3847, 0x394a, 0x35fe, 0x3b59, 0x34d4, 0x380f, 0x3985, 0x2719, 0x3811, 0x3a63, 0x387d, 0x370b, 0x36e2, 0x38f4, 0x3af2, 0x364c, 0x30e7, 0x3816, 0x2afe, 0x339b, 0x380d, 0x304e, 0x3b55, 0x3a4e, 0x2ebb, 0x377a, 0x396d, 0x31bf, 0x3914, 0x372b, 0x38a5, 0x39a9, 0x24f1, 0x39ad, 0x348a, 0x3b26, 0x3ab0, 0x35f3, 0x38ac, 0x34a5, 0x39b2, 0x3a88, 0x364d, 0x36a3, 0x33eb, 0x39f7, 0x3ad7, 0x37c1, 0x3805, 0x357a, 0x3949, 0x28ee, 0x3b2e, 0x3ba7, 0x381c, 0x35bf, 0x323a, 0x39dd, 0x3b40, 0x3908, 0x32c0, 0x3a12, 0x3419, 0x388e, 0x3890, 0x3b59, 0x2ea4, 0x363b, 0x3790, 0x3a00, 0x3b36, 0x2a03, 0x3875, 0x3932, 0x3513, 0x3755, 0x2d73, 0x19b7, 0x352b, 0x309e, 0x2842, 0x38cc, 0x38a0, 0x3423, 0x380e, 0x3b76, 0x39ad, 0x3a11, 0x3a5b, -0x3bd8, 0x3b5c, 0x30ee, 0x3b97, 0x32ee, 0x3a5d, 0x3bfb, 0x3706, 0x2e45, 0x2f4f, 0x3281, 0x39ec, 0x3705, 0x369c, 0x3022, 0x3b27, 0x3a91, 0x3a6d, 0x3438, 0x3461, 0x3846, 0x394f, 0x3772, 0x36f3, 0x34d2, 0x39ee, 0x3578, 0x3959, 0x3282, 0x1b2c, 0x39be, 0x37f0, 0x3909, 0x34aa, 0x3ad6, 0x3ad8, 0x392b, 0x39b5, 0x3391, 0x3aa3, 0x3854, 0x3a72, 0x31bc, 0x23fa, 0x331a, 0x38aa, 0x3a73, 0x2a74, 0x3956, 0x30fd, 0x36bd, 0x312d, 0x38b3, 0x3b26, 0x1e7f, 0x310a, 0x235b, 0x367b, 0x383e, 0x3b57, 0x39b0, 0x3785, 0x2ddc, 0x38de, 0x2c79, 0x386b, 0x3ace, 0x32e5, 0x2c3a, 0x3bc5, 0x3a95, 0x317b, 0x3a54, 0x3ba1, 0x38ff, 0x3b54, 0x39dd, 0x344c, 0x38d0, 0x3984, 0x32d7, 0x35c3, 0x319e, 0x3881, 0x3b80, 0x3923, 0x396f, 0x343d, 0x378e, 0x39e0, 0x3434, 0x38ab, 0x3a55, 0x3905, 0x2a86, 0x3aa6, -0x2c3b, 0x33da, 0x2eb0, 0x3aa4, 0x2871, 0x31a0, 0x35ba, 0x35ed, 0x3a48, 0x3968, 0x35f8, 0x2810, 0x3ab8, 0x395a, 0x369e, 0x3664, 0x3bef, 0x30b9, 0x33f3, 0x366d, 0x3961, 0x377d, 0x3367, 0x3aa2, 0x39de, 0x3bdc, 0x37f3, 0x3618, 0x394c, 0x39c6, 0x3867, 0x34c3, 0x358b, 0x3256, 0x3aac, 0x3623, 0x39ee, 0x3723, 0x3b2a, 0x3a63, 0x3855, 0x38a1, 0x2cb1, 0x3b80, 0x38d6, 0x3045, 0x3bc3, 0x3bdf, 0x378b, 0x3af4, 0x2411, 0x3863, 0x3869, 0x353b, 0x24cc, 0x396a, 0x3a09, 0x3aab, 0x32cd, 0x3970, 0x3178, 0x3a61, 0x2faa, 0x3a82, 0x3487, 0x3af5, 0x36ee, 0x39f0, 0x2a25, 0x3006, 0x3bc0, 0x3151, 0x31b0, 0x36e6, 0x351c, 0x2a55, 0x3846, 0x38b7, 0x37e3, 0x3a7c, 0x293b, 0x327d, 0x3680, 0x390a, 0x3ad5, 0x2e0c, 0x3bb9, 0x1ddf, 0x35fa, 0x3995, 0x380c, 0x3923, 0x3a4f, 0x3ad5, 0x3a80, 0x3113, -0x324a, 0x39c6, 0x353b, 0x2d16, 0x346a, 0x321f, 0x3703, 0x2f6c, 0x2c37, 0x3ada, 0x3be4, 0x3b3e, 0x3aac, 0x3a7f, 0x36d4, 0x3606, 0x3343, 0x393a, 0x382b, 0x3424, 0x38d4, 0x39ed, 0x3013, 0x31ff, 0x3794, 0x3b1c, 0x3919, 0x3bb5, 0x3769, 0x39a1, 0x3be5, 0x3b1a, 0x35fd, 0x3ba8, 0x2af5, 0x38ea, 0x3b19, 0x3814, 0x39ea, 0x3b1e, 0x37c0, 0x34f3, 0x395a, 0x38b6, 0x392a, 0x38a5, 0x3121, 0x2d9b, 0x3799, 0x304c, 0x349d, 0x3153, 0x398a, 0x3a70, 0x3a3d, 0x34bd, 0x39d7, 0x37b6, 0x3817, 0x34a8, 0x3ae2, 0x350d, 0x3ad0, 0x3a0e, 0x3496, 0x3b73, 0x3879, 0x3841, 0x3316, 0x3671, 0x36a4, 0x30bf, 0x3a5e, 0x3594, 0x3bde, 0x3b55, 0x3982, 0x395b, 0x364c, 0x3a6c, 0x32b0, 0x39cd, 0x3900, 0x38dc, 0x390a, 0x2d48, 0x376e, 0x3473, 0x2c65, 0x3934, 0x30cd, 0x3518, 0x3ba4, 0x3423, 0x2f57, 0x3682, -0x3979, 0x37b1, 0x3926, 0x343b, 0x360a, 0x234e, 0x3895, 0x3a09, 0x3810, 0x39d4, 0x3529, 0x3a28, 0x331a, 0x385f, 0x2576, 0x3973, 0x3a0e, 0x33b0, 0x21da, 0x3925, 0x32c8, 0x2fbe, 0x32e7, 0x3b38, 0x3a9a, 0x2ab2, 0x320d, 0x3be9, 0x3720, 0x351d, 0x311b, 0x38f2, 0x3952, 0x3985, 0x3b4b, 0x3634, 0x38af, 0x398b, 0x278f, 0x3460, 0x2f0d, 0x28e1, 0x3412, 0x3978, 0x372c, 0x3a02, 0x2e72, 0x10dc, 0x36c6, 0x3883, 0x3b5a, 0x38e8, 0x3b97, 0x394e, 0x2d07, 0x39b1, 0x3754, 0x2c54, 0x3577, 0x3ab3, 0x3a2a, 0x376a, 0x39b4, 0x396a, 0x3222, 0x396c, 0x39dc, 0x34d5, 0x3903, 0x3841, 0x3912, 0x3bdb, 0x3ba8, 0x364c, 0x39b0, 0x38a9, 0x3acd, 0x3015, 0x368d, 0x3b46, 0x351a, 0x38e2, 0x36f2, 0x37c7, 0x3bdb, 0x3b60, 0x3ba0, 0x3bc3, 0x363f, 0x28c1, 0x2add, 0x3aaa, 0x397b, 0x390f, 0x2f8f, 0x3836, -0x380f, 0x35e9, 0x35ee, 0x3386, 0x388f, 0x3bca, 0x3782, 0x37f2, 0x308e, 0x3a28, 0x3738, 0x31f6, 0x36a4, 0x39eb, 0x2b1f, 0x3ba6, 0x3322, 0x3ad6, 0x386f, 0x3b19, 0x3aa5, 0x2dd8, 0x3a6a, 0x380b, 0x39e3, 0x3225, 0x3bb2, 0x39e9, 0x30e5, 0x39df, 0x3ae8, 0x3075, 0x3025, 0x2f80, 0x30c1, 0x3854, 0x3914, 0x24e1, 0x3b4c, 0x32f6, 0x2e0e, 0x38a8, 0x3572, 0x2e9b, 0x38c3, 0x31f1, 0x3357, 0x3770, 0x3575, 0x317f, 0x345d, 0x3162, 0x38cd, 0x3111, 0x3543, 0x36c2, 0x36d6, 0x3754, 0x3b6e, 0x3900, 0x3996, 0x38b5, 0x352e, 0x3a32, 0x3881, 0x2487, 0x3795, 0x3814, 0x38f9, 0x388b, 0x366d, 0x3b8a, 0x3751, 0x3a1b, 0x380d, 0x39da, 0x3a56, 0x306c, 0x3295, 0x3992, 0x345c, 0x3a88, 0x370a, 0x357e, 0x31bc, 0x3af0, 0x2f33, 0x2c05, 0x3255, 0x595, 0x3acd, 0x3615, 0x26d4, 0x31b8, 0x3860, 0x3839, -0x30a4, 0x2aed, 0x381b, 0x3438, 0x3519, 0x3a7d, 0x39e4, 0x3704, 0x376f, 0x31d2, 0x3643, 0x29d2, 0x3101, 0x34cc, 0x39c1, 0x333f, 0x3a92, 0x2b34, 0x2d97, 0x334d, 0x3b85, 0x3b74, 0x37f2, 0x38e0, 0x3092, 0x34d3, 0x38af, 0x3489, 0x365c, 0x3bab, 0x3abc, 0x3b90, 0x3251, 0x3397, 0x399d, 0x32a2, 0x3545, 0x29ac, 0x3405, 0x37dd, 0x3899, 0x312c, 0x3500, 0x3983, 0x3bd4, 0x3bfc, 0x33a7, 0x2df1, 0x2c94, 0x374e, 0x351c, 0x3a18, 0x3984, 0x3b46, 0x2d2c, 0x2997, 0x365e, 0x3461, 0x3654, 0x2530, 0x3945, 0x1e1e, 0x3374, 0x2fb7, 0x31de, 0x3bff, 0x387b, 0x3701, 0x284f, 0x3b59, 0x3a7d, 0x3866, 0x3958, 0x3a6c, 0x358a, 0x3132, 0x35be, 0x3819, 0x386a, 0x369d, 0x3b3b, 0x3549, 0x3b06, 0x3173, 0x31f2, 0x39fb, 0x35a6, 0x3525, 0x3737, 0x3abb, 0x3b5e, 0x3122, 0x39e5, 0x3538, 0x3817, 0x3727, -0x3979, 0x39fe, 0x3487, 0x3a8e, 0x3407, 0x3140, 0x3afa, 0x39b7, 0x374e, 0x3b66, 0x3b0f, 0x39c9, 0x3266, 0x34dc, 0x396a, 0x38db, 0x35bd, 0x31c8, 0x37ed, 0x3667, 0x357e, 0x3518, 0x3139, 0x3bd5, 0x3157, 0x3960, 0x39d2, 0x3a38, 0x366c, 0x3876, 0x39b9, 0x2cf0, 0x3825, 0x3a80, 0x3bbf, 0x3a2d, 0x2fd3, 0x35e2, 0x35c6, 0x3a07, 0x368f, 0x391e, 0x3be7, 0x39be, 0x3533, 0x39c7, 0x3137, 0x2d6e, 0x3905, 0x3b95, 0x38f8, 0x39f5, 0x3bc1, 0x38a7, 0x38e5, 0x2c58, 0x343c, 0x3656, 0x2c1c, 0x3b1d, 0x39c9, 0x3801, 0x39c1, 0x3bed, 0x26be, 0x362a, 0x3655, 0x31b4, 0x2ad7, 0x3810, 0x3afd, 0x1edc, 0x35e8, 0x2d9f, 0x32fb, 0x316e, 0x38ed, 0x3839, 0x390b, 0x3b97, 0x38e2, 0x3746, 0x3b3b, 0x3b03, 0x395e, 0x353e, 0x375a, 0x3824, 0x25bf, 0x357f, 0x31a9, 0x3aa5, 0x35d6, 0x2a95, 0x1b91, 0x318c, -0x3650, 0x38de, 0x32bf, 0x287b, 0x305d, 0x393e, 0x3bb2, 0x352d, 0x2593, 0x386f, 0x3814, 0x38bd, 0x3532, 0x3084, 0x2880, 0x3bdb, 0x37da, 0x3073, 0x3850, 0x3026, 0x337f, 0x3b64, 0x37e5, 0x33ad, 0x3624, 0x319f, 0x36d7, 0x3939, 0x3553, 0x359d, 0x392d, 0x385f, 0x394f, 0x3aca, 0x34b8, 0x3138, 0x367a, 0x38a4, 0x3a8e, 0x369e, 0x34ef, 0x3b01, 0x3ad8, 0x3875, 0x3bd5, 0x39c4, 0x3b56, 0x394d, 0x38ba, 0x3a48, 0x3ade, 0x3bd6, 0x395f, 0x3737, 0x2dee, 0x3891, 0x35ed, 0x39b2, 0x2fe6, 0x3130, 0x346e, 0x3886, 0x2fb6, 0x3183, 0x3ae1, 0x3301, 0x38f9, 0x3470, 0x3701, 0x3845, 0x327d, 0x33b3, 0x3b06, 0x358e, 0x35eb, 0x38a2, 0x34d1, 0x317c, 0x3b0f, 0x395e, 0x36dc, 0x3511, 0x3a8b, 0x3997, 0x380b, 0x38cb, 0x3b3c, 0x3b54, 0x3330, 0x33d7, 0x357d, 0x3439, 0x2bd4, 0x3678, 0x3891, 0x39cc, -0x3bdb, 0x3af1, 0x3828, 0x3a2b, 0x39b6, 0x36f5, 0x374a, 0x3752, 0x3b11, 0x3306, 0x3bac, 0x3799, 0x39fe, 0x38f5, 0x3219, 0x36df, 0x3ade, 0x3ab0, 0x2fa1, 0x3472, 0x3a33, 0x34d9, 0x390e, 0x37c0, 0x2d6b, 0x38e1, 0x3bdc, 0x3887, 0x3644, 0x319b, 0x32a7, 0x2876, 0x337a, 0x3b38, 0x3904, 0x354b, 0x24b5, 0x1699, 0x3b55, 0x39b7, 0x278d, 0x3784, 0x388d, 0x389f, 0x34ac, 0x30bc, 0x3180, 0x37e5, 0x3462, 0x3641, 0x363a, 0x3805, 0x2fa2, 0x260f, 0x3a51, 0x38c4, 0x30e4, 0x3836, 0x3478, 0x3a31, 0x36ae, 0x3294, 0x3b82, 0x3321, 0x3877, 0x3209, 0x38ad, 0x31af, 0x35b4, 0x28af, 0x3699, 0x3490, 0x3974, 0x3272, 0x391c, 0x3864, 0x31fe, 0x3780, 0x39d9, 0x3607, 0x35a1, 0x339e, 0x3047, 0x33c0, 0x3506, 0x2f45, 0x3b6e, 0x3875, 0x383b, 0x3b4b, 0x3859, 0x35c7, 0x2afe, 0x34f1, 0x363f, 0x2ccc, -0x2888, 0x3101, 0x397a, 0x3715, 0x35b1, 0x369b, 0x3a0c, 0x3839, 0x3514, 0x3189, 0x3be6, 0x3214, 0x3b29, 0x312e, 0x3879, 0x33a8, 0x3a6f, 0x3998, 0x3959, 0x3b41, 0x348b, 0x3acb, 0x391f, 0x39b5, 0x353b, 0x3513, 0x395b, 0x3a72, 0x329c, 0x3a2e, 0x2c1b, 0x376e, 0x3857, 0x35ce, 0x34d3, 0x3952, 0x3b6f, 0x3978, 0x3942, 0x3741, 0x35a2, 0x3201, 0x3806, 0x397a, 0x393f, 0x2f4e, 0x3a07, 0x3b5b, 0x33aa, 0x3686, 0x394b, 0x3b64, 0x3a53, 0x385a, 0x390a, 0x3965, 0x34b6, 0x2f08, 0x39b3, 0x3808, 0x3631, 0x35af, 0x3628, 0x31a2, 0x3b7f, 0x3a04, 0x2951, 0x3a91, 0x39a9, 0x3877, 0x3acc, 0x3aff, 0x3bae, 0x2aa4, 0x3bbe, 0x3b0c, 0x3462, 0x3842, 0x3902, 0x3a55, 0x30e8, 0x3520, 0x30bd, 0x3147, 0x3ba1, 0x3945, 0x37b9, 0x30b4, 0x3573, 0x3b4f, 0x3a1b, 0x3a4a, 0x2d52, 0x345c, 0x366c, 0x3451, -0x34b3, 0x2d91, 0x3564, 0x3803, 0x3b06, 0x3bf5, 0x36b0, 0x356e, 0x341d, 0x39fe, 0x3b9e, 0x2d69, 0x3329, 0x3b30, 0x300d, 0x34e8, 0x3823, 0x3ab8, 0x38ce, 0x3b3c, 0x2983, 0x3680, 0x2841, 0x39ed, 0x393e, 0x30cc, 0x3828, 0x3af3, 0x2d8e, 0x381c, 0x382b, 0x3b29, 0x3b58, 0x380a, 0x2c56, 0x36b0, 0x3b53, 0x2f0b, 0x357b, 0x38de, 0x374e, 0x3aef, 0x3a95, 0x3a7a, 0x3a23, 0x2f2b, 0x3903, 0x3b97, 0x39e3, 0x2e50, 0x35fd, 0x3bf5, 0x3ae9, 0x3bb6, 0x3ab7, 0x391f, 0x326f, 0x3264, 0x3453, 0x37b3, 0x2d1b, 0x3a55, 0x3921, 0x36d7, 0x2b01, 0x388e, 0x3969, 0x2f04, 0x31b9, 0x3bd2, 0x3a16, 0x362a, 0x31d7, 0x3ae1, 0x3735, 0x2e5f, 0x3b56, 0x38a8, 0x3b30, 0x3a77, 0x35e2, 0x3aa6, 0x3222, 0x38f3, 0x399b, 0x330b, 0x350f, 0x2b19, 0x3b45, 0x38b4, 0x3ba8, 0x3a8f, 0x3abe, 0x2760, 0x341e, 0x323d, -0x2eab, 0x3514, 0x3b83, 0x39bd, 0x331e, 0x2bfc, 0x389d, 0x381c, 0x36b5, 0x35e9, 0x392e, 0x2b7a, 0x2fcf, 0x3523, 0x3b37, 0x3129, 0x3a56, 0x3861, 0x3b75, 0x38cd, 0x3604, 0x3286, 0x3ac4, 0x3926, 0x3495, 0x3bfc, 0x351b, 0x3696, 0x34e1, 0x2f4e, 0x26e3, 0x39ce, 0x34db, 0x2e38, 0x393c, 0x371c, 0x3843, 0x3a1b, 0x272b, 0x3a27, 0x376c, 0x393f, 0x39cc, 0x39be, 0x39f7, 0x2c76, 0x3bd3, 0x3a3b, 0x3970, 0x3ab5, 0x3915, 0x35c3, 0x36d0, 0x3957, 0x3aa5, 0x25d6, 0x3b79, 0x2217, 0x39c7, 0x3b15, 0x3aa1, 0x3901, 0x378e, 0x3ada, 0x3a6f, 0x384d, 0x372d, 0x39d9, 0x3819, 0x37e8, 0x3527, 0x30ee, 0x3867, 0x3229, 0x3126, 0x3290, 0x3a62, 0x3b2f, 0x32f3, 0x39e0, 0x36e6, 0x3981, 0x305a, 0x2fd0, 0x3724, 0x3822, 0x3359, 0x3869, 0x3bcc, 0x37f1, 0x357c, 0x39df, 0x2e31, 0x3b10, 0x3601, 0x37b1, -0x3aa3, 0x385a, 0x392b, 0x3909, 0x3774, 0x3aab, 0x38a2, 0x3801, 0x2882, 0x38a7, 0x3621, 0x373e, 0x34b4, 0x2e13, 0x3999, 0x381c, 0x369f, 0x2633, 0x3acd, 0x386d, 0x3b94, 0x32a0, 0x1bdc, 0x3873, 0x3249, 0x3692, 0x3be9, 0x325a, 0x32c2, 0x3ad9, 0x1de3, 0x308f, 0x3971, 0x34e6, 0x212b, 0x3bd3, 0x3790, 0x3814, 0x3346, 0x3358, 0x3115, 0x3914, 0x35c7, 0x3287, 0x3b0b, 0x388f, 0x35ac, 0x3002, 0x3a5e, 0x2ede, 0x38cd, 0x374f, 0x3b4c, 0x3578, 0x394c, 0x3951, 0x353c, 0x2e59, 0x3877, 0x31f5, 0x3912, 0x394b, 0x37e7, 0x3667, 0x38c9, 0x3641, 0x343c, 0x37ee, 0x3aa8, 0x3440, 0x34d3, 0x394b, 0x301f, 0x3a76, 0x387e, 0x3a7d, 0x347e, 0x21c8, 0x397c, 0x301a, 0x3a2d, 0x3710, 0x399a, 0x359b, 0x3756, 0x3679, 0x37eb, 0x38e6, 0x2a71, 0x35f9, 0x37eb, 0x3afc, 0x370d, 0x3bce, 0x3884, 0x3211, -0x3a18, 0x3a44, 0x2fcd, 0x3b65, 0x3788, 0x2a46, 0x322a, 0x3538, 0x3bc2, 0x33f4, 0x3932, 0x3835, 0x2fa9, 0x3b95, 0x3756, 0x399d, 0x36b6, 0x3186, 0x389d, 0x346c, 0x3abb, 0x3be4, 0x3919, 0x3993, 0x2ffc, 0x39db, 0x3bce, 0x3b0e, 0x336e, 0x36af, 0x3192, 0x38b7, 0x37ba, 0x3ae4, 0x3116, 0x2c45, 0x3494, 0x3aea, 0x302c, 0x3816, 0x3686, 0x34f2, 0x2fa4, 0x3aa1, 0x222f, 0x370f, 0x341a, 0x3aae, 0x380d, 0x3863, 0x36ca, 0x3a60, 0x3695, 0x387d, 0x391c, 0x2c8b, 0x2d94, 0x369e, 0x399e, 0x36fd, 0x38fc, 0x3b6c, 0x36a8, 0x3a73, 0x33fb, 0x36d0, 0x3720, 0x36d7, 0x37be, 0x2a8f, 0x3180, 0x3ad3, 0x2a1f, 0x3737, 0x3920, 0x2b67, 0x3abf, 0x395e, 0x322b, 0x3ace, 0x39b1, 0x3bdf, 0x2e0b, 0x3018, 0x3278, 0x393a, 0x3a8c, 0x39d0, 0x39cd, 0x308f, 0x3776, 0x38b7, 0x3527, 0x388b, 0x3901, 0x3b8b, -0x237d, 0x38f9, 0x3431, 0x3b1f, 0x3a12, 0x33ac, 0x3a3d, 0x3943, 0x348d, 0x363f, 0x3a2a, 0x2420, 0x3081, 0x3815, 0x382e, 0x38e5, 0x3238, 0x284e, 0x2ec3, 0x3af5, 0x3191, 0x32d6, 0x31c8, 0x39bc, 0x3a2a, 0x340d, 0x3bd9, 0x33dc, 0x3066, 0x39df, 0x30e2, 0x350a, 0x37fc, 0x341d, 0x3828, 0x3a1b, 0x3010, 0x2992, 0x32fd, 0x3bb3, 0x368c, 0x2af2, 0x3af4, 0x3a8f, 0x3793, 0x3620, 0x3b85, 0x3557, 0x316b, 0x288d, 0x3408, 0x3ae8, 0x3af0, 0x3420, 0x3bbd, 0x3a80, 0x309a, 0x3a5d, 0x3a57, 0x3987, 0x3a47, 0x377f, 0x3a01, 0x3a72, 0x3b37, 0x3594, 0x3bfd, 0x36ae, 0x3b99, 0x3bd4, 0x3920, 0x3b8d, 0x37ae, 0x3a46, 0x3184, 0x38ba, 0x1ff8, 0x3b9c, 0x3b68, 0x3621, 0x37f4, 0x2fb7, 0x3010, 0x3b58, 0x33d3, 0x3bbb, 0x291f, 0x3945, 0x3be1, 0x30c6, 0x3bc3, 0x35c6, 0x3bdf, 0x2a15, 0x2e3f, 0x2b1a, -0x3847, 0x3671, 0x34cf, 0x35e0, 0x3b80, 0x34e1, 0x3b3b, 0x305a, 0x327f, 0x3a9e, 0x3803, 0x2a3a, 0x3969, 0x3765, 0x3891, 0x3acc, 0x397d, 0x3549, 0x356e, 0x34c8, 0x2632, 0x30ca, 0x36ba, 0x3a56, 0x37ca, 0x344d, 0x39bc, 0x32f3, 0x3be2, 0x3b24, 0x353f, 0x3ab8, 0x373e, 0x3906, 0x318e, 0x3993, 0x27e3, 0x255c, 0x3afa, 0x33a3, 0x3819, 0x333b, 0x3bb6, 0x3179, 0x3414, 0x35d6, 0x30b1, 0x386b, 0x3b8e, 0x3942, 0x386c, 0x3b39, 0x32d2, 0x37f6, 0x2503, 0x3b14, 0x385c, 0x3a12, 0x3895, 0x39d7, 0x377f, 0x2c2d, 0x3066, 0x3855, 0x35a4, 0x3aeb, 0x3a9c, 0x35a4, 0x2eb7, 0x3b6b, 0x3bfd, 0x38fa, 0x1fd4, 0x3583, 0x3bc9, 0x35d2, 0x3913, 0x34b8, 0x271f, 0x3453, 0x3833, 0x3bb2, 0x3a7f, 0x1c15, 0x1b01, 0x39f1, 0x3bdd, 0x3988, 0x3ac8, 0x397f, 0x3bb4, 0x36d5, 0x37bf, 0x34b4, 0x30f5, 0x39c7, -0x391e, 0x3b4f, 0x2eb2, 0x3b31, 0x3073, 0x39d0, 0x2cd1, 0x2f3b, 0x36cc, 0x3739, 0x222d, 0x3a71, 0x3ba4, 0x3b60, 0x2bb5, 0x3885, 0x3b90, 0x2cea, 0x3ab6, 0x37b0, 0x3813, 0x31a7, 0x3545, 0x3392, 0x39f4, 0x34ae, 0x36c2, 0x3177, 0x3902, 0x39b5, 0x2f98, 0x36c1, 0x36d5, 0x32e8, 0x39ed, 0x30c3, 0x39a8, 0x30f1, 0x39a1, 0x36ec, 0x3bea, 0x34b1, 0x3260, 0x343e, 0x3929, 0x31d9, 0x33d7, 0x3bee, 0x379c, 0x2395, 0x3983, 0x38ce, 0x3297, 0x35fc, 0x3776, 0x3b0a, 0x3ae2, 0x3991, 0x2c03, 0x3712, 0x3b68, 0x2e82, 0x2e43, 0x3705, 0x39d1, 0x3b64, 0x2ff0, 0x3a4a, 0x2f9e, 0x2f32, 0x3ba6, 0x3559, 0x3aa5, 0x39cb, 0x3671, 0x39d2, 0x3aaf, 0x3385, 0x3a0a, 0x3a03, 0x396d, 0x391d, 0x2685, 0x3802, 0x39d5, 0x2af3, 0x39e4, 0x3ace, 0x313a, 0x2d88, 0x2999, 0x39a4, 0x3302, 0x390b, 0x3847, 0x3b87, -0x3813, 0x30fa, 0x3986, 0x3bc2, 0x3bc2, 0x3bf1, 0x3251, 0x391a, 0x2445, 0x3884, 0x3649, 0x320f, 0x305c, 0x3418, 0x337f, 0x38fa, 0x39ac, 0x3a4d, 0x346d, 0x33ca, 0x32da, 0x335c, 0x37ff, 0x389e, 0x39b3, 0x364e, 0x328a, 0x3690, 0x36cb, 0x3126, 0x374a, 0x3ba4, 0x37fe, 0x3233, 0x2afb, 0x3335, 0x3095, 0x38c9, 0x3a8b, 0x39c4, 0x3505, 0x32f2, 0x3a53, 0x388e, 0x34b9, 0x39d7, 0x34e7, 0x3a78, 0x3b19, 0x34e0, 0x35e9, 0x375f, 0x3a89, 0x38c6, 0x3764, 0x383c, 0x266a, 0x3672, 0x31fc, 0x3b60, 0x3a99, 0x3917, 0x3b92, 0x3759, 0x3acd, 0x39ad, 0x31fe, 0x3bcc, 0x3bec, 0x31a6, 0x33fa, 0x36f4, 0x2295, 0x3b2b, 0x3625, 0x3882, 0x3a88, 0x369a, 0x3b81, 0x399f, 0x34a9, 0x381c, 0x2db8, 0x365d, 0x3741, 0x382c, 0x3b87, 0x3b1c, 0x300b, 0x2ef6, 0x2e99, 0x3975, 0x24d7, 0x387e, 0x344a, 0x3503, -0x3b1e, 0x3900, 0x2bf3, 0x3170, 0x39bd, 0x3a2e, 0x37ad, 0x38b6, 0x38bf, 0x31c3, 0x3ae8, 0x368d, 0x36ac, 0x35e2, 0x3497, 0x2dec, 0x39c9, 0x389b, 0x3156, 0x3a86, 0x3892, 0x3976, 0x394b, 0x3b82, 0x3907, 0x392e, 0x2538, 0x3871, 0x348e, 0x3a0d, 0x347f, 0x316b, 0x378b, 0x3aa4, 0x38f5, 0x3595, 0x2d85, 0x2d42, 0x3aca, 0x3688, 0x3085, 0x3694, 0x399c, 0x3b6c, 0x3bb8, 0x3bac, 0x3a69, 0x35bf, 0x316c, 0x335f, 0x2e66, 0x2f7e, 0x360e, 0x3b28, 0x3254, 0x347f, 0x3687, 0x3018, 0x37b7, 0x3ba9, 0x3814, 0x3bd2, 0x22ed, 0x3735, 0x39a7, 0x3a17, 0x3a9c, 0x3264, 0x35f9, 0x38e9, 0x3610, 0x3ad7, 0x39ab, 0x304c, 0x3734, 0x3a58, 0x30be, 0x394f, 0x2f1c, 0x33be, 0x3818, 0x38b7, 0x3845, 0x3a9d, 0x3721, 0x324f, 0x34e0, 0x3a0e, 0x3b77, 0x3b14, 0x3884, 0x3a5a, 0x3aed, 0x3349, 0x39d0, 0x3ba6, -0x3345, 0x3494, 0x396e, 0x33e0, 0x3a01, 0x26be, 0x3a27, 0x3a66, 0x3a48, 0x3bc4, 0x3a0e, 0x39ac, 0x3758, 0x32d8, 0x3570, 0x2add, 0x2f32, 0x3856, 0x3814, 0x39a6, 0x3418, 0x3919, 0x2faf, 0x3a0f, 0x3816, 0x3366, 0x388c, 0x3471, 0x2993, 0x395d, 0x32cc, 0x3b00, 0x3a82, 0x3b5a, 0x2edd, 0x30f7, 0x3bba, 0x2a65, 0x368e, 0x311e, 0x35ff, 0x3734, 0x2931, 0x34db, 0x3734, 0x3b8a, 0x2441, 0x33bc, 0x3aed, 0x3793, 0x31ee, 0x37fe, 0x31f4, 0x36f4, 0x390e, 0x3b97, 0x3963, 0x3510, 0x30f9, 0x3a6e, 0x35d3, 0x34ba, 0x3a05, 0x39de, 0x3646, 0x3b0f, 0x3b2e, 0x3698, 0x3bbd, 0x3306, 0x3990, 0x3984, 0x2e28, 0x3880, 0x3b82, 0x350c, 0x3a3e, 0x3b00, 0x3735, 0x3944, 0x39a1, 0x34ea, 0x3812, 0x3a9c, 0x2270, 0x3b9b, 0x383d, 0x34b9, 0x33ff, 0x314b, 0x35e9, 0x3a76, 0x3b80, 0x3922, 0x3767, 0x3119, -0x39f0, 0x391b, 0x37d6, 0x37d9, 0x3b86, 0x3923, 0x2434, 0x3be9, 0x3918, 0x36cb, 0x3b4a, 0x296e, 0x3bcf, 0x38d5, 0x3342, 0x3482, 0x3995, 0x3958, 0x33a0, 0x38a7, 0x3be6, 0x3b68, 0x3168, 0x398d, 0x3ab4, 0x325a, 0x3bd2, 0x3915, 0x1a9f, 0x356c, 0x303d, 0x3b50, 0x32c5, 0x3a1c, 0x3a0e, 0x392c, 0x3b24, 0x3b8b, 0x322b, 0x2661, 0x3bba, 0x35e3, 0x3be0, 0x38f5, 0x39ab, 0x316b, 0x3b05, 0x3a05, 0x3969, 0x370c, 0x3851, 0x3a7c, 0x3801, 0x3b8b, 0x38db, 0x3aef, 0x354a, 0x2845, 0x3ac7, 0x3547, 0x35c2, 0x3564, 0x30d5, 0x3bf1, 0x301b, 0x3434, 0x3583, 0x3a9c, 0x1c52, 0x2e1e, 0x3522, 0x3993, 0x3bfe, 0x3524, 0x370c, 0x33ed, 0x3981, 0x2bfe, 0x2ca4, 0x3b56, 0x3b03, 0x3450, 0x3768, 0x3baf, 0x3760, 0x3a8f, 0x2d31, 0x2c4e, 0x3167, 0x35e6, 0x396d, 0x3b31, 0x309b, 0x347e, 0x39ea, 0x3bb8, -0x3164, 0x2bac, 0x368e, 0x3bd4, 0x3427, 0x38b4, 0x3a4d, 0x39ba, 0x3a0d, 0x301a, 0x2fec, 0x2ce1, 0x3985, 0x2acc, 0x386d, 0x3808, 0x346b, 0x383b, 0x3b1b, 0x3406, 0x3bc5, 0x3b86, 0x3860, 0x35ae, 0x2e1c, 0x35d4, 0x350b, 0x35f5, 0x2a73, 0x3a6b, 0x364b, 0x3526, 0x278a, 0x375e, 0x299f, 0x39b0, 0x394e, 0x345d, 0x3760, 0x31ba, 0x3400, 0x3566, 0x3b36, 0x3a48, 0x34e3, 0x3b24, 0x347c, 0x32a3, 0x2da7, 0x364a, 0x33de, 0x33c5, 0x324f, 0x38f7, 0x3bfb, 0x3a94, 0x3312, 0x3924, 0x3831, 0x2ee6, 0x3b4a, 0x338b, 0x2bb3, 0x33ee, 0x3bf2, 0x3aa3, 0x376d, 0x1512, 0x37b5, 0x2e44, 0x39ad, 0x3b2f, 0x39a7, 0x3aa1, 0x2e75, 0x3955, 0x3663, 0x39a6, 0x296f, 0x34c6, 0x2ef3, 0x2fe3, 0x3647, 0x3bc2, 0x3b91, 0x376a, 0x39e5, 0x3466, 0x38b9, 0x3a80, 0x3861, 0x36ca, 0x3a2c, 0x3145, 0x3102, 0x33bc, -0x2ba4, 0x2eb9, 0x39ab, 0x33cf, 0x2c9f, 0x372c, 0x3973, 0x2ff9, 0x36a5, 0x3641, 0x3b93, 0x3bc9, 0x3ba9, 0x36cd, 0x3a8d, 0x3bd2, 0x399e, 0x34ed, 0x3b4c, 0x2c2b, 0x38f7, 0x3824, 0x2edd, 0x32fc, 0x30cc, 0x2b90, 0x2628, 0x3a65, 0x39de, 0x3800, 0x3a8c, 0x3a88, 0x1e84, 0x3890, 0x33b4, 0x37e8, 0x3aab, 0x342c, 0x3697, 0x379a, 0x2472, 0x38bb, 0x38d0, 0x3a8e, 0x393a, 0x34e7, 0x3baf, 0x37ce, 0x28c7, 0x32a5, 0x3a68, 0x3925, 0x3a49, 0x3944, 0x3976, 0x3866, 0x363a, 0x35e2, 0x296d, 0x29f3, 0x39a8, 0x3831, 0x3682, 0x3898, 0x2bca, 0x13aa, 0x37b8, 0x35fe, 0x3a5d, 0x3362, 0x34bd, 0x38c1, 0x3b66, 0x3801, 0x391b, 0x307b, 0x3936, 0x3ae2, 0x3899, 0x390a, 0x384b, 0x3af4, 0x3ae2, 0x35d2, 0x271a, 0x37ad, 0x3102, 0x38e5, 0x30b8, 0x2419, 0x30ee, 0x3437, 0x39b9, 0x3a44, 0x374e, 0x3551, -0x39a4, 0x35f6, 0x385e, 0x3864, 0x3977, 0x3159, 0x3625, 0x379a, 0x3b94, 0x3a2a, 0x2ea6, 0x38a1, 0x3ad9, 0x31cd, 0x3be9, 0x34ac, 0x38be, 0x3925, 0x36ae, 0x3bd3, 0x2e3b, 0x39d0, 0x3a89, 0x336b, 0x2d09, 0x3533, 0x382c, 0x2f0c, 0x385e, 0x3ba1, 0x3436, 0x39e4, 0x3a6b, 0x39b1, 0x3622, 0x334e, 0x38cd, 0x3740, 0x30d6, 0x391d, 0x3a70, 0x3390, 0x2c34, 0x3bf0, 0x3566, 0x3864, 0x2aaa, 0x2df7, 0x20cf, 0x3621, 0x39f8, 0x3ab0, 0x3a54, 0x39fb, 0x389e, 0x3724, 0x3755, 0x369d, 0x3944, 0x2843, 0x13b6, 0x316f, 0x3860, 0x3848, 0x3816, 0x315b, 0x3b72, 0x35e9, 0x396a, 0x399c, 0x3a7b, 0x315c, 0x3667, 0x37ae, 0x39f0, 0x386f, 0x3875, 0x3b25, 0x38ba, 0x3a14, 0x3abc, 0x36e1, 0x352d, 0x3904, 0x385d, 0x3b24, 0x32c9, 0x3afb, 0x3bd8, 0x3520, 0x145c, 0x378f, 0x3821, 0x2801, 0x3496, 0x3b18, -0x3716, 0x3bfe, 0x3591, 0x3b7d, 0x3a85, 0x3af1, 0x3abf, 0x38ae, 0x30cb, 0x3457, 0x3b9f, 0x32bc, 0x39e0, 0x33d6, 0x3acd, 0x38e4, 0x39bf, 0x39ce, 0x2c1a, 0x36c2, 0x3a5e, 0x3ba5, 0x3a2d, 0x3629, 0x3b8d, 0x36ce, 0x3997, 0x384a, 0x3acb, 0x36d2, 0x3b60, 0x3a38, 0x347d, 0x35b3, 0x286f, 0x2bf4, 0x3795, 0x2d33, 0x20c0, 0x3857, 0x3aac, 0x3766, 0x38c1, 0x3628, 0x2e3a, 0x3a93, 0x3ac6, 0x35ca, 0x3366, 0x3b05, 0x3a4c, 0x3be7, 0x37a8, 0x38c4, 0x36ae, 0x39b0, 0x34e1, 0x2dfc, 0x3b41, 0x385a, 0x306b, 0x3bfa, 0x39ab, 0x3ade, 0x3a80, 0x3574, 0x397e, 0x3792, 0x342e, 0x373c, 0x3918, 0x3275, 0x3827, 0x397e, 0x3889, 0x35b5, 0x30d7, 0x1d25, 0x30b4, 0x3580, 0x2ae1, 0x2bba, 0x38ea, 0x3a03, 0x3b44, 0x3539, 0x2de4, 0x3b56, 0x3949, 0x2792, 0x39ac, 0x31af, 0x3514, 0x3ac1, 0x34a6, 0x2c44, -0x330d, 0x36f5, 0x374e, 0x3bf7, 0x33ea, 0x3770, 0x2733, 0x30ef, 0x3b72, 0x2d2a, 0x392d, 0x36fb, 0x3a83, 0x34a1, 0x334c, 0x30b3, 0x2987, 0x3584, 0x3ab0, 0x3a9d, 0x2b67, 0x3a56, 0x35ba, 0x325f, 0x39b7, 0x2abd, 0x3a40, 0x38bf, 0x37b9, 0x3a67, 0x204a, 0x328d, 0x3403, 0x3adc, 0x2c0f, 0x3923, 0x39bc, 0x366a, 0x3082, 0x39d1, 0x3ad5, 0x3a4f, 0x3207, 0x3631, 0x381e, 0x3961, 0x358d, 0x3664, 0x3363, 0x3bf9, 0x372c, 0x3a5d, 0x3878, 0x335a, 0x35a2, 0x3532, 0x3809, 0x2ecb, 0x32e3, 0x3996, 0x36cf, 0x362f, 0x38d5, 0x39c7, 0x2ccd, 0x37c7, 0x2ba2, 0x3b59, 0x26c9, 0x38fa, 0x3b8a, 0x3bed, 0x3868, 0x3942, 0x393a, 0x3999, 0x363f, 0x3375, 0x3bc6, 0x3098, 0x384c, 0x381e, 0x39c6, 0x39be, 0x3204, 0x2023, 0x3acf, 0x3b55, 0x3850, 0x3ae7, 0x37ac, 0x388a, 0x3b11, 0x36e1, 0x2f03, 0x3a6d, -0x2f6f, 0x39b2, 0x308a, 0x3253, 0x3976, 0x38bd, 0x3bfa, 0x3b6d, 0x3816, 0x287b, 0x3588, 0x392b, 0x30bc, 0x3b83, 0x3a9b, 0x300d, 0x3ba4, 0x2d26, 0x372a, 0x3914, 0x36ee, 0x2f72, 0x3ad3, 0x323b, 0x32b6, 0x3a71, 0x3a92, 0x2416, 0x3ab2, 0x39c8, 0x313c, 0x3a5e, 0x3ab9, 0x30ed, 0x3ac3, 0x3339, 0x291e, 0x3847, 0x3bb9, 0x3b7c, 0x3369, 0x3aa1, 0x3b93, 0x380a, 0x33fd, 0x3545, 0x399a, 0x25a4, 0x36c6, 0x37fe, 0x3ae8, 0x3ad7, 0x3be3, 0x3589, 0x370e, 0x3299, 0x3358, 0x3960, 0x36e2, 0x3af9, 0x3676, 0x3b75, 0x39df, 0x32bf, 0x387f, 0x2764, 0x39ae, 0x32b4, 0x36bf, 0x3161, 0x3a40, 0x3bcb, 0x3447, 0x3a0d, 0x2baa, 0x38c7, 0x333a, 0x3a4b, 0x394f, 0x381d, 0x38bd, 0x2b6b, 0x388d, 0x3a37, 0x384e, 0x3b19, 0x31dc, 0x3236, 0x33aa, 0x32f2, 0x32b0, 0x3b95, 0x3bd2, 0x1db0, 0x36d4, 0x38ae, -0x3161, 0x30b6, 0x3784, 0x3701, 0x387e, 0x36ef, 0x2ad7, 0x3ab4, 0x3897, 0x397d, 0x355d, 0x34e3, 0x351d, 0x3b95, 0x3b12, 0x1c76, 0x3b71, 0x3b9a, 0x37e5, 0x3bc6, 0x2576, 0x33c0, 0x398e, 0x39d1, 0x37b9, 0x3a9f, 0x234c, 0x3979, 0x36a2, 0x3aad, 0x355c, 0x3479, 0x2d97, 0x2d54, 0x2ecb, 0x3481, 0x38ba, 0x32e2, 0x380c, 0x2f81, 0x3b87, 0x3a01, 0x35b6, 0x35f6, 0x389a, 0x341e, 0x3180, 0x35d7, 0x31af, 0x3983, 0x38ec, 0x298c, 0x3bea, 0x38d3, 0x2ba1, 0x32b9, 0x2f3e, 0x3b84, 0x3003, 0x34ff, 0x3bd9, 0x323b, 0x375a, 0x3462, 0x3824, 0x303d, 0x381a, 0x385e, 0x3bfd, 0x3993, 0x39c6, 0x3a0f, 0x3b8c, 0x3353, 0x3295, 0x39b6, 0x28dd, 0x3a8e, 0x3043, 0x2d8e, 0x3b67, 0x3504, 0x3b32, 0x30b6, 0x3a4c, 0x3239, 0x3443, 0x3031, 0x3afb, 0x3b11, 0x30f8, 0x3299, 0x3be6, 0x3476, 0x3a49, 0x3441, -0x31e8, 0x3992, 0x3509, 0x3313, 0x3635, 0x35cc, 0x3963, 0x3545, 0x3ba3, 0x2443, 0x35c5, 0x3bb8, 0x3a2e, 0x3642, 0x3ae7, 0x3832, 0x333e, 0x34d3, 0x37f5, 0x38a6, 0x39a9, 0x3850, 0x3ad9, 0x2a1f, 0x271c, 0x3878, 0x3586, 0x362d, 0x3922, 0x3ab8, 0x310e, 0x369c, 0x2efb, 0x3bde, 0x38c2, 0x3af3, 0x393a, 0x3401, 0x315e, 0x305f, 0x38f5, 0x39bf, 0x36c6, 0x3544, 0x3213, 0x386f, 0x378f, 0x3214, 0x3900, 0x35a4, 0x3bbd, 0x2f98, 0x3a9d, 0x3b3d, 0x395a, 0x3932, 0x3515, 0x2ef8, 0x3af6, 0x2d82, 0x2845, 0x39f8, 0x2b6d, 0x38eb, 0x3300, 0x2e15, 0x3788, 0x3962, 0x2e88, 0x356d, 0x3a36, 0x3bd3, 0x2485, 0x38fc, 0x3843, 0x38c0, 0x1351, 0x3aea, 0x2c6d, 0x3ad0, 0x337d, 0x394e, 0x3823, 0x34f9, 0x342e, 0x3203, 0x3b9a, 0x3ade, 0x357a, 0x3734, 0x398f, 0x3302, 0x3b51, 0x3607, 0x35c9, 0x2be4, -0x38d7, 0x3450, 0x359a, 0x2a01, 0x3a33, 0x3536, 0x3a66, 0x360d, 0x3b2f, 0x3a0f, 0x3a84, 0x36b5, 0x3920, 0x389e, 0x3622, 0x3175, 0x370e, 0x32d1, 0x3a64, 0x3a2d, 0x3afc, 0x36f1, 0x3b64, 0x3268, 0x36b8, 0x3b0e, 0x34f4, 0x3b5d, 0x38ac, 0x3153, 0x3128, 0x3670, 0x3b70, 0x39be, 0x3989, 0x35ae, 0x333a, 0x2bfb, 0x3ad9, 0x344c, 0x3ba9, 0x3b6c, 0x335e, 0x3a80, 0x2451, 0x3823, 0x385e, 0x30e0, 0x38e3, 0x30ad, 0x36a0, 0x3a1e, 0x37db, 0x193d, 0x3675, 0x3110, 0x394c, 0x2f96, 0x2c1f, 0x3982, 0x388d, 0x2ccc, 0x343e, 0x3a8c, 0x3710, 0x2da8, 0x384f, 0x35d2, 0x3174, 0x3267, 0x349c, 0x345a, 0x37f3, 0x380a, 0x3814, 0x380c, 0x3acc, 0x325e, 0x3738, 0x32ef, 0x3223, 0x3488, 0x36d9, 0x394d, 0x3450, 0x378c, 0x328e, 0x332a, 0x3b8e, 0x381d, 0x314a, 0x3530, 0x3378, 0x3a88, 0x3bf8, 0x30e7, -0x3860, 0x38b5, 0x3bc1, 0x2da6, 0x3b83, 0x3a43, 0x372a, 0x392c, 0x3404, 0x3449, 0x3972, 0x3bc5, 0x2dc0, 0x39dc, 0x354c, 0x24f9, 0x3617, 0x3bc1, 0x3960, 0x3762, 0x3962, 0x39e3, 0x3afe, 0x3a21, 0x3834, 0x3856, 0x3ad1, 0x36a8, 0x3b2b, 0x36eb, 0x2f4f, 0x3801, 0x3b42, 0x3af3, 0x380f, 0x326c, 0x351a, 0x3914, 0x38b2, 0x3a84, 0x369e, 0x3925, 0x3213, 0x3b80, 0x3763, 0x3af9, 0x2e55, 0x30ba, 0x3a12, 0x347f, 0x39d7, 0x3a46, 0x2ec5, 0x3b6a, 0x3b7f, 0x3a3f, 0x2eea, 0x38db, 0x33be, 0x356a, 0x3a21, 0x3623, 0x3822, 0x3a63, 0x34ef, 0x373b, 0x2d60, 0x3428, 0x3121, 0x3b9a, 0x3948, 0x3687, 0x382b, 0x2144, 0x3254, 0x387f, 0x3512, 0x357c, 0x3891, 0x2e61, 0x368a, 0x33a8, 0x3b26, 0x2e33, 0x282a, 0x2c3a, 0x365c, 0x35c7, 0x3b90, 0x3866, 0x3a86, 0x35cc, 0x3689, 0x3212, 0x3a1e, 0x3555, -0x2f7e, 0x3b2e, 0x3204, 0x3b95, 0x38c5, 0x394d, 0x3908, 0x3b28, 0x388d, 0x36c6, 0x3ac3, 0x3bc6, 0x305d, 0x3a21, 0x3477, 0x39c1, 0x34e7, 0x3ba1, 0x3850, 0x3276, 0x3513, 0x3576, 0x3407, 0x37e4, 0x2dde, 0x3113, 0x389b, 0x34cc, 0x3736, 0x34de, 0x3348, 0x3942, 0x3044, 0x365f, 0x3a40, 0x3a33, 0x34fb, 0x389a, 0x3983, 0x382e, 0x381d, 0x3293, 0x34a2, 0x330d, 0x31f1, 0x3b44, 0x3861, 0x35e1, 0x331a, 0x3839, 0x39d0, 0x3b0a, 0x34d0, 0x37dd, 0x332b, 0x38f4, 0x3ad1, 0x25b4, 0x3bee, 0x31ee, 0x31fc, 0x382d, 0x3889, 0x352b, 0x38a5, 0x21c1, 0x2e21, 0x3425, 0x2d5e, 0x28f2, 0x3ad7, 0x3945, 0x3282, 0x3844, 0x39d9, 0x2e75, 0x3adb, 0x3703, 0x3966, 0x383a, 0x2d09, 0x3008, 0x3b9f, 0x3b0f, 0x304a, 0x373e, 0x3a84, 0x3739, 0x39cd, 0x3678, 0x3a04, 0x2fe1, 0x3572, 0x3853, 0x38f6, 0x3abc, -0x3b09, 0x3b5a, 0x3be6, 0x2424, 0x345a, 0x3992, 0x3738, 0x35a8, 0x3379, 0x3949, 0x3a93, 0x37d9, 0x2fe8, 0x3a1c, 0x322a, 0x26b8, 0x3af8, 0x327a, 0x34f0, 0x3632, 0x3485, 0x385f, 0x3b33, 0x3396, 0x3ad8, 0x379a, 0x384e, 0x35e6, 0x331e, 0x3b6d, 0x34ca, 0x3997, 0x39c8, 0x3a97, 0x387d, 0x1854, 0x35d1, 0x3bd9, 0x389e, 0x365a, 0x396e, 0x2f7d, 0x3910, 0x388f, 0x39e6, 0x3a8e, 0x3a9e, 0x39b2, 0x2ff2, 0x39fc, 0x346f, 0x39bf, 0x3711, 0x3951, 0x3856, 0x39ea, 0x318e, 0x3778, 0x393c, 0x37ba, 0x3781, 0x3ad5, 0x3638, 0x3b18, 0x286d, 0x314b, 0x3b67, 0x3186, 0x37c4, 0x39f7, 0x376f, 0x3b12, 0x3882, 0x36b6, 0x3a84, 0x329a, 0x24a9, 0x38e3, 0x35ca, 0x3b5b, 0x333f, 0x3994, 0x3369, 0x385b, 0x3871, 0x3aac, 0x3649, 0x3953, 0x31d4, 0x3b45, 0x3808, 0x36e0, 0x35c6, 0x2bd8, 0x39b7, 0x3bd9, -0x3aa5, 0x340f, 0x3721, 0x35e0, 0x3a8f, 0x3ac1, 0x3b3f, 0x1e07, 0x342a, 0x36a2, 0x3830, 0x2dff, 0x35c4, 0x3441, 0x3ac6, 0x383f, 0x3bb1, 0x32d5, 0x3870, 0x3757, 0x36a5, 0x38c3, 0x3158, 0x377d, 0x363d, 0x2ede, 0x3698, 0x2f0b, 0x3860, 0x1a39, 0x39b4, 0x39c3, 0x35e2, 0x3529, 0x35e4, 0x38d3, 0x358a, 0x2cc9, 0x3665, 0x3479, 0x3917, 0x36f9, 0x34d3, 0x39f7, 0x3688, 0x3950, 0x36d5, 0x3a15, 0x35fd, 0x3556, 0x3751, 0x30b6, 0x3906, 0x3b32, 0x387f, 0x2d69, 0x3628, 0x3b4c, 0x3b17, 0x38ff, 0x3852, 0x38c4, 0x37e0, 0x368d, 0x38f6, 0x3885, 0x398e, 0x37dd, 0x3867, 0x35e7, 0x3bd1, 0x38a1, 0x3882, 0x2d3d, 0x3b21, 0x3443, 0x3381, 0x36df, 0x38ba, 0x3a7c, 0x3a03, 0x3881, 0x352b, 0x3914, 0x3b69, 0x3564, 0x3141, 0x3940, 0x327b, 0x390b, 0x3710, 0x3952, 0x3a3e, 0x3825, 0x3ae8, 0x39f8, -0x3950, 0x3a9d, 0x3a2c, 0x35d5, 0x34b7, 0x3a46, 0x3a47, 0x344e, 0x3a08, 0x3362, 0x3285, 0x33e8, 0x3618, 0x39fb, 0x2c3c, 0x39b0, 0x1336, 0x36bd, 0x358c, 0x3bc0, 0x354d, 0x38be, 0x3a08, 0x34e9, 0x3801, 0x3be9, 0x35fa, 0x3015, 0x26bc, 0x399e, 0x36d1, 0x3218, 0x3a92, 0x2ad4, 0x3114, 0x364e, 0x3aa5, 0x35cb, 0x354a, 0x2da0, 0x2fc1, 0x36a2, 0x2fde, 0x3b28, 0x367f, 0x32eb, 0x3b7e, 0x3912, 0x3894, 0x323f, 0x3807, 0x3971, 0x3b61, 0x2381, 0x3ac6, 0x3868, 0x3980, 0x3a49, 0x3183, 0x3657, 0x3851, 0x3956, 0x37be, 0x38ea, 0x38b3, 0x37e2, 0x38ca, 0x3b3b, 0x3543, 0x38af, 0x247b, 0x3716, 0x3b75, 0x3667, 0x3801, 0x2a16, 0x3b46, 0x2bb3, 0x3832, 0x3b8e, 0x3a02, 0x37e2, 0x38b7, 0x2a58, 0x3b4b, 0x3b3c, 0x3914, 0x27f4, 0x3512, 0x3934, 0x3a17, 0x3a1b, 0x3bab, 0x3ae0, 0x3ab8, 0x3454, -0x32bc, 0x35d5, 0x3b7f, 0x388c, 0x3740, 0x3290, 0x2d2a, 0x2bf5, 0x304b, 0x3a10, 0x388e, 0x2e4e, 0x3126, 0x3477, 0x386d, 0x3bc5, 0x3643, 0x3589, 0x3665, 0x39c5, 0x315d, 0x3375, 0x3b3d, 0x38bb, 0x320a, 0x371d, 0x3873, 0x31df, 0x3534, 0x3b7a, 0x3809, 0x3b1f, 0x3868, 0x35ec, 0x397c, 0x3535, 0x3be5, 0x3857, 0x3ae4, 0x338c, 0x3ace, 0x3931, 0x3bcc, 0x30d9, 0x3bb2, 0x38d5, 0x3840, 0x3aef, 0x385c, 0x3974, 0x3b1b, 0x369c, 0x3b54, 0x3074, 0x39bb, 0x3a1d, 0x2e7d, 0x34f9, 0x3a6c, 0x3505, 0x3ae2, 0x30df, 0x3ac9, 0x3460, 0x3517, 0x3b85, 0x3488, 0x3440, 0x3aab, 0x3089, 0x3879, 0x3343, 0x3395, 0x329f, 0x3753, 0x3a08, 0x388b, 0x3ac1, 0x3478, 0x33f5, 0x3a65, 0x343f, 0x307e, 0x38f3, 0x37a0, 0x3259, 0x3210, 0x385a, 0x3bff, 0x297f, 0x2e3b, 0x2e41, 0x3921, 0x3654, 0x34c2, 0x3bf6, -0x2dca, 0x391f, 0x399f, 0x2fae, 0x38c6, 0x2fea, 0x36a0, 0x31d7, 0x3a0a, 0x2adb, 0x31c7, 0x3bf1, 0x313c, 0x3a0f, 0x36d3, 0x3854, 0x355f, 0x3991, 0x3b44, 0x3b0c, 0x3aa8, 0x37f0, 0x38cf, 0x3394, 0x373a, 0x38ee, 0x3871, 0x3977, 0x29ef, 0x23f6, 0x3b79, 0x2430, 0x31ea, 0x2f51, 0x3b09, 0x39fa, 0x34c0, 0x2a71, 0x3186, 0x3869, 0x2c9d, 0x3995, 0x3a89, 0x3a6a, 0x308a, 0x32f2, 0x39e9, 0x3902, 0x3970, 0x3986, 0x3931, 0x3918, 0x36ab, 0x3a86, 0x38c2, 0x39f0, 0x2ca6, 0x3bac, 0x36b8, 0x34d2, 0x383e, 0x304a, 0x299b, 0x3172, 0x3b3b, 0x38e3, 0x39a0, 0x3b28, 0x3822, 0x3548, 0x35d3, 0x3a14, 0x282b, 0x39e4, 0x2d29, 0x3a68, 0x2dc2, 0x32c2, 0x3aa2, 0x3625, 0x3553, 0x3809, 0x3993, 0x3811, 0x3456, 0x2f37, 0x3210, 0x393f, 0x323c, 0x30eb, 0x361c, 0x3276, 0x3097, 0x34ee, 0x34f8, 0x31cd, -0x3ba8, 0x2a42, 0x31b2, 0x38e3, 0x3951, 0x29e1, 0x2e0a, 0x3a69, 0x2f3f, 0x3b90, 0x3634, 0x3b61, 0x35ef, 0x34c4, 0x386f, 0x2aae, 0x38a6, 0x1edc, 0x38f0, 0x37e7, 0x3ac3, 0x32fe, 0x3645, 0x31ef, 0x33e8, 0x3447, 0x3ad8, 0x3b4e, 0x193e, 0x2514, 0x36ad, 0x3b4c, 0x39d8, 0x3285, 0x31c9, 0x3a64, 0x2c2d, 0x3994, 0x302a, 0x3a31, 0x3adb, 0x2bfa, 0x3554, 0x399f, 0x32a0, 0x393b, 0x3831, 0x3a94, 0x2f96, 0x38bb, 0x3b49, 0x2168, 0x396c, 0x3425, 0x3b8d, 0x2634, 0x38fd, 0x3894, 0x3ac8, 0x3b82, 0x3891, 0x39a0, 0x3422, 0x36e1, 0x3727, 0x3802, 0x388e, 0x392d, 0x37ec, 0x340f, 0x2424, 0x3812, 0x3af6, 0x3352, 0x36e2, 0x385e, 0x3ba8, 0x38ca, 0x3986, 0x3b9e, 0x3319, 0x3be8, 0x389f, 0x29ea, 0x35c2, 0x394f, 0x33b7, 0x388b, 0x388d, 0x3bb5, 0x34f9, 0x35ff, 0x3842, 0x3181, 0x3889, 0x38ec, -0x34b9, 0x3818, 0x3af1, 0x35b7, 0x3462, 0x39bf, 0x3641, 0x367d, 0x3560, 0x2c3b, 0x3b63, 0x2cdc, 0x33be, 0x3a92, 0x2cf5, 0x3216, 0x315f, 0x39dc, 0x3b1a, 0x37e4, 0x3446, 0x37dc, 0x3934, 0x3835, 0x3916, 0x37d0, 0x384e, 0x2d75, 0x3268, 0x3570, 0x3506, 0x38e0, 0x38c0, 0x395f, 0x38bd, 0x3022, 0x3b3e, 0x393b, 0x3479, 0x3726, 0x3432, 0x3699, 0x38dc, 0x2def, 0x2ab6, 0x2fad, 0x3a35, 0x35b5, 0x30a8, 0x3968, 0x38ab, 0x3a6e, 0x346e, 0x3988, 0x3434, 0x35b6, 0x36dc, 0x2e2e, 0x2b5c, 0x3300, 0x32f9, 0x382a, 0x3bc2, 0x3b6f, 0x2ca0, 0x2d85, 0x397c, 0x38a1, 0x36e4, 0x37f0, 0x39ec, 0x30fb, 0x3bfb, 0x3a04, 0x301a, 0x3b8c, 0x39eb, 0x3a96, 0x39bc, 0x3921, 0x319b, 0x3805, 0x3b5f, 0x39ad, 0x316b, 0x3b91, 0x2c1d, 0x3b87, 0x35d3, 0x3b01, 0x36ad, 0x393f, 0x3674, 0x3603, 0x3af9, 0x2fa1, -0x3a49, 0x34d3, 0x3af0, 0x28b4, 0x3afb, 0x3684, 0x3640, 0x37ae, 0x38d3, 0x3916, 0x3699, 0x3b36, 0x38e7, 0x3ad9, 0x39af, 0x376a, 0x388f, 0x35c7, 0x3664, 0x3840, 0x3506, 0x3b62, 0x3347, 0x3a30, 0x347c, 0x3ae5, 0x3542, 0x35d6, 0x32f6, 0x38e3, 0x2091, 0x3a7f, 0x3b5a, 0x3610, 0x38c9, 0x348b, 0x37bf, 0x346a, 0x38a2, 0x3939, 0x3842, 0x3a03, 0x3afe, 0x1ec8, 0x3158, 0x3afc, 0x39e9, 0x3b79, 0x351a, 0x314e, 0x242c, 0x34b5, 0x3bc6, 0x25a0, 0x3b95, 0x29e3, 0x3517, 0x3bff, 0x3a4b, 0x3a79, 0x355f, 0x33cd, 0x35df, 0x3ab8, 0x39d4, 0x3afe, 0x35f7, 0x38aa, 0x2fc1, 0x3342, 0x394c, 0x3603, 0x3811, 0x3a0b, 0x34eb, 0x2ca7, 0x3192, 0x3a89, 0x396e, 0x3731, 0x3af0, 0x2cca, 0x3843, 0x36e3, 0x39f5, 0x2d99, 0x2a6b, 0x33bf, 0x2609, 0x32f0, 0x32ce, 0x35dd, 0x380d, 0x32e2, 0x3b6a, 0x3a8e, -0x2ced, 0x32da, 0x3a21, 0x367d, 0x36cd, 0x3631, 0x2b0d, 0x31fd, 0x3b89, 0x2e45, 0x3916, 0x362b, 0x3852, 0x2c73, 0x32a6, 0x3013, 0x396f, 0x3984, 0x3104, 0x3a93, 0x39de, 0x3807, 0x3464, 0x36bb, 0x36e7, 0x3aa3, 0x372a, 0x38ce, 0x3a85, 0x3bae, 0x27b1, 0x34c7, 0x37e5, 0x2be5, 0x3a8c, 0x2e62, 0x3b13, 0x2ee8, 0x3782, 0x3a40, 0x31b0, 0x37fd, 0x3759, 0x3382, 0x3bcc, 0x32fd, 0x3bdc, 0x39eb, 0x3a01, 0x380e, 0x31a6, 0x39f6, 0x38fc, 0x37c5, 0x3be0, 0x347a, 0x3524, 0x2da5, 0x23ed, 0x25e0, 0x3af4, 0x27f6, 0x39cd, 0x3575, 0x3827, 0x3b1d, 0x3bf3, 0x3bd8, 0x3697, 0x3b52, 0x2ec3, 0x33c0, 0x3b26, 0x3ab5, 0x34f6, 0x30f2, 0x38ff, 0x39ae, 0x3620, 0x32a6, 0x365a, 0x3a13, 0x2a9a, 0x28a9, 0x3198, 0x3819, 0x38bb, 0x3731, 0x3b3d, 0x37db, 0x3abb, 0x3be6, 0x34c7, 0x3709, 0x3959, 0x3556, -0x3b82, 0x36c8, 0x352e, 0x3a99, 0x3942, 0x37e9, 0x39c9, 0x3900, 0x123c, 0x3b9a, 0x3b46, 0x3a9a, 0x3a06, 0x36e3, 0x38bd, 0x3622, 0x396c, 0x3a7d, 0x361f, 0x3b83, 0x297b, 0x3a4b, 0x323f, 0x3b61, 0x3ac5, 0x24e9, 0x3138, 0x359a, 0x2931, 0x3b63, 0x3a8d, 0x3aa0, 0x384f, 0x3a36, 0x3641, 0x3af0, 0x3ada, 0x3526, 0x3a5c, 0x39cc, 0x3803, 0x3572, 0x3994, 0x3b9e, 0x3a64, 0x36ae, 0x37ec, 0x3ad2, 0x312b, 0x3434, 0x3b89, 0x38d1, 0x3309, 0x3573, 0x38e2, 0x2c51, 0x3b19, 0x3a0b, 0x3a49, 0x392a, 0x3ae7, 0x341f, 0x3701, 0x3577, 0x3a6b, 0x3864, 0x356f, 0x3a73, 0x3bdd, 0x39e1, 0x3397, 0x31c9, 0x3618, 0x3973, 0x3848, 0x2e85, 0x3adb, 0x30d0, 0x349e, 0x3121, 0x397e, 0x3ae2, 0x351f, 0x3137, 0x3903, 0x3b71, 0x3a3e, 0x3189, 0x3a1a, 0x39a5, 0x38b6, 0x35ee, 0x2c56, 0x3a09, 0x33a1, 0x294a, -0x382b, 0x39a6, 0x335a, 0x3687, 0x30cf, 0x38cc, 0x32d6, 0x2181, 0x3a52, 0x2cfb, 0x3991, 0x39bc, 0x3706, 0x3a02, 0x386e, 0x3b54, 0x3781, 0x381c, 0x38eb, 0x3b5d, 0x39c2, 0x38f2, 0x3b4c, 0x3bd7, 0x292a, 0x37c1, 0x3bfa, 0x29b6, 0x381e, 0x32ca, 0x3a70, 0x3a3a, 0x3ad7, 0x3042, 0x2ecb, 0x3bb6, 0x3703, 0x38fe, 0x3866, 0x3a69, 0x3bc7, 0x3b34, 0x2cfd, 0x2220, 0x3ba7, 0x3849, 0x39b3, 0x284b, 0x3a18, 0x39d9, 0x3aaf, 0x3809, 0x3be3, 0x3749, 0x2b7b, 0x382c, 0x356c, 0x37ac, 0x2a66, 0x3abb, 0x23d2, 0x3912, 0x3085, 0x2a21, 0x3b7a, 0x3616, 0x35f1, 0x3595, 0x3bd3, 0x356b, 0x3929, 0x3b99, 0x3a5f, 0x30f4, 0x3866, 0x3a8e, 0x2ca2, 0x3904, 0x3735, 0x373a, 0x3a5f, 0x3ba5, 0x2001, 0x39dc, 0x3a26, 0x3987, 0x3163, 0x3816, 0x2b55, 0x369c, 0x3aab, 0x3508, 0x3b86, 0x340d, 0x34d6, 0x3766, -0x3691, 0x3723, 0x2e9f, 0x38a2, 0x3a6a, 0x3645, 0x2e83, 0x2f93, 0x3947, 0x3744, 0x352b, 0x365c, 0x3a34, 0x3a63, 0x3bae, 0x3977, 0x281c, 0x377c, 0x3584, 0x3bf9, 0x2f97, 0x34c8, 0x3af7, 0x38e7, 0x3acf, 0x384d, 0x3bdd, 0x387d, 0x3a8f, 0x399e, 0x34e0, 0x3a84, 0x31b5, 0x291d, 0x394d, 0x3967, 0x3a1f, 0x378e, 0x3618, 0x386e, 0x345c, 0x3916, 0x353a, 0x3176, 0x396f, 0x2bc1, 0x3b5c, 0x3b8a, 0x2d3c, 0x354b, 0x2c50, 0x3539, 0x2c35, 0x320f, 0x3914, 0x2a96, 0x3bcf, 0x3a20, 0x3a5b, 0x372e, 0x35f5, 0x3992, 0x3b39, 0x39b8, 0x3aea, 0x3bb5, 0x3a65, 0x3884, 0x2b7a, 0x3b7d, 0x3455, 0x3039, 0x36b1, 0x31c8, 0x391b, 0x3942, 0x3b4b, 0x365c, 0x3a2c, 0x39b6, 0x3b02, 0x3901, 0x33b8, 0x3ad1, 0x2c3d, 0x3955, 0x3857, 0x33bb, 0x2ef2, 0x3446, 0x3917, 0x3ad2, 0x34be, 0x3939, 0x35ab, 0x370f, -0x32c0, 0x2fdc, 0x3b63, 0x2a85, 0x3a47, 0x34c2, 0x3651, 0x31c5, 0x2b72, 0x3b43, 0x3ba3, 0x2c85, 0x3958, 0x3bc2, 0x3818, 0x35d3, 0x3bec, 0x32c4, 0x301a, 0x351a, 0x3706, 0x348e, 0x2194, 0x3830, 0x324f, 0x3a6d, 0x3b87, 0x2a73, 0x3ba9, 0x3ad9, 0x39cd, 0x3af6, 0x1d41, 0x31e5, 0x3abb, 0x3184, 0x3911, 0x318e, 0x39a7, 0x3295, 0x39fd, 0x342a, 0x3822, 0x3be0, 0x3a97, 0x386d, 0x35cf, 0x39bd, 0x29b2, 0x320f, 0x2fe7, 0x2f1e, 0x2c19, 0x3054, 0x3907, 0x3a78, 0x2093, 0x3901, 0x2e53, 0x3981, 0x3713, 0x3b18, 0x3b76, 0x3bee, 0x39f2, 0x2c64, 0x3680, 0x3b35, 0x39db, 0x34a2, 0x3963, 0x3a3c, 0x3b52, 0x34a1, 0x3951, 0x3aad, 0x2870, 0x35fc, 0x3a47, 0x3955, 0x37e9, 0x36c2, 0x3a4c, 0x2bd8, 0x34ee, 0x3751, 0x3ae0, 0x3b51, 0x2861, 0x3391, 0x2fa9, 0x3837, 0x35cb, 0x304b, 0x3b0f, 0x358b, -0x2f61, 0x3096, 0x3a54, 0x3059, 0x39af, 0x3b95, 0x2c6d, 0x2faf, 0x38f6, 0x3427, 0x3af3, 0x343d, 0x3b5a, 0x341e, 0x32d7, 0x224f, 0x3af7, 0x3159, 0x346d, 0x3535, 0x34c2, 0x371f, 0x39d4, 0x380b, 0x310c, 0x206a, 0x3a65, 0x3976, 0x3af2, 0x39ab, 0x39df, 0x327f, 0x399c, 0x2d96, 0x38a4, 0x357c, 0x2f8f, 0x3046, 0x38ae, 0x3ac4, 0x38b8, 0x2c03, 0x34c0, 0x3171, 0x39c1, 0x3802, 0x366d, 0x341f, 0x3286, 0x36f0, 0x397f, 0x2176, 0x3aac, 0x3b7a, 0x3a3a, 0x3919, 0x3585, 0x2cc4, 0x39ed, 0x2833, 0x3b9e, 0x36e3, 0x3a31, 0x3a48, 0x38a8, 0x3401, 0x3b8e, 0x38a0, 0x3a07, 0x378d, 0x3512, 0x33a7, 0x3977, 0x3862, 0x357d, 0x3922, 0x371f, 0x318d, 0x3b57, 0x3667, 0x313b, 0x3bf3, 0x35e0, 0x3ae6, 0x3668, 0x2940, 0x2d29, 0x30f4, 0x3a66, 0x3b0d, 0x3b12, 0x35dd, 0x390b, 0x3990, 0x3011, 0x2b64, -0x334f, 0x3b09, 0x398f, 0x34e0, 0x28d3, 0x3385, 0x39e4, 0x357c, 0x3a45, 0x2df3, 0x2c61, 0x3569, 0x355e, 0x3b14, 0x3012, 0x1c32, 0x3a0e, 0x39d3, 0x20f2, 0x38f4, 0x398b, 0x3b9c, 0x374a, 0x3916, 0x3a5a, 0x3892, 0x3720, 0x38de, 0x3809, 0x3173, 0x38a4, 0x3698, 0x3815, 0x30a5, 0x3a18, 0x3534, 0x2e89, 0x3657, 0x2fc1, 0x39c5, 0x3b59, 0x337f, 0x383b, 0x3ba1, 0x2d4d, 0x2d7a, 0x3b8e, 0x39c9, 0x2b4a, 0x2d1b, 0x3af3, 0x375a, 0x360a, 0x3977, 0x398f, 0x3bb2, 0x358c, 0x369e, 0x390f, 0x35ed, 0x392c, 0x33d4, 0x3a6b, 0x3ade, 0x38b2, 0x3424, 0x2d4f, 0x3aeb, 0x3802, 0x33fa, 0x31c4, 0x35ef, 0x3b51, 0x2d27, 0x3912, 0x351a, 0x36ea, 0x3869, 0x2c73, 0x264b, 0x371d, 0x3a9e, 0x3159, 0x3a54, 0x3849, 0x394e, 0x3921, 0x3435, 0x38aa, 0x33ae, 0x3950, 0x3adf, 0x3b9b, 0x3a1d, 0x3706, 0x3b43, -0x3541, 0x3b8a, 0x3528, 0x39da, 0x36fa, 0x392e, 0x3195, 0x38e7, 0x392a, 0x366f, 0x308f, 0x29d5, 0x3be5, 0x345a, 0x35b5, 0x395b, 0x3a76, 0x3224, 0x1958, 0x39e1, 0x3b98, 0x3b80, 0x30a5, 0x3461, 0x3471, 0x365a, 0x3af0, 0x30ac, 0x38dd, 0x38ca, 0x2d58, 0x3bf4, 0x35bc, 0x3478, 0x235b, 0x3b92, 0x391f, 0x39e3, 0x3b11, 0x3afb, 0x2ea4, 0x2c61, 0x3756, 0x3821, 0x38d6, 0x3938, 0x3478, 0x3813, 0x3740, 0x31ea, 0x3b6d, 0x3be6, 0x2a58, 0x36c6, 0x31ee, 0x3642, 0x3b29, 0x37df, 0x337d, 0x336b, 0x3afa, 0x352b, 0x3aa6, 0x3898, 0x37cc, 0x33f2, 0x3b20, 0x3a61, 0x380e, 0x3b37, 0x38e6, 0x3b79, 0x365a, 0x387a, 0x24c7, 0x3301, 0x3b10, 0x3afb, 0x3819, 0x3aa3, 0x38cd, 0x384d, 0x3661, 0x383e, 0x3a34, 0x3b1a, 0x2d83, 0x36a8, 0x3b75, 0x3b0e, 0x363d, 0x3a67, 0x392e, 0x389c, 0x35a3, 0x2e39, -0x3ae7, 0x3849, 0x3bc7, 0x2a99, 0x31b2, 0x3535, 0x32dc, 0x2ab5, 0x3b34, 0x398c, 0x2b94, 0x36b5, 0x39fe, 0x376a, 0x39ee, 0x34f9, 0x31ce, 0x3968, 0x3809, 0x3261, 0x38f8, 0x3b62, 0x3807, 0x3992, 0x3b8e, 0x39e0, 0x3614, 0x3b23, 0x36d0, 0x38da, 0x3a8c, 0x3b55, 0x316c, 0x3b5d, 0x3531, 0x39a5, 0x24db, 0x293c, 0x3822, 0x38dc, 0x316f, 0x3750, 0x3601, 0x30bf, 0x3a74, 0x24af, 0x258b, 0x3bec, 0x293c, 0x3868, 0x360e, 0x310d, 0x36b3, 0x344c, 0x2cf0, 0x3476, 0x3a3a, 0x2e52, 0x3939, 0x3a69, 0x34df, 0x3a5b, 0x39c0, 0x347c, 0x371d, 0x391d, 0x3913, 0x306f, 0x3bfe, 0x380f, 0x3959, 0x39bd, 0x3619, 0x34e2, 0x36c6, 0x39bc, 0x3a2c, 0x3bc3, 0x3a29, 0x2c45, 0x3ac4, 0x3b46, 0x3a5c, 0x3be6, 0x2c2c, 0x3757, 0x39cb, 0x30f0, 0x38c8, 0x3154, 0x38b5, 0x3480, 0x3835, 0x3b8c, 0x311d, 0x3570, -0x38c4, 0x3400, 0x2d91, 0x3a09, 0x312a, 0x39e9, 0x3b4e, 0x320d, 0x372d, 0x33f0, 0x3b4c, 0x2253, 0x37dd, 0x39a8, 0x3a18, 0x3aeb, 0x3b0a, 0x35eb, 0x3a4c, 0x39ff, 0x3a97, 0x2b96, 0x37c0, 0x3169, 0x3727, 0x3859, 0x3874, 0x3a11, 0x356e, 0x39e4, 0x3849, 0x38ab, 0x292b, 0x38a8, 0x2e0b, 0x1e53, 0x3814, 0x367d, 0x3962, 0x39ff, 0x3a0e, 0x38a1, 0x3249, 0x2d7c, 0x31df, 0x3924, 0x3ae4, 0x3978, 0x38c9, 0x3808, 0x288b, 0x3004, 0x3983, 0x3427, 0x3aa2, 0x3bb9, 0x38bc, 0x380d, 0x3ba3, 0x3522, 0x3607, 0x38c1, 0x35d4, 0x3a19, 0x38d6, 0x3aef, 0x3682, 0x3b5c, 0x2de4, 0x35bb, 0x363b, 0x36df, 0x3803, 0x39e5, 0x2e9f, 0x3a36, 0x3a9c, 0x36dc, 0x3908, 0x3ada, 0x3978, 0x382c, 0x3ba7, 0x398e, 0x3800, 0x3ad7, 0x387e, 0x3429, 0x2d19, 0x3971, 0x37f1, 0x3af3, 0x3986, 0x3a07, 0x382f, 0x359b, -0x2f4d, 0x3a0f, 0x3890, 0x386e, 0x3229, 0x2fb8, 0x390a, 0x390e, 0x3b53, 0x3812, 0x2961, 0x3017, 0x39d5, 0x3958, 0x2d80, 0x2fad, 0x3730, 0x3853, 0x2882, 0x3bb9, 0x3939, 0x3bab, 0x2ffa, 0x28ff, 0x3a54, 0x38d5, 0x3456, 0x3bd4, 0x3a38, 0x30a8, 0x3a38, 0x32ab, 0x3788, 0x3a1d, 0x3bec, 0x325c, 0x3981, 0x3a5a, 0x2941, 0x3925, 0x353a, 0x360a, 0x38cf, 0x374d, 0x30a4, 0x2819, 0x3021, 0x3143, 0x3684, 0x3af2, 0x3a61, 0x3a31, 0x3625, 0x38a6, 0x3a5d, 0x3963, 0x3997, 0x391a, 0x3767, 0x3b35, 0x383c, 0x37bf, 0x3753, 0x357a, 0x3993, 0x382b, 0x3128, 0x3a93, 0x3b03, 0x38e2, 0x37e9, 0x3b05, 0x3789, 0x3be9, 0x3068, 0x36f4, 0x19c7, 0x3523, 0x28f3, 0x3746, 0x324c, 0x31cc, 0x377e, 0x35b4, 0x3127, 0x3a24, 0x351a, 0x3b16, 0x3801, 0x398d, 0x39a8, 0x3b6f, 0x3933, 0x3535, 0x30e3, 0x3b25, -0x353f, 0x306c, 0x3bd1, 0x380e, 0x3b05, 0x3859, 0x2e39, 0x37b4, 0x38fb, 0x392e, 0x32c0, 0x3adb, 0x29c4, 0x3b0e, 0x28a6, 0x341f, 0x371a, 0x39bc, 0x30a1, 0x3790, 0x3439, 0x3102, 0x3bcc, 0x2f3d, 0x39ad, 0x3b38, 0x390e, 0x391f, 0x39a7, 0x3099, 0x3a5b, 0x3894, 0x3674, 0x3948, 0x3895, 0x3458, 0x3bc6, 0x3a36, 0x381e, 0x3069, 0x39fc, 0x3a3f, 0x39f5, 0x3a9d, 0x3169, 0x39a9, 0x3b16, 0x362d, 0x3951, 0x3881, 0x3ac4, 0x2ecf, 0x3b79, 0x3abe, 0x3841, 0x2c1a, 0x3b7a, 0x3083, 0x3ad1, 0x3a90, 0x3974, 0x2e92, 0x3b5f, 0x3003, 0x39c1, 0x2ff2, 0x39dc, 0x3bbf, 0x3972, 0x3997, 0x3667, 0x3409, 0x3239, 0x3aaf, 0x358e, 0x33b8, 0x397a, 0x3b54, 0x399d, 0x351d, 0x35c8, 0x3362, 0x2964, 0x3102, 0x3bc4, 0x22b3, 0x3b29, 0x3925, 0x37f0, 0x23fc, 0x3bc8, 0x39f0, 0x30cd, 0x3569, 0x3a27, 0x3b0b, -0x392e, 0x38e0, 0x3436, 0x3aa6, 0x395a, 0x397e, 0x38f6, 0x3b45, 0x3050, 0x34b0, 0x3b1d, 0x3932, 0x3a3a, 0x3915, 0x3816, 0x3b23, 0x3342, 0x2c1e, 0x3bfa, 0x3978, 0x304c, 0x2cd7, 0x3a11, 0x37d8, 0x3ad2, 0x37cb, 0x3bf8, 0x37d3, 0x3589, 0x37aa, 0x399a, 0x3661, 0x3965, 0x328a, 0x3969, 0x3100, 0x2dc4, 0x34a0, 0x30a4, 0x3950, 0x2f40, 0x32ab, 0x3904, 0x398d, 0x3293, 0x34a7, 0x33a4, 0x38b6, 0x3834, 0x3add, 0x3a08, 0x38cf, 0x3a13, 0x3a6f, 0x382e, 0x3682, 0x3b4b, 0x323e, 0x38e0, 0x38dc, 0x3854, 0x3b9d, 0x3b13, 0x3940, 0x38d4, 0x30ac, 0x3061, 0x3906, 0x3b2d, 0x38f9, 0x3ab0, 0x3a5a, 0x34fd, 0x3b15, 0x3472, 0x3985, 0x3634, 0x3940, 0x35da, 0x38ba, 0x395b, 0x3488, 0x39ca, 0x3a14, 0x2b22, 0x3829, 0x3479, 0x30a6, 0x3910, 0x34e2, 0x3506, 0x3663, 0x23b2, 0x3812, 0x3416, 0x3455, -0x3bc0, 0x3487, 0x3853, 0x3738, 0x3a19, 0x38a3, 0x339a, 0x3906, 0x3a98, 0x3a4c, 0x32bb, 0x3460, 0x2031, 0x36a4, 0x387a, 0x3141, 0x2f39, 0x2efd, 0x394e, 0x2e35, 0x3528, 0x3c00, 0x3b44, 0x342b, 0x3b4d, 0x3bdb, 0x3185, 0x39cb, 0x358a, 0x39ce, 0x2060, 0x3baa, 0x3bc4, 0x30eb, 0x3aed, 0x3734, 0x3a1f, 0x15f9, 0x3a5c, 0x372e, 0x33f9, 0x3b71, 0x3715, 0x37e3, 0x3384, 0x38ff, 0x36e6, 0x28a1, 0x2d9e, 0x280b, 0x3853, 0x3b42, 0x2eda, 0x3a63, 0x2328, 0x3830, 0x35a6, 0x39e9, 0x33df, 0x3be1, 0x220a, 0x39b4, 0x3ade, 0x2e17, 0x3831, 0x2cfe, 0x3752, 0x38fb, 0x39ce, 0x350b, 0x3600, 0x2ffd, 0x363a, 0x358b, 0x2582, 0x3510, 0x36db, 0x2e28, 0x38e0, 0x3a49, 0x277a, 0x301e, 0x39ca, 0x3861, 0x31a7, 0x3550, 0x3862, 0x3476, 0x3a8d, 0x38c2, 0x394b, 0x3156, 0x39ea, 0x3bdf, 0x3880, 0x389a, -0x3a75, 0x35a7, 0x37b1, 0x3b17, 0x24de, 0x32cd, 0x2c9b, 0x3968, 0x3a36, 0x2e6f, 0x3549, 0x3971, 0x34cb, 0x34ac, 0x3bf7, 0x34b8, 0x3841, 0x3527, 0x3a22, 0x3955, 0x3454, 0x380d, 0x38cd, 0x39b3, 0x39c4, 0x3777, 0x3737, 0x2ead, 0x39ef, 0x3420, 0x3a95, 0x35f0, 0x347f, 0x2c76, 0x2cfd, 0x33de, 0x3363, 0x3bf0, 0x3afc, 0x3ab1, 0x3b88, 0x3bcb, 0x23ba, 0x3353, 0x2169, 0x33a7, 0x3484, 0x307b, 0x20b7, 0x384d, 0x302a, 0x3448, 0x39b1, 0x39ab, 0x3be0, 0x3430, 0x3a05, 0x3715, 0x35fe, 0x1e5c, 0x3b84, 0x3b3a, 0x3b0a, 0x320e, 0x2e29, 0x2f00, 0x37c3, 0x3865, 0x37ae, 0x3959, 0x3ba0, 0x3b56, 0x3b4a, 0x3934, 0x35bf, 0x3aa7, 0x3814, 0x320c, 0x3b4a, 0x2499, 0x34bd, 0x3a25, 0x39b8, 0x318b, 0x3b42, 0x3a28, 0x3912, 0x3be5, 0x37af, 0x2cb7, 0x3799, 0x37eb, 0x3981, 0x3033, 0x2f89, 0x3471, -0x3a59, 0x3ab8, 0x3a8d, 0x3bd7, 0x3ba2, 0x39d4, 0x3a8b, 0x278d, 0x32e2, 0x2ced, 0x397f, 0x39f2, 0x3b27, 0x3798, 0x35bf, 0x3597, 0x374e, 0x3ac6, 0x3728, 0x3673, 0x252b, 0x30c8, 0x3b7b, 0x39fb, 0x38db, 0x3ac7, 0x3728, 0x3420, 0x3749, 0x3749, 0x37f3, 0x3977, 0x3181, 0x2d5c, 0x37f8, 0x3966, 0x3b9f, 0x3901, 0x369f, 0x36fa, 0x2468, 0x38f7, 0x3900, 0x37f1, 0x39d6, 0x342d, 0x35d0, 0x359f, 0x3b0b, 0x3a28, 0x34b4, 0x3979, 0x3346, 0x3b9a, 0x391f, 0x3823, 0x350e, 0x3b34, 0x3202, 0x3a2b, 0x313e, 0x355b, 0x37fb, 0x3ac1, 0x36ac, 0x2452, 0x2711, 0x360d, 0x34b7, 0x3af8, 0x2b80, 0x3621, 0x3950, 0x3824, 0x3578, 0x3900, 0x2ac0, 0x38c6, 0x39e1, 0x3565, 0x348f, 0x32d5, 0x388c, 0x38c0, 0x30e3, 0x3738, 0x3bbb, 0x3b46, 0x3b6e, 0x3bd1, 0x3b3d, 0x2d5b, 0x3acd, 0x3a67, 0x35f0, 0x3956, -0x39dd, 0x3be7, 0x3468, 0x2fb1, 0x3b73, 0x348b, 0x37a8, 0x2c37, 0x3b32, 0x375a, 0x3a14, 0x353d, 0x371f, 0x3b1b, 0x3b62, 0x3aaa, 0x39e8, 0x32d1, 0x3b3e, 0x3b74, 0x337c, 0x383e, 0x2d50, 0x3bc2, 0x33f5, 0x330f, 0x3b93, 0x3552, 0x3842, 0x37b5, 0x3918, 0x3654, 0x38a6, 0x2863, 0x3b0c, 0x38e8, 0x3b18, 0x28d3, 0x3b95, 0x3ad8, 0x38d1, 0x39ac, 0x31fb, 0x396b, 0x3b8f, 0x3818, 0x2d54, 0x3bd6, 0x340f, 0x3a89, 0x3192, 0x2cff, 0x3a00, 0x3680, 0x3843, 0x353a, 0x3591, 0x320f, 0x380e, 0x3709, 0xca6, 0x3783, 0x2f2b, 0x2ca1, 0x3885, 0x3391, 0x2c3b, 0x3933, 0x3812, 0x363e, 0x39b5, 0x39d8, 0x3a4b, 0x3951, 0x38b6, 0x399a, 0x318f, 0x2c20, 0x3925, 0x37cc, 0x3795, 0x38b8, 0x3184, 0x3961, 0x376a, 0x302b, 0x319e, 0x3b7d, 0x29a8, 0x3ae9, 0x313d, 0x3b7c, 0x3b7a, 0x3729, 0x3455, 0x2da3, -0x355c, 0x351e, 0x39d5, 0x3bf8, 0x3b11, 0x338f, 0x3990, 0x34cd, 0x3378, 0x2cbc, 0x3948, 0x39ab, 0x3be7, 0x3b59, 0x38e2, 0x2d9f, 0x378b, 0x385b, 0x31e4, 0x35ed, 0x3b0e, 0x3915, 0x3984, 0x3a44, 0x3869, 0x39f7, 0x3239, 0x3a8b, 0x36fb, 0x3081, 0x3ac3, 0x3b0e, 0x3104, 0x2078, 0x3962, 0x29bc, 0x3bb8, 0x3985, 0x3a56, 0x3648, 0x3a7d, 0x3ad3, 0x34d9, 0x3bb5, 0x38d9, 0x39b6, 0x3a2f, 0x3767, 0x3a56, 0x3620, 0x394d, 0x2d7c, 0x322a, 0x3899, 0x3a53, 0x3353, 0x383e, 0x316e, 0x348d, 0x3af5, 0x3a16, 0x3804, 0x3418, 0x3b1a, 0x3be6, 0x3166, 0x2911, 0x3656, 0x3acd, 0x392e, 0x3112, 0x3968, 0x37b7, 0x3af6, 0x38dd, 0x36b4, 0x3444, 0x3be7, 0x3991, 0x375f, 0x38da, 0x315a, 0x3684, 0x21a4, 0x38f4, 0x3860, 0x3935, 0x3b0f, 0x3b40, 0x37b6, 0x35b3, 0x3476, 0x35e9, 0x38ad, 0x3b82, 0x2964, -0x3880, 0x3844, 0x3615, 0x39d0, 0x3310, 0x306b, 0x329d, 0x338a, 0x2f84, 0x3a43, 0x300b, 0x3a47, 0x3821, 0x3b60, 0x387a, 0x3301, 0x3046, 0x351a, 0x3711, 0x38ec, 0x33a1, 0x376e, 0x39da, 0x3aae, 0x3877, 0x3960, 0x38ef, 0x3412, 0x3bbd, 0x3b24, 0x39e5, 0x355d, 0x3ab6, 0x2de8, 0x3ab5, 0x34a8, 0x3856, 0x32b4, 0x3673, 0x3a8b, 0x2e18, 0x3035, 0x3823, 0x38e7, 0x398e, 0x3743, 0x36e4, 0x381c, 0x3893, 0x3ae2, 0x331f, 0x3bdb, 0x34ae, 0x3a85, 0x277f, 0x342f, 0x38da, 0x3b62, 0x393a, 0x26bc, 0x3563, 0x39ce, 0x38e1, 0x395a, 0x3698, 0x3907, 0x30ed, 0x3536, 0x3925, 0x3bc8, 0x30ee, 0x38c2, 0x351d, 0x306e, 0x3952, 0x327f, 0x3a90, 0x3875, 0x337f, 0x3ab1, 0x342c, 0x39e7, 0x3be5, 0x33a6, 0x39af, 0x36ab, 0x2bca, 0x3984, 0x3a01, 0x319e, 0x3904, 0x3b78, 0x3785, 0x3a75, 0x3ace, 0x39c2, -0x3a6e, 0x39c8, 0x3b65, 0x342b, 0x3491, 0x320a, 0x3a81, 0x1f58, 0x3af6, 0x3881, 0x35d6, 0x389c, 0x3a23, 0x336f, 0x36ad, 0x39ab, 0x3062, 0x37fc, 0x317b, 0x3870, 0x3add, 0x3a7f, 0x37fe, 0x340b, 0x3211, 0x3944, 0x3714, 0x3806, 0x3bce, 0x3441, 0x3781, 0x397e, 0x391c, 0x3182, 0x31ac, 0x3456, 0x38f3, 0x3b15, 0x3b76, 0x3bf1, 0x3971, 0x3601, 0x318d, 0x34f2, 0x3a78, 0x35f5, 0x35c7, 0x354f, 0x3570, 0x36c5, 0x39fc, 0x35cd, 0x380e, 0x3606, 0x39c0, 0x352c, 0x3112, 0x3b6b, 0x355c, 0x3977, 0x328f, 0x2d34, 0x3abb, 0x3942, 0x1cba, 0x367a, 0x3aa6, 0x341f, 0x383f, 0x3a9a, 0x3960, 0x358f, 0x2dce, 0x21ac, 0x3bef, 0x3bca, 0x3bdb, 0x3967, 0x38aa, 0x39c1, 0x3b5b, 0x3185, 0x352c, 0x388a, 0x3893, 0x3a70, 0x34e4, 0x38e2, 0x31ba, 0x34d8, 0x32b5, 0x3aed, 0x3802, 0x2f06, 0x36d9, 0x3493, -0x3a09, 0x2994, 0x2e77, 0x3ae8, 0x3bc6, 0x3ace, 0x3926, 0x35b6, 0x326a, 0x3079, 0x3769, 0x28d1, 0x3b41, 0x357b, 0x3aed, 0x34cd, 0x3361, 0x2b6a, 0x3bc8, 0x2115, 0x3b73, 0x371f, 0x3b10, 0x2d39, 0x3092, 0x3264, 0x39df, 0x34c1, 0x2a04, 0x3a86, 0x306c, 0x33bf, 0x37dd, 0x3b17, 0x2f12, 0x3676, 0x3991, 0x3a7a, 0x3bb9, 0x3a80, 0x3441, 0x3592, 0x358d, 0x39dc, 0x31d3, 0x3887, 0x30f5, 0x3855, 0x3be6, 0x3b49, 0x3a7f, 0x3a6c, 0x2de5, 0x269d, 0x37e8, 0x3b49, 0x3026, 0x318b, 0x35e1, 0x39ba, 0x3a34, 0x3a43, 0x35a4, 0x34dd, 0x3918, 0x3a6a, 0x3780, 0x38d0, 0x3b78, 0x3b3e, 0x23b9, 0x37d9, 0x2b95, 0x3619, 0x3377, 0x2df7, 0x3b1e, 0x36de, 0x368b, 0x3bc4, 0x22d2, 0x3730, 0x30cf, 0x379d, 0x3824, 0x37fe, 0x39ba, 0x28c6, 0x36d3, 0x3587, 0x3aaa, 0x3155, 0x3a2d, 0x26ff, 0x2ffb, 0x3a19, -0x31b1, 0x302e, 0x2eba, 0x31f0, 0x3ba8, 0x3510, 0x243a, 0x30a4, 0x3638, 0x3b45, 0x2954, 0x3530, 0x39bc, 0x3944, 0x3951, 0x3026, 0x368f, 0x38e4, 0x36ce, 0x3b31, 0x38e5, 0x3471, 0x3af0, 0x3acf, 0x3842, 0x3be1, 0x319c, 0x2f2d, 0x3490, 0x3bec, 0x3b40, 0x3837, 0x3b38, 0x37fb, 0x3887, 0x383e, 0x382e, 0x31bd, 0x3ae1, 0x3a96, 0x3814, 0x37e0, 0x279d, 0x3363, 0x2ba9, 0x312b, 0x3a46, 0x3617, 0x3a0d, 0x2817, 0x3a37, 0x3981, 0x2d54, 0x3437, 0x3959, 0x3151, 0x3bc2, 0x39c9, 0x3aa3, 0x2d25, 0x3976, 0x3a2b, 0x3acd, 0x3a43, 0x3a9e, 0x39a1, 0x3914, 0x37ac, 0x3702, 0x382c, 0x38d9, 0x318c, 0x210a, 0x2c14, 0x34e2, 0x3a22, 0x2861, 0x3bc6, 0x1265, 0x3b43, 0x332e, 0x3992, 0x3330, 0x3a50, 0x3b38, 0x3aad, 0x33ce, 0x39a9, 0x33be, 0x387d, 0x3ade, 0x3a94, 0x3a56, 0x3ae4, 0x38a9, 0x1ace, -0x3551, 0x3ad8, 0x37c2, 0x3b00, 0x3b8d, 0x36d9, 0x3baa, 0x38bb, 0x34df, 0x3710, 0x3599, 0x3b7b, 0x2fea, 0x385e, 0x2dd8, 0x2e4e, 0x394d, 0x208a, 0x350b, 0x3876, 0x2df7, 0x34f4, 0x3b4c, 0x386d, 0x3260, 0x3b9d, 0x3343, 0x383f, 0x3bf4, 0x333b, 0x3bde, 0x3bd3, 0x392f, 0x3a2d, 0x3bdd, 0x341e, 0x3b13, 0x2b1c, 0x3b34, 0x2bb7, 0x2a93, 0x39c2, 0x3634, 0x358c, 0x3ba9, 0x3231, 0x3a0d, 0x3bc7, 0x3813, 0x2814, 0x3a1b, 0x3b03, 0x2e0e, 0x3616, 0x383a, 0x3578, 0x3a1f, 0x3685, 0x303c, 0x34a7, 0x3bad, 0x3548, 0x2380, 0x364f, 0x36ac, 0x28f8, 0x3a74, 0x34e2, 0x392e, 0x3409, 0x30e5, 0x340f, 0x3581, 0x36a3, 0x3366, 0x35f1, 0x30c4, 0x374f, 0x3921, 0x3aec, 0x3881, 0x2b48, 0x38e7, 0x31ce, 0x3626, 0x3b4b, 0x3b9f, 0x34cd, 0x313e, 0x379e, 0x39a6, 0x38cf, 0x38e3, 0x3031, 0x398f, 0x3bbc, -0x3a15, 0x3737, 0x361a, 0x3b25, 0x3992, 0x350a, 0x3698, 0x37de, 0x3a78, 0x37f5, 0x36d2, 0x3a12, 0x348e, 0x3923, 0x352f, 0x3b28, 0x3989, 0x39d8, 0x3b7b, 0x37cf, 0x3bfd, 0x3143, 0x31f5, 0x36a2, 0x3ae8, 0x3b3d, 0x3aab, 0x320e, 0x2ecc, 0x368f, 0x29c4, 0x36d0, 0x3a8c, 0x35c1, 0x2daa, 0x3128, 0x3b96, 0x388c, 0x3786, 0x349a, 0x390b, 0x2843, 0x381f, 0x2d05, 0x31ee, 0x3976, 0x3722, 0x368a, 0x3899, 0x3b64, 0x3b84, 0x3ae4, 0x3135, 0x3838, 0x387c, 0x2636, 0x2cd7, 0x3bcd, 0x39a6, 0x3ac6, 0x34c3, 0x364d, 0x384b, 0x2c55, 0x34b6, 0x201f, 0x38de, 0x2fc0, 0x389c, 0x381b, 0x36a8, 0x372f, 0x2b5c, 0x3491, 0x30d7, 0x38d2, 0x3893, 0x33a0, 0x33c8, 0x3405, 0x3490, 0x387d, 0x3411, 0x3907, 0x3bc0, 0x3aa9, 0x3023, 0x395c, 0x3b10, 0x3b8e, 0x3791, 0x3b17, 0x3980, 0x3b13, 0x336a, 0x354d, -0x39d9, 0x35f5, 0x3034, 0x300f, 0x38e5, 0x395c, 0x3394, 0x392f, 0x390a, 0x2567, 0x3151, 0x3861, 0x3a84, 0x3759, 0x382b, 0x3185, 0x359b, 0x3a6b, 0x3927, 0x3b6c, 0x39ed, 0x2cc3, 0x34bc, 0x389f, 0x3617, 0x335f, 0x3a9e, 0x35c0, 0x378c, 0x38e7, 0x2d21, 0x2ec0, 0x3874, 0x3af1, 0x36c6, 0x3b7e, 0x364f, 0x386e, 0x34f3, 0x2761, 0x386e, 0x3ac9, 0x308e, 0x3ad6, 0x3194, 0x35f7, 0x31d0, 0x3a36, 0x34d6, 0x36b0, 0x34bf, 0x38cb, 0x2f2c, 0x3945, 0x325c, 0x39d0, 0x1fce, 0x3a04, 0x3118, 0x3a0c, 0x3a56, 0x3794, 0x3744, 0x3ad3, 0x36c3, 0x2700, 0x392c, 0x34fa, 0x3b4d, 0x2649, 0x393c, 0x3967, 0x37f7, 0x369e, 0x3ac1, 0x39b3, 0x39a1, 0x36a4, 0x3645, 0x39cc, 0x3af9, 0x31e3, 0x237a, 0x35d3, 0x35fa, 0x3b53, 0x3872, 0x3bcc, 0x3a9c, 0x3ba9, 0x34e9, 0x34ec, 0x3b31, 0x3b09, 0x31d7, 0x3a45, -0x33ab, 0x38b0, 0x384c, 0x3a48, 0x3340, 0x390f, 0x340e, 0x3937, 0x2ceb, 0x3b0d, 0x3b15, 0x3979, 0x3884, 0x376b, 0x3b79, 0x39d2, 0x36fb, 0x3442, 0x3994, 0x35c1, 0x3b6f, 0x3918, 0x3bea, 0x37f1, 0x3b25, 0x3bd5, 0x3ab4, 0x3604, 0x3593, 0x39fc, 0x3893, 0x37f7, 0x3a56, 0x3118, 0x3444, 0x36ac, 0x315a, 0x2eaa, 0x3a55, 0x3bea, 0x372f, 0x3b79, 0x38fa, 0x32a9, 0x2a8d, 0x326b, 0x39dd, 0x2c6e, 0x3a63, 0x39a8, 0x34dd, 0x2fa8, 0x3afa, 0x3ab1, 0x3854, 0x2e58, 0x3a7b, 0x39e6, 0x3489, 0x3631, 0x3826, 0x3ad2, 0x384d, 0x3565, 0x3a21, 0x3beb, 0x334d, 0x3603, 0x2de5, 0x31fa, 0x3111, 0x3455, 0x390c, 0x38aa, 0x3822, 0x2e75, 0x36cb, 0x3bb0, 0x38d7, 0x386a, 0x336f, 0x3150, 0x395a, 0x3219, 0x39f2, 0x3675, 0x2b46, 0x39d6, 0x2e2f, 0x3752, 0x3b23, 0x3670, 0x3b64, 0x39f4, 0x3bec, 0x3848, -0x389e, 0x3214, 0x3618, 0x32ca, 0x333b, 0x2fe6, 0x2cf6, 0x36f3, 0x3748, 0x380b, 0x3b5f, 0x3b4e, 0x2dce, 0x2474, 0x3a17, 0x320e, 0x38ac, 0x3b44, 0x3595, 0x3bd7, 0x3896, 0x32ea, 0x37d0, 0x34a8, 0x31f2, 0x3a51, 0x3b6c, 0x3753, 0x3abd, 0x3b26, 0x24a0, 0x32fb, 0x3a3a, 0x3bf9, 0x2fc5, 0x390d, 0x3a42, 0x331d, 0x3b2e, 0x370e, 0x32d3, 0x3b26, 0x3b7f, 0x2d64, 0x39ca, 0x3405, 0x3962, 0x36c0, 0x2ffe, 0x3b76, 0x3811, 0x3287, 0x34d7, 0x3beb, 0x3a37, 0x3756, 0x390e, 0x398b, 0x3160, 0x3bf9, 0x3a09, 0x38ee, 0x382a, 0x366e, 0x3836, 0x3b95, 0x3b30, 0x3bd4, 0x1c94, 0x33c6, 0x3391, 0x3b2c, 0x3b07, 0x37b6, 0x3499, 0x3942, 0x2dc7, 0x357d, 0x380f, 0x32e5, 0x3628, 0x386a, 0x3b66, 0x395b, 0x3611, 0x3bef, 0x3935, 0x34c3, 0x3354, 0x39ab, 0x3b9e, 0x34f5, 0x358b, 0x326f, 0x3952, 0x359f, -0x39c7, 0x399f, 0x2d59, 0x379e, 0x33fd, 0x3b7a, 0x327e, 0x392d, 0x3b6c, 0x34b5, 0x3a50, 0x365b, 0x392f, 0x3b31, 0x3a20, 0x3131, 0x3a43, 0x292e, 0x3a0c, 0x3bb1, 0x3bf6, 0x29e8, 0x32d4, 0x3b07, 0x3189, 0x32d5, 0x3689, 0x3a3e, 0x3857, 0x281c, 0x2b7b, 0x3545, 0x35a9, 0x3aa0, 0x2cf4, 0x3356, 0x3b2f, 0x3845, 0x3a9d, 0x38fa, 0x285c, 0x3aef, 0x387a, 0x2121, 0x376d, 0x30bb, 0x38b8, 0x3ad4, 0x3bf3, 0x3219, 0x398e, 0x2dc8, 0x31ae, 0x38b2, 0x34f9, 0x3846, 0x3bb0, 0x3bc9, 0x2fd2, 0x3403, 0x34c1, 0x3043, 0x3823, 0x38f1, 0x384a, 0x396a, 0x37c2, 0x3839, 0x3441, 0x3821, 0x2774, 0x380f, 0x39e4, 0x3832, 0x375b, 0x3a10, 0x3894, 0x2f6b, 0x3586, 0x34fe, 0x3bad, 0x3856, 0x35c6, 0x38ad, 0x3835, 0x368d, 0x39a1, 0x3736, 0x349e, 0x32c2, 0x2df5, 0x34c5, 0x3ba0, 0x349b, 0x35af, 0x35aa, -0x3a17, 0x3696, 0x3169, 0x3433, 0x3800, 0x38f3, 0x37f8, 0x376a, 0x2ec7, 0x3bad, 0x373f, 0x281c, 0x3968, 0x3403, 0x2c9e, 0x3b1f, 0x3003, 0x35cc, 0x3810, 0x367c, 0x3a68, 0x26e9, 0x34e2, 0x3902, 0x2edb, 0x3478, 0x2a6a, 0x3a45, 0x3867, 0x38c5, 0x3a61, 0x388c, 0x3738, 0x34be, 0x35e6, 0x36b3, 0x325c, 0x35c6, 0x384e, 0x358d, 0x3894, 0x31c8, 0x3820, 0x363b, 0x380e, 0x385f, 0x38ac, 0x36a3, 0x31da, 0x3b46, 0x3715, 0x37ec, 0x386b, 0x35c7, 0x3100, 0x3a7a, 0x3504, 0x3810, 0x3a22, 0x36a9, 0x3995, 0x3b0c, 0x37f0, 0x2d4e, 0x36c4, 0x347e, 0x39dc, 0x3a2a, 0x3951, 0x3bca, 0x3bf5, 0x3bb3, 0x3b46, 0x3afa, 0x311c, 0x3929, 0x3291, 0x372f, 0x306d, 0x2843, 0x391a, 0x30c4, 0x3a5b, 0x3be7, 0x3924, 0x38ae, 0x3734, 0x32bd, 0x3b39, 0x39f6, 0x3aaa, 0x327a, 0x3045, 0x383c, 0x3303, 0x352c, -0x3bcd, 0x3baa, 0x3116, 0x3ad3, 0x39bc, 0x3aee, 0x36b3, 0x3a06, 0x3408, 0x3971, 0x3545, 0x38aa, 0x3a21, 0x3743, 0x367e, 0x3ac3, 0x3a54, 0x2cad, 0x3820, 0x39eb, 0x398a, 0x34a9, 0x3b95, 0x3a34, 0x32bb, 0x3bda, 0x3704, 0x3aa2, 0x39a3, 0x3953, 0x38ed, 0x3821, 0x39eb, 0x36b4, 0x38b5, 0x382e, 0x3753, 0x3203, 0x3796, 0x2e26, 0x303a, 0x3895, 0x39a3, 0x3a1f, 0x3ad6, 0x302f, 0x376d, 0x347f, 0x32fc, 0x382d, 0x39fa, 0x2d39, 0x32b2, 0x2fef, 0x3044, 0x3497, 0x39a9, 0x3994, 0x346d, 0x38a8, 0x3487, 0x3431, 0x39a7, 0x375a, 0x3935, 0x2eaf, 0x2ff3, 0x3467, 0x35cf, 0x3738, 0x2df4, 0x3b14, 0x3978, 0x36a8, 0x3406, 0x3aad, 0x3169, 0x355a, 0x3a49, 0x2e40, 0x34a4, 0x34ac, 0x308a, 0x3546, 0x3b34, 0x3514, 0x3aaf, 0x3707, 0x3999, 0x3a99, 0x2cc7, 0x326d, 0x3a95, 0x3bb1, 0x315b, 0x3989, -0x39d7, 0x3684, 0x39f7, 0x3963, 0x31e0, 0x3a96, 0x3492, 0x3b63, 0x37fd, 0x3b38, 0x37ba, 0x34fd, 0x365b, 0x3496, 0x3a38, 0x3906, 0x3bed, 0x39d9, 0x389b, 0x34eb, 0x3332, 0x2b11, 0x31c8, 0x3889, 0x3810, 0x30b7, 0x28b6, 0x29d1, 0x3420, 0x3222, 0x387e, 0x3a70, 0x2cf8, 0x3b07, 0x304f, 0x3998, 0x360b, 0x3b8b, 0x3434, 0x38ee, 0x304f, 0x39e7, 0x3685, 0x3981, 0x3a46, 0x39af, 0x387a, 0x36e7, 0x3a5e, 0x33ef, 0x3a38, 0x32d1, 0x39f0, 0x345c, 0x36af, 0x3416, 0x3be9, 0x23fa, 0x3b3a, 0x3b59, 0x3732, 0x3578, 0x3bd8, 0x3a83, 0x387d, 0x3ad8, 0x394e, 0x3431, 0x3748, 0x3809, 0x3ac3, 0x3a1a, 0x38e0, 0x37ca, 0x2e29, 0x386d, 0x2e50, 0x360f, 0x31e4, 0x3715, 0x3986, 0x35a7, 0x3bd1, 0x3ae4, 0x3432, 0x3750, 0x38e8, 0x3926, 0x3b12, 0x3460, 0x358f, 0x3aab, 0x3906, 0x355a, 0x27fc, 0x3a2f, -0x386f, 0x3b47, 0x309b, 0x3098, 0x3b47, 0x35a2, 0x3677, 0x39a2, 0x35a4, 0x389e, 0x3b5f, 0x37e9, 0x32d3, 0x30cb, 0x2cc7, 0x2f1d, 0x392f, 0x3bfb, 0x392b, 0x3909, 0x3a3a, 0x38f8, 0x2e08, 0x3962, 0x358f, 0x37ea, 0x34db, 0x3bc8, 0x38ca, 0x3ba2, 0x3a0b, 0x39ba, 0x369c, 0x2cce, 0x3988, 0x3a39, 0x3be5, 0x2a39, 0x35c1, 0x3643, 0x37c9, 0x35bf, 0x352f, 0x3a7f, 0x350f, 0x330f, 0x3a34, 0x36aa, 0x38da, 0x2fc0, 0x387b, 0x37b7, 0x34a8, 0x396b, 0x39f3, 0x37f4, 0x3649, 0x3959, 0x3024, 0x373f, 0x38fd, 0x38c3, 0x39d3, 0x340b, 0x38cb, 0x30c4, 0x3877, 0x3af4, 0x28ef, 0x3a81, 0x2ff9, 0x3992, 0x2902, 0x3b16, 0x3590, 0x3a95, 0x3708, 0x3a63, 0x1ba7, 0x347d, 0x3a3e, 0x3bd4, 0x3946, 0x2da1, 0x38df, 0x396d, 0x39c9, 0x3810, 0x39de, 0x3b69, 0x30ad, 0x3748, 0x3678, 0x3a92, 0x39b8, 0x30c9, -0x3990, 0x2cd8, 0x303c, 0x2c03, 0x35c0, 0x3b10, 0x39b6, 0x35f6, 0x3bb8, 0x3733, 0x320f, 0x3a45, 0x3457, 0x392e, 0x3462, 0x36f3, 0x32d4, 0x3025, 0x24ba, 0x3826, 0x37a7, 0x3714, 0x38d7, 0x3630, 0x3a29, 0x3582, 0x3af6, 0x2639, 0x3b0e, 0x3872, 0x39c2, 0x2e2e, 0x396d, 0x3b99, 0x34b3, 0x3551, 0x3162, 0x3a7d, 0x35f0, 0x351b, 0x3661, 0x3ad0, 0x39cf, 0x25f1, 0x3987, 0x3296, 0x365f, 0x3902, 0x38fd, 0x3745, 0x3990, 0x3972, 0x3317, 0x3a87, 0x3985, 0x392d, 0x36a3, 0x34f1, 0x396f, 0x3a7a, 0x3465, 0x3362, 0x3b0b, 0x208d, 0x37e0, 0x3ade, 0x31dc, 0x3854, 0x34cc, 0x3874, 0x311e, 0x38ec, 0x35e2, 0x2de6, 0x3219, 0x38b0, 0x3be3, 0x3381, 0x3b39, 0x38e6, 0x3b20, 0x3bea, 0x38e2, 0x38d6, 0x39e6, 0x2db4, 0x3884, 0x1cb8, 0x176a, 0x2eba, 0x3bb1, 0x37fe, 0x371a, 0x3b1c, 0x3402, 0x3462, -0x3632, 0x2a7c, 0x3897, 0x32c6, 0x34d7, 0x3ad2, 0x3b38, 0x3aa2, 0x2c56, 0x392e, 0x376a, 0x3356, 0x36b3, 0x3b8d, 0x2fc0, 0x3b16, 0x38dd, 0x2f21, 0x3852, 0x3aeb, 0x3aad, 0x379e, 0x32c9, 0x324b, 0x3b1f, 0x382a, 0x3929, 0x2cbe, 0x3867, 0x3651, 0x389b, 0x2fd3, 0x3809, 0x3ade, 0x38ba, 0x3a92, 0x398d, 0x38c2, 0x3061, 0x37f4, 0x3ab9, 0x3a17, 0x2d4b, 0x3255, 0x3656, 0x3884, 0x3b75, 0x3b1a, 0x3a56, 0x353d, 0x2fab, 0x3a0d, 0x3180, 0x3bd5, 0x3ac0, 0x3298, 0x3a5f, 0x3009, 0x39d4, 0x3b69, 0x39ad, 0x3b16, 0x36b3, 0x2c5b, 0x3ab1, 0x39d1, 0x30bc, 0x36ba, 0x2f6d, 0x3817, 0x3b4c, 0x3b31, 0x39d1, 0x348b, 0x3b82, 0x3032, 0x2586, 0x3bbf, 0x2dea, 0x2f5f, 0x383a, 0x3bb8, 0x3a4c, 0x3421, 0x33f7, 0x3ab6, 0x398e, 0x3335, 0x3a1c, 0x37dd, 0x2fc9, 0x3824, 0x3463, 0x3bed, 0x3b6c, 0x313b, -0x3b2d, 0x3426, 0x335b, 0x3952, 0x347e, 0x3ba0, 0x3bbb, 0x39ec, 0x3b16, 0x3561, 0x3a65, 0x3196, 0x3bd4, 0x30b6, 0x3891, 0x3749, 0x3a0b, 0x3a40, 0x3485, 0x3b5d, 0x3b0d, 0x33b5, 0x3812, 0x37be, 0x3a0a, 0x38c9, 0x38d2, 0x398f, 0x3235, 0x3a91, 0x2b81, 0x26f6, 0x2d3a, 0x1cd9, 0x2ea1, 0x3970, 0x3a5b, 0x30e8, 0x2a5f, 0x390b, 0x38f4, 0x396c, 0x3b50, 0x3b24, 0x35dd, 0x396c, 0x33c7, 0x2c40, 0x397b, 0x390b, 0x348f, 0x38df, 0x38fb, 0x3be2, 0x3122, 0x3bb5, 0x2c56, 0x322f, 0x3836, 0x1ee5, 0x3b35, 0x359e, 0x3966, 0x39b3, 0x3163, 0x2902, 0x38b4, 0x3ace, 0x34ed, 0x3add, 0x3428, 0x369b, 0x3116, 0x3a77, 0x34f6, 0x39c9, 0x3263, 0x359d, 0x352c, 0x3b0b, 0x38c9, 0x31dc, 0x373d, 0x2ad4, 0x3452, 0x3156, 0x360d, 0x2d93, 0x38d0, 0x3978, 0x3901, 0x36f4, 0x3b26, 0x2e42, 0x3983, 0x3bce, -0x3990, 0x37f3, 0x2645, 0x3938, 0x3868, 0x3a22, 0x3a6a, 0x3b78, 0x3b4e, 0x371f, 0x39fb, 0x2e11, 0x38b8, 0x36d2, 0x3468, 0x34f2, 0x39bf, 0x3b8e, 0x3710, 0x348b, 0x38d6, 0x3aae, 0x35f0, 0x3ae0, 0x3ba8, 0x3857, 0x39c1, 0x3a03, 0x35b3, 0x3a2c, 0x3a7b, 0x350c, 0x30f8, 0x3830, 0x25aa, 0x24b3, 0x380b, 0x3879, 0x3929, 0x354d, 0x38b4, 0x2fea, 0x34bc, 0x3ba6, 0x3832, 0x3a2a, 0x387b, 0x343f, 0x3114, 0x2edb, 0x36ec, 0x3a24, 0x32ea, 0x2f80, 0x3675, 0x2df4, 0x39ce, 0x37ea, 0x3091, 0x3766, 0x38e3, 0x37d4, 0x39bc, 0x3425, 0x3336, 0x38aa, 0x34b9, 0x3bce, 0x37dc, 0x3af9, 0x39a9, 0x3b3e, 0x386a, 0x392b, 0x3942, 0x338a, 0x36f9, 0x36f3, 0x3b56, 0x33e2, 0x3bd1, 0x38aa, 0x3337, 0x3a61, 0x3ac5, 0x377c, 0x3819, 0x2ff3, 0x3870, 0x3b2c, 0x3925, 0x38cd, 0x3b0e, 0x3719, 0x3a2a, 0x326d, -0x32b3, 0x35f8, 0x3b6e, 0x3bde, 0x3baf, 0x3027, 0x3433, 0x3819, 0x2eab, 0x3b4f, 0x34a1, 0x34f8, 0x393a, 0x3a09, 0x38f7, 0x3489, 0x37ae, 0x3bfa, 0x2dc1, 0x3468, 0x26f5, 0x343f, 0x3b4e, 0x39b2, 0x339a, 0x3441, 0x3b51, 0x38dc, 0x3914, 0x2699, 0x3339, 0x2f3a, 0x38f1, 0x3a57, 0x2e7e, 0x36a4, 0x2cf6, 0x31e6, 0x3802, 0x3a75, 0x39f5, 0x38f5, 0x3327, 0x38d5, 0x36b4, 0x3b6c, 0x2279, 0x3b08, 0x39e9, 0x380f, 0x3b8c, 0x3432, 0x39c9, 0x343d, 0x38ad, 0x3be5, 0x3602, 0x3bc4, 0x3952, 0x350a, 0xc4c, 0x267d, 0x35e1, 0x3bdb, 0x3937, 0x348d, 0x3768, 0x3a78, 0x3717, 0x3342, 0x34f0, 0x36db, 0x2788, 0x3b52, 0x2acf, 0x3bef, 0x3899, 0x3279, 0x38e4, 0x3bc5, 0x38ed, 0x3369, 0x3652, 0x34b4, 0x378a, 0x3bf9, 0x3a9d, 0x3841, 0x3a01, 0x3065, 0x35a4, 0x3b47, 0x376f, 0x35e0, 0x34f0, 0x396c, -0x3a1e, 0x354b, 0x390b, 0x3165, 0x3435, 0x329e, 0x386e, 0x36ba, 0x2046, 0x385b, 0x3493, 0x3537, 0x2e29, 0x3bda, 0x3b0c, 0x35e0, 0x34b8, 0x25c1, 0x3698, 0x2ef1, 0x3516, 0x330e, 0x387a, 0x37eb, 0x3011, 0x2658, 0x350a, 0x393c, 0x2c1c, 0x2dbc, 0x25f3, 0x376f, 0x3a1c, 0x3112, 0x2c6d, 0x2e2a, 0x3a3d, 0x3ba0, 0x391a, 0x36ac, 0x3876, 0x32b9, 0x3ad9, 0x36f8, 0x39aa, 0x3095, 0x348d, 0x39a6, 0x35be, 0x3747, 0x31e9, 0x33b9, 0x31c0, 0x3926, 0x2d3f, 0x3b32, 0x3412, 0x3b52, 0x29eb, 0x333e, 0x3af4, 0x3974, 0x36ab, 0x3ba6, 0x3aed, 0x3807, 0x2b53, 0x33b0, 0x35d7, 0x37aa, 0x3838, 0x3478, 0x2f9d, 0x3b1b, 0x3b31, 0x30fb, 0x30fa, 0x38d7, 0x329f, 0x372b, 0x31b1, 0x38a9, 0x3932, 0x315d, 0x2d85, 0x374b, 0x3aa3, 0x3621, 0x2da1, 0x373a, 0x386d, 0x38ba, 0x3a4e, 0x1eea, 0x3887, 0x3438 +uint16_t x_inp [768] = { +0x2153, 0x3bb5, 0x3896, 0x365f, 0x2483, 0x3518, 0x2dd1, 0x3bca, 0x397b, 0x29b1, 0x3705, 0x36c8, 0x398b, 0x3661, 0x2f05, 0x365a, 0x3bf9, 0x34df, 0x363b, 0x38d9, 0x39c6, 0x3abb, 0x3952, 0x38f2, 0x392d, 0x3b3e, 0x2afb, 0x3a9d, 0x353b, 0x3b73, 0x3a01, 0x3679, +0x3934, 0x397d, 0x2904, 0x3822, 0x3462, 0x3b44, 0x39e9, 0x28be, 0x331e, 0x3a1d, 0x39e5, 0x34da, 0x3a19, 0x3906, 0x1d35, 0x3871, 0x31e7, 0x3b29, 0x325d, 0x3797, 0x2b2f, 0x38b4, 0x232f, 0x38aa, 0x3aca, 0x316f, 0x3811, 0x3950, 0x32ea, 0x3bc7, 0x382c, 0x38a2, +0x29ce, 0x3afa, 0x3a39, 0x2ccc, 0x39fd, 0x3b3d, 0x384a, 0x3a35, 0x3802, 0x366a, 0x37ec, 0x3598, 0x3bf8, 0x3a85, 0x3a1b, 0x386e, 0x3b4c, 0x39de, 0x38c2, 0x2f93, 0x3b4c, 0x39c4, 0x3b9e, 0x3844, 0x346d, 0x3bff, 0x32ce, 0x296d, 0x3130, 0x3b3d, 0x3b44, 0x369d, +0x3b13, 0x31ed, 0x330a, 0x3831, 0x34e7, 0x37b3, 0x331a, 0x3918, 0x32d3, 0x3995, 0x3991, 0x3919, 0x3a26, 0x385b, 0x2b76, 0x3a3b, 0x37f2, 0x26a7, 0x3225, 0x3b64, 0x28f0, 0x3456, 0x3822, 0x341e, 0x381a, 0x38d8, 0x2c11, 0x33be, 0x33ac, 0x353f, 0x3476, 0x3abc, +0x36ec, 0x3a1d, 0x39d3, 0x3821, 0x36ac, 0x3bce, 0x3ad2, 0x3616, 0x36a1, 0x2cb3, 0x38d2, 0x314f, 0x385c, 0x3b63, 0x3bb6, 0x2951, 0x372d, 0x2c42, 0x3823, 0x3883, 0x3872, 0x31ee, 0x36c5, 0x399a, 0x31b0, 0x3887, 0x3884, 0x3865, 0x3896, 0x36c3, 0x32e3, 0x346c, +0x3935, 0x3b50, 0x2b6d, 0x38cd, 0x388f, 0x3389, 0x395d, 0x31cd, 0x2efd, 0x3154, 0x2f35, 0x3444, 0x3293, 0x3b6b, 0x1bec, 0x3b69, 0x3bf3, 0x3611, 0x3508, 0x3742, 0x3a50, 0x3ab7, 0x3457, 0x38d3, 0x3344, 0x38e8, 0x33c0, 0x3668, 0x3bee, 0x3b21, 0x3727, 0x3121, +0x316c, 0x3288, 0x2d50, 0x2e74, 0x35d5, 0x37e2, 0x303d, 0x36af, 0x341f, 0x3436, 0x2df7, 0x399d, 0x30f4, 0x3aaf, 0x34e4, 0x2c2a, 0x3116, 0x34d3, 0x36ac, 0x35e3, 0x3760, 0x36e1, 0x3ad2, 0x3547, 0x38f4, 0x369c, 0x3ba9, 0x34f0, 0x3a39, 0x3b19, 0x36e6, 0x395d, +0x3be8, 0x3293, 0x3bfc, 0x3435, 0x2eb3, 0x3360, 0x3919, 0x3bed, 0x396a, 0x37fc, 0x3242, 0x384b, 0x38cb, 0x3b2c, 0x3b28, 0x28cf, 0x3828, 0x3855, 0x3ba9, 0x2fa7, 0x340b, 0x32f1, 0x3ada, 0x36fa, 0x31f5, 0x3436, 0x29d0, 0x33e6, 0x3232, 0x3bec, 0x3904, 0x2797, +0x3b81, 0x3bac, 0x38d2, 0x343d, 0x31af, 0x3b1e, 0x33fc, 0x3864, 0x3624, 0x3905, 0x2945, 0x3b52, 0x2d08, 0x3a17, 0x3b84, 0x3804, 0x3a24, 0x38a3, 0x3562, 0x3ae6, 0x3bba, 0x3a45, 0x3679, 0x31fa, 0x3994, 0x2c3d, 0x383f, 0x399d, 0x34f7, 0x360e, 0x35f3, 0x38f0, +0x38d4, 0x399a, 0x3a48, 0x3987, 0x3b54, 0x382c, 0x3210, 0x35ef, 0x36ca, 0x31b4, 0x3625, 0x371f, 0x37bd, 0x3680, 0x3a3a, 0x3ac0, 0x3bbf, 0x3bf5, 0x39f2, 0x29c2, 0x363e, 0x3a4e, 0x3596, 0x3b1b, 0x3459, 0x3669, 0x3aa1, 0x39c3, 0x3376, 0x390d, 0x2456, 0x39b5, +0x3a66, 0x3ad8, 0x3b51, 0x36aa, 0x32be, 0x3ac8, 0x392b, 0x3740, 0x3a48, 0x38f5, 0x3b2d, 0x3a5f, 0x2ff3, 0x366f, 0x39d3, 0x35e5, 0x3822, 0x38db, 0x3b8a, 0x34be, 0x2d33, 0x36dd, 0x3578, 0x3bdf, 0x2c7e, 0x39cf, 0x32ff, 0x35c9, 0x3970, 0x3bcb, 0x351e, 0x3956, +0x2c42, 0x3308, 0x377a, 0x361c, 0x39a0, 0x36c9, 0x2dcb, 0x3bf2, 0x3b5f, 0x33ee, 0x24c1, 0x2ce9, 0x3927, 0x305d, 0x3702, 0x3119, 0x35f9, 0x3855, 0x3374, 0x349b, 0x3bcf, 0x2dea, 0x34f0, 0x363f, 0x37da, 0x3a74, 0x35fc, 0x35fa, 0x316b, 0x3804, 0x37a7, 0x3986, +0x3073, 0x3aed, 0x31c7, 0x3844, 0x34a4, 0x387d, 0x3a20, 0x3037, 0x3a00, 0x3b70, 0x377f, 0x3686, 0x3b7e, 0x38b3, 0x32e3, 0x3323, 0x391e, 0x3228, 0x3930, 0x3997, 0x3a5e, 0x398b, 0x3512, 0x35b0, 0x365c, 0x325d, 0x3b61, 0x38b8, 0x39a4, 0x3423, 0x3bd7, 0x38af, +0x2d3d, 0x382d, 0x38ac, 0x26ca, 0x395e, 0x21a8, 0x3520, 0x386f, 0x3b95, 0x32c0, 0x3b84, 0x3a51, 0x3b4b, 0x31d2, 0x3747, 0x3b96, 0x3b40, 0x3535, 0x38d1, 0x3899, 0x3b00, 0x3827, 0x3ae3, 0x38c8, 0x3a07, 0x338d, 0x2e96, 0x3a46, 0x394a, 0x39de, 0x2951, 0x3a02, +0x3838, 0x2d45, 0x28c0, 0x3958, 0x3070, 0x2aa2, 0x3510, 0x38ce, 0x271c, 0x3440, 0x3954, 0x30bc, 0x3b35, 0x2f1d, 0x3afb, 0x2dae, 0x356f, 0x2e13, 0x3981, 0x326d, 0x3a28, 0x3a36, 0x3a95, 0x38cb, 0x38db, 0x3150, 0x2c9e, 0x34c5, 0x3adb, 0x3bdf, 0x38f2, 0x3994, +0x36f8, 0x31c0, 0x3a4f, 0x3825, 0x394b, 0x3a8b, 0x38ac, 0x3167, 0x2e2d, 0x3a93, 0x34f3, 0x37bd, 0x3b63, 0x2f2f, 0x3ae0, 0x3ad8, 0x34a8, 0x2e1c, 0x3890, 0x3705, 0x3b69, 0x3bc1, 0x28af, 0x3b36, 0x348b, 0x3111, 0x3a8d, 0x389c, 0x3916, 0x36dc, 0x3bae, 0x3874, +0x3593, 0x3638, 0x3018, 0x3a56, 0x38a3, 0x2ad4, 0x3a25, 0x38d7, 0x3864, 0x31c1, 0x28d1, 0x39c8, 0x37d6, 0x2c7f, 0x3ba5, 0x34b8, 0x3bef, 0x3b83, 0x3ab5, 0x3062, 0x38bc, 0x399c, 0x2ce4, 0x2f2c, 0x39bf, 0x2ed1, 0x385f, 0x37e0, 0x35ee, 0x397d, 0x3b0c, 0x3049, +0x39d5, 0x322e, 0x3936, 0x3747, 0x2e15, 0x3b41, 0x3874, 0x3bd0, 0x2c04, 0x3800, 0x375b, 0x3b2d, 0x38d8, 0x3a51, 0x3406, 0x38da, 0x38ba, 0x3497, 0x382e, 0x35fc, 0x39d4, 0x3775, 0x3b1e, 0x3813, 0x3649, 0x31af, 0x37bb, 0x334a, 0x3a6e, 0x3284, 0x26e0, 0x2e01, +0x2ebb, 0x344b, 0x3821, 0x381a, 0x385a, 0x2534, 0x3635, 0x2a92, 0x3b8c, 0x31f0, 0x3947, 0x3ac7, 0x3743, 0x3924, 0x39e4, 0x358f, 0x2b62, 0x392c, 0x3955, 0x3341, 0x3676, 0x38ac, 0x3957, 0x335b, 0x2ca2, 0x39ff, 0x37cb, 0x341f, 0x3ac9, 0x3b6c, 0x2f14, 0x34c3, +0x3018, 0x3169, 0x355b, 0x3624, 0x31ed, 0x379e, 0x3268, 0x309b, 0x35db, 0x3872, 0x3bdb, 0x34c7, 0x3408, 0x3359, 0x3920, 0x331f, 0x3866, 0x3af0, 0x2a1a, 0x39e0, 0x3b14, 0x34fa, 0x2d18, 0x3963, 0x35e8, 0x2539, 0x38f5, 0x37b3, 0x378f, 0x31b5, 0x3a6c, 0x3685, +0x3a06, 0x318a, 0x2934, 0x33c1, 0x3be8, 0x375b, 0x3860, 0x3543, 0x3702, 0x3951, 0x3677, 0x37ff, 0x2e27, 0x2e3a, 0x340f, 0x3817, 0x2f04, 0x357e, 0x3a1d, 0x2dd6, 0x252a, 0x3945, 0x162a, 0x3b19, 0x3a53, 0x35d2, 0x3a5d, 0x3474, 0x38e9, 0x374b, 0x387c, 0x1f1a, +0x38ac, 0x3291, 0x3393, 0x3b53, 0x3169, 0x3bca, 0x2f1a, 0x3551, 0x38a3, 0x28e3, 0x369d, 0x34a1, 0x38a8, 0x34c3, 0x3841, 0x390d, 0x3b13, 0x3282, 0x3a29, 0x3a78, 0x2df3, 0x3a37, 0x35f4, 0x35a6, 0x38e8, 0x3328, 0x3beb, 0x390b, 0x32dc, 0x34dc, 0x396d, 0x3a78, +0x39ba, 0x3a06, 0x2cdd, 0x3bc3, 0x2d43, 0x2992, 0x3663, 0x3a68, 0x2c3e, 0x394e, 0x2c9f, 0x380e, 0x37f5, 0x3557, 0x2873, 0x390f, 0x39e7, 0x3939, 0x3669, 0x385c, 0x3a68, 0x32c4, 0x2b04, 0x2d6d, 0x39d3, 0x3895, 0x331d, 0x3b59, 0x3463, 0x2b6a, 0x31de, 0x3296, +0x3aae, 0x3bcd, 0x345a, 0x3897, 0x374b, 0x3bd4, 0x38a2, 0x357f, 0x3402, 0x3a0c, 0x3507, 0x3865, 0x3a54, 0x3878, 0x3859, 0x383e, 0x32b5, 0x34ea, 0x328d, 0x38b6, 0x3464, 0x2f5b, 0x35ff, 0x3817, 0x2f24, 0x3533, 0x3b21, 0x37ba, 0x3837, 0x2e34, 0x3bad, 0x34bc }; \ No newline at end of file diff --git a/hwpe/redmule/inc/y_2D.h b/hwpe/redmule/inc/y_2D.h index 9ea877d..9484a10 100644 --- a/hwpe/redmule/inc/y_2D.h +++ b/hwpe/redmule/inc/y_2D.h @@ -1,99 +1,27 @@ /* Header file generated by RedMulE Golden Model */ -uint16_t y_inp_2D [96][96] = { -0x39fc, 0x3a87, 0x3a35, 0x2bf4, 0x34f8, 0x2c8c, 0x3822, 0x38a2, 0x3bf8, 0x3b3a, 0x37d8, 0x3041, 0x28b2, 0x38d2, 0x1822, 0x3044, 0x38dc, 0x308d, 0x3a14, 0x3952, 0x38be, 0x32ef, 0x351e, 0x38ab, 0x2eb4, 0x3689, 0x33ca, 0x3a1f, 0x3bbc, 0x37ed, 0x38d5, 0x35c8, 0x341b, 0x3b74, 0x3627, 0x3a34, 0x3220, 0x3b85, 0x3a43, 0x2eca, 0x3550, 0x3958, 0x3813, 0x2cca, 0x3869, 0x391e, 0x3260, 0x2e42, 0x3493, 0x39ed, 0x3b7b, 0x3699, 0x3863, 0x3a7e, 0x3ab4, 0x3bcb, 0x3920, 0x3502, 0x28df, 0x38c5, 0x35e5, 0x282d, 0x3645, 0x3a29, 0x2fbb, 0x338d, 0x3ba0, 0x320d, 0x2830, 0x3bb4, 0x390a, 0x367f, 0x3335, 0x3b1a, 0x38c0, 0x3781, 0x3773, 0x39b0, 0x3b74, 0x38ba, 0x3383, 0x3550, 0x357a, 0x3ba7, 0x30e6, 0x39f4, 0x3b11, 0x282b, 0x334f, 0x3644, 0x367c, 0x3ac3, 0x38f3, 0x39f9, 0x3b1d, 0x35cf, -0x3433, 0x2eea, 0x38c1, 0x362a, 0x35e6, 0x3070, 0x1c1d, 0x308e, 0x381d, 0x39e5, 0x3a51, 0x2fb2, 0x3723, 0x3b58, 0x293e, 0x337a, 0x3a39, 0x349c, 0x3766, 0x3a73, 0x39bd, 0x3a0c, 0x3843, 0x21b9, 0x39a5, 0x2fd6, 0x2cf4, 0x3112, 0x3a1a, 0x3bb6, 0x3a83, 0x398e, 0x3b92, 0x2a3f, 0x37f1, 0x3664, 0x35f0, 0x39be, 0x3279, 0x39e0, 0x3241, 0x3bc7, 0x3bae, 0x36bd, 0x1bf5, 0x3806, 0x37d3, 0x247c, 0x3789, 0x36b9, 0x3b84, 0x3093, 0x3a5d, 0x2863, 0x2fe0, 0x2c4b, 0x3bd5, 0x38b6, 0x3b0e, 0x3ad1, 0x3ba2, 0x3914, 0x3947, 0x3984, 0x397a, 0x35ed, 0x3891, 0x3b7f, 0x3b32, 0x3857, 0x3717, 0x2b73, 0x38c1, 0x3bc6, 0x3330, 0x35c8, 0x34ff, 0x3924, 0x387b, 0x3a27, 0x3b92, 0x22d9, 0x29be, 0x3b39, 0x361c, 0x34e6, 0x2b7e, 0x34d8, 0x38c2, 0x3a4c, 0x3a2f, 0x381f, 0x38f6, 0x3a9a, 0x394f, 0x382d, -0x3939, 0x397a, 0x3926, 0x3a59, 0x34e3, 0x3077, 0x3190, 0x3a6b, 0x2c3f, 0x3a51, 0x35d9, 0x3866, 0x2f73, 0x38f2, 0x3766, 0x3aa1, 0x3b55, 0x2f8f, 0x3993, 0x354a, 0x3650, 0x340d, 0x2f01, 0x3731, 0x394d, 0x3b15, 0x3806, 0x39b9, 0x3aa7, 0x387c, 0x3beb, 0x2e2f, 0x38e8, 0x353a, 0x36ba, 0x3b2e, 0x3b5c, 0x2d4b, 0x357e, 0x3bd8, 0x3be0, 0x38b0, 0x2a3b, 0x2ff0, 0x3268, 0x38f3, 0x31fc, 0x318c, 0x35b5, 0x3980, 0x3a4d, 0x33cc, 0x365b, 0x397e, 0x3809, 0x39af, 0x3537, 0x2ba6, 0x30f1, 0x38b2, 0x39fe, 0x39f3, 0x373b, 0x3bff, 0x36ce, 0x3b5d, 0x3b5a, 0x2f1d, 0x3be3, 0x395d, 0x34d0, 0x36a3, 0x3937, 0x33b3, 0x3b91, 0x3ab5, 0x3215, 0x396b, 0x3bed, 0x302d, 0x3862, 0x3b05, 0x2ba1, 0x2fa6, 0x35d2, 0x3806, 0x3b84, 0x3233, 0x2664, 0x3a63, 0x3bdb, 0x375f, 0x3b0b, 0x34ff, 0x3020, 0x375d, -0x3931, 0x2d6c, 0x31c3, 0x3a24, 0x34b8, 0x3865, 0x366e, 0x3aaf, 0x3530, 0x20d6, 0x35ac, 0x33e8, 0x3b37, 0x32d8, 0x333c, 0x3349, 0x30cd, 0x392f, 0x2c30, 0x3b0a, 0x390a, 0x3703, 0x3b5f, 0x39ac, 0x31ba, 0x32a4, 0x3b8f, 0x3a5e, 0x3ad1, 0x38bf, 0x38bb, 0x369f, 0x3b75, 0x32c6, 0x31d2, 0x280f, 0x3891, 0x3b09, 0x3531, 0x3899, 0x3a55, 0x37fe, 0x3b5e, 0x364a, 0x3ada, 0x386f, 0x38bb, 0x3a7b, 0x313f, 0x3592, 0x2ca6, 0x2eeb, 0x38b1, 0x35df, 0x326f, 0x3bf5, 0x3848, 0x2fbd, 0x3268, 0x3922, 0x376b, 0x3a5e, 0x3826, 0x3207, 0x33f3, 0x3302, 0x3a80, 0x3bf1, 0x35dd, 0x2a83, 0x3460, 0x3296, 0x3ada, 0x3484, 0x3989, 0x3680, 0x3969, 0x3ab4, 0x2fb1, 0x3b50, 0x38bd, 0x3ad1, 0x34ac, 0x3718, 0x2ed7, 0x3b53, 0x3114, 0x248a, 0x3960, 0x3ab6, 0x39ef, 0x21dd, 0x33b9, 0x3a05, 0x2fbe, 0x37a2, -0x3a70, 0x37f8, 0x37f1, 0x3591, 0x382f, 0x3276, 0x33ed, 0x3935, 0x275e, 0x353c, 0x3b24, 0x3b42, 0x38db, 0x33ca, 0x3bd7, 0x3694, 0x365f, 0x3997, 0x39b7, 0x3bcb, 0x3b6a, 0x269a, 0x3956, 0x3b4e, 0x3ba1, 0x3bee, 0x2aaf, 0x3530, 0x3ad7, 0x3bce, 0x3bd2, 0x397c, 0x3aee, 0x3b62, 0x3bfc, 0x3ba1, 0x3b44, 0x38e6, 0x3747, 0x3855, 0x3baf, 0x3b16, 0x3b35, 0x34e7, 0x3858, 0x3bdb, 0x39c3, 0x3898, 0x381e, 0x3899, 0x36be, 0x363c, 0x3a70, 0x1518, 0x334e, 0x38cd, 0x3a74, 0x3420, 0x35a7, 0x3a00, 0x3282, 0x32db, 0x3656, 0x2dd8, 0x2e5b, 0x399e, 0x3bd7, 0x3366, 0x34cd, 0x257c, 0x3a2e, 0x375b, 0x3971, 0x3472, 0x269f, 0x39ac, 0x39e6, 0x396b, 0x335b, 0x38cc, 0x3b3d, 0x38ee, 0x3895, 0x2e3b, 0x3ba0, 0x3bb7, 0x3401, 0x35df, 0x3b06, 0x3adf, 0x37af, 0x3948, 0x33a6, 0x3aa7, 0x36b2, 0x373c, -0x3872, 0x3674, 0x34d5, 0x3918, 0x37cd, 0x369a, 0x3a26, 0x3bc3, 0x380c, 0x35ba, 0x36eb, 0x3b54, 0x37a9, 0x3405, 0x397d, 0x351f, 0x2f10, 0x34fd, 0x333c, 0x36c9, 0x3584, 0x3998, 0x3b22, 0x3aff, 0x3931, 0x31b7, 0x39ae, 0x31e7, 0x3847, 0x392a, 0x3bff, 0x3a24, 0x15c5, 0x3905, 0x36e8, 0x3356, 0x2f46, 0x38a9, 0x3bd8, 0x3bfc, 0x2fbf, 0x3a7d, 0x3989, 0x3a6c, 0x3a8b, 0x32c9, 0x37da, 0x3b16, 0x394a, 0x3aa5, 0x2c30, 0x3968, 0x3119, 0x3af2, 0x2f8f, 0x34ef, 0x3ab3, 0x2445, 0x38d9, 0x3856, 0x3592, 0x389d, 0x2932, 0x31f8, 0x3775, 0x3947, 0x3893, 0x3b50, 0x3465, 0x355c, 0x3547, 0x3925, 0x32c2, 0x3a0e, 0x39f9, 0x39f0, 0x2a1c, 0x34a0, 0x3b51, 0x3bb8, 0x38af, 0x36c7, 0x361f, 0x397b, 0x3a7f, 0x39e2, 0x3a7e, 0x3a67, 0x304c, 0x34d8, 0x3921, 0x3287, 0x2d90, 0x3b36, 0x30cc, 0x1958, -0x36ea, 0x3419, 0x39f3, 0x3bf1, 0x3271, 0x3763, 0x3643, 0x337f, 0x3161, 0x3944, 0x33b1, 0x30c7, 0x3687, 0x342b, 0x2402, 0x394a, 0x3480, 0x3052, 0x2a6e, 0x376a, 0x3236, 0x381e, 0x3596, 0x3939, 0x373e, 0x34b4, 0x201a, 0x3245, 0x3169, 0x26c8, 0x3a1c, 0x389b, 0x3351, 0x3bac, 0x3261, 0x37ab, 0x39bb, 0x350f, 0x3b5d, 0x3b86, 0x34e8, 0x3104, 0x3969, 0x31f4, 0x399a, 0x370e, 0x34a3, 0x3064, 0x3519, 0x3542, 0x3a72, 0x3be0, 0x3ba2, 0x3a5b, 0x3455, 0x3ae5, 0x38ef, 0x358a, 0x3908, 0x38eb, 0x3572, 0x3b41, 0x39cb, 0x39f4, 0x3bb6, 0x2f51, 0x3345, 0x3475, 0x3b20, 0x3b7c, 0x385d, 0x36a4, 0x35b8, 0x3368, 0x3867, 0x37cb, 0x3b8c, 0x32e9, 0x366b, 0x3a3f, 0x3147, 0x3534, 0x25bc, 0x3828, 0x38f8, 0x27cd, 0x35c8, 0x2a95, 0x39cf, 0x328b, 0x3a6d, 0x34f4, 0x38ae, 0x2b5f, 0x3845, 0x3b30, -0x3719, 0x37fc, 0x3adc, 0x2273, 0x385f, 0x39d1, 0x2f2c, 0x2df2, 0x36a6, 0x3523, 0x234d, 0x3a3f, 0x2817, 0x355d, 0x399f, 0x3924, 0x3bd4, 0x35ca, 0x3319, 0x301a, 0x353f, 0x34d2, 0x3bfd, 0x373e, 0x3a2a, 0x320b, 0x2e90, 0x38e8, 0x2f48, 0x3873, 0x3b61, 0x39d5, 0x3af7, 0x3885, 0x3be2, 0x3963, 0x36cc, 0x331b, 0x31ad, 0x3668, 0x39a2, 0x36f9, 0x3b52, 0x3985, 0x395d, 0x2e15, 0x30c2, 0x37ed, 0x32d1, 0x3a04, 0x3bef, 0x2fd7, 0x301d, 0x3a39, 0x3999, 0x342d, 0x34e3, 0x3bde, 0x3825, 0x3ac0, 0x3495, 0x3505, 0x3820, 0x30df, 0x37fd, 0x386c, 0x37c5, 0x3bab, 0x3b3d, 0x37f1, 0x3b42, 0x3825, 0x3bb4, 0x38a0, 0x383b, 0x3a92, 0x3a5c, 0x24c7, 0x38c8, 0x3492, 0x30af, 0x3b63, 0x35bb, 0x3046, 0x3aec, 0x357f, 0x3bb6, 0x3886, 0x37c6, 0x3315, 0x39cd, 0x32ae, 0x3b6d, 0x2d8c, 0x3607, 0x3420, -0x385d, 0x3782, 0x38ad, 0x34af, 0x3aad, 0x3bf3, 0x34bc, 0x3bfc, 0x33f0, 0x34ab, 0x37b6, 0x308d, 0x3ac8, 0x3935, 0x3b3a, 0x3517, 0x2579, 0x3b26, 0x36f6, 0x381f, 0x3b3c, 0x3a9f, 0x3667, 0x1c3e, 0x3b29, 0x2344, 0x3010, 0x36f7, 0x3470, 0x3834, 0x33bc, 0x306f, 0x392b, 0x37bc, 0x357a, 0x38a5, 0x3a09, 0x38f3, 0x34c6, 0x304b, 0x3bb7, 0x36c3, 0x3435, 0x3984, 0x357c, 0x345b, 0x39b5, 0x3286, 0x3a6b, 0x2e0e, 0x3613, 0x33e9, 0x379f, 0x3a14, 0x3a3a, 0x2e0e, 0x38f6, 0x3589, 0x3807, 0x3a49, 0x3818, 0x39dd, 0x31b0, 0x3a67, 0x39de, 0x175e, 0x394b, 0x34de, 0x394a, 0x3853, 0x371b, 0x3b5d, 0x39bb, 0x3029, 0x3091, 0x37b8, 0x33f0, 0x3517, 0x391e, 0x35ce, 0x3bc7, 0x2c6e, 0x2d9c, 0x36c1, 0x3143, 0x35c5, 0x39c6, 0x3a05, 0x3b1f, 0x3941, 0x3adc, 0x393a, 0x3993, 0x3bac, 0x2781, 0x3912, -0x36b8, 0x3a59, 0x397c, 0x25c3, 0x3b19, 0x3304, 0x399d, 0x3bde, 0x2e7c, 0x341e, 0x3172, 0x3bfd, 0x3b45, 0x3186, 0x37fe, 0x3b92, 0x390e, 0x2d85, 0x34fa, 0x2c58, 0x3ac5, 0x398f, 0x386a, 0x3ae3, 0x2f53, 0x3b4d, 0x3602, 0x3042, 0x353d, 0x3811, 0x3928, 0x2414, 0x3bb8, 0x3841, 0x3990, 0x388a, 0x25d4, 0x3787, 0x39a9, 0x3963, 0x3554, 0x3b41, 0x3921, 0x2938, 0x39cc, 0x34d1, 0x38ec, 0x31ac, 0x3aed, 0x36ca, 0x3a41, 0x3754, 0x3ab4, 0x39ac, 0x387a, 0x3851, 0x3097, 0x3885, 0x2ef9, 0x2530, 0x3a9d, 0x39ec, 0x38ca, 0x3ad4, 0x39ea, 0x37ce, 0x3ac0, 0x2879, 0x3bda, 0x3af5, 0x2eaa, 0x35e9, 0x3a11, 0x3a48, 0x2782, 0x3a7f, 0x3662, 0x3a99, 0x2194, 0x3628, 0x3668, 0x36e5, 0x38ab, 0x3833, 0x30b4, 0x3237, 0x39df, 0x3a63, 0x370d, 0x2c4a, 0x3ae0, 0x3b29, 0x3bba, 0x3b64, 0x260a, 0x38f8, -0x2679, 0x3412, 0x395a, 0x3054, 0x3ac9, 0x3bb3, 0x31a7, 0x38f7, 0x1d33, 0x3aeb, 0x38f5, 0x3649, 0x3aab, 0x3894, 0x353b, 0x3bbf, 0x37e2, 0x3b2d, 0x3a05, 0x3b7f, 0x318f, 0x2487, 0x3a3b, 0x36e8, 0x35d0, 0x2e1b, 0x3a03, 0x3bb9, 0x2d71, 0x32e5, 0x31c0, 0x2a74, 0x3898, 0x3ae0, 0x381b, 0x308d, 0x3afa, 0x2e44, 0x3aa2, 0x39cb, 0x3a19, 0x321f, 0x3975, 0x3a94, 0x20b7, 0x3843, 0x3942, 0x38c2, 0x3587, 0x3ba0, 0x3b5b, 0x3981, 0x3ba0, 0x3988, 0x2fc0, 0x34d2, 0x30ad, 0x3102, 0x394d, 0x38ef, 0x353c, 0x39d3, 0x3b57, 0x36c4, 0x3619, 0x3a4d, 0x382f, 0x35e7, 0x26ce, 0x33c6, 0x25a6, 0x36b8, 0x3b5f, 0x3a6d, 0x34cb, 0x2bb8, 0x368b, 0x3368, 0x312a, 0x3869, 0x37a7, 0x3804, 0x34af, 0x39ff, 0x350d, 0x358e, 0x3a40, 0x349c, 0x3ac3, 0x39fa, 0x3153, 0x38da, 0x390b, 0x30ea, 0x3205, 0x3915, -0x3a69, 0x385c, 0x34dc, 0x2e57, 0x2dff, 0x2a23, 0x2f74, 0x2efc, 0x397f, 0x367e, 0x2932, 0x3565, 0x38f6, 0x3bae, 0x3abe, 0x34cf, 0x39f9, 0x3995, 0x3844, 0x3846, 0x3674, 0x39ab, 0x382b, 0x3aa9, 0x36eb, 0x3a6f, 0x37d9, 0x3804, 0x2c69, 0x3883, 0x367d, 0x3b09, 0x25e5, 0x34d7, 0x3848, 0x310c, 0x3bdf, 0x3890, 0x3623, 0x3951, 0x3a1e, 0x385c, 0x3a27, 0x2747, 0x37f7, 0x344d, 0x2903, 0x3b96, 0x396d, 0x3868, 0x3766, 0x3689, 0x3705, 0x2dc4, 0x39f1, 0x389b, 0x39b0, 0x31b3, 0x3a14, 0x309a, 0x3ba3, 0x32a9, 0x3652, 0x390d, 0x316f, 0x3812, 0x38dd, 0x3473, 0x396a, 0x3b35, 0x3a31, 0x2cb3, 0x1c90, 0x3794, 0x372c, 0x3238, 0x3b57, 0x3516, 0x3b9c, 0x3a83, 0x386e, 0x3747, 0x353b, 0x31d2, 0x3b04, 0x338e, 0x3802, 0x373c, 0x373c, 0x380f, 0x28c7, 0x3936, 0x37eb, 0x32a6, 0x30cc, 0x3be5, -0x3428, 0x3592, 0x3226, 0x38dd, 0x3823, 0x374e, 0x3ac7, 0x38cb, 0x32a9, 0x354b, 0x3517, 0x2f43, 0x3812, 0x3a7a, 0x3627, 0x3b87, 0x3849, 0x377a, 0x2fae, 0x3bf8, 0x38e2, 0x387d, 0x3bab, 0x3a95, 0x31c0, 0x2be8, 0x30fb, 0x3bd8, 0x3828, 0x2ac0, 0x39ef, 0x3927, 0x2417, 0x34a8, 0x3626, 0x3751, 0x3b5b, 0x3a42, 0x2c4c, 0x3806, 0x358e, 0x34c1, 0x2d4f, 0x3bda, 0x3990, 0x3651, 0x3431, 0x31a2, 0x3379, 0x339a, 0x37cf, 0x3bf3, 0x3ada, 0x384a, 0x373d, 0x38a4, 0x2d47, 0x390a, 0x312a, 0x3adb, 0x3bee, 0x3463, 0x3857, 0x3950, 0x349f, 0x3a8a, 0x3767, 0x3552, 0x2d8a, 0x2cc8, 0x36cd, 0x3510, 0x3a04, 0x35ac, 0x3b20, 0x3076, 0x3a93, 0x36d0, 0x315a, 0x3af1, 0x355d, 0x3b34, 0x3b5c, 0x2247, 0x37c7, 0x3b02, 0x3a5d, 0x3669, 0x282c, 0x3b81, 0x319c, 0x3700, 0x3a0d, 0x33c0, 0x3985, 0x335e, -0x3af9, 0x3733, 0x2f0c, 0x392a, 0x2528, 0x34c8, 0x39e5, 0x3409, 0x3424, 0x389e, 0x358a, 0x3664, 0x3541, 0x38fa, 0x1d31, 0x2d02, 0x3889, 0x3690, 0x3a15, 0x3a4b, 0x364a, 0x3791, 0x3a6f, 0x3aa1, 0x3ab0, 0x39ed, 0x37da, 0x3abc, 0x3b09, 0x376d, 0x2c63, 0x314f, 0x34b9, 0x3142, 0x39cf, 0x3242, 0x384f, 0x3bf9, 0x36a1, 0x358d, 0x3ade, 0x3bc9, 0x347d, 0x3a5a, 0x3b4e, 0x3aa3, 0x39bf, 0x318d, 0x3a37, 0x3833, 0x333b, 0x3bb9, 0x39f4, 0x2ff2, 0x38b3, 0x3508, 0x3817, 0x3bd8, 0x35a8, 0x38b0, 0x3aac, 0x3984, 0x3bff, 0x29ea, 0x34ca, 0x38c6, 0x3885, 0x3bd8, 0x38df, 0x38fa, 0x358e, 0x3528, 0x39e8, 0x2d40, 0x3464, 0x3bac, 0x3ad1, 0x399b, 0x3a77, 0x3bfe, 0x3b52, 0x3934, 0x35ca, 0x3bf7, 0x3852, 0x3858, 0x35a1, 0x3a72, 0x34d7, 0x39e3, 0x2fe5, 0x3b1c, 0x3aee, 0x3bf7, 0x25f0, 0x3881, -0x376e, 0x3833, 0x3ab2, 0x3b59, 0x3b7f, 0x3ac3, 0x3954, 0x302d, 0x3a5d, 0x38f9, 0x3a41, 0x3a0f, 0x33a5, 0x3150, 0x29b7, 0x39aa, 0x35d5, 0x31db, 0x389b, 0x3aa1, 0x3529, 0x3bf1, 0x38de, 0x39a9, 0x321d, 0x35d6, 0x3423, 0x3be2, 0x34b2, 0x3b42, 0x31d8, 0x345b, 0x3a2d, 0x3b72, 0x3a10, 0x338a, 0x3b84, 0x3be8, 0x3810, 0x38a5, 0x3ba8, 0x3921, 0x3ac0, 0x3329, 0x3bca, 0x3bbb, 0x389a, 0x35f3, 0x3908, 0x3927, 0x3534, 0x381b, 0x2d5f, 0x3bef, 0x35f6, 0x3b13, 0x3834, 0x25d5, 0x30f9, 0x397c, 0x31af, 0x3867, 0x2cc7, 0x28ea, 0x3afe, 0x3014, 0x3806, 0x31c4, 0x39fa, 0x3bb6, 0x250c, 0x391b, 0x39a4, 0x37e3, 0x38d9, 0x3747, 0x2b7e, 0x3939, 0x32d2, 0x3a48, 0x38c3, 0x312d, 0x3a2d, 0x3afd, 0x3101, 0x3b28, 0x370d, 0x2fce, 0x32fc, 0x3840, 0x39f5, 0x37b6, 0x39df, 0x1d49, 0x3b9b, 0x3694, -0x3580, 0x392f, 0x3953, 0x3ac8, 0x3af3, 0x33cd, 0x39a0, 0x3672, 0x373d, 0x236a, 0x3935, 0x39fa, 0x348e, 0x3759, 0x348d, 0x36e7, 0x391b, 0x3b46, 0x386c, 0x3515, 0x389f, 0x3b21, 0x3aef, 0x3bf5, 0x3a2d, 0x3428, 0x39d1, 0x3931, 0x39af, 0x38ba, 0x2cbf, 0x3bf4, 0x31be, 0x2dd5, 0x350d, 0x3af6, 0x2044, 0x36ae, 0x3810, 0x3690, 0x31f8, 0x2ed1, 0x3a21, 0x3b7b, 0x3a96, 0x355c, 0x3704, 0x34e4, 0x38d3, 0x2f90, 0x3902, 0x37b1, 0x3b2a, 0x3a69, 0x3792, 0x338b, 0x3006, 0x345e, 0x3530, 0x3b40, 0x3733, 0x2c59, 0x3bf1, 0x39e6, 0x3b20, 0x3bc1, 0x3b71, 0x37fc, 0x363f, 0x36f9, 0x3b39, 0x380a, 0x3516, 0x3814, 0x34b8, 0x3493, 0x3bbe, 0x328b, 0x3709, 0x393b, 0x373e, 0x3929, 0x37c0, 0x3464, 0x39f8, 0x35d1, 0x364e, 0x39ed, 0x3806, 0x398c, 0x39e1, 0x3be5, 0x3317, 0x3482, 0x3b35, 0x3bc5, -0x2be7, 0x3026, 0x3b12, 0x3476, 0x3967, 0x3767, 0x3a01, 0x385a, 0x30f5, 0x2ccc, 0x349d, 0x2811, 0x399c, 0x3afe, 0x39ee, 0x3903, 0x3490, 0x2d4b, 0x367c, 0x361f, 0x3add, 0x312b, 0x3502, 0x3a4b, 0x3b74, 0x38b0, 0x31bd, 0x3327, 0x3a68, 0x3078, 0x3811, 0x3bce, 0x3867, 0x362d, 0x39f7, 0x2c93, 0x325f, 0x3370, 0x3bcf, 0x3b0c, 0x3656, 0x3644, 0x3130, 0x34f1, 0x326f, 0x3ab4, 0x38b5, 0x2e0b, 0x38ec, 0x3b21, 0x3be6, 0x3a39, 0x38f2, 0x3621, 0x3bf7, 0x390d, 0x39ef, 0x2b80, 0x394b, 0x3b3c, 0x31c4, 0x1a0a, 0x354e, 0x3655, 0x3564, 0x2b0e, 0x3072, 0x3838, 0x3190, 0x3b46, 0x3909, 0x31d8, 0x3b8d, 0x3b39, 0x3773, 0x35a3, 0x394f, 0x3971, 0x3919, 0x3848, 0x3a7d, 0x3b3d, 0x357e, 0x2755, 0x3a56, 0x3488, 0x3ac6, 0x3a25, 0x3991, 0x347e, 0x3472, 0x3b22, 0x38c8, 0x3b54, 0x384c, 0x28a2, -0x3b41, 0x3ab1, 0x3a5d, 0x35d6, 0x36e5, 0x3a33, 0x3a55, 0x3457, 0x35b4, 0x34d5, 0x389b, 0x3928, 0x3be7, 0x32d5, 0x3b26, 0x3790, 0x3203, 0x3296, 0x3b45, 0x3bc4, 0x38d4, 0x34f7, 0x3b50, 0x3ab1, 0x36eb, 0x3120, 0x35af, 0x396d, 0x28f5, 0x37f3, 0x3b0b, 0x31a6, 0x3a46, 0x1ce8, 0x38f3, 0x39c2, 0x3970, 0x3bb5, 0x28d7, 0x3b21, 0x39b4, 0x355e, 0x35a6, 0x3bb9, 0x2cc3, 0x38c2, 0x376c, 0x2e88, 0x34b2, 0x3967, 0x3325, 0x3bda, 0x37c6, 0x39dc, 0x3135, 0x3966, 0x22f4, 0x3433, 0x37e1, 0x34dd, 0x3900, 0x3ae7, 0x38ee, 0x3926, 0x2a4a, 0x3a16, 0x3ba9, 0x38de, 0x343a, 0x3a6f, 0x315c, 0x392b, 0x38ce, 0x35c3, 0x3810, 0x3ae9, 0x3627, 0x29b7, 0x2816, 0x289e, 0x3bb0, 0x39d1, 0x335c, 0x39b1, 0x3b48, 0x3614, 0x3581, 0x33df, 0x332b, 0x3750, 0x3438, 0x3309, 0x3854, 0x3830, 0x32e3, 0x3a27, -0x38f4, 0x3074, 0x351c, 0x2b8d, 0x35c2, 0x33dc, 0x3972, 0x39f2, 0x3af7, 0x3b12, 0x3b1a, 0x352d, 0x335e, 0x357a, 0x32e1, 0x3a63, 0x3426, 0x316d, 0x3903, 0x36e4, 0x36cc, 0x35fd, 0x3b29, 0x3304, 0x387e, 0x347d, 0x3af3, 0x33b5, 0x3859, 0x3800, 0x39b1, 0x3ae4, 0x2839, 0x38e6, 0x3341, 0x3346, 0x3ad4, 0x38b2, 0x392b, 0x3bfa, 0x3090, 0x36f1, 0x29b5, 0x2fa6, 0x3bb5, 0x36bc, 0x30c4, 0x38f4, 0x1e3b, 0x34fd, 0x2c4c, 0x3a6b, 0x393c, 0x3aba, 0x3866, 0x356a, 0x3441, 0x3802, 0x367d, 0x3546, 0x380f, 0x38f2, 0x354b, 0x30af, 0x2e2f, 0x37cb, 0x3994, 0x36e3, 0x37a7, 0x3a8c, 0x395c, 0x3aa2, 0x2c2f, 0x35b4, 0x3180, 0x3ad0, 0x3237, 0x3ac6, 0x31f5, 0x3637, 0x398c, 0x3443, 0x3bd6, 0x3b63, 0x35d0, 0x3351, 0x3336, 0x3aa8, 0x3b66, 0x39df, 0x36fe, 0x3477, 0x3823, 0x38ef, 0x399e, 0x394b, -0x3a85, 0x2d22, 0x39b4, 0x3a4e, 0x3334, 0x1c3b, 0x3466, 0x3469, 0x3820, 0x3a70, 0x2d5e, 0x37d9, 0x37bb, 0x3bd8, 0x25ea, 0x3292, 0x3a58, 0x3847, 0x3aea, 0x389d, 0x386e, 0x3870, 0x3bc4, 0x3a95, 0x307f, 0x3928, 0x31c2, 0x38e5, 0x3994, 0x3b83, 0x297a, 0x33c0, 0x3a55, 0x390d, 0x3550, 0x3447, 0x3b6d, 0x2809, 0x3993, 0x2944, 0x3ae1, 0x3845, 0x3703, 0x38fb, 0x3880, 0x3b1b, 0x3312, 0x2d51, 0x2e33, 0x3ba5, 0x3805, 0x3359, 0x3b3c, 0x3663, 0x354f, 0x3904, 0x3787, 0x39ac, 0x3bc4, 0x2f65, 0x3778, 0x3ba8, 0x3100, 0x3840, 0x3b67, 0x3abe, 0x2d5b, 0x391f, 0x3670, 0x39b3, 0x3a4e, 0x3947, 0x2e35, 0x3755, 0x3bb9, 0x31bf, 0x3ba6, 0x3a10, 0x39d1, 0x3aae, 0x3b88, 0x380a, 0x345f, 0x3aeb, 0x3660, 0x373a, 0x2d6f, 0x33b0, 0x3518, 0x3b25, 0x3872, 0x3aab, 0x2ed0, 0x347d, 0x2fd0, 0x38c5, -0x2cda, 0x353c, 0x3866, 0x2332, 0x3bde, 0x3912, 0x3762, 0x3ae3, 0x3a55, 0x39df, 0x32e0, 0x3b63, 0x3ac3, 0x3a85, 0x34e8, 0x38d7, 0x3543, 0x3a1e, 0x36e7, 0x3008, 0x359e, 0x298b, 0x3b6c, 0x3b51, 0x38d1, 0x3444, 0x39ec, 0x391e, 0x3a6d, 0x39e9, 0x3b7c, 0x36bb, 0x21f7, 0x2896, 0x3308, 0x3afc, 0x3879, 0x2cac, 0x2699, 0x3475, 0x331b, 0x340f, 0x373b, 0x3814, 0x3b6d, 0x39bb, 0x2e09, 0x3284, 0x286f, 0x371d, 0x3966, 0x27c2, 0x3ac4, 0x3b92, 0x3ba4, 0x3acb, 0x30b0, 0x3a11, 0x3721, 0x34cc, 0x3b84, 0x3002, 0x38bc, 0x341e, 0x36c3, 0x3bd2, 0x39fe, 0x380f, 0x38c3, 0x3a9c, 0x373a, 0x3a79, 0x3bfa, 0x31c7, 0x340d, 0x3602, 0x38e4, 0x1ddd, 0x38b2, 0x3985, 0x2574, 0x339e, 0x3b39, 0x3765, 0x3369, 0x39b6, 0x3974, 0x3a25, 0x362c, 0x3aeb, 0x3935, 0x3271, 0x2de2, 0x35d5, 0x3b93, 0x32f0, -0x3425, 0x3871, 0x2d6d, 0x3070, 0x319d, 0x33b5, 0x333e, 0x397e, 0x2a76, 0x39eb, 0x3b34, 0x3988, 0x3b40, 0x36de, 0x39a6, 0x38d9, 0x398b, 0x3623, 0x325e, 0x37d1, 0x3406, 0x377f, 0x3a58, 0x3486, 0x3855, 0x3acc, 0x378c, 0x3b1b, 0x3bed, 0x3aae, 0x3998, 0x39dc, 0x38a0, 0x3b74, 0x38a1, 0x2a79, 0x2e26, 0x39fd, 0x377c, 0x39bb, 0x3ad6, 0x1a6c, 0x2e6b, 0x377b, 0x3b5c, 0x39bd, 0x32f6, 0x371a, 0x348d, 0x348b, 0x359c, 0x38c7, 0x3022, 0x389f, 0x3a5b, 0x328d, 0x3158, 0x3206, 0x364d, 0x3a90, 0x36df, 0x3934, 0x3a5e, 0x39e4, 0x3a42, 0x3afe, 0x38d5, 0x36c5, 0x3050, 0x2acf, 0x3a39, 0x29da, 0x365c, 0x364e, 0x2bc, 0x3850, 0x381b, 0x39b2, 0x3643, 0x390a, 0x30da, 0x3243, 0x2dd9, 0x3b6c, 0x38cc, 0x309c, 0x27f0, 0x3b84, 0x3979, 0x3b3e, 0x3b08, 0x376a, 0x390d, 0x2d9e, 0x3527, 0x3a25, -0x33e2, 0x3840, 0x3afd, 0x385b, 0x350a, 0x3b04, 0x377a, 0x38ad, 0x3aec, 0x39d7, 0x38ad, 0x3b9d, 0x37d6, 0x36f1, 0x3586, 0x325c, 0x2cf4, 0x3b30, 0x387d, 0x3a1d, 0x3a29, 0x3048, 0x3bdc, 0x30d7, 0x359a, 0x30c4, 0x3a22, 0x3148, 0x3bd3, 0x3699, 0x353e, 0x398f, 0x36f2, 0x3115, 0x3505, 0x39bc, 0x39b1, 0x37ec, 0x353f, 0x379f, 0x36df, 0x3479, 0x3815, 0x3503, 0x30dd, 0x39c5, 0x3a1e, 0x30a0, 0x385d, 0x3a44, 0x3819, 0x3599, 0x3994, 0x394a, 0x316a, 0x39ab, 0x2c23, 0x3985, 0x3bbe, 0x3bdd, 0x3486, 0x36f7, 0x3559, 0x391b, 0x2642, 0x3a96, 0x3bac, 0x367c, 0x3b59, 0x38f0, 0x268a, 0x3a03, 0x3106, 0x3bd1, 0x3279, 0x36c9, 0x3b40, 0x3750, 0x2e02, 0x3965, 0x3636, 0x3afb, 0x3960, 0x38d6, 0x3a62, 0x2910, 0x3a84, 0x359d, 0x3ad9, 0x33f7, 0x3b5d, 0x26e1, 0x376b, 0x3824, 0x2852, 0x3982, -0x3797, 0x36e3, 0x3924, 0x3947, 0x3b36, 0x361e, 0x376b, 0x365b, 0x37e8, 0x329f, 0x3970, 0x3126, 0x3562, 0x3b17, 0x3aca, 0x3602, 0x3b9d, 0x394a, 0x2388, 0x2b85, 0x3a24, 0x3a66, 0x3648, 0x28d2, 0x3b67, 0x38b8, 0x3b15, 0x352c, 0x3b39, 0x3838, 0x388e, 0x3576, 0x39f5, 0x31f9, 0x35a0, 0x3a41, 0x3afa, 0x3513, 0x3688, 0x3b2b, 0x32b6, 0x32de, 0x3949, 0x3b1e, 0x3a1e, 0x280d, 0x38da, 0x388e, 0x316f, 0x38d4, 0x29c5, 0x3637, 0x34af, 0x2d8c, 0x3872, 0x30ac, 0x396e, 0x38bd, 0x39ab, 0x3b69, 0x3120, 0x355f, 0x2e7f, 0x35ab, 0x3821, 0x2b37, 0x3bc5, 0x3a0a, 0x3572, 0x30b5, 0x399e, 0x2a66, 0x31b8, 0x3abc, 0x3754, 0x36a7, 0x3b8b, 0x347d, 0x3b36, 0x3924, 0x2f95, 0x3ba9, 0x2224, 0x34cd, 0x3aaf, 0x3608, 0x34ce, 0x344b, 0x34b5, 0x3bd8, 0x37d3, 0x3757, 0x2c21, 0x3b8f, 0x38d3, 0x3aa4, -0x39c6, 0x381d, 0x3842, 0x3bd1, 0x3092, 0x35d5, 0x251f, 0x2529, 0x3133, 0x3862, 0x3444, 0x3519, 0x3b60, 0x2fb5, 0x38c7, 0x387e, 0x3138, 0x36a9, 0x353c, 0x3411, 0x3bd3, 0x2a07, 0x3a5c, 0x3826, 0x3228, 0x334d, 0x2f07, 0x2c6a, 0x3b43, 0x3425, 0x3568, 0x382a, 0x348c, 0x3b5f, 0x3745, 0x2ae7, 0x3772, 0x302b, 0x336a, 0x383a, 0x3361, 0x3110, 0x3684, 0x39d1, 0x3151, 0x34f1, 0x295b, 0x26ba, 0x3b1b, 0x38d5, 0x36b1, 0x3069, 0x3bfa, 0x385f, 0x3695, 0x3b50, 0x3be0, 0x3741, 0x3af4, 0x2cd1, 0x3862, 0x352d, 0x3b8d, 0x3800, 0x3868, 0x3931, 0x37f8, 0x3ad0, 0x341d, 0x3507, 0x3602, 0x3831, 0x393b, 0x3695, 0x380e, 0x383f, 0x38de, 0x3954, 0x38b3, 0x20be, 0x2428, 0x2e52, 0x3b5b, 0x20ea, 0x3aa9, 0x3430, 0x3aac, 0x393b, 0x32e7, 0x2d58, 0x366e, 0x32f5, 0x3990, 0x3b9d, 0x2f4c, 0x3420, -0x38d5, 0x31e4, 0x2c0e, 0x3742, 0x3bc0, 0x30f9, 0x3656, 0x3aaa, 0x385e, 0x3908, 0x3584, 0x2814, 0x3891, 0x3553, 0x391c, 0x3330, 0x38e5, 0x1aaf, 0x3be5, 0x3ac7, 0x3936, 0x3bf5, 0x361f, 0x39b3, 0x38c1, 0x394a, 0x39e1, 0x2b67, 0x3585, 0x380e, 0x3344, 0x3001, 0x3983, 0x31ec, 0x3ac2, 0x380a, 0x32c2, 0x34aa, 0x393d, 0x364d, 0x239a, 0x3727, 0x3b5c, 0x3265, 0x2d1f, 0x32dd, 0x3ae3, 0x36a0, 0x3600, 0x38f3, 0x378a, 0x357c, 0x34dd, 0x39a9, 0x3846, 0x2431, 0x3abe, 0x36fa, 0x38bd, 0x3696, 0x2c2e, 0x229d, 0x386f, 0x3a8b, 0x3aa4, 0x34f4, 0x35af, 0x34c1, 0x2222, 0x1820, 0x3a30, 0x38ec, 0x3855, 0x3952, 0x3873, 0x384b, 0x3bb1, 0x35aa, 0x363a, 0x380e, 0x3b3d, 0x397a, 0x38ca, 0x3a88, 0x35de, 0x3bac, 0x3ab4, 0x3654, 0x38f3, 0x2076, 0x3585, 0x300a, 0x3a71, 0x3b90, 0x3a83, 0x3a86, -0x3ab7, 0x3bee, 0x37bd, 0x3b2c, 0x39fb, 0x274a, 0x3a7d, 0x38df, 0x2a8d, 0x3611, 0x34b4, 0x38e4, 0x36f8, 0x3b2a, 0x364b, 0x3ac3, 0x2d73, 0x38e3, 0x2fcd, 0x3af3, 0x359e, 0x3afd, 0x3b13, 0x3a89, 0x379e, 0x35d5, 0x30bc, 0x34ae, 0x3a6a, 0x312e, 0x293a, 0x39df, 0x3a97, 0x39db, 0x3b98, 0x3818, 0x344f, 0x26c9, 0x3a30, 0x3505, 0x3885, 0x3206, 0x38e4, 0x3940, 0x3a5d, 0x3aab, 0x35e7, 0x3458, 0x381d, 0x3959, 0x3930, 0x3476, 0x348f, 0x3469, 0x2e03, 0x3889, 0x3ba1, 0x35ac, 0x3ac1, 0x3bcb, 0x3acc, 0x34d7, 0x38bd, 0x2b4c, 0x21ff, 0x3802, 0x34a4, 0x36f9, 0x352f, 0x394e, 0x3796, 0x2456, 0x38c8, 0x302d, 0x2de8, 0x3539, 0x39e8, 0x3560, 0x3913, 0x3bbf, 0x331a, 0x3969, 0x3a9e, 0x3972, 0x3a32, 0x3a15, 0x386f, 0x3a17, 0x3956, 0x39c3, 0x3762, 0x3b51, 0x32af, 0x3b58, 0x34ff, 0x319d, -0x3431, 0x34fc, 0x3a81, 0x3ada, 0x39e6, 0x3a49, 0x33ad, 0x38c8, 0x33cb, 0x3576, 0x3aaf, 0x34ee, 0x2e14, 0x38d0, 0x39c1, 0x29cb, 0x3112, 0x3593, 0x2f07, 0x2fa0, 0x34c0, 0x366e, 0x3998, 0x3540, 0x37c6, 0x39b7, 0x396d, 0x3319, 0x341e, 0x354a, 0x3773, 0x2c1c, 0x3bfc, 0x381b, 0x3529, 0x37f8, 0x3bbd, 0x37a2, 0x36f1, 0x3870, 0x3a69, 0x3494, 0x3169, 0x3455, 0x356f, 0x32e7, 0x35c0, 0x398e, 0x2c2f, 0x2ffe, 0x3140, 0x39ff, 0x3aae, 0x3bb7, 0x35b8, 0x39b2, 0x3303, 0x3948, 0x3a7f, 0x25f7, 0x3750, 0x357e, 0x3785, 0x3817, 0x3b05, 0x3a90, 0x38ad, 0x376f, 0x3ac5, 0x3a07, 0x3311, 0x3b9b, 0x24d1, 0x3451, 0x32a6, 0x342c, 0x3a8c, 0x360a, 0x36ad, 0x3abf, 0x2116, 0x3bb1, 0x328b, 0x37a9, 0x3aab, 0x39c9, 0x345e, 0x36b0, 0x384c, 0x3bfb, 0x2d31, 0x3a05, 0x3427, 0x3726, 0x3743, 0x3398, -0x3b0a, 0x3b85, 0x33ed, 0x32b0, 0x3a95, 0x2135, 0x3712, 0x2f34, 0x378e, 0x390f, 0x39b1, 0x2ad2, 0x300a, 0x34ec, 0x3a00, 0x20f8, 0x3b47, 0x3861, 0x341d, 0x3015, 0x3959, 0x37c9, 0x2f6c, 0x3758, 0x37e5, 0x353b, 0x38da, 0x39ae, 0x3947, 0x36d7, 0x3284, 0x3bb9, 0x357f, 0x3999, 0x39c2, 0x3889, 0x38b7, 0x3684, 0x355e, 0x390d, 0x3b96, 0x385c, 0x3ba5, 0x36c0, 0x3bbc, 0x37fc, 0x391c, 0x3a42, 0x39ca, 0x34ae, 0x394c, 0x3271, 0x2cd6, 0x343b, 0x2d7b, 0x2eea, 0x38a3, 0x2ca6, 0x3549, 0x3847, 0x3bcb, 0x3adc, 0x2e68, 0x3809, 0x3930, 0x357b, 0x3b89, 0x3b94, 0x3875, 0x3640, 0x387c, 0x376c, 0x33b9, 0x3b7e, 0x384c, 0x3906, 0x3b91, 0x209d, 0x2c43, 0x32cf, 0x3686, 0x310c, 0x3a7a, 0x38ef, 0x3645, 0x354a, 0x3670, 0x3732, 0x37b9, 0x3928, 0x358d, 0x3893, 0x3602, 0x2e3d, 0x2a22, 0x2f70, -0x34c9, 0x38f4, 0x374e, 0x3828, 0x37ff, 0x3723, 0x35b4, 0x34b7, 0x3b94, 0x265a, 0x3658, 0x3938, 0x38f5, 0x3bb9, 0x3960, 0x3b5c, 0x38d3, 0x31ea, 0x3412, 0x3be3, 0x3b95, 0x3a20, 0x353b, 0x39c5, 0x3291, 0x387d, 0x3af8, 0x3915, 0x3af7, 0x3be4, 0x399c, 0x34e5, 0x324b, 0x3838, 0x3914, 0x385e, 0x38cd, 0x39fd, 0x39a0, 0x3495, 0x38a1, 0x382c, 0x2ed2, 0x3866, 0x33d8, 0x3396, 0x3b0c, 0x39c8, 0x314f, 0x346f, 0x3aee, 0x313e, 0x39b8, 0x34fe, 0x3882, 0x36d2, 0x3a8b, 0x3a8e, 0x3ae4, 0x3b31, 0x30da, 0x34e8, 0x38ce, 0x3643, 0x39b6, 0x34fb, 0x38d7, 0x3bde, 0x3ac9, 0x3af2, 0x38fe, 0x275f, 0x3748, 0x30ee, 0x3010, 0x3b23, 0x3a55, 0x3a43, 0x3a23, 0x37eb, 0x38fa, 0x3335, 0x3996, 0x39a0, 0x360f, 0x2630, 0x39f3, 0x3870, 0x383c, 0x384c, 0x3392, 0x3754, 0x3b4f, 0x3bc1, 0x382f, 0x3802, -0x3bb0, 0x36ad, 0x3a3f, 0x389e, 0x2d0c, 0x34b1, 0x3592, 0x3933, 0x25f1, 0x3ac7, 0x308e, 0x36b7, 0x3ab0, 0x2994, 0x38e4, 0x3689, 0x3c00, 0x3441, 0x30f6, 0x3a71, 0x3b19, 0x394e, 0x3826, 0x19a6, 0x3b2a, 0x3594, 0x3893, 0x34af, 0x3b34, 0x3ab3, 0x37e9, 0x3ba1, 0x3b01, 0x29ca, 0x3715, 0x3643, 0x312e, 0x3289, 0x311d, 0x383e, 0x38dc, 0x33a1, 0x384d, 0x3ba6, 0x3982, 0x34a7, 0x3b20, 0x3728, 0x3add, 0x2f89, 0x377b, 0x3a2d, 0x342e, 0x36e5, 0x3aa2, 0x3864, 0x38fe, 0x2d84, 0x3bef, 0x3bcd, 0x3553, 0x3953, 0x37be, 0x394a, 0x3a5f, 0x1d30, 0x3bfb, 0x3737, 0x3aa1, 0x3b6e, 0x3809, 0x3b5f, 0x389b, 0x3905, 0x3b29, 0x387d, 0x3afc, 0x3807, 0x3881, 0x3a2c, 0x37d5, 0x3a76, 0x35c4, 0x39ec, 0x3abf, 0x36ed, 0x3135, 0x381e, 0x3593, 0x3968, 0x2d97, 0x350c, 0x3a61, 0x3550, 0x2bde, 0x3400, -0x35ed, 0x34e7, 0x3846, 0x2e9e, 0x3afd, 0x3658, 0x36c2, 0x3863, 0x30b9, 0x350a, 0x3a30, 0x34cd, 0x3b2c, 0x3061, 0x3bc4, 0x2e78, 0x3475, 0x388a, 0x3678, 0x30c5, 0x38f2, 0x3807, 0x311d, 0x3aad, 0x3804, 0x3a1b, 0x38bf, 0x2c7f, 0x3be8, 0x3523, 0x32d3, 0x3a33, 0x38f1, 0x34af, 0x3797, 0x32e6, 0x3886, 0x33e8, 0x3a63, 0x34d3, 0x3618, 0x3571, 0x3abb, 0x3a0d, 0x39d4, 0x361c, 0x3b81, 0x3598, 0x301d, 0x390a, 0x2876, 0x39db, 0x344c, 0x3518, 0x3825, 0x33a5, 0x392b, 0x3671, 0x39a6, 0x3320, 0x3a67, 0x3447, 0x3a75, 0x34c7, 0x3ba8, 0x3108, 0x394f, 0x3986, 0x2c4d, 0x3856, 0x3b1c, 0x3343, 0x399d, 0x3a25, 0x2f68, 0x3be3, 0x3131, 0x349d, 0x39b0, 0x32d3, 0x305c, 0x3b49, 0x2e61, 0x36e1, 0x3a0c, 0x36cb, 0x3b96, 0x3648, 0x36a2, 0x3879, 0x387f, 0x3aa3, 0x2ac5, 0x30d8, 0x3424, 0x2bc4, -0x39b8, 0x38d0, 0x3bd2, 0x311b, 0x2cff, 0x2e9c, 0x3908, 0x39d9, 0x3628, 0x3c00, 0x39b7, 0x3a20, 0x3a6d, 0x3909, 0x37c2, 0x2c06, 0x3a29, 0x374d, 0x30c7, 0x3204, 0x392c, 0x3af6, 0x30de, 0x35ec, 0x3b48, 0x3b34, 0x38ec, 0x3b9f, 0x3625, 0x1a62, 0x3681, 0x2cbc, 0x39e6, 0x348b, 0x3726, 0x38d1, 0x35df, 0x382b, 0x3bc9, 0x39e9, 0x3a7b, 0x32df, 0x22ec, 0x35fa, 0x3a1d, 0x3b56, 0x37d2, 0x35af, 0x3bb3, 0x35bf, 0x38f2, 0x3090, 0x3163, 0x2ce6, 0x39a1, 0x3aa2, 0x38d3, 0x398d, 0x3a80, 0x35ff, 0x33e6, 0x3a00, 0x35a3, 0x3a52, 0x3175, 0x337b, 0x39c7, 0x399c, 0x3873, 0x390a, 0x39f9, 0x3766, 0x33d1, 0x38fe, 0x3a2b, 0x37ec, 0x39f9, 0x3980, 0x3ac0, 0x309f, 0x3313, 0x3897, 0x34a5, 0x36fb, 0x3725, 0x3a71, 0x3553, 0x3b09, 0x36ad, 0x3923, 0x3bdd, 0x3b9e, 0x2960, 0x3a59, 0x3a20, 0x375d, -0x39b6, 0x31e6, 0x34bc, 0x391e, 0x38cd, 0xca5, 0x360c, 0x35e6, 0x35b5, 0x3be9, 0x3be4, 0x3bea, 0x3741, 0x302e, 0x3557, 0x3bb1, 0x3be4, 0x342c, 0x350c, 0x352b, 0x3825, 0x3b05, 0x309d, 0x38f8, 0x3be3, 0x2d5d, 0x399a, 0x36b9, 0x3924, 0x3936, 0x3a45, 0x3a8f, 0x3853, 0x38a9, 0x381b, 0x3a9a, 0x393e, 0x31df, 0x3855, 0x38da, 0x37c6, 0x3bd8, 0x34fb, 0x2e5f, 0x3450, 0x304e, 0x3990, 0x29e1, 0x373c, 0x39a5, 0x3a5e, 0x3356, 0x2c13, 0x34a0, 0x3185, 0x3a8a, 0x3672, 0x2ee4, 0x2dbc, 0x22ae, 0x3a88, 0x388c, 0x30ce, 0x384d, 0x3453, 0x3ad0, 0x2e7f, 0x367a, 0x34c5, 0x39d6, 0x35de, 0x39fc, 0x3aa8, 0x3667, 0x3bb9, 0x35e7, 0x38c7, 0x2c83, 0x35a3, 0x35d7, 0x1a7c, 0x393e, 0x3588, 0x39dd, 0x3af3, 0x3965, 0x365b, 0x3a7e, 0x38ed, 0x3990, 0x3786, 0x3b07, 0x350e, 0x38b7, 0x357f, 0x3bb6, -0x2de9, 0x2ef1, 0x2cc9, 0x38a5, 0x347b, 0x310a, 0x351d, 0x3a9b, 0x3a68, 0x2228, 0x35d3, 0x338d, 0x3a3a, 0x24ec, 0x3ad0, 0x385a, 0x1c64, 0x39f9, 0x335e, 0x348c, 0x211e, 0x37d4, 0x353b, 0x3290, 0x3b68, 0x2f75, 0x2ff5, 0x3579, 0x3967, 0x3b5a, 0x3982, 0x3950, 0x35e9, 0x3a85, 0x3be5, 0x3252, 0x359b, 0x3799, 0x38ec, 0x3a0e, 0x3a45, 0x2d8e, 0x389d, 0x34d6, 0x3726, 0x3320, 0x3acd, 0x3642, 0x2574, 0x314a, 0x32a5, 0x3898, 0x370a, 0x3941, 0x340a, 0x2e05, 0x28b8, 0x39ad, 0x392e, 0x3821, 0x38d7, 0x3b07, 0x3485, 0x34d1, 0x399c, 0x1844, 0x2c8f, 0x3964, 0x3b56, 0x2dde, 0x2ede, 0x317b, 0x3a44, 0x3901, 0x3844, 0x382e, 0x29e6, 0x35ad, 0x3913, 0x3430, 0x3604, 0x3a5f, 0x3080, 0x3628, 0x3383, 0x3b3d, 0x385a, 0x38e8, 0x3ade, 0x3af3, 0x3a56, 0x3889, 0x2cf5, 0x3a61, 0x3b6a, 0x3b38, -0x2e45, 0x3736, 0x3743, 0x3680, 0x328f, 0x3a88, 0x39bb, 0x36a0, 0x3957, 0x2f27, 0x3a33, 0x3a9e, 0x3a9e, 0x2e09, 0x3154, 0x37b7, 0x3807, 0x3937, 0x390b, 0x3041, 0x3758, 0x39cf, 0x2e66, 0x2bc5, 0x3461, 0x3897, 0x39fd, 0x3b92, 0x36e3, 0x3a20, 0x3a8d, 0x335b, 0x3be1, 0x383d, 0x38ab, 0x3665, 0x3588, 0x3a4b, 0x33d5, 0x341b, 0x3806, 0x38fd, 0x382e, 0x32c1, 0x38d9, 0x2ccb, 0x292d, 0x380f, 0x35a2, 0x3b6e, 0x34af, 0x3889, 0x3109, 0x3480, 0x34bf, 0x3a56, 0x3163, 0x33fa, 0x345a, 0x39bb, 0x3b6e, 0x3a80, 0x36f6, 0x33c8, 0x3b98, 0x3663, 0x3aaf, 0x3926, 0x3a2d, 0x3a11, 0x33ac, 0x37a0, 0x3986, 0x3374, 0x3667, 0x3482, 0x378a, 0x2a39, 0x3535, 0x34f3, 0x3783, 0x36a7, 0x3606, 0x3843, 0x3acb, 0x2dcc, 0x3961, 0x34ed, 0x3890, 0x38e5, 0x3a7c, 0x384c, 0x39bf, 0x3a6b, 0x34a0, 0x361b, -0x2e5e, 0x3650, 0x3417, 0x36e5, 0x3b4c, 0x3892, 0x38ba, 0x32f3, 0x3b80, 0x39ea, 0x3357, 0x3212, 0x3b42, 0x3622, 0x3c00, 0x34c0, 0x38e0, 0x360c, 0x36bc, 0x34b0, 0x3b53, 0x2587, 0x387e, 0x3966, 0x3800, 0x35e2, 0x3917, 0x3be4, 0x378f, 0x2d21, 0x3415, 0x2ea8, 0x34d0, 0x36ac, 0x3a51, 0x3ba5, 0x3b7e, 0x2d48, 0x39c1, 0x30d5, 0x3244, 0x3894, 0x3aaa, 0x3451, 0x3a9f, 0x2e40, 0x3832, 0x35f6, 0x3429, 0x253c, 0x2c2e, 0x3bd6, 0x3a5c, 0x3622, 0x3155, 0x3a50, 0x313f, 0x31dc, 0x3b9d, 0x2d67, 0x3914, 0x38f5, 0x3ab6, 0x3bd3, 0x3754, 0x3683, 0x32b0, 0x31dd, 0x3911, 0x37c2, 0x2b09, 0x33b7, 0x3b7c, 0x344a, 0x2a7c, 0x3350, 0x3792, 0x36ea, 0x3463, 0x3a87, 0x29be, 0x3a23, 0x390d, 0x3b10, 0x381d, 0x3227, 0x38f4, 0x39bc, 0x3a71, 0x375d, 0x349d, 0x271c, 0x3921, 0x2e0a, 0x3b08, 0x3ba3, -0x3a92, 0x3923, 0x3012, 0x3527, 0x2ba3, 0x3aa1, 0x3ba3, 0x349a, 0x3729, 0x393a, 0x2ea9, 0x398a, 0x38a5, 0x3ad5, 0x38e6, 0x3a7b, 0x3783, 0x3822, 0x371a, 0x3247, 0x3af0, 0x3ac9, 0x35f6, 0x39d5, 0x39c3, 0x39bc, 0x3a9e, 0x39a8, 0x3af5, 0x3a01, 0x39ab, 0x35f6, 0x392e, 0x3bca, 0x2f53, 0x3595, 0x34c6, 0x3a96, 0x396f, 0x3515, 0x39c5, 0x37b3, 0x37c4, 0x2f64, 0x37ed, 0x3013, 0x3939, 0x3be7, 0x3a5e, 0x3526, 0x3a32, 0x3a8c, 0x334e, 0x39d6, 0x3b45, 0x395d, 0x3500, 0x375f, 0x2498, 0x3ad9, 0x3a04, 0x3961, 0x3a1e, 0x38cb, 0x383d, 0x35c3, 0x37ec, 0x38ab, 0x3aca, 0x29aa, 0x3480, 0x374c, 0x35d1, 0x33cc, 0x387a, 0x3544, 0x367d, 0x3259, 0x306b, 0x39c9, 0x323b, 0x3a58, 0x3156, 0x353d, 0x323a, 0x2987, 0x31ff, 0x3998, 0x311c, 0x38d0, 0x3a03, 0x38cc, 0x35b5, 0x398b, 0x3a0c, 0x3a96, -0x3ab6, 0x3a1c, 0x3a48, 0x3974, 0x3815, 0x368a, 0x36d5, 0x37aa, 0x345b, 0x3bd3, 0x3b1f, 0x3167, 0x2ecf, 0x3a80, 0x3636, 0x3a8e, 0x39d3, 0x3a1a, 0x3087, 0x3823, 0x3b9c, 0x3969, 0x2fb9, 0x3bb8, 0x39c5, 0x3991, 0x3392, 0x38f2, 0x3939, 0x2c68, 0x3b0a, 0x383a, 0x3bd7, 0x3a74, 0x3956, 0x3465, 0x39f3, 0x3880, 0x39bc, 0x39c5, 0x35e4, 0x3738, 0x3856, 0x399b, 0x3bda, 0x3366, 0x31a0, 0x3868, 0x3aa3, 0x38bd, 0x305a, 0x3743, 0x3a85, 0x2336, 0x39eb, 0x2d06, 0x37df, 0x3852, 0x3b46, 0x302c, 0x3a1e, 0x3b46, 0x3068, 0x3bd6, 0x381d, 0x31f6, 0x3491, 0x3848, 0x3315, 0x38c7, 0x3600, 0x3b9d, 0x38b2, 0x3977, 0x388c, 0x3ac2, 0x37ee, 0x35c4, 0x3b45, 0x374a, 0x3355, 0x1dbb, 0x38ec, 0x3003, 0x3a97, 0x311f, 0x3749, 0x2b59, 0x3842, 0x34a9, 0x3561, 0x3b07, 0x3a4a, 0x292f, 0x3961, 0x3546, -0x35dd, 0x3966, 0x2c7d, 0x3833, 0x285f, 0x20f2, 0x3a12, 0x392b, 0x2bae, 0x2fa6, 0x3a36, 0x303c, 0x3303, 0x2bc6, 0x3b94, 0x3a0e, 0x3ae2, 0x3a3c, 0x315c, 0x37bb, 0x3452, 0x3267, 0x2731, 0x3985, 0x3bcf, 0x397e, 0x2fae, 0x28b1, 0x39cc, 0x3536, 0x37a1, 0x3aa3, 0x396b, 0x2c59, 0x3bbf, 0x303c, 0x3bcf, 0x3a8e, 0x3afc, 0x3ab1, 0x2943, 0x3a17, 0x3552, 0x2f57, 0x3353, 0x3512, 0x2e78, 0x3b53, 0x388e, 0x399c, 0x336e, 0x38d4, 0x3849, 0x32b1, 0x316a, 0x2877, 0x2feb, 0x35b9, 0x375d, 0x29fa, 0x3ad2, 0x3569, 0x3981, 0x3455, 0x3847, 0x3a81, 0x3514, 0x29d0, 0x3137, 0x39ba, 0x3b1a, 0x2dd4, 0x383f, 0x39f7, 0x37f6, 0x3964, 0x371c, 0x39e4, 0x3136, 0x35da, 0x3b2f, 0x3946, 0x36dd, 0x3801, 0x3927, 0x2614, 0x2ca7, 0x39ae, 0x3401, 0x3242, 0x3a91, 0x3a1d, 0x3790, 0x333f, 0x3bb9, 0x3a1d, -0x3be5, 0x39e1, 0x35f3, 0x38fd, 0x3726, 0x3946, 0x3baf, 0x3a2f, 0x15e0, 0x318b, 0x359c, 0x2fbf, 0x3060, 0x3a09, 0x35c9, 0x39e2, 0x317e, 0x25ec, 0x3546, 0x3254, 0x36e9, 0x374c, 0x35c0, 0x3787, 0x3b82, 0x3727, 0x34a8, 0x3820, 0x3aee, 0x3814, 0x33da, 0x357f, 0x2f56, 0x3231, 0x3ba0, 0x35e4, 0x3998, 0x3609, 0x3979, 0x3311, 0x33e8, 0x39bd, 0x39f0, 0x3a32, 0x31dc, 0x3aee, 0x310e, 0x3843, 0x38c1, 0x382a, 0x382f, 0x3b24, 0x335c, 0x383b, 0x24f4, 0x371c, 0x3162, 0x2dce, 0x3ae6, 0x2d1e, 0x3a20, 0x39e9, 0x39c5, 0x219a, 0x37d4, 0x34fe, 0x14f6, 0x2e13, 0x3949, 0x3b98, 0x3a42, 0x3aee, 0x298f, 0x3740, 0x28e0, 0x3854, 0x3925, 0x3951, 0x3426, 0x3b4a, 0x3043, 0x345d, 0x3aec, 0x3b89, 0x378c, 0x355a, 0x3287, 0x340c, 0x35fb, 0x2f7d, 0x3839, 0x383a, 0x3a66, 0x388c, 0x36b3, 0x3908, -0x3323, 0x35b2, 0x3823, 0x3ad3, 0x3b52, 0x3634, 0x3a70, 0x3b37, 0x2d59, 0x3893, 0x3978, 0x3515, 0x2733, 0x399b, 0x3a86, 0x3b9c, 0x3582, 0x38e0, 0x389d, 0x3b34, 0x2d41, 0x31d7, 0x2db9, 0x3474, 0x35f6, 0x38fa, 0x3296, 0x3a85, 0x3102, 0x3129, 0x38e1, 0x39d4, 0x36ec, 0x2fea, 0x3a44, 0x3393, 0x39e0, 0x3613, 0x3bc1, 0x3145, 0x23d7, 0x3a17, 0x3515, 0x3845, 0x38f7, 0x33ee, 0x3b6f, 0x38f9, 0x38c7, 0x3489, 0x352b, 0x3b74, 0x39ab, 0x32e2, 0x37be, 0x38e6, 0x34e1, 0x31a5, 0x3be8, 0x2b0f, 0x3b16, 0x3a43, 0x3ae7, 0x39a2, 0x36a2, 0x33a5, 0x3160, 0x33c8, 0x30de, 0x38d9, 0x33f6, 0x35b0, 0x2982, 0x38e6, 0x3ae7, 0x3bca, 0x3911, 0x397b, 0x3596, 0x3790, 0x38eb, 0x3aa2, 0x38f6, 0x381f, 0x398e, 0x343b, 0x39ef, 0x39a3, 0x35f2, 0x2c2c, 0x39e2, 0x3b7f, 0x3858, 0x3b83, 0x3b02, 0x33df, -0x379c, 0x3ae9, 0x340b, 0x368f, 0x3a50, 0x38a6, 0x3aa2, 0x3bd6, 0x3855, 0x3841, 0x3410, 0x348d, 0x3625, 0x38a0, 0x3bdc, 0x34e3, 0x38f6, 0x3274, 0x3a03, 0x3adc, 0x35df, 0x39f5, 0x38b4, 0x38cc, 0x384d, 0x394f, 0x3597, 0x3a9c, 0x3767, 0x3b65, 0x39f5, 0x3857, 0x38c2, 0x3b12, 0x3580, 0x32b0, 0x3595, 0x3723, 0x3b92, 0x347f, 0x3526, 0x377d, 0x35c3, 0x354b, 0x3651, 0x3ae9, 0x38c7, 0x3bc0, 0x30d2, 0x395a, 0x34f2, 0x370d, 0x3748, 0x35fb, 0x3401, 0x34e8, 0x3931, 0x3a34, 0x381e, 0x3886, 0x3afc, 0x3bbc, 0x3af0, 0x3a9c, 0x3a5b, 0x34ef, 0x3979, 0x3ab0, 0x31f2, 0x34f8, 0x1c09, 0x3a9c, 0x36a0, 0x3af7, 0x3b87, 0x3745, 0x39b8, 0x3582, 0x3be2, 0x3bd6, 0x373f, 0x3552, 0x31c1, 0x3a29, 0x2f37, 0x363b, 0x3a9d, 0x39ee, 0x3aa7, 0x3a03, 0x3551, 0x39ce, 0x3a95, 0x3894, 0x32d1, 0x36f2, -0x385b, 0x342c, 0x3643, 0x3be4, 0x3b88, 0x3b64, 0x3975, 0x3142, 0x3583, 0x2f10, 0x34bb, 0x3b4d, 0x3924, 0x2609, 0x3929, 0x274b, 0x3476, 0x3bfd, 0x3abd, 0x3874, 0x33cf, 0x3756, 0x3820, 0x31a3, 0x35dd, 0x39a3, 0x3359, 0x397e, 0x3a12, 0x3ad6, 0x3a25, 0x38ab, 0x392c, 0x3bca, 0x38a9, 0x2f91, 0x381c, 0x29fb, 0x390e, 0x34f7, 0x3a14, 0x39fa, 0x3104, 0x3488, 0x326e, 0x3593, 0x3b50, 0x2e3d, 0x3423, 0x3919, 0x38db, 0x308b, 0x3883, 0x3ba9, 0x38e2, 0x3b74, 0x2b9d, 0x303d, 0x35ef, 0x29a3, 0x364d, 0x2fb5, 0x3991, 0x3a6a, 0x3bf5, 0x391f, 0x373f, 0x3a0a, 0x3a6f, 0x3ad6, 0x35ba, 0x3889, 0x3982, 0x3b8b, 0x3a43, 0x3bfb, 0x3355, 0x3591, 0x39de, 0x34b8, 0x3b76, 0x2a30, 0x30cc, 0x33d3, 0x2f46, 0x380e, 0x3b6e, 0x3576, 0x388b, 0x3b42, 0x35de, 0x39ab, 0x32f3, 0x35dc, 0x3594, 0x3184, -0x3b0c, 0x3478, 0x3b70, 0x389e, 0x3a28, 0x3bf3, 0x3350, 0x35fc, 0x396f, 0x3a40, 0x3242, 0x3a86, 0x3bd1, 0x314b, 0x2e15, 0x394f, 0x391b, 0x3763, 0x31e4, 0x3908, 0x3b48, 0x39e5, 0x3aca, 0x3a5b, 0x3626, 0x37fa, 0x381c, 0x3867, 0x342c, 0x3842, 0x3b77, 0x3ad7, 0x39a8, 0x3867, 0x3b9c, 0x3938, 0x3969, 0x2f52, 0x3a11, 0x3982, 0x3963, 0x3873, 0x3278, 0x3193, 0x369e, 0x3848, 0x3a63, 0x399a, 0x3ba0, 0x39c1, 0x3987, 0x3595, 0x2993, 0x3517, 0x31f2, 0x35a9, 0x3628, 0x3a6b, 0x3bf2, 0x3a75, 0x3129, 0x3460, 0x38d0, 0x370e, 0x3a52, 0x381a, 0x3b57, 0x388c, 0x3a87, 0x2c5a, 0x3ac9, 0x3686, 0x2023, 0x2fcb, 0x2845, 0x36f2, 0x3ac6, 0x2f91, 0x2a3b, 0x37bc, 0x3865, 0x3b91, 0x3887, 0x3b8b, 0x2edc, 0x38e1, 0x3465, 0x348f, 0x3bfb, 0x393a, 0x3b42, 0x394e, 0x2f39, 0x364b, 0x37a7, 0x3b51, -0x3810, 0x35e7, 0x388f, 0x38fc, 0x3740, 0x322e, 0x2f12, 0x39d5, 0x3834, 0x366f, 0x2c74, 0x35da, 0x3901, 0x39c1, 0x39f1, 0x381a, 0xc05, 0x3541, 0x39d3, 0x326a, 0x3993, 0x3ba8, 0x3bc9, 0x3b2b, 0x390d, 0x3a4b, 0x38db, 0x39a7, 0x3043, 0x345e, 0x2e17, 0x2cd7, 0x38ba, 0x3a26, 0x3a7d, 0x385b, 0x3a40, 0x25b0, 0x3ba4, 0x3b75, 0x30f9, 0x3508, 0x3885, 0x375d, 0x3acf, 0x36fb, 0x334b, 0x3a92, 0x3bbd, 0x3b15, 0x392e, 0x3b14, 0x33b3, 0x3ac3, 0x39f8, 0x35ae, 0x391d, 0x3b24, 0x316a, 0x30e9, 0x3813, 0x3736, 0x3b34, 0x2db4, 0x395a, 0x37ac, 0x3a01, 0x3671, 0x37af, 0x368a, 0x2de1, 0x3a69, 0x3416, 0x3294, 0x344d, 0x393e, 0x399f, 0x1d48, 0x38db, 0x3b08, 0x3944, 0x3a99, 0x39d5, 0x35fb, 0x2828, 0x3a19, 0x38b3, 0x3209, 0x3660, 0x38fa, 0x3a01, 0x3ba5, 0x322e, 0x3048, 0x3bb1, 0x3be6, -0x3b6f, 0x327c, 0x3932, 0x3721, 0x39b5, 0x28b8, 0x3b6d, 0x3a9e, 0x393c, 0x35e6, 0x3b4d, 0x2515, 0x2921, 0x395a, 0x3762, 0x34c7, 0x38ed, 0x3b61, 0x35ab, 0x2d3c, 0x3132, 0x35ef, 0x37e1, 0x37cf, 0x383c, 0x3b5e, 0x3a9d, 0x39af, 0x362e, 0x3b02, 0x3a85, 0x3ad0, 0x3739, 0x38f9, 0x3a16, 0x30e5, 0x3b92, 0x39b6, 0x39c4, 0x3b4d, 0x30c6, 0x35c6, 0x3513, 0x2e7a, 0x32a9, 0x346a, 0x359a, 0x3ae2, 0x3a27, 0x3b87, 0x3934, 0x358e, 0x33cd, 0x37a7, 0x3bbb, 0x383f, 0x357d, 0x3714, 0x35c1, 0x3540, 0x35ff, 0x39a6, 0x3686, 0x39bd, 0x3906, 0x357b, 0x3b22, 0x3be6, 0x38e3, 0x3876, 0x3954, 0x2c83, 0x3acf, 0x3aef, 0x3a67, 0x3548, 0x38d1, 0x359f, 0x3b59, 0x3b61, 0x39c8, 0x392e, 0x39a6, 0x3a3a, 0x3ad5, 0x3831, 0x39ae, 0x3b0e, 0x3b00, 0x3acf, 0x30e1, 0x3751, 0x2f93, 0x39e5, 0x39c3, 0x3928, -0x2df5, 0x36e5, 0x2605, 0x3827, 0x3566, 0x38b3, 0x3345, 0x3869, 0x38e2, 0x31a5, 0x37cf, 0x3b01, 0x3add, 0x2e7e, 0x3573, 0x2f1a, 0x2d92, 0x3a72, 0x3821, 0x313b, 0x3970, 0x3943, 0x3af1, 0x3aeb, 0x37d8, 0x35c7, 0x38a8, 0x3abb, 0x3893, 0x33a0, 0x3a05, 0x3830, 0x37d5, 0x2708, 0x3685, 0x3907, 0x3a07, 0x39f9, 0x3889, 0x2fd1, 0x38c8, 0x3091, 0x3b6a, 0x3332, 0x35f0, 0x36f0, 0x35ce, 0x3b5e, 0x3927, 0x3bf3, 0x392e, 0x39e6, 0x3703, 0x38c6, 0x37db, 0x364c, 0x3984, 0x2bd1, 0x34b3, 0x3873, 0x332b, 0x38a5, 0x2b51, 0x3a1c, 0x3446, 0x2f6a, 0x3975, 0x2f99, 0x38f4, 0x3849, 0x35f2, 0x3734, 0x38da, 0x38b9, 0x39cb, 0x3a6d, 0x39ea, 0x3160, 0x2fde, 0x3acb, 0x2d2d, 0x325b, 0x3a86, 0x3b66, 0x3a07, 0x361c, 0x394a, 0x2b5d, 0x3a45, 0x2dfa, 0x3505, 0x3263, 0x39e5, 0x3655, 0x32de, 0x3295, -0x38c9, 0x2f7b, 0x2f9e, 0x2d42, 0x3b0c, 0x378c, 0x2dac, 0x22ef, 0x3603, 0x396c, 0x3460, 0x3a7a, 0x3b62, 0x3177, 0x3703, 0x2936, 0x39a0, 0x38e7, 0x3b0d, 0x331e, 0x34cb, 0x39f3, 0x3138, 0x3a4d, 0x35d5, 0x399f, 0x3229, 0x39d3, 0x385c, 0x28ea, 0x3895, 0x3653, 0x3561, 0x3927, 0x35b6, 0x34b7, 0x3983, 0x2d4f, 0x2ad7, 0x3562, 0x324b, 0x29e0, 0x3928, 0x3a3d, 0x3aa2, 0x3128, 0x357a, 0x3a20, 0x3b17, 0x2919, 0x3702, 0x35bd, 0x3578, 0x3a6c, 0x3a68, 0x38e2, 0x3888, 0x38cd, 0x36f9, 0x3164, 0x351b, 0x39c4, 0x219b, 0x301f, 0x31fb, 0x343d, 0x38d5, 0x3900, 0x1dad, 0x3a61, 0x385e, 0x385b, 0x388e, 0x38b1, 0x351e, 0x34dc, 0x35c8, 0x316e, 0x36b7, 0x3beb, 0x3646, 0x2d3d, 0x35ff, 0x33bb, 0x36bf, 0x3adf, 0x3a75, 0x3b1f, 0x3a07, 0x38f1, 0x390a, 0x2e57, 0x27c6, 0x3afa, 0x396a, 0x2d0d, -0x3173, 0x3b83, 0x3ace, 0x3631, 0x3aa6, 0x38b6, 0x37c5, 0x365e, 0x2f2a, 0x3528, 0x3be0, 0x3af3, 0x37e7, 0x3947, 0x292e, 0x3b1b, 0x3959, 0x3082, 0x279b, 0x3a83, 0x3052, 0x3b4e, 0x3948, 0x39e1, 0x3566, 0x38c3, 0x3738, 0x30ee, 0x2731, 0x2ce3, 0x39a0, 0x3b90, 0x36c8, 0x3980, 0x357c, 0x34cf, 0x3a92, 0x3ac1, 0x1fc8, 0x3b89, 0x399c, 0x380f, 0x366e, 0x3767, 0x3650, 0x399b, 0x3413, 0x357b, 0x3610, 0x3a32, 0x3b9e, 0x3ae2, 0x3a84, 0x399b, 0x3ad1, 0x38a6, 0x3a6e, 0x36d4, 0x3bcc, 0x3043, 0x30ad, 0x35c2, 0x3b07, 0x2a03, 0x3658, 0x39ba, 0x3bf3, 0x3b92, 0x38ad, 0x36dc, 0x398e, 0x35ed, 0x3409, 0x3b31, 0x36d5, 0x3221, 0x3b12, 0x3887, 0x38e0, 0x3550, 0x31fa, 0x2f61, 0x3bd0, 0x34b8, 0x3860, 0x30db, 0x3415, 0x3b42, 0x31cb, 0x39c3, 0x3125, 0x3b66, 0x2468, 0x3a27, 0x3b63, 0x3ae5, -0x3809, 0x37a7, 0x39a2, 0x35c1, 0x3baf, 0x3798, 0x3518, 0x3583, 0x3bfc, 0x3bab, 0x3ab0, 0x3822, 0x3589, 0x33b1, 0x33e7, 0x3899, 0x3b93, 0x36bd, 0x3a87, 0x343c, 0x39a1, 0x3a0a, 0x38c6, 0x3b47, 0x3b64, 0x2d7e, 0x3bfd, 0x2d2d, 0x3a8a, 0x306c, 0x3766, 0x340d, 0x38e7, 0x3617, 0x3bd3, 0x398c, 0x3819, 0x3171, 0x36e6, 0x391f, 0x30d4, 0x39d5, 0x31bb, 0x3833, 0x3012, 0x2db1, 0x3aab, 0x3903, 0x3749, 0x379e, 0x3089, 0x2d69, 0x251b, 0x3448, 0x3418, 0x3b4e, 0x37de, 0x38c6, 0x373b, 0x38aa, 0x3968, 0x3b36, 0x3bfe, 0x38c9, 0x3ada, 0x38ba, 0x354e, 0x3a6e, 0x373d, 0x380c, 0x374b, 0x34d2, 0x35fd, 0x3a5d, 0x3a8d, 0x3a14, 0x3abd, 0x346c, 0x3766, 0x3908, 0x3ad3, 0x3a52, 0x341b, 0x2ad8, 0x3abb, 0x3083, 0x2933, 0x3b56, 0x3a33, 0x3753, 0x3529, 0x3bfd, 0x34a1, 0x3229, 0x3be1, 0x3b71, -0x3a9e, 0x3764, 0x35e7, 0x3831, 0x398a, 0x3877, 0x3aec, 0x39f0, 0x3159, 0x389f, 0x38bc, 0x3878, 0x3bc7, 0x3a01, 0x2896, 0x39af, 0x3784, 0x3260, 0x38d9, 0x3bcf, 0x3bfa, 0x3bc3, 0x2b23, 0x387d, 0x2e5b, 0x35a6, 0x3468, 0x3933, 0x2783, 0x37e8, 0x3af2, 0x332e, 0x3b77, 0x3ac3, 0x3514, 0x3bcd, 0x3bd8, 0x372f, 0x3979, 0x3b30, 0x3993, 0x3888, 0x38d5, 0x3a18, 0x3be4, 0x2b5c, 0x2518, 0x3b55, 0x3bbc, 0x3ba0, 0x2f21, 0x33b6, 0x352c, 0x39b3, 0x3bc7, 0x3a59, 0x38ea, 0x3432, 0x3b9b, 0x3b74, 0x3baf, 0x34a2, 0x3457, 0x3593, 0x3967, 0x3879, 0x3b79, 0x3806, 0x30ca, 0x384c, 0x394c, 0x37a7, 0x21ce, 0x3bbc, 0x305c, 0x3b11, 0x3a1a, 0x3a64, 0x2e80, 0x27ac, 0x3635, 0x361d, 0x2d4c, 0x2264, 0x37ba, 0x165c, 0x2ec8, 0x386b, 0x1b60, 0x3992, 0x357f, 0x2b6b, 0x37da, 0x3942, 0x2d77, 0x2f25, -0x34e0, 0x3809, 0x395b, 0x33dd, 0x38af, 0x3546, 0x2f78, 0x3469, 0x3832, 0x34b7, 0x3839, 0x32c0, 0x3676, 0x3b1f, 0x3872, 0x317b, 0x3403, 0x3444, 0x3438, 0x39cb, 0x3102, 0x3a90, 0x381a, 0x2db5, 0x3b1f, 0x3a44, 0x3aff, 0x354f, 0x3578, 0x3921, 0x38b0, 0x301f, 0x2da3, 0x3062, 0x3596, 0x3a07, 0x382a, 0x37bd, 0x3634, 0x34b1, 0x31a5, 0x353f, 0x33ec, 0x3986, 0x37a7, 0x332d, 0x3874, 0x3046, 0x3b5b, 0x3bf8, 0x37a0, 0x3822, 0x36c4, 0x385c, 0x3868, 0x39ec, 0x3959, 0x39cc, 0x382e, 0x2505, 0x3471, 0x358c, 0x3905, 0x395b, 0x312b, 0x3706, 0x2eec, 0x3a2a, 0x3be9, 0x3a96, 0x2932, 0x3a84, 0x38b2, 0x3884, 0x3655, 0x341f, 0x30b6, 0x363a, 0x3a7d, 0x389b, 0x348c, 0x3b98, 0x38cc, 0x3699, 0x373b, 0x3ad9, 0x377b, 0x33b4, 0x8ef, 0x3a4c, 0x39a2, 0x3bbc, 0x3b01, 0x3a46, 0x3b56, 0x38db, -0x29ab, 0x29e8, 0x3830, 0x39d7, 0x38ff, 0x33a2, 0x2ed0, 0x38e9, 0x3bd2, 0x380b, 0x3940, 0x3b79, 0x3477, 0x36f4, 0x38b8, 0x382d, 0x3838, 0x37f7, 0x219f, 0x34ec, 0x3af5, 0x347d, 0x3a0e, 0x352e, 0x39f3, 0x39ae, 0x3624, 0x1a5a, 0x329c, 0x3a57, 0x254a, 0x361b, 0x3554, 0x3a17, 0x3888, 0x34c7, 0x3628, 0x3321, 0x39de, 0x34f1, 0x386f, 0x37ae, 0x3709, 0x3909, 0x3ae3, 0x3a0e, 0x3495, 0x3bb8, 0x363c, 0x3039, 0x37e4, 0x30ff, 0x164f, 0x37aa, 0x3b7d, 0x2c60, 0x3828, 0x36b8, 0x235d, 0x29b9, 0x3917, 0x24db, 0x3946, 0x2e75, 0x359c, 0x35c3, 0x3b91, 0x35b5, 0x341f, 0x3873, 0x343a, 0x326a, 0x215c, 0x34f3, 0x35a9, 0x2efa, 0x29dd, 0x3b37, 0x3594, 0x305f, 0x3b48, 0x3bc9, 0x3957, 0x3bac, 0x3638, 0x369e, 0x3a45, 0x3173, 0x3bad, 0x354c, 0x32d9, 0x38d2, 0x3b97, 0x3409, 0x3871, 0x3ac2, -0x3739, 0x2c5b, 0x3480, 0x3206, 0x2ede, 0x345e, 0x3806, 0x354c, 0x38ac, 0x3404, 0x35b5, 0x2250, 0x3957, 0x3831, 0x37c2, 0x331a, 0x36c9, 0x3b7c, 0x2a94, 0x3b00, 0x3722, 0x38c4, 0x35b9, 0x3b30, 0x3af4, 0x3758, 0x3290, 0x33a6, 0x31fe, 0x3937, 0x3b74, 0x3010, 0x3076, 0x344d, 0x3773, 0x22d7, 0x25f7, 0x2cde, 0x3999, 0x3859, 0x32b9, 0x3985, 0x3a7e, 0x39eb, 0x35f1, 0x3a36, 0x3735, 0x3337, 0x34da, 0x30ca, 0x3a16, 0x3523, 0x3802, 0x3a05, 0x3609, 0x310b, 0x3770, 0x389c, 0x2d46, 0x382e, 0x332f, 0x2d06, 0x39d5, 0x3b65, 0x3a48, 0x3b45, 0x2d13, 0x389d, 0x27e8, 0x34e9, 0x3a4d, 0x2802, 0x3903, 0x3ac4, 0x3bb7, 0x38ab, 0x3a80, 0x3725, 0x2f22, 0x358e, 0x3b17, 0x3a80, 0x39b0, 0x3bdd, 0x3aa6, 0x326d, 0x34d4, 0x2f73, 0x39c3, 0x297f, 0x210c, 0x2713, 0x3887, 0x3aec, 0x3a48, 0x3a58, -0x35dc, 0x2ea9, 0x3576, 0x3b80, 0x34c8, 0x3bfb, 0x3268, 0x336c, 0x3574, 0x3712, 0x349c, 0x3bb4, 0x3875, 0x3be8, 0x3b9f, 0x3436, 0x31e8, 0x3a22, 0x2d06, 0x3222, 0x3b99, 0x37ef, 0x3511, 0x3a6f, 0x36dc, 0x3b58, 0x353a, 0x3985, 0x3938, 0x3b64, 0x2753, 0x21b5, 0x2bb1, 0x3291, 0x3af9, 0x30eb, 0x3819, 0x376e, 0x357f, 0x2d58, 0x398d, 0x3966, 0x3a12, 0x32f5, 0x3b9e, 0x3bac, 0x38e8, 0x37bc, 0x3106, 0x3750, 0x39f4, 0x3bf3, 0x38d4, 0x3b41, 0x3b4e, 0x3722, 0x3536, 0x35b1, 0x3a85, 0x34f8, 0x3bcf, 0x351f, 0x3953, 0x39d4, 0x3abc, 0x3521, 0x389f, 0x2386, 0x350b, 0x3b1d, 0x35a3, 0x359c, 0x3607, 0x3b0a, 0x385b, 0x3927, 0x39f9, 0x3a58, 0x36c7, 0x3030, 0x3ba8, 0x348e, 0x2f3d, 0x3973, 0x3b3c, 0x3a02, 0x3abd, 0x3a2e, 0x28f3, 0x3b9b, 0x348e, 0x396b, 0x3963, 0x39dc, 0x3a38, 0x3b12, -0x3a7c, 0x378c, 0x3a31, 0x3068, 0x3790, 0x24a7, 0x39b5, 0x3629, 0x34a4, 0x3bd4, 0x357b, 0x3bc8, 0x356b, 0x3a00, 0x3776, 0x32ad, 0x3327, 0x2da5, 0x2f3a, 0x366c, 0x25f9, 0x34e3, 0x3b50, 0x25c1, 0x33c4, 0x3822, 0x34d7, 0x3bed, 0x3a05, 0x3bab, 0x37e9, 0x37fe, 0x3a3c, 0x380d, 0x369f, 0x3b86, 0x2460, 0x39aa, 0x38e7, 0x388b, 0x1e16, 0x2f0c, 0x39a6, 0x3a99, 0x39b7, 0x35b2, 0x3221, 0x3618, 0x3a08, 0x37fc, 0x3481, 0x3ba6, 0x3408, 0x3415, 0x3adf, 0x3b77, 0x19f6, 0x328c, 0x3830, 0x3996, 0x3afb, 0x3528, 0x37e6, 0x39e1, 0x380b, 0x35bc, 0x3b6c, 0x3a1f, 0x385b, 0x34c9, 0x3b7c, 0x35f5, 0x258c, 0x39ec, 0x30f8, 0x322d, 0x3b8a, 0x3159, 0x399f, 0x2f24, 0x346a, 0x3738, 0x39cb, 0x3949, 0x3a2e, 0x3b54, 0x3adf, 0x3b62, 0x3ab1, 0x316d, 0x3aa6, 0x2ec2, 0x38f8, 0x2b3b, 0x2861, 0x3026, -0x2a43, 0x3b6a, 0x3a73, 0x31d4, 0x352e, 0x3461, 0x345c, 0x34f2, 0x2c0e, 0x38b3, 0x2e79, 0x3ba2, 0x2c1e, 0x3314, 0x371a, 0x3973, 0x2f6f, 0x3a7b, 0x3031, 0x39f1, 0x3b78, 0x381b, 0x2d2b, 0x38a6, 0x3864, 0x3a6b, 0x3045, 0x3731, 0x2d60, 0x382b, 0x31e4, 0x3985, 0x3bce, 0x34fe, 0x39f0, 0x381d, 0x35d3, 0x38a2, 0x2eeb, 0x3278, 0x3ace, 0x344a, 0x37a5, 0x341b, 0x3a62, 0x3549, 0x365d, 0x3a82, 0x3842, 0x37de, 0x3b1f, 0x32d3, 0x3b8e, 0x3a44, 0x2cfd, 0x3885, 0x3b2e, 0x34b1, 0x3674, 0x37d8, 0x3bff, 0x3535, 0x3487, 0x2fbe, 0x3abe, 0x3266, 0x31ad, 0x340a, 0x3be2, 0x21a8, 0x3924, 0x39ea, 0x381b, 0x3351, 0x3aa6, 0x3903, 0x38b5, 0x3284, 0x3937, 0x3a34, 0x344a, 0x3a26, 0x312f, 0x39a8, 0x3b8d, 0x373e, 0x3b66, 0x2764, 0x386d, 0x20a8, 0x381c, 0x395e, 0x2ee0, 0x3820, 0x37f5, 0x3bc2, -0x3bd7, 0x37b6, 0x39dd, 0x3b50, 0x3621, 0x3726, 0x3484, 0x360f, 0x39fa, 0x3b62, 0x2318, 0x1a60, 0x35b8, 0x340b, 0x2d49, 0x35ec, 0x3783, 0x3b02, 0x3654, 0x3b4f, 0x337c, 0x3bff, 0x36aa, 0x34cc, 0x38cd, 0x3555, 0x39a0, 0x34da, 0x2840, 0x3897, 0x3bcc, 0x30ff, 0x347f, 0x3acf, 0x39ac, 0x2544, 0x352e, 0x36d2, 0x3643, 0x33f1, 0x3bd2, 0x30b1, 0x38f3, 0x3a47, 0x3863, 0x37e5, 0x2048, 0x388c, 0x2c07, 0x3abc, 0x342a, 0x3986, 0x38ee, 0x39ff, 0x3485, 0x3947, 0x386c, 0x39e0, 0x3a96, 0x3bdc, 0x3158, 0x3ba6, 0x28fc, 0x29dd, 0x3b4e, 0x3a74, 0x3834, 0x3b8d, 0x1c2f, 0x390f, 0x3009, 0x39db, 0x2dc1, 0x3802, 0x3bb2, 0x3428, 0x2dff, 0x3a33, 0x355f, 0x3122, 0x3152, 0x3615, 0x38d7, 0x38f6, 0x3624, 0x3ac4, 0x1527, 0x3a83, 0x2db8, 0x3847, 0x3afe, 0x3a7e, 0x307e, 0x3711, 0x3726, 0x3a68, -0x2b4b, 0x3b91, 0x360b, 0x3b18, 0x375e, 0x2be2, 0x3a8d, 0x2bbb, 0x2f24, 0x3271, 0x2e97, 0x3734, 0x3a56, 0x35d8, 0x355c, 0x1578, 0x33d1, 0x3b60, 0x2793, 0x350b, 0x34c6, 0x38d3, 0x387f, 0x3a3f, 0x3928, 0x3021, 0x384d, 0x36f8, 0x3413, 0x3be3, 0x3817, 0x2280, 0x36ef, 0x3795, 0x385b, 0x3be6, 0x323d, 0x3880, 0x35d7, 0x3201, 0x3329, 0x3a49, 0x36bf, 0x3585, 0x2df9, 0x3897, 0x338c, 0x313c, 0x343c, 0x3ab6, 0x3927, 0x3514, 0x3944, 0x3bfa, 0x347e, 0x32a5, 0x357f, 0x3b96, 0x375b, 0x38cc, 0x3bc9, 0x384c, 0x39ec, 0x35f4, 0x36a6, 0x3bf9, 0x2aa9, 0x3b18, 0x3172, 0x3bc9, 0x3b41, 0x2e94, 0x39cd, 0x368f, 0x3903, 0x2d54, 0x3a45, 0x3378, 0x3a00, 0x392f, 0x39f1, 0x38c5, 0x2b64, 0x390d, 0x3b77, 0x391d, 0x343c, 0x3627, 0x3826, 0x344a, 0x3a0a, 0x37cb, 0x3b06, 0x3b16, 0x3656, 0x3a47, -0x3be3, 0x35b8, 0x37af, 0x3765, 0x38e8, 0x3bf3, 0x344e, 0x39f7, 0x3320, 0x3590, 0x30b6, 0x395c, 0x3abf, 0x34fe, 0x359a, 0x3a55, 0x39fd, 0x3a41, 0x3a8c, 0x382b, 0x3741, 0x36bb, 0x387f, 0x358a, 0x36f9, 0x3bc8, 0x33f7, 0x34bd, 0x3460, 0x3aa3, 0x39dc, 0x31f7, 0x38e1, 0x3b21, 0x384d, 0x38bb, 0x38ce, 0x381d, 0x38d7, 0x349a, 0x2d43, 0x3251, 0x3917, 0x39aa, 0x3871, 0x3a59, 0x3a1c, 0x382c, 0x37c1, 0x3a9e, 0x2f8f, 0x32a5, 0x1583, 0x319d, 0x38ff, 0x393c, 0x38e8, 0x2da0, 0x396a, 0x3987, 0x3887, 0x339d, 0x360c, 0x37d5, 0x3ad6, 0x3986, 0x3559, 0x3a60, 0x392b, 0x2e25, 0x2878, 0x3184, 0x309b, 0x35c8, 0x38cf, 0x358b, 0x3804, 0x3943, 0x312d, 0x3a2a, 0x29ab, 0x3b0d, 0x3959, 0x33c5, 0x3bfe, 0x33f0, 0x3a98, 0x29f1, 0x39ee, 0x37da, 0x3a1c, 0x3896, 0x387b, 0x3a07, 0x2e45, 0x3932, -0x3556, 0x38f6, 0x3826, 0x3299, 0x2e6c, 0x3957, 0x3687, 0x35e5, 0x34ea, 0x34ab, 0x2b4e, 0x3a50, 0x365f, 0x39d6, 0x3968, 0x3ad5, 0x3966, 0x305e, 0x2ef6, 0x3471, 0x343d, 0x3bab, 0x2e4b, 0x3853, 0x3a96, 0x3be5, 0x2a10, 0x3790, 0x34c6, 0x3aa6, 0x3864, 0x3b07, 0x31b7, 0x3b38, 0x25f8, 0x2f15, 0x34dc, 0x3bbd, 0x379f, 0x363d, 0x3b1a, 0x3862, 0x37c5, 0x32a9, 0x3590, 0x3074, 0x31de, 0x30f6, 0x37ed, 0x3722, 0x34fd, 0x3a1f, 0x3580, 0x37c5, 0x3b84, 0x3be4, 0x357c, 0x36ed, 0x30d5, 0x38cd, 0x343e, 0x3831, 0x397f, 0x36db, 0x383a, 0x24e2, 0x3a9d, 0x39dd, 0x36f7, 0x360a, 0x2be4, 0x2dca, 0x321c, 0x361b, 0x378e, 0xe22, 0x2486, 0x3550, 0x3900, 0x34a9, 0x3b2f, 0x3829, 0x1f15, 0x3906, 0x3220, 0x25b1, 0x38b1, 0x398d, 0x382e, 0x298d, 0x39a5, 0x3bb2, 0x31fd, 0x3964, 0x36f6, 0x3835, -0x3907, 0x3b4f, 0x3b17, 0x390d, 0x2b5c, 0x3533, 0x3a28, 0x345e, 0x3954, 0x386e, 0x3b0f, 0x321c, 0x3bce, 0x326d, 0x3a39, 0x3a70, 0x38b1, 0x38c6, 0x3aa4, 0x3aa1, 0x38b6, 0x3a65, 0x3b54, 0x3230, 0x397a, 0x3b63, 0x3869, 0x3003, 0x368e, 0x3a48, 0x3a19, 0x38be, 0x3bb0, 0x2e6e, 0x3ad2, 0x2a53, 0x35d9, 0x39d2, 0x2dd0, 0x32b2, 0x3180, 0x229f, 0x3bcc, 0x38d6, 0x3b74, 0x3bd1, 0x37f7, 0x380d, 0x3928, 0x3b54, 0x35ff, 0x3457, 0x3470, 0x3155, 0x3a41, 0x342c, 0x3af8, 0x2de0, 0x3608, 0x36ab, 0x3bdd, 0x35e3, 0x2aa9, 0x37d0, 0x3a4c, 0x35dc, 0x2e36, 0x37a3, 0x39b3, 0x2e4b, 0x3b11, 0x323a, 0x38de, 0x3ba3, 0x38ff, 0x3823, 0x310d, 0x3b05, 0x39f8, 0x3abf, 0x3bcf, 0x36c4, 0x3ae2, 0x36cd, 0x3a8f, 0x3a91, 0x368f, 0x37aa, 0x3969, 0x39aa, 0x3bff, 0x3422, 0x37c5, 0x35f0, 0x3b46, 0x3a21, -0x384a, 0x3984, 0x3349, 0x2014, 0x38ea, 0x28c4, 0x3520, 0x3a22, 0x3bec, 0x32e8, 0x275e, 0x3b5a, 0x3a2d, 0x3a3f, 0x3690, 0x321c, 0x3b62, 0x392f, 0x3a2c, 0x36b7, 0x38a2, 0x3205, 0x3520, 0x3b6f, 0x3378, 0x3911, 0x3833, 0x3991, 0x380b, 0x3a4a, 0x38a6, 0x3865, 0x3aa6, 0x38e7, 0x397a, 0x38fa, 0x3b10, 0x3440, 0x39a2, 0x3566, 0x365d, 0x307a, 0x2d18, 0x3978, 0x389c, 0x39f5, 0x38df, 0x29c3, 0x3a62, 0x3b75, 0x39b5, 0x2015, 0x307b, 0x39e1, 0x288f, 0x3936, 0x31ee, 0x3be2, 0x35e1, 0x391f, 0x345d, 0x39ff, 0x390c, 0x32cb, 0x38ce, 0x3441, 0x3a3a, 0x3713, 0x2fce, 0x321b, 0x2deb, 0x34e3, 0x3ade, 0x2a6e, 0x3bff, 0x3882, 0x3bec, 0x3ad9, 0x3abc, 0x3bb4, 0x36d8, 0x3617, 0x3015, 0x3a62, 0x3115, 0x384d, 0x3a19, 0x35cf, 0x3468, 0x300f, 0x371e, 0x34ba, 0x378b, 0x37fb, 0x3af8, 0x2fad, -0x2bed, 0x3854, 0x38ab, 0x3879, 0x2ff5, 0x3808, 0x38d5, 0x3ba2, 0x390c, 0x3ba1, 0x3343, 0x373d, 0x34b8, 0x37b5, 0x3653, 0x2db9, 0x3433, 0x318b, 0x39c9, 0x333d, 0x2ca0, 0x3b89, 0x3002, 0x34f2, 0x3969, 0x3a48, 0x1df8, 0x2421, 0x3b9d, 0x3b5a, 0x398a, 0x394b, 0x2fea, 0x296d, 0x3b39, 0x3696, 0x3b4d, 0x340d, 0x3b7e, 0x39ba, 0x2f44, 0x37af, 0x38e4, 0x3a86, 0x3b2d, 0x3954, 0x2bed, 0x3506, 0x2501, 0x3bc9, 0x3a58, 0x3abb, 0x384d, 0x33d6, 0x34d0, 0x3468, 0x3bbf, 0x3a17, 0x3534, 0x3b31, 0x3a7a, 0x3644, 0x36e3, 0x3a50, 0x2284, 0x3b1e, 0x37ed, 0x3ba9, 0x3919, 0x39d3, 0x3235, 0x3bc0, 0x3938, 0x32ea, 0x32fc, 0x3bc0, 0x3a91, 0x3af2, 0x3410, 0x38b5, 0x2ca8, 0x3097, 0x2b7c, 0x3528, 0x3b69, 0x3602, 0x3637, 0x383d, 0x34a3, 0x3ac4, 0x2c6b, 0x302e, 0x3b38, 0x34a3, 0x3519, 0x3674, -0x2f15, 0x2cb7, 0x3a46, 0x3663, 0x3b63, 0x38b4, 0x3b34, 0x3ba3, 0x2d14, 0x3422, 0x3701, 0x38e1, 0x39fe, 0x3112, 0x38dd, 0x357c, 0x2e9f, 0x35d1, 0x36ec, 0x306e, 0x38ea, 0x36c8, 0x34c7, 0x38e4, 0x3aee, 0x3ab5, 0x355e, 0x395c, 0x242b, 0x3197, 0x3832, 0x3987, 0x3682, 0x38f9, 0x3aaa, 0x209e, 0x35d4, 0x36a0, 0x3779, 0x39ff, 0x33e5, 0x3138, 0x35a6, 0x362f, 0x3b4e, 0x3417, 0x27c8, 0x39db, 0x3004, 0x3b6b, 0x30bd, 0x31e3, 0x3988, 0x32f4, 0x3ac7, 0x305a, 0x248b, 0x2dae, 0x21bf, 0x34c6, 0x2993, 0x3b6b, 0x3530, 0x3acc, 0x3563, 0x2e8c, 0x3492, 0x3954, 0x388b, 0x3b35, 0x3880, 0x38c4, 0x34c6, 0x3bb8, 0x360d, 0x28f6, 0x390a, 0x39e5, 0x2f09, 0x38e5, 0x34ca, 0x3634, 0x38b2, 0x39b7, 0x2d73, 0x396d, 0x3490, 0x39fd, 0x38dd, 0x39b9, 0x3adb, 0x326e, 0x3afc, 0x3bf5, 0x3bfc, 0x2b6a, -0x3440, 0x36eb, 0x32c4, 0x3be7, 0x3215, 0x3a10, 0x2dd5, 0x3999, 0x3bcd, 0x39a9, 0x351a, 0x36ad, 0x3732, 0x28a4, 0x205e, 0x30a4, 0x3a0b, 0x399e, 0x356a, 0x2c98, 0x3912, 0x3471, 0x3b45, 0x38df, 0x3b91, 0x303f, 0x3bf6, 0x374a, 0x3813, 0x3739, 0x30a9, 0x3155, 0x385b, 0x3952, 0x3229, 0x3639, 0x39c8, 0x3827, 0x333c, 0x3978, 0x38be, 0x3a90, 0x35b5, 0x3655, 0x33be, 0x39df, 0x3b24, 0x392a, 0x2bda, 0x3895, 0x3ac0, 0x352c, 0x2c77, 0x3893, 0x3ac3, 0x3305, 0x3699, 0x2a79, 0x3bf9, 0x3821, 0x39fa, 0x38b3, 0x3428, 0x3564, 0x3073, 0x37ba, 0x2877, 0x3b5f, 0x2c54, 0x35da, 0x3a33, 0x37d7, 0x396b, 0x3408, 0x36a3, 0x2d1b, 0x3860, 0x3bf5, 0x36cc, 0x3b43, 0x3846, 0x34ce, 0x3b1d, 0x34ca, 0x351d, 0x323d, 0x37ce, 0x3ac1, 0x35e5, 0x3b80, 0x3b7e, 0x3a78, 0x38e5, 0x3106, 0x3892, 0x35a5, -0x38f9, 0x3ac7, 0x3886, 0x3a8d, 0x3a5c, 0x39f0, 0x2c1e, 0x3ad7, 0x37bf, 0x366d, 0x3715, 0x290c, 0x320b, 0x3639, 0x3442, 0x33eb, 0x3602, 0x2b7b, 0x344e, 0x3906, 0x3780, 0x372b, 0x39f5, 0x39d7, 0x3742, 0x35d3, 0x3672, 0x2d25, 0x397c, 0x3953, 0x3970, 0x37d2, 0x38f2, 0x3790, 0x30c7, 0x3417, 0x31e2, 0x3b53, 0x3587, 0x3ad8, 0x3875, 0x3908, 0x2c27, 0x33b7, 0x3ad5, 0x3641, 0x3bcb, 0x3b70, 0x3b87, 0x346d, 0x397f, 0x25be, 0x3137, 0x3946, 0x36c4, 0x3b67, 0x3a20, 0x36e7, 0x31b1, 0x3948, 0x3bf5, 0x2b26, 0x34fe, 0x3522, 0x30e8, 0x2630, 0x37ff, 0x368f, 0x389e, 0x2d92, 0x37b4, 0x39b1, 0x3532, 0x39cf, 0x39ae, 0x3a2f, 0x3862, 0x3656, 0x39cb, 0x3a84, 0x37e3, 0x3b06, 0x3901, 0x2ccb, 0x2b4e, 0x348b, 0x3abf, 0x3a1f, 0x2e1e, 0x2d75, 0x39e5, 0x3143, 0x39ff, 0x38c2, 0x3ba0, 0x3a64, -0x3969, 0x2ffd, 0x39fd, 0x399d, 0x3863, 0x3896, 0x3ab1, 0x3815, 0x3bd8, 0x34fb, 0x3419, 0x3bf7, 0x38cc, 0x3659, 0x2bbc, 0x3bb0, 0x3abb, 0x3554, 0x394a, 0x3ad8, 0x2ea5, 0x3bf6, 0x37bb, 0x2363, 0x3aef, 0x36dc, 0x2dfb, 0x3721, 0x3558, 0x390c, 0x36df, 0x2ff3, 0x3b70, 0x266e, 0x3b66, 0x3957, 0x2884, 0x34e4, 0x3589, 0x3864, 0x3a4b, 0x30d7, 0x3611, 0x34ec, 0x36d2, 0x37f9, 0x3abe, 0x2be6, 0x39ed, 0x336a, 0x3aba, 0x396c, 0x3838, 0x23cb, 0x3bbb, 0x3944, 0x2f70, 0x2d41, 0x3b28, 0x3b81, 0x305c, 0x3a88, 0x38a6, 0x3829, 0x33c9, 0x34e0, 0x3a41, 0x346a, 0x3b1b, 0x378f, 0x3a1a, 0x395f, 0x3ba3, 0x3072, 0x3918, 0x302d, 0x3949, 0x3a56, 0x37ac, 0x3807, 0x3b7f, 0x3461, 0x3a65, 0x349a, 0x3b40, 0x2c4d, 0x39d3, 0x3b6e, 0x2f82, 0x3797, 0x3bdb, 0x3b73, 0x30ee, 0x3b5a, 0x2fa1, 0x3be4, -0x3b02, 0x38ec, 0x3b86, 0x3569, 0x3bef, 0x3029, 0x3368, 0x3ad9, 0x2e8e, 0x3bd8, 0x34cb, 0x2db1, 0x3aa2, 0x38da, 0x2ca5, 0x3ad4, 0x3842, 0x3a34, 0x3777, 0x3a3d, 0x3b37, 0x3bc7, 0x32ef, 0x3bd1, 0x3bd9, 0x34b4, 0x301f, 0x38af, 0x235f, 0x3595, 0x3a7d, 0x3a9a, 0x3b4b, 0x2801, 0x318e, 0x2ce5, 0x39ab, 0x39d5, 0x3986, 0x3823, 0x2b17, 0x395e, 0x35e3, 0x3740, 0x39e9, 0x3882, 0x384c, 0x36b7, 0x3426, 0x396b, 0x3b1d, 0x2c8e, 0x3bb6, 0x30a8, 0x37b3, 0x35f6, 0x3a37, 0x367f, 0x3877, 0x342f, 0x3939, 0x317c, 0x38b9, 0x3b47, 0x3437, 0x3533, 0x3ba2, 0x3b25, 0x3b39, 0x36d3, 0x34b1, 0x39b0, 0x30f6, 0x349a, 0x1e90, 0x3a7f, 0x3559, 0x37ed, 0x3aa9, 0x360f, 0x3445, 0x3256, 0x3925, 0x3974, 0x3897, 0x3ab0, 0x3410, 0x36d2, 0x367d, 0x2f29, 0x3917, 0x34d4, 0x3996, 0x3450, 0x3486, 0x3b67, -0x2c33, 0x3407, 0x3708, 0x321b, 0x39aa, 0x388f, 0x3427, 0x39c1, 0x3990, 0x3a24, 0x3970, 0x3bb4, 0x34be, 0x366e, 0x3bfc, 0x3748, 0x3bcc, 0x2d09, 0x394d, 0x398c, 0x3b19, 0x3855, 0x3954, 0x3268, 0x32ae, 0x3a02, 0x39e1, 0x3122, 0x3a60, 0x3b17, 0x3be2, 0x3b90, 0x36a0, 0x3962, 0x3b1d, 0x3871, 0x3368, 0x3114, 0x355d, 0x39ea, 0x3a34, 0x35dd, 0x3976, 0x3b29, 0x239b, 0x3576, 0x2bf6, 0x35f5, 0x314f, 0x3af9, 0x3535, 0x3a04, 0x3b55, 0x3a1c, 0x1f50, 0x348a, 0x3ab2, 0x39d1, 0x3bad, 0x255b, 0x344f, 0x24a5, 0x29c8, 0x38aa, 0x3a5f, 0x34b3, 0x395e, 0x35b9, 0x3a6b, 0x3ad1, 0x357f, 0x38c1, 0x37c8, 0x3b16, 0x31cb, 0x3464, 0x3a8b, 0x39ce, 0x3592, 0x3a6c, 0x39a6, 0x303b, 0x34eb, 0x3019, 0x3a0a, 0x3996, 0x3a65, 0x3bb8, 0x3804, 0x2a64, 0x3481, 0x3452, 0x39e7, 0x3be7, 0x34e4, 0x39ae, -0x3a52, 0x3a35, 0x3365, 0x35c6, 0x1e02, 0x2e5d, 0x399f, 0x375a, 0x3b3f, 0x3a1d, 0x34a7, 0x37fd, 0x34f5, 0x3a0f, 0x2909, 0x2ece, 0x350b, 0x38e1, 0x3a4e, 0x2c7f, 0x384d, 0x3aab, 0x2fc3, 0x3852, 0x3473, 0x3936, 0x359c, 0x3750, 0x3602, 0x36c7, 0x3815, 0x3790, 0x3980, 0x3544, 0x39b9, 0x3bcd, 0x3c00, 0x3560, 0x3aaa, 0x3b5a, 0x3301, 0x2c5a, 0x3a33, 0x2ccf, 0x3a7e, 0x364c, 0x393c, 0x34a1, 0x2da5, 0x372d, 0x350b, 0x3977, 0x37f4, 0x37d6, 0x3536, 0x3861, 0x360a, 0x3abb, 0x3871, 0x389e, 0x383e, 0x3b3e, 0x2744, 0x33d3, 0x3b94, 0x3028, 0x3bb7, 0x3736, 0x2da7, 0x2b10, 0x3a43, 0x345c, 0x38ac, 0x3574, 0x3689, 0x350d, 0x3bb1, 0x3acc, 0x38eb, 0x345f, 0x39f8, 0x325c, 0x36d3, 0x30a4, 0x3b49, 0x2b46, 0x3692, 0x3a37, 0x3788, 0x358d, 0x391b, 0x3872, 0x3632, 0x3ae4, 0x3b05, 0x35e4, -0x39ac, 0x34fc, 0x37e4, 0x3b1b, 0x380e, 0x2d0a, 0x38e3, 0x394b, 0x2c45, 0x3bcf, 0x3b0f, 0x38a0, 0x3456, 0x3668, 0x38ce, 0x3992, 0x38c0, 0x35fa, 0x320a, 0x38d9, 0x3bb9, 0x3334, 0x396b, 0x398f, 0x3854, 0x3bbf, 0x34c2, 0x2ae6, 0x3808, 0x3625, 0x29bb, 0x3aec, 0x246c, 0x3573, 0x3ae7, 0x3879, 0x3bdf, 0x2c64, 0x33f4, 0x3a63, 0x39c0, 0x3a35, 0x38f8, 0x38c6, 0x3b30, 0x3a3b, 0x2ec2, 0x32da, 0x316d, 0x2136, 0x3be5, 0x332b, 0x36c6, 0x38db, 0x3058, 0x2d9e, 0x37f9, 0x3733, 0x3ba2, 0x1d40, 0x339d, 0x2d02, 0x39e3, 0x3952, 0x380f, 0x3a19, 0x3795, 0x3799, 0x3547, 0x3b2a, 0x37c2, 0x3958, 0x39d1, 0x3303, 0x3612, 0x3aa8, 0x3ac2, 0x38f3, 0x2d4a, 0x37e8, 0x37e4, 0x39c1, 0x3bab, 0x36da, 0x3809, 0x2fe2, 0x3bd9, 0x3328, 0x397b, 0x3456, 0x324e, 0x34c7, 0x37d2, 0x3017, 0x3a40, 0x2c48, -0x39cc, 0x2c1f, 0x3a56, 0x3a9b, 0x3987, 0x2d9c, 0x38db, 0x39c4, 0x3a54, 0x373c, 0x367c, 0x3b9d, 0x38af, 0x3649, 0x38bc, 0x382e, 0x2f5f, 0x34b9, 0x2d83, 0x3720, 0x3b84, 0x39f7, 0x38b1, 0x3600, 0x3ba5, 0x3880, 0x39d6, 0x33af, 0x3bcd, 0x3bc0, 0x38aa, 0x277a, 0x3548, 0x2f9b, 0x3521, 0x3a8d, 0x3622, 0x2fd5, 0x35ca, 0x3405, 0x3399, 0x3428, 0x3ac0, 0x34e7, 0x3866, 0x3454, 0x3631, 0x2247, 0x34a1, 0x398b, 0x388d, 0x39cb, 0x3461, 0x3937, 0x351e, 0x3b71, 0x36a4, 0x3a61, 0x3ac2, 0x3b05, 0x39b4, 0x3b1c, 0x3bdf, 0x3835, 0x3398, 0x3931, 0x38c3, 0x3922, 0x292f, 0x39a7, 0x3688, 0x3817, 0x32d1, 0x37e9, 0x382b, 0x355c, 0x39a1, 0x38cc, 0x36ee, 0x35c6, 0x395f, 0x2c4a, 0x39db, 0x29f5, 0x3886, 0x3b23, 0x38db, 0x3bc0, 0x345a, 0x39da, 0x3ac1, 0x3b5f, 0x3ae9, 0x368f, 0x397e, 0x3b89, -0x3805, 0x3adf, 0x3610, 0x3a37, 0x3947, 0x3618, 0x31d9, 0x3b3a, 0x3a13, 0x376f, 0x3141, 0x3b63, 0x39ce, 0x3ad7, 0x28dc, 0x340b, 0x30e4, 0x35e0, 0x354f, 0x387c, 0x37fa, 0x3455, 0x38b9, 0x3726, 0x2d54, 0x3338, 0x343a, 0x3a7c, 0x24e3, 0x3892, 0x3a8e, 0x3a8f, 0x37a8, 0x39e6, 0x398a, 0x3b42, 0x3360, 0x3a57, 0x38e5, 0x3afb, 0x3719, 0x36cf, 0x387c, 0x3a4e, 0x2edd, 0x3a36, 0x25b5, 0x3135, 0x346b, 0x3b0e, 0x2f3a, 0x2ee6, 0x384b, 0x3aab, 0x3b0b, 0x34e7, 0x30ea, 0x34e8, 0x38ef, 0x3899, 0x387a, 0x3786, 0x2456, 0x2ccb, 0x3af0, 0x3699, 0x35d2, 0x379d, 0x39bd, 0x36f8, 0x27a8, 0x397a, 0x2511, 0x35a2, 0x3a21, 0x3848, 0x27c8, 0x20df, 0x3a83, 0x3bb3, 0x2044, 0x38ec, 0x3095, 0x39cf, 0x2f28, 0x3bd6, 0x3939, 0x360c, 0x2d7b, 0x389c, 0x3585, 0x3bcc, 0x11d9, 0x3a41, 0x3591, 0x3813, -0x38ae, 0x3998, 0x3a8d, 0x31c7, 0x3af7, 0x3392, 0x3586, 0x3881, 0x3a64, 0x3b82, 0x3a29, 0x3497, 0x3b46, 0x3083, 0x3523, 0x3685, 0x3bb9, 0x3575, 0x317b, 0x38da, 0x3b2a, 0x38cc, 0x3764, 0x3103, 0x396e, 0x3bad, 0x35e5, 0x3a46, 0x3b72, 0x37d0, 0x3359, 0x3b8e, 0x3845, 0x2fc1, 0x2b03, 0x3837, 0x3186, 0x366f, 0x185a, 0x2ceb, 0x36be, 0x390a, 0x3513, 0x31d2, 0x357a, 0x3769, 0x392e, 0x39cb, 0x31a1, 0x3197, 0x3283, 0x39f2, 0x37d5, 0x2d92, 0x3599, 0x31f7, 0x30d1, 0x3b0b, 0x39b9, 0x3434, 0x324f, 0x3627, 0x321a, 0x30b3, 0x39f5, 0x387d, 0x32e6, 0x3a6c, 0x3597, 0x34ad, 0x2fd5, 0x3a5e, 0x2cbd, 0x34c2, 0x3a9c, 0x369e, 0x3192, 0x321c, 0x2600, 0x37af, 0x3841, 0x3a09, 0x3348, 0x309c, 0x3396, 0x1439, 0x34de, 0x3978, 0x3938, 0x3600, 0x28e3, 0x2d7e, 0x3296, 0x36ac, 0x35d4, 0x265a, -0x318c, 0x383d, 0x3955, 0x3473, 0x3ad5, 0x3949, 0x3923, 0x2f75, 0x31e1, 0x36ba, 0x3b86, 0x393c, 0x3563, 0x38a8, 0x37ee, 0x378a, 0x38d6, 0x38e6, 0x3922, 0x2c66, 0x33fc, 0x3875, 0x388d, 0x3b8b, 0x295c, 0x3ac3, 0x3432, 0x2d94, 0x37f3, 0x2a0b, 0x38c1, 0x3bbb, 0x3735, 0x3b36, 0x3a8b, 0x3291, 0x3908, 0x39d7, 0x375a, 0x2f3a, 0x330d, 0x398d, 0x3890, 0x3bf0, 0x38ba, 0x3ac0, 0x21f8, 0x3b00, 0x396c, 0x34d9, 0x3409, 0x3463, 0x3187, 0x3522, 0x2bb8, 0x358a, 0x30e2, 0x33bd, 0x38db, 0x36f9, 0x2f32, 0x3a39, 0x3884, 0x3be5, 0x3879, 0x3126, 0x3878, 0x3775, 0x397e, 0x3a5f, 0x3974, 0x3a58, 0x3ada, 0x3b0a, 0x3917, 0x3b63, 0x3176, 0x384b, 0x3a52, 0x3b01, 0x3ace, 0x3b86, 0x336a, 0x3647, 0x3877, 0x37b3, 0x2a41, 0x2db4, 0x189d, 0x39e4, 0x3470, 0x2d16, 0x2c98, 0x3a47, 0x3495, 0x38fd, -0x3bae, 0x322f, 0x39ff, 0x3075, 0x20be, 0x3583, 0x3b80, 0x39b5, 0x34a9, 0x3a4b, 0x362a, 0x3a70, 0x3964, 0x3925, 0x37ec, 0x3b19, 0x30e9, 0x38a7, 0x3688, 0x386d, 0x3a48, 0x2faa, 0x3b5f, 0x3693, 0x367a, 0x374c, 0x3b97, 0x3beb, 0x36ce, 0x37fc, 0x38fe, 0x39c9, 0x38d5, 0x25d5, 0x36e3, 0x3a77, 0x3987, 0x3bad, 0x3a48, 0x3871, 0x318d, 0x371f, 0x3614, 0x3a6e, 0x3662, 0x3bae, 0x3a41, 0x2973, 0x3aa6, 0x29d1, 0x3910, 0x3bca, 0x34d4, 0x24ea, 0x3611, 0x37c5, 0x32cc, 0x3a93, 0x3a4c, 0x3b10, 0x3790, 0x3181, 0x346f, 0x39b8, 0x3720, 0x3a7e, 0x39c7, 0x2d80, 0x324f, 0x3bf8, 0x373f, 0x3039, 0x3872, 0x2ad3, 0x2b33, 0x3803, 0x39d1, 0x38c2, 0x2ce6, 0x3943, 0x375f, 0x37ca, 0x37a5, 0x3a00, 0x20f2, 0x3449, 0x2fc9, 0x39bb, 0x3775, 0x364c, 0x3926, 0x39ae, 0x3b18, 0x38ad, 0x3803, 0x3032, -0x2d61, 0x322b, 0x383d, 0x3a27, 0x3437, 0x290e, 0x3314, 0x3222, 0x3862, 0x3712, 0x310c, 0x3984, 0x3b97, 0x35b6, 0x39dd, 0x305e, 0x3986, 0x3a78, 0x2e12, 0x3091, 0x3ae9, 0x3b2a, 0x3887, 0x3a31, 0x2fd3, 0x381c, 0x3082, 0x3934, 0x37a5, 0x3b6a, 0x35a3, 0x320e, 0x39f1, 0x2ad6, 0x3295, 0x388a, 0x3baa, 0x372c, 0x3345, 0x3985, 0x3b40, 0x2caa, 0x3264, 0x30ad, 0x3965, 0x3bcd, 0x3830, 0x3921, 0x3ae3, 0x3bdd, 0x3b55, 0x3804, 0x38c9, 0x3430, 0x3995, 0x3b93, 0x37b7, 0x398e, 0x348e, 0x3a2b, 0x3ad6, 0x336c, 0x35c2, 0x3a01, 0x3284, 0x3a0f, 0x306c, 0x37e3, 0x3836, 0x3aea, 0x3490, 0x30bd, 0x3bb3, 0x3495, 0x3b7a, 0x3908, 0x3905, 0x34ff, 0x3a18, 0x2c6d, 0x31f6, 0x393b, 0x2b1c, 0x3b05, 0x3367, 0x383c, 0x3a5c, 0x34d2, 0x37dd, 0x364e, 0x38a6, 0x30ac, 0x36ab, 0x3272, 0x3a96, 0x34e8, -0x3705, 0x2f61, 0x3879, 0x3ae0, 0x2bec, 0x3a46, 0x39fc, 0x3b64, 0x3964, 0x390a, 0x3827, 0x30c6, 0x38c4, 0x3897, 0x3855, 0x38cf, 0x3074, 0x39fe, 0x3513, 0x38b8, 0x3a90, 0x3506, 0x3a0b, 0x39bf, 0x3ba3, 0x35b1, 0x3942, 0x30dc, 0x3a64, 0x3624, 0x39bd, 0x3725, 0x1c9a, 0x34cb, 0x335a, 0x3b3b, 0x3329, 0x2bda, 0x3368, 0x3b70, 0x3096, 0x3754, 0x2fd4, 0x35de, 0x2d13, 0x3618, 0x3025, 0x3684, 0x35b2, 0x3732, 0x384a, 0x2dbe, 0x317b, 0x3a1e, 0x388c, 0x3729, 0x393b, 0x377d, 0x3be1, 0x3a7b, 0x2776, 0x38c5, 0x3afb, 0x3334, 0x33d8, 0x3b7e, 0x369a, 0x39be, 0x3aa4, 0x3afb, 0x3a6c, 0x38c3, 0x3a6a, 0x3911, 0x2a60, 0x3543, 0x3249, 0x3592, 0x2bd4, 0x3a76, 0x3ab9, 0x38a3, 0x399a, 0x3b60, 0x3a47, 0x31ec, 0x385b, 0x3677, 0x3909, 0x3915, 0x30fb, 0x3ae8, 0x3a23, 0x38e7, 0x2364, 0x38f0, -0x3bb5, 0x31e2, 0x2bb9, 0x3443, 0x3631, 0x392e, 0x389f, 0x3447, 0x3ba3, 0x3a47, 0x3673, 0x3ab7, 0x3acf, 0x3871, 0x3770, 0x3865, 0x3139, 0x2830, 0x3b65, 0x38ab, 0x35d1, 0x38c0, 0x3684, 0x2fa5, 0x36ba, 0x38cb, 0x3a9d, 0x34b8, 0x3b1a, 0x3bcb, 0x3830, 0x3ab6, 0x2eec, 0x3832, 0x3b33, 0x3678, 0x38a2, 0x31ff, 0x3a7d, 0x3bd3, 0x34e8, 0x3819, 0x392f, 0x3704, 0x3b01, 0x25fd, 0x3729, 0x3557, 0x3bc3, 0x2e36, 0x3323, 0x3aed, 0x357a, 0x3b4b, 0x3412, 0x3637, 0x3b92, 0x3360, 0x39c2, 0x3776, 0x32a8, 0x3896, 0x2f5b, 0x328a, 0x31d9, 0x3bb4, 0x3ba2, 0x3a2c, 0x3a12, 0x305a, 0x31f9, 0x3523, 0x32b6, 0x3822, 0x2624, 0x3491, 0x3811, 0x3238, 0x3acb, 0x3a6f, 0x3662, 0x38b9, 0x3b68, 0x3a24, 0x35fb, 0x3be2, 0x37d9, 0x347b, 0x33b2, 0x3a36, 0x3816, 0x39cf, 0x377e, 0x2cee, 0x300a, 0x330d, -0x359c, 0x3826, 0x2baa, 0x3b80, 0x3b04, 0x380d, 0x3a4e, 0x2f7c, 0x3667, 0x3be5, 0x3b0a, 0x380a, 0x360d, 0x3be3, 0x3b83, 0x39c0, 0x391b, 0x285a, 0x3b4b, 0x38cb, 0x3a85, 0x3aeb, 0x3853, 0x355f, 0x3ab5, 0x33be, 0x38ff, 0x382f, 0x3be6, 0x3916, 0x36ff, 0x3a3e, 0x3b88, 0x3812, 0x3687, 0x2c26, 0x3921, 0x394b, 0x2e6f, 0x3aa9, 0x3b77, 0x3848, 0x3b3e, 0x38b4, 0x3811, 0x3659, 0x31d5, 0x3977, 0x3b06, 0x39b4, 0x34bf, 0x31cc, 0x3b30, 0x3a6e, 0x3712, 0x3b52, 0x3b7a, 0x37bd, 0x3484, 0x3bdd, 0x343d, 0x3bb5, 0x3952, 0x2f41, 0x3a12, 0x3b3e, 0x27fe, 0x39d2, 0x39f4, 0x2ca1, 0x3485, 0x36ba, 0x3156, 0x3905, 0x3ba8, 0x39cd, 0x3b64, 0x3ba5, 0x3c00, 0x3ae8, 0x3452, 0x3a39, 0x3861, 0x3b8e, 0x37b1, 0x3bcd, 0x350e, 0x379d, 0x3b83, 0x34cb, 0x3205, 0x39fc, 0x3669, 0x3508, 0x2a1c, 0x39f9, -0x3876, 0x3602, 0x2b8f, 0x36be, 0x3885, 0x2caa, 0x3532, 0x31a8, 0x3956, 0x3139, 0x3709, 0x2fce, 0x3987, 0x3ab4, 0x3406, 0x3727, 0x32dd, 0x3ac9, 0x356b, 0x30c9, 0x2cbb, 0x3552, 0x2c69, 0x39ce, 0x3ad5, 0x3753, 0x290e, 0x36c4, 0x3a7c, 0x3b32, 0x2e36, 0x37db, 0x38b0, 0x3912, 0x34f7, 0x228b, 0x391f, 0x2fbd, 0x3850, 0x3a5e, 0x3a5b, 0x3b82, 0x3a6e, 0x349c, 0x38ce, 0x3bcb, 0x3b4f, 0x31e8, 0x38bd, 0x34ad, 0x3451, 0x3318, 0x34d5, 0x388f, 0x39cf, 0x3844, 0x38d4, 0x3421, 0x38fa, 0x269e, 0x293c, 0x34f0, 0x3438, 0x372c, 0x34b0, 0x36d5, 0x2aa6, 0x3805, 0x3821, 0x31db, 0x39fc, 0x3aa9, 0x26e4, 0x34b9, 0x3215, 0x214a, 0x39e6, 0x3278, 0x39b1, 0x2e97, 0x34e4, 0x3ae7, 0x3bb6, 0x3b79, 0x388d, 0x3b2d, 0x3642, 0x32fe, 0x3b36, 0x39b3, 0x3957, 0x2d0f, 0x34e9, 0x3aef, 0x381d, 0x3b22, -0x2fcf, 0x38e8, 0x3648, 0x2d35, 0x3773, 0x3936, 0x38f7, 0x242a, 0x3bef, 0x3bfa, 0x389a, 0x34e9, 0x328b, 0x3392, 0x3753, 0x3a4c, 0x3ada, 0x2937, 0x38c5, 0x3a6a, 0x2fae, 0x2d27, 0x349e, 0x3be1, 0x34fe, 0x3604, 0x3a69, 0x3b92, 0x384b, 0x387b, 0x28ae, 0x347e, 0x3b9f, 0x3a73, 0x384d, 0x3a08, 0x3961, 0x35a6, 0x38fe, 0x36cc, 0x3962, 0x3456, 0x3ae6, 0x2782, 0x38f8, 0x3bc1, 0x3639, 0x301e, 0x38cf, 0x3873, 0x32d4, 0x3a2c, 0x3aba, 0x3a42, 0x204d, 0x37ae, 0x3adb, 0x3b1a, 0x29ed, 0x30ba, 0x381f, 0x36c0, 0x3602, 0x2dde, 0x3735, 0x3701, 0x3bae, 0x3645, 0x3412, 0x3601, 0x37d5, 0x3aee, 0x39b3, 0x3a06, 0x3ac6, 0x3822, 0x363e, 0x3af8, 0x32f9, 0x39c9, 0x2c2d, 0x3672, 0x29bf, 0x3a06, 0x3875, 0x3758, 0x35cc, 0x3b92, 0x3a44, 0x35ac, 0x3b23, 0x2c6f, 0x3aa4, 0x3676, 0x3be5, 0x3137, -0x38fb, 0x371e, 0x38ad, 0x39cf, 0x347c, 0x3a24, 0x3887, 0x3811, 0x396e, 0x39d1, 0x33cc, 0x3bb5, 0x34e3, 0x39dd, 0x35c5, 0x38be, 0x37cf, 0x372a, 0x3ada, 0x3acd, 0x332c, 0x38c5, 0x35fe, 0x2e0c, 0x388e, 0x3480, 0x3bac, 0x39ad, 0x3770, 0x3aec, 0x3ba5, 0x38eb, 0x3b10, 0x33fd, 0x26db, 0x319c, 0x3aa4, 0x3895, 0x379b, 0x349c, 0x3ab3, 0x3840, 0x3b70, 0x3b4e, 0x2e46, 0x3aff, 0x2f7f, 0x3732, 0x3991, 0x346c, 0x39ff, 0x2be5, 0x36cb, 0x3bb1, 0x35d4, 0x3883, 0x3ba4, 0x3362, 0x3866, 0x394c, 0x38c4, 0x3b6f, 0x378d, 0x2bdf, 0x3443, 0x3959, 0x30ae, 0x3a18, 0x2472, 0x2f6a, 0x3111, 0x3a6d, 0x394e, 0x35c4, 0x3834, 0x3bc5, 0x3afc, 0x3291, 0x34b3, 0x3863, 0x3778, 0x3a6c, 0x3903, 0x2d65, 0x372e, 0x2dfb, 0x32ff, 0x3586, 0x34d2, 0x2d32, 0x3a7f, 0x3002, 0x1d54, 0x34a5, 0x3b4b, 0x3455, -0x3975, 0x27ae, 0x37e0, 0x34c3, 0x31f6, 0x3896, 0x3993, 0x29df, 0x31c1, 0x2e25, 0x2cae, 0x3889, 0x3826, 0x33cd, 0x3bc4, 0x2400, 0x38a7, 0x313d, 0x3826, 0x3670, 0x3922, 0x25bf, 0x390e, 0x3b99, 0x358a, 0x344d, 0x3926, 0x3b4d, 0x239f, 0x3576, 0x3576, 0x356b, 0x3b40, 0x2ebc, 0x34ff, 0x2e6c, 0x3817, 0x35bf, 0x35fc, 0x285e, 0x3b5d, 0x3908, 0x3848, 0x3441, 0x321f, 0x28a5, 0x3a73, 0x342f, 0x37db, 0x39ff, 0x3ac1, 0x3409, 0x3808, 0x34aa, 0x3aee, 0x3590, 0x2ea7, 0x2db9, 0x3b2f, 0x3845, 0x3a0d, 0x34d7, 0x3902, 0x3b44, 0x37b4, 0x3737, 0x3174, 0x394a, 0x3769, 0x3b0a, 0x370f, 0x31a6, 0x3b3d, 0x3a37, 0x3bc7, 0x2d68, 0x363a, 0x31cc, 0x3289, 0x3983, 0x3825, 0x3bf4, 0x34b9, 0x37fe, 0x2de5, 0x3975, 0x3ac9, 0x3083, 0x2c4d, 0x37a2, 0x3544, 0x36ac, 0x387c, 0x30a6, 0x321c, 0x37cc, -0x3a9e, 0x3310, 0x3bf9, 0x36c9, 0x3845, 0x3877, 0x3b5c, 0x3b20, 0x392f, 0x398c, 0x3b42, 0x2c1e, 0x3229, 0x395f, 0x3749, 0x377f, 0x3390, 0x3a80, 0x35b4, 0x2ed5, 0x3795, 0x3067, 0x3998, 0x3a51, 0x3b44, 0x3a52, 0x397d, 0x37fc, 0x298f, 0x2d3d, 0x344b, 0x363e, 0x39bd, 0x3590, 0x3b40, 0x37f3, 0x2d81, 0x3295, 0x35ff, 0x3b02, 0x37f2, 0x37e0, 0x1de3, 0x375e, 0x2fd9, 0x3271, 0x3548, 0x363e, 0x39bb, 0x3817, 0x327a, 0x2bb1, 0x3bbf, 0x3bf3, 0x38e9, 0x39be, 0x392b, 0x2f02, 0x34c5, 0x39c3, 0x38ab, 0x393b, 0x1e1d, 0x3bc3, 0x3972, 0x3be2, 0x3391, 0x3a3f, 0x3b68, 0x33a1, 0x384a, 0x3503, 0x3353, 0x343d, 0x3ac3, 0x2e04, 0x2f98, 0x3020, 0x38f3, 0x3814, 0x3a21, 0x3b92, 0x3083, 0x35fe, 0x3993, 0x32cb, 0x3b67, 0x2f42, 0x3070, 0x32a5, 0x2d98, 0x3b98, 0x31b4, 0x306f, 0x2dc2, 0x3ad5, -0x38d9, 0x38e4, 0x31e3, 0x38d7, 0x3b05, 0x3645, 0x388a, 0x3964, 0x3ab3, 0x39d3, 0x35f4, 0x2777, 0x34e4, 0x3874, 0x3bf6, 0x3b51, 0x3b2e, 0x3887, 0x3bf3, 0x3b3a, 0x348d, 0x35f3, 0x3a72, 0x3bd9, 0x31ec, 0x2d30, 0x34e5, 0x36c2, 0x3907, 0x33da, 0x2e75, 0x2fa8, 0x2fbf, 0x342e, 0x385d, 0x3421, 0x3897, 0x3841, 0x195c, 0x322b, 0x315d, 0x3325, 0x306d, 0x394b, 0x2f4e, 0x3896, 0x3a65, 0x3bf9, 0x30dd, 0x3957, 0x39a5, 0x2f7f, 0x3a29, 0x38c9, 0x35d6, 0x3248, 0x371d, 0x3412, 0x3660, 0x3609, 0x3944, 0x3b17, 0x3af3, 0x3b89, 0x39da, 0x3764, 0x344d, 0x3462, 0x3907, 0x388a, 0x38f0, 0x2960, 0x393b, 0x32f0, 0x3956, 0x31d3, 0x3328, 0x33fd, 0x3256, 0x2913, 0x3665, 0x397f, 0x36ad, 0x31db, 0x3aa5, 0x39db, 0x329b, 0x38f0, 0x32a5, 0x3051, 0x3855, 0x3a9c, 0x3870, 0x3a27, 0x3b93, 0x3942, -0x34e3, 0x37d4, 0x36b0, 0x384f, 0x2eef, 0x2e05, 0x35bc, 0x3bee, 0x34c7, 0x374f, 0x3811, 0x39c4, 0x2de0, 0x3bda, 0x3700, 0x2dc6, 0x349f, 0x29cf, 0x3b8b, 0x39b9, 0x2e31, 0x39f9, 0x3815, 0x3076, 0x38cc, 0x39c1, 0x398c, 0x3a20, 0x3865, 0x34d3, 0x3ba8, 0x3b16, 0x2057, 0x248a, 0x3859, 0x2e3f, 0x30e1, 0x3842, 0x3627, 0x383d, 0x3bb8, 0x34c8, 0x3ad0, 0x3b23, 0x388b, 0x3014, 0x3235, 0x357c, 0x3ba7, 0x3977, 0x3a32, 0x3aba, 0x30f5, 0x31d2, 0x3857, 0x393a, 0x3894, 0x351a, 0x3805, 0x35ee, 0x3967, 0x3862, 0x2a1b, 0x3afc, 0x3a4a, 0x38a0, 0x2f0d, 0x38d3, 0x393c, 0x3a13, 0x3973, 0x3831, 0x3a43, 0x3865, 0x3b80, 0x395a, 0x3275, 0x3874, 0x3735, 0x399c, 0x395e, 0x3abb, 0x2fd8, 0x381a, 0x3834, 0x2ae7, 0x3b2f, 0x39f3, 0x38be, 0x3ade, 0x351f, 0x3900, 0x34e5, 0x389a, 0x31d6, 0x3be4, -0x394f, 0x3a3d, 0x3b26, 0x3a2f, 0x399e, 0x2e0a, 0x3bc9, 0x38d2, 0x3920, 0x343d, 0x3a0b, 0x2c78, 0x38aa, 0x3b54, 0x3639, 0x37b3, 0x377b, 0x3b67, 0x3836, 0x2d52, 0x3b65, 0x38fb, 0x3836, 0x32cf, 0x3a40, 0x367e, 0x3a47, 0x3b47, 0x2d4d, 0x36fc, 0x398a, 0x3b7c, 0x3290, 0x3b4f, 0x3bf6, 0x25de, 0x3937, 0x3798, 0x3b0f, 0x3a95, 0x3bbc, 0x3beb, 0x34cf, 0x269a, 0x3b63, 0x3543, 0x366f, 0x344f, 0x361b, 0x3518, 0x35fb, 0x39aa, 0x3922, 0x3969, 0x3024, 0x2965, 0x2f2d, 0x2e6c, 0x385e, 0x3ab9, 0x34af, 0x3aec, 0x3af1, 0x348b, 0x2f86, 0x3bda, 0x3888, 0x3909, 0x3ba0, 0x3743, 0x3b40, 0x3306, 0x3999, 0x36c0, 0x35f8, 0x3531, 0x3457, 0x397a, 0x3a86, 0x37b8, 0x3bf2, 0x3bb3, 0x378e, 0x3bc7, 0x38f8, 0x3515, 0x3be1, 0x26dd, 0x28e4, 0x3a19, 0x3a28, 0x289c, 0x38ed, 0x3a77, 0x32b0, 0x392e, -0x2fcb, 0x3b43, 0x357f, 0x3987, 0x3056, 0x39dc, 0x3bc7, 0x34c0, 0x3a41, 0x3b4a, 0x3317, 0x2230, 0x3b8c, 0x363d, 0x25bf, 0x3b25, 0x39e3, 0x39d5, 0x37bd, 0x3a52, 0x3a14, 0x1aec, 0x3756, 0x353a, 0x3826, 0x331e, 0x34f7, 0x3690, 0x3973, 0x3269, 0x2c1c, 0x1bea, 0x32da, 0x2d21, 0x346d, 0x351f, 0x2df0, 0x3be0, 0x3bee, 0x3bb2, 0x3b6f, 0x3596, 0x38a2, 0x3408, 0x2281, 0x3864, 0x3516, 0x3b24, 0x3a8d, 0x3a63, 0x3806, 0x36e1, 0x3b6b, 0x3656, 0x3b8f, 0x31d3, 0x3a70, 0x39f8, 0x3953, 0x31eb, 0x3a05, 0x3a58, 0x2f81, 0x395b, 0x3721, 0x3353, 0x35db, 0x2d72, 0x3786, 0x3ab5, 0x3b4b, 0x3bd0, 0x3607, 0x35b4, 0x3a79, 0x32e2, 0x3299, 0x36a2, 0x381c, 0x2fb4, 0x2b3f, 0x3a01, 0x390c, 0x29d1, 0x2b63, 0x3a4b, 0x3309, 0x34f5, 0x3b7b, 0x348d, 0x3a7e, 0x30ca, 0x3269, 0x363a, 0x35a4, 0x3735, -0x36c4, 0x396c, 0x377a, 0x2fac, 0x3bba, 0x3511, 0x38fd, 0x3be0, 0x392d, 0x3864, 0x3bef, 0x3ae7, 0x2cd2, 0x37e5, 0x31c9, 0x332d, 0x3be0, 0x326a, 0x309a, 0x387e, 0x39f2, 0x3302, 0x39ee, 0x3956, 0x3b30, 0x3829, 0x2894, 0x368f, 0x361d, 0x35cd, 0x3b8c, 0x3677, 0x3a95, 0x3a41, 0x382f, 0x3457, 0x3194, 0x31bc, 0x3abd, 0x392a, 0x387b, 0x3912, 0x388a, 0x3051, 0x3a9b, 0x2fc4, 0x3468, 0x33f7, 0x20fe, 0x3489, 0x1d98, 0x39f4, 0x2f82, 0x2c37, 0x391e, 0x37ef, 0x3bb0, 0x3538, 0x1e8b, 0x3985, 0x3805, 0x3823, 0x32eb, 0x36e7, 0x3569, 0x387d, 0x30f2, 0x38d2, 0x39b5, 0x3544, 0x3009, 0x377c, 0x3a65, 0x342a, 0x2cc6, 0x3983, 0x2720, 0x2760, 0x3443, 0x3856, 0x3949, 0x37b5, 0x3944, 0x33e1, 0x320c, 0x3a83, 0x39be, 0x36f2, 0x3bf3, 0x384d, 0x35dd, 0x3150, 0x36ee, 0x2f4b, 0x3bd4, 0x2816, -0x3bb4, 0x3590, 0x3bf3, 0x38dd, 0x3472, 0x37f9, 0x38ec, 0x25b3, 0x3aac, 0x394d, 0x2e48, 0x387c, 0x39ed, 0x350a, 0x36e1, 0x3ad8, 0x3580, 0x3a08, 0x38d7, 0x390f, 0x370e, 0x30ed, 0x2fb2, 0x37f2, 0x35a8, 0x38bb, 0x389a, 0x3960, 0x35e1, 0x35d1, 0x3799, 0x3356, 0x375c, 0x3889, 0x38e7, 0x385e, 0x30f1, 0x3032, 0x3006, 0x3356, 0x36b1, 0x3af5, 0x342c, 0x3a9f, 0x386d, 0x3a8d, 0x2670, 0x3ba5, 0x3907, 0x39cb, 0x389b, 0x2914, 0x2db1, 0x2f6f, 0x3aa3, 0x346a, 0x3716, 0x303d, 0x3991, 0x3a21, 0x3b53, 0x3589, 0x3a6b, 0x34f7, 0x2d99, 0x380b, 0x392f, 0x36d9, 0x2e31, 0x30a2, 0x3569, 0x2657, 0x36dd, 0x306d, 0x36b5, 0x3ac4, 0x3a7a, 0x36f7, 0x38d6, 0x3b02, 0x355e, 0x3a19, 0x3bc4, 0x365c, 0x3b77, 0x3660, 0x3bc9, 0x380a, 0x3673, 0x3a4a, 0x3b19, 0x3843, 0x328c, 0x1a13, 0x3bd6, 0x3be2, -0x388d, 0x30c3, 0x3998, 0x389e, 0x3354, 0x3174, 0x3922, 0x3970, 0x2962, 0x3bc2, 0x3b1e, 0x3bd7, 0x2d84, 0x3573, 0x3846, 0x3703, 0x31ec, 0x3a5a, 0x3459, 0x2674, 0x291f, 0x3b76, 0x364f, 0x316f, 0x3a52, 0x3866, 0x34de, 0x33fc, 0x37fc, 0x3a20, 0x3ac2, 0x3893, 0x3208, 0x38d0, 0x3b1c, 0x39cd, 0x36f6, 0x301f, 0x3965, 0x3971, 0x3afa, 0x34d9, 0x2e34, 0x35a3, 0x390d, 0x2e83, 0x3b5a, 0x3acb, 0x377e, 0x2416, 0x38b8, 0x3a2e, 0x3a04, 0x3062, 0x2ef1, 0x3584, 0x2afb, 0x382a, 0x3a74, 0x37da, 0x3730, 0x32a6, 0x3866, 0x389e, 0x3850, 0x3551, 0x3939, 0x3a0e, 0x2deb, 0x3b97, 0x38e9, 0x39b6, 0x35b5, 0x3999, 0x38fe, 0x1918, 0x326d, 0x3477, 0x34e5, 0x3855, 0x38f8, 0x3307, 0x385d, 0x3b17, 0x36d8, 0x3020, 0x3a66, 0x3bf9, 0x3b17, 0x28cf, 0x3abb, 0x38b3, 0x3bc0, 0x31e4, 0x30d8, 0x3090, -0x393f, 0x350a, 0x2171, 0x31dd, 0x3aa3, 0x3962, 0x2a30, 0x3a0c, 0x3983, 0x3474, 0x38a4, 0x30fc, 0x348a, 0x3afd, 0x3ab0, 0x2fca, 0x3bb3, 0x3be9, 0x3984, 0x3a8d, 0x3119, 0x3b78, 0x3bd6, 0x2ef6, 0x31ef, 0x27c9, 0x39be, 0x32fb, 0x2ce0, 0x368b, 0x3612, 0x32b6, 0x2d58, 0x3787, 0x3811, 0x3745, 0x3b86, 0x32f4, 0x3941, 0x3936, 0x2ab3, 0x39cd, 0x3851, 0x395d, 0x355e, 0x383e, 0x380a, 0x3b5d, 0x34d8, 0x3292, 0x3124, 0x31af, 0x3942, 0x2d54, 0x3b54, 0x3b1b, 0x3bbd, 0x3507, 0x324e, 0x3364, 0x2514, 0x3af6, 0x3236, 0x361c, 0x3721, 0x39b4, 0x3b86, 0x3907, 0x3316, 0x2c3b, 0x3bf4, 0x3abb, 0x38b8, 0x38e5, 0x38e4, 0x3941, 0x318e, 0x3563, 0x318a, 0x3953, 0x328a, 0x2ed0, 0x3782, 0x38b3, 0x3632, 0x35f0, 0x3a31, 0x3112, 0x3b49, 0x3b8e, 0x31f8, 0x3a70, 0x3bf1, 0x375e, 0x381c, 0x3791, -0x38f7, 0x2f6a, 0x3b74, 0x3198, 0x3815, 0x3184, 0x39cc, 0x37c1, 0x3b16, 0x39dd, 0x3690, 0x36ee, 0x3ba5, 0x383d, 0x3bee, 0x37f9, 0x3617, 0x399a, 0x3597, 0x3703, 0x3281, 0x3047, 0x35b6, 0x3835, 0x3708, 0x3634, 0x3965, 0x39b8, 0x3a00, 0x3996, 0x2bd0, 0x2ced, 0x36de, 0x35e6, 0x3b4d, 0x3888, 0x3bc5, 0x290f, 0x3baf, 0x388e, 0x3721, 0x3896, 0x3565, 0x33f9, 0x312b, 0x37c8, 0x3889, 0x376b, 0x3bb6, 0x375e, 0x35bf, 0x2f6b, 0x39f6, 0x34ba, 0x3936, 0x3969, 0x39de, 0x3ad4, 0x39eb, 0x3a5c, 0x33e3, 0x3367, 0x3297, 0x3bea, 0x3bcf, 0x3806, 0x39b7, 0x3b63, 0x37d2, 0x385b, 0x3a88, 0x3a6a, 0x3447, 0x385b, 0x3078, 0x347b, 0x3790, 0x32c5, 0x30f3, 0x33d2, 0x3864, 0x35a7, 0x359b, 0x32c2, 0x3bf7, 0x379d, 0x39ed, 0x3964, 0x367e, 0x2f3e, 0x3b0a, 0x3a32, 0x3b2b, 0x287e, 0x2ee6, 0x3ba2 +uint16_t y_inp_2D [32][32] = { +0x3150, 0x2dc1, 0x3033, 0x31f5, 0x3bb6, 0x3bff, 0x39f9, 0x3662, 0x3720, 0x351d, 0x384b, 0x3093, 0x3b9d, 0x35ad, 0x3695, 0x3466, 0x2300, 0x3445, 0x33ae, 0x3586, 0x38a3, 0x3bdb, 0x33a2, 0x379b, 0x3a0e, 0x38b0, 0x39ba, 0x379b, 0x39d3, 0x3a51, 0x3b30, 0x3794, +0x3b76, 0x3042, 0x38cc, 0x2dfc, 0x3b1a, 0x37fb, 0x38f7, 0x3824, 0x386f, 0x38c7, 0x36ee, 0x3a9c, 0x38d3, 0x2c67, 0x3a80, 0x2f30, 0x3328, 0x3721, 0x3790, 0x34e5, 0x3a6c, 0x3643, 0x3934, 0x3034, 0x38d4, 0x362e, 0x3b4b, 0x3408, 0x30c2, 0x370e, 0x3b31, 0x3b16, +0x3b6b, 0x39d4, 0x339c, 0x381e, 0x313e, 0x3671, 0x3ae2, 0x3479, 0x3940, 0x342d, 0x3925, 0x370a, 0x35d8, 0x2dad, 0x3888, 0x24b9, 0x375d, 0x34bd, 0x3243, 0x2ebb, 0x3970, 0x3a21, 0x3a07, 0x3877, 0x3888, 0x3569, 0x372d, 0x2ac1, 0x331e, 0x384d, 0x3996, 0x34a4, +0x35c1, 0x33a9, 0x21ed, 0x3a42, 0x388d, 0x34e4, 0x33c3, 0x34f9, 0x3a7b, 0x33fb, 0x2cdd, 0x3b0e, 0x333b, 0x3973, 0x34fc, 0x3771, 0x32ea, 0x2de4, 0x31a8, 0x3946, 0x3657, 0x3a4e, 0x36f6, 0x2829, 0x3ba2, 0x3bdc, 0x3bb3, 0x306c, 0x398d, 0x3a1f, 0x3991, 0x3846, +0x3547, 0x3292, 0x2e85, 0x31ed, 0x3979, 0x3a90, 0x28a4, 0x3bed, 0x36d8, 0x340e, 0x3b6a, 0x3ab6, 0x3824, 0x382b, 0x3ac3, 0x3811, 0x36d7, 0x3519, 0x3a92, 0x3a42, 0x29d1, 0x383a, 0x3a9b, 0x300e, 0x2cd3, 0x39cd, 0x3874, 0x3a07, 0x2eb1, 0x3b86, 0x3ad8, 0x3a5d, +0x3712, 0x284a, 0x38c1, 0x3bec, 0x39c0, 0x32cd, 0x3ad8, 0x3bce, 0x3817, 0x3896, 0x3aa7, 0x3870, 0x3996, 0x32cc, 0x3a4c, 0x3757, 0x3814, 0x3b65, 0x3acb, 0x376e, 0x34c0, 0x3609, 0x3bf0, 0x3b24, 0x3b29, 0x3848, 0x34b7, 0x398a, 0x220c, 0x3498, 0x3a8c, 0x3883, +0x38c4, 0x3af6, 0x3a42, 0x2dd6, 0x3147, 0x3717, 0x3a8e, 0x3af9, 0x3296, 0x38ef, 0x34fa, 0x3555, 0x3b29, 0x38de, 0x315e, 0x3773, 0x3b67, 0x3116, 0x38ec, 0x357c, 0x35d0, 0x2518, 0x3958, 0x2a03, 0x37d9, 0x3699, 0x3a1e, 0x3230, 0x3b13, 0x36d4, 0x3b2a, 0x39ad, +0x3b10, 0x351a, 0x3b97, 0x3326, 0x2b54, 0x3b7d, 0x386f, 0x373e, 0x37fa, 0x389b, 0x3b90, 0x3292, 0x3975, 0x38f3, 0x37f1, 0x3590, 0x3810, 0x2fd7, 0x3bf7, 0x3a5a, 0x3a1c, 0x34dd, 0x354c, 0x32f8, 0x3095, 0x321e, 0x39e0, 0x395c, 0x3717, 0x357f, 0x394a, 0x34b1, +0x3ba4, 0x380c, 0x3604, 0x2f50, 0x348d, 0x3828, 0x3a9f, 0x39ce, 0x32ca, 0x3906, 0x3ab2, 0x2ca5, 0x38c9, 0x362a, 0x34b2, 0x29dc, 0x3a36, 0x3052, 0x31b7, 0x3589, 0x387c, 0x3401, 0x3b22, 0x3ad6, 0x3ae8, 0x3238, 0x3494, 0x3502, 0x3717, 0x3a6c, 0x3229, 0x368c, +0x3056, 0x3a56, 0x3498, 0x39eb, 0x2864, 0x342d, 0x39e0, 0x34a1, 0x2b99, 0x3a04, 0x38ff, 0x328c, 0x34d9, 0x387d, 0x3a3c, 0x32e5, 0x39eb, 0x3984, 0x34dd, 0x38a7, 0x373f, 0x39b4, 0x3235, 0x2f58, 0x2f39, 0x3800, 0x3758, 0x3939, 0x39fc, 0x3a4b, 0x38bf, 0x30ee, +0x345e, 0x39c8, 0x3a6d, 0x3262, 0x3b81, 0x31dc, 0x3a15, 0x3bd0, 0x36af, 0x36de, 0x37d5, 0x39d7, 0x3ad3, 0x3ac1, 0x3109, 0x35ea, 0x31c6, 0x398d, 0x3987, 0x3a4a, 0x34d2, 0x2ed2, 0x35e6, 0x352c, 0x39eb, 0x3bd6, 0x3a5b, 0x39d1, 0x34aa, 0x3ade, 0x394b, 0x38a1, +0x2bed, 0x38de, 0x3811, 0x3813, 0x391a, 0x374b, 0x3829, 0x3725, 0x38f0, 0x3583, 0x3966, 0x3a7d, 0x375a, 0x38fe, 0x3696, 0x361c, 0x39a8, 0x35f0, 0x38e1, 0x3003, 0x3595, 0x316e, 0x3862, 0x3af8, 0x3af2, 0x34c8, 0x381d, 0x37d8, 0x3893, 0x3a9c, 0x3989, 0x308c, +0x30cc, 0x2538, 0x399d, 0x3919, 0x399e, 0x21cc, 0x38e9, 0x30f8, 0x3a20, 0x3b3c, 0x3990, 0x259c, 0x3143, 0x3080, 0x3967, 0x3afb, 0x3a1b, 0x3779, 0x2eeb, 0x39f3, 0x379a, 0x369c, 0x3985, 0x3a1b, 0x3ba6, 0x3a53, 0x28d5, 0x3881, 0x31d9, 0x3a34, 0x3bd9, 0x393a, +0x3601, 0x2c6e, 0x3636, 0x3298, 0x39bb, 0x3a08, 0x38db, 0x35ad, 0x3a09, 0x36a6, 0x3bc7, 0x3bac, 0x34ae, 0x3291, 0x290b, 0x3250, 0x2648, 0x333d, 0x2bf3, 0x34b1, 0x30e0, 0x351f, 0x3a74, 0x38dc, 0x3883, 0x2841, 0x35e1, 0x390d, 0x3a50, 0x3abd, 0x386d, 0x3bb7, +0x3b94, 0x36b7, 0x3a49, 0x332f, 0x3a1d, 0x354b, 0x3bab, 0x3346, 0x3417, 0x351e, 0x3b6d, 0x391a, 0x2db3, 0x3b1c, 0x3a4a, 0x37b7, 0x36cf, 0x3a56, 0x39c4, 0x3be9, 0x34f0, 0x39be, 0x3691, 0x1ba5, 0x3888, 0x3040, 0x3ae1, 0x3b9b, 0x398f, 0x3a49, 0x3a16, 0x38c0, +0x386c, 0x39ab, 0x37fa, 0x382c, 0x3a6f, 0x393f, 0x340d, 0x38ef, 0x39d1, 0x3845, 0x398f, 0x363e, 0x3687, 0x3052, 0x3a2b, 0x392c, 0x2f5c, 0x3412, 0x3a1f, 0x3b2f, 0x3bcc, 0x3a63, 0x3a89, 0x36e9, 0x3921, 0x3b80, 0x2dc0, 0x3a03, 0x3beb, 0x38d3, 0x36cb, 0x39a3, +0x3978, 0x3a88, 0x3ba4, 0x3561, 0x28c5, 0x33a0, 0x37be, 0x2c39, 0x30ee, 0x3782, 0x2c07, 0x354e, 0x3491, 0x3a92, 0x331a, 0x3b15, 0x32e1, 0x3839, 0x3afb, 0x36c2, 0x2fd0, 0x29ad, 0x3b2e, 0x39c1, 0x2a8c, 0x341a, 0x2f90, 0x395a, 0x3969, 0x37ea, 0x3a5c, 0x3b6d, +0x3971, 0x3a93, 0x304e, 0x3623, 0x3a22, 0x31ee, 0x29df, 0x2c93, 0x3a01, 0x3a62, 0x366c, 0x371d, 0x3af3, 0x2e08, 0x3ac0, 0x3642, 0x3a28, 0x368d, 0x2d3d, 0x36d9, 0x32c3, 0x373f, 0x36fe, 0x3487, 0x2c81, 0x3623, 0x3b59, 0x3a91, 0x350a, 0x34f4, 0x3b09, 0x2c25, +0x3b13, 0x325a, 0x379e, 0x3a7d, 0x34b1, 0x39d5, 0x2ba8, 0x322b, 0x3b5e, 0x37ab, 0x2e24, 0x3ba9, 0x3a3d, 0x34f7, 0x3ba1, 0x3877, 0x3071, 0x39fb, 0x3bbd, 0x3633, 0x3b36, 0x2daa, 0x3b9b, 0x3aa0, 0x395c, 0x3b8f, 0x38d5, 0x3ab0, 0x3a8f, 0x36c2, 0x3b1f, 0x3489, +0x2acc, 0x3845, 0x3715, 0x37d8, 0x3992, 0x3bff, 0x350e, 0x3ad7, 0x39b0, 0x35ac, 0x3287, 0x385f, 0x3bd4, 0x37a3, 0x3438, 0x39a5, 0x3bcf, 0x38c3, 0x34f6, 0x3ae3, 0x3b57, 0x39af, 0x35eb, 0x3bed, 0x34d4, 0x2a95, 0x3b13, 0x384e, 0x3a3b, 0x33da, 0x3bce, 0x3b99, +0x3559, 0x3335, 0x3a2e, 0x3123, 0x38db, 0x33d0, 0x3638, 0x3b17, 0x3a72, 0x3afc, 0x3936, 0x3838, 0x2b69, 0x3895, 0x3a1a, 0x3192, 0x39d5, 0x37a5, 0x2eb0, 0x2e8b, 0x329a, 0x3b90, 0x390a, 0x3a1e, 0x3847, 0x375d, 0x3873, 0x35e2, 0x3771, 0x30f5, 0x3231, 0x3bd7, +0x2bbc, 0x3ace, 0x31ad, 0x3a6b, 0x28a4, 0x3b48, 0x3ba3, 0x3a84, 0x3353, 0x39f6, 0x381f, 0x2dd6, 0x314c, 0x34af, 0x3929, 0x3921, 0x383b, 0x34b0, 0x3923, 0x32c9, 0x3ae7, 0x318f, 0x3480, 0x2ad8, 0x3042, 0x3a4c, 0x349d, 0x2c12, 0x3abb, 0x3a57, 0x3b0d, 0x3111, +0x3359, 0x3a84, 0x38f2, 0x368d, 0x2f4b, 0x3ba0, 0x395c, 0x3026, 0x3a15, 0x2a04, 0x326e, 0x3522, 0x31a2, 0x382f, 0x2ada, 0x3b7c, 0x2f80, 0x3af5, 0x2d35, 0x38fa, 0x39ab, 0x2c6d, 0x2e7a, 0x39f6, 0x31a4, 0x3a53, 0x358c, 0x3951, 0x3a4e, 0x3916, 0x2a3f, 0x3ae9, +0x3b03, 0x39f8, 0x39fe, 0x3a61, 0x39fb, 0x3704, 0x360d, 0x39a7, 0x37a9, 0x348f, 0x3a30, 0x3af5, 0x366f, 0x3b29, 0x3a6a, 0x33d5, 0x370a, 0x39cd, 0x3444, 0x3bea, 0x3b2b, 0x312e, 0x3b8e, 0x32cf, 0x3b79, 0x3302, 0x3bba, 0x3962, 0x3413, 0x37a1, 0x39e0, 0x3805 }; \ No newline at end of file diff --git a/hwpe/redmule/inc/y_input.h b/hwpe/redmule/inc/y_input.h index 19b8197..45a2375 100644 --- a/hwpe/redmule/inc/y_input.h +++ b/hwpe/redmule/inc/y_input.h @@ -1,99 +1,27 @@ /* Header file generated by RedMulE Golden Model */ -uint16_t y_inp [9216] = { -0x39fc, 0x3a87, 0x3a35, 0x2bf4, 0x34f8, 0x2c8c, 0x3822, 0x38a2, 0x3bf8, 0x3b3a, 0x37d8, 0x3041, 0x28b2, 0x38d2, 0x1822, 0x3044, 0x38dc, 0x308d, 0x3a14, 0x3952, 0x38be, 0x32ef, 0x351e, 0x38ab, 0x2eb4, 0x3689, 0x33ca, 0x3a1f, 0x3bbc, 0x37ed, 0x38d5, 0x35c8, 0x341b, 0x3b74, 0x3627, 0x3a34, 0x3220, 0x3b85, 0x3a43, 0x2eca, 0x3550, 0x3958, 0x3813, 0x2cca, 0x3869, 0x391e, 0x3260, 0x2e42, 0x3493, 0x39ed, 0x3b7b, 0x3699, 0x3863, 0x3a7e, 0x3ab4, 0x3bcb, 0x3920, 0x3502, 0x28df, 0x38c5, 0x35e5, 0x282d, 0x3645, 0x3a29, 0x2fbb, 0x338d, 0x3ba0, 0x320d, 0x2830, 0x3bb4, 0x390a, 0x367f, 0x3335, 0x3b1a, 0x38c0, 0x3781, 0x3773, 0x39b0, 0x3b74, 0x38ba, 0x3383, 0x3550, 0x357a, 0x3ba7, 0x30e6, 0x39f4, 0x3b11, 0x282b, 0x334f, 0x3644, 0x367c, 0x3ac3, 0x38f3, 0x39f9, 0x3b1d, 0x35cf, -0x3433, 0x2eea, 0x38c1, 0x362a, 0x35e6, 0x3070, 0x1c1d, 0x308e, 0x381d, 0x39e5, 0x3a51, 0x2fb2, 0x3723, 0x3b58, 0x293e, 0x337a, 0x3a39, 0x349c, 0x3766, 0x3a73, 0x39bd, 0x3a0c, 0x3843, 0x21b9, 0x39a5, 0x2fd6, 0x2cf4, 0x3112, 0x3a1a, 0x3bb6, 0x3a83, 0x398e, 0x3b92, 0x2a3f, 0x37f1, 0x3664, 0x35f0, 0x39be, 0x3279, 0x39e0, 0x3241, 0x3bc7, 0x3bae, 0x36bd, 0x1bf5, 0x3806, 0x37d3, 0x247c, 0x3789, 0x36b9, 0x3b84, 0x3093, 0x3a5d, 0x2863, 0x2fe0, 0x2c4b, 0x3bd5, 0x38b6, 0x3b0e, 0x3ad1, 0x3ba2, 0x3914, 0x3947, 0x3984, 0x397a, 0x35ed, 0x3891, 0x3b7f, 0x3b32, 0x3857, 0x3717, 0x2b73, 0x38c1, 0x3bc6, 0x3330, 0x35c8, 0x34ff, 0x3924, 0x387b, 0x3a27, 0x3b92, 0x22d9, 0x29be, 0x3b39, 0x361c, 0x34e6, 0x2b7e, 0x34d8, 0x38c2, 0x3a4c, 0x3a2f, 0x381f, 0x38f6, 0x3a9a, 0x394f, 0x382d, -0x3939, 0x397a, 0x3926, 0x3a59, 0x34e3, 0x3077, 0x3190, 0x3a6b, 0x2c3f, 0x3a51, 0x35d9, 0x3866, 0x2f73, 0x38f2, 0x3766, 0x3aa1, 0x3b55, 0x2f8f, 0x3993, 0x354a, 0x3650, 0x340d, 0x2f01, 0x3731, 0x394d, 0x3b15, 0x3806, 0x39b9, 0x3aa7, 0x387c, 0x3beb, 0x2e2f, 0x38e8, 0x353a, 0x36ba, 0x3b2e, 0x3b5c, 0x2d4b, 0x357e, 0x3bd8, 0x3be0, 0x38b0, 0x2a3b, 0x2ff0, 0x3268, 0x38f3, 0x31fc, 0x318c, 0x35b5, 0x3980, 0x3a4d, 0x33cc, 0x365b, 0x397e, 0x3809, 0x39af, 0x3537, 0x2ba6, 0x30f1, 0x38b2, 0x39fe, 0x39f3, 0x373b, 0x3bff, 0x36ce, 0x3b5d, 0x3b5a, 0x2f1d, 0x3be3, 0x395d, 0x34d0, 0x36a3, 0x3937, 0x33b3, 0x3b91, 0x3ab5, 0x3215, 0x396b, 0x3bed, 0x302d, 0x3862, 0x3b05, 0x2ba1, 0x2fa6, 0x35d2, 0x3806, 0x3b84, 0x3233, 0x2664, 0x3a63, 0x3bdb, 0x375f, 0x3b0b, 0x34ff, 0x3020, 0x375d, -0x3931, 0x2d6c, 0x31c3, 0x3a24, 0x34b8, 0x3865, 0x366e, 0x3aaf, 0x3530, 0x20d6, 0x35ac, 0x33e8, 0x3b37, 0x32d8, 0x333c, 0x3349, 0x30cd, 0x392f, 0x2c30, 0x3b0a, 0x390a, 0x3703, 0x3b5f, 0x39ac, 0x31ba, 0x32a4, 0x3b8f, 0x3a5e, 0x3ad1, 0x38bf, 0x38bb, 0x369f, 0x3b75, 0x32c6, 0x31d2, 0x280f, 0x3891, 0x3b09, 0x3531, 0x3899, 0x3a55, 0x37fe, 0x3b5e, 0x364a, 0x3ada, 0x386f, 0x38bb, 0x3a7b, 0x313f, 0x3592, 0x2ca6, 0x2eeb, 0x38b1, 0x35df, 0x326f, 0x3bf5, 0x3848, 0x2fbd, 0x3268, 0x3922, 0x376b, 0x3a5e, 0x3826, 0x3207, 0x33f3, 0x3302, 0x3a80, 0x3bf1, 0x35dd, 0x2a83, 0x3460, 0x3296, 0x3ada, 0x3484, 0x3989, 0x3680, 0x3969, 0x3ab4, 0x2fb1, 0x3b50, 0x38bd, 0x3ad1, 0x34ac, 0x3718, 0x2ed7, 0x3b53, 0x3114, 0x248a, 0x3960, 0x3ab6, 0x39ef, 0x21dd, 0x33b9, 0x3a05, 0x2fbe, 0x37a2, -0x3a70, 0x37f8, 0x37f1, 0x3591, 0x382f, 0x3276, 0x33ed, 0x3935, 0x275e, 0x353c, 0x3b24, 0x3b42, 0x38db, 0x33ca, 0x3bd7, 0x3694, 0x365f, 0x3997, 0x39b7, 0x3bcb, 0x3b6a, 0x269a, 0x3956, 0x3b4e, 0x3ba1, 0x3bee, 0x2aaf, 0x3530, 0x3ad7, 0x3bce, 0x3bd2, 0x397c, 0x3aee, 0x3b62, 0x3bfc, 0x3ba1, 0x3b44, 0x38e6, 0x3747, 0x3855, 0x3baf, 0x3b16, 0x3b35, 0x34e7, 0x3858, 0x3bdb, 0x39c3, 0x3898, 0x381e, 0x3899, 0x36be, 0x363c, 0x3a70, 0x1518, 0x334e, 0x38cd, 0x3a74, 0x3420, 0x35a7, 0x3a00, 0x3282, 0x32db, 0x3656, 0x2dd8, 0x2e5b, 0x399e, 0x3bd7, 0x3366, 0x34cd, 0x257c, 0x3a2e, 0x375b, 0x3971, 0x3472, 0x269f, 0x39ac, 0x39e6, 0x396b, 0x335b, 0x38cc, 0x3b3d, 0x38ee, 0x3895, 0x2e3b, 0x3ba0, 0x3bb7, 0x3401, 0x35df, 0x3b06, 0x3adf, 0x37af, 0x3948, 0x33a6, 0x3aa7, 0x36b2, 0x373c, -0x3872, 0x3674, 0x34d5, 0x3918, 0x37cd, 0x369a, 0x3a26, 0x3bc3, 0x380c, 0x35ba, 0x36eb, 0x3b54, 0x37a9, 0x3405, 0x397d, 0x351f, 0x2f10, 0x34fd, 0x333c, 0x36c9, 0x3584, 0x3998, 0x3b22, 0x3aff, 0x3931, 0x31b7, 0x39ae, 0x31e7, 0x3847, 0x392a, 0x3bff, 0x3a24, 0x15c5, 0x3905, 0x36e8, 0x3356, 0x2f46, 0x38a9, 0x3bd8, 0x3bfc, 0x2fbf, 0x3a7d, 0x3989, 0x3a6c, 0x3a8b, 0x32c9, 0x37da, 0x3b16, 0x394a, 0x3aa5, 0x2c30, 0x3968, 0x3119, 0x3af2, 0x2f8f, 0x34ef, 0x3ab3, 0x2445, 0x38d9, 0x3856, 0x3592, 0x389d, 0x2932, 0x31f8, 0x3775, 0x3947, 0x3893, 0x3b50, 0x3465, 0x355c, 0x3547, 0x3925, 0x32c2, 0x3a0e, 0x39f9, 0x39f0, 0x2a1c, 0x34a0, 0x3b51, 0x3bb8, 0x38af, 0x36c7, 0x361f, 0x397b, 0x3a7f, 0x39e2, 0x3a7e, 0x3a67, 0x304c, 0x34d8, 0x3921, 0x3287, 0x2d90, 0x3b36, 0x30cc, 0x1958, -0x36ea, 0x3419, 0x39f3, 0x3bf1, 0x3271, 0x3763, 0x3643, 0x337f, 0x3161, 0x3944, 0x33b1, 0x30c7, 0x3687, 0x342b, 0x2402, 0x394a, 0x3480, 0x3052, 0x2a6e, 0x376a, 0x3236, 0x381e, 0x3596, 0x3939, 0x373e, 0x34b4, 0x201a, 0x3245, 0x3169, 0x26c8, 0x3a1c, 0x389b, 0x3351, 0x3bac, 0x3261, 0x37ab, 0x39bb, 0x350f, 0x3b5d, 0x3b86, 0x34e8, 0x3104, 0x3969, 0x31f4, 0x399a, 0x370e, 0x34a3, 0x3064, 0x3519, 0x3542, 0x3a72, 0x3be0, 0x3ba2, 0x3a5b, 0x3455, 0x3ae5, 0x38ef, 0x358a, 0x3908, 0x38eb, 0x3572, 0x3b41, 0x39cb, 0x39f4, 0x3bb6, 0x2f51, 0x3345, 0x3475, 0x3b20, 0x3b7c, 0x385d, 0x36a4, 0x35b8, 0x3368, 0x3867, 0x37cb, 0x3b8c, 0x32e9, 0x366b, 0x3a3f, 0x3147, 0x3534, 0x25bc, 0x3828, 0x38f8, 0x27cd, 0x35c8, 0x2a95, 0x39cf, 0x328b, 0x3a6d, 0x34f4, 0x38ae, 0x2b5f, 0x3845, 0x3b30, -0x3719, 0x37fc, 0x3adc, 0x2273, 0x385f, 0x39d1, 0x2f2c, 0x2df2, 0x36a6, 0x3523, 0x234d, 0x3a3f, 0x2817, 0x355d, 0x399f, 0x3924, 0x3bd4, 0x35ca, 0x3319, 0x301a, 0x353f, 0x34d2, 0x3bfd, 0x373e, 0x3a2a, 0x320b, 0x2e90, 0x38e8, 0x2f48, 0x3873, 0x3b61, 0x39d5, 0x3af7, 0x3885, 0x3be2, 0x3963, 0x36cc, 0x331b, 0x31ad, 0x3668, 0x39a2, 0x36f9, 0x3b52, 0x3985, 0x395d, 0x2e15, 0x30c2, 0x37ed, 0x32d1, 0x3a04, 0x3bef, 0x2fd7, 0x301d, 0x3a39, 0x3999, 0x342d, 0x34e3, 0x3bde, 0x3825, 0x3ac0, 0x3495, 0x3505, 0x3820, 0x30df, 0x37fd, 0x386c, 0x37c5, 0x3bab, 0x3b3d, 0x37f1, 0x3b42, 0x3825, 0x3bb4, 0x38a0, 0x383b, 0x3a92, 0x3a5c, 0x24c7, 0x38c8, 0x3492, 0x30af, 0x3b63, 0x35bb, 0x3046, 0x3aec, 0x357f, 0x3bb6, 0x3886, 0x37c6, 0x3315, 0x39cd, 0x32ae, 0x3b6d, 0x2d8c, 0x3607, 0x3420, -0x385d, 0x3782, 0x38ad, 0x34af, 0x3aad, 0x3bf3, 0x34bc, 0x3bfc, 0x33f0, 0x34ab, 0x37b6, 0x308d, 0x3ac8, 0x3935, 0x3b3a, 0x3517, 0x2579, 0x3b26, 0x36f6, 0x381f, 0x3b3c, 0x3a9f, 0x3667, 0x1c3e, 0x3b29, 0x2344, 0x3010, 0x36f7, 0x3470, 0x3834, 0x33bc, 0x306f, 0x392b, 0x37bc, 0x357a, 0x38a5, 0x3a09, 0x38f3, 0x34c6, 0x304b, 0x3bb7, 0x36c3, 0x3435, 0x3984, 0x357c, 0x345b, 0x39b5, 0x3286, 0x3a6b, 0x2e0e, 0x3613, 0x33e9, 0x379f, 0x3a14, 0x3a3a, 0x2e0e, 0x38f6, 0x3589, 0x3807, 0x3a49, 0x3818, 0x39dd, 0x31b0, 0x3a67, 0x39de, 0x175e, 0x394b, 0x34de, 0x394a, 0x3853, 0x371b, 0x3b5d, 0x39bb, 0x3029, 0x3091, 0x37b8, 0x33f0, 0x3517, 0x391e, 0x35ce, 0x3bc7, 0x2c6e, 0x2d9c, 0x36c1, 0x3143, 0x35c5, 0x39c6, 0x3a05, 0x3b1f, 0x3941, 0x3adc, 0x393a, 0x3993, 0x3bac, 0x2781, 0x3912, -0x36b8, 0x3a59, 0x397c, 0x25c3, 0x3b19, 0x3304, 0x399d, 0x3bde, 0x2e7c, 0x341e, 0x3172, 0x3bfd, 0x3b45, 0x3186, 0x37fe, 0x3b92, 0x390e, 0x2d85, 0x34fa, 0x2c58, 0x3ac5, 0x398f, 0x386a, 0x3ae3, 0x2f53, 0x3b4d, 0x3602, 0x3042, 0x353d, 0x3811, 0x3928, 0x2414, 0x3bb8, 0x3841, 0x3990, 0x388a, 0x25d4, 0x3787, 0x39a9, 0x3963, 0x3554, 0x3b41, 0x3921, 0x2938, 0x39cc, 0x34d1, 0x38ec, 0x31ac, 0x3aed, 0x36ca, 0x3a41, 0x3754, 0x3ab4, 0x39ac, 0x387a, 0x3851, 0x3097, 0x3885, 0x2ef9, 0x2530, 0x3a9d, 0x39ec, 0x38ca, 0x3ad4, 0x39ea, 0x37ce, 0x3ac0, 0x2879, 0x3bda, 0x3af5, 0x2eaa, 0x35e9, 0x3a11, 0x3a48, 0x2782, 0x3a7f, 0x3662, 0x3a99, 0x2194, 0x3628, 0x3668, 0x36e5, 0x38ab, 0x3833, 0x30b4, 0x3237, 0x39df, 0x3a63, 0x370d, 0x2c4a, 0x3ae0, 0x3b29, 0x3bba, 0x3b64, 0x260a, 0x38f8, -0x2679, 0x3412, 0x395a, 0x3054, 0x3ac9, 0x3bb3, 0x31a7, 0x38f7, 0x1d33, 0x3aeb, 0x38f5, 0x3649, 0x3aab, 0x3894, 0x353b, 0x3bbf, 0x37e2, 0x3b2d, 0x3a05, 0x3b7f, 0x318f, 0x2487, 0x3a3b, 0x36e8, 0x35d0, 0x2e1b, 0x3a03, 0x3bb9, 0x2d71, 0x32e5, 0x31c0, 0x2a74, 0x3898, 0x3ae0, 0x381b, 0x308d, 0x3afa, 0x2e44, 0x3aa2, 0x39cb, 0x3a19, 0x321f, 0x3975, 0x3a94, 0x20b7, 0x3843, 0x3942, 0x38c2, 0x3587, 0x3ba0, 0x3b5b, 0x3981, 0x3ba0, 0x3988, 0x2fc0, 0x34d2, 0x30ad, 0x3102, 0x394d, 0x38ef, 0x353c, 0x39d3, 0x3b57, 0x36c4, 0x3619, 0x3a4d, 0x382f, 0x35e7, 0x26ce, 0x33c6, 0x25a6, 0x36b8, 0x3b5f, 0x3a6d, 0x34cb, 0x2bb8, 0x368b, 0x3368, 0x312a, 0x3869, 0x37a7, 0x3804, 0x34af, 0x39ff, 0x350d, 0x358e, 0x3a40, 0x349c, 0x3ac3, 0x39fa, 0x3153, 0x38da, 0x390b, 0x30ea, 0x3205, 0x3915, -0x3a69, 0x385c, 0x34dc, 0x2e57, 0x2dff, 0x2a23, 0x2f74, 0x2efc, 0x397f, 0x367e, 0x2932, 0x3565, 0x38f6, 0x3bae, 0x3abe, 0x34cf, 0x39f9, 0x3995, 0x3844, 0x3846, 0x3674, 0x39ab, 0x382b, 0x3aa9, 0x36eb, 0x3a6f, 0x37d9, 0x3804, 0x2c69, 0x3883, 0x367d, 0x3b09, 0x25e5, 0x34d7, 0x3848, 0x310c, 0x3bdf, 0x3890, 0x3623, 0x3951, 0x3a1e, 0x385c, 0x3a27, 0x2747, 0x37f7, 0x344d, 0x2903, 0x3b96, 0x396d, 0x3868, 0x3766, 0x3689, 0x3705, 0x2dc4, 0x39f1, 0x389b, 0x39b0, 0x31b3, 0x3a14, 0x309a, 0x3ba3, 0x32a9, 0x3652, 0x390d, 0x316f, 0x3812, 0x38dd, 0x3473, 0x396a, 0x3b35, 0x3a31, 0x2cb3, 0x1c90, 0x3794, 0x372c, 0x3238, 0x3b57, 0x3516, 0x3b9c, 0x3a83, 0x386e, 0x3747, 0x353b, 0x31d2, 0x3b04, 0x338e, 0x3802, 0x373c, 0x373c, 0x380f, 0x28c7, 0x3936, 0x37eb, 0x32a6, 0x30cc, 0x3be5, -0x3428, 0x3592, 0x3226, 0x38dd, 0x3823, 0x374e, 0x3ac7, 0x38cb, 0x32a9, 0x354b, 0x3517, 0x2f43, 0x3812, 0x3a7a, 0x3627, 0x3b87, 0x3849, 0x377a, 0x2fae, 0x3bf8, 0x38e2, 0x387d, 0x3bab, 0x3a95, 0x31c0, 0x2be8, 0x30fb, 0x3bd8, 0x3828, 0x2ac0, 0x39ef, 0x3927, 0x2417, 0x34a8, 0x3626, 0x3751, 0x3b5b, 0x3a42, 0x2c4c, 0x3806, 0x358e, 0x34c1, 0x2d4f, 0x3bda, 0x3990, 0x3651, 0x3431, 0x31a2, 0x3379, 0x339a, 0x37cf, 0x3bf3, 0x3ada, 0x384a, 0x373d, 0x38a4, 0x2d47, 0x390a, 0x312a, 0x3adb, 0x3bee, 0x3463, 0x3857, 0x3950, 0x349f, 0x3a8a, 0x3767, 0x3552, 0x2d8a, 0x2cc8, 0x36cd, 0x3510, 0x3a04, 0x35ac, 0x3b20, 0x3076, 0x3a93, 0x36d0, 0x315a, 0x3af1, 0x355d, 0x3b34, 0x3b5c, 0x2247, 0x37c7, 0x3b02, 0x3a5d, 0x3669, 0x282c, 0x3b81, 0x319c, 0x3700, 0x3a0d, 0x33c0, 0x3985, 0x335e, -0x3af9, 0x3733, 0x2f0c, 0x392a, 0x2528, 0x34c8, 0x39e5, 0x3409, 0x3424, 0x389e, 0x358a, 0x3664, 0x3541, 0x38fa, 0x1d31, 0x2d02, 0x3889, 0x3690, 0x3a15, 0x3a4b, 0x364a, 0x3791, 0x3a6f, 0x3aa1, 0x3ab0, 0x39ed, 0x37da, 0x3abc, 0x3b09, 0x376d, 0x2c63, 0x314f, 0x34b9, 0x3142, 0x39cf, 0x3242, 0x384f, 0x3bf9, 0x36a1, 0x358d, 0x3ade, 0x3bc9, 0x347d, 0x3a5a, 0x3b4e, 0x3aa3, 0x39bf, 0x318d, 0x3a37, 0x3833, 0x333b, 0x3bb9, 0x39f4, 0x2ff2, 0x38b3, 0x3508, 0x3817, 0x3bd8, 0x35a8, 0x38b0, 0x3aac, 0x3984, 0x3bff, 0x29ea, 0x34ca, 0x38c6, 0x3885, 0x3bd8, 0x38df, 0x38fa, 0x358e, 0x3528, 0x39e8, 0x2d40, 0x3464, 0x3bac, 0x3ad1, 0x399b, 0x3a77, 0x3bfe, 0x3b52, 0x3934, 0x35ca, 0x3bf7, 0x3852, 0x3858, 0x35a1, 0x3a72, 0x34d7, 0x39e3, 0x2fe5, 0x3b1c, 0x3aee, 0x3bf7, 0x25f0, 0x3881, -0x376e, 0x3833, 0x3ab2, 0x3b59, 0x3b7f, 0x3ac3, 0x3954, 0x302d, 0x3a5d, 0x38f9, 0x3a41, 0x3a0f, 0x33a5, 0x3150, 0x29b7, 0x39aa, 0x35d5, 0x31db, 0x389b, 0x3aa1, 0x3529, 0x3bf1, 0x38de, 0x39a9, 0x321d, 0x35d6, 0x3423, 0x3be2, 0x34b2, 0x3b42, 0x31d8, 0x345b, 0x3a2d, 0x3b72, 0x3a10, 0x338a, 0x3b84, 0x3be8, 0x3810, 0x38a5, 0x3ba8, 0x3921, 0x3ac0, 0x3329, 0x3bca, 0x3bbb, 0x389a, 0x35f3, 0x3908, 0x3927, 0x3534, 0x381b, 0x2d5f, 0x3bef, 0x35f6, 0x3b13, 0x3834, 0x25d5, 0x30f9, 0x397c, 0x31af, 0x3867, 0x2cc7, 0x28ea, 0x3afe, 0x3014, 0x3806, 0x31c4, 0x39fa, 0x3bb6, 0x250c, 0x391b, 0x39a4, 0x37e3, 0x38d9, 0x3747, 0x2b7e, 0x3939, 0x32d2, 0x3a48, 0x38c3, 0x312d, 0x3a2d, 0x3afd, 0x3101, 0x3b28, 0x370d, 0x2fce, 0x32fc, 0x3840, 0x39f5, 0x37b6, 0x39df, 0x1d49, 0x3b9b, 0x3694, -0x3580, 0x392f, 0x3953, 0x3ac8, 0x3af3, 0x33cd, 0x39a0, 0x3672, 0x373d, 0x236a, 0x3935, 0x39fa, 0x348e, 0x3759, 0x348d, 0x36e7, 0x391b, 0x3b46, 0x386c, 0x3515, 0x389f, 0x3b21, 0x3aef, 0x3bf5, 0x3a2d, 0x3428, 0x39d1, 0x3931, 0x39af, 0x38ba, 0x2cbf, 0x3bf4, 0x31be, 0x2dd5, 0x350d, 0x3af6, 0x2044, 0x36ae, 0x3810, 0x3690, 0x31f8, 0x2ed1, 0x3a21, 0x3b7b, 0x3a96, 0x355c, 0x3704, 0x34e4, 0x38d3, 0x2f90, 0x3902, 0x37b1, 0x3b2a, 0x3a69, 0x3792, 0x338b, 0x3006, 0x345e, 0x3530, 0x3b40, 0x3733, 0x2c59, 0x3bf1, 0x39e6, 0x3b20, 0x3bc1, 0x3b71, 0x37fc, 0x363f, 0x36f9, 0x3b39, 0x380a, 0x3516, 0x3814, 0x34b8, 0x3493, 0x3bbe, 0x328b, 0x3709, 0x393b, 0x373e, 0x3929, 0x37c0, 0x3464, 0x39f8, 0x35d1, 0x364e, 0x39ed, 0x3806, 0x398c, 0x39e1, 0x3be5, 0x3317, 0x3482, 0x3b35, 0x3bc5, -0x2be7, 0x3026, 0x3b12, 0x3476, 0x3967, 0x3767, 0x3a01, 0x385a, 0x30f5, 0x2ccc, 0x349d, 0x2811, 0x399c, 0x3afe, 0x39ee, 0x3903, 0x3490, 0x2d4b, 0x367c, 0x361f, 0x3add, 0x312b, 0x3502, 0x3a4b, 0x3b74, 0x38b0, 0x31bd, 0x3327, 0x3a68, 0x3078, 0x3811, 0x3bce, 0x3867, 0x362d, 0x39f7, 0x2c93, 0x325f, 0x3370, 0x3bcf, 0x3b0c, 0x3656, 0x3644, 0x3130, 0x34f1, 0x326f, 0x3ab4, 0x38b5, 0x2e0b, 0x38ec, 0x3b21, 0x3be6, 0x3a39, 0x38f2, 0x3621, 0x3bf7, 0x390d, 0x39ef, 0x2b80, 0x394b, 0x3b3c, 0x31c4, 0x1a0a, 0x354e, 0x3655, 0x3564, 0x2b0e, 0x3072, 0x3838, 0x3190, 0x3b46, 0x3909, 0x31d8, 0x3b8d, 0x3b39, 0x3773, 0x35a3, 0x394f, 0x3971, 0x3919, 0x3848, 0x3a7d, 0x3b3d, 0x357e, 0x2755, 0x3a56, 0x3488, 0x3ac6, 0x3a25, 0x3991, 0x347e, 0x3472, 0x3b22, 0x38c8, 0x3b54, 0x384c, 0x28a2, -0x3b41, 0x3ab1, 0x3a5d, 0x35d6, 0x36e5, 0x3a33, 0x3a55, 0x3457, 0x35b4, 0x34d5, 0x389b, 0x3928, 0x3be7, 0x32d5, 0x3b26, 0x3790, 0x3203, 0x3296, 0x3b45, 0x3bc4, 0x38d4, 0x34f7, 0x3b50, 0x3ab1, 0x36eb, 0x3120, 0x35af, 0x396d, 0x28f5, 0x37f3, 0x3b0b, 0x31a6, 0x3a46, 0x1ce8, 0x38f3, 0x39c2, 0x3970, 0x3bb5, 0x28d7, 0x3b21, 0x39b4, 0x355e, 0x35a6, 0x3bb9, 0x2cc3, 0x38c2, 0x376c, 0x2e88, 0x34b2, 0x3967, 0x3325, 0x3bda, 0x37c6, 0x39dc, 0x3135, 0x3966, 0x22f4, 0x3433, 0x37e1, 0x34dd, 0x3900, 0x3ae7, 0x38ee, 0x3926, 0x2a4a, 0x3a16, 0x3ba9, 0x38de, 0x343a, 0x3a6f, 0x315c, 0x392b, 0x38ce, 0x35c3, 0x3810, 0x3ae9, 0x3627, 0x29b7, 0x2816, 0x289e, 0x3bb0, 0x39d1, 0x335c, 0x39b1, 0x3b48, 0x3614, 0x3581, 0x33df, 0x332b, 0x3750, 0x3438, 0x3309, 0x3854, 0x3830, 0x32e3, 0x3a27, -0x38f4, 0x3074, 0x351c, 0x2b8d, 0x35c2, 0x33dc, 0x3972, 0x39f2, 0x3af7, 0x3b12, 0x3b1a, 0x352d, 0x335e, 0x357a, 0x32e1, 0x3a63, 0x3426, 0x316d, 0x3903, 0x36e4, 0x36cc, 0x35fd, 0x3b29, 0x3304, 0x387e, 0x347d, 0x3af3, 0x33b5, 0x3859, 0x3800, 0x39b1, 0x3ae4, 0x2839, 0x38e6, 0x3341, 0x3346, 0x3ad4, 0x38b2, 0x392b, 0x3bfa, 0x3090, 0x36f1, 0x29b5, 0x2fa6, 0x3bb5, 0x36bc, 0x30c4, 0x38f4, 0x1e3b, 0x34fd, 0x2c4c, 0x3a6b, 0x393c, 0x3aba, 0x3866, 0x356a, 0x3441, 0x3802, 0x367d, 0x3546, 0x380f, 0x38f2, 0x354b, 0x30af, 0x2e2f, 0x37cb, 0x3994, 0x36e3, 0x37a7, 0x3a8c, 0x395c, 0x3aa2, 0x2c2f, 0x35b4, 0x3180, 0x3ad0, 0x3237, 0x3ac6, 0x31f5, 0x3637, 0x398c, 0x3443, 0x3bd6, 0x3b63, 0x35d0, 0x3351, 0x3336, 0x3aa8, 0x3b66, 0x39df, 0x36fe, 0x3477, 0x3823, 0x38ef, 0x399e, 0x394b, -0x3a85, 0x2d22, 0x39b4, 0x3a4e, 0x3334, 0x1c3b, 0x3466, 0x3469, 0x3820, 0x3a70, 0x2d5e, 0x37d9, 0x37bb, 0x3bd8, 0x25ea, 0x3292, 0x3a58, 0x3847, 0x3aea, 0x389d, 0x386e, 0x3870, 0x3bc4, 0x3a95, 0x307f, 0x3928, 0x31c2, 0x38e5, 0x3994, 0x3b83, 0x297a, 0x33c0, 0x3a55, 0x390d, 0x3550, 0x3447, 0x3b6d, 0x2809, 0x3993, 0x2944, 0x3ae1, 0x3845, 0x3703, 0x38fb, 0x3880, 0x3b1b, 0x3312, 0x2d51, 0x2e33, 0x3ba5, 0x3805, 0x3359, 0x3b3c, 0x3663, 0x354f, 0x3904, 0x3787, 0x39ac, 0x3bc4, 0x2f65, 0x3778, 0x3ba8, 0x3100, 0x3840, 0x3b67, 0x3abe, 0x2d5b, 0x391f, 0x3670, 0x39b3, 0x3a4e, 0x3947, 0x2e35, 0x3755, 0x3bb9, 0x31bf, 0x3ba6, 0x3a10, 0x39d1, 0x3aae, 0x3b88, 0x380a, 0x345f, 0x3aeb, 0x3660, 0x373a, 0x2d6f, 0x33b0, 0x3518, 0x3b25, 0x3872, 0x3aab, 0x2ed0, 0x347d, 0x2fd0, 0x38c5, -0x2cda, 0x353c, 0x3866, 0x2332, 0x3bde, 0x3912, 0x3762, 0x3ae3, 0x3a55, 0x39df, 0x32e0, 0x3b63, 0x3ac3, 0x3a85, 0x34e8, 0x38d7, 0x3543, 0x3a1e, 0x36e7, 0x3008, 0x359e, 0x298b, 0x3b6c, 0x3b51, 0x38d1, 0x3444, 0x39ec, 0x391e, 0x3a6d, 0x39e9, 0x3b7c, 0x36bb, 0x21f7, 0x2896, 0x3308, 0x3afc, 0x3879, 0x2cac, 0x2699, 0x3475, 0x331b, 0x340f, 0x373b, 0x3814, 0x3b6d, 0x39bb, 0x2e09, 0x3284, 0x286f, 0x371d, 0x3966, 0x27c2, 0x3ac4, 0x3b92, 0x3ba4, 0x3acb, 0x30b0, 0x3a11, 0x3721, 0x34cc, 0x3b84, 0x3002, 0x38bc, 0x341e, 0x36c3, 0x3bd2, 0x39fe, 0x380f, 0x38c3, 0x3a9c, 0x373a, 0x3a79, 0x3bfa, 0x31c7, 0x340d, 0x3602, 0x38e4, 0x1ddd, 0x38b2, 0x3985, 0x2574, 0x339e, 0x3b39, 0x3765, 0x3369, 0x39b6, 0x3974, 0x3a25, 0x362c, 0x3aeb, 0x3935, 0x3271, 0x2de2, 0x35d5, 0x3b93, 0x32f0, -0x3425, 0x3871, 0x2d6d, 0x3070, 0x319d, 0x33b5, 0x333e, 0x397e, 0x2a76, 0x39eb, 0x3b34, 0x3988, 0x3b40, 0x36de, 0x39a6, 0x38d9, 0x398b, 0x3623, 0x325e, 0x37d1, 0x3406, 0x377f, 0x3a58, 0x3486, 0x3855, 0x3acc, 0x378c, 0x3b1b, 0x3bed, 0x3aae, 0x3998, 0x39dc, 0x38a0, 0x3b74, 0x38a1, 0x2a79, 0x2e26, 0x39fd, 0x377c, 0x39bb, 0x3ad6, 0x1a6c, 0x2e6b, 0x377b, 0x3b5c, 0x39bd, 0x32f6, 0x371a, 0x348d, 0x348b, 0x359c, 0x38c7, 0x3022, 0x389f, 0x3a5b, 0x328d, 0x3158, 0x3206, 0x364d, 0x3a90, 0x36df, 0x3934, 0x3a5e, 0x39e4, 0x3a42, 0x3afe, 0x38d5, 0x36c5, 0x3050, 0x2acf, 0x3a39, 0x29da, 0x365c, 0x364e, 0x2bc, 0x3850, 0x381b, 0x39b2, 0x3643, 0x390a, 0x30da, 0x3243, 0x2dd9, 0x3b6c, 0x38cc, 0x309c, 0x27f0, 0x3b84, 0x3979, 0x3b3e, 0x3b08, 0x376a, 0x390d, 0x2d9e, 0x3527, 0x3a25, -0x33e2, 0x3840, 0x3afd, 0x385b, 0x350a, 0x3b04, 0x377a, 0x38ad, 0x3aec, 0x39d7, 0x38ad, 0x3b9d, 0x37d6, 0x36f1, 0x3586, 0x325c, 0x2cf4, 0x3b30, 0x387d, 0x3a1d, 0x3a29, 0x3048, 0x3bdc, 0x30d7, 0x359a, 0x30c4, 0x3a22, 0x3148, 0x3bd3, 0x3699, 0x353e, 0x398f, 0x36f2, 0x3115, 0x3505, 0x39bc, 0x39b1, 0x37ec, 0x353f, 0x379f, 0x36df, 0x3479, 0x3815, 0x3503, 0x30dd, 0x39c5, 0x3a1e, 0x30a0, 0x385d, 0x3a44, 0x3819, 0x3599, 0x3994, 0x394a, 0x316a, 0x39ab, 0x2c23, 0x3985, 0x3bbe, 0x3bdd, 0x3486, 0x36f7, 0x3559, 0x391b, 0x2642, 0x3a96, 0x3bac, 0x367c, 0x3b59, 0x38f0, 0x268a, 0x3a03, 0x3106, 0x3bd1, 0x3279, 0x36c9, 0x3b40, 0x3750, 0x2e02, 0x3965, 0x3636, 0x3afb, 0x3960, 0x38d6, 0x3a62, 0x2910, 0x3a84, 0x359d, 0x3ad9, 0x33f7, 0x3b5d, 0x26e1, 0x376b, 0x3824, 0x2852, 0x3982, -0x3797, 0x36e3, 0x3924, 0x3947, 0x3b36, 0x361e, 0x376b, 0x365b, 0x37e8, 0x329f, 0x3970, 0x3126, 0x3562, 0x3b17, 0x3aca, 0x3602, 0x3b9d, 0x394a, 0x2388, 0x2b85, 0x3a24, 0x3a66, 0x3648, 0x28d2, 0x3b67, 0x38b8, 0x3b15, 0x352c, 0x3b39, 0x3838, 0x388e, 0x3576, 0x39f5, 0x31f9, 0x35a0, 0x3a41, 0x3afa, 0x3513, 0x3688, 0x3b2b, 0x32b6, 0x32de, 0x3949, 0x3b1e, 0x3a1e, 0x280d, 0x38da, 0x388e, 0x316f, 0x38d4, 0x29c5, 0x3637, 0x34af, 0x2d8c, 0x3872, 0x30ac, 0x396e, 0x38bd, 0x39ab, 0x3b69, 0x3120, 0x355f, 0x2e7f, 0x35ab, 0x3821, 0x2b37, 0x3bc5, 0x3a0a, 0x3572, 0x30b5, 0x399e, 0x2a66, 0x31b8, 0x3abc, 0x3754, 0x36a7, 0x3b8b, 0x347d, 0x3b36, 0x3924, 0x2f95, 0x3ba9, 0x2224, 0x34cd, 0x3aaf, 0x3608, 0x34ce, 0x344b, 0x34b5, 0x3bd8, 0x37d3, 0x3757, 0x2c21, 0x3b8f, 0x38d3, 0x3aa4, -0x39c6, 0x381d, 0x3842, 0x3bd1, 0x3092, 0x35d5, 0x251f, 0x2529, 0x3133, 0x3862, 0x3444, 0x3519, 0x3b60, 0x2fb5, 0x38c7, 0x387e, 0x3138, 0x36a9, 0x353c, 0x3411, 0x3bd3, 0x2a07, 0x3a5c, 0x3826, 0x3228, 0x334d, 0x2f07, 0x2c6a, 0x3b43, 0x3425, 0x3568, 0x382a, 0x348c, 0x3b5f, 0x3745, 0x2ae7, 0x3772, 0x302b, 0x336a, 0x383a, 0x3361, 0x3110, 0x3684, 0x39d1, 0x3151, 0x34f1, 0x295b, 0x26ba, 0x3b1b, 0x38d5, 0x36b1, 0x3069, 0x3bfa, 0x385f, 0x3695, 0x3b50, 0x3be0, 0x3741, 0x3af4, 0x2cd1, 0x3862, 0x352d, 0x3b8d, 0x3800, 0x3868, 0x3931, 0x37f8, 0x3ad0, 0x341d, 0x3507, 0x3602, 0x3831, 0x393b, 0x3695, 0x380e, 0x383f, 0x38de, 0x3954, 0x38b3, 0x20be, 0x2428, 0x2e52, 0x3b5b, 0x20ea, 0x3aa9, 0x3430, 0x3aac, 0x393b, 0x32e7, 0x2d58, 0x366e, 0x32f5, 0x3990, 0x3b9d, 0x2f4c, 0x3420, -0x38d5, 0x31e4, 0x2c0e, 0x3742, 0x3bc0, 0x30f9, 0x3656, 0x3aaa, 0x385e, 0x3908, 0x3584, 0x2814, 0x3891, 0x3553, 0x391c, 0x3330, 0x38e5, 0x1aaf, 0x3be5, 0x3ac7, 0x3936, 0x3bf5, 0x361f, 0x39b3, 0x38c1, 0x394a, 0x39e1, 0x2b67, 0x3585, 0x380e, 0x3344, 0x3001, 0x3983, 0x31ec, 0x3ac2, 0x380a, 0x32c2, 0x34aa, 0x393d, 0x364d, 0x239a, 0x3727, 0x3b5c, 0x3265, 0x2d1f, 0x32dd, 0x3ae3, 0x36a0, 0x3600, 0x38f3, 0x378a, 0x357c, 0x34dd, 0x39a9, 0x3846, 0x2431, 0x3abe, 0x36fa, 0x38bd, 0x3696, 0x2c2e, 0x229d, 0x386f, 0x3a8b, 0x3aa4, 0x34f4, 0x35af, 0x34c1, 0x2222, 0x1820, 0x3a30, 0x38ec, 0x3855, 0x3952, 0x3873, 0x384b, 0x3bb1, 0x35aa, 0x363a, 0x380e, 0x3b3d, 0x397a, 0x38ca, 0x3a88, 0x35de, 0x3bac, 0x3ab4, 0x3654, 0x38f3, 0x2076, 0x3585, 0x300a, 0x3a71, 0x3b90, 0x3a83, 0x3a86, -0x3ab7, 0x3bee, 0x37bd, 0x3b2c, 0x39fb, 0x274a, 0x3a7d, 0x38df, 0x2a8d, 0x3611, 0x34b4, 0x38e4, 0x36f8, 0x3b2a, 0x364b, 0x3ac3, 0x2d73, 0x38e3, 0x2fcd, 0x3af3, 0x359e, 0x3afd, 0x3b13, 0x3a89, 0x379e, 0x35d5, 0x30bc, 0x34ae, 0x3a6a, 0x312e, 0x293a, 0x39df, 0x3a97, 0x39db, 0x3b98, 0x3818, 0x344f, 0x26c9, 0x3a30, 0x3505, 0x3885, 0x3206, 0x38e4, 0x3940, 0x3a5d, 0x3aab, 0x35e7, 0x3458, 0x381d, 0x3959, 0x3930, 0x3476, 0x348f, 0x3469, 0x2e03, 0x3889, 0x3ba1, 0x35ac, 0x3ac1, 0x3bcb, 0x3acc, 0x34d7, 0x38bd, 0x2b4c, 0x21ff, 0x3802, 0x34a4, 0x36f9, 0x352f, 0x394e, 0x3796, 0x2456, 0x38c8, 0x302d, 0x2de8, 0x3539, 0x39e8, 0x3560, 0x3913, 0x3bbf, 0x331a, 0x3969, 0x3a9e, 0x3972, 0x3a32, 0x3a15, 0x386f, 0x3a17, 0x3956, 0x39c3, 0x3762, 0x3b51, 0x32af, 0x3b58, 0x34ff, 0x319d, -0x3431, 0x34fc, 0x3a81, 0x3ada, 0x39e6, 0x3a49, 0x33ad, 0x38c8, 0x33cb, 0x3576, 0x3aaf, 0x34ee, 0x2e14, 0x38d0, 0x39c1, 0x29cb, 0x3112, 0x3593, 0x2f07, 0x2fa0, 0x34c0, 0x366e, 0x3998, 0x3540, 0x37c6, 0x39b7, 0x396d, 0x3319, 0x341e, 0x354a, 0x3773, 0x2c1c, 0x3bfc, 0x381b, 0x3529, 0x37f8, 0x3bbd, 0x37a2, 0x36f1, 0x3870, 0x3a69, 0x3494, 0x3169, 0x3455, 0x356f, 0x32e7, 0x35c0, 0x398e, 0x2c2f, 0x2ffe, 0x3140, 0x39ff, 0x3aae, 0x3bb7, 0x35b8, 0x39b2, 0x3303, 0x3948, 0x3a7f, 0x25f7, 0x3750, 0x357e, 0x3785, 0x3817, 0x3b05, 0x3a90, 0x38ad, 0x376f, 0x3ac5, 0x3a07, 0x3311, 0x3b9b, 0x24d1, 0x3451, 0x32a6, 0x342c, 0x3a8c, 0x360a, 0x36ad, 0x3abf, 0x2116, 0x3bb1, 0x328b, 0x37a9, 0x3aab, 0x39c9, 0x345e, 0x36b0, 0x384c, 0x3bfb, 0x2d31, 0x3a05, 0x3427, 0x3726, 0x3743, 0x3398, -0x3b0a, 0x3b85, 0x33ed, 0x32b0, 0x3a95, 0x2135, 0x3712, 0x2f34, 0x378e, 0x390f, 0x39b1, 0x2ad2, 0x300a, 0x34ec, 0x3a00, 0x20f8, 0x3b47, 0x3861, 0x341d, 0x3015, 0x3959, 0x37c9, 0x2f6c, 0x3758, 0x37e5, 0x353b, 0x38da, 0x39ae, 0x3947, 0x36d7, 0x3284, 0x3bb9, 0x357f, 0x3999, 0x39c2, 0x3889, 0x38b7, 0x3684, 0x355e, 0x390d, 0x3b96, 0x385c, 0x3ba5, 0x36c0, 0x3bbc, 0x37fc, 0x391c, 0x3a42, 0x39ca, 0x34ae, 0x394c, 0x3271, 0x2cd6, 0x343b, 0x2d7b, 0x2eea, 0x38a3, 0x2ca6, 0x3549, 0x3847, 0x3bcb, 0x3adc, 0x2e68, 0x3809, 0x3930, 0x357b, 0x3b89, 0x3b94, 0x3875, 0x3640, 0x387c, 0x376c, 0x33b9, 0x3b7e, 0x384c, 0x3906, 0x3b91, 0x209d, 0x2c43, 0x32cf, 0x3686, 0x310c, 0x3a7a, 0x38ef, 0x3645, 0x354a, 0x3670, 0x3732, 0x37b9, 0x3928, 0x358d, 0x3893, 0x3602, 0x2e3d, 0x2a22, 0x2f70, -0x34c9, 0x38f4, 0x374e, 0x3828, 0x37ff, 0x3723, 0x35b4, 0x34b7, 0x3b94, 0x265a, 0x3658, 0x3938, 0x38f5, 0x3bb9, 0x3960, 0x3b5c, 0x38d3, 0x31ea, 0x3412, 0x3be3, 0x3b95, 0x3a20, 0x353b, 0x39c5, 0x3291, 0x387d, 0x3af8, 0x3915, 0x3af7, 0x3be4, 0x399c, 0x34e5, 0x324b, 0x3838, 0x3914, 0x385e, 0x38cd, 0x39fd, 0x39a0, 0x3495, 0x38a1, 0x382c, 0x2ed2, 0x3866, 0x33d8, 0x3396, 0x3b0c, 0x39c8, 0x314f, 0x346f, 0x3aee, 0x313e, 0x39b8, 0x34fe, 0x3882, 0x36d2, 0x3a8b, 0x3a8e, 0x3ae4, 0x3b31, 0x30da, 0x34e8, 0x38ce, 0x3643, 0x39b6, 0x34fb, 0x38d7, 0x3bde, 0x3ac9, 0x3af2, 0x38fe, 0x275f, 0x3748, 0x30ee, 0x3010, 0x3b23, 0x3a55, 0x3a43, 0x3a23, 0x37eb, 0x38fa, 0x3335, 0x3996, 0x39a0, 0x360f, 0x2630, 0x39f3, 0x3870, 0x383c, 0x384c, 0x3392, 0x3754, 0x3b4f, 0x3bc1, 0x382f, 0x3802, -0x3bb0, 0x36ad, 0x3a3f, 0x389e, 0x2d0c, 0x34b1, 0x3592, 0x3933, 0x25f1, 0x3ac7, 0x308e, 0x36b7, 0x3ab0, 0x2994, 0x38e4, 0x3689, 0x3c00, 0x3441, 0x30f6, 0x3a71, 0x3b19, 0x394e, 0x3826, 0x19a6, 0x3b2a, 0x3594, 0x3893, 0x34af, 0x3b34, 0x3ab3, 0x37e9, 0x3ba1, 0x3b01, 0x29ca, 0x3715, 0x3643, 0x312e, 0x3289, 0x311d, 0x383e, 0x38dc, 0x33a1, 0x384d, 0x3ba6, 0x3982, 0x34a7, 0x3b20, 0x3728, 0x3add, 0x2f89, 0x377b, 0x3a2d, 0x342e, 0x36e5, 0x3aa2, 0x3864, 0x38fe, 0x2d84, 0x3bef, 0x3bcd, 0x3553, 0x3953, 0x37be, 0x394a, 0x3a5f, 0x1d30, 0x3bfb, 0x3737, 0x3aa1, 0x3b6e, 0x3809, 0x3b5f, 0x389b, 0x3905, 0x3b29, 0x387d, 0x3afc, 0x3807, 0x3881, 0x3a2c, 0x37d5, 0x3a76, 0x35c4, 0x39ec, 0x3abf, 0x36ed, 0x3135, 0x381e, 0x3593, 0x3968, 0x2d97, 0x350c, 0x3a61, 0x3550, 0x2bde, 0x3400, -0x35ed, 0x34e7, 0x3846, 0x2e9e, 0x3afd, 0x3658, 0x36c2, 0x3863, 0x30b9, 0x350a, 0x3a30, 0x34cd, 0x3b2c, 0x3061, 0x3bc4, 0x2e78, 0x3475, 0x388a, 0x3678, 0x30c5, 0x38f2, 0x3807, 0x311d, 0x3aad, 0x3804, 0x3a1b, 0x38bf, 0x2c7f, 0x3be8, 0x3523, 0x32d3, 0x3a33, 0x38f1, 0x34af, 0x3797, 0x32e6, 0x3886, 0x33e8, 0x3a63, 0x34d3, 0x3618, 0x3571, 0x3abb, 0x3a0d, 0x39d4, 0x361c, 0x3b81, 0x3598, 0x301d, 0x390a, 0x2876, 0x39db, 0x344c, 0x3518, 0x3825, 0x33a5, 0x392b, 0x3671, 0x39a6, 0x3320, 0x3a67, 0x3447, 0x3a75, 0x34c7, 0x3ba8, 0x3108, 0x394f, 0x3986, 0x2c4d, 0x3856, 0x3b1c, 0x3343, 0x399d, 0x3a25, 0x2f68, 0x3be3, 0x3131, 0x349d, 0x39b0, 0x32d3, 0x305c, 0x3b49, 0x2e61, 0x36e1, 0x3a0c, 0x36cb, 0x3b96, 0x3648, 0x36a2, 0x3879, 0x387f, 0x3aa3, 0x2ac5, 0x30d8, 0x3424, 0x2bc4, -0x39b8, 0x38d0, 0x3bd2, 0x311b, 0x2cff, 0x2e9c, 0x3908, 0x39d9, 0x3628, 0x3c00, 0x39b7, 0x3a20, 0x3a6d, 0x3909, 0x37c2, 0x2c06, 0x3a29, 0x374d, 0x30c7, 0x3204, 0x392c, 0x3af6, 0x30de, 0x35ec, 0x3b48, 0x3b34, 0x38ec, 0x3b9f, 0x3625, 0x1a62, 0x3681, 0x2cbc, 0x39e6, 0x348b, 0x3726, 0x38d1, 0x35df, 0x382b, 0x3bc9, 0x39e9, 0x3a7b, 0x32df, 0x22ec, 0x35fa, 0x3a1d, 0x3b56, 0x37d2, 0x35af, 0x3bb3, 0x35bf, 0x38f2, 0x3090, 0x3163, 0x2ce6, 0x39a1, 0x3aa2, 0x38d3, 0x398d, 0x3a80, 0x35ff, 0x33e6, 0x3a00, 0x35a3, 0x3a52, 0x3175, 0x337b, 0x39c7, 0x399c, 0x3873, 0x390a, 0x39f9, 0x3766, 0x33d1, 0x38fe, 0x3a2b, 0x37ec, 0x39f9, 0x3980, 0x3ac0, 0x309f, 0x3313, 0x3897, 0x34a5, 0x36fb, 0x3725, 0x3a71, 0x3553, 0x3b09, 0x36ad, 0x3923, 0x3bdd, 0x3b9e, 0x2960, 0x3a59, 0x3a20, 0x375d, -0x39b6, 0x31e6, 0x34bc, 0x391e, 0x38cd, 0xca5, 0x360c, 0x35e6, 0x35b5, 0x3be9, 0x3be4, 0x3bea, 0x3741, 0x302e, 0x3557, 0x3bb1, 0x3be4, 0x342c, 0x350c, 0x352b, 0x3825, 0x3b05, 0x309d, 0x38f8, 0x3be3, 0x2d5d, 0x399a, 0x36b9, 0x3924, 0x3936, 0x3a45, 0x3a8f, 0x3853, 0x38a9, 0x381b, 0x3a9a, 0x393e, 0x31df, 0x3855, 0x38da, 0x37c6, 0x3bd8, 0x34fb, 0x2e5f, 0x3450, 0x304e, 0x3990, 0x29e1, 0x373c, 0x39a5, 0x3a5e, 0x3356, 0x2c13, 0x34a0, 0x3185, 0x3a8a, 0x3672, 0x2ee4, 0x2dbc, 0x22ae, 0x3a88, 0x388c, 0x30ce, 0x384d, 0x3453, 0x3ad0, 0x2e7f, 0x367a, 0x34c5, 0x39d6, 0x35de, 0x39fc, 0x3aa8, 0x3667, 0x3bb9, 0x35e7, 0x38c7, 0x2c83, 0x35a3, 0x35d7, 0x1a7c, 0x393e, 0x3588, 0x39dd, 0x3af3, 0x3965, 0x365b, 0x3a7e, 0x38ed, 0x3990, 0x3786, 0x3b07, 0x350e, 0x38b7, 0x357f, 0x3bb6, -0x2de9, 0x2ef1, 0x2cc9, 0x38a5, 0x347b, 0x310a, 0x351d, 0x3a9b, 0x3a68, 0x2228, 0x35d3, 0x338d, 0x3a3a, 0x24ec, 0x3ad0, 0x385a, 0x1c64, 0x39f9, 0x335e, 0x348c, 0x211e, 0x37d4, 0x353b, 0x3290, 0x3b68, 0x2f75, 0x2ff5, 0x3579, 0x3967, 0x3b5a, 0x3982, 0x3950, 0x35e9, 0x3a85, 0x3be5, 0x3252, 0x359b, 0x3799, 0x38ec, 0x3a0e, 0x3a45, 0x2d8e, 0x389d, 0x34d6, 0x3726, 0x3320, 0x3acd, 0x3642, 0x2574, 0x314a, 0x32a5, 0x3898, 0x370a, 0x3941, 0x340a, 0x2e05, 0x28b8, 0x39ad, 0x392e, 0x3821, 0x38d7, 0x3b07, 0x3485, 0x34d1, 0x399c, 0x1844, 0x2c8f, 0x3964, 0x3b56, 0x2dde, 0x2ede, 0x317b, 0x3a44, 0x3901, 0x3844, 0x382e, 0x29e6, 0x35ad, 0x3913, 0x3430, 0x3604, 0x3a5f, 0x3080, 0x3628, 0x3383, 0x3b3d, 0x385a, 0x38e8, 0x3ade, 0x3af3, 0x3a56, 0x3889, 0x2cf5, 0x3a61, 0x3b6a, 0x3b38, -0x2e45, 0x3736, 0x3743, 0x3680, 0x328f, 0x3a88, 0x39bb, 0x36a0, 0x3957, 0x2f27, 0x3a33, 0x3a9e, 0x3a9e, 0x2e09, 0x3154, 0x37b7, 0x3807, 0x3937, 0x390b, 0x3041, 0x3758, 0x39cf, 0x2e66, 0x2bc5, 0x3461, 0x3897, 0x39fd, 0x3b92, 0x36e3, 0x3a20, 0x3a8d, 0x335b, 0x3be1, 0x383d, 0x38ab, 0x3665, 0x3588, 0x3a4b, 0x33d5, 0x341b, 0x3806, 0x38fd, 0x382e, 0x32c1, 0x38d9, 0x2ccb, 0x292d, 0x380f, 0x35a2, 0x3b6e, 0x34af, 0x3889, 0x3109, 0x3480, 0x34bf, 0x3a56, 0x3163, 0x33fa, 0x345a, 0x39bb, 0x3b6e, 0x3a80, 0x36f6, 0x33c8, 0x3b98, 0x3663, 0x3aaf, 0x3926, 0x3a2d, 0x3a11, 0x33ac, 0x37a0, 0x3986, 0x3374, 0x3667, 0x3482, 0x378a, 0x2a39, 0x3535, 0x34f3, 0x3783, 0x36a7, 0x3606, 0x3843, 0x3acb, 0x2dcc, 0x3961, 0x34ed, 0x3890, 0x38e5, 0x3a7c, 0x384c, 0x39bf, 0x3a6b, 0x34a0, 0x361b, -0x2e5e, 0x3650, 0x3417, 0x36e5, 0x3b4c, 0x3892, 0x38ba, 0x32f3, 0x3b80, 0x39ea, 0x3357, 0x3212, 0x3b42, 0x3622, 0x3c00, 0x34c0, 0x38e0, 0x360c, 0x36bc, 0x34b0, 0x3b53, 0x2587, 0x387e, 0x3966, 0x3800, 0x35e2, 0x3917, 0x3be4, 0x378f, 0x2d21, 0x3415, 0x2ea8, 0x34d0, 0x36ac, 0x3a51, 0x3ba5, 0x3b7e, 0x2d48, 0x39c1, 0x30d5, 0x3244, 0x3894, 0x3aaa, 0x3451, 0x3a9f, 0x2e40, 0x3832, 0x35f6, 0x3429, 0x253c, 0x2c2e, 0x3bd6, 0x3a5c, 0x3622, 0x3155, 0x3a50, 0x313f, 0x31dc, 0x3b9d, 0x2d67, 0x3914, 0x38f5, 0x3ab6, 0x3bd3, 0x3754, 0x3683, 0x32b0, 0x31dd, 0x3911, 0x37c2, 0x2b09, 0x33b7, 0x3b7c, 0x344a, 0x2a7c, 0x3350, 0x3792, 0x36ea, 0x3463, 0x3a87, 0x29be, 0x3a23, 0x390d, 0x3b10, 0x381d, 0x3227, 0x38f4, 0x39bc, 0x3a71, 0x375d, 0x349d, 0x271c, 0x3921, 0x2e0a, 0x3b08, 0x3ba3, -0x3a92, 0x3923, 0x3012, 0x3527, 0x2ba3, 0x3aa1, 0x3ba3, 0x349a, 0x3729, 0x393a, 0x2ea9, 0x398a, 0x38a5, 0x3ad5, 0x38e6, 0x3a7b, 0x3783, 0x3822, 0x371a, 0x3247, 0x3af0, 0x3ac9, 0x35f6, 0x39d5, 0x39c3, 0x39bc, 0x3a9e, 0x39a8, 0x3af5, 0x3a01, 0x39ab, 0x35f6, 0x392e, 0x3bca, 0x2f53, 0x3595, 0x34c6, 0x3a96, 0x396f, 0x3515, 0x39c5, 0x37b3, 0x37c4, 0x2f64, 0x37ed, 0x3013, 0x3939, 0x3be7, 0x3a5e, 0x3526, 0x3a32, 0x3a8c, 0x334e, 0x39d6, 0x3b45, 0x395d, 0x3500, 0x375f, 0x2498, 0x3ad9, 0x3a04, 0x3961, 0x3a1e, 0x38cb, 0x383d, 0x35c3, 0x37ec, 0x38ab, 0x3aca, 0x29aa, 0x3480, 0x374c, 0x35d1, 0x33cc, 0x387a, 0x3544, 0x367d, 0x3259, 0x306b, 0x39c9, 0x323b, 0x3a58, 0x3156, 0x353d, 0x323a, 0x2987, 0x31ff, 0x3998, 0x311c, 0x38d0, 0x3a03, 0x38cc, 0x35b5, 0x398b, 0x3a0c, 0x3a96, -0x3ab6, 0x3a1c, 0x3a48, 0x3974, 0x3815, 0x368a, 0x36d5, 0x37aa, 0x345b, 0x3bd3, 0x3b1f, 0x3167, 0x2ecf, 0x3a80, 0x3636, 0x3a8e, 0x39d3, 0x3a1a, 0x3087, 0x3823, 0x3b9c, 0x3969, 0x2fb9, 0x3bb8, 0x39c5, 0x3991, 0x3392, 0x38f2, 0x3939, 0x2c68, 0x3b0a, 0x383a, 0x3bd7, 0x3a74, 0x3956, 0x3465, 0x39f3, 0x3880, 0x39bc, 0x39c5, 0x35e4, 0x3738, 0x3856, 0x399b, 0x3bda, 0x3366, 0x31a0, 0x3868, 0x3aa3, 0x38bd, 0x305a, 0x3743, 0x3a85, 0x2336, 0x39eb, 0x2d06, 0x37df, 0x3852, 0x3b46, 0x302c, 0x3a1e, 0x3b46, 0x3068, 0x3bd6, 0x381d, 0x31f6, 0x3491, 0x3848, 0x3315, 0x38c7, 0x3600, 0x3b9d, 0x38b2, 0x3977, 0x388c, 0x3ac2, 0x37ee, 0x35c4, 0x3b45, 0x374a, 0x3355, 0x1dbb, 0x38ec, 0x3003, 0x3a97, 0x311f, 0x3749, 0x2b59, 0x3842, 0x34a9, 0x3561, 0x3b07, 0x3a4a, 0x292f, 0x3961, 0x3546, -0x35dd, 0x3966, 0x2c7d, 0x3833, 0x285f, 0x20f2, 0x3a12, 0x392b, 0x2bae, 0x2fa6, 0x3a36, 0x303c, 0x3303, 0x2bc6, 0x3b94, 0x3a0e, 0x3ae2, 0x3a3c, 0x315c, 0x37bb, 0x3452, 0x3267, 0x2731, 0x3985, 0x3bcf, 0x397e, 0x2fae, 0x28b1, 0x39cc, 0x3536, 0x37a1, 0x3aa3, 0x396b, 0x2c59, 0x3bbf, 0x303c, 0x3bcf, 0x3a8e, 0x3afc, 0x3ab1, 0x2943, 0x3a17, 0x3552, 0x2f57, 0x3353, 0x3512, 0x2e78, 0x3b53, 0x388e, 0x399c, 0x336e, 0x38d4, 0x3849, 0x32b1, 0x316a, 0x2877, 0x2feb, 0x35b9, 0x375d, 0x29fa, 0x3ad2, 0x3569, 0x3981, 0x3455, 0x3847, 0x3a81, 0x3514, 0x29d0, 0x3137, 0x39ba, 0x3b1a, 0x2dd4, 0x383f, 0x39f7, 0x37f6, 0x3964, 0x371c, 0x39e4, 0x3136, 0x35da, 0x3b2f, 0x3946, 0x36dd, 0x3801, 0x3927, 0x2614, 0x2ca7, 0x39ae, 0x3401, 0x3242, 0x3a91, 0x3a1d, 0x3790, 0x333f, 0x3bb9, 0x3a1d, -0x3be5, 0x39e1, 0x35f3, 0x38fd, 0x3726, 0x3946, 0x3baf, 0x3a2f, 0x15e0, 0x318b, 0x359c, 0x2fbf, 0x3060, 0x3a09, 0x35c9, 0x39e2, 0x317e, 0x25ec, 0x3546, 0x3254, 0x36e9, 0x374c, 0x35c0, 0x3787, 0x3b82, 0x3727, 0x34a8, 0x3820, 0x3aee, 0x3814, 0x33da, 0x357f, 0x2f56, 0x3231, 0x3ba0, 0x35e4, 0x3998, 0x3609, 0x3979, 0x3311, 0x33e8, 0x39bd, 0x39f0, 0x3a32, 0x31dc, 0x3aee, 0x310e, 0x3843, 0x38c1, 0x382a, 0x382f, 0x3b24, 0x335c, 0x383b, 0x24f4, 0x371c, 0x3162, 0x2dce, 0x3ae6, 0x2d1e, 0x3a20, 0x39e9, 0x39c5, 0x219a, 0x37d4, 0x34fe, 0x14f6, 0x2e13, 0x3949, 0x3b98, 0x3a42, 0x3aee, 0x298f, 0x3740, 0x28e0, 0x3854, 0x3925, 0x3951, 0x3426, 0x3b4a, 0x3043, 0x345d, 0x3aec, 0x3b89, 0x378c, 0x355a, 0x3287, 0x340c, 0x35fb, 0x2f7d, 0x3839, 0x383a, 0x3a66, 0x388c, 0x36b3, 0x3908, -0x3323, 0x35b2, 0x3823, 0x3ad3, 0x3b52, 0x3634, 0x3a70, 0x3b37, 0x2d59, 0x3893, 0x3978, 0x3515, 0x2733, 0x399b, 0x3a86, 0x3b9c, 0x3582, 0x38e0, 0x389d, 0x3b34, 0x2d41, 0x31d7, 0x2db9, 0x3474, 0x35f6, 0x38fa, 0x3296, 0x3a85, 0x3102, 0x3129, 0x38e1, 0x39d4, 0x36ec, 0x2fea, 0x3a44, 0x3393, 0x39e0, 0x3613, 0x3bc1, 0x3145, 0x23d7, 0x3a17, 0x3515, 0x3845, 0x38f7, 0x33ee, 0x3b6f, 0x38f9, 0x38c7, 0x3489, 0x352b, 0x3b74, 0x39ab, 0x32e2, 0x37be, 0x38e6, 0x34e1, 0x31a5, 0x3be8, 0x2b0f, 0x3b16, 0x3a43, 0x3ae7, 0x39a2, 0x36a2, 0x33a5, 0x3160, 0x33c8, 0x30de, 0x38d9, 0x33f6, 0x35b0, 0x2982, 0x38e6, 0x3ae7, 0x3bca, 0x3911, 0x397b, 0x3596, 0x3790, 0x38eb, 0x3aa2, 0x38f6, 0x381f, 0x398e, 0x343b, 0x39ef, 0x39a3, 0x35f2, 0x2c2c, 0x39e2, 0x3b7f, 0x3858, 0x3b83, 0x3b02, 0x33df, -0x379c, 0x3ae9, 0x340b, 0x368f, 0x3a50, 0x38a6, 0x3aa2, 0x3bd6, 0x3855, 0x3841, 0x3410, 0x348d, 0x3625, 0x38a0, 0x3bdc, 0x34e3, 0x38f6, 0x3274, 0x3a03, 0x3adc, 0x35df, 0x39f5, 0x38b4, 0x38cc, 0x384d, 0x394f, 0x3597, 0x3a9c, 0x3767, 0x3b65, 0x39f5, 0x3857, 0x38c2, 0x3b12, 0x3580, 0x32b0, 0x3595, 0x3723, 0x3b92, 0x347f, 0x3526, 0x377d, 0x35c3, 0x354b, 0x3651, 0x3ae9, 0x38c7, 0x3bc0, 0x30d2, 0x395a, 0x34f2, 0x370d, 0x3748, 0x35fb, 0x3401, 0x34e8, 0x3931, 0x3a34, 0x381e, 0x3886, 0x3afc, 0x3bbc, 0x3af0, 0x3a9c, 0x3a5b, 0x34ef, 0x3979, 0x3ab0, 0x31f2, 0x34f8, 0x1c09, 0x3a9c, 0x36a0, 0x3af7, 0x3b87, 0x3745, 0x39b8, 0x3582, 0x3be2, 0x3bd6, 0x373f, 0x3552, 0x31c1, 0x3a29, 0x2f37, 0x363b, 0x3a9d, 0x39ee, 0x3aa7, 0x3a03, 0x3551, 0x39ce, 0x3a95, 0x3894, 0x32d1, 0x36f2, -0x385b, 0x342c, 0x3643, 0x3be4, 0x3b88, 0x3b64, 0x3975, 0x3142, 0x3583, 0x2f10, 0x34bb, 0x3b4d, 0x3924, 0x2609, 0x3929, 0x274b, 0x3476, 0x3bfd, 0x3abd, 0x3874, 0x33cf, 0x3756, 0x3820, 0x31a3, 0x35dd, 0x39a3, 0x3359, 0x397e, 0x3a12, 0x3ad6, 0x3a25, 0x38ab, 0x392c, 0x3bca, 0x38a9, 0x2f91, 0x381c, 0x29fb, 0x390e, 0x34f7, 0x3a14, 0x39fa, 0x3104, 0x3488, 0x326e, 0x3593, 0x3b50, 0x2e3d, 0x3423, 0x3919, 0x38db, 0x308b, 0x3883, 0x3ba9, 0x38e2, 0x3b74, 0x2b9d, 0x303d, 0x35ef, 0x29a3, 0x364d, 0x2fb5, 0x3991, 0x3a6a, 0x3bf5, 0x391f, 0x373f, 0x3a0a, 0x3a6f, 0x3ad6, 0x35ba, 0x3889, 0x3982, 0x3b8b, 0x3a43, 0x3bfb, 0x3355, 0x3591, 0x39de, 0x34b8, 0x3b76, 0x2a30, 0x30cc, 0x33d3, 0x2f46, 0x380e, 0x3b6e, 0x3576, 0x388b, 0x3b42, 0x35de, 0x39ab, 0x32f3, 0x35dc, 0x3594, 0x3184, -0x3b0c, 0x3478, 0x3b70, 0x389e, 0x3a28, 0x3bf3, 0x3350, 0x35fc, 0x396f, 0x3a40, 0x3242, 0x3a86, 0x3bd1, 0x314b, 0x2e15, 0x394f, 0x391b, 0x3763, 0x31e4, 0x3908, 0x3b48, 0x39e5, 0x3aca, 0x3a5b, 0x3626, 0x37fa, 0x381c, 0x3867, 0x342c, 0x3842, 0x3b77, 0x3ad7, 0x39a8, 0x3867, 0x3b9c, 0x3938, 0x3969, 0x2f52, 0x3a11, 0x3982, 0x3963, 0x3873, 0x3278, 0x3193, 0x369e, 0x3848, 0x3a63, 0x399a, 0x3ba0, 0x39c1, 0x3987, 0x3595, 0x2993, 0x3517, 0x31f2, 0x35a9, 0x3628, 0x3a6b, 0x3bf2, 0x3a75, 0x3129, 0x3460, 0x38d0, 0x370e, 0x3a52, 0x381a, 0x3b57, 0x388c, 0x3a87, 0x2c5a, 0x3ac9, 0x3686, 0x2023, 0x2fcb, 0x2845, 0x36f2, 0x3ac6, 0x2f91, 0x2a3b, 0x37bc, 0x3865, 0x3b91, 0x3887, 0x3b8b, 0x2edc, 0x38e1, 0x3465, 0x348f, 0x3bfb, 0x393a, 0x3b42, 0x394e, 0x2f39, 0x364b, 0x37a7, 0x3b51, -0x3810, 0x35e7, 0x388f, 0x38fc, 0x3740, 0x322e, 0x2f12, 0x39d5, 0x3834, 0x366f, 0x2c74, 0x35da, 0x3901, 0x39c1, 0x39f1, 0x381a, 0xc05, 0x3541, 0x39d3, 0x326a, 0x3993, 0x3ba8, 0x3bc9, 0x3b2b, 0x390d, 0x3a4b, 0x38db, 0x39a7, 0x3043, 0x345e, 0x2e17, 0x2cd7, 0x38ba, 0x3a26, 0x3a7d, 0x385b, 0x3a40, 0x25b0, 0x3ba4, 0x3b75, 0x30f9, 0x3508, 0x3885, 0x375d, 0x3acf, 0x36fb, 0x334b, 0x3a92, 0x3bbd, 0x3b15, 0x392e, 0x3b14, 0x33b3, 0x3ac3, 0x39f8, 0x35ae, 0x391d, 0x3b24, 0x316a, 0x30e9, 0x3813, 0x3736, 0x3b34, 0x2db4, 0x395a, 0x37ac, 0x3a01, 0x3671, 0x37af, 0x368a, 0x2de1, 0x3a69, 0x3416, 0x3294, 0x344d, 0x393e, 0x399f, 0x1d48, 0x38db, 0x3b08, 0x3944, 0x3a99, 0x39d5, 0x35fb, 0x2828, 0x3a19, 0x38b3, 0x3209, 0x3660, 0x38fa, 0x3a01, 0x3ba5, 0x322e, 0x3048, 0x3bb1, 0x3be6, -0x3b6f, 0x327c, 0x3932, 0x3721, 0x39b5, 0x28b8, 0x3b6d, 0x3a9e, 0x393c, 0x35e6, 0x3b4d, 0x2515, 0x2921, 0x395a, 0x3762, 0x34c7, 0x38ed, 0x3b61, 0x35ab, 0x2d3c, 0x3132, 0x35ef, 0x37e1, 0x37cf, 0x383c, 0x3b5e, 0x3a9d, 0x39af, 0x362e, 0x3b02, 0x3a85, 0x3ad0, 0x3739, 0x38f9, 0x3a16, 0x30e5, 0x3b92, 0x39b6, 0x39c4, 0x3b4d, 0x30c6, 0x35c6, 0x3513, 0x2e7a, 0x32a9, 0x346a, 0x359a, 0x3ae2, 0x3a27, 0x3b87, 0x3934, 0x358e, 0x33cd, 0x37a7, 0x3bbb, 0x383f, 0x357d, 0x3714, 0x35c1, 0x3540, 0x35ff, 0x39a6, 0x3686, 0x39bd, 0x3906, 0x357b, 0x3b22, 0x3be6, 0x38e3, 0x3876, 0x3954, 0x2c83, 0x3acf, 0x3aef, 0x3a67, 0x3548, 0x38d1, 0x359f, 0x3b59, 0x3b61, 0x39c8, 0x392e, 0x39a6, 0x3a3a, 0x3ad5, 0x3831, 0x39ae, 0x3b0e, 0x3b00, 0x3acf, 0x30e1, 0x3751, 0x2f93, 0x39e5, 0x39c3, 0x3928, -0x2df5, 0x36e5, 0x2605, 0x3827, 0x3566, 0x38b3, 0x3345, 0x3869, 0x38e2, 0x31a5, 0x37cf, 0x3b01, 0x3add, 0x2e7e, 0x3573, 0x2f1a, 0x2d92, 0x3a72, 0x3821, 0x313b, 0x3970, 0x3943, 0x3af1, 0x3aeb, 0x37d8, 0x35c7, 0x38a8, 0x3abb, 0x3893, 0x33a0, 0x3a05, 0x3830, 0x37d5, 0x2708, 0x3685, 0x3907, 0x3a07, 0x39f9, 0x3889, 0x2fd1, 0x38c8, 0x3091, 0x3b6a, 0x3332, 0x35f0, 0x36f0, 0x35ce, 0x3b5e, 0x3927, 0x3bf3, 0x392e, 0x39e6, 0x3703, 0x38c6, 0x37db, 0x364c, 0x3984, 0x2bd1, 0x34b3, 0x3873, 0x332b, 0x38a5, 0x2b51, 0x3a1c, 0x3446, 0x2f6a, 0x3975, 0x2f99, 0x38f4, 0x3849, 0x35f2, 0x3734, 0x38da, 0x38b9, 0x39cb, 0x3a6d, 0x39ea, 0x3160, 0x2fde, 0x3acb, 0x2d2d, 0x325b, 0x3a86, 0x3b66, 0x3a07, 0x361c, 0x394a, 0x2b5d, 0x3a45, 0x2dfa, 0x3505, 0x3263, 0x39e5, 0x3655, 0x32de, 0x3295, -0x38c9, 0x2f7b, 0x2f9e, 0x2d42, 0x3b0c, 0x378c, 0x2dac, 0x22ef, 0x3603, 0x396c, 0x3460, 0x3a7a, 0x3b62, 0x3177, 0x3703, 0x2936, 0x39a0, 0x38e7, 0x3b0d, 0x331e, 0x34cb, 0x39f3, 0x3138, 0x3a4d, 0x35d5, 0x399f, 0x3229, 0x39d3, 0x385c, 0x28ea, 0x3895, 0x3653, 0x3561, 0x3927, 0x35b6, 0x34b7, 0x3983, 0x2d4f, 0x2ad7, 0x3562, 0x324b, 0x29e0, 0x3928, 0x3a3d, 0x3aa2, 0x3128, 0x357a, 0x3a20, 0x3b17, 0x2919, 0x3702, 0x35bd, 0x3578, 0x3a6c, 0x3a68, 0x38e2, 0x3888, 0x38cd, 0x36f9, 0x3164, 0x351b, 0x39c4, 0x219b, 0x301f, 0x31fb, 0x343d, 0x38d5, 0x3900, 0x1dad, 0x3a61, 0x385e, 0x385b, 0x388e, 0x38b1, 0x351e, 0x34dc, 0x35c8, 0x316e, 0x36b7, 0x3beb, 0x3646, 0x2d3d, 0x35ff, 0x33bb, 0x36bf, 0x3adf, 0x3a75, 0x3b1f, 0x3a07, 0x38f1, 0x390a, 0x2e57, 0x27c6, 0x3afa, 0x396a, 0x2d0d, -0x3173, 0x3b83, 0x3ace, 0x3631, 0x3aa6, 0x38b6, 0x37c5, 0x365e, 0x2f2a, 0x3528, 0x3be0, 0x3af3, 0x37e7, 0x3947, 0x292e, 0x3b1b, 0x3959, 0x3082, 0x279b, 0x3a83, 0x3052, 0x3b4e, 0x3948, 0x39e1, 0x3566, 0x38c3, 0x3738, 0x30ee, 0x2731, 0x2ce3, 0x39a0, 0x3b90, 0x36c8, 0x3980, 0x357c, 0x34cf, 0x3a92, 0x3ac1, 0x1fc8, 0x3b89, 0x399c, 0x380f, 0x366e, 0x3767, 0x3650, 0x399b, 0x3413, 0x357b, 0x3610, 0x3a32, 0x3b9e, 0x3ae2, 0x3a84, 0x399b, 0x3ad1, 0x38a6, 0x3a6e, 0x36d4, 0x3bcc, 0x3043, 0x30ad, 0x35c2, 0x3b07, 0x2a03, 0x3658, 0x39ba, 0x3bf3, 0x3b92, 0x38ad, 0x36dc, 0x398e, 0x35ed, 0x3409, 0x3b31, 0x36d5, 0x3221, 0x3b12, 0x3887, 0x38e0, 0x3550, 0x31fa, 0x2f61, 0x3bd0, 0x34b8, 0x3860, 0x30db, 0x3415, 0x3b42, 0x31cb, 0x39c3, 0x3125, 0x3b66, 0x2468, 0x3a27, 0x3b63, 0x3ae5, -0x3809, 0x37a7, 0x39a2, 0x35c1, 0x3baf, 0x3798, 0x3518, 0x3583, 0x3bfc, 0x3bab, 0x3ab0, 0x3822, 0x3589, 0x33b1, 0x33e7, 0x3899, 0x3b93, 0x36bd, 0x3a87, 0x343c, 0x39a1, 0x3a0a, 0x38c6, 0x3b47, 0x3b64, 0x2d7e, 0x3bfd, 0x2d2d, 0x3a8a, 0x306c, 0x3766, 0x340d, 0x38e7, 0x3617, 0x3bd3, 0x398c, 0x3819, 0x3171, 0x36e6, 0x391f, 0x30d4, 0x39d5, 0x31bb, 0x3833, 0x3012, 0x2db1, 0x3aab, 0x3903, 0x3749, 0x379e, 0x3089, 0x2d69, 0x251b, 0x3448, 0x3418, 0x3b4e, 0x37de, 0x38c6, 0x373b, 0x38aa, 0x3968, 0x3b36, 0x3bfe, 0x38c9, 0x3ada, 0x38ba, 0x354e, 0x3a6e, 0x373d, 0x380c, 0x374b, 0x34d2, 0x35fd, 0x3a5d, 0x3a8d, 0x3a14, 0x3abd, 0x346c, 0x3766, 0x3908, 0x3ad3, 0x3a52, 0x341b, 0x2ad8, 0x3abb, 0x3083, 0x2933, 0x3b56, 0x3a33, 0x3753, 0x3529, 0x3bfd, 0x34a1, 0x3229, 0x3be1, 0x3b71, -0x3a9e, 0x3764, 0x35e7, 0x3831, 0x398a, 0x3877, 0x3aec, 0x39f0, 0x3159, 0x389f, 0x38bc, 0x3878, 0x3bc7, 0x3a01, 0x2896, 0x39af, 0x3784, 0x3260, 0x38d9, 0x3bcf, 0x3bfa, 0x3bc3, 0x2b23, 0x387d, 0x2e5b, 0x35a6, 0x3468, 0x3933, 0x2783, 0x37e8, 0x3af2, 0x332e, 0x3b77, 0x3ac3, 0x3514, 0x3bcd, 0x3bd8, 0x372f, 0x3979, 0x3b30, 0x3993, 0x3888, 0x38d5, 0x3a18, 0x3be4, 0x2b5c, 0x2518, 0x3b55, 0x3bbc, 0x3ba0, 0x2f21, 0x33b6, 0x352c, 0x39b3, 0x3bc7, 0x3a59, 0x38ea, 0x3432, 0x3b9b, 0x3b74, 0x3baf, 0x34a2, 0x3457, 0x3593, 0x3967, 0x3879, 0x3b79, 0x3806, 0x30ca, 0x384c, 0x394c, 0x37a7, 0x21ce, 0x3bbc, 0x305c, 0x3b11, 0x3a1a, 0x3a64, 0x2e80, 0x27ac, 0x3635, 0x361d, 0x2d4c, 0x2264, 0x37ba, 0x165c, 0x2ec8, 0x386b, 0x1b60, 0x3992, 0x357f, 0x2b6b, 0x37da, 0x3942, 0x2d77, 0x2f25, -0x34e0, 0x3809, 0x395b, 0x33dd, 0x38af, 0x3546, 0x2f78, 0x3469, 0x3832, 0x34b7, 0x3839, 0x32c0, 0x3676, 0x3b1f, 0x3872, 0x317b, 0x3403, 0x3444, 0x3438, 0x39cb, 0x3102, 0x3a90, 0x381a, 0x2db5, 0x3b1f, 0x3a44, 0x3aff, 0x354f, 0x3578, 0x3921, 0x38b0, 0x301f, 0x2da3, 0x3062, 0x3596, 0x3a07, 0x382a, 0x37bd, 0x3634, 0x34b1, 0x31a5, 0x353f, 0x33ec, 0x3986, 0x37a7, 0x332d, 0x3874, 0x3046, 0x3b5b, 0x3bf8, 0x37a0, 0x3822, 0x36c4, 0x385c, 0x3868, 0x39ec, 0x3959, 0x39cc, 0x382e, 0x2505, 0x3471, 0x358c, 0x3905, 0x395b, 0x312b, 0x3706, 0x2eec, 0x3a2a, 0x3be9, 0x3a96, 0x2932, 0x3a84, 0x38b2, 0x3884, 0x3655, 0x341f, 0x30b6, 0x363a, 0x3a7d, 0x389b, 0x348c, 0x3b98, 0x38cc, 0x3699, 0x373b, 0x3ad9, 0x377b, 0x33b4, 0x8ef, 0x3a4c, 0x39a2, 0x3bbc, 0x3b01, 0x3a46, 0x3b56, 0x38db, -0x29ab, 0x29e8, 0x3830, 0x39d7, 0x38ff, 0x33a2, 0x2ed0, 0x38e9, 0x3bd2, 0x380b, 0x3940, 0x3b79, 0x3477, 0x36f4, 0x38b8, 0x382d, 0x3838, 0x37f7, 0x219f, 0x34ec, 0x3af5, 0x347d, 0x3a0e, 0x352e, 0x39f3, 0x39ae, 0x3624, 0x1a5a, 0x329c, 0x3a57, 0x254a, 0x361b, 0x3554, 0x3a17, 0x3888, 0x34c7, 0x3628, 0x3321, 0x39de, 0x34f1, 0x386f, 0x37ae, 0x3709, 0x3909, 0x3ae3, 0x3a0e, 0x3495, 0x3bb8, 0x363c, 0x3039, 0x37e4, 0x30ff, 0x164f, 0x37aa, 0x3b7d, 0x2c60, 0x3828, 0x36b8, 0x235d, 0x29b9, 0x3917, 0x24db, 0x3946, 0x2e75, 0x359c, 0x35c3, 0x3b91, 0x35b5, 0x341f, 0x3873, 0x343a, 0x326a, 0x215c, 0x34f3, 0x35a9, 0x2efa, 0x29dd, 0x3b37, 0x3594, 0x305f, 0x3b48, 0x3bc9, 0x3957, 0x3bac, 0x3638, 0x369e, 0x3a45, 0x3173, 0x3bad, 0x354c, 0x32d9, 0x38d2, 0x3b97, 0x3409, 0x3871, 0x3ac2, -0x3739, 0x2c5b, 0x3480, 0x3206, 0x2ede, 0x345e, 0x3806, 0x354c, 0x38ac, 0x3404, 0x35b5, 0x2250, 0x3957, 0x3831, 0x37c2, 0x331a, 0x36c9, 0x3b7c, 0x2a94, 0x3b00, 0x3722, 0x38c4, 0x35b9, 0x3b30, 0x3af4, 0x3758, 0x3290, 0x33a6, 0x31fe, 0x3937, 0x3b74, 0x3010, 0x3076, 0x344d, 0x3773, 0x22d7, 0x25f7, 0x2cde, 0x3999, 0x3859, 0x32b9, 0x3985, 0x3a7e, 0x39eb, 0x35f1, 0x3a36, 0x3735, 0x3337, 0x34da, 0x30ca, 0x3a16, 0x3523, 0x3802, 0x3a05, 0x3609, 0x310b, 0x3770, 0x389c, 0x2d46, 0x382e, 0x332f, 0x2d06, 0x39d5, 0x3b65, 0x3a48, 0x3b45, 0x2d13, 0x389d, 0x27e8, 0x34e9, 0x3a4d, 0x2802, 0x3903, 0x3ac4, 0x3bb7, 0x38ab, 0x3a80, 0x3725, 0x2f22, 0x358e, 0x3b17, 0x3a80, 0x39b0, 0x3bdd, 0x3aa6, 0x326d, 0x34d4, 0x2f73, 0x39c3, 0x297f, 0x210c, 0x2713, 0x3887, 0x3aec, 0x3a48, 0x3a58, -0x35dc, 0x2ea9, 0x3576, 0x3b80, 0x34c8, 0x3bfb, 0x3268, 0x336c, 0x3574, 0x3712, 0x349c, 0x3bb4, 0x3875, 0x3be8, 0x3b9f, 0x3436, 0x31e8, 0x3a22, 0x2d06, 0x3222, 0x3b99, 0x37ef, 0x3511, 0x3a6f, 0x36dc, 0x3b58, 0x353a, 0x3985, 0x3938, 0x3b64, 0x2753, 0x21b5, 0x2bb1, 0x3291, 0x3af9, 0x30eb, 0x3819, 0x376e, 0x357f, 0x2d58, 0x398d, 0x3966, 0x3a12, 0x32f5, 0x3b9e, 0x3bac, 0x38e8, 0x37bc, 0x3106, 0x3750, 0x39f4, 0x3bf3, 0x38d4, 0x3b41, 0x3b4e, 0x3722, 0x3536, 0x35b1, 0x3a85, 0x34f8, 0x3bcf, 0x351f, 0x3953, 0x39d4, 0x3abc, 0x3521, 0x389f, 0x2386, 0x350b, 0x3b1d, 0x35a3, 0x359c, 0x3607, 0x3b0a, 0x385b, 0x3927, 0x39f9, 0x3a58, 0x36c7, 0x3030, 0x3ba8, 0x348e, 0x2f3d, 0x3973, 0x3b3c, 0x3a02, 0x3abd, 0x3a2e, 0x28f3, 0x3b9b, 0x348e, 0x396b, 0x3963, 0x39dc, 0x3a38, 0x3b12, -0x3a7c, 0x378c, 0x3a31, 0x3068, 0x3790, 0x24a7, 0x39b5, 0x3629, 0x34a4, 0x3bd4, 0x357b, 0x3bc8, 0x356b, 0x3a00, 0x3776, 0x32ad, 0x3327, 0x2da5, 0x2f3a, 0x366c, 0x25f9, 0x34e3, 0x3b50, 0x25c1, 0x33c4, 0x3822, 0x34d7, 0x3bed, 0x3a05, 0x3bab, 0x37e9, 0x37fe, 0x3a3c, 0x380d, 0x369f, 0x3b86, 0x2460, 0x39aa, 0x38e7, 0x388b, 0x1e16, 0x2f0c, 0x39a6, 0x3a99, 0x39b7, 0x35b2, 0x3221, 0x3618, 0x3a08, 0x37fc, 0x3481, 0x3ba6, 0x3408, 0x3415, 0x3adf, 0x3b77, 0x19f6, 0x328c, 0x3830, 0x3996, 0x3afb, 0x3528, 0x37e6, 0x39e1, 0x380b, 0x35bc, 0x3b6c, 0x3a1f, 0x385b, 0x34c9, 0x3b7c, 0x35f5, 0x258c, 0x39ec, 0x30f8, 0x322d, 0x3b8a, 0x3159, 0x399f, 0x2f24, 0x346a, 0x3738, 0x39cb, 0x3949, 0x3a2e, 0x3b54, 0x3adf, 0x3b62, 0x3ab1, 0x316d, 0x3aa6, 0x2ec2, 0x38f8, 0x2b3b, 0x2861, 0x3026, -0x2a43, 0x3b6a, 0x3a73, 0x31d4, 0x352e, 0x3461, 0x345c, 0x34f2, 0x2c0e, 0x38b3, 0x2e79, 0x3ba2, 0x2c1e, 0x3314, 0x371a, 0x3973, 0x2f6f, 0x3a7b, 0x3031, 0x39f1, 0x3b78, 0x381b, 0x2d2b, 0x38a6, 0x3864, 0x3a6b, 0x3045, 0x3731, 0x2d60, 0x382b, 0x31e4, 0x3985, 0x3bce, 0x34fe, 0x39f0, 0x381d, 0x35d3, 0x38a2, 0x2eeb, 0x3278, 0x3ace, 0x344a, 0x37a5, 0x341b, 0x3a62, 0x3549, 0x365d, 0x3a82, 0x3842, 0x37de, 0x3b1f, 0x32d3, 0x3b8e, 0x3a44, 0x2cfd, 0x3885, 0x3b2e, 0x34b1, 0x3674, 0x37d8, 0x3bff, 0x3535, 0x3487, 0x2fbe, 0x3abe, 0x3266, 0x31ad, 0x340a, 0x3be2, 0x21a8, 0x3924, 0x39ea, 0x381b, 0x3351, 0x3aa6, 0x3903, 0x38b5, 0x3284, 0x3937, 0x3a34, 0x344a, 0x3a26, 0x312f, 0x39a8, 0x3b8d, 0x373e, 0x3b66, 0x2764, 0x386d, 0x20a8, 0x381c, 0x395e, 0x2ee0, 0x3820, 0x37f5, 0x3bc2, -0x3bd7, 0x37b6, 0x39dd, 0x3b50, 0x3621, 0x3726, 0x3484, 0x360f, 0x39fa, 0x3b62, 0x2318, 0x1a60, 0x35b8, 0x340b, 0x2d49, 0x35ec, 0x3783, 0x3b02, 0x3654, 0x3b4f, 0x337c, 0x3bff, 0x36aa, 0x34cc, 0x38cd, 0x3555, 0x39a0, 0x34da, 0x2840, 0x3897, 0x3bcc, 0x30ff, 0x347f, 0x3acf, 0x39ac, 0x2544, 0x352e, 0x36d2, 0x3643, 0x33f1, 0x3bd2, 0x30b1, 0x38f3, 0x3a47, 0x3863, 0x37e5, 0x2048, 0x388c, 0x2c07, 0x3abc, 0x342a, 0x3986, 0x38ee, 0x39ff, 0x3485, 0x3947, 0x386c, 0x39e0, 0x3a96, 0x3bdc, 0x3158, 0x3ba6, 0x28fc, 0x29dd, 0x3b4e, 0x3a74, 0x3834, 0x3b8d, 0x1c2f, 0x390f, 0x3009, 0x39db, 0x2dc1, 0x3802, 0x3bb2, 0x3428, 0x2dff, 0x3a33, 0x355f, 0x3122, 0x3152, 0x3615, 0x38d7, 0x38f6, 0x3624, 0x3ac4, 0x1527, 0x3a83, 0x2db8, 0x3847, 0x3afe, 0x3a7e, 0x307e, 0x3711, 0x3726, 0x3a68, -0x2b4b, 0x3b91, 0x360b, 0x3b18, 0x375e, 0x2be2, 0x3a8d, 0x2bbb, 0x2f24, 0x3271, 0x2e97, 0x3734, 0x3a56, 0x35d8, 0x355c, 0x1578, 0x33d1, 0x3b60, 0x2793, 0x350b, 0x34c6, 0x38d3, 0x387f, 0x3a3f, 0x3928, 0x3021, 0x384d, 0x36f8, 0x3413, 0x3be3, 0x3817, 0x2280, 0x36ef, 0x3795, 0x385b, 0x3be6, 0x323d, 0x3880, 0x35d7, 0x3201, 0x3329, 0x3a49, 0x36bf, 0x3585, 0x2df9, 0x3897, 0x338c, 0x313c, 0x343c, 0x3ab6, 0x3927, 0x3514, 0x3944, 0x3bfa, 0x347e, 0x32a5, 0x357f, 0x3b96, 0x375b, 0x38cc, 0x3bc9, 0x384c, 0x39ec, 0x35f4, 0x36a6, 0x3bf9, 0x2aa9, 0x3b18, 0x3172, 0x3bc9, 0x3b41, 0x2e94, 0x39cd, 0x368f, 0x3903, 0x2d54, 0x3a45, 0x3378, 0x3a00, 0x392f, 0x39f1, 0x38c5, 0x2b64, 0x390d, 0x3b77, 0x391d, 0x343c, 0x3627, 0x3826, 0x344a, 0x3a0a, 0x37cb, 0x3b06, 0x3b16, 0x3656, 0x3a47, -0x3be3, 0x35b8, 0x37af, 0x3765, 0x38e8, 0x3bf3, 0x344e, 0x39f7, 0x3320, 0x3590, 0x30b6, 0x395c, 0x3abf, 0x34fe, 0x359a, 0x3a55, 0x39fd, 0x3a41, 0x3a8c, 0x382b, 0x3741, 0x36bb, 0x387f, 0x358a, 0x36f9, 0x3bc8, 0x33f7, 0x34bd, 0x3460, 0x3aa3, 0x39dc, 0x31f7, 0x38e1, 0x3b21, 0x384d, 0x38bb, 0x38ce, 0x381d, 0x38d7, 0x349a, 0x2d43, 0x3251, 0x3917, 0x39aa, 0x3871, 0x3a59, 0x3a1c, 0x382c, 0x37c1, 0x3a9e, 0x2f8f, 0x32a5, 0x1583, 0x319d, 0x38ff, 0x393c, 0x38e8, 0x2da0, 0x396a, 0x3987, 0x3887, 0x339d, 0x360c, 0x37d5, 0x3ad6, 0x3986, 0x3559, 0x3a60, 0x392b, 0x2e25, 0x2878, 0x3184, 0x309b, 0x35c8, 0x38cf, 0x358b, 0x3804, 0x3943, 0x312d, 0x3a2a, 0x29ab, 0x3b0d, 0x3959, 0x33c5, 0x3bfe, 0x33f0, 0x3a98, 0x29f1, 0x39ee, 0x37da, 0x3a1c, 0x3896, 0x387b, 0x3a07, 0x2e45, 0x3932, -0x3556, 0x38f6, 0x3826, 0x3299, 0x2e6c, 0x3957, 0x3687, 0x35e5, 0x34ea, 0x34ab, 0x2b4e, 0x3a50, 0x365f, 0x39d6, 0x3968, 0x3ad5, 0x3966, 0x305e, 0x2ef6, 0x3471, 0x343d, 0x3bab, 0x2e4b, 0x3853, 0x3a96, 0x3be5, 0x2a10, 0x3790, 0x34c6, 0x3aa6, 0x3864, 0x3b07, 0x31b7, 0x3b38, 0x25f8, 0x2f15, 0x34dc, 0x3bbd, 0x379f, 0x363d, 0x3b1a, 0x3862, 0x37c5, 0x32a9, 0x3590, 0x3074, 0x31de, 0x30f6, 0x37ed, 0x3722, 0x34fd, 0x3a1f, 0x3580, 0x37c5, 0x3b84, 0x3be4, 0x357c, 0x36ed, 0x30d5, 0x38cd, 0x343e, 0x3831, 0x397f, 0x36db, 0x383a, 0x24e2, 0x3a9d, 0x39dd, 0x36f7, 0x360a, 0x2be4, 0x2dca, 0x321c, 0x361b, 0x378e, 0xe22, 0x2486, 0x3550, 0x3900, 0x34a9, 0x3b2f, 0x3829, 0x1f15, 0x3906, 0x3220, 0x25b1, 0x38b1, 0x398d, 0x382e, 0x298d, 0x39a5, 0x3bb2, 0x31fd, 0x3964, 0x36f6, 0x3835, -0x3907, 0x3b4f, 0x3b17, 0x390d, 0x2b5c, 0x3533, 0x3a28, 0x345e, 0x3954, 0x386e, 0x3b0f, 0x321c, 0x3bce, 0x326d, 0x3a39, 0x3a70, 0x38b1, 0x38c6, 0x3aa4, 0x3aa1, 0x38b6, 0x3a65, 0x3b54, 0x3230, 0x397a, 0x3b63, 0x3869, 0x3003, 0x368e, 0x3a48, 0x3a19, 0x38be, 0x3bb0, 0x2e6e, 0x3ad2, 0x2a53, 0x35d9, 0x39d2, 0x2dd0, 0x32b2, 0x3180, 0x229f, 0x3bcc, 0x38d6, 0x3b74, 0x3bd1, 0x37f7, 0x380d, 0x3928, 0x3b54, 0x35ff, 0x3457, 0x3470, 0x3155, 0x3a41, 0x342c, 0x3af8, 0x2de0, 0x3608, 0x36ab, 0x3bdd, 0x35e3, 0x2aa9, 0x37d0, 0x3a4c, 0x35dc, 0x2e36, 0x37a3, 0x39b3, 0x2e4b, 0x3b11, 0x323a, 0x38de, 0x3ba3, 0x38ff, 0x3823, 0x310d, 0x3b05, 0x39f8, 0x3abf, 0x3bcf, 0x36c4, 0x3ae2, 0x36cd, 0x3a8f, 0x3a91, 0x368f, 0x37aa, 0x3969, 0x39aa, 0x3bff, 0x3422, 0x37c5, 0x35f0, 0x3b46, 0x3a21, -0x384a, 0x3984, 0x3349, 0x2014, 0x38ea, 0x28c4, 0x3520, 0x3a22, 0x3bec, 0x32e8, 0x275e, 0x3b5a, 0x3a2d, 0x3a3f, 0x3690, 0x321c, 0x3b62, 0x392f, 0x3a2c, 0x36b7, 0x38a2, 0x3205, 0x3520, 0x3b6f, 0x3378, 0x3911, 0x3833, 0x3991, 0x380b, 0x3a4a, 0x38a6, 0x3865, 0x3aa6, 0x38e7, 0x397a, 0x38fa, 0x3b10, 0x3440, 0x39a2, 0x3566, 0x365d, 0x307a, 0x2d18, 0x3978, 0x389c, 0x39f5, 0x38df, 0x29c3, 0x3a62, 0x3b75, 0x39b5, 0x2015, 0x307b, 0x39e1, 0x288f, 0x3936, 0x31ee, 0x3be2, 0x35e1, 0x391f, 0x345d, 0x39ff, 0x390c, 0x32cb, 0x38ce, 0x3441, 0x3a3a, 0x3713, 0x2fce, 0x321b, 0x2deb, 0x34e3, 0x3ade, 0x2a6e, 0x3bff, 0x3882, 0x3bec, 0x3ad9, 0x3abc, 0x3bb4, 0x36d8, 0x3617, 0x3015, 0x3a62, 0x3115, 0x384d, 0x3a19, 0x35cf, 0x3468, 0x300f, 0x371e, 0x34ba, 0x378b, 0x37fb, 0x3af8, 0x2fad, -0x2bed, 0x3854, 0x38ab, 0x3879, 0x2ff5, 0x3808, 0x38d5, 0x3ba2, 0x390c, 0x3ba1, 0x3343, 0x373d, 0x34b8, 0x37b5, 0x3653, 0x2db9, 0x3433, 0x318b, 0x39c9, 0x333d, 0x2ca0, 0x3b89, 0x3002, 0x34f2, 0x3969, 0x3a48, 0x1df8, 0x2421, 0x3b9d, 0x3b5a, 0x398a, 0x394b, 0x2fea, 0x296d, 0x3b39, 0x3696, 0x3b4d, 0x340d, 0x3b7e, 0x39ba, 0x2f44, 0x37af, 0x38e4, 0x3a86, 0x3b2d, 0x3954, 0x2bed, 0x3506, 0x2501, 0x3bc9, 0x3a58, 0x3abb, 0x384d, 0x33d6, 0x34d0, 0x3468, 0x3bbf, 0x3a17, 0x3534, 0x3b31, 0x3a7a, 0x3644, 0x36e3, 0x3a50, 0x2284, 0x3b1e, 0x37ed, 0x3ba9, 0x3919, 0x39d3, 0x3235, 0x3bc0, 0x3938, 0x32ea, 0x32fc, 0x3bc0, 0x3a91, 0x3af2, 0x3410, 0x38b5, 0x2ca8, 0x3097, 0x2b7c, 0x3528, 0x3b69, 0x3602, 0x3637, 0x383d, 0x34a3, 0x3ac4, 0x2c6b, 0x302e, 0x3b38, 0x34a3, 0x3519, 0x3674, -0x2f15, 0x2cb7, 0x3a46, 0x3663, 0x3b63, 0x38b4, 0x3b34, 0x3ba3, 0x2d14, 0x3422, 0x3701, 0x38e1, 0x39fe, 0x3112, 0x38dd, 0x357c, 0x2e9f, 0x35d1, 0x36ec, 0x306e, 0x38ea, 0x36c8, 0x34c7, 0x38e4, 0x3aee, 0x3ab5, 0x355e, 0x395c, 0x242b, 0x3197, 0x3832, 0x3987, 0x3682, 0x38f9, 0x3aaa, 0x209e, 0x35d4, 0x36a0, 0x3779, 0x39ff, 0x33e5, 0x3138, 0x35a6, 0x362f, 0x3b4e, 0x3417, 0x27c8, 0x39db, 0x3004, 0x3b6b, 0x30bd, 0x31e3, 0x3988, 0x32f4, 0x3ac7, 0x305a, 0x248b, 0x2dae, 0x21bf, 0x34c6, 0x2993, 0x3b6b, 0x3530, 0x3acc, 0x3563, 0x2e8c, 0x3492, 0x3954, 0x388b, 0x3b35, 0x3880, 0x38c4, 0x34c6, 0x3bb8, 0x360d, 0x28f6, 0x390a, 0x39e5, 0x2f09, 0x38e5, 0x34ca, 0x3634, 0x38b2, 0x39b7, 0x2d73, 0x396d, 0x3490, 0x39fd, 0x38dd, 0x39b9, 0x3adb, 0x326e, 0x3afc, 0x3bf5, 0x3bfc, 0x2b6a, -0x3440, 0x36eb, 0x32c4, 0x3be7, 0x3215, 0x3a10, 0x2dd5, 0x3999, 0x3bcd, 0x39a9, 0x351a, 0x36ad, 0x3732, 0x28a4, 0x205e, 0x30a4, 0x3a0b, 0x399e, 0x356a, 0x2c98, 0x3912, 0x3471, 0x3b45, 0x38df, 0x3b91, 0x303f, 0x3bf6, 0x374a, 0x3813, 0x3739, 0x30a9, 0x3155, 0x385b, 0x3952, 0x3229, 0x3639, 0x39c8, 0x3827, 0x333c, 0x3978, 0x38be, 0x3a90, 0x35b5, 0x3655, 0x33be, 0x39df, 0x3b24, 0x392a, 0x2bda, 0x3895, 0x3ac0, 0x352c, 0x2c77, 0x3893, 0x3ac3, 0x3305, 0x3699, 0x2a79, 0x3bf9, 0x3821, 0x39fa, 0x38b3, 0x3428, 0x3564, 0x3073, 0x37ba, 0x2877, 0x3b5f, 0x2c54, 0x35da, 0x3a33, 0x37d7, 0x396b, 0x3408, 0x36a3, 0x2d1b, 0x3860, 0x3bf5, 0x36cc, 0x3b43, 0x3846, 0x34ce, 0x3b1d, 0x34ca, 0x351d, 0x323d, 0x37ce, 0x3ac1, 0x35e5, 0x3b80, 0x3b7e, 0x3a78, 0x38e5, 0x3106, 0x3892, 0x35a5, -0x38f9, 0x3ac7, 0x3886, 0x3a8d, 0x3a5c, 0x39f0, 0x2c1e, 0x3ad7, 0x37bf, 0x366d, 0x3715, 0x290c, 0x320b, 0x3639, 0x3442, 0x33eb, 0x3602, 0x2b7b, 0x344e, 0x3906, 0x3780, 0x372b, 0x39f5, 0x39d7, 0x3742, 0x35d3, 0x3672, 0x2d25, 0x397c, 0x3953, 0x3970, 0x37d2, 0x38f2, 0x3790, 0x30c7, 0x3417, 0x31e2, 0x3b53, 0x3587, 0x3ad8, 0x3875, 0x3908, 0x2c27, 0x33b7, 0x3ad5, 0x3641, 0x3bcb, 0x3b70, 0x3b87, 0x346d, 0x397f, 0x25be, 0x3137, 0x3946, 0x36c4, 0x3b67, 0x3a20, 0x36e7, 0x31b1, 0x3948, 0x3bf5, 0x2b26, 0x34fe, 0x3522, 0x30e8, 0x2630, 0x37ff, 0x368f, 0x389e, 0x2d92, 0x37b4, 0x39b1, 0x3532, 0x39cf, 0x39ae, 0x3a2f, 0x3862, 0x3656, 0x39cb, 0x3a84, 0x37e3, 0x3b06, 0x3901, 0x2ccb, 0x2b4e, 0x348b, 0x3abf, 0x3a1f, 0x2e1e, 0x2d75, 0x39e5, 0x3143, 0x39ff, 0x38c2, 0x3ba0, 0x3a64, -0x3969, 0x2ffd, 0x39fd, 0x399d, 0x3863, 0x3896, 0x3ab1, 0x3815, 0x3bd8, 0x34fb, 0x3419, 0x3bf7, 0x38cc, 0x3659, 0x2bbc, 0x3bb0, 0x3abb, 0x3554, 0x394a, 0x3ad8, 0x2ea5, 0x3bf6, 0x37bb, 0x2363, 0x3aef, 0x36dc, 0x2dfb, 0x3721, 0x3558, 0x390c, 0x36df, 0x2ff3, 0x3b70, 0x266e, 0x3b66, 0x3957, 0x2884, 0x34e4, 0x3589, 0x3864, 0x3a4b, 0x30d7, 0x3611, 0x34ec, 0x36d2, 0x37f9, 0x3abe, 0x2be6, 0x39ed, 0x336a, 0x3aba, 0x396c, 0x3838, 0x23cb, 0x3bbb, 0x3944, 0x2f70, 0x2d41, 0x3b28, 0x3b81, 0x305c, 0x3a88, 0x38a6, 0x3829, 0x33c9, 0x34e0, 0x3a41, 0x346a, 0x3b1b, 0x378f, 0x3a1a, 0x395f, 0x3ba3, 0x3072, 0x3918, 0x302d, 0x3949, 0x3a56, 0x37ac, 0x3807, 0x3b7f, 0x3461, 0x3a65, 0x349a, 0x3b40, 0x2c4d, 0x39d3, 0x3b6e, 0x2f82, 0x3797, 0x3bdb, 0x3b73, 0x30ee, 0x3b5a, 0x2fa1, 0x3be4, -0x3b02, 0x38ec, 0x3b86, 0x3569, 0x3bef, 0x3029, 0x3368, 0x3ad9, 0x2e8e, 0x3bd8, 0x34cb, 0x2db1, 0x3aa2, 0x38da, 0x2ca5, 0x3ad4, 0x3842, 0x3a34, 0x3777, 0x3a3d, 0x3b37, 0x3bc7, 0x32ef, 0x3bd1, 0x3bd9, 0x34b4, 0x301f, 0x38af, 0x235f, 0x3595, 0x3a7d, 0x3a9a, 0x3b4b, 0x2801, 0x318e, 0x2ce5, 0x39ab, 0x39d5, 0x3986, 0x3823, 0x2b17, 0x395e, 0x35e3, 0x3740, 0x39e9, 0x3882, 0x384c, 0x36b7, 0x3426, 0x396b, 0x3b1d, 0x2c8e, 0x3bb6, 0x30a8, 0x37b3, 0x35f6, 0x3a37, 0x367f, 0x3877, 0x342f, 0x3939, 0x317c, 0x38b9, 0x3b47, 0x3437, 0x3533, 0x3ba2, 0x3b25, 0x3b39, 0x36d3, 0x34b1, 0x39b0, 0x30f6, 0x349a, 0x1e90, 0x3a7f, 0x3559, 0x37ed, 0x3aa9, 0x360f, 0x3445, 0x3256, 0x3925, 0x3974, 0x3897, 0x3ab0, 0x3410, 0x36d2, 0x367d, 0x2f29, 0x3917, 0x34d4, 0x3996, 0x3450, 0x3486, 0x3b67, -0x2c33, 0x3407, 0x3708, 0x321b, 0x39aa, 0x388f, 0x3427, 0x39c1, 0x3990, 0x3a24, 0x3970, 0x3bb4, 0x34be, 0x366e, 0x3bfc, 0x3748, 0x3bcc, 0x2d09, 0x394d, 0x398c, 0x3b19, 0x3855, 0x3954, 0x3268, 0x32ae, 0x3a02, 0x39e1, 0x3122, 0x3a60, 0x3b17, 0x3be2, 0x3b90, 0x36a0, 0x3962, 0x3b1d, 0x3871, 0x3368, 0x3114, 0x355d, 0x39ea, 0x3a34, 0x35dd, 0x3976, 0x3b29, 0x239b, 0x3576, 0x2bf6, 0x35f5, 0x314f, 0x3af9, 0x3535, 0x3a04, 0x3b55, 0x3a1c, 0x1f50, 0x348a, 0x3ab2, 0x39d1, 0x3bad, 0x255b, 0x344f, 0x24a5, 0x29c8, 0x38aa, 0x3a5f, 0x34b3, 0x395e, 0x35b9, 0x3a6b, 0x3ad1, 0x357f, 0x38c1, 0x37c8, 0x3b16, 0x31cb, 0x3464, 0x3a8b, 0x39ce, 0x3592, 0x3a6c, 0x39a6, 0x303b, 0x34eb, 0x3019, 0x3a0a, 0x3996, 0x3a65, 0x3bb8, 0x3804, 0x2a64, 0x3481, 0x3452, 0x39e7, 0x3be7, 0x34e4, 0x39ae, -0x3a52, 0x3a35, 0x3365, 0x35c6, 0x1e02, 0x2e5d, 0x399f, 0x375a, 0x3b3f, 0x3a1d, 0x34a7, 0x37fd, 0x34f5, 0x3a0f, 0x2909, 0x2ece, 0x350b, 0x38e1, 0x3a4e, 0x2c7f, 0x384d, 0x3aab, 0x2fc3, 0x3852, 0x3473, 0x3936, 0x359c, 0x3750, 0x3602, 0x36c7, 0x3815, 0x3790, 0x3980, 0x3544, 0x39b9, 0x3bcd, 0x3c00, 0x3560, 0x3aaa, 0x3b5a, 0x3301, 0x2c5a, 0x3a33, 0x2ccf, 0x3a7e, 0x364c, 0x393c, 0x34a1, 0x2da5, 0x372d, 0x350b, 0x3977, 0x37f4, 0x37d6, 0x3536, 0x3861, 0x360a, 0x3abb, 0x3871, 0x389e, 0x383e, 0x3b3e, 0x2744, 0x33d3, 0x3b94, 0x3028, 0x3bb7, 0x3736, 0x2da7, 0x2b10, 0x3a43, 0x345c, 0x38ac, 0x3574, 0x3689, 0x350d, 0x3bb1, 0x3acc, 0x38eb, 0x345f, 0x39f8, 0x325c, 0x36d3, 0x30a4, 0x3b49, 0x2b46, 0x3692, 0x3a37, 0x3788, 0x358d, 0x391b, 0x3872, 0x3632, 0x3ae4, 0x3b05, 0x35e4, -0x39ac, 0x34fc, 0x37e4, 0x3b1b, 0x380e, 0x2d0a, 0x38e3, 0x394b, 0x2c45, 0x3bcf, 0x3b0f, 0x38a0, 0x3456, 0x3668, 0x38ce, 0x3992, 0x38c0, 0x35fa, 0x320a, 0x38d9, 0x3bb9, 0x3334, 0x396b, 0x398f, 0x3854, 0x3bbf, 0x34c2, 0x2ae6, 0x3808, 0x3625, 0x29bb, 0x3aec, 0x246c, 0x3573, 0x3ae7, 0x3879, 0x3bdf, 0x2c64, 0x33f4, 0x3a63, 0x39c0, 0x3a35, 0x38f8, 0x38c6, 0x3b30, 0x3a3b, 0x2ec2, 0x32da, 0x316d, 0x2136, 0x3be5, 0x332b, 0x36c6, 0x38db, 0x3058, 0x2d9e, 0x37f9, 0x3733, 0x3ba2, 0x1d40, 0x339d, 0x2d02, 0x39e3, 0x3952, 0x380f, 0x3a19, 0x3795, 0x3799, 0x3547, 0x3b2a, 0x37c2, 0x3958, 0x39d1, 0x3303, 0x3612, 0x3aa8, 0x3ac2, 0x38f3, 0x2d4a, 0x37e8, 0x37e4, 0x39c1, 0x3bab, 0x36da, 0x3809, 0x2fe2, 0x3bd9, 0x3328, 0x397b, 0x3456, 0x324e, 0x34c7, 0x37d2, 0x3017, 0x3a40, 0x2c48, -0x39cc, 0x2c1f, 0x3a56, 0x3a9b, 0x3987, 0x2d9c, 0x38db, 0x39c4, 0x3a54, 0x373c, 0x367c, 0x3b9d, 0x38af, 0x3649, 0x38bc, 0x382e, 0x2f5f, 0x34b9, 0x2d83, 0x3720, 0x3b84, 0x39f7, 0x38b1, 0x3600, 0x3ba5, 0x3880, 0x39d6, 0x33af, 0x3bcd, 0x3bc0, 0x38aa, 0x277a, 0x3548, 0x2f9b, 0x3521, 0x3a8d, 0x3622, 0x2fd5, 0x35ca, 0x3405, 0x3399, 0x3428, 0x3ac0, 0x34e7, 0x3866, 0x3454, 0x3631, 0x2247, 0x34a1, 0x398b, 0x388d, 0x39cb, 0x3461, 0x3937, 0x351e, 0x3b71, 0x36a4, 0x3a61, 0x3ac2, 0x3b05, 0x39b4, 0x3b1c, 0x3bdf, 0x3835, 0x3398, 0x3931, 0x38c3, 0x3922, 0x292f, 0x39a7, 0x3688, 0x3817, 0x32d1, 0x37e9, 0x382b, 0x355c, 0x39a1, 0x38cc, 0x36ee, 0x35c6, 0x395f, 0x2c4a, 0x39db, 0x29f5, 0x3886, 0x3b23, 0x38db, 0x3bc0, 0x345a, 0x39da, 0x3ac1, 0x3b5f, 0x3ae9, 0x368f, 0x397e, 0x3b89, -0x3805, 0x3adf, 0x3610, 0x3a37, 0x3947, 0x3618, 0x31d9, 0x3b3a, 0x3a13, 0x376f, 0x3141, 0x3b63, 0x39ce, 0x3ad7, 0x28dc, 0x340b, 0x30e4, 0x35e0, 0x354f, 0x387c, 0x37fa, 0x3455, 0x38b9, 0x3726, 0x2d54, 0x3338, 0x343a, 0x3a7c, 0x24e3, 0x3892, 0x3a8e, 0x3a8f, 0x37a8, 0x39e6, 0x398a, 0x3b42, 0x3360, 0x3a57, 0x38e5, 0x3afb, 0x3719, 0x36cf, 0x387c, 0x3a4e, 0x2edd, 0x3a36, 0x25b5, 0x3135, 0x346b, 0x3b0e, 0x2f3a, 0x2ee6, 0x384b, 0x3aab, 0x3b0b, 0x34e7, 0x30ea, 0x34e8, 0x38ef, 0x3899, 0x387a, 0x3786, 0x2456, 0x2ccb, 0x3af0, 0x3699, 0x35d2, 0x379d, 0x39bd, 0x36f8, 0x27a8, 0x397a, 0x2511, 0x35a2, 0x3a21, 0x3848, 0x27c8, 0x20df, 0x3a83, 0x3bb3, 0x2044, 0x38ec, 0x3095, 0x39cf, 0x2f28, 0x3bd6, 0x3939, 0x360c, 0x2d7b, 0x389c, 0x3585, 0x3bcc, 0x11d9, 0x3a41, 0x3591, 0x3813, -0x38ae, 0x3998, 0x3a8d, 0x31c7, 0x3af7, 0x3392, 0x3586, 0x3881, 0x3a64, 0x3b82, 0x3a29, 0x3497, 0x3b46, 0x3083, 0x3523, 0x3685, 0x3bb9, 0x3575, 0x317b, 0x38da, 0x3b2a, 0x38cc, 0x3764, 0x3103, 0x396e, 0x3bad, 0x35e5, 0x3a46, 0x3b72, 0x37d0, 0x3359, 0x3b8e, 0x3845, 0x2fc1, 0x2b03, 0x3837, 0x3186, 0x366f, 0x185a, 0x2ceb, 0x36be, 0x390a, 0x3513, 0x31d2, 0x357a, 0x3769, 0x392e, 0x39cb, 0x31a1, 0x3197, 0x3283, 0x39f2, 0x37d5, 0x2d92, 0x3599, 0x31f7, 0x30d1, 0x3b0b, 0x39b9, 0x3434, 0x324f, 0x3627, 0x321a, 0x30b3, 0x39f5, 0x387d, 0x32e6, 0x3a6c, 0x3597, 0x34ad, 0x2fd5, 0x3a5e, 0x2cbd, 0x34c2, 0x3a9c, 0x369e, 0x3192, 0x321c, 0x2600, 0x37af, 0x3841, 0x3a09, 0x3348, 0x309c, 0x3396, 0x1439, 0x34de, 0x3978, 0x3938, 0x3600, 0x28e3, 0x2d7e, 0x3296, 0x36ac, 0x35d4, 0x265a, -0x318c, 0x383d, 0x3955, 0x3473, 0x3ad5, 0x3949, 0x3923, 0x2f75, 0x31e1, 0x36ba, 0x3b86, 0x393c, 0x3563, 0x38a8, 0x37ee, 0x378a, 0x38d6, 0x38e6, 0x3922, 0x2c66, 0x33fc, 0x3875, 0x388d, 0x3b8b, 0x295c, 0x3ac3, 0x3432, 0x2d94, 0x37f3, 0x2a0b, 0x38c1, 0x3bbb, 0x3735, 0x3b36, 0x3a8b, 0x3291, 0x3908, 0x39d7, 0x375a, 0x2f3a, 0x330d, 0x398d, 0x3890, 0x3bf0, 0x38ba, 0x3ac0, 0x21f8, 0x3b00, 0x396c, 0x34d9, 0x3409, 0x3463, 0x3187, 0x3522, 0x2bb8, 0x358a, 0x30e2, 0x33bd, 0x38db, 0x36f9, 0x2f32, 0x3a39, 0x3884, 0x3be5, 0x3879, 0x3126, 0x3878, 0x3775, 0x397e, 0x3a5f, 0x3974, 0x3a58, 0x3ada, 0x3b0a, 0x3917, 0x3b63, 0x3176, 0x384b, 0x3a52, 0x3b01, 0x3ace, 0x3b86, 0x336a, 0x3647, 0x3877, 0x37b3, 0x2a41, 0x2db4, 0x189d, 0x39e4, 0x3470, 0x2d16, 0x2c98, 0x3a47, 0x3495, 0x38fd, -0x3bae, 0x322f, 0x39ff, 0x3075, 0x20be, 0x3583, 0x3b80, 0x39b5, 0x34a9, 0x3a4b, 0x362a, 0x3a70, 0x3964, 0x3925, 0x37ec, 0x3b19, 0x30e9, 0x38a7, 0x3688, 0x386d, 0x3a48, 0x2faa, 0x3b5f, 0x3693, 0x367a, 0x374c, 0x3b97, 0x3beb, 0x36ce, 0x37fc, 0x38fe, 0x39c9, 0x38d5, 0x25d5, 0x36e3, 0x3a77, 0x3987, 0x3bad, 0x3a48, 0x3871, 0x318d, 0x371f, 0x3614, 0x3a6e, 0x3662, 0x3bae, 0x3a41, 0x2973, 0x3aa6, 0x29d1, 0x3910, 0x3bca, 0x34d4, 0x24ea, 0x3611, 0x37c5, 0x32cc, 0x3a93, 0x3a4c, 0x3b10, 0x3790, 0x3181, 0x346f, 0x39b8, 0x3720, 0x3a7e, 0x39c7, 0x2d80, 0x324f, 0x3bf8, 0x373f, 0x3039, 0x3872, 0x2ad3, 0x2b33, 0x3803, 0x39d1, 0x38c2, 0x2ce6, 0x3943, 0x375f, 0x37ca, 0x37a5, 0x3a00, 0x20f2, 0x3449, 0x2fc9, 0x39bb, 0x3775, 0x364c, 0x3926, 0x39ae, 0x3b18, 0x38ad, 0x3803, 0x3032, -0x2d61, 0x322b, 0x383d, 0x3a27, 0x3437, 0x290e, 0x3314, 0x3222, 0x3862, 0x3712, 0x310c, 0x3984, 0x3b97, 0x35b6, 0x39dd, 0x305e, 0x3986, 0x3a78, 0x2e12, 0x3091, 0x3ae9, 0x3b2a, 0x3887, 0x3a31, 0x2fd3, 0x381c, 0x3082, 0x3934, 0x37a5, 0x3b6a, 0x35a3, 0x320e, 0x39f1, 0x2ad6, 0x3295, 0x388a, 0x3baa, 0x372c, 0x3345, 0x3985, 0x3b40, 0x2caa, 0x3264, 0x30ad, 0x3965, 0x3bcd, 0x3830, 0x3921, 0x3ae3, 0x3bdd, 0x3b55, 0x3804, 0x38c9, 0x3430, 0x3995, 0x3b93, 0x37b7, 0x398e, 0x348e, 0x3a2b, 0x3ad6, 0x336c, 0x35c2, 0x3a01, 0x3284, 0x3a0f, 0x306c, 0x37e3, 0x3836, 0x3aea, 0x3490, 0x30bd, 0x3bb3, 0x3495, 0x3b7a, 0x3908, 0x3905, 0x34ff, 0x3a18, 0x2c6d, 0x31f6, 0x393b, 0x2b1c, 0x3b05, 0x3367, 0x383c, 0x3a5c, 0x34d2, 0x37dd, 0x364e, 0x38a6, 0x30ac, 0x36ab, 0x3272, 0x3a96, 0x34e8, -0x3705, 0x2f61, 0x3879, 0x3ae0, 0x2bec, 0x3a46, 0x39fc, 0x3b64, 0x3964, 0x390a, 0x3827, 0x30c6, 0x38c4, 0x3897, 0x3855, 0x38cf, 0x3074, 0x39fe, 0x3513, 0x38b8, 0x3a90, 0x3506, 0x3a0b, 0x39bf, 0x3ba3, 0x35b1, 0x3942, 0x30dc, 0x3a64, 0x3624, 0x39bd, 0x3725, 0x1c9a, 0x34cb, 0x335a, 0x3b3b, 0x3329, 0x2bda, 0x3368, 0x3b70, 0x3096, 0x3754, 0x2fd4, 0x35de, 0x2d13, 0x3618, 0x3025, 0x3684, 0x35b2, 0x3732, 0x384a, 0x2dbe, 0x317b, 0x3a1e, 0x388c, 0x3729, 0x393b, 0x377d, 0x3be1, 0x3a7b, 0x2776, 0x38c5, 0x3afb, 0x3334, 0x33d8, 0x3b7e, 0x369a, 0x39be, 0x3aa4, 0x3afb, 0x3a6c, 0x38c3, 0x3a6a, 0x3911, 0x2a60, 0x3543, 0x3249, 0x3592, 0x2bd4, 0x3a76, 0x3ab9, 0x38a3, 0x399a, 0x3b60, 0x3a47, 0x31ec, 0x385b, 0x3677, 0x3909, 0x3915, 0x30fb, 0x3ae8, 0x3a23, 0x38e7, 0x2364, 0x38f0, -0x3bb5, 0x31e2, 0x2bb9, 0x3443, 0x3631, 0x392e, 0x389f, 0x3447, 0x3ba3, 0x3a47, 0x3673, 0x3ab7, 0x3acf, 0x3871, 0x3770, 0x3865, 0x3139, 0x2830, 0x3b65, 0x38ab, 0x35d1, 0x38c0, 0x3684, 0x2fa5, 0x36ba, 0x38cb, 0x3a9d, 0x34b8, 0x3b1a, 0x3bcb, 0x3830, 0x3ab6, 0x2eec, 0x3832, 0x3b33, 0x3678, 0x38a2, 0x31ff, 0x3a7d, 0x3bd3, 0x34e8, 0x3819, 0x392f, 0x3704, 0x3b01, 0x25fd, 0x3729, 0x3557, 0x3bc3, 0x2e36, 0x3323, 0x3aed, 0x357a, 0x3b4b, 0x3412, 0x3637, 0x3b92, 0x3360, 0x39c2, 0x3776, 0x32a8, 0x3896, 0x2f5b, 0x328a, 0x31d9, 0x3bb4, 0x3ba2, 0x3a2c, 0x3a12, 0x305a, 0x31f9, 0x3523, 0x32b6, 0x3822, 0x2624, 0x3491, 0x3811, 0x3238, 0x3acb, 0x3a6f, 0x3662, 0x38b9, 0x3b68, 0x3a24, 0x35fb, 0x3be2, 0x37d9, 0x347b, 0x33b2, 0x3a36, 0x3816, 0x39cf, 0x377e, 0x2cee, 0x300a, 0x330d, -0x359c, 0x3826, 0x2baa, 0x3b80, 0x3b04, 0x380d, 0x3a4e, 0x2f7c, 0x3667, 0x3be5, 0x3b0a, 0x380a, 0x360d, 0x3be3, 0x3b83, 0x39c0, 0x391b, 0x285a, 0x3b4b, 0x38cb, 0x3a85, 0x3aeb, 0x3853, 0x355f, 0x3ab5, 0x33be, 0x38ff, 0x382f, 0x3be6, 0x3916, 0x36ff, 0x3a3e, 0x3b88, 0x3812, 0x3687, 0x2c26, 0x3921, 0x394b, 0x2e6f, 0x3aa9, 0x3b77, 0x3848, 0x3b3e, 0x38b4, 0x3811, 0x3659, 0x31d5, 0x3977, 0x3b06, 0x39b4, 0x34bf, 0x31cc, 0x3b30, 0x3a6e, 0x3712, 0x3b52, 0x3b7a, 0x37bd, 0x3484, 0x3bdd, 0x343d, 0x3bb5, 0x3952, 0x2f41, 0x3a12, 0x3b3e, 0x27fe, 0x39d2, 0x39f4, 0x2ca1, 0x3485, 0x36ba, 0x3156, 0x3905, 0x3ba8, 0x39cd, 0x3b64, 0x3ba5, 0x3c00, 0x3ae8, 0x3452, 0x3a39, 0x3861, 0x3b8e, 0x37b1, 0x3bcd, 0x350e, 0x379d, 0x3b83, 0x34cb, 0x3205, 0x39fc, 0x3669, 0x3508, 0x2a1c, 0x39f9, -0x3876, 0x3602, 0x2b8f, 0x36be, 0x3885, 0x2caa, 0x3532, 0x31a8, 0x3956, 0x3139, 0x3709, 0x2fce, 0x3987, 0x3ab4, 0x3406, 0x3727, 0x32dd, 0x3ac9, 0x356b, 0x30c9, 0x2cbb, 0x3552, 0x2c69, 0x39ce, 0x3ad5, 0x3753, 0x290e, 0x36c4, 0x3a7c, 0x3b32, 0x2e36, 0x37db, 0x38b0, 0x3912, 0x34f7, 0x228b, 0x391f, 0x2fbd, 0x3850, 0x3a5e, 0x3a5b, 0x3b82, 0x3a6e, 0x349c, 0x38ce, 0x3bcb, 0x3b4f, 0x31e8, 0x38bd, 0x34ad, 0x3451, 0x3318, 0x34d5, 0x388f, 0x39cf, 0x3844, 0x38d4, 0x3421, 0x38fa, 0x269e, 0x293c, 0x34f0, 0x3438, 0x372c, 0x34b0, 0x36d5, 0x2aa6, 0x3805, 0x3821, 0x31db, 0x39fc, 0x3aa9, 0x26e4, 0x34b9, 0x3215, 0x214a, 0x39e6, 0x3278, 0x39b1, 0x2e97, 0x34e4, 0x3ae7, 0x3bb6, 0x3b79, 0x388d, 0x3b2d, 0x3642, 0x32fe, 0x3b36, 0x39b3, 0x3957, 0x2d0f, 0x34e9, 0x3aef, 0x381d, 0x3b22, -0x2fcf, 0x38e8, 0x3648, 0x2d35, 0x3773, 0x3936, 0x38f7, 0x242a, 0x3bef, 0x3bfa, 0x389a, 0x34e9, 0x328b, 0x3392, 0x3753, 0x3a4c, 0x3ada, 0x2937, 0x38c5, 0x3a6a, 0x2fae, 0x2d27, 0x349e, 0x3be1, 0x34fe, 0x3604, 0x3a69, 0x3b92, 0x384b, 0x387b, 0x28ae, 0x347e, 0x3b9f, 0x3a73, 0x384d, 0x3a08, 0x3961, 0x35a6, 0x38fe, 0x36cc, 0x3962, 0x3456, 0x3ae6, 0x2782, 0x38f8, 0x3bc1, 0x3639, 0x301e, 0x38cf, 0x3873, 0x32d4, 0x3a2c, 0x3aba, 0x3a42, 0x204d, 0x37ae, 0x3adb, 0x3b1a, 0x29ed, 0x30ba, 0x381f, 0x36c0, 0x3602, 0x2dde, 0x3735, 0x3701, 0x3bae, 0x3645, 0x3412, 0x3601, 0x37d5, 0x3aee, 0x39b3, 0x3a06, 0x3ac6, 0x3822, 0x363e, 0x3af8, 0x32f9, 0x39c9, 0x2c2d, 0x3672, 0x29bf, 0x3a06, 0x3875, 0x3758, 0x35cc, 0x3b92, 0x3a44, 0x35ac, 0x3b23, 0x2c6f, 0x3aa4, 0x3676, 0x3be5, 0x3137, -0x38fb, 0x371e, 0x38ad, 0x39cf, 0x347c, 0x3a24, 0x3887, 0x3811, 0x396e, 0x39d1, 0x33cc, 0x3bb5, 0x34e3, 0x39dd, 0x35c5, 0x38be, 0x37cf, 0x372a, 0x3ada, 0x3acd, 0x332c, 0x38c5, 0x35fe, 0x2e0c, 0x388e, 0x3480, 0x3bac, 0x39ad, 0x3770, 0x3aec, 0x3ba5, 0x38eb, 0x3b10, 0x33fd, 0x26db, 0x319c, 0x3aa4, 0x3895, 0x379b, 0x349c, 0x3ab3, 0x3840, 0x3b70, 0x3b4e, 0x2e46, 0x3aff, 0x2f7f, 0x3732, 0x3991, 0x346c, 0x39ff, 0x2be5, 0x36cb, 0x3bb1, 0x35d4, 0x3883, 0x3ba4, 0x3362, 0x3866, 0x394c, 0x38c4, 0x3b6f, 0x378d, 0x2bdf, 0x3443, 0x3959, 0x30ae, 0x3a18, 0x2472, 0x2f6a, 0x3111, 0x3a6d, 0x394e, 0x35c4, 0x3834, 0x3bc5, 0x3afc, 0x3291, 0x34b3, 0x3863, 0x3778, 0x3a6c, 0x3903, 0x2d65, 0x372e, 0x2dfb, 0x32ff, 0x3586, 0x34d2, 0x2d32, 0x3a7f, 0x3002, 0x1d54, 0x34a5, 0x3b4b, 0x3455, -0x3975, 0x27ae, 0x37e0, 0x34c3, 0x31f6, 0x3896, 0x3993, 0x29df, 0x31c1, 0x2e25, 0x2cae, 0x3889, 0x3826, 0x33cd, 0x3bc4, 0x2400, 0x38a7, 0x313d, 0x3826, 0x3670, 0x3922, 0x25bf, 0x390e, 0x3b99, 0x358a, 0x344d, 0x3926, 0x3b4d, 0x239f, 0x3576, 0x3576, 0x356b, 0x3b40, 0x2ebc, 0x34ff, 0x2e6c, 0x3817, 0x35bf, 0x35fc, 0x285e, 0x3b5d, 0x3908, 0x3848, 0x3441, 0x321f, 0x28a5, 0x3a73, 0x342f, 0x37db, 0x39ff, 0x3ac1, 0x3409, 0x3808, 0x34aa, 0x3aee, 0x3590, 0x2ea7, 0x2db9, 0x3b2f, 0x3845, 0x3a0d, 0x34d7, 0x3902, 0x3b44, 0x37b4, 0x3737, 0x3174, 0x394a, 0x3769, 0x3b0a, 0x370f, 0x31a6, 0x3b3d, 0x3a37, 0x3bc7, 0x2d68, 0x363a, 0x31cc, 0x3289, 0x3983, 0x3825, 0x3bf4, 0x34b9, 0x37fe, 0x2de5, 0x3975, 0x3ac9, 0x3083, 0x2c4d, 0x37a2, 0x3544, 0x36ac, 0x387c, 0x30a6, 0x321c, 0x37cc, -0x3a9e, 0x3310, 0x3bf9, 0x36c9, 0x3845, 0x3877, 0x3b5c, 0x3b20, 0x392f, 0x398c, 0x3b42, 0x2c1e, 0x3229, 0x395f, 0x3749, 0x377f, 0x3390, 0x3a80, 0x35b4, 0x2ed5, 0x3795, 0x3067, 0x3998, 0x3a51, 0x3b44, 0x3a52, 0x397d, 0x37fc, 0x298f, 0x2d3d, 0x344b, 0x363e, 0x39bd, 0x3590, 0x3b40, 0x37f3, 0x2d81, 0x3295, 0x35ff, 0x3b02, 0x37f2, 0x37e0, 0x1de3, 0x375e, 0x2fd9, 0x3271, 0x3548, 0x363e, 0x39bb, 0x3817, 0x327a, 0x2bb1, 0x3bbf, 0x3bf3, 0x38e9, 0x39be, 0x392b, 0x2f02, 0x34c5, 0x39c3, 0x38ab, 0x393b, 0x1e1d, 0x3bc3, 0x3972, 0x3be2, 0x3391, 0x3a3f, 0x3b68, 0x33a1, 0x384a, 0x3503, 0x3353, 0x343d, 0x3ac3, 0x2e04, 0x2f98, 0x3020, 0x38f3, 0x3814, 0x3a21, 0x3b92, 0x3083, 0x35fe, 0x3993, 0x32cb, 0x3b67, 0x2f42, 0x3070, 0x32a5, 0x2d98, 0x3b98, 0x31b4, 0x306f, 0x2dc2, 0x3ad5, -0x38d9, 0x38e4, 0x31e3, 0x38d7, 0x3b05, 0x3645, 0x388a, 0x3964, 0x3ab3, 0x39d3, 0x35f4, 0x2777, 0x34e4, 0x3874, 0x3bf6, 0x3b51, 0x3b2e, 0x3887, 0x3bf3, 0x3b3a, 0x348d, 0x35f3, 0x3a72, 0x3bd9, 0x31ec, 0x2d30, 0x34e5, 0x36c2, 0x3907, 0x33da, 0x2e75, 0x2fa8, 0x2fbf, 0x342e, 0x385d, 0x3421, 0x3897, 0x3841, 0x195c, 0x322b, 0x315d, 0x3325, 0x306d, 0x394b, 0x2f4e, 0x3896, 0x3a65, 0x3bf9, 0x30dd, 0x3957, 0x39a5, 0x2f7f, 0x3a29, 0x38c9, 0x35d6, 0x3248, 0x371d, 0x3412, 0x3660, 0x3609, 0x3944, 0x3b17, 0x3af3, 0x3b89, 0x39da, 0x3764, 0x344d, 0x3462, 0x3907, 0x388a, 0x38f0, 0x2960, 0x393b, 0x32f0, 0x3956, 0x31d3, 0x3328, 0x33fd, 0x3256, 0x2913, 0x3665, 0x397f, 0x36ad, 0x31db, 0x3aa5, 0x39db, 0x329b, 0x38f0, 0x32a5, 0x3051, 0x3855, 0x3a9c, 0x3870, 0x3a27, 0x3b93, 0x3942, -0x34e3, 0x37d4, 0x36b0, 0x384f, 0x2eef, 0x2e05, 0x35bc, 0x3bee, 0x34c7, 0x374f, 0x3811, 0x39c4, 0x2de0, 0x3bda, 0x3700, 0x2dc6, 0x349f, 0x29cf, 0x3b8b, 0x39b9, 0x2e31, 0x39f9, 0x3815, 0x3076, 0x38cc, 0x39c1, 0x398c, 0x3a20, 0x3865, 0x34d3, 0x3ba8, 0x3b16, 0x2057, 0x248a, 0x3859, 0x2e3f, 0x30e1, 0x3842, 0x3627, 0x383d, 0x3bb8, 0x34c8, 0x3ad0, 0x3b23, 0x388b, 0x3014, 0x3235, 0x357c, 0x3ba7, 0x3977, 0x3a32, 0x3aba, 0x30f5, 0x31d2, 0x3857, 0x393a, 0x3894, 0x351a, 0x3805, 0x35ee, 0x3967, 0x3862, 0x2a1b, 0x3afc, 0x3a4a, 0x38a0, 0x2f0d, 0x38d3, 0x393c, 0x3a13, 0x3973, 0x3831, 0x3a43, 0x3865, 0x3b80, 0x395a, 0x3275, 0x3874, 0x3735, 0x399c, 0x395e, 0x3abb, 0x2fd8, 0x381a, 0x3834, 0x2ae7, 0x3b2f, 0x39f3, 0x38be, 0x3ade, 0x351f, 0x3900, 0x34e5, 0x389a, 0x31d6, 0x3be4, -0x394f, 0x3a3d, 0x3b26, 0x3a2f, 0x399e, 0x2e0a, 0x3bc9, 0x38d2, 0x3920, 0x343d, 0x3a0b, 0x2c78, 0x38aa, 0x3b54, 0x3639, 0x37b3, 0x377b, 0x3b67, 0x3836, 0x2d52, 0x3b65, 0x38fb, 0x3836, 0x32cf, 0x3a40, 0x367e, 0x3a47, 0x3b47, 0x2d4d, 0x36fc, 0x398a, 0x3b7c, 0x3290, 0x3b4f, 0x3bf6, 0x25de, 0x3937, 0x3798, 0x3b0f, 0x3a95, 0x3bbc, 0x3beb, 0x34cf, 0x269a, 0x3b63, 0x3543, 0x366f, 0x344f, 0x361b, 0x3518, 0x35fb, 0x39aa, 0x3922, 0x3969, 0x3024, 0x2965, 0x2f2d, 0x2e6c, 0x385e, 0x3ab9, 0x34af, 0x3aec, 0x3af1, 0x348b, 0x2f86, 0x3bda, 0x3888, 0x3909, 0x3ba0, 0x3743, 0x3b40, 0x3306, 0x3999, 0x36c0, 0x35f8, 0x3531, 0x3457, 0x397a, 0x3a86, 0x37b8, 0x3bf2, 0x3bb3, 0x378e, 0x3bc7, 0x38f8, 0x3515, 0x3be1, 0x26dd, 0x28e4, 0x3a19, 0x3a28, 0x289c, 0x38ed, 0x3a77, 0x32b0, 0x392e, -0x2fcb, 0x3b43, 0x357f, 0x3987, 0x3056, 0x39dc, 0x3bc7, 0x34c0, 0x3a41, 0x3b4a, 0x3317, 0x2230, 0x3b8c, 0x363d, 0x25bf, 0x3b25, 0x39e3, 0x39d5, 0x37bd, 0x3a52, 0x3a14, 0x1aec, 0x3756, 0x353a, 0x3826, 0x331e, 0x34f7, 0x3690, 0x3973, 0x3269, 0x2c1c, 0x1bea, 0x32da, 0x2d21, 0x346d, 0x351f, 0x2df0, 0x3be0, 0x3bee, 0x3bb2, 0x3b6f, 0x3596, 0x38a2, 0x3408, 0x2281, 0x3864, 0x3516, 0x3b24, 0x3a8d, 0x3a63, 0x3806, 0x36e1, 0x3b6b, 0x3656, 0x3b8f, 0x31d3, 0x3a70, 0x39f8, 0x3953, 0x31eb, 0x3a05, 0x3a58, 0x2f81, 0x395b, 0x3721, 0x3353, 0x35db, 0x2d72, 0x3786, 0x3ab5, 0x3b4b, 0x3bd0, 0x3607, 0x35b4, 0x3a79, 0x32e2, 0x3299, 0x36a2, 0x381c, 0x2fb4, 0x2b3f, 0x3a01, 0x390c, 0x29d1, 0x2b63, 0x3a4b, 0x3309, 0x34f5, 0x3b7b, 0x348d, 0x3a7e, 0x30ca, 0x3269, 0x363a, 0x35a4, 0x3735, -0x36c4, 0x396c, 0x377a, 0x2fac, 0x3bba, 0x3511, 0x38fd, 0x3be0, 0x392d, 0x3864, 0x3bef, 0x3ae7, 0x2cd2, 0x37e5, 0x31c9, 0x332d, 0x3be0, 0x326a, 0x309a, 0x387e, 0x39f2, 0x3302, 0x39ee, 0x3956, 0x3b30, 0x3829, 0x2894, 0x368f, 0x361d, 0x35cd, 0x3b8c, 0x3677, 0x3a95, 0x3a41, 0x382f, 0x3457, 0x3194, 0x31bc, 0x3abd, 0x392a, 0x387b, 0x3912, 0x388a, 0x3051, 0x3a9b, 0x2fc4, 0x3468, 0x33f7, 0x20fe, 0x3489, 0x1d98, 0x39f4, 0x2f82, 0x2c37, 0x391e, 0x37ef, 0x3bb0, 0x3538, 0x1e8b, 0x3985, 0x3805, 0x3823, 0x32eb, 0x36e7, 0x3569, 0x387d, 0x30f2, 0x38d2, 0x39b5, 0x3544, 0x3009, 0x377c, 0x3a65, 0x342a, 0x2cc6, 0x3983, 0x2720, 0x2760, 0x3443, 0x3856, 0x3949, 0x37b5, 0x3944, 0x33e1, 0x320c, 0x3a83, 0x39be, 0x36f2, 0x3bf3, 0x384d, 0x35dd, 0x3150, 0x36ee, 0x2f4b, 0x3bd4, 0x2816, -0x3bb4, 0x3590, 0x3bf3, 0x38dd, 0x3472, 0x37f9, 0x38ec, 0x25b3, 0x3aac, 0x394d, 0x2e48, 0x387c, 0x39ed, 0x350a, 0x36e1, 0x3ad8, 0x3580, 0x3a08, 0x38d7, 0x390f, 0x370e, 0x30ed, 0x2fb2, 0x37f2, 0x35a8, 0x38bb, 0x389a, 0x3960, 0x35e1, 0x35d1, 0x3799, 0x3356, 0x375c, 0x3889, 0x38e7, 0x385e, 0x30f1, 0x3032, 0x3006, 0x3356, 0x36b1, 0x3af5, 0x342c, 0x3a9f, 0x386d, 0x3a8d, 0x2670, 0x3ba5, 0x3907, 0x39cb, 0x389b, 0x2914, 0x2db1, 0x2f6f, 0x3aa3, 0x346a, 0x3716, 0x303d, 0x3991, 0x3a21, 0x3b53, 0x3589, 0x3a6b, 0x34f7, 0x2d99, 0x380b, 0x392f, 0x36d9, 0x2e31, 0x30a2, 0x3569, 0x2657, 0x36dd, 0x306d, 0x36b5, 0x3ac4, 0x3a7a, 0x36f7, 0x38d6, 0x3b02, 0x355e, 0x3a19, 0x3bc4, 0x365c, 0x3b77, 0x3660, 0x3bc9, 0x380a, 0x3673, 0x3a4a, 0x3b19, 0x3843, 0x328c, 0x1a13, 0x3bd6, 0x3be2, -0x388d, 0x30c3, 0x3998, 0x389e, 0x3354, 0x3174, 0x3922, 0x3970, 0x2962, 0x3bc2, 0x3b1e, 0x3bd7, 0x2d84, 0x3573, 0x3846, 0x3703, 0x31ec, 0x3a5a, 0x3459, 0x2674, 0x291f, 0x3b76, 0x364f, 0x316f, 0x3a52, 0x3866, 0x34de, 0x33fc, 0x37fc, 0x3a20, 0x3ac2, 0x3893, 0x3208, 0x38d0, 0x3b1c, 0x39cd, 0x36f6, 0x301f, 0x3965, 0x3971, 0x3afa, 0x34d9, 0x2e34, 0x35a3, 0x390d, 0x2e83, 0x3b5a, 0x3acb, 0x377e, 0x2416, 0x38b8, 0x3a2e, 0x3a04, 0x3062, 0x2ef1, 0x3584, 0x2afb, 0x382a, 0x3a74, 0x37da, 0x3730, 0x32a6, 0x3866, 0x389e, 0x3850, 0x3551, 0x3939, 0x3a0e, 0x2deb, 0x3b97, 0x38e9, 0x39b6, 0x35b5, 0x3999, 0x38fe, 0x1918, 0x326d, 0x3477, 0x34e5, 0x3855, 0x38f8, 0x3307, 0x385d, 0x3b17, 0x36d8, 0x3020, 0x3a66, 0x3bf9, 0x3b17, 0x28cf, 0x3abb, 0x38b3, 0x3bc0, 0x31e4, 0x30d8, 0x3090, -0x393f, 0x350a, 0x2171, 0x31dd, 0x3aa3, 0x3962, 0x2a30, 0x3a0c, 0x3983, 0x3474, 0x38a4, 0x30fc, 0x348a, 0x3afd, 0x3ab0, 0x2fca, 0x3bb3, 0x3be9, 0x3984, 0x3a8d, 0x3119, 0x3b78, 0x3bd6, 0x2ef6, 0x31ef, 0x27c9, 0x39be, 0x32fb, 0x2ce0, 0x368b, 0x3612, 0x32b6, 0x2d58, 0x3787, 0x3811, 0x3745, 0x3b86, 0x32f4, 0x3941, 0x3936, 0x2ab3, 0x39cd, 0x3851, 0x395d, 0x355e, 0x383e, 0x380a, 0x3b5d, 0x34d8, 0x3292, 0x3124, 0x31af, 0x3942, 0x2d54, 0x3b54, 0x3b1b, 0x3bbd, 0x3507, 0x324e, 0x3364, 0x2514, 0x3af6, 0x3236, 0x361c, 0x3721, 0x39b4, 0x3b86, 0x3907, 0x3316, 0x2c3b, 0x3bf4, 0x3abb, 0x38b8, 0x38e5, 0x38e4, 0x3941, 0x318e, 0x3563, 0x318a, 0x3953, 0x328a, 0x2ed0, 0x3782, 0x38b3, 0x3632, 0x35f0, 0x3a31, 0x3112, 0x3b49, 0x3b8e, 0x31f8, 0x3a70, 0x3bf1, 0x375e, 0x381c, 0x3791, -0x38f7, 0x2f6a, 0x3b74, 0x3198, 0x3815, 0x3184, 0x39cc, 0x37c1, 0x3b16, 0x39dd, 0x3690, 0x36ee, 0x3ba5, 0x383d, 0x3bee, 0x37f9, 0x3617, 0x399a, 0x3597, 0x3703, 0x3281, 0x3047, 0x35b6, 0x3835, 0x3708, 0x3634, 0x3965, 0x39b8, 0x3a00, 0x3996, 0x2bd0, 0x2ced, 0x36de, 0x35e6, 0x3b4d, 0x3888, 0x3bc5, 0x290f, 0x3baf, 0x388e, 0x3721, 0x3896, 0x3565, 0x33f9, 0x312b, 0x37c8, 0x3889, 0x376b, 0x3bb6, 0x375e, 0x35bf, 0x2f6b, 0x39f6, 0x34ba, 0x3936, 0x3969, 0x39de, 0x3ad4, 0x39eb, 0x3a5c, 0x33e3, 0x3367, 0x3297, 0x3bea, 0x3bcf, 0x3806, 0x39b7, 0x3b63, 0x37d2, 0x385b, 0x3a88, 0x3a6a, 0x3447, 0x385b, 0x3078, 0x347b, 0x3790, 0x32c5, 0x30f3, 0x33d2, 0x3864, 0x35a7, 0x359b, 0x32c2, 0x3bf7, 0x379d, 0x39ed, 0x3964, 0x367e, 0x2f3e, 0x3b0a, 0x3a32, 0x3b2b, 0x287e, 0x2ee6, 0x3ba2 +uint16_t y_inp [768] = { +0x3150, 0x2dc1, 0x3033, 0x31f5, 0x3bb6, 0x3bff, 0x39f9, 0x3662, 0x3720, 0x351d, 0x384b, 0x3093, 0x3b9d, 0x35ad, 0x3695, 0x3466, 0x2300, 0x3445, 0x33ae, 0x3586, 0x38a3, 0x3bdb, 0x33a2, 0x379b, 0x3a0e, 0x38b0, 0x39ba, 0x379b, 0x39d3, 0x3a51, 0x3b30, 0x3794, +0x3b76, 0x3042, 0x38cc, 0x2dfc, 0x3b1a, 0x37fb, 0x38f7, 0x3824, 0x386f, 0x38c7, 0x36ee, 0x3a9c, 0x38d3, 0x2c67, 0x3a80, 0x2f30, 0x3328, 0x3721, 0x3790, 0x34e5, 0x3a6c, 0x3643, 0x3934, 0x3034, 0x38d4, 0x362e, 0x3b4b, 0x3408, 0x30c2, 0x370e, 0x3b31, 0x3b16, +0x3b6b, 0x39d4, 0x339c, 0x381e, 0x313e, 0x3671, 0x3ae2, 0x3479, 0x3940, 0x342d, 0x3925, 0x370a, 0x35d8, 0x2dad, 0x3888, 0x24b9, 0x375d, 0x34bd, 0x3243, 0x2ebb, 0x3970, 0x3a21, 0x3a07, 0x3877, 0x3888, 0x3569, 0x372d, 0x2ac1, 0x331e, 0x384d, 0x3996, 0x34a4, +0x35c1, 0x33a9, 0x21ed, 0x3a42, 0x388d, 0x34e4, 0x33c3, 0x34f9, 0x3a7b, 0x33fb, 0x2cdd, 0x3b0e, 0x333b, 0x3973, 0x34fc, 0x3771, 0x32ea, 0x2de4, 0x31a8, 0x3946, 0x3657, 0x3a4e, 0x36f6, 0x2829, 0x3ba2, 0x3bdc, 0x3bb3, 0x306c, 0x398d, 0x3a1f, 0x3991, 0x3846, +0x3547, 0x3292, 0x2e85, 0x31ed, 0x3979, 0x3a90, 0x28a4, 0x3bed, 0x36d8, 0x340e, 0x3b6a, 0x3ab6, 0x3824, 0x382b, 0x3ac3, 0x3811, 0x36d7, 0x3519, 0x3a92, 0x3a42, 0x29d1, 0x383a, 0x3a9b, 0x300e, 0x2cd3, 0x39cd, 0x3874, 0x3a07, 0x2eb1, 0x3b86, 0x3ad8, 0x3a5d, +0x3712, 0x284a, 0x38c1, 0x3bec, 0x39c0, 0x32cd, 0x3ad8, 0x3bce, 0x3817, 0x3896, 0x3aa7, 0x3870, 0x3996, 0x32cc, 0x3a4c, 0x3757, 0x3814, 0x3b65, 0x3acb, 0x376e, 0x34c0, 0x3609, 0x3bf0, 0x3b24, 0x3b29, 0x3848, 0x34b7, 0x398a, 0x220c, 0x3498, 0x3a8c, 0x3883, +0x38c4, 0x3af6, 0x3a42, 0x2dd6, 0x3147, 0x3717, 0x3a8e, 0x3af9, 0x3296, 0x38ef, 0x34fa, 0x3555, 0x3b29, 0x38de, 0x315e, 0x3773, 0x3b67, 0x3116, 0x38ec, 0x357c, 0x35d0, 0x2518, 0x3958, 0x2a03, 0x37d9, 0x3699, 0x3a1e, 0x3230, 0x3b13, 0x36d4, 0x3b2a, 0x39ad, +0x3b10, 0x351a, 0x3b97, 0x3326, 0x2b54, 0x3b7d, 0x386f, 0x373e, 0x37fa, 0x389b, 0x3b90, 0x3292, 0x3975, 0x38f3, 0x37f1, 0x3590, 0x3810, 0x2fd7, 0x3bf7, 0x3a5a, 0x3a1c, 0x34dd, 0x354c, 0x32f8, 0x3095, 0x321e, 0x39e0, 0x395c, 0x3717, 0x357f, 0x394a, 0x34b1, +0x3ba4, 0x380c, 0x3604, 0x2f50, 0x348d, 0x3828, 0x3a9f, 0x39ce, 0x32ca, 0x3906, 0x3ab2, 0x2ca5, 0x38c9, 0x362a, 0x34b2, 0x29dc, 0x3a36, 0x3052, 0x31b7, 0x3589, 0x387c, 0x3401, 0x3b22, 0x3ad6, 0x3ae8, 0x3238, 0x3494, 0x3502, 0x3717, 0x3a6c, 0x3229, 0x368c, +0x3056, 0x3a56, 0x3498, 0x39eb, 0x2864, 0x342d, 0x39e0, 0x34a1, 0x2b99, 0x3a04, 0x38ff, 0x328c, 0x34d9, 0x387d, 0x3a3c, 0x32e5, 0x39eb, 0x3984, 0x34dd, 0x38a7, 0x373f, 0x39b4, 0x3235, 0x2f58, 0x2f39, 0x3800, 0x3758, 0x3939, 0x39fc, 0x3a4b, 0x38bf, 0x30ee, +0x345e, 0x39c8, 0x3a6d, 0x3262, 0x3b81, 0x31dc, 0x3a15, 0x3bd0, 0x36af, 0x36de, 0x37d5, 0x39d7, 0x3ad3, 0x3ac1, 0x3109, 0x35ea, 0x31c6, 0x398d, 0x3987, 0x3a4a, 0x34d2, 0x2ed2, 0x35e6, 0x352c, 0x39eb, 0x3bd6, 0x3a5b, 0x39d1, 0x34aa, 0x3ade, 0x394b, 0x38a1, +0x2bed, 0x38de, 0x3811, 0x3813, 0x391a, 0x374b, 0x3829, 0x3725, 0x38f0, 0x3583, 0x3966, 0x3a7d, 0x375a, 0x38fe, 0x3696, 0x361c, 0x39a8, 0x35f0, 0x38e1, 0x3003, 0x3595, 0x316e, 0x3862, 0x3af8, 0x3af2, 0x34c8, 0x381d, 0x37d8, 0x3893, 0x3a9c, 0x3989, 0x308c, +0x30cc, 0x2538, 0x399d, 0x3919, 0x399e, 0x21cc, 0x38e9, 0x30f8, 0x3a20, 0x3b3c, 0x3990, 0x259c, 0x3143, 0x3080, 0x3967, 0x3afb, 0x3a1b, 0x3779, 0x2eeb, 0x39f3, 0x379a, 0x369c, 0x3985, 0x3a1b, 0x3ba6, 0x3a53, 0x28d5, 0x3881, 0x31d9, 0x3a34, 0x3bd9, 0x393a, +0x3601, 0x2c6e, 0x3636, 0x3298, 0x39bb, 0x3a08, 0x38db, 0x35ad, 0x3a09, 0x36a6, 0x3bc7, 0x3bac, 0x34ae, 0x3291, 0x290b, 0x3250, 0x2648, 0x333d, 0x2bf3, 0x34b1, 0x30e0, 0x351f, 0x3a74, 0x38dc, 0x3883, 0x2841, 0x35e1, 0x390d, 0x3a50, 0x3abd, 0x386d, 0x3bb7, +0x3b94, 0x36b7, 0x3a49, 0x332f, 0x3a1d, 0x354b, 0x3bab, 0x3346, 0x3417, 0x351e, 0x3b6d, 0x391a, 0x2db3, 0x3b1c, 0x3a4a, 0x37b7, 0x36cf, 0x3a56, 0x39c4, 0x3be9, 0x34f0, 0x39be, 0x3691, 0x1ba5, 0x3888, 0x3040, 0x3ae1, 0x3b9b, 0x398f, 0x3a49, 0x3a16, 0x38c0, +0x386c, 0x39ab, 0x37fa, 0x382c, 0x3a6f, 0x393f, 0x340d, 0x38ef, 0x39d1, 0x3845, 0x398f, 0x363e, 0x3687, 0x3052, 0x3a2b, 0x392c, 0x2f5c, 0x3412, 0x3a1f, 0x3b2f, 0x3bcc, 0x3a63, 0x3a89, 0x36e9, 0x3921, 0x3b80, 0x2dc0, 0x3a03, 0x3beb, 0x38d3, 0x36cb, 0x39a3, +0x3978, 0x3a88, 0x3ba4, 0x3561, 0x28c5, 0x33a0, 0x37be, 0x2c39, 0x30ee, 0x3782, 0x2c07, 0x354e, 0x3491, 0x3a92, 0x331a, 0x3b15, 0x32e1, 0x3839, 0x3afb, 0x36c2, 0x2fd0, 0x29ad, 0x3b2e, 0x39c1, 0x2a8c, 0x341a, 0x2f90, 0x395a, 0x3969, 0x37ea, 0x3a5c, 0x3b6d, +0x3971, 0x3a93, 0x304e, 0x3623, 0x3a22, 0x31ee, 0x29df, 0x2c93, 0x3a01, 0x3a62, 0x366c, 0x371d, 0x3af3, 0x2e08, 0x3ac0, 0x3642, 0x3a28, 0x368d, 0x2d3d, 0x36d9, 0x32c3, 0x373f, 0x36fe, 0x3487, 0x2c81, 0x3623, 0x3b59, 0x3a91, 0x350a, 0x34f4, 0x3b09, 0x2c25, +0x3b13, 0x325a, 0x379e, 0x3a7d, 0x34b1, 0x39d5, 0x2ba8, 0x322b, 0x3b5e, 0x37ab, 0x2e24, 0x3ba9, 0x3a3d, 0x34f7, 0x3ba1, 0x3877, 0x3071, 0x39fb, 0x3bbd, 0x3633, 0x3b36, 0x2daa, 0x3b9b, 0x3aa0, 0x395c, 0x3b8f, 0x38d5, 0x3ab0, 0x3a8f, 0x36c2, 0x3b1f, 0x3489, +0x2acc, 0x3845, 0x3715, 0x37d8, 0x3992, 0x3bff, 0x350e, 0x3ad7, 0x39b0, 0x35ac, 0x3287, 0x385f, 0x3bd4, 0x37a3, 0x3438, 0x39a5, 0x3bcf, 0x38c3, 0x34f6, 0x3ae3, 0x3b57, 0x39af, 0x35eb, 0x3bed, 0x34d4, 0x2a95, 0x3b13, 0x384e, 0x3a3b, 0x33da, 0x3bce, 0x3b99, +0x3559, 0x3335, 0x3a2e, 0x3123, 0x38db, 0x33d0, 0x3638, 0x3b17, 0x3a72, 0x3afc, 0x3936, 0x3838, 0x2b69, 0x3895, 0x3a1a, 0x3192, 0x39d5, 0x37a5, 0x2eb0, 0x2e8b, 0x329a, 0x3b90, 0x390a, 0x3a1e, 0x3847, 0x375d, 0x3873, 0x35e2, 0x3771, 0x30f5, 0x3231, 0x3bd7, +0x2bbc, 0x3ace, 0x31ad, 0x3a6b, 0x28a4, 0x3b48, 0x3ba3, 0x3a84, 0x3353, 0x39f6, 0x381f, 0x2dd6, 0x314c, 0x34af, 0x3929, 0x3921, 0x383b, 0x34b0, 0x3923, 0x32c9, 0x3ae7, 0x318f, 0x3480, 0x2ad8, 0x3042, 0x3a4c, 0x349d, 0x2c12, 0x3abb, 0x3a57, 0x3b0d, 0x3111, +0x3359, 0x3a84, 0x38f2, 0x368d, 0x2f4b, 0x3ba0, 0x395c, 0x3026, 0x3a15, 0x2a04, 0x326e, 0x3522, 0x31a2, 0x382f, 0x2ada, 0x3b7c, 0x2f80, 0x3af5, 0x2d35, 0x38fa, 0x39ab, 0x2c6d, 0x2e7a, 0x39f6, 0x31a4, 0x3a53, 0x358c, 0x3951, 0x3a4e, 0x3916, 0x2a3f, 0x3ae9, +0x3b03, 0x39f8, 0x39fe, 0x3a61, 0x39fb, 0x3704, 0x360d, 0x39a7, 0x37a9, 0x348f, 0x3a30, 0x3af5, 0x366f, 0x3b29, 0x3a6a, 0x33d5, 0x370a, 0x39cd, 0x3444, 0x3bea, 0x3b2b, 0x312e, 0x3b8e, 0x32cf, 0x3b79, 0x3302, 0x3bba, 0x3962, 0x3413, 0x37a1, 0x39e0, 0x3805 }; \ No newline at end of file diff --git a/hwpe/redmule/inc/z_2D.h b/hwpe/redmule/inc/z_2D.h index 047fe23..aff808a 100644 --- a/hwpe/redmule/inc/z_2D.h +++ b/hwpe/redmule/inc/z_2D.h @@ -1,99 +1,27 @@ /* Header file generated by RedMulE Golden Model */ -uint16_t z_oup_2D [96][96] = { -0x4e2d, 0x4e0e, 0x4dda, 0x4de5, 0x4e0e, 0x4dbc, 0x4e3f, 0x4ed6, 0x4dce, 0x4eef, 0x4dfc, 0x4e55, 0x4e2f, 0x4d96, 0x4ddd, 0x4d8a, 0x4e4c, 0x4dc2, 0x4d63, 0x4daa, 0x4e0a, 0x4d89, 0x4dff, 0x4d7d, 0x4d9e, 0x4e07, 0x4ded, 0x4d68, 0x4e69, 0x4ea9, 0x4e7b, 0x4e13, 0x4e22, 0x4e13, 0x4e34, 0x4dd6, 0x4db5, 0x4db6, 0x4d9c, 0x4dfd, 0x4e51, 0x4e0f, 0x4d92, 0x4e46, 0x4db8, 0x4e97, 0x4d14, 0x4dcb, 0x4e6a, 0x4d8e, 0x4eb5, 0x4dee, 0x4d95, 0x4e1c, 0x4dcb, 0x4e1e, 0x4dff, 0x4d5d, 0x4d53, 0x4dde, 0x4dda, 0x4ea4, 0x4d1c, 0x4e1d, 0x4d30, 0x4dad, 0x4e27, 0x4e04, 0x4e55, 0x4ebb, 0x4e47, 0x4daa, 0x4ddf, 0x4dd8, 0x4e3a, 0x4db0, 0x4dc0, 0x4e1c, 0x4dc1, 0x4e33, 0x4e2b, 0x4dcd, 0x4da2, 0x4ebe, 0x4d64, 0x4da9, 0x4e7f, 0x4d80, 0x4e14, 0x4e9b, 0x4d7e, 0x4e85, 0x4e6d, 0x4e6e, 0x4e1e, 0x4def, -0x4def, 0x4d5f, 0x4e1d, 0x4daa, 0x4e29, 0x4dc0, 0x4e5f, 0x4f01, 0x4dcf, 0x4f33, 0x4dcf, 0x4e86, 0x4ecf, 0x4dfd, 0x4deb, 0x4d92, 0x4eda, 0x4e29, 0x4dae, 0x4e35, 0x4e49, 0x4da9, 0x4e33, 0x4d7d, 0x4e23, 0x4e28, 0x4dc0, 0x4e12, 0x4e62, 0x4eda, 0x4e71, 0x4e43, 0x4e2d, 0x4df3, 0x4e69, 0x4e0d, 0x4df7, 0x4dbd, 0x4dbc, 0x4da3, 0x4d9d, 0x4e3c, 0x4e01, 0x4ebb, 0x4dd5, 0x4e35, 0x4d3f, 0x4de4, 0x4efa, 0x4dc4, 0x4ee3, 0x4dac, 0x4d93, 0x4da3, 0x4da1, 0x4dee, 0x4e9a, 0x4db0, 0x4db0, 0x4e99, 0x4dfe, 0x4eaf, 0x4d59, 0x4e35, 0x4dee, 0x4de7, 0x4e60, 0x4e5d, 0x4ec7, 0x4eb1, 0x4e59, 0x4de0, 0x4e35, 0x4df5, 0x4df4, 0x4df1, 0x4df4, 0x4e27, 0x4dd5, 0x4e4b, 0x4e87, 0x4da1, 0x4dbc, 0x4eb6, 0x4d77, 0x4e4f, 0x4e04, 0x4d77, 0x4e43, 0x4ede, 0x4df7, 0x4e38, 0x4e81, 0x4e43, 0x4e43, 0x4e01, -0x4d9d, 0x4dbc, 0x4e1d, 0x4e2f, 0x4e69, 0x4ddf, 0x4e62, 0x4f1f, 0x4dbd, 0x4f0c, 0x4d88, 0x4da7, 0x4f23, 0x4dfa, 0x4e2e, 0x4de9, 0x4e67, 0x4de4, 0x4da6, 0x4ded, 0x4e28, 0x4d1b, 0x4e1d, 0x4dbb, 0x4dea, 0x4e1c, 0x4e67, 0x4ddc, 0x4de6, 0x4e7d, 0x4e2c, 0x4e1c, 0x4e41, 0x4def, 0x4e14, 0x4ddc, 0x4dc3, 0x4cfa, 0x4dac, 0x4db0, 0x4e84, 0x4df6, 0x4d77, 0x4e5a, 0x4dd5, 0x4ea7, 0x4d34, 0x4da6, 0x4eb7, 0x4dca, 0x4e9c, 0x4dcb, 0x4d04, 0x4dd7, 0x4dcd, 0x4e29, 0x4df3, 0x4d80, 0x4dc5, 0x4e3d, 0x4dd1, 0x4e42, 0x4d76, 0x4e54, 0x4d5a, 0x4db3, 0x4e0a, 0x4de8, 0x4ea2, 0x4e8e, 0x4dd8, 0x4e43, 0x4e16, 0x4d9b, 0x4e8b, 0x4e39, 0x4e02, 0x4dfa, 0x4de8, 0x4e07, 0x4ddd, 0x4dd4, 0x4d3f, 0x4e05, 0x4dac, 0x4e33, 0x4e61, 0x4d4c, 0x4e0b, 0x4e63, 0x4ddd, 0x4e37, 0x4e7d, 0x4e47, 0x4dbd, 0x4db9, -0x4db6, 0x4e32, 0x4e87, 0x4e33, 0x4e43, 0x4e2b, 0x4e79, 0x4f28, 0x4de8, 0x4edc, 0x4e5e, 0x4e94, 0x4f32, 0x4e18, 0x4dbc, 0x4e77, 0x4ea9, 0x4e8c, 0x4daa, 0x4ea9, 0x4e43, 0x4e20, 0x4e3c, 0x4da8, 0x4eb0, 0x4e1b, 0x4e7a, 0x4e32, 0x4eb8, 0x4eb2, 0x4ea5, 0x4e8b, 0x4e7f, 0x4de9, 0x4ee2, 0x4df5, 0x4e01, 0x4e5c, 0x4dbb, 0x4dee, 0x4e41, 0x4e65, 0x4e2d, 0x4ef5, 0x4e84, 0x4e78, 0x4de8, 0x4e32, 0x4ee1, 0x4dea, 0x4ef6, 0x4def, 0x4da8, 0x4e4f, 0x4dd0, 0x4e76, 0x4e84, 0x4def, 0x4d88, 0x4e53, 0x4e34, 0x4f79, 0x4db4, 0x4ea1, 0x4dc1, 0x4dee, 0x4e44, 0x4ec4, 0x4ed6, 0x4e82, 0x4e5e, 0x4df4, 0x4ec3, 0x4e45, 0x4ea1, 0x4e16, 0x4e00, 0x4e6f, 0x4e50, 0x4e80, 0x4e9c, 0x4df7, 0x4e1c, 0x4edf, 0x4dcb, 0x4e27, 0x4e39, 0x4d78, 0x4e1c, 0x4ec7, 0x4e37, 0x4e81, 0x4e8f, 0x4e4b, 0x4e45, 0x4dfa, -0x4e2a, 0x4e3d, 0x4e3d, 0x4df5, 0x4e3a, 0x4def, 0x4e2f, 0x4ed6, 0x4db3, 0x4ef3, 0x4e5a, 0x4e8e, 0x4f50, 0x4db6, 0x4e46, 0x4e34, 0x4ec9, 0x4e1b, 0x4dd6, 0x4e80, 0x4e1f, 0x4d99, 0x4e76, 0x4e52, 0x4e8a, 0x4e8d, 0x4e5b, 0x4dc1, 0x4eaf, 0x4efc, 0x4ebb, 0x4e52, 0x4e78, 0x4df4, 0x4e78, 0x4df1, 0x4dfa, 0x4dd4, 0x4d47, 0x4e48, 0x4e04, 0x4e20, 0x4ddd, 0x4ebb, 0x4e44, 0x4eca, 0x4d9b, 0x4dec, 0x4e9c, 0x4e12, 0x4ec7, 0x4dfd, 0x4d6c, 0x4e46, 0x4dc0, 0x4e37, 0x4e59, 0x4dbc, 0x4d8b, 0x4e40, 0x4e31, 0x4ef8, 0x4de1, 0x4de8, 0x4d97, 0x4dd2, 0x4ea0, 0x4e1c, 0x4e3a, 0x4eb4, 0x4dd5, 0x4e41, 0x4e5d, 0x4dbc, 0x4e1d, 0x4e55, 0x4e77, 0x4dfc, 0x4e4b, 0x4e22, 0x4ebe, 0x4d6d, 0x4dad, 0x4e2a, 0x4dd3, 0x4e56, 0x4e3a, 0x4d2e, 0x4e42, 0x4e95, 0x4dce, 0x4e3b, 0x4eef, 0x4e46, 0x4ded, 0x4df8, -0x4d39, 0x4d7b, 0x4da0, 0x4cfa, 0x4d82, 0x4d16, 0x4d98, 0x4e32, 0x4ce2, 0x4e4a, 0x4d6a, 0x4d64, 0x4e27, 0x4d47, 0x4d4c, 0x4d16, 0x4d7c, 0x4d49, 0x4d0d, 0x4d3e, 0x4d83, 0x4d12, 0x4d19, 0x4cbe, 0x4d0f, 0x4d83, 0x4d65, 0x4cdb, 0x4d3d, 0x4ded, 0x4dff, 0x4d5b, 0x4d74, 0x4d70, 0x4df1, 0x4ccd, 0x4d49, 0x4d16, 0x4cc3, 0x4d2f, 0x4d25, 0x4d85, 0x4d31, 0x4dc3, 0x4d5b, 0x4dcb, 0x4cb3, 0x4d51, 0x4d98, 0x4d29, 0x4dc9, 0x4cc1, 0x4cd1, 0x4d90, 0x4cd3, 0x4d59, 0x4d5e, 0x4cf7, 0x4cda, 0x4dae, 0x4d8f, 0x4e13, 0x4cee, 0x4d6a, 0x4d0f, 0x4d33, 0x4d00, 0x4d56, 0x4d88, 0x4dae, 0x4d78, 0x4d40, 0x4d9c, 0x4d7c, 0x4d58, 0x4d2c, 0x4d47, 0x4d28, 0x4db4, 0x4dfc, 0x4d97, 0x4cec, 0x4cf7, 0x4dc0, 0x4d0c, 0x4d81, 0x4d58, 0x4d28, 0x4d63, 0x4dad, 0x4d12, 0x4d75, 0x4d77, 0x4d51, 0x4ceb, 0x4d0b, -0x4d6b, 0x4d5e, 0x4e5d, 0x4da9, 0x4e1f, 0x4d97, 0x4df3, 0x4ec4, 0x4d90, 0x4ee0, 0x4da1, 0x4e24, 0x4e3b, 0x4d68, 0x4da9, 0x4ddf, 0x4dfd, 0x4d99, 0x4d6c, 0x4dba, 0x4e07, 0x4daa, 0x4df3, 0x4dd8, 0x4d51, 0x4dc7, 0x4ddb, 0x4d6e, 0x4dd9, 0x4df2, 0x4e39, 0x4e15, 0x4e04, 0x4e02, 0x4e05, 0x4dbf, 0x4de1, 0x4d43, 0x4d73, 0x4d9e, 0x4dd5, 0x4daf, 0x4daf, 0x4e51, 0x4dcc, 0x4e5c, 0x4d8f, 0x4d5d, 0x4e2f, 0x4d7c, 0x4e80, 0x4dd7, 0x4dbd, 0x4dc2, 0x4d5f, 0x4e11, 0x4de6, 0x4d6b, 0x4d1a, 0x4db4, 0x4dcb, 0x4eba, 0x4d24, 0x4ded, 0x4dc5, 0x4d51, 0x4dfe, 0x4dfd, 0x4e44, 0x4e33, 0x4e59, 0x4d99, 0x4ddf, 0x4d99, 0x4dd4, 0x4d66, 0x4df2, 0x4de9, 0x4d80, 0x4e30, 0x4e0a, 0x4daf, 0x4dc3, 0x4e3d, 0x4d79, 0x4d72, 0x4de1, 0x4d42, 0x4e4e, 0x4ea1, 0x4d84, 0x4e13, 0x4e0c, 0x4dc9, 0x4ddf, 0x4df4, -0x4db8, 0x4e02, 0x4e6b, 0x4d8a, 0x4e8f, 0x4e49, 0x4e5b, 0x4eb6, 0x4e1d, 0x4ef9, 0x4e2f, 0x4e65, 0x4ef9, 0x4db4, 0x4e86, 0x4e5c, 0x4eae, 0x4e23, 0x4d8f, 0x4e5a, 0x4e1e, 0x4de0, 0x4e5c, 0x4dbd, 0x4e38, 0x4e37, 0x4ec8, 0x4ded, 0x4ecd, 0x4ec5, 0x4f06, 0x4e9b, 0x4e8a, 0x4ea2, 0x4e41, 0x4dea, 0x4e04, 0x4d70, 0x4d5a, 0x4e34, 0x4e01, 0x4e51, 0x4e0f, 0x4ef0, 0x4dfe, 0x4edd, 0x4d8b, 0x4dd0, 0x4e6d, 0x4e69, 0x4f18, 0x4de4, 0x4d8f, 0x4e21, 0x4de2, 0x4e07, 0x4e56, 0x4ded, 0x4d8d, 0x4e39, 0x4e50, 0x4f37, 0x4dd6, 0x4e27, 0x4e04, 0x4df0, 0x4e92, 0x4e5b, 0x4e99, 0x4eeb, 0x4e66, 0x4e60, 0x4ebc, 0x4df6, 0x4e57, 0x4e40, 0x4eaf, 0x4e5c, 0x4e3f, 0x4e44, 0x4e23, 0x4de8, 0x4e56, 0x4e7e, 0x4e01, 0x4e52, 0x4e5b, 0x4dc5, 0x4e94, 0x4ee0, 0x4e48, 0x4e48, 0x4e63, 0x4e79, 0x4e21, 0x4e3c, -0x4e6a, 0x4e58, 0x4f33, 0x4e57, 0x4ef5, 0x4ee8, 0x4f08, 0x4fd1, 0x4e62, 0x4fc6, 0x4f04, 0x4eab, 0x4fda, 0x4e9b, 0x4eec, 0x4f27, 0x4f04, 0x4eaf, 0x4e19, 0x4f17, 0x4f28, 0x4e59, 0x4ea0, 0x4e0d, 0x4eec, 0x4e73, 0x4f0c, 0x4e6a, 0x4ead, 0x4f95, 0x4edf, 0x4e8f, 0x4eca, 0x4ecd, 0x4edd, 0x4ea5, 0x4edf, 0x4dff, 0x4e28, 0x4e64, 0x4f27, 0x4ed2, 0x4e25, 0x4f29, 0x4e6c, 0x4f95, 0x4e35, 0x4e5b, 0x4f4d, 0x4ea8, 0x4f3b, 0x4eb4, 0x4e2b, 0x4ec0, 0x4e61, 0x4e91, 0x4ee7, 0x4e8c, 0x4e76, 0x4f05, 0x4ed3, 0x4f5e, 0x4e81, 0x4f16, 0x4dfd, 0x4e55, 0x4e9d, 0x4ed1, 0x4ec6, 0x4fa5, 0x4ef2, 0x4ee3, 0x4f1d, 0x4e51, 0x4ebf, 0x4ed8, 0x4ee9, 0x4ef1, 0x4ee2, 0x4f02, 0x4fae, 0x4e7b, 0x4ee4, 0x4f3c, 0x4e59, 0x4ec7, 0x4e97, 0x4e36, 0x4efb, 0x4f02, 0x4ecb, 0x4f03, 0x4f13, 0x4eb2, 0x4e94, 0x4e77, -0x4e1b, 0x4e38, 0x4edf, 0x4dc6, 0x4ee0, 0x4e35, 0x4efd, 0x4f97, 0x4e50, 0x4f9b, 0x4ddc, 0x4e39, 0x4f6b, 0x4e55, 0x4eb4, 0x4e63, 0x4ea0, 0x4e3b, 0x4e17, 0x4e2a, 0x4ed9, 0x4e23, 0x4ee7, 0x4e56, 0x4e34, 0x4e9b, 0x4eda, 0x4e0b, 0x4e82, 0x4ef2, 0x4e95, 0x4ec3, 0x4f05, 0x4e55, 0x4efc, 0x4e8f, 0x4e7c, 0x4e01, 0x4e0a, 0x4e45, 0x4e28, 0x4e65, 0x4e20, 0x4e78, 0x4ebd, 0x4ea1, 0x4e22, 0x4e2b, 0x4f6f, 0x4dcf, 0x4f35, 0x4e0f, 0x4dcb, 0x4e76, 0x4e08, 0x4e7f, 0x4f05, 0x4e5b, 0x4dd7, 0x4e83, 0x4ebd, 0x4f4c, 0x4d7b, 0x4eef, 0x4e01, 0x4e78, 0x4ee6, 0x4ea6, 0x4f28, 0x4f00, 0x4e4e, 0x4e31, 0x4ed7, 0x4e4e, 0x4e6f, 0x4e7a, 0x4e9f, 0x4ee6, 0x4e74, 0x4e91, 0x4eba, 0x4e1f, 0x4e1f, 0x4f5d, 0x4e22, 0x4e84, 0x4e2c, 0x4da3, 0x4e82, 0x4ec5, 0x4ec8, 0x4f13, 0x4ef4, 0x4e9a, 0x4eb6, 0x4e5a, -0x4d6b, 0x4db6, 0x4e0b, 0x4d3b, 0x4df7, 0x4d88, 0x4e15, 0x4e81, 0x4d5f, 0x4ef0, 0x4e2f, 0x4da2, 0x4e6a, 0x4da1, 0x4d9c, 0x4e6c, 0x4e0b, 0x4db1, 0x4d3c, 0x4dfc, 0x4d97, 0x4d63, 0x4e39, 0x4d4d, 0x4da9, 0x4d99, 0x4e40, 0x4da0, 0x4de3, 0x4e28, 0x4e04, 0x4ddc, 0x4dcb, 0x4de6, 0x4e6b, 0x4d91, 0x4dd5, 0x4d84, 0x4d44, 0x4d36, 0x4d75, 0x4de6, 0x4dba, 0x4ed7, 0x4d6f, 0x4e5a, 0x4d88, 0x4d6d, 0x4e03, 0x4d64, 0x4e96, 0x4d8a, 0x4d5c, 0x4dca, 0x4d7c, 0x4e1b, 0x4dfc, 0x4d86, 0x4d66, 0x4dd9, 0x4df3, 0x4e53, 0x4d4b, 0x4e2a, 0x4d9b, 0x4d43, 0x4ddb, 0x4e5a, 0x4de7, 0x4e56, 0x4dee, 0x4d8c, 0x4dcc, 0x4dc7, 0x4daa, 0x4d80, 0x4d97, 0x4e56, 0x4d5f, 0x4e77, 0x4d98, 0x4d51, 0x4d8d, 0x4e89, 0x4d38, 0x4d6b, 0x4dc8, 0x4d8e, 0x4df9, 0x4e13, 0x4d2f, 0x4e07, 0x4e0f, 0x4da0, 0x4d95, 0x4d6a, -0x4e54, 0x4deb, 0x4ea3, 0x4d9d, 0x4e6c, 0x4e3c, 0x4e8d, 0x4f56, 0x4de7, 0x4fa9, 0x4e3a, 0x4eb4, 0x4f3d, 0x4e5d, 0x4ea7, 0x4ead, 0x4f1d, 0x4ea7, 0x4deb, 0x4ea7, 0x4e17, 0x4e36, 0x4e45, 0x4e27, 0x4e42, 0x4e3a, 0x4f1a, 0x4e11, 0x4eb4, 0x4ee0, 0x4e33, 0x4ed2, 0x4e16, 0x4e07, 0x4ea9, 0x4df2, 0x4e4c, 0x4dda, 0x4e31, 0x4e0e, 0x4e32, 0x4e56, 0x4e0c, 0x4efb, 0x4e64, 0x4ebb, 0x4dbf, 0x4e3b, 0x4f0c, 0x4e63, 0x4f04, 0x4e4f, 0x4d9c, 0x4e3a, 0x4e16, 0x4e7c, 0x4e46, 0x4de2, 0x4df4, 0x4e91, 0x4eb6, 0x4f27, 0x4d8a, 0x4ecc, 0x4e0d, 0x4db3, 0x4e8e, 0x4e8a, 0x4ef0, 0x4f1f, 0x4eab, 0x4ea3, 0x4e4a, 0x4df3, 0x4ec1, 0x4e6a, 0x4e6c, 0x4eff, 0x4e45, 0x4ed3, 0x4ec6, 0x4e6f, 0x4e4a, 0x4ebf, 0x4de4, 0x4e40, 0x4e27, 0x4d9e, 0x4e79, 0x4ecb, 0x4e61, 0x4ed6, 0x4e9a, 0x4e4b, 0x4e55, 0x4e73, -0x4e5e, 0x4e1e, 0x4ea1, 0x4df7, 0x4e66, 0x4e71, 0x4f2d, 0x4fbf, 0x4ea4, 0x4fe2, 0x4eab, 0x4eb4, 0x4f9c, 0x4e8b, 0x4e41, 0x4e79, 0x4f69, 0x4e96, 0x4e07, 0x4e86, 0x4ec0, 0x4e14, 0x4e95, 0x4df4, 0x4e9e, 0x4e78, 0x4eea, 0x4df9, 0x4f28, 0x4f40, 0x4f87, 0x4e93, 0x4e29, 0x4ec5, 0x4ec1, 0x4eb6, 0x4e8f, 0x4e9f, 0x4def, 0x4e75, 0x4e75, 0x4e9b, 0x4e29, 0x4f68, 0x4eac, 0x4ed8, 0x4da6, 0x4e52, 0x4f2e, 0x4ea6, 0x4f46, 0x4ea9, 0x4e5b, 0x4e52, 0x4e4d, 0x4e99, 0x4ea2, 0x4e9e, 0x4ded, 0x4ed3, 0x4f10, 0x4fe3, 0x4df6, 0x4ee2, 0x4e13, 0x4f05, 0x4ed1, 0x4ef3, 0x4ef8, 0x4ef2, 0x4eb6, 0x4e1f, 0x4ecc, 0x4e25, 0x4ea1, 0x4ea3, 0x4ef8, 0x4e98, 0x4e43, 0x4ee0, 0x4f0e, 0x4e38, 0x4e74, 0x4f7b, 0x4df6, 0x4ee6, 0x4eba, 0x4de8, 0x4e70, 0x4f1a, 0x4e91, 0x4ed2, 0x4f2a, 0x4e84, 0x4ed3, 0x4ea0, -0x4e1c, 0x4e04, 0x4dfd, 0x4e12, 0x4de2, 0x4e0b, 0x4e45, 0x4ecf, 0x4d91, 0x4edb, 0x4e15, 0x4de1, 0x4ee1, 0x4e07, 0x4da5, 0x4dc1, 0x4e24, 0x4e0f, 0x4d89, 0x4e26, 0x4da5, 0x4d97, 0x4e39, 0x4ddb, 0x4e48, 0x4e3b, 0x4e20, 0x4d9f, 0x4e65, 0x4e82, 0x4e0b, 0x4d9e, 0x4de7, 0x4dbd, 0x4e42, 0x4da5, 0x4dc9, 0x4da4, 0x4dc0, 0x4da9, 0x4e74, 0x4e5c, 0x4de2, 0x4ee1, 0x4e10, 0x4eb1, 0x4d66, 0x4da6, 0x4eba, 0x4e1f, 0x4e9c, 0x4e61, 0x4d43, 0x4dcb, 0x4d98, 0x4e08, 0x4e22, 0x4dea, 0x4ddd, 0x4e76, 0x4e4e, 0x4e86, 0x4d7b, 0x4dfe, 0x4d4c, 0x4e37, 0x4d97, 0x4e31, 0x4e4f, 0x4ebe, 0x4e34, 0x4da1, 0x4e64, 0x4d9e, 0x4df2, 0x4e04, 0x4dd1, 0x4e3a, 0x4dd7, 0x4ea4, 0x4e09, 0x4db9, 0x4d96, 0x4e9a, 0x4d95, 0x4dd5, 0x4e1d, 0x4d54, 0x4de8, 0x4e4a, 0x4dd0, 0x4e6e, 0x4e53, 0x4e49, 0x4d86, 0x4d68, -0x4da0, 0x4dee, 0x4e81, 0x4df4, 0x4de0, 0x4dcd, 0x4ddd, 0x4eae, 0x4dce, 0x4f09, 0x4e0f, 0x4df0, 0x4ecc, 0x4df5, 0x4ddf, 0x4dca, 0x4dd6, 0x4d7f, 0x4dc1, 0x4e0d, 0x4dff, 0x4d9f, 0x4dd5, 0x4d55, 0x4daa, 0x4d84, 0x4e57, 0x4da9, 0x4e39, 0x4eb3, 0x4e60, 0x4dea, 0x4dd4, 0x4e18, 0x4e4a, 0x4dbf, 0x4d8b, 0x4d9f, 0x4d54, 0x4d9f, 0x4e12, 0x4de5, 0x4d9b, 0x4e24, 0x4db4, 0x4e48, 0x4dba, 0x4d88, 0x4e72, 0x4d39, 0x4e4e, 0x4d65, 0x4cef, 0x4e05, 0x4da6, 0x4dbe, 0x4e07, 0x4d71, 0x4d4a, 0x4deb, 0x4e37, 0x4e5e, 0x4dc0, 0x4e20, 0x4d3a, 0x4d5a, 0x4dbd, 0x4e31, 0x4e64, 0x4e77, 0x4e40, 0x4da2, 0x4e46, 0x4da5, 0x4db6, 0x4db4, 0x4db0, 0x4e17, 0x4dc7, 0x4e14, 0x4e24, 0x4dc0, 0x4d5b, 0x4e25, 0x4d91, 0x4e08, 0x4e39, 0x4db0, 0x4ddc, 0x4e55, 0x4d39, 0x4e17, 0x4e75, 0x4dd5, 0x4de9, 0x4e2c, -0x4d74, 0x4d5a, 0x4dde, 0x4d5b, 0x4dc3, 0x4d09, 0x4d93, 0x4e08, 0x4da7, 0x4e79, 0x4d85, 0x4dea, 0x4e38, 0x4d6f, 0x4d63, 0x4d92, 0x4df3, 0x4d6a, 0x4cd6, 0x4d9c, 0x4d83, 0x4d56, 0x4dd5, 0x4d8e, 0x4d84, 0x4da6, 0x4e24, 0x4d2a, 0x4dbb, 0x4e22, 0x4da3, 0x4de8, 0x4d30, 0x4dcc, 0x4db8, 0x4d87, 0x4d63, 0x4d3b, 0x4d3a, 0x4d78, 0x4d6c, 0x4d6c, 0x4d72, 0x4df4, 0x4d6a, 0x4e25, 0x4d3a, 0x4d20, 0x4e25, 0x4d00, 0x4dfc, 0x4d64, 0x4cf9, 0x4d95, 0x4d05, 0x4d3b, 0x4db6, 0x4d0e, 0x4d12, 0x4dd1, 0x4d95, 0x4e0b, 0x4d6a, 0x4de4, 0x4d38, 0x4d87, 0x4e22, 0x4df4, 0x4dc1, 0x4e09, 0x4d9d, 0x4dca, 0x4dd9, 0x4d6a, 0x4d8f, 0x4d3e, 0x4dba, 0x4dbb, 0x4d84, 0x4d7b, 0x4e1e, 0x4d4d, 0x4d67, 0x4e00, 0x4d27, 0x4d54, 0x4db9, 0x4cda, 0x4db1, 0x4e29, 0x4d71, 0x4e22, 0x4df2, 0x4d61, 0x4df0, 0x4d52, -0x4d31, 0x4d90, 0x4e17, 0x4db3, 0x4e1b, 0x4dac, 0x4e08, 0x4ec6, 0x4da8, 0x4eea, 0x4dcb, 0x4e2c, 0x4ee0, 0x4df0, 0x4dda, 0x4dcc, 0x4ea1, 0x4d9a, 0x4dac, 0x4d91, 0x4e2b, 0x4daf, 0x4d8d, 0x4dc6, 0x4e1f, 0x4e0e, 0x4e23, 0x4d57, 0x4e3b, 0x4e3d, 0x4e32, 0x4e66, 0x4e1f, 0x4da7, 0x4e4d, 0x4d47, 0x4da1, 0x4d69, 0x4d6f, 0x4df5, 0x4e0b, 0x4e09, 0x4d7c, 0x4e41, 0x4e09, 0x4e4f, 0x4db3, 0x4df9, 0x4e6a, 0x4de9, 0x4f3e, 0x4e2d, 0x4da0, 0x4e44, 0x4e1a, 0x4df6, 0x4dfc, 0x4d91, 0x4d48, 0x4dcf, 0x4e23, 0x4eb4, 0x4ce1, 0x4e40, 0x4d7d, 0x4da5, 0x4e55, 0x4e34, 0x4e67, 0x4ea2, 0x4e48, 0x4db5, 0x4e25, 0x4e0b, 0x4e1a, 0x4dc4, 0x4e27, 0x4df3, 0x4de6, 0x4e31, 0x4e6f, 0x4de8, 0x4d85, 0x4e70, 0x4d69, 0x4dd9, 0x4de8, 0x4d18, 0x4da7, 0x4e04, 0x4dd3, 0x4e2c, 0x4e3d, 0x4e23, 0x4dd6, 0x4dd2, -0x4e0b, 0x4de2, 0x4e76, 0x4dc3, 0x4e4c, 0x4da5, 0x4e8f, 0x4ec5, 0x4e4d, 0x4f7d, 0x4df4, 0x4e19, 0x4efc, 0x4dc4, 0x4de0, 0x4dd8, 0x4ec5, 0x4dc9, 0x4dd7, 0x4e2b, 0x4e79, 0x4d8d, 0x4e5a, 0x4daa, 0x4e09, 0x4e3f, 0x4e7d, 0x4d99, 0x4e50, 0x4ed9, 0x4ec7, 0x4e5b, 0x4e31, 0x4e6d, 0x4ea8, 0x4e52, 0x4e4a, 0x4dfa, 0x4d61, 0x4e28, 0x4dfa, 0x4e30, 0x4dbd, 0x4ebd, 0x4e1c, 0x4f17, 0x4dad, 0x4e34, 0x4e90, 0x4dd8, 0x4f2e, 0x4e40, 0x4d4b, 0x4e2a, 0x4d89, 0x4deb, 0x4e42, 0x4de8, 0x4d63, 0x4e29, 0x4e46, 0x4f35, 0x4dd4, 0x4e25, 0x4d5f, 0x4e3a, 0x4ee4, 0x4e5b, 0x4e97, 0x4ea5, 0x4e51, 0x4e34, 0x4e6b, 0x4e53, 0x4e7a, 0x4e14, 0x4e12, 0x4e0e, 0x4df0, 0x4e0d, 0x4ebc, 0x4de5, 0x4dbb, 0x4ead, 0x4df9, 0x4e62, 0x4e34, 0x4d91, 0x4e53, 0x4ec3, 0x4e2a, 0x4e18, 0x4e5c, 0x4eac, 0x4e3c, 0x4e1a, -0x4db4, 0x4ded, 0x4e56, 0x4dd8, 0x4dd5, 0x4e20, 0x4f02, 0x4f27, 0x4e56, 0x4f17, 0x4e18, 0x4e35, 0x4f47, 0x4e28, 0x4e4c, 0x4e26, 0x4e8c, 0x4db7, 0x4dab, 0x4e2b, 0x4e62, 0x4de7, 0x4e47, 0x4d76, 0x4dd3, 0x4e32, 0x4e41, 0x4d9b, 0x4e36, 0x4ee1, 0x4eda, 0x4e4e, 0x4e46, 0x4e28, 0x4e76, 0x4e65, 0x4df2, 0x4dd6, 0x4dc5, 0x4e0c, 0x4e02, 0x4da9, 0x4da7, 0x4eb1, 0x4e0c, 0x4e9c, 0x4db8, 0x4e4b, 0x4ea5, 0x4dca, 0x4ea0, 0x4e03, 0x4d89, 0x4e30, 0x4da8, 0x4e2f, 0x4e4f, 0x4e24, 0x4dce, 0x4e2a, 0x4e77, 0x4f06, 0x4d80, 0x4e7e, 0x4d88, 0x4df1, 0x4e6b, 0x4e12, 0x4e4f, 0x4eed, 0x4e20, 0x4e44, 0x4df4, 0x4e38, 0x4e62, 0x4e44, 0x4e3a, 0x4e7d, 0x4e02, 0x4eac, 0x4e74, 0x4e07, 0x4df2, 0x4e84, 0x4dfe, 0x4e3a, 0x4e0c, 0x4d86, 0x4e4d, 0x4e72, 0x4dfb, 0x4e39, 0x4e61, 0x4e46, 0x4dfd, 0x4e42, -0x4de9, 0x4dbb, 0x4e30, 0x4d6f, 0x4dfa, 0x4d82, 0x4e70, 0x4ec5, 0x4da1, 0x4f06, 0x4e5b, 0x4e47, 0x4e79, 0x4dad, 0x4dd5, 0x4e61, 0x4e44, 0x4dae, 0x4dee, 0x4e4f, 0x4e40, 0x4d9e, 0x4e3e, 0x4ddf, 0x4dab, 0x4e84, 0x4e5e, 0x4da7, 0x4e58, 0x4f0e, 0x4e10, 0x4e42, 0x4e18, 0x4e24, 0x4e7c, 0x4e08, 0x4e14, 0x4db7, 0x4db8, 0x4e22, 0x4df6, 0x4e07, 0x4d8b, 0x4ebc, 0x4db7, 0x4eb3, 0x4d91, 0x4d9e, 0x4e45, 0x4db8, 0x4ed5, 0x4dc6, 0x4db4, 0x4da1, 0x4d70, 0x4e4c, 0x4e72, 0x4d8a, 0x4dc9, 0x4d7f, 0x4e1d, 0x4f30, 0x4d7c, 0x4e93, 0x4dd2, 0x4de4, 0x4e93, 0x4e72, 0x4e34, 0x4f3d, 0x4e42, 0x4de7, 0x4e76, 0x4df4, 0x4eae, 0x4df6, 0x4e2b, 0x4e50, 0x4e4b, 0x4e66, 0x4e63, 0x4de2, 0x4de1, 0x4e80, 0x4d96, 0x4dd7, 0x4dee, 0x4ce7, 0x4d9a, 0x4e60, 0x4dc3, 0x4e68, 0x4e4f, 0x4e2d, 0x4e06, 0x4e31, -0x4e00, 0x4e5b, 0x4e77, 0x4dda, 0x4e1a, 0x4dee, 0x4e83, 0x4f15, 0x4e59, 0x4f9a, 0x4e31, 0x4e60, 0x4f31, 0x4e94, 0x4df9, 0x4e36, 0x4eaf, 0x4e48, 0x4dd9, 0x4e49, 0x4e2c, 0x4e35, 0x4ec4, 0x4e48, 0x4e46, 0x4e24, 0x4e95, 0x4dbc, 0x4edf, 0x4f2e, 0x4eeb, 0x4e2f, 0x4e0d, 0x4e31, 0x4ef6, 0x4e75, 0x4dd4, 0x4dd9, 0x4d8f, 0x4e1f, 0x4e09, 0x4dc8, 0x4dfd, 0x4ef2, 0x4e8f, 0x4ed0, 0x4de5, 0x4e12, 0x4ebd, 0x4df4, 0x4ece, 0x4dda, 0x4d36, 0x4e4e, 0x4e0d, 0x4e28, 0x4ead, 0x4e24, 0x4df9, 0x4e79, 0x4eae, 0x4f04, 0x4deb, 0x4e71, 0x4d7e, 0x4e7b, 0x4e6d, 0x4ee2, 0x4e66, 0x4f2b, 0x4e6f, 0x4df6, 0x4ec0, 0x4e28, 0x4e7a, 0x4e28, 0x4e28, 0x4e4e, 0x4e66, 0x4ef7, 0x4ed3, 0x4deb, 0x4e05, 0x4eb3, 0x4dd9, 0x4e88, 0x4e61, 0x4dfd, 0x4e3b, 0x4e89, 0x4e3a, 0x4e50, 0x4ec6, 0x4e51, 0x4e3f, 0x4de0, -0x4dcf, 0x4e18, 0x4e1c, 0x4db7, 0x4e2e, 0x4e1f, 0x4e65, 0x4f10, 0x4dc9, 0x4fb4, 0x4e91, 0x4e63, 0x4f7c, 0x4e56, 0x4e23, 0x4e0d, 0x4e8d, 0x4dea, 0x4db7, 0x4e18, 0x4e14, 0x4da8, 0x4e1e, 0x4d71, 0x4df0, 0x4e35, 0x4e39, 0x4dec, 0x4e2a, 0x4f10, 0x4e78, 0x4e50, 0x4e31, 0x4e77, 0x4f16, 0x4dca, 0x4d9c, 0x4e1c, 0x4da1, 0x4e11, 0x4e25, 0x4e03, 0x4d87, 0x4ecf, 0x4e2a, 0x4ec7, 0x4d9b, 0x4e44, 0x4e78, 0x4dc2, 0x4f13, 0x4e08, 0x4d85, 0x4ddc, 0x4dd4, 0x4db3, 0x4e2e, 0x4e26, 0x4df4, 0x4e2e, 0x4e60, 0x4f22, 0x4d9d, 0x4ebb, 0x4d96, 0x4e65, 0x4e39, 0x4e4b, 0x4e0f, 0x4ee2, 0x4e96, 0x4dd0, 0x4e47, 0x4e26, 0x4e9e, 0x4e32, 0x4dfa, 0x4e81, 0x4e39, 0x4e73, 0x4ec3, 0x4d8e, 0x4dfe, 0x4e9d, 0x4ded, 0x4e43, 0x4ddb, 0x4d85, 0x4e00, 0x4e59, 0x4def, 0x4e65, 0x4e9c, 0x4e31, 0x4df9, 0x4dd1, -0x4d16, 0x4d87, 0x4e0a, 0x4d67, 0x4dfb, 0x4d49, 0x4daa, 0x4e26, 0x4d51, 0x4e60, 0x4d6f, 0x4d77, 0x4eb9, 0x4da7, 0x4d87, 0x4d9f, 0x4ddd, 0x4d9e, 0x4d4e, 0x4dc1, 0x4dc3, 0x4d44, 0x4d6b, 0x4d53, 0x4d48, 0x4d3f, 0x4ddb, 0x4d6f, 0x4db5, 0x4de9, 0x4dfc, 0x4ddb, 0x4de2, 0x4d7e, 0x4e02, 0x4d6f, 0x4d80, 0x4d13, 0x4d1b, 0x4d08, 0x4dc7, 0x4d52, 0x4d7f, 0x4d8b, 0x4db3, 0x4dfe, 0x4d24, 0x4d12, 0x4dd6, 0x4d8c, 0x4e24, 0x4d61, 0x4d12, 0x4dcd, 0x4d2d, 0x4d83, 0x4db3, 0x4dc8, 0x4d3f, 0x4dd5, 0x4d9e, 0x4e44, 0x4d09, 0x4dbc, 0x4d01, 0x4d29, 0x4d96, 0x4d7d, 0x4dd3, 0x4e10, 0x4d50, 0x4dd2, 0x4d5d, 0x4da8, 0x4dac, 0x4d98, 0x4d92, 0x4d5f, 0x4d9a, 0x4de5, 0x4dcd, 0x4da5, 0x4d6a, 0x4dd6, 0x4d0c, 0x4d65, 0x4d4c, 0x4d42, 0x4dd3, 0x4dbd, 0x4db7, 0x4d89, 0x4dcd, 0x4de3, 0x4d99, 0x4d64, -0x4cf5, 0x4d4a, 0x4dd3, 0x4d03, 0x4d77, 0x4d6c, 0x4db3, 0x4e28, 0x4d32, 0x4e34, 0x4d68, 0x4d9a, 0x4dad, 0x4db7, 0x4dad, 0x4d6d, 0x4e1e, 0x4d30, 0x4d3d, 0x4d9d, 0x4df3, 0x4d29, 0x4d33, 0x4ce2, 0x4d74, 0x4d67, 0x4d9d, 0x4d11, 0x4dca, 0x4e34, 0x4d92, 0x4dca, 0x4d8c, 0x4d33, 0x4da0, 0x4db5, 0x4d3b, 0x4d32, 0x4d0f, 0x4d4f, 0x4cf7, 0x4da4, 0x4d97, 0x4e28, 0x4d40, 0x4d7d, 0x4d00, 0x4d56, 0x4e0a, 0x4cc8, 0x4e0d, 0x4d08, 0x4d21, 0x4d52, 0x4cce, 0x4d5a, 0x4de3, 0x4ced, 0x4ced, 0x4db9, 0x4dbd, 0x4e16, 0x4cf5, 0x4da1, 0x4d57, 0x4d4f, 0x4ddc, 0x4daf, 0x4dfa, 0x4db2, 0x4e26, 0x4d1c, 0x4d8a, 0x4d31, 0x4d88, 0x4cd3, 0x4da8, 0x4dac, 0x4d50, 0x4d91, 0x4d76, 0x4d56, 0x4d5b, 0x4dab, 0x4d56, 0x4d93, 0x4d6f, 0x4cef, 0x4d8e, 0x4ddb, 0x4d6a, 0x4dd8, 0x4db3, 0x4dff, 0x4d77, 0x4d73, -0x4e14, 0x4df9, 0x4e48, 0x4dc5, 0x4dbd, 0x4dcc, 0x4e10, 0x4ec3, 0x4df1, 0x4f5c, 0x4e1c, 0x4e5d, 0x4edc, 0x4df1, 0x4dc0, 0x4e2d, 0x4e62, 0x4de3, 0x4d61, 0x4e39, 0x4e3b, 0x4d79, 0x4e3f, 0x4d76, 0x4daf, 0x4dc8, 0x4e42, 0x4d8d, 0x4e79, 0x4f05, 0x4e44, 0x4e3d, 0x4dce, 0x4e92, 0x4eb7, 0x4df7, 0x4dc4, 0x4db0, 0x4da3, 0x4df3, 0x4db6, 0x4dd6, 0x4dc5, 0x4ea3, 0x4d9e, 0x4ec8, 0x4d7c, 0x4e22, 0x4ee2, 0x4d92, 0x4f08, 0x4db2, 0x4dc3, 0x4df6, 0x4d31, 0x4e50, 0x4e8f, 0x4dd7, 0x4d6e, 0x4e1a, 0x4e86, 0x4f14, 0x4d99, 0x4e85, 0x4d54, 0x4e46, 0x4e26, 0x4e60, 0x4e4b, 0x4f02, 0x4e22, 0x4e04, 0x4e08, 0x4e0e, 0x4e68, 0x4e4a, 0x4de0, 0x4e5a, 0x4e36, 0x4e3d, 0x4e54, 0x4de2, 0x4df7, 0x4e14, 0x4dc6, 0x4e2f, 0x4e56, 0x4d70, 0x4dd2, 0x4e2a, 0x4e35, 0x4e7f, 0x4e7c, 0x4e20, 0x4db4, 0x4d7e, -0x4dc6, 0x4dc2, 0x4e0e, 0x4d9c, 0x4df6, 0x4df8, 0x4dfa, 0x4eb0, 0x4dbc, 0x4ee4, 0x4df7, 0x4da7, 0x4e6e, 0x4d80, 0x4dd3, 0x4dcf, 0x4e02, 0x4d96, 0x4df7, 0x4e57, 0x4e54, 0x4db1, 0x4e11, 0x4d54, 0x4e15, 0x4de1, 0x4e29, 0x4d6c, 0x4dfd, 0x4e7b, 0x4e56, 0x4dfb, 0x4e05, 0x4db1, 0x4e80, 0x4dde, 0x4db5, 0x4d95, 0x4d5e, 0x4de3, 0x4e10, 0x4dea, 0x4d4f, 0x4e65, 0x4dbc, 0x4e8c, 0x4d8d, 0x4ddc, 0x4e2d, 0x4daf, 0x4eb2, 0x4d7d, 0x4d12, 0x4dfc, 0x4d73, 0x4dcf, 0x4e1f, 0x4ddf, 0x4da2, 0x4e58, 0x4e2c, 0x4e98, 0x4d5b, 0x4dec, 0x4d85, 0x4d9f, 0x4de6, 0x4e43, 0x4dca, 0x4e3e, 0x4e6e, 0x4db7, 0x4e2e, 0x4dc1, 0x4dc9, 0x4da4, 0x4dc9, 0x4e02, 0x4df8, 0x4e2f, 0x4e59, 0x4dfe, 0x4d43, 0x4e64, 0x4d80, 0x4ddd, 0x4e15, 0x4d57, 0x4e48, 0x4df3, 0x4dad, 0x4e2f, 0x4e47, 0x4e28, 0x4d94, 0x4db7, -0x4d5f, 0x4d44, 0x4de2, 0x4d6d, 0x4d9b, 0x4d02, 0x4dbe, 0x4e08, 0x4d52, 0x4e16, 0x4d7f, 0x4d66, 0x4e4e, 0x4d55, 0x4d0f, 0x4d7f, 0x4d95, 0x4d6e, 0x4ce8, 0x4dad, 0x4d69, 0x4d42, 0x4dd8, 0x4d33, 0x4d9f, 0x4d61, 0x4dcb, 0x4d43, 0x4dbe, 0x4e12, 0x4dd1, 0x4da1, 0x4d81, 0x4da9, 0x4dff, 0x4d57, 0x4d5b, 0x4cef, 0x4d36, 0x4ccd, 0x4d6a, 0x4d20, 0x4d73, 0x4e30, 0x4d5c, 0x4e02, 0x4d09, 0x4d13, 0x4dee, 0x4d08, 0x4e28, 0x4ce2, 0x4ca5, 0x4d53, 0x4ce4, 0x4d25, 0x4dec, 0x4d44, 0x4d3a, 0x4dc9, 0x4da0, 0x4e0f, 0x4d36, 0x4d80, 0x4c83, 0x4d4c, 0x4d64, 0x4da2, 0x4e08, 0x4e17, 0x4d3f, 0x4d3b, 0x4db3, 0x4d82, 0x4d60, 0x4d87, 0x4d58, 0x4d7a, 0x4d47, 0x4da7, 0x4d24, 0x4d1c, 0x4d2b, 0x4e06, 0x4d16, 0x4dc6, 0x4d87, 0x4cdf, 0x4d70, 0x4db9, 0x4d27, 0x4dc9, 0x4dbb, 0x4d8f, 0x4d3f, 0x4d16, -0x4e12, 0x4e6c, 0x4e94, 0x4e81, 0x4ec0, 0x4e60, 0x4e3b, 0x4f8e, 0x4df8, 0x4f5a, 0x4e88, 0x4e88, 0x4f1c, 0x4e40, 0x4dea, 0x4ddf, 0x4ecb, 0x4e4e, 0x4e15, 0x4e32, 0x4ec9, 0x4dc5, 0x4e88, 0x4dd2, 0x4e51, 0x4e38, 0x4e88, 0x4e03, 0x4e75, 0x4ef6, 0x4eda, 0x4e88, 0x4ea8, 0x4e77, 0x4ec2, 0x4df3, 0x4e12, 0x4e23, 0x4df5, 0x4e0a, 0x4e86, 0x4e65, 0x4df8, 0x4ede, 0x4e52, 0x4ea9, 0x4da0, 0x4e3d, 0x4f16, 0x4e37, 0x4ee0, 0x4df5, 0x4def, 0x4e7a, 0x4dc7, 0x4e6b, 0x4ea5, 0x4e02, 0x4e52, 0x4e35, 0x4e6f, 0x4f2c, 0x4dd0, 0x4e5d, 0x4e27, 0x4e36, 0x4e9b, 0x4e77, 0x4eaa, 0x4f73, 0x4e60, 0x4dfc, 0x4f07, 0x4e60, 0x4e77, 0x4dfd, 0x4e39, 0x4e7a, 0x4e32, 0x4e65, 0x4e35, 0x4e28, 0x4dfe, 0x4eb3, 0x4e20, 0x4e8f, 0x4e7a, 0x4e05, 0x4e5b, 0x4eca, 0x4dcf, 0x4ec3, 0x4eee, 0x4ea4, 0x4e05, 0x4ded, -0x4e2a, 0x4e81, 0x4e68, 0x4de3, 0x4e93, 0x4dc5, 0x4e6a, 0x4f2a, 0x4df5, 0x4fa3, 0x4e54, 0x4e50, 0x4edf, 0x4e46, 0x4e9a, 0x4e35, 0x4ef8, 0x4e70, 0x4da1, 0x4e3d, 0x4e71, 0x4dfb, 0x4e64, 0x4d8e, 0x4e2f, 0x4e3d, 0x4e51, 0x4dd6, 0x4ecd, 0x4ea0, 0x4ecf, 0x4eba, 0x4e64, 0x4e65, 0x4ed8, 0x4dfd, 0x4e11, 0x4e1a, 0x4dc1, 0x4e5c, 0x4e66, 0x4e31, 0x4e6d, 0x4efa, 0x4dfe, 0x4f06, 0x4dd9, 0x4e0a, 0x4eed, 0x4df1, 0x4ef5, 0x4e12, 0x4dc6, 0x4e56, 0x4e31, 0x4dec, 0x4e66, 0x4db6, 0x4d8c, 0x4e40, 0x4e38, 0x4f37, 0x4dc4, 0x4ebe, 0x4e42, 0x4de6, 0x4e8b, 0x4eab, 0x4e84, 0x4eee, 0x4ec7, 0x4e13, 0x4e45, 0x4e7c, 0x4ea5, 0x4e72, 0x4e7f, 0x4e91, 0x4e53, 0x4e74, 0x4e5f, 0x4e41, 0x4e9c, 0x4ea3, 0x4da1, 0x4e06, 0x4e0b, 0x4dce, 0x4e5a, 0x4ed8, 0x4deb, 0x4e5c, 0x4ecd, 0x4eaf, 0x4e17, 0x4dc0, -0x4de1, 0x4df5, 0x4e47, 0x4de4, 0x4e55, 0x4de7, 0x4e23, 0x4f36, 0x4e02, 0x4f54, 0x4e1d, 0x4e77, 0x4ef4, 0x4e3a, 0x4e11, 0x4e2f, 0x4ef2, 0x4dd7, 0x4d78, 0x4e6f, 0x4e4b, 0x4da1, 0x4dc0, 0x4df2, 0x4de6, 0x4e31, 0x4ed7, 0x4e12, 0x4e15, 0x4eba, 0x4e06, 0x4e6e, 0x4e1e, 0x4e11, 0x4e69, 0x4dc7, 0x4df4, 0x4d9a, 0x4dbb, 0x4e16, 0x4dd8, 0x4e22, 0x4dad, 0x4e5c, 0x4df8, 0x4ea6, 0x4d9d, 0x4e12, 0x4ec1, 0x4dd9, 0x4f1a, 0x4ded, 0x4d6c, 0x4de3, 0x4dc5, 0x4e41, 0x4e66, 0x4d96, 0x4def, 0x4e15, 0x4e17, 0x4ec8, 0x4da2, 0x4e8e, 0x4de3, 0x4de2, 0x4ead, 0x4e9c, 0x4e8d, 0x4f0e, 0x4e35, 0x4e42, 0x4ebd, 0x4e0f, 0x4e8e, 0x4e1b, 0x4e29, 0x4e37, 0x4e5f, 0x4e33, 0x4e74, 0x4e10, 0x4dc6, 0x4e6f, 0x4dd4, 0x4e07, 0x4e8f, 0x4d7c, 0x4da2, 0x4ea6, 0x4ddd, 0x4ea0, 0x4edc, 0x4e44, 0x4e3f, 0x4dcf, -0x4d64, 0x4dbc, 0x4e2a, 0x4d7b, 0x4e0c, 0x4d70, 0x4d5c, 0x4e7f, 0x4d22, 0x4e82, 0x4dc7, 0x4e34, 0x4eb8, 0x4d43, 0x4d93, 0x4db4, 0x4e62, 0x4d6c, 0x4d5d, 0x4df9, 0x4daf, 0x4d4c, 0x4d4d, 0x4d5e, 0x4dc0, 0x4d68, 0x4e15, 0x4d39, 0x4e00, 0x4e8d, 0x4df5, 0x4e3d, 0x4dbd, 0x4d3d, 0x4ddc, 0x4d68, 0x4d55, 0x4d32, 0x4cec, 0x4d58, 0x4d8d, 0x4dcc, 0x4d55, 0x4ded, 0x4dfd, 0x4e14, 0x4d4e, 0x4d69, 0x4e63, 0x4d60, 0x4e56, 0x4db8, 0x4d40, 0x4daf, 0x4d4b, 0x4db7, 0x4d88, 0x4d57, 0x4d78, 0x4df0, 0x4ddf, 0x4ea7, 0x4d74, 0x4ddf, 0x4d1f, 0x4d45, 0x4dda, 0x4dc0, 0x4e11, 0x4e5e, 0x4de0, 0x4dfb, 0x4db1, 0x4dbe, 0x4df9, 0x4df0, 0x4db3, 0x4de6, 0x4d9c, 0x4e03, 0x4e08, 0x4d73, 0x4d70, 0x4df1, 0x4dca, 0x4dc5, 0x4d97, 0x4d15, 0x4db0, 0x4e61, 0x4d67, 0x4dc5, 0x4e20, 0x4d85, 0x4d6b, 0x4d62, -0x4d80, 0x4df6, 0x4e6f, 0x4d6a, 0x4e44, 0x4dc4, 0x4e6c, 0x4e7a, 0x4dd6, 0x4f7d, 0x4dda, 0x4dc4, 0x4f2e, 0x4db6, 0x4e17, 0x4ddb, 0x4e6f, 0x4dae, 0x4d64, 0x4dd7, 0x4e04, 0x4dba, 0x4dc3, 0x4de4, 0x4e27, 0x4e3a, 0x4e65, 0x4d7c, 0x4e06, 0x4ead, 0x4dfa, 0x4e4d, 0x4df1, 0x4e0d, 0x4eb9, 0x4dd6, 0x4e4e, 0x4d75, 0x4dca, 0x4df0, 0x4dde, 0x4e13, 0x4de3, 0x4ef2, 0x4dfe, 0x4e7e, 0x4d4a, 0x4dd2, 0x4e5c, 0x4dac, 0x4e79, 0x4dce, 0x4d0a, 0x4e15, 0x4dfc, 0x4df1, 0x4e77, 0x4db2, 0x4d70, 0x4e5c, 0x4e18, 0x4ee6, 0x4db1, 0x4e6b, 0x4d81, 0x4e15, 0x4e18, 0x4e15, 0x4dff, 0x4e9d, 0x4e3a, 0x4e0b, 0x4e75, 0x4dee, 0x4e31, 0x4e0e, 0x4de0, 0x4e45, 0x4e2c, 0x4e78, 0x4e7c, 0x4da5, 0x4dad, 0x4edc, 0x4df9, 0x4e0d, 0x4e39, 0x4d71, 0x4d8a, 0x4e50, 0x4dd8, 0x4e38, 0x4e5e, 0x4ddd, 0x4e18, 0x4d7e, -0x4dd4, 0x4df2, 0x4e8f, 0x4dd6, 0x4e08, 0x4dc1, 0x4e1b, 0x4f76, 0x4dea, 0x4f19, 0x4e8a, 0x4eb4, 0x4f5a, 0x4de2, 0x4df5, 0x4e7d, 0x4e87, 0x4e40, 0x4db8, 0x4ea9, 0x4e79, 0x4da2, 0x4e33, 0x4d4a, 0x4e4b, 0x4e18, 0x4e44, 0x4e00, 0x4e51, 0x4e9f, 0x4e5d, 0x4e73, 0x4e09, 0x4e51, 0x4e4f, 0x4e52, 0x4ddf, 0x4dc7, 0x4dd6, 0x4e21, 0x4e2f, 0x4e62, 0x4ddb, 0x4ea4, 0x4e07, 0x4eb9, 0x4ded, 0x4dcc, 0x4ed5, 0x4dcd, 0x4ebf, 0x4dce, 0x4d8e, 0x4dd4, 0x4d90, 0x4e36, 0x4e69, 0x4de2, 0x4d98, 0x4e4c, 0x4e10, 0x4ecc, 0x4d5d, 0x4ebc, 0x4dd7, 0x4e00, 0x4e78, 0x4e8f, 0x4ea8, 0x4ee1, 0x4e82, 0x4e2e, 0x4e0b, 0x4e1d, 0x4e94, 0x4e36, 0x4dff, 0x4e1d, 0x4e2d, 0x4dd3, 0x4e2e, 0x4e02, 0x4def, 0x4e83, 0x4dc1, 0x4e30, 0x4e18, 0x4dc8, 0x4dcc, 0x4e7b, 0x4deb, 0x4e91, 0x4e53, 0x4ead, 0x4e39, 0x4de7, -0x4db6, 0x4dde, 0x4e7e, 0x4d9c, 0x4e4d, 0x4d7f, 0x4dd3, 0x4e1d, 0x4dee, 0x4efe, 0x4e96, 0x4e29, 0x4e9f, 0x4e12, 0x4dfb, 0x4e03, 0x4e55, 0x4e4d, 0x4d8e, 0x4df4, 0x4e23, 0x4dd3, 0x4dbf, 0x4dd2, 0x4e6f, 0x4dab, 0x4e07, 0x4e0d, 0x4e82, 0x4e89, 0x4e4c, 0x4e3f, 0x4e3b, 0x4e64, 0x4e44, 0x4e2d, 0x4db1, 0x4dc5, 0x4db7, 0x4dcf, 0x4e33, 0x4e54, 0x4e27, 0x4e12, 0x4e13, 0x4e28, 0x4d7e, 0x4df7, 0x4eb3, 0x4df0, 0x4eda, 0x4df1, 0x4d04, 0x4df4, 0x4d89, 0x4dfb, 0x4e5b, 0x4dd4, 0x4d9e, 0x4e56, 0x4e47, 0x4ec2, 0x4d55, 0x4e0c, 0x4d56, 0x4e2c, 0x4d9b, 0x4e3c, 0x4e5b, 0x4ed3, 0x4e76, 0x4de1, 0x4e24, 0x4e31, 0x4e21, 0x4dec, 0x4dfe, 0x4e35, 0x4e3a, 0x4e7f, 0x4e71, 0x4dc9, 0x4e07, 0x4ea7, 0x4dbf, 0x4e4d, 0x4e21, 0x4d4e, 0x4dff, 0x4e44, 0x4dbc, 0x4e34, 0x4e63, 0x4e9d, 0x4ddd, 0x4e09, -0x4d5f, 0x4d52, 0x4e04, 0x4d4d, 0x4dc9, 0x4d7b, 0x4e22, 0x4e97, 0x4dc6, 0x4ec4, 0x4e0e, 0x4e14, 0x4ea4, 0x4d64, 0x4dbc, 0x4df1, 0x4e04, 0x4d9f, 0x4db5, 0x4dcb, 0x4dbc, 0x4d69, 0x4dc0, 0x4da8, 0x4e3e, 0x4e16, 0x4e73, 0x4d5d, 0x4e6c, 0x4eb7, 0x4e6f, 0x4de6, 0x4dc8, 0x4e02, 0x4e9e, 0x4d83, 0x4d8c, 0x4d6f, 0x4d25, 0x4dfd, 0x4e12, 0x4d9a, 0x4d58, 0x4e95, 0x4de8, 0x4e74, 0x4d50, 0x4df8, 0x4ddf, 0x4e0e, 0x4eb7, 0x4de1, 0x4d5f, 0x4d95, 0x4d8a, 0x4dcf, 0x4e35, 0x4dc7, 0x4d95, 0x4db6, 0x4db7, 0x4f00, 0x4d61, 0x4dc9, 0x4daa, 0x4daf, 0x4e2e, 0x4e12, 0x4e12, 0x4ed4, 0x4e2f, 0x4db5, 0x4e30, 0x4dfc, 0x4e4e, 0x4e39, 0x4e06, 0x4e30, 0x4ddd, 0x4e11, 0x4e6b, 0x4dc2, 0x4d96, 0x4e6a, 0x4d42, 0x4e30, 0x4e1f, 0x4d21, 0x4de8, 0x4e8c, 0x4dbc, 0x4dcc, 0x4e03, 0x4e61, 0x4df3, 0x4e23, -0x4d73, 0x4d6b, 0x4e65, 0x4d83, 0x4e07, 0x4de4, 0x4e20, 0x4ecc, 0x4d8e, 0x4eca, 0x4ddf, 0x4dc7, 0x4ead, 0x4d93, 0x4d81, 0x4df7, 0x4e5a, 0x4dac, 0x4d5e, 0x4dd7, 0x4e0c, 0x4d53, 0x4db1, 0x4cc3, 0x4e09, 0x4dac, 0x4e44, 0x4d97, 0x4df3, 0x4e6c, 0x4e2d, 0x4da1, 0x4df0, 0x4df1, 0x4e35, 0x4d86, 0x4d8f, 0x4da9, 0x4ce6, 0x4d92, 0x4e33, 0x4e02, 0x4d57, 0x4e1e, 0x4d6f, 0x4e9b, 0x4cf6, 0x4db4, 0x4df2, 0x4e0a, 0x4e79, 0x4db6, 0x4d5e, 0x4d87, 0x4d94, 0x4d98, 0x4dd8, 0x4d9f, 0x4d9b, 0x4e07, 0x4db5, 0x4e90, 0x4d8f, 0x4e04, 0x4d37, 0x4df3, 0x4dbb, 0x4e0b, 0x4e46, 0x4e72, 0x4e38, 0x4d88, 0x4de0, 0x4dd0, 0x4e34, 0x4e1c, 0x4ddc, 0x4de9, 0x4df7, 0x4dc5, 0x4e26, 0x4dcb, 0x4dc6, 0x4e10, 0x4db4, 0x4dda, 0x4e2c, 0x4d42, 0x4dda, 0x4e34, 0x4df9, 0x4df6, 0x4e4c, 0x4e60, 0x4dce, 0x4da1, -0x4dfb, 0x4ddc, 0x4dfc, 0x4df6, 0x4e60, 0x4e79, 0x4ee5, 0x4f0d, 0x4e50, 0x4f64, 0x4e51, 0x4e14, 0x4f68, 0x4e42, 0x4e0e, 0x4dea, 0x4e93, 0x4e28, 0x4dd7, 0x4e3a, 0x4e8b, 0x4d3a, 0x4e6a, 0x4dd7, 0x4e04, 0x4e77, 0x4e54, 0x4de5, 0x4e6e, 0x4ead, 0x4e4d, 0x4ed8, 0x4e36, 0x4e13, 0x4ef5, 0x4e57, 0x4e79, 0x4df7, 0x4dca, 0x4dd7, 0x4dc8, 0x4e46, 0x4df8, 0x4ea0, 0x4e57, 0x4eab, 0x4dbd, 0x4de8, 0x4ebc, 0x4ddd, 0x4f0b, 0x4e75, 0x4d8e, 0x4e2c, 0x4d68, 0x4e38, 0x4e5d, 0x4de2, 0x4e27, 0x4e44, 0x4e80, 0x4f24, 0x4db1, 0x4e59, 0x4dcb, 0x4df5, 0x4e8c, 0x4e7c, 0x4ec9, 0x4eca, 0x4e37, 0x4e6b, 0x4e74, 0x4e1e, 0x4ebb, 0x4e4e, 0x4e39, 0x4e60, 0x4e2e, 0x4e6a, 0x4ebd, 0x4ddd, 0x4dd9, 0x4e88, 0x4db2, 0x4e21, 0x4de8, 0x4daf, 0x4e9e, 0x4e7e, 0x4e1d, 0x4e78, 0x4e9e, 0x4e69, 0x4e48, 0x4df0, -0x4e18, 0x4e15, 0x4e0d, 0x4d9d, 0x4de2, 0x4db6, 0x4e03, 0x4e90, 0x4db2, 0x4f64, 0x4e3c, 0x4e44, 0x4f07, 0x4e61, 0x4e19, 0x4e2a, 0x4e27, 0x4dea, 0x4dda, 0x4e0d, 0x4e2a, 0x4d6f, 0x4df2, 0x4dae, 0x4e27, 0x4e12, 0x4e69, 0x4d56, 0x4e61, 0x4ec9, 0x4e75, 0x4dfb, 0x4df1, 0x4e4b, 0x4e66, 0x4e00, 0x4df6, 0x4dd5, 0x4d9c, 0x4dd9, 0x4dc1, 0x4e0f, 0x4dff, 0x4e66, 0x4e12, 0x4e5e, 0x4dc5, 0x4e06, 0x4ea9, 0x4d9a, 0x4edd, 0x4d9c, 0x4d79, 0x4dfa, 0x4dec, 0x4de7, 0x4e23, 0x4dde, 0x4d74, 0x4e25, 0x4e5e, 0x4ed2, 0x4dbe, 0x4eb2, 0x4d68, 0x4df8, 0x4e4e, 0x4e5f, 0x4e72, 0x4eae, 0x4e68, 0x4d79, 0x4e1b, 0x4df4, 0x4e5c, 0x4e0b, 0x4e38, 0x4e14, 0x4e30, 0x4e1e, 0x4e6e, 0x4da5, 0x4e15, 0x4e83, 0x4d85, 0x4e05, 0x4dc2, 0x4d58, 0x4dfe, 0x4e6a, 0x4dbd, 0x4df2, 0x4e78, 0x4e34, 0x4e58, 0x4de8, -0x4ed2, 0x4e61, 0x4e8f, 0x4ebf, 0x4ef5, 0x4e4a, 0x4ed0, 0x4f75, 0x4dcc, 0x500b, 0x4e3a, 0x4ed7, 0x4f6a, 0x4e6b, 0x4e3d, 0x4e69, 0x4ee1, 0x4ef6, 0x4de0, 0x4e8a, 0x4ea9, 0x4dd9, 0x4e98, 0x4e63, 0x4e1a, 0x4eb5, 0x4f27, 0x4dfb, 0x4eec, 0x4f05, 0x4ee4, 0x4ec3, 0x4ede, 0x4ed6, 0x4eee, 0x4e11, 0x4e56, 0x4dc8, 0x4e3e, 0x4e6d, 0x4ebb, 0x4e82, 0x4e5e, 0x4f27, 0x4ec1, 0x4f29, 0x4dc5, 0x4e07, 0x4f4b, 0x4e3a, 0x4f06, 0x4e9b, 0x4e12, 0x4e68, 0x4e1b, 0x4e6c, 0x4ec0, 0x4e53, 0x4dd4, 0x4e71, 0x4ea6, 0x4f59, 0x4d84, 0x4ed9, 0x4dd2, 0x4e56, 0x4ecf, 0x4e41, 0x4e5b, 0x4f78, 0x4eaa, 0x4ee4, 0x4ec2, 0x4e0f, 0x4ea8, 0x4e99, 0x4e0f, 0x4ed0, 0x4e36, 0x4e7e, 0x4ea4, 0x4e09, 0x4ea2, 0x4ed1, 0x4e45, 0x4e2d, 0x4e7f, 0x4dfe, 0x4ea7, 0x4f08, 0x4e5b, 0x4f1e, 0x4f1b, 0x4e8d, 0x4e63, 0x4e1f, -0x4d50, 0x4d58, 0x4dc6, 0x4d63, 0x4d51, 0x4cf4, 0x4dea, 0x4e93, 0x4d63, 0x4e41, 0x4d61, 0x4dd5, 0x4e3a, 0x4d60, 0x4dd1, 0x4d9f, 0x4e21, 0x4d1d, 0x4d52, 0x4d9e, 0x4df7, 0x4d53, 0x4d8c, 0x4d57, 0x4dad, 0x4d52, 0x4ddb, 0x4ccb, 0x4e0b, 0x4e33, 0x4e0d, 0x4e17, 0x4d8e, 0x4d64, 0x4e15, 0x4d7d, 0x4db1, 0x4d3c, 0x4d35, 0x4d81, 0x4d5b, 0x4ddf, 0x4d29, 0x4e15, 0x4d2c, 0x4dbe, 0x4ca5, 0x4d96, 0x4dd8, 0x4d8b, 0x4deb, 0x4d1f, 0x4d1e, 0x4d79, 0x4ce2, 0x4d9c, 0x4de9, 0x4d13, 0x4d46, 0x4d99, 0x4ddf, 0x4e32, 0x4d14, 0x4dae, 0x4d49, 0x4d7d, 0x4dd3, 0x4dc0, 0x4e07, 0x4e17, 0x4de2, 0x4d3c, 0x4dcc, 0x4dd0, 0x4dff, 0x4d24, 0x4d49, 0x4dc4, 0x4d5e, 0x4d94, 0x4e1d, 0x4d76, 0x4d29, 0x4dce, 0x4d50, 0x4d84, 0x4d8a, 0x4d39, 0x4dcc, 0x4dd3, 0x4d6b, 0x4de9, 0x4e08, 0x4d81, 0x4d94, 0x4d8a, -0x4d9f, 0x4e04, 0x4e12, 0x4d91, 0x4df5, 0x4d8b, 0x4dbb, 0x4ea8, 0x4da5, 0x4edd, 0x4da2, 0x4da1, 0x4e67, 0x4dae, 0x4db6, 0x4df3, 0x4e3c, 0x4d05, 0x4d7d, 0x4dcd, 0x4dbd, 0x4d86, 0x4da9, 0x4d85, 0x4dc9, 0x4daa, 0x4e3d, 0x4d34, 0x4dfa, 0x4e65, 0x4e16, 0x4ddf, 0x4dae, 0x4d7e, 0x4e6f, 0x4d42, 0x4d8c, 0x4d5c, 0x4d39, 0x4e04, 0x4d90, 0x4da6, 0x4d72, 0x4e42, 0x4e03, 0x4e15, 0x4d9b, 0x4dc6, 0x4e18, 0x4d68, 0x4e3e, 0x4da7, 0x4cfb, 0x4db9, 0x4db4, 0x4d47, 0x4dac, 0x4d0d, 0x4d91, 0x4de7, 0x4dcc, 0x4ece, 0x4d39, 0x4ddb, 0x4d3f, 0x4d17, 0x4e3d, 0x4e87, 0x4da9, 0x4e9d, 0x4df6, 0x4dba, 0x4de3, 0x4d73, 0x4ddf, 0x4d6c, 0x4df5, 0x4dc4, 0x4d89, 0x4dac, 0x4e55, 0x4d8d, 0x4d29, 0x4e7c, 0x4d3e, 0x4dc3, 0x4dc6, 0x4d16, 0x4db1, 0x4db6, 0x4d2e, 0x4e10, 0x4e8f, 0x4e53, 0x4def, 0x4d93, -0x4d7c, 0x4dc3, 0x4e09, 0x4e1d, 0x4e57, 0x4dfd, 0x4ea6, 0x4f29, 0x4e11, 0x4f37, 0x4e26, 0x4e3f, 0x4f1f, 0x4e26, 0x4e37, 0x4e0b, 0x4ea0, 0x4e58, 0x4d9f, 0x4df1, 0x4e40, 0x4d80, 0x4e42, 0x4da5, 0x4e6b, 0x4e59, 0x4e1a, 0x4dc2, 0x4e18, 0x4eae, 0x4eb2, 0x4e4e, 0x4e46, 0x4e70, 0x4e78, 0x4de5, 0x4dfb, 0x4d66, 0x4ddb, 0x4dcf, 0x4de8, 0x4e80, 0x4e25, 0x4efd, 0x4e0a, 0x4e74, 0x4d9c, 0x4e3a, 0x4ec3, 0x4e2a, 0x4ea9, 0x4db9, 0x4d98, 0x4e32, 0x4dfd, 0x4e29, 0x4e8b, 0x4da4, 0x4dda, 0x4e59, 0x4e6d, 0x4f14, 0x4da8, 0x4e73, 0x4e03, 0x4e0e, 0x4e3f, 0x4e4f, 0x4e67, 0x4ece, 0x4e6d, 0x4db3, 0x4e71, 0x4e03, 0x4e4d, 0x4e1d, 0x4e9e, 0x4deb, 0x4dd6, 0x4de6, 0x4ebf, 0x4da2, 0x4e25, 0x4eb3, 0x4dbd, 0x4e42, 0x4e33, 0x4dfa, 0x4e18, 0x4e34, 0x4db7, 0x4e62, 0x4e91, 0x4e55, 0x4e39, 0x4e0e, -0x4e1c, 0x4e0e, 0x4ea5, 0x4dfe, 0x4e42, 0x4e24, 0x4ee6, 0x4f64, 0x4e07, 0x4f49, 0x4e23, 0x4e79, 0x4f00, 0x4e39, 0x4e49, 0x4e64, 0x4efa, 0x4e6b, 0x4dcb, 0x4ebb, 0x4dec, 0x4e02, 0x4e6b, 0x4dad, 0x4e53, 0x4e8d, 0x4e1b, 0x4dbe, 0x4e5f, 0x4f4a, 0x4ea3, 0x4e1b, 0x4e26, 0x4e29, 0x4e9b, 0x4e22, 0x4e06, 0x4e0a, 0x4e12, 0x4dd4, 0x4e83, 0x4e6b, 0x4e03, 0x4ebb, 0x4e0e, 0x4eef, 0x4db8, 0x4de8, 0x4ef8, 0x4dfa, 0x4e70, 0x4dfe, 0x4db4, 0x4e48, 0x4db3, 0x4dd6, 0x4e90, 0x4e0f, 0x4e43, 0x4eb7, 0x4eb4, 0x4f39, 0x4db4, 0x4eea, 0x4dc9, 0x4e4f, 0x4e79, 0x4e82, 0x4e4d, 0x4ebe, 0x4ea0, 0x4e1d, 0x4e88, 0x4e2a, 0x4ea2, 0x4dff, 0x4e4a, 0x4e1e, 0x4e56, 0x4e42, 0x4eee, 0x4e13, 0x4e05, 0x4e8d, 0x4d84, 0x4e5f, 0x4e72, 0x4da9, 0x4e65, 0x4e82, 0x4dd0, 0x4eec, 0x4ebf, 0x4e6d, 0x4e05, 0x4e34, -0x4df7, 0x4df8, 0x4e19, 0x4dc2, 0x4e08, 0x4d96, 0x4e15, 0x4e8b, 0x4dd6, 0x4ee6, 0x4e2a, 0x4e81, 0x4eb0, 0x4dbc, 0x4db3, 0x4dc1, 0x4e4a, 0x4e07, 0x4de6, 0x4e38, 0x4e01, 0x4d73, 0x4de0, 0x4d6b, 0x4e18, 0x4e38, 0x4e4c, 0x4d81, 0x4e65, 0x4efa, 0x4e48, 0x4e20, 0x4e19, 0x4dc1, 0x4e7b, 0x4dd9, 0x4e18, 0x4dd3, 0x4d4c, 0x4ddd, 0x4dc0, 0x4e14, 0x4d8a, 0x4e9f, 0x4dbf, 0x4e45, 0x4d36, 0x4e03, 0x4e7c, 0x4d8b, 0x4e7a, 0x4dc3, 0x4d4d, 0x4dff, 0x4d84, 0x4ddd, 0x4e76, 0x4d7d, 0x4d74, 0x4e02, 0x4e10, 0x4e5f, 0x4d8c, 0x4e26, 0x4d8b, 0x4dd5, 0x4e33, 0x4e0a, 0x4df0, 0x4ee1, 0x4e21, 0x4d9d, 0x4e45, 0x4e22, 0x4e2a, 0x4de6, 0x4e22, 0x4e4c, 0x4de5, 0x4e0e, 0x4e9d, 0x4d29, 0x4d9c, 0x4e5e, 0x4d53, 0x4e15, 0x4e02, 0x4d64, 0x4dd4, 0x4e46, 0x4d64, 0x4e19, 0x4e5f, 0x4e3a, 0x4d78, 0x4db6, -0x4dec, 0x4ddb, 0x4e68, 0x4d9e, 0x4e3c, 0x4e3e, 0x4e41, 0x4f6c, 0x4e24, 0x4f2a, 0x4e2e, 0x4e7c, 0x4f37, 0x4dde, 0x4dd5, 0x4e75, 0x4eb7, 0x4dc9, 0x4dcb, 0x4e36, 0x4e72, 0x4df6, 0x4e52, 0x4db5, 0x4dfa, 0x4e34, 0x4ebf, 0x4dcd, 0x4e14, 0x4edf, 0x4e6b, 0x4e8b, 0x4e41, 0x4e5f, 0x4e82, 0x4dd6, 0x4e0a, 0x4db8, 0x4dc6, 0x4e34, 0x4e16, 0x4eb4, 0x4e02, 0x4ed2, 0x4e2d, 0x4ef5, 0x4dc5, 0x4e36, 0x4eb4, 0x4df0, 0x4f4d, 0x4de8, 0x4dac, 0x4e0a, 0x4d9c, 0x4e45, 0x4e79, 0x4dd1, 0x4db0, 0x4ec1, 0x4dfb, 0x4ee0, 0x4d70, 0x4e88, 0x4df2, 0x4df6, 0x4e3f, 0x4e33, 0x4ef4, 0x4f0b, 0x4e75, 0x4e45, 0x4e05, 0x4d91, 0x4e72, 0x4e1b, 0x4e66, 0x4e32, 0x4dd1, 0x4e14, 0x4e63, 0x4e10, 0x4df1, 0x4ebf, 0x4d89, 0x4e6a, 0x4e7b, 0x4d91, 0x4e3f, 0x4e61, 0x4e31, 0x4e7f, 0x4ddd, 0x4e16, 0x4e2b, 0x4de8, -0x4d4a, 0x4d3f, 0x4d6a, 0x4d6a, 0x4e2b, 0x4d74, 0x4de3, 0x4eb1, 0x4dd9, 0x4e75, 0x4da3, 0x4dde, 0x4e51, 0x4ded, 0x4e0a, 0x4d83, 0x4e72, 0x4dd7, 0x4d43, 0x4d74, 0x4e0c, 0x4da8, 0x4df0, 0x4d54, 0x4df0, 0x4e0a, 0x4e25, 0x4d74, 0x4e0f, 0x4e13, 0x4e18, 0x4e0e, 0x4e0c, 0x4dfa, 0x4e2f, 0x4d82, 0x4dbe, 0x4d6a, 0x4d42, 0x4d8b, 0x4ce1, 0x4dc9, 0x4d63, 0x4e1f, 0x4db1, 0x4e11, 0x4d22, 0x4df3, 0x4e58, 0x4d7d, 0x4ec2, 0x4d84, 0x4d46, 0x4d6e, 0x4d20, 0x4d68, 0x4dfe, 0x4d39, 0x4d23, 0x4d87, 0x4d7e, 0x4ec7, 0x4d2a, 0x4dbf, 0x4d44, 0x4d8f, 0x4e0a, 0x4dff, 0x4e30, 0x4e2e, 0x4d94, 0x4d89, 0x4e04, 0x4d72, 0x4dee, 0x4d41, 0x4dd4, 0x4d58, 0x4dba, 0x4d8f, 0x4e19, 0x4dac, 0x4db5, 0x4dea, 0x4ce2, 0x4e1a, 0x4d87, 0x4d54, 0x4d86, 0x4e3e, 0x4e04, 0x4e41, 0x4dd4, 0x4df5, 0x4e28, 0x4d92, -0x4d5e, 0x4dba, 0x4df8, 0x4d94, 0x4df0, 0x4d7d, 0x4dfc, 0x4e83, 0x4df1, 0x4e98, 0x4dd4, 0x4dc6, 0x4e84, 0x4daa, 0x4d97, 0x4d98, 0x4dfd, 0x4d9e, 0x4d4a, 0x4dd7, 0x4d7e, 0x4da5, 0x4dbf, 0x4dd1, 0x4de8, 0x4db7, 0x4dfd, 0x4d45, 0x4dba, 0x4e6c, 0x4df2, 0x4dfc, 0x4dc2, 0x4dad, 0x4e19, 0x4d4d, 0x4df1, 0x4dab, 0x4d76, 0x4da8, 0x4d60, 0x4e55, 0x4dab, 0x4e58, 0x4d6a, 0x4e07, 0x4d48, 0x4d82, 0x4e78, 0x4d73, 0x4e49, 0x4dbe, 0x4d0c, 0x4d80, 0x4dbb, 0x4d67, 0x4e27, 0x4d34, 0x4d72, 0x4de1, 0x4e1d, 0x4e81, 0x4cf1, 0x4e18, 0x4d84, 0x4d8d, 0x4e1b, 0x4e4d, 0x4dd0, 0x4e69, 0x4dc1, 0x4da0, 0x4e4a, 0x4d7b, 0x4dc0, 0x4d4f, 0x4de4, 0x4e1b, 0x4da1, 0x4e14, 0x4e2c, 0x4d53, 0x4d67, 0x4ecd, 0x4d98, 0x4dc2, 0x4dff, 0x4d37, 0x4deb, 0x4dcb, 0x4cff, 0x4de8, 0x4e0a, 0x4d80, 0x4dba, 0x4d6a, -0x4d78, 0x4d5c, 0x4dbd, 0x4d18, 0x4d9d, 0x4d98, 0x4d95, 0x4e53, 0x4d96, 0x4e9f, 0x4db1, 0x4dea, 0x4ea8, 0x4d7f, 0x4d8b, 0x4d7a, 0x4de6, 0x4d5d, 0x4d91, 0x4da5, 0x4da8, 0x4d38, 0x4ddd, 0x4d87, 0x4d57, 0x4dfd, 0x4e38, 0x4d7b, 0x4d9a, 0x4e34, 0x4e26, 0x4da2, 0x4dc3, 0x4d63, 0x4de6, 0x4d54, 0x4dec, 0x4cfb, 0x4d33, 0x4d01, 0x4d50, 0x4da9, 0x4da2, 0x4e13, 0x4dbf, 0x4dff, 0x4d20, 0x4de2, 0x4e2b, 0x4d73, 0x4e87, 0x4d96, 0x4ce3, 0x4d66, 0x4d63, 0x4d8a, 0x4e2e, 0x4d32, 0x4d64, 0x4da9, 0x4da7, 0x4e99, 0x4cff, 0x4e26, 0x4d53, 0x4d79, 0x4df7, 0x4daf, 0x4e47, 0x4e48, 0x4d6a, 0x4dc0, 0x4ddd, 0x4d4d, 0x4dfb, 0x4d9b, 0x4db0, 0x4d67, 0x4ddb, 0x4dfc, 0x4d88, 0x4d4f, 0x4cfd, 0x4e65, 0x4d56, 0x4dca, 0x4dcb, 0x4cdd, 0x4d73, 0x4db6, 0x4d42, 0x4dae, 0x4e26, 0x4d76, 0x4d67, 0x4d82, -0x4dbf, 0x4df6, 0x4e63, 0x4dbc, 0x4edf, 0x4e0f, 0x4dfc, 0x4ecc, 0x4e07, 0x4f24, 0x4e00, 0x4e3b, 0x4f2d, 0x4e76, 0x4e0c, 0x4d9b, 0x4ecf, 0x4e60, 0x4df9, 0x4e4e, 0x4e0e, 0x4dd0, 0x4e7d, 0x4dfb, 0x4e65, 0x4eab, 0x4e78, 0x4e0c, 0x4e44, 0x4e4c, 0x4e70, 0x4e9f, 0x4e78, 0x4e01, 0x4e8d, 0x4e02, 0x4e1e, 0x4dcd, 0x4dce, 0x4dac, 0x4e25, 0x4e11, 0x4df9, 0x4ee4, 0x4e60, 0x4eb6, 0x4dc2, 0x4e32, 0x4f0f, 0x4dad, 0x4f16, 0x4dac, 0x4d37, 0x4e75, 0x4daf, 0x4df5, 0x4e91, 0x4db6, 0x4dc3, 0x4e51, 0x4e1a, 0x4f04, 0x4dd3, 0x4e22, 0x4dcd, 0x4dd4, 0x4e5a, 0x4e38, 0x4e9f, 0x4e7a, 0x4ea4, 0x4e59, 0x4e63, 0x4e09, 0x4e3f, 0x4dff, 0x4e0b, 0x4e1b, 0x4e1b, 0x4e7a, 0x4e5f, 0x4d96, 0x4dc5, 0x4e7d, 0x4d96, 0x4e22, 0x4e39, 0x4d5a, 0x4e54, 0x4eb5, 0x4e10, 0x4e66, 0x4e83, 0x4e2c, 0x4e34, 0x4d5a, -0x4d71, 0x4dd1, 0x4e56, 0x4d84, 0x4dcc, 0x4d86, 0x4e2f, 0x4e5a, 0x4dc0, 0x4ea7, 0x4e1e, 0x4e25, 0x4ea5, 0x4d59, 0x4d96, 0x4e00, 0x4e1c, 0x4d7f, 0x4d79, 0x4e33, 0x4d81, 0x4d99, 0x4d92, 0x4d4f, 0x4d9b, 0x4dec, 0x4e45, 0x4d44, 0x4dcf, 0x4e43, 0x4e26, 0x4dfe, 0x4dd8, 0x4e01, 0x4e6b, 0x4dd2, 0x4ddd, 0x4db8, 0x4d2e, 0x4dec, 0x4de0, 0x4e0f, 0x4da8, 0x4ed9, 0x4da5, 0x4e7f, 0x4cfb, 0x4d7b, 0x4e07, 0x4da2, 0x4e9f, 0x4d95, 0x4d3b, 0x4db7, 0x4da1, 0x4dc7, 0x4dfb, 0x4d73, 0x4d74, 0x4dfb, 0x4df9, 0x4ed7, 0x4d61, 0x4de7, 0x4d74, 0x4db0, 0x4da0, 0x4e05, 0x4e52, 0x4e67, 0x4e3b, 0x4d86, 0x4dca, 0x4ded, 0x4d7e, 0x4d87, 0x4dee, 0x4dec, 0x4dd8, 0x4df7, 0x4e19, 0x4d39, 0x4da2, 0x4e7b, 0x4d5f, 0x4de3, 0x4de7, 0x4d6e, 0x4dad, 0x4e39, 0x4d1b, 0x4e13, 0x4dfe, 0x4de6, 0x4dad, 0x4dd7, -0x4e08, 0x4de7, 0x4e3b, 0x4e57, 0x4ec6, 0x4e89, 0x4eae, 0x4f6b, 0x4e5a, 0x4fbb, 0x4e68, 0x4e30, 0x4f54, 0x4e46, 0x4e31, 0x4e01, 0x4f2d, 0x4e6e, 0x4e0a, 0x4e3e, 0x4ead, 0x4dd6, 0x4e96, 0x4e12, 0x4e62, 0x4e8d, 0x4ec0, 0x4e03, 0x4e58, 0x4eec, 0x4ea5, 0x4eac, 0x4e98, 0x4e68, 0x4efa, 0x4e20, 0x4e2d, 0x4e0a, 0x4e29, 0x4e36, 0x4e62, 0x4e6e, 0x4dc5, 0x4ee7, 0x4e9f, 0x4ef0, 0x4e06, 0x4e0e, 0x4f08, 0x4df4, 0x4f16, 0x4dc9, 0x4d49, 0x4e98, 0x4dcd, 0x4e73, 0x4ecb, 0x4e7e, 0x4e22, 0x4e87, 0x4e90, 0x4f22, 0x4dd9, 0x4ed8, 0x4e21, 0x4e27, 0x4e54, 0x4e73, 0x4e8d, 0x4f3b, 0x4e98, 0x4dfe, 0x4ec4, 0x4e22, 0x4e8b, 0x4e79, 0x4e10, 0x4e68, 0x4e06, 0x4e7a, 0x4ef9, 0x4e1c, 0x4e11, 0x4e9c, 0x4dc7, 0x4e2a, 0x4dec, 0x4e0c, 0x4e55, 0x4e89, 0x4e5f, 0x4f06, 0x4eaf, 0x4e44, 0x4ea0, 0x4e10, -0x4dbc, 0x4dc0, 0x4e13, 0x4da8, 0x4e6c, 0x4e0f, 0x4e94, 0x4ee8, 0x4df0, 0x4f1d, 0x4e41, 0x4e33, 0x4f18, 0x4dbd, 0x4df9, 0x4e19, 0x4e6e, 0x4d98, 0x4d78, 0x4ddf, 0x4e5e, 0x4dad, 0x4dbf, 0x4d88, 0x4e07, 0x4e26, 0x4e1c, 0x4dd3, 0x4e6d, 0x4ef3, 0x4e99, 0x4e3d, 0x4e3c, 0x4e6b, 0x4e6f, 0x4e0e, 0x4df7, 0x4dab, 0x4dd2, 0x4e20, 0x4e18, 0x4dfe, 0x4da4, 0x4e68, 0x4e1e, 0x4e3d, 0x4d7f, 0x4df2, 0x4eb9, 0x4dda, 0x4ec6, 0x4ddb, 0x4d6c, 0x4e1c, 0x4d9e, 0x4e23, 0x4e36, 0x4d74, 0x4dd5, 0x4e31, 0x4e36, 0x4f13, 0x4d62, 0x4e07, 0x4d70, 0x4df5, 0x4e70, 0x4e46, 0x4e5d, 0x4eb4, 0x4e6d, 0x4de1, 0x4e64, 0x4e17, 0x4e36, 0x4e2f, 0x4e29, 0x4e32, 0x4dde, 0x4dc9, 0x4e74, 0x4de5, 0x4de6, 0x4e52, 0x4da3, 0x4e0e, 0x4e4b, 0x4daf, 0x4dec, 0x4ebe, 0x4dc5, 0x4e10, 0x4e83, 0x4e8d, 0x4e13, 0x4e0d, -0x4de6, 0x4e03, 0x4e4f, 0x4d8b, 0x4e9b, 0x4e0f, 0x4ea4, 0x4ed6, 0x4dca, 0x4f1d, 0x4e28, 0x4e48, 0x4eff, 0x4e00, 0x4e96, 0x4e11, 0x4eb8, 0x4dae, 0x4df2, 0x4e6d, 0x4e65, 0x4e1a, 0x4e33, 0x4e04, 0x4e00, 0x4e74, 0x4eca, 0x4df9, 0x4e32, 0x4e8c, 0x4eac, 0x4e81, 0x4e27, 0x4e2a, 0x4e53, 0x4de1, 0x4df1, 0x4d9c, 0x4dd9, 0x4e37, 0x4e26, 0x4e2f, 0x4d63, 0x4edb, 0x4e62, 0x4ebd, 0x4dd5, 0x4e05, 0x4eb9, 0x4dd1, 0x4f1c, 0x4dee, 0x4d5f, 0x4e2c, 0x4e1e, 0x4e07, 0x4e03, 0x4ddf, 0x4dc5, 0x4dd1, 0x4e05, 0x4edb, 0x4dca, 0x4e5a, 0x4d80, 0x4dd5, 0x4e75, 0x4e6a, 0x4e69, 0x4eb3, 0x4e49, 0x4e88, 0x4ea2, 0x4e28, 0x4ea6, 0x4e21, 0x4e0a, 0x4e2f, 0x4e39, 0x4e43, 0x4e3b, 0x4e07, 0x4d9a, 0x4e97, 0x4d98, 0x4e81, 0x4dd9, 0x4d1d, 0x4e15, 0x4e7c, 0x4e15, 0x4e48, 0x4ec0, 0x4e99, 0x4e31, 0x4e50, -0x4d4e, 0x4dcf, 0x4e16, 0x4e0f, 0x4e3d, 0x4d5b, 0x4dd0, 0x4ed8, 0x4dfa, 0x4f4d, 0x4dbd, 0x4e5d, 0x4e9b, 0x4d9b, 0x4e37, 0x4dcd, 0x4e8e, 0x4e45, 0x4d87, 0x4dfa, 0x4e43, 0x4dd6, 0x4e1c, 0x4d8a, 0x4e32, 0x4ddb, 0x4e30, 0x4d75, 0x4db6, 0x4eca, 0x4dcd, 0x4e08, 0x4e13, 0x4e61, 0x4e35, 0x4dd9, 0x4dbc, 0x4d9e, 0x4d85, 0x4dfe, 0x4e2a, 0x4e31, 0x4d76, 0x4e50, 0x4dcc, 0x4e8e, 0x4d2d, 0x4de9, 0x4eaf, 0x4d8a, 0x4ebd, 0x4db0, 0x4d28, 0x4def, 0x4da2, 0x4db8, 0x4e71, 0x4dc0, 0x4d07, 0x4dd9, 0x4e0d, 0x4eec, 0x4dd4, 0x4dff, 0x4d97, 0x4ded, 0x4e33, 0x4e55, 0x4e1f, 0x4e88, 0x4e25, 0x4da1, 0x4e0d, 0x4de9, 0x4e00, 0x4dc7, 0x4de5, 0x4dc9, 0x4e36, 0x4dd4, 0x4eae, 0x4df1, 0x4e29, 0x4ecc, 0x4d81, 0x4e1d, 0x4e1a, 0x4d93, 0x4dd0, 0x4e67, 0x4ddf, 0x4e49, 0x4e29, 0x4dfc, 0x4e4e, 0x4e15, -0x4d53, 0x4d54, 0x4dcb, 0x4d20, 0x4d9f, 0x4d7b, 0x4db1, 0x4e61, 0x4d86, 0x4e2b, 0x4d85, 0x4dca, 0x4e88, 0x4d8f, 0x4d7c, 0x4dbd, 0x4dd1, 0x4d53, 0x4cf8, 0x4e33, 0x4daa, 0x4d52, 0x4d77, 0x4d28, 0x4db3, 0x4db7, 0x4da2, 0x4d5f, 0x4d8b, 0x4e40, 0x4e0a, 0x4d4e, 0x4d44, 0x4d89, 0x4dd4, 0x4ced, 0x4d7e, 0x4d23, 0x4d3b, 0x4d33, 0x4d97, 0x4dbe, 0x4d4e, 0x4e18, 0x4d25, 0x4e37, 0x4cec, 0x4d58, 0x4dd8, 0x4d79, 0x4e3c, 0x4d8d, 0x4d0e, 0x4d56, 0x4ce2, 0x4d47, 0x4dec, 0x4d34, 0x4d24, 0x4df8, 0x4d54, 0x4dc0, 0x4ce1, 0x4db2, 0x4d4d, 0x4d59, 0x4d7b, 0x4db2, 0x4db9, 0x4e11, 0x4d44, 0x4daa, 0x4dc6, 0x4d61, 0x4db8, 0x4d7d, 0x4d94, 0x4dc4, 0x4d64, 0x4da8, 0x4db3, 0x4d5b, 0x4d48, 0x4e4c, 0x4d38, 0x4cf7, 0x4dda, 0x4ce7, 0x4de8, 0x4de0, 0x4d34, 0x4dc4, 0x4e01, 0x4db9, 0x4d72, 0x4d31, -0x4d50, 0x4d8a, 0x4e4e, 0x4d70, 0x4e36, 0x4db3, 0x4e2c, 0x4ec3, 0x4de3, 0x4f03, 0x4e28, 0x4e59, 0x4ec1, 0x4dee, 0x4db6, 0x4dfa, 0x4e6c, 0x4de5, 0x4d40, 0x4dc9, 0x4e59, 0x4d89, 0x4dc7, 0x4da5, 0x4d83, 0x4e48, 0x4e69, 0x4df2, 0x4e0e, 0x4ebb, 0x4e4c, 0x4e39, 0x4e07, 0x4e1c, 0x4e5c, 0x4db9, 0x4e05, 0x4d7f, 0x4d54, 0x4de6, 0x4dca, 0x4df7, 0x4d7c, 0x4e50, 0x4e43, 0x4e69, 0x4da0, 0x4e1d, 0x4e57, 0x4db8, 0x4eb1, 0x4e23, 0x4d6d, 0x4e1c, 0x4d74, 0x4e16, 0x4e3b, 0x4dcc, 0x4d94, 0x4e5b, 0x4e25, 0x4ec5, 0x4d65, 0x4e1c, 0x4d5b, 0x4ded, 0x4e12, 0x4e06, 0x4e1a, 0x4eb6, 0x4de4, 0x4dbf, 0x4e1a, 0x4e3b, 0x4e57, 0x4dff, 0x4dd6, 0x4e6a, 0x4dc5, 0x4e4f, 0x4e81, 0x4d7e, 0x4dc1, 0x4e84, 0x4dd8, 0x4dff, 0x4e2f, 0x4dc2, 0x4db1, 0x4e70, 0x4de1, 0x4de9, 0x4e31, 0x4e11, 0x4e46, 0x4dbf, -0x4daa, 0x4da3, 0x4dcd, 0x4dce, 0x4d97, 0x4d78, 0x4e0a, 0x4eeb, 0x4ddb, 0x4f2f, 0x4dbe, 0x4e55, 0x4eca, 0x4e37, 0x4deb, 0x4d90, 0x4e6f, 0x4dbd, 0x4d88, 0x4e24, 0x4d99, 0x4d4a, 0x4dd8, 0x4ceb, 0x4d9c, 0x4e53, 0x4e45, 0x4d8f, 0x4dc8, 0x4e40, 0x4e47, 0x4dff, 0x4e47, 0x4dba, 0x4e4b, 0x4d96, 0x4dc2, 0x4db6, 0x4d80, 0x4dbc, 0x4d66, 0x4dec, 0x4d6b, 0x4e8e, 0x4e05, 0x4e1c, 0x4d0c, 0x4da3, 0x4e61, 0x4d3a, 0x4e7c, 0x4d5f, 0x4d0d, 0x4db2, 0x4db0, 0x4dec, 0x4dbd, 0x4d72, 0x4d40, 0x4db3, 0x4e06, 0x4e52, 0x4d18, 0x4e65, 0x4d80, 0x4d43, 0x4e0b, 0x4dc6, 0x4e60, 0x4e71, 0x4e0e, 0x4d92, 0x4e0a, 0x4d7c, 0x4dbb, 0x4d6b, 0x4df5, 0x4d64, 0x4d99, 0x4d9a, 0x4de1, 0x4d52, 0x4d93, 0x4de8, 0x4d70, 0x4e12, 0x4db2, 0x4d20, 0x4de8, 0x4df9, 0x4dcb, 0x4e62, 0x4e5e, 0x4dd3, 0x4d3f, 0x4d5a, -0x4d97, 0x4db8, 0x4e07, 0x4d81, 0x4e2e, 0x4db2, 0x4e2a, 0x4f25, 0x4ddf, 0x4f35, 0x4d9b, 0x4e84, 0x4ecf, 0x4df4, 0x4e15, 0x4e10, 0x4e45, 0x4e11, 0x4d9c, 0x4dda, 0x4e85, 0x4d3e, 0x4e4e, 0x4d9c, 0x4de0, 0x4e49, 0x4e53, 0x4d84, 0x4e03, 0x4eb8, 0x4e40, 0x4e82, 0x4e10, 0x4e2e, 0x4e7c, 0x4dd6, 0x4de8, 0x4d6f, 0x4db7, 0x4de3, 0x4e01, 0x4db7, 0x4da6, 0x4e61, 0x4e0a, 0x4e53, 0x4dc8, 0x4df9, 0x4ed6, 0x4d8b, 0x4ef9, 0x4da4, 0x4dd6, 0x4dc9, 0x4db2, 0x4dee, 0x4e8c, 0x4d86, 0x4d9c, 0x4e36, 0x4e13, 0x4ebd, 0x4d11, 0x4e28, 0x4d81, 0x4e22, 0x4e2f, 0x4e4f, 0x4ed6, 0x4e82, 0x4e2f, 0x4e17, 0x4e48, 0x4d87, 0x4e49, 0x4e4e, 0x4e39, 0x4e45, 0x4ddc, 0x4df7, 0x4e29, 0x4df2, 0x4dc2, 0x4eef, 0x4d9b, 0x4df4, 0x4e4a, 0x4d73, 0x4e0f, 0x4e7e, 0x4de6, 0x4e4c, 0x4e43, 0x4e12, 0x4e38, 0x4de6, -0x4dca, 0x4e05, 0x4e41, 0x4da4, 0x4e08, 0x4dc1, 0x4dfa, 0x4ed4, 0x4d4c, 0x4ee9, 0x4dfb, 0x4dd2, 0x4e70, 0x4ddc, 0x4d8e, 0x4dc3, 0x4e7b, 0x4dec, 0x4d8f, 0x4e28, 0x4e1d, 0x4d79, 0x4dde, 0x4db1, 0x4df1, 0x4dd5, 0x4e31, 0x4d3a, 0x4ddd, 0x4e3b, 0x4e47, 0x4df8, 0x4dec, 0x4d7f, 0x4e3c, 0x4d7f, 0x4d7f, 0x4d62, 0x4d46, 0x4dc9, 0x4df7, 0x4de7, 0x4ddf, 0x4e5c, 0x4dc1, 0x4e44, 0x4d43, 0x4db3, 0x4e4d, 0x4dae, 0x4e60, 0x4dbf, 0x4d71, 0x4de0, 0x4dba, 0x4dc1, 0x4e2a, 0x4d6d, 0x4dab, 0x4df8, 0x4de5, 0x4e56, 0x4d64, 0x4dcc, 0x4e01, 0x4dce, 0x4e3a, 0x4e88, 0x4dff, 0x4e6b, 0x4e35, 0x4e05, 0x4de3, 0x4dc4, 0x4e69, 0x4dc4, 0x4de5, 0x4df8, 0x4da5, 0x4e0e, 0x4d96, 0x4dc7, 0x4d53, 0x4ec2, 0x4d82, 0x4ddf, 0x4dac, 0x4d33, 0x4d9b, 0x4e30, 0x4d97, 0x4e3b, 0x4e89, 0x4e5c, 0x4db9, 0x4d9d, -0x4e27, 0x4e5c, 0x4f2b, 0x4e51, 0x4ee2, 0x4e60, 0x4f10, 0x4f9b, 0x4e52, 0x4f9e, 0x4e9d, 0x4e87, 0x4f8a, 0x4e8b, 0x4e8b, 0x4e96, 0x4f19, 0x4f34, 0x4e0a, 0x4ece, 0x4eec, 0x4e27, 0x4ea4, 0x4e3e, 0x4eb1, 0x4e34, 0x4ed1, 0x4ea7, 0x4f40, 0x4f9a, 0x4f51, 0x4e8e, 0x4f25, 0x4ec4, 0x4f12, 0x4ea6, 0x4e7c, 0x4e17, 0x4de8, 0x4e73, 0x4ebf, 0x4e45, 0x4e3c, 0x4f00, 0x4e94, 0x4f3d, 0x4e02, 0x4ea7, 0x4f5b, 0x4eab, 0x4f40, 0x4e4d, 0x4e05, 0x4e79, 0x4e13, 0x4e81, 0x4f20, 0x4e9d, 0x4e6d, 0x4eda, 0x4ec8, 0x4f9e, 0x4e39, 0x4ebb, 0x4de4, 0x4e67, 0x4ed6, 0x4f43, 0x4eef, 0x4f8e, 0x4edd, 0x4e5d, 0x4ebe, 0x4f3b, 0x4f37, 0x4e7a, 0x4ec0, 0x4ecc, 0x4f01, 0x4ef6, 0x4f29, 0x4e9d, 0x4e7a, 0x4ed0, 0x4e93, 0x4ef1, 0x4eb9, 0x4e43, 0x4eca, 0x4f54, 0x4e4a, 0x4e98, 0x4f5d, 0x4f33, 0x4e9e, 0x4e9f, -0x4dd7, 0x4ebb, 0x4e87, 0x4e2d, 0x4ed6, 0x4ed8, 0x4e71, 0x4f2b, 0x4e32, 0x4f42, 0x4eb7, 0x4e64, 0x4f8f, 0x4e1a, 0x4e53, 0x4ec8, 0x4e44, 0x4e5b, 0x4e7e, 0x4e80, 0x4ec2, 0x4e18, 0x4e55, 0x4e2e, 0x4e9e, 0x4ec8, 0x4e5f, 0x4dfb, 0x4e68, 0x4f3b, 0x4e83, 0x4e36, 0x4ec6, 0x4e3e, 0x4ee6, 0x4e26, 0x4e82, 0x4e57, 0x4e3b, 0x4e3d, 0x4e2f, 0x4e84, 0x4e1f, 0x4f3a, 0x4e2c, 0x4ebc, 0x4e1e, 0x4e4b, 0x4f06, 0x4e2a, 0x4f35, 0x4e4a, 0x4dc1, 0x4e5e, 0x4e0d, 0x4e33, 0x4e6b, 0x4daa, 0x4ddc, 0x4e74, 0x4e61, 0x4f4e, 0x4e23, 0x4e9d, 0x4dc1, 0x4df8, 0x4e6c, 0x4ed2, 0x4ea7, 0x4f25, 0x4e7b, 0x4e3e, 0x4e69, 0x4e17, 0x4ed4, 0x4e04, 0x4e81, 0x4e74, 0x4e3a, 0x4edf, 0x4e87, 0x4e5a, 0x4e63, 0x4ea2, 0x4ddd, 0x4eaf, 0x4eac, 0x4db0, 0x4ea1, 0x4efd, 0x4e60, 0x4e88, 0x4df4, 0x4f25, 0x4e13, 0x4e34, -0x4e0d, 0x4dd9, 0x4e1e, 0x4dbd, 0x4e05, 0x4e05, 0x4e9b, 0x4ef7, 0x4e05, 0x4ee9, 0x4e79, 0x4e50, 0x4f3d, 0x4e4d, 0x4e45, 0x4ec1, 0x4eaa, 0x4e11, 0x4da2, 0x4e41, 0x4e50, 0x4df9, 0x4e0e, 0x4dff, 0x4e54, 0x4e44, 0x4e2b, 0x4e1e, 0x4e8f, 0x4ef0, 0x4e44, 0x4e5a, 0x4e65, 0x4e53, 0x4e7c, 0x4e31, 0x4e00, 0x4d7c, 0x4e09, 0x4e2d, 0x4e8c, 0x4e18, 0x4def, 0x4e73, 0x4e1e, 0x4eb6, 0x4d9e, 0x4e23, 0x4eaa, 0x4e62, 0x4ee7, 0x4e4f, 0x4d89, 0x4e3c, 0x4e0f, 0x4e80, 0x4e2e, 0x4e16, 0x4df6, 0x4e79, 0x4e9e, 0x4ef9, 0x4d5f, 0x4e39, 0x4d87, 0x4e04, 0x4eda, 0x4e99, 0x4e75, 0x4f32, 0x4e55, 0x4e47, 0x4e23, 0x4e5a, 0x4eb0, 0x4e39, 0x4e6d, 0x4e3b, 0x4e5c, 0x4e89, 0x4ec6, 0x4e16, 0x4e36, 0x4f0b, 0x4d76, 0x4e1a, 0x4e5b, 0x4dc4, 0x4dfb, 0x4e5b, 0x4e5f, 0x4e8c, 0x4e8b, 0x4e7d, 0x4e14, 0x4df3, -0x4db1, 0x4da2, 0x4e28, 0x4dc6, 0x4e3d, 0x4e08, 0x4df4, 0x4e7e, 0x4db8, 0x4ee4, 0x4e5c, 0x4df9, 0x4eee, 0x4db3, 0x4daf, 0x4e26, 0x4e20, 0x4dee, 0x4df8, 0x4e2e, 0x4e2a, 0x4d7e, 0x4e32, 0x4d94, 0x4e1b, 0x4e49, 0x4e84, 0x4dc4, 0x4dff, 0x4ead, 0x4e55, 0x4e4a, 0x4e04, 0x4e07, 0x4ebb, 0x4dac, 0x4daf, 0x4ded, 0x4d53, 0x4d9a, 0x4dd7, 0x4de6, 0x4d5b, 0x4e3d, 0x4dff, 0x4ea8, 0x4d9d, 0x4da4, 0x4e1e, 0x4d92, 0x4e7a, 0x4d3e, 0x4d57, 0x4db5, 0x4d77, 0x4d96, 0x4e1a, 0x4d7a, 0x4d74, 0x4de0, 0x4dba, 0x4eb6, 0x4d49, 0x4e27, 0x4d55, 0x4dca, 0x4e02, 0x4e83, 0x4e6b, 0x4eaf, 0x4e2b, 0x4de9, 0x4e53, 0x4db5, 0x4e0b, 0x4dd7, 0x4dbe, 0x4df5, 0x4dd0, 0x4dc9, 0x4e66, 0x4d69, 0x4e0e, 0x4e3b, 0x4d50, 0x4dff, 0x4de3, 0x4d65, 0x4dd4, 0x4e0e, 0x4df0, 0x4e52, 0x4ee9, 0x4e3e, 0x4e53, 0x4dbd, -0x4d94, 0x4d90, 0x4e41, 0x4d3c, 0x4de7, 0x4d6d, 0x4dfa, 0x4e97, 0x4de8, 0x4e5c, 0x4dde, 0x4dfe, 0x4e81, 0x4d8a, 0x4d99, 0x4dce, 0x4e82, 0x4de2, 0x4dba, 0x4dab, 0x4dc5, 0x4d4e, 0x4d64, 0x4db5, 0x4d8c, 0x4dcb, 0x4dc9, 0x4d74, 0x4dfa, 0x4e2f, 0x4e29, 0x4db3, 0x4deb, 0x4d7e, 0x4ddd, 0x4d9a, 0x4d6e, 0x4da2, 0x4cdf, 0x4d82, 0x4da5, 0x4dd1, 0x4da7, 0x4e45, 0x4dba, 0x4df1, 0x4d49, 0x4d32, 0x4e97, 0x4d3f, 0x4e88, 0x4d72, 0x4cfe, 0x4dd3, 0x4d33, 0x4d53, 0x4db0, 0x4d6b, 0x4d5f, 0x4e02, 0x4dcb, 0x4e93, 0x4d95, 0x4dc5, 0x4da2, 0x4d86, 0x4ddf, 0x4df4, 0x4dac, 0x4e0d, 0x4dd1, 0x4d3f, 0x4df6, 0x4d42, 0x4e24, 0x4dac, 0x4e2e, 0x4da2, 0x4db6, 0x4df0, 0x4dd6, 0x4d6f, 0x4d6b, 0x4e2f, 0x4d51, 0x4e39, 0x4dfd, 0x4d12, 0x4d9a, 0x4ded, 0x4d3a, 0x4dec, 0x4e1b, 0x4e0d, 0x4dbc, 0x4dad, -0x4d87, 0x4dd5, 0x4e10, 0x4dd0, 0x4e3f, 0x4ddf, 0x4ea2, 0x4ec6, 0x4ddd, 0x4f15, 0x4df0, 0x4e47, 0x4ed0, 0x4dcc, 0x4dfa, 0x4de6, 0x4e44, 0x4dd7, 0x4da0, 0x4e0c, 0x4db8, 0x4d9c, 0x4dde, 0x4dcf, 0x4dfe, 0x4e85, 0x4e7b, 0x4da6, 0x4e87, 0x4e73, 0x4e85, 0x4e39, 0x4de2, 0x4e46, 0x4e55, 0x4dc6, 0x4d80, 0x4d68, 0x4d9e, 0x4e35, 0x4e1c, 0x4e41, 0x4d37, 0x4eab, 0x4e25, 0x4ea0, 0x4dab, 0x4dd5, 0x4e40, 0x4dc4, 0x4ea6, 0x4e0b, 0x4d35, 0x4ddd, 0x4d6f, 0x4dec, 0x4e3e, 0x4d86, 0x4dc7, 0x4e1b, 0x4dd1, 0x4e7d, 0x4d5b, 0x4e56, 0x4d3e, 0x4dc6, 0x4e47, 0x4e41, 0x4deb, 0x4ea3, 0x4e0b, 0x4e1e, 0x4e4f, 0x4d7d, 0x4e69, 0x4e05, 0x4e07, 0x4de1, 0x4dd4, 0x4df4, 0x4e23, 0x4daa, 0x4d5c, 0x4e50, 0x4d8c, 0x4e56, 0x4df2, 0x4d1b, 0x4db1, 0x4e56, 0x4d5c, 0x4e3b, 0x4ea7, 0x4e3d, 0x4dc1, 0x4dce, -0x4dd5, 0x4e1b, 0x4f0a, 0x4d93, 0x4e7e, 0x4e1d, 0x4e8c, 0x4f7b, 0x4df4, 0x4f3f, 0x4e9f, 0x4e5e, 0x4f33, 0x4e21, 0x4e55, 0x4e7b, 0x4ec6, 0x4e75, 0x4e2f, 0x4e95, 0x4ead, 0x4df1, 0x4e00, 0x4e1b, 0x4e6a, 0x4e69, 0x4f05, 0x4dce, 0x4e65, 0x4ecc, 0x4e72, 0x4e86, 0x4ea7, 0x4e4c, 0x4ef1, 0x4e36, 0x4e28, 0x4dd8, 0x4dca, 0x4e83, 0x4e23, 0x4e65, 0x4e7f, 0x4f31, 0x4ebf, 0x4e83, 0x4d66, 0x4e3d, 0x4e9e, 0x4e64, 0x4eba, 0x4e12, 0x4d90, 0x4e34, 0x4e11, 0x4e31, 0x4e89, 0x4de1, 0x4dca, 0x4e9f, 0x4e43, 0x4f58, 0x4dc9, 0x4e96, 0x4e38, 0x4dfa, 0x4e94, 0x4eb1, 0x4ed4, 0x4f1b, 0x4ee2, 0x4e92, 0x4e30, 0x4e86, 0x4eb1, 0x4e4e, 0x4ea0, 0x4e74, 0x4e52, 0x4ebc, 0x4edd, 0x4dd8, 0x4e1d, 0x4ee2, 0x4df0, 0x4eb0, 0x4e12, 0x4dd4, 0x4e3d, 0x4e9e, 0x4e31, 0x4e44, 0x4ecb, 0x4ebb, 0x4e2c, 0x4e6d, -0x4dc2, 0x4e12, 0x4e1c, 0x4de3, 0x4dfc, 0x4df2, 0x4e09, 0x4ed4, 0x4e52, 0x4f49, 0x4e69, 0x4dc9, 0x4f08, 0x4e73, 0x4e21, 0x4e51, 0x4e85, 0x4e2d, 0x4da5, 0x4e0c, 0x4e09, 0x4d7b, 0x4de6, 0x4dec, 0x4e9e, 0x4e06, 0x4ea8, 0x4da2, 0x4e74, 0x4eac, 0x4e13, 0x4e45, 0x4e43, 0x4dea, 0x4e85, 0x4dbb, 0x4df5, 0x4dc4, 0x4d87, 0x4e18, 0x4de4, 0x4e20, 0x4dd5, 0x4ebd, 0x4e32, 0x4e40, 0x4de9, 0x4e07, 0x4e5a, 0x4de1, 0x4f32, 0x4e22, 0x4d57, 0x4e23, 0x4ded, 0x4dd4, 0x4e11, 0x4dd4, 0x4dfd, 0x4e5d, 0x4e9f, 0x4ed0, 0x4d86, 0x4ea8, 0x4d69, 0x4de3, 0x4e2b, 0x4ec8, 0x4e3c, 0x4eca, 0x4e2f, 0x4de7, 0x4e3e, 0x4e01, 0x4e59, 0x4df2, 0x4e82, 0x4e3a, 0x4e45, 0x4e91, 0x4e9a, 0x4dc0, 0x4e61, 0x4e8d, 0x4d51, 0x4e31, 0x4dc1, 0x4d96, 0x4dad, 0x4e37, 0x4e2b, 0x4e8d, 0x4e69, 0x4dfe, 0x4e37, 0x4ddd, -0x4e19, 0x4e6d, 0x4ec5, 0x4e2a, 0x4e9c, 0x4e04, 0x4ec6, 0x4f61, 0x4e1f, 0x4f72, 0x4e4d, 0x4e51, 0x4f2c, 0x4e6a, 0x4e48, 0x4e99, 0x4edc, 0x4dd0, 0x4e2e, 0x4eb1, 0x4e52, 0x4de8, 0x4e5b, 0x4e0a, 0x4e2c, 0x4e35, 0x4ef2, 0x4dd0, 0x4eff, 0x4f6d, 0x4ef2, 0x4eca, 0x4e90, 0x4e6e, 0x4ece, 0x4e89, 0x4dfc, 0x4e16, 0x4dcd, 0x4eb7, 0x4e79, 0x4ee7, 0x4e2e, 0x4ec0, 0x4e93, 0x4ec0, 0x4dc4, 0x4e5a, 0x4f28, 0x4e17, 0x4efc, 0x4e44, 0x4dbc, 0x4e77, 0x4df3, 0x4eda, 0x4ec2, 0x4e34, 0x4e15, 0x4e78, 0x4eb2, 0x4f87, 0x4da1, 0x4f1e, 0x4dcb, 0x4e72, 0x4eea, 0x4e8c, 0x4edb, 0x4f22, 0x4ecd, 0x4e54, 0x4eb8, 0x4e87, 0x4ef0, 0x4ea3, 0x4e57, 0x4e79, 0x4e85, 0x4e82, 0x4ebb, 0x4e3c, 0x4e29, 0x4ec4, 0x4e06, 0x4ea8, 0x4eb7, 0x4dc5, 0x4e31, 0x4e8a, 0x4e72, 0x4eac, 0x4ed9, 0x4f1d, 0x4e7e, 0x4e68, -0x4e35, 0x4dd4, 0x4e38, 0x4dda, 0x4e05, 0x4db1, 0x4e5a, 0x4f1a, 0x4e2b, 0x4f39, 0x4e30, 0x4e96, 0x4ecf, 0x4df6, 0x4dd0, 0x4ddc, 0x4e5e, 0x4ddc, 0x4d6c, 0x4e50, 0x4dd5, 0x4dc0, 0x4e05, 0x4d65, 0x4e16, 0x4e46, 0x4e57, 0x4dc0, 0x4e5c, 0x4ed2, 0x4e79, 0x4e11, 0x4e1a, 0x4e14, 0x4e85, 0x4e2f, 0x4dc9, 0x4dd8, 0x4d4c, 0x4ddb, 0x4e37, 0x4e35, 0x4dba, 0x4eb9, 0x4dee, 0x4ed1, 0x4d7c, 0x4dfc, 0x4e86, 0x4d78, 0x4e88, 0x4e1e, 0x4d54, 0x4dc0, 0x4da2, 0x4e0f, 0x4e83, 0x4db6, 0x4dc1, 0x4e78, 0x4e0a, 0x4e34, 0x4d73, 0x4e83, 0x4d8c, 0x4dce, 0x4e55, 0x4e11, 0x4e83, 0x4e43, 0x4e7c, 0x4e05, 0x4e93, 0x4ddf, 0x4e3f, 0x4dc4, 0x4e19, 0x4e6c, 0x4db9, 0x4e54, 0x4e9e, 0x4da3, 0x4dbe, 0x4e6a, 0x4db0, 0x4e1a, 0x4e57, 0x4d7b, 0x4e6e, 0x4eac, 0x4da4, 0x4e9a, 0x4e6c, 0x4e7f, 0x4de6, 0x4e0c, -0x4e70, 0x4e5d, 0x4ea9, 0x4e2c, 0x4ee1, 0x4e13, 0x4e9d, 0x4f97, 0x4e21, 0x4ff6, 0x4e48, 0x4e57, 0x4f7e, 0x4e75, 0x4e56, 0x4e79, 0x4f65, 0x4e3f, 0x4da0, 0x4e90, 0x4edc, 0x4e8e, 0x4e4d, 0x4e51, 0x4e9c, 0x4e2a, 0x4e9e, 0x4e30, 0x4e4c, 0x4edf, 0x4ef8, 0x4e91, 0x4eb6, 0x4e71, 0x4ead, 0x4e48, 0x4e87, 0x4de3, 0x4df8, 0x4e29, 0x4e76, 0x4ebb, 0x4e35, 0x4ef6, 0x4e9e, 0x4fa9, 0x4dd5, 0x4e21, 0x4ec4, 0x4e4a, 0x4f80, 0x4e0d, 0x4e07, 0x4e07, 0x4e45, 0x4e40, 0x4ef9, 0x4e38, 0x4dd3, 0x4e67, 0x4e85, 0x4ecf, 0x4dde, 0x4eaf, 0x4e1a, 0x4e83, 0x4e6d, 0x4f2c, 0x4ee4, 0x4eab, 0x4e78, 0x4e42, 0x4e9f, 0x4e30, 0x4e70, 0x4e27, 0x4eee, 0x4e55, 0x4e96, 0x4e9f, 0x4e9c, 0x4e3e, 0x4e46, 0x4f72, 0x4e1a, 0x4e80, 0x4eb9, 0x4e04, 0x4e5e, 0x4ee7, 0x4e43, 0x4ec0, 0x4f4b, 0x4e59, 0x4e76, 0x4e27, -0x4dd1, 0x4dbf, 0x4ec4, 0x4df3, 0x4e12, 0x4e04, 0x4e47, 0x4f88, 0x4e3e, 0x4f9c, 0x4e70, 0x4eb7, 0x4f21, 0x4e20, 0x4e02, 0x4ec1, 0x4f47, 0x4e07, 0x4e00, 0x4e95, 0x4e30, 0x4dd6, 0x4dee, 0x4d9d, 0x4e09, 0x4e05, 0x4ec7, 0x4ddb, 0x4e57, 0x4f16, 0x4e8d, 0x4e60, 0x4e58, 0x4e2e, 0x4ed0, 0x4df3, 0x4e32, 0x4df6, 0x4d99, 0x4def, 0x4e67, 0x4e3d, 0x4e21, 0x4f1d, 0x4e24, 0x4ef2, 0x4da9, 0x4e02, 0x4eea, 0x4e2d, 0x4f3d, 0x4e61, 0x4de9, 0x4e51, 0x4db4, 0x4e1e, 0x4e8c, 0x4e23, 0x4dc5, 0x4e4f, 0x4e56, 0x4f11, 0x4d7f, 0x4eda, 0x4de8, 0x4e06, 0x4e52, 0x4e14, 0x4e97, 0x4f22, 0x4e29, 0x4e43, 0x4e97, 0x4e37, 0x4e58, 0x4e4c, 0x4e7f, 0x4e69, 0x4e35, 0x4e48, 0x4efe, 0x4de6, 0x4e23, 0x4e4f, 0x4df0, 0x4e55, 0x4e59, 0x4daf, 0x4e32, 0x4e56, 0x4dea, 0x4ea4, 0x4e72, 0x4e7f, 0x4e22, 0x4e13, -0x4d97, 0x4d55, 0x4d67, 0x4d11, 0x4d7c, 0x4d95, 0x4e13, 0x4ea2, 0x4e15, 0x4ef3, 0x4db7, 0x4db6, 0x4eb7, 0x4d99, 0x4e38, 0x4d63, 0x4df6, 0x4da1, 0x4d6d, 0x4d9c, 0x4dda, 0x4d83, 0x4db0, 0x4d74, 0x4db4, 0x4e71, 0x4e1a, 0x4d50, 0x4dec, 0x4e26, 0x4df3, 0x4dd0, 0x4ddf, 0x4d85, 0x4dfb, 0x4da2, 0x4ddc, 0x4d82, 0x4d45, 0x4d6e, 0x4d55, 0x4d8f, 0x4d1e, 0x4de2, 0x4d78, 0x4e5d, 0x4d4b, 0x4da0, 0x4e24, 0x4d4a, 0x4e82, 0x4dc8, 0x4d13, 0x4d73, 0x4d4e, 0x4d5c, 0x4de9, 0x4d89, 0x4d71, 0x4db5, 0x4e0d, 0x4e4b, 0x4d15, 0x4e2f, 0x4d88, 0x4da4, 0x4de9, 0x4ded, 0x4e35, 0x4e27, 0x4dcb, 0x4d4c, 0x4dc5, 0x4d59, 0x4de3, 0x4da6, 0x4e7e, 0x4dfa, 0x4ddc, 0x4dfc, 0x4e23, 0x4d71, 0x4d5d, 0x4e2a, 0x4d4c, 0x4daa, 0x4d9c, 0x4cff, 0x4ddd, 0x4df5, 0x4d8f, 0x4dd1, 0x4de1, 0x4d5f, 0x4e4c, 0x4d88, -0x4d87, 0x4dde, 0x4e24, 0x4dd2, 0x4e20, 0x4e17, 0x4e1d, 0x4f2c, 0x4d91, 0x4f09, 0x4e23, 0x4e27, 0x4ec8, 0x4e1a, 0x4dcd, 0x4e00, 0x4e75, 0x4d91, 0x4d53, 0x4db2, 0x4e16, 0x4dac, 0x4e22, 0x4dfb, 0x4e20, 0x4dee, 0x4e47, 0x4d7a, 0x4e7b, 0x4e9e, 0x4dff, 0x4e26, 0x4e2e, 0x4dc3, 0x4ec2, 0x4da2, 0x4dca, 0x4d87, 0x4da3, 0x4e18, 0x4dd7, 0x4e50, 0x4d98, 0x4e92, 0x4e26, 0x4e14, 0x4d10, 0x4e33, 0x4e59, 0x4db0, 0x4e95, 0x4da1, 0x4d9b, 0x4df6, 0x4d2d, 0x4deb, 0x4e1b, 0x4d76, 0x4da5, 0x4df7, 0x4dd6, 0x4ea5, 0x4d40, 0x4e65, 0x4d83, 0x4e04, 0x4df1, 0x4e6e, 0x4e48, 0x4ee2, 0x4e35, 0x4da7, 0x4da9, 0x4dd4, 0x4e79, 0x4db5, 0x4e37, 0x4dc8, 0x4d68, 0x4e17, 0x4e90, 0x4d82, 0x4dec, 0x4dfe, 0x4d30, 0x4d85, 0x4e2a, 0x4d6d, 0x4de9, 0x4e64, 0x4da7, 0x4e1c, 0x4e59, 0x4e02, 0x4e09, 0x4d96, -0x4df9, 0x4e01, 0x4e8b, 0x4e85, 0x4ed5, 0x4e7a, 0x4e85, 0x4eed, 0x4e77, 0x4f1c, 0x4e7f, 0x4eb9, 0x4f54, 0x4e45, 0x4eaa, 0x4e35, 0x4ec6, 0x4e41, 0x4d94, 0x4ec8, 0x4e7b, 0x4e37, 0x4e55, 0x4df2, 0x4e9f, 0x4e53, 0x4ef9, 0x4e48, 0x4ebc, 0x4ee7, 0x4eb1, 0x4e74, 0x4ea0, 0x4ddc, 0x4e90, 0x4e52, 0x4e1c, 0x4de6, 0x4dbe, 0x4e24, 0x4e5c, 0x4e12, 0x4dc0, 0x4ebd, 0x4e07, 0x4f14, 0x4e16, 0x4e15, 0x4f3c, 0x4e16, 0x4f0c, 0x4e40, 0x4d4d, 0x4e9d, 0x4dff, 0x4dbc, 0x4e61, 0x4e0d, 0x4e13, 0x4e52, 0x4e85, 0x4f06, 0x4e05, 0x4e79, 0x4d69, 0x4dcf, 0x4ed8, 0x4e6b, 0x4e76, 0x4f03, 0x4e57, 0x4e66, 0x4edb, 0x4e8f, 0x4e75, 0x4e3c, 0x4e88, 0x4e9f, 0x4e6d, 0x4e35, 0x4ef2, 0x4e30, 0x4e50, 0x4e68, 0x4df4, 0x4e6b, 0x4e3d, 0x4da2, 0x4e5d, 0x4ed7, 0x4e33, 0x4ec0, 0x4f16, 0x4eb7, 0x4e7a, 0x4e3a, -0x4db5, 0x4dff, 0x4e06, 0x4e03, 0x4e6e, 0x4e3e, 0x4e52, 0x4edb, 0x4e09, 0x4f15, 0x4e4b, 0x4e9c, 0x4f54, 0x4d9e, 0x4dbe, 0x4e42, 0x4e0c, 0x4e1e, 0x4dd6, 0x4e41, 0x4e17, 0x4d7b, 0x4de5, 0x4deb, 0x4df3, 0x4e40, 0x4e41, 0x4e02, 0x4e89, 0x4f23, 0x4e46, 0x4e53, 0x4e20, 0x4e27, 0x4ee9, 0x4df9, 0x4e15, 0x4e38, 0x4df4, 0x4e14, 0x4e1a, 0x4e01, 0x4db3, 0x4ebc, 0x4d8c, 0x4e77, 0x4d53, 0x4dbd, 0x4ed1, 0x4dde, 0x4eb1, 0x4dd4, 0x4db1, 0x4e08, 0x4d6e, 0x4da6, 0x4e43, 0x4d66, 0x4dbe, 0x4e1d, 0x4e10, 0x4f3f, 0x4d2a, 0x4e1f, 0x4da6, 0x4dca, 0x4e6b, 0x4e59, 0x4e81, 0x4f21, 0x4dfd, 0x4e23, 0x4e33, 0x4e48, 0x4eb9, 0x4e08, 0x4dd9, 0x4e5c, 0x4df8, 0x4e6e, 0x4e16, 0x4dca, 0x4e50, 0x4e5c, 0x4d71, 0x4e32, 0x4e43, 0x4d64, 0x4dfe, 0x4ee3, 0x4d83, 0x4e66, 0x4e3d, 0x4eeb, 0x4e28, 0x4ddf, -0x4e3e, 0x4e49, 0x4ee3, 0x4e3f, 0x4ef6, 0x4eac, 0x4ea8, 0x4f54, 0x4ea4, 0x4fdf, 0x4e91, 0x4eb4, 0x4f8a, 0x4e75, 0x4e81, 0x4e8e, 0x4f45, 0x4e2f, 0x4e26, 0x4edd, 0x4ed4, 0x4e5b, 0x4e64, 0x4de7, 0x4e6b, 0x4e8b, 0x4f22, 0x4e3b, 0x4e8e, 0x4f34, 0x4ed1, 0x4edd, 0x4eaf, 0x4e27, 0x4ef4, 0x4e73, 0x4ea4, 0x4e3b, 0x4da0, 0x4e2d, 0x4e7c, 0x4e81, 0x4e2e, 0x4f31, 0x4e48, 0x4f48, 0x4e39, 0x4e7c, 0x4f0f, 0x4df3, 0x4f12, 0x4e19, 0x4dcb, 0x4e4f, 0x4e16, 0x4dea, 0x4eb6, 0x4e0b, 0x4e3c, 0x4ea1, 0x4e48, 0x4f80, 0x4dd3, 0x4ed8, 0x4e21, 0x4e47, 0x4f42, 0x4f09, 0x4eec, 0x4ef0, 0x4e6e, 0x4ec3, 0x4ed3, 0x4e99, 0x4ee3, 0x4e24, 0x4ebc, 0x4eb2, 0x4e78, 0x4e8a, 0x4f01, 0x4e89, 0x4e67, 0x4ed7, 0x4e1d, 0x4e37, 0x4e9f, 0x4e03, 0x4e95, 0x4f02, 0x4df4, 0x4efe, 0x4f55, 0x4ee1, 0x4eb7, 0x4e4f, -0x4d92, 0x4dde, 0x4e21, 0x4d5d, 0x4e90, 0x4e15, 0x4e89, 0x4ea3, 0x4deb, 0x4f4c, 0x4ec4, 0x4e70, 0x4eda, 0x4e2f, 0x4e38, 0x4e19, 0x4ecf, 0x4e55, 0x4dbc, 0x4e20, 0x4e52, 0x4de4, 0x4de0, 0x4e1e, 0x4db4, 0x4e72, 0x4e1b, 0x4dd5, 0x4e30, 0x4ea3, 0x4e57, 0x4ea3, 0x4e27, 0x4e31, 0x4ede, 0x4dd0, 0x4df6, 0x4e00, 0x4dca, 0x4e1c, 0x4e49, 0x4e2b, 0x4ddc, 0x4eb6, 0x4e62, 0x4ed8, 0x4d69, 0x4e49, 0x4eb5, 0x4de9, 0x4eeb, 0x4df2, 0x4d4c, 0x4e79, 0x4dba, 0x4e24, 0x4e5b, 0x4dd0, 0x4e06, 0x4e3e, 0x4e41, 0x4f2c, 0x4dbb, 0x4e7a, 0x4dff, 0x4d9f, 0x4e54, 0x4e51, 0x4e3a, 0x4f00, 0x4e88, 0x4e3d, 0x4eaa, 0x4e47, 0x4eb3, 0x4e57, 0x4e32, 0x4e26, 0x4e80, 0x4efc, 0x4f49, 0x4e0b, 0x4dfb, 0x4e9b, 0x4d69, 0x4e31, 0x4deb, 0x4d4e, 0x4de8, 0x4e9a, 0x4e12, 0x4e74, 0x4e6a, 0x4e94, 0x4e34, 0x4de3, -0x4de1, 0x4e39, 0x4e47, 0x4de2, 0x4e53, 0x4e02, 0x4e7e, 0x4ec5, 0x4e01, 0x4f33, 0x4e30, 0x4dfc, 0x4f1f, 0x4e5c, 0x4e28, 0x4e30, 0x4ea0, 0x4e23, 0x4dd5, 0x4e19, 0x4e43, 0x4dc9, 0x4e8f, 0x4dd0, 0x4e3e, 0x4e3e, 0x4e9a, 0x4dd4, 0x4e31, 0x4f06, 0x4e76, 0x4e21, 0x4e7f, 0x4e1f, 0x4eb7, 0x4e0c, 0x4dde, 0x4dc8, 0x4de7, 0x4dfe, 0x4e10, 0x4e2b, 0x4ded, 0x4edf, 0x4e37, 0x4e72, 0x4dec, 0x4e3a, 0x4ebb, 0x4ddf, 0x4ec0, 0x4dbe, 0x4d1e, 0x4e87, 0x4dc6, 0x4e0b, 0x4e5a, 0x4de7, 0x4dcd, 0x4e96, 0x4e66, 0x4eda, 0x4d77, 0x4e4a, 0x4da4, 0x4df5, 0x4e8d, 0x4e4c, 0x4e68, 0x4ede, 0x4e5d, 0x4dd1, 0x4e06, 0x4e2d, 0x4e0c, 0x4e46, 0x4e5e, 0x4e15, 0x4de8, 0x4e6c, 0x4e54, 0x4daa, 0x4df4, 0x4ed0, 0x4d80, 0x4e1a, 0x4df9, 0x4dcb, 0x4dee, 0x4e1c, 0x4e17, 0x4e5c, 0x4e8c, 0x4e33, 0x4dd3, 0x4e27, -0x4d34, 0x4dbb, 0x4e7d, 0x4d47, 0x4dfd, 0x4d0b, 0x4ddc, 0x4e68, 0x4dc6, 0x4ecd, 0x4d9c, 0x4d7d, 0x4ee0, 0x4d69, 0x4ded, 0x4dca, 0x4e3c, 0x4dcd, 0x4d5e, 0x4dbf, 0x4e4c, 0x4db0, 0x4db2, 0x4d97, 0x4da9, 0x4d9f, 0x4e43, 0x4d2a, 0x4dab, 0x4e3d, 0x4e06, 0x4dd4, 0x4daa, 0x4d79, 0x4de6, 0x4de1, 0x4e01, 0x4d62, 0x4d05, 0x4dc7, 0x4ea2, 0x4db4, 0x4d8b, 0x4e6e, 0x4ddd, 0x4e74, 0x4d00, 0x4d9a, 0x4e77, 0x4ddc, 0x4e8b, 0x4dd1, 0x4ccc, 0x4e3f, 0x4d93, 0x4e15, 0x4e91, 0x4de6, 0x4d2c, 0x4e2d, 0x4e02, 0x4ea1, 0x4daf, 0x4e3f, 0x4d8b, 0x4db9, 0x4dde, 0x4e0e, 0x4de3, 0x4e50, 0x4e05, 0x4d89, 0x4e03, 0x4e13, 0x4e4e, 0x4d9c, 0x4df4, 0x4e2d, 0x4df6, 0x4e00, 0x4df1, 0x4ddd, 0x4d7e, 0x4e68, 0x4d6c, 0x4e07, 0x4dca, 0x4d0b, 0x4dba, 0x4dde, 0x4e18, 0x4db6, 0x4dc8, 0x4e2b, 0x4dfa, 0x4d96, -0x4d85, 0x4dc7, 0x4e03, 0x4dc7, 0x4ddd, 0x4dce, 0x4e82, 0x4f1b, 0x4e5b, 0x4f6b, 0x4ec1, 0x4e3e, 0x4f42, 0x4e4a, 0x4e5e, 0x4e3c, 0x4e55, 0x4e43, 0x4dbe, 0x4e0d, 0x4e30, 0x4d9f, 0x4e29, 0x4df5, 0x4e4f, 0x4e49, 0x4e01, 0x4dc1, 0x4e7c, 0x4e7f, 0x4e9d, 0x4e1b, 0x4e00, 0x4e55, 0x4e85, 0x4e25, 0x4e0b, 0x4da9, 0x4da2, 0x4e0e, 0x4e49, 0x4e9b, 0x4ded, 0x4e7f, 0x4df3, 0x4ea5, 0x4d68, 0x4dd6, 0x4ec1, 0x4db5, 0x4ed0, 0x4e11, 0x4d68, 0x4e0c, 0x4e37, 0x4e5f, 0x4e8a, 0x4d98, 0x4e15, 0x4e34, 0x4e33, 0x4ef1, 0x4dc1, 0x4e90, 0x4dd5, 0x4dfb, 0x4e50, 0x4eb3, 0x4ebf, 0x4f41, 0x4e9b, 0x4e12, 0x4e83, 0x4df5, 0x4e9e, 0x4e2f, 0x4e5c, 0x4dfd, 0x4e64, 0x4ea9, 0x4ec7, 0x4e31, 0x4e1b, 0x4eb6, 0x4ddc, 0x4e68, 0x4e72, 0x4d96, 0x4e27, 0x4e93, 0x4dd6, 0x4e70, 0x4e8a, 0x4e37, 0x4e0b, 0x4e0e, -0x4e2a, 0x4db0, 0x4e2a, 0x4d72, 0x4dbf, 0x4e19, 0x4e05, 0x4ea8, 0x4dfa, 0x4eed, 0x4e02, 0x4e06, 0x4e93, 0x4de1, 0x4e4e, 0x4da8, 0x4e27, 0x4d5d, 0x4dc5, 0x4e0c, 0x4e4f, 0x4e0a, 0x4dc2, 0x4da0, 0x4db7, 0x4ddf, 0x4e72, 0x4dc6, 0x4e8d, 0x4e41, 0x4e66, 0x4e35, 0x4dc7, 0x4e21, 0x4e2d, 0x4df3, 0x4df3, 0x4d7e, 0x4da9, 0x4e2e, 0x4e07, 0x4ded, 0x4d9d, 0x4e6c, 0x4e27, 0x4ec2, 0x4d98, 0x4e01, 0x4e73, 0x4d6e, 0x4ed1, 0x4d9e, 0x4d36, 0x4de8, 0x4da2, 0x4e1c, 0x4dcb, 0x4de2, 0x4d8c, 0x4e31, 0x4e44, 0x4eee, 0x4d69, 0x4dd4, 0x4d7e, 0x4de5, 0x4e35, 0x4e4f, 0x4e55, 0x4e9c, 0x4e58, 0x4da4, 0x4e09, 0x4dd2, 0x4e27, 0x4dec, 0x4e42, 0x4e28, 0x4e50, 0x4e66, 0x4e37, 0x4e51, 0x4dd0, 0x4ebe, 0x4d62, 0x4e19, 0x4e4e, 0x4d5a, 0x4e12, 0x4e5d, 0x4ddc, 0x4e4c, 0x4e8f, 0x4e44, 0x4e84, 0x4dbe, -0x4d61, 0x4dfd, 0x4ded, 0x4ddc, 0x4e50, 0x4d9c, 0x4e71, 0x4e90, 0x4e16, 0x4f8b, 0x4e5d, 0x4e68, 0x4f60, 0x4e08, 0x4e2a, 0x4e27, 0x4f17, 0x4e21, 0x4d68, 0x4e1d, 0x4dea, 0x4de6, 0x4dd9, 0x4d88, 0x4e27, 0x4e43, 0x4e60, 0x4da5, 0x4e57, 0x4f23, 0x4e7d, 0x4e5f, 0x4e69, 0x4dfe, 0x4ebf, 0x4d9b, 0x4e4f, 0x4de4, 0x4d8e, 0x4dfa, 0x4e03, 0x4e22, 0x4df2, 0x4e90, 0x4e18, 0x4e72, 0x4cf7, 0x4dfe, 0x4e7e, 0x4dfa, 0x4e98, 0x4dd4, 0x4d98, 0x4e42, 0x4de0, 0x4e02, 0x4ec0, 0x4dcb, 0x4d4f, 0x4e5a, 0x4df3, 0x4f15, 0x4d77, 0x4e51, 0x4da6, 0x4e02, 0x4de0, 0x4e2d, 0x4ea4, 0x4e88, 0x4dec, 0x4df1, 0x4e0a, 0x4e5a, 0x4e9c, 0x4e02, 0x4df8, 0x4e2c, 0x4e4a, 0x4e9a, 0x4e7b, 0x4d92, 0x4e1c, 0x4e88, 0x4ddb, 0x4e52, 0x4e18, 0x4d6c, 0x4dde, 0x4eb1, 0x4dc8, 0x4e2d, 0x4e24, 0x4df0, 0x4dea, 0x4e1e, -0x4daf, 0x4da3, 0x4e3a, 0x4dec, 0x4e70, 0x4d93, 0x4e3a, 0x4e83, 0x4df9, 0x4efd, 0x4e07, 0x4e51, 0x4f5d, 0x4dde, 0x4e0b, 0x4dfc, 0x4e45, 0x4ddc, 0x4d75, 0x4dc9, 0x4df3, 0x4d8d, 0x4de0, 0x4da4, 0x4e37, 0x4e7a, 0x4e46, 0x4dc8, 0x4e2e, 0x4ebd, 0x4e27, 0x4e67, 0x4e3e, 0x4e2f, 0x4e5f, 0x4d98, 0x4e5f, 0x4d6e, 0x4da8, 0x4dc7, 0x4dd5, 0x4e31, 0x4ddb, 0x4e89, 0x4de0, 0x4e73, 0x4d87, 0x4dd9, 0x4ea2, 0x4dae, 0x4e92, 0x4dc9, 0x4d4f, 0x4df1, 0x4e02, 0x4df1, 0x4e69, 0x4de0, 0x4d7f, 0x4e39, 0x4dc3, 0x4e99, 0x4d2f, 0x4e69, 0x4d99, 0x4d5a, 0x4e3d, 0x4e3b, 0x4e74, 0x4eac, 0x4e2d, 0x4e43, 0x4e44, 0x4e36, 0x4e2d, 0x4dc2, 0x4e43, 0x4e3a, 0x4e22, 0x4de6, 0x4e76, 0x4d64, 0x4e25, 0x4e7c, 0x4dc2, 0x4e51, 0x4daa, 0x4d57, 0x4e4f, 0x4e55, 0x4db5, 0x4df2, 0x4e66, 0x4e42, 0x4e18, 0x4e30, -0x4df6, 0x4e52, 0x4e8b, 0x4da7, 0x4e2b, 0x4e27, 0x4e8a, 0x4f5e, 0x4e20, 0x4fd0, 0x4e78, 0x4ed1, 0x4ef4, 0x4e3b, 0x4e31, 0x4e7c, 0x4ec6, 0x4de8, 0x4e00, 0x4e9b, 0x4e95, 0x4df6, 0x4e8f, 0x4e58, 0x4e3b, 0x4e7a, 0x4ea5, 0x4e09, 0x4ea0, 0x4f19, 0x4e5c, 0x4e85, 0x4e5f, 0x4e71, 0x4e94, 0x4e66, 0x4e34, 0x4dfd, 0x4ddc, 0x4e1d, 0x4e27, 0x4e64, 0x4e43, 0x4eb2, 0x4e7d, 0x4f30, 0x4e1a, 0x4e05, 0x4f21, 0x4dde, 0x4f53, 0x4e6f, 0x4e0a, 0x4e5e, 0x4dd2, 0x4e50, 0x4ee9, 0x4e05, 0x4dab, 0x4e4b, 0x4eb3, 0x4f2d, 0x4e0a, 0x4ec8, 0x4dbf, 0x4e3f, 0x4eca, 0x4ec0, 0x4ed5, 0x4f2c, 0x4e9c, 0x4e3d, 0x4ebc, 0x4e31, 0x4e9c, 0x4e33, 0x4e4e, 0x4e9c, 0x4e15, 0x4edc, 0x4ee4, 0x4e68, 0x4dd4, 0x4ef6, 0x4de9, 0x4e52, 0x4ebb, 0x4d9b, 0x4e7b, 0x4f28, 0x4e7d, 0x4e9c, 0x4e77, 0x4e80, 0x4e9f, 0x4e17, -0x4e60, 0x4e53, 0x4e8b, 0x4e28, 0x4e69, 0x4e47, 0x4e69, 0x4f88, 0x4dfc, 0x4f2c, 0x4e91, 0x4e75, 0x4f10, 0x4ecc, 0x4deb, 0x4dfa, 0x4e6d, 0x4e37, 0x4e21, 0x4e5c, 0x4ebd, 0x4dc5, 0x4e7f, 0x4e47, 0x4e82, 0x4e61, 0x4ea7, 0x4df0, 0x4eb8, 0x4f35, 0x4eac, 0x4ea1, 0x4f06, 0x4e15, 0x4ea4, 0x4df5, 0x4e63, 0x4de8, 0x4dd8, 0x4e0d, 0x4e25, 0x4e7f, 0x4e50, 0x4e90, 0x4e3d, 0x4ecd, 0x4dad, 0x4e6c, 0x4f1a, 0x4dd8, 0x4f33, 0x4e40, 0x4dfb, 0x4e3e, 0x4db5, 0x4e5f, 0x4eeb, 0x4e34, 0x4dda, 0x4e80, 0x4ecc, 0x4ed4, 0x4db3, 0x4e12, 0x4d87, 0x4e52, 0x4e2f, 0x4ed6, 0x4e9c, 0x4f17, 0x4e5e, 0x4e12, 0x4e48, 0x4e31, 0x4e88, 0x4e64, 0x4e44, 0x4e23, 0x4e16, 0x4ea3, 0x4e98, 0x4e0a, 0x4de2, 0x4ebc, 0x4dfc, 0x4e22, 0x4e5b, 0x4dd5, 0x4e85, 0x4ea4, 0x4e42, 0x4e4f, 0x4ea1, 0x4e2d, 0x4e44, 0x4d7d, -0x4db5, 0x4dad, 0x4e2a, 0x4d31, 0x4e06, 0x4dbc, 0x4e4e, 0x4e78, 0x4d7e, 0x4ea3, 0x4dc2, 0x4db8, 0x4ec4, 0x4daa, 0x4e42, 0x4de2, 0x4e01, 0x4dac, 0x4dbc, 0x4e00, 0x4da6, 0x4d71, 0x4e01, 0x4dd2, 0x4d92, 0x4db6, 0x4ec5, 0x4d54, 0x4e7b, 0x4e3f, 0x4e0b, 0x4dfc, 0x4e05, 0x4d6c, 0x4e96, 0x4d90, 0x4dae, 0x4d2d, 0x4d7c, 0x4dc9, 0x4d91, 0x4dcc, 0x4dab, 0x4e48, 0x4df2, 0x4e26, 0x4da6, 0x4dd1, 0x4e7d, 0x4dc3, 0x4eab, 0x4e04, 0x4d1f, 0x4dcb, 0x4db2, 0x4da9, 0x4dd1, 0x4d8c, 0x4d8d, 0x4df2, 0x4e1c, 0x4ef9, 0x4d3c, 0x4e0a, 0x4d23, 0x4d8f, 0x4e02, 0x4e27, 0x4e29, 0x4ea2, 0x4e10, 0x4dc6, 0x4de3, 0x4db2, 0x4e61, 0x4df7, 0x4df5, 0x4e25, 0x4de6, 0x4e46, 0x4e0f, 0x4dc8, 0x4d8f, 0x4e3c, 0x4d4e, 0x4ddd, 0x4df1, 0x4cfa, 0x4e06, 0x4e72, 0x4de3, 0x4dda, 0x4df9, 0x4e24, 0x4da8, 0x4d7f, -0x4d8f, 0x4d95, 0x4e5a, 0x4dbc, 0x4ded, 0x4daf, 0x4e1c, 0x4eea, 0x4db3, 0x4ee9, 0x4e7d, 0x4dd2, 0x4e60, 0x4df6, 0x4dfd, 0x4e2d, 0x4e5d, 0x4df0, 0x4db2, 0x4dde, 0x4de1, 0x4d4e, 0x4dd9, 0x4db6, 0x4de8, 0x4dcd, 0x4dff, 0x4d63, 0x4dee, 0x4e75, 0x4e5d, 0x4dfd, 0x4e30, 0x4d88, 0x4e6f, 0x4dc4, 0x4d8b, 0x4d90, 0x4d4e, 0x4dc2, 0x4e07, 0x4e3e, 0x4d82, 0x4e79, 0x4da7, 0x4de0, 0x4d1a, 0x4d8a, 0x4e91, 0x4da7, 0x4e5c, 0x4dcc, 0x4d9d, 0x4df7, 0x4d69, 0x4dee, 0x4e05, 0x4da3, 0x4d41, 0x4e2d, 0x4e13, 0x4ec4, 0x4cf6, 0x4e41, 0x4dc4, 0x4dad, 0x4d96, 0x4e74, 0x4e66, 0x4e4b, 0x4df8, 0x4da1, 0x4dbe, 0x4ddd, 0x4e12, 0x4d81, 0x4da9, 0x4dba, 0x4df4, 0x4dfb, 0x4e53, 0x4dbb, 0x4d79, 0x4e13, 0x4d93, 0x4dfc, 0x4da8, 0x4d6e, 0x4ddb, 0x4dee, 0x4db2, 0x4e71, 0x4e06, 0x4e15, 0x4dad, 0x4e10, -0x4dbe, 0x4d9a, 0x4e47, 0x4d82, 0x4e18, 0x4e0e, 0x4e70, 0x4ebd, 0x4e2f, 0x4eee, 0x4e47, 0x4e16, 0x4ed6, 0x4dee, 0x4e5a, 0x4e64, 0x4e99, 0x4dfa, 0x4dd7, 0x4e82, 0x4e32, 0x4dd0, 0x4e4a, 0x4e31, 0x4db7, 0x4dab, 0x4e6f, 0x4df7, 0x4e5e, 0x4ea5, 0x4e2f, 0x4e3d, 0x4e1b, 0x4dee, 0x4e6e, 0x4df6, 0x4e07, 0x4d94, 0x4d52, 0x4d9d, 0x4d9a, 0x4dc1, 0x4d68, 0x4e8a, 0x4de5, 0x4ed0, 0x4dbc, 0x4e0e, 0x4e82, 0x4df1, 0x4eda, 0x4deb, 0x4d7d, 0x4e03, 0x4d79, 0x4d9c, 0x4e18, 0x4df0, 0x4dc0, 0x4e04, 0x4e3c, 0x4f3c, 0x4dcf, 0x4e53, 0x4d88, 0x4dad, 0x4e2e, 0x4e30, 0x4e7a, 0x4ea5, 0x4dca, 0x4df9, 0x4e4a, 0x4e05, 0x4e9c, 0x4dca, 0x4e18, 0x4e1c, 0x4e4d, 0x4e3a, 0x4ed8, 0x4dd7, 0x4dd2, 0x4e56, 0x4da1, 0x4e5c, 0x4dec, 0x4d66, 0x4e07, 0x4e62, 0x4e15, 0x4e5e, 0x4e30, 0x4e1d, 0x4e47, 0x4e0e, -0x4dec, 0x4e01, 0x4e70, 0x4dfa, 0x4e67, 0x4db4, 0x4e83, 0x4f89, 0x4e1b, 0x4f76, 0x4e4b, 0x4e2b, 0x4f33, 0x4e79, 0x4e5f, 0x4e1d, 0x4e90, 0x4df1, 0x4df9, 0x4e53, 0x4deb, 0x4d95, 0x4e23, 0x4d81, 0x4e0a, 0x4e1e, 0x4efc, 0x4df0, 0x4e8d, 0x4ee7, 0x4e99, 0x4ecb, 0x4e37, 0x4e41, 0x4ece, 0x4e28, 0x4deb, 0x4dba, 0x4dd7, 0x4e1d, 0x4e40, 0x4e1e, 0x4e08, 0x4eab, 0x4e61, 0x4e9e, 0x4db5, 0x4e32, 0x4ed9, 0x4df4, 0x4f2d, 0x4e58, 0x4d91, 0x4dd9, 0x4dd4, 0x4e32, 0x4e5e, 0x4db8, 0x4dfb, 0x4e4d, 0x4e87, 0x4f3e, 0x4dcc, 0x4ea3, 0x4d85, 0x4e3b, 0x4e3a, 0x4e95, 0x4ea9, 0x4efa, 0x4f03, 0x4e56, 0x4e70, 0x4e59, 0x4e85, 0x4e7b, 0x4e0a, 0x4e5e, 0x4e33, 0x4e61, 0x4edb, 0x4e24, 0x4e24, 0x4e4e, 0x4ddc, 0x4e35, 0x4e52, 0x4dc2, 0x4e58, 0x4ecb, 0x4dea, 0x4e93, 0x4e7a, 0x4e7a, 0x4e24, 0x4e24, -0x4e1a, 0x4e76, 0x4e5f, 0x4dcb, 0x4e4c, 0x4e37, 0x4ed6, 0x4ec9, 0x4de4, 0x4f1e, 0x4e8e, 0x4e22, 0x4eef, 0x4e5e, 0x4e26, 0x4e5b, 0x4ed3, 0x4e7a, 0x4dbf, 0x4e76, 0x4e06, 0x4de0, 0x4e59, 0x4de5, 0x4e66, 0x4e1f, 0x4e76, 0x4dd8, 0x4e8d, 0x4ef8, 0x4ed3, 0x4e45, 0x4e84, 0x4e3d, 0x4ef2, 0x4df1, 0x4df6, 0x4e09, 0x4d77, 0x4e22, 0x4dc6, 0x4e8a, 0x4dcd, 0x4e8f, 0x4e57, 0x4eef, 0x4dbc, 0x4e40, 0x4f00, 0x4deb, 0x4e93, 0x4e33, 0x4d66, 0x4e1a, 0x4dc6, 0x4dee, 0x4e42, 0x4dd8, 0x4e23, 0x4e83, 0x4e0b, 0x4ee3, 0x4da3, 0x4e63, 0x4dbf, 0x4e1a, 0x4e7a, 0x4e8f, 0x4ede, 0x4eed, 0x4e27, 0x4e5a, 0x4e42, 0x4e2f, 0x4ea2, 0x4e1d, 0x4e16, 0x4e7e, 0x4eab, 0x4e64, 0x4ec7, 0x4dc2, 0x4d9a, 0x4eca, 0x4e4a, 0x4e22, 0x4e54, 0x4dd1, 0x4e67, 0x4e81, 0x4de7, 0x4e32, 0x4f41, 0x4e70, 0x4e0d, 0x4ddc, -0x4da1, 0x4deb, 0x4e14, 0x4d79, 0x4e1c, 0x4db9, 0x4e1a, 0x4e73, 0x4dd2, 0x4ee5, 0x4dd8, 0x4dbd, 0x4e94, 0x4dd3, 0x4da2, 0x4e2d, 0x4e62, 0x4dda, 0x4d75, 0x4e2d, 0x4e01, 0x4d3e, 0x4ddf, 0x4ddb, 0x4e1e, 0x4d91, 0x4e09, 0x4da9, 0x4e74, 0x4e7a, 0x4dba, 0x4dd4, 0x4e30, 0x4da4, 0x4e3e, 0x4d81, 0x4d95, 0x4d95, 0x4d81, 0x4e30, 0x4e23, 0x4e35, 0x4dbd, 0x4e34, 0x4e0a, 0x4e89, 0x4d2f, 0x4df7, 0x4e72, 0x4dbe, 0x4ef1, 0x4e28, 0x4d7e, 0x4dd9, 0x4dc9, 0x4dd5, 0x4e30, 0x4de8, 0x4da4, 0x4e00, 0x4e0a, 0x4e66, 0x4d32, 0x4e04, 0x4d5e, 0x4db9, 0x4e11, 0x4e3e, 0x4de4, 0x4e6c, 0x4e38, 0x4e10, 0x4db9, 0x4df4, 0x4e63, 0x4dec, 0x4deb, 0x4dd5, 0x4e2c, 0x4e28, 0x4e22, 0x4d86, 0x4dd8, 0x4e3e, 0x4d27, 0x4e7e, 0x4dc5, 0x4cf5, 0x4e04, 0x4e4e, 0x4e1c, 0x4df2, 0x4e10, 0x4de0, 0x4d6b, 0x4d53, -0x4de7, 0x4e37, 0x4e87, 0x4e27, 0x4e9b, 0x4e07, 0x4e87, 0x4f9e, 0x4e14, 0x4faf, 0x4edd, 0x4f04, 0x4f20, 0x4e28, 0x4d9f, 0x4e6d, 0x4f14, 0x4df2, 0x4e1b, 0x4e74, 0x4e77, 0x4d6f, 0x4e33, 0x4dff, 0x4e7c, 0x4e75, 0x4e6e, 0x4e2c, 0x4e68, 0x4f3a, 0x4ec2, 0x4e8f, 0x4eda, 0x4e35, 0x4f59, 0x4e42, 0x4e34, 0x4dfe, 0x4e42, 0x4e5b, 0x4e3a, 0x4e91, 0x4e20, 0x4e71, 0x4eec, 0x4eba, 0x4e03, 0x4e1f, 0x4eac, 0x4dd8, 0x4f57, 0x4ead, 0x4de8, 0x4de5, 0x4e17, 0x4e96, 0x4e7c, 0x4db7, 0x4ddb, 0x4e47, 0x4e6a, 0x4f17, 0x4d7d, 0x4e98, 0x4e04, 0x4e32, 0x4e82, 0x4ecf, 0x4ed7, 0x4f05, 0x4e77, 0x4ec6, 0x4ee5, 0x4e3f, 0x4e8f, 0x4e83, 0x4dcd, 0x4e0e, 0x4e9d, 0x4e58, 0x4eea, 0x4df3, 0x4de0, 0x4ecb, 0x4e06, 0x4e8a, 0x4e68, 0x4d67, 0x4e5a, 0x4eef, 0x4e05, 0x4e8b, 0x4eff, 0x4e46, 0x4e60, 0x4dd7, -0x4dcc, 0x4dee, 0x4e78, 0x4db4, 0x4e61, 0x4db1, 0x4e3e, 0x4edd, 0x4db1, 0x4ede, 0x4d68, 0x4e5a, 0x4efb, 0x4dd2, 0x4dfe, 0x4e28, 0x4ec4, 0x4e16, 0x4d85, 0x4e55, 0x4dff, 0x4dc4, 0x4e27, 0x4dc9, 0x4dc7, 0x4dd2, 0x4e79, 0x4d94, 0x4e4e, 0x4e8b, 0x4e6a, 0x4e52, 0x4dfc, 0x4e08, 0x4e1e, 0x4dff, 0x4daf, 0x4d7b, 0x4d51, 0x4da5, 0x4deb, 0x4e25, 0x4e00, 0x4e7a, 0x4de4, 0x4ea6, 0x4d64, 0x4ddc, 0x4ea0, 0x4ddb, 0x4e73, 0x4dfa, 0x4d1b, 0x4e17, 0x4d78, 0x4de8, 0x4eb9, 0x4dc4, 0x4dc0, 0x4e2e, 0x4e61, 0x4eb6, 0x4dac, 0x4e6a, 0x4d86, 0x4dd0, 0x4e92, 0x4e20, 0x4e2b, 0x4e5f, 0x4df0, 0x4e2d, 0x4e1b, 0x4dd7, 0x4e1d, 0x4e1f, 0x4e45, 0x4e6e, 0x4dc8, 0x4de8, 0x4e5f, 0x4dea, 0x4dd3, 0x4e5e, 0x4dda, 0x4dee, 0x4dac, 0x4d7d, 0x4e39, 0x4e3c, 0x4e22, 0x4e6e, 0x4e77, 0x4e45, 0x4e0b, 0x4dd3, -0x4e35, 0x4e33, 0x4e9c, 0x4de7, 0x4e4c, 0x4e54, 0x4eeb, 0x4f2a, 0x4e39, 0x4f67, 0x4e9e, 0x4e61, 0x4f2b, 0x4e50, 0x4e45, 0x4eab, 0x4f08, 0x4e4f, 0x4e01, 0x4e7a, 0x4e73, 0x4df9, 0x4e88, 0x4dd9, 0x4ea5, 0x4e6d, 0x4ef7, 0x4dcf, 0x4f2f, 0x4f58, 0x4ef7, 0x4eca, 0x4e71, 0x4e82, 0x4f22, 0x4e73, 0x4e35, 0x4e09, 0x4de6, 0x4e4a, 0x4e4c, 0x4e58, 0x4e07, 0x4f1c, 0x4ea0, 0x4f1d, 0x4de4, 0x4e88, 0x4ec8, 0x4e27, 0x4f13, 0x4df9, 0x4dc0, 0x4e55, 0x4da9, 0x4e3b, 0x4eb5, 0x4df2, 0x4e28, 0x4ea0, 0x4e45, 0x4f56, 0x4dfe, 0x4ebe, 0x4db8, 0x4e2b, 0x4ea1, 0x4ebc, 0x4ec6, 0x4f16, 0x4e85, 0x4e5a, 0x4e8c, 0x4e67, 0x4efc, 0x4e11, 0x4e3e, 0x4e7c, 0x4e7b, 0x4e66, 0x4ecf, 0x4df3, 0x4e39, 0x4e97, 0x4dd1, 0x4eb3, 0x4e47, 0x4e05, 0x4e7d, 0x4eb7, 0x4e7b, 0x4eca, 0x4f2b, 0x4ea0, 0x4e2b, 0x4e51, -0x4db9, 0x4dbf, 0x4e60, 0x4db6, 0x4ec2, 0x4da9, 0x4e40, 0x4eb2, 0x4dd0, 0x4ee8, 0x4df1, 0x4e3d, 0x4eef, 0x4e3a, 0x4e4c, 0x4dfe, 0x4e5e, 0x4e52, 0x4df0, 0x4e28, 0x4e65, 0x4de5, 0x4e47, 0x4d6d, 0x4e02, 0x4dd1, 0x4e7c, 0x4dde, 0x4e2f, 0x4e87, 0x4e9e, 0x4e58, 0x4e0a, 0x4e91, 0x4e0c, 0x4e05, 0x4e1d, 0x4d89, 0x4d53, 0x4da9, 0x4e6b, 0x4e71, 0x4df8, 0x4e8a, 0x4dcd, 0x4ed8, 0x4d7f, 0x4e1d, 0x4e77, 0x4d97, 0x4ea3, 0x4d6f, 0x4d9d, 0x4e0f, 0x4dcb, 0x4e2b, 0x4e8e, 0x4dbd, 0x4d96, 0x4e28, 0x4e09, 0x4f0c, 0x4d95, 0x4e53, 0x4d66, 0x4e32, 0x4e1c, 0x4dfb, 0x4e2a, 0x4e91, 0x4ed8, 0x4dd0, 0x4e94, 0x4e1e, 0x4dd3, 0x4e4a, 0x4dcd, 0x4e56, 0x4e2f, 0x4e7e, 0x4e22, 0x4dd2, 0x4e42, 0x4e9a, 0x4ddc, 0x4e3c, 0x4e8a, 0x4d97, 0x4e00, 0x4e7e, 0x4d80, 0x4e5c, 0x4eba, 0x4e5e, 0x4e47, 0x4e02, -0x4c99, 0x4c81, 0x4d53, 0x4cb2, 0x4d3f, 0x4ca4, 0x4d31, 0x4dab, 0x4d46, 0x4dae, 0x4ce7, 0x4d3d, 0x4da8, 0x4d00, 0x4d6a, 0x4d0d, 0x4d75, 0x4d0c, 0x4cc1, 0x4cf5, 0x4d2e, 0x4cc4, 0x4ccf, 0x4cac, 0x4cfc, 0x4cfa, 0x4d7f, 0x4ccd, 0x4d41, 0x4d62, 0x4d43, 0x4d2f, 0x4cf8, 0x4cfc, 0x4db4, 0x4d00, 0x4cfa, 0x4cad, 0x4cf2, 0x4cf7, 0x4d04, 0x4cf2, 0x4caf, 0x4d56, 0x4cda, 0x4d5b, 0x4cef, 0x4d37, 0x4d81, 0x4cca, 0x4ddd, 0x4ca3, 0x4c50, 0x4d2d, 0x4c81, 0x4cf7, 0x4d46, 0x4ce2, 0x4ce5, 0x4d38, 0x4cf5, 0x4de8, 0x4c6a, 0x4d4f, 0x4c86, 0x4cc3, 0x4d31, 0x4d5b, 0x4d55, 0x4d82, 0x4d74, 0x4cc0, 0x4d08, 0x4d27, 0x4d0a, 0x4cd9, 0x4cf2, 0x4d38, 0x4c9b, 0x4d29, 0x4d67, 0x4d1a, 0x4d25, 0x4d1d, 0x4cdd, 0x4cd0, 0x4ced, 0x4c6d, 0x4d0d, 0x4d72, 0x4d3f, 0x4d94, 0x4d5a, 0x4d2d, 0x4d00, 0x4cb8 +uint16_t z_oup_2D [24][32] = { +0x4845, 0x4897, 0x4608, 0x4838, 0x4855, 0x487b, 0x4869, 0x4880, 0x46d1, 0x48b0, 0x48db, 0x483f, 0x48c9, 0x485f, 0x4881, 0x483a, 0x484b, 0x472c, 0x4762, 0x492b, 0x4822, 0x48fd, 0x488e, 0x492e, 0x483e, 0x484f, 0x49e8, 0x46d7, 0x484b, 0x489d, 0x490b, 0x47e9, +0x484f, 0x47d2, 0x44be, 0x4747, 0x47c7, 0x46c0, 0x4727, 0x48af, 0x46c5, 0x482d, 0x483d, 0x482e, 0x4897, 0x479f, 0x488b, 0x4749, 0x489a, 0x46a8, 0x46f2, 0x488b, 0x4891, 0x47e8, 0x4872, 0x483d, 0x4716, 0x46fd, 0x49b5, 0x46a0, 0x46e7, 0x47a4, 0x48a1, 0x4767, +0x4939, 0x4935, 0x4703, 0x48c1, 0x4863, 0x48bd, 0x4913, 0x48cf, 0x48b6, 0x48b8, 0x4946, 0x4920, 0x495e, 0x48e1, 0x4938, 0x48b2, 0x493a, 0x4882, 0x483b, 0x49d5, 0x4911, 0x4972, 0x496b, 0x49df, 0x48f2, 0x4888, 0x4a46, 0x4821, 0x48c1, 0x490c, 0x49b2, 0x48a3, +0x463a, 0x47b0, 0x44cb, 0x4762, 0x4765, 0x46b9, 0x466a, 0x4814, 0x4631, 0x4796, 0x4666, 0x474b, 0x4798, 0x4704, 0x4838, 0x4761, 0x47d3, 0x4590, 0x45ea, 0x48a2, 0x47f1, 0x4844, 0x484b, 0x4776, 0x47d6, 0x46d8, 0x48f3, 0x44d3, 0x46fa, 0x478d, 0x481e, 0x466e, +0x4827, 0x481e, 0x45a2, 0x4794, 0x4727, 0x4806, 0x475d, 0x48d5, 0x4708, 0x4828, 0x4862, 0x480d, 0x4895, 0x4832, 0x48bd, 0x47f1, 0x482a, 0x46a7, 0x47b1, 0x492d, 0x484d, 0x4884, 0x48dc, 0x485f, 0x476d, 0x480c, 0x48e9, 0x46d3, 0x4728, 0x4884, 0x48a0, 0x480e, +0x4862, 0x4813, 0x4675, 0x485a, 0x47e8, 0x4738, 0x4836, 0x4823, 0x46e7, 0x4821, 0x4822, 0x47b3, 0x4846, 0x4855, 0x4863, 0x4717, 0x4872, 0x47c1, 0x46d5, 0x488e, 0x47e2, 0x485f, 0x487c, 0x48b8, 0x481e, 0x4788, 0x48bd, 0x4677, 0x46c9, 0x47f8, 0x48fe, 0x47fc, +0x47a0, 0x47b2, 0x4588, 0x467e, 0x4662, 0x46c7, 0x46e8, 0x4812, 0x4536, 0x474e, 0x46c0, 0x468f, 0x481f, 0x4679, 0x46a1, 0x46e2, 0x4809, 0x4560, 0x4630, 0x47eb, 0x46b5, 0x4757, 0x4848, 0x477f, 0x46a6, 0x46d8, 0x4870, 0x459a, 0x4670, 0x4678, 0x47d2, 0x468c, +0x4762, 0x48c4, 0x46e3, 0x4791, 0x46b1, 0x486d, 0x47d0, 0x4867, 0x468d, 0x47f6, 0x48a5, 0x4756, 0x4857, 0x4854, 0x4866, 0x4838, 0x484d, 0x46ec, 0x47d2, 0x48f6, 0x484a, 0x4879, 0x4848, 0x483c, 0x471d, 0x4806, 0x48fa, 0x4730, 0x4768, 0x47b8, 0x4865, 0x46f9, +0x48a8, 0x4918, 0x46ca, 0x4867, 0x4800, 0x4862, 0x48d3, 0x4910, 0x474e, 0x4849, 0x48eb, 0x486b, 0x4966, 0x48c5, 0x48f4, 0x4830, 0x48f9, 0x4778, 0x481e, 0x499e, 0x48cf, 0x48f1, 0x4982, 0x4923, 0x487c, 0x47cf, 0x49ea, 0x4649, 0x4773, 0x495e, 0x48b2, 0x483f, +0x48a7, 0x4975, 0x4616, 0x481e, 0x481f, 0x4866, 0x48b6, 0x4864, 0x47dc, 0x4873, 0x485c, 0x487f, 0x4938, 0x491f, 0x490d, 0x48b6, 0x48f8, 0x48a1, 0x4859, 0x492d, 0x489c, 0x4915, 0x4899, 0x4887, 0x486c, 0x4859, 0x49ca, 0x471e, 0x4867, 0x4918, 0x48d3, 0x4827, +0x488b, 0x4998, 0x4704, 0x481d, 0x48b8, 0x4880, 0x4876, 0x4944, 0x470c, 0x48f2, 0x48b9, 0x489b, 0x4956, 0x48e5, 0x48d6, 0x48a5, 0x48dc, 0x4856, 0x484e, 0x49ab, 0x48e0, 0x490e, 0x48dd, 0x4945, 0x488b, 0x48dd, 0x4a32, 0x47ea, 0x4835, 0x4911, 0x4965, 0x4819, +0x460e, 0x481e, 0x452c, 0x4673, 0x475c, 0x4717, 0x46f6, 0x46d0, 0x4696, 0x46bc, 0x4726, 0x481e, 0x4763, 0x46ea, 0x46fe, 0x4758, 0x478b, 0x4627, 0x4704, 0x483f, 0x46ad, 0x47b1, 0x4792, 0x4816, 0x46f2, 0x4684, 0x4827, 0x45a8, 0x472f, 0x47a4, 0x4797, 0x462b, +0x483f, 0x48ab, 0x468f, 0x4863, 0x485a, 0x4766, 0x481d, 0x48cb, 0x47dc, 0x4903, 0x48fc, 0x4830, 0x48cc, 0x483e, 0x48ab, 0x4864, 0x4966, 0x4763, 0x4794, 0x499d, 0x488e, 0x488b, 0x48dc, 0x4960, 0x4854, 0x484c, 0x499c, 0x474c, 0x4826, 0x48bc, 0x4949, 0x4883, +0x489d, 0x4905, 0x4718, 0x481e, 0x48e3, 0x48f4, 0x48c1, 0x4904, 0x47e8, 0x48b3, 0x4892, 0x48d4, 0x48ff, 0x4894, 0x48d5, 0x4886, 0x48fa, 0x4803, 0x47d2, 0x492e, 0x4870, 0x48b2, 0x48e5, 0x492b, 0x487b, 0x4785, 0x49e3, 0x471d, 0x4837, 0x48bf, 0x489b, 0x48c4, +0x475c, 0x4871, 0x464a, 0x4811, 0x47af, 0x471c, 0x4817, 0x4817, 0x463b, 0x484e, 0x477f, 0x464f, 0x4704, 0x487c, 0x47a3, 0x4725, 0x4853, 0x462a, 0x465a, 0x4860, 0x4736, 0x4880, 0x47e1, 0x482b, 0x4811, 0x46c0, 0x48dc, 0x475d, 0x4668, 0x4806, 0x4893, 0x46f4, +0x4858, 0x4959, 0x463d, 0x487b, 0x480f, 0x484e, 0x48c0, 0x48a6, 0x4847, 0x4894, 0x48a0, 0x484a, 0x491e, 0x48f4, 0x48fc, 0x48b5, 0x48ce, 0x47d2, 0x47db, 0x497f, 0x4955, 0x4939, 0x48a7, 0x48ce, 0x4890, 0x4884, 0x49d6, 0x4763, 0x486e, 0x4922, 0x48f4, 0x48c3, +0x47ec, 0x491c, 0x4698, 0x4783, 0x4715, 0x4754, 0x4745, 0x4752, 0x472f, 0x4832, 0x4817, 0x4809, 0x47f8, 0x48c3, 0x47e6, 0x4800, 0x48b6, 0x4730, 0x480a, 0x48cb, 0x479e, 0x488e, 0x47c2, 0x488e, 0x472f, 0x47ee, 0x489d, 0x4744, 0x4755, 0x4851, 0x4846, 0x47d3, +0x4838, 0x48a0, 0x4634, 0x4762, 0x4786, 0x4806, 0x47e3, 0x482d, 0x4726, 0x486c, 0x47b7, 0x4803, 0x48ac, 0x4814, 0x48e0, 0x4839, 0x4827, 0x4750, 0x46f2, 0x48c5, 0x483f, 0x4886, 0x48ad, 0x4856, 0x47e8, 0x47a9, 0x4937, 0x4743, 0x46d0, 0x481f, 0x484c, 0x4804, +0x47fd, 0x481f, 0x456d, 0x4813, 0x474d, 0x4807, 0x4688, 0x480e, 0x46e8, 0x4810, 0x469f, 0x4799, 0x4853, 0x478f, 0x47f2, 0x4824, 0x47d0, 0x471f, 0x46da, 0x485f, 0x4813, 0x481c, 0x482e, 0x4863, 0x4786, 0x480b, 0x48c9, 0x46b8, 0x475a, 0x46e2, 0x4852, 0x46c5, +0x45af, 0x4802, 0x4466, 0x46c2, 0x465d, 0x4743, 0x46b7, 0x47ba, 0x4636, 0x46c3, 0x4677, 0x4784, 0x485a, 0x47c2, 0x46dc, 0x46ac, 0x47de, 0x460e, 0x465f, 0x4834, 0x47f4, 0x4769, 0x46fc, 0x4810, 0x45fd, 0x45ea, 0x48d0, 0x45b5, 0x4704, 0x4783, 0x4830, 0x46c4, +0x4759, 0x47c7, 0x453d, 0x45b0, 0x4741, 0x4702, 0x4736, 0x4793, 0x461b, 0x47ba, 0x470b, 0x46dd, 0x4657, 0x470b, 0x470d, 0x4710, 0x486c, 0x468f, 0x45c3, 0x46ba, 0x479d, 0x483b, 0x46c9, 0x4774, 0x46a9, 0x46a7, 0x4833, 0x4606, 0x4690, 0x46a9, 0x46f5, 0x46a7, +0x47ac, 0x48bb, 0x452c, 0x4803, 0x470f, 0x4824, 0x47d5, 0x48cb, 0x4707, 0x484a, 0x4832, 0x4797, 0x4851, 0x482c, 0x487a, 0x4877, 0x4891, 0x465d, 0x47f4, 0x48ce, 0x4898, 0x4899, 0x484e, 0x486a, 0x47ac, 0x47f0, 0x493e, 0x4611, 0x47e2, 0x489e, 0x488c, 0x46af, +0x4665, 0x4836, 0x45e4, 0x46b6, 0x46a1, 0x46b9, 0x46c8, 0x46dd, 0x4658, 0x474b, 0x467b, 0x4777, 0x4769, 0x4798, 0x4785, 0x475e, 0x472a, 0x4656, 0x45fb, 0x4881, 0x46fc, 0x472d, 0x476e, 0x47a3, 0x465d, 0x46ca, 0x4855, 0x4500, 0x464f, 0x479a, 0x46c3, 0x4738, +0x481e, 0x486c, 0x4659, 0x4801, 0x4756, 0x477a, 0x47d5, 0x487b, 0x4706, 0x4808, 0x484f, 0x4838, 0x4870, 0x4863, 0x48d3, 0x4806, 0x4865, 0x4771, 0x46be, 0x494c, 0x4915, 0x484c, 0x4900, 0x4862, 0x481a, 0x46e8, 0x4974, 0x46a0, 0x4775, 0x483d, 0x487c, 0x480e }; \ No newline at end of file diff --git a/hwpe/redmule/inc/z_output.h b/hwpe/redmule/inc/z_output.h index 9cc0610..96c7e5f 100644 --- a/hwpe/redmule/inc/z_output.h +++ b/hwpe/redmule/inc/z_output.h @@ -1,99 +1,27 @@ /* Header file generated by RedMulE Golden Model */ -uint16_t z_oup [9216] = { -0x4e2d, 0x4e0e, 0x4dda, 0x4de5, 0x4e0e, 0x4dbc, 0x4e3f, 0x4ed6, 0x4dce, 0x4eef, 0x4dfc, 0x4e55, 0x4e2f, 0x4d96, 0x4ddd, 0x4d8a, 0x4e4c, 0x4dc2, 0x4d63, 0x4daa, 0x4e0a, 0x4d89, 0x4dff, 0x4d7d, 0x4d9e, 0x4e07, 0x4ded, 0x4d68, 0x4e69, 0x4ea9, 0x4e7b, 0x4e13, 0x4e22, 0x4e13, 0x4e34, 0x4dd6, 0x4db5, 0x4db6, 0x4d9c, 0x4dfd, 0x4e51, 0x4e0f, 0x4d92, 0x4e46, 0x4db8, 0x4e97, 0x4d14, 0x4dcb, 0x4e6a, 0x4d8e, 0x4eb5, 0x4dee, 0x4d95, 0x4e1c, 0x4dcb, 0x4e1e, 0x4dff, 0x4d5d, 0x4d53, 0x4dde, 0x4dda, 0x4ea4, 0x4d1c, 0x4e1d, 0x4d30, 0x4dad, 0x4e27, 0x4e04, 0x4e55, 0x4ebb, 0x4e47, 0x4daa, 0x4ddf, 0x4dd8, 0x4e3a, 0x4db0, 0x4dc0, 0x4e1c, 0x4dc1, 0x4e33, 0x4e2b, 0x4dcd, 0x4da2, 0x4ebe, 0x4d64, 0x4da9, 0x4e7f, 0x4d80, 0x4e14, 0x4e9b, 0x4d7e, 0x4e85, 0x4e6d, 0x4e6e, 0x4e1e, 0x4def, -0x4def, 0x4d5f, 0x4e1d, 0x4daa, 0x4e29, 0x4dc0, 0x4e5f, 0x4f01, 0x4dcf, 0x4f33, 0x4dcf, 0x4e86, 0x4ecf, 0x4dfd, 0x4deb, 0x4d92, 0x4eda, 0x4e29, 0x4dae, 0x4e35, 0x4e49, 0x4da9, 0x4e33, 0x4d7d, 0x4e23, 0x4e28, 0x4dc0, 0x4e12, 0x4e62, 0x4eda, 0x4e71, 0x4e43, 0x4e2d, 0x4df3, 0x4e69, 0x4e0d, 0x4df7, 0x4dbd, 0x4dbc, 0x4da3, 0x4d9d, 0x4e3c, 0x4e01, 0x4ebb, 0x4dd5, 0x4e35, 0x4d3f, 0x4de4, 0x4efa, 0x4dc4, 0x4ee3, 0x4dac, 0x4d93, 0x4da3, 0x4da1, 0x4dee, 0x4e9a, 0x4db0, 0x4db0, 0x4e99, 0x4dfe, 0x4eaf, 0x4d59, 0x4e35, 0x4dee, 0x4de7, 0x4e60, 0x4e5d, 0x4ec7, 0x4eb1, 0x4e59, 0x4de0, 0x4e35, 0x4df5, 0x4df4, 0x4df1, 0x4df4, 0x4e27, 0x4dd5, 0x4e4b, 0x4e87, 0x4da1, 0x4dbc, 0x4eb6, 0x4d77, 0x4e4f, 0x4e04, 0x4d77, 0x4e43, 0x4ede, 0x4df7, 0x4e38, 0x4e81, 0x4e43, 0x4e43, 0x4e01, -0x4d9d, 0x4dbc, 0x4e1d, 0x4e2f, 0x4e69, 0x4ddf, 0x4e62, 0x4f1f, 0x4dbd, 0x4f0c, 0x4d88, 0x4da7, 0x4f23, 0x4dfa, 0x4e2e, 0x4de9, 0x4e67, 0x4de4, 0x4da6, 0x4ded, 0x4e28, 0x4d1b, 0x4e1d, 0x4dbb, 0x4dea, 0x4e1c, 0x4e67, 0x4ddc, 0x4de6, 0x4e7d, 0x4e2c, 0x4e1c, 0x4e41, 0x4def, 0x4e14, 0x4ddc, 0x4dc3, 0x4cfa, 0x4dac, 0x4db0, 0x4e84, 0x4df6, 0x4d77, 0x4e5a, 0x4dd5, 0x4ea7, 0x4d34, 0x4da6, 0x4eb7, 0x4dca, 0x4e9c, 0x4dcb, 0x4d04, 0x4dd7, 0x4dcd, 0x4e29, 0x4df3, 0x4d80, 0x4dc5, 0x4e3d, 0x4dd1, 0x4e42, 0x4d76, 0x4e54, 0x4d5a, 0x4db3, 0x4e0a, 0x4de8, 0x4ea2, 0x4e8e, 0x4dd8, 0x4e43, 0x4e16, 0x4d9b, 0x4e8b, 0x4e39, 0x4e02, 0x4dfa, 0x4de8, 0x4e07, 0x4ddd, 0x4dd4, 0x4d3f, 0x4e05, 0x4dac, 0x4e33, 0x4e61, 0x4d4c, 0x4e0b, 0x4e63, 0x4ddd, 0x4e37, 0x4e7d, 0x4e47, 0x4dbd, 0x4db9, -0x4db6, 0x4e32, 0x4e87, 0x4e33, 0x4e43, 0x4e2b, 0x4e79, 0x4f28, 0x4de8, 0x4edc, 0x4e5e, 0x4e94, 0x4f32, 0x4e18, 0x4dbc, 0x4e77, 0x4ea9, 0x4e8c, 0x4daa, 0x4ea9, 0x4e43, 0x4e20, 0x4e3c, 0x4da8, 0x4eb0, 0x4e1b, 0x4e7a, 0x4e32, 0x4eb8, 0x4eb2, 0x4ea5, 0x4e8b, 0x4e7f, 0x4de9, 0x4ee2, 0x4df5, 0x4e01, 0x4e5c, 0x4dbb, 0x4dee, 0x4e41, 0x4e65, 0x4e2d, 0x4ef5, 0x4e84, 0x4e78, 0x4de8, 0x4e32, 0x4ee1, 0x4dea, 0x4ef6, 0x4def, 0x4da8, 0x4e4f, 0x4dd0, 0x4e76, 0x4e84, 0x4def, 0x4d88, 0x4e53, 0x4e34, 0x4f79, 0x4db4, 0x4ea1, 0x4dc1, 0x4dee, 0x4e44, 0x4ec4, 0x4ed6, 0x4e82, 0x4e5e, 0x4df4, 0x4ec3, 0x4e45, 0x4ea1, 0x4e16, 0x4e00, 0x4e6f, 0x4e50, 0x4e80, 0x4e9c, 0x4df7, 0x4e1c, 0x4edf, 0x4dcb, 0x4e27, 0x4e39, 0x4d78, 0x4e1c, 0x4ec7, 0x4e37, 0x4e81, 0x4e8f, 0x4e4b, 0x4e45, 0x4dfa, -0x4e2a, 0x4e3d, 0x4e3d, 0x4df5, 0x4e3a, 0x4def, 0x4e2f, 0x4ed6, 0x4db3, 0x4ef3, 0x4e5a, 0x4e8e, 0x4f50, 0x4db6, 0x4e46, 0x4e34, 0x4ec9, 0x4e1b, 0x4dd6, 0x4e80, 0x4e1f, 0x4d99, 0x4e76, 0x4e52, 0x4e8a, 0x4e8d, 0x4e5b, 0x4dc1, 0x4eaf, 0x4efc, 0x4ebb, 0x4e52, 0x4e78, 0x4df4, 0x4e78, 0x4df1, 0x4dfa, 0x4dd4, 0x4d47, 0x4e48, 0x4e04, 0x4e20, 0x4ddd, 0x4ebb, 0x4e44, 0x4eca, 0x4d9b, 0x4dec, 0x4e9c, 0x4e12, 0x4ec7, 0x4dfd, 0x4d6c, 0x4e46, 0x4dc0, 0x4e37, 0x4e59, 0x4dbc, 0x4d8b, 0x4e40, 0x4e31, 0x4ef8, 0x4de1, 0x4de8, 0x4d97, 0x4dd2, 0x4ea0, 0x4e1c, 0x4e3a, 0x4eb4, 0x4dd5, 0x4e41, 0x4e5d, 0x4dbc, 0x4e1d, 0x4e55, 0x4e77, 0x4dfc, 0x4e4b, 0x4e22, 0x4ebe, 0x4d6d, 0x4dad, 0x4e2a, 0x4dd3, 0x4e56, 0x4e3a, 0x4d2e, 0x4e42, 0x4e95, 0x4dce, 0x4e3b, 0x4eef, 0x4e46, 0x4ded, 0x4df8, -0x4d39, 0x4d7b, 0x4da0, 0x4cfa, 0x4d82, 0x4d16, 0x4d98, 0x4e32, 0x4ce2, 0x4e4a, 0x4d6a, 0x4d64, 0x4e27, 0x4d47, 0x4d4c, 0x4d16, 0x4d7c, 0x4d49, 0x4d0d, 0x4d3e, 0x4d83, 0x4d12, 0x4d19, 0x4cbe, 0x4d0f, 0x4d83, 0x4d65, 0x4cdb, 0x4d3d, 0x4ded, 0x4dff, 0x4d5b, 0x4d74, 0x4d70, 0x4df1, 0x4ccd, 0x4d49, 0x4d16, 0x4cc3, 0x4d2f, 0x4d25, 0x4d85, 0x4d31, 0x4dc3, 0x4d5b, 0x4dcb, 0x4cb3, 0x4d51, 0x4d98, 0x4d29, 0x4dc9, 0x4cc1, 0x4cd1, 0x4d90, 0x4cd3, 0x4d59, 0x4d5e, 0x4cf7, 0x4cda, 0x4dae, 0x4d8f, 0x4e13, 0x4cee, 0x4d6a, 0x4d0f, 0x4d33, 0x4d00, 0x4d56, 0x4d88, 0x4dae, 0x4d78, 0x4d40, 0x4d9c, 0x4d7c, 0x4d58, 0x4d2c, 0x4d47, 0x4d28, 0x4db4, 0x4dfc, 0x4d97, 0x4cec, 0x4cf7, 0x4dc0, 0x4d0c, 0x4d81, 0x4d58, 0x4d28, 0x4d63, 0x4dad, 0x4d12, 0x4d75, 0x4d77, 0x4d51, 0x4ceb, 0x4d0b, -0x4d6b, 0x4d5e, 0x4e5d, 0x4da9, 0x4e1f, 0x4d97, 0x4df3, 0x4ec4, 0x4d90, 0x4ee0, 0x4da1, 0x4e24, 0x4e3b, 0x4d68, 0x4da9, 0x4ddf, 0x4dfd, 0x4d99, 0x4d6c, 0x4dba, 0x4e07, 0x4daa, 0x4df3, 0x4dd8, 0x4d51, 0x4dc7, 0x4ddb, 0x4d6e, 0x4dd9, 0x4df2, 0x4e39, 0x4e15, 0x4e04, 0x4e02, 0x4e05, 0x4dbf, 0x4de1, 0x4d43, 0x4d73, 0x4d9e, 0x4dd5, 0x4daf, 0x4daf, 0x4e51, 0x4dcc, 0x4e5c, 0x4d8f, 0x4d5d, 0x4e2f, 0x4d7c, 0x4e80, 0x4dd7, 0x4dbd, 0x4dc2, 0x4d5f, 0x4e11, 0x4de6, 0x4d6b, 0x4d1a, 0x4db4, 0x4dcb, 0x4eba, 0x4d24, 0x4ded, 0x4dc5, 0x4d51, 0x4dfe, 0x4dfd, 0x4e44, 0x4e33, 0x4e59, 0x4d99, 0x4ddf, 0x4d99, 0x4dd4, 0x4d66, 0x4df2, 0x4de9, 0x4d80, 0x4e30, 0x4e0a, 0x4daf, 0x4dc3, 0x4e3d, 0x4d79, 0x4d72, 0x4de1, 0x4d42, 0x4e4e, 0x4ea1, 0x4d84, 0x4e13, 0x4e0c, 0x4dc9, 0x4ddf, 0x4df4, -0x4db8, 0x4e02, 0x4e6b, 0x4d8a, 0x4e8f, 0x4e49, 0x4e5b, 0x4eb6, 0x4e1d, 0x4ef9, 0x4e2f, 0x4e65, 0x4ef9, 0x4db4, 0x4e86, 0x4e5c, 0x4eae, 0x4e23, 0x4d8f, 0x4e5a, 0x4e1e, 0x4de0, 0x4e5c, 0x4dbd, 0x4e38, 0x4e37, 0x4ec8, 0x4ded, 0x4ecd, 0x4ec5, 0x4f06, 0x4e9b, 0x4e8a, 0x4ea2, 0x4e41, 0x4dea, 0x4e04, 0x4d70, 0x4d5a, 0x4e34, 0x4e01, 0x4e51, 0x4e0f, 0x4ef0, 0x4dfe, 0x4edd, 0x4d8b, 0x4dd0, 0x4e6d, 0x4e69, 0x4f18, 0x4de4, 0x4d8f, 0x4e21, 0x4de2, 0x4e07, 0x4e56, 0x4ded, 0x4d8d, 0x4e39, 0x4e50, 0x4f37, 0x4dd6, 0x4e27, 0x4e04, 0x4df0, 0x4e92, 0x4e5b, 0x4e99, 0x4eeb, 0x4e66, 0x4e60, 0x4ebc, 0x4df6, 0x4e57, 0x4e40, 0x4eaf, 0x4e5c, 0x4e3f, 0x4e44, 0x4e23, 0x4de8, 0x4e56, 0x4e7e, 0x4e01, 0x4e52, 0x4e5b, 0x4dc5, 0x4e94, 0x4ee0, 0x4e48, 0x4e48, 0x4e63, 0x4e79, 0x4e21, 0x4e3c, -0x4e6a, 0x4e58, 0x4f33, 0x4e57, 0x4ef5, 0x4ee8, 0x4f08, 0x4fd1, 0x4e62, 0x4fc6, 0x4f04, 0x4eab, 0x4fda, 0x4e9b, 0x4eec, 0x4f27, 0x4f04, 0x4eaf, 0x4e19, 0x4f17, 0x4f28, 0x4e59, 0x4ea0, 0x4e0d, 0x4eec, 0x4e73, 0x4f0c, 0x4e6a, 0x4ead, 0x4f95, 0x4edf, 0x4e8f, 0x4eca, 0x4ecd, 0x4edd, 0x4ea5, 0x4edf, 0x4dff, 0x4e28, 0x4e64, 0x4f27, 0x4ed2, 0x4e25, 0x4f29, 0x4e6c, 0x4f95, 0x4e35, 0x4e5b, 0x4f4d, 0x4ea8, 0x4f3b, 0x4eb4, 0x4e2b, 0x4ec0, 0x4e61, 0x4e91, 0x4ee7, 0x4e8c, 0x4e76, 0x4f05, 0x4ed3, 0x4f5e, 0x4e81, 0x4f16, 0x4dfd, 0x4e55, 0x4e9d, 0x4ed1, 0x4ec6, 0x4fa5, 0x4ef2, 0x4ee3, 0x4f1d, 0x4e51, 0x4ebf, 0x4ed8, 0x4ee9, 0x4ef1, 0x4ee2, 0x4f02, 0x4fae, 0x4e7b, 0x4ee4, 0x4f3c, 0x4e59, 0x4ec7, 0x4e97, 0x4e36, 0x4efb, 0x4f02, 0x4ecb, 0x4f03, 0x4f13, 0x4eb2, 0x4e94, 0x4e77, -0x4e1b, 0x4e38, 0x4edf, 0x4dc6, 0x4ee0, 0x4e35, 0x4efd, 0x4f97, 0x4e50, 0x4f9b, 0x4ddc, 0x4e39, 0x4f6b, 0x4e55, 0x4eb4, 0x4e63, 0x4ea0, 0x4e3b, 0x4e17, 0x4e2a, 0x4ed9, 0x4e23, 0x4ee7, 0x4e56, 0x4e34, 0x4e9b, 0x4eda, 0x4e0b, 0x4e82, 0x4ef2, 0x4e95, 0x4ec3, 0x4f05, 0x4e55, 0x4efc, 0x4e8f, 0x4e7c, 0x4e01, 0x4e0a, 0x4e45, 0x4e28, 0x4e65, 0x4e20, 0x4e78, 0x4ebd, 0x4ea1, 0x4e22, 0x4e2b, 0x4f6f, 0x4dcf, 0x4f35, 0x4e0f, 0x4dcb, 0x4e76, 0x4e08, 0x4e7f, 0x4f05, 0x4e5b, 0x4dd7, 0x4e83, 0x4ebd, 0x4f4c, 0x4d7b, 0x4eef, 0x4e01, 0x4e78, 0x4ee6, 0x4ea6, 0x4f28, 0x4f00, 0x4e4e, 0x4e31, 0x4ed7, 0x4e4e, 0x4e6f, 0x4e7a, 0x4e9f, 0x4ee6, 0x4e74, 0x4e91, 0x4eba, 0x4e1f, 0x4e1f, 0x4f5d, 0x4e22, 0x4e84, 0x4e2c, 0x4da3, 0x4e82, 0x4ec5, 0x4ec8, 0x4f13, 0x4ef4, 0x4e9a, 0x4eb6, 0x4e5a, -0x4d6b, 0x4db6, 0x4e0b, 0x4d3b, 0x4df7, 0x4d88, 0x4e15, 0x4e81, 0x4d5f, 0x4ef0, 0x4e2f, 0x4da2, 0x4e6a, 0x4da1, 0x4d9c, 0x4e6c, 0x4e0b, 0x4db1, 0x4d3c, 0x4dfc, 0x4d97, 0x4d63, 0x4e39, 0x4d4d, 0x4da9, 0x4d99, 0x4e40, 0x4da0, 0x4de3, 0x4e28, 0x4e04, 0x4ddc, 0x4dcb, 0x4de6, 0x4e6b, 0x4d91, 0x4dd5, 0x4d84, 0x4d44, 0x4d36, 0x4d75, 0x4de6, 0x4dba, 0x4ed7, 0x4d6f, 0x4e5a, 0x4d88, 0x4d6d, 0x4e03, 0x4d64, 0x4e96, 0x4d8a, 0x4d5c, 0x4dca, 0x4d7c, 0x4e1b, 0x4dfc, 0x4d86, 0x4d66, 0x4dd9, 0x4df3, 0x4e53, 0x4d4b, 0x4e2a, 0x4d9b, 0x4d43, 0x4ddb, 0x4e5a, 0x4de7, 0x4e56, 0x4dee, 0x4d8c, 0x4dcc, 0x4dc7, 0x4daa, 0x4d80, 0x4d97, 0x4e56, 0x4d5f, 0x4e77, 0x4d98, 0x4d51, 0x4d8d, 0x4e89, 0x4d38, 0x4d6b, 0x4dc8, 0x4d8e, 0x4df9, 0x4e13, 0x4d2f, 0x4e07, 0x4e0f, 0x4da0, 0x4d95, 0x4d6a, -0x4e54, 0x4deb, 0x4ea3, 0x4d9d, 0x4e6c, 0x4e3c, 0x4e8d, 0x4f56, 0x4de7, 0x4fa9, 0x4e3a, 0x4eb4, 0x4f3d, 0x4e5d, 0x4ea7, 0x4ead, 0x4f1d, 0x4ea7, 0x4deb, 0x4ea7, 0x4e17, 0x4e36, 0x4e45, 0x4e27, 0x4e42, 0x4e3a, 0x4f1a, 0x4e11, 0x4eb4, 0x4ee0, 0x4e33, 0x4ed2, 0x4e16, 0x4e07, 0x4ea9, 0x4df2, 0x4e4c, 0x4dda, 0x4e31, 0x4e0e, 0x4e32, 0x4e56, 0x4e0c, 0x4efb, 0x4e64, 0x4ebb, 0x4dbf, 0x4e3b, 0x4f0c, 0x4e63, 0x4f04, 0x4e4f, 0x4d9c, 0x4e3a, 0x4e16, 0x4e7c, 0x4e46, 0x4de2, 0x4df4, 0x4e91, 0x4eb6, 0x4f27, 0x4d8a, 0x4ecc, 0x4e0d, 0x4db3, 0x4e8e, 0x4e8a, 0x4ef0, 0x4f1f, 0x4eab, 0x4ea3, 0x4e4a, 0x4df3, 0x4ec1, 0x4e6a, 0x4e6c, 0x4eff, 0x4e45, 0x4ed3, 0x4ec6, 0x4e6f, 0x4e4a, 0x4ebf, 0x4de4, 0x4e40, 0x4e27, 0x4d9e, 0x4e79, 0x4ecb, 0x4e61, 0x4ed6, 0x4e9a, 0x4e4b, 0x4e55, 0x4e73, -0x4e5e, 0x4e1e, 0x4ea1, 0x4df7, 0x4e66, 0x4e71, 0x4f2d, 0x4fbf, 0x4ea4, 0x4fe2, 0x4eab, 0x4eb4, 0x4f9c, 0x4e8b, 0x4e41, 0x4e79, 0x4f69, 0x4e96, 0x4e07, 0x4e86, 0x4ec0, 0x4e14, 0x4e95, 0x4df4, 0x4e9e, 0x4e78, 0x4eea, 0x4df9, 0x4f28, 0x4f40, 0x4f87, 0x4e93, 0x4e29, 0x4ec5, 0x4ec1, 0x4eb6, 0x4e8f, 0x4e9f, 0x4def, 0x4e75, 0x4e75, 0x4e9b, 0x4e29, 0x4f68, 0x4eac, 0x4ed8, 0x4da6, 0x4e52, 0x4f2e, 0x4ea6, 0x4f46, 0x4ea9, 0x4e5b, 0x4e52, 0x4e4d, 0x4e99, 0x4ea2, 0x4e9e, 0x4ded, 0x4ed3, 0x4f10, 0x4fe3, 0x4df6, 0x4ee2, 0x4e13, 0x4f05, 0x4ed1, 0x4ef3, 0x4ef8, 0x4ef2, 0x4eb6, 0x4e1f, 0x4ecc, 0x4e25, 0x4ea1, 0x4ea3, 0x4ef8, 0x4e98, 0x4e43, 0x4ee0, 0x4f0e, 0x4e38, 0x4e74, 0x4f7b, 0x4df6, 0x4ee6, 0x4eba, 0x4de8, 0x4e70, 0x4f1a, 0x4e91, 0x4ed2, 0x4f2a, 0x4e84, 0x4ed3, 0x4ea0, -0x4e1c, 0x4e04, 0x4dfd, 0x4e12, 0x4de2, 0x4e0b, 0x4e45, 0x4ecf, 0x4d91, 0x4edb, 0x4e15, 0x4de1, 0x4ee1, 0x4e07, 0x4da5, 0x4dc1, 0x4e24, 0x4e0f, 0x4d89, 0x4e26, 0x4da5, 0x4d97, 0x4e39, 0x4ddb, 0x4e48, 0x4e3b, 0x4e20, 0x4d9f, 0x4e65, 0x4e82, 0x4e0b, 0x4d9e, 0x4de7, 0x4dbd, 0x4e42, 0x4da5, 0x4dc9, 0x4da4, 0x4dc0, 0x4da9, 0x4e74, 0x4e5c, 0x4de2, 0x4ee1, 0x4e10, 0x4eb1, 0x4d66, 0x4da6, 0x4eba, 0x4e1f, 0x4e9c, 0x4e61, 0x4d43, 0x4dcb, 0x4d98, 0x4e08, 0x4e22, 0x4dea, 0x4ddd, 0x4e76, 0x4e4e, 0x4e86, 0x4d7b, 0x4dfe, 0x4d4c, 0x4e37, 0x4d97, 0x4e31, 0x4e4f, 0x4ebe, 0x4e34, 0x4da1, 0x4e64, 0x4d9e, 0x4df2, 0x4e04, 0x4dd1, 0x4e3a, 0x4dd7, 0x4ea4, 0x4e09, 0x4db9, 0x4d96, 0x4e9a, 0x4d95, 0x4dd5, 0x4e1d, 0x4d54, 0x4de8, 0x4e4a, 0x4dd0, 0x4e6e, 0x4e53, 0x4e49, 0x4d86, 0x4d68, -0x4da0, 0x4dee, 0x4e81, 0x4df4, 0x4de0, 0x4dcd, 0x4ddd, 0x4eae, 0x4dce, 0x4f09, 0x4e0f, 0x4df0, 0x4ecc, 0x4df5, 0x4ddf, 0x4dca, 0x4dd6, 0x4d7f, 0x4dc1, 0x4e0d, 0x4dff, 0x4d9f, 0x4dd5, 0x4d55, 0x4daa, 0x4d84, 0x4e57, 0x4da9, 0x4e39, 0x4eb3, 0x4e60, 0x4dea, 0x4dd4, 0x4e18, 0x4e4a, 0x4dbf, 0x4d8b, 0x4d9f, 0x4d54, 0x4d9f, 0x4e12, 0x4de5, 0x4d9b, 0x4e24, 0x4db4, 0x4e48, 0x4dba, 0x4d88, 0x4e72, 0x4d39, 0x4e4e, 0x4d65, 0x4cef, 0x4e05, 0x4da6, 0x4dbe, 0x4e07, 0x4d71, 0x4d4a, 0x4deb, 0x4e37, 0x4e5e, 0x4dc0, 0x4e20, 0x4d3a, 0x4d5a, 0x4dbd, 0x4e31, 0x4e64, 0x4e77, 0x4e40, 0x4da2, 0x4e46, 0x4da5, 0x4db6, 0x4db4, 0x4db0, 0x4e17, 0x4dc7, 0x4e14, 0x4e24, 0x4dc0, 0x4d5b, 0x4e25, 0x4d91, 0x4e08, 0x4e39, 0x4db0, 0x4ddc, 0x4e55, 0x4d39, 0x4e17, 0x4e75, 0x4dd5, 0x4de9, 0x4e2c, -0x4d74, 0x4d5a, 0x4dde, 0x4d5b, 0x4dc3, 0x4d09, 0x4d93, 0x4e08, 0x4da7, 0x4e79, 0x4d85, 0x4dea, 0x4e38, 0x4d6f, 0x4d63, 0x4d92, 0x4df3, 0x4d6a, 0x4cd6, 0x4d9c, 0x4d83, 0x4d56, 0x4dd5, 0x4d8e, 0x4d84, 0x4da6, 0x4e24, 0x4d2a, 0x4dbb, 0x4e22, 0x4da3, 0x4de8, 0x4d30, 0x4dcc, 0x4db8, 0x4d87, 0x4d63, 0x4d3b, 0x4d3a, 0x4d78, 0x4d6c, 0x4d6c, 0x4d72, 0x4df4, 0x4d6a, 0x4e25, 0x4d3a, 0x4d20, 0x4e25, 0x4d00, 0x4dfc, 0x4d64, 0x4cf9, 0x4d95, 0x4d05, 0x4d3b, 0x4db6, 0x4d0e, 0x4d12, 0x4dd1, 0x4d95, 0x4e0b, 0x4d6a, 0x4de4, 0x4d38, 0x4d87, 0x4e22, 0x4df4, 0x4dc1, 0x4e09, 0x4d9d, 0x4dca, 0x4dd9, 0x4d6a, 0x4d8f, 0x4d3e, 0x4dba, 0x4dbb, 0x4d84, 0x4d7b, 0x4e1e, 0x4d4d, 0x4d67, 0x4e00, 0x4d27, 0x4d54, 0x4db9, 0x4cda, 0x4db1, 0x4e29, 0x4d71, 0x4e22, 0x4df2, 0x4d61, 0x4df0, 0x4d52, -0x4d31, 0x4d90, 0x4e17, 0x4db3, 0x4e1b, 0x4dac, 0x4e08, 0x4ec6, 0x4da8, 0x4eea, 0x4dcb, 0x4e2c, 0x4ee0, 0x4df0, 0x4dda, 0x4dcc, 0x4ea1, 0x4d9a, 0x4dac, 0x4d91, 0x4e2b, 0x4daf, 0x4d8d, 0x4dc6, 0x4e1f, 0x4e0e, 0x4e23, 0x4d57, 0x4e3b, 0x4e3d, 0x4e32, 0x4e66, 0x4e1f, 0x4da7, 0x4e4d, 0x4d47, 0x4da1, 0x4d69, 0x4d6f, 0x4df5, 0x4e0b, 0x4e09, 0x4d7c, 0x4e41, 0x4e09, 0x4e4f, 0x4db3, 0x4df9, 0x4e6a, 0x4de9, 0x4f3e, 0x4e2d, 0x4da0, 0x4e44, 0x4e1a, 0x4df6, 0x4dfc, 0x4d91, 0x4d48, 0x4dcf, 0x4e23, 0x4eb4, 0x4ce1, 0x4e40, 0x4d7d, 0x4da5, 0x4e55, 0x4e34, 0x4e67, 0x4ea2, 0x4e48, 0x4db5, 0x4e25, 0x4e0b, 0x4e1a, 0x4dc4, 0x4e27, 0x4df3, 0x4de6, 0x4e31, 0x4e6f, 0x4de8, 0x4d85, 0x4e70, 0x4d69, 0x4dd9, 0x4de8, 0x4d18, 0x4da7, 0x4e04, 0x4dd3, 0x4e2c, 0x4e3d, 0x4e23, 0x4dd6, 0x4dd2, -0x4e0b, 0x4de2, 0x4e76, 0x4dc3, 0x4e4c, 0x4da5, 0x4e8f, 0x4ec5, 0x4e4d, 0x4f7d, 0x4df4, 0x4e19, 0x4efc, 0x4dc4, 0x4de0, 0x4dd8, 0x4ec5, 0x4dc9, 0x4dd7, 0x4e2b, 0x4e79, 0x4d8d, 0x4e5a, 0x4daa, 0x4e09, 0x4e3f, 0x4e7d, 0x4d99, 0x4e50, 0x4ed9, 0x4ec7, 0x4e5b, 0x4e31, 0x4e6d, 0x4ea8, 0x4e52, 0x4e4a, 0x4dfa, 0x4d61, 0x4e28, 0x4dfa, 0x4e30, 0x4dbd, 0x4ebd, 0x4e1c, 0x4f17, 0x4dad, 0x4e34, 0x4e90, 0x4dd8, 0x4f2e, 0x4e40, 0x4d4b, 0x4e2a, 0x4d89, 0x4deb, 0x4e42, 0x4de8, 0x4d63, 0x4e29, 0x4e46, 0x4f35, 0x4dd4, 0x4e25, 0x4d5f, 0x4e3a, 0x4ee4, 0x4e5b, 0x4e97, 0x4ea5, 0x4e51, 0x4e34, 0x4e6b, 0x4e53, 0x4e7a, 0x4e14, 0x4e12, 0x4e0e, 0x4df0, 0x4e0d, 0x4ebc, 0x4de5, 0x4dbb, 0x4ead, 0x4df9, 0x4e62, 0x4e34, 0x4d91, 0x4e53, 0x4ec3, 0x4e2a, 0x4e18, 0x4e5c, 0x4eac, 0x4e3c, 0x4e1a, -0x4db4, 0x4ded, 0x4e56, 0x4dd8, 0x4dd5, 0x4e20, 0x4f02, 0x4f27, 0x4e56, 0x4f17, 0x4e18, 0x4e35, 0x4f47, 0x4e28, 0x4e4c, 0x4e26, 0x4e8c, 0x4db7, 0x4dab, 0x4e2b, 0x4e62, 0x4de7, 0x4e47, 0x4d76, 0x4dd3, 0x4e32, 0x4e41, 0x4d9b, 0x4e36, 0x4ee1, 0x4eda, 0x4e4e, 0x4e46, 0x4e28, 0x4e76, 0x4e65, 0x4df2, 0x4dd6, 0x4dc5, 0x4e0c, 0x4e02, 0x4da9, 0x4da7, 0x4eb1, 0x4e0c, 0x4e9c, 0x4db8, 0x4e4b, 0x4ea5, 0x4dca, 0x4ea0, 0x4e03, 0x4d89, 0x4e30, 0x4da8, 0x4e2f, 0x4e4f, 0x4e24, 0x4dce, 0x4e2a, 0x4e77, 0x4f06, 0x4d80, 0x4e7e, 0x4d88, 0x4df1, 0x4e6b, 0x4e12, 0x4e4f, 0x4eed, 0x4e20, 0x4e44, 0x4df4, 0x4e38, 0x4e62, 0x4e44, 0x4e3a, 0x4e7d, 0x4e02, 0x4eac, 0x4e74, 0x4e07, 0x4df2, 0x4e84, 0x4dfe, 0x4e3a, 0x4e0c, 0x4d86, 0x4e4d, 0x4e72, 0x4dfb, 0x4e39, 0x4e61, 0x4e46, 0x4dfd, 0x4e42, -0x4de9, 0x4dbb, 0x4e30, 0x4d6f, 0x4dfa, 0x4d82, 0x4e70, 0x4ec5, 0x4da1, 0x4f06, 0x4e5b, 0x4e47, 0x4e79, 0x4dad, 0x4dd5, 0x4e61, 0x4e44, 0x4dae, 0x4dee, 0x4e4f, 0x4e40, 0x4d9e, 0x4e3e, 0x4ddf, 0x4dab, 0x4e84, 0x4e5e, 0x4da7, 0x4e58, 0x4f0e, 0x4e10, 0x4e42, 0x4e18, 0x4e24, 0x4e7c, 0x4e08, 0x4e14, 0x4db7, 0x4db8, 0x4e22, 0x4df6, 0x4e07, 0x4d8b, 0x4ebc, 0x4db7, 0x4eb3, 0x4d91, 0x4d9e, 0x4e45, 0x4db8, 0x4ed5, 0x4dc6, 0x4db4, 0x4da1, 0x4d70, 0x4e4c, 0x4e72, 0x4d8a, 0x4dc9, 0x4d7f, 0x4e1d, 0x4f30, 0x4d7c, 0x4e93, 0x4dd2, 0x4de4, 0x4e93, 0x4e72, 0x4e34, 0x4f3d, 0x4e42, 0x4de7, 0x4e76, 0x4df4, 0x4eae, 0x4df6, 0x4e2b, 0x4e50, 0x4e4b, 0x4e66, 0x4e63, 0x4de2, 0x4de1, 0x4e80, 0x4d96, 0x4dd7, 0x4dee, 0x4ce7, 0x4d9a, 0x4e60, 0x4dc3, 0x4e68, 0x4e4f, 0x4e2d, 0x4e06, 0x4e31, -0x4e00, 0x4e5b, 0x4e77, 0x4dda, 0x4e1a, 0x4dee, 0x4e83, 0x4f15, 0x4e59, 0x4f9a, 0x4e31, 0x4e60, 0x4f31, 0x4e94, 0x4df9, 0x4e36, 0x4eaf, 0x4e48, 0x4dd9, 0x4e49, 0x4e2c, 0x4e35, 0x4ec4, 0x4e48, 0x4e46, 0x4e24, 0x4e95, 0x4dbc, 0x4edf, 0x4f2e, 0x4eeb, 0x4e2f, 0x4e0d, 0x4e31, 0x4ef6, 0x4e75, 0x4dd4, 0x4dd9, 0x4d8f, 0x4e1f, 0x4e09, 0x4dc8, 0x4dfd, 0x4ef2, 0x4e8f, 0x4ed0, 0x4de5, 0x4e12, 0x4ebd, 0x4df4, 0x4ece, 0x4dda, 0x4d36, 0x4e4e, 0x4e0d, 0x4e28, 0x4ead, 0x4e24, 0x4df9, 0x4e79, 0x4eae, 0x4f04, 0x4deb, 0x4e71, 0x4d7e, 0x4e7b, 0x4e6d, 0x4ee2, 0x4e66, 0x4f2b, 0x4e6f, 0x4df6, 0x4ec0, 0x4e28, 0x4e7a, 0x4e28, 0x4e28, 0x4e4e, 0x4e66, 0x4ef7, 0x4ed3, 0x4deb, 0x4e05, 0x4eb3, 0x4dd9, 0x4e88, 0x4e61, 0x4dfd, 0x4e3b, 0x4e89, 0x4e3a, 0x4e50, 0x4ec6, 0x4e51, 0x4e3f, 0x4de0, -0x4dcf, 0x4e18, 0x4e1c, 0x4db7, 0x4e2e, 0x4e1f, 0x4e65, 0x4f10, 0x4dc9, 0x4fb4, 0x4e91, 0x4e63, 0x4f7c, 0x4e56, 0x4e23, 0x4e0d, 0x4e8d, 0x4dea, 0x4db7, 0x4e18, 0x4e14, 0x4da8, 0x4e1e, 0x4d71, 0x4df0, 0x4e35, 0x4e39, 0x4dec, 0x4e2a, 0x4f10, 0x4e78, 0x4e50, 0x4e31, 0x4e77, 0x4f16, 0x4dca, 0x4d9c, 0x4e1c, 0x4da1, 0x4e11, 0x4e25, 0x4e03, 0x4d87, 0x4ecf, 0x4e2a, 0x4ec7, 0x4d9b, 0x4e44, 0x4e78, 0x4dc2, 0x4f13, 0x4e08, 0x4d85, 0x4ddc, 0x4dd4, 0x4db3, 0x4e2e, 0x4e26, 0x4df4, 0x4e2e, 0x4e60, 0x4f22, 0x4d9d, 0x4ebb, 0x4d96, 0x4e65, 0x4e39, 0x4e4b, 0x4e0f, 0x4ee2, 0x4e96, 0x4dd0, 0x4e47, 0x4e26, 0x4e9e, 0x4e32, 0x4dfa, 0x4e81, 0x4e39, 0x4e73, 0x4ec3, 0x4d8e, 0x4dfe, 0x4e9d, 0x4ded, 0x4e43, 0x4ddb, 0x4d85, 0x4e00, 0x4e59, 0x4def, 0x4e65, 0x4e9c, 0x4e31, 0x4df9, 0x4dd1, -0x4d16, 0x4d87, 0x4e0a, 0x4d67, 0x4dfb, 0x4d49, 0x4daa, 0x4e26, 0x4d51, 0x4e60, 0x4d6f, 0x4d77, 0x4eb9, 0x4da7, 0x4d87, 0x4d9f, 0x4ddd, 0x4d9e, 0x4d4e, 0x4dc1, 0x4dc3, 0x4d44, 0x4d6b, 0x4d53, 0x4d48, 0x4d3f, 0x4ddb, 0x4d6f, 0x4db5, 0x4de9, 0x4dfc, 0x4ddb, 0x4de2, 0x4d7e, 0x4e02, 0x4d6f, 0x4d80, 0x4d13, 0x4d1b, 0x4d08, 0x4dc7, 0x4d52, 0x4d7f, 0x4d8b, 0x4db3, 0x4dfe, 0x4d24, 0x4d12, 0x4dd6, 0x4d8c, 0x4e24, 0x4d61, 0x4d12, 0x4dcd, 0x4d2d, 0x4d83, 0x4db3, 0x4dc8, 0x4d3f, 0x4dd5, 0x4d9e, 0x4e44, 0x4d09, 0x4dbc, 0x4d01, 0x4d29, 0x4d96, 0x4d7d, 0x4dd3, 0x4e10, 0x4d50, 0x4dd2, 0x4d5d, 0x4da8, 0x4dac, 0x4d98, 0x4d92, 0x4d5f, 0x4d9a, 0x4de5, 0x4dcd, 0x4da5, 0x4d6a, 0x4dd6, 0x4d0c, 0x4d65, 0x4d4c, 0x4d42, 0x4dd3, 0x4dbd, 0x4db7, 0x4d89, 0x4dcd, 0x4de3, 0x4d99, 0x4d64, -0x4cf5, 0x4d4a, 0x4dd3, 0x4d03, 0x4d77, 0x4d6c, 0x4db3, 0x4e28, 0x4d32, 0x4e34, 0x4d68, 0x4d9a, 0x4dad, 0x4db7, 0x4dad, 0x4d6d, 0x4e1e, 0x4d30, 0x4d3d, 0x4d9d, 0x4df3, 0x4d29, 0x4d33, 0x4ce2, 0x4d74, 0x4d67, 0x4d9d, 0x4d11, 0x4dca, 0x4e34, 0x4d92, 0x4dca, 0x4d8c, 0x4d33, 0x4da0, 0x4db5, 0x4d3b, 0x4d32, 0x4d0f, 0x4d4f, 0x4cf7, 0x4da4, 0x4d97, 0x4e28, 0x4d40, 0x4d7d, 0x4d00, 0x4d56, 0x4e0a, 0x4cc8, 0x4e0d, 0x4d08, 0x4d21, 0x4d52, 0x4cce, 0x4d5a, 0x4de3, 0x4ced, 0x4ced, 0x4db9, 0x4dbd, 0x4e16, 0x4cf5, 0x4da1, 0x4d57, 0x4d4f, 0x4ddc, 0x4daf, 0x4dfa, 0x4db2, 0x4e26, 0x4d1c, 0x4d8a, 0x4d31, 0x4d88, 0x4cd3, 0x4da8, 0x4dac, 0x4d50, 0x4d91, 0x4d76, 0x4d56, 0x4d5b, 0x4dab, 0x4d56, 0x4d93, 0x4d6f, 0x4cef, 0x4d8e, 0x4ddb, 0x4d6a, 0x4dd8, 0x4db3, 0x4dff, 0x4d77, 0x4d73, -0x4e14, 0x4df9, 0x4e48, 0x4dc5, 0x4dbd, 0x4dcc, 0x4e10, 0x4ec3, 0x4df1, 0x4f5c, 0x4e1c, 0x4e5d, 0x4edc, 0x4df1, 0x4dc0, 0x4e2d, 0x4e62, 0x4de3, 0x4d61, 0x4e39, 0x4e3b, 0x4d79, 0x4e3f, 0x4d76, 0x4daf, 0x4dc8, 0x4e42, 0x4d8d, 0x4e79, 0x4f05, 0x4e44, 0x4e3d, 0x4dce, 0x4e92, 0x4eb7, 0x4df7, 0x4dc4, 0x4db0, 0x4da3, 0x4df3, 0x4db6, 0x4dd6, 0x4dc5, 0x4ea3, 0x4d9e, 0x4ec8, 0x4d7c, 0x4e22, 0x4ee2, 0x4d92, 0x4f08, 0x4db2, 0x4dc3, 0x4df6, 0x4d31, 0x4e50, 0x4e8f, 0x4dd7, 0x4d6e, 0x4e1a, 0x4e86, 0x4f14, 0x4d99, 0x4e85, 0x4d54, 0x4e46, 0x4e26, 0x4e60, 0x4e4b, 0x4f02, 0x4e22, 0x4e04, 0x4e08, 0x4e0e, 0x4e68, 0x4e4a, 0x4de0, 0x4e5a, 0x4e36, 0x4e3d, 0x4e54, 0x4de2, 0x4df7, 0x4e14, 0x4dc6, 0x4e2f, 0x4e56, 0x4d70, 0x4dd2, 0x4e2a, 0x4e35, 0x4e7f, 0x4e7c, 0x4e20, 0x4db4, 0x4d7e, -0x4dc6, 0x4dc2, 0x4e0e, 0x4d9c, 0x4df6, 0x4df8, 0x4dfa, 0x4eb0, 0x4dbc, 0x4ee4, 0x4df7, 0x4da7, 0x4e6e, 0x4d80, 0x4dd3, 0x4dcf, 0x4e02, 0x4d96, 0x4df7, 0x4e57, 0x4e54, 0x4db1, 0x4e11, 0x4d54, 0x4e15, 0x4de1, 0x4e29, 0x4d6c, 0x4dfd, 0x4e7b, 0x4e56, 0x4dfb, 0x4e05, 0x4db1, 0x4e80, 0x4dde, 0x4db5, 0x4d95, 0x4d5e, 0x4de3, 0x4e10, 0x4dea, 0x4d4f, 0x4e65, 0x4dbc, 0x4e8c, 0x4d8d, 0x4ddc, 0x4e2d, 0x4daf, 0x4eb2, 0x4d7d, 0x4d12, 0x4dfc, 0x4d73, 0x4dcf, 0x4e1f, 0x4ddf, 0x4da2, 0x4e58, 0x4e2c, 0x4e98, 0x4d5b, 0x4dec, 0x4d85, 0x4d9f, 0x4de6, 0x4e43, 0x4dca, 0x4e3e, 0x4e6e, 0x4db7, 0x4e2e, 0x4dc1, 0x4dc9, 0x4da4, 0x4dc9, 0x4e02, 0x4df8, 0x4e2f, 0x4e59, 0x4dfe, 0x4d43, 0x4e64, 0x4d80, 0x4ddd, 0x4e15, 0x4d57, 0x4e48, 0x4df3, 0x4dad, 0x4e2f, 0x4e47, 0x4e28, 0x4d94, 0x4db7, -0x4d5f, 0x4d44, 0x4de2, 0x4d6d, 0x4d9b, 0x4d02, 0x4dbe, 0x4e08, 0x4d52, 0x4e16, 0x4d7f, 0x4d66, 0x4e4e, 0x4d55, 0x4d0f, 0x4d7f, 0x4d95, 0x4d6e, 0x4ce8, 0x4dad, 0x4d69, 0x4d42, 0x4dd8, 0x4d33, 0x4d9f, 0x4d61, 0x4dcb, 0x4d43, 0x4dbe, 0x4e12, 0x4dd1, 0x4da1, 0x4d81, 0x4da9, 0x4dff, 0x4d57, 0x4d5b, 0x4cef, 0x4d36, 0x4ccd, 0x4d6a, 0x4d20, 0x4d73, 0x4e30, 0x4d5c, 0x4e02, 0x4d09, 0x4d13, 0x4dee, 0x4d08, 0x4e28, 0x4ce2, 0x4ca5, 0x4d53, 0x4ce4, 0x4d25, 0x4dec, 0x4d44, 0x4d3a, 0x4dc9, 0x4da0, 0x4e0f, 0x4d36, 0x4d80, 0x4c83, 0x4d4c, 0x4d64, 0x4da2, 0x4e08, 0x4e17, 0x4d3f, 0x4d3b, 0x4db3, 0x4d82, 0x4d60, 0x4d87, 0x4d58, 0x4d7a, 0x4d47, 0x4da7, 0x4d24, 0x4d1c, 0x4d2b, 0x4e06, 0x4d16, 0x4dc6, 0x4d87, 0x4cdf, 0x4d70, 0x4db9, 0x4d27, 0x4dc9, 0x4dbb, 0x4d8f, 0x4d3f, 0x4d16, -0x4e12, 0x4e6c, 0x4e94, 0x4e81, 0x4ec0, 0x4e60, 0x4e3b, 0x4f8e, 0x4df8, 0x4f5a, 0x4e88, 0x4e88, 0x4f1c, 0x4e40, 0x4dea, 0x4ddf, 0x4ecb, 0x4e4e, 0x4e15, 0x4e32, 0x4ec9, 0x4dc5, 0x4e88, 0x4dd2, 0x4e51, 0x4e38, 0x4e88, 0x4e03, 0x4e75, 0x4ef6, 0x4eda, 0x4e88, 0x4ea8, 0x4e77, 0x4ec2, 0x4df3, 0x4e12, 0x4e23, 0x4df5, 0x4e0a, 0x4e86, 0x4e65, 0x4df8, 0x4ede, 0x4e52, 0x4ea9, 0x4da0, 0x4e3d, 0x4f16, 0x4e37, 0x4ee0, 0x4df5, 0x4def, 0x4e7a, 0x4dc7, 0x4e6b, 0x4ea5, 0x4e02, 0x4e52, 0x4e35, 0x4e6f, 0x4f2c, 0x4dd0, 0x4e5d, 0x4e27, 0x4e36, 0x4e9b, 0x4e77, 0x4eaa, 0x4f73, 0x4e60, 0x4dfc, 0x4f07, 0x4e60, 0x4e77, 0x4dfd, 0x4e39, 0x4e7a, 0x4e32, 0x4e65, 0x4e35, 0x4e28, 0x4dfe, 0x4eb3, 0x4e20, 0x4e8f, 0x4e7a, 0x4e05, 0x4e5b, 0x4eca, 0x4dcf, 0x4ec3, 0x4eee, 0x4ea4, 0x4e05, 0x4ded, -0x4e2a, 0x4e81, 0x4e68, 0x4de3, 0x4e93, 0x4dc5, 0x4e6a, 0x4f2a, 0x4df5, 0x4fa3, 0x4e54, 0x4e50, 0x4edf, 0x4e46, 0x4e9a, 0x4e35, 0x4ef8, 0x4e70, 0x4da1, 0x4e3d, 0x4e71, 0x4dfb, 0x4e64, 0x4d8e, 0x4e2f, 0x4e3d, 0x4e51, 0x4dd6, 0x4ecd, 0x4ea0, 0x4ecf, 0x4eba, 0x4e64, 0x4e65, 0x4ed8, 0x4dfd, 0x4e11, 0x4e1a, 0x4dc1, 0x4e5c, 0x4e66, 0x4e31, 0x4e6d, 0x4efa, 0x4dfe, 0x4f06, 0x4dd9, 0x4e0a, 0x4eed, 0x4df1, 0x4ef5, 0x4e12, 0x4dc6, 0x4e56, 0x4e31, 0x4dec, 0x4e66, 0x4db6, 0x4d8c, 0x4e40, 0x4e38, 0x4f37, 0x4dc4, 0x4ebe, 0x4e42, 0x4de6, 0x4e8b, 0x4eab, 0x4e84, 0x4eee, 0x4ec7, 0x4e13, 0x4e45, 0x4e7c, 0x4ea5, 0x4e72, 0x4e7f, 0x4e91, 0x4e53, 0x4e74, 0x4e5f, 0x4e41, 0x4e9c, 0x4ea3, 0x4da1, 0x4e06, 0x4e0b, 0x4dce, 0x4e5a, 0x4ed8, 0x4deb, 0x4e5c, 0x4ecd, 0x4eaf, 0x4e17, 0x4dc0, -0x4de1, 0x4df5, 0x4e47, 0x4de4, 0x4e55, 0x4de7, 0x4e23, 0x4f36, 0x4e02, 0x4f54, 0x4e1d, 0x4e77, 0x4ef4, 0x4e3a, 0x4e11, 0x4e2f, 0x4ef2, 0x4dd7, 0x4d78, 0x4e6f, 0x4e4b, 0x4da1, 0x4dc0, 0x4df2, 0x4de6, 0x4e31, 0x4ed7, 0x4e12, 0x4e15, 0x4eba, 0x4e06, 0x4e6e, 0x4e1e, 0x4e11, 0x4e69, 0x4dc7, 0x4df4, 0x4d9a, 0x4dbb, 0x4e16, 0x4dd8, 0x4e22, 0x4dad, 0x4e5c, 0x4df8, 0x4ea6, 0x4d9d, 0x4e12, 0x4ec1, 0x4dd9, 0x4f1a, 0x4ded, 0x4d6c, 0x4de3, 0x4dc5, 0x4e41, 0x4e66, 0x4d96, 0x4def, 0x4e15, 0x4e17, 0x4ec8, 0x4da2, 0x4e8e, 0x4de3, 0x4de2, 0x4ead, 0x4e9c, 0x4e8d, 0x4f0e, 0x4e35, 0x4e42, 0x4ebd, 0x4e0f, 0x4e8e, 0x4e1b, 0x4e29, 0x4e37, 0x4e5f, 0x4e33, 0x4e74, 0x4e10, 0x4dc6, 0x4e6f, 0x4dd4, 0x4e07, 0x4e8f, 0x4d7c, 0x4da2, 0x4ea6, 0x4ddd, 0x4ea0, 0x4edc, 0x4e44, 0x4e3f, 0x4dcf, -0x4d64, 0x4dbc, 0x4e2a, 0x4d7b, 0x4e0c, 0x4d70, 0x4d5c, 0x4e7f, 0x4d22, 0x4e82, 0x4dc7, 0x4e34, 0x4eb8, 0x4d43, 0x4d93, 0x4db4, 0x4e62, 0x4d6c, 0x4d5d, 0x4df9, 0x4daf, 0x4d4c, 0x4d4d, 0x4d5e, 0x4dc0, 0x4d68, 0x4e15, 0x4d39, 0x4e00, 0x4e8d, 0x4df5, 0x4e3d, 0x4dbd, 0x4d3d, 0x4ddc, 0x4d68, 0x4d55, 0x4d32, 0x4cec, 0x4d58, 0x4d8d, 0x4dcc, 0x4d55, 0x4ded, 0x4dfd, 0x4e14, 0x4d4e, 0x4d69, 0x4e63, 0x4d60, 0x4e56, 0x4db8, 0x4d40, 0x4daf, 0x4d4b, 0x4db7, 0x4d88, 0x4d57, 0x4d78, 0x4df0, 0x4ddf, 0x4ea7, 0x4d74, 0x4ddf, 0x4d1f, 0x4d45, 0x4dda, 0x4dc0, 0x4e11, 0x4e5e, 0x4de0, 0x4dfb, 0x4db1, 0x4dbe, 0x4df9, 0x4df0, 0x4db3, 0x4de6, 0x4d9c, 0x4e03, 0x4e08, 0x4d73, 0x4d70, 0x4df1, 0x4dca, 0x4dc5, 0x4d97, 0x4d15, 0x4db0, 0x4e61, 0x4d67, 0x4dc5, 0x4e20, 0x4d85, 0x4d6b, 0x4d62, -0x4d80, 0x4df6, 0x4e6f, 0x4d6a, 0x4e44, 0x4dc4, 0x4e6c, 0x4e7a, 0x4dd6, 0x4f7d, 0x4dda, 0x4dc4, 0x4f2e, 0x4db6, 0x4e17, 0x4ddb, 0x4e6f, 0x4dae, 0x4d64, 0x4dd7, 0x4e04, 0x4dba, 0x4dc3, 0x4de4, 0x4e27, 0x4e3a, 0x4e65, 0x4d7c, 0x4e06, 0x4ead, 0x4dfa, 0x4e4d, 0x4df1, 0x4e0d, 0x4eb9, 0x4dd6, 0x4e4e, 0x4d75, 0x4dca, 0x4df0, 0x4dde, 0x4e13, 0x4de3, 0x4ef2, 0x4dfe, 0x4e7e, 0x4d4a, 0x4dd2, 0x4e5c, 0x4dac, 0x4e79, 0x4dce, 0x4d0a, 0x4e15, 0x4dfc, 0x4df1, 0x4e77, 0x4db2, 0x4d70, 0x4e5c, 0x4e18, 0x4ee6, 0x4db1, 0x4e6b, 0x4d81, 0x4e15, 0x4e18, 0x4e15, 0x4dff, 0x4e9d, 0x4e3a, 0x4e0b, 0x4e75, 0x4dee, 0x4e31, 0x4e0e, 0x4de0, 0x4e45, 0x4e2c, 0x4e78, 0x4e7c, 0x4da5, 0x4dad, 0x4edc, 0x4df9, 0x4e0d, 0x4e39, 0x4d71, 0x4d8a, 0x4e50, 0x4dd8, 0x4e38, 0x4e5e, 0x4ddd, 0x4e18, 0x4d7e, -0x4dd4, 0x4df2, 0x4e8f, 0x4dd6, 0x4e08, 0x4dc1, 0x4e1b, 0x4f76, 0x4dea, 0x4f19, 0x4e8a, 0x4eb4, 0x4f5a, 0x4de2, 0x4df5, 0x4e7d, 0x4e87, 0x4e40, 0x4db8, 0x4ea9, 0x4e79, 0x4da2, 0x4e33, 0x4d4a, 0x4e4b, 0x4e18, 0x4e44, 0x4e00, 0x4e51, 0x4e9f, 0x4e5d, 0x4e73, 0x4e09, 0x4e51, 0x4e4f, 0x4e52, 0x4ddf, 0x4dc7, 0x4dd6, 0x4e21, 0x4e2f, 0x4e62, 0x4ddb, 0x4ea4, 0x4e07, 0x4eb9, 0x4ded, 0x4dcc, 0x4ed5, 0x4dcd, 0x4ebf, 0x4dce, 0x4d8e, 0x4dd4, 0x4d90, 0x4e36, 0x4e69, 0x4de2, 0x4d98, 0x4e4c, 0x4e10, 0x4ecc, 0x4d5d, 0x4ebc, 0x4dd7, 0x4e00, 0x4e78, 0x4e8f, 0x4ea8, 0x4ee1, 0x4e82, 0x4e2e, 0x4e0b, 0x4e1d, 0x4e94, 0x4e36, 0x4dff, 0x4e1d, 0x4e2d, 0x4dd3, 0x4e2e, 0x4e02, 0x4def, 0x4e83, 0x4dc1, 0x4e30, 0x4e18, 0x4dc8, 0x4dcc, 0x4e7b, 0x4deb, 0x4e91, 0x4e53, 0x4ead, 0x4e39, 0x4de7, -0x4db6, 0x4dde, 0x4e7e, 0x4d9c, 0x4e4d, 0x4d7f, 0x4dd3, 0x4e1d, 0x4dee, 0x4efe, 0x4e96, 0x4e29, 0x4e9f, 0x4e12, 0x4dfb, 0x4e03, 0x4e55, 0x4e4d, 0x4d8e, 0x4df4, 0x4e23, 0x4dd3, 0x4dbf, 0x4dd2, 0x4e6f, 0x4dab, 0x4e07, 0x4e0d, 0x4e82, 0x4e89, 0x4e4c, 0x4e3f, 0x4e3b, 0x4e64, 0x4e44, 0x4e2d, 0x4db1, 0x4dc5, 0x4db7, 0x4dcf, 0x4e33, 0x4e54, 0x4e27, 0x4e12, 0x4e13, 0x4e28, 0x4d7e, 0x4df7, 0x4eb3, 0x4df0, 0x4eda, 0x4df1, 0x4d04, 0x4df4, 0x4d89, 0x4dfb, 0x4e5b, 0x4dd4, 0x4d9e, 0x4e56, 0x4e47, 0x4ec2, 0x4d55, 0x4e0c, 0x4d56, 0x4e2c, 0x4d9b, 0x4e3c, 0x4e5b, 0x4ed3, 0x4e76, 0x4de1, 0x4e24, 0x4e31, 0x4e21, 0x4dec, 0x4dfe, 0x4e35, 0x4e3a, 0x4e7f, 0x4e71, 0x4dc9, 0x4e07, 0x4ea7, 0x4dbf, 0x4e4d, 0x4e21, 0x4d4e, 0x4dff, 0x4e44, 0x4dbc, 0x4e34, 0x4e63, 0x4e9d, 0x4ddd, 0x4e09, -0x4d5f, 0x4d52, 0x4e04, 0x4d4d, 0x4dc9, 0x4d7b, 0x4e22, 0x4e97, 0x4dc6, 0x4ec4, 0x4e0e, 0x4e14, 0x4ea4, 0x4d64, 0x4dbc, 0x4df1, 0x4e04, 0x4d9f, 0x4db5, 0x4dcb, 0x4dbc, 0x4d69, 0x4dc0, 0x4da8, 0x4e3e, 0x4e16, 0x4e73, 0x4d5d, 0x4e6c, 0x4eb7, 0x4e6f, 0x4de6, 0x4dc8, 0x4e02, 0x4e9e, 0x4d83, 0x4d8c, 0x4d6f, 0x4d25, 0x4dfd, 0x4e12, 0x4d9a, 0x4d58, 0x4e95, 0x4de8, 0x4e74, 0x4d50, 0x4df8, 0x4ddf, 0x4e0e, 0x4eb7, 0x4de1, 0x4d5f, 0x4d95, 0x4d8a, 0x4dcf, 0x4e35, 0x4dc7, 0x4d95, 0x4db6, 0x4db7, 0x4f00, 0x4d61, 0x4dc9, 0x4daa, 0x4daf, 0x4e2e, 0x4e12, 0x4e12, 0x4ed4, 0x4e2f, 0x4db5, 0x4e30, 0x4dfc, 0x4e4e, 0x4e39, 0x4e06, 0x4e30, 0x4ddd, 0x4e11, 0x4e6b, 0x4dc2, 0x4d96, 0x4e6a, 0x4d42, 0x4e30, 0x4e1f, 0x4d21, 0x4de8, 0x4e8c, 0x4dbc, 0x4dcc, 0x4e03, 0x4e61, 0x4df3, 0x4e23, -0x4d73, 0x4d6b, 0x4e65, 0x4d83, 0x4e07, 0x4de4, 0x4e20, 0x4ecc, 0x4d8e, 0x4eca, 0x4ddf, 0x4dc7, 0x4ead, 0x4d93, 0x4d81, 0x4df7, 0x4e5a, 0x4dac, 0x4d5e, 0x4dd7, 0x4e0c, 0x4d53, 0x4db1, 0x4cc3, 0x4e09, 0x4dac, 0x4e44, 0x4d97, 0x4df3, 0x4e6c, 0x4e2d, 0x4da1, 0x4df0, 0x4df1, 0x4e35, 0x4d86, 0x4d8f, 0x4da9, 0x4ce6, 0x4d92, 0x4e33, 0x4e02, 0x4d57, 0x4e1e, 0x4d6f, 0x4e9b, 0x4cf6, 0x4db4, 0x4df2, 0x4e0a, 0x4e79, 0x4db6, 0x4d5e, 0x4d87, 0x4d94, 0x4d98, 0x4dd8, 0x4d9f, 0x4d9b, 0x4e07, 0x4db5, 0x4e90, 0x4d8f, 0x4e04, 0x4d37, 0x4df3, 0x4dbb, 0x4e0b, 0x4e46, 0x4e72, 0x4e38, 0x4d88, 0x4de0, 0x4dd0, 0x4e34, 0x4e1c, 0x4ddc, 0x4de9, 0x4df7, 0x4dc5, 0x4e26, 0x4dcb, 0x4dc6, 0x4e10, 0x4db4, 0x4dda, 0x4e2c, 0x4d42, 0x4dda, 0x4e34, 0x4df9, 0x4df6, 0x4e4c, 0x4e60, 0x4dce, 0x4da1, -0x4dfb, 0x4ddc, 0x4dfc, 0x4df6, 0x4e60, 0x4e79, 0x4ee5, 0x4f0d, 0x4e50, 0x4f64, 0x4e51, 0x4e14, 0x4f68, 0x4e42, 0x4e0e, 0x4dea, 0x4e93, 0x4e28, 0x4dd7, 0x4e3a, 0x4e8b, 0x4d3a, 0x4e6a, 0x4dd7, 0x4e04, 0x4e77, 0x4e54, 0x4de5, 0x4e6e, 0x4ead, 0x4e4d, 0x4ed8, 0x4e36, 0x4e13, 0x4ef5, 0x4e57, 0x4e79, 0x4df7, 0x4dca, 0x4dd7, 0x4dc8, 0x4e46, 0x4df8, 0x4ea0, 0x4e57, 0x4eab, 0x4dbd, 0x4de8, 0x4ebc, 0x4ddd, 0x4f0b, 0x4e75, 0x4d8e, 0x4e2c, 0x4d68, 0x4e38, 0x4e5d, 0x4de2, 0x4e27, 0x4e44, 0x4e80, 0x4f24, 0x4db1, 0x4e59, 0x4dcb, 0x4df5, 0x4e8c, 0x4e7c, 0x4ec9, 0x4eca, 0x4e37, 0x4e6b, 0x4e74, 0x4e1e, 0x4ebb, 0x4e4e, 0x4e39, 0x4e60, 0x4e2e, 0x4e6a, 0x4ebd, 0x4ddd, 0x4dd9, 0x4e88, 0x4db2, 0x4e21, 0x4de8, 0x4daf, 0x4e9e, 0x4e7e, 0x4e1d, 0x4e78, 0x4e9e, 0x4e69, 0x4e48, 0x4df0, -0x4e18, 0x4e15, 0x4e0d, 0x4d9d, 0x4de2, 0x4db6, 0x4e03, 0x4e90, 0x4db2, 0x4f64, 0x4e3c, 0x4e44, 0x4f07, 0x4e61, 0x4e19, 0x4e2a, 0x4e27, 0x4dea, 0x4dda, 0x4e0d, 0x4e2a, 0x4d6f, 0x4df2, 0x4dae, 0x4e27, 0x4e12, 0x4e69, 0x4d56, 0x4e61, 0x4ec9, 0x4e75, 0x4dfb, 0x4df1, 0x4e4b, 0x4e66, 0x4e00, 0x4df6, 0x4dd5, 0x4d9c, 0x4dd9, 0x4dc1, 0x4e0f, 0x4dff, 0x4e66, 0x4e12, 0x4e5e, 0x4dc5, 0x4e06, 0x4ea9, 0x4d9a, 0x4edd, 0x4d9c, 0x4d79, 0x4dfa, 0x4dec, 0x4de7, 0x4e23, 0x4dde, 0x4d74, 0x4e25, 0x4e5e, 0x4ed2, 0x4dbe, 0x4eb2, 0x4d68, 0x4df8, 0x4e4e, 0x4e5f, 0x4e72, 0x4eae, 0x4e68, 0x4d79, 0x4e1b, 0x4df4, 0x4e5c, 0x4e0b, 0x4e38, 0x4e14, 0x4e30, 0x4e1e, 0x4e6e, 0x4da5, 0x4e15, 0x4e83, 0x4d85, 0x4e05, 0x4dc2, 0x4d58, 0x4dfe, 0x4e6a, 0x4dbd, 0x4df2, 0x4e78, 0x4e34, 0x4e58, 0x4de8, -0x4ed2, 0x4e61, 0x4e8f, 0x4ebf, 0x4ef5, 0x4e4a, 0x4ed0, 0x4f75, 0x4dcc, 0x500b, 0x4e3a, 0x4ed7, 0x4f6a, 0x4e6b, 0x4e3d, 0x4e69, 0x4ee1, 0x4ef6, 0x4de0, 0x4e8a, 0x4ea9, 0x4dd9, 0x4e98, 0x4e63, 0x4e1a, 0x4eb5, 0x4f27, 0x4dfb, 0x4eec, 0x4f05, 0x4ee4, 0x4ec3, 0x4ede, 0x4ed6, 0x4eee, 0x4e11, 0x4e56, 0x4dc8, 0x4e3e, 0x4e6d, 0x4ebb, 0x4e82, 0x4e5e, 0x4f27, 0x4ec1, 0x4f29, 0x4dc5, 0x4e07, 0x4f4b, 0x4e3a, 0x4f06, 0x4e9b, 0x4e12, 0x4e68, 0x4e1b, 0x4e6c, 0x4ec0, 0x4e53, 0x4dd4, 0x4e71, 0x4ea6, 0x4f59, 0x4d84, 0x4ed9, 0x4dd2, 0x4e56, 0x4ecf, 0x4e41, 0x4e5b, 0x4f78, 0x4eaa, 0x4ee4, 0x4ec2, 0x4e0f, 0x4ea8, 0x4e99, 0x4e0f, 0x4ed0, 0x4e36, 0x4e7e, 0x4ea4, 0x4e09, 0x4ea2, 0x4ed1, 0x4e45, 0x4e2d, 0x4e7f, 0x4dfe, 0x4ea7, 0x4f08, 0x4e5b, 0x4f1e, 0x4f1b, 0x4e8d, 0x4e63, 0x4e1f, -0x4d50, 0x4d58, 0x4dc6, 0x4d63, 0x4d51, 0x4cf4, 0x4dea, 0x4e93, 0x4d63, 0x4e41, 0x4d61, 0x4dd5, 0x4e3a, 0x4d60, 0x4dd1, 0x4d9f, 0x4e21, 0x4d1d, 0x4d52, 0x4d9e, 0x4df7, 0x4d53, 0x4d8c, 0x4d57, 0x4dad, 0x4d52, 0x4ddb, 0x4ccb, 0x4e0b, 0x4e33, 0x4e0d, 0x4e17, 0x4d8e, 0x4d64, 0x4e15, 0x4d7d, 0x4db1, 0x4d3c, 0x4d35, 0x4d81, 0x4d5b, 0x4ddf, 0x4d29, 0x4e15, 0x4d2c, 0x4dbe, 0x4ca5, 0x4d96, 0x4dd8, 0x4d8b, 0x4deb, 0x4d1f, 0x4d1e, 0x4d79, 0x4ce2, 0x4d9c, 0x4de9, 0x4d13, 0x4d46, 0x4d99, 0x4ddf, 0x4e32, 0x4d14, 0x4dae, 0x4d49, 0x4d7d, 0x4dd3, 0x4dc0, 0x4e07, 0x4e17, 0x4de2, 0x4d3c, 0x4dcc, 0x4dd0, 0x4dff, 0x4d24, 0x4d49, 0x4dc4, 0x4d5e, 0x4d94, 0x4e1d, 0x4d76, 0x4d29, 0x4dce, 0x4d50, 0x4d84, 0x4d8a, 0x4d39, 0x4dcc, 0x4dd3, 0x4d6b, 0x4de9, 0x4e08, 0x4d81, 0x4d94, 0x4d8a, -0x4d9f, 0x4e04, 0x4e12, 0x4d91, 0x4df5, 0x4d8b, 0x4dbb, 0x4ea8, 0x4da5, 0x4edd, 0x4da2, 0x4da1, 0x4e67, 0x4dae, 0x4db6, 0x4df3, 0x4e3c, 0x4d05, 0x4d7d, 0x4dcd, 0x4dbd, 0x4d86, 0x4da9, 0x4d85, 0x4dc9, 0x4daa, 0x4e3d, 0x4d34, 0x4dfa, 0x4e65, 0x4e16, 0x4ddf, 0x4dae, 0x4d7e, 0x4e6f, 0x4d42, 0x4d8c, 0x4d5c, 0x4d39, 0x4e04, 0x4d90, 0x4da6, 0x4d72, 0x4e42, 0x4e03, 0x4e15, 0x4d9b, 0x4dc6, 0x4e18, 0x4d68, 0x4e3e, 0x4da7, 0x4cfb, 0x4db9, 0x4db4, 0x4d47, 0x4dac, 0x4d0d, 0x4d91, 0x4de7, 0x4dcc, 0x4ece, 0x4d39, 0x4ddb, 0x4d3f, 0x4d17, 0x4e3d, 0x4e87, 0x4da9, 0x4e9d, 0x4df6, 0x4dba, 0x4de3, 0x4d73, 0x4ddf, 0x4d6c, 0x4df5, 0x4dc4, 0x4d89, 0x4dac, 0x4e55, 0x4d8d, 0x4d29, 0x4e7c, 0x4d3e, 0x4dc3, 0x4dc6, 0x4d16, 0x4db1, 0x4db6, 0x4d2e, 0x4e10, 0x4e8f, 0x4e53, 0x4def, 0x4d93, -0x4d7c, 0x4dc3, 0x4e09, 0x4e1d, 0x4e57, 0x4dfd, 0x4ea6, 0x4f29, 0x4e11, 0x4f37, 0x4e26, 0x4e3f, 0x4f1f, 0x4e26, 0x4e37, 0x4e0b, 0x4ea0, 0x4e58, 0x4d9f, 0x4df1, 0x4e40, 0x4d80, 0x4e42, 0x4da5, 0x4e6b, 0x4e59, 0x4e1a, 0x4dc2, 0x4e18, 0x4eae, 0x4eb2, 0x4e4e, 0x4e46, 0x4e70, 0x4e78, 0x4de5, 0x4dfb, 0x4d66, 0x4ddb, 0x4dcf, 0x4de8, 0x4e80, 0x4e25, 0x4efd, 0x4e0a, 0x4e74, 0x4d9c, 0x4e3a, 0x4ec3, 0x4e2a, 0x4ea9, 0x4db9, 0x4d98, 0x4e32, 0x4dfd, 0x4e29, 0x4e8b, 0x4da4, 0x4dda, 0x4e59, 0x4e6d, 0x4f14, 0x4da8, 0x4e73, 0x4e03, 0x4e0e, 0x4e3f, 0x4e4f, 0x4e67, 0x4ece, 0x4e6d, 0x4db3, 0x4e71, 0x4e03, 0x4e4d, 0x4e1d, 0x4e9e, 0x4deb, 0x4dd6, 0x4de6, 0x4ebf, 0x4da2, 0x4e25, 0x4eb3, 0x4dbd, 0x4e42, 0x4e33, 0x4dfa, 0x4e18, 0x4e34, 0x4db7, 0x4e62, 0x4e91, 0x4e55, 0x4e39, 0x4e0e, -0x4e1c, 0x4e0e, 0x4ea5, 0x4dfe, 0x4e42, 0x4e24, 0x4ee6, 0x4f64, 0x4e07, 0x4f49, 0x4e23, 0x4e79, 0x4f00, 0x4e39, 0x4e49, 0x4e64, 0x4efa, 0x4e6b, 0x4dcb, 0x4ebb, 0x4dec, 0x4e02, 0x4e6b, 0x4dad, 0x4e53, 0x4e8d, 0x4e1b, 0x4dbe, 0x4e5f, 0x4f4a, 0x4ea3, 0x4e1b, 0x4e26, 0x4e29, 0x4e9b, 0x4e22, 0x4e06, 0x4e0a, 0x4e12, 0x4dd4, 0x4e83, 0x4e6b, 0x4e03, 0x4ebb, 0x4e0e, 0x4eef, 0x4db8, 0x4de8, 0x4ef8, 0x4dfa, 0x4e70, 0x4dfe, 0x4db4, 0x4e48, 0x4db3, 0x4dd6, 0x4e90, 0x4e0f, 0x4e43, 0x4eb7, 0x4eb4, 0x4f39, 0x4db4, 0x4eea, 0x4dc9, 0x4e4f, 0x4e79, 0x4e82, 0x4e4d, 0x4ebe, 0x4ea0, 0x4e1d, 0x4e88, 0x4e2a, 0x4ea2, 0x4dff, 0x4e4a, 0x4e1e, 0x4e56, 0x4e42, 0x4eee, 0x4e13, 0x4e05, 0x4e8d, 0x4d84, 0x4e5f, 0x4e72, 0x4da9, 0x4e65, 0x4e82, 0x4dd0, 0x4eec, 0x4ebf, 0x4e6d, 0x4e05, 0x4e34, -0x4df7, 0x4df8, 0x4e19, 0x4dc2, 0x4e08, 0x4d96, 0x4e15, 0x4e8b, 0x4dd6, 0x4ee6, 0x4e2a, 0x4e81, 0x4eb0, 0x4dbc, 0x4db3, 0x4dc1, 0x4e4a, 0x4e07, 0x4de6, 0x4e38, 0x4e01, 0x4d73, 0x4de0, 0x4d6b, 0x4e18, 0x4e38, 0x4e4c, 0x4d81, 0x4e65, 0x4efa, 0x4e48, 0x4e20, 0x4e19, 0x4dc1, 0x4e7b, 0x4dd9, 0x4e18, 0x4dd3, 0x4d4c, 0x4ddd, 0x4dc0, 0x4e14, 0x4d8a, 0x4e9f, 0x4dbf, 0x4e45, 0x4d36, 0x4e03, 0x4e7c, 0x4d8b, 0x4e7a, 0x4dc3, 0x4d4d, 0x4dff, 0x4d84, 0x4ddd, 0x4e76, 0x4d7d, 0x4d74, 0x4e02, 0x4e10, 0x4e5f, 0x4d8c, 0x4e26, 0x4d8b, 0x4dd5, 0x4e33, 0x4e0a, 0x4df0, 0x4ee1, 0x4e21, 0x4d9d, 0x4e45, 0x4e22, 0x4e2a, 0x4de6, 0x4e22, 0x4e4c, 0x4de5, 0x4e0e, 0x4e9d, 0x4d29, 0x4d9c, 0x4e5e, 0x4d53, 0x4e15, 0x4e02, 0x4d64, 0x4dd4, 0x4e46, 0x4d64, 0x4e19, 0x4e5f, 0x4e3a, 0x4d78, 0x4db6, -0x4dec, 0x4ddb, 0x4e68, 0x4d9e, 0x4e3c, 0x4e3e, 0x4e41, 0x4f6c, 0x4e24, 0x4f2a, 0x4e2e, 0x4e7c, 0x4f37, 0x4dde, 0x4dd5, 0x4e75, 0x4eb7, 0x4dc9, 0x4dcb, 0x4e36, 0x4e72, 0x4df6, 0x4e52, 0x4db5, 0x4dfa, 0x4e34, 0x4ebf, 0x4dcd, 0x4e14, 0x4edf, 0x4e6b, 0x4e8b, 0x4e41, 0x4e5f, 0x4e82, 0x4dd6, 0x4e0a, 0x4db8, 0x4dc6, 0x4e34, 0x4e16, 0x4eb4, 0x4e02, 0x4ed2, 0x4e2d, 0x4ef5, 0x4dc5, 0x4e36, 0x4eb4, 0x4df0, 0x4f4d, 0x4de8, 0x4dac, 0x4e0a, 0x4d9c, 0x4e45, 0x4e79, 0x4dd1, 0x4db0, 0x4ec1, 0x4dfb, 0x4ee0, 0x4d70, 0x4e88, 0x4df2, 0x4df6, 0x4e3f, 0x4e33, 0x4ef4, 0x4f0b, 0x4e75, 0x4e45, 0x4e05, 0x4d91, 0x4e72, 0x4e1b, 0x4e66, 0x4e32, 0x4dd1, 0x4e14, 0x4e63, 0x4e10, 0x4df1, 0x4ebf, 0x4d89, 0x4e6a, 0x4e7b, 0x4d91, 0x4e3f, 0x4e61, 0x4e31, 0x4e7f, 0x4ddd, 0x4e16, 0x4e2b, 0x4de8, -0x4d4a, 0x4d3f, 0x4d6a, 0x4d6a, 0x4e2b, 0x4d74, 0x4de3, 0x4eb1, 0x4dd9, 0x4e75, 0x4da3, 0x4dde, 0x4e51, 0x4ded, 0x4e0a, 0x4d83, 0x4e72, 0x4dd7, 0x4d43, 0x4d74, 0x4e0c, 0x4da8, 0x4df0, 0x4d54, 0x4df0, 0x4e0a, 0x4e25, 0x4d74, 0x4e0f, 0x4e13, 0x4e18, 0x4e0e, 0x4e0c, 0x4dfa, 0x4e2f, 0x4d82, 0x4dbe, 0x4d6a, 0x4d42, 0x4d8b, 0x4ce1, 0x4dc9, 0x4d63, 0x4e1f, 0x4db1, 0x4e11, 0x4d22, 0x4df3, 0x4e58, 0x4d7d, 0x4ec2, 0x4d84, 0x4d46, 0x4d6e, 0x4d20, 0x4d68, 0x4dfe, 0x4d39, 0x4d23, 0x4d87, 0x4d7e, 0x4ec7, 0x4d2a, 0x4dbf, 0x4d44, 0x4d8f, 0x4e0a, 0x4dff, 0x4e30, 0x4e2e, 0x4d94, 0x4d89, 0x4e04, 0x4d72, 0x4dee, 0x4d41, 0x4dd4, 0x4d58, 0x4dba, 0x4d8f, 0x4e19, 0x4dac, 0x4db5, 0x4dea, 0x4ce2, 0x4e1a, 0x4d87, 0x4d54, 0x4d86, 0x4e3e, 0x4e04, 0x4e41, 0x4dd4, 0x4df5, 0x4e28, 0x4d92, -0x4d5e, 0x4dba, 0x4df8, 0x4d94, 0x4df0, 0x4d7d, 0x4dfc, 0x4e83, 0x4df1, 0x4e98, 0x4dd4, 0x4dc6, 0x4e84, 0x4daa, 0x4d97, 0x4d98, 0x4dfd, 0x4d9e, 0x4d4a, 0x4dd7, 0x4d7e, 0x4da5, 0x4dbf, 0x4dd1, 0x4de8, 0x4db7, 0x4dfd, 0x4d45, 0x4dba, 0x4e6c, 0x4df2, 0x4dfc, 0x4dc2, 0x4dad, 0x4e19, 0x4d4d, 0x4df1, 0x4dab, 0x4d76, 0x4da8, 0x4d60, 0x4e55, 0x4dab, 0x4e58, 0x4d6a, 0x4e07, 0x4d48, 0x4d82, 0x4e78, 0x4d73, 0x4e49, 0x4dbe, 0x4d0c, 0x4d80, 0x4dbb, 0x4d67, 0x4e27, 0x4d34, 0x4d72, 0x4de1, 0x4e1d, 0x4e81, 0x4cf1, 0x4e18, 0x4d84, 0x4d8d, 0x4e1b, 0x4e4d, 0x4dd0, 0x4e69, 0x4dc1, 0x4da0, 0x4e4a, 0x4d7b, 0x4dc0, 0x4d4f, 0x4de4, 0x4e1b, 0x4da1, 0x4e14, 0x4e2c, 0x4d53, 0x4d67, 0x4ecd, 0x4d98, 0x4dc2, 0x4dff, 0x4d37, 0x4deb, 0x4dcb, 0x4cff, 0x4de8, 0x4e0a, 0x4d80, 0x4dba, 0x4d6a, -0x4d78, 0x4d5c, 0x4dbd, 0x4d18, 0x4d9d, 0x4d98, 0x4d95, 0x4e53, 0x4d96, 0x4e9f, 0x4db1, 0x4dea, 0x4ea8, 0x4d7f, 0x4d8b, 0x4d7a, 0x4de6, 0x4d5d, 0x4d91, 0x4da5, 0x4da8, 0x4d38, 0x4ddd, 0x4d87, 0x4d57, 0x4dfd, 0x4e38, 0x4d7b, 0x4d9a, 0x4e34, 0x4e26, 0x4da2, 0x4dc3, 0x4d63, 0x4de6, 0x4d54, 0x4dec, 0x4cfb, 0x4d33, 0x4d01, 0x4d50, 0x4da9, 0x4da2, 0x4e13, 0x4dbf, 0x4dff, 0x4d20, 0x4de2, 0x4e2b, 0x4d73, 0x4e87, 0x4d96, 0x4ce3, 0x4d66, 0x4d63, 0x4d8a, 0x4e2e, 0x4d32, 0x4d64, 0x4da9, 0x4da7, 0x4e99, 0x4cff, 0x4e26, 0x4d53, 0x4d79, 0x4df7, 0x4daf, 0x4e47, 0x4e48, 0x4d6a, 0x4dc0, 0x4ddd, 0x4d4d, 0x4dfb, 0x4d9b, 0x4db0, 0x4d67, 0x4ddb, 0x4dfc, 0x4d88, 0x4d4f, 0x4cfd, 0x4e65, 0x4d56, 0x4dca, 0x4dcb, 0x4cdd, 0x4d73, 0x4db6, 0x4d42, 0x4dae, 0x4e26, 0x4d76, 0x4d67, 0x4d82, -0x4dbf, 0x4df6, 0x4e63, 0x4dbc, 0x4edf, 0x4e0f, 0x4dfc, 0x4ecc, 0x4e07, 0x4f24, 0x4e00, 0x4e3b, 0x4f2d, 0x4e76, 0x4e0c, 0x4d9b, 0x4ecf, 0x4e60, 0x4df9, 0x4e4e, 0x4e0e, 0x4dd0, 0x4e7d, 0x4dfb, 0x4e65, 0x4eab, 0x4e78, 0x4e0c, 0x4e44, 0x4e4c, 0x4e70, 0x4e9f, 0x4e78, 0x4e01, 0x4e8d, 0x4e02, 0x4e1e, 0x4dcd, 0x4dce, 0x4dac, 0x4e25, 0x4e11, 0x4df9, 0x4ee4, 0x4e60, 0x4eb6, 0x4dc2, 0x4e32, 0x4f0f, 0x4dad, 0x4f16, 0x4dac, 0x4d37, 0x4e75, 0x4daf, 0x4df5, 0x4e91, 0x4db6, 0x4dc3, 0x4e51, 0x4e1a, 0x4f04, 0x4dd3, 0x4e22, 0x4dcd, 0x4dd4, 0x4e5a, 0x4e38, 0x4e9f, 0x4e7a, 0x4ea4, 0x4e59, 0x4e63, 0x4e09, 0x4e3f, 0x4dff, 0x4e0b, 0x4e1b, 0x4e1b, 0x4e7a, 0x4e5f, 0x4d96, 0x4dc5, 0x4e7d, 0x4d96, 0x4e22, 0x4e39, 0x4d5a, 0x4e54, 0x4eb5, 0x4e10, 0x4e66, 0x4e83, 0x4e2c, 0x4e34, 0x4d5a, -0x4d71, 0x4dd1, 0x4e56, 0x4d84, 0x4dcc, 0x4d86, 0x4e2f, 0x4e5a, 0x4dc0, 0x4ea7, 0x4e1e, 0x4e25, 0x4ea5, 0x4d59, 0x4d96, 0x4e00, 0x4e1c, 0x4d7f, 0x4d79, 0x4e33, 0x4d81, 0x4d99, 0x4d92, 0x4d4f, 0x4d9b, 0x4dec, 0x4e45, 0x4d44, 0x4dcf, 0x4e43, 0x4e26, 0x4dfe, 0x4dd8, 0x4e01, 0x4e6b, 0x4dd2, 0x4ddd, 0x4db8, 0x4d2e, 0x4dec, 0x4de0, 0x4e0f, 0x4da8, 0x4ed9, 0x4da5, 0x4e7f, 0x4cfb, 0x4d7b, 0x4e07, 0x4da2, 0x4e9f, 0x4d95, 0x4d3b, 0x4db7, 0x4da1, 0x4dc7, 0x4dfb, 0x4d73, 0x4d74, 0x4dfb, 0x4df9, 0x4ed7, 0x4d61, 0x4de7, 0x4d74, 0x4db0, 0x4da0, 0x4e05, 0x4e52, 0x4e67, 0x4e3b, 0x4d86, 0x4dca, 0x4ded, 0x4d7e, 0x4d87, 0x4dee, 0x4dec, 0x4dd8, 0x4df7, 0x4e19, 0x4d39, 0x4da2, 0x4e7b, 0x4d5f, 0x4de3, 0x4de7, 0x4d6e, 0x4dad, 0x4e39, 0x4d1b, 0x4e13, 0x4dfe, 0x4de6, 0x4dad, 0x4dd7, -0x4e08, 0x4de7, 0x4e3b, 0x4e57, 0x4ec6, 0x4e89, 0x4eae, 0x4f6b, 0x4e5a, 0x4fbb, 0x4e68, 0x4e30, 0x4f54, 0x4e46, 0x4e31, 0x4e01, 0x4f2d, 0x4e6e, 0x4e0a, 0x4e3e, 0x4ead, 0x4dd6, 0x4e96, 0x4e12, 0x4e62, 0x4e8d, 0x4ec0, 0x4e03, 0x4e58, 0x4eec, 0x4ea5, 0x4eac, 0x4e98, 0x4e68, 0x4efa, 0x4e20, 0x4e2d, 0x4e0a, 0x4e29, 0x4e36, 0x4e62, 0x4e6e, 0x4dc5, 0x4ee7, 0x4e9f, 0x4ef0, 0x4e06, 0x4e0e, 0x4f08, 0x4df4, 0x4f16, 0x4dc9, 0x4d49, 0x4e98, 0x4dcd, 0x4e73, 0x4ecb, 0x4e7e, 0x4e22, 0x4e87, 0x4e90, 0x4f22, 0x4dd9, 0x4ed8, 0x4e21, 0x4e27, 0x4e54, 0x4e73, 0x4e8d, 0x4f3b, 0x4e98, 0x4dfe, 0x4ec4, 0x4e22, 0x4e8b, 0x4e79, 0x4e10, 0x4e68, 0x4e06, 0x4e7a, 0x4ef9, 0x4e1c, 0x4e11, 0x4e9c, 0x4dc7, 0x4e2a, 0x4dec, 0x4e0c, 0x4e55, 0x4e89, 0x4e5f, 0x4f06, 0x4eaf, 0x4e44, 0x4ea0, 0x4e10, -0x4dbc, 0x4dc0, 0x4e13, 0x4da8, 0x4e6c, 0x4e0f, 0x4e94, 0x4ee8, 0x4df0, 0x4f1d, 0x4e41, 0x4e33, 0x4f18, 0x4dbd, 0x4df9, 0x4e19, 0x4e6e, 0x4d98, 0x4d78, 0x4ddf, 0x4e5e, 0x4dad, 0x4dbf, 0x4d88, 0x4e07, 0x4e26, 0x4e1c, 0x4dd3, 0x4e6d, 0x4ef3, 0x4e99, 0x4e3d, 0x4e3c, 0x4e6b, 0x4e6f, 0x4e0e, 0x4df7, 0x4dab, 0x4dd2, 0x4e20, 0x4e18, 0x4dfe, 0x4da4, 0x4e68, 0x4e1e, 0x4e3d, 0x4d7f, 0x4df2, 0x4eb9, 0x4dda, 0x4ec6, 0x4ddb, 0x4d6c, 0x4e1c, 0x4d9e, 0x4e23, 0x4e36, 0x4d74, 0x4dd5, 0x4e31, 0x4e36, 0x4f13, 0x4d62, 0x4e07, 0x4d70, 0x4df5, 0x4e70, 0x4e46, 0x4e5d, 0x4eb4, 0x4e6d, 0x4de1, 0x4e64, 0x4e17, 0x4e36, 0x4e2f, 0x4e29, 0x4e32, 0x4dde, 0x4dc9, 0x4e74, 0x4de5, 0x4de6, 0x4e52, 0x4da3, 0x4e0e, 0x4e4b, 0x4daf, 0x4dec, 0x4ebe, 0x4dc5, 0x4e10, 0x4e83, 0x4e8d, 0x4e13, 0x4e0d, -0x4de6, 0x4e03, 0x4e4f, 0x4d8b, 0x4e9b, 0x4e0f, 0x4ea4, 0x4ed6, 0x4dca, 0x4f1d, 0x4e28, 0x4e48, 0x4eff, 0x4e00, 0x4e96, 0x4e11, 0x4eb8, 0x4dae, 0x4df2, 0x4e6d, 0x4e65, 0x4e1a, 0x4e33, 0x4e04, 0x4e00, 0x4e74, 0x4eca, 0x4df9, 0x4e32, 0x4e8c, 0x4eac, 0x4e81, 0x4e27, 0x4e2a, 0x4e53, 0x4de1, 0x4df1, 0x4d9c, 0x4dd9, 0x4e37, 0x4e26, 0x4e2f, 0x4d63, 0x4edb, 0x4e62, 0x4ebd, 0x4dd5, 0x4e05, 0x4eb9, 0x4dd1, 0x4f1c, 0x4dee, 0x4d5f, 0x4e2c, 0x4e1e, 0x4e07, 0x4e03, 0x4ddf, 0x4dc5, 0x4dd1, 0x4e05, 0x4edb, 0x4dca, 0x4e5a, 0x4d80, 0x4dd5, 0x4e75, 0x4e6a, 0x4e69, 0x4eb3, 0x4e49, 0x4e88, 0x4ea2, 0x4e28, 0x4ea6, 0x4e21, 0x4e0a, 0x4e2f, 0x4e39, 0x4e43, 0x4e3b, 0x4e07, 0x4d9a, 0x4e97, 0x4d98, 0x4e81, 0x4dd9, 0x4d1d, 0x4e15, 0x4e7c, 0x4e15, 0x4e48, 0x4ec0, 0x4e99, 0x4e31, 0x4e50, -0x4d4e, 0x4dcf, 0x4e16, 0x4e0f, 0x4e3d, 0x4d5b, 0x4dd0, 0x4ed8, 0x4dfa, 0x4f4d, 0x4dbd, 0x4e5d, 0x4e9b, 0x4d9b, 0x4e37, 0x4dcd, 0x4e8e, 0x4e45, 0x4d87, 0x4dfa, 0x4e43, 0x4dd6, 0x4e1c, 0x4d8a, 0x4e32, 0x4ddb, 0x4e30, 0x4d75, 0x4db6, 0x4eca, 0x4dcd, 0x4e08, 0x4e13, 0x4e61, 0x4e35, 0x4dd9, 0x4dbc, 0x4d9e, 0x4d85, 0x4dfe, 0x4e2a, 0x4e31, 0x4d76, 0x4e50, 0x4dcc, 0x4e8e, 0x4d2d, 0x4de9, 0x4eaf, 0x4d8a, 0x4ebd, 0x4db0, 0x4d28, 0x4def, 0x4da2, 0x4db8, 0x4e71, 0x4dc0, 0x4d07, 0x4dd9, 0x4e0d, 0x4eec, 0x4dd4, 0x4dff, 0x4d97, 0x4ded, 0x4e33, 0x4e55, 0x4e1f, 0x4e88, 0x4e25, 0x4da1, 0x4e0d, 0x4de9, 0x4e00, 0x4dc7, 0x4de5, 0x4dc9, 0x4e36, 0x4dd4, 0x4eae, 0x4df1, 0x4e29, 0x4ecc, 0x4d81, 0x4e1d, 0x4e1a, 0x4d93, 0x4dd0, 0x4e67, 0x4ddf, 0x4e49, 0x4e29, 0x4dfc, 0x4e4e, 0x4e15, -0x4d53, 0x4d54, 0x4dcb, 0x4d20, 0x4d9f, 0x4d7b, 0x4db1, 0x4e61, 0x4d86, 0x4e2b, 0x4d85, 0x4dca, 0x4e88, 0x4d8f, 0x4d7c, 0x4dbd, 0x4dd1, 0x4d53, 0x4cf8, 0x4e33, 0x4daa, 0x4d52, 0x4d77, 0x4d28, 0x4db3, 0x4db7, 0x4da2, 0x4d5f, 0x4d8b, 0x4e40, 0x4e0a, 0x4d4e, 0x4d44, 0x4d89, 0x4dd4, 0x4ced, 0x4d7e, 0x4d23, 0x4d3b, 0x4d33, 0x4d97, 0x4dbe, 0x4d4e, 0x4e18, 0x4d25, 0x4e37, 0x4cec, 0x4d58, 0x4dd8, 0x4d79, 0x4e3c, 0x4d8d, 0x4d0e, 0x4d56, 0x4ce2, 0x4d47, 0x4dec, 0x4d34, 0x4d24, 0x4df8, 0x4d54, 0x4dc0, 0x4ce1, 0x4db2, 0x4d4d, 0x4d59, 0x4d7b, 0x4db2, 0x4db9, 0x4e11, 0x4d44, 0x4daa, 0x4dc6, 0x4d61, 0x4db8, 0x4d7d, 0x4d94, 0x4dc4, 0x4d64, 0x4da8, 0x4db3, 0x4d5b, 0x4d48, 0x4e4c, 0x4d38, 0x4cf7, 0x4dda, 0x4ce7, 0x4de8, 0x4de0, 0x4d34, 0x4dc4, 0x4e01, 0x4db9, 0x4d72, 0x4d31, -0x4d50, 0x4d8a, 0x4e4e, 0x4d70, 0x4e36, 0x4db3, 0x4e2c, 0x4ec3, 0x4de3, 0x4f03, 0x4e28, 0x4e59, 0x4ec1, 0x4dee, 0x4db6, 0x4dfa, 0x4e6c, 0x4de5, 0x4d40, 0x4dc9, 0x4e59, 0x4d89, 0x4dc7, 0x4da5, 0x4d83, 0x4e48, 0x4e69, 0x4df2, 0x4e0e, 0x4ebb, 0x4e4c, 0x4e39, 0x4e07, 0x4e1c, 0x4e5c, 0x4db9, 0x4e05, 0x4d7f, 0x4d54, 0x4de6, 0x4dca, 0x4df7, 0x4d7c, 0x4e50, 0x4e43, 0x4e69, 0x4da0, 0x4e1d, 0x4e57, 0x4db8, 0x4eb1, 0x4e23, 0x4d6d, 0x4e1c, 0x4d74, 0x4e16, 0x4e3b, 0x4dcc, 0x4d94, 0x4e5b, 0x4e25, 0x4ec5, 0x4d65, 0x4e1c, 0x4d5b, 0x4ded, 0x4e12, 0x4e06, 0x4e1a, 0x4eb6, 0x4de4, 0x4dbf, 0x4e1a, 0x4e3b, 0x4e57, 0x4dff, 0x4dd6, 0x4e6a, 0x4dc5, 0x4e4f, 0x4e81, 0x4d7e, 0x4dc1, 0x4e84, 0x4dd8, 0x4dff, 0x4e2f, 0x4dc2, 0x4db1, 0x4e70, 0x4de1, 0x4de9, 0x4e31, 0x4e11, 0x4e46, 0x4dbf, -0x4daa, 0x4da3, 0x4dcd, 0x4dce, 0x4d97, 0x4d78, 0x4e0a, 0x4eeb, 0x4ddb, 0x4f2f, 0x4dbe, 0x4e55, 0x4eca, 0x4e37, 0x4deb, 0x4d90, 0x4e6f, 0x4dbd, 0x4d88, 0x4e24, 0x4d99, 0x4d4a, 0x4dd8, 0x4ceb, 0x4d9c, 0x4e53, 0x4e45, 0x4d8f, 0x4dc8, 0x4e40, 0x4e47, 0x4dff, 0x4e47, 0x4dba, 0x4e4b, 0x4d96, 0x4dc2, 0x4db6, 0x4d80, 0x4dbc, 0x4d66, 0x4dec, 0x4d6b, 0x4e8e, 0x4e05, 0x4e1c, 0x4d0c, 0x4da3, 0x4e61, 0x4d3a, 0x4e7c, 0x4d5f, 0x4d0d, 0x4db2, 0x4db0, 0x4dec, 0x4dbd, 0x4d72, 0x4d40, 0x4db3, 0x4e06, 0x4e52, 0x4d18, 0x4e65, 0x4d80, 0x4d43, 0x4e0b, 0x4dc6, 0x4e60, 0x4e71, 0x4e0e, 0x4d92, 0x4e0a, 0x4d7c, 0x4dbb, 0x4d6b, 0x4df5, 0x4d64, 0x4d99, 0x4d9a, 0x4de1, 0x4d52, 0x4d93, 0x4de8, 0x4d70, 0x4e12, 0x4db2, 0x4d20, 0x4de8, 0x4df9, 0x4dcb, 0x4e62, 0x4e5e, 0x4dd3, 0x4d3f, 0x4d5a, -0x4d97, 0x4db8, 0x4e07, 0x4d81, 0x4e2e, 0x4db2, 0x4e2a, 0x4f25, 0x4ddf, 0x4f35, 0x4d9b, 0x4e84, 0x4ecf, 0x4df4, 0x4e15, 0x4e10, 0x4e45, 0x4e11, 0x4d9c, 0x4dda, 0x4e85, 0x4d3e, 0x4e4e, 0x4d9c, 0x4de0, 0x4e49, 0x4e53, 0x4d84, 0x4e03, 0x4eb8, 0x4e40, 0x4e82, 0x4e10, 0x4e2e, 0x4e7c, 0x4dd6, 0x4de8, 0x4d6f, 0x4db7, 0x4de3, 0x4e01, 0x4db7, 0x4da6, 0x4e61, 0x4e0a, 0x4e53, 0x4dc8, 0x4df9, 0x4ed6, 0x4d8b, 0x4ef9, 0x4da4, 0x4dd6, 0x4dc9, 0x4db2, 0x4dee, 0x4e8c, 0x4d86, 0x4d9c, 0x4e36, 0x4e13, 0x4ebd, 0x4d11, 0x4e28, 0x4d81, 0x4e22, 0x4e2f, 0x4e4f, 0x4ed6, 0x4e82, 0x4e2f, 0x4e17, 0x4e48, 0x4d87, 0x4e49, 0x4e4e, 0x4e39, 0x4e45, 0x4ddc, 0x4df7, 0x4e29, 0x4df2, 0x4dc2, 0x4eef, 0x4d9b, 0x4df4, 0x4e4a, 0x4d73, 0x4e0f, 0x4e7e, 0x4de6, 0x4e4c, 0x4e43, 0x4e12, 0x4e38, 0x4de6, -0x4dca, 0x4e05, 0x4e41, 0x4da4, 0x4e08, 0x4dc1, 0x4dfa, 0x4ed4, 0x4d4c, 0x4ee9, 0x4dfb, 0x4dd2, 0x4e70, 0x4ddc, 0x4d8e, 0x4dc3, 0x4e7b, 0x4dec, 0x4d8f, 0x4e28, 0x4e1d, 0x4d79, 0x4dde, 0x4db1, 0x4df1, 0x4dd5, 0x4e31, 0x4d3a, 0x4ddd, 0x4e3b, 0x4e47, 0x4df8, 0x4dec, 0x4d7f, 0x4e3c, 0x4d7f, 0x4d7f, 0x4d62, 0x4d46, 0x4dc9, 0x4df7, 0x4de7, 0x4ddf, 0x4e5c, 0x4dc1, 0x4e44, 0x4d43, 0x4db3, 0x4e4d, 0x4dae, 0x4e60, 0x4dbf, 0x4d71, 0x4de0, 0x4dba, 0x4dc1, 0x4e2a, 0x4d6d, 0x4dab, 0x4df8, 0x4de5, 0x4e56, 0x4d64, 0x4dcc, 0x4e01, 0x4dce, 0x4e3a, 0x4e88, 0x4dff, 0x4e6b, 0x4e35, 0x4e05, 0x4de3, 0x4dc4, 0x4e69, 0x4dc4, 0x4de5, 0x4df8, 0x4da5, 0x4e0e, 0x4d96, 0x4dc7, 0x4d53, 0x4ec2, 0x4d82, 0x4ddf, 0x4dac, 0x4d33, 0x4d9b, 0x4e30, 0x4d97, 0x4e3b, 0x4e89, 0x4e5c, 0x4db9, 0x4d9d, -0x4e27, 0x4e5c, 0x4f2b, 0x4e51, 0x4ee2, 0x4e60, 0x4f10, 0x4f9b, 0x4e52, 0x4f9e, 0x4e9d, 0x4e87, 0x4f8a, 0x4e8b, 0x4e8b, 0x4e96, 0x4f19, 0x4f34, 0x4e0a, 0x4ece, 0x4eec, 0x4e27, 0x4ea4, 0x4e3e, 0x4eb1, 0x4e34, 0x4ed1, 0x4ea7, 0x4f40, 0x4f9a, 0x4f51, 0x4e8e, 0x4f25, 0x4ec4, 0x4f12, 0x4ea6, 0x4e7c, 0x4e17, 0x4de8, 0x4e73, 0x4ebf, 0x4e45, 0x4e3c, 0x4f00, 0x4e94, 0x4f3d, 0x4e02, 0x4ea7, 0x4f5b, 0x4eab, 0x4f40, 0x4e4d, 0x4e05, 0x4e79, 0x4e13, 0x4e81, 0x4f20, 0x4e9d, 0x4e6d, 0x4eda, 0x4ec8, 0x4f9e, 0x4e39, 0x4ebb, 0x4de4, 0x4e67, 0x4ed6, 0x4f43, 0x4eef, 0x4f8e, 0x4edd, 0x4e5d, 0x4ebe, 0x4f3b, 0x4f37, 0x4e7a, 0x4ec0, 0x4ecc, 0x4f01, 0x4ef6, 0x4f29, 0x4e9d, 0x4e7a, 0x4ed0, 0x4e93, 0x4ef1, 0x4eb9, 0x4e43, 0x4eca, 0x4f54, 0x4e4a, 0x4e98, 0x4f5d, 0x4f33, 0x4e9e, 0x4e9f, -0x4dd7, 0x4ebb, 0x4e87, 0x4e2d, 0x4ed6, 0x4ed8, 0x4e71, 0x4f2b, 0x4e32, 0x4f42, 0x4eb7, 0x4e64, 0x4f8f, 0x4e1a, 0x4e53, 0x4ec8, 0x4e44, 0x4e5b, 0x4e7e, 0x4e80, 0x4ec2, 0x4e18, 0x4e55, 0x4e2e, 0x4e9e, 0x4ec8, 0x4e5f, 0x4dfb, 0x4e68, 0x4f3b, 0x4e83, 0x4e36, 0x4ec6, 0x4e3e, 0x4ee6, 0x4e26, 0x4e82, 0x4e57, 0x4e3b, 0x4e3d, 0x4e2f, 0x4e84, 0x4e1f, 0x4f3a, 0x4e2c, 0x4ebc, 0x4e1e, 0x4e4b, 0x4f06, 0x4e2a, 0x4f35, 0x4e4a, 0x4dc1, 0x4e5e, 0x4e0d, 0x4e33, 0x4e6b, 0x4daa, 0x4ddc, 0x4e74, 0x4e61, 0x4f4e, 0x4e23, 0x4e9d, 0x4dc1, 0x4df8, 0x4e6c, 0x4ed2, 0x4ea7, 0x4f25, 0x4e7b, 0x4e3e, 0x4e69, 0x4e17, 0x4ed4, 0x4e04, 0x4e81, 0x4e74, 0x4e3a, 0x4edf, 0x4e87, 0x4e5a, 0x4e63, 0x4ea2, 0x4ddd, 0x4eaf, 0x4eac, 0x4db0, 0x4ea1, 0x4efd, 0x4e60, 0x4e88, 0x4df4, 0x4f25, 0x4e13, 0x4e34, -0x4e0d, 0x4dd9, 0x4e1e, 0x4dbd, 0x4e05, 0x4e05, 0x4e9b, 0x4ef7, 0x4e05, 0x4ee9, 0x4e79, 0x4e50, 0x4f3d, 0x4e4d, 0x4e45, 0x4ec1, 0x4eaa, 0x4e11, 0x4da2, 0x4e41, 0x4e50, 0x4df9, 0x4e0e, 0x4dff, 0x4e54, 0x4e44, 0x4e2b, 0x4e1e, 0x4e8f, 0x4ef0, 0x4e44, 0x4e5a, 0x4e65, 0x4e53, 0x4e7c, 0x4e31, 0x4e00, 0x4d7c, 0x4e09, 0x4e2d, 0x4e8c, 0x4e18, 0x4def, 0x4e73, 0x4e1e, 0x4eb6, 0x4d9e, 0x4e23, 0x4eaa, 0x4e62, 0x4ee7, 0x4e4f, 0x4d89, 0x4e3c, 0x4e0f, 0x4e80, 0x4e2e, 0x4e16, 0x4df6, 0x4e79, 0x4e9e, 0x4ef9, 0x4d5f, 0x4e39, 0x4d87, 0x4e04, 0x4eda, 0x4e99, 0x4e75, 0x4f32, 0x4e55, 0x4e47, 0x4e23, 0x4e5a, 0x4eb0, 0x4e39, 0x4e6d, 0x4e3b, 0x4e5c, 0x4e89, 0x4ec6, 0x4e16, 0x4e36, 0x4f0b, 0x4d76, 0x4e1a, 0x4e5b, 0x4dc4, 0x4dfb, 0x4e5b, 0x4e5f, 0x4e8c, 0x4e8b, 0x4e7d, 0x4e14, 0x4df3, -0x4db1, 0x4da2, 0x4e28, 0x4dc6, 0x4e3d, 0x4e08, 0x4df4, 0x4e7e, 0x4db8, 0x4ee4, 0x4e5c, 0x4df9, 0x4eee, 0x4db3, 0x4daf, 0x4e26, 0x4e20, 0x4dee, 0x4df8, 0x4e2e, 0x4e2a, 0x4d7e, 0x4e32, 0x4d94, 0x4e1b, 0x4e49, 0x4e84, 0x4dc4, 0x4dff, 0x4ead, 0x4e55, 0x4e4a, 0x4e04, 0x4e07, 0x4ebb, 0x4dac, 0x4daf, 0x4ded, 0x4d53, 0x4d9a, 0x4dd7, 0x4de6, 0x4d5b, 0x4e3d, 0x4dff, 0x4ea8, 0x4d9d, 0x4da4, 0x4e1e, 0x4d92, 0x4e7a, 0x4d3e, 0x4d57, 0x4db5, 0x4d77, 0x4d96, 0x4e1a, 0x4d7a, 0x4d74, 0x4de0, 0x4dba, 0x4eb6, 0x4d49, 0x4e27, 0x4d55, 0x4dca, 0x4e02, 0x4e83, 0x4e6b, 0x4eaf, 0x4e2b, 0x4de9, 0x4e53, 0x4db5, 0x4e0b, 0x4dd7, 0x4dbe, 0x4df5, 0x4dd0, 0x4dc9, 0x4e66, 0x4d69, 0x4e0e, 0x4e3b, 0x4d50, 0x4dff, 0x4de3, 0x4d65, 0x4dd4, 0x4e0e, 0x4df0, 0x4e52, 0x4ee9, 0x4e3e, 0x4e53, 0x4dbd, -0x4d94, 0x4d90, 0x4e41, 0x4d3c, 0x4de7, 0x4d6d, 0x4dfa, 0x4e97, 0x4de8, 0x4e5c, 0x4dde, 0x4dfe, 0x4e81, 0x4d8a, 0x4d99, 0x4dce, 0x4e82, 0x4de2, 0x4dba, 0x4dab, 0x4dc5, 0x4d4e, 0x4d64, 0x4db5, 0x4d8c, 0x4dcb, 0x4dc9, 0x4d74, 0x4dfa, 0x4e2f, 0x4e29, 0x4db3, 0x4deb, 0x4d7e, 0x4ddd, 0x4d9a, 0x4d6e, 0x4da2, 0x4cdf, 0x4d82, 0x4da5, 0x4dd1, 0x4da7, 0x4e45, 0x4dba, 0x4df1, 0x4d49, 0x4d32, 0x4e97, 0x4d3f, 0x4e88, 0x4d72, 0x4cfe, 0x4dd3, 0x4d33, 0x4d53, 0x4db0, 0x4d6b, 0x4d5f, 0x4e02, 0x4dcb, 0x4e93, 0x4d95, 0x4dc5, 0x4da2, 0x4d86, 0x4ddf, 0x4df4, 0x4dac, 0x4e0d, 0x4dd1, 0x4d3f, 0x4df6, 0x4d42, 0x4e24, 0x4dac, 0x4e2e, 0x4da2, 0x4db6, 0x4df0, 0x4dd6, 0x4d6f, 0x4d6b, 0x4e2f, 0x4d51, 0x4e39, 0x4dfd, 0x4d12, 0x4d9a, 0x4ded, 0x4d3a, 0x4dec, 0x4e1b, 0x4e0d, 0x4dbc, 0x4dad, -0x4d87, 0x4dd5, 0x4e10, 0x4dd0, 0x4e3f, 0x4ddf, 0x4ea2, 0x4ec6, 0x4ddd, 0x4f15, 0x4df0, 0x4e47, 0x4ed0, 0x4dcc, 0x4dfa, 0x4de6, 0x4e44, 0x4dd7, 0x4da0, 0x4e0c, 0x4db8, 0x4d9c, 0x4dde, 0x4dcf, 0x4dfe, 0x4e85, 0x4e7b, 0x4da6, 0x4e87, 0x4e73, 0x4e85, 0x4e39, 0x4de2, 0x4e46, 0x4e55, 0x4dc6, 0x4d80, 0x4d68, 0x4d9e, 0x4e35, 0x4e1c, 0x4e41, 0x4d37, 0x4eab, 0x4e25, 0x4ea0, 0x4dab, 0x4dd5, 0x4e40, 0x4dc4, 0x4ea6, 0x4e0b, 0x4d35, 0x4ddd, 0x4d6f, 0x4dec, 0x4e3e, 0x4d86, 0x4dc7, 0x4e1b, 0x4dd1, 0x4e7d, 0x4d5b, 0x4e56, 0x4d3e, 0x4dc6, 0x4e47, 0x4e41, 0x4deb, 0x4ea3, 0x4e0b, 0x4e1e, 0x4e4f, 0x4d7d, 0x4e69, 0x4e05, 0x4e07, 0x4de1, 0x4dd4, 0x4df4, 0x4e23, 0x4daa, 0x4d5c, 0x4e50, 0x4d8c, 0x4e56, 0x4df2, 0x4d1b, 0x4db1, 0x4e56, 0x4d5c, 0x4e3b, 0x4ea7, 0x4e3d, 0x4dc1, 0x4dce, -0x4dd5, 0x4e1b, 0x4f0a, 0x4d93, 0x4e7e, 0x4e1d, 0x4e8c, 0x4f7b, 0x4df4, 0x4f3f, 0x4e9f, 0x4e5e, 0x4f33, 0x4e21, 0x4e55, 0x4e7b, 0x4ec6, 0x4e75, 0x4e2f, 0x4e95, 0x4ead, 0x4df1, 0x4e00, 0x4e1b, 0x4e6a, 0x4e69, 0x4f05, 0x4dce, 0x4e65, 0x4ecc, 0x4e72, 0x4e86, 0x4ea7, 0x4e4c, 0x4ef1, 0x4e36, 0x4e28, 0x4dd8, 0x4dca, 0x4e83, 0x4e23, 0x4e65, 0x4e7f, 0x4f31, 0x4ebf, 0x4e83, 0x4d66, 0x4e3d, 0x4e9e, 0x4e64, 0x4eba, 0x4e12, 0x4d90, 0x4e34, 0x4e11, 0x4e31, 0x4e89, 0x4de1, 0x4dca, 0x4e9f, 0x4e43, 0x4f58, 0x4dc9, 0x4e96, 0x4e38, 0x4dfa, 0x4e94, 0x4eb1, 0x4ed4, 0x4f1b, 0x4ee2, 0x4e92, 0x4e30, 0x4e86, 0x4eb1, 0x4e4e, 0x4ea0, 0x4e74, 0x4e52, 0x4ebc, 0x4edd, 0x4dd8, 0x4e1d, 0x4ee2, 0x4df0, 0x4eb0, 0x4e12, 0x4dd4, 0x4e3d, 0x4e9e, 0x4e31, 0x4e44, 0x4ecb, 0x4ebb, 0x4e2c, 0x4e6d, -0x4dc2, 0x4e12, 0x4e1c, 0x4de3, 0x4dfc, 0x4df2, 0x4e09, 0x4ed4, 0x4e52, 0x4f49, 0x4e69, 0x4dc9, 0x4f08, 0x4e73, 0x4e21, 0x4e51, 0x4e85, 0x4e2d, 0x4da5, 0x4e0c, 0x4e09, 0x4d7b, 0x4de6, 0x4dec, 0x4e9e, 0x4e06, 0x4ea8, 0x4da2, 0x4e74, 0x4eac, 0x4e13, 0x4e45, 0x4e43, 0x4dea, 0x4e85, 0x4dbb, 0x4df5, 0x4dc4, 0x4d87, 0x4e18, 0x4de4, 0x4e20, 0x4dd5, 0x4ebd, 0x4e32, 0x4e40, 0x4de9, 0x4e07, 0x4e5a, 0x4de1, 0x4f32, 0x4e22, 0x4d57, 0x4e23, 0x4ded, 0x4dd4, 0x4e11, 0x4dd4, 0x4dfd, 0x4e5d, 0x4e9f, 0x4ed0, 0x4d86, 0x4ea8, 0x4d69, 0x4de3, 0x4e2b, 0x4ec8, 0x4e3c, 0x4eca, 0x4e2f, 0x4de7, 0x4e3e, 0x4e01, 0x4e59, 0x4df2, 0x4e82, 0x4e3a, 0x4e45, 0x4e91, 0x4e9a, 0x4dc0, 0x4e61, 0x4e8d, 0x4d51, 0x4e31, 0x4dc1, 0x4d96, 0x4dad, 0x4e37, 0x4e2b, 0x4e8d, 0x4e69, 0x4dfe, 0x4e37, 0x4ddd, -0x4e19, 0x4e6d, 0x4ec5, 0x4e2a, 0x4e9c, 0x4e04, 0x4ec6, 0x4f61, 0x4e1f, 0x4f72, 0x4e4d, 0x4e51, 0x4f2c, 0x4e6a, 0x4e48, 0x4e99, 0x4edc, 0x4dd0, 0x4e2e, 0x4eb1, 0x4e52, 0x4de8, 0x4e5b, 0x4e0a, 0x4e2c, 0x4e35, 0x4ef2, 0x4dd0, 0x4eff, 0x4f6d, 0x4ef2, 0x4eca, 0x4e90, 0x4e6e, 0x4ece, 0x4e89, 0x4dfc, 0x4e16, 0x4dcd, 0x4eb7, 0x4e79, 0x4ee7, 0x4e2e, 0x4ec0, 0x4e93, 0x4ec0, 0x4dc4, 0x4e5a, 0x4f28, 0x4e17, 0x4efc, 0x4e44, 0x4dbc, 0x4e77, 0x4df3, 0x4eda, 0x4ec2, 0x4e34, 0x4e15, 0x4e78, 0x4eb2, 0x4f87, 0x4da1, 0x4f1e, 0x4dcb, 0x4e72, 0x4eea, 0x4e8c, 0x4edb, 0x4f22, 0x4ecd, 0x4e54, 0x4eb8, 0x4e87, 0x4ef0, 0x4ea3, 0x4e57, 0x4e79, 0x4e85, 0x4e82, 0x4ebb, 0x4e3c, 0x4e29, 0x4ec4, 0x4e06, 0x4ea8, 0x4eb7, 0x4dc5, 0x4e31, 0x4e8a, 0x4e72, 0x4eac, 0x4ed9, 0x4f1d, 0x4e7e, 0x4e68, -0x4e35, 0x4dd4, 0x4e38, 0x4dda, 0x4e05, 0x4db1, 0x4e5a, 0x4f1a, 0x4e2b, 0x4f39, 0x4e30, 0x4e96, 0x4ecf, 0x4df6, 0x4dd0, 0x4ddc, 0x4e5e, 0x4ddc, 0x4d6c, 0x4e50, 0x4dd5, 0x4dc0, 0x4e05, 0x4d65, 0x4e16, 0x4e46, 0x4e57, 0x4dc0, 0x4e5c, 0x4ed2, 0x4e79, 0x4e11, 0x4e1a, 0x4e14, 0x4e85, 0x4e2f, 0x4dc9, 0x4dd8, 0x4d4c, 0x4ddb, 0x4e37, 0x4e35, 0x4dba, 0x4eb9, 0x4dee, 0x4ed1, 0x4d7c, 0x4dfc, 0x4e86, 0x4d78, 0x4e88, 0x4e1e, 0x4d54, 0x4dc0, 0x4da2, 0x4e0f, 0x4e83, 0x4db6, 0x4dc1, 0x4e78, 0x4e0a, 0x4e34, 0x4d73, 0x4e83, 0x4d8c, 0x4dce, 0x4e55, 0x4e11, 0x4e83, 0x4e43, 0x4e7c, 0x4e05, 0x4e93, 0x4ddf, 0x4e3f, 0x4dc4, 0x4e19, 0x4e6c, 0x4db9, 0x4e54, 0x4e9e, 0x4da3, 0x4dbe, 0x4e6a, 0x4db0, 0x4e1a, 0x4e57, 0x4d7b, 0x4e6e, 0x4eac, 0x4da4, 0x4e9a, 0x4e6c, 0x4e7f, 0x4de6, 0x4e0c, -0x4e70, 0x4e5d, 0x4ea9, 0x4e2c, 0x4ee1, 0x4e13, 0x4e9d, 0x4f97, 0x4e21, 0x4ff6, 0x4e48, 0x4e57, 0x4f7e, 0x4e75, 0x4e56, 0x4e79, 0x4f65, 0x4e3f, 0x4da0, 0x4e90, 0x4edc, 0x4e8e, 0x4e4d, 0x4e51, 0x4e9c, 0x4e2a, 0x4e9e, 0x4e30, 0x4e4c, 0x4edf, 0x4ef8, 0x4e91, 0x4eb6, 0x4e71, 0x4ead, 0x4e48, 0x4e87, 0x4de3, 0x4df8, 0x4e29, 0x4e76, 0x4ebb, 0x4e35, 0x4ef6, 0x4e9e, 0x4fa9, 0x4dd5, 0x4e21, 0x4ec4, 0x4e4a, 0x4f80, 0x4e0d, 0x4e07, 0x4e07, 0x4e45, 0x4e40, 0x4ef9, 0x4e38, 0x4dd3, 0x4e67, 0x4e85, 0x4ecf, 0x4dde, 0x4eaf, 0x4e1a, 0x4e83, 0x4e6d, 0x4f2c, 0x4ee4, 0x4eab, 0x4e78, 0x4e42, 0x4e9f, 0x4e30, 0x4e70, 0x4e27, 0x4eee, 0x4e55, 0x4e96, 0x4e9f, 0x4e9c, 0x4e3e, 0x4e46, 0x4f72, 0x4e1a, 0x4e80, 0x4eb9, 0x4e04, 0x4e5e, 0x4ee7, 0x4e43, 0x4ec0, 0x4f4b, 0x4e59, 0x4e76, 0x4e27, -0x4dd1, 0x4dbf, 0x4ec4, 0x4df3, 0x4e12, 0x4e04, 0x4e47, 0x4f88, 0x4e3e, 0x4f9c, 0x4e70, 0x4eb7, 0x4f21, 0x4e20, 0x4e02, 0x4ec1, 0x4f47, 0x4e07, 0x4e00, 0x4e95, 0x4e30, 0x4dd6, 0x4dee, 0x4d9d, 0x4e09, 0x4e05, 0x4ec7, 0x4ddb, 0x4e57, 0x4f16, 0x4e8d, 0x4e60, 0x4e58, 0x4e2e, 0x4ed0, 0x4df3, 0x4e32, 0x4df6, 0x4d99, 0x4def, 0x4e67, 0x4e3d, 0x4e21, 0x4f1d, 0x4e24, 0x4ef2, 0x4da9, 0x4e02, 0x4eea, 0x4e2d, 0x4f3d, 0x4e61, 0x4de9, 0x4e51, 0x4db4, 0x4e1e, 0x4e8c, 0x4e23, 0x4dc5, 0x4e4f, 0x4e56, 0x4f11, 0x4d7f, 0x4eda, 0x4de8, 0x4e06, 0x4e52, 0x4e14, 0x4e97, 0x4f22, 0x4e29, 0x4e43, 0x4e97, 0x4e37, 0x4e58, 0x4e4c, 0x4e7f, 0x4e69, 0x4e35, 0x4e48, 0x4efe, 0x4de6, 0x4e23, 0x4e4f, 0x4df0, 0x4e55, 0x4e59, 0x4daf, 0x4e32, 0x4e56, 0x4dea, 0x4ea4, 0x4e72, 0x4e7f, 0x4e22, 0x4e13, -0x4d97, 0x4d55, 0x4d67, 0x4d11, 0x4d7c, 0x4d95, 0x4e13, 0x4ea2, 0x4e15, 0x4ef3, 0x4db7, 0x4db6, 0x4eb7, 0x4d99, 0x4e38, 0x4d63, 0x4df6, 0x4da1, 0x4d6d, 0x4d9c, 0x4dda, 0x4d83, 0x4db0, 0x4d74, 0x4db4, 0x4e71, 0x4e1a, 0x4d50, 0x4dec, 0x4e26, 0x4df3, 0x4dd0, 0x4ddf, 0x4d85, 0x4dfb, 0x4da2, 0x4ddc, 0x4d82, 0x4d45, 0x4d6e, 0x4d55, 0x4d8f, 0x4d1e, 0x4de2, 0x4d78, 0x4e5d, 0x4d4b, 0x4da0, 0x4e24, 0x4d4a, 0x4e82, 0x4dc8, 0x4d13, 0x4d73, 0x4d4e, 0x4d5c, 0x4de9, 0x4d89, 0x4d71, 0x4db5, 0x4e0d, 0x4e4b, 0x4d15, 0x4e2f, 0x4d88, 0x4da4, 0x4de9, 0x4ded, 0x4e35, 0x4e27, 0x4dcb, 0x4d4c, 0x4dc5, 0x4d59, 0x4de3, 0x4da6, 0x4e7e, 0x4dfa, 0x4ddc, 0x4dfc, 0x4e23, 0x4d71, 0x4d5d, 0x4e2a, 0x4d4c, 0x4daa, 0x4d9c, 0x4cff, 0x4ddd, 0x4df5, 0x4d8f, 0x4dd1, 0x4de1, 0x4d5f, 0x4e4c, 0x4d88, -0x4d87, 0x4dde, 0x4e24, 0x4dd2, 0x4e20, 0x4e17, 0x4e1d, 0x4f2c, 0x4d91, 0x4f09, 0x4e23, 0x4e27, 0x4ec8, 0x4e1a, 0x4dcd, 0x4e00, 0x4e75, 0x4d91, 0x4d53, 0x4db2, 0x4e16, 0x4dac, 0x4e22, 0x4dfb, 0x4e20, 0x4dee, 0x4e47, 0x4d7a, 0x4e7b, 0x4e9e, 0x4dff, 0x4e26, 0x4e2e, 0x4dc3, 0x4ec2, 0x4da2, 0x4dca, 0x4d87, 0x4da3, 0x4e18, 0x4dd7, 0x4e50, 0x4d98, 0x4e92, 0x4e26, 0x4e14, 0x4d10, 0x4e33, 0x4e59, 0x4db0, 0x4e95, 0x4da1, 0x4d9b, 0x4df6, 0x4d2d, 0x4deb, 0x4e1b, 0x4d76, 0x4da5, 0x4df7, 0x4dd6, 0x4ea5, 0x4d40, 0x4e65, 0x4d83, 0x4e04, 0x4df1, 0x4e6e, 0x4e48, 0x4ee2, 0x4e35, 0x4da7, 0x4da9, 0x4dd4, 0x4e79, 0x4db5, 0x4e37, 0x4dc8, 0x4d68, 0x4e17, 0x4e90, 0x4d82, 0x4dec, 0x4dfe, 0x4d30, 0x4d85, 0x4e2a, 0x4d6d, 0x4de9, 0x4e64, 0x4da7, 0x4e1c, 0x4e59, 0x4e02, 0x4e09, 0x4d96, -0x4df9, 0x4e01, 0x4e8b, 0x4e85, 0x4ed5, 0x4e7a, 0x4e85, 0x4eed, 0x4e77, 0x4f1c, 0x4e7f, 0x4eb9, 0x4f54, 0x4e45, 0x4eaa, 0x4e35, 0x4ec6, 0x4e41, 0x4d94, 0x4ec8, 0x4e7b, 0x4e37, 0x4e55, 0x4df2, 0x4e9f, 0x4e53, 0x4ef9, 0x4e48, 0x4ebc, 0x4ee7, 0x4eb1, 0x4e74, 0x4ea0, 0x4ddc, 0x4e90, 0x4e52, 0x4e1c, 0x4de6, 0x4dbe, 0x4e24, 0x4e5c, 0x4e12, 0x4dc0, 0x4ebd, 0x4e07, 0x4f14, 0x4e16, 0x4e15, 0x4f3c, 0x4e16, 0x4f0c, 0x4e40, 0x4d4d, 0x4e9d, 0x4dff, 0x4dbc, 0x4e61, 0x4e0d, 0x4e13, 0x4e52, 0x4e85, 0x4f06, 0x4e05, 0x4e79, 0x4d69, 0x4dcf, 0x4ed8, 0x4e6b, 0x4e76, 0x4f03, 0x4e57, 0x4e66, 0x4edb, 0x4e8f, 0x4e75, 0x4e3c, 0x4e88, 0x4e9f, 0x4e6d, 0x4e35, 0x4ef2, 0x4e30, 0x4e50, 0x4e68, 0x4df4, 0x4e6b, 0x4e3d, 0x4da2, 0x4e5d, 0x4ed7, 0x4e33, 0x4ec0, 0x4f16, 0x4eb7, 0x4e7a, 0x4e3a, -0x4db5, 0x4dff, 0x4e06, 0x4e03, 0x4e6e, 0x4e3e, 0x4e52, 0x4edb, 0x4e09, 0x4f15, 0x4e4b, 0x4e9c, 0x4f54, 0x4d9e, 0x4dbe, 0x4e42, 0x4e0c, 0x4e1e, 0x4dd6, 0x4e41, 0x4e17, 0x4d7b, 0x4de5, 0x4deb, 0x4df3, 0x4e40, 0x4e41, 0x4e02, 0x4e89, 0x4f23, 0x4e46, 0x4e53, 0x4e20, 0x4e27, 0x4ee9, 0x4df9, 0x4e15, 0x4e38, 0x4df4, 0x4e14, 0x4e1a, 0x4e01, 0x4db3, 0x4ebc, 0x4d8c, 0x4e77, 0x4d53, 0x4dbd, 0x4ed1, 0x4dde, 0x4eb1, 0x4dd4, 0x4db1, 0x4e08, 0x4d6e, 0x4da6, 0x4e43, 0x4d66, 0x4dbe, 0x4e1d, 0x4e10, 0x4f3f, 0x4d2a, 0x4e1f, 0x4da6, 0x4dca, 0x4e6b, 0x4e59, 0x4e81, 0x4f21, 0x4dfd, 0x4e23, 0x4e33, 0x4e48, 0x4eb9, 0x4e08, 0x4dd9, 0x4e5c, 0x4df8, 0x4e6e, 0x4e16, 0x4dca, 0x4e50, 0x4e5c, 0x4d71, 0x4e32, 0x4e43, 0x4d64, 0x4dfe, 0x4ee3, 0x4d83, 0x4e66, 0x4e3d, 0x4eeb, 0x4e28, 0x4ddf, -0x4e3e, 0x4e49, 0x4ee3, 0x4e3f, 0x4ef6, 0x4eac, 0x4ea8, 0x4f54, 0x4ea4, 0x4fdf, 0x4e91, 0x4eb4, 0x4f8a, 0x4e75, 0x4e81, 0x4e8e, 0x4f45, 0x4e2f, 0x4e26, 0x4edd, 0x4ed4, 0x4e5b, 0x4e64, 0x4de7, 0x4e6b, 0x4e8b, 0x4f22, 0x4e3b, 0x4e8e, 0x4f34, 0x4ed1, 0x4edd, 0x4eaf, 0x4e27, 0x4ef4, 0x4e73, 0x4ea4, 0x4e3b, 0x4da0, 0x4e2d, 0x4e7c, 0x4e81, 0x4e2e, 0x4f31, 0x4e48, 0x4f48, 0x4e39, 0x4e7c, 0x4f0f, 0x4df3, 0x4f12, 0x4e19, 0x4dcb, 0x4e4f, 0x4e16, 0x4dea, 0x4eb6, 0x4e0b, 0x4e3c, 0x4ea1, 0x4e48, 0x4f80, 0x4dd3, 0x4ed8, 0x4e21, 0x4e47, 0x4f42, 0x4f09, 0x4eec, 0x4ef0, 0x4e6e, 0x4ec3, 0x4ed3, 0x4e99, 0x4ee3, 0x4e24, 0x4ebc, 0x4eb2, 0x4e78, 0x4e8a, 0x4f01, 0x4e89, 0x4e67, 0x4ed7, 0x4e1d, 0x4e37, 0x4e9f, 0x4e03, 0x4e95, 0x4f02, 0x4df4, 0x4efe, 0x4f55, 0x4ee1, 0x4eb7, 0x4e4f, -0x4d92, 0x4dde, 0x4e21, 0x4d5d, 0x4e90, 0x4e15, 0x4e89, 0x4ea3, 0x4deb, 0x4f4c, 0x4ec4, 0x4e70, 0x4eda, 0x4e2f, 0x4e38, 0x4e19, 0x4ecf, 0x4e55, 0x4dbc, 0x4e20, 0x4e52, 0x4de4, 0x4de0, 0x4e1e, 0x4db4, 0x4e72, 0x4e1b, 0x4dd5, 0x4e30, 0x4ea3, 0x4e57, 0x4ea3, 0x4e27, 0x4e31, 0x4ede, 0x4dd0, 0x4df6, 0x4e00, 0x4dca, 0x4e1c, 0x4e49, 0x4e2b, 0x4ddc, 0x4eb6, 0x4e62, 0x4ed8, 0x4d69, 0x4e49, 0x4eb5, 0x4de9, 0x4eeb, 0x4df2, 0x4d4c, 0x4e79, 0x4dba, 0x4e24, 0x4e5b, 0x4dd0, 0x4e06, 0x4e3e, 0x4e41, 0x4f2c, 0x4dbb, 0x4e7a, 0x4dff, 0x4d9f, 0x4e54, 0x4e51, 0x4e3a, 0x4f00, 0x4e88, 0x4e3d, 0x4eaa, 0x4e47, 0x4eb3, 0x4e57, 0x4e32, 0x4e26, 0x4e80, 0x4efc, 0x4f49, 0x4e0b, 0x4dfb, 0x4e9b, 0x4d69, 0x4e31, 0x4deb, 0x4d4e, 0x4de8, 0x4e9a, 0x4e12, 0x4e74, 0x4e6a, 0x4e94, 0x4e34, 0x4de3, -0x4de1, 0x4e39, 0x4e47, 0x4de2, 0x4e53, 0x4e02, 0x4e7e, 0x4ec5, 0x4e01, 0x4f33, 0x4e30, 0x4dfc, 0x4f1f, 0x4e5c, 0x4e28, 0x4e30, 0x4ea0, 0x4e23, 0x4dd5, 0x4e19, 0x4e43, 0x4dc9, 0x4e8f, 0x4dd0, 0x4e3e, 0x4e3e, 0x4e9a, 0x4dd4, 0x4e31, 0x4f06, 0x4e76, 0x4e21, 0x4e7f, 0x4e1f, 0x4eb7, 0x4e0c, 0x4dde, 0x4dc8, 0x4de7, 0x4dfe, 0x4e10, 0x4e2b, 0x4ded, 0x4edf, 0x4e37, 0x4e72, 0x4dec, 0x4e3a, 0x4ebb, 0x4ddf, 0x4ec0, 0x4dbe, 0x4d1e, 0x4e87, 0x4dc6, 0x4e0b, 0x4e5a, 0x4de7, 0x4dcd, 0x4e96, 0x4e66, 0x4eda, 0x4d77, 0x4e4a, 0x4da4, 0x4df5, 0x4e8d, 0x4e4c, 0x4e68, 0x4ede, 0x4e5d, 0x4dd1, 0x4e06, 0x4e2d, 0x4e0c, 0x4e46, 0x4e5e, 0x4e15, 0x4de8, 0x4e6c, 0x4e54, 0x4daa, 0x4df4, 0x4ed0, 0x4d80, 0x4e1a, 0x4df9, 0x4dcb, 0x4dee, 0x4e1c, 0x4e17, 0x4e5c, 0x4e8c, 0x4e33, 0x4dd3, 0x4e27, -0x4d34, 0x4dbb, 0x4e7d, 0x4d47, 0x4dfd, 0x4d0b, 0x4ddc, 0x4e68, 0x4dc6, 0x4ecd, 0x4d9c, 0x4d7d, 0x4ee0, 0x4d69, 0x4ded, 0x4dca, 0x4e3c, 0x4dcd, 0x4d5e, 0x4dbf, 0x4e4c, 0x4db0, 0x4db2, 0x4d97, 0x4da9, 0x4d9f, 0x4e43, 0x4d2a, 0x4dab, 0x4e3d, 0x4e06, 0x4dd4, 0x4daa, 0x4d79, 0x4de6, 0x4de1, 0x4e01, 0x4d62, 0x4d05, 0x4dc7, 0x4ea2, 0x4db4, 0x4d8b, 0x4e6e, 0x4ddd, 0x4e74, 0x4d00, 0x4d9a, 0x4e77, 0x4ddc, 0x4e8b, 0x4dd1, 0x4ccc, 0x4e3f, 0x4d93, 0x4e15, 0x4e91, 0x4de6, 0x4d2c, 0x4e2d, 0x4e02, 0x4ea1, 0x4daf, 0x4e3f, 0x4d8b, 0x4db9, 0x4dde, 0x4e0e, 0x4de3, 0x4e50, 0x4e05, 0x4d89, 0x4e03, 0x4e13, 0x4e4e, 0x4d9c, 0x4df4, 0x4e2d, 0x4df6, 0x4e00, 0x4df1, 0x4ddd, 0x4d7e, 0x4e68, 0x4d6c, 0x4e07, 0x4dca, 0x4d0b, 0x4dba, 0x4dde, 0x4e18, 0x4db6, 0x4dc8, 0x4e2b, 0x4dfa, 0x4d96, -0x4d85, 0x4dc7, 0x4e03, 0x4dc7, 0x4ddd, 0x4dce, 0x4e82, 0x4f1b, 0x4e5b, 0x4f6b, 0x4ec1, 0x4e3e, 0x4f42, 0x4e4a, 0x4e5e, 0x4e3c, 0x4e55, 0x4e43, 0x4dbe, 0x4e0d, 0x4e30, 0x4d9f, 0x4e29, 0x4df5, 0x4e4f, 0x4e49, 0x4e01, 0x4dc1, 0x4e7c, 0x4e7f, 0x4e9d, 0x4e1b, 0x4e00, 0x4e55, 0x4e85, 0x4e25, 0x4e0b, 0x4da9, 0x4da2, 0x4e0e, 0x4e49, 0x4e9b, 0x4ded, 0x4e7f, 0x4df3, 0x4ea5, 0x4d68, 0x4dd6, 0x4ec1, 0x4db5, 0x4ed0, 0x4e11, 0x4d68, 0x4e0c, 0x4e37, 0x4e5f, 0x4e8a, 0x4d98, 0x4e15, 0x4e34, 0x4e33, 0x4ef1, 0x4dc1, 0x4e90, 0x4dd5, 0x4dfb, 0x4e50, 0x4eb3, 0x4ebf, 0x4f41, 0x4e9b, 0x4e12, 0x4e83, 0x4df5, 0x4e9e, 0x4e2f, 0x4e5c, 0x4dfd, 0x4e64, 0x4ea9, 0x4ec7, 0x4e31, 0x4e1b, 0x4eb6, 0x4ddc, 0x4e68, 0x4e72, 0x4d96, 0x4e27, 0x4e93, 0x4dd6, 0x4e70, 0x4e8a, 0x4e37, 0x4e0b, 0x4e0e, -0x4e2a, 0x4db0, 0x4e2a, 0x4d72, 0x4dbf, 0x4e19, 0x4e05, 0x4ea8, 0x4dfa, 0x4eed, 0x4e02, 0x4e06, 0x4e93, 0x4de1, 0x4e4e, 0x4da8, 0x4e27, 0x4d5d, 0x4dc5, 0x4e0c, 0x4e4f, 0x4e0a, 0x4dc2, 0x4da0, 0x4db7, 0x4ddf, 0x4e72, 0x4dc6, 0x4e8d, 0x4e41, 0x4e66, 0x4e35, 0x4dc7, 0x4e21, 0x4e2d, 0x4df3, 0x4df3, 0x4d7e, 0x4da9, 0x4e2e, 0x4e07, 0x4ded, 0x4d9d, 0x4e6c, 0x4e27, 0x4ec2, 0x4d98, 0x4e01, 0x4e73, 0x4d6e, 0x4ed1, 0x4d9e, 0x4d36, 0x4de8, 0x4da2, 0x4e1c, 0x4dcb, 0x4de2, 0x4d8c, 0x4e31, 0x4e44, 0x4eee, 0x4d69, 0x4dd4, 0x4d7e, 0x4de5, 0x4e35, 0x4e4f, 0x4e55, 0x4e9c, 0x4e58, 0x4da4, 0x4e09, 0x4dd2, 0x4e27, 0x4dec, 0x4e42, 0x4e28, 0x4e50, 0x4e66, 0x4e37, 0x4e51, 0x4dd0, 0x4ebe, 0x4d62, 0x4e19, 0x4e4e, 0x4d5a, 0x4e12, 0x4e5d, 0x4ddc, 0x4e4c, 0x4e8f, 0x4e44, 0x4e84, 0x4dbe, -0x4d61, 0x4dfd, 0x4ded, 0x4ddc, 0x4e50, 0x4d9c, 0x4e71, 0x4e90, 0x4e16, 0x4f8b, 0x4e5d, 0x4e68, 0x4f60, 0x4e08, 0x4e2a, 0x4e27, 0x4f17, 0x4e21, 0x4d68, 0x4e1d, 0x4dea, 0x4de6, 0x4dd9, 0x4d88, 0x4e27, 0x4e43, 0x4e60, 0x4da5, 0x4e57, 0x4f23, 0x4e7d, 0x4e5f, 0x4e69, 0x4dfe, 0x4ebf, 0x4d9b, 0x4e4f, 0x4de4, 0x4d8e, 0x4dfa, 0x4e03, 0x4e22, 0x4df2, 0x4e90, 0x4e18, 0x4e72, 0x4cf7, 0x4dfe, 0x4e7e, 0x4dfa, 0x4e98, 0x4dd4, 0x4d98, 0x4e42, 0x4de0, 0x4e02, 0x4ec0, 0x4dcb, 0x4d4f, 0x4e5a, 0x4df3, 0x4f15, 0x4d77, 0x4e51, 0x4da6, 0x4e02, 0x4de0, 0x4e2d, 0x4ea4, 0x4e88, 0x4dec, 0x4df1, 0x4e0a, 0x4e5a, 0x4e9c, 0x4e02, 0x4df8, 0x4e2c, 0x4e4a, 0x4e9a, 0x4e7b, 0x4d92, 0x4e1c, 0x4e88, 0x4ddb, 0x4e52, 0x4e18, 0x4d6c, 0x4dde, 0x4eb1, 0x4dc8, 0x4e2d, 0x4e24, 0x4df0, 0x4dea, 0x4e1e, -0x4daf, 0x4da3, 0x4e3a, 0x4dec, 0x4e70, 0x4d93, 0x4e3a, 0x4e83, 0x4df9, 0x4efd, 0x4e07, 0x4e51, 0x4f5d, 0x4dde, 0x4e0b, 0x4dfc, 0x4e45, 0x4ddc, 0x4d75, 0x4dc9, 0x4df3, 0x4d8d, 0x4de0, 0x4da4, 0x4e37, 0x4e7a, 0x4e46, 0x4dc8, 0x4e2e, 0x4ebd, 0x4e27, 0x4e67, 0x4e3e, 0x4e2f, 0x4e5f, 0x4d98, 0x4e5f, 0x4d6e, 0x4da8, 0x4dc7, 0x4dd5, 0x4e31, 0x4ddb, 0x4e89, 0x4de0, 0x4e73, 0x4d87, 0x4dd9, 0x4ea2, 0x4dae, 0x4e92, 0x4dc9, 0x4d4f, 0x4df1, 0x4e02, 0x4df1, 0x4e69, 0x4de0, 0x4d7f, 0x4e39, 0x4dc3, 0x4e99, 0x4d2f, 0x4e69, 0x4d99, 0x4d5a, 0x4e3d, 0x4e3b, 0x4e74, 0x4eac, 0x4e2d, 0x4e43, 0x4e44, 0x4e36, 0x4e2d, 0x4dc2, 0x4e43, 0x4e3a, 0x4e22, 0x4de6, 0x4e76, 0x4d64, 0x4e25, 0x4e7c, 0x4dc2, 0x4e51, 0x4daa, 0x4d57, 0x4e4f, 0x4e55, 0x4db5, 0x4df2, 0x4e66, 0x4e42, 0x4e18, 0x4e30, -0x4df6, 0x4e52, 0x4e8b, 0x4da7, 0x4e2b, 0x4e27, 0x4e8a, 0x4f5e, 0x4e20, 0x4fd0, 0x4e78, 0x4ed1, 0x4ef4, 0x4e3b, 0x4e31, 0x4e7c, 0x4ec6, 0x4de8, 0x4e00, 0x4e9b, 0x4e95, 0x4df6, 0x4e8f, 0x4e58, 0x4e3b, 0x4e7a, 0x4ea5, 0x4e09, 0x4ea0, 0x4f19, 0x4e5c, 0x4e85, 0x4e5f, 0x4e71, 0x4e94, 0x4e66, 0x4e34, 0x4dfd, 0x4ddc, 0x4e1d, 0x4e27, 0x4e64, 0x4e43, 0x4eb2, 0x4e7d, 0x4f30, 0x4e1a, 0x4e05, 0x4f21, 0x4dde, 0x4f53, 0x4e6f, 0x4e0a, 0x4e5e, 0x4dd2, 0x4e50, 0x4ee9, 0x4e05, 0x4dab, 0x4e4b, 0x4eb3, 0x4f2d, 0x4e0a, 0x4ec8, 0x4dbf, 0x4e3f, 0x4eca, 0x4ec0, 0x4ed5, 0x4f2c, 0x4e9c, 0x4e3d, 0x4ebc, 0x4e31, 0x4e9c, 0x4e33, 0x4e4e, 0x4e9c, 0x4e15, 0x4edc, 0x4ee4, 0x4e68, 0x4dd4, 0x4ef6, 0x4de9, 0x4e52, 0x4ebb, 0x4d9b, 0x4e7b, 0x4f28, 0x4e7d, 0x4e9c, 0x4e77, 0x4e80, 0x4e9f, 0x4e17, -0x4e60, 0x4e53, 0x4e8b, 0x4e28, 0x4e69, 0x4e47, 0x4e69, 0x4f88, 0x4dfc, 0x4f2c, 0x4e91, 0x4e75, 0x4f10, 0x4ecc, 0x4deb, 0x4dfa, 0x4e6d, 0x4e37, 0x4e21, 0x4e5c, 0x4ebd, 0x4dc5, 0x4e7f, 0x4e47, 0x4e82, 0x4e61, 0x4ea7, 0x4df0, 0x4eb8, 0x4f35, 0x4eac, 0x4ea1, 0x4f06, 0x4e15, 0x4ea4, 0x4df5, 0x4e63, 0x4de8, 0x4dd8, 0x4e0d, 0x4e25, 0x4e7f, 0x4e50, 0x4e90, 0x4e3d, 0x4ecd, 0x4dad, 0x4e6c, 0x4f1a, 0x4dd8, 0x4f33, 0x4e40, 0x4dfb, 0x4e3e, 0x4db5, 0x4e5f, 0x4eeb, 0x4e34, 0x4dda, 0x4e80, 0x4ecc, 0x4ed4, 0x4db3, 0x4e12, 0x4d87, 0x4e52, 0x4e2f, 0x4ed6, 0x4e9c, 0x4f17, 0x4e5e, 0x4e12, 0x4e48, 0x4e31, 0x4e88, 0x4e64, 0x4e44, 0x4e23, 0x4e16, 0x4ea3, 0x4e98, 0x4e0a, 0x4de2, 0x4ebc, 0x4dfc, 0x4e22, 0x4e5b, 0x4dd5, 0x4e85, 0x4ea4, 0x4e42, 0x4e4f, 0x4ea1, 0x4e2d, 0x4e44, 0x4d7d, -0x4db5, 0x4dad, 0x4e2a, 0x4d31, 0x4e06, 0x4dbc, 0x4e4e, 0x4e78, 0x4d7e, 0x4ea3, 0x4dc2, 0x4db8, 0x4ec4, 0x4daa, 0x4e42, 0x4de2, 0x4e01, 0x4dac, 0x4dbc, 0x4e00, 0x4da6, 0x4d71, 0x4e01, 0x4dd2, 0x4d92, 0x4db6, 0x4ec5, 0x4d54, 0x4e7b, 0x4e3f, 0x4e0b, 0x4dfc, 0x4e05, 0x4d6c, 0x4e96, 0x4d90, 0x4dae, 0x4d2d, 0x4d7c, 0x4dc9, 0x4d91, 0x4dcc, 0x4dab, 0x4e48, 0x4df2, 0x4e26, 0x4da6, 0x4dd1, 0x4e7d, 0x4dc3, 0x4eab, 0x4e04, 0x4d1f, 0x4dcb, 0x4db2, 0x4da9, 0x4dd1, 0x4d8c, 0x4d8d, 0x4df2, 0x4e1c, 0x4ef9, 0x4d3c, 0x4e0a, 0x4d23, 0x4d8f, 0x4e02, 0x4e27, 0x4e29, 0x4ea2, 0x4e10, 0x4dc6, 0x4de3, 0x4db2, 0x4e61, 0x4df7, 0x4df5, 0x4e25, 0x4de6, 0x4e46, 0x4e0f, 0x4dc8, 0x4d8f, 0x4e3c, 0x4d4e, 0x4ddd, 0x4df1, 0x4cfa, 0x4e06, 0x4e72, 0x4de3, 0x4dda, 0x4df9, 0x4e24, 0x4da8, 0x4d7f, -0x4d8f, 0x4d95, 0x4e5a, 0x4dbc, 0x4ded, 0x4daf, 0x4e1c, 0x4eea, 0x4db3, 0x4ee9, 0x4e7d, 0x4dd2, 0x4e60, 0x4df6, 0x4dfd, 0x4e2d, 0x4e5d, 0x4df0, 0x4db2, 0x4dde, 0x4de1, 0x4d4e, 0x4dd9, 0x4db6, 0x4de8, 0x4dcd, 0x4dff, 0x4d63, 0x4dee, 0x4e75, 0x4e5d, 0x4dfd, 0x4e30, 0x4d88, 0x4e6f, 0x4dc4, 0x4d8b, 0x4d90, 0x4d4e, 0x4dc2, 0x4e07, 0x4e3e, 0x4d82, 0x4e79, 0x4da7, 0x4de0, 0x4d1a, 0x4d8a, 0x4e91, 0x4da7, 0x4e5c, 0x4dcc, 0x4d9d, 0x4df7, 0x4d69, 0x4dee, 0x4e05, 0x4da3, 0x4d41, 0x4e2d, 0x4e13, 0x4ec4, 0x4cf6, 0x4e41, 0x4dc4, 0x4dad, 0x4d96, 0x4e74, 0x4e66, 0x4e4b, 0x4df8, 0x4da1, 0x4dbe, 0x4ddd, 0x4e12, 0x4d81, 0x4da9, 0x4dba, 0x4df4, 0x4dfb, 0x4e53, 0x4dbb, 0x4d79, 0x4e13, 0x4d93, 0x4dfc, 0x4da8, 0x4d6e, 0x4ddb, 0x4dee, 0x4db2, 0x4e71, 0x4e06, 0x4e15, 0x4dad, 0x4e10, -0x4dbe, 0x4d9a, 0x4e47, 0x4d82, 0x4e18, 0x4e0e, 0x4e70, 0x4ebd, 0x4e2f, 0x4eee, 0x4e47, 0x4e16, 0x4ed6, 0x4dee, 0x4e5a, 0x4e64, 0x4e99, 0x4dfa, 0x4dd7, 0x4e82, 0x4e32, 0x4dd0, 0x4e4a, 0x4e31, 0x4db7, 0x4dab, 0x4e6f, 0x4df7, 0x4e5e, 0x4ea5, 0x4e2f, 0x4e3d, 0x4e1b, 0x4dee, 0x4e6e, 0x4df6, 0x4e07, 0x4d94, 0x4d52, 0x4d9d, 0x4d9a, 0x4dc1, 0x4d68, 0x4e8a, 0x4de5, 0x4ed0, 0x4dbc, 0x4e0e, 0x4e82, 0x4df1, 0x4eda, 0x4deb, 0x4d7d, 0x4e03, 0x4d79, 0x4d9c, 0x4e18, 0x4df0, 0x4dc0, 0x4e04, 0x4e3c, 0x4f3c, 0x4dcf, 0x4e53, 0x4d88, 0x4dad, 0x4e2e, 0x4e30, 0x4e7a, 0x4ea5, 0x4dca, 0x4df9, 0x4e4a, 0x4e05, 0x4e9c, 0x4dca, 0x4e18, 0x4e1c, 0x4e4d, 0x4e3a, 0x4ed8, 0x4dd7, 0x4dd2, 0x4e56, 0x4da1, 0x4e5c, 0x4dec, 0x4d66, 0x4e07, 0x4e62, 0x4e15, 0x4e5e, 0x4e30, 0x4e1d, 0x4e47, 0x4e0e, -0x4dec, 0x4e01, 0x4e70, 0x4dfa, 0x4e67, 0x4db4, 0x4e83, 0x4f89, 0x4e1b, 0x4f76, 0x4e4b, 0x4e2b, 0x4f33, 0x4e79, 0x4e5f, 0x4e1d, 0x4e90, 0x4df1, 0x4df9, 0x4e53, 0x4deb, 0x4d95, 0x4e23, 0x4d81, 0x4e0a, 0x4e1e, 0x4efc, 0x4df0, 0x4e8d, 0x4ee7, 0x4e99, 0x4ecb, 0x4e37, 0x4e41, 0x4ece, 0x4e28, 0x4deb, 0x4dba, 0x4dd7, 0x4e1d, 0x4e40, 0x4e1e, 0x4e08, 0x4eab, 0x4e61, 0x4e9e, 0x4db5, 0x4e32, 0x4ed9, 0x4df4, 0x4f2d, 0x4e58, 0x4d91, 0x4dd9, 0x4dd4, 0x4e32, 0x4e5e, 0x4db8, 0x4dfb, 0x4e4d, 0x4e87, 0x4f3e, 0x4dcc, 0x4ea3, 0x4d85, 0x4e3b, 0x4e3a, 0x4e95, 0x4ea9, 0x4efa, 0x4f03, 0x4e56, 0x4e70, 0x4e59, 0x4e85, 0x4e7b, 0x4e0a, 0x4e5e, 0x4e33, 0x4e61, 0x4edb, 0x4e24, 0x4e24, 0x4e4e, 0x4ddc, 0x4e35, 0x4e52, 0x4dc2, 0x4e58, 0x4ecb, 0x4dea, 0x4e93, 0x4e7a, 0x4e7a, 0x4e24, 0x4e24, -0x4e1a, 0x4e76, 0x4e5f, 0x4dcb, 0x4e4c, 0x4e37, 0x4ed6, 0x4ec9, 0x4de4, 0x4f1e, 0x4e8e, 0x4e22, 0x4eef, 0x4e5e, 0x4e26, 0x4e5b, 0x4ed3, 0x4e7a, 0x4dbf, 0x4e76, 0x4e06, 0x4de0, 0x4e59, 0x4de5, 0x4e66, 0x4e1f, 0x4e76, 0x4dd8, 0x4e8d, 0x4ef8, 0x4ed3, 0x4e45, 0x4e84, 0x4e3d, 0x4ef2, 0x4df1, 0x4df6, 0x4e09, 0x4d77, 0x4e22, 0x4dc6, 0x4e8a, 0x4dcd, 0x4e8f, 0x4e57, 0x4eef, 0x4dbc, 0x4e40, 0x4f00, 0x4deb, 0x4e93, 0x4e33, 0x4d66, 0x4e1a, 0x4dc6, 0x4dee, 0x4e42, 0x4dd8, 0x4e23, 0x4e83, 0x4e0b, 0x4ee3, 0x4da3, 0x4e63, 0x4dbf, 0x4e1a, 0x4e7a, 0x4e8f, 0x4ede, 0x4eed, 0x4e27, 0x4e5a, 0x4e42, 0x4e2f, 0x4ea2, 0x4e1d, 0x4e16, 0x4e7e, 0x4eab, 0x4e64, 0x4ec7, 0x4dc2, 0x4d9a, 0x4eca, 0x4e4a, 0x4e22, 0x4e54, 0x4dd1, 0x4e67, 0x4e81, 0x4de7, 0x4e32, 0x4f41, 0x4e70, 0x4e0d, 0x4ddc, -0x4da1, 0x4deb, 0x4e14, 0x4d79, 0x4e1c, 0x4db9, 0x4e1a, 0x4e73, 0x4dd2, 0x4ee5, 0x4dd8, 0x4dbd, 0x4e94, 0x4dd3, 0x4da2, 0x4e2d, 0x4e62, 0x4dda, 0x4d75, 0x4e2d, 0x4e01, 0x4d3e, 0x4ddf, 0x4ddb, 0x4e1e, 0x4d91, 0x4e09, 0x4da9, 0x4e74, 0x4e7a, 0x4dba, 0x4dd4, 0x4e30, 0x4da4, 0x4e3e, 0x4d81, 0x4d95, 0x4d95, 0x4d81, 0x4e30, 0x4e23, 0x4e35, 0x4dbd, 0x4e34, 0x4e0a, 0x4e89, 0x4d2f, 0x4df7, 0x4e72, 0x4dbe, 0x4ef1, 0x4e28, 0x4d7e, 0x4dd9, 0x4dc9, 0x4dd5, 0x4e30, 0x4de8, 0x4da4, 0x4e00, 0x4e0a, 0x4e66, 0x4d32, 0x4e04, 0x4d5e, 0x4db9, 0x4e11, 0x4e3e, 0x4de4, 0x4e6c, 0x4e38, 0x4e10, 0x4db9, 0x4df4, 0x4e63, 0x4dec, 0x4deb, 0x4dd5, 0x4e2c, 0x4e28, 0x4e22, 0x4d86, 0x4dd8, 0x4e3e, 0x4d27, 0x4e7e, 0x4dc5, 0x4cf5, 0x4e04, 0x4e4e, 0x4e1c, 0x4df2, 0x4e10, 0x4de0, 0x4d6b, 0x4d53, -0x4de7, 0x4e37, 0x4e87, 0x4e27, 0x4e9b, 0x4e07, 0x4e87, 0x4f9e, 0x4e14, 0x4faf, 0x4edd, 0x4f04, 0x4f20, 0x4e28, 0x4d9f, 0x4e6d, 0x4f14, 0x4df2, 0x4e1b, 0x4e74, 0x4e77, 0x4d6f, 0x4e33, 0x4dff, 0x4e7c, 0x4e75, 0x4e6e, 0x4e2c, 0x4e68, 0x4f3a, 0x4ec2, 0x4e8f, 0x4eda, 0x4e35, 0x4f59, 0x4e42, 0x4e34, 0x4dfe, 0x4e42, 0x4e5b, 0x4e3a, 0x4e91, 0x4e20, 0x4e71, 0x4eec, 0x4eba, 0x4e03, 0x4e1f, 0x4eac, 0x4dd8, 0x4f57, 0x4ead, 0x4de8, 0x4de5, 0x4e17, 0x4e96, 0x4e7c, 0x4db7, 0x4ddb, 0x4e47, 0x4e6a, 0x4f17, 0x4d7d, 0x4e98, 0x4e04, 0x4e32, 0x4e82, 0x4ecf, 0x4ed7, 0x4f05, 0x4e77, 0x4ec6, 0x4ee5, 0x4e3f, 0x4e8f, 0x4e83, 0x4dcd, 0x4e0e, 0x4e9d, 0x4e58, 0x4eea, 0x4df3, 0x4de0, 0x4ecb, 0x4e06, 0x4e8a, 0x4e68, 0x4d67, 0x4e5a, 0x4eef, 0x4e05, 0x4e8b, 0x4eff, 0x4e46, 0x4e60, 0x4dd7, -0x4dcc, 0x4dee, 0x4e78, 0x4db4, 0x4e61, 0x4db1, 0x4e3e, 0x4edd, 0x4db1, 0x4ede, 0x4d68, 0x4e5a, 0x4efb, 0x4dd2, 0x4dfe, 0x4e28, 0x4ec4, 0x4e16, 0x4d85, 0x4e55, 0x4dff, 0x4dc4, 0x4e27, 0x4dc9, 0x4dc7, 0x4dd2, 0x4e79, 0x4d94, 0x4e4e, 0x4e8b, 0x4e6a, 0x4e52, 0x4dfc, 0x4e08, 0x4e1e, 0x4dff, 0x4daf, 0x4d7b, 0x4d51, 0x4da5, 0x4deb, 0x4e25, 0x4e00, 0x4e7a, 0x4de4, 0x4ea6, 0x4d64, 0x4ddc, 0x4ea0, 0x4ddb, 0x4e73, 0x4dfa, 0x4d1b, 0x4e17, 0x4d78, 0x4de8, 0x4eb9, 0x4dc4, 0x4dc0, 0x4e2e, 0x4e61, 0x4eb6, 0x4dac, 0x4e6a, 0x4d86, 0x4dd0, 0x4e92, 0x4e20, 0x4e2b, 0x4e5f, 0x4df0, 0x4e2d, 0x4e1b, 0x4dd7, 0x4e1d, 0x4e1f, 0x4e45, 0x4e6e, 0x4dc8, 0x4de8, 0x4e5f, 0x4dea, 0x4dd3, 0x4e5e, 0x4dda, 0x4dee, 0x4dac, 0x4d7d, 0x4e39, 0x4e3c, 0x4e22, 0x4e6e, 0x4e77, 0x4e45, 0x4e0b, 0x4dd3, -0x4e35, 0x4e33, 0x4e9c, 0x4de7, 0x4e4c, 0x4e54, 0x4eeb, 0x4f2a, 0x4e39, 0x4f67, 0x4e9e, 0x4e61, 0x4f2b, 0x4e50, 0x4e45, 0x4eab, 0x4f08, 0x4e4f, 0x4e01, 0x4e7a, 0x4e73, 0x4df9, 0x4e88, 0x4dd9, 0x4ea5, 0x4e6d, 0x4ef7, 0x4dcf, 0x4f2f, 0x4f58, 0x4ef7, 0x4eca, 0x4e71, 0x4e82, 0x4f22, 0x4e73, 0x4e35, 0x4e09, 0x4de6, 0x4e4a, 0x4e4c, 0x4e58, 0x4e07, 0x4f1c, 0x4ea0, 0x4f1d, 0x4de4, 0x4e88, 0x4ec8, 0x4e27, 0x4f13, 0x4df9, 0x4dc0, 0x4e55, 0x4da9, 0x4e3b, 0x4eb5, 0x4df2, 0x4e28, 0x4ea0, 0x4e45, 0x4f56, 0x4dfe, 0x4ebe, 0x4db8, 0x4e2b, 0x4ea1, 0x4ebc, 0x4ec6, 0x4f16, 0x4e85, 0x4e5a, 0x4e8c, 0x4e67, 0x4efc, 0x4e11, 0x4e3e, 0x4e7c, 0x4e7b, 0x4e66, 0x4ecf, 0x4df3, 0x4e39, 0x4e97, 0x4dd1, 0x4eb3, 0x4e47, 0x4e05, 0x4e7d, 0x4eb7, 0x4e7b, 0x4eca, 0x4f2b, 0x4ea0, 0x4e2b, 0x4e51, -0x4db9, 0x4dbf, 0x4e60, 0x4db6, 0x4ec2, 0x4da9, 0x4e40, 0x4eb2, 0x4dd0, 0x4ee8, 0x4df1, 0x4e3d, 0x4eef, 0x4e3a, 0x4e4c, 0x4dfe, 0x4e5e, 0x4e52, 0x4df0, 0x4e28, 0x4e65, 0x4de5, 0x4e47, 0x4d6d, 0x4e02, 0x4dd1, 0x4e7c, 0x4dde, 0x4e2f, 0x4e87, 0x4e9e, 0x4e58, 0x4e0a, 0x4e91, 0x4e0c, 0x4e05, 0x4e1d, 0x4d89, 0x4d53, 0x4da9, 0x4e6b, 0x4e71, 0x4df8, 0x4e8a, 0x4dcd, 0x4ed8, 0x4d7f, 0x4e1d, 0x4e77, 0x4d97, 0x4ea3, 0x4d6f, 0x4d9d, 0x4e0f, 0x4dcb, 0x4e2b, 0x4e8e, 0x4dbd, 0x4d96, 0x4e28, 0x4e09, 0x4f0c, 0x4d95, 0x4e53, 0x4d66, 0x4e32, 0x4e1c, 0x4dfb, 0x4e2a, 0x4e91, 0x4ed8, 0x4dd0, 0x4e94, 0x4e1e, 0x4dd3, 0x4e4a, 0x4dcd, 0x4e56, 0x4e2f, 0x4e7e, 0x4e22, 0x4dd2, 0x4e42, 0x4e9a, 0x4ddc, 0x4e3c, 0x4e8a, 0x4d97, 0x4e00, 0x4e7e, 0x4d80, 0x4e5c, 0x4eba, 0x4e5e, 0x4e47, 0x4e02, -0x4c99, 0x4c81, 0x4d53, 0x4cb2, 0x4d3f, 0x4ca4, 0x4d31, 0x4dab, 0x4d46, 0x4dae, 0x4ce7, 0x4d3d, 0x4da8, 0x4d00, 0x4d6a, 0x4d0d, 0x4d75, 0x4d0c, 0x4cc1, 0x4cf5, 0x4d2e, 0x4cc4, 0x4ccf, 0x4cac, 0x4cfc, 0x4cfa, 0x4d7f, 0x4ccd, 0x4d41, 0x4d62, 0x4d43, 0x4d2f, 0x4cf8, 0x4cfc, 0x4db4, 0x4d00, 0x4cfa, 0x4cad, 0x4cf2, 0x4cf7, 0x4d04, 0x4cf2, 0x4caf, 0x4d56, 0x4cda, 0x4d5b, 0x4cef, 0x4d37, 0x4d81, 0x4cca, 0x4ddd, 0x4ca3, 0x4c50, 0x4d2d, 0x4c81, 0x4cf7, 0x4d46, 0x4ce2, 0x4ce5, 0x4d38, 0x4cf5, 0x4de8, 0x4c6a, 0x4d4f, 0x4c86, 0x4cc3, 0x4d31, 0x4d5b, 0x4d55, 0x4d82, 0x4d74, 0x4cc0, 0x4d08, 0x4d27, 0x4d0a, 0x4cd9, 0x4cf2, 0x4d38, 0x4c9b, 0x4d29, 0x4d67, 0x4d1a, 0x4d25, 0x4d1d, 0x4cdd, 0x4cd0, 0x4ced, 0x4c6d, 0x4d0d, 0x4d72, 0x4d3f, 0x4d94, 0x4d5a, 0x4d2d, 0x4d00, 0x4cb8 +uint16_t z_oup [768] = { +0x4845, 0x4897, 0x4608, 0x4838, 0x4855, 0x487b, 0x4869, 0x4880, 0x46d1, 0x48b0, 0x48db, 0x483f, 0x48c9, 0x485f, 0x4881, 0x483a, 0x484b, 0x472c, 0x4762, 0x492b, 0x4822, 0x48fd, 0x488e, 0x492e, 0x483e, 0x484f, 0x49e8, 0x46d7, 0x484b, 0x489d, 0x490b, 0x47e9, +0x484f, 0x47d2, 0x44be, 0x4747, 0x47c7, 0x46c0, 0x4727, 0x48af, 0x46c5, 0x482d, 0x483d, 0x482e, 0x4897, 0x479f, 0x488b, 0x4749, 0x489a, 0x46a8, 0x46f2, 0x488b, 0x4891, 0x47e8, 0x4872, 0x483d, 0x4716, 0x46fd, 0x49b5, 0x46a0, 0x46e7, 0x47a4, 0x48a1, 0x4767, +0x4939, 0x4935, 0x4703, 0x48c1, 0x4863, 0x48bd, 0x4913, 0x48cf, 0x48b6, 0x48b8, 0x4946, 0x4920, 0x495e, 0x48e1, 0x4938, 0x48b2, 0x493a, 0x4882, 0x483b, 0x49d5, 0x4911, 0x4972, 0x496b, 0x49df, 0x48f2, 0x4888, 0x4a46, 0x4821, 0x48c1, 0x490c, 0x49b2, 0x48a3, +0x463a, 0x47b0, 0x44cb, 0x4762, 0x4765, 0x46b9, 0x466a, 0x4814, 0x4631, 0x4796, 0x4666, 0x474b, 0x4798, 0x4704, 0x4838, 0x4761, 0x47d3, 0x4590, 0x45ea, 0x48a2, 0x47f1, 0x4844, 0x484b, 0x4776, 0x47d6, 0x46d8, 0x48f3, 0x44d3, 0x46fa, 0x478d, 0x481e, 0x466e, +0x4827, 0x481e, 0x45a2, 0x4794, 0x4727, 0x4806, 0x475d, 0x48d5, 0x4708, 0x4828, 0x4862, 0x480d, 0x4895, 0x4832, 0x48bd, 0x47f1, 0x482a, 0x46a7, 0x47b1, 0x492d, 0x484d, 0x4884, 0x48dc, 0x485f, 0x476d, 0x480c, 0x48e9, 0x46d3, 0x4728, 0x4884, 0x48a0, 0x480e, +0x4862, 0x4813, 0x4675, 0x485a, 0x47e8, 0x4738, 0x4836, 0x4823, 0x46e7, 0x4821, 0x4822, 0x47b3, 0x4846, 0x4855, 0x4863, 0x4717, 0x4872, 0x47c1, 0x46d5, 0x488e, 0x47e2, 0x485f, 0x487c, 0x48b8, 0x481e, 0x4788, 0x48bd, 0x4677, 0x46c9, 0x47f8, 0x48fe, 0x47fc, +0x47a0, 0x47b2, 0x4588, 0x467e, 0x4662, 0x46c7, 0x46e8, 0x4812, 0x4536, 0x474e, 0x46c0, 0x468f, 0x481f, 0x4679, 0x46a1, 0x46e2, 0x4809, 0x4560, 0x4630, 0x47eb, 0x46b5, 0x4757, 0x4848, 0x477f, 0x46a6, 0x46d8, 0x4870, 0x459a, 0x4670, 0x4678, 0x47d2, 0x468c, +0x4762, 0x48c4, 0x46e3, 0x4791, 0x46b1, 0x486d, 0x47d0, 0x4867, 0x468d, 0x47f6, 0x48a5, 0x4756, 0x4857, 0x4854, 0x4866, 0x4838, 0x484d, 0x46ec, 0x47d2, 0x48f6, 0x484a, 0x4879, 0x4848, 0x483c, 0x471d, 0x4806, 0x48fa, 0x4730, 0x4768, 0x47b8, 0x4865, 0x46f9, +0x48a8, 0x4918, 0x46ca, 0x4867, 0x4800, 0x4862, 0x48d3, 0x4910, 0x474e, 0x4849, 0x48eb, 0x486b, 0x4966, 0x48c5, 0x48f4, 0x4830, 0x48f9, 0x4778, 0x481e, 0x499e, 0x48cf, 0x48f1, 0x4982, 0x4923, 0x487c, 0x47cf, 0x49ea, 0x4649, 0x4773, 0x495e, 0x48b2, 0x483f, +0x48a7, 0x4975, 0x4616, 0x481e, 0x481f, 0x4866, 0x48b6, 0x4864, 0x47dc, 0x4873, 0x485c, 0x487f, 0x4938, 0x491f, 0x490d, 0x48b6, 0x48f8, 0x48a1, 0x4859, 0x492d, 0x489c, 0x4915, 0x4899, 0x4887, 0x486c, 0x4859, 0x49ca, 0x471e, 0x4867, 0x4918, 0x48d3, 0x4827, +0x488b, 0x4998, 0x4704, 0x481d, 0x48b8, 0x4880, 0x4876, 0x4944, 0x470c, 0x48f2, 0x48b9, 0x489b, 0x4956, 0x48e5, 0x48d6, 0x48a5, 0x48dc, 0x4856, 0x484e, 0x49ab, 0x48e0, 0x490e, 0x48dd, 0x4945, 0x488b, 0x48dd, 0x4a32, 0x47ea, 0x4835, 0x4911, 0x4965, 0x4819, +0x460e, 0x481e, 0x452c, 0x4673, 0x475c, 0x4717, 0x46f6, 0x46d0, 0x4696, 0x46bc, 0x4726, 0x481e, 0x4763, 0x46ea, 0x46fe, 0x4758, 0x478b, 0x4627, 0x4704, 0x483f, 0x46ad, 0x47b1, 0x4792, 0x4816, 0x46f2, 0x4684, 0x4827, 0x45a8, 0x472f, 0x47a4, 0x4797, 0x462b, +0x483f, 0x48ab, 0x468f, 0x4863, 0x485a, 0x4766, 0x481d, 0x48cb, 0x47dc, 0x4903, 0x48fc, 0x4830, 0x48cc, 0x483e, 0x48ab, 0x4864, 0x4966, 0x4763, 0x4794, 0x499d, 0x488e, 0x488b, 0x48dc, 0x4960, 0x4854, 0x484c, 0x499c, 0x474c, 0x4826, 0x48bc, 0x4949, 0x4883, +0x489d, 0x4905, 0x4718, 0x481e, 0x48e3, 0x48f4, 0x48c1, 0x4904, 0x47e8, 0x48b3, 0x4892, 0x48d4, 0x48ff, 0x4894, 0x48d5, 0x4886, 0x48fa, 0x4803, 0x47d2, 0x492e, 0x4870, 0x48b2, 0x48e5, 0x492b, 0x487b, 0x4785, 0x49e3, 0x471d, 0x4837, 0x48bf, 0x489b, 0x48c4, +0x475c, 0x4871, 0x464a, 0x4811, 0x47af, 0x471c, 0x4817, 0x4817, 0x463b, 0x484e, 0x477f, 0x464f, 0x4704, 0x487c, 0x47a3, 0x4725, 0x4853, 0x462a, 0x465a, 0x4860, 0x4736, 0x4880, 0x47e1, 0x482b, 0x4811, 0x46c0, 0x48dc, 0x475d, 0x4668, 0x4806, 0x4893, 0x46f4, +0x4858, 0x4959, 0x463d, 0x487b, 0x480f, 0x484e, 0x48c0, 0x48a6, 0x4847, 0x4894, 0x48a0, 0x484a, 0x491e, 0x48f4, 0x48fc, 0x48b5, 0x48ce, 0x47d2, 0x47db, 0x497f, 0x4955, 0x4939, 0x48a7, 0x48ce, 0x4890, 0x4884, 0x49d6, 0x4763, 0x486e, 0x4922, 0x48f4, 0x48c3, +0x47ec, 0x491c, 0x4698, 0x4783, 0x4715, 0x4754, 0x4745, 0x4752, 0x472f, 0x4832, 0x4817, 0x4809, 0x47f8, 0x48c3, 0x47e6, 0x4800, 0x48b6, 0x4730, 0x480a, 0x48cb, 0x479e, 0x488e, 0x47c2, 0x488e, 0x472f, 0x47ee, 0x489d, 0x4744, 0x4755, 0x4851, 0x4846, 0x47d3, +0x4838, 0x48a0, 0x4634, 0x4762, 0x4786, 0x4806, 0x47e3, 0x482d, 0x4726, 0x486c, 0x47b7, 0x4803, 0x48ac, 0x4814, 0x48e0, 0x4839, 0x4827, 0x4750, 0x46f2, 0x48c5, 0x483f, 0x4886, 0x48ad, 0x4856, 0x47e8, 0x47a9, 0x4937, 0x4743, 0x46d0, 0x481f, 0x484c, 0x4804, +0x47fd, 0x481f, 0x456d, 0x4813, 0x474d, 0x4807, 0x4688, 0x480e, 0x46e8, 0x4810, 0x469f, 0x4799, 0x4853, 0x478f, 0x47f2, 0x4824, 0x47d0, 0x471f, 0x46da, 0x485f, 0x4813, 0x481c, 0x482e, 0x4863, 0x4786, 0x480b, 0x48c9, 0x46b8, 0x475a, 0x46e2, 0x4852, 0x46c5, +0x45af, 0x4802, 0x4466, 0x46c2, 0x465d, 0x4743, 0x46b7, 0x47ba, 0x4636, 0x46c3, 0x4677, 0x4784, 0x485a, 0x47c2, 0x46dc, 0x46ac, 0x47de, 0x460e, 0x465f, 0x4834, 0x47f4, 0x4769, 0x46fc, 0x4810, 0x45fd, 0x45ea, 0x48d0, 0x45b5, 0x4704, 0x4783, 0x4830, 0x46c4, +0x4759, 0x47c7, 0x453d, 0x45b0, 0x4741, 0x4702, 0x4736, 0x4793, 0x461b, 0x47ba, 0x470b, 0x46dd, 0x4657, 0x470b, 0x470d, 0x4710, 0x486c, 0x468f, 0x45c3, 0x46ba, 0x479d, 0x483b, 0x46c9, 0x4774, 0x46a9, 0x46a7, 0x4833, 0x4606, 0x4690, 0x46a9, 0x46f5, 0x46a7, +0x47ac, 0x48bb, 0x452c, 0x4803, 0x470f, 0x4824, 0x47d5, 0x48cb, 0x4707, 0x484a, 0x4832, 0x4797, 0x4851, 0x482c, 0x487a, 0x4877, 0x4891, 0x465d, 0x47f4, 0x48ce, 0x4898, 0x4899, 0x484e, 0x486a, 0x47ac, 0x47f0, 0x493e, 0x4611, 0x47e2, 0x489e, 0x488c, 0x46af, +0x4665, 0x4836, 0x45e4, 0x46b6, 0x46a1, 0x46b9, 0x46c8, 0x46dd, 0x4658, 0x474b, 0x467b, 0x4777, 0x4769, 0x4798, 0x4785, 0x475e, 0x472a, 0x4656, 0x45fb, 0x4881, 0x46fc, 0x472d, 0x476e, 0x47a3, 0x465d, 0x46ca, 0x4855, 0x4500, 0x464f, 0x479a, 0x46c3, 0x4738, +0x481e, 0x486c, 0x4659, 0x4801, 0x4756, 0x477a, 0x47d5, 0x487b, 0x4706, 0x4808, 0x484f, 0x4838, 0x4870, 0x4863, 0x48d3, 0x4806, 0x4865, 0x4771, 0x46be, 0x494c, 0x4915, 0x484c, 0x4900, 0x4862, 0x481a, 0x46e8, 0x4974, 0x46a0, 0x4775, 0x483d, 0x487c, 0x480e }; \ No newline at end of file diff --git a/hwpe/redmule/redmule.c b/hwpe/redmule/redmule.c index 9e361b1..db549e2 100644 --- a/hwpe/redmule/redmule.c +++ b/hwpe/redmule/redmule.c @@ -23,6 +23,7 @@ #include "stdio.h" #include "archi_redmule.h" #include "hal_redmule.h" +#include "pulp.h" int main() { diff --git a/pulp_cluster-mchan-tests.yaml b/pulp_cluster-mchan-tests.yaml index 88d5610..ab54a94 100644 --- a/pulp_cluster-mchan-tests.yaml +++ b/pulp_cluster-mchan-tests.yaml @@ -1,13 +1,13 @@ mchan_tests: testMCHAN_2D_ext_tcdm: path: ./mchan_tests/testMCHAN_2D_ext_tcdm - command: + command: make clean all run testMCHAN_basic: path: ./mchan_tests/testMCHAN_basic command: make clean all run testMCHAN_multi_trans: path: ./mchan_tests/testMCHAN_multi_trans - command: + command: make clean all run testMCHAN_pe_basic: path: ./mchan_tests/testMCHAN_pe_basic command: make clean all run @@ -16,10 +16,10 @@ mchan_tests: command: make clean all run testMCHAN_4k_crossing: path: ./mchan_tests/testMCHAN_4k_crossing - command: + command: make clean all run testMCHAN_basic_FC_TCDM: path: ./mchan_tests/testMCHAN_basic_FC_TCDM - command: + command: make clean all run testMCHAN_not_incremental: path: ./mchan_tests/testMCHAN_not_incremental command: make clean all run @@ -28,4 +28,4 @@ mchan_tests: command: make clean all run testMCHAN_basic_8cores: path: ./mchan_tests/testMCHAN_basic_8cores - command: make clean all run + command: make clean all run \ No newline at end of file From 605458934da8af84d5fdafd27d49de030765eae5 Mon Sep 17 00:00:00 2001 From: Yvan Tortorella Date: Tue, 24 Oct 2023 15:59:06 +0200 Subject: [PATCH 10/56] Added carfield-related regressions. --- carfield/hello/Makefile | 5 + carfield/hello/hello.c | 24 + carfield/parMatrixMul16/Makefile | 8 + carfield/parMatrixMul16/gen_stimuli.py | 54 + carfield/parMatrixMul16/matrixMul.c | 177 + .../parMatrixMul16/parMatrixMul16_stimuli.h | 3105 +++++++++++++++++ carfield/parMatrixMul32/Makefile | 8 + carfield/parMatrixMul32/gen_stimuli.py | 54 + carfield/parMatrixMul32/matrixMul.c | 177 + .../parMatrixMul32/parMatrixMul32_stimuli.h | 1742 +++++++++ carfield/parMatrixMul8/Makefile | 8 + carfield/parMatrixMul8/gen_stimuli.py | 54 + carfield/parMatrixMul8/matrixMul.c | 177 + .../parMatrixMul8/parMatrixMul8_stimuli.h | 3105 +++++++++++++++++ carfield/redmule/Makefile | 9 + carfield/redmule/archi_redmule.h | 164 + carfield/redmule/hal_redmule.h | 527 +++ carfield/redmule/inc/golden.h | 387 ++ carfield/redmule/inc/tensor_dim.h | 13 + carfield/redmule/inc/w_2D.h | 35 + carfield/redmule/inc/w_input.h | 35 + carfield/redmule/inc/x_2D.h | 27 + carfield/redmule/inc/x_input.h | 27 + carfield/redmule/inc/y_2D.h | 27 + carfield/redmule/inc/y_input.h | 27 + carfield/redmule/inc/z_2D.h | 27 + carfield/redmule/inc/z_output.h | 27 + carfield/redmule/redmule.c | 112 + 28 files changed, 10142 insertions(+) create mode 100644 carfield/hello/Makefile create mode 100644 carfield/hello/hello.c create mode 100755 carfield/parMatrixMul16/Makefile create mode 100755 carfield/parMatrixMul16/gen_stimuli.py create mode 100644 carfield/parMatrixMul16/matrixMul.c create mode 100644 carfield/parMatrixMul16/parMatrixMul16_stimuli.h create mode 100755 carfield/parMatrixMul32/Makefile create mode 100755 carfield/parMatrixMul32/gen_stimuli.py create mode 100644 carfield/parMatrixMul32/matrixMul.c create mode 100644 carfield/parMatrixMul32/parMatrixMul32_stimuli.h create mode 100755 carfield/parMatrixMul8/Makefile create mode 100755 carfield/parMatrixMul8/gen_stimuli.py create mode 100644 carfield/parMatrixMul8/matrixMul.c create mode 100644 carfield/parMatrixMul8/parMatrixMul8_stimuli.h create mode 100644 carfield/redmule/Makefile create mode 100644 carfield/redmule/archi_redmule.h create mode 100644 carfield/redmule/hal_redmule.h create mode 100644 carfield/redmule/inc/golden.h create mode 100644 carfield/redmule/inc/tensor_dim.h create mode 100644 carfield/redmule/inc/w_2D.h create mode 100644 carfield/redmule/inc/w_input.h create mode 100644 carfield/redmule/inc/x_2D.h create mode 100644 carfield/redmule/inc/x_input.h create mode 100644 carfield/redmule/inc/y_2D.h create mode 100644 carfield/redmule/inc/y_input.h create mode 100644 carfield/redmule/inc/z_2D.h create mode 100644 carfield/redmule/inc/z_output.h create mode 100644 carfield/redmule/redmule.c diff --git a/carfield/hello/Makefile b/carfield/hello/Makefile new file mode 100644 index 0000000..d145a0f --- /dev/null +++ b/carfield/hello/Makefile @@ -0,0 +1,5 @@ +PULP_APP = test +PULP_APP_SRCS = hello.c +PULP_CFLAGS = -O3 + +include $(PULP_SDK_HOME)/install/rules/pulp.mk diff --git a/carfield/hello/hello.c b/carfield/hello/hello.c new file mode 100644 index 0000000..8741206 --- /dev/null +++ b/carfield/hello/hello.c @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2018 ETH Zurich and University of Bologna + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include + +int main() +{ + printf("Hello !\n"); + + return 0; +} diff --git a/carfield/parMatrixMul16/Makefile b/carfield/parMatrixMul16/Makefile new file mode 100755 index 0000000..0fade4a --- /dev/null +++ b/carfield/parMatrixMul16/Makefile @@ -0,0 +1,8 @@ +PULP_APP = test +PULP_APP_SRCS = matrixMul.c + +PULP_CFLAGS = -O3 + +include $(PULP_SDK_HOME)/install/rules/pulp.mk + +#pulp-bench-reg --name=parMatrixMul16.cycles --module=pulp_rtl_testset --pipeline=$(PIPELINE) --artefact=pulp_rtl_testset --cmd="make run -f Makefile.sdk" --probe-regexp='matrixMul -> success, nr. of errors: 0, execution time: (\d+)' --params="platform($(platformName)),compiler($(OR1K_TOOLCHAIN_TYPE)),nbCores(4),elemSize(16)" --probe-regexp='matrixMulTranspose -> success, nr. of errors: 0, execution time: (\d+)' --params="platform($(platformName)),compiler($(OR1K_TOOLCHAIN_TYPE)),nbCores(4),elemSize(16),transposed" diff --git a/carfield/parMatrixMul16/gen_stimuli.py b/carfield/parMatrixMul16/gen_stimuli.py new file mode 100755 index 0000000..2084a7d --- /dev/null +++ b/carfield/parMatrixMul16/gen_stimuli.py @@ -0,0 +1,54 @@ +#!/usr/bin/env python + +import sys +import random + + +def write_arr(f, name, arr): + f.write('const short %s[] = {\n' % name) + for v in arr: + f.write('%d,\n' % (v)) + f.write('};\n\n') + return + +################################################################################ +f = open('parMatrixMul16_stimuli.h', 'w') + + +SIZE = 32 +RANGE = 2**7/SIZE + +m_a = [] +m_b = [] +m_exp = [] + +for i in range(0,SIZE): + for j in range(0,SIZE): + a = random.randint(-RANGE, RANGE-1) + b = random.randint(-RANGE, RANGE-1) + + m_a.append(a) + m_b.append(b) + +for i in range(0,SIZE): + for j in range(0,SIZE): + r = 0 + + for k in range (0,SIZE): + r = r + m_a[i * SIZE + k] * m_b[k * SIZE + j] + + m_exp.append(r) + + +write_arr(f, 'm_a', m_a) +write_arr(f, 'm_b', m_b) +write_arr(f, 'm_exp', m_exp) + +f.write('#define SIZE %d\n' % SIZE) + + +f.write('__attribute__ ((section(".heapsram"))) short g_mA[SIZE][SIZE];\n') +f.write('__attribute__ ((section(".heapsram"))) short g_mB[SIZE][SIZE];\n') +f.write('__attribute__ ((section(".heapsram"))) short g_mC[SIZE][SIZE];\n') +f.write('__attribute__ ((section(".heapsram"))) short g_mB_tmp[SIZE][SIZE];\n') + diff --git a/carfield/parMatrixMul16/matrixMul.c b/carfield/parMatrixMul16/matrixMul.c new file mode 100644 index 0000000..5cbe65f --- /dev/null +++ b/carfield/parMatrixMul16/matrixMul.c @@ -0,0 +1,177 @@ +/* + * Copyright (C) 2018 ETH Zurich and University of Bologna + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * Mantainer: Luca Valente, luca.valente2@unibo.it + */ + +#include "pulp.h" + +#include "parMatrixMul16_stimuli.h" + +void check_matrix_mul(testresult_t *result, void (*start)(), void (*stop)()); +void check_matrix_mul_transpose(testresult_t *result, void (*start)(), void (*stop)()); + +testcase_t testcases[] = { + { .name = "matrixMul", .test = check_matrix_mul }, + { .name = "matrixMulTranspose", .test = check_matrix_mul_transpose }, + {0, 0} +}; + +unsigned int num_cores; + +int main() +{ + if (rt_cluster_id() != 0) + return bench_cluster_forward(0); + + num_cores = get_core_num(); + + if(rt_core_id() < num_cores) { + run_suite(testcases); + } + + synch_barrier(); + + return 0; +} + +void matrix_init(); +unsigned int matrix_check(); + +void check_matrix_mul(testresult_t *result, void (*start)(), void (*stop)()) { + int core_id; + unsigned int i, j, k; + unsigned int chunk; + unsigned int lb, ub; + + core_id = get_core_id(); + + // number of rows each core has to multiply + chunk = SIZE / num_cores; + // lower bound + lb = core_id * chunk; + // upper bound + ub = lb + chunk; + + if(core_id == 0) { + matrix_init(); + } + + if(num_cores != 1) synch_barrier(); + + // start benchmark + start(); + + for(i = lb; i < ub; i++) { + for(j = 0; j < SIZE; j++) { + g_mC[i][j] = 0; + + for(k = 0; k < SIZE; k++) { + g_mC[i][j] += g_mA[i][k] * g_mB[k][j]; + } + } + } + + if(num_cores != 1) synch_barrier(); + + stop(); + + if(core_id == 0) { + result->errors = matrix_check(); + } +} + +void check_matrix_mul_transpose(testresult_t *result, void (*start)(), void (*stop)()) { + int core_id; + unsigned int i, j, k; + unsigned int chunk; + unsigned int lb, ub; + + core_id = get_core_id(); + + // number of rows each core has to multiply + chunk = SIZE / num_cores; + // lower bound + lb = core_id * chunk; + // upper bound + ub = lb + chunk; + + if(core_id == 0) { + matrix_init(); + } + + if(num_cores != 1) synch_barrier(); + + // start benchmark + start(); + + // transpose array before using it + for(i = lb; i < ub; i++) { + for(j = 0; j < SIZE; j++) { + g_mB_tmp[i][j] = g_mB[j][i]; + } + } + + if(num_cores != 1) synch_barrier(); + + for(i = lb; i < ub; i++) { + for(j = 0; j < SIZE; j++) { + g_mC[i][j] = 0; + + for(k = 0; k < SIZE; k++) { + g_mC[i][j] += g_mA[i][k] * g_mB_tmp[j][k]; + } + } + } + + if(num_cores != 1) synch_barrier(); + + stop(); + + if(core_id == 0) { + result->errors = matrix_check(); + } +} + +void matrix_init() { + unsigned int i, j; + + // init, copy to TCDM + for(i = 0; i < SIZE; i++) { + for(j = 0; j < SIZE; j++) { + g_mA[i][j] = m_a[i * SIZE + j]; + g_mB[i][j] = m_b[i * SIZE + j]; + g_mC[i][j] = 0; + } + } +} + +unsigned int matrix_check() { + unsigned int errors = 0; + unsigned int i, j; + // check + for(i = 0; i < SIZE; i++) { + for(j = 0; j < SIZE; j++) { + if(g_mC[i][j] != m_exp[i * SIZE + j]) { + printf("At index %d, %d\n", i, j, 0, 0); + errors++; + } + } + } + + return errors; +} diff --git a/carfield/parMatrixMul16/parMatrixMul16_stimuli.h b/carfield/parMatrixMul16/parMatrixMul16_stimuli.h new file mode 100644 index 0000000..9b0f9bb --- /dev/null +++ b/carfield/parMatrixMul16/parMatrixMul16_stimuli.h @@ -0,0 +1,3105 @@ +/* + * Copyright (C) 2018 ETH Zurich and University of Bologna + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * Mantainer: Luca Valente, luca.valente2@unibo.it + */ +const short m_a[] = { +3, +-2, +-1, +3, +0, +-2, +2, +1, +2, +2, +-1, +-4, +1, +-4, +-2, +-1, +0, +2, +1, +3, +-2, +-2, +1, +-1, +3, +-4, +-2, +1, +-1, +0, +-1, +0, +1, +1, +1, +2, +-4, +-4, +2, +0, +-2, +3, +1, +0, +1, +-3, +3, +1, +-4, +3, +-3, +-2, +-3, +-1, +3, +-3, +1, +-4, +0, +-3, +0, +-1, +-2, +0, +-4, +1, +1, +0, +-4, +-4, +2, +2, +-1, +0, +-3, +1, +2, +1, +2, +1, +-1, +3, +0, +3, +-3, +-3, +2, +1, +2, +-2, +1, +-2, +-1, +-4, +3, +-4, +-4, +-3, +-4, +2, +3, +-2, +0, +-2, +1, +2, +0, +2, +3, +3, +3, +-4, +-1, +-4, +2, +-3, +3, +-4, +-3, +1, +3, +-4, +-4, +-1, +-2, +-1, +0, +1, +-2, +3, +-2, +1, +-4, +2, +3, +-1, +-3, +-2, +1, +-1, +3, +-3, +3, +-4, +0, +-3, +-1, +1, +1, +-1, +3, +2, +-1, +3, +-1, +3, +-2, +1, +-1, +-3, +3, +3, +-3, +-4, +-4, +-4, +2, +-3, +-3, +2, +3, +-4, +-4, +2, +-4, +-3, +1, +-1, +-1, +-4, +0, +-2, +2, +-2, +1, +-1, +0, +0, +-2, +-4, +-2, +-2, +-2, +-2, +2, +1, +-3, +-4, +0, +2, +0, +-3, +1, +0, +0, +-1, +1, +-2, +-3, +-2, +1, +-2, +-2, +1, +-2, +-4, +3, +-4, +3, +-2, +-2, +1, +-2, +1, +-2, +0, +-1, +-4, +1, +-3, +1, +0, +2, +3, +-4, +3, +0, +2, +-2, +-2, +-4, +-1, +-1, +2, +1, +-2, +2, +0, +-4, +-3, +-1, +-3, +-3, +-4, +-4, +3, +-1, +3, +3, +2, +3, +0, +3, +3, +2, +-4, +0, +-1, +0, +-4, +0, +2, +-2, +-2, +2, +-1, +-1, +3, +0, +0, +-2, +-3, +-2, +-3, +0, +0, +-3, +0, +-4, +-2, +3, +-1, +2, +0, +-3, +0, +-4, +-1, +1, +-1, +-2, +-1, +-1, +0, +2, +1, +3, +-3, +-2, +1, +-3, +-3, +1, +2, +-3, +2, +-1, +0, +-2, +3, +2, +-1, +0, +-1, +0, +-2, +-1, +0, +1, +3, +3, +2, +-4, +0, +2, +3, +-2, +3, +1, +-3, +1, +1, +-2, +2, +1, +2, +-2, +0, +0, +2, +-3, +-2, +1, +0, +-3, +0, +0, +-4, +1, +2, +-3, +1, +1, +2, +-3, +0, +-4, +0, +-4, +2, +0, +2, +-3, +0, +3, +-4, +3, +0, +1, +2, +0, +0, +-3, +-3, +-4, +-4, +0, +-1, +2, +-1, +0, +-4, +-1, +1, +-2, +2, +0, +3, +2, +-4, +-2, +3, +-4, +-1, +3, +-3, +-3, +-3, +-4, +-2, +-3, +-1, +-2, +-1, +-1, +-2, +2, +-4, +-2, +0, +3, +-1, +1, +-3, +2, +-3, +2, +2, +3, +2, +-3, +-1, +2, +-4, +-1, +-2, +0, +2, +-4, +0, +2, +-4, +2, +3, +-2, +-3, +2, +-1, +3, +1, +3, +-1, +1, +1, +-2, +-4, +2, +-1, +-1, +-2, +2, +-3, +-1, +-1, +2, +-4, +-1, +1, +1, +-3, +2, +2, +0, +-2, +1, +-4, +-3, +-3, +-3, +0, +3, +-1, +-4, +3, +0, +0, +-3, +3, +-2, +2, +0, +2, +-2, +0, +-3, +3, +1, +-2, +-2, +-2, +1, +0, +1, +2, +-2, +-1, +-3, +0, +3, +3, +-2, +-4, +0, +2, +-1, +-1, +-1, +-3, +-4, +0, +1, +-4, +-1, +-4, +-1, +-4, +-4, +-3, +-1, +-4, +-3, +-1, +-3, +0, +3, +2, +-4, +-3, +-3, +-4, +-1, +-1, +-2, +3, +-1, +-3, +3, +-1, +3, +2, +-1, +1, +0, +3, +-3, +-4, +1, +-2, +1, +-3, +-3, +0, +3, +-3, +-4, +-3, +0, +-4, +0, +3, +-4, +3, +2, +-4, +-1, +-1, +-3, +-3, +2, +1, +2, +-3, +0, +2, +1, +-4, +-3, +-2, +2, +0, +1, +2, +0, +-1, +-3, +1, +-2, +-1, +-3, +1, +3, +1, +3, +-3, +-4, +1, +0, +-1, +0, +-3, +-2, +-1, +2, +2, +-4, +2, +2, +1, +-1, +-2, +3, +2, +1, +0, +-4, +1, +-1, +-1, +-1, +-2, +-4, +1, +2, +-4, +2, +-4, +2, +-2, +2, +-2, +1, +0, +0, +2, +3, +0, +2, +-4, +1, +2, +3, +-2, +2, +-4, +0, +1, +-4, +-1, +-2, +-4, +1, +-1, +-3, +1, +-3, +0, +0, +-1, +0, +2, +-1, +-4, +1, +-1, +3, +-4, +2, +2, +1, +-1, +-4, +-3, +1, +2, +2, +3, +3, +3, +1, +-2, +-1, +-4, +-1, +-3, +-4, +3, +0, +2, +-4, +3, +-4, +-4, +1, +1, +-4, +-1, +-1, +-3, +0, +0, +-2, +-3, +-4, +1, +-1, +-1, +3, +1, +2, +-1, +-1, +2, +-1, +-2, +2, +-1, +-3, +1, +1, +0, +1, +3, +2, +0, +3, +0, +3, +0, +-2, +0, +-4, +0, +-3, +1, +3, +-2, +3, +0, +3, +-1, +1, +2, +3, +0, +-4, +1, +1, +0, +-3, +0, +-2, +3, +-1, +3, +-4, +3, +2, +-3, +-2, +-2, +-1, +1, +-2, +-2, +-3, +-2, +-1, +1, +0, +2, +1, +0, +0, +1, +-3, +-2, +-1, +-3, +3, +-2, +0, +-3, +1, +-4, +2, +0, +-1, +-3, +1, +2, +-2, +-3, +-2, +-4, +-3, +1, +-4, +-3, +-2, +2, +1, +-3, +0, +3, +-1, +-4, +-1, +-2, +0, +1, +2, +1, +-3, +-4, +1, +3, +3, +-3, +2, +-1, +-4, +-1, +0, +1, +-2, +-2, +2, +0, +-4, +-4, +-4, +-3, +2, +3, +0, +2, +2, +-1, +-1, +-2, +-1, +3, +2, +0, +-1, +-1, +1, +0, +-4, +0, +2, +-3, +0, +-2, +3, +-4, +-3, +3, +-2, +3, +-3, +-2, +-1, +-4, +1, +2, +-2, +-4, +0, +-4, +-1, +-3, +0, +1, +2, +0, +2, +2, +1, +2, +-3, +1, +-3, +-4, +0, +3, +-4, +-1, +1, +-1, +0, +-3, +0, +2, +-1, +2, +-4, +3, +-3, +0, +-2, +1, +-4, +2, +-1, +2, +-3, +-3, +-1, +-3, +0, +-2, +-1, +-1, +-4, +-1, +2, +-4, +3, +-4, +-2, +2, +2, +-3, +2, +0, +3, +0, +-2, +-2, +-1, +-4, +3, +3, +2, +1, +-4, +-2, +-3, +1, +-2, +1, +0, +-3, +-4, +-4, +1, +1, +-3, +-2, +1, +-2, +2, +-4, +0, +1, +-4, +-4, +0, +-4, +0, +2, +3, +2, +0, +-3, +-2, +-2, +-1, +-2, +1, +-3, +-2, +1, +-1, +3, +2, +3, +0, +-1, +-3, +-3, +2, +3, +2, +3, +-3, +-1, +-1, +-4, +1, +-4, +-3, +-4, +-4, +-3, +2, +3, +-2, +2, +-3, +-4, +-2, +3, +3, +3, +1, +-4, +-4, +1, +-3, +1, +2, +1, +}; + +const short m_b[] = { +0, +3, +3, +2, +2, +0, +3, +0, +2, +-3, +-2, +-1, +-3, +0, +-4, +0, +-2, +-3, +0, +0, +-3, +0, +0, +-1, +1, +1, +-1, +-1, +0, +0, +-1, +3, +-1, +-2, +1, +2, +3, +-4, +3, +-4, +3, +0, +2, +-2, +-3, +2, +-1, +-4, +-1, +-4, +0, +-2, +0, +0, +-2, +0, +-2, +-4, +-3, +0, +-3, +-2, +0, +-3, +-3, +3, +3, +2, +0, +-4, +-1, +2, +1, +-1, +1, +2, +0, +-4, +3, +-1, +-3, +-1, +-4, +-1, +0, +-1, +3, +1, +-2, +-1, +2, +2, +-4, +3, +-4, +0, +-1, +-4, +1, +-3, +3, +-2, +3, +-2, +-2, +-2, +-4, +-2, +-3, +2, +3, +-4, +-1, +2, +3, +0, +1, +-3, +2, +0, +-2, +-1, +-3, +3, +-1, +0, +-2, +3, +0, +-1, +-1, +2, +-1, +3, +-4, +-2, +-3, +1, +-3, +2, +-2, +-4, +-4, +-4, +-2, +2, +-4, +3, +3, +-1, +0, +1, +-4, +-3, +2, +-2, +-3, +-3, +3, +0, +3, +-4, +1, +-1, +-1, +2, +3, +3, +-4, +0, +-1, +-1, +-2, +-1, +2, +-3, +-4, +2, +-1, +1, +2, +-2, +2, +-3, +-4, +1, +-4, +-3, +0, +3, +-3, +0, +-3, +0, +-3, +3, +-2, +-1, +3, +-2, +-3, +3, +2, +3, +-2, +0, +-1, +-3, +2, +2, +-2, +0, +-1, +-4, +3, +2, +-2, +1, +-3, +2, +-2, +0, +-1, +0, +-4, +0, +-2, +1, +3, +3, +3, +3, +3, +1, +2, +0, +-4, +-3, +2, +-1, +-2, +2, +-2, +-2, +-1, +2, +-3, +3, +-3, +1, +1, +-4, +-1, +2, +-3, +2, +-2, +3, +-2, +-3, +-1, +-3, +3, +1, +-2, +3, +0, +-2, +0, +2, +3, +-4, +3, +1, +-3, +2, +0, +-2, +2, +2, +1, +-1, +0, +1, +-2, +-3, +-3, +-3, +-2, +-1, +-3, +-1, +-1, +1, +0, +-2, +-2, +3, +-1, +-4, +0, +-4, +-3, +-3, +1, +1, +1, +-2, +-1, +-1, +-4, +-1, +-1, +1, +2, +-4, +-3, +0, +2, +-1, +2, +-1, +2, +2, +-3, +0, +-3, +-3, +-4, +3, +-3, +3, +1, +3, +1, +-1, +2, +-3, +-3, +-4, +-2, +-3, +1, +3, +0, +0, +3, +2, +3, +1, +0, +-3, +-4, +1, +0, +-4, +-3, +1, +-1, +1, +-1, +-4, +0, +-1, +-2, +1, +2, +-1, +3, +0, +-3, +1, +1, +-1, +1, +-4, +1, +3, +-3, +-3, +0, +3, +1, +-4, +0, +-4, +0, +1, +3, +-1, +-1, +-2, +0, +-1, +2, +0, +0, +2, +1, +1, +-1, +-3, +1, +-1, +3, +2, +2, +0, +-3, +2, +2, +-2, +1, +-4, +0, +0, +1, +0, +-1, +1, +1, +0, +-2, +-2, +-4, +-3, +1, +0, +2, +0, +1, +2, +-1, +-2, +0, +-1, +-1, +-3, +3, +3, +-1, +-1, +0, +3, +0, +2, +2, +1, +0, +0, +1, +3, +-2, +1, +-2, +0, +2, +-4, +0, +-2, +2, +0, +1, +-4, +-1, +2, +1, +1, +3, +1, +-1, +-1, +-2, +-2, +-2, +0, +-4, +-3, +3, +1, +3, +-2, +1, +2, +2, +0, +3, +0, +-2, +-4, +0, +-2, +3, +1, +0, +-3, +-3, +-2, +1, +0, +-3, +-4, +0, +3, +-3, +2, +3, +-3, +0, +-3, +-2, +-2, +0, +-3, +0, +2, +1, +-2, +1, +2, +-3, +1, +-2, +-4, +-4, +-4, +-3, +-1, +-1, +0, +-3, +-4, +-3, +-1, +-2, +2, +1, +2, +0, +1, +0, +0, +3, +2, +0, +-4, +2, +-1, +0, +1, +2, +2, +-2, +-3, +0, +1, +-4, +2, +-2, +0, +-4, +0, +-1, +3, +1, +-2, +-4, +2, +1, +-2, +-1, +3, +3, +0, +1, +-3, +3, +-1, +3, +-2, +-3, +-2, +-4, +-2, +-4, +0, +0, +3, +1, +2, +3, +2, +2, +-2, +-4, +2, +1, +2, +-3, +0, +-2, +-2, +-2, +0, +-2, +-1, +1, +1, +2, +2, +3, +-2, +-3, +0, +-2, +0, +-2, +-2, +-1, +-3, +-2, +-1, +-2, +-2, +-3, +0, +-3, +-1, +1, +0, +-2, +3, +2, +1, +-4, +0, +3, +-4, +2, +2, +1, +1, +-1, +-2, +0, +2, +2, +1, +-3, +-1, +1, +0, +0, +-1, +1, +0, +0, +-1, +-1, +1, +-2, +-1, +-3, +-3, +2, +-1, +-3, +3, +2, +1, +1, +-1, +2, +1, +0, +2, +2, +2, +-2, +2, +-3, +-4, +3, +-4, +2, +-1, +0, +2, +3, +3, +-1, +3, +-1, +-2, +2, +-2, +-4, +-1, +-1, +-2, +-3, +0, +-1, +1, +-3, +1, +-3, +1, +1, +3, +-3, +-2, +-2, +3, +2, +3, +-2, +3, +1, +0, +2, +-2, +-3, +3, +-4, +-3, +-3, +-3, +2, +3, +1, +-3, +0, +-1, +1, +-4, +0, +0, +3, +3, +-3, +-4, +-3, +2, +-1, +-2, +2, +-2, +3, +3, +2, +-2, +3, +2, +2, +-2, +1, +0, +-1, +0, +-3, +3, +0, +1, +-2, +-1, +-2, +-3, +0, +-1, +-3, +-1, +-4, +-3, +0, +-4, +0, +-1, +3, +0, +3, +1, +1, +0, +2, +-3, +-2, +-3, +-2, +1, +-2, +-2, +3, +-3, +-2, +-4, +3, +3, +1, +1, +-2, +-2, +0, +-3, +-1, +1, +-2, +-4, +1, +2, +2, +2, +-4, +-3, +2, +2, +0, +3, +2, +-3, +-2, +2, +3, +3, +-1, +0, +1, +2, +-1, +-3, +-3, +-4, +-2, +-1, +-3, +0, +-2, +1, +1, +2, +-1, +-2, +-2, +1, +-2, +-1, +-4, +-2, +2, +-3, +-1, +-2, +-4, +3, +-2, +-2, +3, +1, +-4, +1, +-2, +0, +-4, +-2, +-3, +-3, +-3, +-3, +2, +3, +-4, +0, +0, +-3, +2, +0, +-3, +-2, +-4, +-3, +3, +-1, +3, +2, +-4, +-2, +3, +2, +0, +3, +-1, +1, +1, +-4, +1, +-3, +0, +-3, +-1, +-1, +-3, +1, +3, +-1, +-2, +-1, +3, +3, +0, +-2, +3, +1, +3, +-3, +-1, +2, +-1, +1, +-1, +3, +0, +1, +2, +0, +2, +-1, +-4, +3, +1, +-2, +-1, +2, +-3, +-1, +0, +-3, +-3, +2, +0, +-3, +-1, +0, +-3, +-3, +3, +0, +-3, +-3, +-3, +1, +-2, +1, +3, +-3, +1, +1, +2, +2, +1, +1, +2, +-4, +-4, +3, +-4, +0, +-2, +0, +3, +-1, +-1, +3, +0, +2, +-3, +3, +1, +2, +2, +0, +1, +0, +0, +0, +2, +-2, +-1, +3, +-1, +-4, +3, +1, +-4, +-2, +-1, +3, +3, +-2, +-2, +-1, +-3, +1, +1, +2, +2, +2, +-3, +-1, +-4, +-3, +-2, +3, +-4, +-1, +-3, +-1, +2, +-1, +1, +0, +3, +-4, +0, +2, +}; + +const short m_exp[] = { +-8, +10, +-3, +-13, +15, +-22, +32, +-11, +6, +36, +-22, +-11, +-20, +17, +-33, +-26, +-13, +-7, +-8, +11, +0, +-6, +-38, +16, +28, +0, +0, +-21, +32, +-18, +15, +49, +-39, +24, +-2, +25, +33, +-8, +52, +-19, +58, +5, +1, +8, +21, +49, +6, +-9, +-11, +-33, +25, +8, +5, +-9, +-33, +-28, +21, +-1, +24, +-31, +2, +27, +-4, +2, +-17, +7, +-11, +-2, +-21, +-27, +8, +11, +71, +-31, +28, +13, +10, +40, +35, +25, +-4, +1, +27, +-19, +50, +18, +-23, +15, +12, +16, +-24, +0, +-16, +-8, +19, +-16, +10, +3, +-32, +-23, +-31, +-20, +-52, +-42, +-17, +26, +-20, +3, +85, +33, +37, +5, +38, +16, +21, +8, +80, +13, +5, +-42, +1, +-29, +4, +0, +7, +11, +91, +33, +-9, +-20, +2, +-6, +0, +3, +-22, +-31, +37, +29, +30, +-4, +-35, +26, +25, +-13, +40, +22, +50, +-39, +13, +19, +30, +-24, +-10, +31, +-47, +19, +-3, +-15, +7, +-36, +2, +55, +-20, +15, +31, +-5, +14, +-37, +47, +70, +1, +36, +16, +17, +-43, +73, +35, +-58, +41, +-40, +-58, +-2, +-13, +-12, +62, +7, +21, +23, +24, +53, +34, +-19, +-18, +52, +-10, +2, +7, +-26, +6, +7, +42, +5, +-1, +22, +55, +26, +30, +31, +25, +-24, +-18, +-9, +3, +43, +7, +-25, +38, +-35, +1, +-3, +7, +61, +-19, +45, +-54, +101, +-9, +-22, +36, +13, +-14, +23, +12, +39, +13, +3, +32, +9, +3, +14, +-19, +2, +-14, +56, +37, +0, +-23, +-38, +13, +27, +11, +-34, +-12, +0, +27, +-28, +-3, +37, +40, +39, +40, +-30, +38, +13, +2, +20, +8, +7, +9, +14, +57, +-44, +-15, +18, +-49, +37, +40, +-16, +21, +7, +-80, +-28, +10, +-25, +-56, +5, +-54, +20, +10, +-28, +24, +-7, +21, +5, +-59, +-2, +-7, +14, +-1, +31, +19, +-48, +4, +41, +-36, +10, +-13, +8, +2, +14, +9, +19, +-21, +-32, +54, +-1, +16, +25, +18, +19, +8, +25, +31, +-13, +-31, +5, +2, +-11, +-17, +-18, +1, +-24, +26, +-2, +20, +-19, +30, +12, +-1, +-9, +-17, +-19, +-14, +15, +-13, +-14, +33, +-6, +-9, +36, +-6, +-45, +-26, +29, +-27, +-52, +0, +53, +-2, +-42, +18, +8, +7, +26, +-35, +3, +-27, +23, +35, +-28, +-7, +2, +-39, +0, +-22, +9, +44, +12, +-1, +-44, +44, +38, +11, +-21, +7, +33, +-1, +-38, +-3, +43, +-14, +30, +12, +2, +-33, +7, +20, +-25, +-2, +31, +-30, +54, +36, +42, +89, +-7, +35, +-19, +19, +-15, +10, +54, +15, +37, +71, +-1, +22, +14, +-30, +0, +-4, +-2, +-31, +20, +-19, +-31, +-34, +4, +38, +9, +-35, +25, +50, +-10, +9, +4, +7, +-15, +82, +-18, +7, +24, +-8, +10, +10, +1, +24, +21, +7, +70, +48, +17, +21, +-56, +11, +19, +24, +35, +-33, +-15, +21, +9, +8, +-12, +-36, +-32, +-18, +-15, +21, +19, +-1, +-51, +12, +17, +3, +-17, +-20, +3, +-13, +1, +19, +-4, +7, +-21, +28, +42, +50, +8, +-4, +-7, +-18, +-56, +-19, +-16, +13, +-6, +29, +15, +35, +-19, +-23, +-14, +-15, +3, +-15, +47, +38, +-44, +20, +48, +-11, +15, +-4, +76, +33, +38, +76, +-34, +3, +25, +78, +76, +-2, +4, +39, +48, +14, +49, +-9, +-3, +23, +20, +17, +35, +-10, +-22, +23, +6, +64, +-9, +13, +-5, +-19, +25, +-23, +-7, +-11, +-44, +18, +36, +-30, +-13, +52, +54, +12, +68, +-11, +-66, +34, +31, +-32, +35, +28, +50, +58, +36, +35, +19, +-51, +-9, +58, +-34, +-35, +-17, +-11, +22, +-3, +21, +-6, +23, +0, +-33, +3, +19, +47, +-12, +-8, +-13, +29, +-13, +6, +-3, +-29, +37, +10, +-42, +31, +40, +28, +25, +0, +-21, +13, +8, +-16, +-1, +-18, +23, +50, +-4, +-6, +0, +-26, +10, +31, +36, +29, +-25, +-22, +2, +61, +12, +22, +23, +-25, +2, +28, +7, +78, +47, +-13, +-7, +-14, +-21, +19, +-32, +5, +15, +-12, +43, +28, +-1, +16, +9, +-11, +-4, +30, +-25, +7, +36, +-42, +3, +16, +7, +0, +-40, +28, +25, +44, +-8, +43, +-7, +49, +-2, +-40, +-13, +37, +23, +-33, +-2, +-28, +-26, +6, +-7, +37, +53, +17, +-11, +-59, +12, +42, +-46, +10, +31, +43, +-14, +6, +16, +-55, +10, +44, +-18, +36, +-14, +85, +12, +-69, +25, +35, +4, +-22, +-5, +26, +-22, +28, +-63, +-28, +2, +-30, +22, +-46, +-1, +17, +-37, +25, +22, +42, +-9, +-28, +40, +11, +-8, +59, +3, +26, +36, +-7, +-11, +12, +-10, +10, +26, +26, +-22, +41, +-9, +26, +-14, +19, +-8, +27, +0, +23, +20, +42, +-22, +-23, +-71, +-36, +11, +-23, +-10, +-2, +17, +51, +-65, +-19, +3, +42, +37, +19, +24, +6, +33, +29, +-30, +3, +-28, +-5, +12, +-36, +-29, +20, +15, +-1, +8, +25, +-18, +-17, +22, +64, +35, +7, +33, +8, +-41, +40, +26, +0, +8, +-10, +-65, +48, +7, +6, +-10, +28, +16, +20, +0, +52, +31, +2, +-53, +-23, +32, +-12, +-6, +-10, +27, +2, +3, +49, +-46, +17, +92, +9, +-21, +17, +-32, +-1, +67, +-1, +-17, +46, +-11, +10, +6, +46, +52, +-4, +28, +61, +18, +43, +-22, +-25, +29, +-56, +-22, +17, +-52, +-3, +7, +38, +6, +19, +49, +-8, +-20, +17, +13, +52, +10, +22, +-19, +5, +-7, +-7, +-4, +42, +-2, +64, +8, +5, +31, +35, +-51, +4, +17, +-42, +23, +19, +-5, +-23, +14, +7, +47, +35, +40, +-1, +31, +36, +34, +9, +6, +22, +-77, +32, +36, +-43, +-2, +47, +2, +6, +8, +-14, +45, +-20, +-43, +-14, +19, +5, +23, +74, +2, +-14, +2, +1, +-12, +-5, +23, +-17, +45, +20, +6, +56, +13, +-5, +2, +23, +-8, +1, +-21, +-11, +37, +35, +-15, +14, +39, +22, +37, +19, +-13, +73, +29, +22, +7, +-29, +-60, +28, +-6, +-1, +-34, +-9, +59, +18, +16, +36, +-16, +5, +22, +-22, +2, +52, +-27, +-15, +4, +-2, +56, +4, +36, +30, +-48, +-13, +11, +-47, +16, +37, +-27, +8, +31, +15, +-15, +29, +47, +21, +-26, +31, +-8, +24, +52, +76, +-19, +15, +29, +11, +28, +13, +21, +-22, +-45, +18, +19, +27, +61, +57, +-56, +26, +20, +61, +-40, +16, +-31, +53, +83, +-2, +-16, +-10, +13, +62, +52, +-6, +-49, +13, +-37, +2, +-36, +2, +25, +-22, +-10, +-4, +-2, +}; + +#define SIZE 32 +__attribute__ ((section(".heapsram"))) short g_mA[SIZE][SIZE]; +__attribute__ ((section(".heapsram"))) short g_mB[SIZE][SIZE]; +__attribute__ ((section(".heapsram"))) short g_mC[SIZE][SIZE]; +__attribute__ ((section(".heapsram"))) short g_mB_tmp[SIZE][SIZE]; diff --git a/carfield/parMatrixMul32/Makefile b/carfield/parMatrixMul32/Makefile new file mode 100755 index 0000000..bd55e15 --- /dev/null +++ b/carfield/parMatrixMul32/Makefile @@ -0,0 +1,8 @@ +PULP_APP = test +PULP_APP_SRCS = matrixMul.c + +PULP_CFLAGS = -O3 + +include $(PULP_SDK_HOME)/install/rules/pulp.mk + +#pulp-bench-reg --name=parMatrixMul32.cycles --module=pulp_rtl_testset --pipeline=$(PIPELINE) --artefact=pulp_rtl_testset --cmd="make run -f Makefile.sdk" --probe-regexp='matrixMul -> success, nr. of errors: 0, execution time: (\d+)' --params="platform($(platformName)),compiler($(OR1K_TOOLCHAIN_TYPE)),nbCores(4),elemSize(32)" --probe-regexp='matrixMulTranspose -> success, nr. of errors: 0, execution time: (\d+)' --params="platform($(platformName)),compiler($(OR1K_TOOLCHAIN_TYPE)),nbCores(4),elemSize(32),transposed" diff --git a/carfield/parMatrixMul32/gen_stimuli.py b/carfield/parMatrixMul32/gen_stimuli.py new file mode 100755 index 0000000..75eef86 --- /dev/null +++ b/carfield/parMatrixMul32/gen_stimuli.py @@ -0,0 +1,54 @@ +#!/usr/bin/env python + +import sys +import random + + +def write_arr(f, name, arr): + f.write('const int %s[] = {\n' % name) + for v in arr: + f.write('%d,\n' % (v)) + f.write('};\n\n') + return + +################################################################################ +f = open('parMatrixMul32_stimuli.h', 'w') + + +SIZE = 24 +RANGE = 2**15/SIZE + +m_a = [] +m_b = [] +m_exp = [] + +for i in range(0,SIZE): + for j in range(0,SIZE): + a = random.randint(-RANGE, RANGE-1) + b = random.randint(-RANGE, RANGE-1) + + m_a.append(a) + m_b.append(b) + +for i in range(0,SIZE): + for j in range(0,SIZE): + r = 0 + + for k in range (0,SIZE): + r = r + m_a[i * SIZE + k] * m_b[k * SIZE + j] + + m_exp.append(r) + + +write_arr(f, 'm_a', m_a) +write_arr(f, 'm_b', m_b) +write_arr(f, 'm_exp', m_exp) + +f.write('#define SIZE %d\n' % SIZE) + + +f.write('__attribute__ ((section(".heapsram"))) int g_mA[SIZE][SIZE];\n') +f.write('__attribute__ ((section(".heapsram"))) int g_mB[SIZE][SIZE];\n') +f.write('__attribute__ ((section(".heapsram"))) int g_mC[SIZE][SIZE];\n') +f.write('__attribute__ ((section(".heapsram"))) int g_mB_tmp[SIZE][SIZE];\n') + diff --git a/carfield/parMatrixMul32/matrixMul.c b/carfield/parMatrixMul32/matrixMul.c new file mode 100644 index 0000000..990d411 --- /dev/null +++ b/carfield/parMatrixMul32/matrixMul.c @@ -0,0 +1,177 @@ +/* + * Copyright (C) 2018 ETH Zurich and University of Bologna + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * Mantainer: Luca Valente, luca.valente2@unibo.it + */ + +#include "pulp.h" + +#include "parMatrixMul32_stimuli.h" + +void check_matrix_mul(testresult_t *result, void (*start)(), void (*stop)()); +void check_matrix_mul_transpose(testresult_t *result, void (*start)(), void (*stop)()); + +testcase_t testcases[] = { + { .name = "matrixMul", .test = check_matrix_mul }, + { .name = "matrixMulTranspose", .test = check_matrix_mul_transpose }, + {0, 0} +}; + +unsigned int num_cores; + +int main() +{ + if (rt_cluster_id() != 0) + return bench_cluster_forward(0); + + num_cores = get_core_num(); + + if(rt_core_id() < num_cores) { + run_suite(testcases); + } + + synch_barrier(); + + return 0; +} + +void matrix_init(); +unsigned int matrix_check(); + +void check_matrix_mul(testresult_t *result, void (*start)(), void (*stop)()) { + int core_id; + unsigned int i, j, k; + unsigned int chunk; + unsigned int lb, ub; + + core_id = get_core_id(); + + // number of rows each core has to multiply + chunk = SIZE / num_cores; + // lower bound + lb = core_id * chunk; + // upper bound + ub = lb + chunk; + + if(core_id == 0) { + matrix_init(); + } + + if(num_cores != 1) synch_barrier(); + + // start benchmark + start(); + + for(i = lb; i < ub; i++) { + for(j = 0; j < SIZE; j++) { + g_mC[i][j] = 0; + + for(k = 0; k < SIZE; k++) { + g_mC[i][j] += g_mA[i][k] * g_mB[k][j]; + } + } + } + + if(num_cores != 1) synch_barrier(); + + stop(); + + if(core_id == 0) { + result->errors = matrix_check(); + } +} + +void check_matrix_mul_transpose(testresult_t *result, void (*start)(), void (*stop)()) { + int core_id; + unsigned int i, j, k; + unsigned int chunk; + unsigned int lb, ub; + + core_id = get_core_id(); + + // number of rows each core has to multiply + chunk = SIZE / num_cores; + // lower bound + lb = core_id * chunk; + // upper bound + ub = lb + chunk; + + if(core_id == 0) { + matrix_init(); + } + + if(num_cores != 1) synch_barrier(); + + // start benchmark + start(); + + // transpose array before using it + for(i = lb; i < ub; i++) { + for(j = 0; j < SIZE; j++) { + g_mB_tmp[i][j] = g_mB[j][i]; + } + } + + if(num_cores != 1) synch_barrier(); + + for(i = lb; i < ub; i++) { + for(j = 0; j < SIZE; j++) { + g_mC[i][j] = 0; + + for(k = 0; k < SIZE; k++) { + g_mC[i][j] += g_mA[i][k] * g_mB_tmp[j][k]; + } + } + } + + if(num_cores != 1) synch_barrier(); + + stop(); + + if(core_id == 0) { + result->errors = matrix_check(); + } +} + +void matrix_init() { + unsigned int i, j; + + // init, copy to TCDM + for(i = 0; i < SIZE; i++) { + for(j = 0; j < SIZE; j++) { + g_mA[i][j] = m_a[i * SIZE + j]; + g_mB[i][j] = m_b[i * SIZE + j]; + g_mC[i][j] = 0; + } + } +} + +unsigned int matrix_check() { + unsigned int errors = 0; + unsigned int i, j; + // check + for(i = 0; i < SIZE; i++) { + for(j = 0; j < SIZE; j++) { + if(g_mC[i][j] != m_exp[i * SIZE + j]) { + printf("At index %d, %d\n", i, j, 0, 0); + errors++; + } + } + } + + return errors; +} diff --git a/carfield/parMatrixMul32/parMatrixMul32_stimuli.h b/carfield/parMatrixMul32/parMatrixMul32_stimuli.h new file mode 100644 index 0000000..d5c1af0 --- /dev/null +++ b/carfield/parMatrixMul32/parMatrixMul32_stimuli.h @@ -0,0 +1,1742 @@ +const int m_a[] = { +-1344, +-778, +-350, +1240, +950, +940, +1262, +285, +738, +-37, +257, +704, +87, +-1135, +1175, +960, +984, +611, +-1170, +1243, +-729, +-1235, +-1229, +8, +52, +1156, +-804, +-129, +-112, +-307, +1045, +-954, +-944, +477, +1104, +-600, +-31, +1364, +-950, +-153, +967, +-446, +235, +-197, +763, +-660, +-1289, +116, +-458, +994, +1086, +156, +-549, +102, +-532, +943, +299, +340, +516, +1117, +515, +1335, +708, +-306, +-589, +517, +655, +-279, +-595, +-255, +-1104, +-16, +507, +199, +-297, +-905, +-1084, +982, +20, +-1364, +407, +333, +-798, +-711, +1301, +175, +490, +-165, +-1097, +1251, +1203, +-884, +419, +-1262, +-950, +-1200, +759, +-205, +-1365, +-870, +109, +-1135, +36, +796, +-1233, +-1117, +-826, +241, +588, +-513, +-353, +791, +1071, +-1073, +220, +-1094, +1096, +-723, +280, +-505, +151, +399, +319, +-1120, +-213, +-966, +679, +497, +-290, +-300, +-290, +-599, +243, +-752, +604, +1196, +-715, +-177, +-329, +1337, +596, +1027, +509, +-301, +-1211, +-936, +-281, +446, +-356, +841, +-1123, +-1343, +-140, +-1300, +-828, +-237, +1206, +1274, +-1092, +-922, +913, +1201, +-422, +782, +-230, +633, +-1055, +-1160, +329, +1255, +1038, +770, +123, +934, +670, +-492, +-24, +-779, +-1129, +47, +555, +1214, +-232, +-716, +-322, +-126, +178, +827, +710, +-1057, +-313, +996, +1149, +-532, +570, +1171, +899, +-313, +-790, +1071, +154, +-303, +492, +-918, +-1139, +292, +129, +1347, +-309, +751, +1262, +142, +-1062, +-1305, +250, +657, +238, +-141, +1308, +-37, +-514, +-591, +-611, +852, +-653, +-640, +91, +254, +-1145, +-1263, +-838, +-10, +266, +-444, +1129, +762, +-713, +-326, +-88, +1063, +-442, +-177, +365, +-740, +-1219, +1085, +783, +-725, +-1112, +426, +660, +6, +-440, +513, +687, +1078, +212, +-434, +-953, +1337, +160, +622, +-950, +-943, +288, +-136, +-1103, +-223, +1271, +211, +251, +-271, +-26, +704, +1177, +544, +699, +-885, +-864, +-1280, +877, +-461, +995, +-623, +-121, +-146, +-484, +-225, +-978, +163, +-278, +-502, +-505, +-567, +-771, +1279, +699, +-1337, +544, +1145, +1271, +640, +277, +-164, +458, +-1280, +-602, +-2, +1136, +1203, +-699, +-195, +659, +-472, +1230, +1151, +-97, +-77, +-772, +-381, +-295, +636, +-1341, +-445, +-806, +531, +-1186, +-1313, +-274, +835, +-446, +558, +-1307, +-235, +43, +-254, +-109, +911, +-1189, +559, +-854, +-218, +149, +580, +1158, +-14, +181, +-1120, +-947, +-542, +1142, +631, +-893, +-614, +-257, +-365, +-951, +1, +-762, +268, +382, +-131, +808, +-234, +839, +346, +-733, +1251, +496, +-566, +-751, +581, +-1292, +1068, +-932, +-855, +1336, +-280, +523, +1294, +-1251, +1284, +-1276, +87, +1264, +-274, +-922, +-289, +-458, +-117, +196, +-79, +-707, +1233, +-385, +-620, +-617, +703, +-995, +-374, +660, +145, +821, +1289, +582, +-201, +447, +116, +759, +-615, +834, +268, +-1114, +-1016, +-227, +-589, +-910, +-244, +-660, +764, +219, +1165, +506, +-673, +799, +-1355, +-872, +491, +689, +176, +-285, +1151, +1080, +-319, +286, +833, +217, +-621, +478, +539, +-109, +-1273, +-564, +-240, +504, +518, +256, +-124, +74, +949, +-912, +-1341, +965, +-774, +634, +1009, +1304, +200, +-1041, +-1262, +-865, +-1065, +-635, +-357, +-928, +806, +1148, +-411, +56, +686, +-644, +1241, +-430, +297, +127, +457, +-1313, +741, +861, +220, +-540, +772, +265, +1066, +679, +177, +-734, +29, +-149, +181, +-1042, +-1139, +271, +-326, +-29, +1298, +643, +-890, +-136, +-1015, +-565, +-964, +894, +-312, +698, +159, +-222, +-1322, +578, +945, +1124, +1278, +54, +-389, +1101, +362, +-543, +380, +959, +-399, +-1105, +1308, +338, +-198, +-1111, +-278, +-752, +668, +1156, +-1226, +579, +184, +-1084, +-917, +-498, +-466, +316, +-788, +-718, +468, +367, +-1333, +-1146, +828, +1329, +311, +-1346, +54, +-976, +854, +-658, +-198, +-979, +156, +385, +-659, +1326, +1351, +-1173, +-648, +720, +-40, +313, +729, +-416, +351, +452, +-413, +-4, +-1113, +-612, +-28, +-721, +400, +1072, +-1010, +}; + +const int m_b[] = { +-1316, +319, +963, +-608, +519, +-783, +-676, +181, +172, +203, +-1351, +-935, +-12, +758, +-746, +1226, +127, +-1346, +1251, +-377, +889, +-23, +-417, +-122, +680, +1363, +729, +-907, +-1263, +-431, +363, +1355, +-566, +-517, +-1186, +1318, +-1104, +-1245, +950, +687, +252, +-270, +1081, +-1290, +656, +8, +60, +1171, +915, +-500, +678, +-953, +307, +-35, +-1334, +-888, +598, +1160, +722, +850, +-268, +988, +635, +-340, +252, +1208, +420, +82, +1283, +-319, +-666, +172, +583, +174, +471, +-1063, +452, +-191, +-1188, +116, +-927, +1086, +119, +-245, +-717, +-657, +417, +319, +1133, +1338, +141, +-546, +567, +-1089, +-191, +-1138, +-201, +-1286, +-820, +-1356, +1177, +-317, +191, +67, +164, +-306, +-1015, +1147, +-482, +1229, +-259, +-207, +1309, +847, +-399, +-1005, +-995, +140, +-567, +-1220, +-427, +180, +-571, +997, +-783, +-316, +-1360, +736, +75, +-1251, +-307, +-902, +1181, +1057, +-141, +-1098, +776, +1096, +-923, +914, +1049, +-28, +-742, +-804, +-467, +567, +329, +-309, +-161, +-157, +-430, +-639, +1138, +-165, +292, +-20, +777, +-715, +60, +-1359, +35, +307, +-1092, +271, +548, +822, +-50, +-475, +-103, +784, +537, +152, +-517, +-1097, +117, +-619, +538, +941, +172, +-223, +1161, +-1004, +-1145, +-455, +255, +363, +859, +403, +-861, +-657, +-537, +-1084, +-1042, +541, +1283, +-356, +1298, +-1254, +-303, +203, +104, +1123, +-72, +-171, +-1122, +-533, +440, +275, +613, +-846, +-189, +884, +704, +-570, +-440, +-1157, +-200, +-80, +616, +799, +757, +-264, +-1256, +-690, +152, +184, +-810, +-221, +-821, +-243, +508, +-709, +574, +-693, +315, +-952, +952, +697, +875, +-480, +-691, +422, +-413, +-1199, +441, +-751, +821, +1303, +-410, +416, +566, +-131, +-551, +46, +978, +-228, +1117, +-251, +-537, +874, +-882, +260, +-213, +248, +-1296, +1343, +-626, +-812, +629, +-601, +-378, +-1314, +-889, +774, +-307, +692, +-1125, +-692, +923, +947, +1158, +-939, +1284, +35, +1299, +369, +-8, +43, +768, +524, +137, +659, +285, +-1315, +-457, +871, +-768, +1107, +-695, +488, +-527, +-161, +414, +-526, +-1164, +1059, +-1108, +560, +-622, +898, +-50, +-286, +-170, +513, +952, +433, +237, +584, +-665, +-960, +585, +-434, +1223, +-130, +1035, +430, +202, +1312, +1152, +1059, +-1082, +-1295, +805, +-18, +613, +-94, +557, +548, +1354, +116, +289, +-1358, +-1234, +1237, +451, +820, +-102, +974, +832, +-1019, +914, +-512, +-267, +1329, +-910, +-1341, +862, +-381, +-23, +-658, +40, +-71, +-782, +1240, +-956, +1241, +-291, +-884, +1250, +699, +834, +190, +960, +-1260, +177, +464, +155, +-1105, +768, +424, +621, +740, +-1357, +1186, +-594, +1329, +829, +126, +1101, +1146, +-95, +605, +-673, +1334, +440, +-10, +12, +-745, +20, +19, +-793, +999, +1083, +487, +-657, +-356, +654, +-326, +-250, +-718, +-947, +-235, +558, +974, +-981, +637, +-861, +-768, +1045, +-583, +-910, +128, +734, +896, +-1156, +223, +284, +272, +634, +-473, +363, +359, +-1185, +14, +-33, +-1122, +140, +900, +439, +-944, +-770, +663, +865, +1056, +-238, +86, +-1294, +-44, +-603, +602, +20, +397, +-423, +-703, +-209, +-906, +-1236, +945, +-737, +578, +904, +645, +1225, +-877, +-425, +-493, +-1326, +424, +965, +1300, +-1210, +823, +1345, +626, +-427, +592, +-869, +-1055, +-938, +-427, +1066, +472, +-1055, +48, +-1200, +-349, +313, +-1227, +-228, +783, +839, +187, +1021, +-1355, +1284, +68, +-1321, +-997, +1286, +-887, +772, +-156, +-105, +1329, +1141, +-377, +-881, +-341, +1316, +-391, +-1249, +-205, +53, +-266, +-540, +-289, +-1011, +602, +-1032, +-1097, +-202, +-467, +-1047, +-867, +-340, +-109, +-496, +967, +1147, +108, +384, +-12, +1216, +137, +1318, +151, +219, +-543, +391, +668, +-1348, +-1244, +-810, +-676, +321, +-1258, +1343, +1214, +791, +35, +1219, +1278, +1037, +-1282, +661, +585, +921, +-880, +-989, +-1192, +-207, +273, +-382, +690, +165, +271, +-212, +739, +-343, +-42, +226, +40, +859, +-153, +622, +-1059, +}; + +const int m_exp[] = { +-4942391, +2289133, +-1363225, +1978230, +1580032, +-625813, +-3230128, +2236653, +19494, +3242695, +-1080745, +-34154, +4086860, +-1370876, +3997221, +-1812380, +4705498, +7690207, +-4068140, +3595067, +-1103308, +-939857, +-4249710, +-8650816, +-2013119, +2933624, +235162, +-453807, +-4447391, +3527041, +2046492, +411956, +-994117, +-1411344, +1333704, +-519761, +3026373, +-564969, +3749147, +2447173, +-557628, +1138674, +-1426096, +-4033488, +-1829685, +2815607, +2382958, +1714081, +-1470484, +3379876, +3660759, +-2439960, +-1180478, +-3300785, +-5104533, +-309753, +-1667400, +3258850, +1805449, +2481948, +-944985, +-363123, +4227063, +3022289, +2763211, +5114077, +-1534394, +-2957168, +3401637, +-1195822, +-747480, +-2915318, +-2505013, +-174927, +276733, +2899369, +-6702856, +923396, +-2741169, +4270685, +-1020657, +-2562887, +2074098, +-2382784, +1366504, +691209, +4127820, +400356, +-7415505, +823772, +-3848400, +-158560, +3759990, +2298445, +323394, +873625, +474364, +2617120, +-1382444, +1735284, +-5799715, +1915577, +7016057, +-1212904, +919286, +2949768, +1228832, +572192, +4145710, +-6809520, +-2199597, +677764, +-7169579, +-4904277, +6902014, +231123, +-4797299, +3093608, +989455, +4324476, +3121268, +810907, +-2457323, +2299211, +-1625774, +-141013, +3343022, +-2044657, +4089375, +-291323, +-1950307, +2480885, +2846731, +-2139146, +-2718414, +-1997531, +-2399245, +-4060224, +423228, +-205276, +-1602384, +910872, +-3535114, +6008729, +-559984, +-301205, +-5407307, +2981269, +1079061, +6602535, +-857708, +2756391, +-5304566, +-3769267, +2620777, +-4409088, +502077, +7568647, +-37918, +2315061, +-2540065, +8296540, +-7465282, +1553910, +-4736227, +-2139045, +95614, +342546, +1309722, +1777391, +2981296, +-736899, +-2572111, +-972463, +-2793724, +-2893912, +-1230264, +-871649, +-1439985, +3074445, +3339004, +2423842, +1751086, +4064832, +1550243, +6225792, +-503750, +-2567772, +5671219, +-2054796, +-551487, +-2787790, +-3835027, +-4272806, +2725813, +-2982521, +1803437, +3024675, +-201092, +-1626608, +1548043, +2303810, +3032912, +398283, +1704371, +1860306, +-4101665, +5187913, +4233418, +2054883, +3603470, +1935132, +-17548, +-4362444, +-2806918, +-5651039, +-1853372, +-1707208, +-153048, +-2791834, +402265, +2815962, +3391662, +-4833520, +-1190520, +2302448, +80738, +2089586, +174096, +2837490, +-5514606, +2138871, +336249, +-378675, +5833977, +4367000, +-2445147, +-3652299, +-1794451, +-1471577, +-1263012, +3719274, +-3404819, +5765304, +-4256415, +3558206, +-1884441, +-475244, +3659623, +-2914867, +689238, +-2576754, +7739914, +1823902, +2077002, +-2365242, +2023481, +1663749, +-4973435, +-694558, +1118078, +2260786, +-3256285, +4596746, +-5421599, +594942, +-1730692, +-4626077, +3077882, +-2232009, +2672161, +3135747, +-4602601, +859784, +-3530668, +21600, +-4690786, +2023164, +-496745, +-2728919, +281474, +-108745, +-809613, +1445687, +-5781458, +2097169, +1594266, +-4504019, +2460482, +6259537, +-700848, +413263, +-1212884, +-5695130, +2094147, +-750529, +-1379008, +6029072, +722889, +1719449, +1682336, +-4219755, +1971162, +66575, +-1195119, +141466, +-1083536, +-718558, +-4039954, +-168429, +-2026861, +2025800, +-761083, +-4194692, +2013337, +-1156936, +3823019, +4081732, +-3145845, +-1733615, +-1371947, +-3811245, +-1584663, +-3547009, +-3267886, +8255291, +-3232160, +3404636, +3248369, +3233853, +671601, +-1009897, +1821121, +-3517645, +2005444, +-2768741, +115998, +533867, +4717709, +1315923, +-3510545, +-3539595, +-538461, +4529529, +2792584, +-107486, +-1840413, +-1474849, +1579605, +-4197602, +-34825, +-462678, +1294881, +-1730927, +-2549709, +-1531672, +-271859, +-1181904, +-1680154, +-2321723, +-6641222, +1127764, +893535, +-2804646, +5653509, +2657606, +-1751466, +-4669812, +-827592, +-126901, +-2599752, +-845148, +1390838, +8975481, +-7663778, +3572438, +5920790, +5233883, +-613590, +-881500, +-3974422, +-5523348, +-3243204, +-6405765, +-4376438, +1352634, +-105650, +2650174, +1442151, +5088231, +2974595, +-4501663, +-841006, +-3101819, +-1265401, +-2756903, +2579743, +2045040, +-5328835, +2801176, +-386694, +-3068782, +3147225, +-248211, +-662659, +-1112717, +2733193, +336344, +3107302, +2244003, +4285762, +1998904, +1888720, +-1174981, +-2567532, +-5588952, +-101948, +4004848, +-610048, +793760, +3345423, +716318, +1033698, +4011882, +-965219, +1258434, +1579522, +-4249500, +3233648, +-424838, +2640541, +1020028, +4933599, +-1964947, +3237309, +-1251962, +-437406, +-2749192, +-2943112, +-117113, +778507, +2757711, +3478291, +-661571, +1077087, +-3821174, +2731860, +3035264, +-4424379, +295413, +3873542, +-1272809, +4145370, +-363272, +2240544, +88954, +-2016552, +-862779, +-844808, +3142493, +2019692, +3648148, +3857820, +593190, +1285134, +-4257140, +-1476035, +-1951773, +-2334649, +1355368, +-4390456, +3666652, +562848, +-8226958, +1134896, +1136697, +-2132899, +3300228, +1855661, +6476864, +5097743, +-1373818, +3287769, +1709294, +-2926119, +2463141, +400199, +3051372, +1815531, +1746372, +398117, +2333959, +-708565, +-4241370, +51697, +-1626217, +26865, +2248300, +3357859, +-325912, +194201, +612298, +388227, +256018, +-5630155, +-1085451, +653494, +-1966315, +-273079, +-4296295, +-2813232, +2079672, +2378463, +-3869089, +-438799, +-725265, +3152791, +3461913, +-777750, +47521, +2588203, +1888001, +-4445421, +654349, +811737, +418334, +-1854075, +-5194402, +-1571674, +-622026, +-1091628, +1787463, +3439585, +2923276, +-1997884, +-193963, +-731696, +3686658, +-1311796, +-5219031, +-2906251, +2140229, +-1846978, +2541247, +-3677377, +-3935140, +3605308, +4807232, +-1633864, +344286, +-2051894, +2498349, +-3085, +379207, +-701595, +-1080351, +3161365, +-1606976, +1640595, +3757649, +798095, +-3167055, +-2288739, +2301831, +-3324819, +3219538, +516049, +-3153835, +7342606, +1098913, +-2522436, +376783, +47367, +530901, +-395499, +304200, +}; + +#define SIZE 24 +__attribute__ ((section(".heapsram"))) int g_mA[SIZE][SIZE]; +__attribute__ ((section(".heapsram"))) int g_mB[SIZE][SIZE]; +__attribute__ ((section(".heapsram"))) int g_mC[SIZE][SIZE]; +__attribute__ ((section(".heapsram"))) int g_mB_tmp[SIZE][SIZE]; diff --git a/carfield/parMatrixMul8/Makefile b/carfield/parMatrixMul8/Makefile new file mode 100755 index 0000000..7c755b8 --- /dev/null +++ b/carfield/parMatrixMul8/Makefile @@ -0,0 +1,8 @@ +PULP_APP = test +PULP_APP_SRCS = matrixMul.c + +PULP_CFLAGS = -O3 + +include $(PULP_SDK_HOME)/install/rules/pulp.mk + +#pulp-bench-reg --name=parMatrixMul8.cycles --module=pulp_rtl_testset --pipeline=$(PIPELINE) --artefact=pulp_rtl_testset --cmd="make run -f Makefile.sdk" --probe-regexp='matrixMul -> success, nr. of errors: 0, execution time: (\d+)' --params="platform($(platformName)),compiler($(OR1K_TOOLCHAIN_TYPE)),nbCores(4),elemSize(8)" --probe-regexp='matrixMulTranspose -> success, nr. of errors: 0, execution time: (\d+)' --params="platform($(platformName)),compiler($(OR1K_TOOLCHAIN_TYPE)),nbCores(4),elemSize(8),transposed" diff --git a/carfield/parMatrixMul8/gen_stimuli.py b/carfield/parMatrixMul8/gen_stimuli.py new file mode 100755 index 0000000..5fd3e84 --- /dev/null +++ b/carfield/parMatrixMul8/gen_stimuli.py @@ -0,0 +1,54 @@ +#!/usr/bin/env python + +import sys +import random + + +def write_arr(f, name, arr): + f.write('const char %s[] = {\n' % name) + for v in arr: + f.write('%d,\n' % (v)) + f.write('};\n\n') + return + +################################################################################ +f = open('parMatrixMul8_stimuli.h', 'w') + + +SIZE = 32 +RANGE = 4 + +m_a = [] +m_b = [] +m_exp = [] + +for i in range(0,SIZE): + for j in range(0,SIZE): + a = random.randint(-RANGE, RANGE-1) + b = random.randint(-RANGE, RANGE-1) + + m_a.append(a) + m_b.append(b) + +for i in range(0,SIZE): + for j in range(0,SIZE): + r = 0 + + for k in range (0,SIZE): + r = r + m_a[i * SIZE + k] * m_b[k * SIZE + j] + + m_exp.append(r) + + +write_arr(f, 'm_a', m_a) +write_arr(f, 'm_b', m_b) +write_arr(f, 'm_exp', m_exp) + +f.write('#define SIZE %d\n' % SIZE) + + +f.write('__attribute__ ((section(".heapsram"))) char g_mA[SIZE][SIZE];\n') +f.write('__attribute__ ((section(".heapsram"))) char g_mB[SIZE][SIZE];\n') +f.write('__attribute__ ((section(".heapsram"))) char g_mC[SIZE][SIZE];\n') +f.write('__attribute__ ((section(".heapsram"))) char g_mB_tmp[SIZE][SIZE];\n') + diff --git a/carfield/parMatrixMul8/matrixMul.c b/carfield/parMatrixMul8/matrixMul.c new file mode 100644 index 0000000..357fdf0 --- /dev/null +++ b/carfield/parMatrixMul8/matrixMul.c @@ -0,0 +1,177 @@ +/* + * Copyright (C) 2018 ETH Zurich and University of Bologna + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * Mantainer: Luca Valente, luca.valente2@unibo.it + */ + +#include "pulp.h" + +#include "parMatrixMul8_stimuli.h" + +void check_matrix_mul(testresult_t *result, void (*start)(), void (*stop)()); +void check_matrix_mul_transpose(testresult_t *result, void (*start)(), void (*stop)()); + +testcase_t testcases[] = { + { .name = "matrixMul", .test = check_matrix_mul }, + { .name = "matrixMulTranspose", .test = check_matrix_mul_transpose }, + {0, 0} +}; + +unsigned int num_cores; + +int main() +{ + if (rt_cluster_id() != 0) + return bench_cluster_forward(0); + + num_cores = get_core_num(); + + if(rt_core_id() < num_cores) { + run_suite(testcases); + } + + synch_barrier(); + + return 0; +} + +void matrix_init(); +unsigned int matrix_check(); + +void check_matrix_mul(testresult_t *result, void (*start)(), void (*stop)()) { + int core_id; + unsigned int i, j, k; + unsigned int chunk; + unsigned int lb, ub; + + core_id = get_core_id(); + + // number of rows each core has to multiply + chunk = SIZE / num_cores; + // lower bound + lb = core_id * chunk; + // upper bound + ub = lb + chunk; + + if(core_id == 0) { + matrix_init(); + } + + if(num_cores != 1) synch_barrier(); + + // start benchmark + start(); + + for(i = lb; i < ub; i++) { + for(j = 0; j < SIZE; j++) { + g_mC[i][j] = 0; + + for(k = 0; k < SIZE; k++) { + g_mC[i][j] += g_mA[i][k] * g_mB[k][j]; + } + } + } + + if(num_cores != 1) synch_barrier(); + + stop(); + + if(core_id == 0) { + result->errors = matrix_check(); + } +} + +void check_matrix_mul_transpose(testresult_t *result, void (*start)(), void (*stop)()) { + int core_id; + unsigned int i, j, k; + unsigned int chunk; + unsigned int lb, ub; + + core_id = get_core_id(); + + // number of rows each core has to multiply + chunk = SIZE / num_cores; + // lower bound + lb = core_id * chunk; + // upper bound + ub = lb + chunk; + + if(core_id == 0) { + matrix_init(); + } + + if(num_cores != 1) synch_barrier(); + + // start benchmark + start(); + + // transpose array before using it + for(i = lb; i < ub; i++) { + for(j = 0; j < SIZE; j++) { + g_mB_tmp[i][j] = g_mB[j][i]; + } + } + + if(num_cores != 1) synch_barrier(); + + for(i = lb; i < ub; i++) { + for(j = 0; j < SIZE; j++) { + g_mC[i][j] = 0; + + for(k = 0; k < SIZE; k++) { + g_mC[i][j] += g_mA[i][k] * g_mB_tmp[j][k]; + } + } + } + + if(num_cores != 1) synch_barrier(); + + stop(); + + if(core_id == 0) { + result->errors = matrix_check(); + } +} + +void matrix_init() { + unsigned int i, j; + + // init, copy to TCDM + for(i = 0; i < SIZE; i++) { + for(j = 0; j < SIZE; j++) { + g_mA[i][j] = m_a[i * SIZE + j]; + g_mB[i][j] = m_b[i * SIZE + j]; + g_mC[i][j] = 0; + } + } +} + +unsigned int matrix_check() { + unsigned int errors = 0; + unsigned int i, j; + // check + for(i = 0; i < SIZE; i++) { + for(j = 0; j < SIZE; j++) { + if(g_mC[i][j] != m_exp[i * SIZE + j]) { + printf("At index %d, %d\n", i, j, 0, 0); + errors++; + } + } + } + + return errors; +} diff --git a/carfield/parMatrixMul8/parMatrixMul8_stimuli.h b/carfield/parMatrixMul8/parMatrixMul8_stimuli.h new file mode 100644 index 0000000..e5a79da --- /dev/null +++ b/carfield/parMatrixMul8/parMatrixMul8_stimuli.h @@ -0,0 +1,3105 @@ +/* + * Copyright (C) 2018 ETH Zurich and University of Bologna + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * Mantainer: Luca Valente, luca.valente2@unibo.it + */ +const char m_a[] = { +-2, +3, +2, +2, +-1, +-2, +3, +0, +0, +-3, +-3, +-4, +-3, +2, +1, +3, +-3, +-2, +3, +-1, +0, +-2, +-1, +1, +-3, +-3, +-1, +1, +-3, +1, +-1, +3, +0, +0, +1, +0, +3, +-1, +-3, +0, +0, +3, +3, +0, +3, +-1, +-2, +3, +-1, +-2, +-2, +2, +-2, +-3, +-1, +-2, +2, +2, +0, +2, +-1, +-2, +1, +-3, +2, +-4, +3, +0, +2, +-3, +2, +1, +-1, +-4, +3, +-2, +-4, +2, +0, +1, +-2, +-2, +-3, +2, +-4, +-3, +2, +2, +1, +-2, +3, +2, +3, +-4, +0, +1, +-3, +3, +1, +1, +0, +0, +2, +-1, +0, +3, +-3, +2, +3, +0, +1, +-4, +1, +1, +-1, +-4, +-3, +2, +2, +2, +-2, +-2, +2, +3, +0, +-2, +-1, +-4, +0, +2, +-4, +3, +-2, +-3, +-4, +-3, +3, +3, +-4, +-2, +3, +0, +3, +0, +2, +0, +-2, +3, +-4, +0, +3, +-1, +1, +3, +-3, +3, +1, +-4, +-2, +-2, +2, +1, +3, +-4, +0, +-1, +0, +0, +-2, +-4, +-1, +0, +3, +3, +1, +-3, +0, +-4, +-3, +-3, +2, +0, +-4, +0, +-3, +1, +-4, +-2, +0, +2, +-1, +1, +1, +0, +-3, +1, +-1, +1, +-1, +3, +2, +2, +2, +-2, +-1, +2, +1, +0, +-3, +-1, +-2, +2, +-1, +-3, +-2, +-4, +0, +3, +2, +-1, +1, +-1, +-3, +-2, +3, +0, +3, +0, +-1, +-4, +-1, +0, +2, +0, +3, +-3, +-2, +3, +1, +-3, +-4, +3, +1, +-4, +3, +3, +3, +-2, +-2, +0, +1, +2, +-2, +-4, +-2, +1, +1, +-4, +-1, +3, +-3, +2, +3, +0, +1, +-3, +1, +0, +2, +-4, +-4, +-4, +-3, +2, +-4, +2, +1, +1, +0, +-1, +0, +-3, +3, +-4, +-2, +-2, +-1, +1, +-1, +-1, +1, +0, +0, +1, +-3, +-1, +3, +2, +1, +2, +1, +-1, +3, +3, +-2, +2, +0, +0, +-1, +-4, +-4, +-3, +1, +-4, +-2, +-1, +1, +1, +-2, +-4, +-3, +-4, +0, +-4, +0, +-4, +-4, +3, +-4, +3, +0, +2, +-3, +0, +-2, +3, +1, +-1, +2, +3, +0, +-1, +-3, +-1, +1, +3, +3, +-3, +0, +0, +-4, +-2, +2, +-2, +-2, +-3, +-2, +-4, +2, +-2, +2, +2, +-2, +0, +-2, +2, +3, +0, +2, +0, +-3, +-1, +2, +-3, +-4, +1, +-4, +-3, +-2, +2, +2, +1, +-1, +-4, +2, +1, +2, +0, +0, +-3, +2, +-1, +0, +0, +-4, +1, +-3, +-3, +0, +-1, +1, +3, +2, +-2, +-4, +-2, +2, +-4, +0, +-2, +-4, +-1, +3, +1, +0, +1, +3, +3, +1, +2, +-4, +2, +-2, +-3, +2, +-3, +2, +-1, +-3, +-1, +-1, +-2, +1, +2, +-2, +-4, +1, +-3, +3, +-3, +-3, +0, +1, +3, +1, +-3, +0, +-2, +0, +-4, +0, +1, +2, +-4, +0, +0, +-4, +-1, +0, +-2, +-2, +-4, +-2, +-1, +3, +-1, +3, +2, +-3, +-4, +-2, +3, +-1, +1, +-3, +2, +-2, +3, +0, +3, +-3, +-4, +-1, +0, +1, +-2, +2, +3, +1, +3, +-2, +-3, +-1, +-1, +1, +-1, +-1, +1, +0, +-4, +-1, +-1, +-3, +0, +3, +-3, +-4, +-1, +1, +-4, +3, +1, +1, +0, +-3, +1, +-3, +2, +-2, +-2, +0, +-4, +3, +-2, +3, +-2, +1, +1, +-3, +0, +0, +-3, +1, +1, +0, +-1, +1, +0, +-1, +-3, +-3, +-2, +-4, +2, +-2, +3, +0, +-3, +3, +3, +-3, +-2, +3, +-2, +-2, +0, +1, +-3, +-2, +3, +2, +1, +-2, +-2, +0, +-1, +2, +3, +1, +-1, +0, +-2, +2, +-3, +-2, +2, +3, +-2, +1, +1, +-4, +-2, +2, +-1, +3, +-3, +-3, +2, +1, +1, +0, +-3, +0, +-2, +2, +0, +1, +-1, +-4, +1, +0, +0, +1, +2, +-3, +3, +-3, +2, +-4, +0, +1, +-2, +2, +-3, +3, +0, +0, +0, +-3, +-1, +2, +-3, +-1, +1, +3, +0, +-1, +-4, +3, +0, +-3, +2, +3, +-4, +2, +0, +-1, +2, +-4, +-1, +1, +-2, +-4, +-4, +3, +1, +2, +-2, +-3, +-3, +-2, +3, +3, +2, +-2, +-1, +3, +-3, +-4, +2, +3, +3, +-2, +2, +-1, +-3, +0, +3, +-2, +-3, +0, +-3, +-1, +-3, +-4, +3, +-2, +-2, +-1, +3, +2, +-1, +-1, +-1, +2, +-1, +1, +2, +-1, +-3, +3, +-2, +-3, +-1, +0, +-3, +-2, +1, +3, +-2, +2, +1, +-3, +-1, +0, +-1, +-3, +1, +3, +-4, +-3, +1, +1, +2, +-4, +2, +-2, +0, +3, +0, +-2, +-1, +-1, +1, +-2, +-2, +2, +-3, +0, +-4, +-1, +3, +-4, +3, +-1, +-2, +0, +1, +3, +-4, +0, +-4, +-4, +-2, +1, +-2, +3, +-3, +-2, +-1, +-4, +-2, +-3, +-4, +2, +-2, +0, +2, +0, +-4, +-4, +-4, +-3, +3, +3, +-1, +0, +0, +-3, +3, +-4, +-2, +3, +-3, +2, +1, +-2, +3, +-2, +-1, +3, +-3, +2, +0, +-1, +-3, +0, +0, +-3, +0, +3, +2, +3, +-2, +-3, +2, +-1, +0, +-3, +-2, +1, +2, +0, +-3, +-4, +-3, +0, +0, +-3, +-1, +0, +1, +0, +-2, +0, +2, +-1, +3, +-4, +3, +-4, +0, +-3, +1, +3, +2, +-3, +-4, +-1, +-1, +-3, +0, +-3, +-2, +-1, +-3, +-1, +1, +-2, +-3, +2, +-2, +-4, +-1, +0, +2, +-2, +1, +0, +1, +0, +3, +-4, +2, +0, +3, +0, +-3, +1, +0, +-2, +3, +1, +1, +-1, +-1, +-2, +-3, +-4, +-3, +1, +2, +-2, +2, +-1, +1, +-3, +-3, +-4, +-2, +-3, +-1, +1, +0, +-1, +-3, +-2, +-3, +-2, +2, +-4, +-3, +0, +2, +-1, +-4, +-3, +3, +1, +3, +3, +-1, +-1, +-3, +3, +-4, +-3, +3, +-1, +3, +-4, +1, +1, +-4, +-2, +-3, +3, +1, +-1, +-4, +-2, +-4, +2, +2, +1, +-3, +2, +-3, +1, +0, +3, +0, +-2, +-2, +-1, +3, +2, +0, +3, +1, +-4, +-1, +-3, +-1, +-4, +0, +1, +-1, +-2, +2, +2, +-4, +-1, +2, +-4, +0, +-2, +2, +2, +1, +-3, +-2, +-1, +3, +-2, +3, +1, +2, +-2, +-4, +0, +3, +0, +-1, +1, +-3, +-4, +0, +-4, +0, +-1, +-4, +2, +-3, +1, +-1, +2, +-3, +0, +0, +-2, +3, +-4, +0, +-3, +-3, +-2, +-1, +-3, +-4, +-2, +-4, +-4, +-1, +-4, +0, +3, +3, +-4, +-3, +-1, +-1, +2, +-4, +1, +-2, +-3, +-3, +-1, +3, +0, +-4, +0, +3, +}; + +const char m_b[] = { +0, +1, +-4, +0, +3, +-1, +-4, +2, +-1, +3, +-1, +1, +-2, +-1, +-4, +-3, +2, +-3, +-3, +-1, +1, +-2, +2, +-1, +-2, +3, +-2, +-3, +0, +1, +2, +3, +3, +-2, +1, +-2, +2, +-1, +1, +-4, +3, +0, +-1, +2, +-1, +-1, +-4, +1, +1, +-2, +-4, +3, +-2, +-2, +2, +0, +-2, +3, +-4, +0, +3, +2, +-3, +-2, +-2, +2, +2, +-4, +-4, +1, +-3, +-4, +1, +-3, +-4, +0, +-2, +0, +-2, +-3, +-1, +0, +-2, +3, +-4, +-1, +-2, +-3, +-1, +-2, +-4, +0, +-2, +0, +3, +0, +-3, +3, +-1, +-2, +-4, +2, +0, +-1, +-2, +3, +-2, +3, +-4, +-4, +-1, +-2, +3, +2, +1, +1, +3, +-1, +-2, +0, +1, +-4, +-3, +3, +1, +1, +2, +2, +-3, +-2, +3, +3, +-3, +-4, +1, +-1, +-1, +0, +-2, +-3, +1, +-3, +-1, +-2, +1, +-1, +3, +-1, +2, +3, +1, +-2, +-3, +-2, +-2, +0, +0, +2, +1, +0, +2, +-4, +-4, +-1, +0, +0, +1, +-1, +0, +0, +2, +0, +-4, +2, +0, +1, +-3, +0, +1, +-1, +1, +2, +1, +-3, +-1, +-3, +-3, +-1, +0, +3, +3, +1, +-2, +2, +-2, +-4, +-4, +1, +-4, +3, +-3, +-4, +2, +-3, +-1, +-3, +-1, +-2, +3, +2, +-1, +1, +3, +-1, +2, +3, +-3, +-1, +-1, +1, +3, +-1, +-4, +0, +0, +3, +1, +-4, +0, +0, +-1, +1, +2, +2, +-1, +1, +2, +-4, +-1, +1, +3, +0, +-1, +3, +-4, +1, +1, +1, +-2, +1, +-1, +-3, +0, +-3, +0, +-1, +0, +-1, +1, +-1, +-2, +-3, +1, +-1, +3, +3, +2, +3, +2, +-1, +-4, +1, +2, +-3, +-3, +-3, +3, +1, +3, +3, +3, +-3, +-1, +1, +0, +-3, +2, +2, +-3, +-4, +2, +2, +-4, +-2, +-2, +2, +1, +2, +0, +-3, +3, +-4, +-3, +3, +-1, +-1, +-2, +1, +-1, +-3, +-4, +-1, +3, +-1, +2, +1, +3, +-2, +2, +1, +1, +-4, +-2, +-1, +0, +2, +3, +-3, +2, +2, +-4, +1, +3, +1, +2, +2, +-2, +-2, +3, +-3, +-4, +2, +-3, +-1, +-1, +-1, +-2, +-2, +1, +3, +0, +1, +0, +-2, +-2, +-1, +-3, +-4, +-2, +0, +-1, +1, +-3, +-3, +-4, +3, +-3, +-4, +3, +-3, +3, +-2, +0, +-2, +1, +-1, +3, +-1, +3, +1, +-3, +0, +0, +2, +1, +-3, +-4, +1, +-1, +-2, +2, +2, +-4, +-2, +2, +-3, +-1, +-3, +3, +0, +-3, +2, +-4, +2, +3, +-3, +2, +2, +3, +-3, +-1, +-2, +-4, +-2, +1, +-1, +-1, +-2, +-2, +-2, +-1, +-2, +-1, +1, +0, +-1, +-3, +2, +-4, +-4, +2, +0, +3, +-3, +-3, +3, +1, +1, +0, +3, +-3, +-4, +2, +-2, +-4, +1, +2, +0, +2, +2, +1, +0, +-3, +-1, +3, +1, +-3, +1, +2, +-4, +1, +1, +3, +-2, +3, +-4, +1, +-1, +-4, +-1, +3, +3, +-1, +-4, +-4, +0, +-4, +0, +1, +-3, +-3, +1, +-2, +0, +3, +-3, +-4, +-4, +0, +-3, +1, +-2, +-1, +1, +-4, +-3, +-1, +2, +0, +-3, +0, +-1, +3, +2, +2, +0, +0, +-4, +-4, +1, +-3, +3, +0, +3, +-3, +-1, +2, +2, +2, +-2, +-3, +-2, +-3, +3, +-2, +3, +3, +1, +0, +-2, +-1, +0, +-2, +3, +-4, +-1, +2, +0, +-3, +-4, +2, +-3, +-1, +-1, +0, +2, +-4, +2, +-3, +-1, +0, +2, +1, +2, +-2, +2, +0, +1, +0, +0, +-3, +0, +0, +0, +-1, +-4, +-2, +-3, +0, +3, +0, +1, +-1, +3, +0, +3, +-1, +3, +-1, +-4, +-2, +-4, +2, +-4, +3, +3, +1, +2, +-2, +2, +3, +-2, +1, +3, +-1, +3, +2, +-4, +-1, +0, +0, +0, +-3, +-3, +1, +-3, +-3, +-1, +2, +-1, +-4, +-4, +-2, +-4, +2, +-3, +-3, +-4, +2, +2, +-4, +3, +-1, +-1, +0, +1, +0, +2, +0, +0, +3, +3, +0, +-2, +2, +0, +-3, +1, +2, +-2, +0, +-3, +3, +-3, +-4, +1, +-1, +-4, +3, +-2, +2, +0, +-2, +-4, +0, +-3, +2, +-3, +0, +3, +2, +-4, +-4, +0, +1, +3, +-3, +-3, +0, +-3, +3, +-1, +-4, +3, +1, +2, +3, +-2, +2, +3, +0, +-3, +-4, +3, +-4, +-1, +2, +1, +3, +-3, +-4, +3, +1, +0, +0, +-3, +-4, +-3, +2, +0, +1, +-4, +3, +-4, +-2, +-1, +-4, +2, +-4, +2, +0, +1, +0, +-4, +-4, +0, +-4, +0, +-4, +-1, +2, +0, +0, +-2, +-1, +-2, +0, +3, +-1, +3, +1, +-4, +-1, +1, +-1, +2, +0, +3, +-4, +-4, +-2, +-3, +-2, +1, +0, +-4, +3, +0, +-4, +-1, +0, +3, +-4, +2, +-4, +-1, +2, +-2, +0, +1, +1, +-3, +-2, +3, +-4, +-4, +0, +3, +-4, +-2, +0, +1, +-4, +-4, +2, +-2, +-3, +-4, +-4, +3, +-1, +-4, +2, +0, +2, +3, +2, +0, +3, +-1, +3, +2, +-4, +-1, +-2, +-1, +1, +3, +-1, +-2, +2, +3, +-4, +-3, +-1, +2, +-2, +2, +-2, +2, +-1, +0, +-1, +-4, +-4, +1, +-3, +2, +3, +-2, +0, +0, +-2, +-4, +1, +0, +3, +2, +-2, +0, +1, +-3, +-3, +3, +1, +-2, +0, +-1, +3, +-1, +-4, +-1, +3, +-3, +2, +-4, +-1, +2, +-1, +-2, +2, +-3, +0, +3, +-2, +2, +2, +-3, +3, +-1, +-4, +-1, +-4, +-2, +-2, +1, +-4, +-2, +3, +1, +-1, +3, +2, +3, +-4, +1, +-4, +-4, +0, +1, +3, +2, +-1, +-2, +-2, +1, +-1, +-1, +0, +-1, +0, +-4, +0, +0, +2, +-4, +2, +2, +-1, +2, +1, +2, +1, +2, +-2, +1, +-1, +-4, +-1, +1, +3, +-4, +-1, +1, +-1, +3, +-3, +-3, +2, +-2, +1, +1, +3, +3, +-3, +0, +0, +2, +2, +3, +0, +-3, +1, +1, +2, +-4, +0, +0, +2, +-1, +-2, +2, +0, +-1, +1, +2, +-4, +-2, +3, +2, +3, +-3, +-2, +1, +-2, +3, +1, +-2, +-2, +2, +1, +-4, +-3, +-2, +-4, +1, +-1, +0, +3, +-1, +2, +-1, +-1, +0, +1, +0, +-4, +3, +-2, +1, +3, +0, +2, +-2, +0, +-3, +0, +0, +0, +2, +-4, +3, +0, +1, +-4, +-4, +3, +-1, +-4, +0, +-2, +2, +-3, +-3, +-3, +-2, +-4, +-4, +3, +-3, +1, +-4, +-2, +-1, +-4, +1, +0, +3, +-4, +1, +1, +2, +-3, +0, +}; + +const char m_exp[] = { +-7, +54, +40, +-69, +27, +6, +-46, +-45, +42, +-3, +39, +8, +-11, +-7, +-25, +-28, +50, +20, +-34, +14, +6, +-2, +11, +53, +-28, +14, +-64, +5, +21, +-7, +-49, +-4, +-15, +-72, +5, +35, +-9, +-19, +5, +-19, +-2, +8, +-17, +-9, +49, +-28, +-23, +27, +-47, +35, +36, +-19, +-9, +24, +12, +-4, +30, +-28, +30, +-27, +-17, +41, +21, +-5, +-36, +33, +-18, +-8, +6, +19, +-33, +26, +-38, +-29, +-40, +-21, +13, +-15, +-6, +-22, +13, +10, +51, +-38, +-53, +48, +17, +53, +-35, +-21, +28, +-10, +-54, +54, +-17, +19, +-27, +8, +20, +42, +-31, +8, +22, +73, +-6, +-9, +-11, +-17, +-2, +-29, +20, +52, +0, +-5, +-44, +31, +-6, +-12, +-11, +-1, +19, +-46, +24, +19, +6, +-40, +11, +-23, +8, +-2, +-36, +77, +15, +-9, +31, +66, +-39, +24, +-19, +40, +-6, +-12, +-12, +37, +8, +9, +-18, +-1, +-8, +-26, +25, +45, +50, +-15, +49, +3, +-16, +2, +48, +-37, +67, +-6, +40, +-13, +60, +38, +-27, +11, +1, +-8, +12, +-27, +5, +12, +33, +-24, +4, +-40, +-41, +39, +-13, +17, +13, +-25, +-29, +21, +-28, +18, +-8, +-23, +32, +-22, +26, +-22, +29, +13, +16, +11, +21, +12, +-11, +64, +27, +3, +75, +-37, +-21, +30, +6, +-18, +43, +-10, +-26, +32, +16, +27, +8, +-6, +47, +7, +-8, +28, +29, +-18, +-40, +10, +40, +16, +-7, +29, +-19, +38, +65, +53, +-71, +42, +28, +-69, +-22, +4, +52, +-74, +-9, +12, +-46, +-32, +-72, +5, +-33, +34, +-6, +-38, +14, +0, +47, +-23, +-4, +-14, +-2, +14, +-17, +29, +7, +32, +-39, +-21, +40, +14, +21, +4, +-3, +9, +-15, +-2, +35, +-13, +47, +9, +-11, +22, +10, +5, +23, +39, +20, +14, +13, +26, +19, +-49, +60, +57, +-18, +-35, +33, +-43, +20, +46, +35, +-17, +72, +62, +25, +-13, +-18, +-2, +20, +-6, +-13, +-9, +49, +6, +41, +-20, +-7, +14, +-20, +26, +32, +37, +-16, +34, +66, +10, +23, +-32, +11, +-37, +-18, +-9, +7, +-15, +69, +28, +14, +19, +-27, +11, +71, +5, +-47, +22, +-41, +-8, +35, +25, +92, +-7, +-34, +-33, +-9, +-33, +33, +9, +45, +28, +28, +24, +-24, +43, +16, +23, +63, +-28, +53, +32, +33, +5, +12, +-34, +-40, +6, +-10, +0, +16, +23, +38, +12, +33, +16, +-5, +-49, +22, +23, +4, +45, +16, +43, +1, +24, +-32, +16, +8, +37, +-38, +-7, +15, +65, +-23, +-61, +34, +18, +-4, +12, +-24, +-38, +22, +-23, +-13, +80, +-10, +29, +58, +26, +-40, +40, +33, +-13, +-14, +26, +37, +97, +-1, +4, +51, +65, +-33, +47, +10, +25, +-30, +10, +-11, +-34, +18, +-28, +-47, +5, +-42, +-27, +24, +55, +-10, +-26, +28, +50, +17, +24, +9, +72, +-27, +-41, +29, +23, +-24, +-15, +-14, +22, +3, +3, +3, +42, +17, +-5, +-21, +77, +29, +-33, +-1, +27, +-38, +-26, +7, +36, +-30, +24, +39, +-10, +-39, +8, +-32, +-14, +63, +48, +-41, +2, +-24, +58, +24, +21, +11, +-15, +82, +-33, +53, +14, +-1, +34, +12, +31, +7, +-14, +-4, +16, +-6, +-9, +-7, +28, +50, +-6, +-10, +15, +20, +-19, +2, +40, +54, +12, +24, +-5, +-6, +19, +14, +22, +27, +15, +14, +7, +-8, +-19, +34, +-36, +12, +-11, +-5, +23, +-1, +30, +-34, +-11, +8, +27, +9, +-8, +8, +-26, +-1, +51, +30, +-29, +3, +-26, +0, +-37, +3, +-12, +3, +33, +-36, +2, +-48, +-15, +9, +-38, +-6, +-2, +10, +2, +33, +32, +-22, +-2, +-19, +16, +-12, +28, +8, +63, +-6, +-77, +23, +-13, +-23, +0, +-20, +28, +33, +23, +-34, +-12, +-3, +-22, +59, +-10, +-33, +-13, +48, +0, +3, +28, +14, +-9, +-25, +18, +-2, +-57, +9, +-21, +-46, +36, +91, +18, +2, +-14, +13, +-24, +-20, +-61, +31, +-24, +47, +-27, +40, +12, +12, +13, +-16, +10, +28, +7, +-11, +20, +8, +13, +-34, +4, +28, +-66, +-32, +-25, +-8, +-51, +-13, +34, +43, +-26, +3, +51, +-37, +-80, +20, +-10, +-43, +3, +57, +17, +8, +-25, +-5, +16, +49, +41, +20, +19, +-8, +-31, +47, +-46, +-23, +-28, +34, +-39, +0, +64, +32, +20, +43, +15, +36, +15, +-31, +59, +49, +-21, +60, +0, +18, +0, +21, +21, +22, +-19, +7, +19, +22, +42, +44, +-9, +43, +5, +-19, +-43, +-30, +-4, +-24, +-11, +65, +55, +-5, +-33, +17, +8, +14, +38, +3, +-5, +33, +8, +-23, +-2, +78, +-11, +14, +-30, +10, +27, +46, +42, +-1, +6, +24, +-7, +13, +2, +9, +-4, +16, +-29, +87, +49, +97, +50, +14, +-17, +101, +45, +-42, +23, +53, +52, +28, +-4, +10, +-16, +-23, +31, +-54, +17, +-19, +-34, +-14, +62, +19, +-19, +53, +-3, +17, +-16, +-19, +-17, +34, +59, +-3, +-36, +27, +36, +-20, +-42, +8, +-30, +31, +-20, +15, +36, +27, +43, +-14, +9, +6, +-13, +55, +55, +-21, +10, +3, +-4, +33, +-22, +-26, +-43, +38, +19, +-12, +28, +47, +-17, +-23, +15, +-39, +-35, +-4, +14, +34, +56, +-16, +13, +-38, +14, +13, +-1, +-37, +-21, +38, +5, +-10, +51, +34, +44, +-9, +36, +-14, +-3, +-1, +14, +-25, +7, +38, +-49, +24, +-3, +-7, +-55, +42, +23, +-35, +61, +21, +33, +-30, +26, +-44, +-24, +50, +37, +43, +22, +3, +-34, +36, +24, +-32, +-14, +-20, +12, +53, +-3, +67, +24, +23, +48, +-21, +14, +49, +40, +49, +2, +89, +62, +-3, +24, +-27, +51, +22, +30, +-5, +-8, +7, +-29, +17, +85, +78, +49, +66, +-18, +-19, +14, +-35, +-45, +85, +31, +16, +13, +8, +-35, +38, +-11, +-19, +19, +-14, +-15, +1, +-25, +47, +-32, +3, +31, +39, +42, +5, +7, +19, +-31, +25, +-17, +7, +1, +7, +-6, +2, +-2, +19, +-15, +8, +34, +-35, +-8, +84, +57, +-65, +47, +18, +17, +-60, +-7, +29, +3, +1, +-5, +-28, +4, +-6, +-46, +-34, +47, +12, +9, +59, +19, +6, +18, +29, +-14, +5, +3, +-24, +43, +10, +13, +-53, +8, +9, +-41, +14, +12, +-8, +-28, +21, +-2, +92, +-36, +-16, +23, +10, +34, +-2, +13, +14, +45, +-15, +64, +-16, +11, +34, +-29, +48, +40, +71, +30, +-21, +0, +34, +8, +46, +-45, +24, +54, +3, +-29, +17, +-9, +61, +-36, +-38, +5, +6, +56, +28, +55, +28, +-13, +-21, +44, +-31, +-20, +}; + +#define SIZE 32 +__attribute__ ((section(".heapsram"))) char g_mA[SIZE][SIZE]; +__attribute__ ((section(".heapsram"))) char g_mB[SIZE][SIZE]; +__attribute__ ((section(".heapsram"))) char g_mC[SIZE][SIZE]; +__attribute__ ((section(".heapsram"))) char g_mB_tmp[SIZE][SIZE]; diff --git a/carfield/redmule/Makefile b/carfield/redmule/Makefile new file mode 100644 index 0000000..c498417 --- /dev/null +++ b/carfield/redmule/Makefile @@ -0,0 +1,9 @@ +PULP_APP = test +PULP_APP_SRCS = redmule.c +PULP_CFLAGS = -O3 + +ifeq ($(use_no_dma),1) + PULP_CFLAGS += -DUSE_NO_DMA +endif + +include $(PULP_SDK_HOME)/install/rules/pulp.mk diff --git a/carfield/redmule/archi_redmule.h b/carfield/redmule/archi_redmule.h new file mode 100644 index 0000000..9222d63 --- /dev/null +++ b/carfield/redmule/archi_redmule.h @@ -0,0 +1,164 @@ +/* + * Copyright (C) 2022-2023 ETH Zurich and University of Bologna + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * SPDX-License-Identifier: Apache-2.0 + * + * Author: Yvan Tortorella + * + * High-level architecture of RedMulE + * + */ + +#ifndef __ARCHI_REDMULE_H__ +#define __ARCHI_REDMULE_H__ + +/* + * |========================================================================| + * || || + * ||Control and generic configuration register layout || + * |========================================================================| + * || # reg | offset | bits | bitmask || content || + * ||-------+----------+---------+--------------++-------------------------|| + * || 0 | 0x0000 | 31: 0 | 0xFFFFFFFF || TRIGGER || + * || 1 | 0x0004 | 31: 0 | 0xFFFFFFFF || ACQUIRE || + * || 2 | 0x0008 | 31: 0 | 0xFFFFFFFF || EVT_ENABLE || + * || 3 | 0x000c | 31: 0 | 0xFFFFFFFF || STATUS || + * || 4 | 0x0010 | 31: 0 | 0xFFFFFFFF || RUNNING_JOB || + * || 5 | 0x0014 | 31: 0 | 0xFFFFFFFF || SOFT_CLEAR || + * |========================================================================| + * || || + * ||Job-dependent registers layout || + * |========================================================================| + * || # reg | offset | bits | bitmask || content || + * ||-------+----------+---------+--------------++-------------------------|| + * || 0 | 0x0040 | 31: 0 | 0xFFFFFFFF || X_ADDR || + * ||-------+----------+---------+--------------++-------------------------|| + * || 1 | 0x0044 | 31: 0 | 0xFFFFFFFF || W_ADDR || + * ||-------+----------+---------+--------------++-------------------------|| + * || 2 | 0x0048 | 31: 0 | 0xFFFFFFFF || Z_ADDR || + * ||-------+----------+---------+--------------++-------------------------|| + * || 3 | 0x004C | | || Matrix Config 0 Reg || + * || | | 31:16 | 0xFFFF0000 || K Size (W Columns) || + * || | | 15: 0 | 0x0000FFFF || M Size (X Rows) || + * ||-------+----------+---------+--------------++-------------------------|| + * || 4 | 0x0050 | | || Matrix Config 1 Reg || + * || | | 31:16 | 0xFFFFFFFF || N Size (X Cols/W Rows) || + * ||-------+----------+---------+--------------++-------------------------|| + * || 5 | 0x0054 | | || Matrix Arithmetic Reg || + * || | | 12:10 | 0x00001C00 || Operation selection || + * || | | 9: 7 | 0x00000380 || Input/Output format || + * |========================================================================| + * + */ + +/* PULP Cluster Archi defines */ +#define ARCHI_CLUST_CTRL_BASE 0x50200000 +#define ARCHI_CLUST_HWPE_BASE 0x50201000 +#define DMA_COMMAND_QUEUE 0x50204400 +#define DMA_STATUS_REGISTER 0x50204404 +#define ARCHI_CL_HWPE_EVT0 12 +#define ARCHI_CL_HWPE_EVT1 13 +#define FC_DMA_EVENT 8 +#define CL_DMA_EVENT 22 +#define CLUST_CTRL_HWPE_EN 0x18 +#define CLUST_CTRL_HWPE_EN_MASK 0x800 +#define __builtin_bitinsert(a,b,c,d) (a | (((b << (32-c)) >> (32-c)) << d)) + +// RedMulE architecture +#define ADDR_WIDTH 32 +#define DATA_WIDTH 256 +#define REDMULE_FMT 16 +#define ARRAY_HEIGHT 4 +#define PIPE_REGS 3 +#define ARRAY_WIDTH 12 /* Superior limit is ARRAY_HEIGHT*PIPE_REGS */ + +// Commands +#define REDMULE_TRIGGER 0x00 +#define REDMULE_ACQUIRE 0x04 +#define REDMULE_FINISHED 0x08 +#define REDMULE_STATUS 0x0C +#define REDMULE_RUNNING_JOB 0x10 +#define REDMULE_SOFT_CLEAR 0x14 + +// Registers +#define REDMULE_REG_OFFS 0x40 +// #define REDMULE_REG_X_PTR 0x00 +// #define REDMULE_REG_W_PTR 0x04 +// #define REDMULE_REG_Z_PTR 0x08 +// #define REDMULE_MCFG0_PTR 0x0C +// #define REDMULE_MCFG1_PTR 0x10 +// #define REDMULE_ARITH_PTR 0x14 +#define REDMULE_REG_X_PTR 0x00 +#define REDMULE_REG_W_PTR 0x04 +#define REDMULE_REG_Y_PTR 0x08 +#define REDMULE_REG_Z_PTR 0x0C +#define REDMULE_REG_X_ITER_PTR 0x10 +#define REDMULE_REG_W_ITER_PTR 0x14 +#define REDMULE_REG_LEFTOVERS_PTR 0x18 +#define REDMULE_REG_LEFT_PARAMS_PTR 0x1C +#define REDMULE_REG_X_D1_STRIDE_PTR 0x20 +#define REDMULE_REG_W_TOT_LEN_PTR 0x24 +#define REDMULE_REG_TOT_X_READ_PTR 0x28 +#define REDMULE_REG_W_D0_STRIDE_PTR 0x2C +#define REDMULE_REG_YZ_TOT_LEN_PTR 0x30 +#define REDMULE_REG_YZ_D0_STRIDE_PTR 0x34 +#define REDMULE_REG_YZ_D2_STRIDE_PTR 0x38 +#define REDMULE_REG_X_ROWS_OFFS_PTR 0x3C +#define REDMULE_REG_X_BUFFER_SLOTS_PTR 0x40 +#define REDMULE_REG_X_TOT_LEN_PTR 0x44 +#define REDMULE_REG_OP_SELECTION 0x48 + +// OPs definition +#define MATMUL 0x0 +#define GEMM 0x1 +#define ADDMAX 0x2 +#define ADDMIN 0x3 +#define MULMAX 0x4 +#define MULMIN 0x5 +#define MAXMIN 0x6 +#define MINMAX 0x7 + +// GEMM formats +#define Float8 0x0 +#define Float16 0x1 +#define Float8Alt 0x2 +#define Float16Alt 0x3 + +#define RNE 0x0 +#define RTZ 0x1 +#define OP_FMADD 0x0 +#define OP_ADD 0x2 +#define OP_MUL 0x3 +#define OP_MINMAX 0x7 + +// FP Formats encoding +#define FP16 0x2 +#define FP8 0x3 +#define FP16ALT 0x4 +#define FP8ALT 0x5 + +/* DMA Archi */ +#define DMA_TX 0 +#define DMA_RX 1 +#define DMA_INC 1 + +#define PLP_DMA_TYPE_BIT 0x00000011 +#define PLP_DMA_INCR_BIT 0x00000012 +#define PLP_DMA_2D_BIT 0x00000013 +#define PLP_DMA_ELE_BIT 0x00000014 +#define PLP_DMA_ILE_BIT 0x00000015 +#define PLP_DMA_BLE_BIT 0x00000016 +#define PLP_DMA_2D_TCDM_BIT 0x0000017 + +#endif diff --git a/carfield/redmule/hal_redmule.h b/carfield/redmule/hal_redmule.h new file mode 100644 index 0000000..c5a0c32 --- /dev/null +++ b/carfield/redmule/hal_redmule.h @@ -0,0 +1,527 @@ +/* + * Copyright (C) 2022-2023 ETH Zurich and University of Bologna + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * SPDX-License-Identifier: Apache-2.0 + * + * Author: Yvan Tortorella + * + * RedMulE Hardware Abstraction Layer (HAL) + */ + +#ifndef __HAL_REDMULE_H__ +#define __HAL_REDMULE_H__ + +#include +#include "inc/x_input.h" +#include "inc/w_input.h" +#include "inc/y_input.h" +#include "inc/z_output.h" +#include "inc/golden.h" +#include "inc/tensor_dim.h" + +/* + * + * For control, generic configuration register layout, + * and job-dependent register map, look at redmule_archi.h + * + */ + +// For all the following functions we use __builtin_pulp_OffsetedWrite and __builtin_pulp_OffsetedRead +// instead of classic load/store because otherwise the compiler is not able to correctly factorize +// the HWPE base in case several accesses are done, ending up with twice more code + +#define HWPE_WRITE(value, offset) *(int *)(ARCHI_CLUST_HWPE_BASE + offset) = value +#define HWPE_READ(offset) *(int *)(ARCHI_CLUST_HWPE_BASE + offset) + +static inline void redmule_x_add_set (unsigned int value) { + HWPE_WRITE(value, REDMULE_REG_OFFS + REDMULE_REG_X_PTR); +} + +static inline void redmule_w_add_set (unsigned int value) { + HWPE_WRITE(value, REDMULE_REG_OFFS + REDMULE_REG_W_PTR); +} + +static inline void redmule_y_add_set (unsigned int value) { + HWPE_WRITE(value, REDMULE_REG_OFFS + REDMULE_REG_Y_PTR); +} + +static inline void redmule_z_add_set (unsigned int value) { + HWPE_WRITE(value, REDMULE_REG_OFFS + REDMULE_REG_Z_PTR); +} + +// static inline void redmule_mcfg_set (uint32_t mcfg0, uint32_t mcfg1) { +// HWPE_WRITE(mcfg0, REDMULE_REG_OFFS + REDMULE_MCFG0_PTR); +// HWPE_WRITE(mcfg1, REDMULE_REG_OFFS + REDMULE_MCFG1_PTR); +// } +// +// static inline void redmule_arith_set (uint32_t arith) { +// HWPE_WRITE(arith, REDMULE_REG_OFFS + REDMULE_ARITH_PTR); +// } + +static inline void hwpe_trigger_job() { + HWPE_WRITE(0, REDMULE_TRIGGER); +} + +static inline int hwpe_acquire_job() { + return HWPE_READ(REDMULE_ACQUIRE); +} + +static inline unsigned int hwpe_get_status() { + return HWPE_READ(REDMULE_STATUS); +} + +static inline void hwpe_soft_clear() { + HWPE_WRITE(1, REDMULE_SOFT_CLEAR); +} + +static inline void hwpe_cg_enable() { + *(volatile int*) (ARCHI_CLUST_CTRL_BASE + CLUST_CTRL_HWPE_EN) |= CLUST_CTRL_HWPE_EN_MASK; +} + +static inline void hwpe_cg_disable() { + *(volatile int*) (ARCHI_CLUST_CTRL_BASE + CLUST_CTRL_HWPE_EN) &= ~CLUST_CTRL_HWPE_EN_MASK; +} + +static inline void redmule_evt_wait() { + do { + eu_evt_maskWaitAndClr (1 << ARCHI_CL_HWPE_EVT0); + } while((*(int volatile *)(ARCHI_CLUST_HWPE_BASE + REDMULE_STATUS)) != 0); +} + +/* DMA APIs */ +static inline int mchan_alloc(){ + return *(volatile int*) DMA_COMMAND_QUEUE; +} + +static inline void mchan_transfer(unsigned int len, + unsigned int ext_addr, + unsigned int tcdm_addr) { + + *(volatile int*) DMA_COMMAND_QUEUE = len | + (DMA_RX << PLP_DMA_TYPE_BIT) | + (DMA_INC << PLP_DMA_INCR_BIT) | + (0 << PLP_DMA_2D_BIT) | + (1 << PLP_DMA_ELE_BIT) | + (1 << PLP_DMA_ILE_BIT) | + (0 << PLP_DMA_BLE_BIT) | + (0 << PLP_DMA_2D_TCDM_BIT); + *(volatile int*) DMA_COMMAND_QUEUE = tcdm_addr; + *(volatile int*) DMA_COMMAND_QUEUE = ext_addr; +} + +static inline void mchan_barrier(int id) { + while(((*(volatile int*)(DMA_STATUS_REGISTER)) >> id ) & 0x1 ) { + eu_evt_maskWaitAndClr(1 << FC_DMA_EVENT); + } +} + +static inline void mchan_free(int id) { + *(volatile int*) DMA_STATUS_REGISTER = 0x1 << id; +} + +// void redmule_cfg (unsigned int x, unsigned int w, unsigned int z, +// uint16_t m_size, uint16_t n_size, uint16_t k_size, +// uint8_t gemm_op, uint8_t gemm_fmt){ +// +// uint32_t mcfg_reg0 = 0; +// uint32_t mcfg_reg1 = 0; +// uint32_t arith_reg = 0; +// +// mcfg_reg0 = (k_size << 16) | +// (m_size << 0); +// mcfg_reg1 = n_size << 0; +// +// arith_reg = (gemm_op << 10) | +// (gemm_fmt << 7); +// +// redmule_x_add_set ((unsigned int) x); +// redmule_w_add_set ((unsigned int) w); +// redmule_z_add_set ((unsigned int) z); +// redmule_mcfg_set ((unsigned int) mcfg_reg0, +// (unsigned int) mcfg_reg1); +// redmule_arith_set ((unsigned int) arith_reg); +// +// } + +void redmule_cfg (uint16_t m_size, uint16_t n_size, uint16_t k_size, uint8_t gemm_ops){ + uint32_t x_iters = 0; + uint32_t w_iters = 0; + uint32_t leftovers = 0; + uint32_t left_params = 0; + uint32_t x_d1_stride = 0; + uint32_t x_rows_offs = 0; + uint32_t w_tot_len = 0; + uint32_t w_d1_len = 0; + uint32_t w_d0_stride = 0; + uint32_t yz_tot_len = 0; + uint32_t yz_d0_stride = 0; + uint32_t yz_d2_stride = 0; + uint32_t tot_x_read = 0; + uint32_t x_buffer_slots = 0; + uint32_t op_selection = 0; + uint16_t tot_stores = 0; + uint16_t w_rows = n_size; + uint16_t depth = DATA_WIDTH/(ARRAY_HEIGHT*FPFORMAT); + uint8_t tile = ARRAY_HEIGHT*(PIPE_REGS + 1); + _Bool x_rows_sub = 0; + _Bool x_cols_sub = 0; + _Bool w_cols_sub = 0; + uint16_t x_rows_iter, + x_rows_iter_tmp, + w_rows_iter, + w_rows_iter_tmp; + uint16_t x_cols_iter, + x_cols_iter_tmp, + w_cols_iter, + w_cols_iter_tmp; + uint8_t x_rows_lftovr, + x_cols_lftovr, + w_rows_lftovr, + w_cols_lftovr, + slots; + + // Calculating the number of iterations alng the two dimensions of the X matrix + x_rows_iter_tmp = m_size/ARRAY_WIDTH; + x_cols_iter_tmp = n_size/tile; + + // Calculating the number of iterations alng the two dimensions of the W matrix + w_rows_iter_tmp = w_rows; + w_cols_iter_tmp = k_size/tile; + + // Calculating the residuals along the input dimensions + x_rows_lftovr = m_size - (x_rows_iter_tmp*ARRAY_WIDTH); + x_cols_lftovr = n_size - (x_cols_iter_tmp*tile); + + // Calculating the residuals along the weight dimensions + w_rows_lftovr = n_size - (ARRAY_HEIGHT*(w_rows/ARRAY_HEIGHT)); + w_cols_lftovr = k_size - (w_cols_iter_tmp*tile); + + if (w_cols_lftovr != 0) + w_cols_iter = w_cols_iter_tmp + 1; + else + w_cols_iter = w_cols_iter_tmp; + + if (w_rows_lftovr != 0) + w_rows_iter = w_rows_iter_tmp + ARRAY_HEIGHT - w_rows_lftovr; + else + w_rows_iter = w_rows_iter_tmp; + + if (x_cols_lftovr != 0) + x_cols_iter = x_cols_iter_tmp + 1; + else + x_cols_iter = x_cols_iter_tmp; + + if (x_rows_lftovr != 0) + x_rows_iter = x_rows_iter_tmp + 1; + else + x_rows_iter = x_rows_iter_tmp; + + if (x_cols_lftovr%depth != 0) + x_buffer_slots = x_cols_lftovr/depth + 1; + else + x_buffer_slots = x_cols_lftovr/depth; + + // Calculating the number of total stores + tot_stores = x_rows_iter*w_cols_iter; + + // Determining if input matrixes are sub-matrixes + if (m_size < ARRAY_WIDTH) + x_rows_sub = 1; + if (n_size < ARRAY_HEIGHT) + x_cols_sub = 1; + if (k_size < tile) + w_cols_sub = 1; + + // Operation selection + switch (gemm_ops) { + case MATMUL: + op_selection |= (RNE << 29 | RNE << 26 | OP_FMADD << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 0; + break; + + case GEMM: + op_selection |= (RNE << 29 | RNE << 26 | OP_FMADD << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; + break; + + case ADDMAX: + op_selection |= (RNE << 29 | RTZ << 26 | OP_ADD << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; + break; + + case ADDMIN: + op_selection |= (RNE << 29 | RNE << 26 | OP_ADD << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; + break; + + case MULMAX: + op_selection |= (RNE << 29 | RTZ << 26 | OP_MUL << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; + break; + + case MULMIN: + op_selection |= (RNE << 29 | RNE << 26 | OP_MUL << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; + break; + + case MAXMIN: + op_selection |= (RTZ << 29 | RNE << 26 | OP_MINMAX << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; + break; + + case MINMAX: + op_selection |= (RNE << 29 | RTZ << 26 | OP_MINMAX << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; + break; + } + + // Storing iterations and residuals in registers + x_iters |= x_rows_iter << 16 | x_cols_iter << 0; + w_iters |= w_rows_iter << 16 | w_cols_iter << 0; + leftovers |= x_rows_lftovr << 24 | x_cols_lftovr << 16 | w_rows_lftovr << 8 | w_cols_lftovr << 0; + left_params |= tot_stores << 16 | x_rows_sub << 15 | x_cols_sub << 14 | w_cols_sub << 13; + x_d1_stride = ((4*FPFORMAT)/ADDR_WIDTH)*(((DATA_WIDTH/FPFORMAT)*x_cols_iter_tmp) + x_cols_lftovr); + x_rows_offs = ARRAY_WIDTH*x_d1_stride; + w_tot_len = w_rows_iter*w_cols_iter*x_rows_iter; + w_d0_stride = ((4*FPFORMAT)/ADDR_WIDTH)*(((DATA_WIDTH/FPFORMAT)*w_cols_iter_tmp) + w_cols_lftovr); + yz_tot_len = ARRAY_WIDTH*x_rows_iter*w_cols_iter; + yz_d0_stride = w_d0_stride; + yz_d2_stride = ARRAY_WIDTH*w_d0_stride; + tot_x_read = x_rows_iter*x_cols_iter*w_cols_iter; + + // Writing the computations in configuration register + HWPE_WRITE(x_iters , REDMULE_REG_OFFS + REDMULE_REG_X_ITER_PTR ); + HWPE_WRITE(w_iters , REDMULE_REG_OFFS + REDMULE_REG_W_ITER_PTR ); + HWPE_WRITE(leftovers , REDMULE_REG_OFFS + REDMULE_REG_LEFTOVERS_PTR ); + HWPE_WRITE(left_params , REDMULE_REG_OFFS + REDMULE_REG_LEFT_PARAMS_PTR ); + HWPE_WRITE(x_d1_stride , REDMULE_REG_OFFS + REDMULE_REG_X_D1_STRIDE_PTR ); + HWPE_WRITE(x_rows_offs , REDMULE_REG_OFFS + REDMULE_REG_X_ROWS_OFFS_PTR ); + HWPE_WRITE(tot_x_read , REDMULE_REG_OFFS + REDMULE_REG_TOT_X_READ_PTR ); + HWPE_WRITE(x_buffer_slots, REDMULE_REG_OFFS + REDMULE_REG_X_BUFFER_SLOTS_PTR ); + HWPE_WRITE(w_tot_len , REDMULE_REG_OFFS + REDMULE_REG_W_TOT_LEN_PTR ); + HWPE_WRITE(w_d0_stride , REDMULE_REG_OFFS + REDMULE_REG_W_D0_STRIDE_PTR ); + HWPE_WRITE(yz_tot_len , REDMULE_REG_OFFS + REDMULE_REG_YZ_TOT_LEN_PTR ); + HWPE_WRITE(yz_d0_stride , REDMULE_REG_OFFS + REDMULE_REG_YZ_D0_STRIDE_PTR ); + HWPE_WRITE(yz_d2_stride , REDMULE_REG_OFFS + REDMULE_REG_YZ_D2_STRIDE_PTR ); + HWPE_WRITE(op_selection , REDMULE_REG_OFFS + REDMULE_REG_OP_SELECTION ); +} + +void generate_test_data16(int x_start_addr, + int w_start_addr, + int y_start_addr, + int m_size, + int n_size, + int k_size) { + + int x_addr = x_start_addr; + int w_addr = w_start_addr; + int y_addr = y_start_addr; + int x_end_addr = x_start_addr + (2*m_size*n_size); + int w_end_addr = w_start_addr + (2*n_size*k_size); + int y_end_addr = y_start_addr + (2*m_size*k_size); + + // Generating input stimuli from golden model + for (x_addr = x_start_addr; x_addr < x_end_addr; x_addr += 2) { + int x = x_addr - x_start_addr; + *(uint32_t *)(x_addr) = x_inp[x/2]; + } + + // Generating Weight stimuli from golden model + for (w_addr = w_start_addr; w_addr < w_end_addr; w_addr += 2) { + int w = w_addr - w_start_addr; + *(uint32_t *)(w_addr) = w_inp[w/2]; + } + + for (y_addr = y_start_addr; y_addr < y_end_addr; y_addr += 2) { + int y = y_addr - y_start_addr; + *(uint32_t *)(y_addr) = y_inp[y/2]; + } +} + +int redmule_compare16 (int z_start_addr, int m_size, int k_size) { + int err = 0; + int z_end_addr = z_start_addr + 2*m_size*k_size; + uint16_t z_computed; + uint16_t diff, diff_1, diff_2; + + for (int z_addr = z_start_addr; z_addr < z_end_addr; z_addr += 2) { + int z = z_addr - z_start_addr; + z_computed = *(uint32_t *)(z_addr); + + if ( z_computed != z_oup[z/2] ) { + diff_1 = z_computed - z_oup[z/2]; + if (diff_1 > 3) { + diff_2 = z_oup[z/2] - z_computed; + if (diff_2 > 3) { + err++; + } + } + } + } + + return err; + +} + +int redmule16_compare_int(uint32_t *actual_z, uint32_t *golden_z, int len) { + #define ERR 0x0011 + uint32_t actual_word = 0; + uint16_t actual_MSHWord, actual_LSHWord; + uint32_t golden_word = 0; + uint16_t golden_MSHWord, golden_LSHWord; + uint32_t actual = 0; + uint32_t golden = 0; + + int errors = 0; + int error; + + for (int i=0; i golden_LSHWord) ? (actual_LSHWord - golden_LSHWord) : 0; + diff = (actual_LSHWord < golden_LSHWord) ? (golden_LSHWord - actual_LSHWord) : 0; + + if (diff > ERR) { + error = 1; + #ifdef VERBOSE + tfp_printf ("diff: 0x%08x\n", diff); + tfp_printf ("LSW: Error!\n"); + #endif + } + + // Checking Most Significant Half-Word + actual_MSHWord = (uint16_t)((actual_word >> 16) & 0x0000FFFF); + golden_MSHWord = (uint16_t)((golden_word >> 16) & 0x0000FFFF); + + diff = (actual_MSHWord > golden_MSHWord) ? (actual_MSHWord - golden_MSHWord) : 0; + diff = (actual_MSHWord < golden_MSHWord) ? (golden_MSHWord - actual_MSHWord) : 0; + + if (diff > ERR) { + error = 1; + #ifdef VERBOSE + tfp_printf ("diff: 0x%08x\n", diff); + tfp_printf ("MSW: Error!\n"); + #endif + } + + errors += error; + + #ifdef DEBUG + tfp_printf(" Golden: 0x%08x; Actual: 0x%08x,\n", golden_word, actual_word); + #endif + + #ifdef VERBOSE + if(error) { + if(errors==1) tfp_printf(" golden <- actual @ address @ index\n"); + tfp_printf(" 0x%08x <- 0x%08x @ 0x%08x @ 0x%08x\n", golden_word, actual_word, (actual_z+i), i*4); + } + #endif + } + return errors; +} + +int redmule8_compare_int(uint32_t *actual_z, uint32_t *golden_z, int len) { + #define ERR 0x0011 + uint32_t actual_word = 0; + uint8_t actual_Byte0, + actual_Byte1, + actual_Byte2, + actual_Byte3; + uint32_t golden_word = 0; + uint8_t golden_Byte0, + golden_Byte1, + golden_Byte2, + golden_Byte3; + uint32_t actual = 0; + uint32_t golden = 0; + + int errors = 0; + int error; + + for (int i=0; i golden_Byte0) ? (actual_Byte0 - golden_Byte0) : 0; + diff = (actual_Byte0 < golden_Byte0) ? (golden_Byte0 - actual_Byte0) : 0; + + if (diff > ERR) { + error = 1; + tfp_printf ("diff: 0x%08x\n", diff); + tfp_printf ("Byte0: Error!\n"); + } + + // Cheching Byte1 + actual_Byte1 = (uint8_t)( (actual_word >> 8 ) & 0x000000FF); + golden_Byte1 = (uint8_t)( (golden_word >> 8 ) & 0x000000FF); + + diff = (actual_Byte1 > golden_Byte1) ? (actual_Byte1 - golden_Byte1) : 0; + diff = (actual_Byte1 < golden_Byte1) ? (golden_Byte1 - actual_Byte1) : 0; + + if (diff > ERR) { + error = 1; + tfp_printf ("diff: 0x%08x\n", diff); + tfp_printf ("Byte1: Error!\n"); + } + + // Cheching Byte2 + actual_Byte2 = (uint8_t)( (actual_word >> 16 ) & 0x000000FF); + golden_Byte2 = (uint8_t)( (golden_word >> 16 ) & 0x000000FF); + + diff = (actual_Byte2 > golden_Byte2) ? (actual_Byte2 - golden_Byte2) : 0; + diff = (actual_Byte2 < golden_Byte2) ? (golden_Byte2 - actual_Byte2) : 0; + + if (diff > ERR) { + error = 1; + tfp_printf ("diff: 0x%08x\n", diff); + tfp_printf ("Byte2: Error!\n"); + } + + // Cheching Byte3 + actual_Byte3 = (uint8_t)( (actual_word >> 24 ) & 0x000000FF); + golden_Byte3 = (uint8_t)( (golden_word >> 24 ) & 0x000000FF); + + diff = (actual_Byte3 > golden_Byte3) ? (actual_Byte3 - golden_Byte3) : 0; + diff = (actual_Byte3 < golden_Byte3) ? (golden_Byte3 - actual_Byte3) : 0; + + if (diff > ERR) { + error = 1; + tfp_printf ("diff: 0x%08x\n", diff); + tfp_printf ("Byte3: Error!\n"); + } + + errors += error; + + #ifdef DEBUG + tfp_printf(" Golden: 0x%08x; Actual: 0x%08x,\n", golden_word, actual_word); + #endif + + #ifdef VERBOSE + if(error) { + if(errors==1) tfp_printf(" golden <- actual @ address @ index\n"); + tfp_printf(" 0x%08x <- 0x%08x @ 0x%08x @ 0x%08x\n", golden_word, actual_word, (actual_z+i), i*4); + } + #endif + } + return errors; +} + +#endif diff --git a/carfield/redmule/inc/golden.h b/carfield/redmule/inc/golden.h new file mode 100644 index 0000000..f664e47 --- /dev/null +++ b/carfield/redmule/inc/golden.h @@ -0,0 +1,387 @@ + /* Header file generated by RedMulE Golden Model */ +uint32_t golden [384] = { +0x48974845, +0x48384608, +0x487b4855, +0x48804869, +0x48b046d1, +0x483f48db, +0x485f48c9, +0x483a4881, +0x472c484b, +0x492b4762, +0x48fd4822, +0x492e488e, +0x484f483e, +0x46d749e8, +0x489d484b, +0x47e9490b, +0x47d2484f, +0x474744be, +0x46c047c7, +0x48af4727, +0x482d46c5, +0x482e483d, +0x479f4897, +0x4749488b, +0x46a8489a, +0x488b46f2, +0x47e84891, +0x483d4872, +0x46fd4716, +0x46a049b5, +0x47a446e7, +0x476748a1, +0x49354939, +0x48c14703, +0x48bd4863, +0x48cf4913, +0x48b848b6, +0x49204946, +0x48e1495e, +0x48b24938, +0x4882493a, +0x49d5483b, +0x49724911, +0x49df496b, +0x488848f2, +0x48214a46, +0x490c48c1, +0x48a349b2, +0x47b0463a, +0x476244cb, +0x46b94765, +0x4814466a, +0x47964631, +0x474b4666, +0x47044798, +0x47614838, +0x459047d3, +0x48a245ea, +0x484447f1, +0x4776484b, +0x46d847d6, +0x44d348f3, +0x478d46fa, +0x466e481e, +0x481e4827, +0x479445a2, +0x48064727, +0x48d5475d, +0x48284708, +0x480d4862, +0x48324895, +0x47f148bd, +0x46a7482a, +0x492d47b1, +0x4884484d, +0x485f48dc, +0x480c476d, +0x46d348e9, +0x48844728, +0x480e48a0, +0x48134862, +0x485a4675, +0x473847e8, +0x48234836, +0x482146e7, +0x47b34822, +0x48554846, +0x47174863, +0x47c14872, +0x488e46d5, +0x485f47e2, +0x48b8487c, +0x4788481e, +0x467748bd, +0x47f846c9, +0x47fc48fe, +0x47b247a0, +0x467e4588, +0x46c74662, +0x481246e8, +0x474e4536, +0x468f46c0, +0x4679481f, +0x46e246a1, +0x45604809, +0x47eb4630, +0x475746b5, +0x477f4848, +0x46d846a6, +0x459a4870, +0x46784670, +0x468c47d2, +0x48c44762, +0x479146e3, +0x486d46b1, +0x486747d0, +0x47f6468d, +0x475648a5, +0x48544857, +0x48384866, +0x46ec484d, +0x48f647d2, +0x4879484a, +0x483c4848, +0x4806471d, +0x473048fa, +0x47b84768, +0x46f94865, +0x491848a8, +0x486746ca, +0x48624800, +0x491048d3, +0x4849474e, +0x486b48eb, +0x48c54966, +0x483048f4, +0x477848f9, +0x499e481e, +0x48f148cf, +0x49234982, +0x47cf487c, +0x464949ea, +0x495e4773, +0x483f48b2, +0x497548a7, +0x481e4616, +0x4866481f, +0x486448b6, +0x487347dc, +0x487f485c, +0x491f4938, +0x48b6490d, +0x48a148f8, +0x492d4859, +0x4915489c, +0x48874899, +0x4859486c, +0x471e49ca, +0x49184867, +0x482748d3, +0x4998488b, +0x481d4704, +0x488048b8, +0x49444876, +0x48f2470c, +0x489b48b9, +0x48e54956, +0x48a548d6, +0x485648dc, +0x49ab484e, +0x490e48e0, +0x494548dd, +0x48dd488b, +0x47ea4a32, +0x49114835, +0x48194965, +0x481e460e, +0x4673452c, +0x4717475c, +0x46d046f6, +0x46bc4696, +0x481e4726, +0x46ea4763, +0x475846fe, +0x4627478b, +0x483f4704, +0x47b146ad, +0x48164792, +0x468446f2, +0x45a84827, +0x47a4472f, +0x462b4797, +0x48ab483f, +0x4863468f, +0x4766485a, +0x48cb481d, +0x490347dc, +0x483048fc, +0x483e48cc, +0x486448ab, +0x47634966, +0x499d4794, +0x488b488e, +0x496048dc, +0x484c4854, +0x474c499c, +0x48bc4826, +0x48834949, +0x4905489d, +0x481e4718, +0x48f448e3, +0x490448c1, +0x48b347e8, +0x48d44892, +0x489448ff, +0x488648d5, +0x480348fa, +0x492e47d2, +0x48b24870, +0x492b48e5, +0x4785487b, +0x471d49e3, +0x48bf4837, +0x48c4489b, +0x4871475c, +0x4811464a, +0x471c47af, +0x48174817, +0x484e463b, +0x464f477f, +0x487c4704, +0x472547a3, +0x462a4853, +0x4860465a, +0x48804736, +0x482b47e1, +0x46c04811, +0x475d48dc, +0x48064668, +0x46f44893, +0x49594858, +0x487b463d, +0x484e480f, +0x48a648c0, +0x48944847, +0x484a48a0, +0x48f4491e, +0x48b548fc, +0x47d248ce, +0x497f47db, +0x49394955, +0x48ce48a7, +0x48844890, +0x476349d6, +0x4922486e, +0x48c348f4, +0x491c47ec, +0x47834698, +0x47544715, +0x47524745, +0x4832472f, +0x48094817, +0x48c347f8, +0x480047e6, +0x473048b6, +0x48cb480a, +0x488e479e, +0x488e47c2, +0x47ee472f, +0x4744489d, +0x48514755, +0x47d34846, +0x48a04838, +0x47624634, +0x48064786, +0x482d47e3, +0x486c4726, +0x480347b7, +0x481448ac, +0x483948e0, +0x47504827, +0x48c546f2, +0x4886483f, +0x485648ad, +0x47a947e8, +0x47434937, +0x481f46d0, +0x4804484c, +0x481f47fd, +0x4813456d, +0x4807474d, +0x480e4688, +0x481046e8, +0x4799469f, +0x478f4853, +0x482447f2, +0x471f47d0, +0x485f46da, +0x481c4813, +0x4863482e, +0x480b4786, +0x46b848c9, +0x46e2475a, +0x46c54852, +0x480245af, +0x46c24466, +0x4743465d, +0x47ba46b7, +0x46c34636, +0x47844677, +0x47c2485a, +0x46ac46dc, +0x460e47de, +0x4834465f, +0x476947f4, +0x481046fc, +0x45ea45fd, +0x45b548d0, +0x47834704, +0x46c44830, +0x47c74759, +0x45b0453d, +0x47024741, +0x47934736, +0x47ba461b, +0x46dd470b, +0x470b4657, +0x4710470d, +0x468f486c, +0x46ba45c3, +0x483b479d, +0x477446c9, +0x46a746a9, +0x46064833, +0x46a94690, +0x46a746f5, +0x48bb47ac, +0x4803452c, +0x4824470f, +0x48cb47d5, +0x484a4707, +0x47974832, +0x482c4851, +0x4877487a, +0x465d4891, +0x48ce47f4, +0x48994898, +0x486a484e, +0x47f047ac, +0x4611493e, +0x489e47e2, +0x46af488c, +0x48364665, +0x46b645e4, +0x46b946a1, +0x46dd46c8, +0x474b4658, +0x4777467b, +0x47984769, +0x475e4785, +0x4656472a, +0x488145fb, +0x472d46fc, +0x47a3476e, +0x46ca465d, +0x45004855, +0x479a464f, +0x473846c3, +0x486c481e, +0x48014659, +0x477a4756, +0x487b47d5, +0x48084706, +0x4838484f, +0x48634870, +0x480648d3, +0x47714865, +0x494c46be, +0x484c4915, +0x48624900, +0x46e8481a, +0x46a04974, +0x483d4775, +0x480e487c, +}; \ No newline at end of file diff --git a/carfield/redmule/inc/tensor_dim.h b/carfield/redmule/inc/tensor_dim.h new file mode 100644 index 0000000..21bd0d8 --- /dev/null +++ b/carfield/redmule/inc/tensor_dim.h @@ -0,0 +1,13 @@ + /* Header file generated by RedMulE Golden Model */ +#ifndef __TENSOR_DIM__ +#define __TENSOR_DIM__ + +#define M_SIZE 24 +#define N_SIZE 32 +#define K_SIZE 32 +#define SRC_FMT FP16 +#define DST_FMT FP16 +#define FPFORMAT 16 +uint8_t gemm_ops = GEMM; + +#endif diff --git a/carfield/redmule/inc/w_2D.h b/carfield/redmule/inc/w_2D.h new file mode 100644 index 0000000..9409c64 --- /dev/null +++ b/carfield/redmule/inc/w_2D.h @@ -0,0 +1,35 @@ + /* Header file generated by RedMulE Golden Model */ +uint16_t w_inp_2D [32][32] = { +0x311a, 0x39e0, 0x387d, 0x3a4a, 0x386f, 0x3ada, 0x392f, 0x3854, 0x3014, 0x2fd2, 0x31c9, 0x2fca, 0x2e55, 0x3bc8, 0x396d, 0x3b1d, 0x39f6, 0x333a, 0x3908, 0x3628, 0x3bab, 0x3b8b, 0x3b4a, 0x322d, 0x3925, 0x317a, 0x3725, 0x31c2, 0x3066, 0x38f3, 0x3a17, 0x3476, +0x3bda, 0x3196, 0x3922, 0x3680, 0x396a, 0x3021, 0x3761, 0x374d, 0x2fc2, 0x3967, 0x3b94, 0x33b5, 0x3797, 0x34d6, 0x3655, 0x2176, 0x39bc, 0x3999, 0x3658, 0x3904, 0x3759, 0x2ade, 0x3a5a, 0x3b78, 0x36c7, 0x2d01, 0x3b58, 0x2d9a, 0x373d, 0x3952, 0x38e8, 0x3887, +0x37b6, 0x3a88, 0x2f8a, 0x2d79, 0x3413, 0x3421, 0x3976, 0x32b2, 0x3446, 0x2d99, 0x3a56, 0x3322, 0x3b49, 0x39fa, 0x3acd, 0x3af6, 0x304c, 0x3abb, 0x3a83, 0x38b2, 0x3ab9, 0x363e, 0x389f, 0x31bb, 0x38e1, 0x3bc4, 0x3b9b, 0x2984, 0x3a43, 0x3b2f, 0x35d6, 0x3bda, +0x2df3, 0x3bf8, 0x2acc, 0x378b, 0x3555, 0x2e59, 0x31d4, 0x34ec, 0x3a46, 0x3bab, 0x3214, 0x3161, 0x3470, 0x3a03, 0x368e, 0x31ad, 0x27cb, 0x2ecb, 0x3422, 0x39f7, 0x3644, 0x3a77, 0x313f, 0x34f2, 0x39b3, 0x3bf2, 0x379a, 0x3456, 0x35fe, 0x3ae7, 0x3964, 0x385f, +0x3b16, 0x3999, 0x3833, 0x2eda, 0x3afd, 0x3a4a, 0x3ba2, 0x2bd4, 0x3b38, 0x31a2, 0x32dd, 0x353c, 0x366f, 0x375e, 0x3821, 0x367a, 0x3b44, 0x39e6, 0x3787, 0x339e, 0x39d7, 0x38c6, 0x37d5, 0x342f, 0x3984, 0x319b, 0x33b5, 0x35ab, 0x398a, 0x374e, 0x36b6, 0x3b21, +0x3bbb, 0x2ab3, 0x2ad5, 0x33bc, 0x2bef, 0x3780, 0x3738, 0x3a0b, 0x3b09, 0x30ca, 0x384e, 0x3ab3, 0x39bd, 0x3453, 0x3a6d, 0x3957, 0x2c10, 0x30e9, 0x35d4, 0x3aef, 0x3be9, 0x39ad, 0x3a74, 0x3af9, 0x3739, 0x2d4d, 0x39fe, 0x3b72, 0x2c57, 0x398c, 0x381f, 0x3930, +0x3820, 0x321b, 0x3964, 0x2964, 0x33a0, 0x2d00, 0x2490, 0x336b, 0x3465, 0x3b2e, 0x3aa0, 0x371f, 0x300e, 0x3a09, 0x3bf1, 0x25cc, 0x3b6f, 0x3384, 0x3a88, 0x3acb, 0x3814, 0x36d0, 0x3081, 0x3a2c, 0x3353, 0x39cb, 0x31ed, 0x3af6, 0x3721, 0x36c7, 0x2ce2, 0x390d, +0x3698, 0x3ab2, 0x3b3e, 0x2eb4, 0x3998, 0x39e3, 0x3a77, 0x3632, 0x2c12, 0x3bd5, 0x3ba3, 0x3bba, 0x323c, 0x367b, 0x3557, 0x39c8, 0x37db, 0x3b45, 0x3b6e, 0x3931, 0x3121, 0x3a8d, 0x3a55, 0x3b9b, 0x358a, 0x3925, 0x3491, 0x3912, 0x3b6b, 0x3584, 0x32df, 0x3120, +0x32b2, 0x3b0a, 0x2cad, 0x3465, 0x3ad3, 0x3bcd, 0x363b, 0x3afe, 0x354b, 0x3374, 0x39af, 0x3b7f, 0x308c, 0x2e72, 0x3380, 0x3b70, 0x3902, 0x38d8, 0x39f3, 0x3a4b, 0x3853, 0x397b, 0x2ebe, 0x387f, 0x2845, 0x37e2, 0x360f, 0x370b, 0x3acb, 0x35d4, 0x36e6, 0x3262, +0x2e88, 0x3a54, 0x2ee3, 0x3575, 0x3afe, 0x2aee, 0x39a0, 0x3aae, 0x3693, 0x3432, 0x3834, 0x3b9b, 0x3bcb, 0x2e3a, 0x356d, 0x374e, 0x3924, 0x383c, 0x311e, 0x3ac5, 0x352d, 0x311e, 0x38ca, 0x34d4, 0x36ca, 0x34ed, 0x3a13, 0x33eb, 0x3639, 0x3828, 0x3b3c, 0x3939, +0x3837, 0x3521, 0x2cb5, 0x3629, 0x3924, 0x384c, 0x366a, 0x3bbf, 0x2e9e, 0x3ba8, 0x33ad, 0x38c8, 0x3934, 0x3907, 0x249a, 0x3690, 0x3a09, 0x3215, 0x3898, 0x325d, 0x37d5, 0x3195, 0x361c, 0x3ae4, 0x351f, 0x3452, 0x3bc0, 0x375c, 0x39bf, 0x317a, 0x3aae, 0x283a, +0x3476, 0x3b92, 0x3472, 0x383e, 0x280f, 0x39d6, 0x2fd1, 0x31f4, 0x2ffb, 0x3b97, 0x3692, 0x36c0, 0x3989, 0x33cf, 0x3ba6, 0x3239, 0x35d7, 0x33ab, 0x31eb, 0x3b47, 0x389b, 0x3b88, 0x3580, 0x354c, 0x3802, 0x3b9a, 0x3b94, 0x2a92, 0x2db1, 0x38bd, 0x2dfb, 0x3900, +0x344f, 0x3739, 0x27a5, 0x3b2e, 0x342b, 0x34bb, 0x30c8, 0x3ae8, 0x3b26, 0x3982, 0x38c0, 0x3408, 0x38c8, 0x36ef, 0x3bf0, 0x3acf, 0x3a3c, 0x3825, 0x31a5, 0x3ada, 0x3b5b, 0x37db, 0x3a01, 0x3663, 0x3a7d, 0x327b, 0x3a1f, 0x3862, 0x38af, 0x3204, 0x372e, 0x3b19, +0x3708, 0x3622, 0x2e62, 0x39ab, 0x2d4d, 0x31b4, 0x3552, 0x3bbc, 0x36f2, 0x36eb, 0x38ef, 0x3755, 0x3bbe, 0x2c17, 0x3815, 0x2f53, 0x363f, 0x38c1, 0x3246, 0x386b, 0x34de, 0x34e4, 0x3baa, 0x349e, 0x32ce, 0x3a68, 0x373f, 0x2cce, 0x3b36, 0x28ba, 0x3b50, 0x3232, +0x1f34, 0x3928, 0x35cd, 0x3b38, 0x30ce, 0x35a1, 0x3a06, 0x3a32, 0x3a53, 0x3489, 0x3241, 0x372f, 0x390c, 0x3a1b, 0x378a, 0x3713, 0x3769, 0x37a8, 0x3418, 0x3ad4, 0x3a4e, 0x3bf7, 0x37a5, 0x34dc, 0x39b2, 0x351b, 0x3372, 0x349f, 0x2f50, 0x3ab1, 0x3795, 0x2db7, +0x3864, 0x3157, 0x3900, 0x323e, 0x389e, 0x3880, 0x3b1f, 0x37a1, 0x396c, 0x2e43, 0x2c2a, 0x3b78, 0x3988, 0x3a14, 0x39c1, 0x3b51, 0x3780, 0x3bf2, 0x2d19, 0x3815, 0x3a5f, 0x3641, 0x2f62, 0x37d5, 0x3564, 0x139a, 0x3ab8, 0x28f7, 0x3785, 0x34e1, 0x3097, 0x3768, +0x3971, 0x3ae2, 0x32ae, 0x2fd5, 0x382a, 0x346c, 0x3133, 0x3167, 0x3940, 0x2d12, 0x389a, 0x3bd0, 0x3943, 0x391c, 0x3a75, 0x2a11, 0x391e, 0x372d, 0x3a79, 0x3b72, 0x3373, 0x39b7, 0x35d7, 0x372b, 0x3a6d, 0x38a1, 0x3279, 0x3434, 0x3694, 0x3b45, 0x3abb, 0x392d, +0x34a8, 0x3757, 0x32ca, 0x345d, 0x36a5, 0x3854, 0x2dcd, 0x30af, 0x38dd, 0x3067, 0x3411, 0x3997, 0x397a, 0x3a64, 0x38b8, 0x3962, 0x3509, 0x3bb6, 0x3a66, 0x339f, 0x372a, 0x31a8, 0x37da, 0x36ff, 0x33c6, 0x31da, 0x3977, 0x3b72, 0x3841, 0x3567, 0x3433, 0x33b8, +0x39fe, 0x3a10, 0x3bf2, 0x35e7, 0x3a4a, 0x3b3e, 0x2ec7, 0x3aa4, 0x3846, 0x3af9, 0x38a9, 0x2c1f, 0x39ab, 0x349f, 0x31d6, 0x39ae, 0x3b79, 0x352d, 0x3516, 0x347c, 0x2f33, 0x35ad, 0x31c4, 0x3b52, 0x354b, 0x3786, 0x3ab7, 0x3896, 0x34ac, 0x352f, 0x37e6, 0x326a, +0x2e44, 0x34c7, 0x388d, 0x3bf4, 0x363f, 0x3b3d, 0x33b1, 0x3b8b, 0x3340, 0x37f7, 0x3b07, 0x25bf, 0x398e, 0x3505, 0x3bd7, 0x366d, 0x388a, 0x2cc0, 0x359a, 0x3b9a, 0x3b99, 0x379d, 0x3b6b, 0x39b8, 0x3223, 0x2703, 0x3ba9, 0x2ecb, 0x3759, 0x39d8, 0x37ac, 0x32cf, +0x35f2, 0x38a3, 0x399e, 0x3bd2, 0x3780, 0x3af3, 0x3b5e, 0x337b, 0x3a08, 0x35da, 0x3446, 0x3b25, 0x3ad0, 0x3bee, 0x3141, 0x32d8, 0x34ce, 0x2ac9, 0x3800, 0x3a8a, 0x2d53, 0x368a, 0x3561, 0x3998, 0x35a3, 0x3677, 0x3ab2, 0x3269, 0x3236, 0x3b3e, 0x3aba, 0x3bac, +0x395d, 0x3820, 0x1df6, 0x3bb5, 0x35b5, 0x3675, 0x3b74, 0x360f, 0x34de, 0x3a0c, 0x3aeb, 0x299d, 0x3207, 0x3bd8, 0x2178, 0x3995, 0x3948, 0x3908, 0x3843, 0x2ea5, 0x3045, 0x3989, 0x345d, 0x39c5, 0x3a89, 0x3863, 0x3be0, 0x397a, 0x38f1, 0x39e2, 0x3b08, 0x352e, +0x385f, 0x28f2, 0x3bc3, 0x35e0, 0x380c, 0x3b9c, 0x3afc, 0x390a, 0x3689, 0x34fd, 0x2cf5, 0x308e, 0x342b, 0x3921, 0x3a67, 0x3ad6, 0x2986, 0x32fc, 0x35aa, 0x3507, 0x3608, 0x33fd, 0x3bf3, 0x39e2, 0x3b0f, 0x30b7, 0x3896, 0x3ae4, 0x2145, 0x35b6, 0x2e1d, 0x3ad1, +0x333d, 0x3afb, 0x2703, 0x3413, 0x1d7d, 0x3b7f, 0x3ae1, 0x303c, 0x3004, 0x39d3, 0x3554, 0x31a4, 0x354e, 0x3662, 0x39c5, 0x2eb7, 0x2c6e, 0x397f, 0x31d8, 0x1f0c, 0x38e3, 0x35f0, 0x2714, 0x28d1, 0x375e, 0x3a75, 0x3830, 0x3578, 0x397d, 0x3b18, 0x383c, 0x3498, +0x39ad, 0x3598, 0x23c4, 0x34ea, 0x3a61, 0x2b00, 0x3707, 0x3ae1, 0x37ae, 0x389d, 0x37fa, 0x3673, 0x3278, 0xf3e, 0x3809, 0x33c6, 0x3bf5, 0x3279, 0x3816, 0x360c, 0x39c8, 0x381f, 0x3741, 0x2d66, 0x38c0, 0x37d3, 0x377a, 0x3621, 0x2faf, 0x392e, 0x2de6, 0x33c5, +0x3803, 0x2600, 0x32e9, 0x39b4, 0x38d2, 0x34e8, 0x2fe6, 0x3199, 0x3643, 0x3a77, 0x27cc, 0x39d7, 0x34c6, 0x2ea8, 0x364e, 0x3b07, 0x31c7, 0x30a1, 0x31b1, 0x3b8f, 0x3571, 0x3b75, 0x3989, 0x3805, 0x39fb, 0x3945, 0x352b, 0x31d8, 0x3904, 0x3440, 0x3a57, 0x2cf7, +0x3b39, 0x2fcd, 0x2b89, 0x2edd, 0x3682, 0x36a9, 0x32c8, 0x37ac, 0x32a5, 0x3311, 0x394b, 0x3b84, 0x3aec, 0x3601, 0x2765, 0x3b69, 0x396b, 0x3727, 0x3bfe, 0x3907, 0x376f, 0x3674, 0x3973, 0x3671, 0x3491, 0x3993, 0x383f, 0x3335, 0x3989, 0x3550, 0x3077, 0x35f5, +0x3a59, 0x3950, 0x380c, 0x37cd, 0x30bf, 0x3607, 0x3afa, 0x3b5d, 0x32b9, 0x386b, 0x35bd, 0x3aca, 0x3ba5, 0x3b2d, 0x3b19, 0x3b8b, 0x345e, 0x2845, 0x34aa, 0x372a, 0x3448, 0x34f5, 0x3ae2, 0x3637, 0x2cb5, 0x354b, 0x3b15, 0x2ca8, 0x2641, 0x3178, 0x2cfe, 0x39b4, +0x3bdd, 0x3acb, 0x3a05, 0x38a2, 0x3b4a, 0x34e5, 0x395f, 0x394b, 0x34c4, 0x3aa5, 0x29bb, 0x2d96, 0x339d, 0x387c, 0x382e, 0x385a, 0x396b, 0x3aa9, 0x2f1e, 0x33a7, 0x3b90, 0x3b7b, 0x3b5f, 0x39d3, 0x3b18, 0x354f, 0x2cdb, 0x3a6f, 0x3434, 0x34ff, 0x3a5b, 0x3b84, +0x3a33, 0x384b, 0x2e67, 0x3b85, 0x3853, 0x380c, 0x346a, 0x3aaa, 0x3492, 0x33e8, 0x3bf2, 0x38ae, 0x3a29, 0x3830, 0x3221, 0x35b1, 0x3a48, 0x2c68, 0x2ced, 0x3a7e, 0x3539, 0x3922, 0x374c, 0x3aaa, 0x2dae, 0x395d, 0x3b3d, 0x3890, 0x2cfe, 0x2dd6, 0x3bad, 0x33c5, +0x2c07, 0x3a2c, 0x37a8, 0x390f, 0x2fc8, 0x35ae, 0x388c, 0x30ee, 0x3674, 0x391d, 0x3bfc, 0x36bf, 0x322d, 0x3a78, 0x35c0, 0x3492, 0x3ac8, 0x3504, 0x3315, 0x381d, 0x3a7a, 0x3a08, 0x343c, 0x3bda, 0x341b, 0x39f0, 0x3b9e, 0x395d, 0x3c00, 0x38ab, 0x3bcf, 0x3564, +0x33c4, 0x3b0d, 0x3623, 0x33b9, 0x3b92, 0x1e71, 0x2c57, 0x36d0, 0x314b, 0x3a16, 0x3372, 0x341b, 0x3aaa, 0x3444, 0x396b, 0x2dd7, 0x3b30, 0x3559, 0x3b5b, 0x3a29, 0x2d19, 0x38b7, 0x3b01, 0x3afa, 0x398a, 0x3839, 0x3ac9, 0x2e31, 0x3924, 0x39f2, 0x3a7f, 0x3285 +}; \ No newline at end of file diff --git a/carfield/redmule/inc/w_input.h b/carfield/redmule/inc/w_input.h new file mode 100644 index 0000000..dc4d3be --- /dev/null +++ b/carfield/redmule/inc/w_input.h @@ -0,0 +1,35 @@ + /* Header file generated by RedMulE Golden Model */ +uint16_t w_inp [1024] = { +0x311a, 0x39e0, 0x387d, 0x3a4a, 0x386f, 0x3ada, 0x392f, 0x3854, 0x3014, 0x2fd2, 0x31c9, 0x2fca, 0x2e55, 0x3bc8, 0x396d, 0x3b1d, 0x39f6, 0x333a, 0x3908, 0x3628, 0x3bab, 0x3b8b, 0x3b4a, 0x322d, 0x3925, 0x317a, 0x3725, 0x31c2, 0x3066, 0x38f3, 0x3a17, 0x3476, +0x3bda, 0x3196, 0x3922, 0x3680, 0x396a, 0x3021, 0x3761, 0x374d, 0x2fc2, 0x3967, 0x3b94, 0x33b5, 0x3797, 0x34d6, 0x3655, 0x2176, 0x39bc, 0x3999, 0x3658, 0x3904, 0x3759, 0x2ade, 0x3a5a, 0x3b78, 0x36c7, 0x2d01, 0x3b58, 0x2d9a, 0x373d, 0x3952, 0x38e8, 0x3887, +0x37b6, 0x3a88, 0x2f8a, 0x2d79, 0x3413, 0x3421, 0x3976, 0x32b2, 0x3446, 0x2d99, 0x3a56, 0x3322, 0x3b49, 0x39fa, 0x3acd, 0x3af6, 0x304c, 0x3abb, 0x3a83, 0x38b2, 0x3ab9, 0x363e, 0x389f, 0x31bb, 0x38e1, 0x3bc4, 0x3b9b, 0x2984, 0x3a43, 0x3b2f, 0x35d6, 0x3bda, +0x2df3, 0x3bf8, 0x2acc, 0x378b, 0x3555, 0x2e59, 0x31d4, 0x34ec, 0x3a46, 0x3bab, 0x3214, 0x3161, 0x3470, 0x3a03, 0x368e, 0x31ad, 0x27cb, 0x2ecb, 0x3422, 0x39f7, 0x3644, 0x3a77, 0x313f, 0x34f2, 0x39b3, 0x3bf2, 0x379a, 0x3456, 0x35fe, 0x3ae7, 0x3964, 0x385f, +0x3b16, 0x3999, 0x3833, 0x2eda, 0x3afd, 0x3a4a, 0x3ba2, 0x2bd4, 0x3b38, 0x31a2, 0x32dd, 0x353c, 0x366f, 0x375e, 0x3821, 0x367a, 0x3b44, 0x39e6, 0x3787, 0x339e, 0x39d7, 0x38c6, 0x37d5, 0x342f, 0x3984, 0x319b, 0x33b5, 0x35ab, 0x398a, 0x374e, 0x36b6, 0x3b21, +0x3bbb, 0x2ab3, 0x2ad5, 0x33bc, 0x2bef, 0x3780, 0x3738, 0x3a0b, 0x3b09, 0x30ca, 0x384e, 0x3ab3, 0x39bd, 0x3453, 0x3a6d, 0x3957, 0x2c10, 0x30e9, 0x35d4, 0x3aef, 0x3be9, 0x39ad, 0x3a74, 0x3af9, 0x3739, 0x2d4d, 0x39fe, 0x3b72, 0x2c57, 0x398c, 0x381f, 0x3930, +0x3820, 0x321b, 0x3964, 0x2964, 0x33a0, 0x2d00, 0x2490, 0x336b, 0x3465, 0x3b2e, 0x3aa0, 0x371f, 0x300e, 0x3a09, 0x3bf1, 0x25cc, 0x3b6f, 0x3384, 0x3a88, 0x3acb, 0x3814, 0x36d0, 0x3081, 0x3a2c, 0x3353, 0x39cb, 0x31ed, 0x3af6, 0x3721, 0x36c7, 0x2ce2, 0x390d, +0x3698, 0x3ab2, 0x3b3e, 0x2eb4, 0x3998, 0x39e3, 0x3a77, 0x3632, 0x2c12, 0x3bd5, 0x3ba3, 0x3bba, 0x323c, 0x367b, 0x3557, 0x39c8, 0x37db, 0x3b45, 0x3b6e, 0x3931, 0x3121, 0x3a8d, 0x3a55, 0x3b9b, 0x358a, 0x3925, 0x3491, 0x3912, 0x3b6b, 0x3584, 0x32df, 0x3120, +0x32b2, 0x3b0a, 0x2cad, 0x3465, 0x3ad3, 0x3bcd, 0x363b, 0x3afe, 0x354b, 0x3374, 0x39af, 0x3b7f, 0x308c, 0x2e72, 0x3380, 0x3b70, 0x3902, 0x38d8, 0x39f3, 0x3a4b, 0x3853, 0x397b, 0x2ebe, 0x387f, 0x2845, 0x37e2, 0x360f, 0x370b, 0x3acb, 0x35d4, 0x36e6, 0x3262, +0x2e88, 0x3a54, 0x2ee3, 0x3575, 0x3afe, 0x2aee, 0x39a0, 0x3aae, 0x3693, 0x3432, 0x3834, 0x3b9b, 0x3bcb, 0x2e3a, 0x356d, 0x374e, 0x3924, 0x383c, 0x311e, 0x3ac5, 0x352d, 0x311e, 0x38ca, 0x34d4, 0x36ca, 0x34ed, 0x3a13, 0x33eb, 0x3639, 0x3828, 0x3b3c, 0x3939, +0x3837, 0x3521, 0x2cb5, 0x3629, 0x3924, 0x384c, 0x366a, 0x3bbf, 0x2e9e, 0x3ba8, 0x33ad, 0x38c8, 0x3934, 0x3907, 0x249a, 0x3690, 0x3a09, 0x3215, 0x3898, 0x325d, 0x37d5, 0x3195, 0x361c, 0x3ae4, 0x351f, 0x3452, 0x3bc0, 0x375c, 0x39bf, 0x317a, 0x3aae, 0x283a, +0x3476, 0x3b92, 0x3472, 0x383e, 0x280f, 0x39d6, 0x2fd1, 0x31f4, 0x2ffb, 0x3b97, 0x3692, 0x36c0, 0x3989, 0x33cf, 0x3ba6, 0x3239, 0x35d7, 0x33ab, 0x31eb, 0x3b47, 0x389b, 0x3b88, 0x3580, 0x354c, 0x3802, 0x3b9a, 0x3b94, 0x2a92, 0x2db1, 0x38bd, 0x2dfb, 0x3900, +0x344f, 0x3739, 0x27a5, 0x3b2e, 0x342b, 0x34bb, 0x30c8, 0x3ae8, 0x3b26, 0x3982, 0x38c0, 0x3408, 0x38c8, 0x36ef, 0x3bf0, 0x3acf, 0x3a3c, 0x3825, 0x31a5, 0x3ada, 0x3b5b, 0x37db, 0x3a01, 0x3663, 0x3a7d, 0x327b, 0x3a1f, 0x3862, 0x38af, 0x3204, 0x372e, 0x3b19, +0x3708, 0x3622, 0x2e62, 0x39ab, 0x2d4d, 0x31b4, 0x3552, 0x3bbc, 0x36f2, 0x36eb, 0x38ef, 0x3755, 0x3bbe, 0x2c17, 0x3815, 0x2f53, 0x363f, 0x38c1, 0x3246, 0x386b, 0x34de, 0x34e4, 0x3baa, 0x349e, 0x32ce, 0x3a68, 0x373f, 0x2cce, 0x3b36, 0x28ba, 0x3b50, 0x3232, +0x1f34, 0x3928, 0x35cd, 0x3b38, 0x30ce, 0x35a1, 0x3a06, 0x3a32, 0x3a53, 0x3489, 0x3241, 0x372f, 0x390c, 0x3a1b, 0x378a, 0x3713, 0x3769, 0x37a8, 0x3418, 0x3ad4, 0x3a4e, 0x3bf7, 0x37a5, 0x34dc, 0x39b2, 0x351b, 0x3372, 0x349f, 0x2f50, 0x3ab1, 0x3795, 0x2db7, +0x3864, 0x3157, 0x3900, 0x323e, 0x389e, 0x3880, 0x3b1f, 0x37a1, 0x396c, 0x2e43, 0x2c2a, 0x3b78, 0x3988, 0x3a14, 0x39c1, 0x3b51, 0x3780, 0x3bf2, 0x2d19, 0x3815, 0x3a5f, 0x3641, 0x2f62, 0x37d5, 0x3564, 0x139a, 0x3ab8, 0x28f7, 0x3785, 0x34e1, 0x3097, 0x3768, +0x3971, 0x3ae2, 0x32ae, 0x2fd5, 0x382a, 0x346c, 0x3133, 0x3167, 0x3940, 0x2d12, 0x389a, 0x3bd0, 0x3943, 0x391c, 0x3a75, 0x2a11, 0x391e, 0x372d, 0x3a79, 0x3b72, 0x3373, 0x39b7, 0x35d7, 0x372b, 0x3a6d, 0x38a1, 0x3279, 0x3434, 0x3694, 0x3b45, 0x3abb, 0x392d, +0x34a8, 0x3757, 0x32ca, 0x345d, 0x36a5, 0x3854, 0x2dcd, 0x30af, 0x38dd, 0x3067, 0x3411, 0x3997, 0x397a, 0x3a64, 0x38b8, 0x3962, 0x3509, 0x3bb6, 0x3a66, 0x339f, 0x372a, 0x31a8, 0x37da, 0x36ff, 0x33c6, 0x31da, 0x3977, 0x3b72, 0x3841, 0x3567, 0x3433, 0x33b8, +0x39fe, 0x3a10, 0x3bf2, 0x35e7, 0x3a4a, 0x3b3e, 0x2ec7, 0x3aa4, 0x3846, 0x3af9, 0x38a9, 0x2c1f, 0x39ab, 0x349f, 0x31d6, 0x39ae, 0x3b79, 0x352d, 0x3516, 0x347c, 0x2f33, 0x35ad, 0x31c4, 0x3b52, 0x354b, 0x3786, 0x3ab7, 0x3896, 0x34ac, 0x352f, 0x37e6, 0x326a, +0x2e44, 0x34c7, 0x388d, 0x3bf4, 0x363f, 0x3b3d, 0x33b1, 0x3b8b, 0x3340, 0x37f7, 0x3b07, 0x25bf, 0x398e, 0x3505, 0x3bd7, 0x366d, 0x388a, 0x2cc0, 0x359a, 0x3b9a, 0x3b99, 0x379d, 0x3b6b, 0x39b8, 0x3223, 0x2703, 0x3ba9, 0x2ecb, 0x3759, 0x39d8, 0x37ac, 0x32cf, +0x35f2, 0x38a3, 0x399e, 0x3bd2, 0x3780, 0x3af3, 0x3b5e, 0x337b, 0x3a08, 0x35da, 0x3446, 0x3b25, 0x3ad0, 0x3bee, 0x3141, 0x32d8, 0x34ce, 0x2ac9, 0x3800, 0x3a8a, 0x2d53, 0x368a, 0x3561, 0x3998, 0x35a3, 0x3677, 0x3ab2, 0x3269, 0x3236, 0x3b3e, 0x3aba, 0x3bac, +0x395d, 0x3820, 0x1df6, 0x3bb5, 0x35b5, 0x3675, 0x3b74, 0x360f, 0x34de, 0x3a0c, 0x3aeb, 0x299d, 0x3207, 0x3bd8, 0x2178, 0x3995, 0x3948, 0x3908, 0x3843, 0x2ea5, 0x3045, 0x3989, 0x345d, 0x39c5, 0x3a89, 0x3863, 0x3be0, 0x397a, 0x38f1, 0x39e2, 0x3b08, 0x352e, +0x385f, 0x28f2, 0x3bc3, 0x35e0, 0x380c, 0x3b9c, 0x3afc, 0x390a, 0x3689, 0x34fd, 0x2cf5, 0x308e, 0x342b, 0x3921, 0x3a67, 0x3ad6, 0x2986, 0x32fc, 0x35aa, 0x3507, 0x3608, 0x33fd, 0x3bf3, 0x39e2, 0x3b0f, 0x30b7, 0x3896, 0x3ae4, 0x2145, 0x35b6, 0x2e1d, 0x3ad1, +0x333d, 0x3afb, 0x2703, 0x3413, 0x1d7d, 0x3b7f, 0x3ae1, 0x303c, 0x3004, 0x39d3, 0x3554, 0x31a4, 0x354e, 0x3662, 0x39c5, 0x2eb7, 0x2c6e, 0x397f, 0x31d8, 0x1f0c, 0x38e3, 0x35f0, 0x2714, 0x28d1, 0x375e, 0x3a75, 0x3830, 0x3578, 0x397d, 0x3b18, 0x383c, 0x3498, +0x39ad, 0x3598, 0x23c4, 0x34ea, 0x3a61, 0x2b00, 0x3707, 0x3ae1, 0x37ae, 0x389d, 0x37fa, 0x3673, 0x3278, 0xf3e, 0x3809, 0x33c6, 0x3bf5, 0x3279, 0x3816, 0x360c, 0x39c8, 0x381f, 0x3741, 0x2d66, 0x38c0, 0x37d3, 0x377a, 0x3621, 0x2faf, 0x392e, 0x2de6, 0x33c5, +0x3803, 0x2600, 0x32e9, 0x39b4, 0x38d2, 0x34e8, 0x2fe6, 0x3199, 0x3643, 0x3a77, 0x27cc, 0x39d7, 0x34c6, 0x2ea8, 0x364e, 0x3b07, 0x31c7, 0x30a1, 0x31b1, 0x3b8f, 0x3571, 0x3b75, 0x3989, 0x3805, 0x39fb, 0x3945, 0x352b, 0x31d8, 0x3904, 0x3440, 0x3a57, 0x2cf7, +0x3b39, 0x2fcd, 0x2b89, 0x2edd, 0x3682, 0x36a9, 0x32c8, 0x37ac, 0x32a5, 0x3311, 0x394b, 0x3b84, 0x3aec, 0x3601, 0x2765, 0x3b69, 0x396b, 0x3727, 0x3bfe, 0x3907, 0x376f, 0x3674, 0x3973, 0x3671, 0x3491, 0x3993, 0x383f, 0x3335, 0x3989, 0x3550, 0x3077, 0x35f5, +0x3a59, 0x3950, 0x380c, 0x37cd, 0x30bf, 0x3607, 0x3afa, 0x3b5d, 0x32b9, 0x386b, 0x35bd, 0x3aca, 0x3ba5, 0x3b2d, 0x3b19, 0x3b8b, 0x345e, 0x2845, 0x34aa, 0x372a, 0x3448, 0x34f5, 0x3ae2, 0x3637, 0x2cb5, 0x354b, 0x3b15, 0x2ca8, 0x2641, 0x3178, 0x2cfe, 0x39b4, +0x3bdd, 0x3acb, 0x3a05, 0x38a2, 0x3b4a, 0x34e5, 0x395f, 0x394b, 0x34c4, 0x3aa5, 0x29bb, 0x2d96, 0x339d, 0x387c, 0x382e, 0x385a, 0x396b, 0x3aa9, 0x2f1e, 0x33a7, 0x3b90, 0x3b7b, 0x3b5f, 0x39d3, 0x3b18, 0x354f, 0x2cdb, 0x3a6f, 0x3434, 0x34ff, 0x3a5b, 0x3b84, +0x3a33, 0x384b, 0x2e67, 0x3b85, 0x3853, 0x380c, 0x346a, 0x3aaa, 0x3492, 0x33e8, 0x3bf2, 0x38ae, 0x3a29, 0x3830, 0x3221, 0x35b1, 0x3a48, 0x2c68, 0x2ced, 0x3a7e, 0x3539, 0x3922, 0x374c, 0x3aaa, 0x2dae, 0x395d, 0x3b3d, 0x3890, 0x2cfe, 0x2dd6, 0x3bad, 0x33c5, +0x2c07, 0x3a2c, 0x37a8, 0x390f, 0x2fc8, 0x35ae, 0x388c, 0x30ee, 0x3674, 0x391d, 0x3bfc, 0x36bf, 0x322d, 0x3a78, 0x35c0, 0x3492, 0x3ac8, 0x3504, 0x3315, 0x381d, 0x3a7a, 0x3a08, 0x343c, 0x3bda, 0x341b, 0x39f0, 0x3b9e, 0x395d, 0x3c00, 0x38ab, 0x3bcf, 0x3564, +0x33c4, 0x3b0d, 0x3623, 0x33b9, 0x3b92, 0x1e71, 0x2c57, 0x36d0, 0x314b, 0x3a16, 0x3372, 0x341b, 0x3aaa, 0x3444, 0x396b, 0x2dd7, 0x3b30, 0x3559, 0x3b5b, 0x3a29, 0x2d19, 0x38b7, 0x3b01, 0x3afa, 0x398a, 0x3839, 0x3ac9, 0x2e31, 0x3924, 0x39f2, 0x3a7f, 0x3285 +}; \ No newline at end of file diff --git a/carfield/redmule/inc/x_2D.h b/carfield/redmule/inc/x_2D.h new file mode 100644 index 0000000..0b589f8 --- /dev/null +++ b/carfield/redmule/inc/x_2D.h @@ -0,0 +1,27 @@ + /* Header file generated by RedMulE Golden Model */ +uint16_t x_inp_2D [24][32] = { +0x2153, 0x3bb5, 0x3896, 0x365f, 0x2483, 0x3518, 0x2dd1, 0x3bca, 0x397b, 0x29b1, 0x3705, 0x36c8, 0x398b, 0x3661, 0x2f05, 0x365a, 0x3bf9, 0x34df, 0x363b, 0x38d9, 0x39c6, 0x3abb, 0x3952, 0x38f2, 0x392d, 0x3b3e, 0x2afb, 0x3a9d, 0x353b, 0x3b73, 0x3a01, 0x3679, +0x3934, 0x397d, 0x2904, 0x3822, 0x3462, 0x3b44, 0x39e9, 0x28be, 0x331e, 0x3a1d, 0x39e5, 0x34da, 0x3a19, 0x3906, 0x1d35, 0x3871, 0x31e7, 0x3b29, 0x325d, 0x3797, 0x2b2f, 0x38b4, 0x232f, 0x38aa, 0x3aca, 0x316f, 0x3811, 0x3950, 0x32ea, 0x3bc7, 0x382c, 0x38a2, +0x29ce, 0x3afa, 0x3a39, 0x2ccc, 0x39fd, 0x3b3d, 0x384a, 0x3a35, 0x3802, 0x366a, 0x37ec, 0x3598, 0x3bf8, 0x3a85, 0x3a1b, 0x386e, 0x3b4c, 0x39de, 0x38c2, 0x2f93, 0x3b4c, 0x39c4, 0x3b9e, 0x3844, 0x346d, 0x3bff, 0x32ce, 0x296d, 0x3130, 0x3b3d, 0x3b44, 0x369d, +0x3b13, 0x31ed, 0x330a, 0x3831, 0x34e7, 0x37b3, 0x331a, 0x3918, 0x32d3, 0x3995, 0x3991, 0x3919, 0x3a26, 0x385b, 0x2b76, 0x3a3b, 0x37f2, 0x26a7, 0x3225, 0x3b64, 0x28f0, 0x3456, 0x3822, 0x341e, 0x381a, 0x38d8, 0x2c11, 0x33be, 0x33ac, 0x353f, 0x3476, 0x3abc, +0x36ec, 0x3a1d, 0x39d3, 0x3821, 0x36ac, 0x3bce, 0x3ad2, 0x3616, 0x36a1, 0x2cb3, 0x38d2, 0x314f, 0x385c, 0x3b63, 0x3bb6, 0x2951, 0x372d, 0x2c42, 0x3823, 0x3883, 0x3872, 0x31ee, 0x36c5, 0x399a, 0x31b0, 0x3887, 0x3884, 0x3865, 0x3896, 0x36c3, 0x32e3, 0x346c, +0x3935, 0x3b50, 0x2b6d, 0x38cd, 0x388f, 0x3389, 0x395d, 0x31cd, 0x2efd, 0x3154, 0x2f35, 0x3444, 0x3293, 0x3b6b, 0x1bec, 0x3b69, 0x3bf3, 0x3611, 0x3508, 0x3742, 0x3a50, 0x3ab7, 0x3457, 0x38d3, 0x3344, 0x38e8, 0x33c0, 0x3668, 0x3bee, 0x3b21, 0x3727, 0x3121, +0x316c, 0x3288, 0x2d50, 0x2e74, 0x35d5, 0x37e2, 0x303d, 0x36af, 0x341f, 0x3436, 0x2df7, 0x399d, 0x30f4, 0x3aaf, 0x34e4, 0x2c2a, 0x3116, 0x34d3, 0x36ac, 0x35e3, 0x3760, 0x36e1, 0x3ad2, 0x3547, 0x38f4, 0x369c, 0x3ba9, 0x34f0, 0x3a39, 0x3b19, 0x36e6, 0x395d, +0x3be8, 0x3293, 0x3bfc, 0x3435, 0x2eb3, 0x3360, 0x3919, 0x3bed, 0x396a, 0x37fc, 0x3242, 0x384b, 0x38cb, 0x3b2c, 0x3b28, 0x28cf, 0x3828, 0x3855, 0x3ba9, 0x2fa7, 0x340b, 0x32f1, 0x3ada, 0x36fa, 0x31f5, 0x3436, 0x29d0, 0x33e6, 0x3232, 0x3bec, 0x3904, 0x2797, +0x3b81, 0x3bac, 0x38d2, 0x343d, 0x31af, 0x3b1e, 0x33fc, 0x3864, 0x3624, 0x3905, 0x2945, 0x3b52, 0x2d08, 0x3a17, 0x3b84, 0x3804, 0x3a24, 0x38a3, 0x3562, 0x3ae6, 0x3bba, 0x3a45, 0x3679, 0x31fa, 0x3994, 0x2c3d, 0x383f, 0x399d, 0x34f7, 0x360e, 0x35f3, 0x38f0, +0x38d4, 0x399a, 0x3a48, 0x3987, 0x3b54, 0x382c, 0x3210, 0x35ef, 0x36ca, 0x31b4, 0x3625, 0x371f, 0x37bd, 0x3680, 0x3a3a, 0x3ac0, 0x3bbf, 0x3bf5, 0x39f2, 0x29c2, 0x363e, 0x3a4e, 0x3596, 0x3b1b, 0x3459, 0x3669, 0x3aa1, 0x39c3, 0x3376, 0x390d, 0x2456, 0x39b5, +0x3a66, 0x3ad8, 0x3b51, 0x36aa, 0x32be, 0x3ac8, 0x392b, 0x3740, 0x3a48, 0x38f5, 0x3b2d, 0x3a5f, 0x2ff3, 0x366f, 0x39d3, 0x35e5, 0x3822, 0x38db, 0x3b8a, 0x34be, 0x2d33, 0x36dd, 0x3578, 0x3bdf, 0x2c7e, 0x39cf, 0x32ff, 0x35c9, 0x3970, 0x3bcb, 0x351e, 0x3956, +0x2c42, 0x3308, 0x377a, 0x361c, 0x39a0, 0x36c9, 0x2dcb, 0x3bf2, 0x3b5f, 0x33ee, 0x24c1, 0x2ce9, 0x3927, 0x305d, 0x3702, 0x3119, 0x35f9, 0x3855, 0x3374, 0x349b, 0x3bcf, 0x2dea, 0x34f0, 0x363f, 0x37da, 0x3a74, 0x35fc, 0x35fa, 0x316b, 0x3804, 0x37a7, 0x3986, +0x3073, 0x3aed, 0x31c7, 0x3844, 0x34a4, 0x387d, 0x3a20, 0x3037, 0x3a00, 0x3b70, 0x377f, 0x3686, 0x3b7e, 0x38b3, 0x32e3, 0x3323, 0x391e, 0x3228, 0x3930, 0x3997, 0x3a5e, 0x398b, 0x3512, 0x35b0, 0x365c, 0x325d, 0x3b61, 0x38b8, 0x39a4, 0x3423, 0x3bd7, 0x38af, +0x2d3d, 0x382d, 0x38ac, 0x26ca, 0x395e, 0x21a8, 0x3520, 0x386f, 0x3b95, 0x32c0, 0x3b84, 0x3a51, 0x3b4b, 0x31d2, 0x3747, 0x3b96, 0x3b40, 0x3535, 0x38d1, 0x3899, 0x3b00, 0x3827, 0x3ae3, 0x38c8, 0x3a07, 0x338d, 0x2e96, 0x3a46, 0x394a, 0x39de, 0x2951, 0x3a02, +0x3838, 0x2d45, 0x28c0, 0x3958, 0x3070, 0x2aa2, 0x3510, 0x38ce, 0x271c, 0x3440, 0x3954, 0x30bc, 0x3b35, 0x2f1d, 0x3afb, 0x2dae, 0x356f, 0x2e13, 0x3981, 0x326d, 0x3a28, 0x3a36, 0x3a95, 0x38cb, 0x38db, 0x3150, 0x2c9e, 0x34c5, 0x3adb, 0x3bdf, 0x38f2, 0x3994, +0x36f8, 0x31c0, 0x3a4f, 0x3825, 0x394b, 0x3a8b, 0x38ac, 0x3167, 0x2e2d, 0x3a93, 0x34f3, 0x37bd, 0x3b63, 0x2f2f, 0x3ae0, 0x3ad8, 0x34a8, 0x2e1c, 0x3890, 0x3705, 0x3b69, 0x3bc1, 0x28af, 0x3b36, 0x348b, 0x3111, 0x3a8d, 0x389c, 0x3916, 0x36dc, 0x3bae, 0x3874, +0x3593, 0x3638, 0x3018, 0x3a56, 0x38a3, 0x2ad4, 0x3a25, 0x38d7, 0x3864, 0x31c1, 0x28d1, 0x39c8, 0x37d6, 0x2c7f, 0x3ba5, 0x34b8, 0x3bef, 0x3b83, 0x3ab5, 0x3062, 0x38bc, 0x399c, 0x2ce4, 0x2f2c, 0x39bf, 0x2ed1, 0x385f, 0x37e0, 0x35ee, 0x397d, 0x3b0c, 0x3049, +0x39d5, 0x322e, 0x3936, 0x3747, 0x2e15, 0x3b41, 0x3874, 0x3bd0, 0x2c04, 0x3800, 0x375b, 0x3b2d, 0x38d8, 0x3a51, 0x3406, 0x38da, 0x38ba, 0x3497, 0x382e, 0x35fc, 0x39d4, 0x3775, 0x3b1e, 0x3813, 0x3649, 0x31af, 0x37bb, 0x334a, 0x3a6e, 0x3284, 0x26e0, 0x2e01, +0x2ebb, 0x344b, 0x3821, 0x381a, 0x385a, 0x2534, 0x3635, 0x2a92, 0x3b8c, 0x31f0, 0x3947, 0x3ac7, 0x3743, 0x3924, 0x39e4, 0x358f, 0x2b62, 0x392c, 0x3955, 0x3341, 0x3676, 0x38ac, 0x3957, 0x335b, 0x2ca2, 0x39ff, 0x37cb, 0x341f, 0x3ac9, 0x3b6c, 0x2f14, 0x34c3, +0x3018, 0x3169, 0x355b, 0x3624, 0x31ed, 0x379e, 0x3268, 0x309b, 0x35db, 0x3872, 0x3bdb, 0x34c7, 0x3408, 0x3359, 0x3920, 0x331f, 0x3866, 0x3af0, 0x2a1a, 0x39e0, 0x3b14, 0x34fa, 0x2d18, 0x3963, 0x35e8, 0x2539, 0x38f5, 0x37b3, 0x378f, 0x31b5, 0x3a6c, 0x3685, +0x3a06, 0x318a, 0x2934, 0x33c1, 0x3be8, 0x375b, 0x3860, 0x3543, 0x3702, 0x3951, 0x3677, 0x37ff, 0x2e27, 0x2e3a, 0x340f, 0x3817, 0x2f04, 0x357e, 0x3a1d, 0x2dd6, 0x252a, 0x3945, 0x162a, 0x3b19, 0x3a53, 0x35d2, 0x3a5d, 0x3474, 0x38e9, 0x374b, 0x387c, 0x1f1a, +0x38ac, 0x3291, 0x3393, 0x3b53, 0x3169, 0x3bca, 0x2f1a, 0x3551, 0x38a3, 0x28e3, 0x369d, 0x34a1, 0x38a8, 0x34c3, 0x3841, 0x390d, 0x3b13, 0x3282, 0x3a29, 0x3a78, 0x2df3, 0x3a37, 0x35f4, 0x35a6, 0x38e8, 0x3328, 0x3beb, 0x390b, 0x32dc, 0x34dc, 0x396d, 0x3a78, +0x39ba, 0x3a06, 0x2cdd, 0x3bc3, 0x2d43, 0x2992, 0x3663, 0x3a68, 0x2c3e, 0x394e, 0x2c9f, 0x380e, 0x37f5, 0x3557, 0x2873, 0x390f, 0x39e7, 0x3939, 0x3669, 0x385c, 0x3a68, 0x32c4, 0x2b04, 0x2d6d, 0x39d3, 0x3895, 0x331d, 0x3b59, 0x3463, 0x2b6a, 0x31de, 0x3296, +0x3aae, 0x3bcd, 0x345a, 0x3897, 0x374b, 0x3bd4, 0x38a2, 0x357f, 0x3402, 0x3a0c, 0x3507, 0x3865, 0x3a54, 0x3878, 0x3859, 0x383e, 0x32b5, 0x34ea, 0x328d, 0x38b6, 0x3464, 0x2f5b, 0x35ff, 0x3817, 0x2f24, 0x3533, 0x3b21, 0x37ba, 0x3837, 0x2e34, 0x3bad, 0x34bc +}; \ No newline at end of file diff --git a/carfield/redmule/inc/x_input.h b/carfield/redmule/inc/x_input.h new file mode 100644 index 0000000..1e38d23 --- /dev/null +++ b/carfield/redmule/inc/x_input.h @@ -0,0 +1,27 @@ + /* Header file generated by RedMulE Golden Model */ +uint16_t x_inp [768] = { +0x2153, 0x3bb5, 0x3896, 0x365f, 0x2483, 0x3518, 0x2dd1, 0x3bca, 0x397b, 0x29b1, 0x3705, 0x36c8, 0x398b, 0x3661, 0x2f05, 0x365a, 0x3bf9, 0x34df, 0x363b, 0x38d9, 0x39c6, 0x3abb, 0x3952, 0x38f2, 0x392d, 0x3b3e, 0x2afb, 0x3a9d, 0x353b, 0x3b73, 0x3a01, 0x3679, +0x3934, 0x397d, 0x2904, 0x3822, 0x3462, 0x3b44, 0x39e9, 0x28be, 0x331e, 0x3a1d, 0x39e5, 0x34da, 0x3a19, 0x3906, 0x1d35, 0x3871, 0x31e7, 0x3b29, 0x325d, 0x3797, 0x2b2f, 0x38b4, 0x232f, 0x38aa, 0x3aca, 0x316f, 0x3811, 0x3950, 0x32ea, 0x3bc7, 0x382c, 0x38a2, +0x29ce, 0x3afa, 0x3a39, 0x2ccc, 0x39fd, 0x3b3d, 0x384a, 0x3a35, 0x3802, 0x366a, 0x37ec, 0x3598, 0x3bf8, 0x3a85, 0x3a1b, 0x386e, 0x3b4c, 0x39de, 0x38c2, 0x2f93, 0x3b4c, 0x39c4, 0x3b9e, 0x3844, 0x346d, 0x3bff, 0x32ce, 0x296d, 0x3130, 0x3b3d, 0x3b44, 0x369d, +0x3b13, 0x31ed, 0x330a, 0x3831, 0x34e7, 0x37b3, 0x331a, 0x3918, 0x32d3, 0x3995, 0x3991, 0x3919, 0x3a26, 0x385b, 0x2b76, 0x3a3b, 0x37f2, 0x26a7, 0x3225, 0x3b64, 0x28f0, 0x3456, 0x3822, 0x341e, 0x381a, 0x38d8, 0x2c11, 0x33be, 0x33ac, 0x353f, 0x3476, 0x3abc, +0x36ec, 0x3a1d, 0x39d3, 0x3821, 0x36ac, 0x3bce, 0x3ad2, 0x3616, 0x36a1, 0x2cb3, 0x38d2, 0x314f, 0x385c, 0x3b63, 0x3bb6, 0x2951, 0x372d, 0x2c42, 0x3823, 0x3883, 0x3872, 0x31ee, 0x36c5, 0x399a, 0x31b0, 0x3887, 0x3884, 0x3865, 0x3896, 0x36c3, 0x32e3, 0x346c, +0x3935, 0x3b50, 0x2b6d, 0x38cd, 0x388f, 0x3389, 0x395d, 0x31cd, 0x2efd, 0x3154, 0x2f35, 0x3444, 0x3293, 0x3b6b, 0x1bec, 0x3b69, 0x3bf3, 0x3611, 0x3508, 0x3742, 0x3a50, 0x3ab7, 0x3457, 0x38d3, 0x3344, 0x38e8, 0x33c0, 0x3668, 0x3bee, 0x3b21, 0x3727, 0x3121, +0x316c, 0x3288, 0x2d50, 0x2e74, 0x35d5, 0x37e2, 0x303d, 0x36af, 0x341f, 0x3436, 0x2df7, 0x399d, 0x30f4, 0x3aaf, 0x34e4, 0x2c2a, 0x3116, 0x34d3, 0x36ac, 0x35e3, 0x3760, 0x36e1, 0x3ad2, 0x3547, 0x38f4, 0x369c, 0x3ba9, 0x34f0, 0x3a39, 0x3b19, 0x36e6, 0x395d, +0x3be8, 0x3293, 0x3bfc, 0x3435, 0x2eb3, 0x3360, 0x3919, 0x3bed, 0x396a, 0x37fc, 0x3242, 0x384b, 0x38cb, 0x3b2c, 0x3b28, 0x28cf, 0x3828, 0x3855, 0x3ba9, 0x2fa7, 0x340b, 0x32f1, 0x3ada, 0x36fa, 0x31f5, 0x3436, 0x29d0, 0x33e6, 0x3232, 0x3bec, 0x3904, 0x2797, +0x3b81, 0x3bac, 0x38d2, 0x343d, 0x31af, 0x3b1e, 0x33fc, 0x3864, 0x3624, 0x3905, 0x2945, 0x3b52, 0x2d08, 0x3a17, 0x3b84, 0x3804, 0x3a24, 0x38a3, 0x3562, 0x3ae6, 0x3bba, 0x3a45, 0x3679, 0x31fa, 0x3994, 0x2c3d, 0x383f, 0x399d, 0x34f7, 0x360e, 0x35f3, 0x38f0, +0x38d4, 0x399a, 0x3a48, 0x3987, 0x3b54, 0x382c, 0x3210, 0x35ef, 0x36ca, 0x31b4, 0x3625, 0x371f, 0x37bd, 0x3680, 0x3a3a, 0x3ac0, 0x3bbf, 0x3bf5, 0x39f2, 0x29c2, 0x363e, 0x3a4e, 0x3596, 0x3b1b, 0x3459, 0x3669, 0x3aa1, 0x39c3, 0x3376, 0x390d, 0x2456, 0x39b5, +0x3a66, 0x3ad8, 0x3b51, 0x36aa, 0x32be, 0x3ac8, 0x392b, 0x3740, 0x3a48, 0x38f5, 0x3b2d, 0x3a5f, 0x2ff3, 0x366f, 0x39d3, 0x35e5, 0x3822, 0x38db, 0x3b8a, 0x34be, 0x2d33, 0x36dd, 0x3578, 0x3bdf, 0x2c7e, 0x39cf, 0x32ff, 0x35c9, 0x3970, 0x3bcb, 0x351e, 0x3956, +0x2c42, 0x3308, 0x377a, 0x361c, 0x39a0, 0x36c9, 0x2dcb, 0x3bf2, 0x3b5f, 0x33ee, 0x24c1, 0x2ce9, 0x3927, 0x305d, 0x3702, 0x3119, 0x35f9, 0x3855, 0x3374, 0x349b, 0x3bcf, 0x2dea, 0x34f0, 0x363f, 0x37da, 0x3a74, 0x35fc, 0x35fa, 0x316b, 0x3804, 0x37a7, 0x3986, +0x3073, 0x3aed, 0x31c7, 0x3844, 0x34a4, 0x387d, 0x3a20, 0x3037, 0x3a00, 0x3b70, 0x377f, 0x3686, 0x3b7e, 0x38b3, 0x32e3, 0x3323, 0x391e, 0x3228, 0x3930, 0x3997, 0x3a5e, 0x398b, 0x3512, 0x35b0, 0x365c, 0x325d, 0x3b61, 0x38b8, 0x39a4, 0x3423, 0x3bd7, 0x38af, +0x2d3d, 0x382d, 0x38ac, 0x26ca, 0x395e, 0x21a8, 0x3520, 0x386f, 0x3b95, 0x32c0, 0x3b84, 0x3a51, 0x3b4b, 0x31d2, 0x3747, 0x3b96, 0x3b40, 0x3535, 0x38d1, 0x3899, 0x3b00, 0x3827, 0x3ae3, 0x38c8, 0x3a07, 0x338d, 0x2e96, 0x3a46, 0x394a, 0x39de, 0x2951, 0x3a02, +0x3838, 0x2d45, 0x28c0, 0x3958, 0x3070, 0x2aa2, 0x3510, 0x38ce, 0x271c, 0x3440, 0x3954, 0x30bc, 0x3b35, 0x2f1d, 0x3afb, 0x2dae, 0x356f, 0x2e13, 0x3981, 0x326d, 0x3a28, 0x3a36, 0x3a95, 0x38cb, 0x38db, 0x3150, 0x2c9e, 0x34c5, 0x3adb, 0x3bdf, 0x38f2, 0x3994, +0x36f8, 0x31c0, 0x3a4f, 0x3825, 0x394b, 0x3a8b, 0x38ac, 0x3167, 0x2e2d, 0x3a93, 0x34f3, 0x37bd, 0x3b63, 0x2f2f, 0x3ae0, 0x3ad8, 0x34a8, 0x2e1c, 0x3890, 0x3705, 0x3b69, 0x3bc1, 0x28af, 0x3b36, 0x348b, 0x3111, 0x3a8d, 0x389c, 0x3916, 0x36dc, 0x3bae, 0x3874, +0x3593, 0x3638, 0x3018, 0x3a56, 0x38a3, 0x2ad4, 0x3a25, 0x38d7, 0x3864, 0x31c1, 0x28d1, 0x39c8, 0x37d6, 0x2c7f, 0x3ba5, 0x34b8, 0x3bef, 0x3b83, 0x3ab5, 0x3062, 0x38bc, 0x399c, 0x2ce4, 0x2f2c, 0x39bf, 0x2ed1, 0x385f, 0x37e0, 0x35ee, 0x397d, 0x3b0c, 0x3049, +0x39d5, 0x322e, 0x3936, 0x3747, 0x2e15, 0x3b41, 0x3874, 0x3bd0, 0x2c04, 0x3800, 0x375b, 0x3b2d, 0x38d8, 0x3a51, 0x3406, 0x38da, 0x38ba, 0x3497, 0x382e, 0x35fc, 0x39d4, 0x3775, 0x3b1e, 0x3813, 0x3649, 0x31af, 0x37bb, 0x334a, 0x3a6e, 0x3284, 0x26e0, 0x2e01, +0x2ebb, 0x344b, 0x3821, 0x381a, 0x385a, 0x2534, 0x3635, 0x2a92, 0x3b8c, 0x31f0, 0x3947, 0x3ac7, 0x3743, 0x3924, 0x39e4, 0x358f, 0x2b62, 0x392c, 0x3955, 0x3341, 0x3676, 0x38ac, 0x3957, 0x335b, 0x2ca2, 0x39ff, 0x37cb, 0x341f, 0x3ac9, 0x3b6c, 0x2f14, 0x34c3, +0x3018, 0x3169, 0x355b, 0x3624, 0x31ed, 0x379e, 0x3268, 0x309b, 0x35db, 0x3872, 0x3bdb, 0x34c7, 0x3408, 0x3359, 0x3920, 0x331f, 0x3866, 0x3af0, 0x2a1a, 0x39e0, 0x3b14, 0x34fa, 0x2d18, 0x3963, 0x35e8, 0x2539, 0x38f5, 0x37b3, 0x378f, 0x31b5, 0x3a6c, 0x3685, +0x3a06, 0x318a, 0x2934, 0x33c1, 0x3be8, 0x375b, 0x3860, 0x3543, 0x3702, 0x3951, 0x3677, 0x37ff, 0x2e27, 0x2e3a, 0x340f, 0x3817, 0x2f04, 0x357e, 0x3a1d, 0x2dd6, 0x252a, 0x3945, 0x162a, 0x3b19, 0x3a53, 0x35d2, 0x3a5d, 0x3474, 0x38e9, 0x374b, 0x387c, 0x1f1a, +0x38ac, 0x3291, 0x3393, 0x3b53, 0x3169, 0x3bca, 0x2f1a, 0x3551, 0x38a3, 0x28e3, 0x369d, 0x34a1, 0x38a8, 0x34c3, 0x3841, 0x390d, 0x3b13, 0x3282, 0x3a29, 0x3a78, 0x2df3, 0x3a37, 0x35f4, 0x35a6, 0x38e8, 0x3328, 0x3beb, 0x390b, 0x32dc, 0x34dc, 0x396d, 0x3a78, +0x39ba, 0x3a06, 0x2cdd, 0x3bc3, 0x2d43, 0x2992, 0x3663, 0x3a68, 0x2c3e, 0x394e, 0x2c9f, 0x380e, 0x37f5, 0x3557, 0x2873, 0x390f, 0x39e7, 0x3939, 0x3669, 0x385c, 0x3a68, 0x32c4, 0x2b04, 0x2d6d, 0x39d3, 0x3895, 0x331d, 0x3b59, 0x3463, 0x2b6a, 0x31de, 0x3296, +0x3aae, 0x3bcd, 0x345a, 0x3897, 0x374b, 0x3bd4, 0x38a2, 0x357f, 0x3402, 0x3a0c, 0x3507, 0x3865, 0x3a54, 0x3878, 0x3859, 0x383e, 0x32b5, 0x34ea, 0x328d, 0x38b6, 0x3464, 0x2f5b, 0x35ff, 0x3817, 0x2f24, 0x3533, 0x3b21, 0x37ba, 0x3837, 0x2e34, 0x3bad, 0x34bc +}; \ No newline at end of file diff --git a/carfield/redmule/inc/y_2D.h b/carfield/redmule/inc/y_2D.h new file mode 100644 index 0000000..9484a10 --- /dev/null +++ b/carfield/redmule/inc/y_2D.h @@ -0,0 +1,27 @@ + /* Header file generated by RedMulE Golden Model */ +uint16_t y_inp_2D [32][32] = { +0x3150, 0x2dc1, 0x3033, 0x31f5, 0x3bb6, 0x3bff, 0x39f9, 0x3662, 0x3720, 0x351d, 0x384b, 0x3093, 0x3b9d, 0x35ad, 0x3695, 0x3466, 0x2300, 0x3445, 0x33ae, 0x3586, 0x38a3, 0x3bdb, 0x33a2, 0x379b, 0x3a0e, 0x38b0, 0x39ba, 0x379b, 0x39d3, 0x3a51, 0x3b30, 0x3794, +0x3b76, 0x3042, 0x38cc, 0x2dfc, 0x3b1a, 0x37fb, 0x38f7, 0x3824, 0x386f, 0x38c7, 0x36ee, 0x3a9c, 0x38d3, 0x2c67, 0x3a80, 0x2f30, 0x3328, 0x3721, 0x3790, 0x34e5, 0x3a6c, 0x3643, 0x3934, 0x3034, 0x38d4, 0x362e, 0x3b4b, 0x3408, 0x30c2, 0x370e, 0x3b31, 0x3b16, +0x3b6b, 0x39d4, 0x339c, 0x381e, 0x313e, 0x3671, 0x3ae2, 0x3479, 0x3940, 0x342d, 0x3925, 0x370a, 0x35d8, 0x2dad, 0x3888, 0x24b9, 0x375d, 0x34bd, 0x3243, 0x2ebb, 0x3970, 0x3a21, 0x3a07, 0x3877, 0x3888, 0x3569, 0x372d, 0x2ac1, 0x331e, 0x384d, 0x3996, 0x34a4, +0x35c1, 0x33a9, 0x21ed, 0x3a42, 0x388d, 0x34e4, 0x33c3, 0x34f9, 0x3a7b, 0x33fb, 0x2cdd, 0x3b0e, 0x333b, 0x3973, 0x34fc, 0x3771, 0x32ea, 0x2de4, 0x31a8, 0x3946, 0x3657, 0x3a4e, 0x36f6, 0x2829, 0x3ba2, 0x3bdc, 0x3bb3, 0x306c, 0x398d, 0x3a1f, 0x3991, 0x3846, +0x3547, 0x3292, 0x2e85, 0x31ed, 0x3979, 0x3a90, 0x28a4, 0x3bed, 0x36d8, 0x340e, 0x3b6a, 0x3ab6, 0x3824, 0x382b, 0x3ac3, 0x3811, 0x36d7, 0x3519, 0x3a92, 0x3a42, 0x29d1, 0x383a, 0x3a9b, 0x300e, 0x2cd3, 0x39cd, 0x3874, 0x3a07, 0x2eb1, 0x3b86, 0x3ad8, 0x3a5d, +0x3712, 0x284a, 0x38c1, 0x3bec, 0x39c0, 0x32cd, 0x3ad8, 0x3bce, 0x3817, 0x3896, 0x3aa7, 0x3870, 0x3996, 0x32cc, 0x3a4c, 0x3757, 0x3814, 0x3b65, 0x3acb, 0x376e, 0x34c0, 0x3609, 0x3bf0, 0x3b24, 0x3b29, 0x3848, 0x34b7, 0x398a, 0x220c, 0x3498, 0x3a8c, 0x3883, +0x38c4, 0x3af6, 0x3a42, 0x2dd6, 0x3147, 0x3717, 0x3a8e, 0x3af9, 0x3296, 0x38ef, 0x34fa, 0x3555, 0x3b29, 0x38de, 0x315e, 0x3773, 0x3b67, 0x3116, 0x38ec, 0x357c, 0x35d0, 0x2518, 0x3958, 0x2a03, 0x37d9, 0x3699, 0x3a1e, 0x3230, 0x3b13, 0x36d4, 0x3b2a, 0x39ad, +0x3b10, 0x351a, 0x3b97, 0x3326, 0x2b54, 0x3b7d, 0x386f, 0x373e, 0x37fa, 0x389b, 0x3b90, 0x3292, 0x3975, 0x38f3, 0x37f1, 0x3590, 0x3810, 0x2fd7, 0x3bf7, 0x3a5a, 0x3a1c, 0x34dd, 0x354c, 0x32f8, 0x3095, 0x321e, 0x39e0, 0x395c, 0x3717, 0x357f, 0x394a, 0x34b1, +0x3ba4, 0x380c, 0x3604, 0x2f50, 0x348d, 0x3828, 0x3a9f, 0x39ce, 0x32ca, 0x3906, 0x3ab2, 0x2ca5, 0x38c9, 0x362a, 0x34b2, 0x29dc, 0x3a36, 0x3052, 0x31b7, 0x3589, 0x387c, 0x3401, 0x3b22, 0x3ad6, 0x3ae8, 0x3238, 0x3494, 0x3502, 0x3717, 0x3a6c, 0x3229, 0x368c, +0x3056, 0x3a56, 0x3498, 0x39eb, 0x2864, 0x342d, 0x39e0, 0x34a1, 0x2b99, 0x3a04, 0x38ff, 0x328c, 0x34d9, 0x387d, 0x3a3c, 0x32e5, 0x39eb, 0x3984, 0x34dd, 0x38a7, 0x373f, 0x39b4, 0x3235, 0x2f58, 0x2f39, 0x3800, 0x3758, 0x3939, 0x39fc, 0x3a4b, 0x38bf, 0x30ee, +0x345e, 0x39c8, 0x3a6d, 0x3262, 0x3b81, 0x31dc, 0x3a15, 0x3bd0, 0x36af, 0x36de, 0x37d5, 0x39d7, 0x3ad3, 0x3ac1, 0x3109, 0x35ea, 0x31c6, 0x398d, 0x3987, 0x3a4a, 0x34d2, 0x2ed2, 0x35e6, 0x352c, 0x39eb, 0x3bd6, 0x3a5b, 0x39d1, 0x34aa, 0x3ade, 0x394b, 0x38a1, +0x2bed, 0x38de, 0x3811, 0x3813, 0x391a, 0x374b, 0x3829, 0x3725, 0x38f0, 0x3583, 0x3966, 0x3a7d, 0x375a, 0x38fe, 0x3696, 0x361c, 0x39a8, 0x35f0, 0x38e1, 0x3003, 0x3595, 0x316e, 0x3862, 0x3af8, 0x3af2, 0x34c8, 0x381d, 0x37d8, 0x3893, 0x3a9c, 0x3989, 0x308c, +0x30cc, 0x2538, 0x399d, 0x3919, 0x399e, 0x21cc, 0x38e9, 0x30f8, 0x3a20, 0x3b3c, 0x3990, 0x259c, 0x3143, 0x3080, 0x3967, 0x3afb, 0x3a1b, 0x3779, 0x2eeb, 0x39f3, 0x379a, 0x369c, 0x3985, 0x3a1b, 0x3ba6, 0x3a53, 0x28d5, 0x3881, 0x31d9, 0x3a34, 0x3bd9, 0x393a, +0x3601, 0x2c6e, 0x3636, 0x3298, 0x39bb, 0x3a08, 0x38db, 0x35ad, 0x3a09, 0x36a6, 0x3bc7, 0x3bac, 0x34ae, 0x3291, 0x290b, 0x3250, 0x2648, 0x333d, 0x2bf3, 0x34b1, 0x30e0, 0x351f, 0x3a74, 0x38dc, 0x3883, 0x2841, 0x35e1, 0x390d, 0x3a50, 0x3abd, 0x386d, 0x3bb7, +0x3b94, 0x36b7, 0x3a49, 0x332f, 0x3a1d, 0x354b, 0x3bab, 0x3346, 0x3417, 0x351e, 0x3b6d, 0x391a, 0x2db3, 0x3b1c, 0x3a4a, 0x37b7, 0x36cf, 0x3a56, 0x39c4, 0x3be9, 0x34f0, 0x39be, 0x3691, 0x1ba5, 0x3888, 0x3040, 0x3ae1, 0x3b9b, 0x398f, 0x3a49, 0x3a16, 0x38c0, +0x386c, 0x39ab, 0x37fa, 0x382c, 0x3a6f, 0x393f, 0x340d, 0x38ef, 0x39d1, 0x3845, 0x398f, 0x363e, 0x3687, 0x3052, 0x3a2b, 0x392c, 0x2f5c, 0x3412, 0x3a1f, 0x3b2f, 0x3bcc, 0x3a63, 0x3a89, 0x36e9, 0x3921, 0x3b80, 0x2dc0, 0x3a03, 0x3beb, 0x38d3, 0x36cb, 0x39a3, +0x3978, 0x3a88, 0x3ba4, 0x3561, 0x28c5, 0x33a0, 0x37be, 0x2c39, 0x30ee, 0x3782, 0x2c07, 0x354e, 0x3491, 0x3a92, 0x331a, 0x3b15, 0x32e1, 0x3839, 0x3afb, 0x36c2, 0x2fd0, 0x29ad, 0x3b2e, 0x39c1, 0x2a8c, 0x341a, 0x2f90, 0x395a, 0x3969, 0x37ea, 0x3a5c, 0x3b6d, +0x3971, 0x3a93, 0x304e, 0x3623, 0x3a22, 0x31ee, 0x29df, 0x2c93, 0x3a01, 0x3a62, 0x366c, 0x371d, 0x3af3, 0x2e08, 0x3ac0, 0x3642, 0x3a28, 0x368d, 0x2d3d, 0x36d9, 0x32c3, 0x373f, 0x36fe, 0x3487, 0x2c81, 0x3623, 0x3b59, 0x3a91, 0x350a, 0x34f4, 0x3b09, 0x2c25, +0x3b13, 0x325a, 0x379e, 0x3a7d, 0x34b1, 0x39d5, 0x2ba8, 0x322b, 0x3b5e, 0x37ab, 0x2e24, 0x3ba9, 0x3a3d, 0x34f7, 0x3ba1, 0x3877, 0x3071, 0x39fb, 0x3bbd, 0x3633, 0x3b36, 0x2daa, 0x3b9b, 0x3aa0, 0x395c, 0x3b8f, 0x38d5, 0x3ab0, 0x3a8f, 0x36c2, 0x3b1f, 0x3489, +0x2acc, 0x3845, 0x3715, 0x37d8, 0x3992, 0x3bff, 0x350e, 0x3ad7, 0x39b0, 0x35ac, 0x3287, 0x385f, 0x3bd4, 0x37a3, 0x3438, 0x39a5, 0x3bcf, 0x38c3, 0x34f6, 0x3ae3, 0x3b57, 0x39af, 0x35eb, 0x3bed, 0x34d4, 0x2a95, 0x3b13, 0x384e, 0x3a3b, 0x33da, 0x3bce, 0x3b99, +0x3559, 0x3335, 0x3a2e, 0x3123, 0x38db, 0x33d0, 0x3638, 0x3b17, 0x3a72, 0x3afc, 0x3936, 0x3838, 0x2b69, 0x3895, 0x3a1a, 0x3192, 0x39d5, 0x37a5, 0x2eb0, 0x2e8b, 0x329a, 0x3b90, 0x390a, 0x3a1e, 0x3847, 0x375d, 0x3873, 0x35e2, 0x3771, 0x30f5, 0x3231, 0x3bd7, +0x2bbc, 0x3ace, 0x31ad, 0x3a6b, 0x28a4, 0x3b48, 0x3ba3, 0x3a84, 0x3353, 0x39f6, 0x381f, 0x2dd6, 0x314c, 0x34af, 0x3929, 0x3921, 0x383b, 0x34b0, 0x3923, 0x32c9, 0x3ae7, 0x318f, 0x3480, 0x2ad8, 0x3042, 0x3a4c, 0x349d, 0x2c12, 0x3abb, 0x3a57, 0x3b0d, 0x3111, +0x3359, 0x3a84, 0x38f2, 0x368d, 0x2f4b, 0x3ba0, 0x395c, 0x3026, 0x3a15, 0x2a04, 0x326e, 0x3522, 0x31a2, 0x382f, 0x2ada, 0x3b7c, 0x2f80, 0x3af5, 0x2d35, 0x38fa, 0x39ab, 0x2c6d, 0x2e7a, 0x39f6, 0x31a4, 0x3a53, 0x358c, 0x3951, 0x3a4e, 0x3916, 0x2a3f, 0x3ae9, +0x3b03, 0x39f8, 0x39fe, 0x3a61, 0x39fb, 0x3704, 0x360d, 0x39a7, 0x37a9, 0x348f, 0x3a30, 0x3af5, 0x366f, 0x3b29, 0x3a6a, 0x33d5, 0x370a, 0x39cd, 0x3444, 0x3bea, 0x3b2b, 0x312e, 0x3b8e, 0x32cf, 0x3b79, 0x3302, 0x3bba, 0x3962, 0x3413, 0x37a1, 0x39e0, 0x3805 +}; \ No newline at end of file diff --git a/carfield/redmule/inc/y_input.h b/carfield/redmule/inc/y_input.h new file mode 100644 index 0000000..45a2375 --- /dev/null +++ b/carfield/redmule/inc/y_input.h @@ -0,0 +1,27 @@ + /* Header file generated by RedMulE Golden Model */ +uint16_t y_inp [768] = { +0x3150, 0x2dc1, 0x3033, 0x31f5, 0x3bb6, 0x3bff, 0x39f9, 0x3662, 0x3720, 0x351d, 0x384b, 0x3093, 0x3b9d, 0x35ad, 0x3695, 0x3466, 0x2300, 0x3445, 0x33ae, 0x3586, 0x38a3, 0x3bdb, 0x33a2, 0x379b, 0x3a0e, 0x38b0, 0x39ba, 0x379b, 0x39d3, 0x3a51, 0x3b30, 0x3794, +0x3b76, 0x3042, 0x38cc, 0x2dfc, 0x3b1a, 0x37fb, 0x38f7, 0x3824, 0x386f, 0x38c7, 0x36ee, 0x3a9c, 0x38d3, 0x2c67, 0x3a80, 0x2f30, 0x3328, 0x3721, 0x3790, 0x34e5, 0x3a6c, 0x3643, 0x3934, 0x3034, 0x38d4, 0x362e, 0x3b4b, 0x3408, 0x30c2, 0x370e, 0x3b31, 0x3b16, +0x3b6b, 0x39d4, 0x339c, 0x381e, 0x313e, 0x3671, 0x3ae2, 0x3479, 0x3940, 0x342d, 0x3925, 0x370a, 0x35d8, 0x2dad, 0x3888, 0x24b9, 0x375d, 0x34bd, 0x3243, 0x2ebb, 0x3970, 0x3a21, 0x3a07, 0x3877, 0x3888, 0x3569, 0x372d, 0x2ac1, 0x331e, 0x384d, 0x3996, 0x34a4, +0x35c1, 0x33a9, 0x21ed, 0x3a42, 0x388d, 0x34e4, 0x33c3, 0x34f9, 0x3a7b, 0x33fb, 0x2cdd, 0x3b0e, 0x333b, 0x3973, 0x34fc, 0x3771, 0x32ea, 0x2de4, 0x31a8, 0x3946, 0x3657, 0x3a4e, 0x36f6, 0x2829, 0x3ba2, 0x3bdc, 0x3bb3, 0x306c, 0x398d, 0x3a1f, 0x3991, 0x3846, +0x3547, 0x3292, 0x2e85, 0x31ed, 0x3979, 0x3a90, 0x28a4, 0x3bed, 0x36d8, 0x340e, 0x3b6a, 0x3ab6, 0x3824, 0x382b, 0x3ac3, 0x3811, 0x36d7, 0x3519, 0x3a92, 0x3a42, 0x29d1, 0x383a, 0x3a9b, 0x300e, 0x2cd3, 0x39cd, 0x3874, 0x3a07, 0x2eb1, 0x3b86, 0x3ad8, 0x3a5d, +0x3712, 0x284a, 0x38c1, 0x3bec, 0x39c0, 0x32cd, 0x3ad8, 0x3bce, 0x3817, 0x3896, 0x3aa7, 0x3870, 0x3996, 0x32cc, 0x3a4c, 0x3757, 0x3814, 0x3b65, 0x3acb, 0x376e, 0x34c0, 0x3609, 0x3bf0, 0x3b24, 0x3b29, 0x3848, 0x34b7, 0x398a, 0x220c, 0x3498, 0x3a8c, 0x3883, +0x38c4, 0x3af6, 0x3a42, 0x2dd6, 0x3147, 0x3717, 0x3a8e, 0x3af9, 0x3296, 0x38ef, 0x34fa, 0x3555, 0x3b29, 0x38de, 0x315e, 0x3773, 0x3b67, 0x3116, 0x38ec, 0x357c, 0x35d0, 0x2518, 0x3958, 0x2a03, 0x37d9, 0x3699, 0x3a1e, 0x3230, 0x3b13, 0x36d4, 0x3b2a, 0x39ad, +0x3b10, 0x351a, 0x3b97, 0x3326, 0x2b54, 0x3b7d, 0x386f, 0x373e, 0x37fa, 0x389b, 0x3b90, 0x3292, 0x3975, 0x38f3, 0x37f1, 0x3590, 0x3810, 0x2fd7, 0x3bf7, 0x3a5a, 0x3a1c, 0x34dd, 0x354c, 0x32f8, 0x3095, 0x321e, 0x39e0, 0x395c, 0x3717, 0x357f, 0x394a, 0x34b1, +0x3ba4, 0x380c, 0x3604, 0x2f50, 0x348d, 0x3828, 0x3a9f, 0x39ce, 0x32ca, 0x3906, 0x3ab2, 0x2ca5, 0x38c9, 0x362a, 0x34b2, 0x29dc, 0x3a36, 0x3052, 0x31b7, 0x3589, 0x387c, 0x3401, 0x3b22, 0x3ad6, 0x3ae8, 0x3238, 0x3494, 0x3502, 0x3717, 0x3a6c, 0x3229, 0x368c, +0x3056, 0x3a56, 0x3498, 0x39eb, 0x2864, 0x342d, 0x39e0, 0x34a1, 0x2b99, 0x3a04, 0x38ff, 0x328c, 0x34d9, 0x387d, 0x3a3c, 0x32e5, 0x39eb, 0x3984, 0x34dd, 0x38a7, 0x373f, 0x39b4, 0x3235, 0x2f58, 0x2f39, 0x3800, 0x3758, 0x3939, 0x39fc, 0x3a4b, 0x38bf, 0x30ee, +0x345e, 0x39c8, 0x3a6d, 0x3262, 0x3b81, 0x31dc, 0x3a15, 0x3bd0, 0x36af, 0x36de, 0x37d5, 0x39d7, 0x3ad3, 0x3ac1, 0x3109, 0x35ea, 0x31c6, 0x398d, 0x3987, 0x3a4a, 0x34d2, 0x2ed2, 0x35e6, 0x352c, 0x39eb, 0x3bd6, 0x3a5b, 0x39d1, 0x34aa, 0x3ade, 0x394b, 0x38a1, +0x2bed, 0x38de, 0x3811, 0x3813, 0x391a, 0x374b, 0x3829, 0x3725, 0x38f0, 0x3583, 0x3966, 0x3a7d, 0x375a, 0x38fe, 0x3696, 0x361c, 0x39a8, 0x35f0, 0x38e1, 0x3003, 0x3595, 0x316e, 0x3862, 0x3af8, 0x3af2, 0x34c8, 0x381d, 0x37d8, 0x3893, 0x3a9c, 0x3989, 0x308c, +0x30cc, 0x2538, 0x399d, 0x3919, 0x399e, 0x21cc, 0x38e9, 0x30f8, 0x3a20, 0x3b3c, 0x3990, 0x259c, 0x3143, 0x3080, 0x3967, 0x3afb, 0x3a1b, 0x3779, 0x2eeb, 0x39f3, 0x379a, 0x369c, 0x3985, 0x3a1b, 0x3ba6, 0x3a53, 0x28d5, 0x3881, 0x31d9, 0x3a34, 0x3bd9, 0x393a, +0x3601, 0x2c6e, 0x3636, 0x3298, 0x39bb, 0x3a08, 0x38db, 0x35ad, 0x3a09, 0x36a6, 0x3bc7, 0x3bac, 0x34ae, 0x3291, 0x290b, 0x3250, 0x2648, 0x333d, 0x2bf3, 0x34b1, 0x30e0, 0x351f, 0x3a74, 0x38dc, 0x3883, 0x2841, 0x35e1, 0x390d, 0x3a50, 0x3abd, 0x386d, 0x3bb7, +0x3b94, 0x36b7, 0x3a49, 0x332f, 0x3a1d, 0x354b, 0x3bab, 0x3346, 0x3417, 0x351e, 0x3b6d, 0x391a, 0x2db3, 0x3b1c, 0x3a4a, 0x37b7, 0x36cf, 0x3a56, 0x39c4, 0x3be9, 0x34f0, 0x39be, 0x3691, 0x1ba5, 0x3888, 0x3040, 0x3ae1, 0x3b9b, 0x398f, 0x3a49, 0x3a16, 0x38c0, +0x386c, 0x39ab, 0x37fa, 0x382c, 0x3a6f, 0x393f, 0x340d, 0x38ef, 0x39d1, 0x3845, 0x398f, 0x363e, 0x3687, 0x3052, 0x3a2b, 0x392c, 0x2f5c, 0x3412, 0x3a1f, 0x3b2f, 0x3bcc, 0x3a63, 0x3a89, 0x36e9, 0x3921, 0x3b80, 0x2dc0, 0x3a03, 0x3beb, 0x38d3, 0x36cb, 0x39a3, +0x3978, 0x3a88, 0x3ba4, 0x3561, 0x28c5, 0x33a0, 0x37be, 0x2c39, 0x30ee, 0x3782, 0x2c07, 0x354e, 0x3491, 0x3a92, 0x331a, 0x3b15, 0x32e1, 0x3839, 0x3afb, 0x36c2, 0x2fd0, 0x29ad, 0x3b2e, 0x39c1, 0x2a8c, 0x341a, 0x2f90, 0x395a, 0x3969, 0x37ea, 0x3a5c, 0x3b6d, +0x3971, 0x3a93, 0x304e, 0x3623, 0x3a22, 0x31ee, 0x29df, 0x2c93, 0x3a01, 0x3a62, 0x366c, 0x371d, 0x3af3, 0x2e08, 0x3ac0, 0x3642, 0x3a28, 0x368d, 0x2d3d, 0x36d9, 0x32c3, 0x373f, 0x36fe, 0x3487, 0x2c81, 0x3623, 0x3b59, 0x3a91, 0x350a, 0x34f4, 0x3b09, 0x2c25, +0x3b13, 0x325a, 0x379e, 0x3a7d, 0x34b1, 0x39d5, 0x2ba8, 0x322b, 0x3b5e, 0x37ab, 0x2e24, 0x3ba9, 0x3a3d, 0x34f7, 0x3ba1, 0x3877, 0x3071, 0x39fb, 0x3bbd, 0x3633, 0x3b36, 0x2daa, 0x3b9b, 0x3aa0, 0x395c, 0x3b8f, 0x38d5, 0x3ab0, 0x3a8f, 0x36c2, 0x3b1f, 0x3489, +0x2acc, 0x3845, 0x3715, 0x37d8, 0x3992, 0x3bff, 0x350e, 0x3ad7, 0x39b0, 0x35ac, 0x3287, 0x385f, 0x3bd4, 0x37a3, 0x3438, 0x39a5, 0x3bcf, 0x38c3, 0x34f6, 0x3ae3, 0x3b57, 0x39af, 0x35eb, 0x3bed, 0x34d4, 0x2a95, 0x3b13, 0x384e, 0x3a3b, 0x33da, 0x3bce, 0x3b99, +0x3559, 0x3335, 0x3a2e, 0x3123, 0x38db, 0x33d0, 0x3638, 0x3b17, 0x3a72, 0x3afc, 0x3936, 0x3838, 0x2b69, 0x3895, 0x3a1a, 0x3192, 0x39d5, 0x37a5, 0x2eb0, 0x2e8b, 0x329a, 0x3b90, 0x390a, 0x3a1e, 0x3847, 0x375d, 0x3873, 0x35e2, 0x3771, 0x30f5, 0x3231, 0x3bd7, +0x2bbc, 0x3ace, 0x31ad, 0x3a6b, 0x28a4, 0x3b48, 0x3ba3, 0x3a84, 0x3353, 0x39f6, 0x381f, 0x2dd6, 0x314c, 0x34af, 0x3929, 0x3921, 0x383b, 0x34b0, 0x3923, 0x32c9, 0x3ae7, 0x318f, 0x3480, 0x2ad8, 0x3042, 0x3a4c, 0x349d, 0x2c12, 0x3abb, 0x3a57, 0x3b0d, 0x3111, +0x3359, 0x3a84, 0x38f2, 0x368d, 0x2f4b, 0x3ba0, 0x395c, 0x3026, 0x3a15, 0x2a04, 0x326e, 0x3522, 0x31a2, 0x382f, 0x2ada, 0x3b7c, 0x2f80, 0x3af5, 0x2d35, 0x38fa, 0x39ab, 0x2c6d, 0x2e7a, 0x39f6, 0x31a4, 0x3a53, 0x358c, 0x3951, 0x3a4e, 0x3916, 0x2a3f, 0x3ae9, +0x3b03, 0x39f8, 0x39fe, 0x3a61, 0x39fb, 0x3704, 0x360d, 0x39a7, 0x37a9, 0x348f, 0x3a30, 0x3af5, 0x366f, 0x3b29, 0x3a6a, 0x33d5, 0x370a, 0x39cd, 0x3444, 0x3bea, 0x3b2b, 0x312e, 0x3b8e, 0x32cf, 0x3b79, 0x3302, 0x3bba, 0x3962, 0x3413, 0x37a1, 0x39e0, 0x3805 +}; \ No newline at end of file diff --git a/carfield/redmule/inc/z_2D.h b/carfield/redmule/inc/z_2D.h new file mode 100644 index 0000000..aff808a --- /dev/null +++ b/carfield/redmule/inc/z_2D.h @@ -0,0 +1,27 @@ + /* Header file generated by RedMulE Golden Model */ +uint16_t z_oup_2D [24][32] = { +0x4845, 0x4897, 0x4608, 0x4838, 0x4855, 0x487b, 0x4869, 0x4880, 0x46d1, 0x48b0, 0x48db, 0x483f, 0x48c9, 0x485f, 0x4881, 0x483a, 0x484b, 0x472c, 0x4762, 0x492b, 0x4822, 0x48fd, 0x488e, 0x492e, 0x483e, 0x484f, 0x49e8, 0x46d7, 0x484b, 0x489d, 0x490b, 0x47e9, +0x484f, 0x47d2, 0x44be, 0x4747, 0x47c7, 0x46c0, 0x4727, 0x48af, 0x46c5, 0x482d, 0x483d, 0x482e, 0x4897, 0x479f, 0x488b, 0x4749, 0x489a, 0x46a8, 0x46f2, 0x488b, 0x4891, 0x47e8, 0x4872, 0x483d, 0x4716, 0x46fd, 0x49b5, 0x46a0, 0x46e7, 0x47a4, 0x48a1, 0x4767, +0x4939, 0x4935, 0x4703, 0x48c1, 0x4863, 0x48bd, 0x4913, 0x48cf, 0x48b6, 0x48b8, 0x4946, 0x4920, 0x495e, 0x48e1, 0x4938, 0x48b2, 0x493a, 0x4882, 0x483b, 0x49d5, 0x4911, 0x4972, 0x496b, 0x49df, 0x48f2, 0x4888, 0x4a46, 0x4821, 0x48c1, 0x490c, 0x49b2, 0x48a3, +0x463a, 0x47b0, 0x44cb, 0x4762, 0x4765, 0x46b9, 0x466a, 0x4814, 0x4631, 0x4796, 0x4666, 0x474b, 0x4798, 0x4704, 0x4838, 0x4761, 0x47d3, 0x4590, 0x45ea, 0x48a2, 0x47f1, 0x4844, 0x484b, 0x4776, 0x47d6, 0x46d8, 0x48f3, 0x44d3, 0x46fa, 0x478d, 0x481e, 0x466e, +0x4827, 0x481e, 0x45a2, 0x4794, 0x4727, 0x4806, 0x475d, 0x48d5, 0x4708, 0x4828, 0x4862, 0x480d, 0x4895, 0x4832, 0x48bd, 0x47f1, 0x482a, 0x46a7, 0x47b1, 0x492d, 0x484d, 0x4884, 0x48dc, 0x485f, 0x476d, 0x480c, 0x48e9, 0x46d3, 0x4728, 0x4884, 0x48a0, 0x480e, +0x4862, 0x4813, 0x4675, 0x485a, 0x47e8, 0x4738, 0x4836, 0x4823, 0x46e7, 0x4821, 0x4822, 0x47b3, 0x4846, 0x4855, 0x4863, 0x4717, 0x4872, 0x47c1, 0x46d5, 0x488e, 0x47e2, 0x485f, 0x487c, 0x48b8, 0x481e, 0x4788, 0x48bd, 0x4677, 0x46c9, 0x47f8, 0x48fe, 0x47fc, +0x47a0, 0x47b2, 0x4588, 0x467e, 0x4662, 0x46c7, 0x46e8, 0x4812, 0x4536, 0x474e, 0x46c0, 0x468f, 0x481f, 0x4679, 0x46a1, 0x46e2, 0x4809, 0x4560, 0x4630, 0x47eb, 0x46b5, 0x4757, 0x4848, 0x477f, 0x46a6, 0x46d8, 0x4870, 0x459a, 0x4670, 0x4678, 0x47d2, 0x468c, +0x4762, 0x48c4, 0x46e3, 0x4791, 0x46b1, 0x486d, 0x47d0, 0x4867, 0x468d, 0x47f6, 0x48a5, 0x4756, 0x4857, 0x4854, 0x4866, 0x4838, 0x484d, 0x46ec, 0x47d2, 0x48f6, 0x484a, 0x4879, 0x4848, 0x483c, 0x471d, 0x4806, 0x48fa, 0x4730, 0x4768, 0x47b8, 0x4865, 0x46f9, +0x48a8, 0x4918, 0x46ca, 0x4867, 0x4800, 0x4862, 0x48d3, 0x4910, 0x474e, 0x4849, 0x48eb, 0x486b, 0x4966, 0x48c5, 0x48f4, 0x4830, 0x48f9, 0x4778, 0x481e, 0x499e, 0x48cf, 0x48f1, 0x4982, 0x4923, 0x487c, 0x47cf, 0x49ea, 0x4649, 0x4773, 0x495e, 0x48b2, 0x483f, +0x48a7, 0x4975, 0x4616, 0x481e, 0x481f, 0x4866, 0x48b6, 0x4864, 0x47dc, 0x4873, 0x485c, 0x487f, 0x4938, 0x491f, 0x490d, 0x48b6, 0x48f8, 0x48a1, 0x4859, 0x492d, 0x489c, 0x4915, 0x4899, 0x4887, 0x486c, 0x4859, 0x49ca, 0x471e, 0x4867, 0x4918, 0x48d3, 0x4827, +0x488b, 0x4998, 0x4704, 0x481d, 0x48b8, 0x4880, 0x4876, 0x4944, 0x470c, 0x48f2, 0x48b9, 0x489b, 0x4956, 0x48e5, 0x48d6, 0x48a5, 0x48dc, 0x4856, 0x484e, 0x49ab, 0x48e0, 0x490e, 0x48dd, 0x4945, 0x488b, 0x48dd, 0x4a32, 0x47ea, 0x4835, 0x4911, 0x4965, 0x4819, +0x460e, 0x481e, 0x452c, 0x4673, 0x475c, 0x4717, 0x46f6, 0x46d0, 0x4696, 0x46bc, 0x4726, 0x481e, 0x4763, 0x46ea, 0x46fe, 0x4758, 0x478b, 0x4627, 0x4704, 0x483f, 0x46ad, 0x47b1, 0x4792, 0x4816, 0x46f2, 0x4684, 0x4827, 0x45a8, 0x472f, 0x47a4, 0x4797, 0x462b, +0x483f, 0x48ab, 0x468f, 0x4863, 0x485a, 0x4766, 0x481d, 0x48cb, 0x47dc, 0x4903, 0x48fc, 0x4830, 0x48cc, 0x483e, 0x48ab, 0x4864, 0x4966, 0x4763, 0x4794, 0x499d, 0x488e, 0x488b, 0x48dc, 0x4960, 0x4854, 0x484c, 0x499c, 0x474c, 0x4826, 0x48bc, 0x4949, 0x4883, +0x489d, 0x4905, 0x4718, 0x481e, 0x48e3, 0x48f4, 0x48c1, 0x4904, 0x47e8, 0x48b3, 0x4892, 0x48d4, 0x48ff, 0x4894, 0x48d5, 0x4886, 0x48fa, 0x4803, 0x47d2, 0x492e, 0x4870, 0x48b2, 0x48e5, 0x492b, 0x487b, 0x4785, 0x49e3, 0x471d, 0x4837, 0x48bf, 0x489b, 0x48c4, +0x475c, 0x4871, 0x464a, 0x4811, 0x47af, 0x471c, 0x4817, 0x4817, 0x463b, 0x484e, 0x477f, 0x464f, 0x4704, 0x487c, 0x47a3, 0x4725, 0x4853, 0x462a, 0x465a, 0x4860, 0x4736, 0x4880, 0x47e1, 0x482b, 0x4811, 0x46c0, 0x48dc, 0x475d, 0x4668, 0x4806, 0x4893, 0x46f4, +0x4858, 0x4959, 0x463d, 0x487b, 0x480f, 0x484e, 0x48c0, 0x48a6, 0x4847, 0x4894, 0x48a0, 0x484a, 0x491e, 0x48f4, 0x48fc, 0x48b5, 0x48ce, 0x47d2, 0x47db, 0x497f, 0x4955, 0x4939, 0x48a7, 0x48ce, 0x4890, 0x4884, 0x49d6, 0x4763, 0x486e, 0x4922, 0x48f4, 0x48c3, +0x47ec, 0x491c, 0x4698, 0x4783, 0x4715, 0x4754, 0x4745, 0x4752, 0x472f, 0x4832, 0x4817, 0x4809, 0x47f8, 0x48c3, 0x47e6, 0x4800, 0x48b6, 0x4730, 0x480a, 0x48cb, 0x479e, 0x488e, 0x47c2, 0x488e, 0x472f, 0x47ee, 0x489d, 0x4744, 0x4755, 0x4851, 0x4846, 0x47d3, +0x4838, 0x48a0, 0x4634, 0x4762, 0x4786, 0x4806, 0x47e3, 0x482d, 0x4726, 0x486c, 0x47b7, 0x4803, 0x48ac, 0x4814, 0x48e0, 0x4839, 0x4827, 0x4750, 0x46f2, 0x48c5, 0x483f, 0x4886, 0x48ad, 0x4856, 0x47e8, 0x47a9, 0x4937, 0x4743, 0x46d0, 0x481f, 0x484c, 0x4804, +0x47fd, 0x481f, 0x456d, 0x4813, 0x474d, 0x4807, 0x4688, 0x480e, 0x46e8, 0x4810, 0x469f, 0x4799, 0x4853, 0x478f, 0x47f2, 0x4824, 0x47d0, 0x471f, 0x46da, 0x485f, 0x4813, 0x481c, 0x482e, 0x4863, 0x4786, 0x480b, 0x48c9, 0x46b8, 0x475a, 0x46e2, 0x4852, 0x46c5, +0x45af, 0x4802, 0x4466, 0x46c2, 0x465d, 0x4743, 0x46b7, 0x47ba, 0x4636, 0x46c3, 0x4677, 0x4784, 0x485a, 0x47c2, 0x46dc, 0x46ac, 0x47de, 0x460e, 0x465f, 0x4834, 0x47f4, 0x4769, 0x46fc, 0x4810, 0x45fd, 0x45ea, 0x48d0, 0x45b5, 0x4704, 0x4783, 0x4830, 0x46c4, +0x4759, 0x47c7, 0x453d, 0x45b0, 0x4741, 0x4702, 0x4736, 0x4793, 0x461b, 0x47ba, 0x470b, 0x46dd, 0x4657, 0x470b, 0x470d, 0x4710, 0x486c, 0x468f, 0x45c3, 0x46ba, 0x479d, 0x483b, 0x46c9, 0x4774, 0x46a9, 0x46a7, 0x4833, 0x4606, 0x4690, 0x46a9, 0x46f5, 0x46a7, +0x47ac, 0x48bb, 0x452c, 0x4803, 0x470f, 0x4824, 0x47d5, 0x48cb, 0x4707, 0x484a, 0x4832, 0x4797, 0x4851, 0x482c, 0x487a, 0x4877, 0x4891, 0x465d, 0x47f4, 0x48ce, 0x4898, 0x4899, 0x484e, 0x486a, 0x47ac, 0x47f0, 0x493e, 0x4611, 0x47e2, 0x489e, 0x488c, 0x46af, +0x4665, 0x4836, 0x45e4, 0x46b6, 0x46a1, 0x46b9, 0x46c8, 0x46dd, 0x4658, 0x474b, 0x467b, 0x4777, 0x4769, 0x4798, 0x4785, 0x475e, 0x472a, 0x4656, 0x45fb, 0x4881, 0x46fc, 0x472d, 0x476e, 0x47a3, 0x465d, 0x46ca, 0x4855, 0x4500, 0x464f, 0x479a, 0x46c3, 0x4738, +0x481e, 0x486c, 0x4659, 0x4801, 0x4756, 0x477a, 0x47d5, 0x487b, 0x4706, 0x4808, 0x484f, 0x4838, 0x4870, 0x4863, 0x48d3, 0x4806, 0x4865, 0x4771, 0x46be, 0x494c, 0x4915, 0x484c, 0x4900, 0x4862, 0x481a, 0x46e8, 0x4974, 0x46a0, 0x4775, 0x483d, 0x487c, 0x480e +}; \ No newline at end of file diff --git a/carfield/redmule/inc/z_output.h b/carfield/redmule/inc/z_output.h new file mode 100644 index 0000000..96c7e5f --- /dev/null +++ b/carfield/redmule/inc/z_output.h @@ -0,0 +1,27 @@ + /* Header file generated by RedMulE Golden Model */ +uint16_t z_oup [768] = { +0x4845, 0x4897, 0x4608, 0x4838, 0x4855, 0x487b, 0x4869, 0x4880, 0x46d1, 0x48b0, 0x48db, 0x483f, 0x48c9, 0x485f, 0x4881, 0x483a, 0x484b, 0x472c, 0x4762, 0x492b, 0x4822, 0x48fd, 0x488e, 0x492e, 0x483e, 0x484f, 0x49e8, 0x46d7, 0x484b, 0x489d, 0x490b, 0x47e9, +0x484f, 0x47d2, 0x44be, 0x4747, 0x47c7, 0x46c0, 0x4727, 0x48af, 0x46c5, 0x482d, 0x483d, 0x482e, 0x4897, 0x479f, 0x488b, 0x4749, 0x489a, 0x46a8, 0x46f2, 0x488b, 0x4891, 0x47e8, 0x4872, 0x483d, 0x4716, 0x46fd, 0x49b5, 0x46a0, 0x46e7, 0x47a4, 0x48a1, 0x4767, +0x4939, 0x4935, 0x4703, 0x48c1, 0x4863, 0x48bd, 0x4913, 0x48cf, 0x48b6, 0x48b8, 0x4946, 0x4920, 0x495e, 0x48e1, 0x4938, 0x48b2, 0x493a, 0x4882, 0x483b, 0x49d5, 0x4911, 0x4972, 0x496b, 0x49df, 0x48f2, 0x4888, 0x4a46, 0x4821, 0x48c1, 0x490c, 0x49b2, 0x48a3, +0x463a, 0x47b0, 0x44cb, 0x4762, 0x4765, 0x46b9, 0x466a, 0x4814, 0x4631, 0x4796, 0x4666, 0x474b, 0x4798, 0x4704, 0x4838, 0x4761, 0x47d3, 0x4590, 0x45ea, 0x48a2, 0x47f1, 0x4844, 0x484b, 0x4776, 0x47d6, 0x46d8, 0x48f3, 0x44d3, 0x46fa, 0x478d, 0x481e, 0x466e, +0x4827, 0x481e, 0x45a2, 0x4794, 0x4727, 0x4806, 0x475d, 0x48d5, 0x4708, 0x4828, 0x4862, 0x480d, 0x4895, 0x4832, 0x48bd, 0x47f1, 0x482a, 0x46a7, 0x47b1, 0x492d, 0x484d, 0x4884, 0x48dc, 0x485f, 0x476d, 0x480c, 0x48e9, 0x46d3, 0x4728, 0x4884, 0x48a0, 0x480e, +0x4862, 0x4813, 0x4675, 0x485a, 0x47e8, 0x4738, 0x4836, 0x4823, 0x46e7, 0x4821, 0x4822, 0x47b3, 0x4846, 0x4855, 0x4863, 0x4717, 0x4872, 0x47c1, 0x46d5, 0x488e, 0x47e2, 0x485f, 0x487c, 0x48b8, 0x481e, 0x4788, 0x48bd, 0x4677, 0x46c9, 0x47f8, 0x48fe, 0x47fc, +0x47a0, 0x47b2, 0x4588, 0x467e, 0x4662, 0x46c7, 0x46e8, 0x4812, 0x4536, 0x474e, 0x46c0, 0x468f, 0x481f, 0x4679, 0x46a1, 0x46e2, 0x4809, 0x4560, 0x4630, 0x47eb, 0x46b5, 0x4757, 0x4848, 0x477f, 0x46a6, 0x46d8, 0x4870, 0x459a, 0x4670, 0x4678, 0x47d2, 0x468c, +0x4762, 0x48c4, 0x46e3, 0x4791, 0x46b1, 0x486d, 0x47d0, 0x4867, 0x468d, 0x47f6, 0x48a5, 0x4756, 0x4857, 0x4854, 0x4866, 0x4838, 0x484d, 0x46ec, 0x47d2, 0x48f6, 0x484a, 0x4879, 0x4848, 0x483c, 0x471d, 0x4806, 0x48fa, 0x4730, 0x4768, 0x47b8, 0x4865, 0x46f9, +0x48a8, 0x4918, 0x46ca, 0x4867, 0x4800, 0x4862, 0x48d3, 0x4910, 0x474e, 0x4849, 0x48eb, 0x486b, 0x4966, 0x48c5, 0x48f4, 0x4830, 0x48f9, 0x4778, 0x481e, 0x499e, 0x48cf, 0x48f1, 0x4982, 0x4923, 0x487c, 0x47cf, 0x49ea, 0x4649, 0x4773, 0x495e, 0x48b2, 0x483f, +0x48a7, 0x4975, 0x4616, 0x481e, 0x481f, 0x4866, 0x48b6, 0x4864, 0x47dc, 0x4873, 0x485c, 0x487f, 0x4938, 0x491f, 0x490d, 0x48b6, 0x48f8, 0x48a1, 0x4859, 0x492d, 0x489c, 0x4915, 0x4899, 0x4887, 0x486c, 0x4859, 0x49ca, 0x471e, 0x4867, 0x4918, 0x48d3, 0x4827, +0x488b, 0x4998, 0x4704, 0x481d, 0x48b8, 0x4880, 0x4876, 0x4944, 0x470c, 0x48f2, 0x48b9, 0x489b, 0x4956, 0x48e5, 0x48d6, 0x48a5, 0x48dc, 0x4856, 0x484e, 0x49ab, 0x48e0, 0x490e, 0x48dd, 0x4945, 0x488b, 0x48dd, 0x4a32, 0x47ea, 0x4835, 0x4911, 0x4965, 0x4819, +0x460e, 0x481e, 0x452c, 0x4673, 0x475c, 0x4717, 0x46f6, 0x46d0, 0x4696, 0x46bc, 0x4726, 0x481e, 0x4763, 0x46ea, 0x46fe, 0x4758, 0x478b, 0x4627, 0x4704, 0x483f, 0x46ad, 0x47b1, 0x4792, 0x4816, 0x46f2, 0x4684, 0x4827, 0x45a8, 0x472f, 0x47a4, 0x4797, 0x462b, +0x483f, 0x48ab, 0x468f, 0x4863, 0x485a, 0x4766, 0x481d, 0x48cb, 0x47dc, 0x4903, 0x48fc, 0x4830, 0x48cc, 0x483e, 0x48ab, 0x4864, 0x4966, 0x4763, 0x4794, 0x499d, 0x488e, 0x488b, 0x48dc, 0x4960, 0x4854, 0x484c, 0x499c, 0x474c, 0x4826, 0x48bc, 0x4949, 0x4883, +0x489d, 0x4905, 0x4718, 0x481e, 0x48e3, 0x48f4, 0x48c1, 0x4904, 0x47e8, 0x48b3, 0x4892, 0x48d4, 0x48ff, 0x4894, 0x48d5, 0x4886, 0x48fa, 0x4803, 0x47d2, 0x492e, 0x4870, 0x48b2, 0x48e5, 0x492b, 0x487b, 0x4785, 0x49e3, 0x471d, 0x4837, 0x48bf, 0x489b, 0x48c4, +0x475c, 0x4871, 0x464a, 0x4811, 0x47af, 0x471c, 0x4817, 0x4817, 0x463b, 0x484e, 0x477f, 0x464f, 0x4704, 0x487c, 0x47a3, 0x4725, 0x4853, 0x462a, 0x465a, 0x4860, 0x4736, 0x4880, 0x47e1, 0x482b, 0x4811, 0x46c0, 0x48dc, 0x475d, 0x4668, 0x4806, 0x4893, 0x46f4, +0x4858, 0x4959, 0x463d, 0x487b, 0x480f, 0x484e, 0x48c0, 0x48a6, 0x4847, 0x4894, 0x48a0, 0x484a, 0x491e, 0x48f4, 0x48fc, 0x48b5, 0x48ce, 0x47d2, 0x47db, 0x497f, 0x4955, 0x4939, 0x48a7, 0x48ce, 0x4890, 0x4884, 0x49d6, 0x4763, 0x486e, 0x4922, 0x48f4, 0x48c3, +0x47ec, 0x491c, 0x4698, 0x4783, 0x4715, 0x4754, 0x4745, 0x4752, 0x472f, 0x4832, 0x4817, 0x4809, 0x47f8, 0x48c3, 0x47e6, 0x4800, 0x48b6, 0x4730, 0x480a, 0x48cb, 0x479e, 0x488e, 0x47c2, 0x488e, 0x472f, 0x47ee, 0x489d, 0x4744, 0x4755, 0x4851, 0x4846, 0x47d3, +0x4838, 0x48a0, 0x4634, 0x4762, 0x4786, 0x4806, 0x47e3, 0x482d, 0x4726, 0x486c, 0x47b7, 0x4803, 0x48ac, 0x4814, 0x48e0, 0x4839, 0x4827, 0x4750, 0x46f2, 0x48c5, 0x483f, 0x4886, 0x48ad, 0x4856, 0x47e8, 0x47a9, 0x4937, 0x4743, 0x46d0, 0x481f, 0x484c, 0x4804, +0x47fd, 0x481f, 0x456d, 0x4813, 0x474d, 0x4807, 0x4688, 0x480e, 0x46e8, 0x4810, 0x469f, 0x4799, 0x4853, 0x478f, 0x47f2, 0x4824, 0x47d0, 0x471f, 0x46da, 0x485f, 0x4813, 0x481c, 0x482e, 0x4863, 0x4786, 0x480b, 0x48c9, 0x46b8, 0x475a, 0x46e2, 0x4852, 0x46c5, +0x45af, 0x4802, 0x4466, 0x46c2, 0x465d, 0x4743, 0x46b7, 0x47ba, 0x4636, 0x46c3, 0x4677, 0x4784, 0x485a, 0x47c2, 0x46dc, 0x46ac, 0x47de, 0x460e, 0x465f, 0x4834, 0x47f4, 0x4769, 0x46fc, 0x4810, 0x45fd, 0x45ea, 0x48d0, 0x45b5, 0x4704, 0x4783, 0x4830, 0x46c4, +0x4759, 0x47c7, 0x453d, 0x45b0, 0x4741, 0x4702, 0x4736, 0x4793, 0x461b, 0x47ba, 0x470b, 0x46dd, 0x4657, 0x470b, 0x470d, 0x4710, 0x486c, 0x468f, 0x45c3, 0x46ba, 0x479d, 0x483b, 0x46c9, 0x4774, 0x46a9, 0x46a7, 0x4833, 0x4606, 0x4690, 0x46a9, 0x46f5, 0x46a7, +0x47ac, 0x48bb, 0x452c, 0x4803, 0x470f, 0x4824, 0x47d5, 0x48cb, 0x4707, 0x484a, 0x4832, 0x4797, 0x4851, 0x482c, 0x487a, 0x4877, 0x4891, 0x465d, 0x47f4, 0x48ce, 0x4898, 0x4899, 0x484e, 0x486a, 0x47ac, 0x47f0, 0x493e, 0x4611, 0x47e2, 0x489e, 0x488c, 0x46af, +0x4665, 0x4836, 0x45e4, 0x46b6, 0x46a1, 0x46b9, 0x46c8, 0x46dd, 0x4658, 0x474b, 0x467b, 0x4777, 0x4769, 0x4798, 0x4785, 0x475e, 0x472a, 0x4656, 0x45fb, 0x4881, 0x46fc, 0x472d, 0x476e, 0x47a3, 0x465d, 0x46ca, 0x4855, 0x4500, 0x464f, 0x479a, 0x46c3, 0x4738, +0x481e, 0x486c, 0x4659, 0x4801, 0x4756, 0x477a, 0x47d5, 0x487b, 0x4706, 0x4808, 0x484f, 0x4838, 0x4870, 0x4863, 0x48d3, 0x4806, 0x4865, 0x4771, 0x46be, 0x494c, 0x4915, 0x484c, 0x4900, 0x4862, 0x481a, 0x46e8, 0x4974, 0x46a0, 0x4775, 0x483d, 0x487c, 0x480e +}; \ No newline at end of file diff --git a/carfield/redmule/redmule.c b/carfield/redmule/redmule.c new file mode 100644 index 0000000..992e223 --- /dev/null +++ b/carfield/redmule/redmule.c @@ -0,0 +1,112 @@ +/* + * Copyright (C) 2022-2023 ETH Zurich and University of Bologna + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * SPDX-License-Identifier: Apache-2.0 + * + * Author: Yvan Tortorella + * + * RedMulE SW test + */ + +#include +#include "stdio.h" +#include "archi_redmule.h" +#include "hal_redmule.h" +#include "pulp.h" + +int main() { + + volatile int errors = 0; + + if(get_core_id() == 0){ + + uint16_t m_size = M_SIZE; + uint16_t n_size = N_SIZE; + uint16_t k_size = K_SIZE; + + uint8_t *x_ext = x_inp; + uint8_t *w_ext = w_inp; + uint8_t *y_ext = y_inp; + uint8_t *z_ext = z_oup; + + uint8_t volatile *x = (uint8_t volatile *) pi_l1_malloc(0, (2*m_size*n_size)); + uint8_t volatile *w = (uint8_t volatile *) pi_l1_malloc(0, (2*n_size*k_size)); + uint8_t volatile *y = (uint8_t volatile *) pi_l1_malloc(0, (2*m_size*k_size)); + + #ifdef USE_NO_DMA + generate_test_data16((int) x, (int) w, (int) y, (int) m_size, (int) n_size, (int) k_size); + #else + volatile unsigned int dma_id = 0; + dma_id = mchan_alloc(); + mchan_transfer((unsigned int) 2*(2*m_size*n_size), + (unsigned int) x_ext, + (unsigned int) x ); + mchan_barrier(dma_id); + mchan_free(dma_id); + + dma_id = mchan_alloc(); + mchan_transfer((unsigned int) 2*(2*n_size*k_size), + (unsigned int) w_ext, + (unsigned int) w ); + mchan_barrier(dma_id); + mchan_free(dma_id); + + dma_id = mchan_alloc(); + mchan_transfer((unsigned int) 2*(2*m_size*k_size), + (unsigned int) y_ext, + (unsigned int) y ); + mchan_barrier(dma_id); + #endif + + int gold_sum = 0, check_sum = 0; + int i,j; + + int offload_id_tmp, offload_id; + + // Enable RedMulE + hwpe_cg_enable(); + + hwpe_soft_clear(); + + // redmule_cfg ((unsigned int) x, + // (unsigned int) w, + // (unsigned int) y, + // m_size, n_size, k_size, + // (uint8_t) GEMM, + // (uint8_t) Float16); + redmule_x_add_set ((unsigned int) x); + redmule_w_add_set ((unsigned int) w); + redmule_y_add_set ((unsigned int) y); + redmule_z_add_set ((unsigned int) y); + redmule_cfg (m_size, n_size, k_size, gemm_ops); + + // Start RedMulE operation + hwpe_trigger_job(); + + // Wait for end of computation + redmule_evt_wait(); + + // Disable RedMulE + hwpe_cg_disable(); + + errors = redmule_compare16((int) y, (int) m_size, (int) k_size); + + *(int *) 0x1A1040A0 = errors; + + printf ("Terminated test with %d errors. See you!\n", errors); + + } + synch_barrier(); + return errors; +} From f55e6764c613c253d375dedf9a7cfec0d3a25f64 Mon Sep 17 00:00:00 2001 From: Yvan Tortorella Date: Mon, 30 Oct 2023 22:09:50 +0100 Subject: [PATCH 11/56] Added DMR matmul to carfield regressions. --- carfield/dmr_matmul/Makefile | 7 +++ carfield/dmr_matmul/dmr_matmul.c | 100 +++++++++++++++++++++++++++++++ carfield/dmr_matmul/matmul.h | 56 +++++++++++++++++ 3 files changed, 163 insertions(+) create mode 100644 carfield/dmr_matmul/Makefile create mode 100644 carfield/dmr_matmul/dmr_matmul.c create mode 100644 carfield/dmr_matmul/matmul.h diff --git a/carfield/dmr_matmul/Makefile b/carfield/dmr_matmul/Makefile new file mode 100644 index 0000000..92be562 --- /dev/null +++ b/carfield/dmr_matmul/Makefile @@ -0,0 +1,7 @@ +PULP_APP = test +PULP_APP_SRCS = dmr_matmul.c + +PULP_CFLAGS = -O3 +PULP_LDFLAGS = -lm + +include $(PULP_SDK_HOME)/install/rules/pulp.mk diff --git a/carfield/dmr_matmul/dmr_matmul.c b/carfield/dmr_matmul/dmr_matmul.c new file mode 100644 index 0000000..953dfdf --- /dev/null +++ b/carfield/dmr_matmul/dmr_matmul.c @@ -0,0 +1,100 @@ +/* +* @Author: Michael Rogenmoser +* @Date: 2023-02-17 18:00:21 +* @Last Modified by: Michael Rogenmoser +* @Last Modified time: 2023-02-17 18:15:33 +*/ +#include +#include +#include "matmul.h" + +#define N_ITERS 1 +#define max(x,y) (x > y ? x : y) +#define min(x,y) (x < y ? x : y) + +__attribute__ ((section(".heapsram"))) int A[SIZE][SIZE]; +__attribute__ ((section(".heapsram"))) int B[SIZE][SIZE]; +__attribute__ ((section(".heapsram"))) int C[SIZE][SIZE]; + +void initialize_mat(); + +void initialize_mat() { + int i,j; + + for (i=0;i Date: Tue, 3 Oct 2023 16:47:56 +0200 Subject: [PATCH 12/56] Add test for the FPUs of the cluster cores --- fpu_tests.yaml | 11 ++ fpu_tests/matmul/FP16/Makefile | 82 ++++++++++ fpu_tests/matmul/FP16/config.h | 96 +++++++++++ fpu_tests/matmul/FP16/data.h | 7 + fpu_tests/matmul/FP16/main.c | 122 ++++++++++++++ fpu_tests/matmul/FP16/matmul.c | 103 ++++++++++++ fpu_tests/matmul/FP16/support_func.c | 15 ++ fpu_tests/matmul/FP16ALT/Makefile | 82 ++++++++++ fpu_tests/matmul/FP16ALT/config.h | 96 +++++++++++ fpu_tests/matmul/FP16ALT/data.h | 7 + fpu_tests/matmul/FP16ALT/main.c | 122 ++++++++++++++ fpu_tests/matmul/FP16ALT/matmul.c | 103 ++++++++++++ fpu_tests/matmul/FP16ALT/support_func.c | 15 ++ fpu_tests/matmul/FP32/Makefile | 82 ++++++++++ fpu_tests/matmul/FP32/config.h | 96 +++++++++++ fpu_tests/matmul/FP32/data.h | 7 + fpu_tests/matmul/FP32/main.c | 122 ++++++++++++++ fpu_tests/matmul/FP32/matmul.c | 103 ++++++++++++ fpu_tests/matmul/FP32/out.txt | 15 ++ fpu_tests/matmul/FP32/support_func.c | 15 ++ fpu_tests/matmul/README.md | 38 +++++ fpu_tests/matmul/data_generator.py | 206 ++++++++++++++++++++++++ 22 files changed, 1545 insertions(+) create mode 100644 fpu_tests.yaml create mode 100644 fpu_tests/matmul/FP16/Makefile create mode 100644 fpu_tests/matmul/FP16/config.h create mode 100644 fpu_tests/matmul/FP16/data.h create mode 100644 fpu_tests/matmul/FP16/main.c create mode 100644 fpu_tests/matmul/FP16/matmul.c create mode 100644 fpu_tests/matmul/FP16/support_func.c create mode 100644 fpu_tests/matmul/FP16ALT/Makefile create mode 100644 fpu_tests/matmul/FP16ALT/config.h create mode 100644 fpu_tests/matmul/FP16ALT/data.h create mode 100644 fpu_tests/matmul/FP16ALT/main.c create mode 100644 fpu_tests/matmul/FP16ALT/matmul.c create mode 100644 fpu_tests/matmul/FP16ALT/support_func.c create mode 100644 fpu_tests/matmul/FP32/Makefile create mode 100644 fpu_tests/matmul/FP32/config.h create mode 100644 fpu_tests/matmul/FP32/data.h create mode 100644 fpu_tests/matmul/FP32/main.c create mode 100644 fpu_tests/matmul/FP32/matmul.c create mode 100644 fpu_tests/matmul/FP32/out.txt create mode 100644 fpu_tests/matmul/FP32/support_func.c create mode 100644 fpu_tests/matmul/README.md create mode 100755 fpu_tests/matmul/data_generator.py diff --git a/fpu_tests.yaml b/fpu_tests.yaml new file mode 100644 index 0000000..963d381 --- /dev/null +++ b/fpu_tests.yaml @@ -0,0 +1,11 @@ +fpu_tests: + fp32: + path: ./fpu_tests/matmul/FP32 + command: make clean all cores=8 platform=rtl fmt_A=FP32 fmt_B=FP32 fmt_OUT=FP32 thr=0.004f check=1 run + fp16: + path: ./fpu_tests/matmul/FP16 + command: make clean all cores=8 platform=rtl fmt_A=FP16 fmt_B=FP16 fmt_OUT=FP16 thr=0.004f check=1 vect=1 run + fp16alt: + path: ./fpu_tests/matmul/FP16ALT + command: make clean all cores=8 platform=rtl fmt_A=FP16ALT fmt_B=FP16ALT fmt_OUT=FP16ALT thr=0.04f check=1 vect=1 run + \ No newline at end of file diff --git a/fpu_tests/matmul/FP16/Makefile b/fpu_tests/matmul/FP16/Makefile new file mode 100644 index 0000000..23f7695 --- /dev/null +++ b/fpu_tests/matmul/FP16/Makefile @@ -0,0 +1,82 @@ +PULP_APP = fp_matmul + +PULP_APP_FC_SRCS = main.c +PULP_APP_SRCS = support_func.c matmul.c + +PULP_CFLAGS += -O3 -g3 +PULP_CFLAGS += -mno-memcpy + +ifdef cores +PULP_CFLAGS += -DNUM_CORES=${cores} #-flto -DFABRIC=1 +else +PULP_CFLAGS += -DNUM_CORES=1 +endif + + +ifdef FABRIC +PULP_CFLAGS += -DFABRIC +endif + +ifdef cores +PULP_CFLAGS += -DUSE_INTRINSICS +endif + +ifdef thr +PULP_CFLAGS += -DTHR=${thr} +endif + +PULP_CFLAGS += -fno-tree-vectorize + + +ifdef fmt +PULP_CFLAGS += -D${fmt} -DFIXED + +else +# FP FORMAT +#INPUT DATA TYPE +ifdef fmt_A +PULP_CFLAGS += -DMA${fmt_A} +else +PULP_CFLAGS += -DMAFP32 +endif + +#FILTER DATA TYPE +ifdef fmt_B +PULP_CFLAGS += -DMB${fmt_B} +else +PULP_CFLAGS += -DMBFP32 +endif + +# OUTPUT DATA TYPE + +ifdef fmt_OUT +PULP_CFLAGS += -DOUT${fmt_OUT} +else +PULP_CFLAGS += -DOUTFP32 +endif +endif + +# VECTORIAL FORMAT for half-precision FP +ifdef vec +PULP_CFLAGS += -DVECTORIAL +endif + +# CHECK RESULTS +ifdef check +PULP_CFLAGS += -DCHECK +endif + +ifdef PRINT_RESULTS +PULP_CFLAGS += -DPRINT_RESULTS +endif + +ifdef verbose +PULP_CFLAGS += -DVERBOSE +endif + +# STATISTICS +ifdef stats +PULP_CFLAGS += -DSTATS +endif + +include $(PULP_SDK_HOME)/install/rules/pulp.mk diff --git a/fpu_tests/matmul/FP16/config.h b/fpu_tests/matmul/FP16/config.h new file mode 100644 index 0000000..9505082 --- /dev/null +++ b/fpu_tests/matmul/FP16/config.h @@ -0,0 +1,96 @@ +#ifndef _CONFIG_MATMUL_ +#define _CONFIG_MATMUL_ + +#ifdef FABRIC +#define DATA_LOCATION +#else +#define DATA_LOCATION L1_DATA +#endif + +//Define INPUT data types + +#ifdef FIXED + #ifdef FP16 + typedef signed short v2s __attribute__((vector_size (4))); + typedef float16 MA_TYPE; + typedef float16 MB_TYPE; + typedef float16 OUT_TYPE; + typedef float16 MA_VTYPE __attribute__((vector_size (4))); + typedef float16 MB_VTYPE __attribute__((vector_size (4))); + typedef float16 OUT_VTYPE __attribute__((vector_size (4))); + #undef USE_INTRINSICS + #elif defined(FP16ALT) + typedef signed short v2s __attribute__((vector_size (4))); + typedef float16alt MA_TYPE; + typedef float16alt MB_TYPE; + typedef float16alt OUT_TYPE; + typedef float16alt MA_VTYPE __attribute__((vector_size (4))); + typedef float16alt MB_VTYPE __attribute__((vector_size (4))); + typedef float16alt OUT_VTYPE __attribute__((vector_size (4))); + #undef USE_INTRINSICS + #elif defined(FP32) + typedef float MA_TYPE; + typedef float MB_TYPE; + typedef float OUT_TYPE; + #endif + +#else // MIXED + #ifdef MAFP32 + typedef float MA_TYPE; + #elif MAFP16 + typedef signed short v2s __attribute__((vector_size (4))); + typedef float16 MA_TYPE; + typedef float16 MA_VTYPE __attribute__((vector_size (4))); + #undef USE_INTRINSICS + #elif MAFP16ALT + typedef signed short v2s __attribute__((vector_size (4))); + typedef float16alt MA_TYPE; + typedef float16alt MA_VTYPE __attribute__((vector_size (4))); + #undef USE_INTRINSICS + #endif + + #ifdef MBFP32 + typedef float MB_TYPE; + #elif MBFP16 + typedef signed short v2s __attribute__((vector_size (4))); + typedef float16 MB_TYPE; + typedef float16 MB_VTYPE __attribute__((vector_size (4))); + #undef USE_INTRINSICS + #elif MBFP16ALT + typedef signed short v2s __attribute__((vector_size (4))); + typedef float16alt MB_TYPE; + typedef float16alt MB_VTYPE __attribute__((vector_size (4))); + #undef USE_INTRINSICS + #endif + // Define output data types + #ifdef OUTFP32 + typedef float OUT_TYPE; + #elif OUTFP16 + typedef signed short v2s __attribute__((vector_size (4))); + typedef float16 OUT_TYPE; + typedef float16 OUT_VTYPE __attribute__((vector_size (4))); + #elif OUTFP16ALT + typedef signed short v2s __attribute__((vector_size (4))); + typedef float16alt OUT_TYPE; + typedef float16alt OUT_VTYPE __attribute__((vector_size (4))); + #endif + +#endif + +#ifndef THR + #define THR 0.004f +#endif +#ifdef VECTORIAL + #if defined(MAFP16) && defined (MBFP16ALT) || defined (MAFP16ALT) && defined (MBFP16) + #error "Vecotrization does not work for different data types...!!!" + #endif + + #if defined (MAFP32) || defined (MBFP32) || defined (OUTFP32) + + #error "Vecotrization does not work for FP32 data type...!!!" + #endif +#endif + +void matMul(MA_TYPE * __restrict__ A, MB_TYPE * __restrict__ B, OUT_TYPE * __restrict__ C, int M, int N, int P); + +#endif diff --git a/fpu_tests/matmul/FP16/data.h b/fpu_tests/matmul/FP16/data.h new file mode 100644 index 0000000..5c74f33 --- /dev/null +++ b/fpu_tests/matmul/FP16/data.h @@ -0,0 +1,7 @@ +#define M 8 +#define N 8 +#define P 8 + +PI_L2 MA_TYPE A_mat[] = {-1.4462890625, -0.329345703125, 0.3203125, -1.083984375, 0.25146484375, 0.15234375, -1.6630859375, 0.71728515625, 0.1917724609375, 0.5859375, 2.029296875, -0.1700439453125, 0.2003173828125, -0.1534423828125, 1.2353515625, 0.73681640625, 0.38427734375, -0.6748046875, 0.60791015625, -0.253662109375, 1.62890625, 1.1982421875, -0.134521484375, -0.3447265625, -1.3662109375, 0.039459228515625, 0.1907958984375, -1.96875, -0.18115234375, -0.11669921875, -0.1326904296875, 0.281494140625, 0.70556640625, -0.58837890625, -0.7724609375, 0.07135009765625, -0.1737060546875, 0.486328125, 0.018463134765625, -0.364501953125, 0.478271484375, 0.98828125, 0.6455078125, -0.2303466796875, 0.306640625, 0.22119140625, 0.364013671875, 0.0013647079467773438, -0.43408203125, -0.59375, 0.168701171875, 0.9921875, -0.04827880859375, -0.6396484375, 0.9873046875, -0.09088134765625, -0.61376953125, 1.4345703125, 0.400634765625, 0.259033203125, 0.93115234375, 1.4326171875, -1.08984375, -1.767578125, }; +PI_L2 MB_TYPE B_mat[] = {-0.345703125, 0.41845703125, -1.3466796875, -0.826171875, 1.490234375, -0.86474609375, 1.185546875, -0.12469482421875, -0.51025390625, -0.724609375, -0.057769775390625, -1.701171875, -0.92236328125, -0.422119140625, 0.21533203125, -0.0709228515625, -0.497314453125, -0.81298828125, 1.9052734375, -0.60546875, -1.1884765625, 1.6962890625, -0.306884765625, 0.1558837890625, 0.53759765625, 0.360107421875, 0.128662109375, -1.00390625, -0.8955078125, -0.16064453125, 0.73583984375, -1.662109375, 0.64404296875, 1.5068359375, 0.03680419921875, -0.92431640625, -0.62255859375, -1.263671875, -0.92529296875, 1.1123046875, -1.1728515625, 2.85546875, 1.126953125, -1.2001953125, 1.0205078125, 1.5361328125, 1.1337890625, -1.283203125, 1.568359375, -0.95703125, -0.2474365234375, -1.115234375, -0.416748046875, 1.0478515625, 1.419921875, 1.8359375, -0.41845703125, 0.007236480712890625, -1.646484375, -0.01568603515625, 1.05078125, -0.89013671875, 0.55126953125, -1.8427734375, }; +PI_L2 OUT_TYPE ref[] = {-2.998046875, 1.3935546875, 1.8505859375, 4.07421875, 0.18408203125, -0.357421875, -4.7109375, -2.236328125, 0.471923828125, -3.369140625, 1.869140625, -3.60546875, -2.53515625, 3.203125, 1.4072265625, 1.86328125, -0.650390625, 6.06640625, 2.66015625, -2.0703125, 0.6025390625, 0.97265625, -0.591796875, 1.1796875, -1.0068359375, -1.943359375, 1.37890625, 3.375, -0.19140625, 1.46484375, -3.115234375, 2.65625, -0.0216064453125, 2.482421875, -1.240234375, 0.376220703125, 2.66015625, -0.372802734375, 1.5380859375, -0.396484375, -0.607421875, -0.378662109375, 0.66748046875, -3.19140625, -0.87548828125, 0.6337890625, 0.8974609375, 1.076171875, 3.20703125, -2.375, 0.2509765625, -0.0181121826171875, -2.318359375, 0.94677734375, 0.70751953125, 1.220703125, -2.62890625, 4.99609375, 6.3671875, -3.77734375, -3.46875, 2.01953125, -2.111328125, 0.0625, }; diff --git a/fpu_tests/matmul/FP16/main.c b/fpu_tests/matmul/FP16/main.c new file mode 100644 index 0000000..7d12782 --- /dev/null +++ b/fpu_tests/matmul/FP16/main.c @@ -0,0 +1,122 @@ +// License, Version 0.51 (the "License"); you may not use this file except in +// or agreed to in writing, software, hardware and materials distributed under +// this License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +// CONDITIONS OF ANY KIND, either express or implied. See the License for the +// specific language governing permissions and limitations under the License. + +#include "config.h" +#include "pulp.h" + +#include +#include +#include /* for CHAR_BIT */ +#include + +#include "data.h" + +#define STACK_SIZE 2048 + +void main_fn(testresult_t *result, void (*start)(), void (*stop)()); + +testcase_t testcases[] = { + { .name = "Matrix Multiplication", .test = main_fn }, + {0, 0} +}; + +DATA_LOCATION MA_TYPE matA[M*N] __attribute__ ((aligned (4))); +DATA_LOCATION MB_TYPE matB[N*P] __attribute__ ((aligned (4))); +DATA_LOCATION OUT_TYPE matC[M*P] __attribute__ ((aligned (4))); + +// End of computation +int done = 0; + +int retval = 0; + +void __attribute__ ((noinline)) matrix_init(MA_TYPE * __restrict__ A, MB_TYPE * __restrict__ B, OUT_TYPE * __restrict__ C) { + for (int i = 0; i < M; i++) + for (int j = 0; j < N; j++){ + A[i*N+j] = A_mat[i*N+j]; + + + } + + for (int i = 0; i < N; i++) + for (int j = 0; j < P; j++){ + B[i*P+j] = B_mat[i*P+j]; + } + for (int i = 0; i < M; i++) + for (int j = 0; j < P; j++) + C[i*P+j] = 0; + +} + +int __attribute ((noinline)) check_result(OUT_TYPE * __restrict__ result) { + #ifndef FABRIC + synch_barrier(); + #endif + + if(get_core_id() == 0) { + float diff; + int err = 0; + + for (int i = 0; i < (M*P); i++) { + diff = fabs(result[i] - ref[i]); + if(diff > THR) { + err++; + #ifdef VERBOSE + + printf("Error at index %d:\t refrence %f\t output %f\t error %.4f\n", i, ref[i], result[i], diff); + #endif + + } + + #ifdef PRINT_RESULTS + + printf("index %d:\t refrence %f\t output %f\t error %f\n", i, ref[i], result[i], diff); + #endif + } + + return err; + + } +} + +void main_fn(testresult_t *result, void (*start)(), void (*stop)()){ + + if (get_core_id() == 0) + matrix_init(matA, matB, matC); + + #ifndef FABRIC + synch_barrier(); + #endif + + #ifdef STATS + start(); + #endif + matMul(matA, matB, matC, M, N, P); + + #ifdef STATS + stop(); + #endif + + #ifdef CHECK + result->errors = check_result(matC); + #endif +}; + +int main() +{ + #ifdef FABRIC + main_fn(); + #else + if (rt_cluster_id() != 0) + return bench_cluster_forward(0); + + int nbErrors = run_suite(testcases); + + synch_barrier(); + #endif + retval = nbErrors; + + return retval; +} diff --git a/fpu_tests/matmul/FP16/matmul.c b/fpu_tests/matmul/FP16/matmul.c new file mode 100644 index 0000000..0a616ca --- /dev/null +++ b/fpu_tests/matmul/FP16/matmul.c @@ -0,0 +1,103 @@ +#include "config.h" +#include "pulp.h" + +#ifdef VECTORIAL + +void __attribute__ ((noinline)) matMul(MA_TYPE * __restrict__ A, MB_TYPE * __restrict__ B, OUT_TYPE * __restrict__ C, int M, int N, int P){ + + OUT_VTYPE temp; + MA_VTYPE Av; + MB_VTYPE Bv0; + MB_VTYPE Bv1; + OUT_VTYPE *Cv; + int blockSize = (M+NUM_CORES-1)/NUM_CORES; + int start = get_core_id()*blockSize; + int end = start + blockSize < M? start + blockSize : M; + + for (int i = start; i < end; i++) { + for (int j=0; j < (P & 0xfffffffe); j+=2) { + + temp = (OUT_VTYPE) {0, 0}; + + // Manual unrolling + for (int k=0; k<(N & 0xfffffffe); k+=2){ + Av = *((MA_VTYPE *) &A[i*N+k]); + Bv0 = *((MB_VTYPE *) &B[k*P+j]); + Bv1 = *((MB_VTYPE *) &B[k*P+j+P]); + temp += (OUT_VTYPE)(__builtin_shuffle(Av, (v2s){0,0})) * Bv0; + temp += (OUT_VTYPE)(__builtin_shuffle(Av, (v2s){1,1})) * Bv1; + } + + if (N & 0x00000001) + { + temp[0] += A[i*N+N-1] * B[(N-1)*P+j]; + temp[1] += A[i*N+N-1] * B[(N-1)*P+j+1]; + } + Cv = (OUT_VTYPE *) &C[i*P+j]; + + *Cv = temp; + } + } + /// Leftover in P + if (P & 0x00000001) + { + for (int i = start; i < end; i++) { + + OUT_TYPE temp1 = 0; + + // Manual unrolling + for (int k=0; k<(N & 0xfffffffe); k+=2){ + temp1 += A[i*N+k] * B[k*P+P-1]; + temp1 += A[i*N+k+1] * B[k*P+P-1+P]; + } + if (N & 0x00000001) + { + temp1 += A[i*N+N-1] * B[(N-1)*P+P-1]; + } + C[i*P+(P-1)]=temp1; + } + } + + #if NUM_CORES > 1 + synch_barrier(); + #endif +} +#else + +void __attribute__ ((noinline)) matMul(MA_TYPE * __restrict__ A, MB_TYPE * __restrict__ B, OUT_TYPE * __restrict__ C, int M, int N, int P) { + + int blockSize = (M+NUM_CORES-1)/NUM_CORES; + int start = get_core_id()*blockSize; + int end = start + blockSize < M? start + blockSize : M; + + for (int i = start; i < end; i++) { + for (int j = 0; j < P; j++) { + OUT_TYPE temp = 0; + + //Manual unrolling + for (int k = 0; k < (N & 0xfffffffe); k+=2) { + temp += (OUT_TYPE)(A[i*N+k] * B[k*P+j]); + temp += (OUT_TYPE)(A[i*N+k+1] * B[k*P+j+P]); + + } + C[i*P+j] = (OUT_TYPE)(temp); + } + } + // Leftover on N + + if (N & 0x00000001) + { + for (int i=start; i 1 + synch_barrier(); + #endif +} +#endif diff --git a/fpu_tests/matmul/FP16/support_func.c b/fpu_tests/matmul/FP16/support_func.c new file mode 100644 index 0000000..6d24d2e --- /dev/null +++ b/fpu_tests/matmul/FP16/support_func.c @@ -0,0 +1,15 @@ +#include "config.h" +#include "pulp.h" +double __extendohfdf2(float16alt value) +{ + float result; + __asm__ __volatile__ ("fcvt.s.ah %0, %1": "=f"(result): "f"(value) :); + return (double) result; +} + +double __extendhfdf2(float16 value) +{ + float result; + __asm__ __volatile__ ("fcvt.s.h %0, %1": "=f"(result): "f"(value) :); + return (double) result; +} diff --git a/fpu_tests/matmul/FP16ALT/Makefile b/fpu_tests/matmul/FP16ALT/Makefile new file mode 100644 index 0000000..23f7695 --- /dev/null +++ b/fpu_tests/matmul/FP16ALT/Makefile @@ -0,0 +1,82 @@ +PULP_APP = fp_matmul + +PULP_APP_FC_SRCS = main.c +PULP_APP_SRCS = support_func.c matmul.c + +PULP_CFLAGS += -O3 -g3 +PULP_CFLAGS += -mno-memcpy + +ifdef cores +PULP_CFLAGS += -DNUM_CORES=${cores} #-flto -DFABRIC=1 +else +PULP_CFLAGS += -DNUM_CORES=1 +endif + + +ifdef FABRIC +PULP_CFLAGS += -DFABRIC +endif + +ifdef cores +PULP_CFLAGS += -DUSE_INTRINSICS +endif + +ifdef thr +PULP_CFLAGS += -DTHR=${thr} +endif + +PULP_CFLAGS += -fno-tree-vectorize + + +ifdef fmt +PULP_CFLAGS += -D${fmt} -DFIXED + +else +# FP FORMAT +#INPUT DATA TYPE +ifdef fmt_A +PULP_CFLAGS += -DMA${fmt_A} +else +PULP_CFLAGS += -DMAFP32 +endif + +#FILTER DATA TYPE +ifdef fmt_B +PULP_CFLAGS += -DMB${fmt_B} +else +PULP_CFLAGS += -DMBFP32 +endif + +# OUTPUT DATA TYPE + +ifdef fmt_OUT +PULP_CFLAGS += -DOUT${fmt_OUT} +else +PULP_CFLAGS += -DOUTFP32 +endif +endif + +# VECTORIAL FORMAT for half-precision FP +ifdef vec +PULP_CFLAGS += -DVECTORIAL +endif + +# CHECK RESULTS +ifdef check +PULP_CFLAGS += -DCHECK +endif + +ifdef PRINT_RESULTS +PULP_CFLAGS += -DPRINT_RESULTS +endif + +ifdef verbose +PULP_CFLAGS += -DVERBOSE +endif + +# STATISTICS +ifdef stats +PULP_CFLAGS += -DSTATS +endif + +include $(PULP_SDK_HOME)/install/rules/pulp.mk diff --git a/fpu_tests/matmul/FP16ALT/config.h b/fpu_tests/matmul/FP16ALT/config.h new file mode 100644 index 0000000..9505082 --- /dev/null +++ b/fpu_tests/matmul/FP16ALT/config.h @@ -0,0 +1,96 @@ +#ifndef _CONFIG_MATMUL_ +#define _CONFIG_MATMUL_ + +#ifdef FABRIC +#define DATA_LOCATION +#else +#define DATA_LOCATION L1_DATA +#endif + +//Define INPUT data types + +#ifdef FIXED + #ifdef FP16 + typedef signed short v2s __attribute__((vector_size (4))); + typedef float16 MA_TYPE; + typedef float16 MB_TYPE; + typedef float16 OUT_TYPE; + typedef float16 MA_VTYPE __attribute__((vector_size (4))); + typedef float16 MB_VTYPE __attribute__((vector_size (4))); + typedef float16 OUT_VTYPE __attribute__((vector_size (4))); + #undef USE_INTRINSICS + #elif defined(FP16ALT) + typedef signed short v2s __attribute__((vector_size (4))); + typedef float16alt MA_TYPE; + typedef float16alt MB_TYPE; + typedef float16alt OUT_TYPE; + typedef float16alt MA_VTYPE __attribute__((vector_size (4))); + typedef float16alt MB_VTYPE __attribute__((vector_size (4))); + typedef float16alt OUT_VTYPE __attribute__((vector_size (4))); + #undef USE_INTRINSICS + #elif defined(FP32) + typedef float MA_TYPE; + typedef float MB_TYPE; + typedef float OUT_TYPE; + #endif + +#else // MIXED + #ifdef MAFP32 + typedef float MA_TYPE; + #elif MAFP16 + typedef signed short v2s __attribute__((vector_size (4))); + typedef float16 MA_TYPE; + typedef float16 MA_VTYPE __attribute__((vector_size (4))); + #undef USE_INTRINSICS + #elif MAFP16ALT + typedef signed short v2s __attribute__((vector_size (4))); + typedef float16alt MA_TYPE; + typedef float16alt MA_VTYPE __attribute__((vector_size (4))); + #undef USE_INTRINSICS + #endif + + #ifdef MBFP32 + typedef float MB_TYPE; + #elif MBFP16 + typedef signed short v2s __attribute__((vector_size (4))); + typedef float16 MB_TYPE; + typedef float16 MB_VTYPE __attribute__((vector_size (4))); + #undef USE_INTRINSICS + #elif MBFP16ALT + typedef signed short v2s __attribute__((vector_size (4))); + typedef float16alt MB_TYPE; + typedef float16alt MB_VTYPE __attribute__((vector_size (4))); + #undef USE_INTRINSICS + #endif + // Define output data types + #ifdef OUTFP32 + typedef float OUT_TYPE; + #elif OUTFP16 + typedef signed short v2s __attribute__((vector_size (4))); + typedef float16 OUT_TYPE; + typedef float16 OUT_VTYPE __attribute__((vector_size (4))); + #elif OUTFP16ALT + typedef signed short v2s __attribute__((vector_size (4))); + typedef float16alt OUT_TYPE; + typedef float16alt OUT_VTYPE __attribute__((vector_size (4))); + #endif + +#endif + +#ifndef THR + #define THR 0.004f +#endif +#ifdef VECTORIAL + #if defined(MAFP16) && defined (MBFP16ALT) || defined (MAFP16ALT) && defined (MBFP16) + #error "Vecotrization does not work for different data types...!!!" + #endif + + #if defined (MAFP32) || defined (MBFP32) || defined (OUTFP32) + + #error "Vecotrization does not work for FP32 data type...!!!" + #endif +#endif + +void matMul(MA_TYPE * __restrict__ A, MB_TYPE * __restrict__ B, OUT_TYPE * __restrict__ C, int M, int N, int P); + +#endif diff --git a/fpu_tests/matmul/FP16ALT/data.h b/fpu_tests/matmul/FP16ALT/data.h new file mode 100644 index 0000000..f01329d --- /dev/null +++ b/fpu_tests/matmul/FP16ALT/data.h @@ -0,0 +1,7 @@ +#define M 8 +#define N 8 +#define P 8 + +PI_L2 MA_TYPE A_mat[] = {-0.1435546875, -2.203125, 0.20703125, -0.00146484375, -0.10498046875, -0.255859375, 1.3515625, -0.7109375, 1.171875, 0.283203125, 0.390625, 1.7890625, 1.4921875, 0.59375, 0.5625, -2.40625, -0.76953125, 0.83203125, 0.89453125, 0.1142578125, 0.365234375, -0.55859375, 2.15625, -0.5859375, -1.1328125, -0.55859375, -0.1259765625, 1.4921875, 0.41015625, 0.11669921875, -0.78515625, -1.0859375, -0.71484375, -0.67578125, -0.76171875, 1.2109375, 1.1484375, 0.66015625, 0.6875, -0.74609375, -0.03564453125, 0.72265625, 0.0849609375, -1.234375, 0.72265625, -2.140625, -0.97265625, -2.328125, -0.9453125, 0.09912109375, -0.00640869140625, -0.59765625, -0.5078125, -0.75, 0.04248046875, -0.431640625, -0.326171875, -0.52734375, 0.5078125, -1.0078125, -0.07275390625, 0.125, 0.055419921875, -1.09375, }; +PI_L2 MB_TYPE B_mat[] = {-3.21875, 0.76953125, -0.875, -0.44921875, 1.0078125, -1.7265625, 0.369140625, 0.287109375, 0.13671875, -0.50390625, -0.486328125, 0.71484375, 0.392578125, -0.1494140625, 0.5625, 0.451171875, -0.16796875, 0.40234375, 0.3671875, 1.4921875, -0.796875, 1.1015625, 0.388671875, 0.97265625, -0.609375, 1.3046875, -0.0189208984375, -1.328125, 0.0986328125, 0.67578125, -0.09716796875, -0.1962890625, 0.671875, 0.271484375, 0.7421875, -0.8828125, -1.0625, -2.171875, 0.30859375, 1.4453125, -1.5703125, -0.57421875, 1.1015625, 0.953125, 0.396484375, 0.77734375, 0.435546875, 1.9375, -0.0255126953125, 1.8046875, 1.3203125, 0.80078125, -2.140625, 0.5625, 0.08203125, -0.6796875, -1.6328125, -0.08544921875, -1.3046875, 0.3828125, 0.3515625, 0.333984375, -0.89453125, -0.1181640625, }; +PI_L2 OUT_TYPE ref[] = {1.59375, 3.703125, 3.609375, -0.5390625, -4.3125, 1.359375, -0.61328125, -2.3125, -0.890625, 4.53125, 4.59375, -3.34375, -2.25, -3.6875, 3.5, 3.71875, 4.40625, 3.84375, 3.859375, 2.78125, -6.59375, 2.0625, 1.09375, -0.953125, 4.5625, 0.0224609375, 2.0, -3.359375, -0.201171875, 1.3125, 0.15234375, 0.4921875, 2.53125, 2.296875, 4.09375, -3.03125, -2.953125, -0.5390625, 0.30078125, 1.0703125, 8.625, -2.109375, -0.34375, -2.0625, -0.3046875, -5.34375, 1.8359375, -1.5390625, 4.9375, -1.15625, 0.203125, 0.8828125, -0.96875, 1.609375, -0.328125, -2.296875, 3.046875, -0.9921875, 2.328125, 1.671875, -1.4140625, 0.443359375, 0.890625, 0.5859375, }; diff --git a/fpu_tests/matmul/FP16ALT/main.c b/fpu_tests/matmul/FP16ALT/main.c new file mode 100644 index 0000000..7d12782 --- /dev/null +++ b/fpu_tests/matmul/FP16ALT/main.c @@ -0,0 +1,122 @@ +// License, Version 0.51 (the "License"); you may not use this file except in +// or agreed to in writing, software, hardware and materials distributed under +// this License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +// CONDITIONS OF ANY KIND, either express or implied. See the License for the +// specific language governing permissions and limitations under the License. + +#include "config.h" +#include "pulp.h" + +#include +#include +#include /* for CHAR_BIT */ +#include + +#include "data.h" + +#define STACK_SIZE 2048 + +void main_fn(testresult_t *result, void (*start)(), void (*stop)()); + +testcase_t testcases[] = { + { .name = "Matrix Multiplication", .test = main_fn }, + {0, 0} +}; + +DATA_LOCATION MA_TYPE matA[M*N] __attribute__ ((aligned (4))); +DATA_LOCATION MB_TYPE matB[N*P] __attribute__ ((aligned (4))); +DATA_LOCATION OUT_TYPE matC[M*P] __attribute__ ((aligned (4))); + +// End of computation +int done = 0; + +int retval = 0; + +void __attribute__ ((noinline)) matrix_init(MA_TYPE * __restrict__ A, MB_TYPE * __restrict__ B, OUT_TYPE * __restrict__ C) { + for (int i = 0; i < M; i++) + for (int j = 0; j < N; j++){ + A[i*N+j] = A_mat[i*N+j]; + + + } + + for (int i = 0; i < N; i++) + for (int j = 0; j < P; j++){ + B[i*P+j] = B_mat[i*P+j]; + } + for (int i = 0; i < M; i++) + for (int j = 0; j < P; j++) + C[i*P+j] = 0; + +} + +int __attribute ((noinline)) check_result(OUT_TYPE * __restrict__ result) { + #ifndef FABRIC + synch_barrier(); + #endif + + if(get_core_id() == 0) { + float diff; + int err = 0; + + for (int i = 0; i < (M*P); i++) { + diff = fabs(result[i] - ref[i]); + if(diff > THR) { + err++; + #ifdef VERBOSE + + printf("Error at index %d:\t refrence %f\t output %f\t error %.4f\n", i, ref[i], result[i], diff); + #endif + + } + + #ifdef PRINT_RESULTS + + printf("index %d:\t refrence %f\t output %f\t error %f\n", i, ref[i], result[i], diff); + #endif + } + + return err; + + } +} + +void main_fn(testresult_t *result, void (*start)(), void (*stop)()){ + + if (get_core_id() == 0) + matrix_init(matA, matB, matC); + + #ifndef FABRIC + synch_barrier(); + #endif + + #ifdef STATS + start(); + #endif + matMul(matA, matB, matC, M, N, P); + + #ifdef STATS + stop(); + #endif + + #ifdef CHECK + result->errors = check_result(matC); + #endif +}; + +int main() +{ + #ifdef FABRIC + main_fn(); + #else + if (rt_cluster_id() != 0) + return bench_cluster_forward(0); + + int nbErrors = run_suite(testcases); + + synch_barrier(); + #endif + retval = nbErrors; + + return retval; +} diff --git a/fpu_tests/matmul/FP16ALT/matmul.c b/fpu_tests/matmul/FP16ALT/matmul.c new file mode 100644 index 0000000..0a616ca --- /dev/null +++ b/fpu_tests/matmul/FP16ALT/matmul.c @@ -0,0 +1,103 @@ +#include "config.h" +#include "pulp.h" + +#ifdef VECTORIAL + +void __attribute__ ((noinline)) matMul(MA_TYPE * __restrict__ A, MB_TYPE * __restrict__ B, OUT_TYPE * __restrict__ C, int M, int N, int P){ + + OUT_VTYPE temp; + MA_VTYPE Av; + MB_VTYPE Bv0; + MB_VTYPE Bv1; + OUT_VTYPE *Cv; + int blockSize = (M+NUM_CORES-1)/NUM_CORES; + int start = get_core_id()*blockSize; + int end = start + blockSize < M? start + blockSize : M; + + for (int i = start; i < end; i++) { + for (int j=0; j < (P & 0xfffffffe); j+=2) { + + temp = (OUT_VTYPE) {0, 0}; + + // Manual unrolling + for (int k=0; k<(N & 0xfffffffe); k+=2){ + Av = *((MA_VTYPE *) &A[i*N+k]); + Bv0 = *((MB_VTYPE *) &B[k*P+j]); + Bv1 = *((MB_VTYPE *) &B[k*P+j+P]); + temp += (OUT_VTYPE)(__builtin_shuffle(Av, (v2s){0,0})) * Bv0; + temp += (OUT_VTYPE)(__builtin_shuffle(Av, (v2s){1,1})) * Bv1; + } + + if (N & 0x00000001) + { + temp[0] += A[i*N+N-1] * B[(N-1)*P+j]; + temp[1] += A[i*N+N-1] * B[(N-1)*P+j+1]; + } + Cv = (OUT_VTYPE *) &C[i*P+j]; + + *Cv = temp; + } + } + /// Leftover in P + if (P & 0x00000001) + { + for (int i = start; i < end; i++) { + + OUT_TYPE temp1 = 0; + + // Manual unrolling + for (int k=0; k<(N & 0xfffffffe); k+=2){ + temp1 += A[i*N+k] * B[k*P+P-1]; + temp1 += A[i*N+k+1] * B[k*P+P-1+P]; + } + if (N & 0x00000001) + { + temp1 += A[i*N+N-1] * B[(N-1)*P+P-1]; + } + C[i*P+(P-1)]=temp1; + } + } + + #if NUM_CORES > 1 + synch_barrier(); + #endif +} +#else + +void __attribute__ ((noinline)) matMul(MA_TYPE * __restrict__ A, MB_TYPE * __restrict__ B, OUT_TYPE * __restrict__ C, int M, int N, int P) { + + int blockSize = (M+NUM_CORES-1)/NUM_CORES; + int start = get_core_id()*blockSize; + int end = start + blockSize < M? start + blockSize : M; + + for (int i = start; i < end; i++) { + for (int j = 0; j < P; j++) { + OUT_TYPE temp = 0; + + //Manual unrolling + for (int k = 0; k < (N & 0xfffffffe); k+=2) { + temp += (OUT_TYPE)(A[i*N+k] * B[k*P+j]); + temp += (OUT_TYPE)(A[i*N+k+1] * B[k*P+j+P]); + + } + C[i*P+j] = (OUT_TYPE)(temp); + } + } + // Leftover on N + + if (N & 0x00000001) + { + for (int i=start; i 1 + synch_barrier(); + #endif +} +#endif diff --git a/fpu_tests/matmul/FP16ALT/support_func.c b/fpu_tests/matmul/FP16ALT/support_func.c new file mode 100644 index 0000000..6d24d2e --- /dev/null +++ b/fpu_tests/matmul/FP16ALT/support_func.c @@ -0,0 +1,15 @@ +#include "config.h" +#include "pulp.h" +double __extendohfdf2(float16alt value) +{ + float result; + __asm__ __volatile__ ("fcvt.s.ah %0, %1": "=f"(result): "f"(value) :); + return (double) result; +} + +double __extendhfdf2(float16 value) +{ + float result; + __asm__ __volatile__ ("fcvt.s.h %0, %1": "=f"(result): "f"(value) :); + return (double) result; +} diff --git a/fpu_tests/matmul/FP32/Makefile b/fpu_tests/matmul/FP32/Makefile new file mode 100644 index 0000000..23f7695 --- /dev/null +++ b/fpu_tests/matmul/FP32/Makefile @@ -0,0 +1,82 @@ +PULP_APP = fp_matmul + +PULP_APP_FC_SRCS = main.c +PULP_APP_SRCS = support_func.c matmul.c + +PULP_CFLAGS += -O3 -g3 +PULP_CFLAGS += -mno-memcpy + +ifdef cores +PULP_CFLAGS += -DNUM_CORES=${cores} #-flto -DFABRIC=1 +else +PULP_CFLAGS += -DNUM_CORES=1 +endif + + +ifdef FABRIC +PULP_CFLAGS += -DFABRIC +endif + +ifdef cores +PULP_CFLAGS += -DUSE_INTRINSICS +endif + +ifdef thr +PULP_CFLAGS += -DTHR=${thr} +endif + +PULP_CFLAGS += -fno-tree-vectorize + + +ifdef fmt +PULP_CFLAGS += -D${fmt} -DFIXED + +else +# FP FORMAT +#INPUT DATA TYPE +ifdef fmt_A +PULP_CFLAGS += -DMA${fmt_A} +else +PULP_CFLAGS += -DMAFP32 +endif + +#FILTER DATA TYPE +ifdef fmt_B +PULP_CFLAGS += -DMB${fmt_B} +else +PULP_CFLAGS += -DMBFP32 +endif + +# OUTPUT DATA TYPE + +ifdef fmt_OUT +PULP_CFLAGS += -DOUT${fmt_OUT} +else +PULP_CFLAGS += -DOUTFP32 +endif +endif + +# VECTORIAL FORMAT for half-precision FP +ifdef vec +PULP_CFLAGS += -DVECTORIAL +endif + +# CHECK RESULTS +ifdef check +PULP_CFLAGS += -DCHECK +endif + +ifdef PRINT_RESULTS +PULP_CFLAGS += -DPRINT_RESULTS +endif + +ifdef verbose +PULP_CFLAGS += -DVERBOSE +endif + +# STATISTICS +ifdef stats +PULP_CFLAGS += -DSTATS +endif + +include $(PULP_SDK_HOME)/install/rules/pulp.mk diff --git a/fpu_tests/matmul/FP32/config.h b/fpu_tests/matmul/FP32/config.h new file mode 100644 index 0000000..9505082 --- /dev/null +++ b/fpu_tests/matmul/FP32/config.h @@ -0,0 +1,96 @@ +#ifndef _CONFIG_MATMUL_ +#define _CONFIG_MATMUL_ + +#ifdef FABRIC +#define DATA_LOCATION +#else +#define DATA_LOCATION L1_DATA +#endif + +//Define INPUT data types + +#ifdef FIXED + #ifdef FP16 + typedef signed short v2s __attribute__((vector_size (4))); + typedef float16 MA_TYPE; + typedef float16 MB_TYPE; + typedef float16 OUT_TYPE; + typedef float16 MA_VTYPE __attribute__((vector_size (4))); + typedef float16 MB_VTYPE __attribute__((vector_size (4))); + typedef float16 OUT_VTYPE __attribute__((vector_size (4))); + #undef USE_INTRINSICS + #elif defined(FP16ALT) + typedef signed short v2s __attribute__((vector_size (4))); + typedef float16alt MA_TYPE; + typedef float16alt MB_TYPE; + typedef float16alt OUT_TYPE; + typedef float16alt MA_VTYPE __attribute__((vector_size (4))); + typedef float16alt MB_VTYPE __attribute__((vector_size (4))); + typedef float16alt OUT_VTYPE __attribute__((vector_size (4))); + #undef USE_INTRINSICS + #elif defined(FP32) + typedef float MA_TYPE; + typedef float MB_TYPE; + typedef float OUT_TYPE; + #endif + +#else // MIXED + #ifdef MAFP32 + typedef float MA_TYPE; + #elif MAFP16 + typedef signed short v2s __attribute__((vector_size (4))); + typedef float16 MA_TYPE; + typedef float16 MA_VTYPE __attribute__((vector_size (4))); + #undef USE_INTRINSICS + #elif MAFP16ALT + typedef signed short v2s __attribute__((vector_size (4))); + typedef float16alt MA_TYPE; + typedef float16alt MA_VTYPE __attribute__((vector_size (4))); + #undef USE_INTRINSICS + #endif + + #ifdef MBFP32 + typedef float MB_TYPE; + #elif MBFP16 + typedef signed short v2s __attribute__((vector_size (4))); + typedef float16 MB_TYPE; + typedef float16 MB_VTYPE __attribute__((vector_size (4))); + #undef USE_INTRINSICS + #elif MBFP16ALT + typedef signed short v2s __attribute__((vector_size (4))); + typedef float16alt MB_TYPE; + typedef float16alt MB_VTYPE __attribute__((vector_size (4))); + #undef USE_INTRINSICS + #endif + // Define output data types + #ifdef OUTFP32 + typedef float OUT_TYPE; + #elif OUTFP16 + typedef signed short v2s __attribute__((vector_size (4))); + typedef float16 OUT_TYPE; + typedef float16 OUT_VTYPE __attribute__((vector_size (4))); + #elif OUTFP16ALT + typedef signed short v2s __attribute__((vector_size (4))); + typedef float16alt OUT_TYPE; + typedef float16alt OUT_VTYPE __attribute__((vector_size (4))); + #endif + +#endif + +#ifndef THR + #define THR 0.004f +#endif +#ifdef VECTORIAL + #if defined(MAFP16) && defined (MBFP16ALT) || defined (MAFP16ALT) && defined (MBFP16) + #error "Vecotrization does not work for different data types...!!!" + #endif + + #if defined (MAFP32) || defined (MBFP32) || defined (OUTFP32) + + #error "Vecotrization does not work for FP32 data type...!!!" + #endif +#endif + +void matMul(MA_TYPE * __restrict__ A, MB_TYPE * __restrict__ B, OUT_TYPE * __restrict__ C, int M, int N, int P); + +#endif diff --git a/fpu_tests/matmul/FP32/data.h b/fpu_tests/matmul/FP32/data.h new file mode 100644 index 0000000..18b3c69 --- /dev/null +++ b/fpu_tests/matmul/FP32/data.h @@ -0,0 +1,7 @@ +#define M 8 +#define N 8 +#define P 8 + +PI_L2 MA_TYPE A_mat[] = {-1.321346640586853, -0.14075148105621338, -1.3874461650848389, 0.28156477212905884, -0.9179959893226624, -1.2968281507492065, 0.19895713031291962, -0.1636660248041153, 0.09745144098997116, -0.4712808132171631, -1.2986916303634644, -1.3279190063476562, -0.6729908585548401, 0.21538715064525604, 0.0033319147769361734, -0.3368145227432251, -0.4880366027355194, -1.6056562662124634, -0.06749758124351501, 0.537982702255249, -1.518497109413147, -0.14922605454921722, 1.2041049003601074, 0.08387433737516403, 1.0984026193618774, -0.27249911427497864, -0.6649801731109619, -0.6570414304733276, -0.3877118229866028, -0.819801926612854, 0.21040719747543335, 2.10652232170105, -0.1445361226797104, 0.8136182427406311, -0.6583006978034973, -0.3472365438938141, -1.0367175340652466, 1.103456974029541, -0.19918836653232574, 0.05155167728662491, 1.4965381622314453, 0.9884462356567383, 1.1312751770019531, -0.5285311341285706, -0.37252330780029297, -0.5133379697799683, 0.3439998924732208, -0.6833076477050781, -1.3308806419372559, -0.0043663098476827145, 1.0170615911483765, -0.2980661988258362, -0.6847434043884277, 0.132366344332695, 1.3589580059051514, -0.03737796097993851, -0.5342410802841187, -0.7537646293640137, -1.2974865436553955, -0.5541737079620361, -0.4874458611011505, 1.8318110704421997, 0.20764854550361633, 1.5493804216384888, }; +PI_L2 MB_TYPE B_mat[] = {-0.8827683925628662, -0.5542697310447693, 0.14389587938785553, -1.975010633468628, 0.20784620940685272, 0.013685223646461964, -0.9441406726837158, 0.2295272946357727, 0.18610191345214844, -0.022595224902033806, -2.596245288848877, 0.2539166808128357, 0.181132510304451, 0.5449540615081787, -0.025274118408560753, -0.07331778109073639, -0.7438264489173889, -0.23840615153312683, 1.428622841835022, -0.34748250246047974, -1.5984361171722412, 0.20564231276512146, -1.1283481121063232, -0.9706998467445374, 1.064945936203003, 0.5016964077949524, 1.2105423212051392, -0.5837512612342834, -0.983349084854126, 1.118739128112793, -0.43573465943336487, -0.2066168338060379, 2.088926315307617, 0.21492750942707062, 0.019352668896317482, -1.092134952545166, 2.3897173404693604, 0.4519634544849396, -1.5889497995376587, -1.6419037580490112, 0.4415695369243622, -2.7164535522460938, 0.9438610076904297, -0.4197200834751129, -0.4402216672897339, -1.895782709121704, 1.4696519374847412, -0.043221864849328995, -0.6337109208106995, 0.13316427171230316, 1.1930891275405884, -1.0255396366119385, 0.17155316472053528, 0.0703289583325386, -0.42407506704330444, 0.22795960307121277, 0.6689052581787109, 1.656773567199707, -0.28926777839660645, 0.4480336606502533, -0.4898584485054016, 0.8577049374580383, -0.40668636560440063, -1.1225101947784424, }; +PI_L2 OUT_TYPE ref[] = {-0.25370487570762634, 4.288405895233154, -2.4230763912200928, 4.161197662353516, 0.1321820169687271, 1.8521130084991455, 2.2288806438446045, 2.7880353927612305, -2.160022497177124, -1.68727707862854, -1.93358314037323, 1.4045865535736084, 1.7790610790252686, -3.0093014240264893, 3.4853577613830566, 3.0664453506469727, -3.1897361278533936, 0.9710832238197327, 5.895380020141602, 0.7893388867378235, -4.211012363433838, -0.540488064289093, 1.99186372756958, 2.640082359313965, -1.1216058731079102, 4.887918949127197, -2.019449234008789, -0.1283983588218689, 0.3265409469604492, 2.1952335834503174, -1.5282257795333862, -0.5912652015686035, -1.118781328201294, -3.1169605255126953, -2.7250733375549316, 1.8199642896652222, -1.511614203453064, -2.6127007007598877, 4.342489242553711, 2.1691524982452393, -4.221386909484863, -1.1585693359375, -1.2581945657730103, -2.8258895874023438, -1.068955421447754, 0.44341498613357544, -2.514594793319702, 0.7613731622695923, -2.158013105392456, -0.041946373879909515, 2.655857563018799, 1.7298434972763062, -3.0531845092773438, -0.6418022513389587, 0.9603833556175232, 0.23947691917419434, 1.4017069339752197, -2.1417248249053955, 0.8747122287750244, 1.8828234672546387, -0.3232908248901367, -3.6543807983398438, 4.977419853210449, 0.33591794967651367, }; diff --git a/fpu_tests/matmul/FP32/main.c b/fpu_tests/matmul/FP32/main.c new file mode 100644 index 0000000..7d12782 --- /dev/null +++ b/fpu_tests/matmul/FP32/main.c @@ -0,0 +1,122 @@ +// License, Version 0.51 (the "License"); you may not use this file except in +// or agreed to in writing, software, hardware and materials distributed under +// this License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +// CONDITIONS OF ANY KIND, either express or implied. See the License for the +// specific language governing permissions and limitations under the License. + +#include "config.h" +#include "pulp.h" + +#include +#include +#include /* for CHAR_BIT */ +#include + +#include "data.h" + +#define STACK_SIZE 2048 + +void main_fn(testresult_t *result, void (*start)(), void (*stop)()); + +testcase_t testcases[] = { + { .name = "Matrix Multiplication", .test = main_fn }, + {0, 0} +}; + +DATA_LOCATION MA_TYPE matA[M*N] __attribute__ ((aligned (4))); +DATA_LOCATION MB_TYPE matB[N*P] __attribute__ ((aligned (4))); +DATA_LOCATION OUT_TYPE matC[M*P] __attribute__ ((aligned (4))); + +// End of computation +int done = 0; + +int retval = 0; + +void __attribute__ ((noinline)) matrix_init(MA_TYPE * __restrict__ A, MB_TYPE * __restrict__ B, OUT_TYPE * __restrict__ C) { + for (int i = 0; i < M; i++) + for (int j = 0; j < N; j++){ + A[i*N+j] = A_mat[i*N+j]; + + + } + + for (int i = 0; i < N; i++) + for (int j = 0; j < P; j++){ + B[i*P+j] = B_mat[i*P+j]; + } + for (int i = 0; i < M; i++) + for (int j = 0; j < P; j++) + C[i*P+j] = 0; + +} + +int __attribute ((noinline)) check_result(OUT_TYPE * __restrict__ result) { + #ifndef FABRIC + synch_barrier(); + #endif + + if(get_core_id() == 0) { + float diff; + int err = 0; + + for (int i = 0; i < (M*P); i++) { + diff = fabs(result[i] - ref[i]); + if(diff > THR) { + err++; + #ifdef VERBOSE + + printf("Error at index %d:\t refrence %f\t output %f\t error %.4f\n", i, ref[i], result[i], diff); + #endif + + } + + #ifdef PRINT_RESULTS + + printf("index %d:\t refrence %f\t output %f\t error %f\n", i, ref[i], result[i], diff); + #endif + } + + return err; + + } +} + +void main_fn(testresult_t *result, void (*start)(), void (*stop)()){ + + if (get_core_id() == 0) + matrix_init(matA, matB, matC); + + #ifndef FABRIC + synch_barrier(); + #endif + + #ifdef STATS + start(); + #endif + matMul(matA, matB, matC, M, N, P); + + #ifdef STATS + stop(); + #endif + + #ifdef CHECK + result->errors = check_result(matC); + #endif +}; + +int main() +{ + #ifdef FABRIC + main_fn(); + #else + if (rt_cluster_id() != 0) + return bench_cluster_forward(0); + + int nbErrors = run_suite(testcases); + + synch_barrier(); + #endif + retval = nbErrors; + + return retval; +} diff --git a/fpu_tests/matmul/FP32/matmul.c b/fpu_tests/matmul/FP32/matmul.c new file mode 100644 index 0000000..0a616ca --- /dev/null +++ b/fpu_tests/matmul/FP32/matmul.c @@ -0,0 +1,103 @@ +#include "config.h" +#include "pulp.h" + +#ifdef VECTORIAL + +void __attribute__ ((noinline)) matMul(MA_TYPE * __restrict__ A, MB_TYPE * __restrict__ B, OUT_TYPE * __restrict__ C, int M, int N, int P){ + + OUT_VTYPE temp; + MA_VTYPE Av; + MB_VTYPE Bv0; + MB_VTYPE Bv1; + OUT_VTYPE *Cv; + int blockSize = (M+NUM_CORES-1)/NUM_CORES; + int start = get_core_id()*blockSize; + int end = start + blockSize < M? start + blockSize : M; + + for (int i = start; i < end; i++) { + for (int j=0; j < (P & 0xfffffffe); j+=2) { + + temp = (OUT_VTYPE) {0, 0}; + + // Manual unrolling + for (int k=0; k<(N & 0xfffffffe); k+=2){ + Av = *((MA_VTYPE *) &A[i*N+k]); + Bv0 = *((MB_VTYPE *) &B[k*P+j]); + Bv1 = *((MB_VTYPE *) &B[k*P+j+P]); + temp += (OUT_VTYPE)(__builtin_shuffle(Av, (v2s){0,0})) * Bv0; + temp += (OUT_VTYPE)(__builtin_shuffle(Av, (v2s){1,1})) * Bv1; + } + + if (N & 0x00000001) + { + temp[0] += A[i*N+N-1] * B[(N-1)*P+j]; + temp[1] += A[i*N+N-1] * B[(N-1)*P+j+1]; + } + Cv = (OUT_VTYPE *) &C[i*P+j]; + + *Cv = temp; + } + } + /// Leftover in P + if (P & 0x00000001) + { + for (int i = start; i < end; i++) { + + OUT_TYPE temp1 = 0; + + // Manual unrolling + for (int k=0; k<(N & 0xfffffffe); k+=2){ + temp1 += A[i*N+k] * B[k*P+P-1]; + temp1 += A[i*N+k+1] * B[k*P+P-1+P]; + } + if (N & 0x00000001) + { + temp1 += A[i*N+N-1] * B[(N-1)*P+P-1]; + } + C[i*P+(P-1)]=temp1; + } + } + + #if NUM_CORES > 1 + synch_barrier(); + #endif +} +#else + +void __attribute__ ((noinline)) matMul(MA_TYPE * __restrict__ A, MB_TYPE * __restrict__ B, OUT_TYPE * __restrict__ C, int M, int N, int P) { + + int blockSize = (M+NUM_CORES-1)/NUM_CORES; + int start = get_core_id()*blockSize; + int end = start + blockSize < M? start + blockSize : M; + + for (int i = start; i < end; i++) { + for (int j = 0; j < P; j++) { + OUT_TYPE temp = 0; + + //Manual unrolling + for (int k = 0; k < (N & 0xfffffffe); k+=2) { + temp += (OUT_TYPE)(A[i*N+k] * B[k*P+j]); + temp += (OUT_TYPE)(A[i*N+k+1] * B[k*P+j+P]); + + } + C[i*P+j] = (OUT_TYPE)(temp); + } + } + // Leftover on N + + if (N & 0x00000001) + { + for (int i=start; i 1 + synch_barrier(); + #endif +} +#endif diff --git a/fpu_tests/matmul/FP32/out.txt b/fpu_tests/matmul/FP32/out.txt new file mode 100644 index 0000000..9950041 --- /dev/null +++ b/fpu_tests/matmul/FP32/out.txt @@ -0,0 +1,15 @@ +GNU Make 3.82 +Built for x86_64-redhat-linux-gnu +Copyright (C) 2010 Free Software Foundation, Inc. +License GPLv3+: GNU GPL version 3 or later +This is free software: you are free to change and redistribute it. +There is NO WARRANTY, to the extent permitted by law. +Lettura dei makefile... +/scratch2/rtedeschi/pulp_cluster/alsaqr_cluster/pulp-runtime/rules/pulpos/targets/pulp_cluster.mk:74: warning: overriding recipe for target `run' +/scratch2/rtedeschi/pulp_cluster/alsaqr_cluster/pulp-runtime/rules/pulpos/default_rules.mk:322: warning: ignoring old recipe for target `run' +Aggiornamento degli obbiettivi.... + Il file «all» non esiste. + Il file «/scratch2/rtedeschi/pulp_cluster/alsaqr_cluster/regression-tests/fpu_tests/matmul/FP32/build/fp_matmul/fp_matmul» non esiste. + Il file «/scratch2/rtedeschi/pulp_cluster/alsaqr_cluster/regression-tests/fpu_tests/matmul/FP32/build/fp_matmul/support_func.o» non esiste. + L'obiettivo «/scratch2/rtedeschi/pulp_cluster/alsaqr_cluster/regression-tests/fpu_tests/matmul/FP32/build/fp_matmul/support_func.o» deve essere rigenerato. +make: *** Nessuna regola per generare l'obiettivo «/scratch2/rtedeschi/pulp_cluster/alsaqr_cluster/regression-tests/fpu_tests/matmul/FP32/build/fp_matmul/support_func.o», necessario per «/scratch2/rtedeschi/pulp_cluster/alsaqr_cluster/regression-tests/fpu_tests/matmul/FP32/build/fp_matmul/fp_matmul». Stop. diff --git a/fpu_tests/matmul/FP32/support_func.c b/fpu_tests/matmul/FP32/support_func.c new file mode 100644 index 0000000..6d24d2e --- /dev/null +++ b/fpu_tests/matmul/FP32/support_func.c @@ -0,0 +1,15 @@ +#include "config.h" +#include "pulp.h" +double __extendohfdf2(float16alt value) +{ + float result; + __asm__ __volatile__ ("fcvt.s.ah %0, %1": "=f"(result): "f"(value) :); + return (double) result; +} + +double __extendhfdf2(float16 value) +{ + float result; + __asm__ __volatile__ ("fcvt.s.h %0, %1": "=f"(result): "f"(value) :); + return (double) result; +} diff --git a/fpu_tests/matmul/README.md b/fpu_tests/matmul/README.md new file mode 100644 index 0000000..538deba --- /dev/null +++ b/fpu_tests/matmul/README.md @@ -0,0 +1,38 @@ +# MatMul test +This test performs a matrix multiplication on FP32/FP16/FP16ALT data and can also be used to measure performances. +In this folder you can find pre-generated golden models. + +## Running a test +After the platform and the SDK setup you can run the test: + +~~~~~shell +make clean all [platform=rtl] run +~~~~~ + +If you want to run this test on RTL, remember to specify the platform which is gvsoc by default. +There are several flags useful to activate some functionalities: + +- `cores=N_CORES` set the number of cores used for the execution to `N_CORES`, by default `cores=1`. There is also the ability to run on the Fabric controller by using `FABRIC=1` instead of `cores=N_CORE`. +- `fmt=FP_FMT` specifies the floating-point format for data, by deafult it is set to `FP32` but you can also choose `FP16` or `FP16ALT` formats. **For this application you can use mixed-precision in the C code by using `fmt_A=FP_A fmt_B=FP_B fmt_OUT=FP_OUT` instead of `fmt`.** +- `vec=1` activates vectorial format **only for half-precision floating point (FP16 and FP16ALT)** +- `check=1` activates the result check +- `verbose=1` prints the wrong results +- `stats=1` activates performance measurement +- `PRINT_RESULTS=1` print outputs of C code + + +## Generating the golden model +If you want to re-generate a golden model, you can use the [data_generator.py](./data_generator.py) script with the following command: + +~~~~~shell +./data_generator.py --M=m --N=n --P=p --float_type=fmt --MAC_flag=MAC_FLAG +~~~~~ +- specifies the floating-point format for data, by deafult it is set to `FP32` but you can also choose `FP16` and `FP16ALT` formats. **Also, you can run the mixed-precision golden model by using `--float_type=FP_A,FP_B,FP_OUT`.** +- `MAC_flag` is used to emulate the multiply-and-add operator available on most DSP instruction sets for embedded devices. It can be true or false. To emulate `FP16` and `FP16ALT` behavior on PULP, true this flag. + +The script will generate three floating-point matrices fo format `fmt` (FP32/FP16/FP16ALT): +- A_mat[m,n] input matrix +- B_mat[n,p] input matrix +- ref[m,p] output matrix + +The generated header file will be written in the [references](./references) folder. diff --git a/fpu_tests/matmul/data_generator.py b/fpu_tests/matmul/data_generator.py new file mode 100755 index 0000000..26905a2 --- /dev/null +++ b/fpu_tests/matmul/data_generator.py @@ -0,0 +1,206 @@ +#!/bin/python3 + +import os +import argparse +import sys + +import torch +from torch import nn + + +def relative_absolute_error(true, pred): + true_mean = torch.mean(true) + squared_error_num = torch.sum(torch.abs(true - pred)) + squared_error_den = torch.sum(torch.abs(true - true_mean)) + rae_loss = squared_error_num / squared_error_den + return rae_loss + + +def mean_squared_error(true, pred): + squared_error = torch.square(true - pred) + sum_squared_error = torch.sum(squared_error) + size = true.size(dim=0) * true.size(dim=1) + mse_loss = sum_squared_error / size + return mse_loss + + +def matrix_init(IN, dt): + temp = torch.zeros((IN.shape[0], IN.shape[1]), dtype=dt) + # iterate through rows of IN + for i in range(IN.shape[0]): + # iterate through columns of IN + for j in range(IN.shape[1]): + temp[i][j] = IN[i][j] + return temp + + +def error_metric(ref, res): + + # calculate manually because metrics doesn't supprt bfloat16 + d = ref - res + mse_f = torch.mean(d**2) + mae_f = torch.mean(abs(d)) + rmse_f = torch.sqrt(mse_f) + r2_f = 1-(torch.sum(d**2)/torch.sum((ref-torch.mean(ref))**2)) + print("Results of metrics:") + print("MAE:",mae_f.item()) + print("MSE:", mse_f.item()) + print("RMSE:", rmse_f.item()) + print("R-Squared:", r2_f.item()) + rae = relative_absolute_error(ref, res) + print("RAE is", rae.item()) + + +def matrix_mult(Xs, Ys, dt, mac_flag, cast_flag, cast_to): + Rs = torch.zeros((Xs.shape[0], Ys.shape[1]), dtype=dt) + # iterate through rows of X + for i in range(Xs.shape[0]): + # iterate through columns of Y + for j in range(Ys.shape[1]): + temp = torch.tensor([0], dtype=dt) + # iterate through rows of Y + for k in range(Ys.shape[0]): + a = Xs[i][k] + b = Ys[k][j] + if cast_flag == "true": + if cast_to == "FP16": + a = a.type(torch.float16) + b = b.type(torch.float16) + elif cast_to == "FP16ALT": + a = a.type(torch.bfloat16) + b = b.type(torch.bfloat16) + if mac_flag == "true": + a = a.type(torch.float32) + b = b.type(torch.float32) + temp = temp.type(torch.float32) + temp += a * b + if mac_flag == "true": + temp = temp.type(dt) + + Rs[i][j] = temp + return Rs + + +def write_matrix(matrix_to_write, name, file_pointer, float_type): + matrix_string = '' + sz0 = matrix_to_write.size()[0] + sz1 = matrix_to_write.size()[1] + if 'ref' in name: + file_pointer.write("PI_L2 OUT_TYPE %s[] = {" % name) + elif 'A_mat' in name: + file_pointer.write("PI_L2 MA_TYPE %s[] = {" % name) + else: + file_pointer.write("PI_L2 MB_TYPE %s[] = {" % name) + if float_type == torch.float32: + name = ")" + elif float_type == torch.float16: + name = ", dtype=torch.float16)" + elif float_type == torch.bfloat16: + name = ", dtype=torch.bfloat16)" + for i in range(sz0): + for j in range(sz1): + matrix_string += str(matrix_to_write[i][j].item()).replace('tensor(', '').replace(name, '') + matrix_string += ', ' + file_pointer.write("%s" % matrix_string) + file_pointer.write("};\n") + + +def get_inital_config(): + # get arguments and data format + parser = argparse.ArgumentParser() + parser.add_argument('--M') + parser.add_argument('--N') + parser.add_argument('--P') + + parser.add_argument('--MAC_flag', default="true") + parser.add_argument('--float_type', default='FP32') + args = parser.parse_args() + + M = int(args.M) + N = int(args.N) + P = int(args.P) + mac_flag = str(args.MAC_flag) + bits = args.float_type.split(",") + return M, N, P, bits, mac_flag + + +def select_dtypes(user_dtypes, num_param): + types_dict = { + "FP32": torch.float32, + "FP16": torch.float16, + "FP16ALT": torch.bfloat16 + } + dtypes = [] + if len(user_dtypes) == 1: + for i in range(num_param): + dtypes.append(types_dict[user_dtypes[0]]) + elif len(user_dtypes) == num_param: + for i in range(num_param): + dtypes.append(types_dict[user_dtypes[i]]) + else: + for i in range(len(user_dtypes)): + dtypes.append(types_dict[user_dtypes[i]]) + if 'FP32' in user_dtypes: + for i in range(len(user_dtypes), num_param): + dtypes.append(types_dict["FP32"]) + elif 'FP16' in user_dtypes: + for i in range(len(user_dtypes), num_param): + dtypes.append(types_dict["FP16"]) + else: + for i in range(len(user_dtypes), num_param): + dtypes.append(types_dict["FP16ALT"]) + return dtypes + +def check_cast(datatypes): + result = len(set(datatypes)) == 1 + if result : #All Elements in List are Equal + return "false" + else: #All Elements in List are Not Equal + if torch.float32 in datatypes: + return "false" + else: + return "true" + +def save_data_into_hfile(M, N, P, A_mat, B_mat, res): + # Generate header file + f = open('data.h', 'w') + f.write('\ +#define M %s\n\ +#define N %s\n\ +#define P %s\n\n' % (M, N, P)) + write_matrix(A_mat, 'A_mat', f, A_mat.dtype) + write_matrix(B_mat, 'B_mat', f, B_mat.dtype) + write_matrix(res, 'ref', f, res.dtype) + + f.close() + + +def main(): + M, N, P, bits, mac_flag = get_inital_config() + + # Create reference matrices + A_ref = torch.randn((M, N), dtype=torch.float32) + B_ref = torch.randn((N, P), dtype=torch.float32) + + # calculate reference output + ref = matrix_mult(Xs=A_ref, Ys=B_ref, dt=torch.float32, mac_flag=mac_flag, cast_flag="false",cast_to="false") + + # set the data types based on the parser input + datatypes = select_dtypes(bits, 3) + + cast_flag = check_cast(datatypes[0:2]) + cast_to = "FP16ALT" + A_mat = matrix_init(A_ref, dt=datatypes[0]) + B_mat = matrix_init(B_ref, dt=datatypes[1]) + + res = matrix_mult(Xs=A_mat, Ys=B_mat, dt=datatypes[2], mac_flag=mac_flag, cast_flag=cast_flag, cast_to = cast_to) + + error_metric(ref, res) + save_data_into_hfile(M, N, P, A_mat, B_mat, res) + print("############################## Done! ###################################") + return None + + +if __name__ == "__main__": + main() + pass From 1b76c54acecd55bf758656ff13da0c7a31a73a0a Mon Sep 17 00:00:00 2001 From: Yvan Tortorella Date: Sat, 27 Jan 2024 00:14:16 +0100 Subject: [PATCH 13/56] Rename application in makefiles --- fpu_tests/matmul/FP16/Makefile | 2 +- fpu_tests/matmul/FP16ALT/Makefile | 2 +- fpu_tests/matmul/FP32/Makefile | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/fpu_tests/matmul/FP16/Makefile b/fpu_tests/matmul/FP16/Makefile index 23f7695..f9116c0 100644 --- a/fpu_tests/matmul/FP16/Makefile +++ b/fpu_tests/matmul/FP16/Makefile @@ -1,4 +1,4 @@ -PULP_APP = fp_matmul +PULP_APP = test PULP_APP_FC_SRCS = main.c PULP_APP_SRCS = support_func.c matmul.c diff --git a/fpu_tests/matmul/FP16ALT/Makefile b/fpu_tests/matmul/FP16ALT/Makefile index 23f7695..f9116c0 100644 --- a/fpu_tests/matmul/FP16ALT/Makefile +++ b/fpu_tests/matmul/FP16ALT/Makefile @@ -1,4 +1,4 @@ -PULP_APP = fp_matmul +PULP_APP = test PULP_APP_FC_SRCS = main.c PULP_APP_SRCS = support_func.c matmul.c diff --git a/fpu_tests/matmul/FP32/Makefile b/fpu_tests/matmul/FP32/Makefile index 23f7695..f9116c0 100644 --- a/fpu_tests/matmul/FP32/Makefile +++ b/fpu_tests/matmul/FP32/Makefile @@ -1,4 +1,4 @@ -PULP_APP = fp_matmul +PULP_APP = test PULP_APP_FC_SRCS = main.c PULP_APP_SRCS = support_func.c matmul.c From d16fe2b6c7ae679862315b7792357cb7e27d28ac Mon Sep 17 00:00:00 2001 From: Yvan Tortorella Date: Sat, 27 Jan 2024 01:08:52 +0100 Subject: [PATCH 14/56] Change matmul golden. --- .../parMatrixMul32/gen_stimuli.py | 2 +- .../parMatrixMul32/parMatrixMul32_stimuli.h | 4702 +++++++++++------ 2 files changed, 3024 insertions(+), 1680 deletions(-) diff --git a/parallel_bare_tests/parMatrixMul32/gen_stimuli.py b/parallel_bare_tests/parMatrixMul32/gen_stimuli.py index 75eef86..aac24be 100755 --- a/parallel_bare_tests/parMatrixMul32/gen_stimuli.py +++ b/parallel_bare_tests/parMatrixMul32/gen_stimuli.py @@ -15,7 +15,7 @@ def write_arr(f, name, arr): f = open('parMatrixMul32_stimuli.h', 'w') -SIZE = 24 +SIZE = 32 RANGE = 2**15/SIZE m_a = [] diff --git a/parallel_bare_tests/parMatrixMul32/parMatrixMul32_stimuli.h b/parallel_bare_tests/parMatrixMul32/parMatrixMul32_stimuli.h index d5c1af0..e313733 100644 --- a/parallel_bare_tests/parMatrixMul32/parMatrixMul32_stimuli.h +++ b/parallel_bare_tests/parMatrixMul32/parMatrixMul32_stimuli.h @@ -1,1741 +1,3085 @@ const int m_a[] = { --1344, --778, --350, -1240, -950, -940, -1262, -285, +921, +223, +-983, +-567, +100, +801, +-520, +-758, +288, +-819, +627, +-331, +-324, +154, +389, +975, +789, +542, +497, +-213, +-192, +216, +575, +-490, +-826, +-93, +161, +143, +866, +722, +-911, +-567, +-484, +907, +593, +-261, +454, +-630, +710, +-155, +210, +-388, +-207, +-82, +93, +512, +-745, +460, +-914, +1011, +310, +740, +-465, +-971, +-51, +392, +378, +846, +-75, +312, +891, +15, +165, +-238, +138, +295, +-426, +-341, +105, +117, +61, +1022, +-93, +-491, +-367, +422, +560, +698, +-271, +-917, +-537, +610, +-525, +456, +-753, +966, +112, +569, +791, +269, +486, +763, +-793, +769, +-446, +1001, +-639, +-621, +-228, +-207, +22, +-582, +-120, +963, +242, +-387, +-601, +-821, +-403, +-149, +-339, +-678, +-151, +-578, +-916, +-688, +716, +-433, +942, +662, +-767, +-175, +-470, +135, +521, +583, +719, +-200, +649, +740, +-280, +1001, +673, +668, +358, +-568, +282, +-558, +-268, +-224, +-909, +462, +-757, +-129, +-162, +116, +683, +645, +-679, +-414, +688, +526, +-247, +281, +-174, +785, +-545, +119, +-475, +-38, +697, +790, +-230, 738, --37, -257, -704, +344, +-387, +753, +132, +306, +949, +577, +-201, +198, +-1021, +-407, +465, +-34, +493, +510, +-800, +40, +354, +-793, +1014, +89, +108, +415, +428, +544, +449, +-117, +416, +-309, +246, +272, +248, +295, +-835, +941, +-453, +475, +627, +-931, +69, +429, +931, +576, +-193, +-311, +-669, +-588, +-826, +996, +-771, +-863, +-97, +-58, +-676, +-917, +218, +-514, +-85, +-964, +-831, +-280, +1015, +-891, +916, +-86, +683, +-725, +766, 87, --1135, -1175, -960, -984, -611, --1170, -1243, --729, --1235, --1229, -8, -52, -1156, --804, --129, --112, --307, -1045, --954, --944, -477, -1104, --600, --31, -1364, --950, --153, +-827, +-189, +751, +139, +-38, +-349, +534, +-523, +-938, +-251, +791, +-285, +13, +-93, +619, +-771, +487, +166, +-1008, +-858, +-722, +483, +779, +676, +-941, +758, +-234, +-7, +67, +-782, +944, +-289, +1009, +27, +-311, +-1002, +-917, +-494, +-419, +-475, +450, +-179, +-442, +126, +-244, +-613, +930, +-1012, +1016, +-1011, +432, +765, +-793, +132, +-147, +510, +-781, +334, +653, +969, +39, +268, +-748, +-162, 967, --446, -235, --197, -763, --660, --1289, -116, --458, -994, -1086, -156, +-732, +-637, +467, +14, +-320, +607, +-569, +79, +103, -549, -102, --532, -943, -299, -340, -516, -1117, +-75, +514, +850, +-401, +-804, +830, +-1013, +835, +488, +345, +-92, +-924, +468, +245, +-34, +-669, +-79, +787, 515, -1335, -708, --306, --589, -517, -655, --279, --595, --255, --1104, --16, -507, -199, +773, +418, +-163, +718, +355, +472, +730, +808, +-122, +-461, +878, +95, +-198, +373, +-385, +-688, +984, +-492, +338, +-842, +-913, +-198, +-704, +80, +693, +-659, +452, +880, +-1020, +-357, +185, +384, +-762, +312, +-182, +-627, +1020, +-393, +664, +92, +962, +516, +-239, +-38, +924, +355, +-568, +-787, +-794, +805, +-725, +668, +-55, +213, +766, +1003, +-594, +-21, +-852, +950, +250, +214, +-538, +-5, +-657, +-918, +251, +-340, +-15, +893, +806, +455, +-479, +928, +748, +134, +615, +-735, +-269, +-984, +-4, +256, +-37, +910, +12, +991, +-955, +-593, +-64, +133, +562, -297, --905, --1084, -982, -20, --1364, +-788, +-542, +-776, +534, +-1018, +40, +823, +157, +-538, +78, +-439, +-951, +581, +45, +645, +76, +-542, +101, +554, +849, +-164, +-122, +736, +226, +147, +-131, +-759, +128, +-148, +738, +-455, +590, +801, +35, +933, +30, +-369, +-653, +-268, +603, +-579, +956, +-664, +358, +92, +935, +241, +-597, +106, +561, +-819, +-627, +994, +857, +998, +-975, +-168, 407, -333, --798, --711, -1301, +524, +-713, +-104, +467, +-223, +870, +-958, +338, +-440, +688, +-786, +-799, +550, +924, +418, +-809, +1011, +-863, +451, +741, +-163, +-507, +-744, +-234, +367, +-223, +152, +107, +73, +409, +582, +-524, +-109, +522, +-205, +-163, +904, +-238, +-746, +-832, +1007, +-326, +641, +-1010, +549, +840, +-412, 175, -490, +253, +-121, +213, +877, +-708, +-501, +459, +-294, +-456, +-48, +481, +-628, +432, +-578, +-487, +-835, +322, +205, +-269, +313, +-351, +-361, +-323, +-555, +-622, +299, +393, +-710, +411, +328, +708, +167, +677, +-873, +-468, +922, +-462, +-536, +-632, +-135, +-498, +402, +-932, +-851, +-373, +-201, +924, +587, +-840, +-814, +188, +805, +528, +35, -165, --1097, -1251, -1203, --884, -419, --1262, --950, --1200, -759, --205, --1365, --870, -109, --1135, -36, -796, --1233, --1117, --826, -241, -588, --513, --353, -791, -1071, --1073, -220, --1094, -1096, --723, -280, --505, -151, -399, -319, --1120, --213, --966, -679, -497, --290, --300, --290, --599, -243, +-943, +494, +-276, +-816, +597, +967, +-997, +-595, +433, +-750, +-988, +774, +-45, +-761, +881, +-634, +-113, +977, +-457, +-235, +18, +-125, +971, +254, +57, +-520, +120, +-720, +97, -752, -604, -1196, --715, --177, --329, -1337, -596, -1027, -509, --301, --1211, --936, --281, -446, --356, -841, --1123, --1343, --140, --1300, --828, --237, -1206, -1274, --1092, --922, -913, -1201, --422, -782, --230, -633, --1055, --1160, -329, -1255, -1038, -770, -123, -934, -670, +1000, +-911, +521, +218, +-735, +-555, +196, +635, +-819, -492, --24, --779, --1129, -47, -555, -1214, --232, --716, --322, +-271, +-378, +325, +458, +-618, +-123, -126, -178, -827, -710, --1057, --313, -996, -1149, --532, -570, -1171, -899, --313, --790, -1071, -154, --303, -492, --918, --1139, -292, -129, -1347, --309, -751, -1262, -142, --1062, --1305, -250, -657, -238, --141, -1308, --37, --514, --591, --611, -852, --653, --640, -91, -254, --1145, --1263, --838, --10, -266, --444, -1129, -762, --713, +161, +-742, +-439, +-297, +737, +-30, +1001, +163, +975, +654, +-902, +-255, +578, +-593, +658, +-227, +-854, +89, -326, --88, -1063, --442, --177, -365, --740, --1219, -1085, -783, --725, --1112, -426, -660, -6, --440, +-274, 513, -687, -1078, -212, +161, +244, +129, +826, +39, +-720, +-56, +72, +883, +187, +597, +-551, +205, +134, +-792, +-267, +205, +9, +-98, +927, +822, +-906, +165, +-41, +276, +783, +-866, +-172, +815, +54, +496, +491, +-365, +-588, +-353, +-617, +123, +639, +-401, +475, +2, +-938, +777, +570, +184, +-583, +-466, +-66, +-467, +121, +792, +889, +-1017, +442, +649, +-794, +203, +456, +738, +-792, +767, +359, +-110, +1021, +227, +463, +440, +-1019, +817, +616, +266, +-826, +730, +343, +498, +874, +567, +-74, +-286, +-665, +-30, +-74, -434, --953, -1337, -160, -622, --950, --943, -288, --136, --1103, --223, -1271, -211, -251, --271, --26, -704, -1177, -544, -699, --885, --864, --1280, -877, --461, -995, --623, --121, --146, --484, --225, --978, -163, --278, --502, --505, --567, +-694, +901, +-956, +339, +483, +325, +-455, +-91, +-28, +-116, +-446, +631, +230, +538, +81, +-139, +-995, +-577, +-695, +976, +-866, +-270, +334, +334, +-756, +-859, +194, +77, +-89, +-483, +906, +26, +-507, +-196, +-195, +-929, +713, +744, +653, +533, +-531, +316, +-821, +-524, +-311, +381, +546, +-547, +-147, +815, +-792, +315, +543, +-87, +-645, +-641, +-494, +127, +-430, +50, +594, +-44, +-727, +-823, +906, +-661, +-670, +-993, +-129, +116, +639, +549, +-251, +-610, +413, +-575, +40, +976, +-50, +-553, -771, -1279, -699, --1337, -544, -1145, -1271, -640, -277, --164, -458, --1280, --602, --2, -1136, -1203, --699, +60, +-671, +-860, +803, +521, +594, +-526, -195, -659, --472, -1230, -1151, --97, --77, --772, --381, --295, +-82, +316, +934, +425, +-694, +917, +-25, +749, +139, +-428, +-445, +510, +-144, +115, +-774, +779, +-171, +-475, +208, +760, +27, +365, +442, +264, +-866, +-40, +-498, +-1019, +781, +-187, +-668, +844, +39, +-118, +340, +128, +-235, +-584, +-883, +-857, +-562, +405, +-413, +800, +-74, +542, +645, +882, +-416, +1020, +481, +461, +-108, +-309, +80, +435, +-522, +-572, +815, +-450, +612, +-648, +123, +-754, +37, +941, +-518, +980, +205, +-596, +411, +55, +167, +0, +-387, +-268, +176, +635, +-677, +-408, +-728, +691, +534, +229, +378, +-407, +-406, +833, +463, +861, +656, +221, +-247, +-791, +-152, +-934, +-548, +822, +-957, +478, +-471, +310, +-965, +-197, +269, +636, +185, +82, +-420, +-945, +949, +-221, 636, --1341, +-20, +869, +-634, +-150, +820, +-1001, +973, +594, +654, +324, +958, +363, +-804, +-244, +-278, +-863, +-927, +841, +947, +513, +-325, +-875, +-187, +-827, +-261, +-564, +367, +-496, +-427, +-167, +-411, +144, -445, --806, -531, --1186, --1313, --274, -835, +-990, +-1019, +332, +-595, +334, +-170, +718, +855, +-219, +70, +-538, +-1011, +-353, +-856, +-320, +-732, +914, +203, +121, +-111, +-336, +899, +732, -446, -558, --1307, --235, -43, --254, --109, -911, --1189, -559, --854, --218, -149, -580, -1158, --14, -181, --1120, --947, --542, -1142, -631, --893, --614, --257, --365, --951, -1, --762, -268, -382, --131, -808, --234, -839, -346, --733, -1251, -496, --566, --751, -581, --1292, -1068, --932, --855, -1336, --280, -523, -1294, --1251, -1284, --1276, -87, -1264, --274, --922, --289, --458, --117, -196, +145, +-613, +799, +-159, +54, +290, +740, +-33, +-502, +-498, +118, +962, +589, +-483, +325, +-260, +219, +919, +-699, +571, +-553, +-1020, +-541, +770, +589, +837, +-193, +378, +898, +-869, +644, +-461, +998, +-942, +}; + +const int m_b[] = { +716, +-76, +15, +81, +585, +711, +-519, +-845, +831, +-931, +-29, +-942, +645, +-480, +-77, +-969, +853, +-987, +944, +828, +-610, +66, +405, +832, +-130, +-817, +842, +549, +-47, +981, +-271, +842, +890, +510, +488, +754, +454, +-114, +-266, +-720, +-45, -79, --707, -1233, --385, --620, --617, +-114, +-394, +-538, +-229, +-873, +975, +550, +656, +-879, +881, +-582, +446, +-332, +734, +545, +349, 703, --995, --374, -660, -145, -821, -1289, -582, --201, -447, -116, -759, --615, -834, -268, --1114, --1016, --227, --589, --910, +462, +-677, +-934, +700, +298, +-978, +489, +-182, +-1014, +139, +-289, +792, +362, +605, +537, +-598, +-112, +-576, +404, +138, +659, +888, +-183, +-788, +98, +-1023, +694, +950, +-969, +637, +799, +-68, +631, +-599, +405, +591, +825, +-425, +869, +-89, +114, +-37, +373, +535, +444, +-295, +-447, +475, +-122, +-411, +665, +418, +-791, +883, +-382, +641, +418, +292, +784, +999, +-823, +304, +293, +997, +-159, +-982, +-372, +360, +469, +295, +-449, +-688, +-937, +-80, +-456, +620, +-347, +-425, +868, +-15, +470, +117, +581, -244, --660, -764, -219, -1165, -506, +210, +-70, +16, +-638, +428, +-828, +394, +-203, +957, +-289, +-647, +-210, +1000, +-820, +555, +-478, +49, +361, +-917, +458, +694, +-217, +459, +-904, +-126, +-33, +189, +762, +619, +870, +-799, +620, +-177, +-1005, +-807, +-422, +490, +795, +1013, +-641, +479, +337, +-92, +-260, +956, +-329, +864, -673, -799, --1355, --872, +-98, +-331, +425, +-878, +863, +-835, +-834, +-250, +301, +-4, +-587, +85, 491, -689, -176, --285, -1151, -1080, --319, -286, -833, -217, --621, -478, -539, --109, --1273, --564, --240, -504, -518, -256, --124, -74, -949, --912, --1341, -965, --774, -634, -1009, -1304, -200, --1041, --1262, --865, --1065, --635, --357, --928, -806, -1148, --411, -56, -686, --644, -1241, +-313, -430, -297, -127, +-54, +173, +-666, +-794, +114, +849, +24, +140, +-590, +568, +-785, +732, +843, +-73, +10, +894, +-195, +107, +482, +778, +-708, +582, +-889, +-461, +571, +918, +416, +-518, +-24, +-585, +-38, +-535, +-167, +-308, +-793, +-502, +267, +989, +-1007, +-802, +-262, +-106, +-270, +744, +461, +-683, +-12, +989, +-591, +-966, +-300, +-342, +201, +786, +481, +913, +126, +877, +864, +-622, +-265, +951, +-322, +417, +417, +-103, +-941, +-428, +-273, +-807, +-649, +266, +658, +-348, +35, +1013, +1, +968, +206, +-721, +566, +-468, +-653, +-81, +-652, +65, +-595, +329, +759, +386, +-225, +-857, +22, +-267, +895, +973, +-401, +-934, +-159, +-637, +516, +-245, +650, +440, +-245, +-325, +162, +-372, 457, --1313, -741, -861, -220, --540, -772, -265, -1066, -679, -177, --734, +-65, +122, +-851, +-481, +-960, +-409, +-35, +-701, +658, +637, +-639, +270, +274, +748, +-46, +211, +-311, +-878, +743, +453, +-625, +493, +977, +-777, +160, +-638, +759, +-624, +-973, +-681, +166, +-530, +-677, +657, +-104, +-398, +-482, +-669, +1014, +707, +238, +951, +353, +-116, +-302, +-833, +354, +-504, +758, +-157, +-260, +-714, +-594, +-906, +734, +-897, +99, +440, +-146, +-449, +584, +-1007, +368, +-508, +-870, +-551, +-361, +646, 29, --149, -181, --1042, --1139, -271, --326, --29, -1298, +486, +742, +-962, +-718, +-22, +548, +718, +-905, +922, +345, +-159, +495, +429, +525, +937, +-731, +267, +-878, +773, +835, +27, +855, 643, --890, --136, --1015, --565, --964, -894, --312, -698, -159, --222, --1322, -578, -945, -1124, -1278, -54, --389, -1101, -362, --543, -380, -959, --399, --1105, -1308, -338, --198, --1111, --278, --752, -668, -1156, --1226, -579, -184, --1084, --917, --498, --466, -316, --788, +-405, +-505, +648, +405, +535, +-268, +582, +89, +576, +-268, +-919, +280, +-216, +-77, +-476, -718, -468, -367, --1333, --1146, -828, -1329, -311, --1346, -54, --976, -854, --658, --198, --979, -156, -385, --659, -1326, -1351, --1173, --648, -720, --40, -313, -729, --416, -351, -452, --413, --4, --1113, --612, --28, --721, -400, -1072, --1010, -}; - -const int m_b[] = { --1316, -319, -963, +220, -608, -519, --783, --676, -181, -172, -203, --1351, --935, --12, -758, --746, -1226, -127, --1346, -1251, --377, -889, --23, --417, --122, -680, -1363, -729, --907, --1263, --431, -363, -1355, --566, --517, --1186, -1318, --1104, --1245, +-276, +-424, +859, +97, +256, +-880, +482, +-817, +929, +-593, +-1023, +944, +814, +-502, +200, +182, +990, +-246, +421, +419, +-867, +262, +-826, +110, +760, +-18, +5, +-232, +493, 950, +-930, +-758, +-805, +546, +-1001, +811, +-73, +-679, +92, +-245, +-447, +-326, +47, +-646, +411, +-587, +875, +853, +739, +168, +-754, +666, +124, +-943, +-214, +-441, +-739, +30, +-454, +-254, +808, +610, +-782, +-212, +381, +-668, +-1017, +-927, +-47, +990, +569, +88, +931, +865, +-366, +792, +677, +-523, +469, +-486, +-995, 687, -252, --270, -1081, --1290, -656, -8, -60, -1171, -915, --500, -678, --953, -307, --35, --1334, --888, -598, -1160, -722, -850, --268, -988, -635, --340, -252, -1208, -420, -82, -1283, +692, +908, +663, +645, +-734, +963, +1008, +-255, +494, +190, +423, +-895, +-830, -319, --666, -172, -583, -174, -471, --1063, -452, --191, --1188, -116, --927, -1086, -119, --245, --717, --657, -417, +296, +261, +-276, +-259, +244, +-82, +-1006, +-732, +-779, +873, +-144, +144, +253, 319, -1133, -1338, -141, --546, +-967, +-527, +396, +-949, 567, --1089, --191, --1138, --201, --1286, +630, +-559, +-203, +674, +738, +-286, +-1002, +967, +173, +302, +-967, +-637, +472, +-440, +-932, +-221, +-326, +-152, +474, +-830, +57, +-178, +972, +-667, +815, +538, +84, +-362, +-870, +-92, +-208, +-825, +300, +-173, +354, +604, +102, +-422, +578, +-539, +795, +714, +-671, +555, +-373, +1, +-827, +1007, +-650, +-914, +-1003, +328, +253, +-287, +-62, +-398, +-37, +289, +141, +-866, +590, +1, +-464, +789, +246, +665, +-565, +72, +-1023, +-149, +-859, +-109, +-679, +-972, +552, +-592, +81, +-621, +62, +322, +163, +-970, +112, +1009, +-189, +-54, +-924, +1001, +-218, +-211, +721, +71, +956, +818, +-719, +383, +-367, +989, +-268, +823, +-104, +386, +1010, +930, +-841, +-774, +-307, +-644, +-836, +-537, +215, +50, +-901, +869, +-441, +776, +155, +984, +933, +-618, +363, -820, --1356, -1177, +-111, +-577, +463, +-794, +-955, +-786, +-541, +728, +-827, +1003, +-787, +-310, +76, +813, +-187, +-448, +-627, +-993, +759, +339, +-426, +-464, +330, +-1006, +241, +991, +-193, +696, +-645, +-557, +-117, +-323, +896, +-120, +-562, +-569, +454, -317, -191, -67, -164, --306, --1015, -1147, --482, -1229, --259, --207, -1309, -847, --399, --1005, --995, -140, --567, --1220, --427, -180, --571, -997, --783, --316, --1360, +836, +-641, +549, +655, +643, +412, +921, +-680, 736, -75, --1251, --307, --902, -1181, -1057, --141, --1098, -776, -1096, --923, -914, -1049, --28, --742, --804, --467, -567, -329, --309, --161, --157, --430, --639, -1138, --165, -292, --20, -777, --715, -60, --1359, -35, -307, --1092, -271, -548, -822, +-296, +533, +196, +-885, +-233, +-490, -50, --475, --103, -784, -537, -152, --517, --1097, -117, --619, -538, -941, -172, --223, -1161, --1004, --1145, --455, -255, -363, -859, -403, --861, --657, --537, --1084, --1042, -541, -1283, +-470, -356, -1298, --1254, --303, -203, -104, -1123, --72, --171, --1122, --533, -440, -275, -613, --846, --189, +-232, +402, +-735, +532, +-983, +-925, +-796, +-728, +-969, +-98, +-684, +515, +172, +-736, +-912, +814, +484, +254, +-260, +230, +-1008, +128, +89, +1023, +-723, +531, +-1011, +450, +779, +21, +-100, +-554, 884, -704, --570, --440, --1157, --200, --80, -616, -799, -757, --264, --1256, --690, -152, -184, --810, --221, --821, --243, -508, --709, -574, --693, -315, --952, -952, -697, -875, +-603, +-89, +457, +560, +518, +170, +-715, +700, +811, +-37, +-893, +530, +-1010, +-973, +150, +304, +356, +378, +452, +949, +-333, +922, +-103, -480, --691, -422, --413, --1199, -441, --751, -821, -1303, --410, -416, -566, --131, --551, -46, -978, --228, -1117, --251, --537, -874, --882, -260, --213, -248, --1296, -1343, --626, --812, -629, --601, +900, +-841, +-329, +-112, +508, +-384, +730, +229, +190, +150, +982, +-1003, +37, +-211, +-924, +358, +544, +-758, +849, +410, +843, -378, --1314, --889, -774, --307, -692, --1125, --692, -923, -947, -1158, --939, -1284, -35, -1299, -369, --8, -43, -768, -524, -137, -659, -285, --1315, --457, -871, --768, -1107, --695, -488, --527, --161, -414, --526, --1164, -1059, --1108, -560, --622, 898, --50, --286, --170, -513, -952, -433, +-505, +90, +-43, +-888, +-731, +-83, +528, +-613, +-243, +1007, +981, +587, +-968, +681, 237, -584, --665, --960, -585, --434, -1223, --130, -1035, -430, -202, -1312, -1152, -1059, --1082, --1295, -805, --18, -613, --94, -557, -548, -1354, -116, -289, --1358, --1234, -1237, -451, -820, --102, -974, -832, --1019, -914, --512, --267, -1329, --910, --1341, -862, --381, --23, --658, -40, --71, --782, -1240, --956, -1241, --291, --884, -1250, -699, -834, -190, -960, --1260, -177, -464, -155, --1105, -768, -424, -621, -740, --1357, -1186, --594, -1329, -829, -126, -1101, -1146, --95, -605, --673, -1334, -440, --10, -12, --745, -20, -19, --793, -999, -1083, -487, --657, --356, -654, --326, --250, --718, --947, --235, -558, -974, --981, -637, --861, --768, -1045, +523, +893, +592, -583, --910, +384, +-352, +247, +-771, +-902, +-744, +874, +30, +134, +-63, 128, -734, -896, --1156, -223, +-530, +-55, +1016, +-863, +63, +-538, +790, +306, +-73, +-328, +-800, +729, +387, +669, +961, +-881, +-95, +544, +0, +-19, +-58, +556, +-399, +-948, +-1008, +28, +273, +803, +-742, +653, +51, +-19, +839, +892, +656, +659, +-791, +-662, +-490, +855, +-2, +-525, +-648, +-211, +788, +1013, +-126, +874, +940, +-804, +-1002, +31, +244, +-827, +-254, +-220, +-399, +201, +-369, +257, +-427, +485, +373, +-373, +-207, +393, 284, -272, -634, --473, -363, -359, --1185, -14, --33, --1122, -140, -900, -439, --944, --770, -663, -865, -1056, --238, -86, --1294, --44, --603, -602, -20, -397, --423, --703, --209, --906, --1236, +-382, +985, +-328, +76, +965, +-237, +-380, +861, +239, +-263, +-727, +-896, +-217, +-745, +-832, +-347, +-961, +-615, +-888, +-756, +337, +-795, +-275, +-123, 945, --737, -578, -904, -645, -1225, --877, --425, +365, +-483, +901, +-177, +487, +301, +338, +932, +-545, +574, +146, +10, +-610, +-424, +16, +-545, +140, +741, +389, +75, +-54, +795, +-283, +705, +-743, +320, +168, -493, --1326, -424, -965, -1300, --1210, -823, -1345, -626, --427, -592, --869, --1055, --938, +202, +708, +753, +-363, +-33, +-585, +-567, +850, +310, +-920, +-606, +-406, +-141, +-127, +-30, +905, +-29, +996, +704, +14, +831, +-502, -427, -1066, -472, --1055, -48, --1200, --349, -313, --1227, --228, -783, -839, -187, -1021, --1355, -1284, -68, --1321, --997, -1286, --887, -772, --156, --105, -1329, -1141, --377, --881, --341, -1316, --391, --1249, --205, -53, --266, --540, --289, --1011, -602, --1032, --1097, --202, --467, --1047, --867, --340, --109, --496, -967, -1147, -108, -384, --12, -1216, -137, -1318, -151, -219, +-518, -543, -391, -668, --1348, --1244, --810, --676, -321, --1258, -1343, -1214, -791, -35, -1219, -1278, -1037, --1282, -661, -585, -921, --880, --989, --1192, --207, -273, --382, -690, -165, -271, --212, -739, --343, --42, -226, -40, -859, --153, -622, --1059, +923, +-725, +-6, +724, +-613, +-820, +365, +1, +-234, +694, +452, +-597, +-812, +945, +160, +494, +-664, +218, +-714, +-913, +600, +70, +289, +-175, +-808, +241, +863, +-479, +412, +-195, +-879, +-830, +550, +-746, +-948, +233, +-515, +-32, +-664, +72, +914, +-539, +624, +-428, +121, +209, +-630, +-414, +-225, +-459, +-169, }; const int m_exp[] = { --4942391, -2289133, --1363225, -1978230, -1580032, --625813, --3230128, -2236653, -19494, -3242695, --1080745, --34154, -4086860, --1370876, -3997221, --1812380, -4705498, -7690207, --4068140, -3595067, --1103308, --939857, --4249710, --8650816, --2013119, -2933624, -235162, --453807, --4447391, -3527041, -2046492, -411956, --994117, --1411344, -1333704, --519761, -3026373, --564969, -3749147, -2447173, --557628, -1138674, --1426096, --4033488, --1829685, -2815607, -2382958, -1714081, --1470484, -3379876, -3660759, --2439960, --1180478, --3300785, --5104533, --309753, --1667400, -3258850, -1805449, -2481948, --944985, --363123, -4227063, -3022289, -2763211, -5114077, --1534394, --2957168, -3401637, --1195822, --747480, --2915318, --2505013, --174927, -276733, -2899369, --6702856, -923396, --2741169, -4270685, --1020657, --2562887, -2074098, --2382784, -1366504, -691209, -4127820, -400356, --7415505, -823772, --3848400, --158560, -3759990, -2298445, -323394, -873625, -474364, -2617120, --1382444, -1735284, --5799715, -1915577, -7016057, --1212904, -919286, -2949768, -1228832, -572192, -4145710, --6809520, --2199597, -677764, --7169579, --4904277, -6902014, -231123, --4797299, -3093608, -989455, -4324476, -3121268, -810907, --2457323, -2299211, --1625774, --141013, -3343022, --2044657, -4089375, --291323, --1950307, -2480885, -2846731, --2139146, --2718414, --1997531, --2399245, --4060224, -423228, --205276, --1602384, -910872, --3535114, -6008729, --559984, --301205, --5407307, -2981269, -1079061, -6602535, --857708, -2756391, --5304566, --3769267, -2620777, --4409088, -502077, -7568647, --37918, -2315061, --2540065, -8296540, --7465282, -1553910, --4736227, --2139045, -95614, -342546, -1309722, -1777391, -2981296, --736899, --2572111, --972463, --2793724, --2893912, --1230264, --871649, --1439985, -3074445, -3339004, -2423842, -1751086, -4064832, -1550243, -6225792, --503750, --2567772, -5671219, --2054796, --551487, --2787790, --3835027, --4272806, -2725813, --2982521, -1803437, -3024675, --201092, --1626608, -1548043, -2303810, -3032912, -398283, -1704371, -1860306, --4101665, -5187913, -4233418, -2054883, -3603470, -1935132, --17548, --4362444, --2806918, --5651039, --1853372, --1707208, --153048, --2791834, -402265, -2815962, -3391662, --4833520, --1190520, -2302448, -80738, -2089586, -174096, -2837490, --5514606, -2138871, -336249, --378675, -5833977, -4367000, --2445147, --3652299, --1794451, --1471577, --1263012, -3719274, --3404819, -5765304, --4256415, -3558206, --1884441, --475244, -3659623, --2914867, -689238, --2576754, -7739914, -1823902, -2077002, --2365242, -2023481, -1663749, --4973435, --694558, -1118078, -2260786, --3256285, -4596746, --5421599, -594942, --1730692, --4626077, -3077882, --2232009, -2672161, -3135747, --4602601, -859784, --3530668, -21600, --4690786, -2023164, --496745, --2728919, -281474, --108745, --809613, -1445687, --5781458, -2097169, -1594266, --4504019, -2460482, -6259537, --700848, -413263, --1212884, --5695130, -2094147, --750529, --1379008, -6029072, -722889, -1719449, -1682336, --4219755, -1971162, -66575, --1195119, -141466, --1083536, --718558, --4039954, --168429, --2026861, -2025800, --761083, --4194692, -2013337, --1156936, -3823019, -4081732, --3145845, --1733615, --1371947, --3811245, --1584663, --3547009, --3267886, -8255291, --3232160, -3404636, -3248369, -3233853, -671601, --1009897, -1821121, --3517645, -2005444, --2768741, -115998, -533867, -4717709, -1315923, --3510545, --3539595, --538461, -4529529, -2792584, --107486, --1840413, --1474849, -1579605, --4197602, --34825, --462678, -1294881, --1730927, --2549709, --1531672, --271859, --1181904, --1680154, --2321723, --6641222, -1127764, -893535, --2804646, -5653509, -2657606, --1751466, --4669812, --827592, --126901, --2599752, --845148, -1390838, -8975481, --7663778, -3572438, -5920790, -5233883, --613590, --881500, --3974422, --5523348, --3243204, --6405765, --4376438, -1352634, --105650, -2650174, -1442151, -5088231, -2974595, --4501663, --841006, --3101819, --1265401, --2756903, -2579743, -2045040, --5328835, -2801176, --386694, --3068782, -3147225, --248211, --662659, --1112717, -2733193, -336344, -3107302, -2244003, -4285762, -1998904, -1888720, --1174981, --2567532, --5588952, --101948, -4004848, --610048, -793760, -3345423, -716318, -1033698, -4011882, --965219, -1258434, -1579522, --4249500, -3233648, --424838, -2640541, -1020028, -4933599, --1964947, -3237309, --1251962, --437406, --2749192, --2943112, --117113, -778507, -2757711, -3478291, --661571, -1077087, --3821174, -2731860, -3035264, --4424379, -295413, -3873542, --1272809, -4145370, --363272, -2240544, -88954, --2016552, --862779, --844808, -3142493, -2019692, -3648148, -3857820, -593190, -1285134, --4257140, --1476035, --1951773, --2334649, -1355368, --4390456, -3666652, -562848, --8226958, -1134896, -1136697, --2132899, -3300228, -1855661, -6476864, -5097743, --1373818, -3287769, -1709294, --2926119, -2463141, -400199, -3051372, -1815531, -1746372, -398117, -2333959, --708565, --4241370, -51697, --1626217, -26865, -2248300, -3357859, --325912, -194201, -612298, -388227, -256018, --5630155, --1085451, -653494, --1966315, --273079, --4296295, --2813232, -2079672, -2378463, --3869089, --438799, --725265, -3152791, -3461913, --777750, -47521, -2588203, -1888001, --4445421, -654349, -811737, -418334, --1854075, --5194402, --1571674, --622026, --1091628, -1787463, -3439585, -2923276, --1997884, --193963, --731696, -3686658, --1311796, --5219031, --2906251, -2140229, --1846978, -2541247, --3677377, --3935140, -3605308, -4807232, --1633864, -344286, --2051894, -2498349, --3085, -379207, --701595, --1080351, -3161365, --1606976, -1640595, -3757649, -798095, --3167055, --2288739, -2301831, --3324819, -3219538, -516049, --3153835, -7342606, -1098913, --2522436, -376783, -47367, -530901, --395499, -304200, +4483102, +-3837116, +2010720, +1534171, +1759792, +1381371, +-3260944, +-5398276, +508357, +615916, +-595144, +-1125435, +116369, +-3983003, +622692, +-104608, +-2819471, +349802, +1320318, +-2792252, +235582, +2875734, +-2702444, +588279, +28913, +-2727311, +-2253437, +2340518, +4453365, +450661, +51465, +1552749, +278332, +-2761260, +-2945973, +-602713, +934446, +-1807317, +661383, +2595744, +938496, +355527, +-4539675, +3451768, +-3198419, +-859721, +439576, +2530247, +231425, +1196852, +-3068189, +1806918, +-1511788, +-258993, +-471602, +3028081, +184421, +1760131, +1900049, +1894075, +-2293124, +1379361, +3920518, +-104505, +-1537037, +795601, +-1678136, +1156068, +72605, +-3464777, +-3893561, +1158218, +1450934, +2863262, +522263, +1510903, +2791830, +-1889894, +-475635, +745893, +-2488967, +1253464, +-2450836, +57133, +-1007562, +-602981, +694793, +3349495, +-3611637, +3738053, +648859, +-1421083, +-2042791, +348004, +547002, +-694910, +1278153, +1258721, +-15823, +958095, +-3246096, +-1176319, +2696030, +2353825, +-851897, +-305490, +1144869, +-489083, +-771523, +1010824, +-823073, +425529, +-1866686, +-964908, +1199108, +-859023, +-1614558, +-4792185, +98458, +-607409, +551516, +-2382173, +548885, +-3491850, +-1445795, +-1088426, +-429760, +-1591568, +-229487, +-2804269, +-95359, +-680286, +2228343, +-149962, +-3782020, +1139786, +-832209, +1322977, +335698, +3772007, +550017, +-3472461, +-586406, +1670398, +30538, +-282598, +-1368441, +830018, +32500, +1604523, +-452374, +1455260, +1154312, +726318, +468334, +2820494, +-4420185, +979034, +1611313, +498563, +-13770, +851039, +-3280587, +3868879, +-103066, +1718207, +-1003760, +948733, +1821080, +226516, +153022, +-2163314, +-1801575, +1033501, +1049469, +-4055909, +2429031, +-1896082, +3772971, +1794560, +-1181046, +1784208, +1762035, +1150961, +-2353643, +-3537267, +4644670, +-350704, +-65156, +-381320, +503403, +798969, +-1050893, +2272013, +69652, +-2143175, +-2519168, +181113, +1345533, +-1526855, +-3214613, +-1569966, +1643995, +3408010, +2140174, +2881951, +-1757528, +1421885, +133420, +26271, +3763843, +164641, +2934726, +1078553, +-318986, +-1270954, +3115586, +1701686, +-110878, +835257, +-1885901, +-2510356, +-1454398, +-909358, +-1059566, +672173, +795074, +-137536, +250484, +1597909, +1086027, +1172814, +-819859, +868662, +1775692, +-1335021, +-1056456, +-1069776, +1901756, +1119316, +31858, +2500976, +-1272156, +3567659, +743992, +-434535, +-388297, +2944552, +1121393, +-211286, +1119305, +-837106, +-3291772, +-644156, +2234998, +-1812166, +-424086, +-2579182, +-4995925, +1284777, +-1104876, +1042320, +1483588, +3210383, +2799297, +-950947, +-1879848, +-1211673, +2034864, +-1792252, +1649777, +-4130898, +1649310, +-4146430, +3258963, +2573110, +-1215090, +-3430412, +-263614, +-224321, +2327869, +-5401598, +1214211, +-4033005, +-1731759, +285306, +141634, +-1576674, +-598491, +-3747626, +-2674724, +-2964686, +-970824, +638559, +2705879, +-2155436, +2188859, +739422, +-3369981, +2369939, +3084272, +-416591, +1505156, +907810, +316916, +-3130875, +2304606, +-455439, +713440, +1125996, +-233188, +-558299, +657160, +-4046801, +2829443, +2340003, +-1458632, +248823, +1757427, +-748600, +955486, +295305, +-3541031, +2524547, +-252008, +1798917, +-651016, +317232, +-166186, +-2947741, +-630069, +-57348, +-416785, +-786579, +1163624, +-2816194, +-1423888, +-949604, +1633977, +2745062, +1446168, +1744305, +-2731042, +2067611, +480904, +317713, +-7337, +-2597976, +-617019, +509827, +-1924859, +-1690807, +-2117204, +-349188, +4195303, +539892, +-729517, +266502, +-261572, +-2455571, +-1376324, +218379, +-803670, +1434548, +-2308471, +1458581, +-3021782, +4822354, +-1711275, +2483161, +-4126171, +-1416011, +2054421, +1405379, +1427968, +1111079, +415834, +2082764, +-2498692, +5230909, +3293478, +-641370, +650141, +322583, +756632, +-173745, +-3481500, +-2660545, +-11120, +-463314, +-320049, +-444431, +-230492, +268636, +-685754, +127531, +1545264, +-194991, +537373, +-4125440, +1332649, +-3250371, +744884, +552588, +-34707, +2343452, +2367038, +-97324, +639918, +3476436, +-545169, +573332, +1659803, +1633795, +813581, +4605630, +1099838, +-2822247, +-251728, +1037532, +1960620, +84911, +-1956257, +-240695, +2421524, +-63612, +-3347511, +-857378, +-1357842, +359486, +1415311, +807379, +1495270, +1761577, +1310276, +-2769105, +397395, +-1840322, +-1884252, +-255958, +-3081382, +-2124826, +1747341, +-978451, +1353749, +-1101153, +3971279, +206472, +2015201, +2594079, +-4123051, +-891957, +-29729, +858096, +-157999, +-1592225, +-342823, +358660, +1886511, +240694, +443098, +2080523, +6024770, +-3700560, +1297889, +-2332463, +4623788, +5007792, +551928, +1178476, +1577810, +-693530, +1354736, +-1505662, +-484525, +1556410, +-3354635, +3291809, +-2639983, +3200194, +-2593644, +-2366448, +-683796, +-36714, +1331052, +-1496870, +-3225114, +-296918, +1061488, +3078786, +-870052, +-471043, +-450798, +2272153, +-1273088, +335248, +1065448, +3173343, +-1399606, +-2210999, +1058461, +908236, +-1407584, +404896, +-4314166, +-1677042, +-529283, +451139, +2439430, +-1969670, +1996189, +-1579974, +905677, +606252, +-2345497, +117665, +-1449525, +192620, +-366900, +-1746077, +492086, +484400, +2604739, +-1698451, +1806720, +-87307, +1467434, +711222, +-1150222, +765562, +864307, +3684554, +2041083, +814638, +-2386832, +-1146280, +1680834, +-700110, +-1902486, +357758, +352621, +-1794699, +-1653822, +-3480866, +1426643, +1112374, +-215960, +822012, +40742, +-2923668, +-512511, +60563, +-56006, +-13177, +-983907, +511449, +1116084, +-1402263, +-3137436, +-4694304, +-1401688, +-2354587, +1718534, +-632354, +654037, +-88483, +-4299079, +-1856729, +-2314680, +1964063, +-796198, +-3474061, +820417, +-737218, +670097, +-446965, +633105, +-3892853, +3384774, +426598, +1088596, +4790552, +-2839492, +-631535, +3797532, +395418, +-264991, +-572710, +1830209, +-1663436, +1525072, +833800, +2468120, +-1823599, +2424168, +-1128471, +734423, +70049, +3244504, +-396877, +660320, +-2949195, +3406669, +5059168, +2653356, +146574, +2938392, +1549690, +-1983162, +-5055829, +-2544940, +-3117725, +469784, +861349, +1629417, +3031088, +1047359, +2584842, +-1784451, +305406, +3022787, +-1451097, +1436183, +-762256, +744395, +-2908817, +-1213801, +-386293, +-2302623, +-653467, +-982398, +4623358, +2153086, +-1134981, +1542818, +901108, +-1140854, +2472719, +1890985, +-1137157, +2055100, +427363, +-31301, +3626328, +1441498, +805798, +-987709, +-384910, +556339, +896837, +-2517725, +723811, +-1027352, +-1617258, +-2740782, +-2127484, +-492670, +-1321177, +-695931, +577228, +-1283787, +-1505847, +-1619433, +360553, +-1596086, +61969, +-288930, +-1216163, +1797143, +-742194, +600011, +-241270, +351273, +-3012471, +-308291, +-541947, +-1902029, +-621432, +-2305293, +-1348202, +1533325, +2275364, +2169230, +1916682, +1411401, +-785542, +-2382906, +4840078, +522582, +392169, +375358, +2385174, +-581586, +193744, +-345388, +2125393, +791936, +-255410, +-166805, +4406885, +305722, +2511267, +-849139, +-2348174, +3341503, +68576, +-2799415, +964959, +-1760400, +-2160747, +2514562, +-270562, +1664455, +-3942140, +-2168858, +-323717, +-947870, +163100, +-1825118, +-1130352, +-114785, +-4236782, +-1576945, +2847746, +-3145574, +1388272, +-66245, +-1423067, +2859547, +2677480, +-1185722, +2365942, +520958, +2195243, +-3450331, +1877006, +916363, +778, +-2206051, +-466361, +202139, +-601938, +51036, +3647401, +1668170, +-1185629, +166863, +-1725512, +1789148, +-788015, +978567, +-1712453, +-554712, +-3372699, +1803344, +-897854, +-3236016, +-556372, +-1457671, +460324, +1060707, +1357333, +1045365, +-1930717, +777059, +-425937, +-834420, +-1189939, +194507, +2218312, +-1094666, +-3705973, +906096, +2777722, +2231731, +-3171764, +-486828, +1078622, +861832, +-959015, +2611599, +-135350, +610641, +-711138, +3462805, +-1165215, +3647783, +1621886, +-1086517, +60868, +252964, +136173, +1301024, +-850624, +1666167, +190080, +-2965398, +625535, +234678, +857337, +1049677, +-2208563, +-1023464, +1639382, +954470, +910791, +-1502177, +423774, +3466346, +2168473, +-2370899, +-1089579, +-642893, +-2052317, +3526387, +19090, +-610922, +-1375271, +2011766, +-1847092, +-1502616, +-317094, +-351499, +-261107, +-528293, +-503966, +1436907, +127400, +-1450589, +-66531, +4939251, +874909, +-1049924, +5164310, +-1147856, +1531778, +-1614006, +-2698637, +722371, +1119194, +-3034501, +-2697062, +2495670, +-930079, +-1131546, +829346, +-1164813, +-2168788, +-1645737, +273444, +1073158, +1225225, +1448733, +-1007394, +265930, +-3175050, +218077, +1056685, +-2199129, +-3176095, +-2370525, +-3462299, +-2743628, +-360088, +-57644, +3564156, +1606706, +3244375, +-186857, +1536695, +-2418550, +53892, +-1853967, +592569, +3926891, +-1493479, +389078, +-2642271, +-44987, +-943272, +-481791, +-795250, +-672906, +2136971, +-1367609, +407249, +1883390, +157911, +777254, +787184, +1699794, +-1377880, +-467162, +288764, +-690701, +2719792, +-265032, +267114, +153648, +2766982, +-452454, +2613652, +-1277024, +-1898807, +424545, +151097, +-256482, +1146113, +2211639, +-2626339, +-625983, +281070, +-3647088, +-706152, +-143082, +1952901, +2632401, +1517832, +-1108696, +3699051, +345245, +-891000, +2471600, +607863, +1851266, +-4486490, +658378, +-3525421, +-2891857, +2602450, +-1166765, +-7675379, +802565, +2692739, +2706973, +1088197, +-6186397, +2071083, +-154701, +2900460, +1320338, +1257382, +1069736, +-1175915, +-2392666, +-342978, +572962, +-183757, +3250507, +1769902, +-1889788, +1288066, +-1338865, +2089714, +460913, +1644860, +-3713037, +1239140, +57169, +-2306307, +1193413, +-2803012, +2167117, +-3619679, +3239335, +1189800, +1966178, +1222678, +-752261, +2193804, +-1141191, +3448382, +264414, +1019178, +-75820, +77692, +364805, +1902676, +-2993417, +-2451383, +-836725, +-869437, +-1744519, +564727, +-112585, +257397, +428714, +404777, +-556998, +-964791, +2624446, +-1787540, +2258460, +-3420895, +-1616792, +-423558, +1590940, +4888957, +2445789, +-456651, +2452891, +-1108754, +-816766, +-4738775, +121791, +2463584, +4530841, +-2526737, +2192419, +1145563, +337989, +-470142, +-1691399, +27807, +1202786, +3026122, +-2617275, +-5442474, +5435819, +-305284, +2150722, +-386769, +3584133, +-105374, }; -#define SIZE 24 +#define SIZE 32 __attribute__ ((section(".heapsram"))) int g_mA[SIZE][SIZE]; __attribute__ ((section(".heapsram"))) int g_mB[SIZE][SIZE]; __attribute__ ((section(".heapsram"))) int g_mC[SIZE][SIZE]; From b85310fd9ed068a0b310b67ed7b3aa46ec30c9bb Mon Sep 17 00:00:00 2001 From: Yvan Tortorella Date: Sat, 10 Feb 2024 14:48:34 +0100 Subject: [PATCH 15/56] Add YAML script for the CI. --- carfield/parallel-bare-tests.yaml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 carfield/parallel-bare-tests.yaml diff --git a/carfield/parallel-bare-tests.yaml b/carfield/parallel-bare-tests.yaml new file mode 100644 index 0000000..c75cb86 --- /dev/null +++ b/carfield/parallel-bare-tests.yaml @@ -0,0 +1,5 @@ + +parallel_bare_tests: + parMatrixMul32: + path: ./parMatrixMul32 #ok + command: make clean all run \ No newline at end of file From 8c9dc7e5a489cad272378c81a0058517f11d9adf Mon Sep 17 00:00:00 2001 From: Yvan Tortorella Date: Sat, 10 Feb 2024 23:03:21 +0100 Subject: [PATCH 16/56] Update headers in parallel bare tests. --- carfield/parMatrixMul16/gen_stimuli.py | 4 +- .../parMatrixMul16/parMatrixMul16_stimuli.h | 3651 ++++++----------- carfield/parMatrixMul32/gen_stimuli.py | 2 +- carfield/parMatrixMul8/gen_stimuli.py | 2 +- .../parMatrixMul8/parMatrixMul8_stimuli.h | 3425 +++++----------- carfield/parallel-bare-tests.yaml | 5 - 6 files changed, 2179 insertions(+), 4910 deletions(-) delete mode 100644 carfield/parallel-bare-tests.yaml diff --git a/carfield/parMatrixMul16/gen_stimuli.py b/carfield/parMatrixMul16/gen_stimuli.py index 2084a7d..754a8a9 100755 --- a/carfield/parMatrixMul16/gen_stimuli.py +++ b/carfield/parMatrixMul16/gen_stimuli.py @@ -15,8 +15,8 @@ def write_arr(f, name, arr): f = open('parMatrixMul16_stimuli.h', 'w') -SIZE = 32 -RANGE = 2**7/SIZE +SIZE = 24 +RANGE = int(2**7/SIZE) m_a = [] m_b = [] diff --git a/carfield/parMatrixMul16/parMatrixMul16_stimuli.h b/carfield/parMatrixMul16/parMatrixMul16_stimuli.h index 9b0f9bb..2797565 100644 --- a/carfield/parMatrixMul16/parMatrixMul16_stimuli.h +++ b/carfield/parMatrixMul16/parMatrixMul16_stimuli.h @@ -1,3104 +1,1741 @@ -/* - * Copyright (C) 2018 ETH Zurich and University of Bologna - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Mantainer: Luca Valente, luca.valente2@unibo.it - */ const short m_a[] = { 3, --2, --1, -3, +2, +-4, 0, --2, +0, +0, +-5, +-3, 2, -1, +4, +0, 2, 2, +-3, +2, -1, --4, -1, --4, -2, -1, +1, +4, +-3, +-3, +-1, 0, -2, +4, +-2, +-1, +-4, +-1, +4, 1, 3, -2, -2, -1, --1, -3, --4, -2, -1, --1, -0, -1, +3, +-5, +2, 0, 1, -1, -1, -2, --4, +-1, -4, -2, +4, 0, -2, +4, +-5, 3, -1, -0, -1, -3, +-4, 3, -1, +-2, +2, +-2, +3, +3, +4, +0, -4, +4, +0, 3, +-5, +1, +0, +0, +2, -3, -2, -3, --1, -3, +4, -3, 1, --4, -0, +-5, +-5, +2, +-3, -3, -0, --1, -2, -0, -4, +0, +4, 1, 1, 0, --4, --4, -2, -2, --1, +4, 0, -3, -1, -2, -1, -2, -1, +-3, -1, +-2, +-5, +4, +-2, +1, 3, -0, +-1, +-1, +-4, +4, +-1, 3, -3, --3, 2, +2, +3, 1, 2, --2, 1, --2, --1, --4, -3, --4, +2, +4, -4, -3, --4, -2, -3, -2, +-3, +4, 0, --2, 1, -2, 0, -2, -3, -3, -3, --4, --1, --4, -2, -3, -3, --4, +0, +-2, -3, 1, 3, +4, +-1, +4, +4, +3, -4, +-5, +3, +2, +4, -4, +4, +1, +-2, +2, -1, +4, +2, +2, +-5, +0, -2, +-4, +2, +-3, -1, +4, 0, +4, +4, 1, --2, +4, +4, +-3, 3, +4, -2, -1, +4, -4, 2, -3, --1, --3, -2, +-3, +3, 1, --1, 3, --3, 3, --4, 0, --3, --1, -1, +-4, 1, --1, -3, +-4, +4, +2, +-2, +-5, +-4, +-4, 2, -1, +-2, +0, +4, +-3, +4, +-5, 3, -1, -3, +-5, +-4, -2, -1, --1, +-5, +4, +-2, +3, -3, +4, 3, +-4, +4, 3, -3, +4, +-1, +3, -4, --4, +-5, +1, +-3, -4, 2, --3, --3, +3, 2, +-2, +4, 3, --4, --4, 2, -4, --3, -1, --1, --1, --4, 0, -2, -2, +-5, +-3, +3, +1, +3, +-5, +3, +1, +-5, +1, -2, +-4, +1, +-5, +4, 1, --1, 0, 0, --2, -4, -2, --2, --2, --2, -2, -1, --3, --4, -0, 2, 0, -3, -1, -0, -0, +-4, -1, -1, --2, --3, --2, -1, --2, --2, -1, +-5, -2, -4, +-2, 3, +4, +-5, +0, +2, +2, +4, +0, +4, +-5, +-3, +-5, +-5, +0, +0, -4, 3, --2, --2, 1, --2, 1, +-5, +2, +-5, +2, +-4, +3, +4, +-3, +-4, +4, -2, -0, --1, -4, -1, +4, -3, -1, -0, -2, -3, +-5, -4, -3, -0, 2, -2, +3, +-2, +1, +4, +1, +4, -2, +1, -4, --1, --1, +4, 2, +-1, +1, 1, -2, +-2, +0, +-5, 2, +4, +-4, +1, +-5, 0, +4, +3, -4, +1, -3, --1, +-4, +2, -3, -3, --4, --4, -3, --1, -3, -3, +1, 2, +4, +-3, +-2, 3, -0, -3, +-3, +-5, +4, +-5, +-5, +4, +4, 3, -2, +-1, +-3, -4, +-1, +1, 0, +1, +4, -1, 0, +1, +-4, +0, -4, +-3, 0, +-4, 2, -2, -2, -2, -1, +-2, +0, +-5, -1, +-3, 3, +4, +-4, +4, +4, 0, -0, --2, --3, --2, +-4, -3, -0, -0, -3, +4, 0, --4, --2, +2, 3, -1, 2, 0, --3, -0, -4, +3, -1, -1, --1, --2, --1, --1, +-3, +-4, +4, 0, -2, -1, +4, 3, +0, -3, --2, -1, +-5, +4, -3, +3, +4, +3, +-1, +3, -3, 1, -2, --3, -2, +3, +4, +3, -1, -0, --2, 3, 2, --1, -0, --1, -0, +4, +4, -2, -1, -0, -1, -3, -3, 2, -4, +-4, +-1, 0, +-1, +4, +-4, +4, 2, -3, --2, -3, -1, --3, +0, +0, 1, +-1, +-5, 1, +-5, +2, -2, 2, 1, -2, +3, +1, +-3, +-4, -2, 0, -0, -2, --3, +4, -2, -1, 0, +-1, +-1, -3, +-2, +4, +3, +4, +2, +3, +4, +-4, +-2, +-1, +-2, 0, -0, +-1, +-1, -4, -1, +-2, 2, --3, -1, +-5, +4, +-5, +0, +4, +4, +-2, +-4, 1, -2, +-5, +-5, +4, -3, 0, +-1, +-5, +4, -4, 0, +4, +4, -4, +-2, +-4, +1, +-4, +-5, +4, +-5, +-3, 2, -0, -2, +-2, +-1, -3, 0, +-3, +-2, +4, +-5, +-5, 3, --4, +-5, +-1, 3, -0, -1, 2, +3, 0, -0, --3, +-2, -3, -4, --4, +3, 0, +3, +3, -1, -2, --1, -0, -4, --1, -1, --2, -2, 0, 3, +-5, +-3, +4, +-3, 2, --4, --2, +-1, +0, +2, +-1, 3, --4, -1, +-5, 3, --3, --3, --3, +4, +3, +3, +4, +3, +1, -4, +1, -2, +4, -3, --1, +2, +0, -2, --1, --1, +-5, +-5, -2, -2, --4, -2, 0, -3, --1, -1, --3, -2, --3, -2, -2, -3, -2, --3, --1, -2, --4, --1, --2, +4, 0, -2, -4, +-1, 0, -2, --4, -2, -3, --2, +-5, -3, -2, --1, -3, +4, +0, 1, +-3, 3, --1, -1, -1, -2, --4, +-2, 2, -1, -1, --2, -2, -3, -1, +-2, +-5, +-5, +-1, -1, -2, -4, --1, -1, -1, --3, +-4, +}; + +const short m_b[] = { +-2, +3, 2, +-5, +-3, 2, 0, --2, +-5, 1, --4, -3, +-2, -3, -3, -0, 3, --1, -4, +-2, +-4, +1, +1, +1, +4, +4, 3, -0, -0, --3, 3, +-4, +-3, -2, -2, -0, -2, -2, -0, -3, -3, -1, -2, +-1, +-5, +-4, +1, +-4, +-3, +3, +-5, +-5, +-4, -2, -2, 1, +3, +3, +3, +4, 0, 1, -2, --2, --1, --3, 0, +4, 3, +-3, 3, --2, --4, +-1, 0, 2, -1, -1, --1, --3, --4, 0, -1, +0, +3, -4, +4, +3, +3, -1, -4, -1, -4, +-2, -4, --3, --1, -4, --3, --1, --3, +3, 0, 3, +-4, 2, +0, +0, -4, --3, --3, +-5, +-4, +4, +0, -4, --1, --1, -2, +-4, 3, --1, +4, +-4, -3, +-2, +0, +-2, +2, +-5, +2, +1, +2, +0, +0, +-2, +-2, +-1, +1, +-1, +3, 3, -1, 3, -2, -1, +-2, 1, -0, -3, -3, --4, +3, +3, +3, +2, +0, 1, -2, 1, +4, +3, +-2, +-5, +0, +2, +0, +1, -3, +-1, +3, -3, -0, +-2, 3, +4, +-2, +-1, +-5, +1, +-1, +2, -3, -4, --3, 0, --4, +-1, 0, -3, --4, -3, 2, +3, +4, -4, -1, -1, --3, --3, 2, +-1, +-5, 1, -2, -3, 0, -2, -1, -4, --3, --2, -2, 0, -1, +-1, 2, -0, +-5, -1, --3, 1, -2, --1, --3, -1, -3, -1, -3, +-5, -3, --4, -1, -0, --1, -0, -3, --2, --1, 2, 2, -4, 2, -2, +-5, +-4, +4, +4, +-1, 1, +2, -1, --2, -3, +-3, +0, 2, -1, +4, +-3, +-2, +-1, +4, +-5, +4, 0, +-1, +-1, -4, -1, +-3, +-3, -1, +-2, -1, +-2, +-5, +2, +2, +-3, +1, -1, -2, --4, +0, +0, 1, -2, +0, +4, -4, -2, -4, -2, +-4, +-5, +4, +-4, +4, +-3, +4, +-5, -2, -2, +3, -2, +-4, 1, -0, -0, 2, +-5, +-2, +-5, +-3, +2, +-1, 3, +-4, +-4, +4, +-3, +-5, 0, +-3, 2, --4, -1, 2, 3, +-3, +-3, -2, -2, --4, -0, +-5, +4, 1, --4, +3, -1, --2, -4, +3, 1, --1, --3, +-2, 1, --3, +3, +4, +1, +-2, 0, 0, +-3, +-1, +1, -1, 0, -2, +-5, +-2, -1, --4, 1, --1, -3, --4, -2, +-2, +4, +-3, 2, 1, --1, +0, +0, +3, -4, --3, -1, -2, 2, +1, +0, 3, +-5, +-1, +4, 3, -3, -1, +4, -2, -1, --4, --1, -3, -4, 3, -0, -2, --4, 3, -4, --4, -1, +4, +-5, 1, --4, -1, --1, --3, 0, -0, --2, +3, +4, +3, +-3, +-5, -3, +-2, -4, 1, --1, --1, -3, -1, -2, --1, --1, -2, --1, -2, -2, --1, -3, +-2, 1, -1, -0, -1, -3, 2, +4, +4, 0, -3, -0, -3, -0, --2, +2, +4, 0, +-1, +1, -4, -0, +-1, -3, -1, -3, -2, +-5, 3, +-3, +-1, 0, +-3, +-3, +-4, +3, 3, +-5, +-2, -1, +3, +1, +1, 1, -2, 3, -0, --4, 1, 1, -0, --3, -0, +-5, -2, +2, +4, 3, --1, +-3, +-5, 3, -4, -3, +0, 2, +-4, +-5, -3, --2, --2, +-3, +-3, +2, -1, +-3, 1, --2, --2, -3, --2, -1, -1, -0, +-5, 2, 1, -0, -0, 1, -3, --2, --1, --3, +2, +4, +1, +-5, 3, --2, 0, --3, -1, +-5, -4, 2, -0, +-5, +3, -1, --3, -1, +0, 2, --2, -3, +-1, -2, +-5, -4, +0, +-5, -3, +3, 1, --4, --3, --2, -2, -1, --3, 0, -3, -1, -4, --1, --2, -0, 1, -2, -1, --3, -4, -1, +-5, +-1, 3, 3, -3, -2, -1, +4, +-1, +-5, -4, -1, 0, 1, +1, +4, +-3, -2, --2, -2, -0, --4, --4, +4, +1, -4, +-1, -3, 2, -3, -0, -2, -2, --1, --1, -2, --1, -3, +4, 2, -0, --1, -1, -1, -0, --4, -0, 2, --3, -0, --2, -3, -4, -3, -3, --2, -3, --3, --2, +4, -1, --4, 1, -2, --2, -4, 0, +1, -4, --1, +4, +-4, +-5, +-5, -3, -0, -1, -2, -0, 2, 2, +-1, +0, +-2, +-5, 1, +-1, +-5, 2, +-4, +-5, -3, 1, --3, -4, 0, -3, --4, --1, 1, --1, -0, --3, +-5, 0, -2, --1, -2, +-2, +1, -4, +-5, 3, --3, 0, --2, 1, --4, 2, --1, -2, --3, --3, --1, --3, -0, --2, --1, +4, -1, -4, --1, -2, +0, -4, +0, +-5, 3, --4, --2, +-5, +-5, 2, 2, +3, -3, +4, +4, 2, -0, 3, -0, -2, --2, --1, --4, -3, +4, 3, -2, -1, --4, --2, --3, +4, 1, --2, 1, 0, --3, --4, --4, -1, -1, --3, --2, -1, --2, 2, +2, +4, +-1, +-5, +-5, +3, +-5, +-2, -4, -0, -1, --4, --4, -0, -4, 0, -2, +4, 3, -2, 0, +4, -3, --2, --2, --1, --2, -1, --3, --2, -1, +4, +0, -1, 3, 2, -3, -0, +-4, +2, -1, -3, +-5, -3, -2, -3, -2, 3, --3, --1, --1, -4, 1, --4, --3, --4, --4, --3, -2, -3, --2, -2, -3, --4, --2, -3, -3, 3, -1, --4, -4, -1, --3, -1, -2, -1, -}; - -const short m_b[] = { 0, 3, -3, +-2, +-1, 2, +-4, 2, -0, -3, +4, 0, 2, --3, -2, --1, --3, +-5, 0, +-1, +-5, +4, -4, -0, --2, --3, -0, -0, --3, -0, -0, +3, -1, +4, 1, -1, --1, --1, -0, +4, 0, -1, -3, --1, --2, 1, -2, -3, --4, +4, 3, --4, 3, -0, +1, 2, --2, -3, -2, --1, --4, --1, --4, -0, --2, -0, -0, --2, -0, -2, --4, --3, -0, --3, +-5, -2, -0, --3, --3, -3, -3, -2, -0, --4, --1, -2, 1, --1, -1, -2, -0, --4, -3, --1, --3, --1, +-5, -4, --1, -0, --1, -3, -1, +-5, -2, --1, -2, -2, --4, -3, --4, -0, --1, --4, -1, --3, -3, --2, -3, --2, --2, --2, --4, --2, --3, -2, -3, --4, --1, -2, -3, -0, -1, --3, -2, -0, --2, --1, --3, -3, --1, -0, --2, -3, -0, --1, --1, -2, --1, -3, --4, --2, --3, -1, --3, -2, --2, --4, --4, --4, --2, -2, --4, -3, -3, --1, -0, -1, --4, --3, -2, --2, --3, --3, -3, -0, -3, --4, -1, --1, --1, -2, -3, -3, --4, -0, --1, --1, --2, --1, -2, --3, --4, -2, --1, -1, -2, --2, -2, --3, --4, -1, --4, --3, -0, -3, --3, -0, --3, -0, --3, -3, --2, --1, -3, --2, --3, -3, -2, -3, --2, -0, --1, --3, -2, -2, --2, -0, --1, --4, -3, -2, --2, -1, --3, -2, --2, -0, --1, -0, --4, -0, --2, -1, -3, -3, -3, -3, -3, -1, -2, -0, --4, --3, -2, --1, --2, -2, --2, --2, --1, -2, --3, -3, --3, -1, -1, --4, --1, -2, --3, -2, --2, -3, --2, --3, --1, --3, -3, -1, --2, -3, -0, --2, -0, -2, -3, --4, -3, -1, --3, -2, -0, --2, -2, -2, -1, --1, -0, -1, --2, --3, --3, --3, --2, --1, --3, --1, --1, -1, -0, --2, --2, -3, --1, --4, -0, --4, --3, --3, -1, -1, -1, --2, --1, --1, --4, --1, --1, -1, -2, --4, --3, -0, -2, --1, -2, --1, -2, -2, --3, -0, --3, --3, --4, -3, --3, -3, -1, -3, -1, --1, -2, --3, --3, --4, --2, --3, -1, -3, -0, -0, -3, -2, -3, -1, -0, --3, --4, -1, -0, --4, --3, -1, --1, -1, --1, --4, -0, --1, --2, -1, -2, --1, -3, -0, --3, -1, -1, --1, -1, --4, -1, -3, --3, --3, -0, -3, -1, --4, -0, --4, -0, -1, -3, --1, --1, --2, -0, --1, -2, -0, -0, -2, -1, -1, --1, --3, -1, --1, -3, -2, -2, -0, --3, -2, -2, --2, -1, --4, -0, -0, -1, -0, --1, -1, -1, -0, --2, --2, --4, --3, -1, -0, -2, -0, -1, -2, --1, --2, -0, --1, --1, --3, -3, -3, --1, --1, -0, -3, -0, -2, -2, -1, -0, -0, -1, -3, --2, -1, --2, -0, -2, --4, -0, --2, -2, -0, -1, --4, --1, -2, -1, -1, -3, -1, --1, --1, --2, --2, --2, -0, --4, --3, -3, -1, -3, --2, -1, -2, -2, -0, -3, -0, --2, --4, -0, --2, -3, -1, -0, --3, --3, --2, -1, -0, --3, --4, -0, -3, --3, -2, -3, --3, -0, --3, --2, --2, -0, --3, -0, -2, -1, --2, -1, -2, --3, -1, --2, --4, --4, --4, --3, --1, --1, -0, --3, --4, --3, --1, --2, -2, -1, -2, -0, -1, -0, -0, -3, -2, -0, --4, -2, --1, -0, -1, -2, -2, --2, --3, -0, -1, --4, -2, --2, -0, --4, -0, --1, -3, -1, --2, --4, -2, -1, --2, --1, -3, -3, -0, -1, --3, -3, --1, -3, --2, --3, --2, --4, --2, --4, -0, -0, -3, -1, -2, -3, -2, -2, --2, --4, -2, -1, -2, --3, -0, --2, --2, --2, -0, --2, --1, -1, -1, -2, -2, -3, --2, --3, -0, --2, -0, --2, --2, --1, --3, --2, --1, --2, --2, --3, -0, --3, --1, -1, -0, --2, -3, -2, -1, --4, -0, -3, --4, -2, -2, -1, -1, --1, --2, -0, -2, -2, -1, --3, --1, -1, -0, -0, --1, -1, -0, -0, --1, --1, -1, --2, --1, --3, --3, -2, --1, --3, -3, -2, -1, -1, --1, -2, -1, -0, -2, -2, -2, --2, -2, --3, --4, -3, --4, -2, --1, -0, -2, -3, -3, --1, -3, --1, --2, -2, --2, --4, --1, --1, --2, --3, -0, --1, -1, --3, -1, --3, -1, -1, -3, --3, --2, --2, -3, -2, -3, --2, -3, -1, -0, -2, --2, --3, -3, --4, --3, --3, --3, -2, -3, -1, --3, -0, --1, -1, --4, -0, -0, -3, -3, --3, --4, --3, -2, --1, --2, -2, --2, -3, -3, -2, --2, -3, -2, -2, --2, -1, -0, --1, -0, --3, -3, -0, -1, --2, --1, --2, --3, -0, --1, --3, --1, --4, --3, -0, --4, -0, --1, -3, -0, -3, -1, -1, -0, -2, --3, --2, --3, --2, -1, --2, --2, -3, --3, --2, --4, -3, -3, -1, -1, --2, --2, -0, --3, --1, -1, --2, --4, -1, -2, -2, -2, --4, --3, -2, -2, -0, -3, -2, --3, --2, -2, -3, -3, --1, -0, -1, -2, --1, --3, --3, --4, --2, --1, --3, -0, --2, -1, -1, -2, --1, --2, --2, -1, --2, --1, --4, --2, -2, --3, --1, --2, --4, -3, --2, --2, -3, -1, --4, -1, --2, -0, --4, --2, --3, --3, --3, --3, -2, -3, --4, -0, -0, --3, -2, -0, --3, --2, --4, --3, -3, --1, -3, -2, --4, --2, -3, -2, -0, -3, --1, -1, -1, --4, -1, --3, -0, --3, --1, --1, --3, -1, -3, --1, --2, --1, -3, -3, -0, --2, -3, -1, -3, --3, --1, -2, --1, -1, --1, -3, -0, -1, -2, -0, -2, --1, --4, -3, -1, --2, --1, -2, --3, --1, -0, --3, --3, -2, -0, --3, --1, -0, --3, --3, -3, -0, --3, --3, --3, -1, --2, -1, -3, --3, -1, -1, -2, -2, -1, -1, -2, --4, --4, -3, --4, -0, --2, -0, -3, --1, --1, -3, -0, -2, --3, -3, -1, -2, -2, -0, -1, -0, -0, -0, -2, --2, --1, -3, --1, --4, -3, -1, --4, --2, --1, -3, -3, --2, --2, --1, --3, -1, -1, -2, -2, -2, --3, --1, --4, --3, --2, -3, --4, --1, --3, --1, -2, --1, -1, -0, -3, --4, -0, -2, -}; - -const short m_exp[] = { --8, -10, --3, --13, -15, --22, -32, --11, -6, -36, --22, --11, --20, -17, --33, --26, --13, --7, --8, -11, -0, --6, --38, -16, -28, -0, -0, --21, -32, --18, -15, -49, --39, -24, --2, -25, -33, --8, -52, --19, -58, -5, -1, -8, -21, -49, -6, --9, --11, --33, -25, -8, -5, --9, --33, --28, -21, --1, -24, --31, -2, -27, --4, -2, --17, -7, --11, --2, --21, --27, -8, -11, -71, --31, -28, -13, -10, -40, -35, -25, --4, -1, -27, --19, -50, -18, --23, -15, -12, -16, --24, -0, --16, --8, -19, --16, -10, -3, --32, --23, --31, --20, --52, --42, --17, -26, --20, -3, -85, -33, -37, -5, -38, -16, -21, -8, -80, -13, -5, --42, -1, --29, -4, -0, -7, -11, -91, -33, --9, --20, -2, --6, -0, -3, --22, --31, -37, -29, -30, --4, --35, -26, -25, --13, -40, -22, -50, --39, -13, -19, -30, --24, --10, -31, --47, -19, --3, --15, -7, --36, -2, -55, --20, -15, -31, --5, -14, --37, -47, -70, -1, -36, -16, -17, --43, -73, -35, --58, -41, --40, --58, --2, --13, --12, -62, -7, -21, -23, -24, -53, -34, --19, --18, -52, --10, -2, -7, --26, -6, -7, -42, -5, --1, -22, -55, -26, -30, -31, -25, --24, --18, --9, -3, -43, -7, --25, -38, --35, -1, --3, -7, -61, --19, -45, --54, -101, --9, --22, -36, -13, --14, -23, -12, -39, -13, -3, -32, -9, -3, -14, --19, -2, --14, -56, -37, -0, --23, --38, -13, -27, -11, --34, --12, -0, -27, --28, --3, -37, -40, -39, -40, --30, -38, -13, -2, -20, -8, -7, -9, -14, -57, --44, --15, -18, --49, -37, -40, --16, -21, -7, --80, --28, -10, --25, --56, -5, --54, -20, -10, --28, -24, --7, -21, -5, --59, --2, --7, -14, --1, -31, -19, --48, -4, -41, --36, -10, --13, -8, -2, -14, -9, -19, --21, --32, -54, --1, -16, -25, -18, -19, -8, -25, -31, --13, --31, -5, +}; + +const short m_exp[] = { +-32, +48, 2, --11, --17, --18, -1, --24, -26, --2, -20, --19, -30, -12, --1, --9, --17, --19, --14, -15, --13, +-56, +46, +-52, +39, +-77, +41, +-50, +-50, -14, -33, --6, --9, -36, --6, -45, --26, -29, --27, +-31, +3, +-22, -52, -0, -53, --2, --42, -18, +-31, +-32, 8, -7, -26, --35, -3, +61, +97, +49, +-12, +12, +-25, +-26, +-15, +15, +45, +-29, -27, -23, -35, --28, -7, -2, --39, -0, --22, -9, -44, -12, --1, --44, -44, -38, -11, --21, -7, -33, --1, --38, --3, -43, --14, +-23, 30, -12, -2, --33, -7, -20, +-36, +-56, +27, +-59, +35, +6, +44, +72, +23, +17, +86, +-8, +5, -25, --2, -31, +41, -30, -54, -36, -42, -89, --7, -35, --19, -19, --15, -10, -54, -15, -37, -71, +-78, +120, -1, -22, -14, --30, -0, --4, --2, --31, -20, --19, --31, --34, -4, -38, -9, --35, -25, -50, --10, -9, -4, -7, --15, -82, --18, -7, -24, --8, -10, -10, -1, +69, +-20, 24, +-66, +6, +68, +-59, +2, +27, +-21, +-71, +-61, +-49, 21, +-24, +27, +-47, +29, +71, +37, +-9, +-58, +13, +13, +73, +-9, 7, -70, -48, -17, -21, --56, -11, -19, -24, +28, +23, 35, --33, --15, -21, -9, -8, --12, --36, --32, +46, +-8, +86, +-7, +25, +-65, -18, --15, -21, -19, --1, +43, +58, +22, +44, -51, -12, -17, -3, --17, --20, -3, --13, -1, -19, --4, -7, --21, -28, -42, -50, -8, --4, --7, +-33, +10, -18, --56, --19, --16, -13, --6, -29, -15, -35, --19, --23, --14, --15, -3, --15, -47, -38, --44, -20, -48, --11, -15, --4, -76, -33, -38, -76, --34, -3, -25, -78, -76, --2, +-17, +-62, +24, +18, +-68, +23, +25, +23, +-32, +23, +37, +55, +-16, +24, 4, -39, +-16, +9, +77, +44, 48, -14, -49, --9, +-36, +-81, +-100, +-18, +36, -3, -23, -20, -17, -35, --10, +-72, +-43, +38, +-2, +34, +53, +-42, +-18, +56, +19, +34, +3, +-58, +-16, +-34, +-71, +-12, +12, -22, -23, -6, -64, -9, -13, --5, --19, +57, +-46, +-70, 25, --23, --7, --11, --44, -18, -36, --30, --13, -52, -54, -12, +-62, +10, +-5, 68, --11, --66, -34, -31, --32, -35, -28, -50, -58, -36, -35, -19, --51, --9, -58, --34, --35, --17, --11, -22, --3, -21, --6, +-86, +-15, +-19, +-100, +78, 23, -0, --33, -3, -19, 47, --12, --8, --13, -29, --13, -6, --3, --29, -37, -10, --42, +5, +-64, 31, -40, +-16, +-9, +-22, +11, +30, +-74, +31, +50, +38, +-59, +24, +12, +-18, +4, +33, +-24, +-44, +-19, +2, +-47, +48, +-30, 28, -25, -0, +-38, +-29, +20, +52, -21, +-5, +49, +-41, +-17, +-2, +68, +-2, +122, +-29, 13, -8, --16, --1, --18, 23, -50, --4, --6, -0, --26, +46, +40, +-12, +-58, +59, +2, +15, +-49, +-38, +-15, +46, +-1, +-54, +-73, 10, -31, +-1, +43, +80, +-55, +119, +82, +22, +-12, +-14, +-12, +-3, 36, -29, --25, --22, -2, +27, +-3, +50, +59, 61, -12, -22, -23, --25, -2, -28, -7, -78, -47, --13, --7, +13, -14, --21, -19, --32, 5, -15, --12, -43, -28, --1, +51, +-54, +-45, +-9, +109, +10, +-28, +1, +0, +-50, +-23, +27, +49, 16, -9, --11, --4, -30, --25, -7, -36, --42, 3, -16, -7, -0, --40, -28, -25, -44, --8, +23, 43, --7, +31, +29, +-27, +-45, +9, +61, +42, +34, +30, +26, +38, +-84, +5, +98, +13, +55, +15, +56, +63, +22, +80, +10, +52, +52, 49, --2, +101, +37, +71, +-20, +-38, +-36, +-72, -40, +12, +77, +-19, +32, +9, +-15, +85, -13, -37, -23, -33, --2, --28, --26, +-8, +-20, +33, +36, +76, 6, --7, -37, -53, -17, --11, --59, -12, +67, +-51, +36, +76, +-48, +30, 42, --46, +-45, +-22, +-9, +65, +-29, +18, +89, +34, +-25, +41, +30, +26, +49, +34, +-6, +-28, 10, -31, -43, --14, +-106, 6, -16, +86, +5, +-3, +-105, +-103, +-45, -55, -10, -44, --18, +-60, +29, +41, +54, +-29, 36, --14, -85, -12, --69, -25, -35, -4, --22, --5, -26, --22, -28, --63, --28, -2, -30, -22, --46, --1, -17, --37, +-8, 25, -22, -42, --9, --28, +36, 40, -11, --8, -59, +22, +-35, +-50, +33, 3, -26, -36, --7, --11, -12, --10, -10, -26, -26, --22, -41, --9, -26, --14, -19, --8, -27, -0, -23, -20, -42, --22, --23, --71, --36, -11, --23, --10, --2, -17, -51, --65, -19, -3, -42, -37, -19, -24, -6, -33, -29, -30, 3, --28, --5, -12, --36, --29, -20, -15, --1, -8, -25, +-11, +9, +-4, -18, --17, -22, +39, +92, +-25, +0, +-40, 64, -35, -7, -33, -8, +-18, +58, +-2, +27, +-89, +32, +-2, +56, +79, +-67, +87, -41, -40, +20, +29, +4, +51, +45, 26, -0, +-54, 8, --10, --65, -48, -7, -6, --10, -28, -16, -20, -0, -52, -31, -2, --53, +-37, +-37, +-39, +-35, +-36, -23, -32, --12, --6, +-30, +11, +1, +-63, +-21, +5, +13, +35, +-15, +27, +-59, +-10, +29, +4, +-58, +-56, +3, -10, 27, +0, +29, +-4, +-17, +28, 2, -3, -49, --46, 17, -92, 9, --21, -17, --32, --1, -67, --1, --17, -46, --11, +-27, +53, +-19, +-36, +104, +25, +38, +84, +-29, +42, +-10, +-47, +-36, +1, 10, -6, -46, -52, --4, -28, -61, -18, 43, --22, --25, -29, --56, --22, -17, --52, --3, -7, +-46, +-57, 38, -6, -19, -49, --8, --20, -17, -13, -52, +44, +-9, +26, +-15, 10, -22, --19, -5, --7, --7, --4, -42, --2, -64, -8, -5, 31, -35, --51, -4, +34, +-18, 17, --42, +24, +-3, +5, +11, +4, 23, -19, --5, --23, -14, -7, -47, +5, +-19, +51, +-59, +-29, +62, +-27, 35, -40, +81, +65, +-10, +-1, -1, -31, -36, -34, -9, -6, -22, --77, -32, -36, --43, --2, -47, -2, -6, -8, --14, -45, --20, --43, --14, -19, -5, -23, -74, -2, --14, -2, -1, --12, --5, -23, --17, 45, 20, -6, -56, -13, --5, +26, +-34, +-7, +35, +-7, 2, +19, +115, +-32, +-40, +-92, +47, +-65, 23, --8, -1, --21, --11, -37, -35, --15, -14, -39, +53, +-31, 22, -37, -19, --13, -73, +20, +45, +91, +64, 29, +49, +30, +74, +-15, 22, -7, --29, --60, -28, --6, --1, --34, --9, -59, -18, +120, 16, -36, --16, -5, -22, --22, -2, -52, --27, --15, -4, +122, +-51, +51, +78, +60, +-53, +40, +-49, +73, -2, -56, -4, +14, +-17, +-86, +35, +-25, 36, -30, --48, --13, -11, --47, +2, +5, +38, +-9, 16, -37, --27, -8, -31, +-12, +-41, +-24, +-31, +-72, +-68, +-9, +5, +11, +-63, 15, --15, -29, -47, +12, 21, --26, -31, --8, -24, -52, -76, +22, +19, +62, +-28, +122, +12, +28, +-59, -19, -15, +49, +57, +-12, 29, -11, -28, -13, -21, --22, --45, -18, +-1, +-23, +126, +75, +-29, +-21, +-37, +8, +-70, +-8, +91, +-34, +-10, +31, +78, +44, +59, +23, +66, +42, +38, +6, 19, -27, -61, +10, +1, 57, --56, -26, -20, -61, --40, -16, --31, -53, -83, --2, --16, --10, -13, -62, -52, --6, --49, -13, --37, -2, --36, -2, -25, --22, +38, +71, -10, --4, --2, +-12, +-7, +-13, +-15, +6, }; -#define SIZE 32 +#define SIZE 24 __attribute__ ((section(".heapsram"))) short g_mA[SIZE][SIZE]; __attribute__ ((section(".heapsram"))) short g_mB[SIZE][SIZE]; __attribute__ ((section(".heapsram"))) short g_mC[SIZE][SIZE]; diff --git a/carfield/parMatrixMul32/gen_stimuli.py b/carfield/parMatrixMul32/gen_stimuli.py index 75eef86..32926e9 100755 --- a/carfield/parMatrixMul32/gen_stimuli.py +++ b/carfield/parMatrixMul32/gen_stimuli.py @@ -16,7 +16,7 @@ def write_arr(f, name, arr): SIZE = 24 -RANGE = 2**15/SIZE +RANGE = int(2**15/SIZE) m_a = [] m_b = [] diff --git a/carfield/parMatrixMul8/gen_stimuli.py b/carfield/parMatrixMul8/gen_stimuli.py index 5fd3e84..153d5c3 100755 --- a/carfield/parMatrixMul8/gen_stimuli.py +++ b/carfield/parMatrixMul8/gen_stimuli.py @@ -15,7 +15,7 @@ def write_arr(f, name, arr): f = open('parMatrixMul8_stimuli.h', 'w') -SIZE = 32 +SIZE = 24 RANGE = 4 m_a = [] diff --git a/carfield/parMatrixMul8/parMatrixMul8_stimuli.h b/carfield/parMatrixMul8/parMatrixMul8_stimuli.h index e5a79da..78d026c 100644 --- a/carfield/parMatrixMul8/parMatrixMul8_stimuli.h +++ b/carfield/parMatrixMul8/parMatrixMul8_stimuli.h @@ -1,3104 +1,1741 @@ -/* - * Copyright (C) 2018 ETH Zurich and University of Bologna - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Mantainer: Luca Valente, luca.valente2@unibo.it - */ const char m_a[] = { +-1, +0, +0, +0, +-4, +-4, +-4, +1, +-1, -2, +-3, 3, 2, -2, --1, +-4, +1, -2, -3, -0, -0, -3, +0, -3, -4, -3, -2, -1, -3, +-1, +-3, -3, +2, -2, +2, 3, --1, 0, --2, +2, +0, -1, -1, --3, -3, +-2, -1, -1, -3, 1, -1, -3, -0, -0, -1, -0, -3, -1, --3, -0, -0, -3, -3, 0, -3, -1, -2, -3, -1, --2, --2, -2, +-4, -2, -3, -1, -2, +1, +1, 2, -2, +-1, 0, 2, --1, --2, 1, -3, 2, --4, -3, +-3, +0, +0, 0, 2, --3, +-2, +3, +-4, 2, +-2, +-3, +-2, +-3, +3, +-3, +0, +1, +-1, +-1, 1, +-2, -1, -4, -3, -2, +-1, +-4, -4, -2, -0, -1, -2, +-1, -2, -3, -2, -4, --3, -2, -2, +-4, 1, +0, -2, -3, +1, +-1, +1, 2, -3, +-3, -4, 0, -1, +2, +-3, -3, -3, -1, -1, 0, 0, -2, +-2, +-3, -1, -0, -3, +-2, +-1, +-4, +-1, +-4, +-3, -3, -2, -3, 0, 1, +-3, -4, 1, -1, --1, --4, --3, 2, +0, 2, +-1, +-4, +-1, +-4, 2, --2, --2, 2, +-1, 3, 0, --2, +0, -1, --4, +1, +3, 0, 2, --4, +0, 3, --2, +2, +2, +2, -3, +2, +2, -4, +0, +-3, +-1, +-1, -3, -3, -3, -4, --2, -3, -0, 3, +2, 0, 2, +1, 0, -2, +-1, 3, --4, -0, 3, --1, +0, 1, -3, -3, 3, -1, --4, --2, --2, +0, +-3, 2, +-3, 1, -3, --4, +2, 0, +3, -1, 0, -0, -2, -4, --1, 0, -3, -3, -1, -3, 0, --4, --3, +3, +0, +-1, -3, -2, 0, +-2, -4, -0, --3, -1, -4, --2, -0, -2, -1, 1, +2, +-4, 1, -0, +-4, +-4, +-3, -3, -1, --1, -1, --1, 3, +-1, +-2, +-4, 2, +1, 2, -2, --2, -1, -2, 1, +3, 0, --3, --1, --2, 2, --1, +-4, -3, +1, -2, --4, 0, +1, +1, 3, +-2, +-4, 2, -1, -1, -1, --3, +1, +2, -2, -3, +1, +1, +2, 0, 3, -0, --1, -4, +2, -1, -0, +-1, +-3, +-3, +-3, +-3, 2, +-3, +1, 0, 3, -3, --2, 3, -1, --3, --4, 3, -1, -4, -3, -3, -3, --2, --2, -0, 1, -2, --2, -4, --2, 1, +2, +-3, 1, -4, -1, -3, +-4, -3, +-2, 2, 3, 0, +-4, 1, --3, -1, +3, 0, -2, --4, --4, +3, +-1, -4, --3, +3, +-2, +-2, 2, -4, -2, -1, -1, -0, -1, -0, --3, +-1, 3, --4, --2, -2, +-4, -1, -1, -1, +2, -1, -1, +2, 0, +-2, +-4, 0, -1, --3, --1, -3, -2, -1, 2, +-4, +0, 1, --1, -3, -3, --2, +-4, 2, 0, -0, -1, --4, --4, +-1, -3, -1, --4, +2, +3, +2, -2, --1, 1, -1, --2, -4, -3, --4, -0, --4, -0, --4, --4, -3, +1, +2, +-1, -4, 3, -0, +-1, 2, +-2, -3, 0, --2, -3, -1, -1, -2, 3, -0, --1, +-4, +-3, -3, --1, -1, -3, -3, -3, 0, 0, --4, --2, -2, --2, +3, +1, -2, --3, -2, -4, 2, --2, -2, 2, --2, 0, +3, -2, -2, +1, +3, +-1, 3, +-4, +-2, 0, -2, +-4, 0, --3, -1, -2, -3, +-2, -4, -1, -4, --3, -2, -2, -2, -1, --1, -4, -2, -1, -2, -0, -0, -3, -2, --1, -0, +-3, 0, +2, -4, 1, --3, +0, -3, 0, --1, -1, +-4, +-4, +3, 3, -2, -2, +1, +3, +3, +1, +-3, -4, --2, +-4, +1, +1, 2, -4, 0, --2, --4, +3, -1, 3, 1, +-4, +-2, +1, +-1, +3, +3, +-1, +-1, 0, +-2, +2, +-2, +-2, 1, 3, +1, 3, +-1, +2, +-1, +0, 1, 2, -4, -2, --2, -3, -2, +1, -3, -2, -1, +-4, +-1, +-4, +-4, +-3, +-3, +3, +0, +3, +0, +-2, +3, -3, +3, -1, -1, --2, -1, 2, -2, --4, 1, +-4, +0, -3, 3, --3, --3, 0, -1, +-2, +-1, +3, +2, +-2, 3, -1, -3, 0, -2, +1, 0, --4, -0, +-1, 1, -2, +3, -4, +3, 0, -0, +3, -4, +3, -1, +-1, +1, +3, +1, 0, --2, --2, -4, --2, --1, 3, +-3, +-4, -1, -3, 2, -3, -4, -2, -3, --1, -1, -3, 2, --2, -3, -0, 3, --3, +-2, +-2, -4, -1, -0, 1, +-4, -2, 2, -3, +-3, 1, +-3, +-2, +2, 3, -2, --3, --1, --1, +0, 1, -1, --1, +2, +-2, 1, -0, --4, -1, --1, --3, -0, -3, +-4, -3, -4, --1, -1, +-3, +-3, +-3, -4, 3, 1, 1, -0, --3, -1, --3, -2, --2, --2, +3, +-4, 0, -4, +2, +2, 3, +2, +-4, +1, +-1, -2, -3, -2, -1, -1, +2, +-2, +2, -3, +2, 0, 0, --3, -1, -1, 0, --1, +-4, +-2, +-2, +2, 1, 0, --1, +2, +3, +2, +3, -3, +0, -3, -2, --4, 2, --2, -3, -0, +-1, +2, -3, +1, +0, +1, 3, -3, +-4, +0, -3, --2, -3, +-1, +1, -2, -2, 0, +0, 1, -3, -2, +0, +3, +2, +0, 3, +-4, 2, 1, +3, -2, -2, -0, --1, +-3, +2, +2, 2, -3, -1, -1, -0, --2, +3, 2, -3, --2, -2, +}; + +const char m_b[] = { 3, -2, -1, -1, +-3, -4, --2, +-3, 2, +-4, +-1, +-4, +-4, -1, -3, --3, -3, +3, +0, 2, 1, -1, -0, --3, +2, +-2, 0, +3, +-4, -2, 2, -0, -1, -1, --4, 1, -0, -0, +-4, +-4, +-1, 1, -2, -3, -3, +-2, +1, -3, -2, --4, -0, 1, -2, 2, --3, -3, -0, -0, -0, --3, --1, -2, +1, -3, -1, +-4, 1, -3, -0, -1, --4, -3, -0, -3, -2, 3, --4, -2, 0, --1, -2, --4, --1, -1, +0, -2, +0, -4, --4, -3, -1, -2, --2, -3, +0, -3, --2, -3, +0, 3, -2, --2, -1, -3, --3, -4, -2, -3, -3, -2, 2, +-4, -1, -3, +1, +-4, +-4, 0, +2, 3, --2, --3, +2, 0, -3, -1, --3, --4, -3, +-1, +2, +2, -2, -2, --1, +-2, +-4, 3, +-3, 2, +1, -1, --1, +1, +-3, -1, 2, -1, 1, -2, -1, --3, +0, +-4, +-2, 3, +0, +-4, -2, +3, -3, +1, +-1, -1, -0, --3, -2, 1, -3, -2, -2, -1, --3, --1, +-4, 0, --1, +0, +0, +0, +-4, -3, -1, +3, +-2, +3, +3, +2, 3, -4, --3, -1, 1, +-2, +-3, +-3, 2, +3, -4, -2, --2, -0, +-1, 3, 0, --2, +3, +2, +1, -1, -1, -1, --2, --2, -2, --3, -0, -4, -1, 3, --4, -3, +2, -1, --2, +3, 0, -1, 3, +0, +1, -4, 0, +3, +2, -4, +-2, +-2, -4, +-3, -2, 1, +0, -2, +1, 3, --3, -2, -1, --4, --2, -3, --4, -2, --2, 0, -2, +3, 0, +0, +0, +2, +3, -4, -4, --4, --3, -3, +2, +2, 3, --1, +1, 0, 0, --3, -3, +-2, +1, +-2, -4, +-3, +0, -2, +2, 3, --3, 2, +3, +3, +1, +1, 1, --2, 3, --2, --1, +1, 3, +2, -3, +1, +-1, +-2, +-2, +-2, +-1, +2, 2, 0, --1, -3, -0, -0, +-1, +2, +-4, +-2, +2, -3, -0, +-2, +-4, +3, +-1, 3, 2, 3, +-1, +-1, +-1, +-2, -2, --3, +2, 2, -1, -0, -3, --2, -1, +-1, +3, +-3, +3, +3, 2, -0, -3, --4, +2, -3, -0, -0, -3, +-2, +3, -1, 0, -1, -0, -2, -0, +-1, +-1, 2, -1, -3, --4, -3, +-2, +1, -4, -0, --3, 1, 3, 2, --3, --4, +1, +2, -1, -1, --3, +-1, +-4, 0, --3, +3, +1, -2, +0, +2, +-2, +-2, +3, -1, --3, -1, +0, +3, +3, +-1, +0, +0, +-4, 1, +-4, +-4, +0, +2, +3, +-3, -2, -3, -2, +-3, -2, +0, -4, -1, 0, -2, -2, 1, -0, -1, -0, -3, +-1, -4, +1, 2, 0, -3, +-2, 0, +2, +2, +2, +3, -3, 1, 0, -2, +2, 3, -1, -1, --1, -1, -2, +1, -3, +-1, +2, +2, +1, +3, +-2, +0, +-2, -4, --3, 1, -2, +1, +1, -2, -2, -1, +2, +0, 1, +-1, -3, +-1, +1, +-1, +-1, -3, -4, -2, --3, +-2, -1, -1, 0, --1, --3, +3, +3, +0, +-2, -2, --3, -2, -2, --4, -3, -0, 2, --1, --4, --3, -3, +2, 1, 3, +0, 3, +0, -1, -1, --3, -3, --4, --3, 3, --1, 3, -4, 1, 1, --4, -2, --3, +-4, +-4, 3, 1, +0, -1, -4, -2, --4, -2, 2, +0, +1, +-1, +0, +-3, +-2, +-1, 1, -3, +-2, 2, +-4, +-3, -3, -1, 0, -3, 0, --2, --2, --1, -3, +-3, +-3, 2, 0, -3, 1, --4, --1, +-2, -3, -1, +3, +-1, +3, +-3, +-4, -4, 0, -1, --1, --2, -2, -2, -4, -1, 2, --4, +1, +0, 0, --2, 2, 2, -1, +3, +2, +-1, +0, +-3, -3, +3, +0, +-4, +0, +-2, -2, -1, +1, 3, --2, 3, 1, -2, +-3, +1, -2, --4, +-1, +2, 0, -3, 0, +2, -1, -1, --3, -4, +-1, +-3, 0, +2, -4, +-1, 0, +-2, -1, --4, 2, --3, +-2, +-2, +3, +3, +0, +3, 1, +0, +2, +3, +2, +-2, +-4, +-1, +3, +3, -1, 2, --3, -0, 0, -2, -3, +2, -4, -0, -3, -3, --2, --1, -3, --4, --2, --4, --4, --1, --4, +-3, +-3, 0, 3, 3, --4, +3, +0, -3, -1, --1, 2, --4, -1, --2, +3, -3, -3, +-4, -1, 3, 0, -4, -0, -3, -}; - -const char m_b[] = { -0, +-2, +-3, 1, --4, -0, 3, --1, --4, -2, --1, 3, --1, -1, -2, --1, --4, --3, 2, +-4, +-2, +1, -3, -3, --1, -1, --2, -2, --1, -2, 3, --2, -3, 0, -1, -2, -3, -3, --2, -1, --2, -2, --1, -1, -4, -3, 0, --1, 2, --1, --1, -4, +0, 1, -1, --2, --4, +-1, 3, --2, --2, -2, -0, --2, 3, --4, -0, 3, -2, --3, --2, --2, -2, -2, --4, --4, -1, --3, --4, 1, --3, --4, -0, --2, -0, --2, --3, --1, -0, --2, 3, -4, +-4, -1, --2, -3, --1, --2, --4, -0, --2, -0, -3, -0, -3, -3, --1, --2, --4, -2, 0, +1, -1, --2, -3, --2, -3, --4, +-3, -4, --1, --2, -3, 2, -1, -1, 3, --1, --2, 0, -1, -4, +-2, -3, +0, 3, -1, -1, 2, -2, --3, --2, -3, -3, --3, --4, -1, --1, --1, 0, -2, +-4, -3, -1, -3, --1, --2, -1, --1, -3, --1, -2, -3, -1, --2, -3, -2, --2, -0, -0, -2, -1, -0, 2, -4, -4, --1, -0, -0, -1, --1, -0, -0, -2, -0, --4, 2, -0, -1, +3, -3, -0, -1, --1, -1, 2, -1, --3, --1, --3, --3, +-2, +-2, -1, -0, -3, -3, -1, -2, -2, -2, +-1, +3, -4, -4, -1, --4, 3, -3, --4, -2, --3, --1, -3, -1, --2, -3, -2, --1, -1, -3, -1, 2, 3, -3, -1, --1, -1, -3, --1, --4, -0, -0, -3, -1, +-3, -4, -0, -0, --1, -1, -2, +}; + +const char m_exp[] = { +27, +-26, +-19, +13, +47, +17, +-5, +14, +88, +66, 2, --1, +14, +6, +-39, +56, +35, +-19, +61, +-13, +4, +46, 1, -2, +70, +27, +-22, +-28, +-13, +-5, -4, --1, -1, -3, -0, --1, +-6, +-10, +5, +26, +14, 3, --4, -1, -1, -1, --2, -1, -1, -3, 0, +10, +43, +4, +32, -3, -0, --1, -0, --1, -1, --1, --2, --3, -1, --1, -3, -3, -2, -3, -2, --1, --4, -1, -2, --3, --3, --3, -3, -1, -3, -3, -3, --3, --1, -1, -0, --3, -2, -2, --3, --4, -2, -2, --4, --2, --2, -2, -1, -2, -0, --3, -3, --4, --3, -3, --1, --1, --2, -1, --1, --3, --4, --1, -3, --1, -2, -1, -3, --2, -2, -1, -1, --4, --2, --1, -0, -2, -3, --3, -2, -2, --4, -1, -3, -1, -2, -2, --2, --2, -3, --3, --4, -2, --3, --1, --1, --1, --2, --2, -1, -3, -0, -1, -0, --2, --2, --1, --3, --4, --2, -0, --1, -1, --3, --3, --4, -3, --3, --4, -3, --3, -3, --2, -0, --2, -1, --1, -3, --1, -3, -1, --3, -0, -0, -2, -1, --3, --4, -1, --1, --2, -2, -2, --4, --2, -2, --3, --1, --3, -3, -0, --3, -2, --4, -2, -3, --3, -2, -2, -3, --3, --1, --2, --4, --2, -1, --1, --1, --2, --2, --2, --1, --2, --1, -1, -0, --1, --3, -2, --4, --4, -2, -0, -3, --3, --3, -3, -1, -1, -0, -3, --3, --4, -2, --2, --4, -1, -2, -0, -2, -2, -1, -0, --3, --1, -3, -1, --3, -1, -2, --4, -1, -1, -3, --2, -3, --4, -1, --1, --4, --1, -3, -3, --1, --4, --4, -0, --4, -0, -1, --3, --3, -1, --2, -0, -3, --3, --4, --4, -0, --3, -1, --2, --1, -1, --4, --3, --1, -2, -0, --3, -0, --1, -3, -2, -2, -0, -0, --4, --4, -1, --3, -3, -0, -3, --3, --1, -2, -2, -2, --2, --3, --2, --3, -3, --2, -3, -3, -1, -0, --2, --1, -0, --2, -3, --4, --1, -2, -0, --3, --4, -2, --3, --1, --1, -0, -2, --4, -2, --3, --1, -0, -2, -1, -2, --2, -2, -0, -1, -0, -0, --3, -0, -0, -0, --1, --4, --2, --3, -0, -3, -0, -1, --1, -3, -0, -3, --1, -3, --1, --4, --2, --4, -2, --4, -3, -3, -1, -2, --2, -2, -3, --2, -1, -3, --1, -3, -2, --4, --1, -0, -0, -0, --3, --3, -1, --3, --3, --1, -2, --1, --4, --4, --2, --4, -2, --3, --3, --4, -2, -2, --4, -3, --1, --1, -0, -1, -0, -2, -0, -0, -3, -3, -0, --2, -2, -0, --3, -1, -2, --2, -0, --3, -3, --3, --4, -1, --1, --4, -3, --2, -2, -0, --2, --4, -0, --3, -2, --3, -0, -3, -2, --4, --4, -0, -1, -3, --3, --3, -0, --3, -3, --1, --4, -3, -1, -2, -3, --2, -2, -3, -0, --3, --4, -3, --4, --1, -2, -1, -3, --3, --4, -3, -1, -0, -0, --3, --4, --3, -2, -0, -1, --4, -3, --4, --2, --1, --4, -2, --4, -2, -0, -1, -0, --4, --4, -0, --4, -0, --4, --1, -2, -0, -0, --2, --1, --2, -0, -3, --1, -3, -1, --4, --1, -1, --1, -2, -0, -3, --4, --4, --2, --3, --2, -1, -0, --4, -3, -0, --4, --1, -0, -3, --4, -2, --4, --1, -2, --2, -0, -1, -1, --3, --2, -3, --4, --4, -0, -3, --4, --2, -0, -1, --4, --4, -2, --2, --3, --4, --4, -3, --1, --4, -2, -0, -2, -3, -2, -0, -3, --1, -3, -2, --4, --1, --2, --1, -1, -3, --1, --2, -2, -3, --4, --3, --1, -2, --2, -2, --2, -2, --1, -0, --1, --4, --4, -1, --3, -2, -3, --2, -0, -0, --2, --4, -1, -0, -3, -2, --2, -0, -1, --3, --3, -3, -1, --2, -0, --1, -3, --1, --4, --1, -3, --3, -2, --4, --1, -2, --1, --2, -2, --3, -0, -3, --2, -2, -2, --3, -3, --1, --4, --1, --4, --2, --2, -1, --4, --2, -3, -1, --1, -3, -2, -3, --4, -1, --4, --4, -0, -1, -3, -2, --1, --2, --2, -1, --1, --1, -0, --1, -0, --4, -0, -0, -2, --4, -2, -2, --1, -2, -1, -2, -1, -2, --2, -1, --1, --4, --1, -1, -3, --4, --1, -1, --1, -3, --3, --3, -2, --2, -1, -1, -3, -3, --3, -0, -0, -2, -2, -3, -0, --3, -1, -1, -2, --4, -0, -0, -2, --1, --2, -2, -0, --1, -1, -2, --4, --2, -3, -2, -3, --3, --2, -1, --2, -3, -1, --2, --2, -2, -1, --4, --3, --2, --4, -1, --1, -0, -3, --1, -2, --1, --1, -0, -1, -0, --4, -3, --2, -1, -3, -0, -2, --2, -0, --3, -0, -0, -0, -2, --4, -3, -0, -1, --4, --4, -3, --1, --4, -0, --2, -2, --3, --3, --3, --2, --4, --4, -3, --3, -1, --4, --2, --1, --4, -1, -0, -3, --4, -1, -1, -2, --3, -0, -}; - -const char m_exp[] = { --7, -54, -40, --69, -27, -6, --46, --45, -42, --3, -39, -8, --11, --7, --25, --28, -50, -20, --34, -14, -6, --2, -11, -53, --28, -14, --64, -5, -21, --7, --49, --4, --15, --72, -5, -35, --9, --19, -5, --19, --2, -8, --17, --9, -49, --28, --23, -27, --47, -35, -36, --19, --9, -24, -12, --4, -30, --28, -30, --27, --17, -41, -21, --5, --36, -33, --18, --8, -6, -19, --33, -26, --38, --29, --40, --21, -13, --15, --6, --22, -13, -10, -51, --38, --53, -48, -17, -53, --35, --21, -28, --10, --54, -54, --17, -19, --27, -8, -20, -42, --31, -8, -22, -73, --6, --9, --11, --17, --2, --29, -20, -52, -0, --5, --44, -31, --6, --12, --11, --1, -19, --46, -24, -19, -6, --40, -11, --23, -8, --2, --36, -77, -15, --9, -31, -66, --39, -24, --19, -40, --6, --12, --12, -37, -8, -9, --18, --1, --8, --26, -25, -45, -50, --15, -49, -3, --16, -2, -48, --37, -67, --6, -40, --13, -60, -38, --27, -11, -1, --8, -12, --27, -5, -12, -33, --24, -4, --40, --41, -39, --13, -17, -13, --25, --29, -21, --28, -18, --8, --23, -32, --22, -26, --22, -29, -13, -16, -11, -21, -12, --11, -64, -27, -3, -75, --37, --21, -30, -6, --18, -43, --10, --26, -32, -16, -27, -8, --6, -47, -7, --8, -28, -29, --18, --40, -10, -40, -16, --7, -29, --19, -38, -65, -53, --71, -42, -28, --69, --22, -4, -52, --74, --9, -12, --46, --32, --72, -5, --33, -34, --6, --38, -14, -0, -47, --23, --4, --14, --2, -14, --17, -29, -7, -32, --39, --21, -40, -14, -21, -4, --3, -9, --15, --2, -35, --13, -47, -9, --11, -22, -10, -5, -23, -39, -20, -14, -13, +6, +36, 26, -19, --49, -60, -57, --18, --35, -33, --43, +66, 20, -46, -35, +-20, +-10, +21, -17, -72, -62, -25, --13, --18, --2, -20, --6, --13, +-5, +36, -9, -49, -6, -41, --20, --7, -14, --20, -26, -32, -37, --16, -34, -66, +11, 10, -23, +17, -32, -11, --37, --18, --9, -7, --15, -69, -28, -14, -19, --27, -11, -71, -5, --47, -22, --41, --8, -35, -25, -92, --7, --34, --33, --9, --33, -33, -9, -45, -28, -28, -24, --24, -43, -16, -23, -63, --28, -53, -32, -33, -5, -12, --34, --40, -6, --10, -0, -16, -23, -38, 12, -33, -16, --5, --49, -22, -23, -4, -45, -16, -43, -1, -24, --32, -16, -8, -37, --38, --7, +20, +9, +-1, 15, -65, --23, --61, -34, -18, +-42, +-21, +-51, +24, +20, +26, +10, +42, -4, -12, --24, --38, +2, +-11, +41, 22, --23, --13, -80, --10, -29, -58, -26, --40, -40, -33, --13, --14, -26, -37, -97, --1, 4, -51, -65, --33, -47, +-17, 10, -25, --30, +28, +-10, +2, 10, --11, --34, +25, +32, 18, --28, --47, -5, --42, --27, +43, +-3, +-9, +-9, +-4, +25, +-5, +9, 24, -55, --10, --26, -28, +54, +43, +14, +59, +18, +36, +-7, +30, 50, -17, -24, -9, -72, --27, --41, -29, -23, --24, --15, --14, -22, -3, -3, +-30, +21, 3, -42, -17, --5, --21, -77, -29, --33, --1, 27, --38, --26, 7, -36, --30, -24, -39, --10, --39, -8, --32, --14, -63, -48, --41, -2, --24, -58, -24, 21, -11, --15, -82, --33, -53, -14, --1, -34, -12, +55, +-17, +-2, +9, +17, 31, -7, --14, --4, -16, --6, --9, --7, -28, -50, --6, --10, -15, -20, --19, -2, -40, -54, +8, 12, -24, --5, --6, -19, +29, +43, +-17, 14, -22, -27, +-55, +13, +50, +24, +-13, +-33, 15, +-45, +9, +36, +-9, +-6, 14, -7, --8, --19, -34, --36, -12, --11, --5, -23, -1, -30, --34, --11, -8, +2, +-27, +-37, +-40, +-14, +2, +-10, +6, 27, -9, -8, -8, --26, --1, +-13, +-17, +-4, +28, 51, -30, --29, -3, --26, -0, +-5, +-14, +2, +-23, +17, +35, +41, +-3, -37, -3, -12, -3, -33, --36, -2, --48, +-49, +-31, +7, +15, +36, -15, -9, --38, --6, --2, -10, +-21, +6, 2, -33, -32, --22, --2, --19, -16, +36, -12, -28, -8, -63, --6, --77, -23, --13, --23, -0, --20, -28, -33, -23, +-27, -34, --12, --3, +9, +44, +8, +57, +20, -22, -59, --10, --33, --13, -48, -0, -3, -28, -14, +-22, +-11, +-15, +-8, +-15, -9, --25, -18, --2, --57, -9, --21, --46, +49, +37, +26, +6, +30, +-17, +-43, +-3, +-31, 36, -91, -18, -2, --14, -13, --24, --20, --61, -31, --24, -47, --27, -40, -12, -12, -13, --16, -10, -28, -7, --11, -20, +49, +-15, 8, -13, --34, -4, -28, --66, --32, --25, --8, --51, --13, -34, -43, --26, -3, 51, --37, --80, -20, --10, --43, -3, -57, +-8, 17, -8, --25, --5, -16, +-51, +-16, +-21, +12, 49, +-11, 41, -20, -19, --8, --31, -47, --46, --23, --28, -34, --39, -0, -64, -32, -20, -43, -15, 36, 15, --31, -59, -49, --21, +-5, +-69, 60, +14, +-24, +-21, +23, +3, +41, +41, +-27, 0, +33, +63, +18, +1, +-36, +-20, 18, -0, -21, -21, -22, --19, 7, -19, -22, -42, -44, --9, -43, -5, --19, --43, --30, --4, --24, --11, -65, -55, --5, +-1, +37, -33, -17, -8, -14, +30, +36, +-29, 38, +57, +-8, +-21, +-26, +15, +-10, +-4, +-17, +-19, +8, +-9, +-13, +0, +10, +-30, +59, +12, +11, +51, +60, +19, +35, +6, 3, -5, +-19, +-10, +20, +6, +-12, +-5, +5, +11, 33, -8, --23, +-33, +-27, -2, -78, --11, -14, --30, -10, -27, -46, -42, +-2, +3, +53, -1, -6, -24, --7, +-15, +-10, 13, -2, -9, --4, -16, --29, -87, -49, -97, -50, -14, +-5, +24, -17, -101, -45, --42, -23, -53, -52, -28, --4, 10, --16, --23, -31, --54, -17, --19, --34, --14, -62, -19, --19, -53, +8, -3, -17, --16, --19, --17, -34, -59, +41, +-9, +9, +0, +30, +7, +7, +-10, +-28, +21, +13, +4, -3, --36, -27, -36, --20, --42, -8, --30, -31, --20, -15, -36, -27, -43, --14, +44, 9, -6, +-49, +-31, +-51, +23, +16, -13, -55, -55, --21, -10, -3, --4, -33, --22, --26, --43, -38, -19, -12, -28, -47, --17, --23, -15, --39, --35, --4, -14, +36, +23, 34, -56, +-39, +8, +20, +2, +32, +73, +24, -16, -13, --38, -14, -13, --1, --37, --21, -38, -5, +0, +-30, +17, +52, -10, -51, -34, -44, --9, -36, --14, --3, +28, +-43, -1, -14, --25, -7, -38, --49, -24, --3, --7, --55, -42, -23, --35, -61, -21, -33, --30, -26, --44, --24, -50, -37, -43, -22, -3, -34, +16, +-4, +39, +31, +5, +5, +3, 36, -24, --32, --14, --20, -12, -53, --3, -67, -24, -23, 48, --21, +5, +28, +12, +57, +25, +-28, 14, +34, 49, -40, -49, -2, -89, -62, --3, -24, --27, -51, +11, +41, +20, +-12, +-18, +-43, +-29, +58, +26, +44, +36, +-100, +-46, +-24, +0, +54, +4, +-2, +21, +5, +-12, 22, -30, +9, +-35, -5, --8, -7, --29, +-36, +-22, +-10, +-11, +-15, +34, +20, +-33, 17, -85, -78, -49, -66, --18, --19, -14, --35, --45, -85, -31, +39, +-13, +-32, +-36, +-22, +-3, +-38, +-39, +-6, +0, +15, +-6, +-15, +9, +-10, +45, 16, +17, 13, +-8, +15, +11, +-4, +59, +18, +-9, +12, +69, +27, +-30, +16, +7, +30, +41, +-30, +9, +-4, +23, +-5, 8, --35, -38, --11, --19, -19, --14, --15, -1, --25, -47, --32, 3, -31, -39, -42, +-75, +-25, 5, -7, +14, +12, +-21, +-21, +6, +-13, +15, +8, +-6, +30, +24, +41, +-12, +5, +39, +18, +-4, +-60, 19, --31, -25, +-1, +-3, +-7, +16, +-11, +-51, +2, +-10, -17, -7, +-32, +39, +-35, +-46, +10, +27, 1, -7, --6, -2, +21, +13, +78, +-12, -2, +-28, +-20, +11, +75, +85, +-18, +21, +-7, +-9, +33, 19, --15, -8, -34, --35, --8, -84, -57, --65, +71, +23, +25, +2, 47, +32, +8, +24, +46, +-22, +23, 18, -17, --60, --7, -29, -3, -1, --5, --28, -4, --6, --46, +-58, +66, +52, +22, +32, +25, -34, -47, -12, -9, -59, -19, +-26, +-21, +-69, 6, -18, -29, --14, -5, -3, --24, -43, +27, +-28, +-13, +-15, 10, -13, --53, -8, -9, --41, -14, -12, +-20, +-16, +20, +25, +7, +22, +52, +-4, -8, -28, -21, --2, -92, +-18, +-6, -36, --16, -23, -10, -34, --2, -13, -14, -45, --15, -64, --16, +6, +-26, +12, +32, +8, 11, -34, --29, -48, -40, -71, -30, --21, +16, 0, -34, -8, -46, --45, -24, -54, -3, +-18, +-33, +-10, +11, +-40, +-6, -29, -17, --9, -61, --36, +-34, +-30, +15, +15, +-27, +9, +8, +-43, +0, +-5, +4, +12, +60, +-11, +-4, +-32, +-25, -38, -5, +-37, +-17, +-1, +20, +37, +43, +7, +-2, +12, +-7, +-7, +-14, +-30, +9, +50, +-18, +-9, +-1, +-9, 6, -56, -28, -55, -28, +16, +-38, -13, --21, -44, --31, --20, +30, }; -#define SIZE 32 +#define SIZE 24 __attribute__ ((section(".heapsram"))) char g_mA[SIZE][SIZE]; __attribute__ ((section(".heapsram"))) char g_mB[SIZE][SIZE]; __attribute__ ((section(".heapsram"))) char g_mC[SIZE][SIZE]; diff --git a/carfield/parallel-bare-tests.yaml b/carfield/parallel-bare-tests.yaml deleted file mode 100644 index c75cb86..0000000 --- a/carfield/parallel-bare-tests.yaml +++ /dev/null @@ -1,5 +0,0 @@ - -parallel_bare_tests: - parMatrixMul32: - path: ./parMatrixMul32 #ok - command: make clean all run \ No newline at end of file From cf35cd0d4a77ff1779e939f10631ff5f72a1aa76 Mon Sep 17 00:00:00 2001 From: Riccardo Tedeschi Date: Mon, 12 Feb 2024 18:49:08 +0100 Subject: [PATCH 17/56] Add yaml file to automate execution of Carfield tests --- carfield.yaml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 carfield.yaml diff --git a/carfield.yaml b/carfield.yaml new file mode 100644 index 0000000..2055dcc --- /dev/null +++ b/carfield.yaml @@ -0,0 +1,16 @@ +carfield: + parMatrixMul8: + path: ./carfield/parMatrixMul8 #ok + command: make clean all run + parMatrixMul16: + path: ./carfield/parMatrixMul16 #ok + command: make clean all run + parMatrixMul32: + path: ./carfield/parMatrixMul32 #ok + command: make clean all run + dmr_matmul: + path: ./carfield/dmr_matmul #ok + command: make clean all run + redmule: + path: ./carfield/redmule #ok + command: make clean all run \ No newline at end of file From 11479f8ef91663f97101f3f1b3bf55708332e166 Mon Sep 17 00:00:00 2001 From: Yvan Tortorella Date: Tue, 27 Feb 2024 19:38:23 +0100 Subject: [PATCH 18/56] Added regression test for TCDM scrubber, --- carfield/ecc_test/Makefile | 6 ++++ carfield/ecc_test/ecc_test.c | 56 ++++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100755 carfield/ecc_test/Makefile create mode 100644 carfield/ecc_test/ecc_test.c diff --git a/carfield/ecc_test/Makefile b/carfield/ecc_test/Makefile new file mode 100755 index 0000000..a7acce4 --- /dev/null +++ b/carfield/ecc_test/Makefile @@ -0,0 +1,6 @@ +PULP_APP = test +PULP_APP_SRCS = ecc_test.c + +PULP_CFLAGS = -O3 + +include $(PULP_SDK_HOME)/install/rules/pulp.mk diff --git a/carfield/ecc_test/ecc_test.c b/carfield/ecc_test/ecc_test.c new file mode 100644 index 0000000..c1e563c --- /dev/null +++ b/carfield/ecc_test/ecc_test.c @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2018 ETH Zurich and University of Bologna + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include + +#define SIZE 0x400 +#define NUM_BANKS 16 +#define SCRUBBER_INTERVAL 2 + +int main() { + // Collecting info about the core ID and the running cluster ID + unsigned int core_id = get_core_id(); + unsigned int cluster_id = rt_cluster_id(); + + if (rt_cluster_id() != 0) return bench_cluster_forward(0); + + if (core_id != 0) synch_barrier(); + + unsigned int *test_array = pi_l1_malloc(cluster_id, SIZE); + + // Initializing the memory + for (int i = 0; i < SIZE; i++) { + pulp_write32(&test_array[i], i); + } + + // Initialize the scrubbing interval for all memory banks + for (int i = 0; i < NUM_BANKS; i++) + tcdm_scrubber_set_interval(cluster_id, i, SCRUBBER_INTERVAL); + + // Initialize the error vector + unsigned int error = 0; + for (int i = 0; i < SIZE; i++) { + error += (pulp_read32(&test_array[i]) != i); + if (error != 0) + printf("Expected 0x%x, got 0x%x\n", i, pulp_read32(&test_array[i])); + } + + return error; + +} From 460e60dc848af5eac80993f49c5a8fdbde7479a8 Mon Sep 17 00:00:00 2001 From: Yvan Tortorella Date: Wed, 28 Feb 2024 15:46:28 +0100 Subject: [PATCH 19/56] Fix error-checking function. --- carfield/ecc_test/ecc_test.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/carfield/ecc_test/ecc_test.c b/carfield/ecc_test/ecc_test.c index c1e563c..9972bad 100644 --- a/carfield/ecc_test/ecc_test.c +++ b/carfield/ecc_test/ecc_test.c @@ -43,12 +43,15 @@ int main() { for (int i = 0; i < NUM_BANKS; i++) tcdm_scrubber_set_interval(cluster_id, i, SCRUBBER_INTERVAL); - // Initialize the error vector + // Initialize the error-tracking variables + bool mismatch = 0; unsigned int error = 0; for (int i = 0; i < SIZE; i++) { - error += (pulp_read32(&test_array[i]) != i); - if (error != 0) + mismatch = (pulp_read32(&test_array[i]) != i); + if (mismatch) { + error ++; printf("Expected 0x%x, got 0x%x\n", i, pulp_read32(&test_array[i])); + } } return error; From 28823bcc69cfb3a994cedc5045c15844ee0a9794 Mon Sep 17 00:00:00 2001 From: Riccardo Tedeschi Date: Wed, 28 Feb 2024 17:51:13 +0100 Subject: [PATCH 20/56] Add fault injection capabilities to selected tests --- carfield/dmr_matmul/Makefile | 5 +++ carfield/dmr_matmul/pulp_inject_fault.tcl | 51 ++++++++++++++++++++++ carfield/ecc_test/Makefile | 5 +++ carfield/ecc_test/pulp_inject_fault.tcl | 53 +++++++++++++++++++++++ 4 files changed, 114 insertions(+) create mode 100644 carfield/dmr_matmul/pulp_inject_fault.tcl create mode 100644 carfield/ecc_test/pulp_inject_fault.tcl diff --git a/carfield/dmr_matmul/Makefile b/carfield/dmr_matmul/Makefile index 92be562..697ed29 100644 --- a/carfield/dmr_matmul/Makefile +++ b/carfield/dmr_matmul/Makefile @@ -4,4 +4,9 @@ PULP_APP_SRCS = dmr_matmul.c PULP_CFLAGS = -O3 PULP_LDFLAGS = -lm +ifdef fault_inject + export FAULT_INJECTION=1 + export FAULT_INJECTION_SCRIPT=pulp_inject_fault.tcl +endif + include $(PULP_SDK_HOME)/install/rules/pulp.mk diff --git a/carfield/dmr_matmul/pulp_inject_fault.tcl b/carfield/dmr_matmul/pulp_inject_fault.tcl new file mode 100644 index 0000000..857d373 --- /dev/null +++ b/carfield/dmr_matmul/pulp_inject_fault.tcl @@ -0,0 +1,51 @@ +# Copyright 2023 ETH Zurich and University of Bologna. +# Solderpad Hardware License, Version 0.51, see LICENSE for details. +# SPDX-License-Identifier: SHL-0.51 +# +# Author: Michael Rogenmoser (michaero@iis.ee.ethz.ch) + +transcript quietly +if {! [info exists ::env(VSIM_PATH)]} {error "Define VSIM_PATH"} +set utils_base_path [file join $::env(VSIM_PATH) scripts fault_injection_utils] +set script_base_path [file join $::env(VSIM_PATH) fault_injection_sim scripts] + +set verbosity 2 +set log_injections 1 +# Easy way to generate a variable seed +# set seed [clock seconds] +# Default value +set seed 12345 +set print_statistics 1 + +set inject_start_time 250856000000ps +set inject_stop_time 413000000000ps +set injection_clock "pulp_cluster_tb/cluster_i/clk_i" +set injection_clock_trigger 0 +set fault_period 250 +set rand_initial_injection_phase 0 +# max_num set to 0 means until stop_time +set max_num_fault_inject 0 +set signal_fault_duration 20ns +set register_fault_duration 0ns + +set allow_multi_bit_upset 1 +set use_bitwidth_as_weight 0 +set check_core_output_modification 0 +set check_core_next_state_modification 0 +set reg_to_sig_ratio 1 + +source [file join $utils_base_path pulp_extract_nets.tcl] + +set inject_signals_netlist [] +set inject_register_netlist [] +set output_netlist [] +set next_state_netlist [] +set assertion_disable_list [] + +for {set idx 0} {$idx < 12} {incr idx} { + set inject_signals_netlist [list {*}$inject_signals_netlist {*}[get_all_core_nets $idx]] + set output_netlist [list {*}$output_netlist {*}[get_core_output_nets $idx]] +} + +source [file join $script_base_path inject_fault.tcl] + diff --git a/carfield/ecc_test/Makefile b/carfield/ecc_test/Makefile index a7acce4..bd2720e 100755 --- a/carfield/ecc_test/Makefile +++ b/carfield/ecc_test/Makefile @@ -3,4 +3,9 @@ PULP_APP_SRCS = ecc_test.c PULP_CFLAGS = -O3 +ifdef fault_inject + export FAULT_INJECTION=1 + export FAULT_INJECTION_SCRIPT=pulp_inject_fault.tcl +endif + include $(PULP_SDK_HOME)/install/rules/pulp.mk diff --git a/carfield/ecc_test/pulp_inject_fault.tcl b/carfield/ecc_test/pulp_inject_fault.tcl new file mode 100644 index 0000000..e34e551 --- /dev/null +++ b/carfield/ecc_test/pulp_inject_fault.tcl @@ -0,0 +1,53 @@ +# Copyright 2023 ETH Zurich and University of Bologna. +# Solderpad Hardware License, Version 0.51, see LICENSE for details. +# SPDX-License-Identifier: SHL-0.51 +# +# Author: Michael Rogenmoser (michaero@iis.ee.ethz.ch) + +transcript quietly +if {! [info exists ::env(VSIM_PATH)]} {error "Define VSIM_PATH"} +set utils_base_path [file join $::env(VSIM_PATH) scripts fault_injection_config] +set script_base_path [file join $::env(VSIM_PATH) fault_injection_sim scripts] + +set verbosity 2 +set log_injections 1 +# Easy way to generate a variable seed +# set seed [clock seconds] +# Default value +set seed 12345 +set print_statistics 1 + +set inject_start_time 110584000000ps +set inject_stop_time 203880000000ps +set injection_clock "pulp_cluster_tb/cluster_i/clk_i" +set injection_clock_trigger 0 +set fault_period 100 +set rand_initial_injection_phase 0 +# max_num set to 0 means until stop_time +set max_num_fault_inject 0 +set signal_fault_duration 20ns +set register_fault_duration 0ns + +set allow_multi_bit_upset 1 +set use_bitwidth_as_weight 0 +set check_core_output_modification 0 +set check_core_next_state_modification 0 +set reg_to_sig_ratio 1 + +source [file join $utils_base_path pulp_extract_nets.tcl] + +set inject_signals_netlist [] +set inject_register_netlist [] +set output_netlist [] +set next_state_netlist [] +set assertion_disable_list [] + +# for {set idx 0} {$idx < 12} {incr idx} { +# set inject_signals_netlist [list {*}$inject_signals_netlist {*}[get_all_core_nets $idx]] +# set output_netlist [list {*}$output_netlist {*}[get_core_output_nets $idx]] +# } + +set inject_register_netlist [list {*}$inject_register_netlist {*}[get_memory_slice {0 16} {385 449}]] + +source [file join $script_base_path inject_fault.tcl] + From 8c22bb3057d3873b539a1c8a8e605d6a10a1891f Mon Sep 17 00:00:00 2001 From: Riccardo Tedeschi Date: Wed, 6 Mar 2024 16:45:52 +0100 Subject: [PATCH 21/56] Update ECC test to inject single or multiple bitflips --- carfield/ecc_test/Makefile | 6 +++++- carfield/ecc_test/ecc_test.c | 12 +++++++++++- carfield/ecc_test/pulp_inject_fault.tcl | 4 ++-- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/carfield/ecc_test/Makefile b/carfield/ecc_test/Makefile index bd2720e..05536c6 100755 --- a/carfield/ecc_test/Makefile +++ b/carfield/ecc_test/Makefile @@ -5,7 +5,11 @@ PULP_CFLAGS = -O3 ifdef fault_inject export FAULT_INJECTION=1 - export FAULT_INJECTION_SCRIPT=pulp_inject_fault.tcl + export FAULT_INJECTION_SCRIPT=$(CURDIR)/pulp_inject_fault.tcl +endif + +ifdef multi_bit_upset + export MULTI_BIT_UPSET=1 endif include $(PULP_SDK_HOME)/install/rules/pulp.mk diff --git a/carfield/ecc_test/ecc_test.c b/carfield/ecc_test/ecc_test.c index 9972bad..bd6c276 100644 --- a/carfield/ecc_test/ecc_test.c +++ b/carfield/ecc_test/ecc_test.c @@ -54,6 +54,16 @@ int main() { } } - return error; + unsigned int mismatch_cnt = 0; + unsigned int fix_cnt = 0; + unsigned int uncorrectable_cnt = 0; + for (int i = 0; i < 16; i++) { + mismatch_cnt += tcdm_scrubber_get_mismatch_count(cluster_id, i); + fix_cnt += tcdm_scrubber_get_fix_count(cluster_id, i); + uncorrectable_cnt += tcdm_scrubber_get_uncorrectable_count(cluster_id, i); + } + + printf("mismatch_cnt: %d, fix_cnt: %d, uncorrectable_cnt: %d\n", mismatch_cnt, fix_cnt, uncorrectable_cnt); + return (error != 0) || (uncorrectable_cnt != 0); } diff --git a/carfield/ecc_test/pulp_inject_fault.tcl b/carfield/ecc_test/pulp_inject_fault.tcl index e34e551..e22ff1f 100644 --- a/carfield/ecc_test/pulp_inject_fault.tcl +++ b/carfield/ecc_test/pulp_inject_fault.tcl @@ -6,7 +6,7 @@ transcript quietly if {! [info exists ::env(VSIM_PATH)]} {error "Define VSIM_PATH"} -set utils_base_path [file join $::env(VSIM_PATH) scripts fault_injection_config] +set utils_base_path [file join $::env(VSIM_PATH) scripts fault_injection_utils] set script_base_path [file join $::env(VSIM_PATH) fault_injection_sim scripts] set verbosity 2 @@ -28,7 +28,7 @@ set max_num_fault_inject 0 set signal_fault_duration 20ns set register_fault_duration 0ns -set allow_multi_bit_upset 1 +set allow_multi_bit_upset [info exists ::env(MULTI_BIT_UPSET)] set use_bitwidth_as_weight 0 set check_core_output_modification 0 set check_core_next_state_modification 0 From 1563f0882242d30c7c6661525c917fc33ba42347 Mon Sep 17 00:00:00 2001 From: Riccardo Tedeschi Date: Wed, 6 Mar 2024 16:56:07 +0100 Subject: [PATCH 22/56] Use XOR over OR in ECC test return condition When simulating multiple bitflips, it is expected that `error != 0` --- carfield/ecc_test/ecc_test.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/carfield/ecc_test/ecc_test.c b/carfield/ecc_test/ecc_test.c index bd6c276..d3c92bd 100644 --- a/carfield/ecc_test/ecc_test.c +++ b/carfield/ecc_test/ecc_test.c @@ -65,5 +65,5 @@ int main() { printf("mismatch_cnt: %d, fix_cnt: %d, uncorrectable_cnt: %d\n", mismatch_cnt, fix_cnt, uncorrectable_cnt); - return (error != 0) || (uncorrectable_cnt != 0); + return (error != 0) ^ (uncorrectable_cnt != 0); } From ad3aeeff90e4b754805a14230a5c39157cc14f96 Mon Sep 17 00:00:00 2001 From: Riccardo Tedeschi Date: Mon, 11 Mar 2024 13:15:34 +0100 Subject: [PATCH 23/56] Fix fault injection toggle via CLI --- carfield/dmr_matmul/Makefile | 4 ++-- carfield/ecc_test/Makefile | 4 ++-- carfield/ecc_test/pulp_inject_fault.tcl | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/carfield/dmr_matmul/Makefile b/carfield/dmr_matmul/Makefile index 697ed29..66ed60e 100644 --- a/carfield/dmr_matmul/Makefile +++ b/carfield/dmr_matmul/Makefile @@ -4,9 +4,9 @@ PULP_APP_SRCS = dmr_matmul.c PULP_CFLAGS = -O3 PULP_LDFLAGS = -lm -ifdef fault_inject +ifeq ($(fault_inject),1) export FAULT_INJECTION=1 - export FAULT_INJECTION_SCRIPT=pulp_inject_fault.tcl + export FAULT_INJECTION_SCRIPT=$(CURDIR)/pulp_inject_fault.tcl endif include $(PULP_SDK_HOME)/install/rules/pulp.mk diff --git a/carfield/ecc_test/Makefile b/carfield/ecc_test/Makefile index 05536c6..d19f286 100755 --- a/carfield/ecc_test/Makefile +++ b/carfield/ecc_test/Makefile @@ -3,12 +3,12 @@ PULP_APP_SRCS = ecc_test.c PULP_CFLAGS = -O3 -ifdef fault_inject +ifeq ($(fault_inject),1) export FAULT_INJECTION=1 export FAULT_INJECTION_SCRIPT=$(CURDIR)/pulp_inject_fault.tcl endif -ifdef multi_bit_upset +ifeq ($(multi_bit_upset),1) export MULTI_BIT_UPSET=1 endif diff --git a/carfield/ecc_test/pulp_inject_fault.tcl b/carfield/ecc_test/pulp_inject_fault.tcl index e22ff1f..45cef47 100644 --- a/carfield/ecc_test/pulp_inject_fault.tcl +++ b/carfield/ecc_test/pulp_inject_fault.tcl @@ -28,7 +28,7 @@ set max_num_fault_inject 0 set signal_fault_duration 20ns set register_fault_duration 0ns -set allow_multi_bit_upset [info exists ::env(MULTI_BIT_UPSET)] +set allow_multi_bit_upset $::env(MULTI_BIT_UPSET) set use_bitwidth_as_weight 0 set check_core_output_modification 0 set check_core_next_state_modification 0 From 126a1c56a6774d235f52b05ea1e3d5566606effd Mon Sep 17 00:00:00 2001 From: Yvan Tortorella Date: Sat, 23 Mar 2024 20:14:51 +0100 Subject: [PATCH 24/56] Add astral target. --- astral.yaml | 16 + astral/dmr_matmul/Makefile | 12 + astral/dmr_matmul/dmr_matmul.c | 100 + astral/dmr_matmul/matmul.h | 56 + astral/dmr_matmul/pulp_inject_fault.tcl | 51 + astral/ecc_test/Makefile | 15 + astral/ecc_test/ecc_test.c | 69 + astral/ecc_test/pulp_inject_fault.tcl | 53 + astral/hello/Makefile | 5 + astral/hello/hello.c | 24 + astral/parMatrixMul16/Makefile | 8 + astral/parMatrixMul16/gen_stimuli.py | 54 + astral/parMatrixMul16/matrixMul.c | 177 ++ .../parMatrixMul16/parMatrixMul16_stimuli.h | 1742 +++++++++++++++++ astral/parMatrixMul32/Makefile | 8 + astral/parMatrixMul32/gen_stimuli.py | 54 + astral/parMatrixMul32/matrixMul.c | 177 ++ .../parMatrixMul32/parMatrixMul32_stimuli.h | 1742 +++++++++++++++++ astral/parMatrixMul8/Makefile | 8 + astral/parMatrixMul8/gen_stimuli.py | 54 + astral/parMatrixMul8/matrixMul.c | 177 ++ astral/parMatrixMul8/parMatrixMul8_stimuli.h | 1742 +++++++++++++++++ astral/redmule/Makefile | 9 + astral/redmule/archi_redmule.h | 164 ++ astral/redmule/hal_redmule.h | 527 +++++ astral/redmule/inc/golden.h | 387 ++++ astral/redmule/inc/tensor_dim.h | 13 + astral/redmule/inc/w_2D.h | 35 + astral/redmule/inc/w_input.h | 35 + astral/redmule/inc/x_2D.h | 27 + astral/redmule/inc/x_input.h | 27 + astral/redmule/inc/y_2D.h | 27 + astral/redmule/inc/y_input.h | 27 + astral/redmule/inc/z_2D.h | 27 + astral/redmule/inc/z_output.h | 27 + astral/redmule/redmule.c | 112 ++ 36 files changed, 7788 insertions(+) create mode 100644 astral.yaml create mode 100644 astral/dmr_matmul/Makefile create mode 100644 astral/dmr_matmul/dmr_matmul.c create mode 100644 astral/dmr_matmul/matmul.h create mode 100644 astral/dmr_matmul/pulp_inject_fault.tcl create mode 100755 astral/ecc_test/Makefile create mode 100644 astral/ecc_test/ecc_test.c create mode 100644 astral/ecc_test/pulp_inject_fault.tcl create mode 100644 astral/hello/Makefile create mode 100644 astral/hello/hello.c create mode 100755 astral/parMatrixMul16/Makefile create mode 100755 astral/parMatrixMul16/gen_stimuli.py create mode 100644 astral/parMatrixMul16/matrixMul.c create mode 100644 astral/parMatrixMul16/parMatrixMul16_stimuli.h create mode 100755 astral/parMatrixMul32/Makefile create mode 100755 astral/parMatrixMul32/gen_stimuli.py create mode 100644 astral/parMatrixMul32/matrixMul.c create mode 100644 astral/parMatrixMul32/parMatrixMul32_stimuli.h create mode 100755 astral/parMatrixMul8/Makefile create mode 100755 astral/parMatrixMul8/gen_stimuli.py create mode 100644 astral/parMatrixMul8/matrixMul.c create mode 100644 astral/parMatrixMul8/parMatrixMul8_stimuli.h create mode 100644 astral/redmule/Makefile create mode 100644 astral/redmule/archi_redmule.h create mode 100644 astral/redmule/hal_redmule.h create mode 100644 astral/redmule/inc/golden.h create mode 100644 astral/redmule/inc/tensor_dim.h create mode 100644 astral/redmule/inc/w_2D.h create mode 100644 astral/redmule/inc/w_input.h create mode 100644 astral/redmule/inc/x_2D.h create mode 100644 astral/redmule/inc/x_input.h create mode 100644 astral/redmule/inc/y_2D.h create mode 100644 astral/redmule/inc/y_input.h create mode 100644 astral/redmule/inc/z_2D.h create mode 100644 astral/redmule/inc/z_output.h create mode 100644 astral/redmule/redmule.c diff --git a/astral.yaml b/astral.yaml new file mode 100644 index 0000000..cc65374 --- /dev/null +++ b/astral.yaml @@ -0,0 +1,16 @@ +carfield: + parMatrixMul8: + path: ./astral/parMatrixMul8 #ok + command: make clean all run + parMatrixMul16: + path: ./astral/parMatrixMul16 #ok + command: make clean all run + parMatrixMul32: + path: ./astral/parMatrixMul32 #ok + command: make clean all run + dmr_matmul: + path: ./astral/dmr_matmul #ok + command: make clean all run + redmule: + path: ./astral/redmule #ok + command: make clean all run \ No newline at end of file diff --git a/astral/dmr_matmul/Makefile b/astral/dmr_matmul/Makefile new file mode 100644 index 0000000..66ed60e --- /dev/null +++ b/astral/dmr_matmul/Makefile @@ -0,0 +1,12 @@ +PULP_APP = test +PULP_APP_SRCS = dmr_matmul.c + +PULP_CFLAGS = -O3 +PULP_LDFLAGS = -lm + +ifeq ($(fault_inject),1) + export FAULT_INJECTION=1 + export FAULT_INJECTION_SCRIPT=$(CURDIR)/pulp_inject_fault.tcl +endif + +include $(PULP_SDK_HOME)/install/rules/pulp.mk diff --git a/astral/dmr_matmul/dmr_matmul.c b/astral/dmr_matmul/dmr_matmul.c new file mode 100644 index 0000000..953dfdf --- /dev/null +++ b/astral/dmr_matmul/dmr_matmul.c @@ -0,0 +1,100 @@ +/* +* @Author: Michael Rogenmoser +* @Date: 2023-02-17 18:00:21 +* @Last Modified by: Michael Rogenmoser +* @Last Modified time: 2023-02-17 18:15:33 +*/ +#include +#include +#include "matmul.h" + +#define N_ITERS 1 +#define max(x,y) (x > y ? x : y) +#define min(x,y) (x < y ? x : y) + +__attribute__ ((section(".heapsram"))) int A[SIZE][SIZE]; +__attribute__ ((section(".heapsram"))) int B[SIZE][SIZE]; +__attribute__ ((section(".heapsram"))) int C[SIZE][SIZE]; + +void initialize_mat(); + +void initialize_mat() { + int i,j; + + for (i=0;i +#include +#include +#include + +#define SIZE 0x400 +#define NUM_BANKS 16 +#define SCRUBBER_INTERVAL 2 + +int main() { + // Collecting info about the core ID and the running cluster ID + unsigned int core_id = get_core_id(); + unsigned int cluster_id = rt_cluster_id(); + + if (rt_cluster_id() != 0) return bench_cluster_forward(0); + + if (core_id != 0) synch_barrier(); + + unsigned int *test_array = pi_l1_malloc(cluster_id, SIZE); + + // Initializing the memory + for (int i = 0; i < SIZE; i++) { + pulp_write32(&test_array[i], i); + } + + // Initialize the scrubbing interval for all memory banks + for (int i = 0; i < NUM_BANKS; i++) + tcdm_scrubber_set_interval(cluster_id, i, SCRUBBER_INTERVAL); + + // Initialize the error-tracking variables + bool mismatch = 0; + unsigned int error = 0; + for (int i = 0; i < SIZE; i++) { + mismatch = (pulp_read32(&test_array[i]) != i); + if (mismatch) { + error ++; + printf("Expected 0x%x, got 0x%x\n", i, pulp_read32(&test_array[i])); + } + } + + unsigned int mismatch_cnt = 0; + unsigned int fix_cnt = 0; + unsigned int uncorrectable_cnt = 0; + for (int i = 0; i < 16; i++) { + mismatch_cnt += tcdm_scrubber_get_mismatch_count(cluster_id, i); + fix_cnt += tcdm_scrubber_get_fix_count(cluster_id, i); + uncorrectable_cnt += tcdm_scrubber_get_uncorrectable_count(cluster_id, i); + } + + printf("mismatch_cnt: %d, fix_cnt: %d, uncorrectable_cnt: %d\n", mismatch_cnt, fix_cnt, uncorrectable_cnt); + + return (error != 0) ^ (uncorrectable_cnt != 0); +} diff --git a/astral/ecc_test/pulp_inject_fault.tcl b/astral/ecc_test/pulp_inject_fault.tcl new file mode 100644 index 0000000..45cef47 --- /dev/null +++ b/astral/ecc_test/pulp_inject_fault.tcl @@ -0,0 +1,53 @@ +# Copyright 2023 ETH Zurich and University of Bologna. +# Solderpad Hardware License, Version 0.51, see LICENSE for details. +# SPDX-License-Identifier: SHL-0.51 +# +# Author: Michael Rogenmoser (michaero@iis.ee.ethz.ch) + +transcript quietly +if {! [info exists ::env(VSIM_PATH)]} {error "Define VSIM_PATH"} +set utils_base_path [file join $::env(VSIM_PATH) scripts fault_injection_utils] +set script_base_path [file join $::env(VSIM_PATH) fault_injection_sim scripts] + +set verbosity 2 +set log_injections 1 +# Easy way to generate a variable seed +# set seed [clock seconds] +# Default value +set seed 12345 +set print_statistics 1 + +set inject_start_time 110584000000ps +set inject_stop_time 203880000000ps +set injection_clock "pulp_cluster_tb/cluster_i/clk_i" +set injection_clock_trigger 0 +set fault_period 100 +set rand_initial_injection_phase 0 +# max_num set to 0 means until stop_time +set max_num_fault_inject 0 +set signal_fault_duration 20ns +set register_fault_duration 0ns + +set allow_multi_bit_upset $::env(MULTI_BIT_UPSET) +set use_bitwidth_as_weight 0 +set check_core_output_modification 0 +set check_core_next_state_modification 0 +set reg_to_sig_ratio 1 + +source [file join $utils_base_path pulp_extract_nets.tcl] + +set inject_signals_netlist [] +set inject_register_netlist [] +set output_netlist [] +set next_state_netlist [] +set assertion_disable_list [] + +# for {set idx 0} {$idx < 12} {incr idx} { +# set inject_signals_netlist [list {*}$inject_signals_netlist {*}[get_all_core_nets $idx]] +# set output_netlist [list {*}$output_netlist {*}[get_core_output_nets $idx]] +# } + +set inject_register_netlist [list {*}$inject_register_netlist {*}[get_memory_slice {0 16} {385 449}]] + +source [file join $script_base_path inject_fault.tcl] + diff --git a/astral/hello/Makefile b/astral/hello/Makefile new file mode 100644 index 0000000..d145a0f --- /dev/null +++ b/astral/hello/Makefile @@ -0,0 +1,5 @@ +PULP_APP = test +PULP_APP_SRCS = hello.c +PULP_CFLAGS = -O3 + +include $(PULP_SDK_HOME)/install/rules/pulp.mk diff --git a/astral/hello/hello.c b/astral/hello/hello.c new file mode 100644 index 0000000..8741206 --- /dev/null +++ b/astral/hello/hello.c @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2018 ETH Zurich and University of Bologna + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include + +int main() +{ + printf("Hello !\n"); + + return 0; +} diff --git a/astral/parMatrixMul16/Makefile b/astral/parMatrixMul16/Makefile new file mode 100755 index 0000000..0fade4a --- /dev/null +++ b/astral/parMatrixMul16/Makefile @@ -0,0 +1,8 @@ +PULP_APP = test +PULP_APP_SRCS = matrixMul.c + +PULP_CFLAGS = -O3 + +include $(PULP_SDK_HOME)/install/rules/pulp.mk + +#pulp-bench-reg --name=parMatrixMul16.cycles --module=pulp_rtl_testset --pipeline=$(PIPELINE) --artefact=pulp_rtl_testset --cmd="make run -f Makefile.sdk" --probe-regexp='matrixMul -> success, nr. of errors: 0, execution time: (\d+)' --params="platform($(platformName)),compiler($(OR1K_TOOLCHAIN_TYPE)),nbCores(4),elemSize(16)" --probe-regexp='matrixMulTranspose -> success, nr. of errors: 0, execution time: (\d+)' --params="platform($(platformName)),compiler($(OR1K_TOOLCHAIN_TYPE)),nbCores(4),elemSize(16),transposed" diff --git a/astral/parMatrixMul16/gen_stimuli.py b/astral/parMatrixMul16/gen_stimuli.py new file mode 100755 index 0000000..754a8a9 --- /dev/null +++ b/astral/parMatrixMul16/gen_stimuli.py @@ -0,0 +1,54 @@ +#!/usr/bin/env python + +import sys +import random + + +def write_arr(f, name, arr): + f.write('const short %s[] = {\n' % name) + for v in arr: + f.write('%d,\n' % (v)) + f.write('};\n\n') + return + +################################################################################ +f = open('parMatrixMul16_stimuli.h', 'w') + + +SIZE = 24 +RANGE = int(2**7/SIZE) + +m_a = [] +m_b = [] +m_exp = [] + +for i in range(0,SIZE): + for j in range(0,SIZE): + a = random.randint(-RANGE, RANGE-1) + b = random.randint(-RANGE, RANGE-1) + + m_a.append(a) + m_b.append(b) + +for i in range(0,SIZE): + for j in range(0,SIZE): + r = 0 + + for k in range (0,SIZE): + r = r + m_a[i * SIZE + k] * m_b[k * SIZE + j] + + m_exp.append(r) + + +write_arr(f, 'm_a', m_a) +write_arr(f, 'm_b', m_b) +write_arr(f, 'm_exp', m_exp) + +f.write('#define SIZE %d\n' % SIZE) + + +f.write('__attribute__ ((section(".heapsram"))) short g_mA[SIZE][SIZE];\n') +f.write('__attribute__ ((section(".heapsram"))) short g_mB[SIZE][SIZE];\n') +f.write('__attribute__ ((section(".heapsram"))) short g_mC[SIZE][SIZE];\n') +f.write('__attribute__ ((section(".heapsram"))) short g_mB_tmp[SIZE][SIZE];\n') + diff --git a/astral/parMatrixMul16/matrixMul.c b/astral/parMatrixMul16/matrixMul.c new file mode 100644 index 0000000..5cbe65f --- /dev/null +++ b/astral/parMatrixMul16/matrixMul.c @@ -0,0 +1,177 @@ +/* + * Copyright (C) 2018 ETH Zurich and University of Bologna + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * Mantainer: Luca Valente, luca.valente2@unibo.it + */ + +#include "pulp.h" + +#include "parMatrixMul16_stimuli.h" + +void check_matrix_mul(testresult_t *result, void (*start)(), void (*stop)()); +void check_matrix_mul_transpose(testresult_t *result, void (*start)(), void (*stop)()); + +testcase_t testcases[] = { + { .name = "matrixMul", .test = check_matrix_mul }, + { .name = "matrixMulTranspose", .test = check_matrix_mul_transpose }, + {0, 0} +}; + +unsigned int num_cores; + +int main() +{ + if (rt_cluster_id() != 0) + return bench_cluster_forward(0); + + num_cores = get_core_num(); + + if(rt_core_id() < num_cores) { + run_suite(testcases); + } + + synch_barrier(); + + return 0; +} + +void matrix_init(); +unsigned int matrix_check(); + +void check_matrix_mul(testresult_t *result, void (*start)(), void (*stop)()) { + int core_id; + unsigned int i, j, k; + unsigned int chunk; + unsigned int lb, ub; + + core_id = get_core_id(); + + // number of rows each core has to multiply + chunk = SIZE / num_cores; + // lower bound + lb = core_id * chunk; + // upper bound + ub = lb + chunk; + + if(core_id == 0) { + matrix_init(); + } + + if(num_cores != 1) synch_barrier(); + + // start benchmark + start(); + + for(i = lb; i < ub; i++) { + for(j = 0; j < SIZE; j++) { + g_mC[i][j] = 0; + + for(k = 0; k < SIZE; k++) { + g_mC[i][j] += g_mA[i][k] * g_mB[k][j]; + } + } + } + + if(num_cores != 1) synch_barrier(); + + stop(); + + if(core_id == 0) { + result->errors = matrix_check(); + } +} + +void check_matrix_mul_transpose(testresult_t *result, void (*start)(), void (*stop)()) { + int core_id; + unsigned int i, j, k; + unsigned int chunk; + unsigned int lb, ub; + + core_id = get_core_id(); + + // number of rows each core has to multiply + chunk = SIZE / num_cores; + // lower bound + lb = core_id * chunk; + // upper bound + ub = lb + chunk; + + if(core_id == 0) { + matrix_init(); + } + + if(num_cores != 1) synch_barrier(); + + // start benchmark + start(); + + // transpose array before using it + for(i = lb; i < ub; i++) { + for(j = 0; j < SIZE; j++) { + g_mB_tmp[i][j] = g_mB[j][i]; + } + } + + if(num_cores != 1) synch_barrier(); + + for(i = lb; i < ub; i++) { + for(j = 0; j < SIZE; j++) { + g_mC[i][j] = 0; + + for(k = 0; k < SIZE; k++) { + g_mC[i][j] += g_mA[i][k] * g_mB_tmp[j][k]; + } + } + } + + if(num_cores != 1) synch_barrier(); + + stop(); + + if(core_id == 0) { + result->errors = matrix_check(); + } +} + +void matrix_init() { + unsigned int i, j; + + // init, copy to TCDM + for(i = 0; i < SIZE; i++) { + for(j = 0; j < SIZE; j++) { + g_mA[i][j] = m_a[i * SIZE + j]; + g_mB[i][j] = m_b[i * SIZE + j]; + g_mC[i][j] = 0; + } + } +} + +unsigned int matrix_check() { + unsigned int errors = 0; + unsigned int i, j; + // check + for(i = 0; i < SIZE; i++) { + for(j = 0; j < SIZE; j++) { + if(g_mC[i][j] != m_exp[i * SIZE + j]) { + printf("At index %d, %d\n", i, j, 0, 0); + errors++; + } + } + } + + return errors; +} diff --git a/astral/parMatrixMul16/parMatrixMul16_stimuli.h b/astral/parMatrixMul16/parMatrixMul16_stimuli.h new file mode 100644 index 0000000..2797565 --- /dev/null +++ b/astral/parMatrixMul16/parMatrixMul16_stimuli.h @@ -0,0 +1,1742 @@ +const short m_a[] = { +3, +2, +-4, +0, +0, +0, +-5, +-3, +2, +4, +0, +2, +2, +-3, +2, +-1, +-2, +-1, +1, +4, +-3, +-3, +-1, +0, +4, +-2, +-1, +-4, +-1, +4, +1, +3, +-2, +-2, +-2, +-1, +3, +-5, +2, +0, +1, +-1, +-4, +4, +0, +-2, +4, +-5, +3, +-3, +-4, +3, +-2, +2, +-2, +3, +3, +4, +0, +-4, +4, +0, +3, +-5, +1, +0, +0, +2, +-3, +-2, +-3, +4, +-3, +1, +-5, +-5, +2, +-3, +-3, +-2, +-4, +0, +4, +1, +1, +0, +4, +0, +-3, +-3, +-1, +-2, +-5, +4, +-2, +1, +3, +-1, +-1, +-4, +4, +-1, +3, +-3, +2, +2, +3, +1, +2, +1, +2, +4, +-4, +-3, +-2, +-3, +4, +0, +1, +0, +-3, +0, +-2, +-3, +1, +3, +4, +-1, +4, +4, +3, +-4, +-5, +3, +2, +4, +-4, +4, +1, +-2, +2, +-1, +4, +2, +2, +-5, +0, +-2, +-4, +2, +-3, +-1, +4, +0, +4, +4, +1, +4, +4, +-3, +3, +4, +-2, +4, +-4, +2, +-2, +-3, +3, +1, +3, +3, +0, +-4, +1, +-4, +4, +2, +-2, +-5, +-4, +-4, +2, +-1, +-2, +0, +4, +-3, +4, +-5, +3, +-1, +-5, +-4, +-2, +-5, +4, +-2, +3, +-3, +4, +3, +-4, +4, +3, +-3, +4, +-1, +3, +-4, +-5, +1, +-3, +-4, +2, +3, +2, +-2, +4, +3, +2, +-4, +0, +-2, +-5, +-3, +3, +1, +3, +-5, +3, +1, +-5, +1, +-2, +-4, +1, +-5, +4, +1, +0, +0, +-4, +-2, +2, +0, +-3, +-4, +-1, +-5, +-2, +-4, +-2, +3, +4, +-5, +0, +2, +2, +4, +0, +4, +-5, +-3, +-5, +-5, +0, +0, +-4, +3, +1, +1, +-5, +2, +-5, +2, +-4, +3, +4, +-3, +-4, +4, +-2, +-4, +4, +-3, +-5, +-4, +2, +-2, +3, +-2, +1, +4, +1, +4, +-2, +1, +-4, +4, +2, +-1, +1, +1, +-2, +-2, +0, +-5, +2, +4, +-4, +1, +-5, +0, +4, +3, +-4, +1, +-3, +-4, +2, +-3, +-3, +1, +2, +4, +-3, +-2, +3, +-3, +-5, +4, +-5, +-5, +4, +4, +3, +-1, +-3, +-4, +-1, +1, +0, +1, +4, +-1, +0, +1, +-4, +0, +-4, +-3, +0, +-4, +2, +-2, +-2, +-1, +-2, +0, +-5, +-1, +-3, +3, +4, +-4, +4, +4, +0, +-4, +-3, +-3, +4, +0, +2, +3, +-1, +2, +0, +-4, +3, +-1, +-3, +-4, +4, +0, +4, +3, +0, +-3, +-5, +4, +-3, +3, +4, +3, +-1, +3, +-3, +1, +3, +4, +3, +-1, +3, +2, +4, +4, +-2, +-1, +2, +-4, +-4, +-1, +0, +-1, +4, +-4, +4, +2, +0, +0, +1, +-1, +-5, +1, +-5, +2, +-2, +2, +1, +3, +1, +-3, +-4, +-2, +0, +4, +-2, +0, +-1, +-1, +-3, +-2, +4, +3, +4, +2, +3, +4, +-4, +-2, +-1, +-2, +0, +-1, +-1, +-4, +-2, +2, +-5, +4, +-5, +0, +4, +4, +-2, +-4, +1, +-5, +-5, +4, +-3, +0, +-1, +-5, +4, +-4, +0, +4, +4, +-4, +-2, +-4, +1, +-4, +-5, +4, +-5, +-3, +2, +-2, +-1, +-3, +0, +-3, +-2, +4, +-5, +-5, +3, +-5, +-1, +3, +2, +3, +0, +-2, +-3, +-4, +3, +0, +3, +3, +-1, +-4, +0, +3, +-5, +-3, +4, +-3, +2, +-1, +0, +2, +-1, +3, +-1, +-5, +3, +4, +3, +3, +4, +3, +1, +-4, +1, +-2, +4, +-3, +2, +0, +-2, +-5, +-5, +-2, +-2, +0, +4, +0, +-4, +-1, +0, +-5, +-3, +4, +0, +1, +-3, +3, +-2, +-2, +2, +-1, +-1, +-3, +-1, +-2, +-5, +-5, +-1, +-1, +-4, +-4, +}; + +const short m_b[] = { +-2, +3, +2, +-5, +-3, +2, +0, +-5, +1, +-3, +-2, +-3, +-3, +3, +-4, +-2, +-4, +1, +1, +1, +4, +4, +3, +3, +-4, +-3, +-2, +-2, +-3, +-2, +-1, +-5, +-4, +1, +-4, +-3, +3, +-5, +-5, +-4, +-2, +-2, +1, +3, +3, +3, +4, +0, +1, +0, +4, +3, +-3, +3, +-1, +0, +2, +-1, +-1, +0, +0, +3, +-4, +4, +3, +3, +-1, +-4, +-1, +-4, +-2, +-4, +-4, +3, +0, +3, +-4, +2, +0, +0, +-4, +-5, +-4, +4, +0, +-4, +-2, +-4, +3, +4, +-4, +-3, +-2, +0, +-2, +2, +-5, +2, +1, +2, +0, +0, +-2, +-2, +-1, +1, +-1, +3, +3, +-1, +3, +-1, +-2, +1, +-3, +3, +3, +3, +2, +0, +1, +-2, +1, +4, +3, +-2, +-5, +0, +2, +0, +1, +-3, +-1, +3, +-3, +-2, +3, +4, +-2, +-1, +-5, +1, +-1, +2, +-3, +-4, +0, +-1, +0, +2, +3, +4, +-4, +-1, +-1, +2, +-1, +-5, +1, +-3, +0, +-4, +0, +-1, +2, +-5, +-1, +1, +-2, +-5, +-3, +-3, +2, +2, +-4, +2, +-5, +-4, +4, +4, +-1, +1, +2, +-1, +-3, +0, +2, +4, +-3, +-2, +-1, +4, +-5, +4, +0, +-1, +-1, +-4, +-3, +-3, +-1, +-2, +-1, +-2, +-5, +2, +2, +-3, +1, +-1, +-2, +0, +0, +1, +0, +4, +-4, +-4, +-4, +-5, +4, +-4, +4, +-3, +4, +-5, +-2, +3, +-2, +-4, +1, +2, +-5, +-2, +-5, +-3, +2, +-1, +3, +-4, +-4, +4, +-3, +-5, +0, +-3, +2, +2, +3, +-3, +-3, +-2, +-5, +4, +1, +3, +-1, +-4, +3, +1, +-2, +1, +3, +4, +1, +-2, +0, +0, +-3, +-1, +1, +-1, +0, +-5, +-2, +-1, +1, +-2, +4, +-3, +2, +1, +0, +0, +3, +-4, +2, +1, +0, +3, +-5, +-1, +4, +3, +4, +-2, +-1, +-3, +-4, +3, +3, +-4, +4, +-5, +1, +-1, +0, +3, +4, +3, +-3, +-5, +-3, +-2, +-4, +1, +-2, +-3, +-2, +1, +2, +4, +4, +0, +2, +4, +0, +-1, +1, +-4, +-1, +-3, +-2, +-5, +3, +-3, +-1, +0, +-3, +-3, +-4, +3, +3, +-5, +-2, +-1, +3, +1, +1, +1, +3, +1, +1, +-5, +-2, +2, +4, +3, +-3, +-5, +3, +-4, +0, +2, +-4, +-5, +-3, +-3, +-3, +2, +-1, +-3, +1, +-3, +-1, +-5, +2, +1, +1, +-3, +2, +4, +1, +-5, +3, +0, +-5, +-4, +2, +-5, +3, +-1, +0, +2, +-3, +-1, +-2, +-5, +-4, +0, +-5, +-3, +3, +1, +0, +-1, +-4, +1, +-4, +-5, +-1, +3, +3, +-3, +-1, +4, +-1, +-5, +-4, +-1, +0, +1, +1, +4, +-3, +-2, +4, +1, +-4, +-1, +-3, +2, +-2, +4, +2, +-1, +2, +-4, +-3, +4, +-1, +1, +-4, +0, +1, +-4, +4, +-4, +-5, +-5, +-3, +2, +2, +-1, +0, +-2, +-5, +1, +-1, +-5, +2, +-4, +-5, +-3, +1, +-4, +0, +1, +-5, +0, +-2, +1, +-4, +-5, +3, +0, +1, +2, +4, +-1, +-4, +0, +-4, +0, +-5, +3, +-5, +-5, +2, +2, +3, +-3, +4, +4, +2, +3, +-2, +4, +3, +4, +1, +1, +0, +2, +2, +4, +-1, +-5, +-5, +3, +-5, +-2, +-4, +-4, +0, +4, +3, +0, +4, +-3, +4, +0, +-1, +3, +2, +-4, +2, +-1, +-3, +-5, +-3, +3, +-4, +1, +-3, +3, +-4, +0, +3, +-2, +-1, +2, +-4, +2, +4, +0, +2, +-2, +-5, +0, +-1, +-5, +4, +-4, +3, +-1, +4, +1, +4, +0, +-1, +1, +4, +3, +3, +1, +2, +-3, +-2, +-5, +-2, +1, +-5, +-4, +-5, +-2, +}; + +const short m_exp[] = { +-32, +48, +2, +-56, +46, +-52, +39, +-77, +41, +-50, +-50, +-14, +-45, +-31, +3, +-22, +-52, +-31, +-32, +8, +61, +97, +49, +-12, +12, +-25, +-26, +-15, +15, +45, +-29, +-27, +-7, +-23, +30, +-36, +-56, +27, +-59, +35, +6, +44, +72, +23, +17, +86, +-8, +5, +-25, +41, +-30, +-78, +120, +-1, +69, +-20, +24, +-66, +6, +68, +-59, +2, +27, +-21, +-71, +-61, +-49, +21, +-24, +27, +-47, +29, +71, +37, +-9, +-58, +13, +13, +73, +-9, +7, +28, +23, +35, +46, +-8, +86, +-7, +25, +-65, +-18, +43, +58, +22, +44, +-51, +-33, +10, +-18, +-17, +-62, +24, +18, +-68, +23, +25, +23, +-32, +23, +37, +55, +-16, +24, +4, +-16, +9, +77, +44, +48, +-36, +-81, +-100, +-18, +36, +-3, +-72, +-43, +38, +-2, +34, +53, +-42, +-18, +56, +19, +34, +3, +-58, +-16, +-34, +-71, +-12, +12, +-22, +-9, +57, +-46, +-70, +25, +-62, +10, +-5, +68, +-86, +-15, +-19, +-100, +78, +23, +47, +5, +-64, +31, +-16, +-9, +-22, +11, +30, +-74, +31, +50, +38, +-59, +24, +12, +-18, +4, +33, +-24, +-44, +-19, +2, +-47, +48, +-30, +28, +-38, +-29, +20, +52, +-21, +-5, +49, +-41, +-17, +-2, +68, +-2, +122, +-29, +13, +23, +46, +40, +-12, +-58, +59, +2, +15, +-49, +-38, +-15, +46, +-1, +-54, +-73, +10, +-1, +43, +80, +-55, +119, +82, +22, +-12, +-14, +-12, +-3, +36, +27, +-3, +50, +59, +61, +13, +-14, +5, +51, +-54, +-45, +-9, +109, +10, +-28, +1, +0, +-50, +-23, +27, +49, +16, +3, +23, +43, +31, +29, +-27, +-45, +9, +61, +42, +34, +30, +26, +38, +-84, +5, +98, +13, +55, +15, +56, +63, +22, +80, +10, +52, +52, +49, +101, +37, +71, +-20, +-38, +-36, +-72, +-40, +12, +77, +-19, +32, +9, +-15, +85, +-13, +-33, +-8, +-20, +33, +36, +76, +6, +67, +-51, +36, +76, +-48, +30, +42, +-45, +-22, +-9, +65, +-29, +18, +89, +34, +-25, +41, +30, +26, +49, +34, +-6, +-28, +10, +-106, +6, +86, +5, +-3, +-105, +-103, +-45, +-55, +-60, +29, +41, +54, +-29, +36, +-30, +-8, +25, +36, +40, +22, +-35, +-50, +33, +3, +-19, +-30, +3, +-11, +9, +-4, +-18, +39, +92, +-25, +0, +-40, +64, +-18, +58, +-2, +27, +-89, +32, +-2, +56, +79, +-67, +87, +-41, +20, +29, +4, +51, +45, +26, +-54, +8, +-37, +-37, +-39, +-35, +-36, +-23, +-30, +11, +1, +-63, +-21, +5, +13, +35, +-15, +27, +-59, +-10, +29, +4, +-58, +-56, +3, +-10, +27, +0, +29, +-4, +-17, +28, +2, +17, +9, +-27, +53, +-19, +-36, +104, +25, +38, +84, +-29, +42, +-10, +-47, +-36, +1, +10, +43, +-46, +-57, +38, +44, +-9, +26, +-15, +10, +31, +34, +-18, +17, +24, +-3, +5, +11, +4, +23, +5, +-19, +51, +-59, +-29, +62, +-27, +35, +81, +65, +-10, +-1, +-1, +45, +20, +26, +-34, +-7, +35, +-7, +2, +19, +115, +-32, +-40, +-92, +47, +-65, +23, +53, +-31, +22, +20, +45, +91, +64, +29, +49, +30, +74, +-15, +22, +120, +16, +122, +-51, +51, +78, +60, +-53, +40, +-49, +73, +-2, +14, +-17, +-86, +35, +-25, +36, +2, +5, +38, +-9, +16, +-12, +-41, +-24, +-31, +-72, +-68, +-9, +5, +11, +-63, +15, +12, +21, +22, +19, +62, +-28, +122, +12, +28, +-59, +-19, +49, +57, +-12, +29, +-1, +-23, +126, +75, +-29, +-21, +-37, +8, +-70, +-8, +91, +-34, +-10, +31, +78, +44, +59, +23, +66, +42, +38, +6, +19, +10, +1, +57, +38, +71, +-10, +-12, +-7, +-13, +-15, +6, +}; + +#define SIZE 24 +__attribute__ ((section(".heapsram"))) short g_mA[SIZE][SIZE]; +__attribute__ ((section(".heapsram"))) short g_mB[SIZE][SIZE]; +__attribute__ ((section(".heapsram"))) short g_mC[SIZE][SIZE]; +__attribute__ ((section(".heapsram"))) short g_mB_tmp[SIZE][SIZE]; diff --git a/astral/parMatrixMul32/Makefile b/astral/parMatrixMul32/Makefile new file mode 100755 index 0000000..bd55e15 --- /dev/null +++ b/astral/parMatrixMul32/Makefile @@ -0,0 +1,8 @@ +PULP_APP = test +PULP_APP_SRCS = matrixMul.c + +PULP_CFLAGS = -O3 + +include $(PULP_SDK_HOME)/install/rules/pulp.mk + +#pulp-bench-reg --name=parMatrixMul32.cycles --module=pulp_rtl_testset --pipeline=$(PIPELINE) --artefact=pulp_rtl_testset --cmd="make run -f Makefile.sdk" --probe-regexp='matrixMul -> success, nr. of errors: 0, execution time: (\d+)' --params="platform($(platformName)),compiler($(OR1K_TOOLCHAIN_TYPE)),nbCores(4),elemSize(32)" --probe-regexp='matrixMulTranspose -> success, nr. of errors: 0, execution time: (\d+)' --params="platform($(platformName)),compiler($(OR1K_TOOLCHAIN_TYPE)),nbCores(4),elemSize(32),transposed" diff --git a/astral/parMatrixMul32/gen_stimuli.py b/astral/parMatrixMul32/gen_stimuli.py new file mode 100755 index 0000000..32926e9 --- /dev/null +++ b/astral/parMatrixMul32/gen_stimuli.py @@ -0,0 +1,54 @@ +#!/usr/bin/env python + +import sys +import random + + +def write_arr(f, name, arr): + f.write('const int %s[] = {\n' % name) + for v in arr: + f.write('%d,\n' % (v)) + f.write('};\n\n') + return + +################################################################################ +f = open('parMatrixMul32_stimuli.h', 'w') + + +SIZE = 24 +RANGE = int(2**15/SIZE) + +m_a = [] +m_b = [] +m_exp = [] + +for i in range(0,SIZE): + for j in range(0,SIZE): + a = random.randint(-RANGE, RANGE-1) + b = random.randint(-RANGE, RANGE-1) + + m_a.append(a) + m_b.append(b) + +for i in range(0,SIZE): + for j in range(0,SIZE): + r = 0 + + for k in range (0,SIZE): + r = r + m_a[i * SIZE + k] * m_b[k * SIZE + j] + + m_exp.append(r) + + +write_arr(f, 'm_a', m_a) +write_arr(f, 'm_b', m_b) +write_arr(f, 'm_exp', m_exp) + +f.write('#define SIZE %d\n' % SIZE) + + +f.write('__attribute__ ((section(".heapsram"))) int g_mA[SIZE][SIZE];\n') +f.write('__attribute__ ((section(".heapsram"))) int g_mB[SIZE][SIZE];\n') +f.write('__attribute__ ((section(".heapsram"))) int g_mC[SIZE][SIZE];\n') +f.write('__attribute__ ((section(".heapsram"))) int g_mB_tmp[SIZE][SIZE];\n') + diff --git a/astral/parMatrixMul32/matrixMul.c b/astral/parMatrixMul32/matrixMul.c new file mode 100644 index 0000000..990d411 --- /dev/null +++ b/astral/parMatrixMul32/matrixMul.c @@ -0,0 +1,177 @@ +/* + * Copyright (C) 2018 ETH Zurich and University of Bologna + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * Mantainer: Luca Valente, luca.valente2@unibo.it + */ + +#include "pulp.h" + +#include "parMatrixMul32_stimuli.h" + +void check_matrix_mul(testresult_t *result, void (*start)(), void (*stop)()); +void check_matrix_mul_transpose(testresult_t *result, void (*start)(), void (*stop)()); + +testcase_t testcases[] = { + { .name = "matrixMul", .test = check_matrix_mul }, + { .name = "matrixMulTranspose", .test = check_matrix_mul_transpose }, + {0, 0} +}; + +unsigned int num_cores; + +int main() +{ + if (rt_cluster_id() != 0) + return bench_cluster_forward(0); + + num_cores = get_core_num(); + + if(rt_core_id() < num_cores) { + run_suite(testcases); + } + + synch_barrier(); + + return 0; +} + +void matrix_init(); +unsigned int matrix_check(); + +void check_matrix_mul(testresult_t *result, void (*start)(), void (*stop)()) { + int core_id; + unsigned int i, j, k; + unsigned int chunk; + unsigned int lb, ub; + + core_id = get_core_id(); + + // number of rows each core has to multiply + chunk = SIZE / num_cores; + // lower bound + lb = core_id * chunk; + // upper bound + ub = lb + chunk; + + if(core_id == 0) { + matrix_init(); + } + + if(num_cores != 1) synch_barrier(); + + // start benchmark + start(); + + for(i = lb; i < ub; i++) { + for(j = 0; j < SIZE; j++) { + g_mC[i][j] = 0; + + for(k = 0; k < SIZE; k++) { + g_mC[i][j] += g_mA[i][k] * g_mB[k][j]; + } + } + } + + if(num_cores != 1) synch_barrier(); + + stop(); + + if(core_id == 0) { + result->errors = matrix_check(); + } +} + +void check_matrix_mul_transpose(testresult_t *result, void (*start)(), void (*stop)()) { + int core_id; + unsigned int i, j, k; + unsigned int chunk; + unsigned int lb, ub; + + core_id = get_core_id(); + + // number of rows each core has to multiply + chunk = SIZE / num_cores; + // lower bound + lb = core_id * chunk; + // upper bound + ub = lb + chunk; + + if(core_id == 0) { + matrix_init(); + } + + if(num_cores != 1) synch_barrier(); + + // start benchmark + start(); + + // transpose array before using it + for(i = lb; i < ub; i++) { + for(j = 0; j < SIZE; j++) { + g_mB_tmp[i][j] = g_mB[j][i]; + } + } + + if(num_cores != 1) synch_barrier(); + + for(i = lb; i < ub; i++) { + for(j = 0; j < SIZE; j++) { + g_mC[i][j] = 0; + + for(k = 0; k < SIZE; k++) { + g_mC[i][j] += g_mA[i][k] * g_mB_tmp[j][k]; + } + } + } + + if(num_cores != 1) synch_barrier(); + + stop(); + + if(core_id == 0) { + result->errors = matrix_check(); + } +} + +void matrix_init() { + unsigned int i, j; + + // init, copy to TCDM + for(i = 0; i < SIZE; i++) { + for(j = 0; j < SIZE; j++) { + g_mA[i][j] = m_a[i * SIZE + j]; + g_mB[i][j] = m_b[i * SIZE + j]; + g_mC[i][j] = 0; + } + } +} + +unsigned int matrix_check() { + unsigned int errors = 0; + unsigned int i, j; + // check + for(i = 0; i < SIZE; i++) { + for(j = 0; j < SIZE; j++) { + if(g_mC[i][j] != m_exp[i * SIZE + j]) { + printf("At index %d, %d\n", i, j, 0, 0); + errors++; + } + } + } + + return errors; +} diff --git a/astral/parMatrixMul32/parMatrixMul32_stimuli.h b/astral/parMatrixMul32/parMatrixMul32_stimuli.h new file mode 100644 index 0000000..d5c1af0 --- /dev/null +++ b/astral/parMatrixMul32/parMatrixMul32_stimuli.h @@ -0,0 +1,1742 @@ +const int m_a[] = { +-1344, +-778, +-350, +1240, +950, +940, +1262, +285, +738, +-37, +257, +704, +87, +-1135, +1175, +960, +984, +611, +-1170, +1243, +-729, +-1235, +-1229, +8, +52, +1156, +-804, +-129, +-112, +-307, +1045, +-954, +-944, +477, +1104, +-600, +-31, +1364, +-950, +-153, +967, +-446, +235, +-197, +763, +-660, +-1289, +116, +-458, +994, +1086, +156, +-549, +102, +-532, +943, +299, +340, +516, +1117, +515, +1335, +708, +-306, +-589, +517, +655, +-279, +-595, +-255, +-1104, +-16, +507, +199, +-297, +-905, +-1084, +982, +20, +-1364, +407, +333, +-798, +-711, +1301, +175, +490, +-165, +-1097, +1251, +1203, +-884, +419, +-1262, +-950, +-1200, +759, +-205, +-1365, +-870, +109, +-1135, +36, +796, +-1233, +-1117, +-826, +241, +588, +-513, +-353, +791, +1071, +-1073, +220, +-1094, +1096, +-723, +280, +-505, +151, +399, +319, +-1120, +-213, +-966, +679, +497, +-290, +-300, +-290, +-599, +243, +-752, +604, +1196, +-715, +-177, +-329, +1337, +596, +1027, +509, +-301, +-1211, +-936, +-281, +446, +-356, +841, +-1123, +-1343, +-140, +-1300, +-828, +-237, +1206, +1274, +-1092, +-922, +913, +1201, +-422, +782, +-230, +633, +-1055, +-1160, +329, +1255, +1038, +770, +123, +934, +670, +-492, +-24, +-779, +-1129, +47, +555, +1214, +-232, +-716, +-322, +-126, +178, +827, +710, +-1057, +-313, +996, +1149, +-532, +570, +1171, +899, +-313, +-790, +1071, +154, +-303, +492, +-918, +-1139, +292, +129, +1347, +-309, +751, +1262, +142, +-1062, +-1305, +250, +657, +238, +-141, +1308, +-37, +-514, +-591, +-611, +852, +-653, +-640, +91, +254, +-1145, +-1263, +-838, +-10, +266, +-444, +1129, +762, +-713, +-326, +-88, +1063, +-442, +-177, +365, +-740, +-1219, +1085, +783, +-725, +-1112, +426, +660, +6, +-440, +513, +687, +1078, +212, +-434, +-953, +1337, +160, +622, +-950, +-943, +288, +-136, +-1103, +-223, +1271, +211, +251, +-271, +-26, +704, +1177, +544, +699, +-885, +-864, +-1280, +877, +-461, +995, +-623, +-121, +-146, +-484, +-225, +-978, +163, +-278, +-502, +-505, +-567, +-771, +1279, +699, +-1337, +544, +1145, +1271, +640, +277, +-164, +458, +-1280, +-602, +-2, +1136, +1203, +-699, +-195, +659, +-472, +1230, +1151, +-97, +-77, +-772, +-381, +-295, +636, +-1341, +-445, +-806, +531, +-1186, +-1313, +-274, +835, +-446, +558, +-1307, +-235, +43, +-254, +-109, +911, +-1189, +559, +-854, +-218, +149, +580, +1158, +-14, +181, +-1120, +-947, +-542, +1142, +631, +-893, +-614, +-257, +-365, +-951, +1, +-762, +268, +382, +-131, +808, +-234, +839, +346, +-733, +1251, +496, +-566, +-751, +581, +-1292, +1068, +-932, +-855, +1336, +-280, +523, +1294, +-1251, +1284, +-1276, +87, +1264, +-274, +-922, +-289, +-458, +-117, +196, +-79, +-707, +1233, +-385, +-620, +-617, +703, +-995, +-374, +660, +145, +821, +1289, +582, +-201, +447, +116, +759, +-615, +834, +268, +-1114, +-1016, +-227, +-589, +-910, +-244, +-660, +764, +219, +1165, +506, +-673, +799, +-1355, +-872, +491, +689, +176, +-285, +1151, +1080, +-319, +286, +833, +217, +-621, +478, +539, +-109, +-1273, +-564, +-240, +504, +518, +256, +-124, +74, +949, +-912, +-1341, +965, +-774, +634, +1009, +1304, +200, +-1041, +-1262, +-865, +-1065, +-635, +-357, +-928, +806, +1148, +-411, +56, +686, +-644, +1241, +-430, +297, +127, +457, +-1313, +741, +861, +220, +-540, +772, +265, +1066, +679, +177, +-734, +29, +-149, +181, +-1042, +-1139, +271, +-326, +-29, +1298, +643, +-890, +-136, +-1015, +-565, +-964, +894, +-312, +698, +159, +-222, +-1322, +578, +945, +1124, +1278, +54, +-389, +1101, +362, +-543, +380, +959, +-399, +-1105, +1308, +338, +-198, +-1111, +-278, +-752, +668, +1156, +-1226, +579, +184, +-1084, +-917, +-498, +-466, +316, +-788, +-718, +468, +367, +-1333, +-1146, +828, +1329, +311, +-1346, +54, +-976, +854, +-658, +-198, +-979, +156, +385, +-659, +1326, +1351, +-1173, +-648, +720, +-40, +313, +729, +-416, +351, +452, +-413, +-4, +-1113, +-612, +-28, +-721, +400, +1072, +-1010, +}; + +const int m_b[] = { +-1316, +319, +963, +-608, +519, +-783, +-676, +181, +172, +203, +-1351, +-935, +-12, +758, +-746, +1226, +127, +-1346, +1251, +-377, +889, +-23, +-417, +-122, +680, +1363, +729, +-907, +-1263, +-431, +363, +1355, +-566, +-517, +-1186, +1318, +-1104, +-1245, +950, +687, +252, +-270, +1081, +-1290, +656, +8, +60, +1171, +915, +-500, +678, +-953, +307, +-35, +-1334, +-888, +598, +1160, +722, +850, +-268, +988, +635, +-340, +252, +1208, +420, +82, +1283, +-319, +-666, +172, +583, +174, +471, +-1063, +452, +-191, +-1188, +116, +-927, +1086, +119, +-245, +-717, +-657, +417, +319, +1133, +1338, +141, +-546, +567, +-1089, +-191, +-1138, +-201, +-1286, +-820, +-1356, +1177, +-317, +191, +67, +164, +-306, +-1015, +1147, +-482, +1229, +-259, +-207, +1309, +847, +-399, +-1005, +-995, +140, +-567, +-1220, +-427, +180, +-571, +997, +-783, +-316, +-1360, +736, +75, +-1251, +-307, +-902, +1181, +1057, +-141, +-1098, +776, +1096, +-923, +914, +1049, +-28, +-742, +-804, +-467, +567, +329, +-309, +-161, +-157, +-430, +-639, +1138, +-165, +292, +-20, +777, +-715, +60, +-1359, +35, +307, +-1092, +271, +548, +822, +-50, +-475, +-103, +784, +537, +152, +-517, +-1097, +117, +-619, +538, +941, +172, +-223, +1161, +-1004, +-1145, +-455, +255, +363, +859, +403, +-861, +-657, +-537, +-1084, +-1042, +541, +1283, +-356, +1298, +-1254, +-303, +203, +104, +1123, +-72, +-171, +-1122, +-533, +440, +275, +613, +-846, +-189, +884, +704, +-570, +-440, +-1157, +-200, +-80, +616, +799, +757, +-264, +-1256, +-690, +152, +184, +-810, +-221, +-821, +-243, +508, +-709, +574, +-693, +315, +-952, +952, +697, +875, +-480, +-691, +422, +-413, +-1199, +441, +-751, +821, +1303, +-410, +416, +566, +-131, +-551, +46, +978, +-228, +1117, +-251, +-537, +874, +-882, +260, +-213, +248, +-1296, +1343, +-626, +-812, +629, +-601, +-378, +-1314, +-889, +774, +-307, +692, +-1125, +-692, +923, +947, +1158, +-939, +1284, +35, +1299, +369, +-8, +43, +768, +524, +137, +659, +285, +-1315, +-457, +871, +-768, +1107, +-695, +488, +-527, +-161, +414, +-526, +-1164, +1059, +-1108, +560, +-622, +898, +-50, +-286, +-170, +513, +952, +433, +237, +584, +-665, +-960, +585, +-434, +1223, +-130, +1035, +430, +202, +1312, +1152, +1059, +-1082, +-1295, +805, +-18, +613, +-94, +557, +548, +1354, +116, +289, +-1358, +-1234, +1237, +451, +820, +-102, +974, +832, +-1019, +914, +-512, +-267, +1329, +-910, +-1341, +862, +-381, +-23, +-658, +40, +-71, +-782, +1240, +-956, +1241, +-291, +-884, +1250, +699, +834, +190, +960, +-1260, +177, +464, +155, +-1105, +768, +424, +621, +740, +-1357, +1186, +-594, +1329, +829, +126, +1101, +1146, +-95, +605, +-673, +1334, +440, +-10, +12, +-745, +20, +19, +-793, +999, +1083, +487, +-657, +-356, +654, +-326, +-250, +-718, +-947, +-235, +558, +974, +-981, +637, +-861, +-768, +1045, +-583, +-910, +128, +734, +896, +-1156, +223, +284, +272, +634, +-473, +363, +359, +-1185, +14, +-33, +-1122, +140, +900, +439, +-944, +-770, +663, +865, +1056, +-238, +86, +-1294, +-44, +-603, +602, +20, +397, +-423, +-703, +-209, +-906, +-1236, +945, +-737, +578, +904, +645, +1225, +-877, +-425, +-493, +-1326, +424, +965, +1300, +-1210, +823, +1345, +626, +-427, +592, +-869, +-1055, +-938, +-427, +1066, +472, +-1055, +48, +-1200, +-349, +313, +-1227, +-228, +783, +839, +187, +1021, +-1355, +1284, +68, +-1321, +-997, +1286, +-887, +772, +-156, +-105, +1329, +1141, +-377, +-881, +-341, +1316, +-391, +-1249, +-205, +53, +-266, +-540, +-289, +-1011, +602, +-1032, +-1097, +-202, +-467, +-1047, +-867, +-340, +-109, +-496, +967, +1147, +108, +384, +-12, +1216, +137, +1318, +151, +219, +-543, +391, +668, +-1348, +-1244, +-810, +-676, +321, +-1258, +1343, +1214, +791, +35, +1219, +1278, +1037, +-1282, +661, +585, +921, +-880, +-989, +-1192, +-207, +273, +-382, +690, +165, +271, +-212, +739, +-343, +-42, +226, +40, +859, +-153, +622, +-1059, +}; + +const int m_exp[] = { +-4942391, +2289133, +-1363225, +1978230, +1580032, +-625813, +-3230128, +2236653, +19494, +3242695, +-1080745, +-34154, +4086860, +-1370876, +3997221, +-1812380, +4705498, +7690207, +-4068140, +3595067, +-1103308, +-939857, +-4249710, +-8650816, +-2013119, +2933624, +235162, +-453807, +-4447391, +3527041, +2046492, +411956, +-994117, +-1411344, +1333704, +-519761, +3026373, +-564969, +3749147, +2447173, +-557628, +1138674, +-1426096, +-4033488, +-1829685, +2815607, +2382958, +1714081, +-1470484, +3379876, +3660759, +-2439960, +-1180478, +-3300785, +-5104533, +-309753, +-1667400, +3258850, +1805449, +2481948, +-944985, +-363123, +4227063, +3022289, +2763211, +5114077, +-1534394, +-2957168, +3401637, +-1195822, +-747480, +-2915318, +-2505013, +-174927, +276733, +2899369, +-6702856, +923396, +-2741169, +4270685, +-1020657, +-2562887, +2074098, +-2382784, +1366504, +691209, +4127820, +400356, +-7415505, +823772, +-3848400, +-158560, +3759990, +2298445, +323394, +873625, +474364, +2617120, +-1382444, +1735284, +-5799715, +1915577, +7016057, +-1212904, +919286, +2949768, +1228832, +572192, +4145710, +-6809520, +-2199597, +677764, +-7169579, +-4904277, +6902014, +231123, +-4797299, +3093608, +989455, +4324476, +3121268, +810907, +-2457323, +2299211, +-1625774, +-141013, +3343022, +-2044657, +4089375, +-291323, +-1950307, +2480885, +2846731, +-2139146, +-2718414, +-1997531, +-2399245, +-4060224, +423228, +-205276, +-1602384, +910872, +-3535114, +6008729, +-559984, +-301205, +-5407307, +2981269, +1079061, +6602535, +-857708, +2756391, +-5304566, +-3769267, +2620777, +-4409088, +502077, +7568647, +-37918, +2315061, +-2540065, +8296540, +-7465282, +1553910, +-4736227, +-2139045, +95614, +342546, +1309722, +1777391, +2981296, +-736899, +-2572111, +-972463, +-2793724, +-2893912, +-1230264, +-871649, +-1439985, +3074445, +3339004, +2423842, +1751086, +4064832, +1550243, +6225792, +-503750, +-2567772, +5671219, +-2054796, +-551487, +-2787790, +-3835027, +-4272806, +2725813, +-2982521, +1803437, +3024675, +-201092, +-1626608, +1548043, +2303810, +3032912, +398283, +1704371, +1860306, +-4101665, +5187913, +4233418, +2054883, +3603470, +1935132, +-17548, +-4362444, +-2806918, +-5651039, +-1853372, +-1707208, +-153048, +-2791834, +402265, +2815962, +3391662, +-4833520, +-1190520, +2302448, +80738, +2089586, +174096, +2837490, +-5514606, +2138871, +336249, +-378675, +5833977, +4367000, +-2445147, +-3652299, +-1794451, +-1471577, +-1263012, +3719274, +-3404819, +5765304, +-4256415, +3558206, +-1884441, +-475244, +3659623, +-2914867, +689238, +-2576754, +7739914, +1823902, +2077002, +-2365242, +2023481, +1663749, +-4973435, +-694558, +1118078, +2260786, +-3256285, +4596746, +-5421599, +594942, +-1730692, +-4626077, +3077882, +-2232009, +2672161, +3135747, +-4602601, +859784, +-3530668, +21600, +-4690786, +2023164, +-496745, +-2728919, +281474, +-108745, +-809613, +1445687, +-5781458, +2097169, +1594266, +-4504019, +2460482, +6259537, +-700848, +413263, +-1212884, +-5695130, +2094147, +-750529, +-1379008, +6029072, +722889, +1719449, +1682336, +-4219755, +1971162, +66575, +-1195119, +141466, +-1083536, +-718558, +-4039954, +-168429, +-2026861, +2025800, +-761083, +-4194692, +2013337, +-1156936, +3823019, +4081732, +-3145845, +-1733615, +-1371947, +-3811245, +-1584663, +-3547009, +-3267886, +8255291, +-3232160, +3404636, +3248369, +3233853, +671601, +-1009897, +1821121, +-3517645, +2005444, +-2768741, +115998, +533867, +4717709, +1315923, +-3510545, +-3539595, +-538461, +4529529, +2792584, +-107486, +-1840413, +-1474849, +1579605, +-4197602, +-34825, +-462678, +1294881, +-1730927, +-2549709, +-1531672, +-271859, +-1181904, +-1680154, +-2321723, +-6641222, +1127764, +893535, +-2804646, +5653509, +2657606, +-1751466, +-4669812, +-827592, +-126901, +-2599752, +-845148, +1390838, +8975481, +-7663778, +3572438, +5920790, +5233883, +-613590, +-881500, +-3974422, +-5523348, +-3243204, +-6405765, +-4376438, +1352634, +-105650, +2650174, +1442151, +5088231, +2974595, +-4501663, +-841006, +-3101819, +-1265401, +-2756903, +2579743, +2045040, +-5328835, +2801176, +-386694, +-3068782, +3147225, +-248211, +-662659, +-1112717, +2733193, +336344, +3107302, +2244003, +4285762, +1998904, +1888720, +-1174981, +-2567532, +-5588952, +-101948, +4004848, +-610048, +793760, +3345423, +716318, +1033698, +4011882, +-965219, +1258434, +1579522, +-4249500, +3233648, +-424838, +2640541, +1020028, +4933599, +-1964947, +3237309, +-1251962, +-437406, +-2749192, +-2943112, +-117113, +778507, +2757711, +3478291, +-661571, +1077087, +-3821174, +2731860, +3035264, +-4424379, +295413, +3873542, +-1272809, +4145370, +-363272, +2240544, +88954, +-2016552, +-862779, +-844808, +3142493, +2019692, +3648148, +3857820, +593190, +1285134, +-4257140, +-1476035, +-1951773, +-2334649, +1355368, +-4390456, +3666652, +562848, +-8226958, +1134896, +1136697, +-2132899, +3300228, +1855661, +6476864, +5097743, +-1373818, +3287769, +1709294, +-2926119, +2463141, +400199, +3051372, +1815531, +1746372, +398117, +2333959, +-708565, +-4241370, +51697, +-1626217, +26865, +2248300, +3357859, +-325912, +194201, +612298, +388227, +256018, +-5630155, +-1085451, +653494, +-1966315, +-273079, +-4296295, +-2813232, +2079672, +2378463, +-3869089, +-438799, +-725265, +3152791, +3461913, +-777750, +47521, +2588203, +1888001, +-4445421, +654349, +811737, +418334, +-1854075, +-5194402, +-1571674, +-622026, +-1091628, +1787463, +3439585, +2923276, +-1997884, +-193963, +-731696, +3686658, +-1311796, +-5219031, +-2906251, +2140229, +-1846978, +2541247, +-3677377, +-3935140, +3605308, +4807232, +-1633864, +344286, +-2051894, +2498349, +-3085, +379207, +-701595, +-1080351, +3161365, +-1606976, +1640595, +3757649, +798095, +-3167055, +-2288739, +2301831, +-3324819, +3219538, +516049, +-3153835, +7342606, +1098913, +-2522436, +376783, +47367, +530901, +-395499, +304200, +}; + +#define SIZE 24 +__attribute__ ((section(".heapsram"))) int g_mA[SIZE][SIZE]; +__attribute__ ((section(".heapsram"))) int g_mB[SIZE][SIZE]; +__attribute__ ((section(".heapsram"))) int g_mC[SIZE][SIZE]; +__attribute__ ((section(".heapsram"))) int g_mB_tmp[SIZE][SIZE]; diff --git a/astral/parMatrixMul8/Makefile b/astral/parMatrixMul8/Makefile new file mode 100755 index 0000000..7c755b8 --- /dev/null +++ b/astral/parMatrixMul8/Makefile @@ -0,0 +1,8 @@ +PULP_APP = test +PULP_APP_SRCS = matrixMul.c + +PULP_CFLAGS = -O3 + +include $(PULP_SDK_HOME)/install/rules/pulp.mk + +#pulp-bench-reg --name=parMatrixMul8.cycles --module=pulp_rtl_testset --pipeline=$(PIPELINE) --artefact=pulp_rtl_testset --cmd="make run -f Makefile.sdk" --probe-regexp='matrixMul -> success, nr. of errors: 0, execution time: (\d+)' --params="platform($(platformName)),compiler($(OR1K_TOOLCHAIN_TYPE)),nbCores(4),elemSize(8)" --probe-regexp='matrixMulTranspose -> success, nr. of errors: 0, execution time: (\d+)' --params="platform($(platformName)),compiler($(OR1K_TOOLCHAIN_TYPE)),nbCores(4),elemSize(8),transposed" diff --git a/astral/parMatrixMul8/gen_stimuli.py b/astral/parMatrixMul8/gen_stimuli.py new file mode 100755 index 0000000..153d5c3 --- /dev/null +++ b/astral/parMatrixMul8/gen_stimuli.py @@ -0,0 +1,54 @@ +#!/usr/bin/env python + +import sys +import random + + +def write_arr(f, name, arr): + f.write('const char %s[] = {\n' % name) + for v in arr: + f.write('%d,\n' % (v)) + f.write('};\n\n') + return + +################################################################################ +f = open('parMatrixMul8_stimuli.h', 'w') + + +SIZE = 24 +RANGE = 4 + +m_a = [] +m_b = [] +m_exp = [] + +for i in range(0,SIZE): + for j in range(0,SIZE): + a = random.randint(-RANGE, RANGE-1) + b = random.randint(-RANGE, RANGE-1) + + m_a.append(a) + m_b.append(b) + +for i in range(0,SIZE): + for j in range(0,SIZE): + r = 0 + + for k in range (0,SIZE): + r = r + m_a[i * SIZE + k] * m_b[k * SIZE + j] + + m_exp.append(r) + + +write_arr(f, 'm_a', m_a) +write_arr(f, 'm_b', m_b) +write_arr(f, 'm_exp', m_exp) + +f.write('#define SIZE %d\n' % SIZE) + + +f.write('__attribute__ ((section(".heapsram"))) char g_mA[SIZE][SIZE];\n') +f.write('__attribute__ ((section(".heapsram"))) char g_mB[SIZE][SIZE];\n') +f.write('__attribute__ ((section(".heapsram"))) char g_mC[SIZE][SIZE];\n') +f.write('__attribute__ ((section(".heapsram"))) char g_mB_tmp[SIZE][SIZE];\n') + diff --git a/astral/parMatrixMul8/matrixMul.c b/astral/parMatrixMul8/matrixMul.c new file mode 100644 index 0000000..357fdf0 --- /dev/null +++ b/astral/parMatrixMul8/matrixMul.c @@ -0,0 +1,177 @@ +/* + * Copyright (C) 2018 ETH Zurich and University of Bologna + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * Mantainer: Luca Valente, luca.valente2@unibo.it + */ + +#include "pulp.h" + +#include "parMatrixMul8_stimuli.h" + +void check_matrix_mul(testresult_t *result, void (*start)(), void (*stop)()); +void check_matrix_mul_transpose(testresult_t *result, void (*start)(), void (*stop)()); + +testcase_t testcases[] = { + { .name = "matrixMul", .test = check_matrix_mul }, + { .name = "matrixMulTranspose", .test = check_matrix_mul_transpose }, + {0, 0} +}; + +unsigned int num_cores; + +int main() +{ + if (rt_cluster_id() != 0) + return bench_cluster_forward(0); + + num_cores = get_core_num(); + + if(rt_core_id() < num_cores) { + run_suite(testcases); + } + + synch_barrier(); + + return 0; +} + +void matrix_init(); +unsigned int matrix_check(); + +void check_matrix_mul(testresult_t *result, void (*start)(), void (*stop)()) { + int core_id; + unsigned int i, j, k; + unsigned int chunk; + unsigned int lb, ub; + + core_id = get_core_id(); + + // number of rows each core has to multiply + chunk = SIZE / num_cores; + // lower bound + lb = core_id * chunk; + // upper bound + ub = lb + chunk; + + if(core_id == 0) { + matrix_init(); + } + + if(num_cores != 1) synch_barrier(); + + // start benchmark + start(); + + for(i = lb; i < ub; i++) { + for(j = 0; j < SIZE; j++) { + g_mC[i][j] = 0; + + for(k = 0; k < SIZE; k++) { + g_mC[i][j] += g_mA[i][k] * g_mB[k][j]; + } + } + } + + if(num_cores != 1) synch_barrier(); + + stop(); + + if(core_id == 0) { + result->errors = matrix_check(); + } +} + +void check_matrix_mul_transpose(testresult_t *result, void (*start)(), void (*stop)()) { + int core_id; + unsigned int i, j, k; + unsigned int chunk; + unsigned int lb, ub; + + core_id = get_core_id(); + + // number of rows each core has to multiply + chunk = SIZE / num_cores; + // lower bound + lb = core_id * chunk; + // upper bound + ub = lb + chunk; + + if(core_id == 0) { + matrix_init(); + } + + if(num_cores != 1) synch_barrier(); + + // start benchmark + start(); + + // transpose array before using it + for(i = lb; i < ub; i++) { + for(j = 0; j < SIZE; j++) { + g_mB_tmp[i][j] = g_mB[j][i]; + } + } + + if(num_cores != 1) synch_barrier(); + + for(i = lb; i < ub; i++) { + for(j = 0; j < SIZE; j++) { + g_mC[i][j] = 0; + + for(k = 0; k < SIZE; k++) { + g_mC[i][j] += g_mA[i][k] * g_mB_tmp[j][k]; + } + } + } + + if(num_cores != 1) synch_barrier(); + + stop(); + + if(core_id == 0) { + result->errors = matrix_check(); + } +} + +void matrix_init() { + unsigned int i, j; + + // init, copy to TCDM + for(i = 0; i < SIZE; i++) { + for(j = 0; j < SIZE; j++) { + g_mA[i][j] = m_a[i * SIZE + j]; + g_mB[i][j] = m_b[i * SIZE + j]; + g_mC[i][j] = 0; + } + } +} + +unsigned int matrix_check() { + unsigned int errors = 0; + unsigned int i, j; + // check + for(i = 0; i < SIZE; i++) { + for(j = 0; j < SIZE; j++) { + if(g_mC[i][j] != m_exp[i * SIZE + j]) { + printf("At index %d, %d\n", i, j, 0, 0); + errors++; + } + } + } + + return errors; +} diff --git a/astral/parMatrixMul8/parMatrixMul8_stimuli.h b/astral/parMatrixMul8/parMatrixMul8_stimuli.h new file mode 100644 index 0000000..78d026c --- /dev/null +++ b/astral/parMatrixMul8/parMatrixMul8_stimuli.h @@ -0,0 +1,1742 @@ +const char m_a[] = { +-1, +0, +0, +0, +-4, +-4, +-4, +1, +-1, +-2, +-3, +3, +2, +-4, +1, +-2, +-3, +0, +-3, +-4, +-3, +-1, +-3, +-3, +2, +-2, +2, +3, +0, +2, +0, +-1, +-3, +-2, +-1, +-3, +1, +-1, +-1, +0, +-1, +-2, +-1, +-4, +-2, +-3, +-1, +-2, +1, +1, +2, +-1, +0, +2, +1, +-3, +2, +-3, +0, +0, +0, +2, +-2, +3, +-4, +2, +-2, +-3, +-2, +-3, +3, +-3, +0, +1, +-1, +-1, +1, +-2, +-1, +-4, +-2, +-1, +-4, +-4, +-2, +-1, +-2, +-3, +-4, +-4, +1, +0, +-2, +1, +-1, +1, +2, +-3, +-4, +0, +2, +-3, +-3, +0, +0, +-2, +-3, +-1, +-2, +-1, +-4, +-1, +-4, +-3, +-3, +0, +1, +-3, +-4, +1, +2, +0, +2, +-1, +-4, +-1, +-4, +2, +2, +-1, +3, +0, +0, +-1, +1, +3, +0, +2, +0, +3, +2, +2, +2, +-3, +2, +2, +-4, +0, +-3, +-1, +-1, +-3, +-4, +3, +2, +0, +2, +1, +0, +-2, +-1, +3, +3, +0, +1, +-3, +3, +0, +-3, +2, +-3, +1, +2, +0, +3, +-1, +0, +-2, +-4, +0, +-3, +0, +3, +0, +-1, +-3, +0, +-2, +-4, +-4, +-1, +1, +2, +-4, +1, +-4, +-4, +-3, +-3, +3, +-1, +-2, +-4, +2, +1, +2, +-1, +1, +3, +0, +2, +-4, +-3, +1, +-2, +0, +1, +1, +3, +-2, +-4, +2, +-1, +-1, +1, +2, +-2, +1, +1, +2, +0, +3, +-4, +2, +-1, +-1, +-3, +-3, +-3, +-3, +2, +-3, +1, +0, +3, +-3, +3, +3, +-4, +1, +-4, +1, +2, +-3, +1, +-4, +-1, +-4, +-3, +-2, +2, +3, +0, +-4, +1, +3, +0, +3, +-1, +-4, +3, +-2, +-2, +2, +-4, +-1, +-1, +3, +-2, +-4, +-1, +-1, +2, +-1, +2, +0, +-2, +-4, +0, +2, +-4, +0, +1, +-4, +2, +0, +-1, +-1, +-3, +2, +3, +2, +-2, +1, +-4, +-3, +1, +2, +-1, +-4, +3, +-1, +2, +-2, +-3, +0, +-1, +3, +-4, +-3, +-3, +-3, +0, +0, +3, +1, +-2, +-2, +-4, +2, +2, +0, +3, +-2, +1, +3, +-1, +3, +-4, +-2, +0, +-4, +0, +-1, +-3, +-2, +-4, +-4, +-2, +-4, +-3, +-3, +0, +2, +-4, +1, +0, +-3, +0, +-4, +-4, +3, +3, +-2, +1, +3, +3, +1, +-3, +-4, +-4, +1, +1, +2, +-4, +0, +3, +-1, +3, +1, +-4, +-2, +1, +-1, +3, +3, +-1, +-1, +0, +-2, +2, +-2, +-2, +1, +3, +1, +3, +-1, +2, +-1, +0, +1, +2, +-4, +-3, +1, +-3, +-1, +-4, +-1, +-4, +-4, +-3, +-3, +3, +0, +3, +0, +-2, +3, +-3, +3, +-1, +-1, +2, +-2, +1, +-4, +0, +-3, +3, +0, +-2, +-1, +3, +2, +-2, +3, +-3, +0, +-2, +1, +0, +-1, +1, +3, +-4, +3, +0, +3, +-4, +3, +-1, +-1, +1, +3, +1, +0, +-4, +3, +-3, +-4, +-1, +2, +-3, +-4, +-2, +-3, +2, +3, +-2, +-2, +-4, +-1, +1, +-4, +-2, +2, +-3, +1, +-3, +-2, +2, +3, +-2, +0, +1, +-1, +2, +-2, +1, +-1, +-4, +-3, +-4, +-3, +-3, +-3, +-4, +3, +1, +1, +3, +-4, +0, +-4, +2, +2, +3, +2, +-4, +1, +-1, +-2, +-2, +2, +-2, +2, +-3, +2, +0, +0, +0, +-4, +-2, +-2, +2, +1, +0, +2, +3, +2, +3, +-3, +0, +-3, +-2, +2, +-1, +2, +-3, +1, +0, +1, +3, +-4, +0, +-3, +-1, +1, +-2, +-2, +0, +0, +1, +-3, +-2, +0, +3, +2, +0, +3, +-4, +2, +1, +3, +-2, +-2, +-3, +2, +2, +2, +-1, +3, +2, +-3, +}; + +const char m_b[] = { +3, +-2, +-3, +-4, +-3, +2, +-4, +-1, +-4, +-4, +-1, +-3, +3, +0, +2, +1, +2, +-2, +0, +3, +-4, +-2, +2, +-1, +1, +-4, +-4, +-1, +1, +-3, +-2, +1, +-3, +1, +-2, +2, +1, +-3, +-1, +-4, +1, +-1, +-3, +3, +0, +0, +-2, +0, +-4, +-3, +0, +-3, +0, +3, +-1, +-4, +-2, +2, +-4, +-1, +-3, +1, +-4, +-4, +0, +2, +3, +2, +0, +-3, +-1, +-1, +2, +2, +-2, +-2, +-2, +-4, +3, +-3, +2, +1, +-1, +1, +-3, +-1, +2, +-1, +1, +-1, +0, +-4, +-2, +3, +0, +-4, +-2, +3, +-3, +1, +-1, +-1, +-2, +1, +-2, +-4, +0, +0, +0, +0, +-4, +-3, +3, +-2, +3, +3, +2, +3, +-4, +1, +-2, +-3, +-3, +2, +3, +-4, +-1, +3, +0, +3, +2, +1, +-1, +-1, +-4, +-1, +3, +2, +-1, +3, +0, +3, +0, +1, +-4, +0, +3, +2, +-4, +-2, +-2, +-4, +-3, +-2, +1, +0, +-2, +1, +3, +-2, +-1, +-3, +0, +3, +0, +0, +0, +2, +3, +-4, +-4, +2, +2, +3, +1, +0, +0, +-2, +1, +-2, +-4, +-3, +0, +-2, +2, +3, +2, +3, +3, +1, +1, +1, +3, +1, +3, +2, +-3, +1, +-1, +-2, +-2, +-2, +-1, +2, +2, +0, +-3, +-1, +2, +-4, +-2, +2, +-3, +-2, +-4, +3, +-1, +3, +2, +3, +-1, +-1, +-1, +-2, +-2, +2, +2, +-1, +-3, +-1, +3, +-3, +3, +3, +2, +-3, +2, +-3, +-3, +-2, +3, +-1, +0, +-2, +-1, +-1, +2, +-1, +-2, +1, +-4, +1, +3, +2, +1, +2, +-1, +-1, +-1, +-4, +0, +3, +1, +-2, +0, +2, +-2, +-2, +3, +-1, +-1, +0, +3, +3, +-1, +0, +0, +-4, +1, +-4, +-4, +0, +2, +3, +-3, +-2, +-3, +-3, +-2, +0, +-4, +-1, +0, +-2, +1, +-1, +-4, +1, +2, +0, +-2, +0, +2, +2, +2, +3, +-3, +1, +0, +-2, +2, +3, +-1, +-2, +1, +-3, +-1, +2, +2, +1, +3, +-2, +0, +-2, +-4, +1, +1, +1, +-2, +-1, +2, +0, +1, +-1, +-3, +-1, +1, +-1, +-1, +-3, +-4, +-2, +-2, +-1, +0, +3, +3, +0, +-2, +-2, +-2, +-3, +2, +2, +1, +3, +0, +3, +0, +-1, +-1, +3, +3, +-4, +1, +1, +-2, +-4, +-4, +3, +1, +0, +-1, +-4, +-2, +2, +0, +1, +-1, +0, +-3, +-2, +-1, +1, +-3, +-2, +2, +-4, +-3, +-3, +0, +0, +-3, +-3, +2, +0, +1, +-2, +-3, +-1, +3, +-1, +3, +-3, +-4, +-4, +0, +-4, +-1, +2, +1, +0, +0, +2, +2, +3, +2, +-1, +0, +-3, +-3, +3, +0, +-4, +0, +-2, +-2, +-1, +1, +3, +3, +1, +-3, +1, +-2, +-1, +2, +0, +0, +2, +-1, +-4, +-1, +-3, +0, +2, +-4, +-1, +0, +-2, +-1, +2, +-2, +-2, +3, +3, +0, +3, +1, +0, +2, +3, +2, +-2, +-4, +-1, +3, +3, +-1, +2, +0, +-2, +2, +-4, +-3, +-3, +-3, +-3, +-3, +0, +3, +3, +3, +0, +-3, +-1, +2, +3, +-3, +-3, +-4, +-1, +3, +0, +-4, +-2, +-3, +1, +3, +3, +-2, +2, +-4, +-2, +1, +-3, +-3, +-2, +3, +-3, +0, +-4, +0, +2, +-4, +0, +1, +-1, +3, +3, +3, +1, +3, +-4, +-4, +-1, +-3, +-3, +0, +1, +-1, +-3, +-4, +2, +3, +0, +-4, +-2, +-3, +0, +3, +2, +0, +-2, +-4, +-3, +-3, +-3, +-2, +2, +-4, +-4, +2, +3, +-3, +2, +-2, +-2, +-1, +-2, +-2, +-1, +3, +-4, +-4, +3, +-3, +-3, +-1, +-1, +2, +3, +-3, +-1, +-3, +-4, +}; + +const char m_exp[] = { +27, +-26, +-19, +13, +47, +17, +-5, +14, +88, +66, +2, +14, +6, +-39, +56, +35, +-19, +61, +-13, +4, +46, +1, +70, +27, +-22, +-28, +-13, +-5, +-4, +-6, +-10, +5, +26, +14, +3, +-1, +-3, +0, +10, +43, +4, +32, +-3, +6, +36, +26, +66, +20, +-20, +-10, +21, +-17, +-5, +36, +-9, +11, +10, +17, +-32, +12, +20, +9, +-1, +15, +-42, +-21, +-51, +24, +20, +26, +10, +42, +-4, +2, +-11, +41, +22, +4, +-17, +10, +28, +-10, +2, +10, +25, +32, +18, +43, +-3, +-9, +-9, +-4, +25, +-5, +9, +24, +54, +43, +14, +59, +18, +36, +-7, +30, +50, +-30, +21, +3, +27, +7, +21, +55, +-17, +-2, +9, +17, +31, +8, +12, +29, +43, +-17, +14, +-55, +13, +50, +24, +-13, +-33, +15, +-45, +9, +36, +-9, +-6, +14, +-1, +2, +-27, +-37, +-40, +-14, +2, +-10, +6, +27, +-8, +-13, +-17, +-4, +28, +51, +-5, +-14, +2, +-23, +17, +35, +41, +-3, +-37, +-12, +-49, +-31, +7, +15, +36, +-15, +-21, +6, +2, +36, +-12, +-27, +-34, +9, +44, +8, +57, +20, +-22, +-22, +-11, +-15, +-8, +-15, +-9, +49, +37, +26, +6, +30, +-17, +-43, +-3, +-31, +36, +49, +-15, +8, +51, +-8, +17, +-51, +-16, +-21, +12, +49, +-11, +41, +36, +15, +-5, +-69, +60, +14, +-24, +-21, +23, +3, +41, +41, +-27, +0, +33, +63, +18, +1, +-36, +-20, +18, +7, +-1, +37, +-33, +30, +36, +-29, +38, +57, +-8, +-21, +-26, +15, +-10, +-4, +-17, +-19, +8, +-9, +-13, +0, +10, +-30, +59, +12, +11, +51, +60, +19, +35, +6, +3, +-5, +-19, +-10, +20, +6, +-12, +-5, +5, +11, +33, +-33, +-27, +-2, +-2, +3, +53, +-1, +-15, +-10, +13, +-5, +24, +-17, +10, +8, +-3, +41, +-9, +9, +0, +30, +7, +7, +-10, +-28, +21, +13, +4, +-3, +44, +9, +-49, +-31, +-51, +23, +16, +-13, +-12, +36, +23, +34, +-39, +8, +20, +2, +32, +73, +24, +-16, +0, +-30, +17, +52, +-10, +28, +-43, +-1, +-34, +16, +-4, +39, +31, +5, +5, +3, +36, +48, +5, +28, +12, +57, +25, +-28, +14, +34, +49, +11, +41, +20, +-12, +-18, +-43, +-29, +58, +26, +44, +36, +-100, +-46, +-24, +0, +54, +4, +-2, +21, +5, +-12, +22, +9, +-35, +-5, +-36, +-22, +-10, +-11, +-15, +34, +20, +-33, +17, +39, +-13, +-32, +-36, +-22, +-3, +-38, +-39, +-6, +0, +15, +-6, +-15, +9, +-10, +45, +16, +17, +13, +-8, +15, +11, +-4, +59, +18, +-9, +12, +69, +27, +-30, +16, +7, +30, +41, +-30, +9, +-4, +23, +-5, +8, +3, +-75, +-25, +5, +14, +12, +-21, +-21, +6, +-13, +15, +8, +-6, +30, +24, +41, +-12, +5, +39, +18, +-4, +-60, +19, +-1, +-3, +-7, +16, +-11, +-51, +2, +-10, +-17, +-32, +39, +-35, +-46, +10, +27, +1, +21, +13, +78, +-12, +-2, +-28, +-20, +11, +75, +85, +-18, +21, +-7, +-9, +33, +19, +71, +23, +25, +2, +47, +32, +8, +24, +46, +-22, +23, +18, +-58, +66, +52, +22, +32, +25, +-34, +-26, +-21, +-69, +6, +27, +-28, +-13, +-15, +10, +-20, +-16, +20, +25, +7, +22, +52, +-4, +-8, +-28, +-18, +-6, +-36, +6, +-26, +12, +32, +8, +11, +16, +0, +-18, +-33, +-10, +11, +-40, +-6, +-29, +-34, +-30, +15, +15, +-27, +9, +8, +-43, +0, +-5, +4, +12, +60, +-11, +-4, +-32, +-25, +-38, +-37, +-17, +-1, +20, +37, +43, +7, +-2, +12, +-7, +-7, +-14, +-30, +9, +50, +-18, +-9, +-1, +-9, +6, +16, +-38, +-13, +30, +}; + +#define SIZE 24 +__attribute__ ((section(".heapsram"))) char g_mA[SIZE][SIZE]; +__attribute__ ((section(".heapsram"))) char g_mB[SIZE][SIZE]; +__attribute__ ((section(".heapsram"))) char g_mC[SIZE][SIZE]; +__attribute__ ((section(".heapsram"))) char g_mB_tmp[SIZE][SIZE]; diff --git a/astral/redmule/Makefile b/astral/redmule/Makefile new file mode 100644 index 0000000..c498417 --- /dev/null +++ b/astral/redmule/Makefile @@ -0,0 +1,9 @@ +PULP_APP = test +PULP_APP_SRCS = redmule.c +PULP_CFLAGS = -O3 + +ifeq ($(use_no_dma),1) + PULP_CFLAGS += -DUSE_NO_DMA +endif + +include $(PULP_SDK_HOME)/install/rules/pulp.mk diff --git a/astral/redmule/archi_redmule.h b/astral/redmule/archi_redmule.h new file mode 100644 index 0000000..9222d63 --- /dev/null +++ b/astral/redmule/archi_redmule.h @@ -0,0 +1,164 @@ +/* + * Copyright (C) 2022-2023 ETH Zurich and University of Bologna + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * SPDX-License-Identifier: Apache-2.0 + * + * Author: Yvan Tortorella + * + * High-level architecture of RedMulE + * + */ + +#ifndef __ARCHI_REDMULE_H__ +#define __ARCHI_REDMULE_H__ + +/* + * |========================================================================| + * || || + * ||Control and generic configuration register layout || + * |========================================================================| + * || # reg | offset | bits | bitmask || content || + * ||-------+----------+---------+--------------++-------------------------|| + * || 0 | 0x0000 | 31: 0 | 0xFFFFFFFF || TRIGGER || + * || 1 | 0x0004 | 31: 0 | 0xFFFFFFFF || ACQUIRE || + * || 2 | 0x0008 | 31: 0 | 0xFFFFFFFF || EVT_ENABLE || + * || 3 | 0x000c | 31: 0 | 0xFFFFFFFF || STATUS || + * || 4 | 0x0010 | 31: 0 | 0xFFFFFFFF || RUNNING_JOB || + * || 5 | 0x0014 | 31: 0 | 0xFFFFFFFF || SOFT_CLEAR || + * |========================================================================| + * || || + * ||Job-dependent registers layout || + * |========================================================================| + * || # reg | offset | bits | bitmask || content || + * ||-------+----------+---------+--------------++-------------------------|| + * || 0 | 0x0040 | 31: 0 | 0xFFFFFFFF || X_ADDR || + * ||-------+----------+---------+--------------++-------------------------|| + * || 1 | 0x0044 | 31: 0 | 0xFFFFFFFF || W_ADDR || + * ||-------+----------+---------+--------------++-------------------------|| + * || 2 | 0x0048 | 31: 0 | 0xFFFFFFFF || Z_ADDR || + * ||-------+----------+---------+--------------++-------------------------|| + * || 3 | 0x004C | | || Matrix Config 0 Reg || + * || | | 31:16 | 0xFFFF0000 || K Size (W Columns) || + * || | | 15: 0 | 0x0000FFFF || M Size (X Rows) || + * ||-------+----------+---------+--------------++-------------------------|| + * || 4 | 0x0050 | | || Matrix Config 1 Reg || + * || | | 31:16 | 0xFFFFFFFF || N Size (X Cols/W Rows) || + * ||-------+----------+---------+--------------++-------------------------|| + * || 5 | 0x0054 | | || Matrix Arithmetic Reg || + * || | | 12:10 | 0x00001C00 || Operation selection || + * || | | 9: 7 | 0x00000380 || Input/Output format || + * |========================================================================| + * + */ + +/* PULP Cluster Archi defines */ +#define ARCHI_CLUST_CTRL_BASE 0x50200000 +#define ARCHI_CLUST_HWPE_BASE 0x50201000 +#define DMA_COMMAND_QUEUE 0x50204400 +#define DMA_STATUS_REGISTER 0x50204404 +#define ARCHI_CL_HWPE_EVT0 12 +#define ARCHI_CL_HWPE_EVT1 13 +#define FC_DMA_EVENT 8 +#define CL_DMA_EVENT 22 +#define CLUST_CTRL_HWPE_EN 0x18 +#define CLUST_CTRL_HWPE_EN_MASK 0x800 +#define __builtin_bitinsert(a,b,c,d) (a | (((b << (32-c)) >> (32-c)) << d)) + +// RedMulE architecture +#define ADDR_WIDTH 32 +#define DATA_WIDTH 256 +#define REDMULE_FMT 16 +#define ARRAY_HEIGHT 4 +#define PIPE_REGS 3 +#define ARRAY_WIDTH 12 /* Superior limit is ARRAY_HEIGHT*PIPE_REGS */ + +// Commands +#define REDMULE_TRIGGER 0x00 +#define REDMULE_ACQUIRE 0x04 +#define REDMULE_FINISHED 0x08 +#define REDMULE_STATUS 0x0C +#define REDMULE_RUNNING_JOB 0x10 +#define REDMULE_SOFT_CLEAR 0x14 + +// Registers +#define REDMULE_REG_OFFS 0x40 +// #define REDMULE_REG_X_PTR 0x00 +// #define REDMULE_REG_W_PTR 0x04 +// #define REDMULE_REG_Z_PTR 0x08 +// #define REDMULE_MCFG0_PTR 0x0C +// #define REDMULE_MCFG1_PTR 0x10 +// #define REDMULE_ARITH_PTR 0x14 +#define REDMULE_REG_X_PTR 0x00 +#define REDMULE_REG_W_PTR 0x04 +#define REDMULE_REG_Y_PTR 0x08 +#define REDMULE_REG_Z_PTR 0x0C +#define REDMULE_REG_X_ITER_PTR 0x10 +#define REDMULE_REG_W_ITER_PTR 0x14 +#define REDMULE_REG_LEFTOVERS_PTR 0x18 +#define REDMULE_REG_LEFT_PARAMS_PTR 0x1C +#define REDMULE_REG_X_D1_STRIDE_PTR 0x20 +#define REDMULE_REG_W_TOT_LEN_PTR 0x24 +#define REDMULE_REG_TOT_X_READ_PTR 0x28 +#define REDMULE_REG_W_D0_STRIDE_PTR 0x2C +#define REDMULE_REG_YZ_TOT_LEN_PTR 0x30 +#define REDMULE_REG_YZ_D0_STRIDE_PTR 0x34 +#define REDMULE_REG_YZ_D2_STRIDE_PTR 0x38 +#define REDMULE_REG_X_ROWS_OFFS_PTR 0x3C +#define REDMULE_REG_X_BUFFER_SLOTS_PTR 0x40 +#define REDMULE_REG_X_TOT_LEN_PTR 0x44 +#define REDMULE_REG_OP_SELECTION 0x48 + +// OPs definition +#define MATMUL 0x0 +#define GEMM 0x1 +#define ADDMAX 0x2 +#define ADDMIN 0x3 +#define MULMAX 0x4 +#define MULMIN 0x5 +#define MAXMIN 0x6 +#define MINMAX 0x7 + +// GEMM formats +#define Float8 0x0 +#define Float16 0x1 +#define Float8Alt 0x2 +#define Float16Alt 0x3 + +#define RNE 0x0 +#define RTZ 0x1 +#define OP_FMADD 0x0 +#define OP_ADD 0x2 +#define OP_MUL 0x3 +#define OP_MINMAX 0x7 + +// FP Formats encoding +#define FP16 0x2 +#define FP8 0x3 +#define FP16ALT 0x4 +#define FP8ALT 0x5 + +/* DMA Archi */ +#define DMA_TX 0 +#define DMA_RX 1 +#define DMA_INC 1 + +#define PLP_DMA_TYPE_BIT 0x00000011 +#define PLP_DMA_INCR_BIT 0x00000012 +#define PLP_DMA_2D_BIT 0x00000013 +#define PLP_DMA_ELE_BIT 0x00000014 +#define PLP_DMA_ILE_BIT 0x00000015 +#define PLP_DMA_BLE_BIT 0x00000016 +#define PLP_DMA_2D_TCDM_BIT 0x0000017 + +#endif diff --git a/astral/redmule/hal_redmule.h b/astral/redmule/hal_redmule.h new file mode 100644 index 0000000..c5a0c32 --- /dev/null +++ b/astral/redmule/hal_redmule.h @@ -0,0 +1,527 @@ +/* + * Copyright (C) 2022-2023 ETH Zurich and University of Bologna + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * SPDX-License-Identifier: Apache-2.0 + * + * Author: Yvan Tortorella + * + * RedMulE Hardware Abstraction Layer (HAL) + */ + +#ifndef __HAL_REDMULE_H__ +#define __HAL_REDMULE_H__ + +#include +#include "inc/x_input.h" +#include "inc/w_input.h" +#include "inc/y_input.h" +#include "inc/z_output.h" +#include "inc/golden.h" +#include "inc/tensor_dim.h" + +/* + * + * For control, generic configuration register layout, + * and job-dependent register map, look at redmule_archi.h + * + */ + +// For all the following functions we use __builtin_pulp_OffsetedWrite and __builtin_pulp_OffsetedRead +// instead of classic load/store because otherwise the compiler is not able to correctly factorize +// the HWPE base in case several accesses are done, ending up with twice more code + +#define HWPE_WRITE(value, offset) *(int *)(ARCHI_CLUST_HWPE_BASE + offset) = value +#define HWPE_READ(offset) *(int *)(ARCHI_CLUST_HWPE_BASE + offset) + +static inline void redmule_x_add_set (unsigned int value) { + HWPE_WRITE(value, REDMULE_REG_OFFS + REDMULE_REG_X_PTR); +} + +static inline void redmule_w_add_set (unsigned int value) { + HWPE_WRITE(value, REDMULE_REG_OFFS + REDMULE_REG_W_PTR); +} + +static inline void redmule_y_add_set (unsigned int value) { + HWPE_WRITE(value, REDMULE_REG_OFFS + REDMULE_REG_Y_PTR); +} + +static inline void redmule_z_add_set (unsigned int value) { + HWPE_WRITE(value, REDMULE_REG_OFFS + REDMULE_REG_Z_PTR); +} + +// static inline void redmule_mcfg_set (uint32_t mcfg0, uint32_t mcfg1) { +// HWPE_WRITE(mcfg0, REDMULE_REG_OFFS + REDMULE_MCFG0_PTR); +// HWPE_WRITE(mcfg1, REDMULE_REG_OFFS + REDMULE_MCFG1_PTR); +// } +// +// static inline void redmule_arith_set (uint32_t arith) { +// HWPE_WRITE(arith, REDMULE_REG_OFFS + REDMULE_ARITH_PTR); +// } + +static inline void hwpe_trigger_job() { + HWPE_WRITE(0, REDMULE_TRIGGER); +} + +static inline int hwpe_acquire_job() { + return HWPE_READ(REDMULE_ACQUIRE); +} + +static inline unsigned int hwpe_get_status() { + return HWPE_READ(REDMULE_STATUS); +} + +static inline void hwpe_soft_clear() { + HWPE_WRITE(1, REDMULE_SOFT_CLEAR); +} + +static inline void hwpe_cg_enable() { + *(volatile int*) (ARCHI_CLUST_CTRL_BASE + CLUST_CTRL_HWPE_EN) |= CLUST_CTRL_HWPE_EN_MASK; +} + +static inline void hwpe_cg_disable() { + *(volatile int*) (ARCHI_CLUST_CTRL_BASE + CLUST_CTRL_HWPE_EN) &= ~CLUST_CTRL_HWPE_EN_MASK; +} + +static inline void redmule_evt_wait() { + do { + eu_evt_maskWaitAndClr (1 << ARCHI_CL_HWPE_EVT0); + } while((*(int volatile *)(ARCHI_CLUST_HWPE_BASE + REDMULE_STATUS)) != 0); +} + +/* DMA APIs */ +static inline int mchan_alloc(){ + return *(volatile int*) DMA_COMMAND_QUEUE; +} + +static inline void mchan_transfer(unsigned int len, + unsigned int ext_addr, + unsigned int tcdm_addr) { + + *(volatile int*) DMA_COMMAND_QUEUE = len | + (DMA_RX << PLP_DMA_TYPE_BIT) | + (DMA_INC << PLP_DMA_INCR_BIT) | + (0 << PLP_DMA_2D_BIT) | + (1 << PLP_DMA_ELE_BIT) | + (1 << PLP_DMA_ILE_BIT) | + (0 << PLP_DMA_BLE_BIT) | + (0 << PLP_DMA_2D_TCDM_BIT); + *(volatile int*) DMA_COMMAND_QUEUE = tcdm_addr; + *(volatile int*) DMA_COMMAND_QUEUE = ext_addr; +} + +static inline void mchan_barrier(int id) { + while(((*(volatile int*)(DMA_STATUS_REGISTER)) >> id ) & 0x1 ) { + eu_evt_maskWaitAndClr(1 << FC_DMA_EVENT); + } +} + +static inline void mchan_free(int id) { + *(volatile int*) DMA_STATUS_REGISTER = 0x1 << id; +} + +// void redmule_cfg (unsigned int x, unsigned int w, unsigned int z, +// uint16_t m_size, uint16_t n_size, uint16_t k_size, +// uint8_t gemm_op, uint8_t gemm_fmt){ +// +// uint32_t mcfg_reg0 = 0; +// uint32_t mcfg_reg1 = 0; +// uint32_t arith_reg = 0; +// +// mcfg_reg0 = (k_size << 16) | +// (m_size << 0); +// mcfg_reg1 = n_size << 0; +// +// arith_reg = (gemm_op << 10) | +// (gemm_fmt << 7); +// +// redmule_x_add_set ((unsigned int) x); +// redmule_w_add_set ((unsigned int) w); +// redmule_z_add_set ((unsigned int) z); +// redmule_mcfg_set ((unsigned int) mcfg_reg0, +// (unsigned int) mcfg_reg1); +// redmule_arith_set ((unsigned int) arith_reg); +// +// } + +void redmule_cfg (uint16_t m_size, uint16_t n_size, uint16_t k_size, uint8_t gemm_ops){ + uint32_t x_iters = 0; + uint32_t w_iters = 0; + uint32_t leftovers = 0; + uint32_t left_params = 0; + uint32_t x_d1_stride = 0; + uint32_t x_rows_offs = 0; + uint32_t w_tot_len = 0; + uint32_t w_d1_len = 0; + uint32_t w_d0_stride = 0; + uint32_t yz_tot_len = 0; + uint32_t yz_d0_stride = 0; + uint32_t yz_d2_stride = 0; + uint32_t tot_x_read = 0; + uint32_t x_buffer_slots = 0; + uint32_t op_selection = 0; + uint16_t tot_stores = 0; + uint16_t w_rows = n_size; + uint16_t depth = DATA_WIDTH/(ARRAY_HEIGHT*FPFORMAT); + uint8_t tile = ARRAY_HEIGHT*(PIPE_REGS + 1); + _Bool x_rows_sub = 0; + _Bool x_cols_sub = 0; + _Bool w_cols_sub = 0; + uint16_t x_rows_iter, + x_rows_iter_tmp, + w_rows_iter, + w_rows_iter_tmp; + uint16_t x_cols_iter, + x_cols_iter_tmp, + w_cols_iter, + w_cols_iter_tmp; + uint8_t x_rows_lftovr, + x_cols_lftovr, + w_rows_lftovr, + w_cols_lftovr, + slots; + + // Calculating the number of iterations alng the two dimensions of the X matrix + x_rows_iter_tmp = m_size/ARRAY_WIDTH; + x_cols_iter_tmp = n_size/tile; + + // Calculating the number of iterations alng the two dimensions of the W matrix + w_rows_iter_tmp = w_rows; + w_cols_iter_tmp = k_size/tile; + + // Calculating the residuals along the input dimensions + x_rows_lftovr = m_size - (x_rows_iter_tmp*ARRAY_WIDTH); + x_cols_lftovr = n_size - (x_cols_iter_tmp*tile); + + // Calculating the residuals along the weight dimensions + w_rows_lftovr = n_size - (ARRAY_HEIGHT*(w_rows/ARRAY_HEIGHT)); + w_cols_lftovr = k_size - (w_cols_iter_tmp*tile); + + if (w_cols_lftovr != 0) + w_cols_iter = w_cols_iter_tmp + 1; + else + w_cols_iter = w_cols_iter_tmp; + + if (w_rows_lftovr != 0) + w_rows_iter = w_rows_iter_tmp + ARRAY_HEIGHT - w_rows_lftovr; + else + w_rows_iter = w_rows_iter_tmp; + + if (x_cols_lftovr != 0) + x_cols_iter = x_cols_iter_tmp + 1; + else + x_cols_iter = x_cols_iter_tmp; + + if (x_rows_lftovr != 0) + x_rows_iter = x_rows_iter_tmp + 1; + else + x_rows_iter = x_rows_iter_tmp; + + if (x_cols_lftovr%depth != 0) + x_buffer_slots = x_cols_lftovr/depth + 1; + else + x_buffer_slots = x_cols_lftovr/depth; + + // Calculating the number of total stores + tot_stores = x_rows_iter*w_cols_iter; + + // Determining if input matrixes are sub-matrixes + if (m_size < ARRAY_WIDTH) + x_rows_sub = 1; + if (n_size < ARRAY_HEIGHT) + x_cols_sub = 1; + if (k_size < tile) + w_cols_sub = 1; + + // Operation selection + switch (gemm_ops) { + case MATMUL: + op_selection |= (RNE << 29 | RNE << 26 | OP_FMADD << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 0; + break; + + case GEMM: + op_selection |= (RNE << 29 | RNE << 26 | OP_FMADD << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; + break; + + case ADDMAX: + op_selection |= (RNE << 29 | RTZ << 26 | OP_ADD << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; + break; + + case ADDMIN: + op_selection |= (RNE << 29 | RNE << 26 | OP_ADD << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; + break; + + case MULMAX: + op_selection |= (RNE << 29 | RTZ << 26 | OP_MUL << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; + break; + + case MULMIN: + op_selection |= (RNE << 29 | RNE << 26 | OP_MUL << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; + break; + + case MAXMIN: + op_selection |= (RTZ << 29 | RNE << 26 | OP_MINMAX << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; + break; + + case MINMAX: + op_selection |= (RNE << 29 | RTZ << 26 | OP_MINMAX << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; + break; + } + + // Storing iterations and residuals in registers + x_iters |= x_rows_iter << 16 | x_cols_iter << 0; + w_iters |= w_rows_iter << 16 | w_cols_iter << 0; + leftovers |= x_rows_lftovr << 24 | x_cols_lftovr << 16 | w_rows_lftovr << 8 | w_cols_lftovr << 0; + left_params |= tot_stores << 16 | x_rows_sub << 15 | x_cols_sub << 14 | w_cols_sub << 13; + x_d1_stride = ((4*FPFORMAT)/ADDR_WIDTH)*(((DATA_WIDTH/FPFORMAT)*x_cols_iter_tmp) + x_cols_lftovr); + x_rows_offs = ARRAY_WIDTH*x_d1_stride; + w_tot_len = w_rows_iter*w_cols_iter*x_rows_iter; + w_d0_stride = ((4*FPFORMAT)/ADDR_WIDTH)*(((DATA_WIDTH/FPFORMAT)*w_cols_iter_tmp) + w_cols_lftovr); + yz_tot_len = ARRAY_WIDTH*x_rows_iter*w_cols_iter; + yz_d0_stride = w_d0_stride; + yz_d2_stride = ARRAY_WIDTH*w_d0_stride; + tot_x_read = x_rows_iter*x_cols_iter*w_cols_iter; + + // Writing the computations in configuration register + HWPE_WRITE(x_iters , REDMULE_REG_OFFS + REDMULE_REG_X_ITER_PTR ); + HWPE_WRITE(w_iters , REDMULE_REG_OFFS + REDMULE_REG_W_ITER_PTR ); + HWPE_WRITE(leftovers , REDMULE_REG_OFFS + REDMULE_REG_LEFTOVERS_PTR ); + HWPE_WRITE(left_params , REDMULE_REG_OFFS + REDMULE_REG_LEFT_PARAMS_PTR ); + HWPE_WRITE(x_d1_stride , REDMULE_REG_OFFS + REDMULE_REG_X_D1_STRIDE_PTR ); + HWPE_WRITE(x_rows_offs , REDMULE_REG_OFFS + REDMULE_REG_X_ROWS_OFFS_PTR ); + HWPE_WRITE(tot_x_read , REDMULE_REG_OFFS + REDMULE_REG_TOT_X_READ_PTR ); + HWPE_WRITE(x_buffer_slots, REDMULE_REG_OFFS + REDMULE_REG_X_BUFFER_SLOTS_PTR ); + HWPE_WRITE(w_tot_len , REDMULE_REG_OFFS + REDMULE_REG_W_TOT_LEN_PTR ); + HWPE_WRITE(w_d0_stride , REDMULE_REG_OFFS + REDMULE_REG_W_D0_STRIDE_PTR ); + HWPE_WRITE(yz_tot_len , REDMULE_REG_OFFS + REDMULE_REG_YZ_TOT_LEN_PTR ); + HWPE_WRITE(yz_d0_stride , REDMULE_REG_OFFS + REDMULE_REG_YZ_D0_STRIDE_PTR ); + HWPE_WRITE(yz_d2_stride , REDMULE_REG_OFFS + REDMULE_REG_YZ_D2_STRIDE_PTR ); + HWPE_WRITE(op_selection , REDMULE_REG_OFFS + REDMULE_REG_OP_SELECTION ); +} + +void generate_test_data16(int x_start_addr, + int w_start_addr, + int y_start_addr, + int m_size, + int n_size, + int k_size) { + + int x_addr = x_start_addr; + int w_addr = w_start_addr; + int y_addr = y_start_addr; + int x_end_addr = x_start_addr + (2*m_size*n_size); + int w_end_addr = w_start_addr + (2*n_size*k_size); + int y_end_addr = y_start_addr + (2*m_size*k_size); + + // Generating input stimuli from golden model + for (x_addr = x_start_addr; x_addr < x_end_addr; x_addr += 2) { + int x = x_addr - x_start_addr; + *(uint32_t *)(x_addr) = x_inp[x/2]; + } + + // Generating Weight stimuli from golden model + for (w_addr = w_start_addr; w_addr < w_end_addr; w_addr += 2) { + int w = w_addr - w_start_addr; + *(uint32_t *)(w_addr) = w_inp[w/2]; + } + + for (y_addr = y_start_addr; y_addr < y_end_addr; y_addr += 2) { + int y = y_addr - y_start_addr; + *(uint32_t *)(y_addr) = y_inp[y/2]; + } +} + +int redmule_compare16 (int z_start_addr, int m_size, int k_size) { + int err = 0; + int z_end_addr = z_start_addr + 2*m_size*k_size; + uint16_t z_computed; + uint16_t diff, diff_1, diff_2; + + for (int z_addr = z_start_addr; z_addr < z_end_addr; z_addr += 2) { + int z = z_addr - z_start_addr; + z_computed = *(uint32_t *)(z_addr); + + if ( z_computed != z_oup[z/2] ) { + diff_1 = z_computed - z_oup[z/2]; + if (diff_1 > 3) { + diff_2 = z_oup[z/2] - z_computed; + if (diff_2 > 3) { + err++; + } + } + } + } + + return err; + +} + +int redmule16_compare_int(uint32_t *actual_z, uint32_t *golden_z, int len) { + #define ERR 0x0011 + uint32_t actual_word = 0; + uint16_t actual_MSHWord, actual_LSHWord; + uint32_t golden_word = 0; + uint16_t golden_MSHWord, golden_LSHWord; + uint32_t actual = 0; + uint32_t golden = 0; + + int errors = 0; + int error; + + for (int i=0; i golden_LSHWord) ? (actual_LSHWord - golden_LSHWord) : 0; + diff = (actual_LSHWord < golden_LSHWord) ? (golden_LSHWord - actual_LSHWord) : 0; + + if (diff > ERR) { + error = 1; + #ifdef VERBOSE + tfp_printf ("diff: 0x%08x\n", diff); + tfp_printf ("LSW: Error!\n"); + #endif + } + + // Checking Most Significant Half-Word + actual_MSHWord = (uint16_t)((actual_word >> 16) & 0x0000FFFF); + golden_MSHWord = (uint16_t)((golden_word >> 16) & 0x0000FFFF); + + diff = (actual_MSHWord > golden_MSHWord) ? (actual_MSHWord - golden_MSHWord) : 0; + diff = (actual_MSHWord < golden_MSHWord) ? (golden_MSHWord - actual_MSHWord) : 0; + + if (diff > ERR) { + error = 1; + #ifdef VERBOSE + tfp_printf ("diff: 0x%08x\n", diff); + tfp_printf ("MSW: Error!\n"); + #endif + } + + errors += error; + + #ifdef DEBUG + tfp_printf(" Golden: 0x%08x; Actual: 0x%08x,\n", golden_word, actual_word); + #endif + + #ifdef VERBOSE + if(error) { + if(errors==1) tfp_printf(" golden <- actual @ address @ index\n"); + tfp_printf(" 0x%08x <- 0x%08x @ 0x%08x @ 0x%08x\n", golden_word, actual_word, (actual_z+i), i*4); + } + #endif + } + return errors; +} + +int redmule8_compare_int(uint32_t *actual_z, uint32_t *golden_z, int len) { + #define ERR 0x0011 + uint32_t actual_word = 0; + uint8_t actual_Byte0, + actual_Byte1, + actual_Byte2, + actual_Byte3; + uint32_t golden_word = 0; + uint8_t golden_Byte0, + golden_Byte1, + golden_Byte2, + golden_Byte3; + uint32_t actual = 0; + uint32_t golden = 0; + + int errors = 0; + int error; + + for (int i=0; i golden_Byte0) ? (actual_Byte0 - golden_Byte0) : 0; + diff = (actual_Byte0 < golden_Byte0) ? (golden_Byte0 - actual_Byte0) : 0; + + if (diff > ERR) { + error = 1; + tfp_printf ("diff: 0x%08x\n", diff); + tfp_printf ("Byte0: Error!\n"); + } + + // Cheching Byte1 + actual_Byte1 = (uint8_t)( (actual_word >> 8 ) & 0x000000FF); + golden_Byte1 = (uint8_t)( (golden_word >> 8 ) & 0x000000FF); + + diff = (actual_Byte1 > golden_Byte1) ? (actual_Byte1 - golden_Byte1) : 0; + diff = (actual_Byte1 < golden_Byte1) ? (golden_Byte1 - actual_Byte1) : 0; + + if (diff > ERR) { + error = 1; + tfp_printf ("diff: 0x%08x\n", diff); + tfp_printf ("Byte1: Error!\n"); + } + + // Cheching Byte2 + actual_Byte2 = (uint8_t)( (actual_word >> 16 ) & 0x000000FF); + golden_Byte2 = (uint8_t)( (golden_word >> 16 ) & 0x000000FF); + + diff = (actual_Byte2 > golden_Byte2) ? (actual_Byte2 - golden_Byte2) : 0; + diff = (actual_Byte2 < golden_Byte2) ? (golden_Byte2 - actual_Byte2) : 0; + + if (diff > ERR) { + error = 1; + tfp_printf ("diff: 0x%08x\n", diff); + tfp_printf ("Byte2: Error!\n"); + } + + // Cheching Byte3 + actual_Byte3 = (uint8_t)( (actual_word >> 24 ) & 0x000000FF); + golden_Byte3 = (uint8_t)( (golden_word >> 24 ) & 0x000000FF); + + diff = (actual_Byte3 > golden_Byte3) ? (actual_Byte3 - golden_Byte3) : 0; + diff = (actual_Byte3 < golden_Byte3) ? (golden_Byte3 - actual_Byte3) : 0; + + if (diff > ERR) { + error = 1; + tfp_printf ("diff: 0x%08x\n", diff); + tfp_printf ("Byte3: Error!\n"); + } + + errors += error; + + #ifdef DEBUG + tfp_printf(" Golden: 0x%08x; Actual: 0x%08x,\n", golden_word, actual_word); + #endif + + #ifdef VERBOSE + if(error) { + if(errors==1) tfp_printf(" golden <- actual @ address @ index\n"); + tfp_printf(" 0x%08x <- 0x%08x @ 0x%08x @ 0x%08x\n", golden_word, actual_word, (actual_z+i), i*4); + } + #endif + } + return errors; +} + +#endif diff --git a/astral/redmule/inc/golden.h b/astral/redmule/inc/golden.h new file mode 100644 index 0000000..f664e47 --- /dev/null +++ b/astral/redmule/inc/golden.h @@ -0,0 +1,387 @@ + /* Header file generated by RedMulE Golden Model */ +uint32_t golden [384] = { +0x48974845, +0x48384608, +0x487b4855, +0x48804869, +0x48b046d1, +0x483f48db, +0x485f48c9, +0x483a4881, +0x472c484b, +0x492b4762, +0x48fd4822, +0x492e488e, +0x484f483e, +0x46d749e8, +0x489d484b, +0x47e9490b, +0x47d2484f, +0x474744be, +0x46c047c7, +0x48af4727, +0x482d46c5, +0x482e483d, +0x479f4897, +0x4749488b, +0x46a8489a, +0x488b46f2, +0x47e84891, +0x483d4872, +0x46fd4716, +0x46a049b5, +0x47a446e7, +0x476748a1, +0x49354939, +0x48c14703, +0x48bd4863, +0x48cf4913, +0x48b848b6, +0x49204946, +0x48e1495e, +0x48b24938, +0x4882493a, +0x49d5483b, +0x49724911, +0x49df496b, +0x488848f2, +0x48214a46, +0x490c48c1, +0x48a349b2, +0x47b0463a, +0x476244cb, +0x46b94765, +0x4814466a, +0x47964631, +0x474b4666, +0x47044798, +0x47614838, +0x459047d3, +0x48a245ea, +0x484447f1, +0x4776484b, +0x46d847d6, +0x44d348f3, +0x478d46fa, +0x466e481e, +0x481e4827, +0x479445a2, +0x48064727, +0x48d5475d, +0x48284708, +0x480d4862, +0x48324895, +0x47f148bd, +0x46a7482a, +0x492d47b1, +0x4884484d, +0x485f48dc, +0x480c476d, +0x46d348e9, +0x48844728, +0x480e48a0, +0x48134862, +0x485a4675, +0x473847e8, +0x48234836, +0x482146e7, +0x47b34822, +0x48554846, +0x47174863, +0x47c14872, +0x488e46d5, +0x485f47e2, +0x48b8487c, +0x4788481e, +0x467748bd, +0x47f846c9, +0x47fc48fe, +0x47b247a0, +0x467e4588, +0x46c74662, +0x481246e8, +0x474e4536, +0x468f46c0, +0x4679481f, +0x46e246a1, +0x45604809, +0x47eb4630, +0x475746b5, +0x477f4848, +0x46d846a6, +0x459a4870, +0x46784670, +0x468c47d2, +0x48c44762, +0x479146e3, +0x486d46b1, +0x486747d0, +0x47f6468d, +0x475648a5, +0x48544857, +0x48384866, +0x46ec484d, +0x48f647d2, +0x4879484a, +0x483c4848, +0x4806471d, +0x473048fa, +0x47b84768, +0x46f94865, +0x491848a8, +0x486746ca, +0x48624800, +0x491048d3, +0x4849474e, +0x486b48eb, +0x48c54966, +0x483048f4, +0x477848f9, +0x499e481e, +0x48f148cf, +0x49234982, +0x47cf487c, +0x464949ea, +0x495e4773, +0x483f48b2, +0x497548a7, +0x481e4616, +0x4866481f, +0x486448b6, +0x487347dc, +0x487f485c, +0x491f4938, +0x48b6490d, +0x48a148f8, +0x492d4859, +0x4915489c, +0x48874899, +0x4859486c, +0x471e49ca, +0x49184867, +0x482748d3, +0x4998488b, +0x481d4704, +0x488048b8, +0x49444876, +0x48f2470c, +0x489b48b9, +0x48e54956, +0x48a548d6, +0x485648dc, +0x49ab484e, +0x490e48e0, +0x494548dd, +0x48dd488b, +0x47ea4a32, +0x49114835, +0x48194965, +0x481e460e, +0x4673452c, +0x4717475c, +0x46d046f6, +0x46bc4696, +0x481e4726, +0x46ea4763, +0x475846fe, +0x4627478b, +0x483f4704, +0x47b146ad, +0x48164792, +0x468446f2, +0x45a84827, +0x47a4472f, +0x462b4797, +0x48ab483f, +0x4863468f, +0x4766485a, +0x48cb481d, +0x490347dc, +0x483048fc, +0x483e48cc, +0x486448ab, +0x47634966, +0x499d4794, +0x488b488e, +0x496048dc, +0x484c4854, +0x474c499c, +0x48bc4826, +0x48834949, +0x4905489d, +0x481e4718, +0x48f448e3, +0x490448c1, +0x48b347e8, +0x48d44892, +0x489448ff, +0x488648d5, +0x480348fa, +0x492e47d2, +0x48b24870, +0x492b48e5, +0x4785487b, +0x471d49e3, +0x48bf4837, +0x48c4489b, +0x4871475c, +0x4811464a, +0x471c47af, +0x48174817, +0x484e463b, +0x464f477f, +0x487c4704, +0x472547a3, +0x462a4853, +0x4860465a, +0x48804736, +0x482b47e1, +0x46c04811, +0x475d48dc, +0x48064668, +0x46f44893, +0x49594858, +0x487b463d, +0x484e480f, +0x48a648c0, +0x48944847, +0x484a48a0, +0x48f4491e, +0x48b548fc, +0x47d248ce, +0x497f47db, +0x49394955, +0x48ce48a7, +0x48844890, +0x476349d6, +0x4922486e, +0x48c348f4, +0x491c47ec, +0x47834698, +0x47544715, +0x47524745, +0x4832472f, +0x48094817, +0x48c347f8, +0x480047e6, +0x473048b6, +0x48cb480a, +0x488e479e, +0x488e47c2, +0x47ee472f, +0x4744489d, +0x48514755, +0x47d34846, +0x48a04838, +0x47624634, +0x48064786, +0x482d47e3, +0x486c4726, +0x480347b7, +0x481448ac, +0x483948e0, +0x47504827, +0x48c546f2, +0x4886483f, +0x485648ad, +0x47a947e8, +0x47434937, +0x481f46d0, +0x4804484c, +0x481f47fd, +0x4813456d, +0x4807474d, +0x480e4688, +0x481046e8, +0x4799469f, +0x478f4853, +0x482447f2, +0x471f47d0, +0x485f46da, +0x481c4813, +0x4863482e, +0x480b4786, +0x46b848c9, +0x46e2475a, +0x46c54852, +0x480245af, +0x46c24466, +0x4743465d, +0x47ba46b7, +0x46c34636, +0x47844677, +0x47c2485a, +0x46ac46dc, +0x460e47de, +0x4834465f, +0x476947f4, +0x481046fc, +0x45ea45fd, +0x45b548d0, +0x47834704, +0x46c44830, +0x47c74759, +0x45b0453d, +0x47024741, +0x47934736, +0x47ba461b, +0x46dd470b, +0x470b4657, +0x4710470d, +0x468f486c, +0x46ba45c3, +0x483b479d, +0x477446c9, +0x46a746a9, +0x46064833, +0x46a94690, +0x46a746f5, +0x48bb47ac, +0x4803452c, +0x4824470f, +0x48cb47d5, +0x484a4707, +0x47974832, +0x482c4851, +0x4877487a, +0x465d4891, +0x48ce47f4, +0x48994898, +0x486a484e, +0x47f047ac, +0x4611493e, +0x489e47e2, +0x46af488c, +0x48364665, +0x46b645e4, +0x46b946a1, +0x46dd46c8, +0x474b4658, +0x4777467b, +0x47984769, +0x475e4785, +0x4656472a, +0x488145fb, +0x472d46fc, +0x47a3476e, +0x46ca465d, +0x45004855, +0x479a464f, +0x473846c3, +0x486c481e, +0x48014659, +0x477a4756, +0x487b47d5, +0x48084706, +0x4838484f, +0x48634870, +0x480648d3, +0x47714865, +0x494c46be, +0x484c4915, +0x48624900, +0x46e8481a, +0x46a04974, +0x483d4775, +0x480e487c, +}; \ No newline at end of file diff --git a/astral/redmule/inc/tensor_dim.h b/astral/redmule/inc/tensor_dim.h new file mode 100644 index 0000000..21bd0d8 --- /dev/null +++ b/astral/redmule/inc/tensor_dim.h @@ -0,0 +1,13 @@ + /* Header file generated by RedMulE Golden Model */ +#ifndef __TENSOR_DIM__ +#define __TENSOR_DIM__ + +#define M_SIZE 24 +#define N_SIZE 32 +#define K_SIZE 32 +#define SRC_FMT FP16 +#define DST_FMT FP16 +#define FPFORMAT 16 +uint8_t gemm_ops = GEMM; + +#endif diff --git a/astral/redmule/inc/w_2D.h b/astral/redmule/inc/w_2D.h new file mode 100644 index 0000000..9409c64 --- /dev/null +++ b/astral/redmule/inc/w_2D.h @@ -0,0 +1,35 @@ + /* Header file generated by RedMulE Golden Model */ +uint16_t w_inp_2D [32][32] = { +0x311a, 0x39e0, 0x387d, 0x3a4a, 0x386f, 0x3ada, 0x392f, 0x3854, 0x3014, 0x2fd2, 0x31c9, 0x2fca, 0x2e55, 0x3bc8, 0x396d, 0x3b1d, 0x39f6, 0x333a, 0x3908, 0x3628, 0x3bab, 0x3b8b, 0x3b4a, 0x322d, 0x3925, 0x317a, 0x3725, 0x31c2, 0x3066, 0x38f3, 0x3a17, 0x3476, +0x3bda, 0x3196, 0x3922, 0x3680, 0x396a, 0x3021, 0x3761, 0x374d, 0x2fc2, 0x3967, 0x3b94, 0x33b5, 0x3797, 0x34d6, 0x3655, 0x2176, 0x39bc, 0x3999, 0x3658, 0x3904, 0x3759, 0x2ade, 0x3a5a, 0x3b78, 0x36c7, 0x2d01, 0x3b58, 0x2d9a, 0x373d, 0x3952, 0x38e8, 0x3887, +0x37b6, 0x3a88, 0x2f8a, 0x2d79, 0x3413, 0x3421, 0x3976, 0x32b2, 0x3446, 0x2d99, 0x3a56, 0x3322, 0x3b49, 0x39fa, 0x3acd, 0x3af6, 0x304c, 0x3abb, 0x3a83, 0x38b2, 0x3ab9, 0x363e, 0x389f, 0x31bb, 0x38e1, 0x3bc4, 0x3b9b, 0x2984, 0x3a43, 0x3b2f, 0x35d6, 0x3bda, +0x2df3, 0x3bf8, 0x2acc, 0x378b, 0x3555, 0x2e59, 0x31d4, 0x34ec, 0x3a46, 0x3bab, 0x3214, 0x3161, 0x3470, 0x3a03, 0x368e, 0x31ad, 0x27cb, 0x2ecb, 0x3422, 0x39f7, 0x3644, 0x3a77, 0x313f, 0x34f2, 0x39b3, 0x3bf2, 0x379a, 0x3456, 0x35fe, 0x3ae7, 0x3964, 0x385f, +0x3b16, 0x3999, 0x3833, 0x2eda, 0x3afd, 0x3a4a, 0x3ba2, 0x2bd4, 0x3b38, 0x31a2, 0x32dd, 0x353c, 0x366f, 0x375e, 0x3821, 0x367a, 0x3b44, 0x39e6, 0x3787, 0x339e, 0x39d7, 0x38c6, 0x37d5, 0x342f, 0x3984, 0x319b, 0x33b5, 0x35ab, 0x398a, 0x374e, 0x36b6, 0x3b21, +0x3bbb, 0x2ab3, 0x2ad5, 0x33bc, 0x2bef, 0x3780, 0x3738, 0x3a0b, 0x3b09, 0x30ca, 0x384e, 0x3ab3, 0x39bd, 0x3453, 0x3a6d, 0x3957, 0x2c10, 0x30e9, 0x35d4, 0x3aef, 0x3be9, 0x39ad, 0x3a74, 0x3af9, 0x3739, 0x2d4d, 0x39fe, 0x3b72, 0x2c57, 0x398c, 0x381f, 0x3930, +0x3820, 0x321b, 0x3964, 0x2964, 0x33a0, 0x2d00, 0x2490, 0x336b, 0x3465, 0x3b2e, 0x3aa0, 0x371f, 0x300e, 0x3a09, 0x3bf1, 0x25cc, 0x3b6f, 0x3384, 0x3a88, 0x3acb, 0x3814, 0x36d0, 0x3081, 0x3a2c, 0x3353, 0x39cb, 0x31ed, 0x3af6, 0x3721, 0x36c7, 0x2ce2, 0x390d, +0x3698, 0x3ab2, 0x3b3e, 0x2eb4, 0x3998, 0x39e3, 0x3a77, 0x3632, 0x2c12, 0x3bd5, 0x3ba3, 0x3bba, 0x323c, 0x367b, 0x3557, 0x39c8, 0x37db, 0x3b45, 0x3b6e, 0x3931, 0x3121, 0x3a8d, 0x3a55, 0x3b9b, 0x358a, 0x3925, 0x3491, 0x3912, 0x3b6b, 0x3584, 0x32df, 0x3120, +0x32b2, 0x3b0a, 0x2cad, 0x3465, 0x3ad3, 0x3bcd, 0x363b, 0x3afe, 0x354b, 0x3374, 0x39af, 0x3b7f, 0x308c, 0x2e72, 0x3380, 0x3b70, 0x3902, 0x38d8, 0x39f3, 0x3a4b, 0x3853, 0x397b, 0x2ebe, 0x387f, 0x2845, 0x37e2, 0x360f, 0x370b, 0x3acb, 0x35d4, 0x36e6, 0x3262, +0x2e88, 0x3a54, 0x2ee3, 0x3575, 0x3afe, 0x2aee, 0x39a0, 0x3aae, 0x3693, 0x3432, 0x3834, 0x3b9b, 0x3bcb, 0x2e3a, 0x356d, 0x374e, 0x3924, 0x383c, 0x311e, 0x3ac5, 0x352d, 0x311e, 0x38ca, 0x34d4, 0x36ca, 0x34ed, 0x3a13, 0x33eb, 0x3639, 0x3828, 0x3b3c, 0x3939, +0x3837, 0x3521, 0x2cb5, 0x3629, 0x3924, 0x384c, 0x366a, 0x3bbf, 0x2e9e, 0x3ba8, 0x33ad, 0x38c8, 0x3934, 0x3907, 0x249a, 0x3690, 0x3a09, 0x3215, 0x3898, 0x325d, 0x37d5, 0x3195, 0x361c, 0x3ae4, 0x351f, 0x3452, 0x3bc0, 0x375c, 0x39bf, 0x317a, 0x3aae, 0x283a, +0x3476, 0x3b92, 0x3472, 0x383e, 0x280f, 0x39d6, 0x2fd1, 0x31f4, 0x2ffb, 0x3b97, 0x3692, 0x36c0, 0x3989, 0x33cf, 0x3ba6, 0x3239, 0x35d7, 0x33ab, 0x31eb, 0x3b47, 0x389b, 0x3b88, 0x3580, 0x354c, 0x3802, 0x3b9a, 0x3b94, 0x2a92, 0x2db1, 0x38bd, 0x2dfb, 0x3900, +0x344f, 0x3739, 0x27a5, 0x3b2e, 0x342b, 0x34bb, 0x30c8, 0x3ae8, 0x3b26, 0x3982, 0x38c0, 0x3408, 0x38c8, 0x36ef, 0x3bf0, 0x3acf, 0x3a3c, 0x3825, 0x31a5, 0x3ada, 0x3b5b, 0x37db, 0x3a01, 0x3663, 0x3a7d, 0x327b, 0x3a1f, 0x3862, 0x38af, 0x3204, 0x372e, 0x3b19, +0x3708, 0x3622, 0x2e62, 0x39ab, 0x2d4d, 0x31b4, 0x3552, 0x3bbc, 0x36f2, 0x36eb, 0x38ef, 0x3755, 0x3bbe, 0x2c17, 0x3815, 0x2f53, 0x363f, 0x38c1, 0x3246, 0x386b, 0x34de, 0x34e4, 0x3baa, 0x349e, 0x32ce, 0x3a68, 0x373f, 0x2cce, 0x3b36, 0x28ba, 0x3b50, 0x3232, +0x1f34, 0x3928, 0x35cd, 0x3b38, 0x30ce, 0x35a1, 0x3a06, 0x3a32, 0x3a53, 0x3489, 0x3241, 0x372f, 0x390c, 0x3a1b, 0x378a, 0x3713, 0x3769, 0x37a8, 0x3418, 0x3ad4, 0x3a4e, 0x3bf7, 0x37a5, 0x34dc, 0x39b2, 0x351b, 0x3372, 0x349f, 0x2f50, 0x3ab1, 0x3795, 0x2db7, +0x3864, 0x3157, 0x3900, 0x323e, 0x389e, 0x3880, 0x3b1f, 0x37a1, 0x396c, 0x2e43, 0x2c2a, 0x3b78, 0x3988, 0x3a14, 0x39c1, 0x3b51, 0x3780, 0x3bf2, 0x2d19, 0x3815, 0x3a5f, 0x3641, 0x2f62, 0x37d5, 0x3564, 0x139a, 0x3ab8, 0x28f7, 0x3785, 0x34e1, 0x3097, 0x3768, +0x3971, 0x3ae2, 0x32ae, 0x2fd5, 0x382a, 0x346c, 0x3133, 0x3167, 0x3940, 0x2d12, 0x389a, 0x3bd0, 0x3943, 0x391c, 0x3a75, 0x2a11, 0x391e, 0x372d, 0x3a79, 0x3b72, 0x3373, 0x39b7, 0x35d7, 0x372b, 0x3a6d, 0x38a1, 0x3279, 0x3434, 0x3694, 0x3b45, 0x3abb, 0x392d, +0x34a8, 0x3757, 0x32ca, 0x345d, 0x36a5, 0x3854, 0x2dcd, 0x30af, 0x38dd, 0x3067, 0x3411, 0x3997, 0x397a, 0x3a64, 0x38b8, 0x3962, 0x3509, 0x3bb6, 0x3a66, 0x339f, 0x372a, 0x31a8, 0x37da, 0x36ff, 0x33c6, 0x31da, 0x3977, 0x3b72, 0x3841, 0x3567, 0x3433, 0x33b8, +0x39fe, 0x3a10, 0x3bf2, 0x35e7, 0x3a4a, 0x3b3e, 0x2ec7, 0x3aa4, 0x3846, 0x3af9, 0x38a9, 0x2c1f, 0x39ab, 0x349f, 0x31d6, 0x39ae, 0x3b79, 0x352d, 0x3516, 0x347c, 0x2f33, 0x35ad, 0x31c4, 0x3b52, 0x354b, 0x3786, 0x3ab7, 0x3896, 0x34ac, 0x352f, 0x37e6, 0x326a, +0x2e44, 0x34c7, 0x388d, 0x3bf4, 0x363f, 0x3b3d, 0x33b1, 0x3b8b, 0x3340, 0x37f7, 0x3b07, 0x25bf, 0x398e, 0x3505, 0x3bd7, 0x366d, 0x388a, 0x2cc0, 0x359a, 0x3b9a, 0x3b99, 0x379d, 0x3b6b, 0x39b8, 0x3223, 0x2703, 0x3ba9, 0x2ecb, 0x3759, 0x39d8, 0x37ac, 0x32cf, +0x35f2, 0x38a3, 0x399e, 0x3bd2, 0x3780, 0x3af3, 0x3b5e, 0x337b, 0x3a08, 0x35da, 0x3446, 0x3b25, 0x3ad0, 0x3bee, 0x3141, 0x32d8, 0x34ce, 0x2ac9, 0x3800, 0x3a8a, 0x2d53, 0x368a, 0x3561, 0x3998, 0x35a3, 0x3677, 0x3ab2, 0x3269, 0x3236, 0x3b3e, 0x3aba, 0x3bac, +0x395d, 0x3820, 0x1df6, 0x3bb5, 0x35b5, 0x3675, 0x3b74, 0x360f, 0x34de, 0x3a0c, 0x3aeb, 0x299d, 0x3207, 0x3bd8, 0x2178, 0x3995, 0x3948, 0x3908, 0x3843, 0x2ea5, 0x3045, 0x3989, 0x345d, 0x39c5, 0x3a89, 0x3863, 0x3be0, 0x397a, 0x38f1, 0x39e2, 0x3b08, 0x352e, +0x385f, 0x28f2, 0x3bc3, 0x35e0, 0x380c, 0x3b9c, 0x3afc, 0x390a, 0x3689, 0x34fd, 0x2cf5, 0x308e, 0x342b, 0x3921, 0x3a67, 0x3ad6, 0x2986, 0x32fc, 0x35aa, 0x3507, 0x3608, 0x33fd, 0x3bf3, 0x39e2, 0x3b0f, 0x30b7, 0x3896, 0x3ae4, 0x2145, 0x35b6, 0x2e1d, 0x3ad1, +0x333d, 0x3afb, 0x2703, 0x3413, 0x1d7d, 0x3b7f, 0x3ae1, 0x303c, 0x3004, 0x39d3, 0x3554, 0x31a4, 0x354e, 0x3662, 0x39c5, 0x2eb7, 0x2c6e, 0x397f, 0x31d8, 0x1f0c, 0x38e3, 0x35f0, 0x2714, 0x28d1, 0x375e, 0x3a75, 0x3830, 0x3578, 0x397d, 0x3b18, 0x383c, 0x3498, +0x39ad, 0x3598, 0x23c4, 0x34ea, 0x3a61, 0x2b00, 0x3707, 0x3ae1, 0x37ae, 0x389d, 0x37fa, 0x3673, 0x3278, 0xf3e, 0x3809, 0x33c6, 0x3bf5, 0x3279, 0x3816, 0x360c, 0x39c8, 0x381f, 0x3741, 0x2d66, 0x38c0, 0x37d3, 0x377a, 0x3621, 0x2faf, 0x392e, 0x2de6, 0x33c5, +0x3803, 0x2600, 0x32e9, 0x39b4, 0x38d2, 0x34e8, 0x2fe6, 0x3199, 0x3643, 0x3a77, 0x27cc, 0x39d7, 0x34c6, 0x2ea8, 0x364e, 0x3b07, 0x31c7, 0x30a1, 0x31b1, 0x3b8f, 0x3571, 0x3b75, 0x3989, 0x3805, 0x39fb, 0x3945, 0x352b, 0x31d8, 0x3904, 0x3440, 0x3a57, 0x2cf7, +0x3b39, 0x2fcd, 0x2b89, 0x2edd, 0x3682, 0x36a9, 0x32c8, 0x37ac, 0x32a5, 0x3311, 0x394b, 0x3b84, 0x3aec, 0x3601, 0x2765, 0x3b69, 0x396b, 0x3727, 0x3bfe, 0x3907, 0x376f, 0x3674, 0x3973, 0x3671, 0x3491, 0x3993, 0x383f, 0x3335, 0x3989, 0x3550, 0x3077, 0x35f5, +0x3a59, 0x3950, 0x380c, 0x37cd, 0x30bf, 0x3607, 0x3afa, 0x3b5d, 0x32b9, 0x386b, 0x35bd, 0x3aca, 0x3ba5, 0x3b2d, 0x3b19, 0x3b8b, 0x345e, 0x2845, 0x34aa, 0x372a, 0x3448, 0x34f5, 0x3ae2, 0x3637, 0x2cb5, 0x354b, 0x3b15, 0x2ca8, 0x2641, 0x3178, 0x2cfe, 0x39b4, +0x3bdd, 0x3acb, 0x3a05, 0x38a2, 0x3b4a, 0x34e5, 0x395f, 0x394b, 0x34c4, 0x3aa5, 0x29bb, 0x2d96, 0x339d, 0x387c, 0x382e, 0x385a, 0x396b, 0x3aa9, 0x2f1e, 0x33a7, 0x3b90, 0x3b7b, 0x3b5f, 0x39d3, 0x3b18, 0x354f, 0x2cdb, 0x3a6f, 0x3434, 0x34ff, 0x3a5b, 0x3b84, +0x3a33, 0x384b, 0x2e67, 0x3b85, 0x3853, 0x380c, 0x346a, 0x3aaa, 0x3492, 0x33e8, 0x3bf2, 0x38ae, 0x3a29, 0x3830, 0x3221, 0x35b1, 0x3a48, 0x2c68, 0x2ced, 0x3a7e, 0x3539, 0x3922, 0x374c, 0x3aaa, 0x2dae, 0x395d, 0x3b3d, 0x3890, 0x2cfe, 0x2dd6, 0x3bad, 0x33c5, +0x2c07, 0x3a2c, 0x37a8, 0x390f, 0x2fc8, 0x35ae, 0x388c, 0x30ee, 0x3674, 0x391d, 0x3bfc, 0x36bf, 0x322d, 0x3a78, 0x35c0, 0x3492, 0x3ac8, 0x3504, 0x3315, 0x381d, 0x3a7a, 0x3a08, 0x343c, 0x3bda, 0x341b, 0x39f0, 0x3b9e, 0x395d, 0x3c00, 0x38ab, 0x3bcf, 0x3564, +0x33c4, 0x3b0d, 0x3623, 0x33b9, 0x3b92, 0x1e71, 0x2c57, 0x36d0, 0x314b, 0x3a16, 0x3372, 0x341b, 0x3aaa, 0x3444, 0x396b, 0x2dd7, 0x3b30, 0x3559, 0x3b5b, 0x3a29, 0x2d19, 0x38b7, 0x3b01, 0x3afa, 0x398a, 0x3839, 0x3ac9, 0x2e31, 0x3924, 0x39f2, 0x3a7f, 0x3285 +}; \ No newline at end of file diff --git a/astral/redmule/inc/w_input.h b/astral/redmule/inc/w_input.h new file mode 100644 index 0000000..dc4d3be --- /dev/null +++ b/astral/redmule/inc/w_input.h @@ -0,0 +1,35 @@ + /* Header file generated by RedMulE Golden Model */ +uint16_t w_inp [1024] = { +0x311a, 0x39e0, 0x387d, 0x3a4a, 0x386f, 0x3ada, 0x392f, 0x3854, 0x3014, 0x2fd2, 0x31c9, 0x2fca, 0x2e55, 0x3bc8, 0x396d, 0x3b1d, 0x39f6, 0x333a, 0x3908, 0x3628, 0x3bab, 0x3b8b, 0x3b4a, 0x322d, 0x3925, 0x317a, 0x3725, 0x31c2, 0x3066, 0x38f3, 0x3a17, 0x3476, +0x3bda, 0x3196, 0x3922, 0x3680, 0x396a, 0x3021, 0x3761, 0x374d, 0x2fc2, 0x3967, 0x3b94, 0x33b5, 0x3797, 0x34d6, 0x3655, 0x2176, 0x39bc, 0x3999, 0x3658, 0x3904, 0x3759, 0x2ade, 0x3a5a, 0x3b78, 0x36c7, 0x2d01, 0x3b58, 0x2d9a, 0x373d, 0x3952, 0x38e8, 0x3887, +0x37b6, 0x3a88, 0x2f8a, 0x2d79, 0x3413, 0x3421, 0x3976, 0x32b2, 0x3446, 0x2d99, 0x3a56, 0x3322, 0x3b49, 0x39fa, 0x3acd, 0x3af6, 0x304c, 0x3abb, 0x3a83, 0x38b2, 0x3ab9, 0x363e, 0x389f, 0x31bb, 0x38e1, 0x3bc4, 0x3b9b, 0x2984, 0x3a43, 0x3b2f, 0x35d6, 0x3bda, +0x2df3, 0x3bf8, 0x2acc, 0x378b, 0x3555, 0x2e59, 0x31d4, 0x34ec, 0x3a46, 0x3bab, 0x3214, 0x3161, 0x3470, 0x3a03, 0x368e, 0x31ad, 0x27cb, 0x2ecb, 0x3422, 0x39f7, 0x3644, 0x3a77, 0x313f, 0x34f2, 0x39b3, 0x3bf2, 0x379a, 0x3456, 0x35fe, 0x3ae7, 0x3964, 0x385f, +0x3b16, 0x3999, 0x3833, 0x2eda, 0x3afd, 0x3a4a, 0x3ba2, 0x2bd4, 0x3b38, 0x31a2, 0x32dd, 0x353c, 0x366f, 0x375e, 0x3821, 0x367a, 0x3b44, 0x39e6, 0x3787, 0x339e, 0x39d7, 0x38c6, 0x37d5, 0x342f, 0x3984, 0x319b, 0x33b5, 0x35ab, 0x398a, 0x374e, 0x36b6, 0x3b21, +0x3bbb, 0x2ab3, 0x2ad5, 0x33bc, 0x2bef, 0x3780, 0x3738, 0x3a0b, 0x3b09, 0x30ca, 0x384e, 0x3ab3, 0x39bd, 0x3453, 0x3a6d, 0x3957, 0x2c10, 0x30e9, 0x35d4, 0x3aef, 0x3be9, 0x39ad, 0x3a74, 0x3af9, 0x3739, 0x2d4d, 0x39fe, 0x3b72, 0x2c57, 0x398c, 0x381f, 0x3930, +0x3820, 0x321b, 0x3964, 0x2964, 0x33a0, 0x2d00, 0x2490, 0x336b, 0x3465, 0x3b2e, 0x3aa0, 0x371f, 0x300e, 0x3a09, 0x3bf1, 0x25cc, 0x3b6f, 0x3384, 0x3a88, 0x3acb, 0x3814, 0x36d0, 0x3081, 0x3a2c, 0x3353, 0x39cb, 0x31ed, 0x3af6, 0x3721, 0x36c7, 0x2ce2, 0x390d, +0x3698, 0x3ab2, 0x3b3e, 0x2eb4, 0x3998, 0x39e3, 0x3a77, 0x3632, 0x2c12, 0x3bd5, 0x3ba3, 0x3bba, 0x323c, 0x367b, 0x3557, 0x39c8, 0x37db, 0x3b45, 0x3b6e, 0x3931, 0x3121, 0x3a8d, 0x3a55, 0x3b9b, 0x358a, 0x3925, 0x3491, 0x3912, 0x3b6b, 0x3584, 0x32df, 0x3120, +0x32b2, 0x3b0a, 0x2cad, 0x3465, 0x3ad3, 0x3bcd, 0x363b, 0x3afe, 0x354b, 0x3374, 0x39af, 0x3b7f, 0x308c, 0x2e72, 0x3380, 0x3b70, 0x3902, 0x38d8, 0x39f3, 0x3a4b, 0x3853, 0x397b, 0x2ebe, 0x387f, 0x2845, 0x37e2, 0x360f, 0x370b, 0x3acb, 0x35d4, 0x36e6, 0x3262, +0x2e88, 0x3a54, 0x2ee3, 0x3575, 0x3afe, 0x2aee, 0x39a0, 0x3aae, 0x3693, 0x3432, 0x3834, 0x3b9b, 0x3bcb, 0x2e3a, 0x356d, 0x374e, 0x3924, 0x383c, 0x311e, 0x3ac5, 0x352d, 0x311e, 0x38ca, 0x34d4, 0x36ca, 0x34ed, 0x3a13, 0x33eb, 0x3639, 0x3828, 0x3b3c, 0x3939, +0x3837, 0x3521, 0x2cb5, 0x3629, 0x3924, 0x384c, 0x366a, 0x3bbf, 0x2e9e, 0x3ba8, 0x33ad, 0x38c8, 0x3934, 0x3907, 0x249a, 0x3690, 0x3a09, 0x3215, 0x3898, 0x325d, 0x37d5, 0x3195, 0x361c, 0x3ae4, 0x351f, 0x3452, 0x3bc0, 0x375c, 0x39bf, 0x317a, 0x3aae, 0x283a, +0x3476, 0x3b92, 0x3472, 0x383e, 0x280f, 0x39d6, 0x2fd1, 0x31f4, 0x2ffb, 0x3b97, 0x3692, 0x36c0, 0x3989, 0x33cf, 0x3ba6, 0x3239, 0x35d7, 0x33ab, 0x31eb, 0x3b47, 0x389b, 0x3b88, 0x3580, 0x354c, 0x3802, 0x3b9a, 0x3b94, 0x2a92, 0x2db1, 0x38bd, 0x2dfb, 0x3900, +0x344f, 0x3739, 0x27a5, 0x3b2e, 0x342b, 0x34bb, 0x30c8, 0x3ae8, 0x3b26, 0x3982, 0x38c0, 0x3408, 0x38c8, 0x36ef, 0x3bf0, 0x3acf, 0x3a3c, 0x3825, 0x31a5, 0x3ada, 0x3b5b, 0x37db, 0x3a01, 0x3663, 0x3a7d, 0x327b, 0x3a1f, 0x3862, 0x38af, 0x3204, 0x372e, 0x3b19, +0x3708, 0x3622, 0x2e62, 0x39ab, 0x2d4d, 0x31b4, 0x3552, 0x3bbc, 0x36f2, 0x36eb, 0x38ef, 0x3755, 0x3bbe, 0x2c17, 0x3815, 0x2f53, 0x363f, 0x38c1, 0x3246, 0x386b, 0x34de, 0x34e4, 0x3baa, 0x349e, 0x32ce, 0x3a68, 0x373f, 0x2cce, 0x3b36, 0x28ba, 0x3b50, 0x3232, +0x1f34, 0x3928, 0x35cd, 0x3b38, 0x30ce, 0x35a1, 0x3a06, 0x3a32, 0x3a53, 0x3489, 0x3241, 0x372f, 0x390c, 0x3a1b, 0x378a, 0x3713, 0x3769, 0x37a8, 0x3418, 0x3ad4, 0x3a4e, 0x3bf7, 0x37a5, 0x34dc, 0x39b2, 0x351b, 0x3372, 0x349f, 0x2f50, 0x3ab1, 0x3795, 0x2db7, +0x3864, 0x3157, 0x3900, 0x323e, 0x389e, 0x3880, 0x3b1f, 0x37a1, 0x396c, 0x2e43, 0x2c2a, 0x3b78, 0x3988, 0x3a14, 0x39c1, 0x3b51, 0x3780, 0x3bf2, 0x2d19, 0x3815, 0x3a5f, 0x3641, 0x2f62, 0x37d5, 0x3564, 0x139a, 0x3ab8, 0x28f7, 0x3785, 0x34e1, 0x3097, 0x3768, +0x3971, 0x3ae2, 0x32ae, 0x2fd5, 0x382a, 0x346c, 0x3133, 0x3167, 0x3940, 0x2d12, 0x389a, 0x3bd0, 0x3943, 0x391c, 0x3a75, 0x2a11, 0x391e, 0x372d, 0x3a79, 0x3b72, 0x3373, 0x39b7, 0x35d7, 0x372b, 0x3a6d, 0x38a1, 0x3279, 0x3434, 0x3694, 0x3b45, 0x3abb, 0x392d, +0x34a8, 0x3757, 0x32ca, 0x345d, 0x36a5, 0x3854, 0x2dcd, 0x30af, 0x38dd, 0x3067, 0x3411, 0x3997, 0x397a, 0x3a64, 0x38b8, 0x3962, 0x3509, 0x3bb6, 0x3a66, 0x339f, 0x372a, 0x31a8, 0x37da, 0x36ff, 0x33c6, 0x31da, 0x3977, 0x3b72, 0x3841, 0x3567, 0x3433, 0x33b8, +0x39fe, 0x3a10, 0x3bf2, 0x35e7, 0x3a4a, 0x3b3e, 0x2ec7, 0x3aa4, 0x3846, 0x3af9, 0x38a9, 0x2c1f, 0x39ab, 0x349f, 0x31d6, 0x39ae, 0x3b79, 0x352d, 0x3516, 0x347c, 0x2f33, 0x35ad, 0x31c4, 0x3b52, 0x354b, 0x3786, 0x3ab7, 0x3896, 0x34ac, 0x352f, 0x37e6, 0x326a, +0x2e44, 0x34c7, 0x388d, 0x3bf4, 0x363f, 0x3b3d, 0x33b1, 0x3b8b, 0x3340, 0x37f7, 0x3b07, 0x25bf, 0x398e, 0x3505, 0x3bd7, 0x366d, 0x388a, 0x2cc0, 0x359a, 0x3b9a, 0x3b99, 0x379d, 0x3b6b, 0x39b8, 0x3223, 0x2703, 0x3ba9, 0x2ecb, 0x3759, 0x39d8, 0x37ac, 0x32cf, +0x35f2, 0x38a3, 0x399e, 0x3bd2, 0x3780, 0x3af3, 0x3b5e, 0x337b, 0x3a08, 0x35da, 0x3446, 0x3b25, 0x3ad0, 0x3bee, 0x3141, 0x32d8, 0x34ce, 0x2ac9, 0x3800, 0x3a8a, 0x2d53, 0x368a, 0x3561, 0x3998, 0x35a3, 0x3677, 0x3ab2, 0x3269, 0x3236, 0x3b3e, 0x3aba, 0x3bac, +0x395d, 0x3820, 0x1df6, 0x3bb5, 0x35b5, 0x3675, 0x3b74, 0x360f, 0x34de, 0x3a0c, 0x3aeb, 0x299d, 0x3207, 0x3bd8, 0x2178, 0x3995, 0x3948, 0x3908, 0x3843, 0x2ea5, 0x3045, 0x3989, 0x345d, 0x39c5, 0x3a89, 0x3863, 0x3be0, 0x397a, 0x38f1, 0x39e2, 0x3b08, 0x352e, +0x385f, 0x28f2, 0x3bc3, 0x35e0, 0x380c, 0x3b9c, 0x3afc, 0x390a, 0x3689, 0x34fd, 0x2cf5, 0x308e, 0x342b, 0x3921, 0x3a67, 0x3ad6, 0x2986, 0x32fc, 0x35aa, 0x3507, 0x3608, 0x33fd, 0x3bf3, 0x39e2, 0x3b0f, 0x30b7, 0x3896, 0x3ae4, 0x2145, 0x35b6, 0x2e1d, 0x3ad1, +0x333d, 0x3afb, 0x2703, 0x3413, 0x1d7d, 0x3b7f, 0x3ae1, 0x303c, 0x3004, 0x39d3, 0x3554, 0x31a4, 0x354e, 0x3662, 0x39c5, 0x2eb7, 0x2c6e, 0x397f, 0x31d8, 0x1f0c, 0x38e3, 0x35f0, 0x2714, 0x28d1, 0x375e, 0x3a75, 0x3830, 0x3578, 0x397d, 0x3b18, 0x383c, 0x3498, +0x39ad, 0x3598, 0x23c4, 0x34ea, 0x3a61, 0x2b00, 0x3707, 0x3ae1, 0x37ae, 0x389d, 0x37fa, 0x3673, 0x3278, 0xf3e, 0x3809, 0x33c6, 0x3bf5, 0x3279, 0x3816, 0x360c, 0x39c8, 0x381f, 0x3741, 0x2d66, 0x38c0, 0x37d3, 0x377a, 0x3621, 0x2faf, 0x392e, 0x2de6, 0x33c5, +0x3803, 0x2600, 0x32e9, 0x39b4, 0x38d2, 0x34e8, 0x2fe6, 0x3199, 0x3643, 0x3a77, 0x27cc, 0x39d7, 0x34c6, 0x2ea8, 0x364e, 0x3b07, 0x31c7, 0x30a1, 0x31b1, 0x3b8f, 0x3571, 0x3b75, 0x3989, 0x3805, 0x39fb, 0x3945, 0x352b, 0x31d8, 0x3904, 0x3440, 0x3a57, 0x2cf7, +0x3b39, 0x2fcd, 0x2b89, 0x2edd, 0x3682, 0x36a9, 0x32c8, 0x37ac, 0x32a5, 0x3311, 0x394b, 0x3b84, 0x3aec, 0x3601, 0x2765, 0x3b69, 0x396b, 0x3727, 0x3bfe, 0x3907, 0x376f, 0x3674, 0x3973, 0x3671, 0x3491, 0x3993, 0x383f, 0x3335, 0x3989, 0x3550, 0x3077, 0x35f5, +0x3a59, 0x3950, 0x380c, 0x37cd, 0x30bf, 0x3607, 0x3afa, 0x3b5d, 0x32b9, 0x386b, 0x35bd, 0x3aca, 0x3ba5, 0x3b2d, 0x3b19, 0x3b8b, 0x345e, 0x2845, 0x34aa, 0x372a, 0x3448, 0x34f5, 0x3ae2, 0x3637, 0x2cb5, 0x354b, 0x3b15, 0x2ca8, 0x2641, 0x3178, 0x2cfe, 0x39b4, +0x3bdd, 0x3acb, 0x3a05, 0x38a2, 0x3b4a, 0x34e5, 0x395f, 0x394b, 0x34c4, 0x3aa5, 0x29bb, 0x2d96, 0x339d, 0x387c, 0x382e, 0x385a, 0x396b, 0x3aa9, 0x2f1e, 0x33a7, 0x3b90, 0x3b7b, 0x3b5f, 0x39d3, 0x3b18, 0x354f, 0x2cdb, 0x3a6f, 0x3434, 0x34ff, 0x3a5b, 0x3b84, +0x3a33, 0x384b, 0x2e67, 0x3b85, 0x3853, 0x380c, 0x346a, 0x3aaa, 0x3492, 0x33e8, 0x3bf2, 0x38ae, 0x3a29, 0x3830, 0x3221, 0x35b1, 0x3a48, 0x2c68, 0x2ced, 0x3a7e, 0x3539, 0x3922, 0x374c, 0x3aaa, 0x2dae, 0x395d, 0x3b3d, 0x3890, 0x2cfe, 0x2dd6, 0x3bad, 0x33c5, +0x2c07, 0x3a2c, 0x37a8, 0x390f, 0x2fc8, 0x35ae, 0x388c, 0x30ee, 0x3674, 0x391d, 0x3bfc, 0x36bf, 0x322d, 0x3a78, 0x35c0, 0x3492, 0x3ac8, 0x3504, 0x3315, 0x381d, 0x3a7a, 0x3a08, 0x343c, 0x3bda, 0x341b, 0x39f0, 0x3b9e, 0x395d, 0x3c00, 0x38ab, 0x3bcf, 0x3564, +0x33c4, 0x3b0d, 0x3623, 0x33b9, 0x3b92, 0x1e71, 0x2c57, 0x36d0, 0x314b, 0x3a16, 0x3372, 0x341b, 0x3aaa, 0x3444, 0x396b, 0x2dd7, 0x3b30, 0x3559, 0x3b5b, 0x3a29, 0x2d19, 0x38b7, 0x3b01, 0x3afa, 0x398a, 0x3839, 0x3ac9, 0x2e31, 0x3924, 0x39f2, 0x3a7f, 0x3285 +}; \ No newline at end of file diff --git a/astral/redmule/inc/x_2D.h b/astral/redmule/inc/x_2D.h new file mode 100644 index 0000000..0b589f8 --- /dev/null +++ b/astral/redmule/inc/x_2D.h @@ -0,0 +1,27 @@ + /* Header file generated by RedMulE Golden Model */ +uint16_t x_inp_2D [24][32] = { +0x2153, 0x3bb5, 0x3896, 0x365f, 0x2483, 0x3518, 0x2dd1, 0x3bca, 0x397b, 0x29b1, 0x3705, 0x36c8, 0x398b, 0x3661, 0x2f05, 0x365a, 0x3bf9, 0x34df, 0x363b, 0x38d9, 0x39c6, 0x3abb, 0x3952, 0x38f2, 0x392d, 0x3b3e, 0x2afb, 0x3a9d, 0x353b, 0x3b73, 0x3a01, 0x3679, +0x3934, 0x397d, 0x2904, 0x3822, 0x3462, 0x3b44, 0x39e9, 0x28be, 0x331e, 0x3a1d, 0x39e5, 0x34da, 0x3a19, 0x3906, 0x1d35, 0x3871, 0x31e7, 0x3b29, 0x325d, 0x3797, 0x2b2f, 0x38b4, 0x232f, 0x38aa, 0x3aca, 0x316f, 0x3811, 0x3950, 0x32ea, 0x3bc7, 0x382c, 0x38a2, +0x29ce, 0x3afa, 0x3a39, 0x2ccc, 0x39fd, 0x3b3d, 0x384a, 0x3a35, 0x3802, 0x366a, 0x37ec, 0x3598, 0x3bf8, 0x3a85, 0x3a1b, 0x386e, 0x3b4c, 0x39de, 0x38c2, 0x2f93, 0x3b4c, 0x39c4, 0x3b9e, 0x3844, 0x346d, 0x3bff, 0x32ce, 0x296d, 0x3130, 0x3b3d, 0x3b44, 0x369d, +0x3b13, 0x31ed, 0x330a, 0x3831, 0x34e7, 0x37b3, 0x331a, 0x3918, 0x32d3, 0x3995, 0x3991, 0x3919, 0x3a26, 0x385b, 0x2b76, 0x3a3b, 0x37f2, 0x26a7, 0x3225, 0x3b64, 0x28f0, 0x3456, 0x3822, 0x341e, 0x381a, 0x38d8, 0x2c11, 0x33be, 0x33ac, 0x353f, 0x3476, 0x3abc, +0x36ec, 0x3a1d, 0x39d3, 0x3821, 0x36ac, 0x3bce, 0x3ad2, 0x3616, 0x36a1, 0x2cb3, 0x38d2, 0x314f, 0x385c, 0x3b63, 0x3bb6, 0x2951, 0x372d, 0x2c42, 0x3823, 0x3883, 0x3872, 0x31ee, 0x36c5, 0x399a, 0x31b0, 0x3887, 0x3884, 0x3865, 0x3896, 0x36c3, 0x32e3, 0x346c, +0x3935, 0x3b50, 0x2b6d, 0x38cd, 0x388f, 0x3389, 0x395d, 0x31cd, 0x2efd, 0x3154, 0x2f35, 0x3444, 0x3293, 0x3b6b, 0x1bec, 0x3b69, 0x3bf3, 0x3611, 0x3508, 0x3742, 0x3a50, 0x3ab7, 0x3457, 0x38d3, 0x3344, 0x38e8, 0x33c0, 0x3668, 0x3bee, 0x3b21, 0x3727, 0x3121, +0x316c, 0x3288, 0x2d50, 0x2e74, 0x35d5, 0x37e2, 0x303d, 0x36af, 0x341f, 0x3436, 0x2df7, 0x399d, 0x30f4, 0x3aaf, 0x34e4, 0x2c2a, 0x3116, 0x34d3, 0x36ac, 0x35e3, 0x3760, 0x36e1, 0x3ad2, 0x3547, 0x38f4, 0x369c, 0x3ba9, 0x34f0, 0x3a39, 0x3b19, 0x36e6, 0x395d, +0x3be8, 0x3293, 0x3bfc, 0x3435, 0x2eb3, 0x3360, 0x3919, 0x3bed, 0x396a, 0x37fc, 0x3242, 0x384b, 0x38cb, 0x3b2c, 0x3b28, 0x28cf, 0x3828, 0x3855, 0x3ba9, 0x2fa7, 0x340b, 0x32f1, 0x3ada, 0x36fa, 0x31f5, 0x3436, 0x29d0, 0x33e6, 0x3232, 0x3bec, 0x3904, 0x2797, +0x3b81, 0x3bac, 0x38d2, 0x343d, 0x31af, 0x3b1e, 0x33fc, 0x3864, 0x3624, 0x3905, 0x2945, 0x3b52, 0x2d08, 0x3a17, 0x3b84, 0x3804, 0x3a24, 0x38a3, 0x3562, 0x3ae6, 0x3bba, 0x3a45, 0x3679, 0x31fa, 0x3994, 0x2c3d, 0x383f, 0x399d, 0x34f7, 0x360e, 0x35f3, 0x38f0, +0x38d4, 0x399a, 0x3a48, 0x3987, 0x3b54, 0x382c, 0x3210, 0x35ef, 0x36ca, 0x31b4, 0x3625, 0x371f, 0x37bd, 0x3680, 0x3a3a, 0x3ac0, 0x3bbf, 0x3bf5, 0x39f2, 0x29c2, 0x363e, 0x3a4e, 0x3596, 0x3b1b, 0x3459, 0x3669, 0x3aa1, 0x39c3, 0x3376, 0x390d, 0x2456, 0x39b5, +0x3a66, 0x3ad8, 0x3b51, 0x36aa, 0x32be, 0x3ac8, 0x392b, 0x3740, 0x3a48, 0x38f5, 0x3b2d, 0x3a5f, 0x2ff3, 0x366f, 0x39d3, 0x35e5, 0x3822, 0x38db, 0x3b8a, 0x34be, 0x2d33, 0x36dd, 0x3578, 0x3bdf, 0x2c7e, 0x39cf, 0x32ff, 0x35c9, 0x3970, 0x3bcb, 0x351e, 0x3956, +0x2c42, 0x3308, 0x377a, 0x361c, 0x39a0, 0x36c9, 0x2dcb, 0x3bf2, 0x3b5f, 0x33ee, 0x24c1, 0x2ce9, 0x3927, 0x305d, 0x3702, 0x3119, 0x35f9, 0x3855, 0x3374, 0x349b, 0x3bcf, 0x2dea, 0x34f0, 0x363f, 0x37da, 0x3a74, 0x35fc, 0x35fa, 0x316b, 0x3804, 0x37a7, 0x3986, +0x3073, 0x3aed, 0x31c7, 0x3844, 0x34a4, 0x387d, 0x3a20, 0x3037, 0x3a00, 0x3b70, 0x377f, 0x3686, 0x3b7e, 0x38b3, 0x32e3, 0x3323, 0x391e, 0x3228, 0x3930, 0x3997, 0x3a5e, 0x398b, 0x3512, 0x35b0, 0x365c, 0x325d, 0x3b61, 0x38b8, 0x39a4, 0x3423, 0x3bd7, 0x38af, +0x2d3d, 0x382d, 0x38ac, 0x26ca, 0x395e, 0x21a8, 0x3520, 0x386f, 0x3b95, 0x32c0, 0x3b84, 0x3a51, 0x3b4b, 0x31d2, 0x3747, 0x3b96, 0x3b40, 0x3535, 0x38d1, 0x3899, 0x3b00, 0x3827, 0x3ae3, 0x38c8, 0x3a07, 0x338d, 0x2e96, 0x3a46, 0x394a, 0x39de, 0x2951, 0x3a02, +0x3838, 0x2d45, 0x28c0, 0x3958, 0x3070, 0x2aa2, 0x3510, 0x38ce, 0x271c, 0x3440, 0x3954, 0x30bc, 0x3b35, 0x2f1d, 0x3afb, 0x2dae, 0x356f, 0x2e13, 0x3981, 0x326d, 0x3a28, 0x3a36, 0x3a95, 0x38cb, 0x38db, 0x3150, 0x2c9e, 0x34c5, 0x3adb, 0x3bdf, 0x38f2, 0x3994, +0x36f8, 0x31c0, 0x3a4f, 0x3825, 0x394b, 0x3a8b, 0x38ac, 0x3167, 0x2e2d, 0x3a93, 0x34f3, 0x37bd, 0x3b63, 0x2f2f, 0x3ae0, 0x3ad8, 0x34a8, 0x2e1c, 0x3890, 0x3705, 0x3b69, 0x3bc1, 0x28af, 0x3b36, 0x348b, 0x3111, 0x3a8d, 0x389c, 0x3916, 0x36dc, 0x3bae, 0x3874, +0x3593, 0x3638, 0x3018, 0x3a56, 0x38a3, 0x2ad4, 0x3a25, 0x38d7, 0x3864, 0x31c1, 0x28d1, 0x39c8, 0x37d6, 0x2c7f, 0x3ba5, 0x34b8, 0x3bef, 0x3b83, 0x3ab5, 0x3062, 0x38bc, 0x399c, 0x2ce4, 0x2f2c, 0x39bf, 0x2ed1, 0x385f, 0x37e0, 0x35ee, 0x397d, 0x3b0c, 0x3049, +0x39d5, 0x322e, 0x3936, 0x3747, 0x2e15, 0x3b41, 0x3874, 0x3bd0, 0x2c04, 0x3800, 0x375b, 0x3b2d, 0x38d8, 0x3a51, 0x3406, 0x38da, 0x38ba, 0x3497, 0x382e, 0x35fc, 0x39d4, 0x3775, 0x3b1e, 0x3813, 0x3649, 0x31af, 0x37bb, 0x334a, 0x3a6e, 0x3284, 0x26e0, 0x2e01, +0x2ebb, 0x344b, 0x3821, 0x381a, 0x385a, 0x2534, 0x3635, 0x2a92, 0x3b8c, 0x31f0, 0x3947, 0x3ac7, 0x3743, 0x3924, 0x39e4, 0x358f, 0x2b62, 0x392c, 0x3955, 0x3341, 0x3676, 0x38ac, 0x3957, 0x335b, 0x2ca2, 0x39ff, 0x37cb, 0x341f, 0x3ac9, 0x3b6c, 0x2f14, 0x34c3, +0x3018, 0x3169, 0x355b, 0x3624, 0x31ed, 0x379e, 0x3268, 0x309b, 0x35db, 0x3872, 0x3bdb, 0x34c7, 0x3408, 0x3359, 0x3920, 0x331f, 0x3866, 0x3af0, 0x2a1a, 0x39e0, 0x3b14, 0x34fa, 0x2d18, 0x3963, 0x35e8, 0x2539, 0x38f5, 0x37b3, 0x378f, 0x31b5, 0x3a6c, 0x3685, +0x3a06, 0x318a, 0x2934, 0x33c1, 0x3be8, 0x375b, 0x3860, 0x3543, 0x3702, 0x3951, 0x3677, 0x37ff, 0x2e27, 0x2e3a, 0x340f, 0x3817, 0x2f04, 0x357e, 0x3a1d, 0x2dd6, 0x252a, 0x3945, 0x162a, 0x3b19, 0x3a53, 0x35d2, 0x3a5d, 0x3474, 0x38e9, 0x374b, 0x387c, 0x1f1a, +0x38ac, 0x3291, 0x3393, 0x3b53, 0x3169, 0x3bca, 0x2f1a, 0x3551, 0x38a3, 0x28e3, 0x369d, 0x34a1, 0x38a8, 0x34c3, 0x3841, 0x390d, 0x3b13, 0x3282, 0x3a29, 0x3a78, 0x2df3, 0x3a37, 0x35f4, 0x35a6, 0x38e8, 0x3328, 0x3beb, 0x390b, 0x32dc, 0x34dc, 0x396d, 0x3a78, +0x39ba, 0x3a06, 0x2cdd, 0x3bc3, 0x2d43, 0x2992, 0x3663, 0x3a68, 0x2c3e, 0x394e, 0x2c9f, 0x380e, 0x37f5, 0x3557, 0x2873, 0x390f, 0x39e7, 0x3939, 0x3669, 0x385c, 0x3a68, 0x32c4, 0x2b04, 0x2d6d, 0x39d3, 0x3895, 0x331d, 0x3b59, 0x3463, 0x2b6a, 0x31de, 0x3296, +0x3aae, 0x3bcd, 0x345a, 0x3897, 0x374b, 0x3bd4, 0x38a2, 0x357f, 0x3402, 0x3a0c, 0x3507, 0x3865, 0x3a54, 0x3878, 0x3859, 0x383e, 0x32b5, 0x34ea, 0x328d, 0x38b6, 0x3464, 0x2f5b, 0x35ff, 0x3817, 0x2f24, 0x3533, 0x3b21, 0x37ba, 0x3837, 0x2e34, 0x3bad, 0x34bc +}; \ No newline at end of file diff --git a/astral/redmule/inc/x_input.h b/astral/redmule/inc/x_input.h new file mode 100644 index 0000000..1e38d23 --- /dev/null +++ b/astral/redmule/inc/x_input.h @@ -0,0 +1,27 @@ + /* Header file generated by RedMulE Golden Model */ +uint16_t x_inp [768] = { +0x2153, 0x3bb5, 0x3896, 0x365f, 0x2483, 0x3518, 0x2dd1, 0x3bca, 0x397b, 0x29b1, 0x3705, 0x36c8, 0x398b, 0x3661, 0x2f05, 0x365a, 0x3bf9, 0x34df, 0x363b, 0x38d9, 0x39c6, 0x3abb, 0x3952, 0x38f2, 0x392d, 0x3b3e, 0x2afb, 0x3a9d, 0x353b, 0x3b73, 0x3a01, 0x3679, +0x3934, 0x397d, 0x2904, 0x3822, 0x3462, 0x3b44, 0x39e9, 0x28be, 0x331e, 0x3a1d, 0x39e5, 0x34da, 0x3a19, 0x3906, 0x1d35, 0x3871, 0x31e7, 0x3b29, 0x325d, 0x3797, 0x2b2f, 0x38b4, 0x232f, 0x38aa, 0x3aca, 0x316f, 0x3811, 0x3950, 0x32ea, 0x3bc7, 0x382c, 0x38a2, +0x29ce, 0x3afa, 0x3a39, 0x2ccc, 0x39fd, 0x3b3d, 0x384a, 0x3a35, 0x3802, 0x366a, 0x37ec, 0x3598, 0x3bf8, 0x3a85, 0x3a1b, 0x386e, 0x3b4c, 0x39de, 0x38c2, 0x2f93, 0x3b4c, 0x39c4, 0x3b9e, 0x3844, 0x346d, 0x3bff, 0x32ce, 0x296d, 0x3130, 0x3b3d, 0x3b44, 0x369d, +0x3b13, 0x31ed, 0x330a, 0x3831, 0x34e7, 0x37b3, 0x331a, 0x3918, 0x32d3, 0x3995, 0x3991, 0x3919, 0x3a26, 0x385b, 0x2b76, 0x3a3b, 0x37f2, 0x26a7, 0x3225, 0x3b64, 0x28f0, 0x3456, 0x3822, 0x341e, 0x381a, 0x38d8, 0x2c11, 0x33be, 0x33ac, 0x353f, 0x3476, 0x3abc, +0x36ec, 0x3a1d, 0x39d3, 0x3821, 0x36ac, 0x3bce, 0x3ad2, 0x3616, 0x36a1, 0x2cb3, 0x38d2, 0x314f, 0x385c, 0x3b63, 0x3bb6, 0x2951, 0x372d, 0x2c42, 0x3823, 0x3883, 0x3872, 0x31ee, 0x36c5, 0x399a, 0x31b0, 0x3887, 0x3884, 0x3865, 0x3896, 0x36c3, 0x32e3, 0x346c, +0x3935, 0x3b50, 0x2b6d, 0x38cd, 0x388f, 0x3389, 0x395d, 0x31cd, 0x2efd, 0x3154, 0x2f35, 0x3444, 0x3293, 0x3b6b, 0x1bec, 0x3b69, 0x3bf3, 0x3611, 0x3508, 0x3742, 0x3a50, 0x3ab7, 0x3457, 0x38d3, 0x3344, 0x38e8, 0x33c0, 0x3668, 0x3bee, 0x3b21, 0x3727, 0x3121, +0x316c, 0x3288, 0x2d50, 0x2e74, 0x35d5, 0x37e2, 0x303d, 0x36af, 0x341f, 0x3436, 0x2df7, 0x399d, 0x30f4, 0x3aaf, 0x34e4, 0x2c2a, 0x3116, 0x34d3, 0x36ac, 0x35e3, 0x3760, 0x36e1, 0x3ad2, 0x3547, 0x38f4, 0x369c, 0x3ba9, 0x34f0, 0x3a39, 0x3b19, 0x36e6, 0x395d, +0x3be8, 0x3293, 0x3bfc, 0x3435, 0x2eb3, 0x3360, 0x3919, 0x3bed, 0x396a, 0x37fc, 0x3242, 0x384b, 0x38cb, 0x3b2c, 0x3b28, 0x28cf, 0x3828, 0x3855, 0x3ba9, 0x2fa7, 0x340b, 0x32f1, 0x3ada, 0x36fa, 0x31f5, 0x3436, 0x29d0, 0x33e6, 0x3232, 0x3bec, 0x3904, 0x2797, +0x3b81, 0x3bac, 0x38d2, 0x343d, 0x31af, 0x3b1e, 0x33fc, 0x3864, 0x3624, 0x3905, 0x2945, 0x3b52, 0x2d08, 0x3a17, 0x3b84, 0x3804, 0x3a24, 0x38a3, 0x3562, 0x3ae6, 0x3bba, 0x3a45, 0x3679, 0x31fa, 0x3994, 0x2c3d, 0x383f, 0x399d, 0x34f7, 0x360e, 0x35f3, 0x38f0, +0x38d4, 0x399a, 0x3a48, 0x3987, 0x3b54, 0x382c, 0x3210, 0x35ef, 0x36ca, 0x31b4, 0x3625, 0x371f, 0x37bd, 0x3680, 0x3a3a, 0x3ac0, 0x3bbf, 0x3bf5, 0x39f2, 0x29c2, 0x363e, 0x3a4e, 0x3596, 0x3b1b, 0x3459, 0x3669, 0x3aa1, 0x39c3, 0x3376, 0x390d, 0x2456, 0x39b5, +0x3a66, 0x3ad8, 0x3b51, 0x36aa, 0x32be, 0x3ac8, 0x392b, 0x3740, 0x3a48, 0x38f5, 0x3b2d, 0x3a5f, 0x2ff3, 0x366f, 0x39d3, 0x35e5, 0x3822, 0x38db, 0x3b8a, 0x34be, 0x2d33, 0x36dd, 0x3578, 0x3bdf, 0x2c7e, 0x39cf, 0x32ff, 0x35c9, 0x3970, 0x3bcb, 0x351e, 0x3956, +0x2c42, 0x3308, 0x377a, 0x361c, 0x39a0, 0x36c9, 0x2dcb, 0x3bf2, 0x3b5f, 0x33ee, 0x24c1, 0x2ce9, 0x3927, 0x305d, 0x3702, 0x3119, 0x35f9, 0x3855, 0x3374, 0x349b, 0x3bcf, 0x2dea, 0x34f0, 0x363f, 0x37da, 0x3a74, 0x35fc, 0x35fa, 0x316b, 0x3804, 0x37a7, 0x3986, +0x3073, 0x3aed, 0x31c7, 0x3844, 0x34a4, 0x387d, 0x3a20, 0x3037, 0x3a00, 0x3b70, 0x377f, 0x3686, 0x3b7e, 0x38b3, 0x32e3, 0x3323, 0x391e, 0x3228, 0x3930, 0x3997, 0x3a5e, 0x398b, 0x3512, 0x35b0, 0x365c, 0x325d, 0x3b61, 0x38b8, 0x39a4, 0x3423, 0x3bd7, 0x38af, +0x2d3d, 0x382d, 0x38ac, 0x26ca, 0x395e, 0x21a8, 0x3520, 0x386f, 0x3b95, 0x32c0, 0x3b84, 0x3a51, 0x3b4b, 0x31d2, 0x3747, 0x3b96, 0x3b40, 0x3535, 0x38d1, 0x3899, 0x3b00, 0x3827, 0x3ae3, 0x38c8, 0x3a07, 0x338d, 0x2e96, 0x3a46, 0x394a, 0x39de, 0x2951, 0x3a02, +0x3838, 0x2d45, 0x28c0, 0x3958, 0x3070, 0x2aa2, 0x3510, 0x38ce, 0x271c, 0x3440, 0x3954, 0x30bc, 0x3b35, 0x2f1d, 0x3afb, 0x2dae, 0x356f, 0x2e13, 0x3981, 0x326d, 0x3a28, 0x3a36, 0x3a95, 0x38cb, 0x38db, 0x3150, 0x2c9e, 0x34c5, 0x3adb, 0x3bdf, 0x38f2, 0x3994, +0x36f8, 0x31c0, 0x3a4f, 0x3825, 0x394b, 0x3a8b, 0x38ac, 0x3167, 0x2e2d, 0x3a93, 0x34f3, 0x37bd, 0x3b63, 0x2f2f, 0x3ae0, 0x3ad8, 0x34a8, 0x2e1c, 0x3890, 0x3705, 0x3b69, 0x3bc1, 0x28af, 0x3b36, 0x348b, 0x3111, 0x3a8d, 0x389c, 0x3916, 0x36dc, 0x3bae, 0x3874, +0x3593, 0x3638, 0x3018, 0x3a56, 0x38a3, 0x2ad4, 0x3a25, 0x38d7, 0x3864, 0x31c1, 0x28d1, 0x39c8, 0x37d6, 0x2c7f, 0x3ba5, 0x34b8, 0x3bef, 0x3b83, 0x3ab5, 0x3062, 0x38bc, 0x399c, 0x2ce4, 0x2f2c, 0x39bf, 0x2ed1, 0x385f, 0x37e0, 0x35ee, 0x397d, 0x3b0c, 0x3049, +0x39d5, 0x322e, 0x3936, 0x3747, 0x2e15, 0x3b41, 0x3874, 0x3bd0, 0x2c04, 0x3800, 0x375b, 0x3b2d, 0x38d8, 0x3a51, 0x3406, 0x38da, 0x38ba, 0x3497, 0x382e, 0x35fc, 0x39d4, 0x3775, 0x3b1e, 0x3813, 0x3649, 0x31af, 0x37bb, 0x334a, 0x3a6e, 0x3284, 0x26e0, 0x2e01, +0x2ebb, 0x344b, 0x3821, 0x381a, 0x385a, 0x2534, 0x3635, 0x2a92, 0x3b8c, 0x31f0, 0x3947, 0x3ac7, 0x3743, 0x3924, 0x39e4, 0x358f, 0x2b62, 0x392c, 0x3955, 0x3341, 0x3676, 0x38ac, 0x3957, 0x335b, 0x2ca2, 0x39ff, 0x37cb, 0x341f, 0x3ac9, 0x3b6c, 0x2f14, 0x34c3, +0x3018, 0x3169, 0x355b, 0x3624, 0x31ed, 0x379e, 0x3268, 0x309b, 0x35db, 0x3872, 0x3bdb, 0x34c7, 0x3408, 0x3359, 0x3920, 0x331f, 0x3866, 0x3af0, 0x2a1a, 0x39e0, 0x3b14, 0x34fa, 0x2d18, 0x3963, 0x35e8, 0x2539, 0x38f5, 0x37b3, 0x378f, 0x31b5, 0x3a6c, 0x3685, +0x3a06, 0x318a, 0x2934, 0x33c1, 0x3be8, 0x375b, 0x3860, 0x3543, 0x3702, 0x3951, 0x3677, 0x37ff, 0x2e27, 0x2e3a, 0x340f, 0x3817, 0x2f04, 0x357e, 0x3a1d, 0x2dd6, 0x252a, 0x3945, 0x162a, 0x3b19, 0x3a53, 0x35d2, 0x3a5d, 0x3474, 0x38e9, 0x374b, 0x387c, 0x1f1a, +0x38ac, 0x3291, 0x3393, 0x3b53, 0x3169, 0x3bca, 0x2f1a, 0x3551, 0x38a3, 0x28e3, 0x369d, 0x34a1, 0x38a8, 0x34c3, 0x3841, 0x390d, 0x3b13, 0x3282, 0x3a29, 0x3a78, 0x2df3, 0x3a37, 0x35f4, 0x35a6, 0x38e8, 0x3328, 0x3beb, 0x390b, 0x32dc, 0x34dc, 0x396d, 0x3a78, +0x39ba, 0x3a06, 0x2cdd, 0x3bc3, 0x2d43, 0x2992, 0x3663, 0x3a68, 0x2c3e, 0x394e, 0x2c9f, 0x380e, 0x37f5, 0x3557, 0x2873, 0x390f, 0x39e7, 0x3939, 0x3669, 0x385c, 0x3a68, 0x32c4, 0x2b04, 0x2d6d, 0x39d3, 0x3895, 0x331d, 0x3b59, 0x3463, 0x2b6a, 0x31de, 0x3296, +0x3aae, 0x3bcd, 0x345a, 0x3897, 0x374b, 0x3bd4, 0x38a2, 0x357f, 0x3402, 0x3a0c, 0x3507, 0x3865, 0x3a54, 0x3878, 0x3859, 0x383e, 0x32b5, 0x34ea, 0x328d, 0x38b6, 0x3464, 0x2f5b, 0x35ff, 0x3817, 0x2f24, 0x3533, 0x3b21, 0x37ba, 0x3837, 0x2e34, 0x3bad, 0x34bc +}; \ No newline at end of file diff --git a/astral/redmule/inc/y_2D.h b/astral/redmule/inc/y_2D.h new file mode 100644 index 0000000..9484a10 --- /dev/null +++ b/astral/redmule/inc/y_2D.h @@ -0,0 +1,27 @@ + /* Header file generated by RedMulE Golden Model */ +uint16_t y_inp_2D [32][32] = { +0x3150, 0x2dc1, 0x3033, 0x31f5, 0x3bb6, 0x3bff, 0x39f9, 0x3662, 0x3720, 0x351d, 0x384b, 0x3093, 0x3b9d, 0x35ad, 0x3695, 0x3466, 0x2300, 0x3445, 0x33ae, 0x3586, 0x38a3, 0x3bdb, 0x33a2, 0x379b, 0x3a0e, 0x38b0, 0x39ba, 0x379b, 0x39d3, 0x3a51, 0x3b30, 0x3794, +0x3b76, 0x3042, 0x38cc, 0x2dfc, 0x3b1a, 0x37fb, 0x38f7, 0x3824, 0x386f, 0x38c7, 0x36ee, 0x3a9c, 0x38d3, 0x2c67, 0x3a80, 0x2f30, 0x3328, 0x3721, 0x3790, 0x34e5, 0x3a6c, 0x3643, 0x3934, 0x3034, 0x38d4, 0x362e, 0x3b4b, 0x3408, 0x30c2, 0x370e, 0x3b31, 0x3b16, +0x3b6b, 0x39d4, 0x339c, 0x381e, 0x313e, 0x3671, 0x3ae2, 0x3479, 0x3940, 0x342d, 0x3925, 0x370a, 0x35d8, 0x2dad, 0x3888, 0x24b9, 0x375d, 0x34bd, 0x3243, 0x2ebb, 0x3970, 0x3a21, 0x3a07, 0x3877, 0x3888, 0x3569, 0x372d, 0x2ac1, 0x331e, 0x384d, 0x3996, 0x34a4, +0x35c1, 0x33a9, 0x21ed, 0x3a42, 0x388d, 0x34e4, 0x33c3, 0x34f9, 0x3a7b, 0x33fb, 0x2cdd, 0x3b0e, 0x333b, 0x3973, 0x34fc, 0x3771, 0x32ea, 0x2de4, 0x31a8, 0x3946, 0x3657, 0x3a4e, 0x36f6, 0x2829, 0x3ba2, 0x3bdc, 0x3bb3, 0x306c, 0x398d, 0x3a1f, 0x3991, 0x3846, +0x3547, 0x3292, 0x2e85, 0x31ed, 0x3979, 0x3a90, 0x28a4, 0x3bed, 0x36d8, 0x340e, 0x3b6a, 0x3ab6, 0x3824, 0x382b, 0x3ac3, 0x3811, 0x36d7, 0x3519, 0x3a92, 0x3a42, 0x29d1, 0x383a, 0x3a9b, 0x300e, 0x2cd3, 0x39cd, 0x3874, 0x3a07, 0x2eb1, 0x3b86, 0x3ad8, 0x3a5d, +0x3712, 0x284a, 0x38c1, 0x3bec, 0x39c0, 0x32cd, 0x3ad8, 0x3bce, 0x3817, 0x3896, 0x3aa7, 0x3870, 0x3996, 0x32cc, 0x3a4c, 0x3757, 0x3814, 0x3b65, 0x3acb, 0x376e, 0x34c0, 0x3609, 0x3bf0, 0x3b24, 0x3b29, 0x3848, 0x34b7, 0x398a, 0x220c, 0x3498, 0x3a8c, 0x3883, +0x38c4, 0x3af6, 0x3a42, 0x2dd6, 0x3147, 0x3717, 0x3a8e, 0x3af9, 0x3296, 0x38ef, 0x34fa, 0x3555, 0x3b29, 0x38de, 0x315e, 0x3773, 0x3b67, 0x3116, 0x38ec, 0x357c, 0x35d0, 0x2518, 0x3958, 0x2a03, 0x37d9, 0x3699, 0x3a1e, 0x3230, 0x3b13, 0x36d4, 0x3b2a, 0x39ad, +0x3b10, 0x351a, 0x3b97, 0x3326, 0x2b54, 0x3b7d, 0x386f, 0x373e, 0x37fa, 0x389b, 0x3b90, 0x3292, 0x3975, 0x38f3, 0x37f1, 0x3590, 0x3810, 0x2fd7, 0x3bf7, 0x3a5a, 0x3a1c, 0x34dd, 0x354c, 0x32f8, 0x3095, 0x321e, 0x39e0, 0x395c, 0x3717, 0x357f, 0x394a, 0x34b1, +0x3ba4, 0x380c, 0x3604, 0x2f50, 0x348d, 0x3828, 0x3a9f, 0x39ce, 0x32ca, 0x3906, 0x3ab2, 0x2ca5, 0x38c9, 0x362a, 0x34b2, 0x29dc, 0x3a36, 0x3052, 0x31b7, 0x3589, 0x387c, 0x3401, 0x3b22, 0x3ad6, 0x3ae8, 0x3238, 0x3494, 0x3502, 0x3717, 0x3a6c, 0x3229, 0x368c, +0x3056, 0x3a56, 0x3498, 0x39eb, 0x2864, 0x342d, 0x39e0, 0x34a1, 0x2b99, 0x3a04, 0x38ff, 0x328c, 0x34d9, 0x387d, 0x3a3c, 0x32e5, 0x39eb, 0x3984, 0x34dd, 0x38a7, 0x373f, 0x39b4, 0x3235, 0x2f58, 0x2f39, 0x3800, 0x3758, 0x3939, 0x39fc, 0x3a4b, 0x38bf, 0x30ee, +0x345e, 0x39c8, 0x3a6d, 0x3262, 0x3b81, 0x31dc, 0x3a15, 0x3bd0, 0x36af, 0x36de, 0x37d5, 0x39d7, 0x3ad3, 0x3ac1, 0x3109, 0x35ea, 0x31c6, 0x398d, 0x3987, 0x3a4a, 0x34d2, 0x2ed2, 0x35e6, 0x352c, 0x39eb, 0x3bd6, 0x3a5b, 0x39d1, 0x34aa, 0x3ade, 0x394b, 0x38a1, +0x2bed, 0x38de, 0x3811, 0x3813, 0x391a, 0x374b, 0x3829, 0x3725, 0x38f0, 0x3583, 0x3966, 0x3a7d, 0x375a, 0x38fe, 0x3696, 0x361c, 0x39a8, 0x35f0, 0x38e1, 0x3003, 0x3595, 0x316e, 0x3862, 0x3af8, 0x3af2, 0x34c8, 0x381d, 0x37d8, 0x3893, 0x3a9c, 0x3989, 0x308c, +0x30cc, 0x2538, 0x399d, 0x3919, 0x399e, 0x21cc, 0x38e9, 0x30f8, 0x3a20, 0x3b3c, 0x3990, 0x259c, 0x3143, 0x3080, 0x3967, 0x3afb, 0x3a1b, 0x3779, 0x2eeb, 0x39f3, 0x379a, 0x369c, 0x3985, 0x3a1b, 0x3ba6, 0x3a53, 0x28d5, 0x3881, 0x31d9, 0x3a34, 0x3bd9, 0x393a, +0x3601, 0x2c6e, 0x3636, 0x3298, 0x39bb, 0x3a08, 0x38db, 0x35ad, 0x3a09, 0x36a6, 0x3bc7, 0x3bac, 0x34ae, 0x3291, 0x290b, 0x3250, 0x2648, 0x333d, 0x2bf3, 0x34b1, 0x30e0, 0x351f, 0x3a74, 0x38dc, 0x3883, 0x2841, 0x35e1, 0x390d, 0x3a50, 0x3abd, 0x386d, 0x3bb7, +0x3b94, 0x36b7, 0x3a49, 0x332f, 0x3a1d, 0x354b, 0x3bab, 0x3346, 0x3417, 0x351e, 0x3b6d, 0x391a, 0x2db3, 0x3b1c, 0x3a4a, 0x37b7, 0x36cf, 0x3a56, 0x39c4, 0x3be9, 0x34f0, 0x39be, 0x3691, 0x1ba5, 0x3888, 0x3040, 0x3ae1, 0x3b9b, 0x398f, 0x3a49, 0x3a16, 0x38c0, +0x386c, 0x39ab, 0x37fa, 0x382c, 0x3a6f, 0x393f, 0x340d, 0x38ef, 0x39d1, 0x3845, 0x398f, 0x363e, 0x3687, 0x3052, 0x3a2b, 0x392c, 0x2f5c, 0x3412, 0x3a1f, 0x3b2f, 0x3bcc, 0x3a63, 0x3a89, 0x36e9, 0x3921, 0x3b80, 0x2dc0, 0x3a03, 0x3beb, 0x38d3, 0x36cb, 0x39a3, +0x3978, 0x3a88, 0x3ba4, 0x3561, 0x28c5, 0x33a0, 0x37be, 0x2c39, 0x30ee, 0x3782, 0x2c07, 0x354e, 0x3491, 0x3a92, 0x331a, 0x3b15, 0x32e1, 0x3839, 0x3afb, 0x36c2, 0x2fd0, 0x29ad, 0x3b2e, 0x39c1, 0x2a8c, 0x341a, 0x2f90, 0x395a, 0x3969, 0x37ea, 0x3a5c, 0x3b6d, +0x3971, 0x3a93, 0x304e, 0x3623, 0x3a22, 0x31ee, 0x29df, 0x2c93, 0x3a01, 0x3a62, 0x366c, 0x371d, 0x3af3, 0x2e08, 0x3ac0, 0x3642, 0x3a28, 0x368d, 0x2d3d, 0x36d9, 0x32c3, 0x373f, 0x36fe, 0x3487, 0x2c81, 0x3623, 0x3b59, 0x3a91, 0x350a, 0x34f4, 0x3b09, 0x2c25, +0x3b13, 0x325a, 0x379e, 0x3a7d, 0x34b1, 0x39d5, 0x2ba8, 0x322b, 0x3b5e, 0x37ab, 0x2e24, 0x3ba9, 0x3a3d, 0x34f7, 0x3ba1, 0x3877, 0x3071, 0x39fb, 0x3bbd, 0x3633, 0x3b36, 0x2daa, 0x3b9b, 0x3aa0, 0x395c, 0x3b8f, 0x38d5, 0x3ab0, 0x3a8f, 0x36c2, 0x3b1f, 0x3489, +0x2acc, 0x3845, 0x3715, 0x37d8, 0x3992, 0x3bff, 0x350e, 0x3ad7, 0x39b0, 0x35ac, 0x3287, 0x385f, 0x3bd4, 0x37a3, 0x3438, 0x39a5, 0x3bcf, 0x38c3, 0x34f6, 0x3ae3, 0x3b57, 0x39af, 0x35eb, 0x3bed, 0x34d4, 0x2a95, 0x3b13, 0x384e, 0x3a3b, 0x33da, 0x3bce, 0x3b99, +0x3559, 0x3335, 0x3a2e, 0x3123, 0x38db, 0x33d0, 0x3638, 0x3b17, 0x3a72, 0x3afc, 0x3936, 0x3838, 0x2b69, 0x3895, 0x3a1a, 0x3192, 0x39d5, 0x37a5, 0x2eb0, 0x2e8b, 0x329a, 0x3b90, 0x390a, 0x3a1e, 0x3847, 0x375d, 0x3873, 0x35e2, 0x3771, 0x30f5, 0x3231, 0x3bd7, +0x2bbc, 0x3ace, 0x31ad, 0x3a6b, 0x28a4, 0x3b48, 0x3ba3, 0x3a84, 0x3353, 0x39f6, 0x381f, 0x2dd6, 0x314c, 0x34af, 0x3929, 0x3921, 0x383b, 0x34b0, 0x3923, 0x32c9, 0x3ae7, 0x318f, 0x3480, 0x2ad8, 0x3042, 0x3a4c, 0x349d, 0x2c12, 0x3abb, 0x3a57, 0x3b0d, 0x3111, +0x3359, 0x3a84, 0x38f2, 0x368d, 0x2f4b, 0x3ba0, 0x395c, 0x3026, 0x3a15, 0x2a04, 0x326e, 0x3522, 0x31a2, 0x382f, 0x2ada, 0x3b7c, 0x2f80, 0x3af5, 0x2d35, 0x38fa, 0x39ab, 0x2c6d, 0x2e7a, 0x39f6, 0x31a4, 0x3a53, 0x358c, 0x3951, 0x3a4e, 0x3916, 0x2a3f, 0x3ae9, +0x3b03, 0x39f8, 0x39fe, 0x3a61, 0x39fb, 0x3704, 0x360d, 0x39a7, 0x37a9, 0x348f, 0x3a30, 0x3af5, 0x366f, 0x3b29, 0x3a6a, 0x33d5, 0x370a, 0x39cd, 0x3444, 0x3bea, 0x3b2b, 0x312e, 0x3b8e, 0x32cf, 0x3b79, 0x3302, 0x3bba, 0x3962, 0x3413, 0x37a1, 0x39e0, 0x3805 +}; \ No newline at end of file diff --git a/astral/redmule/inc/y_input.h b/astral/redmule/inc/y_input.h new file mode 100644 index 0000000..45a2375 --- /dev/null +++ b/astral/redmule/inc/y_input.h @@ -0,0 +1,27 @@ + /* Header file generated by RedMulE Golden Model */ +uint16_t y_inp [768] = { +0x3150, 0x2dc1, 0x3033, 0x31f5, 0x3bb6, 0x3bff, 0x39f9, 0x3662, 0x3720, 0x351d, 0x384b, 0x3093, 0x3b9d, 0x35ad, 0x3695, 0x3466, 0x2300, 0x3445, 0x33ae, 0x3586, 0x38a3, 0x3bdb, 0x33a2, 0x379b, 0x3a0e, 0x38b0, 0x39ba, 0x379b, 0x39d3, 0x3a51, 0x3b30, 0x3794, +0x3b76, 0x3042, 0x38cc, 0x2dfc, 0x3b1a, 0x37fb, 0x38f7, 0x3824, 0x386f, 0x38c7, 0x36ee, 0x3a9c, 0x38d3, 0x2c67, 0x3a80, 0x2f30, 0x3328, 0x3721, 0x3790, 0x34e5, 0x3a6c, 0x3643, 0x3934, 0x3034, 0x38d4, 0x362e, 0x3b4b, 0x3408, 0x30c2, 0x370e, 0x3b31, 0x3b16, +0x3b6b, 0x39d4, 0x339c, 0x381e, 0x313e, 0x3671, 0x3ae2, 0x3479, 0x3940, 0x342d, 0x3925, 0x370a, 0x35d8, 0x2dad, 0x3888, 0x24b9, 0x375d, 0x34bd, 0x3243, 0x2ebb, 0x3970, 0x3a21, 0x3a07, 0x3877, 0x3888, 0x3569, 0x372d, 0x2ac1, 0x331e, 0x384d, 0x3996, 0x34a4, +0x35c1, 0x33a9, 0x21ed, 0x3a42, 0x388d, 0x34e4, 0x33c3, 0x34f9, 0x3a7b, 0x33fb, 0x2cdd, 0x3b0e, 0x333b, 0x3973, 0x34fc, 0x3771, 0x32ea, 0x2de4, 0x31a8, 0x3946, 0x3657, 0x3a4e, 0x36f6, 0x2829, 0x3ba2, 0x3bdc, 0x3bb3, 0x306c, 0x398d, 0x3a1f, 0x3991, 0x3846, +0x3547, 0x3292, 0x2e85, 0x31ed, 0x3979, 0x3a90, 0x28a4, 0x3bed, 0x36d8, 0x340e, 0x3b6a, 0x3ab6, 0x3824, 0x382b, 0x3ac3, 0x3811, 0x36d7, 0x3519, 0x3a92, 0x3a42, 0x29d1, 0x383a, 0x3a9b, 0x300e, 0x2cd3, 0x39cd, 0x3874, 0x3a07, 0x2eb1, 0x3b86, 0x3ad8, 0x3a5d, +0x3712, 0x284a, 0x38c1, 0x3bec, 0x39c0, 0x32cd, 0x3ad8, 0x3bce, 0x3817, 0x3896, 0x3aa7, 0x3870, 0x3996, 0x32cc, 0x3a4c, 0x3757, 0x3814, 0x3b65, 0x3acb, 0x376e, 0x34c0, 0x3609, 0x3bf0, 0x3b24, 0x3b29, 0x3848, 0x34b7, 0x398a, 0x220c, 0x3498, 0x3a8c, 0x3883, +0x38c4, 0x3af6, 0x3a42, 0x2dd6, 0x3147, 0x3717, 0x3a8e, 0x3af9, 0x3296, 0x38ef, 0x34fa, 0x3555, 0x3b29, 0x38de, 0x315e, 0x3773, 0x3b67, 0x3116, 0x38ec, 0x357c, 0x35d0, 0x2518, 0x3958, 0x2a03, 0x37d9, 0x3699, 0x3a1e, 0x3230, 0x3b13, 0x36d4, 0x3b2a, 0x39ad, +0x3b10, 0x351a, 0x3b97, 0x3326, 0x2b54, 0x3b7d, 0x386f, 0x373e, 0x37fa, 0x389b, 0x3b90, 0x3292, 0x3975, 0x38f3, 0x37f1, 0x3590, 0x3810, 0x2fd7, 0x3bf7, 0x3a5a, 0x3a1c, 0x34dd, 0x354c, 0x32f8, 0x3095, 0x321e, 0x39e0, 0x395c, 0x3717, 0x357f, 0x394a, 0x34b1, +0x3ba4, 0x380c, 0x3604, 0x2f50, 0x348d, 0x3828, 0x3a9f, 0x39ce, 0x32ca, 0x3906, 0x3ab2, 0x2ca5, 0x38c9, 0x362a, 0x34b2, 0x29dc, 0x3a36, 0x3052, 0x31b7, 0x3589, 0x387c, 0x3401, 0x3b22, 0x3ad6, 0x3ae8, 0x3238, 0x3494, 0x3502, 0x3717, 0x3a6c, 0x3229, 0x368c, +0x3056, 0x3a56, 0x3498, 0x39eb, 0x2864, 0x342d, 0x39e0, 0x34a1, 0x2b99, 0x3a04, 0x38ff, 0x328c, 0x34d9, 0x387d, 0x3a3c, 0x32e5, 0x39eb, 0x3984, 0x34dd, 0x38a7, 0x373f, 0x39b4, 0x3235, 0x2f58, 0x2f39, 0x3800, 0x3758, 0x3939, 0x39fc, 0x3a4b, 0x38bf, 0x30ee, +0x345e, 0x39c8, 0x3a6d, 0x3262, 0x3b81, 0x31dc, 0x3a15, 0x3bd0, 0x36af, 0x36de, 0x37d5, 0x39d7, 0x3ad3, 0x3ac1, 0x3109, 0x35ea, 0x31c6, 0x398d, 0x3987, 0x3a4a, 0x34d2, 0x2ed2, 0x35e6, 0x352c, 0x39eb, 0x3bd6, 0x3a5b, 0x39d1, 0x34aa, 0x3ade, 0x394b, 0x38a1, +0x2bed, 0x38de, 0x3811, 0x3813, 0x391a, 0x374b, 0x3829, 0x3725, 0x38f0, 0x3583, 0x3966, 0x3a7d, 0x375a, 0x38fe, 0x3696, 0x361c, 0x39a8, 0x35f0, 0x38e1, 0x3003, 0x3595, 0x316e, 0x3862, 0x3af8, 0x3af2, 0x34c8, 0x381d, 0x37d8, 0x3893, 0x3a9c, 0x3989, 0x308c, +0x30cc, 0x2538, 0x399d, 0x3919, 0x399e, 0x21cc, 0x38e9, 0x30f8, 0x3a20, 0x3b3c, 0x3990, 0x259c, 0x3143, 0x3080, 0x3967, 0x3afb, 0x3a1b, 0x3779, 0x2eeb, 0x39f3, 0x379a, 0x369c, 0x3985, 0x3a1b, 0x3ba6, 0x3a53, 0x28d5, 0x3881, 0x31d9, 0x3a34, 0x3bd9, 0x393a, +0x3601, 0x2c6e, 0x3636, 0x3298, 0x39bb, 0x3a08, 0x38db, 0x35ad, 0x3a09, 0x36a6, 0x3bc7, 0x3bac, 0x34ae, 0x3291, 0x290b, 0x3250, 0x2648, 0x333d, 0x2bf3, 0x34b1, 0x30e0, 0x351f, 0x3a74, 0x38dc, 0x3883, 0x2841, 0x35e1, 0x390d, 0x3a50, 0x3abd, 0x386d, 0x3bb7, +0x3b94, 0x36b7, 0x3a49, 0x332f, 0x3a1d, 0x354b, 0x3bab, 0x3346, 0x3417, 0x351e, 0x3b6d, 0x391a, 0x2db3, 0x3b1c, 0x3a4a, 0x37b7, 0x36cf, 0x3a56, 0x39c4, 0x3be9, 0x34f0, 0x39be, 0x3691, 0x1ba5, 0x3888, 0x3040, 0x3ae1, 0x3b9b, 0x398f, 0x3a49, 0x3a16, 0x38c0, +0x386c, 0x39ab, 0x37fa, 0x382c, 0x3a6f, 0x393f, 0x340d, 0x38ef, 0x39d1, 0x3845, 0x398f, 0x363e, 0x3687, 0x3052, 0x3a2b, 0x392c, 0x2f5c, 0x3412, 0x3a1f, 0x3b2f, 0x3bcc, 0x3a63, 0x3a89, 0x36e9, 0x3921, 0x3b80, 0x2dc0, 0x3a03, 0x3beb, 0x38d3, 0x36cb, 0x39a3, +0x3978, 0x3a88, 0x3ba4, 0x3561, 0x28c5, 0x33a0, 0x37be, 0x2c39, 0x30ee, 0x3782, 0x2c07, 0x354e, 0x3491, 0x3a92, 0x331a, 0x3b15, 0x32e1, 0x3839, 0x3afb, 0x36c2, 0x2fd0, 0x29ad, 0x3b2e, 0x39c1, 0x2a8c, 0x341a, 0x2f90, 0x395a, 0x3969, 0x37ea, 0x3a5c, 0x3b6d, +0x3971, 0x3a93, 0x304e, 0x3623, 0x3a22, 0x31ee, 0x29df, 0x2c93, 0x3a01, 0x3a62, 0x366c, 0x371d, 0x3af3, 0x2e08, 0x3ac0, 0x3642, 0x3a28, 0x368d, 0x2d3d, 0x36d9, 0x32c3, 0x373f, 0x36fe, 0x3487, 0x2c81, 0x3623, 0x3b59, 0x3a91, 0x350a, 0x34f4, 0x3b09, 0x2c25, +0x3b13, 0x325a, 0x379e, 0x3a7d, 0x34b1, 0x39d5, 0x2ba8, 0x322b, 0x3b5e, 0x37ab, 0x2e24, 0x3ba9, 0x3a3d, 0x34f7, 0x3ba1, 0x3877, 0x3071, 0x39fb, 0x3bbd, 0x3633, 0x3b36, 0x2daa, 0x3b9b, 0x3aa0, 0x395c, 0x3b8f, 0x38d5, 0x3ab0, 0x3a8f, 0x36c2, 0x3b1f, 0x3489, +0x2acc, 0x3845, 0x3715, 0x37d8, 0x3992, 0x3bff, 0x350e, 0x3ad7, 0x39b0, 0x35ac, 0x3287, 0x385f, 0x3bd4, 0x37a3, 0x3438, 0x39a5, 0x3bcf, 0x38c3, 0x34f6, 0x3ae3, 0x3b57, 0x39af, 0x35eb, 0x3bed, 0x34d4, 0x2a95, 0x3b13, 0x384e, 0x3a3b, 0x33da, 0x3bce, 0x3b99, +0x3559, 0x3335, 0x3a2e, 0x3123, 0x38db, 0x33d0, 0x3638, 0x3b17, 0x3a72, 0x3afc, 0x3936, 0x3838, 0x2b69, 0x3895, 0x3a1a, 0x3192, 0x39d5, 0x37a5, 0x2eb0, 0x2e8b, 0x329a, 0x3b90, 0x390a, 0x3a1e, 0x3847, 0x375d, 0x3873, 0x35e2, 0x3771, 0x30f5, 0x3231, 0x3bd7, +0x2bbc, 0x3ace, 0x31ad, 0x3a6b, 0x28a4, 0x3b48, 0x3ba3, 0x3a84, 0x3353, 0x39f6, 0x381f, 0x2dd6, 0x314c, 0x34af, 0x3929, 0x3921, 0x383b, 0x34b0, 0x3923, 0x32c9, 0x3ae7, 0x318f, 0x3480, 0x2ad8, 0x3042, 0x3a4c, 0x349d, 0x2c12, 0x3abb, 0x3a57, 0x3b0d, 0x3111, +0x3359, 0x3a84, 0x38f2, 0x368d, 0x2f4b, 0x3ba0, 0x395c, 0x3026, 0x3a15, 0x2a04, 0x326e, 0x3522, 0x31a2, 0x382f, 0x2ada, 0x3b7c, 0x2f80, 0x3af5, 0x2d35, 0x38fa, 0x39ab, 0x2c6d, 0x2e7a, 0x39f6, 0x31a4, 0x3a53, 0x358c, 0x3951, 0x3a4e, 0x3916, 0x2a3f, 0x3ae9, +0x3b03, 0x39f8, 0x39fe, 0x3a61, 0x39fb, 0x3704, 0x360d, 0x39a7, 0x37a9, 0x348f, 0x3a30, 0x3af5, 0x366f, 0x3b29, 0x3a6a, 0x33d5, 0x370a, 0x39cd, 0x3444, 0x3bea, 0x3b2b, 0x312e, 0x3b8e, 0x32cf, 0x3b79, 0x3302, 0x3bba, 0x3962, 0x3413, 0x37a1, 0x39e0, 0x3805 +}; \ No newline at end of file diff --git a/astral/redmule/inc/z_2D.h b/astral/redmule/inc/z_2D.h new file mode 100644 index 0000000..aff808a --- /dev/null +++ b/astral/redmule/inc/z_2D.h @@ -0,0 +1,27 @@ + /* Header file generated by RedMulE Golden Model */ +uint16_t z_oup_2D [24][32] = { +0x4845, 0x4897, 0x4608, 0x4838, 0x4855, 0x487b, 0x4869, 0x4880, 0x46d1, 0x48b0, 0x48db, 0x483f, 0x48c9, 0x485f, 0x4881, 0x483a, 0x484b, 0x472c, 0x4762, 0x492b, 0x4822, 0x48fd, 0x488e, 0x492e, 0x483e, 0x484f, 0x49e8, 0x46d7, 0x484b, 0x489d, 0x490b, 0x47e9, +0x484f, 0x47d2, 0x44be, 0x4747, 0x47c7, 0x46c0, 0x4727, 0x48af, 0x46c5, 0x482d, 0x483d, 0x482e, 0x4897, 0x479f, 0x488b, 0x4749, 0x489a, 0x46a8, 0x46f2, 0x488b, 0x4891, 0x47e8, 0x4872, 0x483d, 0x4716, 0x46fd, 0x49b5, 0x46a0, 0x46e7, 0x47a4, 0x48a1, 0x4767, +0x4939, 0x4935, 0x4703, 0x48c1, 0x4863, 0x48bd, 0x4913, 0x48cf, 0x48b6, 0x48b8, 0x4946, 0x4920, 0x495e, 0x48e1, 0x4938, 0x48b2, 0x493a, 0x4882, 0x483b, 0x49d5, 0x4911, 0x4972, 0x496b, 0x49df, 0x48f2, 0x4888, 0x4a46, 0x4821, 0x48c1, 0x490c, 0x49b2, 0x48a3, +0x463a, 0x47b0, 0x44cb, 0x4762, 0x4765, 0x46b9, 0x466a, 0x4814, 0x4631, 0x4796, 0x4666, 0x474b, 0x4798, 0x4704, 0x4838, 0x4761, 0x47d3, 0x4590, 0x45ea, 0x48a2, 0x47f1, 0x4844, 0x484b, 0x4776, 0x47d6, 0x46d8, 0x48f3, 0x44d3, 0x46fa, 0x478d, 0x481e, 0x466e, +0x4827, 0x481e, 0x45a2, 0x4794, 0x4727, 0x4806, 0x475d, 0x48d5, 0x4708, 0x4828, 0x4862, 0x480d, 0x4895, 0x4832, 0x48bd, 0x47f1, 0x482a, 0x46a7, 0x47b1, 0x492d, 0x484d, 0x4884, 0x48dc, 0x485f, 0x476d, 0x480c, 0x48e9, 0x46d3, 0x4728, 0x4884, 0x48a0, 0x480e, +0x4862, 0x4813, 0x4675, 0x485a, 0x47e8, 0x4738, 0x4836, 0x4823, 0x46e7, 0x4821, 0x4822, 0x47b3, 0x4846, 0x4855, 0x4863, 0x4717, 0x4872, 0x47c1, 0x46d5, 0x488e, 0x47e2, 0x485f, 0x487c, 0x48b8, 0x481e, 0x4788, 0x48bd, 0x4677, 0x46c9, 0x47f8, 0x48fe, 0x47fc, +0x47a0, 0x47b2, 0x4588, 0x467e, 0x4662, 0x46c7, 0x46e8, 0x4812, 0x4536, 0x474e, 0x46c0, 0x468f, 0x481f, 0x4679, 0x46a1, 0x46e2, 0x4809, 0x4560, 0x4630, 0x47eb, 0x46b5, 0x4757, 0x4848, 0x477f, 0x46a6, 0x46d8, 0x4870, 0x459a, 0x4670, 0x4678, 0x47d2, 0x468c, +0x4762, 0x48c4, 0x46e3, 0x4791, 0x46b1, 0x486d, 0x47d0, 0x4867, 0x468d, 0x47f6, 0x48a5, 0x4756, 0x4857, 0x4854, 0x4866, 0x4838, 0x484d, 0x46ec, 0x47d2, 0x48f6, 0x484a, 0x4879, 0x4848, 0x483c, 0x471d, 0x4806, 0x48fa, 0x4730, 0x4768, 0x47b8, 0x4865, 0x46f9, +0x48a8, 0x4918, 0x46ca, 0x4867, 0x4800, 0x4862, 0x48d3, 0x4910, 0x474e, 0x4849, 0x48eb, 0x486b, 0x4966, 0x48c5, 0x48f4, 0x4830, 0x48f9, 0x4778, 0x481e, 0x499e, 0x48cf, 0x48f1, 0x4982, 0x4923, 0x487c, 0x47cf, 0x49ea, 0x4649, 0x4773, 0x495e, 0x48b2, 0x483f, +0x48a7, 0x4975, 0x4616, 0x481e, 0x481f, 0x4866, 0x48b6, 0x4864, 0x47dc, 0x4873, 0x485c, 0x487f, 0x4938, 0x491f, 0x490d, 0x48b6, 0x48f8, 0x48a1, 0x4859, 0x492d, 0x489c, 0x4915, 0x4899, 0x4887, 0x486c, 0x4859, 0x49ca, 0x471e, 0x4867, 0x4918, 0x48d3, 0x4827, +0x488b, 0x4998, 0x4704, 0x481d, 0x48b8, 0x4880, 0x4876, 0x4944, 0x470c, 0x48f2, 0x48b9, 0x489b, 0x4956, 0x48e5, 0x48d6, 0x48a5, 0x48dc, 0x4856, 0x484e, 0x49ab, 0x48e0, 0x490e, 0x48dd, 0x4945, 0x488b, 0x48dd, 0x4a32, 0x47ea, 0x4835, 0x4911, 0x4965, 0x4819, +0x460e, 0x481e, 0x452c, 0x4673, 0x475c, 0x4717, 0x46f6, 0x46d0, 0x4696, 0x46bc, 0x4726, 0x481e, 0x4763, 0x46ea, 0x46fe, 0x4758, 0x478b, 0x4627, 0x4704, 0x483f, 0x46ad, 0x47b1, 0x4792, 0x4816, 0x46f2, 0x4684, 0x4827, 0x45a8, 0x472f, 0x47a4, 0x4797, 0x462b, +0x483f, 0x48ab, 0x468f, 0x4863, 0x485a, 0x4766, 0x481d, 0x48cb, 0x47dc, 0x4903, 0x48fc, 0x4830, 0x48cc, 0x483e, 0x48ab, 0x4864, 0x4966, 0x4763, 0x4794, 0x499d, 0x488e, 0x488b, 0x48dc, 0x4960, 0x4854, 0x484c, 0x499c, 0x474c, 0x4826, 0x48bc, 0x4949, 0x4883, +0x489d, 0x4905, 0x4718, 0x481e, 0x48e3, 0x48f4, 0x48c1, 0x4904, 0x47e8, 0x48b3, 0x4892, 0x48d4, 0x48ff, 0x4894, 0x48d5, 0x4886, 0x48fa, 0x4803, 0x47d2, 0x492e, 0x4870, 0x48b2, 0x48e5, 0x492b, 0x487b, 0x4785, 0x49e3, 0x471d, 0x4837, 0x48bf, 0x489b, 0x48c4, +0x475c, 0x4871, 0x464a, 0x4811, 0x47af, 0x471c, 0x4817, 0x4817, 0x463b, 0x484e, 0x477f, 0x464f, 0x4704, 0x487c, 0x47a3, 0x4725, 0x4853, 0x462a, 0x465a, 0x4860, 0x4736, 0x4880, 0x47e1, 0x482b, 0x4811, 0x46c0, 0x48dc, 0x475d, 0x4668, 0x4806, 0x4893, 0x46f4, +0x4858, 0x4959, 0x463d, 0x487b, 0x480f, 0x484e, 0x48c0, 0x48a6, 0x4847, 0x4894, 0x48a0, 0x484a, 0x491e, 0x48f4, 0x48fc, 0x48b5, 0x48ce, 0x47d2, 0x47db, 0x497f, 0x4955, 0x4939, 0x48a7, 0x48ce, 0x4890, 0x4884, 0x49d6, 0x4763, 0x486e, 0x4922, 0x48f4, 0x48c3, +0x47ec, 0x491c, 0x4698, 0x4783, 0x4715, 0x4754, 0x4745, 0x4752, 0x472f, 0x4832, 0x4817, 0x4809, 0x47f8, 0x48c3, 0x47e6, 0x4800, 0x48b6, 0x4730, 0x480a, 0x48cb, 0x479e, 0x488e, 0x47c2, 0x488e, 0x472f, 0x47ee, 0x489d, 0x4744, 0x4755, 0x4851, 0x4846, 0x47d3, +0x4838, 0x48a0, 0x4634, 0x4762, 0x4786, 0x4806, 0x47e3, 0x482d, 0x4726, 0x486c, 0x47b7, 0x4803, 0x48ac, 0x4814, 0x48e0, 0x4839, 0x4827, 0x4750, 0x46f2, 0x48c5, 0x483f, 0x4886, 0x48ad, 0x4856, 0x47e8, 0x47a9, 0x4937, 0x4743, 0x46d0, 0x481f, 0x484c, 0x4804, +0x47fd, 0x481f, 0x456d, 0x4813, 0x474d, 0x4807, 0x4688, 0x480e, 0x46e8, 0x4810, 0x469f, 0x4799, 0x4853, 0x478f, 0x47f2, 0x4824, 0x47d0, 0x471f, 0x46da, 0x485f, 0x4813, 0x481c, 0x482e, 0x4863, 0x4786, 0x480b, 0x48c9, 0x46b8, 0x475a, 0x46e2, 0x4852, 0x46c5, +0x45af, 0x4802, 0x4466, 0x46c2, 0x465d, 0x4743, 0x46b7, 0x47ba, 0x4636, 0x46c3, 0x4677, 0x4784, 0x485a, 0x47c2, 0x46dc, 0x46ac, 0x47de, 0x460e, 0x465f, 0x4834, 0x47f4, 0x4769, 0x46fc, 0x4810, 0x45fd, 0x45ea, 0x48d0, 0x45b5, 0x4704, 0x4783, 0x4830, 0x46c4, +0x4759, 0x47c7, 0x453d, 0x45b0, 0x4741, 0x4702, 0x4736, 0x4793, 0x461b, 0x47ba, 0x470b, 0x46dd, 0x4657, 0x470b, 0x470d, 0x4710, 0x486c, 0x468f, 0x45c3, 0x46ba, 0x479d, 0x483b, 0x46c9, 0x4774, 0x46a9, 0x46a7, 0x4833, 0x4606, 0x4690, 0x46a9, 0x46f5, 0x46a7, +0x47ac, 0x48bb, 0x452c, 0x4803, 0x470f, 0x4824, 0x47d5, 0x48cb, 0x4707, 0x484a, 0x4832, 0x4797, 0x4851, 0x482c, 0x487a, 0x4877, 0x4891, 0x465d, 0x47f4, 0x48ce, 0x4898, 0x4899, 0x484e, 0x486a, 0x47ac, 0x47f0, 0x493e, 0x4611, 0x47e2, 0x489e, 0x488c, 0x46af, +0x4665, 0x4836, 0x45e4, 0x46b6, 0x46a1, 0x46b9, 0x46c8, 0x46dd, 0x4658, 0x474b, 0x467b, 0x4777, 0x4769, 0x4798, 0x4785, 0x475e, 0x472a, 0x4656, 0x45fb, 0x4881, 0x46fc, 0x472d, 0x476e, 0x47a3, 0x465d, 0x46ca, 0x4855, 0x4500, 0x464f, 0x479a, 0x46c3, 0x4738, +0x481e, 0x486c, 0x4659, 0x4801, 0x4756, 0x477a, 0x47d5, 0x487b, 0x4706, 0x4808, 0x484f, 0x4838, 0x4870, 0x4863, 0x48d3, 0x4806, 0x4865, 0x4771, 0x46be, 0x494c, 0x4915, 0x484c, 0x4900, 0x4862, 0x481a, 0x46e8, 0x4974, 0x46a0, 0x4775, 0x483d, 0x487c, 0x480e +}; \ No newline at end of file diff --git a/astral/redmule/inc/z_output.h b/astral/redmule/inc/z_output.h new file mode 100644 index 0000000..96c7e5f --- /dev/null +++ b/astral/redmule/inc/z_output.h @@ -0,0 +1,27 @@ + /* Header file generated by RedMulE Golden Model */ +uint16_t z_oup [768] = { +0x4845, 0x4897, 0x4608, 0x4838, 0x4855, 0x487b, 0x4869, 0x4880, 0x46d1, 0x48b0, 0x48db, 0x483f, 0x48c9, 0x485f, 0x4881, 0x483a, 0x484b, 0x472c, 0x4762, 0x492b, 0x4822, 0x48fd, 0x488e, 0x492e, 0x483e, 0x484f, 0x49e8, 0x46d7, 0x484b, 0x489d, 0x490b, 0x47e9, +0x484f, 0x47d2, 0x44be, 0x4747, 0x47c7, 0x46c0, 0x4727, 0x48af, 0x46c5, 0x482d, 0x483d, 0x482e, 0x4897, 0x479f, 0x488b, 0x4749, 0x489a, 0x46a8, 0x46f2, 0x488b, 0x4891, 0x47e8, 0x4872, 0x483d, 0x4716, 0x46fd, 0x49b5, 0x46a0, 0x46e7, 0x47a4, 0x48a1, 0x4767, +0x4939, 0x4935, 0x4703, 0x48c1, 0x4863, 0x48bd, 0x4913, 0x48cf, 0x48b6, 0x48b8, 0x4946, 0x4920, 0x495e, 0x48e1, 0x4938, 0x48b2, 0x493a, 0x4882, 0x483b, 0x49d5, 0x4911, 0x4972, 0x496b, 0x49df, 0x48f2, 0x4888, 0x4a46, 0x4821, 0x48c1, 0x490c, 0x49b2, 0x48a3, +0x463a, 0x47b0, 0x44cb, 0x4762, 0x4765, 0x46b9, 0x466a, 0x4814, 0x4631, 0x4796, 0x4666, 0x474b, 0x4798, 0x4704, 0x4838, 0x4761, 0x47d3, 0x4590, 0x45ea, 0x48a2, 0x47f1, 0x4844, 0x484b, 0x4776, 0x47d6, 0x46d8, 0x48f3, 0x44d3, 0x46fa, 0x478d, 0x481e, 0x466e, +0x4827, 0x481e, 0x45a2, 0x4794, 0x4727, 0x4806, 0x475d, 0x48d5, 0x4708, 0x4828, 0x4862, 0x480d, 0x4895, 0x4832, 0x48bd, 0x47f1, 0x482a, 0x46a7, 0x47b1, 0x492d, 0x484d, 0x4884, 0x48dc, 0x485f, 0x476d, 0x480c, 0x48e9, 0x46d3, 0x4728, 0x4884, 0x48a0, 0x480e, +0x4862, 0x4813, 0x4675, 0x485a, 0x47e8, 0x4738, 0x4836, 0x4823, 0x46e7, 0x4821, 0x4822, 0x47b3, 0x4846, 0x4855, 0x4863, 0x4717, 0x4872, 0x47c1, 0x46d5, 0x488e, 0x47e2, 0x485f, 0x487c, 0x48b8, 0x481e, 0x4788, 0x48bd, 0x4677, 0x46c9, 0x47f8, 0x48fe, 0x47fc, +0x47a0, 0x47b2, 0x4588, 0x467e, 0x4662, 0x46c7, 0x46e8, 0x4812, 0x4536, 0x474e, 0x46c0, 0x468f, 0x481f, 0x4679, 0x46a1, 0x46e2, 0x4809, 0x4560, 0x4630, 0x47eb, 0x46b5, 0x4757, 0x4848, 0x477f, 0x46a6, 0x46d8, 0x4870, 0x459a, 0x4670, 0x4678, 0x47d2, 0x468c, +0x4762, 0x48c4, 0x46e3, 0x4791, 0x46b1, 0x486d, 0x47d0, 0x4867, 0x468d, 0x47f6, 0x48a5, 0x4756, 0x4857, 0x4854, 0x4866, 0x4838, 0x484d, 0x46ec, 0x47d2, 0x48f6, 0x484a, 0x4879, 0x4848, 0x483c, 0x471d, 0x4806, 0x48fa, 0x4730, 0x4768, 0x47b8, 0x4865, 0x46f9, +0x48a8, 0x4918, 0x46ca, 0x4867, 0x4800, 0x4862, 0x48d3, 0x4910, 0x474e, 0x4849, 0x48eb, 0x486b, 0x4966, 0x48c5, 0x48f4, 0x4830, 0x48f9, 0x4778, 0x481e, 0x499e, 0x48cf, 0x48f1, 0x4982, 0x4923, 0x487c, 0x47cf, 0x49ea, 0x4649, 0x4773, 0x495e, 0x48b2, 0x483f, +0x48a7, 0x4975, 0x4616, 0x481e, 0x481f, 0x4866, 0x48b6, 0x4864, 0x47dc, 0x4873, 0x485c, 0x487f, 0x4938, 0x491f, 0x490d, 0x48b6, 0x48f8, 0x48a1, 0x4859, 0x492d, 0x489c, 0x4915, 0x4899, 0x4887, 0x486c, 0x4859, 0x49ca, 0x471e, 0x4867, 0x4918, 0x48d3, 0x4827, +0x488b, 0x4998, 0x4704, 0x481d, 0x48b8, 0x4880, 0x4876, 0x4944, 0x470c, 0x48f2, 0x48b9, 0x489b, 0x4956, 0x48e5, 0x48d6, 0x48a5, 0x48dc, 0x4856, 0x484e, 0x49ab, 0x48e0, 0x490e, 0x48dd, 0x4945, 0x488b, 0x48dd, 0x4a32, 0x47ea, 0x4835, 0x4911, 0x4965, 0x4819, +0x460e, 0x481e, 0x452c, 0x4673, 0x475c, 0x4717, 0x46f6, 0x46d0, 0x4696, 0x46bc, 0x4726, 0x481e, 0x4763, 0x46ea, 0x46fe, 0x4758, 0x478b, 0x4627, 0x4704, 0x483f, 0x46ad, 0x47b1, 0x4792, 0x4816, 0x46f2, 0x4684, 0x4827, 0x45a8, 0x472f, 0x47a4, 0x4797, 0x462b, +0x483f, 0x48ab, 0x468f, 0x4863, 0x485a, 0x4766, 0x481d, 0x48cb, 0x47dc, 0x4903, 0x48fc, 0x4830, 0x48cc, 0x483e, 0x48ab, 0x4864, 0x4966, 0x4763, 0x4794, 0x499d, 0x488e, 0x488b, 0x48dc, 0x4960, 0x4854, 0x484c, 0x499c, 0x474c, 0x4826, 0x48bc, 0x4949, 0x4883, +0x489d, 0x4905, 0x4718, 0x481e, 0x48e3, 0x48f4, 0x48c1, 0x4904, 0x47e8, 0x48b3, 0x4892, 0x48d4, 0x48ff, 0x4894, 0x48d5, 0x4886, 0x48fa, 0x4803, 0x47d2, 0x492e, 0x4870, 0x48b2, 0x48e5, 0x492b, 0x487b, 0x4785, 0x49e3, 0x471d, 0x4837, 0x48bf, 0x489b, 0x48c4, +0x475c, 0x4871, 0x464a, 0x4811, 0x47af, 0x471c, 0x4817, 0x4817, 0x463b, 0x484e, 0x477f, 0x464f, 0x4704, 0x487c, 0x47a3, 0x4725, 0x4853, 0x462a, 0x465a, 0x4860, 0x4736, 0x4880, 0x47e1, 0x482b, 0x4811, 0x46c0, 0x48dc, 0x475d, 0x4668, 0x4806, 0x4893, 0x46f4, +0x4858, 0x4959, 0x463d, 0x487b, 0x480f, 0x484e, 0x48c0, 0x48a6, 0x4847, 0x4894, 0x48a0, 0x484a, 0x491e, 0x48f4, 0x48fc, 0x48b5, 0x48ce, 0x47d2, 0x47db, 0x497f, 0x4955, 0x4939, 0x48a7, 0x48ce, 0x4890, 0x4884, 0x49d6, 0x4763, 0x486e, 0x4922, 0x48f4, 0x48c3, +0x47ec, 0x491c, 0x4698, 0x4783, 0x4715, 0x4754, 0x4745, 0x4752, 0x472f, 0x4832, 0x4817, 0x4809, 0x47f8, 0x48c3, 0x47e6, 0x4800, 0x48b6, 0x4730, 0x480a, 0x48cb, 0x479e, 0x488e, 0x47c2, 0x488e, 0x472f, 0x47ee, 0x489d, 0x4744, 0x4755, 0x4851, 0x4846, 0x47d3, +0x4838, 0x48a0, 0x4634, 0x4762, 0x4786, 0x4806, 0x47e3, 0x482d, 0x4726, 0x486c, 0x47b7, 0x4803, 0x48ac, 0x4814, 0x48e0, 0x4839, 0x4827, 0x4750, 0x46f2, 0x48c5, 0x483f, 0x4886, 0x48ad, 0x4856, 0x47e8, 0x47a9, 0x4937, 0x4743, 0x46d0, 0x481f, 0x484c, 0x4804, +0x47fd, 0x481f, 0x456d, 0x4813, 0x474d, 0x4807, 0x4688, 0x480e, 0x46e8, 0x4810, 0x469f, 0x4799, 0x4853, 0x478f, 0x47f2, 0x4824, 0x47d0, 0x471f, 0x46da, 0x485f, 0x4813, 0x481c, 0x482e, 0x4863, 0x4786, 0x480b, 0x48c9, 0x46b8, 0x475a, 0x46e2, 0x4852, 0x46c5, +0x45af, 0x4802, 0x4466, 0x46c2, 0x465d, 0x4743, 0x46b7, 0x47ba, 0x4636, 0x46c3, 0x4677, 0x4784, 0x485a, 0x47c2, 0x46dc, 0x46ac, 0x47de, 0x460e, 0x465f, 0x4834, 0x47f4, 0x4769, 0x46fc, 0x4810, 0x45fd, 0x45ea, 0x48d0, 0x45b5, 0x4704, 0x4783, 0x4830, 0x46c4, +0x4759, 0x47c7, 0x453d, 0x45b0, 0x4741, 0x4702, 0x4736, 0x4793, 0x461b, 0x47ba, 0x470b, 0x46dd, 0x4657, 0x470b, 0x470d, 0x4710, 0x486c, 0x468f, 0x45c3, 0x46ba, 0x479d, 0x483b, 0x46c9, 0x4774, 0x46a9, 0x46a7, 0x4833, 0x4606, 0x4690, 0x46a9, 0x46f5, 0x46a7, +0x47ac, 0x48bb, 0x452c, 0x4803, 0x470f, 0x4824, 0x47d5, 0x48cb, 0x4707, 0x484a, 0x4832, 0x4797, 0x4851, 0x482c, 0x487a, 0x4877, 0x4891, 0x465d, 0x47f4, 0x48ce, 0x4898, 0x4899, 0x484e, 0x486a, 0x47ac, 0x47f0, 0x493e, 0x4611, 0x47e2, 0x489e, 0x488c, 0x46af, +0x4665, 0x4836, 0x45e4, 0x46b6, 0x46a1, 0x46b9, 0x46c8, 0x46dd, 0x4658, 0x474b, 0x467b, 0x4777, 0x4769, 0x4798, 0x4785, 0x475e, 0x472a, 0x4656, 0x45fb, 0x4881, 0x46fc, 0x472d, 0x476e, 0x47a3, 0x465d, 0x46ca, 0x4855, 0x4500, 0x464f, 0x479a, 0x46c3, 0x4738, +0x481e, 0x486c, 0x4659, 0x4801, 0x4756, 0x477a, 0x47d5, 0x487b, 0x4706, 0x4808, 0x484f, 0x4838, 0x4870, 0x4863, 0x48d3, 0x4806, 0x4865, 0x4771, 0x46be, 0x494c, 0x4915, 0x484c, 0x4900, 0x4862, 0x481a, 0x46e8, 0x4974, 0x46a0, 0x4775, 0x483d, 0x487c, 0x480e +}; \ No newline at end of file diff --git a/astral/redmule/redmule.c b/astral/redmule/redmule.c new file mode 100644 index 0000000..992e223 --- /dev/null +++ b/astral/redmule/redmule.c @@ -0,0 +1,112 @@ +/* + * Copyright (C) 2022-2023 ETH Zurich and University of Bologna + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * SPDX-License-Identifier: Apache-2.0 + * + * Author: Yvan Tortorella + * + * RedMulE SW test + */ + +#include +#include "stdio.h" +#include "archi_redmule.h" +#include "hal_redmule.h" +#include "pulp.h" + +int main() { + + volatile int errors = 0; + + if(get_core_id() == 0){ + + uint16_t m_size = M_SIZE; + uint16_t n_size = N_SIZE; + uint16_t k_size = K_SIZE; + + uint8_t *x_ext = x_inp; + uint8_t *w_ext = w_inp; + uint8_t *y_ext = y_inp; + uint8_t *z_ext = z_oup; + + uint8_t volatile *x = (uint8_t volatile *) pi_l1_malloc(0, (2*m_size*n_size)); + uint8_t volatile *w = (uint8_t volatile *) pi_l1_malloc(0, (2*n_size*k_size)); + uint8_t volatile *y = (uint8_t volatile *) pi_l1_malloc(0, (2*m_size*k_size)); + + #ifdef USE_NO_DMA + generate_test_data16((int) x, (int) w, (int) y, (int) m_size, (int) n_size, (int) k_size); + #else + volatile unsigned int dma_id = 0; + dma_id = mchan_alloc(); + mchan_transfer((unsigned int) 2*(2*m_size*n_size), + (unsigned int) x_ext, + (unsigned int) x ); + mchan_barrier(dma_id); + mchan_free(dma_id); + + dma_id = mchan_alloc(); + mchan_transfer((unsigned int) 2*(2*n_size*k_size), + (unsigned int) w_ext, + (unsigned int) w ); + mchan_barrier(dma_id); + mchan_free(dma_id); + + dma_id = mchan_alloc(); + mchan_transfer((unsigned int) 2*(2*m_size*k_size), + (unsigned int) y_ext, + (unsigned int) y ); + mchan_barrier(dma_id); + #endif + + int gold_sum = 0, check_sum = 0; + int i,j; + + int offload_id_tmp, offload_id; + + // Enable RedMulE + hwpe_cg_enable(); + + hwpe_soft_clear(); + + // redmule_cfg ((unsigned int) x, + // (unsigned int) w, + // (unsigned int) y, + // m_size, n_size, k_size, + // (uint8_t) GEMM, + // (uint8_t) Float16); + redmule_x_add_set ((unsigned int) x); + redmule_w_add_set ((unsigned int) w); + redmule_y_add_set ((unsigned int) y); + redmule_z_add_set ((unsigned int) y); + redmule_cfg (m_size, n_size, k_size, gemm_ops); + + // Start RedMulE operation + hwpe_trigger_job(); + + // Wait for end of computation + redmule_evt_wait(); + + // Disable RedMulE + hwpe_cg_disable(); + + errors = redmule_compare16((int) y, (int) m_size, (int) k_size); + + *(int *) 0x1A1040A0 = errors; + + printf ("Terminated test with %d errors. See you!\n", errors); + + } + synch_barrier(); + return errors; +} From b7ad8bf7e5817b1f5b52212b2dc39fd95dc9139a Mon Sep 17 00:00:00 2001 From: Francesco Conti Date: Tue, 26 Mar 2024 21:43:08 +0000 Subject: [PATCH 25/56] Add N-EUREKA regression test (not fully self-checking, very minimal) This is a temporary reg-test for N-EUREKA integration. --- .gitmodules | 3 + hwpe/neureka/Makefile | 34 ++++++ hwpe/neureka/gen/inc/bias.h | 14 +++ hwpe/neureka/gen/inc/input.h | 65 ++++++++++++ hwpe/neureka/gen/inc/layer_conf.h | 42 ++++++++ hwpe/neureka/gen/inc/output.h | 10 ++ hwpe/neureka/gen/inc/scale.h | 15 +++ hwpe/neureka/gen/inc/weight.h | 115 ++++++++++++++++++++ hwpe/neureka/inc/layer_util.h | 40 +++++++ hwpe/neureka/inc/nnx_layer.h | 26 +++++ hwpe/neureka/inc/pmsis.h | 11 ++ hwpe/neureka/pulp-nnx | 1 + hwpe/neureka/src/main.c | 65 ++++++++++++ hwpe/neureka/src/nnx_layer.c | 171 ++++++++++++++++++++++++++++++ 14 files changed, 612 insertions(+) create mode 100644 .gitmodules create mode 100644 hwpe/neureka/Makefile create mode 100644 hwpe/neureka/gen/inc/bias.h create mode 100644 hwpe/neureka/gen/inc/input.h create mode 100644 hwpe/neureka/gen/inc/layer_conf.h create mode 100644 hwpe/neureka/gen/inc/output.h create mode 100644 hwpe/neureka/gen/inc/scale.h create mode 100644 hwpe/neureka/gen/inc/weight.h create mode 100644 hwpe/neureka/inc/layer_util.h create mode 100644 hwpe/neureka/inc/nnx_layer.h create mode 100644 hwpe/neureka/inc/pmsis.h create mode 160000 hwpe/neureka/pulp-nnx create mode 100644 hwpe/neureka/src/main.c create mode 100644 hwpe/neureka/src/nnx_layer.c diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..36d31e4 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "hwpe/neureka/pulp-nnx"] + path = hwpe/neureka/pulp-nnx + url = git@github.com:pulp-platform/pulp-nnx diff --git a/hwpe/neureka/Makefile b/hwpe/neureka/Makefile new file mode 100644 index 0000000..37ace72 --- /dev/null +++ b/hwpe/neureka/Makefile @@ -0,0 +1,34 @@ +ACCELERATOR ?= neureka + +LIBDIR := $(abspath ./pulp-nnx) +ACC_DIR := $(LIBDIR)/$(ACCELERATOR) + +## Test +INC_DIRS += inc +PULP_APP_SRCS += $(wildcard src/*.c) +SRC_DIRS += src + +## Library +INC_DIRS += $(LIBDIR)/inc $(LIBDIR)/util +PULP_APP_SRCS += $(LIBDIR)/src/pulp_nnx_$(ACCELERATOR).c $(wildcard $(LIBDIR)/util/*.c) +SRC_DIRS += $(LIBDIR)/src $(LIBDIR)/util + +## Accelerator +INC_DIRS += $(ACC_DIR)/hal $(ACC_DIR)/bsp $(ACC_DIR)/bsp/astral +PULP_APP_SRCS += $(wildcard $(ACC_DIR)/hal/*.c) $(wildcard $(ACC_DIR)/bsp/astral/*.c) +SRC_DIRS += $(ACC_DIR)/hal $(ACC_DIR)/bsp/astral + +## Generated +INC_DIRS += gen/inc +SRC_DIRS += gen/src + +INC_FLAGS += $(addprefix -I,$(INC_DIRS)) + +# Flags +ACCELERATOR_UPPERCASE := $(shell echo $(ACCELERATOR) | tr [:lower:] [:upper:]) +PULP_CFLAGS += -DNNX_ACCELERATOR=\"$(ACCELERATOR)\" -DNNX_$(ACCELERATOR_UPPERCASE) -DNNX_NEUREKA_ASTRAL -DNNX_NEUREKA_PE_H=4 -DNNX_NEUREKA_PE_W=4 +PULP_CFLAGS += $(INC_FLAGS) -O3 + +PULP_APP = test + +include $(PULP_SDK_HOME)/install/rules/pulp_rt.mk diff --git a/hwpe/neureka/gen/inc/bias.h b/hwpe/neureka/gen/inc/bias.h new file mode 100644 index 0000000..30d072b --- /dev/null +++ b/hwpe/neureka/gen/inc/bias.h @@ -0,0 +1,14 @@ +#ifndef __BIAS_H__ +#define __BIAS_H__ + +#include + +#define BIAS_SIZE (32) +PI_L1 int32_t bias[BIAS_SIZE] = { + -0x65c83656, 0x79b5657f, -0x57f742d4, 0x48370263, -0x322008d7, -0x40c1a507, -0x6cb54499, -0x76a3f065, -0x13494905, -0x17d3f6d0, + -0x64732a81, 0x60b4468a, 0x1176b544, -0x1168daef, -0x40e1a4fd, -0x3746219b, 0x18afd65e, 0x6f6ff1d7, -0x61e9d6e3, 0x45b33266, + 0x79d3867b, 0x1c699c9e, 0x6ebc54cb, -0x7f508e3e, -0x1bb33223, 0x6e771d3c, -0x42009579, 0x2c809ab3, -0x3fe5e70c, -0x468955b7, + -0x4405229, -0x79a9c840 +}; + +#endif // __BIAS_H__ diff --git a/hwpe/neureka/gen/inc/input.h b/hwpe/neureka/gen/inc/input.h new file mode 100644 index 0000000..2c7c3e5 --- /dev/null +++ b/hwpe/neureka/gen/inc/input.h @@ -0,0 +1,65 @@ +#ifndef __INPUT_H__ +#define __INPUT_H__ + +#include + +#define INPUT_SIZE (512) + +PI_L1 uint8_t input[INPUT_SIZE] = { + 0xc2, 0x9c, 0xad, 0x2f, 0x37, 0xd4, 0x88, 0x59, 0x67, 0xd8, + 0x73, 0x01, 0x9c, 0x5f, 0xc4, 0x64, 0xd9, 0x74, 0xa9, 0xe7, + 0x18, 0x9a, 0x6e, 0xd7, 0x77, 0xc2, 0x71, 0xa6, 0xdc, 0x3f, + 0xab, 0x2b, 0x36, 0x6c, 0x87, 0x3d, 0x9b, 0x68, 0x64, 0x62, + 0xc4, 0x13, 0x65, 0x5c, 0x3c, 0xcf, 0xd0, 0x0a, 0x12, 0xc1, + 0x18, 0xb4, 0x82, 0x15, 0x77, 0x44, 0x92, 0xb6, 0x6d, 0x09, + 0xc7, 0x0a, 0x41, 0xc1, 0xe9, 0xfe, 0x82, 0x73, 0x1c, 0x1d, + 0xd4, 0xb8, 0x49, 0x81, 0x3e, 0x3a, 0xa7, 0x32, 0x41, 0x19, + 0xcb, 0x37, 0xc8, 0x56, 0x72, 0x34, 0x91, 0x11, 0xa4, 0x99, + 0x9d, 0xc5, 0x7a, 0x50, 0x22, 0x65, 0x87, 0xc6, 0xe1, 0x95, + 0xe8, 0x3a, 0x61, 0xdb, 0x01, 0xb3, 0x56, 0x46, 0xa9, 0xdd, + 0x21, 0xb2, 0xb9, 0xbf, 0x93, 0x3f, 0x33, 0x87, 0x86, 0x65, + 0x20, 0xef, 0xdf, 0xd3, 0xdc, 0xb6, 0xe8, 0x5e, 0xdf, 0xdd, + 0x43, 0xad, 0xbc, 0x81, 0x6e, 0x8b, 0x61, 0x28, 0xef, 0xc6, + 0x5c, 0x7f, 0x01, 0x5a, 0x66, 0x52, 0x5a, 0x14, 0x0f, 0x32, + 0x12, 0x07, 0xb9, 0x98, 0xc8, 0x81, 0x2b, 0x67, 0x07, 0x7f, + 0xcc, 0x2c, 0x68, 0x1f, 0xd9, 0xda, 0xc9, 0x5a, 0x49, 0x8b, + 0x24, 0x03, 0x16, 0xa8, 0x5b, 0xc8, 0x4b, 0x77, 0xfd, 0x50, + 0x0a, 0x3d, 0x7d, 0x1e, 0x99, 0xe4, 0x5b, 0x3b, 0xb2, 0x89, + 0xf5, 0x12, 0x43, 0xec, 0x65, 0x1a, 0x4d, 0x13, 0x3d, 0x61, + 0x95, 0x48, 0x24, 0xf9, 0x0c, 0xed, 0xba, 0xad, 0x0d, 0x93, + 0xed, 0x35, 0x51, 0x30, 0x48, 0x11, 0x04, 0x5b, 0xcd, 0xa7, + 0xc1, 0x1d, 0x5c, 0xd3, 0xa3, 0xd1, 0x67, 0xb9, 0x14, 0xdf, + 0x96, 0x54, 0x5b, 0x07, 0x27, 0x39, 0xef, 0x81, 0x75, 0x0b, + 0x2a, 0x5b, 0x78, 0x3d, 0x19, 0x5e, 0x20, 0x69, 0x38, 0xc8, + 0x68, 0x4a, 0x2d, 0x39, 0xb5, 0x93, 0x8e, 0xb3, 0x8f, 0x17, + 0xc3, 0xb8, 0x59, 0x2d, 0x9b, 0x2a, 0x4c, 0x93, 0x13, 0xe9, + 0x25, 0x52, 0xf4, 0x6d, 0x9e, 0x84, 0x9c, 0x47, 0x29, 0xdc, + 0xa5, 0x0d, 0x27, 0xf1, 0x74, 0x51, 0x0b, 0x1e, 0xf3, 0xce, + 0x7b, 0xc4, 0x19, 0x71, 0x2d, 0x58, 0x3b, 0x1f, 0x46, 0xd7, + 0xe9, 0x4e, 0xe8, 0x2a, 0x7f, 0x30, 0x06, 0xbb, 0x0a, 0x33, + 0x5e, 0xce, 0x69, 0x46, 0x08, 0x44, 0xca, 0xb2, 0x55, 0xab, + 0x65, 0x6d, 0xe2, 0xce, 0xe4, 0xbe, 0x99, 0x76, 0x3c, 0xd1, + 0x96, 0x71, 0xa5, 0x24, 0x48, 0x69, 0xee, 0xe9, 0x10, 0xf5, + 0x69, 0xbe, 0x66, 0x5e, 0x87, 0x23, 0x2f, 0xe1, 0xdc, 0x05, + 0x28, 0x2b, 0x92, 0x3b, 0x04, 0x2f, 0x56, 0xb2, 0x38, 0x70, + 0x5e, 0x6d, 0xca, 0x08, 0x5b, 0x23, 0x30, 0xf0, 0x34, 0xd1, + 0xc7, 0x7a, 0x56, 0xb8, 0x5a, 0x57, 0x01, 0xe4, 0xc8, 0x80, + 0x7a, 0x2e, 0xed, 0xee, 0x51, 0xf9, 0x10, 0x8b, 0x54, 0x61, + 0x20, 0x3a, 0x90, 0x0b, 0xaa, 0x65, 0x81, 0xc6, 0x99, 0x40, + 0x23, 0xc2, 0x24, 0xf2, 0x61, 0x8c, 0x42, 0x06, 0xb4, 0xa3, + 0x0f, 0xed, 0x6b, 0xd5, 0x2d, 0xb5, 0x09, 0x96, 0xe3, 0x5b, + 0x2e, 0x3a, 0x62, 0xd7, 0x7f, 0x29, 0x03, 0x8a, 0x26, 0x71, + 0x10, 0xae, 0x28, 0x3b, 0x1a, 0xf3, 0x9d, 0xf6, 0x37, 0x23, + 0x84, 0x3c, 0x1f, 0x13, 0xdf, 0x74, 0x63, 0xa2, 0xb2, 0x88, + 0xee, 0xf3, 0x6a, 0xcd, 0x8c, 0xa9, 0x5a, 0xf5, 0xc9, 0xc8, + 0x53, 0xc8, 0xd4, 0x58, 0x44, 0x27, 0x0e, 0x3d, 0xb0, 0x72, + 0xd2, 0x3d, 0x31, 0xf3, 0x76, 0xf2, 0x83, 0x03, 0xfc, 0xd1, + 0x29, 0xc0, 0x19, 0x81, 0xb9, 0x65, 0x8b, 0xf4, 0xe1, 0x8f, + 0xf3, 0x80, 0xc2, 0xe1, 0xb2, 0xd0, 0x27, 0x9a, 0x0d, 0xd7, + 0xf5, 0x46, 0x6d, 0x37, 0xdf, 0x16, 0xe5, 0x40, 0x63, 0xac, + 0xdd, 0xe2 +}; + + + +#endif // __INPUT_H__ diff --git a/hwpe/neureka/gen/inc/layer_conf.h b/hwpe/neureka/gen/inc/layer_conf.h new file mode 100644 index 0000000..42e2de0 --- /dev/null +++ b/hwpe/neureka/gen/inc/layer_conf.h @@ -0,0 +1,42 @@ +#ifndef __LAYER_CONF_H__ +#define __LAYER_CONF_H__ + +#define TEST_NAME "test" +#define INPUT_HEIGHT (4) +#define INPUT_WIDTH (4) +#define INPUT_CHANNEL (32) +#define INPUT_SIGNED (0) +#define INPUT_BITS (8) + +#define OUTPUT_HEIGHT (4) +#define OUTPUT_WIDTH (4) +#define OUTPUT_CHANNEL (32) +#define OUTPUT_BITS (8) + +#define WEIGHT_HEIGHT (1) +#define WEIGHT_WIDTH (1) +#define WEIGHT_CHANNEL_IN (32) +#define WEIGHT_CHANNEL_OUT (32) +#define WEIGHT_BITS (8) +#define WEIGHT_OFFSET (-128) + +#define SCALE_BITS (8) + +#define BIAS_BITS (32) + +#define PADDING_TOP (0) +#define PADDING_BOTTOM (0) +#define PADDING_LEFT (0) +#define PADDING_RIGHT (0) +#define PADDING_VALUE (0) + +#define STRIDE_HEIGHT (1) +#define STRIDE_WIDTH (1) + +#define GROUPS (1) +#define OUTSHIFT (23) +#define HAS_NORM_QUANT (1) +#define HAS_BIAS (1) +#define HAS_RELU (1) + +#endif // __LAYER_CONF_H__ diff --git a/hwpe/neureka/gen/inc/output.h b/hwpe/neureka/gen/inc/output.h new file mode 100644 index 0000000..472a3bb --- /dev/null +++ b/hwpe/neureka/gen/inc/output.h @@ -0,0 +1,10 @@ +#ifndef __OUTPUT_H__ +#define __OUTPUT_H__ + +#include + +#define OUTPUT_SIZE (512) +PI_L1 uint8_t output[OUTPUT_SIZE]; + + +#endif // __OUTPUT_H__ diff --git a/hwpe/neureka/gen/inc/scale.h b/hwpe/neureka/gen/inc/scale.h new file mode 100644 index 0000000..8ae79a5 --- /dev/null +++ b/hwpe/neureka/gen/inc/scale.h @@ -0,0 +1,15 @@ +#ifndef __SCALE_H__ +#define __SCALE_H__ + +#include + +#define SCALE_SIZE (32) +PI_L1 uint8_t scale[SCALE_SIZE] = { + 0x2c, 0xca, 0xa6, 0xb9, 0x5f, 0xfb, 0xb4, 0x1e, 0x98, 0x1b, + 0xf1, 0xdf, 0xdd, 0xcf, 0xde, 0xf4, 0x82, 0xfd, 0x38, 0x59, + 0x2b, 0xa6, 0x10, 0x67, 0xa4, 0x2a, 0xf7, 0x12, 0x89, 0xcc, + 0x53, 0x1c +}; + + +#endif // __SCALE_H__ diff --git a/hwpe/neureka/gen/inc/weight.h b/hwpe/neureka/gen/inc/weight.h new file mode 100644 index 0000000..dfa4788 --- /dev/null +++ b/hwpe/neureka/gen/inc/weight.h @@ -0,0 +1,115 @@ +#ifndef __WEIGHT_H__ +#define __WEIGHT_H__ + +#include + +#define WEIGHT_SIZE (1024) +PI_L1 uint8_t weight[WEIGHT_SIZE] = { + 0x6e, 0xe7, 0xcc, 0xf1, 0x1d, 0x56, 0xfe, 0xa4, 0xdd, 0x6c, + 0x22, 0xe7, 0x2b, 0x7d, 0x5a, 0xc1, 0x16, 0x58, 0x21, 0xc1, + 0x16, 0x95, 0x10, 0x54, 0x9c, 0xdd, 0xc9, 0x66, 0x89, 0x93, + 0xc7, 0xe1, 0x73, 0x89, 0xad, 0x4d, 0x48, 0x2e, 0xe5, 0x3e, + 0x29, 0x36, 0x3c, 0xae, 0xc3, 0xa4, 0x4a, 0x2b, 0x00, 0x54, + 0x42, 0xed, 0x55, 0x7d, 0x54, 0x94, 0x70, 0x1e, 0x3c, 0x46, + 0x86, 0x01, 0xd3, 0xa4, 0xe2, 0x52, 0x0c, 0x87, 0x0b, 0x5e, + 0x02, 0xfb, 0xcd, 0x76, 0xb6, 0x83, 0xc5, 0x9c, 0xf1, 0x6a, + 0x7f, 0x5f, 0xc0, 0x9c, 0x13, 0xde, 0xdd, 0x70, 0xb6, 0x38, + 0x98, 0x87, 0xe5, 0x71, 0xc7, 0x37, 0x9b, 0x47, 0x54, 0xfa, + 0xeb, 0xc7, 0x72, 0x0f, 0x61, 0x72, 0xff, 0x63, 0xc5, 0x59, + 0xb5, 0xeb, 0x0f, 0x38, 0xff, 0x68, 0x18, 0x4e, 0xdb, 0x0a, + 0x0e, 0xc6, 0x77, 0x17, 0xa5, 0x2e, 0x36, 0x00, 0x8e, 0xe2, + 0x41, 0x4f, 0x1e, 0x13, 0x83, 0x6a, 0x9b, 0x08, 0xc1, 0x63, + 0x4e, 0x14, 0xd8, 0xd0, 0x00, 0x8b, 0x06, 0x30, 0xcc, 0x11, + 0x44, 0x09, 0x1e, 0x9a, 0x07, 0xde, 0x4e, 0x6d, 0x45, 0x36, + 0xdd, 0x98, 0x27, 0x32, 0x60, 0xfa, 0xfb, 0x7b, 0x29, 0x73, + 0xe6, 0x6c, 0xec, 0xa1, 0x3f, 0x36, 0x9b, 0x8c, 0xa4, 0x03, + 0x08, 0x60, 0x2b, 0x06, 0xff, 0x89, 0x4d, 0x26, 0x90, 0x0e, + 0x34, 0xcf, 0xf4, 0x1a, 0xd6, 0xa6, 0x55, 0x06, 0xdf, 0x83, + 0x46, 0x0b, 0xec, 0x7a, 0x27, 0xb4, 0x88, 0x8e, 0xae, 0xa4, + 0xad, 0xcd, 0x3e, 0x2a, 0xc7, 0xba, 0xb6, 0x1b, 0x1f, 0xe3, + 0x26, 0x65, 0xc8, 0x2a, 0x0b, 0xaa, 0xfa, 0xf9, 0x5c, 0xe3, + 0x07, 0x50, 0xc9, 0x51, 0x26, 0x10, 0x83, 0xa6, 0x3e, 0x54, + 0x7b, 0xe3, 0x46, 0x79, 0x9a, 0xbe, 0x25, 0xe9, 0x83, 0x2b, + 0xbb, 0xec, 0x29, 0x7c, 0xe9, 0xc7, 0x28, 0x99, 0x1d, 0x7f, + 0xb3, 0x1b, 0x01, 0xa6, 0xe2, 0xed, 0x8b, 0xce, 0x0e, 0xe1, + 0x8a, 0x93, 0x44, 0x13, 0xae, 0xee, 0x19, 0x7d, 0x87, 0xea, + 0xd7, 0x70, 0x9f, 0x3c, 0xbf, 0x2f, 0x5c, 0x60, 0x10, 0xae, + 0x4b, 0x6b, 0x2d, 0x7e, 0xe5, 0x8a, 0xa9, 0xa0, 0xf9, 0x8e, + 0x4f, 0x98, 0x19, 0xf9, 0x3e, 0x4b, 0x0d, 0xf0, 0x81, 0xe0, + 0x52, 0xa8, 0xb5, 0x29, 0x40, 0x0d, 0x71, 0x90, 0x39, 0xe8, + 0x7d, 0x15, 0xf7, 0x21, 0x59, 0x34, 0xf3, 0xfb, 0xc2, 0x51, + 0x37, 0xee, 0x78, 0x32, 0x06, 0xdd, 0xfb, 0xf4, 0x39, 0xb7, + 0x96, 0x1f, 0x17, 0x94, 0x36, 0x2e, 0xb7, 0xd2, 0x6b, 0xa3, + 0x5d, 0x35, 0xcb, 0x76, 0xb2, 0xa9, 0x01, 0xaa, 0xd1, 0xd1, + 0x8a, 0xb7, 0x86, 0x17, 0x21, 0x18, 0xba, 0xa2, 0x38, 0xbe, + 0xc9, 0x64, 0x2d, 0xf4, 0x81, 0xc2, 0xd1, 0x97, 0xbb, 0xcd, + 0x04, 0x50, 0x20, 0xbb, 0x67, 0x20, 0xb4, 0x8a, 0x96, 0x30, + 0x8f, 0x35, 0xa4, 0xb0, 0xc2, 0x8c, 0x4e, 0x9c, 0xc7, 0x2d, + 0xbb, 0x90, 0x2d, 0x4a, 0x96, 0xbb, 0xb9, 0x71, 0x35, 0x37, + 0xe7, 0xc8, 0x54, 0x1c, 0x91, 0x15, 0xb7, 0x46, 0x28, 0x3e, + 0x90, 0x85, 0xa6, 0x09, 0xba, 0xd4, 0x5a, 0x51, 0x5d, 0x4a, + 0xb6, 0xa0, 0xb1, 0x84, 0x12, 0x9d, 0x85, 0x6d, 0xa7, 0x07, + 0x7d, 0x3b, 0x24, 0x44, 0x61, 0xb7, 0x78, 0x41, 0xba, 0x29, + 0x8b, 0xc9, 0x67, 0x2e, 0x54, 0x72, 0x79, 0x11, 0x61, 0xe9, + 0x31, 0x84, 0x21, 0x70, 0x1e, 0xcc, 0x5c, 0x03, 0x75, 0x19, + 0xab, 0x3d, 0xea, 0x1d, 0x15, 0xae, 0xba, 0xe5, 0xa2, 0x0b, + 0x73, 0xf4, 0xa3, 0x55, 0x3c, 0x81, 0x3c, 0x00, 0x30, 0xb0, + 0x2e, 0xca, 0x8f, 0xd8, 0xd3, 0x71, 0x2a, 0x9e, 0x40, 0xaf, + 0x0d, 0x20, 0xa1, 0x22, 0xf8, 0x7e, 0xa4, 0x8d, 0x5a, 0x7a, + 0xfc, 0x23, 0x05, 0x4c, 0xa3, 0xc1, 0x16, 0x95, 0x5e, 0xa9, + 0x6e, 0xbf, 0xf8, 0xaf, 0x5f, 0xe3, 0xb0, 0x22, 0x62, 0x39, + 0x45, 0xc9, 0x47, 0x84, 0x0e, 0x53, 0x79, 0xa2, 0xa8, 0x20, + 0x43, 0x65, 0x63, 0x4a, 0x6d, 0x10, 0x7c, 0x03, 0x5f, 0xd0, + 0xbe, 0x6f, 0x5a, 0x91, 0x41, 0xef, 0x9e, 0x06, 0xc9, 0x43, + 0x1b, 0xd9, 0x6f, 0xe5, 0x69, 0xac, 0xb2, 0xe4, 0x35, 0xea, + 0x8a, 0x8b, 0xb1, 0x5c, 0x20, 0x53, 0x38, 0x40, 0x29, 0xc6, + 0x0e, 0x64, 0xa3, 0xf7, 0xbf, 0x75, 0xad, 0x84, 0x6d, 0x9b, + 0xdd, 0x17, 0x10, 0x3e, 0x85, 0x6a, 0xc2, 0xc2, 0xc1, 0x22, + 0xb0, 0xf7, 0xae, 0x65, 0x43, 0x72, 0x4a, 0xbd, 0xeb, 0xe0, + 0x4e, 0xf9, 0x88, 0xa7, 0x00, 0x02, 0x8d, 0xbc, 0x05, 0x2f, + 0x6c, 0x8d, 0xa5, 0xb6, 0x02, 0x64, 0x32, 0x55, 0x1d, 0xde, + 0x76, 0xc6, 0x54, 0x95, 0xf9, 0xe7, 0xa5, 0x71, 0x66, 0xc0, + 0xe6, 0xab, 0xd7, 0xb7, 0x03, 0xa1, 0x38, 0xc4, 0x6f, 0x90, + 0x0a, 0x87, 0x25, 0x39, 0x42, 0x8f, 0xc7, 0x6b, 0x62, 0x2e, + 0x13, 0xde, 0x07, 0x1e, 0xa7, 0x00, 0xf0, 0x8d, 0xeb, 0xd6, + 0xc2, 0x9e, 0x20, 0x58, 0xe7, 0x7f, 0xc6, 0x20, 0xd6, 0xb1, + 0xfe, 0xf3, 0xee, 0x34, 0x9c, 0x14, 0x1e, 0xf7, 0xa4, 0x18, + 0x2c, 0xdd, 0xfb, 0xde, 0x4a, 0x95, 0xf8, 0xb0, 0x73, 0x14, + 0x09, 0x89, 0x75, 0x4c, 0xe8, 0xc8, 0x00, 0x73, 0xdc, 0x49, + 0x90, 0x58, 0x15, 0x53, 0x22, 0xca, 0x16, 0xc5, 0x49, 0xd5, + 0x2b, 0x98, 0x2f, 0x05, 0x2d, 0x8d, 0x6b, 0x0a, 0x0e, 0xac, + 0xfb, 0x7d, 0x42, 0x12, 0x83, 0xe8, 0x8d, 0x72, 0xa3, 0xf2, + 0xf7, 0x04, 0xc6, 0x87, 0x97, 0xa5, 0x82, 0x5b, 0x85, 0xea, + 0x8f, 0xd3, 0x68, 0x74, 0x3e, 0xf7, 0x36, 0x0c, 0xa0, 0x83, + 0x51, 0x68, 0xf9, 0xfb, 0xbe, 0x10, 0xde, 0xad, 0xec, 0x91, + 0xea, 0x12, 0x2e, 0x4a, 0xf5, 0x35, 0x03, 0x50, 0x3b, 0x5f, + 0x1e, 0xdf, 0xdc, 0x95, 0x68, 0xeb, 0x87, 0x8e, 0x24, 0xa4, + 0x70, 0x13, 0x9e, 0x09, 0x50, 0xa5, 0x15, 0x78, 0x7f, 0x18, + 0x06, 0x61, 0x49, 0x8a, 0xb4, 0x65, 0xca, 0x33, 0xe2, 0xa7, + 0x57, 0x51, 0xa1, 0xcf, 0x58, 0x82, 0xa5, 0xa0, 0xab, 0xd1, + 0x5f, 0xf5, 0x68, 0x2c, 0xad, 0x4e, 0xe5, 0xd1, 0x96, 0x4f, + 0xe0, 0x51, 0x65, 0x0c, 0x44, 0xb8, 0xc6, 0x5b, 0xc8, 0x0e, + 0xe5, 0x2a, 0x7e, 0x74, 0xd7, 0x45, 0x7b, 0xb5, 0x03, 0x4a, + 0x77, 0x7f, 0x8e, 0xda, 0x26, 0x5c, 0xe3, 0x58, 0xbc, 0x36, + 0xa5, 0x6e, 0xa3, 0x7e, 0x87, 0xb9, 0x80, 0xd6, 0x93, 0x5e, + 0xf5, 0x24, 0xd4, 0x2d, 0xbc, 0x4d, 0xc8, 0xe7, 0xdc, 0x85, + 0x44, 0x00, 0x4b, 0x8b, 0x2d, 0x05, 0x32, 0x97, 0x4c, 0x9c, + 0xb9, 0xb4, 0x97, 0x97, 0x55, 0x60, 0x0b, 0x98, 0x21, 0x4f, + 0xa2, 0x2e, 0x4d, 0xcc, 0x5b, 0x8d, 0xde, 0x25, 0xaa, 0x0a, + 0xfc, 0xca, 0xd1, 0x54, 0x90, 0xbe, 0xef, 0xe6, 0x93, 0x49, + 0xbb, 0x33, 0xaf, 0xf9, 0x5b, 0x98, 0xc4, 0xce, 0x3c, 0x22, + 0xd0, 0xed, 0x5a, 0x9e, 0x01, 0xc0, 0x6a, 0x76, 0x2a, 0x74, + 0x8f, 0x65, 0xdd, 0xec, 0x7b, 0xd8, 0xef, 0x0e, 0xc0, 0x0d, + 0xdb, 0x47, 0x8b, 0x6a, 0x0d, 0xc5, 0xe5, 0x53, 0xb2, 0x22, + 0x84, 0x71, 0xb2, 0xf6, 0x99, 0x42, 0x14, 0x43, 0x94, 0xad, + 0x61, 0xbd, 0x00, 0xef, 0xf7, 0xfd, 0x20, 0xd7, 0x0c, 0x67, + 0xf7, 0xca, 0xdf, 0x78, 0xb0, 0x28, 0x95, 0xb9, 0x0e, 0x4c, + 0x3c, 0xbb, 0x2b, 0x85, 0xa3, 0x68, 0x78, 0x6f, 0x31, 0xe7, + 0x5f, 0x7b, 0xa7, 0x5f, 0xe7, 0x17, 0x35, 0xdd, 0x20, 0x2c, + 0x10, 0x3a, 0x98, 0xe3, 0xb8, 0x7a, 0x8e, 0x6f, 0xee, 0x34, + 0x14, 0x75, 0x19, 0xf8 +}; + + + +#endif // __WEIGHT_H__ diff --git a/hwpe/neureka/inc/layer_util.h b/hwpe/neureka/inc/layer_util.h new file mode 100644 index 0000000..e44ede9 --- /dev/null +++ b/hwpe/neureka/inc/layer_util.h @@ -0,0 +1,40 @@ +/* + * Luka Macan + * + * Copyright 2023 ETH Zurich and University of Bologna + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#ifndef __LAYER_UTIL_H__ +#define __LAYER_UTIL_H__ + +#include "layer_conf.h" +#include + +static void layer_info() { + printf("Layer info:\n" + " - input: (%dx%dx%d)\n" + " - output: (%dx%dx%d)\n" + " - weight: (%dx%dx%dx%d)\n" + " - stride: (%dx%d)\n" + " - padding: (%dx%dx%dx%d)\n", + INPUT_HEIGHT, INPUT_WIDTH, INPUT_CHANNEL, OUTPUT_HEIGHT, OUTPUT_WIDTH, + OUTPUT_CHANNEL, WEIGHT_CHANNEL_OUT, WEIGHT_HEIGHT, WEIGHT_WIDTH, + WEIGHT_CHANNEL_IN, STRIDE_HEIGHT, STRIDE_WIDTH, PADDING_TOP, + PADDING_BOTTOM, PADDING_LEFT, PADDING_RIGHT); +} + +#endif // __LAYER_UTIL_H__ diff --git a/hwpe/neureka/inc/nnx_layer.h b/hwpe/neureka/inc/nnx_layer.h new file mode 100644 index 0000000..cbaf4b9 --- /dev/null +++ b/hwpe/neureka/inc/nnx_layer.h @@ -0,0 +1,26 @@ +/* + * Luka Macan + * + * Copyright 2023 ETH Zurich and University of Bologna + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#ifndef __NNX_LAYER_H__ +#define __NNX_LAYER_H__ + +void execute_nnx_layer(void *unused_args); + +#endif // __NNX_LAYER_H__ diff --git a/hwpe/neureka/inc/pmsis.h b/hwpe/neureka/inc/pmsis.h new file mode 100644 index 0000000..dbb6a91 --- /dev/null +++ b/hwpe/neureka/inc/pmsis.h @@ -0,0 +1,11 @@ +// fake pmsis.h +#include +#include +// fake data in L2, actually in L1! +#ifndef PI_L1 + #define PI_L1 __attribute__((section(".data_l1"))) +#endif +#ifndef PI_L2 + #define PI_L2 __attribute__((section(".data_l1"))) +#endif + diff --git a/hwpe/neureka/pulp-nnx b/hwpe/neureka/pulp-nnx new file mode 160000 index 0000000..9ec50f0 --- /dev/null +++ b/hwpe/neureka/pulp-nnx @@ -0,0 +1 @@ +Subproject commit 9ec50f0158637c5901ab2216d4be4862a613acdf diff --git a/hwpe/neureka/src/main.c b/hwpe/neureka/src/main.c new file mode 100644 index 0000000..4a8f24e --- /dev/null +++ b/hwpe/neureka/src/main.c @@ -0,0 +1,65 @@ +/* + * Copyright (C) 2020-2024 ETH Zurich and University of Bologna + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * Authors: Francesco Conti + * Gianna Paulin + * Renzo Andri + * Arpan Suravi Prasad + * Luka Macan + * Main Test Program for N-EUREKA + */ + +#include +#include + +#include "layer_util.h" +#include "nnx_layer.h" + +#define OUTPUT_SIZE 512 + +extern int8_t output[]; + +static int check_output() { + int checksum = 0; + for (int i = 0; i < OUTPUT_SIZE; i++) { + checksum += output[i]; + } + return (checksum == 0x00007330); +} + +int errors = 0; + +int main() { + + if (get_core_id() == 0) { + + // execute NNX layer + execute_nnx_layer(NULL); + + errors = check_output(); + + *(int *) 0x1A1040A0 = errors; + if(errors) + printf ("[KO] Terminated test with errors!!!\n"); + else + printf ("[OK] Terminated test with no errors!!!\n"); + + } + synch_barrier(); + return errors; + +} diff --git a/hwpe/neureka/src/nnx_layer.c b/hwpe/neureka/src/nnx_layer.c new file mode 100644 index 0000000..cb53369 --- /dev/null +++ b/hwpe/neureka/src/nnx_layer.c @@ -0,0 +1,171 @@ +/* + * Luka Macan + * + * Copyright 2023 ETH Zurich and University of Bologna + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "nnx_layer.h" +#include + +#include "neureka.h" +#include "neureka_astral_bsp.h" +#include "neureka_task.h" +#include "pulp_nnx_neureka.h" + +#define NULL 0 + +typedef neureka_norm_mode_e nnx_norm_mode_e; +typedef neureka_quant_t nnx_quant_t; +typedef neureka_quant_function_e nnx_quant_function_e; +typedef neureka_norm_t nnx_norm_t; +typedef neureka_task_t nnx_task_t; +typedef neureka_dev_t nnx_dev_t; +typedef neureka_astral_conf_t nnx_bsp_conf_t; +typedef neureka_task_flag_e nnx_task_flag_e; + +#define nnxTaskFlagTrue neurekaTaskFlagTrue +#define nnxTaskFlagFalse neurekaTaskFlagFalse + +#define nnx_task_init neureka_task_init +#define nnx_task_set_op_to_conv neureka_task_set_op_to_conv +#define nnx_task_set_bits neureka_task_set_bits +#define nnx_task_set_norm_quant neureka_task_set_norm_quant +#define nnx_task_set_weight_offset neureka_task_set_weight_offset +#define nnx_task_set_weight_source neureka_task_set_weight_source +#define nnx_task_set_activation_prefetch neureka_task_set_activation_prefetch +#define nnx_task_set_dims neureka_task_set_dims +#define nnx_task_set_ptrs_conv neureka_task_set_ptrs_conv +#define nnx_task_set_ptrs_norm_quant neureka_task_set_ptrs_norm_quant + +#define nnx_bsp_get_dev neureka_astral_get_dev + +#define nnx_init neureka_nnx_init +#define nnx_dispatch_wait neureka_nnx_dispatch_wait +#define nnx_dispatch neureka_nnx_dispatch +#define nnx_resolve_wait neureka_nnx_resolve_wait +#define nnx_term neureka_nnx_term + +// Generated headers +#include "layer_conf.h" +#if HAS_BIAS != 0 + #include "bias.h" +#endif +#include "input.h" +#include "output.h" +#if HAS_NORM_QUANT != 0 + #include "scale.h" +#endif +#include "weight.h" + +static void task_prepare(nnx_task_t *task) { + nnx_task_init(task); + nnx_task_set_op_to_conv(task, WEIGHT_HEIGHT, GROUPS > 1); + nnx_task_set_bits(task, INPUT_BITS, OUTPUT_BITS, WEIGHT_BITS); + + nnx_task_set_weight_offset(task, weightOffsetModeLayerWise, WEIGHT_OFFSET); + +#ifdef NEUREKA_WEIGHT_SOURCE_WMEM + nnx_task_set_weight_source(task, neurekaWeightSourceWmem); + nnx_task_set_activation_prefetch(task, activationPrefetchOn); +#else + neureka_task_set_weight_source(task, neurekaWeightSourceTcdm); + nnx_task_set_activation_prefetch(task, activationPrefetchOff); +#endif +#if INPUT_SIGNED == 1 + neureka_task_set_input_signed(task); +#else + neureka_task_set_input_unsigned(task); +#endif + + const uint32_t w_in_stride = INPUT_CHANNEL * INPUT_BITS / 8; + const uint32_t h_in_stride = INPUT_WIDTH * w_in_stride; + const uint32_t w_out_stride = OUTPUT_CHANNEL * OUTPUT_BITS / 8; + const uint32_t h_out_stride = OUTPUT_WIDTH * w_out_stride; + +#if STRIDE_HEIGHT == 2 && STRIDE_WIDTH == 2 + nnx_task_set_dims_stride2x2( + task, INPUT_HEIGHT, INPUT_WIDTH, INPUT_CHANNEL, h_in_stride, w_in_stride, + OUTPUT_HEIGHT, OUTPUT_WIDTH, OUTPUT_CHANNEL, h_out_stride, w_out_stride, + WEIGHT_HEIGHT, WEIGHT_WIDTH, PADDING_TOP, PADDING_BOTTOM, PADDING_LEFT, + PADDING_RIGHT); +#else + nnx_task_set_dims(task, INPUT_WIDTH, INPUT_CHANNEL, h_in_stride, w_in_stride, + OUTPUT_HEIGHT, OUTPUT_WIDTH, OUTPUT_CHANNEL, h_out_stride, + w_out_stride, PADDING_TOP, PADDING_BOTTOM, PADDING_LEFT, + PADDING_RIGHT); +#endif + + nnx_task_set_ptrs_conv(task, (uint32_t)input, INPUT_WIDTH, w_in_stride, + PADDING_TOP, PADDING_LEFT, (uint32_t)output, + (uint32_t)weight); +#if HAS_NORM_QUANT == 1 +#if SCALE_BITS == 8 + const nnx_norm_mode_e normMode = normMode8Bit; +#elif SCALE_BITS == 32 + const nnx_norm_mode_e normMode = normMode32Bit; +#endif + + const nnx_task_flag_e flag_bias = + HAS_BIAS ? nnxTaskFlagTrue : nnxTaskFlagFalse; + const uint32_t bias_ptr = (uint32_t)(HAS_BIAS ? bias : NULL); + + nnx_quant_function_e quant_function = + HAS_RELU ? quantFunctionRelu : quantFunctionIdentity; + + nnx_task_set_norm_quant(task, + (nnx_quant_t){.shift_amount = OUTSHIFT, + .function = quant_function, + .flag_rounding = nnxTaskFlagFalse}, + (nnx_norm_t){.mode = normMode, + .flag_bias = flag_bias, + .flag_shift = nnxTaskFlagFalse}); + + nnx_task_set_ptrs_norm_quant(task, (uint32_t)scale, NULL, bias_ptr); +#endif // HAS_NORM_QUANT +} + +static void task_execute(nnx_task_t *task) { + nnx_dev_t *dev = nnx_bsp_get_dev(); + + nnx_bsp_conf_t conf = {.max_stall = 8}; + nnx_init(dev, &conf); + + nnx_dispatch_wait(dev); + + // printf("CFG:\n"); + // for (int i=0; idata)[i]); + // } +#if STRIDE_HEIGHT == 2 && STRIDE_WIDTH == 2 + nnx_dispatch_stride2x2(dev, task, INPUT_WIDTH, INPUT_CHANNEL, OUTPUT_HEIGHT, + OUTPUT_WIDTH, OUTPUT_CHANNEL, WEIGHT_HEIGHT, + WEIGHT_WIDTH); +#else + nnx_dispatch(dev, task); +#endif + + nnx_resolve_wait(dev, task); + + nnx_term(dev); + +} + +void execute_nnx_layer(void *args) { + nnx_task_t task; + task_prepare(&task); + task_execute(&task); +} From 921d02f1518f41319464ca97cba96b1643660cc8 Mon Sep 17 00:00:00 2001 From: Francesco Conti Date: Tue, 26 Mar 2024 21:53:14 +0000 Subject: [PATCH 26/56] Fix version of pulp-nnx --- hwpe/neureka/pulp-nnx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hwpe/neureka/pulp-nnx b/hwpe/neureka/pulp-nnx index 9ec50f0..37a8013 160000 --- a/hwpe/neureka/pulp-nnx +++ b/hwpe/neureka/pulp-nnx @@ -1 +1 @@ -Subproject commit 9ec50f0158637c5901ab2216d4be4862a613acdf +Subproject commit 37a80138686668c455fb07af475ee7abbb8b6fbb From aa5803ad4a0324c8aad7540c421f67a5f22cff8c Mon Sep 17 00:00:00 2001 From: Riccardo Tedeschi Date: Wed, 27 Mar 2024 12:42:15 +0100 Subject: [PATCH 27/56] Use symlinks to avoid code duplication --- carfield/neureka | 1 + carfield/redmule | 1 + carfield/redmule/Makefile | 9 - carfield/redmule/archi_redmule.h | 164 ---------- carfield/redmule/hal_redmule.h | 527 ------------------------------ carfield/redmule/inc/golden.h | 387 ---------------------- carfield/redmule/inc/tensor_dim.h | 13 - carfield/redmule/inc/w_2D.h | 35 -- carfield/redmule/inc/w_input.h | 35 -- carfield/redmule/inc/x_2D.h | 27 -- carfield/redmule/inc/x_input.h | 27 -- carfield/redmule/inc/y_2D.h | 27 -- carfield/redmule/inc/y_input.h | 27 -- carfield/redmule/inc/z_2D.h | 27 -- carfield/redmule/inc/z_output.h | 27 -- carfield/redmule/redmule.c | 112 ------- 16 files changed, 2 insertions(+), 1444 deletions(-) create mode 120000 carfield/neureka create mode 120000 carfield/redmule delete mode 100644 carfield/redmule/Makefile delete mode 100644 carfield/redmule/archi_redmule.h delete mode 100644 carfield/redmule/hal_redmule.h delete mode 100644 carfield/redmule/inc/golden.h delete mode 100644 carfield/redmule/inc/tensor_dim.h delete mode 100644 carfield/redmule/inc/w_2D.h delete mode 100644 carfield/redmule/inc/w_input.h delete mode 100644 carfield/redmule/inc/x_2D.h delete mode 100644 carfield/redmule/inc/x_input.h delete mode 100644 carfield/redmule/inc/y_2D.h delete mode 100644 carfield/redmule/inc/y_input.h delete mode 100644 carfield/redmule/inc/z_2D.h delete mode 100644 carfield/redmule/inc/z_output.h delete mode 100644 carfield/redmule/redmule.c diff --git a/carfield/neureka b/carfield/neureka new file mode 120000 index 0000000..98cb979 --- /dev/null +++ b/carfield/neureka @@ -0,0 +1 @@ +../hwpe/neureka/ \ No newline at end of file diff --git a/carfield/redmule b/carfield/redmule new file mode 120000 index 0000000..bd0da93 --- /dev/null +++ b/carfield/redmule @@ -0,0 +1 @@ +../hwpe/redmule/ \ No newline at end of file diff --git a/carfield/redmule/Makefile b/carfield/redmule/Makefile deleted file mode 100644 index c498417..0000000 --- a/carfield/redmule/Makefile +++ /dev/null @@ -1,9 +0,0 @@ -PULP_APP = test -PULP_APP_SRCS = redmule.c -PULP_CFLAGS = -O3 - -ifeq ($(use_no_dma),1) - PULP_CFLAGS += -DUSE_NO_DMA -endif - -include $(PULP_SDK_HOME)/install/rules/pulp.mk diff --git a/carfield/redmule/archi_redmule.h b/carfield/redmule/archi_redmule.h deleted file mode 100644 index 9222d63..0000000 --- a/carfield/redmule/archi_redmule.h +++ /dev/null @@ -1,164 +0,0 @@ -/* - * Copyright (C) 2022-2023 ETH Zurich and University of Bologna - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * SPDX-License-Identifier: Apache-2.0 - * - * Author: Yvan Tortorella - * - * High-level architecture of RedMulE - * - */ - -#ifndef __ARCHI_REDMULE_H__ -#define __ARCHI_REDMULE_H__ - -/* - * |========================================================================| - * || || - * ||Control and generic configuration register layout || - * |========================================================================| - * || # reg | offset | bits | bitmask || content || - * ||-------+----------+---------+--------------++-------------------------|| - * || 0 | 0x0000 | 31: 0 | 0xFFFFFFFF || TRIGGER || - * || 1 | 0x0004 | 31: 0 | 0xFFFFFFFF || ACQUIRE || - * || 2 | 0x0008 | 31: 0 | 0xFFFFFFFF || EVT_ENABLE || - * || 3 | 0x000c | 31: 0 | 0xFFFFFFFF || STATUS || - * || 4 | 0x0010 | 31: 0 | 0xFFFFFFFF || RUNNING_JOB || - * || 5 | 0x0014 | 31: 0 | 0xFFFFFFFF || SOFT_CLEAR || - * |========================================================================| - * || || - * ||Job-dependent registers layout || - * |========================================================================| - * || # reg | offset | bits | bitmask || content || - * ||-------+----------+---------+--------------++-------------------------|| - * || 0 | 0x0040 | 31: 0 | 0xFFFFFFFF || X_ADDR || - * ||-------+----------+---------+--------------++-------------------------|| - * || 1 | 0x0044 | 31: 0 | 0xFFFFFFFF || W_ADDR || - * ||-------+----------+---------+--------------++-------------------------|| - * || 2 | 0x0048 | 31: 0 | 0xFFFFFFFF || Z_ADDR || - * ||-------+----------+---------+--------------++-------------------------|| - * || 3 | 0x004C | | || Matrix Config 0 Reg || - * || | | 31:16 | 0xFFFF0000 || K Size (W Columns) || - * || | | 15: 0 | 0x0000FFFF || M Size (X Rows) || - * ||-------+----------+---------+--------------++-------------------------|| - * || 4 | 0x0050 | | || Matrix Config 1 Reg || - * || | | 31:16 | 0xFFFFFFFF || N Size (X Cols/W Rows) || - * ||-------+----------+---------+--------------++-------------------------|| - * || 5 | 0x0054 | | || Matrix Arithmetic Reg || - * || | | 12:10 | 0x00001C00 || Operation selection || - * || | | 9: 7 | 0x00000380 || Input/Output format || - * |========================================================================| - * - */ - -/* PULP Cluster Archi defines */ -#define ARCHI_CLUST_CTRL_BASE 0x50200000 -#define ARCHI_CLUST_HWPE_BASE 0x50201000 -#define DMA_COMMAND_QUEUE 0x50204400 -#define DMA_STATUS_REGISTER 0x50204404 -#define ARCHI_CL_HWPE_EVT0 12 -#define ARCHI_CL_HWPE_EVT1 13 -#define FC_DMA_EVENT 8 -#define CL_DMA_EVENT 22 -#define CLUST_CTRL_HWPE_EN 0x18 -#define CLUST_CTRL_HWPE_EN_MASK 0x800 -#define __builtin_bitinsert(a,b,c,d) (a | (((b << (32-c)) >> (32-c)) << d)) - -// RedMulE architecture -#define ADDR_WIDTH 32 -#define DATA_WIDTH 256 -#define REDMULE_FMT 16 -#define ARRAY_HEIGHT 4 -#define PIPE_REGS 3 -#define ARRAY_WIDTH 12 /* Superior limit is ARRAY_HEIGHT*PIPE_REGS */ - -// Commands -#define REDMULE_TRIGGER 0x00 -#define REDMULE_ACQUIRE 0x04 -#define REDMULE_FINISHED 0x08 -#define REDMULE_STATUS 0x0C -#define REDMULE_RUNNING_JOB 0x10 -#define REDMULE_SOFT_CLEAR 0x14 - -// Registers -#define REDMULE_REG_OFFS 0x40 -// #define REDMULE_REG_X_PTR 0x00 -// #define REDMULE_REG_W_PTR 0x04 -// #define REDMULE_REG_Z_PTR 0x08 -// #define REDMULE_MCFG0_PTR 0x0C -// #define REDMULE_MCFG1_PTR 0x10 -// #define REDMULE_ARITH_PTR 0x14 -#define REDMULE_REG_X_PTR 0x00 -#define REDMULE_REG_W_PTR 0x04 -#define REDMULE_REG_Y_PTR 0x08 -#define REDMULE_REG_Z_PTR 0x0C -#define REDMULE_REG_X_ITER_PTR 0x10 -#define REDMULE_REG_W_ITER_PTR 0x14 -#define REDMULE_REG_LEFTOVERS_PTR 0x18 -#define REDMULE_REG_LEFT_PARAMS_PTR 0x1C -#define REDMULE_REG_X_D1_STRIDE_PTR 0x20 -#define REDMULE_REG_W_TOT_LEN_PTR 0x24 -#define REDMULE_REG_TOT_X_READ_PTR 0x28 -#define REDMULE_REG_W_D0_STRIDE_PTR 0x2C -#define REDMULE_REG_YZ_TOT_LEN_PTR 0x30 -#define REDMULE_REG_YZ_D0_STRIDE_PTR 0x34 -#define REDMULE_REG_YZ_D2_STRIDE_PTR 0x38 -#define REDMULE_REG_X_ROWS_OFFS_PTR 0x3C -#define REDMULE_REG_X_BUFFER_SLOTS_PTR 0x40 -#define REDMULE_REG_X_TOT_LEN_PTR 0x44 -#define REDMULE_REG_OP_SELECTION 0x48 - -// OPs definition -#define MATMUL 0x0 -#define GEMM 0x1 -#define ADDMAX 0x2 -#define ADDMIN 0x3 -#define MULMAX 0x4 -#define MULMIN 0x5 -#define MAXMIN 0x6 -#define MINMAX 0x7 - -// GEMM formats -#define Float8 0x0 -#define Float16 0x1 -#define Float8Alt 0x2 -#define Float16Alt 0x3 - -#define RNE 0x0 -#define RTZ 0x1 -#define OP_FMADD 0x0 -#define OP_ADD 0x2 -#define OP_MUL 0x3 -#define OP_MINMAX 0x7 - -// FP Formats encoding -#define FP16 0x2 -#define FP8 0x3 -#define FP16ALT 0x4 -#define FP8ALT 0x5 - -/* DMA Archi */ -#define DMA_TX 0 -#define DMA_RX 1 -#define DMA_INC 1 - -#define PLP_DMA_TYPE_BIT 0x00000011 -#define PLP_DMA_INCR_BIT 0x00000012 -#define PLP_DMA_2D_BIT 0x00000013 -#define PLP_DMA_ELE_BIT 0x00000014 -#define PLP_DMA_ILE_BIT 0x00000015 -#define PLP_DMA_BLE_BIT 0x00000016 -#define PLP_DMA_2D_TCDM_BIT 0x0000017 - -#endif diff --git a/carfield/redmule/hal_redmule.h b/carfield/redmule/hal_redmule.h deleted file mode 100644 index c5a0c32..0000000 --- a/carfield/redmule/hal_redmule.h +++ /dev/null @@ -1,527 +0,0 @@ -/* - * Copyright (C) 2022-2023 ETH Zurich and University of Bologna - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * SPDX-License-Identifier: Apache-2.0 - * - * Author: Yvan Tortorella - * - * RedMulE Hardware Abstraction Layer (HAL) - */ - -#ifndef __HAL_REDMULE_H__ -#define __HAL_REDMULE_H__ - -#include -#include "inc/x_input.h" -#include "inc/w_input.h" -#include "inc/y_input.h" -#include "inc/z_output.h" -#include "inc/golden.h" -#include "inc/tensor_dim.h" - -/* - * - * For control, generic configuration register layout, - * and job-dependent register map, look at redmule_archi.h - * - */ - -// For all the following functions we use __builtin_pulp_OffsetedWrite and __builtin_pulp_OffsetedRead -// instead of classic load/store because otherwise the compiler is not able to correctly factorize -// the HWPE base in case several accesses are done, ending up with twice more code - -#define HWPE_WRITE(value, offset) *(int *)(ARCHI_CLUST_HWPE_BASE + offset) = value -#define HWPE_READ(offset) *(int *)(ARCHI_CLUST_HWPE_BASE + offset) - -static inline void redmule_x_add_set (unsigned int value) { - HWPE_WRITE(value, REDMULE_REG_OFFS + REDMULE_REG_X_PTR); -} - -static inline void redmule_w_add_set (unsigned int value) { - HWPE_WRITE(value, REDMULE_REG_OFFS + REDMULE_REG_W_PTR); -} - -static inline void redmule_y_add_set (unsigned int value) { - HWPE_WRITE(value, REDMULE_REG_OFFS + REDMULE_REG_Y_PTR); -} - -static inline void redmule_z_add_set (unsigned int value) { - HWPE_WRITE(value, REDMULE_REG_OFFS + REDMULE_REG_Z_PTR); -} - -// static inline void redmule_mcfg_set (uint32_t mcfg0, uint32_t mcfg1) { -// HWPE_WRITE(mcfg0, REDMULE_REG_OFFS + REDMULE_MCFG0_PTR); -// HWPE_WRITE(mcfg1, REDMULE_REG_OFFS + REDMULE_MCFG1_PTR); -// } -// -// static inline void redmule_arith_set (uint32_t arith) { -// HWPE_WRITE(arith, REDMULE_REG_OFFS + REDMULE_ARITH_PTR); -// } - -static inline void hwpe_trigger_job() { - HWPE_WRITE(0, REDMULE_TRIGGER); -} - -static inline int hwpe_acquire_job() { - return HWPE_READ(REDMULE_ACQUIRE); -} - -static inline unsigned int hwpe_get_status() { - return HWPE_READ(REDMULE_STATUS); -} - -static inline void hwpe_soft_clear() { - HWPE_WRITE(1, REDMULE_SOFT_CLEAR); -} - -static inline void hwpe_cg_enable() { - *(volatile int*) (ARCHI_CLUST_CTRL_BASE + CLUST_CTRL_HWPE_EN) |= CLUST_CTRL_HWPE_EN_MASK; -} - -static inline void hwpe_cg_disable() { - *(volatile int*) (ARCHI_CLUST_CTRL_BASE + CLUST_CTRL_HWPE_EN) &= ~CLUST_CTRL_HWPE_EN_MASK; -} - -static inline void redmule_evt_wait() { - do { - eu_evt_maskWaitAndClr (1 << ARCHI_CL_HWPE_EVT0); - } while((*(int volatile *)(ARCHI_CLUST_HWPE_BASE + REDMULE_STATUS)) != 0); -} - -/* DMA APIs */ -static inline int mchan_alloc(){ - return *(volatile int*) DMA_COMMAND_QUEUE; -} - -static inline void mchan_transfer(unsigned int len, - unsigned int ext_addr, - unsigned int tcdm_addr) { - - *(volatile int*) DMA_COMMAND_QUEUE = len | - (DMA_RX << PLP_DMA_TYPE_BIT) | - (DMA_INC << PLP_DMA_INCR_BIT) | - (0 << PLP_DMA_2D_BIT) | - (1 << PLP_DMA_ELE_BIT) | - (1 << PLP_DMA_ILE_BIT) | - (0 << PLP_DMA_BLE_BIT) | - (0 << PLP_DMA_2D_TCDM_BIT); - *(volatile int*) DMA_COMMAND_QUEUE = tcdm_addr; - *(volatile int*) DMA_COMMAND_QUEUE = ext_addr; -} - -static inline void mchan_barrier(int id) { - while(((*(volatile int*)(DMA_STATUS_REGISTER)) >> id ) & 0x1 ) { - eu_evt_maskWaitAndClr(1 << FC_DMA_EVENT); - } -} - -static inline void mchan_free(int id) { - *(volatile int*) DMA_STATUS_REGISTER = 0x1 << id; -} - -// void redmule_cfg (unsigned int x, unsigned int w, unsigned int z, -// uint16_t m_size, uint16_t n_size, uint16_t k_size, -// uint8_t gemm_op, uint8_t gemm_fmt){ -// -// uint32_t mcfg_reg0 = 0; -// uint32_t mcfg_reg1 = 0; -// uint32_t arith_reg = 0; -// -// mcfg_reg0 = (k_size << 16) | -// (m_size << 0); -// mcfg_reg1 = n_size << 0; -// -// arith_reg = (gemm_op << 10) | -// (gemm_fmt << 7); -// -// redmule_x_add_set ((unsigned int) x); -// redmule_w_add_set ((unsigned int) w); -// redmule_z_add_set ((unsigned int) z); -// redmule_mcfg_set ((unsigned int) mcfg_reg0, -// (unsigned int) mcfg_reg1); -// redmule_arith_set ((unsigned int) arith_reg); -// -// } - -void redmule_cfg (uint16_t m_size, uint16_t n_size, uint16_t k_size, uint8_t gemm_ops){ - uint32_t x_iters = 0; - uint32_t w_iters = 0; - uint32_t leftovers = 0; - uint32_t left_params = 0; - uint32_t x_d1_stride = 0; - uint32_t x_rows_offs = 0; - uint32_t w_tot_len = 0; - uint32_t w_d1_len = 0; - uint32_t w_d0_stride = 0; - uint32_t yz_tot_len = 0; - uint32_t yz_d0_stride = 0; - uint32_t yz_d2_stride = 0; - uint32_t tot_x_read = 0; - uint32_t x_buffer_slots = 0; - uint32_t op_selection = 0; - uint16_t tot_stores = 0; - uint16_t w_rows = n_size; - uint16_t depth = DATA_WIDTH/(ARRAY_HEIGHT*FPFORMAT); - uint8_t tile = ARRAY_HEIGHT*(PIPE_REGS + 1); - _Bool x_rows_sub = 0; - _Bool x_cols_sub = 0; - _Bool w_cols_sub = 0; - uint16_t x_rows_iter, - x_rows_iter_tmp, - w_rows_iter, - w_rows_iter_tmp; - uint16_t x_cols_iter, - x_cols_iter_tmp, - w_cols_iter, - w_cols_iter_tmp; - uint8_t x_rows_lftovr, - x_cols_lftovr, - w_rows_lftovr, - w_cols_lftovr, - slots; - - // Calculating the number of iterations alng the two dimensions of the X matrix - x_rows_iter_tmp = m_size/ARRAY_WIDTH; - x_cols_iter_tmp = n_size/tile; - - // Calculating the number of iterations alng the two dimensions of the W matrix - w_rows_iter_tmp = w_rows; - w_cols_iter_tmp = k_size/tile; - - // Calculating the residuals along the input dimensions - x_rows_lftovr = m_size - (x_rows_iter_tmp*ARRAY_WIDTH); - x_cols_lftovr = n_size - (x_cols_iter_tmp*tile); - - // Calculating the residuals along the weight dimensions - w_rows_lftovr = n_size - (ARRAY_HEIGHT*(w_rows/ARRAY_HEIGHT)); - w_cols_lftovr = k_size - (w_cols_iter_tmp*tile); - - if (w_cols_lftovr != 0) - w_cols_iter = w_cols_iter_tmp + 1; - else - w_cols_iter = w_cols_iter_tmp; - - if (w_rows_lftovr != 0) - w_rows_iter = w_rows_iter_tmp + ARRAY_HEIGHT - w_rows_lftovr; - else - w_rows_iter = w_rows_iter_tmp; - - if (x_cols_lftovr != 0) - x_cols_iter = x_cols_iter_tmp + 1; - else - x_cols_iter = x_cols_iter_tmp; - - if (x_rows_lftovr != 0) - x_rows_iter = x_rows_iter_tmp + 1; - else - x_rows_iter = x_rows_iter_tmp; - - if (x_cols_lftovr%depth != 0) - x_buffer_slots = x_cols_lftovr/depth + 1; - else - x_buffer_slots = x_cols_lftovr/depth; - - // Calculating the number of total stores - tot_stores = x_rows_iter*w_cols_iter; - - // Determining if input matrixes are sub-matrixes - if (m_size < ARRAY_WIDTH) - x_rows_sub = 1; - if (n_size < ARRAY_HEIGHT) - x_cols_sub = 1; - if (k_size < tile) - w_cols_sub = 1; - - // Operation selection - switch (gemm_ops) { - case MATMUL: - op_selection |= (RNE << 29 | RNE << 26 | OP_FMADD << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 0; - break; - - case GEMM: - op_selection |= (RNE << 29 | RNE << 26 | OP_FMADD << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; - break; - - case ADDMAX: - op_selection |= (RNE << 29 | RTZ << 26 | OP_ADD << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; - break; - - case ADDMIN: - op_selection |= (RNE << 29 | RNE << 26 | OP_ADD << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; - break; - - case MULMAX: - op_selection |= (RNE << 29 | RTZ << 26 | OP_MUL << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; - break; - - case MULMIN: - op_selection |= (RNE << 29 | RNE << 26 | OP_MUL << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; - break; - - case MAXMIN: - op_selection |= (RTZ << 29 | RNE << 26 | OP_MINMAX << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; - break; - - case MINMAX: - op_selection |= (RNE << 29 | RTZ << 26 | OP_MINMAX << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; - break; - } - - // Storing iterations and residuals in registers - x_iters |= x_rows_iter << 16 | x_cols_iter << 0; - w_iters |= w_rows_iter << 16 | w_cols_iter << 0; - leftovers |= x_rows_lftovr << 24 | x_cols_lftovr << 16 | w_rows_lftovr << 8 | w_cols_lftovr << 0; - left_params |= tot_stores << 16 | x_rows_sub << 15 | x_cols_sub << 14 | w_cols_sub << 13; - x_d1_stride = ((4*FPFORMAT)/ADDR_WIDTH)*(((DATA_WIDTH/FPFORMAT)*x_cols_iter_tmp) + x_cols_lftovr); - x_rows_offs = ARRAY_WIDTH*x_d1_stride; - w_tot_len = w_rows_iter*w_cols_iter*x_rows_iter; - w_d0_stride = ((4*FPFORMAT)/ADDR_WIDTH)*(((DATA_WIDTH/FPFORMAT)*w_cols_iter_tmp) + w_cols_lftovr); - yz_tot_len = ARRAY_WIDTH*x_rows_iter*w_cols_iter; - yz_d0_stride = w_d0_stride; - yz_d2_stride = ARRAY_WIDTH*w_d0_stride; - tot_x_read = x_rows_iter*x_cols_iter*w_cols_iter; - - // Writing the computations in configuration register - HWPE_WRITE(x_iters , REDMULE_REG_OFFS + REDMULE_REG_X_ITER_PTR ); - HWPE_WRITE(w_iters , REDMULE_REG_OFFS + REDMULE_REG_W_ITER_PTR ); - HWPE_WRITE(leftovers , REDMULE_REG_OFFS + REDMULE_REG_LEFTOVERS_PTR ); - HWPE_WRITE(left_params , REDMULE_REG_OFFS + REDMULE_REG_LEFT_PARAMS_PTR ); - HWPE_WRITE(x_d1_stride , REDMULE_REG_OFFS + REDMULE_REG_X_D1_STRIDE_PTR ); - HWPE_WRITE(x_rows_offs , REDMULE_REG_OFFS + REDMULE_REG_X_ROWS_OFFS_PTR ); - HWPE_WRITE(tot_x_read , REDMULE_REG_OFFS + REDMULE_REG_TOT_X_READ_PTR ); - HWPE_WRITE(x_buffer_slots, REDMULE_REG_OFFS + REDMULE_REG_X_BUFFER_SLOTS_PTR ); - HWPE_WRITE(w_tot_len , REDMULE_REG_OFFS + REDMULE_REG_W_TOT_LEN_PTR ); - HWPE_WRITE(w_d0_stride , REDMULE_REG_OFFS + REDMULE_REG_W_D0_STRIDE_PTR ); - HWPE_WRITE(yz_tot_len , REDMULE_REG_OFFS + REDMULE_REG_YZ_TOT_LEN_PTR ); - HWPE_WRITE(yz_d0_stride , REDMULE_REG_OFFS + REDMULE_REG_YZ_D0_STRIDE_PTR ); - HWPE_WRITE(yz_d2_stride , REDMULE_REG_OFFS + REDMULE_REG_YZ_D2_STRIDE_PTR ); - HWPE_WRITE(op_selection , REDMULE_REG_OFFS + REDMULE_REG_OP_SELECTION ); -} - -void generate_test_data16(int x_start_addr, - int w_start_addr, - int y_start_addr, - int m_size, - int n_size, - int k_size) { - - int x_addr = x_start_addr; - int w_addr = w_start_addr; - int y_addr = y_start_addr; - int x_end_addr = x_start_addr + (2*m_size*n_size); - int w_end_addr = w_start_addr + (2*n_size*k_size); - int y_end_addr = y_start_addr + (2*m_size*k_size); - - // Generating input stimuli from golden model - for (x_addr = x_start_addr; x_addr < x_end_addr; x_addr += 2) { - int x = x_addr - x_start_addr; - *(uint32_t *)(x_addr) = x_inp[x/2]; - } - - // Generating Weight stimuli from golden model - for (w_addr = w_start_addr; w_addr < w_end_addr; w_addr += 2) { - int w = w_addr - w_start_addr; - *(uint32_t *)(w_addr) = w_inp[w/2]; - } - - for (y_addr = y_start_addr; y_addr < y_end_addr; y_addr += 2) { - int y = y_addr - y_start_addr; - *(uint32_t *)(y_addr) = y_inp[y/2]; - } -} - -int redmule_compare16 (int z_start_addr, int m_size, int k_size) { - int err = 0; - int z_end_addr = z_start_addr + 2*m_size*k_size; - uint16_t z_computed; - uint16_t diff, diff_1, diff_2; - - for (int z_addr = z_start_addr; z_addr < z_end_addr; z_addr += 2) { - int z = z_addr - z_start_addr; - z_computed = *(uint32_t *)(z_addr); - - if ( z_computed != z_oup[z/2] ) { - diff_1 = z_computed - z_oup[z/2]; - if (diff_1 > 3) { - diff_2 = z_oup[z/2] - z_computed; - if (diff_2 > 3) { - err++; - } - } - } - } - - return err; - -} - -int redmule16_compare_int(uint32_t *actual_z, uint32_t *golden_z, int len) { - #define ERR 0x0011 - uint32_t actual_word = 0; - uint16_t actual_MSHWord, actual_LSHWord; - uint32_t golden_word = 0; - uint16_t golden_MSHWord, golden_LSHWord; - uint32_t actual = 0; - uint32_t golden = 0; - - int errors = 0; - int error; - - for (int i=0; i golden_LSHWord) ? (actual_LSHWord - golden_LSHWord) : 0; - diff = (actual_LSHWord < golden_LSHWord) ? (golden_LSHWord - actual_LSHWord) : 0; - - if (diff > ERR) { - error = 1; - #ifdef VERBOSE - tfp_printf ("diff: 0x%08x\n", diff); - tfp_printf ("LSW: Error!\n"); - #endif - } - - // Checking Most Significant Half-Word - actual_MSHWord = (uint16_t)((actual_word >> 16) & 0x0000FFFF); - golden_MSHWord = (uint16_t)((golden_word >> 16) & 0x0000FFFF); - - diff = (actual_MSHWord > golden_MSHWord) ? (actual_MSHWord - golden_MSHWord) : 0; - diff = (actual_MSHWord < golden_MSHWord) ? (golden_MSHWord - actual_MSHWord) : 0; - - if (diff > ERR) { - error = 1; - #ifdef VERBOSE - tfp_printf ("diff: 0x%08x\n", diff); - tfp_printf ("MSW: Error!\n"); - #endif - } - - errors += error; - - #ifdef DEBUG - tfp_printf(" Golden: 0x%08x; Actual: 0x%08x,\n", golden_word, actual_word); - #endif - - #ifdef VERBOSE - if(error) { - if(errors==1) tfp_printf(" golden <- actual @ address @ index\n"); - tfp_printf(" 0x%08x <- 0x%08x @ 0x%08x @ 0x%08x\n", golden_word, actual_word, (actual_z+i), i*4); - } - #endif - } - return errors; -} - -int redmule8_compare_int(uint32_t *actual_z, uint32_t *golden_z, int len) { - #define ERR 0x0011 - uint32_t actual_word = 0; - uint8_t actual_Byte0, - actual_Byte1, - actual_Byte2, - actual_Byte3; - uint32_t golden_word = 0; - uint8_t golden_Byte0, - golden_Byte1, - golden_Byte2, - golden_Byte3; - uint32_t actual = 0; - uint32_t golden = 0; - - int errors = 0; - int error; - - for (int i=0; i golden_Byte0) ? (actual_Byte0 - golden_Byte0) : 0; - diff = (actual_Byte0 < golden_Byte0) ? (golden_Byte0 - actual_Byte0) : 0; - - if (diff > ERR) { - error = 1; - tfp_printf ("diff: 0x%08x\n", diff); - tfp_printf ("Byte0: Error!\n"); - } - - // Cheching Byte1 - actual_Byte1 = (uint8_t)( (actual_word >> 8 ) & 0x000000FF); - golden_Byte1 = (uint8_t)( (golden_word >> 8 ) & 0x000000FF); - - diff = (actual_Byte1 > golden_Byte1) ? (actual_Byte1 - golden_Byte1) : 0; - diff = (actual_Byte1 < golden_Byte1) ? (golden_Byte1 - actual_Byte1) : 0; - - if (diff > ERR) { - error = 1; - tfp_printf ("diff: 0x%08x\n", diff); - tfp_printf ("Byte1: Error!\n"); - } - - // Cheching Byte2 - actual_Byte2 = (uint8_t)( (actual_word >> 16 ) & 0x000000FF); - golden_Byte2 = (uint8_t)( (golden_word >> 16 ) & 0x000000FF); - - diff = (actual_Byte2 > golden_Byte2) ? (actual_Byte2 - golden_Byte2) : 0; - diff = (actual_Byte2 < golden_Byte2) ? (golden_Byte2 - actual_Byte2) : 0; - - if (diff > ERR) { - error = 1; - tfp_printf ("diff: 0x%08x\n", diff); - tfp_printf ("Byte2: Error!\n"); - } - - // Cheching Byte3 - actual_Byte3 = (uint8_t)( (actual_word >> 24 ) & 0x000000FF); - golden_Byte3 = (uint8_t)( (golden_word >> 24 ) & 0x000000FF); - - diff = (actual_Byte3 > golden_Byte3) ? (actual_Byte3 - golden_Byte3) : 0; - diff = (actual_Byte3 < golden_Byte3) ? (golden_Byte3 - actual_Byte3) : 0; - - if (diff > ERR) { - error = 1; - tfp_printf ("diff: 0x%08x\n", diff); - tfp_printf ("Byte3: Error!\n"); - } - - errors += error; - - #ifdef DEBUG - tfp_printf(" Golden: 0x%08x; Actual: 0x%08x,\n", golden_word, actual_word); - #endif - - #ifdef VERBOSE - if(error) { - if(errors==1) tfp_printf(" golden <- actual @ address @ index\n"); - tfp_printf(" 0x%08x <- 0x%08x @ 0x%08x @ 0x%08x\n", golden_word, actual_word, (actual_z+i), i*4); - } - #endif - } - return errors; -} - -#endif diff --git a/carfield/redmule/inc/golden.h b/carfield/redmule/inc/golden.h deleted file mode 100644 index f664e47..0000000 --- a/carfield/redmule/inc/golden.h +++ /dev/null @@ -1,387 +0,0 @@ - /* Header file generated by RedMulE Golden Model */ -uint32_t golden [384] = { -0x48974845, -0x48384608, -0x487b4855, -0x48804869, -0x48b046d1, -0x483f48db, -0x485f48c9, -0x483a4881, -0x472c484b, -0x492b4762, -0x48fd4822, -0x492e488e, -0x484f483e, -0x46d749e8, -0x489d484b, -0x47e9490b, -0x47d2484f, -0x474744be, -0x46c047c7, -0x48af4727, -0x482d46c5, -0x482e483d, -0x479f4897, -0x4749488b, -0x46a8489a, -0x488b46f2, -0x47e84891, -0x483d4872, -0x46fd4716, -0x46a049b5, -0x47a446e7, -0x476748a1, -0x49354939, -0x48c14703, -0x48bd4863, -0x48cf4913, -0x48b848b6, -0x49204946, -0x48e1495e, -0x48b24938, -0x4882493a, -0x49d5483b, -0x49724911, -0x49df496b, -0x488848f2, -0x48214a46, -0x490c48c1, -0x48a349b2, -0x47b0463a, -0x476244cb, -0x46b94765, -0x4814466a, -0x47964631, -0x474b4666, -0x47044798, -0x47614838, -0x459047d3, -0x48a245ea, -0x484447f1, -0x4776484b, -0x46d847d6, -0x44d348f3, -0x478d46fa, -0x466e481e, -0x481e4827, -0x479445a2, -0x48064727, -0x48d5475d, -0x48284708, -0x480d4862, -0x48324895, -0x47f148bd, -0x46a7482a, -0x492d47b1, -0x4884484d, -0x485f48dc, -0x480c476d, -0x46d348e9, -0x48844728, -0x480e48a0, -0x48134862, -0x485a4675, -0x473847e8, -0x48234836, -0x482146e7, -0x47b34822, -0x48554846, -0x47174863, -0x47c14872, -0x488e46d5, -0x485f47e2, -0x48b8487c, -0x4788481e, -0x467748bd, -0x47f846c9, -0x47fc48fe, -0x47b247a0, -0x467e4588, -0x46c74662, -0x481246e8, -0x474e4536, -0x468f46c0, -0x4679481f, -0x46e246a1, -0x45604809, -0x47eb4630, -0x475746b5, -0x477f4848, -0x46d846a6, -0x459a4870, -0x46784670, -0x468c47d2, -0x48c44762, -0x479146e3, -0x486d46b1, -0x486747d0, -0x47f6468d, -0x475648a5, -0x48544857, -0x48384866, -0x46ec484d, -0x48f647d2, -0x4879484a, -0x483c4848, -0x4806471d, -0x473048fa, -0x47b84768, -0x46f94865, -0x491848a8, -0x486746ca, -0x48624800, -0x491048d3, -0x4849474e, -0x486b48eb, -0x48c54966, -0x483048f4, -0x477848f9, -0x499e481e, -0x48f148cf, -0x49234982, -0x47cf487c, -0x464949ea, -0x495e4773, -0x483f48b2, -0x497548a7, -0x481e4616, -0x4866481f, -0x486448b6, -0x487347dc, -0x487f485c, -0x491f4938, -0x48b6490d, -0x48a148f8, -0x492d4859, -0x4915489c, -0x48874899, -0x4859486c, -0x471e49ca, -0x49184867, -0x482748d3, -0x4998488b, -0x481d4704, -0x488048b8, -0x49444876, -0x48f2470c, -0x489b48b9, -0x48e54956, -0x48a548d6, -0x485648dc, -0x49ab484e, -0x490e48e0, -0x494548dd, -0x48dd488b, -0x47ea4a32, -0x49114835, -0x48194965, -0x481e460e, -0x4673452c, -0x4717475c, -0x46d046f6, -0x46bc4696, -0x481e4726, -0x46ea4763, -0x475846fe, -0x4627478b, -0x483f4704, -0x47b146ad, -0x48164792, -0x468446f2, -0x45a84827, -0x47a4472f, -0x462b4797, -0x48ab483f, -0x4863468f, -0x4766485a, -0x48cb481d, -0x490347dc, -0x483048fc, -0x483e48cc, -0x486448ab, -0x47634966, -0x499d4794, -0x488b488e, -0x496048dc, -0x484c4854, -0x474c499c, -0x48bc4826, -0x48834949, -0x4905489d, -0x481e4718, -0x48f448e3, -0x490448c1, -0x48b347e8, -0x48d44892, -0x489448ff, -0x488648d5, -0x480348fa, -0x492e47d2, -0x48b24870, -0x492b48e5, -0x4785487b, -0x471d49e3, -0x48bf4837, -0x48c4489b, -0x4871475c, -0x4811464a, -0x471c47af, -0x48174817, -0x484e463b, -0x464f477f, -0x487c4704, -0x472547a3, -0x462a4853, -0x4860465a, -0x48804736, -0x482b47e1, -0x46c04811, -0x475d48dc, -0x48064668, -0x46f44893, -0x49594858, -0x487b463d, -0x484e480f, -0x48a648c0, -0x48944847, -0x484a48a0, -0x48f4491e, -0x48b548fc, -0x47d248ce, -0x497f47db, -0x49394955, -0x48ce48a7, -0x48844890, -0x476349d6, -0x4922486e, -0x48c348f4, -0x491c47ec, -0x47834698, -0x47544715, -0x47524745, -0x4832472f, -0x48094817, -0x48c347f8, -0x480047e6, -0x473048b6, -0x48cb480a, -0x488e479e, -0x488e47c2, -0x47ee472f, -0x4744489d, -0x48514755, -0x47d34846, -0x48a04838, -0x47624634, -0x48064786, -0x482d47e3, -0x486c4726, -0x480347b7, -0x481448ac, -0x483948e0, -0x47504827, -0x48c546f2, -0x4886483f, -0x485648ad, -0x47a947e8, -0x47434937, -0x481f46d0, -0x4804484c, -0x481f47fd, -0x4813456d, -0x4807474d, -0x480e4688, -0x481046e8, -0x4799469f, -0x478f4853, -0x482447f2, -0x471f47d0, -0x485f46da, -0x481c4813, -0x4863482e, -0x480b4786, -0x46b848c9, -0x46e2475a, -0x46c54852, -0x480245af, -0x46c24466, -0x4743465d, -0x47ba46b7, -0x46c34636, -0x47844677, -0x47c2485a, -0x46ac46dc, -0x460e47de, -0x4834465f, -0x476947f4, -0x481046fc, -0x45ea45fd, -0x45b548d0, -0x47834704, -0x46c44830, -0x47c74759, -0x45b0453d, -0x47024741, -0x47934736, -0x47ba461b, -0x46dd470b, -0x470b4657, -0x4710470d, -0x468f486c, -0x46ba45c3, -0x483b479d, -0x477446c9, -0x46a746a9, -0x46064833, -0x46a94690, -0x46a746f5, -0x48bb47ac, -0x4803452c, -0x4824470f, -0x48cb47d5, -0x484a4707, -0x47974832, -0x482c4851, -0x4877487a, -0x465d4891, -0x48ce47f4, -0x48994898, -0x486a484e, -0x47f047ac, -0x4611493e, -0x489e47e2, -0x46af488c, -0x48364665, -0x46b645e4, -0x46b946a1, -0x46dd46c8, -0x474b4658, -0x4777467b, -0x47984769, -0x475e4785, -0x4656472a, -0x488145fb, -0x472d46fc, -0x47a3476e, -0x46ca465d, -0x45004855, -0x479a464f, -0x473846c3, -0x486c481e, -0x48014659, -0x477a4756, -0x487b47d5, -0x48084706, -0x4838484f, -0x48634870, -0x480648d3, -0x47714865, -0x494c46be, -0x484c4915, -0x48624900, -0x46e8481a, -0x46a04974, -0x483d4775, -0x480e487c, -}; \ No newline at end of file diff --git a/carfield/redmule/inc/tensor_dim.h b/carfield/redmule/inc/tensor_dim.h deleted file mode 100644 index 21bd0d8..0000000 --- a/carfield/redmule/inc/tensor_dim.h +++ /dev/null @@ -1,13 +0,0 @@ - /* Header file generated by RedMulE Golden Model */ -#ifndef __TENSOR_DIM__ -#define __TENSOR_DIM__ - -#define M_SIZE 24 -#define N_SIZE 32 -#define K_SIZE 32 -#define SRC_FMT FP16 -#define DST_FMT FP16 -#define FPFORMAT 16 -uint8_t gemm_ops = GEMM; - -#endif diff --git a/carfield/redmule/inc/w_2D.h b/carfield/redmule/inc/w_2D.h deleted file mode 100644 index 9409c64..0000000 --- a/carfield/redmule/inc/w_2D.h +++ /dev/null @@ -1,35 +0,0 @@ - /* Header file generated by RedMulE Golden Model */ -uint16_t w_inp_2D [32][32] = { -0x311a, 0x39e0, 0x387d, 0x3a4a, 0x386f, 0x3ada, 0x392f, 0x3854, 0x3014, 0x2fd2, 0x31c9, 0x2fca, 0x2e55, 0x3bc8, 0x396d, 0x3b1d, 0x39f6, 0x333a, 0x3908, 0x3628, 0x3bab, 0x3b8b, 0x3b4a, 0x322d, 0x3925, 0x317a, 0x3725, 0x31c2, 0x3066, 0x38f3, 0x3a17, 0x3476, -0x3bda, 0x3196, 0x3922, 0x3680, 0x396a, 0x3021, 0x3761, 0x374d, 0x2fc2, 0x3967, 0x3b94, 0x33b5, 0x3797, 0x34d6, 0x3655, 0x2176, 0x39bc, 0x3999, 0x3658, 0x3904, 0x3759, 0x2ade, 0x3a5a, 0x3b78, 0x36c7, 0x2d01, 0x3b58, 0x2d9a, 0x373d, 0x3952, 0x38e8, 0x3887, -0x37b6, 0x3a88, 0x2f8a, 0x2d79, 0x3413, 0x3421, 0x3976, 0x32b2, 0x3446, 0x2d99, 0x3a56, 0x3322, 0x3b49, 0x39fa, 0x3acd, 0x3af6, 0x304c, 0x3abb, 0x3a83, 0x38b2, 0x3ab9, 0x363e, 0x389f, 0x31bb, 0x38e1, 0x3bc4, 0x3b9b, 0x2984, 0x3a43, 0x3b2f, 0x35d6, 0x3bda, -0x2df3, 0x3bf8, 0x2acc, 0x378b, 0x3555, 0x2e59, 0x31d4, 0x34ec, 0x3a46, 0x3bab, 0x3214, 0x3161, 0x3470, 0x3a03, 0x368e, 0x31ad, 0x27cb, 0x2ecb, 0x3422, 0x39f7, 0x3644, 0x3a77, 0x313f, 0x34f2, 0x39b3, 0x3bf2, 0x379a, 0x3456, 0x35fe, 0x3ae7, 0x3964, 0x385f, -0x3b16, 0x3999, 0x3833, 0x2eda, 0x3afd, 0x3a4a, 0x3ba2, 0x2bd4, 0x3b38, 0x31a2, 0x32dd, 0x353c, 0x366f, 0x375e, 0x3821, 0x367a, 0x3b44, 0x39e6, 0x3787, 0x339e, 0x39d7, 0x38c6, 0x37d5, 0x342f, 0x3984, 0x319b, 0x33b5, 0x35ab, 0x398a, 0x374e, 0x36b6, 0x3b21, -0x3bbb, 0x2ab3, 0x2ad5, 0x33bc, 0x2bef, 0x3780, 0x3738, 0x3a0b, 0x3b09, 0x30ca, 0x384e, 0x3ab3, 0x39bd, 0x3453, 0x3a6d, 0x3957, 0x2c10, 0x30e9, 0x35d4, 0x3aef, 0x3be9, 0x39ad, 0x3a74, 0x3af9, 0x3739, 0x2d4d, 0x39fe, 0x3b72, 0x2c57, 0x398c, 0x381f, 0x3930, -0x3820, 0x321b, 0x3964, 0x2964, 0x33a0, 0x2d00, 0x2490, 0x336b, 0x3465, 0x3b2e, 0x3aa0, 0x371f, 0x300e, 0x3a09, 0x3bf1, 0x25cc, 0x3b6f, 0x3384, 0x3a88, 0x3acb, 0x3814, 0x36d0, 0x3081, 0x3a2c, 0x3353, 0x39cb, 0x31ed, 0x3af6, 0x3721, 0x36c7, 0x2ce2, 0x390d, -0x3698, 0x3ab2, 0x3b3e, 0x2eb4, 0x3998, 0x39e3, 0x3a77, 0x3632, 0x2c12, 0x3bd5, 0x3ba3, 0x3bba, 0x323c, 0x367b, 0x3557, 0x39c8, 0x37db, 0x3b45, 0x3b6e, 0x3931, 0x3121, 0x3a8d, 0x3a55, 0x3b9b, 0x358a, 0x3925, 0x3491, 0x3912, 0x3b6b, 0x3584, 0x32df, 0x3120, -0x32b2, 0x3b0a, 0x2cad, 0x3465, 0x3ad3, 0x3bcd, 0x363b, 0x3afe, 0x354b, 0x3374, 0x39af, 0x3b7f, 0x308c, 0x2e72, 0x3380, 0x3b70, 0x3902, 0x38d8, 0x39f3, 0x3a4b, 0x3853, 0x397b, 0x2ebe, 0x387f, 0x2845, 0x37e2, 0x360f, 0x370b, 0x3acb, 0x35d4, 0x36e6, 0x3262, -0x2e88, 0x3a54, 0x2ee3, 0x3575, 0x3afe, 0x2aee, 0x39a0, 0x3aae, 0x3693, 0x3432, 0x3834, 0x3b9b, 0x3bcb, 0x2e3a, 0x356d, 0x374e, 0x3924, 0x383c, 0x311e, 0x3ac5, 0x352d, 0x311e, 0x38ca, 0x34d4, 0x36ca, 0x34ed, 0x3a13, 0x33eb, 0x3639, 0x3828, 0x3b3c, 0x3939, -0x3837, 0x3521, 0x2cb5, 0x3629, 0x3924, 0x384c, 0x366a, 0x3bbf, 0x2e9e, 0x3ba8, 0x33ad, 0x38c8, 0x3934, 0x3907, 0x249a, 0x3690, 0x3a09, 0x3215, 0x3898, 0x325d, 0x37d5, 0x3195, 0x361c, 0x3ae4, 0x351f, 0x3452, 0x3bc0, 0x375c, 0x39bf, 0x317a, 0x3aae, 0x283a, -0x3476, 0x3b92, 0x3472, 0x383e, 0x280f, 0x39d6, 0x2fd1, 0x31f4, 0x2ffb, 0x3b97, 0x3692, 0x36c0, 0x3989, 0x33cf, 0x3ba6, 0x3239, 0x35d7, 0x33ab, 0x31eb, 0x3b47, 0x389b, 0x3b88, 0x3580, 0x354c, 0x3802, 0x3b9a, 0x3b94, 0x2a92, 0x2db1, 0x38bd, 0x2dfb, 0x3900, -0x344f, 0x3739, 0x27a5, 0x3b2e, 0x342b, 0x34bb, 0x30c8, 0x3ae8, 0x3b26, 0x3982, 0x38c0, 0x3408, 0x38c8, 0x36ef, 0x3bf0, 0x3acf, 0x3a3c, 0x3825, 0x31a5, 0x3ada, 0x3b5b, 0x37db, 0x3a01, 0x3663, 0x3a7d, 0x327b, 0x3a1f, 0x3862, 0x38af, 0x3204, 0x372e, 0x3b19, -0x3708, 0x3622, 0x2e62, 0x39ab, 0x2d4d, 0x31b4, 0x3552, 0x3bbc, 0x36f2, 0x36eb, 0x38ef, 0x3755, 0x3bbe, 0x2c17, 0x3815, 0x2f53, 0x363f, 0x38c1, 0x3246, 0x386b, 0x34de, 0x34e4, 0x3baa, 0x349e, 0x32ce, 0x3a68, 0x373f, 0x2cce, 0x3b36, 0x28ba, 0x3b50, 0x3232, -0x1f34, 0x3928, 0x35cd, 0x3b38, 0x30ce, 0x35a1, 0x3a06, 0x3a32, 0x3a53, 0x3489, 0x3241, 0x372f, 0x390c, 0x3a1b, 0x378a, 0x3713, 0x3769, 0x37a8, 0x3418, 0x3ad4, 0x3a4e, 0x3bf7, 0x37a5, 0x34dc, 0x39b2, 0x351b, 0x3372, 0x349f, 0x2f50, 0x3ab1, 0x3795, 0x2db7, -0x3864, 0x3157, 0x3900, 0x323e, 0x389e, 0x3880, 0x3b1f, 0x37a1, 0x396c, 0x2e43, 0x2c2a, 0x3b78, 0x3988, 0x3a14, 0x39c1, 0x3b51, 0x3780, 0x3bf2, 0x2d19, 0x3815, 0x3a5f, 0x3641, 0x2f62, 0x37d5, 0x3564, 0x139a, 0x3ab8, 0x28f7, 0x3785, 0x34e1, 0x3097, 0x3768, -0x3971, 0x3ae2, 0x32ae, 0x2fd5, 0x382a, 0x346c, 0x3133, 0x3167, 0x3940, 0x2d12, 0x389a, 0x3bd0, 0x3943, 0x391c, 0x3a75, 0x2a11, 0x391e, 0x372d, 0x3a79, 0x3b72, 0x3373, 0x39b7, 0x35d7, 0x372b, 0x3a6d, 0x38a1, 0x3279, 0x3434, 0x3694, 0x3b45, 0x3abb, 0x392d, -0x34a8, 0x3757, 0x32ca, 0x345d, 0x36a5, 0x3854, 0x2dcd, 0x30af, 0x38dd, 0x3067, 0x3411, 0x3997, 0x397a, 0x3a64, 0x38b8, 0x3962, 0x3509, 0x3bb6, 0x3a66, 0x339f, 0x372a, 0x31a8, 0x37da, 0x36ff, 0x33c6, 0x31da, 0x3977, 0x3b72, 0x3841, 0x3567, 0x3433, 0x33b8, -0x39fe, 0x3a10, 0x3bf2, 0x35e7, 0x3a4a, 0x3b3e, 0x2ec7, 0x3aa4, 0x3846, 0x3af9, 0x38a9, 0x2c1f, 0x39ab, 0x349f, 0x31d6, 0x39ae, 0x3b79, 0x352d, 0x3516, 0x347c, 0x2f33, 0x35ad, 0x31c4, 0x3b52, 0x354b, 0x3786, 0x3ab7, 0x3896, 0x34ac, 0x352f, 0x37e6, 0x326a, -0x2e44, 0x34c7, 0x388d, 0x3bf4, 0x363f, 0x3b3d, 0x33b1, 0x3b8b, 0x3340, 0x37f7, 0x3b07, 0x25bf, 0x398e, 0x3505, 0x3bd7, 0x366d, 0x388a, 0x2cc0, 0x359a, 0x3b9a, 0x3b99, 0x379d, 0x3b6b, 0x39b8, 0x3223, 0x2703, 0x3ba9, 0x2ecb, 0x3759, 0x39d8, 0x37ac, 0x32cf, -0x35f2, 0x38a3, 0x399e, 0x3bd2, 0x3780, 0x3af3, 0x3b5e, 0x337b, 0x3a08, 0x35da, 0x3446, 0x3b25, 0x3ad0, 0x3bee, 0x3141, 0x32d8, 0x34ce, 0x2ac9, 0x3800, 0x3a8a, 0x2d53, 0x368a, 0x3561, 0x3998, 0x35a3, 0x3677, 0x3ab2, 0x3269, 0x3236, 0x3b3e, 0x3aba, 0x3bac, -0x395d, 0x3820, 0x1df6, 0x3bb5, 0x35b5, 0x3675, 0x3b74, 0x360f, 0x34de, 0x3a0c, 0x3aeb, 0x299d, 0x3207, 0x3bd8, 0x2178, 0x3995, 0x3948, 0x3908, 0x3843, 0x2ea5, 0x3045, 0x3989, 0x345d, 0x39c5, 0x3a89, 0x3863, 0x3be0, 0x397a, 0x38f1, 0x39e2, 0x3b08, 0x352e, -0x385f, 0x28f2, 0x3bc3, 0x35e0, 0x380c, 0x3b9c, 0x3afc, 0x390a, 0x3689, 0x34fd, 0x2cf5, 0x308e, 0x342b, 0x3921, 0x3a67, 0x3ad6, 0x2986, 0x32fc, 0x35aa, 0x3507, 0x3608, 0x33fd, 0x3bf3, 0x39e2, 0x3b0f, 0x30b7, 0x3896, 0x3ae4, 0x2145, 0x35b6, 0x2e1d, 0x3ad1, -0x333d, 0x3afb, 0x2703, 0x3413, 0x1d7d, 0x3b7f, 0x3ae1, 0x303c, 0x3004, 0x39d3, 0x3554, 0x31a4, 0x354e, 0x3662, 0x39c5, 0x2eb7, 0x2c6e, 0x397f, 0x31d8, 0x1f0c, 0x38e3, 0x35f0, 0x2714, 0x28d1, 0x375e, 0x3a75, 0x3830, 0x3578, 0x397d, 0x3b18, 0x383c, 0x3498, -0x39ad, 0x3598, 0x23c4, 0x34ea, 0x3a61, 0x2b00, 0x3707, 0x3ae1, 0x37ae, 0x389d, 0x37fa, 0x3673, 0x3278, 0xf3e, 0x3809, 0x33c6, 0x3bf5, 0x3279, 0x3816, 0x360c, 0x39c8, 0x381f, 0x3741, 0x2d66, 0x38c0, 0x37d3, 0x377a, 0x3621, 0x2faf, 0x392e, 0x2de6, 0x33c5, -0x3803, 0x2600, 0x32e9, 0x39b4, 0x38d2, 0x34e8, 0x2fe6, 0x3199, 0x3643, 0x3a77, 0x27cc, 0x39d7, 0x34c6, 0x2ea8, 0x364e, 0x3b07, 0x31c7, 0x30a1, 0x31b1, 0x3b8f, 0x3571, 0x3b75, 0x3989, 0x3805, 0x39fb, 0x3945, 0x352b, 0x31d8, 0x3904, 0x3440, 0x3a57, 0x2cf7, -0x3b39, 0x2fcd, 0x2b89, 0x2edd, 0x3682, 0x36a9, 0x32c8, 0x37ac, 0x32a5, 0x3311, 0x394b, 0x3b84, 0x3aec, 0x3601, 0x2765, 0x3b69, 0x396b, 0x3727, 0x3bfe, 0x3907, 0x376f, 0x3674, 0x3973, 0x3671, 0x3491, 0x3993, 0x383f, 0x3335, 0x3989, 0x3550, 0x3077, 0x35f5, -0x3a59, 0x3950, 0x380c, 0x37cd, 0x30bf, 0x3607, 0x3afa, 0x3b5d, 0x32b9, 0x386b, 0x35bd, 0x3aca, 0x3ba5, 0x3b2d, 0x3b19, 0x3b8b, 0x345e, 0x2845, 0x34aa, 0x372a, 0x3448, 0x34f5, 0x3ae2, 0x3637, 0x2cb5, 0x354b, 0x3b15, 0x2ca8, 0x2641, 0x3178, 0x2cfe, 0x39b4, -0x3bdd, 0x3acb, 0x3a05, 0x38a2, 0x3b4a, 0x34e5, 0x395f, 0x394b, 0x34c4, 0x3aa5, 0x29bb, 0x2d96, 0x339d, 0x387c, 0x382e, 0x385a, 0x396b, 0x3aa9, 0x2f1e, 0x33a7, 0x3b90, 0x3b7b, 0x3b5f, 0x39d3, 0x3b18, 0x354f, 0x2cdb, 0x3a6f, 0x3434, 0x34ff, 0x3a5b, 0x3b84, -0x3a33, 0x384b, 0x2e67, 0x3b85, 0x3853, 0x380c, 0x346a, 0x3aaa, 0x3492, 0x33e8, 0x3bf2, 0x38ae, 0x3a29, 0x3830, 0x3221, 0x35b1, 0x3a48, 0x2c68, 0x2ced, 0x3a7e, 0x3539, 0x3922, 0x374c, 0x3aaa, 0x2dae, 0x395d, 0x3b3d, 0x3890, 0x2cfe, 0x2dd6, 0x3bad, 0x33c5, -0x2c07, 0x3a2c, 0x37a8, 0x390f, 0x2fc8, 0x35ae, 0x388c, 0x30ee, 0x3674, 0x391d, 0x3bfc, 0x36bf, 0x322d, 0x3a78, 0x35c0, 0x3492, 0x3ac8, 0x3504, 0x3315, 0x381d, 0x3a7a, 0x3a08, 0x343c, 0x3bda, 0x341b, 0x39f0, 0x3b9e, 0x395d, 0x3c00, 0x38ab, 0x3bcf, 0x3564, -0x33c4, 0x3b0d, 0x3623, 0x33b9, 0x3b92, 0x1e71, 0x2c57, 0x36d0, 0x314b, 0x3a16, 0x3372, 0x341b, 0x3aaa, 0x3444, 0x396b, 0x2dd7, 0x3b30, 0x3559, 0x3b5b, 0x3a29, 0x2d19, 0x38b7, 0x3b01, 0x3afa, 0x398a, 0x3839, 0x3ac9, 0x2e31, 0x3924, 0x39f2, 0x3a7f, 0x3285 -}; \ No newline at end of file diff --git a/carfield/redmule/inc/w_input.h b/carfield/redmule/inc/w_input.h deleted file mode 100644 index dc4d3be..0000000 --- a/carfield/redmule/inc/w_input.h +++ /dev/null @@ -1,35 +0,0 @@ - /* Header file generated by RedMulE Golden Model */ -uint16_t w_inp [1024] = { -0x311a, 0x39e0, 0x387d, 0x3a4a, 0x386f, 0x3ada, 0x392f, 0x3854, 0x3014, 0x2fd2, 0x31c9, 0x2fca, 0x2e55, 0x3bc8, 0x396d, 0x3b1d, 0x39f6, 0x333a, 0x3908, 0x3628, 0x3bab, 0x3b8b, 0x3b4a, 0x322d, 0x3925, 0x317a, 0x3725, 0x31c2, 0x3066, 0x38f3, 0x3a17, 0x3476, -0x3bda, 0x3196, 0x3922, 0x3680, 0x396a, 0x3021, 0x3761, 0x374d, 0x2fc2, 0x3967, 0x3b94, 0x33b5, 0x3797, 0x34d6, 0x3655, 0x2176, 0x39bc, 0x3999, 0x3658, 0x3904, 0x3759, 0x2ade, 0x3a5a, 0x3b78, 0x36c7, 0x2d01, 0x3b58, 0x2d9a, 0x373d, 0x3952, 0x38e8, 0x3887, -0x37b6, 0x3a88, 0x2f8a, 0x2d79, 0x3413, 0x3421, 0x3976, 0x32b2, 0x3446, 0x2d99, 0x3a56, 0x3322, 0x3b49, 0x39fa, 0x3acd, 0x3af6, 0x304c, 0x3abb, 0x3a83, 0x38b2, 0x3ab9, 0x363e, 0x389f, 0x31bb, 0x38e1, 0x3bc4, 0x3b9b, 0x2984, 0x3a43, 0x3b2f, 0x35d6, 0x3bda, -0x2df3, 0x3bf8, 0x2acc, 0x378b, 0x3555, 0x2e59, 0x31d4, 0x34ec, 0x3a46, 0x3bab, 0x3214, 0x3161, 0x3470, 0x3a03, 0x368e, 0x31ad, 0x27cb, 0x2ecb, 0x3422, 0x39f7, 0x3644, 0x3a77, 0x313f, 0x34f2, 0x39b3, 0x3bf2, 0x379a, 0x3456, 0x35fe, 0x3ae7, 0x3964, 0x385f, -0x3b16, 0x3999, 0x3833, 0x2eda, 0x3afd, 0x3a4a, 0x3ba2, 0x2bd4, 0x3b38, 0x31a2, 0x32dd, 0x353c, 0x366f, 0x375e, 0x3821, 0x367a, 0x3b44, 0x39e6, 0x3787, 0x339e, 0x39d7, 0x38c6, 0x37d5, 0x342f, 0x3984, 0x319b, 0x33b5, 0x35ab, 0x398a, 0x374e, 0x36b6, 0x3b21, -0x3bbb, 0x2ab3, 0x2ad5, 0x33bc, 0x2bef, 0x3780, 0x3738, 0x3a0b, 0x3b09, 0x30ca, 0x384e, 0x3ab3, 0x39bd, 0x3453, 0x3a6d, 0x3957, 0x2c10, 0x30e9, 0x35d4, 0x3aef, 0x3be9, 0x39ad, 0x3a74, 0x3af9, 0x3739, 0x2d4d, 0x39fe, 0x3b72, 0x2c57, 0x398c, 0x381f, 0x3930, -0x3820, 0x321b, 0x3964, 0x2964, 0x33a0, 0x2d00, 0x2490, 0x336b, 0x3465, 0x3b2e, 0x3aa0, 0x371f, 0x300e, 0x3a09, 0x3bf1, 0x25cc, 0x3b6f, 0x3384, 0x3a88, 0x3acb, 0x3814, 0x36d0, 0x3081, 0x3a2c, 0x3353, 0x39cb, 0x31ed, 0x3af6, 0x3721, 0x36c7, 0x2ce2, 0x390d, -0x3698, 0x3ab2, 0x3b3e, 0x2eb4, 0x3998, 0x39e3, 0x3a77, 0x3632, 0x2c12, 0x3bd5, 0x3ba3, 0x3bba, 0x323c, 0x367b, 0x3557, 0x39c8, 0x37db, 0x3b45, 0x3b6e, 0x3931, 0x3121, 0x3a8d, 0x3a55, 0x3b9b, 0x358a, 0x3925, 0x3491, 0x3912, 0x3b6b, 0x3584, 0x32df, 0x3120, -0x32b2, 0x3b0a, 0x2cad, 0x3465, 0x3ad3, 0x3bcd, 0x363b, 0x3afe, 0x354b, 0x3374, 0x39af, 0x3b7f, 0x308c, 0x2e72, 0x3380, 0x3b70, 0x3902, 0x38d8, 0x39f3, 0x3a4b, 0x3853, 0x397b, 0x2ebe, 0x387f, 0x2845, 0x37e2, 0x360f, 0x370b, 0x3acb, 0x35d4, 0x36e6, 0x3262, -0x2e88, 0x3a54, 0x2ee3, 0x3575, 0x3afe, 0x2aee, 0x39a0, 0x3aae, 0x3693, 0x3432, 0x3834, 0x3b9b, 0x3bcb, 0x2e3a, 0x356d, 0x374e, 0x3924, 0x383c, 0x311e, 0x3ac5, 0x352d, 0x311e, 0x38ca, 0x34d4, 0x36ca, 0x34ed, 0x3a13, 0x33eb, 0x3639, 0x3828, 0x3b3c, 0x3939, -0x3837, 0x3521, 0x2cb5, 0x3629, 0x3924, 0x384c, 0x366a, 0x3bbf, 0x2e9e, 0x3ba8, 0x33ad, 0x38c8, 0x3934, 0x3907, 0x249a, 0x3690, 0x3a09, 0x3215, 0x3898, 0x325d, 0x37d5, 0x3195, 0x361c, 0x3ae4, 0x351f, 0x3452, 0x3bc0, 0x375c, 0x39bf, 0x317a, 0x3aae, 0x283a, -0x3476, 0x3b92, 0x3472, 0x383e, 0x280f, 0x39d6, 0x2fd1, 0x31f4, 0x2ffb, 0x3b97, 0x3692, 0x36c0, 0x3989, 0x33cf, 0x3ba6, 0x3239, 0x35d7, 0x33ab, 0x31eb, 0x3b47, 0x389b, 0x3b88, 0x3580, 0x354c, 0x3802, 0x3b9a, 0x3b94, 0x2a92, 0x2db1, 0x38bd, 0x2dfb, 0x3900, -0x344f, 0x3739, 0x27a5, 0x3b2e, 0x342b, 0x34bb, 0x30c8, 0x3ae8, 0x3b26, 0x3982, 0x38c0, 0x3408, 0x38c8, 0x36ef, 0x3bf0, 0x3acf, 0x3a3c, 0x3825, 0x31a5, 0x3ada, 0x3b5b, 0x37db, 0x3a01, 0x3663, 0x3a7d, 0x327b, 0x3a1f, 0x3862, 0x38af, 0x3204, 0x372e, 0x3b19, -0x3708, 0x3622, 0x2e62, 0x39ab, 0x2d4d, 0x31b4, 0x3552, 0x3bbc, 0x36f2, 0x36eb, 0x38ef, 0x3755, 0x3bbe, 0x2c17, 0x3815, 0x2f53, 0x363f, 0x38c1, 0x3246, 0x386b, 0x34de, 0x34e4, 0x3baa, 0x349e, 0x32ce, 0x3a68, 0x373f, 0x2cce, 0x3b36, 0x28ba, 0x3b50, 0x3232, -0x1f34, 0x3928, 0x35cd, 0x3b38, 0x30ce, 0x35a1, 0x3a06, 0x3a32, 0x3a53, 0x3489, 0x3241, 0x372f, 0x390c, 0x3a1b, 0x378a, 0x3713, 0x3769, 0x37a8, 0x3418, 0x3ad4, 0x3a4e, 0x3bf7, 0x37a5, 0x34dc, 0x39b2, 0x351b, 0x3372, 0x349f, 0x2f50, 0x3ab1, 0x3795, 0x2db7, -0x3864, 0x3157, 0x3900, 0x323e, 0x389e, 0x3880, 0x3b1f, 0x37a1, 0x396c, 0x2e43, 0x2c2a, 0x3b78, 0x3988, 0x3a14, 0x39c1, 0x3b51, 0x3780, 0x3bf2, 0x2d19, 0x3815, 0x3a5f, 0x3641, 0x2f62, 0x37d5, 0x3564, 0x139a, 0x3ab8, 0x28f7, 0x3785, 0x34e1, 0x3097, 0x3768, -0x3971, 0x3ae2, 0x32ae, 0x2fd5, 0x382a, 0x346c, 0x3133, 0x3167, 0x3940, 0x2d12, 0x389a, 0x3bd0, 0x3943, 0x391c, 0x3a75, 0x2a11, 0x391e, 0x372d, 0x3a79, 0x3b72, 0x3373, 0x39b7, 0x35d7, 0x372b, 0x3a6d, 0x38a1, 0x3279, 0x3434, 0x3694, 0x3b45, 0x3abb, 0x392d, -0x34a8, 0x3757, 0x32ca, 0x345d, 0x36a5, 0x3854, 0x2dcd, 0x30af, 0x38dd, 0x3067, 0x3411, 0x3997, 0x397a, 0x3a64, 0x38b8, 0x3962, 0x3509, 0x3bb6, 0x3a66, 0x339f, 0x372a, 0x31a8, 0x37da, 0x36ff, 0x33c6, 0x31da, 0x3977, 0x3b72, 0x3841, 0x3567, 0x3433, 0x33b8, -0x39fe, 0x3a10, 0x3bf2, 0x35e7, 0x3a4a, 0x3b3e, 0x2ec7, 0x3aa4, 0x3846, 0x3af9, 0x38a9, 0x2c1f, 0x39ab, 0x349f, 0x31d6, 0x39ae, 0x3b79, 0x352d, 0x3516, 0x347c, 0x2f33, 0x35ad, 0x31c4, 0x3b52, 0x354b, 0x3786, 0x3ab7, 0x3896, 0x34ac, 0x352f, 0x37e6, 0x326a, -0x2e44, 0x34c7, 0x388d, 0x3bf4, 0x363f, 0x3b3d, 0x33b1, 0x3b8b, 0x3340, 0x37f7, 0x3b07, 0x25bf, 0x398e, 0x3505, 0x3bd7, 0x366d, 0x388a, 0x2cc0, 0x359a, 0x3b9a, 0x3b99, 0x379d, 0x3b6b, 0x39b8, 0x3223, 0x2703, 0x3ba9, 0x2ecb, 0x3759, 0x39d8, 0x37ac, 0x32cf, -0x35f2, 0x38a3, 0x399e, 0x3bd2, 0x3780, 0x3af3, 0x3b5e, 0x337b, 0x3a08, 0x35da, 0x3446, 0x3b25, 0x3ad0, 0x3bee, 0x3141, 0x32d8, 0x34ce, 0x2ac9, 0x3800, 0x3a8a, 0x2d53, 0x368a, 0x3561, 0x3998, 0x35a3, 0x3677, 0x3ab2, 0x3269, 0x3236, 0x3b3e, 0x3aba, 0x3bac, -0x395d, 0x3820, 0x1df6, 0x3bb5, 0x35b5, 0x3675, 0x3b74, 0x360f, 0x34de, 0x3a0c, 0x3aeb, 0x299d, 0x3207, 0x3bd8, 0x2178, 0x3995, 0x3948, 0x3908, 0x3843, 0x2ea5, 0x3045, 0x3989, 0x345d, 0x39c5, 0x3a89, 0x3863, 0x3be0, 0x397a, 0x38f1, 0x39e2, 0x3b08, 0x352e, -0x385f, 0x28f2, 0x3bc3, 0x35e0, 0x380c, 0x3b9c, 0x3afc, 0x390a, 0x3689, 0x34fd, 0x2cf5, 0x308e, 0x342b, 0x3921, 0x3a67, 0x3ad6, 0x2986, 0x32fc, 0x35aa, 0x3507, 0x3608, 0x33fd, 0x3bf3, 0x39e2, 0x3b0f, 0x30b7, 0x3896, 0x3ae4, 0x2145, 0x35b6, 0x2e1d, 0x3ad1, -0x333d, 0x3afb, 0x2703, 0x3413, 0x1d7d, 0x3b7f, 0x3ae1, 0x303c, 0x3004, 0x39d3, 0x3554, 0x31a4, 0x354e, 0x3662, 0x39c5, 0x2eb7, 0x2c6e, 0x397f, 0x31d8, 0x1f0c, 0x38e3, 0x35f0, 0x2714, 0x28d1, 0x375e, 0x3a75, 0x3830, 0x3578, 0x397d, 0x3b18, 0x383c, 0x3498, -0x39ad, 0x3598, 0x23c4, 0x34ea, 0x3a61, 0x2b00, 0x3707, 0x3ae1, 0x37ae, 0x389d, 0x37fa, 0x3673, 0x3278, 0xf3e, 0x3809, 0x33c6, 0x3bf5, 0x3279, 0x3816, 0x360c, 0x39c8, 0x381f, 0x3741, 0x2d66, 0x38c0, 0x37d3, 0x377a, 0x3621, 0x2faf, 0x392e, 0x2de6, 0x33c5, -0x3803, 0x2600, 0x32e9, 0x39b4, 0x38d2, 0x34e8, 0x2fe6, 0x3199, 0x3643, 0x3a77, 0x27cc, 0x39d7, 0x34c6, 0x2ea8, 0x364e, 0x3b07, 0x31c7, 0x30a1, 0x31b1, 0x3b8f, 0x3571, 0x3b75, 0x3989, 0x3805, 0x39fb, 0x3945, 0x352b, 0x31d8, 0x3904, 0x3440, 0x3a57, 0x2cf7, -0x3b39, 0x2fcd, 0x2b89, 0x2edd, 0x3682, 0x36a9, 0x32c8, 0x37ac, 0x32a5, 0x3311, 0x394b, 0x3b84, 0x3aec, 0x3601, 0x2765, 0x3b69, 0x396b, 0x3727, 0x3bfe, 0x3907, 0x376f, 0x3674, 0x3973, 0x3671, 0x3491, 0x3993, 0x383f, 0x3335, 0x3989, 0x3550, 0x3077, 0x35f5, -0x3a59, 0x3950, 0x380c, 0x37cd, 0x30bf, 0x3607, 0x3afa, 0x3b5d, 0x32b9, 0x386b, 0x35bd, 0x3aca, 0x3ba5, 0x3b2d, 0x3b19, 0x3b8b, 0x345e, 0x2845, 0x34aa, 0x372a, 0x3448, 0x34f5, 0x3ae2, 0x3637, 0x2cb5, 0x354b, 0x3b15, 0x2ca8, 0x2641, 0x3178, 0x2cfe, 0x39b4, -0x3bdd, 0x3acb, 0x3a05, 0x38a2, 0x3b4a, 0x34e5, 0x395f, 0x394b, 0x34c4, 0x3aa5, 0x29bb, 0x2d96, 0x339d, 0x387c, 0x382e, 0x385a, 0x396b, 0x3aa9, 0x2f1e, 0x33a7, 0x3b90, 0x3b7b, 0x3b5f, 0x39d3, 0x3b18, 0x354f, 0x2cdb, 0x3a6f, 0x3434, 0x34ff, 0x3a5b, 0x3b84, -0x3a33, 0x384b, 0x2e67, 0x3b85, 0x3853, 0x380c, 0x346a, 0x3aaa, 0x3492, 0x33e8, 0x3bf2, 0x38ae, 0x3a29, 0x3830, 0x3221, 0x35b1, 0x3a48, 0x2c68, 0x2ced, 0x3a7e, 0x3539, 0x3922, 0x374c, 0x3aaa, 0x2dae, 0x395d, 0x3b3d, 0x3890, 0x2cfe, 0x2dd6, 0x3bad, 0x33c5, -0x2c07, 0x3a2c, 0x37a8, 0x390f, 0x2fc8, 0x35ae, 0x388c, 0x30ee, 0x3674, 0x391d, 0x3bfc, 0x36bf, 0x322d, 0x3a78, 0x35c0, 0x3492, 0x3ac8, 0x3504, 0x3315, 0x381d, 0x3a7a, 0x3a08, 0x343c, 0x3bda, 0x341b, 0x39f0, 0x3b9e, 0x395d, 0x3c00, 0x38ab, 0x3bcf, 0x3564, -0x33c4, 0x3b0d, 0x3623, 0x33b9, 0x3b92, 0x1e71, 0x2c57, 0x36d0, 0x314b, 0x3a16, 0x3372, 0x341b, 0x3aaa, 0x3444, 0x396b, 0x2dd7, 0x3b30, 0x3559, 0x3b5b, 0x3a29, 0x2d19, 0x38b7, 0x3b01, 0x3afa, 0x398a, 0x3839, 0x3ac9, 0x2e31, 0x3924, 0x39f2, 0x3a7f, 0x3285 -}; \ No newline at end of file diff --git a/carfield/redmule/inc/x_2D.h b/carfield/redmule/inc/x_2D.h deleted file mode 100644 index 0b589f8..0000000 --- a/carfield/redmule/inc/x_2D.h +++ /dev/null @@ -1,27 +0,0 @@ - /* Header file generated by RedMulE Golden Model */ -uint16_t x_inp_2D [24][32] = { -0x2153, 0x3bb5, 0x3896, 0x365f, 0x2483, 0x3518, 0x2dd1, 0x3bca, 0x397b, 0x29b1, 0x3705, 0x36c8, 0x398b, 0x3661, 0x2f05, 0x365a, 0x3bf9, 0x34df, 0x363b, 0x38d9, 0x39c6, 0x3abb, 0x3952, 0x38f2, 0x392d, 0x3b3e, 0x2afb, 0x3a9d, 0x353b, 0x3b73, 0x3a01, 0x3679, -0x3934, 0x397d, 0x2904, 0x3822, 0x3462, 0x3b44, 0x39e9, 0x28be, 0x331e, 0x3a1d, 0x39e5, 0x34da, 0x3a19, 0x3906, 0x1d35, 0x3871, 0x31e7, 0x3b29, 0x325d, 0x3797, 0x2b2f, 0x38b4, 0x232f, 0x38aa, 0x3aca, 0x316f, 0x3811, 0x3950, 0x32ea, 0x3bc7, 0x382c, 0x38a2, -0x29ce, 0x3afa, 0x3a39, 0x2ccc, 0x39fd, 0x3b3d, 0x384a, 0x3a35, 0x3802, 0x366a, 0x37ec, 0x3598, 0x3bf8, 0x3a85, 0x3a1b, 0x386e, 0x3b4c, 0x39de, 0x38c2, 0x2f93, 0x3b4c, 0x39c4, 0x3b9e, 0x3844, 0x346d, 0x3bff, 0x32ce, 0x296d, 0x3130, 0x3b3d, 0x3b44, 0x369d, -0x3b13, 0x31ed, 0x330a, 0x3831, 0x34e7, 0x37b3, 0x331a, 0x3918, 0x32d3, 0x3995, 0x3991, 0x3919, 0x3a26, 0x385b, 0x2b76, 0x3a3b, 0x37f2, 0x26a7, 0x3225, 0x3b64, 0x28f0, 0x3456, 0x3822, 0x341e, 0x381a, 0x38d8, 0x2c11, 0x33be, 0x33ac, 0x353f, 0x3476, 0x3abc, -0x36ec, 0x3a1d, 0x39d3, 0x3821, 0x36ac, 0x3bce, 0x3ad2, 0x3616, 0x36a1, 0x2cb3, 0x38d2, 0x314f, 0x385c, 0x3b63, 0x3bb6, 0x2951, 0x372d, 0x2c42, 0x3823, 0x3883, 0x3872, 0x31ee, 0x36c5, 0x399a, 0x31b0, 0x3887, 0x3884, 0x3865, 0x3896, 0x36c3, 0x32e3, 0x346c, -0x3935, 0x3b50, 0x2b6d, 0x38cd, 0x388f, 0x3389, 0x395d, 0x31cd, 0x2efd, 0x3154, 0x2f35, 0x3444, 0x3293, 0x3b6b, 0x1bec, 0x3b69, 0x3bf3, 0x3611, 0x3508, 0x3742, 0x3a50, 0x3ab7, 0x3457, 0x38d3, 0x3344, 0x38e8, 0x33c0, 0x3668, 0x3bee, 0x3b21, 0x3727, 0x3121, -0x316c, 0x3288, 0x2d50, 0x2e74, 0x35d5, 0x37e2, 0x303d, 0x36af, 0x341f, 0x3436, 0x2df7, 0x399d, 0x30f4, 0x3aaf, 0x34e4, 0x2c2a, 0x3116, 0x34d3, 0x36ac, 0x35e3, 0x3760, 0x36e1, 0x3ad2, 0x3547, 0x38f4, 0x369c, 0x3ba9, 0x34f0, 0x3a39, 0x3b19, 0x36e6, 0x395d, -0x3be8, 0x3293, 0x3bfc, 0x3435, 0x2eb3, 0x3360, 0x3919, 0x3bed, 0x396a, 0x37fc, 0x3242, 0x384b, 0x38cb, 0x3b2c, 0x3b28, 0x28cf, 0x3828, 0x3855, 0x3ba9, 0x2fa7, 0x340b, 0x32f1, 0x3ada, 0x36fa, 0x31f5, 0x3436, 0x29d0, 0x33e6, 0x3232, 0x3bec, 0x3904, 0x2797, -0x3b81, 0x3bac, 0x38d2, 0x343d, 0x31af, 0x3b1e, 0x33fc, 0x3864, 0x3624, 0x3905, 0x2945, 0x3b52, 0x2d08, 0x3a17, 0x3b84, 0x3804, 0x3a24, 0x38a3, 0x3562, 0x3ae6, 0x3bba, 0x3a45, 0x3679, 0x31fa, 0x3994, 0x2c3d, 0x383f, 0x399d, 0x34f7, 0x360e, 0x35f3, 0x38f0, -0x38d4, 0x399a, 0x3a48, 0x3987, 0x3b54, 0x382c, 0x3210, 0x35ef, 0x36ca, 0x31b4, 0x3625, 0x371f, 0x37bd, 0x3680, 0x3a3a, 0x3ac0, 0x3bbf, 0x3bf5, 0x39f2, 0x29c2, 0x363e, 0x3a4e, 0x3596, 0x3b1b, 0x3459, 0x3669, 0x3aa1, 0x39c3, 0x3376, 0x390d, 0x2456, 0x39b5, -0x3a66, 0x3ad8, 0x3b51, 0x36aa, 0x32be, 0x3ac8, 0x392b, 0x3740, 0x3a48, 0x38f5, 0x3b2d, 0x3a5f, 0x2ff3, 0x366f, 0x39d3, 0x35e5, 0x3822, 0x38db, 0x3b8a, 0x34be, 0x2d33, 0x36dd, 0x3578, 0x3bdf, 0x2c7e, 0x39cf, 0x32ff, 0x35c9, 0x3970, 0x3bcb, 0x351e, 0x3956, -0x2c42, 0x3308, 0x377a, 0x361c, 0x39a0, 0x36c9, 0x2dcb, 0x3bf2, 0x3b5f, 0x33ee, 0x24c1, 0x2ce9, 0x3927, 0x305d, 0x3702, 0x3119, 0x35f9, 0x3855, 0x3374, 0x349b, 0x3bcf, 0x2dea, 0x34f0, 0x363f, 0x37da, 0x3a74, 0x35fc, 0x35fa, 0x316b, 0x3804, 0x37a7, 0x3986, -0x3073, 0x3aed, 0x31c7, 0x3844, 0x34a4, 0x387d, 0x3a20, 0x3037, 0x3a00, 0x3b70, 0x377f, 0x3686, 0x3b7e, 0x38b3, 0x32e3, 0x3323, 0x391e, 0x3228, 0x3930, 0x3997, 0x3a5e, 0x398b, 0x3512, 0x35b0, 0x365c, 0x325d, 0x3b61, 0x38b8, 0x39a4, 0x3423, 0x3bd7, 0x38af, -0x2d3d, 0x382d, 0x38ac, 0x26ca, 0x395e, 0x21a8, 0x3520, 0x386f, 0x3b95, 0x32c0, 0x3b84, 0x3a51, 0x3b4b, 0x31d2, 0x3747, 0x3b96, 0x3b40, 0x3535, 0x38d1, 0x3899, 0x3b00, 0x3827, 0x3ae3, 0x38c8, 0x3a07, 0x338d, 0x2e96, 0x3a46, 0x394a, 0x39de, 0x2951, 0x3a02, -0x3838, 0x2d45, 0x28c0, 0x3958, 0x3070, 0x2aa2, 0x3510, 0x38ce, 0x271c, 0x3440, 0x3954, 0x30bc, 0x3b35, 0x2f1d, 0x3afb, 0x2dae, 0x356f, 0x2e13, 0x3981, 0x326d, 0x3a28, 0x3a36, 0x3a95, 0x38cb, 0x38db, 0x3150, 0x2c9e, 0x34c5, 0x3adb, 0x3bdf, 0x38f2, 0x3994, -0x36f8, 0x31c0, 0x3a4f, 0x3825, 0x394b, 0x3a8b, 0x38ac, 0x3167, 0x2e2d, 0x3a93, 0x34f3, 0x37bd, 0x3b63, 0x2f2f, 0x3ae0, 0x3ad8, 0x34a8, 0x2e1c, 0x3890, 0x3705, 0x3b69, 0x3bc1, 0x28af, 0x3b36, 0x348b, 0x3111, 0x3a8d, 0x389c, 0x3916, 0x36dc, 0x3bae, 0x3874, -0x3593, 0x3638, 0x3018, 0x3a56, 0x38a3, 0x2ad4, 0x3a25, 0x38d7, 0x3864, 0x31c1, 0x28d1, 0x39c8, 0x37d6, 0x2c7f, 0x3ba5, 0x34b8, 0x3bef, 0x3b83, 0x3ab5, 0x3062, 0x38bc, 0x399c, 0x2ce4, 0x2f2c, 0x39bf, 0x2ed1, 0x385f, 0x37e0, 0x35ee, 0x397d, 0x3b0c, 0x3049, -0x39d5, 0x322e, 0x3936, 0x3747, 0x2e15, 0x3b41, 0x3874, 0x3bd0, 0x2c04, 0x3800, 0x375b, 0x3b2d, 0x38d8, 0x3a51, 0x3406, 0x38da, 0x38ba, 0x3497, 0x382e, 0x35fc, 0x39d4, 0x3775, 0x3b1e, 0x3813, 0x3649, 0x31af, 0x37bb, 0x334a, 0x3a6e, 0x3284, 0x26e0, 0x2e01, -0x2ebb, 0x344b, 0x3821, 0x381a, 0x385a, 0x2534, 0x3635, 0x2a92, 0x3b8c, 0x31f0, 0x3947, 0x3ac7, 0x3743, 0x3924, 0x39e4, 0x358f, 0x2b62, 0x392c, 0x3955, 0x3341, 0x3676, 0x38ac, 0x3957, 0x335b, 0x2ca2, 0x39ff, 0x37cb, 0x341f, 0x3ac9, 0x3b6c, 0x2f14, 0x34c3, -0x3018, 0x3169, 0x355b, 0x3624, 0x31ed, 0x379e, 0x3268, 0x309b, 0x35db, 0x3872, 0x3bdb, 0x34c7, 0x3408, 0x3359, 0x3920, 0x331f, 0x3866, 0x3af0, 0x2a1a, 0x39e0, 0x3b14, 0x34fa, 0x2d18, 0x3963, 0x35e8, 0x2539, 0x38f5, 0x37b3, 0x378f, 0x31b5, 0x3a6c, 0x3685, -0x3a06, 0x318a, 0x2934, 0x33c1, 0x3be8, 0x375b, 0x3860, 0x3543, 0x3702, 0x3951, 0x3677, 0x37ff, 0x2e27, 0x2e3a, 0x340f, 0x3817, 0x2f04, 0x357e, 0x3a1d, 0x2dd6, 0x252a, 0x3945, 0x162a, 0x3b19, 0x3a53, 0x35d2, 0x3a5d, 0x3474, 0x38e9, 0x374b, 0x387c, 0x1f1a, -0x38ac, 0x3291, 0x3393, 0x3b53, 0x3169, 0x3bca, 0x2f1a, 0x3551, 0x38a3, 0x28e3, 0x369d, 0x34a1, 0x38a8, 0x34c3, 0x3841, 0x390d, 0x3b13, 0x3282, 0x3a29, 0x3a78, 0x2df3, 0x3a37, 0x35f4, 0x35a6, 0x38e8, 0x3328, 0x3beb, 0x390b, 0x32dc, 0x34dc, 0x396d, 0x3a78, -0x39ba, 0x3a06, 0x2cdd, 0x3bc3, 0x2d43, 0x2992, 0x3663, 0x3a68, 0x2c3e, 0x394e, 0x2c9f, 0x380e, 0x37f5, 0x3557, 0x2873, 0x390f, 0x39e7, 0x3939, 0x3669, 0x385c, 0x3a68, 0x32c4, 0x2b04, 0x2d6d, 0x39d3, 0x3895, 0x331d, 0x3b59, 0x3463, 0x2b6a, 0x31de, 0x3296, -0x3aae, 0x3bcd, 0x345a, 0x3897, 0x374b, 0x3bd4, 0x38a2, 0x357f, 0x3402, 0x3a0c, 0x3507, 0x3865, 0x3a54, 0x3878, 0x3859, 0x383e, 0x32b5, 0x34ea, 0x328d, 0x38b6, 0x3464, 0x2f5b, 0x35ff, 0x3817, 0x2f24, 0x3533, 0x3b21, 0x37ba, 0x3837, 0x2e34, 0x3bad, 0x34bc -}; \ No newline at end of file diff --git a/carfield/redmule/inc/x_input.h b/carfield/redmule/inc/x_input.h deleted file mode 100644 index 1e38d23..0000000 --- a/carfield/redmule/inc/x_input.h +++ /dev/null @@ -1,27 +0,0 @@ - /* Header file generated by RedMulE Golden Model */ -uint16_t x_inp [768] = { -0x2153, 0x3bb5, 0x3896, 0x365f, 0x2483, 0x3518, 0x2dd1, 0x3bca, 0x397b, 0x29b1, 0x3705, 0x36c8, 0x398b, 0x3661, 0x2f05, 0x365a, 0x3bf9, 0x34df, 0x363b, 0x38d9, 0x39c6, 0x3abb, 0x3952, 0x38f2, 0x392d, 0x3b3e, 0x2afb, 0x3a9d, 0x353b, 0x3b73, 0x3a01, 0x3679, -0x3934, 0x397d, 0x2904, 0x3822, 0x3462, 0x3b44, 0x39e9, 0x28be, 0x331e, 0x3a1d, 0x39e5, 0x34da, 0x3a19, 0x3906, 0x1d35, 0x3871, 0x31e7, 0x3b29, 0x325d, 0x3797, 0x2b2f, 0x38b4, 0x232f, 0x38aa, 0x3aca, 0x316f, 0x3811, 0x3950, 0x32ea, 0x3bc7, 0x382c, 0x38a2, -0x29ce, 0x3afa, 0x3a39, 0x2ccc, 0x39fd, 0x3b3d, 0x384a, 0x3a35, 0x3802, 0x366a, 0x37ec, 0x3598, 0x3bf8, 0x3a85, 0x3a1b, 0x386e, 0x3b4c, 0x39de, 0x38c2, 0x2f93, 0x3b4c, 0x39c4, 0x3b9e, 0x3844, 0x346d, 0x3bff, 0x32ce, 0x296d, 0x3130, 0x3b3d, 0x3b44, 0x369d, -0x3b13, 0x31ed, 0x330a, 0x3831, 0x34e7, 0x37b3, 0x331a, 0x3918, 0x32d3, 0x3995, 0x3991, 0x3919, 0x3a26, 0x385b, 0x2b76, 0x3a3b, 0x37f2, 0x26a7, 0x3225, 0x3b64, 0x28f0, 0x3456, 0x3822, 0x341e, 0x381a, 0x38d8, 0x2c11, 0x33be, 0x33ac, 0x353f, 0x3476, 0x3abc, -0x36ec, 0x3a1d, 0x39d3, 0x3821, 0x36ac, 0x3bce, 0x3ad2, 0x3616, 0x36a1, 0x2cb3, 0x38d2, 0x314f, 0x385c, 0x3b63, 0x3bb6, 0x2951, 0x372d, 0x2c42, 0x3823, 0x3883, 0x3872, 0x31ee, 0x36c5, 0x399a, 0x31b0, 0x3887, 0x3884, 0x3865, 0x3896, 0x36c3, 0x32e3, 0x346c, -0x3935, 0x3b50, 0x2b6d, 0x38cd, 0x388f, 0x3389, 0x395d, 0x31cd, 0x2efd, 0x3154, 0x2f35, 0x3444, 0x3293, 0x3b6b, 0x1bec, 0x3b69, 0x3bf3, 0x3611, 0x3508, 0x3742, 0x3a50, 0x3ab7, 0x3457, 0x38d3, 0x3344, 0x38e8, 0x33c0, 0x3668, 0x3bee, 0x3b21, 0x3727, 0x3121, -0x316c, 0x3288, 0x2d50, 0x2e74, 0x35d5, 0x37e2, 0x303d, 0x36af, 0x341f, 0x3436, 0x2df7, 0x399d, 0x30f4, 0x3aaf, 0x34e4, 0x2c2a, 0x3116, 0x34d3, 0x36ac, 0x35e3, 0x3760, 0x36e1, 0x3ad2, 0x3547, 0x38f4, 0x369c, 0x3ba9, 0x34f0, 0x3a39, 0x3b19, 0x36e6, 0x395d, -0x3be8, 0x3293, 0x3bfc, 0x3435, 0x2eb3, 0x3360, 0x3919, 0x3bed, 0x396a, 0x37fc, 0x3242, 0x384b, 0x38cb, 0x3b2c, 0x3b28, 0x28cf, 0x3828, 0x3855, 0x3ba9, 0x2fa7, 0x340b, 0x32f1, 0x3ada, 0x36fa, 0x31f5, 0x3436, 0x29d0, 0x33e6, 0x3232, 0x3bec, 0x3904, 0x2797, -0x3b81, 0x3bac, 0x38d2, 0x343d, 0x31af, 0x3b1e, 0x33fc, 0x3864, 0x3624, 0x3905, 0x2945, 0x3b52, 0x2d08, 0x3a17, 0x3b84, 0x3804, 0x3a24, 0x38a3, 0x3562, 0x3ae6, 0x3bba, 0x3a45, 0x3679, 0x31fa, 0x3994, 0x2c3d, 0x383f, 0x399d, 0x34f7, 0x360e, 0x35f3, 0x38f0, -0x38d4, 0x399a, 0x3a48, 0x3987, 0x3b54, 0x382c, 0x3210, 0x35ef, 0x36ca, 0x31b4, 0x3625, 0x371f, 0x37bd, 0x3680, 0x3a3a, 0x3ac0, 0x3bbf, 0x3bf5, 0x39f2, 0x29c2, 0x363e, 0x3a4e, 0x3596, 0x3b1b, 0x3459, 0x3669, 0x3aa1, 0x39c3, 0x3376, 0x390d, 0x2456, 0x39b5, -0x3a66, 0x3ad8, 0x3b51, 0x36aa, 0x32be, 0x3ac8, 0x392b, 0x3740, 0x3a48, 0x38f5, 0x3b2d, 0x3a5f, 0x2ff3, 0x366f, 0x39d3, 0x35e5, 0x3822, 0x38db, 0x3b8a, 0x34be, 0x2d33, 0x36dd, 0x3578, 0x3bdf, 0x2c7e, 0x39cf, 0x32ff, 0x35c9, 0x3970, 0x3bcb, 0x351e, 0x3956, -0x2c42, 0x3308, 0x377a, 0x361c, 0x39a0, 0x36c9, 0x2dcb, 0x3bf2, 0x3b5f, 0x33ee, 0x24c1, 0x2ce9, 0x3927, 0x305d, 0x3702, 0x3119, 0x35f9, 0x3855, 0x3374, 0x349b, 0x3bcf, 0x2dea, 0x34f0, 0x363f, 0x37da, 0x3a74, 0x35fc, 0x35fa, 0x316b, 0x3804, 0x37a7, 0x3986, -0x3073, 0x3aed, 0x31c7, 0x3844, 0x34a4, 0x387d, 0x3a20, 0x3037, 0x3a00, 0x3b70, 0x377f, 0x3686, 0x3b7e, 0x38b3, 0x32e3, 0x3323, 0x391e, 0x3228, 0x3930, 0x3997, 0x3a5e, 0x398b, 0x3512, 0x35b0, 0x365c, 0x325d, 0x3b61, 0x38b8, 0x39a4, 0x3423, 0x3bd7, 0x38af, -0x2d3d, 0x382d, 0x38ac, 0x26ca, 0x395e, 0x21a8, 0x3520, 0x386f, 0x3b95, 0x32c0, 0x3b84, 0x3a51, 0x3b4b, 0x31d2, 0x3747, 0x3b96, 0x3b40, 0x3535, 0x38d1, 0x3899, 0x3b00, 0x3827, 0x3ae3, 0x38c8, 0x3a07, 0x338d, 0x2e96, 0x3a46, 0x394a, 0x39de, 0x2951, 0x3a02, -0x3838, 0x2d45, 0x28c0, 0x3958, 0x3070, 0x2aa2, 0x3510, 0x38ce, 0x271c, 0x3440, 0x3954, 0x30bc, 0x3b35, 0x2f1d, 0x3afb, 0x2dae, 0x356f, 0x2e13, 0x3981, 0x326d, 0x3a28, 0x3a36, 0x3a95, 0x38cb, 0x38db, 0x3150, 0x2c9e, 0x34c5, 0x3adb, 0x3bdf, 0x38f2, 0x3994, -0x36f8, 0x31c0, 0x3a4f, 0x3825, 0x394b, 0x3a8b, 0x38ac, 0x3167, 0x2e2d, 0x3a93, 0x34f3, 0x37bd, 0x3b63, 0x2f2f, 0x3ae0, 0x3ad8, 0x34a8, 0x2e1c, 0x3890, 0x3705, 0x3b69, 0x3bc1, 0x28af, 0x3b36, 0x348b, 0x3111, 0x3a8d, 0x389c, 0x3916, 0x36dc, 0x3bae, 0x3874, -0x3593, 0x3638, 0x3018, 0x3a56, 0x38a3, 0x2ad4, 0x3a25, 0x38d7, 0x3864, 0x31c1, 0x28d1, 0x39c8, 0x37d6, 0x2c7f, 0x3ba5, 0x34b8, 0x3bef, 0x3b83, 0x3ab5, 0x3062, 0x38bc, 0x399c, 0x2ce4, 0x2f2c, 0x39bf, 0x2ed1, 0x385f, 0x37e0, 0x35ee, 0x397d, 0x3b0c, 0x3049, -0x39d5, 0x322e, 0x3936, 0x3747, 0x2e15, 0x3b41, 0x3874, 0x3bd0, 0x2c04, 0x3800, 0x375b, 0x3b2d, 0x38d8, 0x3a51, 0x3406, 0x38da, 0x38ba, 0x3497, 0x382e, 0x35fc, 0x39d4, 0x3775, 0x3b1e, 0x3813, 0x3649, 0x31af, 0x37bb, 0x334a, 0x3a6e, 0x3284, 0x26e0, 0x2e01, -0x2ebb, 0x344b, 0x3821, 0x381a, 0x385a, 0x2534, 0x3635, 0x2a92, 0x3b8c, 0x31f0, 0x3947, 0x3ac7, 0x3743, 0x3924, 0x39e4, 0x358f, 0x2b62, 0x392c, 0x3955, 0x3341, 0x3676, 0x38ac, 0x3957, 0x335b, 0x2ca2, 0x39ff, 0x37cb, 0x341f, 0x3ac9, 0x3b6c, 0x2f14, 0x34c3, -0x3018, 0x3169, 0x355b, 0x3624, 0x31ed, 0x379e, 0x3268, 0x309b, 0x35db, 0x3872, 0x3bdb, 0x34c7, 0x3408, 0x3359, 0x3920, 0x331f, 0x3866, 0x3af0, 0x2a1a, 0x39e0, 0x3b14, 0x34fa, 0x2d18, 0x3963, 0x35e8, 0x2539, 0x38f5, 0x37b3, 0x378f, 0x31b5, 0x3a6c, 0x3685, -0x3a06, 0x318a, 0x2934, 0x33c1, 0x3be8, 0x375b, 0x3860, 0x3543, 0x3702, 0x3951, 0x3677, 0x37ff, 0x2e27, 0x2e3a, 0x340f, 0x3817, 0x2f04, 0x357e, 0x3a1d, 0x2dd6, 0x252a, 0x3945, 0x162a, 0x3b19, 0x3a53, 0x35d2, 0x3a5d, 0x3474, 0x38e9, 0x374b, 0x387c, 0x1f1a, -0x38ac, 0x3291, 0x3393, 0x3b53, 0x3169, 0x3bca, 0x2f1a, 0x3551, 0x38a3, 0x28e3, 0x369d, 0x34a1, 0x38a8, 0x34c3, 0x3841, 0x390d, 0x3b13, 0x3282, 0x3a29, 0x3a78, 0x2df3, 0x3a37, 0x35f4, 0x35a6, 0x38e8, 0x3328, 0x3beb, 0x390b, 0x32dc, 0x34dc, 0x396d, 0x3a78, -0x39ba, 0x3a06, 0x2cdd, 0x3bc3, 0x2d43, 0x2992, 0x3663, 0x3a68, 0x2c3e, 0x394e, 0x2c9f, 0x380e, 0x37f5, 0x3557, 0x2873, 0x390f, 0x39e7, 0x3939, 0x3669, 0x385c, 0x3a68, 0x32c4, 0x2b04, 0x2d6d, 0x39d3, 0x3895, 0x331d, 0x3b59, 0x3463, 0x2b6a, 0x31de, 0x3296, -0x3aae, 0x3bcd, 0x345a, 0x3897, 0x374b, 0x3bd4, 0x38a2, 0x357f, 0x3402, 0x3a0c, 0x3507, 0x3865, 0x3a54, 0x3878, 0x3859, 0x383e, 0x32b5, 0x34ea, 0x328d, 0x38b6, 0x3464, 0x2f5b, 0x35ff, 0x3817, 0x2f24, 0x3533, 0x3b21, 0x37ba, 0x3837, 0x2e34, 0x3bad, 0x34bc -}; \ No newline at end of file diff --git a/carfield/redmule/inc/y_2D.h b/carfield/redmule/inc/y_2D.h deleted file mode 100644 index 9484a10..0000000 --- a/carfield/redmule/inc/y_2D.h +++ /dev/null @@ -1,27 +0,0 @@ - /* Header file generated by RedMulE Golden Model */ -uint16_t y_inp_2D [32][32] = { -0x3150, 0x2dc1, 0x3033, 0x31f5, 0x3bb6, 0x3bff, 0x39f9, 0x3662, 0x3720, 0x351d, 0x384b, 0x3093, 0x3b9d, 0x35ad, 0x3695, 0x3466, 0x2300, 0x3445, 0x33ae, 0x3586, 0x38a3, 0x3bdb, 0x33a2, 0x379b, 0x3a0e, 0x38b0, 0x39ba, 0x379b, 0x39d3, 0x3a51, 0x3b30, 0x3794, -0x3b76, 0x3042, 0x38cc, 0x2dfc, 0x3b1a, 0x37fb, 0x38f7, 0x3824, 0x386f, 0x38c7, 0x36ee, 0x3a9c, 0x38d3, 0x2c67, 0x3a80, 0x2f30, 0x3328, 0x3721, 0x3790, 0x34e5, 0x3a6c, 0x3643, 0x3934, 0x3034, 0x38d4, 0x362e, 0x3b4b, 0x3408, 0x30c2, 0x370e, 0x3b31, 0x3b16, -0x3b6b, 0x39d4, 0x339c, 0x381e, 0x313e, 0x3671, 0x3ae2, 0x3479, 0x3940, 0x342d, 0x3925, 0x370a, 0x35d8, 0x2dad, 0x3888, 0x24b9, 0x375d, 0x34bd, 0x3243, 0x2ebb, 0x3970, 0x3a21, 0x3a07, 0x3877, 0x3888, 0x3569, 0x372d, 0x2ac1, 0x331e, 0x384d, 0x3996, 0x34a4, -0x35c1, 0x33a9, 0x21ed, 0x3a42, 0x388d, 0x34e4, 0x33c3, 0x34f9, 0x3a7b, 0x33fb, 0x2cdd, 0x3b0e, 0x333b, 0x3973, 0x34fc, 0x3771, 0x32ea, 0x2de4, 0x31a8, 0x3946, 0x3657, 0x3a4e, 0x36f6, 0x2829, 0x3ba2, 0x3bdc, 0x3bb3, 0x306c, 0x398d, 0x3a1f, 0x3991, 0x3846, -0x3547, 0x3292, 0x2e85, 0x31ed, 0x3979, 0x3a90, 0x28a4, 0x3bed, 0x36d8, 0x340e, 0x3b6a, 0x3ab6, 0x3824, 0x382b, 0x3ac3, 0x3811, 0x36d7, 0x3519, 0x3a92, 0x3a42, 0x29d1, 0x383a, 0x3a9b, 0x300e, 0x2cd3, 0x39cd, 0x3874, 0x3a07, 0x2eb1, 0x3b86, 0x3ad8, 0x3a5d, -0x3712, 0x284a, 0x38c1, 0x3bec, 0x39c0, 0x32cd, 0x3ad8, 0x3bce, 0x3817, 0x3896, 0x3aa7, 0x3870, 0x3996, 0x32cc, 0x3a4c, 0x3757, 0x3814, 0x3b65, 0x3acb, 0x376e, 0x34c0, 0x3609, 0x3bf0, 0x3b24, 0x3b29, 0x3848, 0x34b7, 0x398a, 0x220c, 0x3498, 0x3a8c, 0x3883, -0x38c4, 0x3af6, 0x3a42, 0x2dd6, 0x3147, 0x3717, 0x3a8e, 0x3af9, 0x3296, 0x38ef, 0x34fa, 0x3555, 0x3b29, 0x38de, 0x315e, 0x3773, 0x3b67, 0x3116, 0x38ec, 0x357c, 0x35d0, 0x2518, 0x3958, 0x2a03, 0x37d9, 0x3699, 0x3a1e, 0x3230, 0x3b13, 0x36d4, 0x3b2a, 0x39ad, -0x3b10, 0x351a, 0x3b97, 0x3326, 0x2b54, 0x3b7d, 0x386f, 0x373e, 0x37fa, 0x389b, 0x3b90, 0x3292, 0x3975, 0x38f3, 0x37f1, 0x3590, 0x3810, 0x2fd7, 0x3bf7, 0x3a5a, 0x3a1c, 0x34dd, 0x354c, 0x32f8, 0x3095, 0x321e, 0x39e0, 0x395c, 0x3717, 0x357f, 0x394a, 0x34b1, -0x3ba4, 0x380c, 0x3604, 0x2f50, 0x348d, 0x3828, 0x3a9f, 0x39ce, 0x32ca, 0x3906, 0x3ab2, 0x2ca5, 0x38c9, 0x362a, 0x34b2, 0x29dc, 0x3a36, 0x3052, 0x31b7, 0x3589, 0x387c, 0x3401, 0x3b22, 0x3ad6, 0x3ae8, 0x3238, 0x3494, 0x3502, 0x3717, 0x3a6c, 0x3229, 0x368c, -0x3056, 0x3a56, 0x3498, 0x39eb, 0x2864, 0x342d, 0x39e0, 0x34a1, 0x2b99, 0x3a04, 0x38ff, 0x328c, 0x34d9, 0x387d, 0x3a3c, 0x32e5, 0x39eb, 0x3984, 0x34dd, 0x38a7, 0x373f, 0x39b4, 0x3235, 0x2f58, 0x2f39, 0x3800, 0x3758, 0x3939, 0x39fc, 0x3a4b, 0x38bf, 0x30ee, -0x345e, 0x39c8, 0x3a6d, 0x3262, 0x3b81, 0x31dc, 0x3a15, 0x3bd0, 0x36af, 0x36de, 0x37d5, 0x39d7, 0x3ad3, 0x3ac1, 0x3109, 0x35ea, 0x31c6, 0x398d, 0x3987, 0x3a4a, 0x34d2, 0x2ed2, 0x35e6, 0x352c, 0x39eb, 0x3bd6, 0x3a5b, 0x39d1, 0x34aa, 0x3ade, 0x394b, 0x38a1, -0x2bed, 0x38de, 0x3811, 0x3813, 0x391a, 0x374b, 0x3829, 0x3725, 0x38f0, 0x3583, 0x3966, 0x3a7d, 0x375a, 0x38fe, 0x3696, 0x361c, 0x39a8, 0x35f0, 0x38e1, 0x3003, 0x3595, 0x316e, 0x3862, 0x3af8, 0x3af2, 0x34c8, 0x381d, 0x37d8, 0x3893, 0x3a9c, 0x3989, 0x308c, -0x30cc, 0x2538, 0x399d, 0x3919, 0x399e, 0x21cc, 0x38e9, 0x30f8, 0x3a20, 0x3b3c, 0x3990, 0x259c, 0x3143, 0x3080, 0x3967, 0x3afb, 0x3a1b, 0x3779, 0x2eeb, 0x39f3, 0x379a, 0x369c, 0x3985, 0x3a1b, 0x3ba6, 0x3a53, 0x28d5, 0x3881, 0x31d9, 0x3a34, 0x3bd9, 0x393a, -0x3601, 0x2c6e, 0x3636, 0x3298, 0x39bb, 0x3a08, 0x38db, 0x35ad, 0x3a09, 0x36a6, 0x3bc7, 0x3bac, 0x34ae, 0x3291, 0x290b, 0x3250, 0x2648, 0x333d, 0x2bf3, 0x34b1, 0x30e0, 0x351f, 0x3a74, 0x38dc, 0x3883, 0x2841, 0x35e1, 0x390d, 0x3a50, 0x3abd, 0x386d, 0x3bb7, -0x3b94, 0x36b7, 0x3a49, 0x332f, 0x3a1d, 0x354b, 0x3bab, 0x3346, 0x3417, 0x351e, 0x3b6d, 0x391a, 0x2db3, 0x3b1c, 0x3a4a, 0x37b7, 0x36cf, 0x3a56, 0x39c4, 0x3be9, 0x34f0, 0x39be, 0x3691, 0x1ba5, 0x3888, 0x3040, 0x3ae1, 0x3b9b, 0x398f, 0x3a49, 0x3a16, 0x38c0, -0x386c, 0x39ab, 0x37fa, 0x382c, 0x3a6f, 0x393f, 0x340d, 0x38ef, 0x39d1, 0x3845, 0x398f, 0x363e, 0x3687, 0x3052, 0x3a2b, 0x392c, 0x2f5c, 0x3412, 0x3a1f, 0x3b2f, 0x3bcc, 0x3a63, 0x3a89, 0x36e9, 0x3921, 0x3b80, 0x2dc0, 0x3a03, 0x3beb, 0x38d3, 0x36cb, 0x39a3, -0x3978, 0x3a88, 0x3ba4, 0x3561, 0x28c5, 0x33a0, 0x37be, 0x2c39, 0x30ee, 0x3782, 0x2c07, 0x354e, 0x3491, 0x3a92, 0x331a, 0x3b15, 0x32e1, 0x3839, 0x3afb, 0x36c2, 0x2fd0, 0x29ad, 0x3b2e, 0x39c1, 0x2a8c, 0x341a, 0x2f90, 0x395a, 0x3969, 0x37ea, 0x3a5c, 0x3b6d, -0x3971, 0x3a93, 0x304e, 0x3623, 0x3a22, 0x31ee, 0x29df, 0x2c93, 0x3a01, 0x3a62, 0x366c, 0x371d, 0x3af3, 0x2e08, 0x3ac0, 0x3642, 0x3a28, 0x368d, 0x2d3d, 0x36d9, 0x32c3, 0x373f, 0x36fe, 0x3487, 0x2c81, 0x3623, 0x3b59, 0x3a91, 0x350a, 0x34f4, 0x3b09, 0x2c25, -0x3b13, 0x325a, 0x379e, 0x3a7d, 0x34b1, 0x39d5, 0x2ba8, 0x322b, 0x3b5e, 0x37ab, 0x2e24, 0x3ba9, 0x3a3d, 0x34f7, 0x3ba1, 0x3877, 0x3071, 0x39fb, 0x3bbd, 0x3633, 0x3b36, 0x2daa, 0x3b9b, 0x3aa0, 0x395c, 0x3b8f, 0x38d5, 0x3ab0, 0x3a8f, 0x36c2, 0x3b1f, 0x3489, -0x2acc, 0x3845, 0x3715, 0x37d8, 0x3992, 0x3bff, 0x350e, 0x3ad7, 0x39b0, 0x35ac, 0x3287, 0x385f, 0x3bd4, 0x37a3, 0x3438, 0x39a5, 0x3bcf, 0x38c3, 0x34f6, 0x3ae3, 0x3b57, 0x39af, 0x35eb, 0x3bed, 0x34d4, 0x2a95, 0x3b13, 0x384e, 0x3a3b, 0x33da, 0x3bce, 0x3b99, -0x3559, 0x3335, 0x3a2e, 0x3123, 0x38db, 0x33d0, 0x3638, 0x3b17, 0x3a72, 0x3afc, 0x3936, 0x3838, 0x2b69, 0x3895, 0x3a1a, 0x3192, 0x39d5, 0x37a5, 0x2eb0, 0x2e8b, 0x329a, 0x3b90, 0x390a, 0x3a1e, 0x3847, 0x375d, 0x3873, 0x35e2, 0x3771, 0x30f5, 0x3231, 0x3bd7, -0x2bbc, 0x3ace, 0x31ad, 0x3a6b, 0x28a4, 0x3b48, 0x3ba3, 0x3a84, 0x3353, 0x39f6, 0x381f, 0x2dd6, 0x314c, 0x34af, 0x3929, 0x3921, 0x383b, 0x34b0, 0x3923, 0x32c9, 0x3ae7, 0x318f, 0x3480, 0x2ad8, 0x3042, 0x3a4c, 0x349d, 0x2c12, 0x3abb, 0x3a57, 0x3b0d, 0x3111, -0x3359, 0x3a84, 0x38f2, 0x368d, 0x2f4b, 0x3ba0, 0x395c, 0x3026, 0x3a15, 0x2a04, 0x326e, 0x3522, 0x31a2, 0x382f, 0x2ada, 0x3b7c, 0x2f80, 0x3af5, 0x2d35, 0x38fa, 0x39ab, 0x2c6d, 0x2e7a, 0x39f6, 0x31a4, 0x3a53, 0x358c, 0x3951, 0x3a4e, 0x3916, 0x2a3f, 0x3ae9, -0x3b03, 0x39f8, 0x39fe, 0x3a61, 0x39fb, 0x3704, 0x360d, 0x39a7, 0x37a9, 0x348f, 0x3a30, 0x3af5, 0x366f, 0x3b29, 0x3a6a, 0x33d5, 0x370a, 0x39cd, 0x3444, 0x3bea, 0x3b2b, 0x312e, 0x3b8e, 0x32cf, 0x3b79, 0x3302, 0x3bba, 0x3962, 0x3413, 0x37a1, 0x39e0, 0x3805 -}; \ No newline at end of file diff --git a/carfield/redmule/inc/y_input.h b/carfield/redmule/inc/y_input.h deleted file mode 100644 index 45a2375..0000000 --- a/carfield/redmule/inc/y_input.h +++ /dev/null @@ -1,27 +0,0 @@ - /* Header file generated by RedMulE Golden Model */ -uint16_t y_inp [768] = { -0x3150, 0x2dc1, 0x3033, 0x31f5, 0x3bb6, 0x3bff, 0x39f9, 0x3662, 0x3720, 0x351d, 0x384b, 0x3093, 0x3b9d, 0x35ad, 0x3695, 0x3466, 0x2300, 0x3445, 0x33ae, 0x3586, 0x38a3, 0x3bdb, 0x33a2, 0x379b, 0x3a0e, 0x38b0, 0x39ba, 0x379b, 0x39d3, 0x3a51, 0x3b30, 0x3794, -0x3b76, 0x3042, 0x38cc, 0x2dfc, 0x3b1a, 0x37fb, 0x38f7, 0x3824, 0x386f, 0x38c7, 0x36ee, 0x3a9c, 0x38d3, 0x2c67, 0x3a80, 0x2f30, 0x3328, 0x3721, 0x3790, 0x34e5, 0x3a6c, 0x3643, 0x3934, 0x3034, 0x38d4, 0x362e, 0x3b4b, 0x3408, 0x30c2, 0x370e, 0x3b31, 0x3b16, -0x3b6b, 0x39d4, 0x339c, 0x381e, 0x313e, 0x3671, 0x3ae2, 0x3479, 0x3940, 0x342d, 0x3925, 0x370a, 0x35d8, 0x2dad, 0x3888, 0x24b9, 0x375d, 0x34bd, 0x3243, 0x2ebb, 0x3970, 0x3a21, 0x3a07, 0x3877, 0x3888, 0x3569, 0x372d, 0x2ac1, 0x331e, 0x384d, 0x3996, 0x34a4, -0x35c1, 0x33a9, 0x21ed, 0x3a42, 0x388d, 0x34e4, 0x33c3, 0x34f9, 0x3a7b, 0x33fb, 0x2cdd, 0x3b0e, 0x333b, 0x3973, 0x34fc, 0x3771, 0x32ea, 0x2de4, 0x31a8, 0x3946, 0x3657, 0x3a4e, 0x36f6, 0x2829, 0x3ba2, 0x3bdc, 0x3bb3, 0x306c, 0x398d, 0x3a1f, 0x3991, 0x3846, -0x3547, 0x3292, 0x2e85, 0x31ed, 0x3979, 0x3a90, 0x28a4, 0x3bed, 0x36d8, 0x340e, 0x3b6a, 0x3ab6, 0x3824, 0x382b, 0x3ac3, 0x3811, 0x36d7, 0x3519, 0x3a92, 0x3a42, 0x29d1, 0x383a, 0x3a9b, 0x300e, 0x2cd3, 0x39cd, 0x3874, 0x3a07, 0x2eb1, 0x3b86, 0x3ad8, 0x3a5d, -0x3712, 0x284a, 0x38c1, 0x3bec, 0x39c0, 0x32cd, 0x3ad8, 0x3bce, 0x3817, 0x3896, 0x3aa7, 0x3870, 0x3996, 0x32cc, 0x3a4c, 0x3757, 0x3814, 0x3b65, 0x3acb, 0x376e, 0x34c0, 0x3609, 0x3bf0, 0x3b24, 0x3b29, 0x3848, 0x34b7, 0x398a, 0x220c, 0x3498, 0x3a8c, 0x3883, -0x38c4, 0x3af6, 0x3a42, 0x2dd6, 0x3147, 0x3717, 0x3a8e, 0x3af9, 0x3296, 0x38ef, 0x34fa, 0x3555, 0x3b29, 0x38de, 0x315e, 0x3773, 0x3b67, 0x3116, 0x38ec, 0x357c, 0x35d0, 0x2518, 0x3958, 0x2a03, 0x37d9, 0x3699, 0x3a1e, 0x3230, 0x3b13, 0x36d4, 0x3b2a, 0x39ad, -0x3b10, 0x351a, 0x3b97, 0x3326, 0x2b54, 0x3b7d, 0x386f, 0x373e, 0x37fa, 0x389b, 0x3b90, 0x3292, 0x3975, 0x38f3, 0x37f1, 0x3590, 0x3810, 0x2fd7, 0x3bf7, 0x3a5a, 0x3a1c, 0x34dd, 0x354c, 0x32f8, 0x3095, 0x321e, 0x39e0, 0x395c, 0x3717, 0x357f, 0x394a, 0x34b1, -0x3ba4, 0x380c, 0x3604, 0x2f50, 0x348d, 0x3828, 0x3a9f, 0x39ce, 0x32ca, 0x3906, 0x3ab2, 0x2ca5, 0x38c9, 0x362a, 0x34b2, 0x29dc, 0x3a36, 0x3052, 0x31b7, 0x3589, 0x387c, 0x3401, 0x3b22, 0x3ad6, 0x3ae8, 0x3238, 0x3494, 0x3502, 0x3717, 0x3a6c, 0x3229, 0x368c, -0x3056, 0x3a56, 0x3498, 0x39eb, 0x2864, 0x342d, 0x39e0, 0x34a1, 0x2b99, 0x3a04, 0x38ff, 0x328c, 0x34d9, 0x387d, 0x3a3c, 0x32e5, 0x39eb, 0x3984, 0x34dd, 0x38a7, 0x373f, 0x39b4, 0x3235, 0x2f58, 0x2f39, 0x3800, 0x3758, 0x3939, 0x39fc, 0x3a4b, 0x38bf, 0x30ee, -0x345e, 0x39c8, 0x3a6d, 0x3262, 0x3b81, 0x31dc, 0x3a15, 0x3bd0, 0x36af, 0x36de, 0x37d5, 0x39d7, 0x3ad3, 0x3ac1, 0x3109, 0x35ea, 0x31c6, 0x398d, 0x3987, 0x3a4a, 0x34d2, 0x2ed2, 0x35e6, 0x352c, 0x39eb, 0x3bd6, 0x3a5b, 0x39d1, 0x34aa, 0x3ade, 0x394b, 0x38a1, -0x2bed, 0x38de, 0x3811, 0x3813, 0x391a, 0x374b, 0x3829, 0x3725, 0x38f0, 0x3583, 0x3966, 0x3a7d, 0x375a, 0x38fe, 0x3696, 0x361c, 0x39a8, 0x35f0, 0x38e1, 0x3003, 0x3595, 0x316e, 0x3862, 0x3af8, 0x3af2, 0x34c8, 0x381d, 0x37d8, 0x3893, 0x3a9c, 0x3989, 0x308c, -0x30cc, 0x2538, 0x399d, 0x3919, 0x399e, 0x21cc, 0x38e9, 0x30f8, 0x3a20, 0x3b3c, 0x3990, 0x259c, 0x3143, 0x3080, 0x3967, 0x3afb, 0x3a1b, 0x3779, 0x2eeb, 0x39f3, 0x379a, 0x369c, 0x3985, 0x3a1b, 0x3ba6, 0x3a53, 0x28d5, 0x3881, 0x31d9, 0x3a34, 0x3bd9, 0x393a, -0x3601, 0x2c6e, 0x3636, 0x3298, 0x39bb, 0x3a08, 0x38db, 0x35ad, 0x3a09, 0x36a6, 0x3bc7, 0x3bac, 0x34ae, 0x3291, 0x290b, 0x3250, 0x2648, 0x333d, 0x2bf3, 0x34b1, 0x30e0, 0x351f, 0x3a74, 0x38dc, 0x3883, 0x2841, 0x35e1, 0x390d, 0x3a50, 0x3abd, 0x386d, 0x3bb7, -0x3b94, 0x36b7, 0x3a49, 0x332f, 0x3a1d, 0x354b, 0x3bab, 0x3346, 0x3417, 0x351e, 0x3b6d, 0x391a, 0x2db3, 0x3b1c, 0x3a4a, 0x37b7, 0x36cf, 0x3a56, 0x39c4, 0x3be9, 0x34f0, 0x39be, 0x3691, 0x1ba5, 0x3888, 0x3040, 0x3ae1, 0x3b9b, 0x398f, 0x3a49, 0x3a16, 0x38c0, -0x386c, 0x39ab, 0x37fa, 0x382c, 0x3a6f, 0x393f, 0x340d, 0x38ef, 0x39d1, 0x3845, 0x398f, 0x363e, 0x3687, 0x3052, 0x3a2b, 0x392c, 0x2f5c, 0x3412, 0x3a1f, 0x3b2f, 0x3bcc, 0x3a63, 0x3a89, 0x36e9, 0x3921, 0x3b80, 0x2dc0, 0x3a03, 0x3beb, 0x38d3, 0x36cb, 0x39a3, -0x3978, 0x3a88, 0x3ba4, 0x3561, 0x28c5, 0x33a0, 0x37be, 0x2c39, 0x30ee, 0x3782, 0x2c07, 0x354e, 0x3491, 0x3a92, 0x331a, 0x3b15, 0x32e1, 0x3839, 0x3afb, 0x36c2, 0x2fd0, 0x29ad, 0x3b2e, 0x39c1, 0x2a8c, 0x341a, 0x2f90, 0x395a, 0x3969, 0x37ea, 0x3a5c, 0x3b6d, -0x3971, 0x3a93, 0x304e, 0x3623, 0x3a22, 0x31ee, 0x29df, 0x2c93, 0x3a01, 0x3a62, 0x366c, 0x371d, 0x3af3, 0x2e08, 0x3ac0, 0x3642, 0x3a28, 0x368d, 0x2d3d, 0x36d9, 0x32c3, 0x373f, 0x36fe, 0x3487, 0x2c81, 0x3623, 0x3b59, 0x3a91, 0x350a, 0x34f4, 0x3b09, 0x2c25, -0x3b13, 0x325a, 0x379e, 0x3a7d, 0x34b1, 0x39d5, 0x2ba8, 0x322b, 0x3b5e, 0x37ab, 0x2e24, 0x3ba9, 0x3a3d, 0x34f7, 0x3ba1, 0x3877, 0x3071, 0x39fb, 0x3bbd, 0x3633, 0x3b36, 0x2daa, 0x3b9b, 0x3aa0, 0x395c, 0x3b8f, 0x38d5, 0x3ab0, 0x3a8f, 0x36c2, 0x3b1f, 0x3489, -0x2acc, 0x3845, 0x3715, 0x37d8, 0x3992, 0x3bff, 0x350e, 0x3ad7, 0x39b0, 0x35ac, 0x3287, 0x385f, 0x3bd4, 0x37a3, 0x3438, 0x39a5, 0x3bcf, 0x38c3, 0x34f6, 0x3ae3, 0x3b57, 0x39af, 0x35eb, 0x3bed, 0x34d4, 0x2a95, 0x3b13, 0x384e, 0x3a3b, 0x33da, 0x3bce, 0x3b99, -0x3559, 0x3335, 0x3a2e, 0x3123, 0x38db, 0x33d0, 0x3638, 0x3b17, 0x3a72, 0x3afc, 0x3936, 0x3838, 0x2b69, 0x3895, 0x3a1a, 0x3192, 0x39d5, 0x37a5, 0x2eb0, 0x2e8b, 0x329a, 0x3b90, 0x390a, 0x3a1e, 0x3847, 0x375d, 0x3873, 0x35e2, 0x3771, 0x30f5, 0x3231, 0x3bd7, -0x2bbc, 0x3ace, 0x31ad, 0x3a6b, 0x28a4, 0x3b48, 0x3ba3, 0x3a84, 0x3353, 0x39f6, 0x381f, 0x2dd6, 0x314c, 0x34af, 0x3929, 0x3921, 0x383b, 0x34b0, 0x3923, 0x32c9, 0x3ae7, 0x318f, 0x3480, 0x2ad8, 0x3042, 0x3a4c, 0x349d, 0x2c12, 0x3abb, 0x3a57, 0x3b0d, 0x3111, -0x3359, 0x3a84, 0x38f2, 0x368d, 0x2f4b, 0x3ba0, 0x395c, 0x3026, 0x3a15, 0x2a04, 0x326e, 0x3522, 0x31a2, 0x382f, 0x2ada, 0x3b7c, 0x2f80, 0x3af5, 0x2d35, 0x38fa, 0x39ab, 0x2c6d, 0x2e7a, 0x39f6, 0x31a4, 0x3a53, 0x358c, 0x3951, 0x3a4e, 0x3916, 0x2a3f, 0x3ae9, -0x3b03, 0x39f8, 0x39fe, 0x3a61, 0x39fb, 0x3704, 0x360d, 0x39a7, 0x37a9, 0x348f, 0x3a30, 0x3af5, 0x366f, 0x3b29, 0x3a6a, 0x33d5, 0x370a, 0x39cd, 0x3444, 0x3bea, 0x3b2b, 0x312e, 0x3b8e, 0x32cf, 0x3b79, 0x3302, 0x3bba, 0x3962, 0x3413, 0x37a1, 0x39e0, 0x3805 -}; \ No newline at end of file diff --git a/carfield/redmule/inc/z_2D.h b/carfield/redmule/inc/z_2D.h deleted file mode 100644 index aff808a..0000000 --- a/carfield/redmule/inc/z_2D.h +++ /dev/null @@ -1,27 +0,0 @@ - /* Header file generated by RedMulE Golden Model */ -uint16_t z_oup_2D [24][32] = { -0x4845, 0x4897, 0x4608, 0x4838, 0x4855, 0x487b, 0x4869, 0x4880, 0x46d1, 0x48b0, 0x48db, 0x483f, 0x48c9, 0x485f, 0x4881, 0x483a, 0x484b, 0x472c, 0x4762, 0x492b, 0x4822, 0x48fd, 0x488e, 0x492e, 0x483e, 0x484f, 0x49e8, 0x46d7, 0x484b, 0x489d, 0x490b, 0x47e9, -0x484f, 0x47d2, 0x44be, 0x4747, 0x47c7, 0x46c0, 0x4727, 0x48af, 0x46c5, 0x482d, 0x483d, 0x482e, 0x4897, 0x479f, 0x488b, 0x4749, 0x489a, 0x46a8, 0x46f2, 0x488b, 0x4891, 0x47e8, 0x4872, 0x483d, 0x4716, 0x46fd, 0x49b5, 0x46a0, 0x46e7, 0x47a4, 0x48a1, 0x4767, -0x4939, 0x4935, 0x4703, 0x48c1, 0x4863, 0x48bd, 0x4913, 0x48cf, 0x48b6, 0x48b8, 0x4946, 0x4920, 0x495e, 0x48e1, 0x4938, 0x48b2, 0x493a, 0x4882, 0x483b, 0x49d5, 0x4911, 0x4972, 0x496b, 0x49df, 0x48f2, 0x4888, 0x4a46, 0x4821, 0x48c1, 0x490c, 0x49b2, 0x48a3, -0x463a, 0x47b0, 0x44cb, 0x4762, 0x4765, 0x46b9, 0x466a, 0x4814, 0x4631, 0x4796, 0x4666, 0x474b, 0x4798, 0x4704, 0x4838, 0x4761, 0x47d3, 0x4590, 0x45ea, 0x48a2, 0x47f1, 0x4844, 0x484b, 0x4776, 0x47d6, 0x46d8, 0x48f3, 0x44d3, 0x46fa, 0x478d, 0x481e, 0x466e, -0x4827, 0x481e, 0x45a2, 0x4794, 0x4727, 0x4806, 0x475d, 0x48d5, 0x4708, 0x4828, 0x4862, 0x480d, 0x4895, 0x4832, 0x48bd, 0x47f1, 0x482a, 0x46a7, 0x47b1, 0x492d, 0x484d, 0x4884, 0x48dc, 0x485f, 0x476d, 0x480c, 0x48e9, 0x46d3, 0x4728, 0x4884, 0x48a0, 0x480e, -0x4862, 0x4813, 0x4675, 0x485a, 0x47e8, 0x4738, 0x4836, 0x4823, 0x46e7, 0x4821, 0x4822, 0x47b3, 0x4846, 0x4855, 0x4863, 0x4717, 0x4872, 0x47c1, 0x46d5, 0x488e, 0x47e2, 0x485f, 0x487c, 0x48b8, 0x481e, 0x4788, 0x48bd, 0x4677, 0x46c9, 0x47f8, 0x48fe, 0x47fc, -0x47a0, 0x47b2, 0x4588, 0x467e, 0x4662, 0x46c7, 0x46e8, 0x4812, 0x4536, 0x474e, 0x46c0, 0x468f, 0x481f, 0x4679, 0x46a1, 0x46e2, 0x4809, 0x4560, 0x4630, 0x47eb, 0x46b5, 0x4757, 0x4848, 0x477f, 0x46a6, 0x46d8, 0x4870, 0x459a, 0x4670, 0x4678, 0x47d2, 0x468c, -0x4762, 0x48c4, 0x46e3, 0x4791, 0x46b1, 0x486d, 0x47d0, 0x4867, 0x468d, 0x47f6, 0x48a5, 0x4756, 0x4857, 0x4854, 0x4866, 0x4838, 0x484d, 0x46ec, 0x47d2, 0x48f6, 0x484a, 0x4879, 0x4848, 0x483c, 0x471d, 0x4806, 0x48fa, 0x4730, 0x4768, 0x47b8, 0x4865, 0x46f9, -0x48a8, 0x4918, 0x46ca, 0x4867, 0x4800, 0x4862, 0x48d3, 0x4910, 0x474e, 0x4849, 0x48eb, 0x486b, 0x4966, 0x48c5, 0x48f4, 0x4830, 0x48f9, 0x4778, 0x481e, 0x499e, 0x48cf, 0x48f1, 0x4982, 0x4923, 0x487c, 0x47cf, 0x49ea, 0x4649, 0x4773, 0x495e, 0x48b2, 0x483f, -0x48a7, 0x4975, 0x4616, 0x481e, 0x481f, 0x4866, 0x48b6, 0x4864, 0x47dc, 0x4873, 0x485c, 0x487f, 0x4938, 0x491f, 0x490d, 0x48b6, 0x48f8, 0x48a1, 0x4859, 0x492d, 0x489c, 0x4915, 0x4899, 0x4887, 0x486c, 0x4859, 0x49ca, 0x471e, 0x4867, 0x4918, 0x48d3, 0x4827, -0x488b, 0x4998, 0x4704, 0x481d, 0x48b8, 0x4880, 0x4876, 0x4944, 0x470c, 0x48f2, 0x48b9, 0x489b, 0x4956, 0x48e5, 0x48d6, 0x48a5, 0x48dc, 0x4856, 0x484e, 0x49ab, 0x48e0, 0x490e, 0x48dd, 0x4945, 0x488b, 0x48dd, 0x4a32, 0x47ea, 0x4835, 0x4911, 0x4965, 0x4819, -0x460e, 0x481e, 0x452c, 0x4673, 0x475c, 0x4717, 0x46f6, 0x46d0, 0x4696, 0x46bc, 0x4726, 0x481e, 0x4763, 0x46ea, 0x46fe, 0x4758, 0x478b, 0x4627, 0x4704, 0x483f, 0x46ad, 0x47b1, 0x4792, 0x4816, 0x46f2, 0x4684, 0x4827, 0x45a8, 0x472f, 0x47a4, 0x4797, 0x462b, -0x483f, 0x48ab, 0x468f, 0x4863, 0x485a, 0x4766, 0x481d, 0x48cb, 0x47dc, 0x4903, 0x48fc, 0x4830, 0x48cc, 0x483e, 0x48ab, 0x4864, 0x4966, 0x4763, 0x4794, 0x499d, 0x488e, 0x488b, 0x48dc, 0x4960, 0x4854, 0x484c, 0x499c, 0x474c, 0x4826, 0x48bc, 0x4949, 0x4883, -0x489d, 0x4905, 0x4718, 0x481e, 0x48e3, 0x48f4, 0x48c1, 0x4904, 0x47e8, 0x48b3, 0x4892, 0x48d4, 0x48ff, 0x4894, 0x48d5, 0x4886, 0x48fa, 0x4803, 0x47d2, 0x492e, 0x4870, 0x48b2, 0x48e5, 0x492b, 0x487b, 0x4785, 0x49e3, 0x471d, 0x4837, 0x48bf, 0x489b, 0x48c4, -0x475c, 0x4871, 0x464a, 0x4811, 0x47af, 0x471c, 0x4817, 0x4817, 0x463b, 0x484e, 0x477f, 0x464f, 0x4704, 0x487c, 0x47a3, 0x4725, 0x4853, 0x462a, 0x465a, 0x4860, 0x4736, 0x4880, 0x47e1, 0x482b, 0x4811, 0x46c0, 0x48dc, 0x475d, 0x4668, 0x4806, 0x4893, 0x46f4, -0x4858, 0x4959, 0x463d, 0x487b, 0x480f, 0x484e, 0x48c0, 0x48a6, 0x4847, 0x4894, 0x48a0, 0x484a, 0x491e, 0x48f4, 0x48fc, 0x48b5, 0x48ce, 0x47d2, 0x47db, 0x497f, 0x4955, 0x4939, 0x48a7, 0x48ce, 0x4890, 0x4884, 0x49d6, 0x4763, 0x486e, 0x4922, 0x48f4, 0x48c3, -0x47ec, 0x491c, 0x4698, 0x4783, 0x4715, 0x4754, 0x4745, 0x4752, 0x472f, 0x4832, 0x4817, 0x4809, 0x47f8, 0x48c3, 0x47e6, 0x4800, 0x48b6, 0x4730, 0x480a, 0x48cb, 0x479e, 0x488e, 0x47c2, 0x488e, 0x472f, 0x47ee, 0x489d, 0x4744, 0x4755, 0x4851, 0x4846, 0x47d3, -0x4838, 0x48a0, 0x4634, 0x4762, 0x4786, 0x4806, 0x47e3, 0x482d, 0x4726, 0x486c, 0x47b7, 0x4803, 0x48ac, 0x4814, 0x48e0, 0x4839, 0x4827, 0x4750, 0x46f2, 0x48c5, 0x483f, 0x4886, 0x48ad, 0x4856, 0x47e8, 0x47a9, 0x4937, 0x4743, 0x46d0, 0x481f, 0x484c, 0x4804, -0x47fd, 0x481f, 0x456d, 0x4813, 0x474d, 0x4807, 0x4688, 0x480e, 0x46e8, 0x4810, 0x469f, 0x4799, 0x4853, 0x478f, 0x47f2, 0x4824, 0x47d0, 0x471f, 0x46da, 0x485f, 0x4813, 0x481c, 0x482e, 0x4863, 0x4786, 0x480b, 0x48c9, 0x46b8, 0x475a, 0x46e2, 0x4852, 0x46c5, -0x45af, 0x4802, 0x4466, 0x46c2, 0x465d, 0x4743, 0x46b7, 0x47ba, 0x4636, 0x46c3, 0x4677, 0x4784, 0x485a, 0x47c2, 0x46dc, 0x46ac, 0x47de, 0x460e, 0x465f, 0x4834, 0x47f4, 0x4769, 0x46fc, 0x4810, 0x45fd, 0x45ea, 0x48d0, 0x45b5, 0x4704, 0x4783, 0x4830, 0x46c4, -0x4759, 0x47c7, 0x453d, 0x45b0, 0x4741, 0x4702, 0x4736, 0x4793, 0x461b, 0x47ba, 0x470b, 0x46dd, 0x4657, 0x470b, 0x470d, 0x4710, 0x486c, 0x468f, 0x45c3, 0x46ba, 0x479d, 0x483b, 0x46c9, 0x4774, 0x46a9, 0x46a7, 0x4833, 0x4606, 0x4690, 0x46a9, 0x46f5, 0x46a7, -0x47ac, 0x48bb, 0x452c, 0x4803, 0x470f, 0x4824, 0x47d5, 0x48cb, 0x4707, 0x484a, 0x4832, 0x4797, 0x4851, 0x482c, 0x487a, 0x4877, 0x4891, 0x465d, 0x47f4, 0x48ce, 0x4898, 0x4899, 0x484e, 0x486a, 0x47ac, 0x47f0, 0x493e, 0x4611, 0x47e2, 0x489e, 0x488c, 0x46af, -0x4665, 0x4836, 0x45e4, 0x46b6, 0x46a1, 0x46b9, 0x46c8, 0x46dd, 0x4658, 0x474b, 0x467b, 0x4777, 0x4769, 0x4798, 0x4785, 0x475e, 0x472a, 0x4656, 0x45fb, 0x4881, 0x46fc, 0x472d, 0x476e, 0x47a3, 0x465d, 0x46ca, 0x4855, 0x4500, 0x464f, 0x479a, 0x46c3, 0x4738, -0x481e, 0x486c, 0x4659, 0x4801, 0x4756, 0x477a, 0x47d5, 0x487b, 0x4706, 0x4808, 0x484f, 0x4838, 0x4870, 0x4863, 0x48d3, 0x4806, 0x4865, 0x4771, 0x46be, 0x494c, 0x4915, 0x484c, 0x4900, 0x4862, 0x481a, 0x46e8, 0x4974, 0x46a0, 0x4775, 0x483d, 0x487c, 0x480e -}; \ No newline at end of file diff --git a/carfield/redmule/inc/z_output.h b/carfield/redmule/inc/z_output.h deleted file mode 100644 index 96c7e5f..0000000 --- a/carfield/redmule/inc/z_output.h +++ /dev/null @@ -1,27 +0,0 @@ - /* Header file generated by RedMulE Golden Model */ -uint16_t z_oup [768] = { -0x4845, 0x4897, 0x4608, 0x4838, 0x4855, 0x487b, 0x4869, 0x4880, 0x46d1, 0x48b0, 0x48db, 0x483f, 0x48c9, 0x485f, 0x4881, 0x483a, 0x484b, 0x472c, 0x4762, 0x492b, 0x4822, 0x48fd, 0x488e, 0x492e, 0x483e, 0x484f, 0x49e8, 0x46d7, 0x484b, 0x489d, 0x490b, 0x47e9, -0x484f, 0x47d2, 0x44be, 0x4747, 0x47c7, 0x46c0, 0x4727, 0x48af, 0x46c5, 0x482d, 0x483d, 0x482e, 0x4897, 0x479f, 0x488b, 0x4749, 0x489a, 0x46a8, 0x46f2, 0x488b, 0x4891, 0x47e8, 0x4872, 0x483d, 0x4716, 0x46fd, 0x49b5, 0x46a0, 0x46e7, 0x47a4, 0x48a1, 0x4767, -0x4939, 0x4935, 0x4703, 0x48c1, 0x4863, 0x48bd, 0x4913, 0x48cf, 0x48b6, 0x48b8, 0x4946, 0x4920, 0x495e, 0x48e1, 0x4938, 0x48b2, 0x493a, 0x4882, 0x483b, 0x49d5, 0x4911, 0x4972, 0x496b, 0x49df, 0x48f2, 0x4888, 0x4a46, 0x4821, 0x48c1, 0x490c, 0x49b2, 0x48a3, -0x463a, 0x47b0, 0x44cb, 0x4762, 0x4765, 0x46b9, 0x466a, 0x4814, 0x4631, 0x4796, 0x4666, 0x474b, 0x4798, 0x4704, 0x4838, 0x4761, 0x47d3, 0x4590, 0x45ea, 0x48a2, 0x47f1, 0x4844, 0x484b, 0x4776, 0x47d6, 0x46d8, 0x48f3, 0x44d3, 0x46fa, 0x478d, 0x481e, 0x466e, -0x4827, 0x481e, 0x45a2, 0x4794, 0x4727, 0x4806, 0x475d, 0x48d5, 0x4708, 0x4828, 0x4862, 0x480d, 0x4895, 0x4832, 0x48bd, 0x47f1, 0x482a, 0x46a7, 0x47b1, 0x492d, 0x484d, 0x4884, 0x48dc, 0x485f, 0x476d, 0x480c, 0x48e9, 0x46d3, 0x4728, 0x4884, 0x48a0, 0x480e, -0x4862, 0x4813, 0x4675, 0x485a, 0x47e8, 0x4738, 0x4836, 0x4823, 0x46e7, 0x4821, 0x4822, 0x47b3, 0x4846, 0x4855, 0x4863, 0x4717, 0x4872, 0x47c1, 0x46d5, 0x488e, 0x47e2, 0x485f, 0x487c, 0x48b8, 0x481e, 0x4788, 0x48bd, 0x4677, 0x46c9, 0x47f8, 0x48fe, 0x47fc, -0x47a0, 0x47b2, 0x4588, 0x467e, 0x4662, 0x46c7, 0x46e8, 0x4812, 0x4536, 0x474e, 0x46c0, 0x468f, 0x481f, 0x4679, 0x46a1, 0x46e2, 0x4809, 0x4560, 0x4630, 0x47eb, 0x46b5, 0x4757, 0x4848, 0x477f, 0x46a6, 0x46d8, 0x4870, 0x459a, 0x4670, 0x4678, 0x47d2, 0x468c, -0x4762, 0x48c4, 0x46e3, 0x4791, 0x46b1, 0x486d, 0x47d0, 0x4867, 0x468d, 0x47f6, 0x48a5, 0x4756, 0x4857, 0x4854, 0x4866, 0x4838, 0x484d, 0x46ec, 0x47d2, 0x48f6, 0x484a, 0x4879, 0x4848, 0x483c, 0x471d, 0x4806, 0x48fa, 0x4730, 0x4768, 0x47b8, 0x4865, 0x46f9, -0x48a8, 0x4918, 0x46ca, 0x4867, 0x4800, 0x4862, 0x48d3, 0x4910, 0x474e, 0x4849, 0x48eb, 0x486b, 0x4966, 0x48c5, 0x48f4, 0x4830, 0x48f9, 0x4778, 0x481e, 0x499e, 0x48cf, 0x48f1, 0x4982, 0x4923, 0x487c, 0x47cf, 0x49ea, 0x4649, 0x4773, 0x495e, 0x48b2, 0x483f, -0x48a7, 0x4975, 0x4616, 0x481e, 0x481f, 0x4866, 0x48b6, 0x4864, 0x47dc, 0x4873, 0x485c, 0x487f, 0x4938, 0x491f, 0x490d, 0x48b6, 0x48f8, 0x48a1, 0x4859, 0x492d, 0x489c, 0x4915, 0x4899, 0x4887, 0x486c, 0x4859, 0x49ca, 0x471e, 0x4867, 0x4918, 0x48d3, 0x4827, -0x488b, 0x4998, 0x4704, 0x481d, 0x48b8, 0x4880, 0x4876, 0x4944, 0x470c, 0x48f2, 0x48b9, 0x489b, 0x4956, 0x48e5, 0x48d6, 0x48a5, 0x48dc, 0x4856, 0x484e, 0x49ab, 0x48e0, 0x490e, 0x48dd, 0x4945, 0x488b, 0x48dd, 0x4a32, 0x47ea, 0x4835, 0x4911, 0x4965, 0x4819, -0x460e, 0x481e, 0x452c, 0x4673, 0x475c, 0x4717, 0x46f6, 0x46d0, 0x4696, 0x46bc, 0x4726, 0x481e, 0x4763, 0x46ea, 0x46fe, 0x4758, 0x478b, 0x4627, 0x4704, 0x483f, 0x46ad, 0x47b1, 0x4792, 0x4816, 0x46f2, 0x4684, 0x4827, 0x45a8, 0x472f, 0x47a4, 0x4797, 0x462b, -0x483f, 0x48ab, 0x468f, 0x4863, 0x485a, 0x4766, 0x481d, 0x48cb, 0x47dc, 0x4903, 0x48fc, 0x4830, 0x48cc, 0x483e, 0x48ab, 0x4864, 0x4966, 0x4763, 0x4794, 0x499d, 0x488e, 0x488b, 0x48dc, 0x4960, 0x4854, 0x484c, 0x499c, 0x474c, 0x4826, 0x48bc, 0x4949, 0x4883, -0x489d, 0x4905, 0x4718, 0x481e, 0x48e3, 0x48f4, 0x48c1, 0x4904, 0x47e8, 0x48b3, 0x4892, 0x48d4, 0x48ff, 0x4894, 0x48d5, 0x4886, 0x48fa, 0x4803, 0x47d2, 0x492e, 0x4870, 0x48b2, 0x48e5, 0x492b, 0x487b, 0x4785, 0x49e3, 0x471d, 0x4837, 0x48bf, 0x489b, 0x48c4, -0x475c, 0x4871, 0x464a, 0x4811, 0x47af, 0x471c, 0x4817, 0x4817, 0x463b, 0x484e, 0x477f, 0x464f, 0x4704, 0x487c, 0x47a3, 0x4725, 0x4853, 0x462a, 0x465a, 0x4860, 0x4736, 0x4880, 0x47e1, 0x482b, 0x4811, 0x46c0, 0x48dc, 0x475d, 0x4668, 0x4806, 0x4893, 0x46f4, -0x4858, 0x4959, 0x463d, 0x487b, 0x480f, 0x484e, 0x48c0, 0x48a6, 0x4847, 0x4894, 0x48a0, 0x484a, 0x491e, 0x48f4, 0x48fc, 0x48b5, 0x48ce, 0x47d2, 0x47db, 0x497f, 0x4955, 0x4939, 0x48a7, 0x48ce, 0x4890, 0x4884, 0x49d6, 0x4763, 0x486e, 0x4922, 0x48f4, 0x48c3, -0x47ec, 0x491c, 0x4698, 0x4783, 0x4715, 0x4754, 0x4745, 0x4752, 0x472f, 0x4832, 0x4817, 0x4809, 0x47f8, 0x48c3, 0x47e6, 0x4800, 0x48b6, 0x4730, 0x480a, 0x48cb, 0x479e, 0x488e, 0x47c2, 0x488e, 0x472f, 0x47ee, 0x489d, 0x4744, 0x4755, 0x4851, 0x4846, 0x47d3, -0x4838, 0x48a0, 0x4634, 0x4762, 0x4786, 0x4806, 0x47e3, 0x482d, 0x4726, 0x486c, 0x47b7, 0x4803, 0x48ac, 0x4814, 0x48e0, 0x4839, 0x4827, 0x4750, 0x46f2, 0x48c5, 0x483f, 0x4886, 0x48ad, 0x4856, 0x47e8, 0x47a9, 0x4937, 0x4743, 0x46d0, 0x481f, 0x484c, 0x4804, -0x47fd, 0x481f, 0x456d, 0x4813, 0x474d, 0x4807, 0x4688, 0x480e, 0x46e8, 0x4810, 0x469f, 0x4799, 0x4853, 0x478f, 0x47f2, 0x4824, 0x47d0, 0x471f, 0x46da, 0x485f, 0x4813, 0x481c, 0x482e, 0x4863, 0x4786, 0x480b, 0x48c9, 0x46b8, 0x475a, 0x46e2, 0x4852, 0x46c5, -0x45af, 0x4802, 0x4466, 0x46c2, 0x465d, 0x4743, 0x46b7, 0x47ba, 0x4636, 0x46c3, 0x4677, 0x4784, 0x485a, 0x47c2, 0x46dc, 0x46ac, 0x47de, 0x460e, 0x465f, 0x4834, 0x47f4, 0x4769, 0x46fc, 0x4810, 0x45fd, 0x45ea, 0x48d0, 0x45b5, 0x4704, 0x4783, 0x4830, 0x46c4, -0x4759, 0x47c7, 0x453d, 0x45b0, 0x4741, 0x4702, 0x4736, 0x4793, 0x461b, 0x47ba, 0x470b, 0x46dd, 0x4657, 0x470b, 0x470d, 0x4710, 0x486c, 0x468f, 0x45c3, 0x46ba, 0x479d, 0x483b, 0x46c9, 0x4774, 0x46a9, 0x46a7, 0x4833, 0x4606, 0x4690, 0x46a9, 0x46f5, 0x46a7, -0x47ac, 0x48bb, 0x452c, 0x4803, 0x470f, 0x4824, 0x47d5, 0x48cb, 0x4707, 0x484a, 0x4832, 0x4797, 0x4851, 0x482c, 0x487a, 0x4877, 0x4891, 0x465d, 0x47f4, 0x48ce, 0x4898, 0x4899, 0x484e, 0x486a, 0x47ac, 0x47f0, 0x493e, 0x4611, 0x47e2, 0x489e, 0x488c, 0x46af, -0x4665, 0x4836, 0x45e4, 0x46b6, 0x46a1, 0x46b9, 0x46c8, 0x46dd, 0x4658, 0x474b, 0x467b, 0x4777, 0x4769, 0x4798, 0x4785, 0x475e, 0x472a, 0x4656, 0x45fb, 0x4881, 0x46fc, 0x472d, 0x476e, 0x47a3, 0x465d, 0x46ca, 0x4855, 0x4500, 0x464f, 0x479a, 0x46c3, 0x4738, -0x481e, 0x486c, 0x4659, 0x4801, 0x4756, 0x477a, 0x47d5, 0x487b, 0x4706, 0x4808, 0x484f, 0x4838, 0x4870, 0x4863, 0x48d3, 0x4806, 0x4865, 0x4771, 0x46be, 0x494c, 0x4915, 0x484c, 0x4900, 0x4862, 0x481a, 0x46e8, 0x4974, 0x46a0, 0x4775, 0x483d, 0x487c, 0x480e -}; \ No newline at end of file diff --git a/carfield/redmule/redmule.c b/carfield/redmule/redmule.c deleted file mode 100644 index 992e223..0000000 --- a/carfield/redmule/redmule.c +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Copyright (C) 2022-2023 ETH Zurich and University of Bologna - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * SPDX-License-Identifier: Apache-2.0 - * - * Author: Yvan Tortorella - * - * RedMulE SW test - */ - -#include -#include "stdio.h" -#include "archi_redmule.h" -#include "hal_redmule.h" -#include "pulp.h" - -int main() { - - volatile int errors = 0; - - if(get_core_id() == 0){ - - uint16_t m_size = M_SIZE; - uint16_t n_size = N_SIZE; - uint16_t k_size = K_SIZE; - - uint8_t *x_ext = x_inp; - uint8_t *w_ext = w_inp; - uint8_t *y_ext = y_inp; - uint8_t *z_ext = z_oup; - - uint8_t volatile *x = (uint8_t volatile *) pi_l1_malloc(0, (2*m_size*n_size)); - uint8_t volatile *w = (uint8_t volatile *) pi_l1_malloc(0, (2*n_size*k_size)); - uint8_t volatile *y = (uint8_t volatile *) pi_l1_malloc(0, (2*m_size*k_size)); - - #ifdef USE_NO_DMA - generate_test_data16((int) x, (int) w, (int) y, (int) m_size, (int) n_size, (int) k_size); - #else - volatile unsigned int dma_id = 0; - dma_id = mchan_alloc(); - mchan_transfer((unsigned int) 2*(2*m_size*n_size), - (unsigned int) x_ext, - (unsigned int) x ); - mchan_barrier(dma_id); - mchan_free(dma_id); - - dma_id = mchan_alloc(); - mchan_transfer((unsigned int) 2*(2*n_size*k_size), - (unsigned int) w_ext, - (unsigned int) w ); - mchan_barrier(dma_id); - mchan_free(dma_id); - - dma_id = mchan_alloc(); - mchan_transfer((unsigned int) 2*(2*m_size*k_size), - (unsigned int) y_ext, - (unsigned int) y ); - mchan_barrier(dma_id); - #endif - - int gold_sum = 0, check_sum = 0; - int i,j; - - int offload_id_tmp, offload_id; - - // Enable RedMulE - hwpe_cg_enable(); - - hwpe_soft_clear(); - - // redmule_cfg ((unsigned int) x, - // (unsigned int) w, - // (unsigned int) y, - // m_size, n_size, k_size, - // (uint8_t) GEMM, - // (uint8_t) Float16); - redmule_x_add_set ((unsigned int) x); - redmule_w_add_set ((unsigned int) w); - redmule_y_add_set ((unsigned int) y); - redmule_z_add_set ((unsigned int) y); - redmule_cfg (m_size, n_size, k_size, gemm_ops); - - // Start RedMulE operation - hwpe_trigger_job(); - - // Wait for end of computation - redmule_evt_wait(); - - // Disable RedMulE - hwpe_cg_disable(); - - errors = redmule_compare16((int) y, (int) m_size, (int) k_size); - - *(int *) 0x1A1040A0 = errors; - - printf ("Terminated test with %d errors. See you!\n", errors); - - } - synch_barrier(); - return errors; -} From 1601f5698d6255b7dfcde9e9ebf475cd259daf07 Mon Sep 17 00:00:00 2001 From: Riccardo Tedeschi Date: Wed, 27 Mar 2024 14:58:22 +0100 Subject: [PATCH 28/56] Update carfield.yaml --- carfield.yaml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/carfield.yaml b/carfield.yaml index 2055dcc..751550e 100644 --- a/carfield.yaml +++ b/carfield.yaml @@ -1,16 +1,19 @@ carfield: parMatrixMul8: - path: ./carfield/parMatrixMul8 #ok + path: ./carfield/parMatrixMul8 command: make clean all run parMatrixMul16: - path: ./carfield/parMatrixMul16 #ok + path: ./carfield/parMatrixMul16 command: make clean all run parMatrixMul32: - path: ./carfield/parMatrixMul32 #ok + path: ./carfield/parMatrixMul32 command: make clean all run dmr_matmul: - path: ./carfield/dmr_matmul #ok + path: ./carfield/dmr_matmul command: make clean all run redmule: - path: ./carfield/redmule #ok + path: ./carfield/redmule + command: make clean all run + neureka: + path: ./carfield/neureka command: make clean all run \ No newline at end of file From 2329b5a21c229da79b79adbf1b62a2cb28b5440e Mon Sep 17 00:00:00 2001 From: Riccardo Tedeschi Date: Fri, 29 Mar 2024 10:59:35 +0100 Subject: [PATCH 29/56] Update astral target --- astral.yaml | 15 +- astral/neureka | 1 + astral/redmule | 1 + astral/redmule/Makefile | 9 - astral/redmule/archi_redmule.h | 164 ---------- astral/redmule/hal_redmule.h | 527 -------------------------------- astral/redmule/inc/golden.h | 387 ----------------------- astral/redmule/inc/tensor_dim.h | 13 - astral/redmule/inc/w_2D.h | 35 --- astral/redmule/inc/w_input.h | 35 --- astral/redmule/inc/x_2D.h | 27 -- astral/redmule/inc/x_input.h | 27 -- astral/redmule/inc/y_2D.h | 27 -- astral/redmule/inc/y_input.h | 27 -- astral/redmule/inc/z_2D.h | 27 -- astral/redmule/inc/z_output.h | 27 -- astral/redmule/redmule.c | 112 ------- 17 files changed, 11 insertions(+), 1450 deletions(-) create mode 120000 astral/neureka create mode 120000 astral/redmule delete mode 100644 astral/redmule/Makefile delete mode 100644 astral/redmule/archi_redmule.h delete mode 100644 astral/redmule/hal_redmule.h delete mode 100644 astral/redmule/inc/golden.h delete mode 100644 astral/redmule/inc/tensor_dim.h delete mode 100644 astral/redmule/inc/w_2D.h delete mode 100644 astral/redmule/inc/w_input.h delete mode 100644 astral/redmule/inc/x_2D.h delete mode 100644 astral/redmule/inc/x_input.h delete mode 100644 astral/redmule/inc/y_2D.h delete mode 100644 astral/redmule/inc/y_input.h delete mode 100644 astral/redmule/inc/z_2D.h delete mode 100644 astral/redmule/inc/z_output.h delete mode 100644 astral/redmule/redmule.c diff --git a/astral.yaml b/astral.yaml index cc65374..d8acd6c 100644 --- a/astral.yaml +++ b/astral.yaml @@ -1,16 +1,19 @@ -carfield: +astral: parMatrixMul8: - path: ./astral/parMatrixMul8 #ok + path: ./astral/parMatrixMul8 command: make clean all run parMatrixMul16: - path: ./astral/parMatrixMul16 #ok + path: ./astral/parMatrixMul16 command: make clean all run parMatrixMul32: - path: ./astral/parMatrixMul32 #ok + path: ./astral/parMatrixMul32 command: make clean all run dmr_matmul: - path: ./astral/dmr_matmul #ok + path: ./astral/dmr_matmul command: make clean all run redmule: - path: ./astral/redmule #ok + path: ./astral/redmule + command: make clean all run + neureka: + path: ./astral/neureka command: make clean all run \ No newline at end of file diff --git a/astral/neureka b/astral/neureka new file mode 120000 index 0000000..98cb979 --- /dev/null +++ b/astral/neureka @@ -0,0 +1 @@ +../hwpe/neureka/ \ No newline at end of file diff --git a/astral/redmule b/astral/redmule new file mode 120000 index 0000000..bd0da93 --- /dev/null +++ b/astral/redmule @@ -0,0 +1 @@ +../hwpe/redmule/ \ No newline at end of file diff --git a/astral/redmule/Makefile b/astral/redmule/Makefile deleted file mode 100644 index c498417..0000000 --- a/astral/redmule/Makefile +++ /dev/null @@ -1,9 +0,0 @@ -PULP_APP = test -PULP_APP_SRCS = redmule.c -PULP_CFLAGS = -O3 - -ifeq ($(use_no_dma),1) - PULP_CFLAGS += -DUSE_NO_DMA -endif - -include $(PULP_SDK_HOME)/install/rules/pulp.mk diff --git a/astral/redmule/archi_redmule.h b/astral/redmule/archi_redmule.h deleted file mode 100644 index 9222d63..0000000 --- a/astral/redmule/archi_redmule.h +++ /dev/null @@ -1,164 +0,0 @@ -/* - * Copyright (C) 2022-2023 ETH Zurich and University of Bologna - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * SPDX-License-Identifier: Apache-2.0 - * - * Author: Yvan Tortorella - * - * High-level architecture of RedMulE - * - */ - -#ifndef __ARCHI_REDMULE_H__ -#define __ARCHI_REDMULE_H__ - -/* - * |========================================================================| - * || || - * ||Control and generic configuration register layout || - * |========================================================================| - * || # reg | offset | bits | bitmask || content || - * ||-------+----------+---------+--------------++-------------------------|| - * || 0 | 0x0000 | 31: 0 | 0xFFFFFFFF || TRIGGER || - * || 1 | 0x0004 | 31: 0 | 0xFFFFFFFF || ACQUIRE || - * || 2 | 0x0008 | 31: 0 | 0xFFFFFFFF || EVT_ENABLE || - * || 3 | 0x000c | 31: 0 | 0xFFFFFFFF || STATUS || - * || 4 | 0x0010 | 31: 0 | 0xFFFFFFFF || RUNNING_JOB || - * || 5 | 0x0014 | 31: 0 | 0xFFFFFFFF || SOFT_CLEAR || - * |========================================================================| - * || || - * ||Job-dependent registers layout || - * |========================================================================| - * || # reg | offset | bits | bitmask || content || - * ||-------+----------+---------+--------------++-------------------------|| - * || 0 | 0x0040 | 31: 0 | 0xFFFFFFFF || X_ADDR || - * ||-------+----------+---------+--------------++-------------------------|| - * || 1 | 0x0044 | 31: 0 | 0xFFFFFFFF || W_ADDR || - * ||-------+----------+---------+--------------++-------------------------|| - * || 2 | 0x0048 | 31: 0 | 0xFFFFFFFF || Z_ADDR || - * ||-------+----------+---------+--------------++-------------------------|| - * || 3 | 0x004C | | || Matrix Config 0 Reg || - * || | | 31:16 | 0xFFFF0000 || K Size (W Columns) || - * || | | 15: 0 | 0x0000FFFF || M Size (X Rows) || - * ||-------+----------+---------+--------------++-------------------------|| - * || 4 | 0x0050 | | || Matrix Config 1 Reg || - * || | | 31:16 | 0xFFFFFFFF || N Size (X Cols/W Rows) || - * ||-------+----------+---------+--------------++-------------------------|| - * || 5 | 0x0054 | | || Matrix Arithmetic Reg || - * || | | 12:10 | 0x00001C00 || Operation selection || - * || | | 9: 7 | 0x00000380 || Input/Output format || - * |========================================================================| - * - */ - -/* PULP Cluster Archi defines */ -#define ARCHI_CLUST_CTRL_BASE 0x50200000 -#define ARCHI_CLUST_HWPE_BASE 0x50201000 -#define DMA_COMMAND_QUEUE 0x50204400 -#define DMA_STATUS_REGISTER 0x50204404 -#define ARCHI_CL_HWPE_EVT0 12 -#define ARCHI_CL_HWPE_EVT1 13 -#define FC_DMA_EVENT 8 -#define CL_DMA_EVENT 22 -#define CLUST_CTRL_HWPE_EN 0x18 -#define CLUST_CTRL_HWPE_EN_MASK 0x800 -#define __builtin_bitinsert(a,b,c,d) (a | (((b << (32-c)) >> (32-c)) << d)) - -// RedMulE architecture -#define ADDR_WIDTH 32 -#define DATA_WIDTH 256 -#define REDMULE_FMT 16 -#define ARRAY_HEIGHT 4 -#define PIPE_REGS 3 -#define ARRAY_WIDTH 12 /* Superior limit is ARRAY_HEIGHT*PIPE_REGS */ - -// Commands -#define REDMULE_TRIGGER 0x00 -#define REDMULE_ACQUIRE 0x04 -#define REDMULE_FINISHED 0x08 -#define REDMULE_STATUS 0x0C -#define REDMULE_RUNNING_JOB 0x10 -#define REDMULE_SOFT_CLEAR 0x14 - -// Registers -#define REDMULE_REG_OFFS 0x40 -// #define REDMULE_REG_X_PTR 0x00 -// #define REDMULE_REG_W_PTR 0x04 -// #define REDMULE_REG_Z_PTR 0x08 -// #define REDMULE_MCFG0_PTR 0x0C -// #define REDMULE_MCFG1_PTR 0x10 -// #define REDMULE_ARITH_PTR 0x14 -#define REDMULE_REG_X_PTR 0x00 -#define REDMULE_REG_W_PTR 0x04 -#define REDMULE_REG_Y_PTR 0x08 -#define REDMULE_REG_Z_PTR 0x0C -#define REDMULE_REG_X_ITER_PTR 0x10 -#define REDMULE_REG_W_ITER_PTR 0x14 -#define REDMULE_REG_LEFTOVERS_PTR 0x18 -#define REDMULE_REG_LEFT_PARAMS_PTR 0x1C -#define REDMULE_REG_X_D1_STRIDE_PTR 0x20 -#define REDMULE_REG_W_TOT_LEN_PTR 0x24 -#define REDMULE_REG_TOT_X_READ_PTR 0x28 -#define REDMULE_REG_W_D0_STRIDE_PTR 0x2C -#define REDMULE_REG_YZ_TOT_LEN_PTR 0x30 -#define REDMULE_REG_YZ_D0_STRIDE_PTR 0x34 -#define REDMULE_REG_YZ_D2_STRIDE_PTR 0x38 -#define REDMULE_REG_X_ROWS_OFFS_PTR 0x3C -#define REDMULE_REG_X_BUFFER_SLOTS_PTR 0x40 -#define REDMULE_REG_X_TOT_LEN_PTR 0x44 -#define REDMULE_REG_OP_SELECTION 0x48 - -// OPs definition -#define MATMUL 0x0 -#define GEMM 0x1 -#define ADDMAX 0x2 -#define ADDMIN 0x3 -#define MULMAX 0x4 -#define MULMIN 0x5 -#define MAXMIN 0x6 -#define MINMAX 0x7 - -// GEMM formats -#define Float8 0x0 -#define Float16 0x1 -#define Float8Alt 0x2 -#define Float16Alt 0x3 - -#define RNE 0x0 -#define RTZ 0x1 -#define OP_FMADD 0x0 -#define OP_ADD 0x2 -#define OP_MUL 0x3 -#define OP_MINMAX 0x7 - -// FP Formats encoding -#define FP16 0x2 -#define FP8 0x3 -#define FP16ALT 0x4 -#define FP8ALT 0x5 - -/* DMA Archi */ -#define DMA_TX 0 -#define DMA_RX 1 -#define DMA_INC 1 - -#define PLP_DMA_TYPE_BIT 0x00000011 -#define PLP_DMA_INCR_BIT 0x00000012 -#define PLP_DMA_2D_BIT 0x00000013 -#define PLP_DMA_ELE_BIT 0x00000014 -#define PLP_DMA_ILE_BIT 0x00000015 -#define PLP_DMA_BLE_BIT 0x00000016 -#define PLP_DMA_2D_TCDM_BIT 0x0000017 - -#endif diff --git a/astral/redmule/hal_redmule.h b/astral/redmule/hal_redmule.h deleted file mode 100644 index c5a0c32..0000000 --- a/astral/redmule/hal_redmule.h +++ /dev/null @@ -1,527 +0,0 @@ -/* - * Copyright (C) 2022-2023 ETH Zurich and University of Bologna - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * SPDX-License-Identifier: Apache-2.0 - * - * Author: Yvan Tortorella - * - * RedMulE Hardware Abstraction Layer (HAL) - */ - -#ifndef __HAL_REDMULE_H__ -#define __HAL_REDMULE_H__ - -#include -#include "inc/x_input.h" -#include "inc/w_input.h" -#include "inc/y_input.h" -#include "inc/z_output.h" -#include "inc/golden.h" -#include "inc/tensor_dim.h" - -/* - * - * For control, generic configuration register layout, - * and job-dependent register map, look at redmule_archi.h - * - */ - -// For all the following functions we use __builtin_pulp_OffsetedWrite and __builtin_pulp_OffsetedRead -// instead of classic load/store because otherwise the compiler is not able to correctly factorize -// the HWPE base in case several accesses are done, ending up with twice more code - -#define HWPE_WRITE(value, offset) *(int *)(ARCHI_CLUST_HWPE_BASE + offset) = value -#define HWPE_READ(offset) *(int *)(ARCHI_CLUST_HWPE_BASE + offset) - -static inline void redmule_x_add_set (unsigned int value) { - HWPE_WRITE(value, REDMULE_REG_OFFS + REDMULE_REG_X_PTR); -} - -static inline void redmule_w_add_set (unsigned int value) { - HWPE_WRITE(value, REDMULE_REG_OFFS + REDMULE_REG_W_PTR); -} - -static inline void redmule_y_add_set (unsigned int value) { - HWPE_WRITE(value, REDMULE_REG_OFFS + REDMULE_REG_Y_PTR); -} - -static inline void redmule_z_add_set (unsigned int value) { - HWPE_WRITE(value, REDMULE_REG_OFFS + REDMULE_REG_Z_PTR); -} - -// static inline void redmule_mcfg_set (uint32_t mcfg0, uint32_t mcfg1) { -// HWPE_WRITE(mcfg0, REDMULE_REG_OFFS + REDMULE_MCFG0_PTR); -// HWPE_WRITE(mcfg1, REDMULE_REG_OFFS + REDMULE_MCFG1_PTR); -// } -// -// static inline void redmule_arith_set (uint32_t arith) { -// HWPE_WRITE(arith, REDMULE_REG_OFFS + REDMULE_ARITH_PTR); -// } - -static inline void hwpe_trigger_job() { - HWPE_WRITE(0, REDMULE_TRIGGER); -} - -static inline int hwpe_acquire_job() { - return HWPE_READ(REDMULE_ACQUIRE); -} - -static inline unsigned int hwpe_get_status() { - return HWPE_READ(REDMULE_STATUS); -} - -static inline void hwpe_soft_clear() { - HWPE_WRITE(1, REDMULE_SOFT_CLEAR); -} - -static inline void hwpe_cg_enable() { - *(volatile int*) (ARCHI_CLUST_CTRL_BASE + CLUST_CTRL_HWPE_EN) |= CLUST_CTRL_HWPE_EN_MASK; -} - -static inline void hwpe_cg_disable() { - *(volatile int*) (ARCHI_CLUST_CTRL_BASE + CLUST_CTRL_HWPE_EN) &= ~CLUST_CTRL_HWPE_EN_MASK; -} - -static inline void redmule_evt_wait() { - do { - eu_evt_maskWaitAndClr (1 << ARCHI_CL_HWPE_EVT0); - } while((*(int volatile *)(ARCHI_CLUST_HWPE_BASE + REDMULE_STATUS)) != 0); -} - -/* DMA APIs */ -static inline int mchan_alloc(){ - return *(volatile int*) DMA_COMMAND_QUEUE; -} - -static inline void mchan_transfer(unsigned int len, - unsigned int ext_addr, - unsigned int tcdm_addr) { - - *(volatile int*) DMA_COMMAND_QUEUE = len | - (DMA_RX << PLP_DMA_TYPE_BIT) | - (DMA_INC << PLP_DMA_INCR_BIT) | - (0 << PLP_DMA_2D_BIT) | - (1 << PLP_DMA_ELE_BIT) | - (1 << PLP_DMA_ILE_BIT) | - (0 << PLP_DMA_BLE_BIT) | - (0 << PLP_DMA_2D_TCDM_BIT); - *(volatile int*) DMA_COMMAND_QUEUE = tcdm_addr; - *(volatile int*) DMA_COMMAND_QUEUE = ext_addr; -} - -static inline void mchan_barrier(int id) { - while(((*(volatile int*)(DMA_STATUS_REGISTER)) >> id ) & 0x1 ) { - eu_evt_maskWaitAndClr(1 << FC_DMA_EVENT); - } -} - -static inline void mchan_free(int id) { - *(volatile int*) DMA_STATUS_REGISTER = 0x1 << id; -} - -// void redmule_cfg (unsigned int x, unsigned int w, unsigned int z, -// uint16_t m_size, uint16_t n_size, uint16_t k_size, -// uint8_t gemm_op, uint8_t gemm_fmt){ -// -// uint32_t mcfg_reg0 = 0; -// uint32_t mcfg_reg1 = 0; -// uint32_t arith_reg = 0; -// -// mcfg_reg0 = (k_size << 16) | -// (m_size << 0); -// mcfg_reg1 = n_size << 0; -// -// arith_reg = (gemm_op << 10) | -// (gemm_fmt << 7); -// -// redmule_x_add_set ((unsigned int) x); -// redmule_w_add_set ((unsigned int) w); -// redmule_z_add_set ((unsigned int) z); -// redmule_mcfg_set ((unsigned int) mcfg_reg0, -// (unsigned int) mcfg_reg1); -// redmule_arith_set ((unsigned int) arith_reg); -// -// } - -void redmule_cfg (uint16_t m_size, uint16_t n_size, uint16_t k_size, uint8_t gemm_ops){ - uint32_t x_iters = 0; - uint32_t w_iters = 0; - uint32_t leftovers = 0; - uint32_t left_params = 0; - uint32_t x_d1_stride = 0; - uint32_t x_rows_offs = 0; - uint32_t w_tot_len = 0; - uint32_t w_d1_len = 0; - uint32_t w_d0_stride = 0; - uint32_t yz_tot_len = 0; - uint32_t yz_d0_stride = 0; - uint32_t yz_d2_stride = 0; - uint32_t tot_x_read = 0; - uint32_t x_buffer_slots = 0; - uint32_t op_selection = 0; - uint16_t tot_stores = 0; - uint16_t w_rows = n_size; - uint16_t depth = DATA_WIDTH/(ARRAY_HEIGHT*FPFORMAT); - uint8_t tile = ARRAY_HEIGHT*(PIPE_REGS + 1); - _Bool x_rows_sub = 0; - _Bool x_cols_sub = 0; - _Bool w_cols_sub = 0; - uint16_t x_rows_iter, - x_rows_iter_tmp, - w_rows_iter, - w_rows_iter_tmp; - uint16_t x_cols_iter, - x_cols_iter_tmp, - w_cols_iter, - w_cols_iter_tmp; - uint8_t x_rows_lftovr, - x_cols_lftovr, - w_rows_lftovr, - w_cols_lftovr, - slots; - - // Calculating the number of iterations alng the two dimensions of the X matrix - x_rows_iter_tmp = m_size/ARRAY_WIDTH; - x_cols_iter_tmp = n_size/tile; - - // Calculating the number of iterations alng the two dimensions of the W matrix - w_rows_iter_tmp = w_rows; - w_cols_iter_tmp = k_size/tile; - - // Calculating the residuals along the input dimensions - x_rows_lftovr = m_size - (x_rows_iter_tmp*ARRAY_WIDTH); - x_cols_lftovr = n_size - (x_cols_iter_tmp*tile); - - // Calculating the residuals along the weight dimensions - w_rows_lftovr = n_size - (ARRAY_HEIGHT*(w_rows/ARRAY_HEIGHT)); - w_cols_lftovr = k_size - (w_cols_iter_tmp*tile); - - if (w_cols_lftovr != 0) - w_cols_iter = w_cols_iter_tmp + 1; - else - w_cols_iter = w_cols_iter_tmp; - - if (w_rows_lftovr != 0) - w_rows_iter = w_rows_iter_tmp + ARRAY_HEIGHT - w_rows_lftovr; - else - w_rows_iter = w_rows_iter_tmp; - - if (x_cols_lftovr != 0) - x_cols_iter = x_cols_iter_tmp + 1; - else - x_cols_iter = x_cols_iter_tmp; - - if (x_rows_lftovr != 0) - x_rows_iter = x_rows_iter_tmp + 1; - else - x_rows_iter = x_rows_iter_tmp; - - if (x_cols_lftovr%depth != 0) - x_buffer_slots = x_cols_lftovr/depth + 1; - else - x_buffer_slots = x_cols_lftovr/depth; - - // Calculating the number of total stores - tot_stores = x_rows_iter*w_cols_iter; - - // Determining if input matrixes are sub-matrixes - if (m_size < ARRAY_WIDTH) - x_rows_sub = 1; - if (n_size < ARRAY_HEIGHT) - x_cols_sub = 1; - if (k_size < tile) - w_cols_sub = 1; - - // Operation selection - switch (gemm_ops) { - case MATMUL: - op_selection |= (RNE << 29 | RNE << 26 | OP_FMADD << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 0; - break; - - case GEMM: - op_selection |= (RNE << 29 | RNE << 26 | OP_FMADD << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; - break; - - case ADDMAX: - op_selection |= (RNE << 29 | RTZ << 26 | OP_ADD << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; - break; - - case ADDMIN: - op_selection |= (RNE << 29 | RNE << 26 | OP_ADD << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; - break; - - case MULMAX: - op_selection |= (RNE << 29 | RTZ << 26 | OP_MUL << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; - break; - - case MULMIN: - op_selection |= (RNE << 29 | RNE << 26 | OP_MUL << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; - break; - - case MAXMIN: - op_selection |= (RTZ << 29 | RNE << 26 | OP_MINMAX << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; - break; - - case MINMAX: - op_selection |= (RNE << 29 | RTZ << 26 | OP_MINMAX << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; - break; - } - - // Storing iterations and residuals in registers - x_iters |= x_rows_iter << 16 | x_cols_iter << 0; - w_iters |= w_rows_iter << 16 | w_cols_iter << 0; - leftovers |= x_rows_lftovr << 24 | x_cols_lftovr << 16 | w_rows_lftovr << 8 | w_cols_lftovr << 0; - left_params |= tot_stores << 16 | x_rows_sub << 15 | x_cols_sub << 14 | w_cols_sub << 13; - x_d1_stride = ((4*FPFORMAT)/ADDR_WIDTH)*(((DATA_WIDTH/FPFORMAT)*x_cols_iter_tmp) + x_cols_lftovr); - x_rows_offs = ARRAY_WIDTH*x_d1_stride; - w_tot_len = w_rows_iter*w_cols_iter*x_rows_iter; - w_d0_stride = ((4*FPFORMAT)/ADDR_WIDTH)*(((DATA_WIDTH/FPFORMAT)*w_cols_iter_tmp) + w_cols_lftovr); - yz_tot_len = ARRAY_WIDTH*x_rows_iter*w_cols_iter; - yz_d0_stride = w_d0_stride; - yz_d2_stride = ARRAY_WIDTH*w_d0_stride; - tot_x_read = x_rows_iter*x_cols_iter*w_cols_iter; - - // Writing the computations in configuration register - HWPE_WRITE(x_iters , REDMULE_REG_OFFS + REDMULE_REG_X_ITER_PTR ); - HWPE_WRITE(w_iters , REDMULE_REG_OFFS + REDMULE_REG_W_ITER_PTR ); - HWPE_WRITE(leftovers , REDMULE_REG_OFFS + REDMULE_REG_LEFTOVERS_PTR ); - HWPE_WRITE(left_params , REDMULE_REG_OFFS + REDMULE_REG_LEFT_PARAMS_PTR ); - HWPE_WRITE(x_d1_stride , REDMULE_REG_OFFS + REDMULE_REG_X_D1_STRIDE_PTR ); - HWPE_WRITE(x_rows_offs , REDMULE_REG_OFFS + REDMULE_REG_X_ROWS_OFFS_PTR ); - HWPE_WRITE(tot_x_read , REDMULE_REG_OFFS + REDMULE_REG_TOT_X_READ_PTR ); - HWPE_WRITE(x_buffer_slots, REDMULE_REG_OFFS + REDMULE_REG_X_BUFFER_SLOTS_PTR ); - HWPE_WRITE(w_tot_len , REDMULE_REG_OFFS + REDMULE_REG_W_TOT_LEN_PTR ); - HWPE_WRITE(w_d0_stride , REDMULE_REG_OFFS + REDMULE_REG_W_D0_STRIDE_PTR ); - HWPE_WRITE(yz_tot_len , REDMULE_REG_OFFS + REDMULE_REG_YZ_TOT_LEN_PTR ); - HWPE_WRITE(yz_d0_stride , REDMULE_REG_OFFS + REDMULE_REG_YZ_D0_STRIDE_PTR ); - HWPE_WRITE(yz_d2_stride , REDMULE_REG_OFFS + REDMULE_REG_YZ_D2_STRIDE_PTR ); - HWPE_WRITE(op_selection , REDMULE_REG_OFFS + REDMULE_REG_OP_SELECTION ); -} - -void generate_test_data16(int x_start_addr, - int w_start_addr, - int y_start_addr, - int m_size, - int n_size, - int k_size) { - - int x_addr = x_start_addr; - int w_addr = w_start_addr; - int y_addr = y_start_addr; - int x_end_addr = x_start_addr + (2*m_size*n_size); - int w_end_addr = w_start_addr + (2*n_size*k_size); - int y_end_addr = y_start_addr + (2*m_size*k_size); - - // Generating input stimuli from golden model - for (x_addr = x_start_addr; x_addr < x_end_addr; x_addr += 2) { - int x = x_addr - x_start_addr; - *(uint32_t *)(x_addr) = x_inp[x/2]; - } - - // Generating Weight stimuli from golden model - for (w_addr = w_start_addr; w_addr < w_end_addr; w_addr += 2) { - int w = w_addr - w_start_addr; - *(uint32_t *)(w_addr) = w_inp[w/2]; - } - - for (y_addr = y_start_addr; y_addr < y_end_addr; y_addr += 2) { - int y = y_addr - y_start_addr; - *(uint32_t *)(y_addr) = y_inp[y/2]; - } -} - -int redmule_compare16 (int z_start_addr, int m_size, int k_size) { - int err = 0; - int z_end_addr = z_start_addr + 2*m_size*k_size; - uint16_t z_computed; - uint16_t diff, diff_1, diff_2; - - for (int z_addr = z_start_addr; z_addr < z_end_addr; z_addr += 2) { - int z = z_addr - z_start_addr; - z_computed = *(uint32_t *)(z_addr); - - if ( z_computed != z_oup[z/2] ) { - diff_1 = z_computed - z_oup[z/2]; - if (diff_1 > 3) { - diff_2 = z_oup[z/2] - z_computed; - if (diff_2 > 3) { - err++; - } - } - } - } - - return err; - -} - -int redmule16_compare_int(uint32_t *actual_z, uint32_t *golden_z, int len) { - #define ERR 0x0011 - uint32_t actual_word = 0; - uint16_t actual_MSHWord, actual_LSHWord; - uint32_t golden_word = 0; - uint16_t golden_MSHWord, golden_LSHWord; - uint32_t actual = 0; - uint32_t golden = 0; - - int errors = 0; - int error; - - for (int i=0; i golden_LSHWord) ? (actual_LSHWord - golden_LSHWord) : 0; - diff = (actual_LSHWord < golden_LSHWord) ? (golden_LSHWord - actual_LSHWord) : 0; - - if (diff > ERR) { - error = 1; - #ifdef VERBOSE - tfp_printf ("diff: 0x%08x\n", diff); - tfp_printf ("LSW: Error!\n"); - #endif - } - - // Checking Most Significant Half-Word - actual_MSHWord = (uint16_t)((actual_word >> 16) & 0x0000FFFF); - golden_MSHWord = (uint16_t)((golden_word >> 16) & 0x0000FFFF); - - diff = (actual_MSHWord > golden_MSHWord) ? (actual_MSHWord - golden_MSHWord) : 0; - diff = (actual_MSHWord < golden_MSHWord) ? (golden_MSHWord - actual_MSHWord) : 0; - - if (diff > ERR) { - error = 1; - #ifdef VERBOSE - tfp_printf ("diff: 0x%08x\n", diff); - tfp_printf ("MSW: Error!\n"); - #endif - } - - errors += error; - - #ifdef DEBUG - tfp_printf(" Golden: 0x%08x; Actual: 0x%08x,\n", golden_word, actual_word); - #endif - - #ifdef VERBOSE - if(error) { - if(errors==1) tfp_printf(" golden <- actual @ address @ index\n"); - tfp_printf(" 0x%08x <- 0x%08x @ 0x%08x @ 0x%08x\n", golden_word, actual_word, (actual_z+i), i*4); - } - #endif - } - return errors; -} - -int redmule8_compare_int(uint32_t *actual_z, uint32_t *golden_z, int len) { - #define ERR 0x0011 - uint32_t actual_word = 0; - uint8_t actual_Byte0, - actual_Byte1, - actual_Byte2, - actual_Byte3; - uint32_t golden_word = 0; - uint8_t golden_Byte0, - golden_Byte1, - golden_Byte2, - golden_Byte3; - uint32_t actual = 0; - uint32_t golden = 0; - - int errors = 0; - int error; - - for (int i=0; i golden_Byte0) ? (actual_Byte0 - golden_Byte0) : 0; - diff = (actual_Byte0 < golden_Byte0) ? (golden_Byte0 - actual_Byte0) : 0; - - if (diff > ERR) { - error = 1; - tfp_printf ("diff: 0x%08x\n", diff); - tfp_printf ("Byte0: Error!\n"); - } - - // Cheching Byte1 - actual_Byte1 = (uint8_t)( (actual_word >> 8 ) & 0x000000FF); - golden_Byte1 = (uint8_t)( (golden_word >> 8 ) & 0x000000FF); - - diff = (actual_Byte1 > golden_Byte1) ? (actual_Byte1 - golden_Byte1) : 0; - diff = (actual_Byte1 < golden_Byte1) ? (golden_Byte1 - actual_Byte1) : 0; - - if (diff > ERR) { - error = 1; - tfp_printf ("diff: 0x%08x\n", diff); - tfp_printf ("Byte1: Error!\n"); - } - - // Cheching Byte2 - actual_Byte2 = (uint8_t)( (actual_word >> 16 ) & 0x000000FF); - golden_Byte2 = (uint8_t)( (golden_word >> 16 ) & 0x000000FF); - - diff = (actual_Byte2 > golden_Byte2) ? (actual_Byte2 - golden_Byte2) : 0; - diff = (actual_Byte2 < golden_Byte2) ? (golden_Byte2 - actual_Byte2) : 0; - - if (diff > ERR) { - error = 1; - tfp_printf ("diff: 0x%08x\n", diff); - tfp_printf ("Byte2: Error!\n"); - } - - // Cheching Byte3 - actual_Byte3 = (uint8_t)( (actual_word >> 24 ) & 0x000000FF); - golden_Byte3 = (uint8_t)( (golden_word >> 24 ) & 0x000000FF); - - diff = (actual_Byte3 > golden_Byte3) ? (actual_Byte3 - golden_Byte3) : 0; - diff = (actual_Byte3 < golden_Byte3) ? (golden_Byte3 - actual_Byte3) : 0; - - if (diff > ERR) { - error = 1; - tfp_printf ("diff: 0x%08x\n", diff); - tfp_printf ("Byte3: Error!\n"); - } - - errors += error; - - #ifdef DEBUG - tfp_printf(" Golden: 0x%08x; Actual: 0x%08x,\n", golden_word, actual_word); - #endif - - #ifdef VERBOSE - if(error) { - if(errors==1) tfp_printf(" golden <- actual @ address @ index\n"); - tfp_printf(" 0x%08x <- 0x%08x @ 0x%08x @ 0x%08x\n", golden_word, actual_word, (actual_z+i), i*4); - } - #endif - } - return errors; -} - -#endif diff --git a/astral/redmule/inc/golden.h b/astral/redmule/inc/golden.h deleted file mode 100644 index f664e47..0000000 --- a/astral/redmule/inc/golden.h +++ /dev/null @@ -1,387 +0,0 @@ - /* Header file generated by RedMulE Golden Model */ -uint32_t golden [384] = { -0x48974845, -0x48384608, -0x487b4855, -0x48804869, -0x48b046d1, -0x483f48db, -0x485f48c9, -0x483a4881, -0x472c484b, -0x492b4762, -0x48fd4822, -0x492e488e, -0x484f483e, -0x46d749e8, -0x489d484b, -0x47e9490b, -0x47d2484f, -0x474744be, -0x46c047c7, -0x48af4727, -0x482d46c5, -0x482e483d, -0x479f4897, -0x4749488b, -0x46a8489a, -0x488b46f2, -0x47e84891, -0x483d4872, -0x46fd4716, -0x46a049b5, -0x47a446e7, -0x476748a1, -0x49354939, -0x48c14703, -0x48bd4863, -0x48cf4913, -0x48b848b6, -0x49204946, -0x48e1495e, -0x48b24938, -0x4882493a, -0x49d5483b, -0x49724911, -0x49df496b, -0x488848f2, -0x48214a46, -0x490c48c1, -0x48a349b2, -0x47b0463a, -0x476244cb, -0x46b94765, -0x4814466a, -0x47964631, -0x474b4666, -0x47044798, -0x47614838, -0x459047d3, -0x48a245ea, -0x484447f1, -0x4776484b, -0x46d847d6, -0x44d348f3, -0x478d46fa, -0x466e481e, -0x481e4827, -0x479445a2, -0x48064727, -0x48d5475d, -0x48284708, -0x480d4862, -0x48324895, -0x47f148bd, -0x46a7482a, -0x492d47b1, -0x4884484d, -0x485f48dc, -0x480c476d, -0x46d348e9, -0x48844728, -0x480e48a0, -0x48134862, -0x485a4675, -0x473847e8, -0x48234836, -0x482146e7, -0x47b34822, -0x48554846, -0x47174863, -0x47c14872, -0x488e46d5, -0x485f47e2, -0x48b8487c, -0x4788481e, -0x467748bd, -0x47f846c9, -0x47fc48fe, -0x47b247a0, -0x467e4588, -0x46c74662, -0x481246e8, -0x474e4536, -0x468f46c0, -0x4679481f, -0x46e246a1, -0x45604809, -0x47eb4630, -0x475746b5, -0x477f4848, -0x46d846a6, -0x459a4870, -0x46784670, -0x468c47d2, -0x48c44762, -0x479146e3, -0x486d46b1, -0x486747d0, -0x47f6468d, -0x475648a5, -0x48544857, -0x48384866, -0x46ec484d, -0x48f647d2, -0x4879484a, -0x483c4848, -0x4806471d, -0x473048fa, -0x47b84768, -0x46f94865, -0x491848a8, -0x486746ca, -0x48624800, -0x491048d3, -0x4849474e, -0x486b48eb, -0x48c54966, -0x483048f4, -0x477848f9, -0x499e481e, -0x48f148cf, -0x49234982, -0x47cf487c, -0x464949ea, -0x495e4773, -0x483f48b2, -0x497548a7, -0x481e4616, -0x4866481f, -0x486448b6, -0x487347dc, -0x487f485c, -0x491f4938, -0x48b6490d, -0x48a148f8, -0x492d4859, -0x4915489c, -0x48874899, -0x4859486c, -0x471e49ca, -0x49184867, -0x482748d3, -0x4998488b, -0x481d4704, -0x488048b8, -0x49444876, -0x48f2470c, -0x489b48b9, -0x48e54956, -0x48a548d6, -0x485648dc, -0x49ab484e, -0x490e48e0, -0x494548dd, -0x48dd488b, -0x47ea4a32, -0x49114835, -0x48194965, -0x481e460e, -0x4673452c, -0x4717475c, -0x46d046f6, -0x46bc4696, -0x481e4726, -0x46ea4763, -0x475846fe, -0x4627478b, -0x483f4704, -0x47b146ad, -0x48164792, -0x468446f2, -0x45a84827, -0x47a4472f, -0x462b4797, -0x48ab483f, -0x4863468f, -0x4766485a, -0x48cb481d, -0x490347dc, -0x483048fc, -0x483e48cc, -0x486448ab, -0x47634966, -0x499d4794, -0x488b488e, -0x496048dc, -0x484c4854, -0x474c499c, -0x48bc4826, -0x48834949, -0x4905489d, -0x481e4718, -0x48f448e3, -0x490448c1, -0x48b347e8, -0x48d44892, -0x489448ff, -0x488648d5, -0x480348fa, -0x492e47d2, -0x48b24870, -0x492b48e5, -0x4785487b, -0x471d49e3, -0x48bf4837, -0x48c4489b, -0x4871475c, -0x4811464a, -0x471c47af, -0x48174817, -0x484e463b, -0x464f477f, -0x487c4704, -0x472547a3, -0x462a4853, -0x4860465a, -0x48804736, -0x482b47e1, -0x46c04811, -0x475d48dc, -0x48064668, -0x46f44893, -0x49594858, -0x487b463d, -0x484e480f, -0x48a648c0, -0x48944847, -0x484a48a0, -0x48f4491e, -0x48b548fc, -0x47d248ce, -0x497f47db, -0x49394955, -0x48ce48a7, -0x48844890, -0x476349d6, -0x4922486e, -0x48c348f4, -0x491c47ec, -0x47834698, -0x47544715, -0x47524745, -0x4832472f, -0x48094817, -0x48c347f8, -0x480047e6, -0x473048b6, -0x48cb480a, -0x488e479e, -0x488e47c2, -0x47ee472f, -0x4744489d, -0x48514755, -0x47d34846, -0x48a04838, -0x47624634, -0x48064786, -0x482d47e3, -0x486c4726, -0x480347b7, -0x481448ac, -0x483948e0, -0x47504827, -0x48c546f2, -0x4886483f, -0x485648ad, -0x47a947e8, -0x47434937, -0x481f46d0, -0x4804484c, -0x481f47fd, -0x4813456d, -0x4807474d, -0x480e4688, -0x481046e8, -0x4799469f, -0x478f4853, -0x482447f2, -0x471f47d0, -0x485f46da, -0x481c4813, -0x4863482e, -0x480b4786, -0x46b848c9, -0x46e2475a, -0x46c54852, -0x480245af, -0x46c24466, -0x4743465d, -0x47ba46b7, -0x46c34636, -0x47844677, -0x47c2485a, -0x46ac46dc, -0x460e47de, -0x4834465f, -0x476947f4, -0x481046fc, -0x45ea45fd, -0x45b548d0, -0x47834704, -0x46c44830, -0x47c74759, -0x45b0453d, -0x47024741, -0x47934736, -0x47ba461b, -0x46dd470b, -0x470b4657, -0x4710470d, -0x468f486c, -0x46ba45c3, -0x483b479d, -0x477446c9, -0x46a746a9, -0x46064833, -0x46a94690, -0x46a746f5, -0x48bb47ac, -0x4803452c, -0x4824470f, -0x48cb47d5, -0x484a4707, -0x47974832, -0x482c4851, -0x4877487a, -0x465d4891, -0x48ce47f4, -0x48994898, -0x486a484e, -0x47f047ac, -0x4611493e, -0x489e47e2, -0x46af488c, -0x48364665, -0x46b645e4, -0x46b946a1, -0x46dd46c8, -0x474b4658, -0x4777467b, -0x47984769, -0x475e4785, -0x4656472a, -0x488145fb, -0x472d46fc, -0x47a3476e, -0x46ca465d, -0x45004855, -0x479a464f, -0x473846c3, -0x486c481e, -0x48014659, -0x477a4756, -0x487b47d5, -0x48084706, -0x4838484f, -0x48634870, -0x480648d3, -0x47714865, -0x494c46be, -0x484c4915, -0x48624900, -0x46e8481a, -0x46a04974, -0x483d4775, -0x480e487c, -}; \ No newline at end of file diff --git a/astral/redmule/inc/tensor_dim.h b/astral/redmule/inc/tensor_dim.h deleted file mode 100644 index 21bd0d8..0000000 --- a/astral/redmule/inc/tensor_dim.h +++ /dev/null @@ -1,13 +0,0 @@ - /* Header file generated by RedMulE Golden Model */ -#ifndef __TENSOR_DIM__ -#define __TENSOR_DIM__ - -#define M_SIZE 24 -#define N_SIZE 32 -#define K_SIZE 32 -#define SRC_FMT FP16 -#define DST_FMT FP16 -#define FPFORMAT 16 -uint8_t gemm_ops = GEMM; - -#endif diff --git a/astral/redmule/inc/w_2D.h b/astral/redmule/inc/w_2D.h deleted file mode 100644 index 9409c64..0000000 --- a/astral/redmule/inc/w_2D.h +++ /dev/null @@ -1,35 +0,0 @@ - /* Header file generated by RedMulE Golden Model */ -uint16_t w_inp_2D [32][32] = { -0x311a, 0x39e0, 0x387d, 0x3a4a, 0x386f, 0x3ada, 0x392f, 0x3854, 0x3014, 0x2fd2, 0x31c9, 0x2fca, 0x2e55, 0x3bc8, 0x396d, 0x3b1d, 0x39f6, 0x333a, 0x3908, 0x3628, 0x3bab, 0x3b8b, 0x3b4a, 0x322d, 0x3925, 0x317a, 0x3725, 0x31c2, 0x3066, 0x38f3, 0x3a17, 0x3476, -0x3bda, 0x3196, 0x3922, 0x3680, 0x396a, 0x3021, 0x3761, 0x374d, 0x2fc2, 0x3967, 0x3b94, 0x33b5, 0x3797, 0x34d6, 0x3655, 0x2176, 0x39bc, 0x3999, 0x3658, 0x3904, 0x3759, 0x2ade, 0x3a5a, 0x3b78, 0x36c7, 0x2d01, 0x3b58, 0x2d9a, 0x373d, 0x3952, 0x38e8, 0x3887, -0x37b6, 0x3a88, 0x2f8a, 0x2d79, 0x3413, 0x3421, 0x3976, 0x32b2, 0x3446, 0x2d99, 0x3a56, 0x3322, 0x3b49, 0x39fa, 0x3acd, 0x3af6, 0x304c, 0x3abb, 0x3a83, 0x38b2, 0x3ab9, 0x363e, 0x389f, 0x31bb, 0x38e1, 0x3bc4, 0x3b9b, 0x2984, 0x3a43, 0x3b2f, 0x35d6, 0x3bda, -0x2df3, 0x3bf8, 0x2acc, 0x378b, 0x3555, 0x2e59, 0x31d4, 0x34ec, 0x3a46, 0x3bab, 0x3214, 0x3161, 0x3470, 0x3a03, 0x368e, 0x31ad, 0x27cb, 0x2ecb, 0x3422, 0x39f7, 0x3644, 0x3a77, 0x313f, 0x34f2, 0x39b3, 0x3bf2, 0x379a, 0x3456, 0x35fe, 0x3ae7, 0x3964, 0x385f, -0x3b16, 0x3999, 0x3833, 0x2eda, 0x3afd, 0x3a4a, 0x3ba2, 0x2bd4, 0x3b38, 0x31a2, 0x32dd, 0x353c, 0x366f, 0x375e, 0x3821, 0x367a, 0x3b44, 0x39e6, 0x3787, 0x339e, 0x39d7, 0x38c6, 0x37d5, 0x342f, 0x3984, 0x319b, 0x33b5, 0x35ab, 0x398a, 0x374e, 0x36b6, 0x3b21, -0x3bbb, 0x2ab3, 0x2ad5, 0x33bc, 0x2bef, 0x3780, 0x3738, 0x3a0b, 0x3b09, 0x30ca, 0x384e, 0x3ab3, 0x39bd, 0x3453, 0x3a6d, 0x3957, 0x2c10, 0x30e9, 0x35d4, 0x3aef, 0x3be9, 0x39ad, 0x3a74, 0x3af9, 0x3739, 0x2d4d, 0x39fe, 0x3b72, 0x2c57, 0x398c, 0x381f, 0x3930, -0x3820, 0x321b, 0x3964, 0x2964, 0x33a0, 0x2d00, 0x2490, 0x336b, 0x3465, 0x3b2e, 0x3aa0, 0x371f, 0x300e, 0x3a09, 0x3bf1, 0x25cc, 0x3b6f, 0x3384, 0x3a88, 0x3acb, 0x3814, 0x36d0, 0x3081, 0x3a2c, 0x3353, 0x39cb, 0x31ed, 0x3af6, 0x3721, 0x36c7, 0x2ce2, 0x390d, -0x3698, 0x3ab2, 0x3b3e, 0x2eb4, 0x3998, 0x39e3, 0x3a77, 0x3632, 0x2c12, 0x3bd5, 0x3ba3, 0x3bba, 0x323c, 0x367b, 0x3557, 0x39c8, 0x37db, 0x3b45, 0x3b6e, 0x3931, 0x3121, 0x3a8d, 0x3a55, 0x3b9b, 0x358a, 0x3925, 0x3491, 0x3912, 0x3b6b, 0x3584, 0x32df, 0x3120, -0x32b2, 0x3b0a, 0x2cad, 0x3465, 0x3ad3, 0x3bcd, 0x363b, 0x3afe, 0x354b, 0x3374, 0x39af, 0x3b7f, 0x308c, 0x2e72, 0x3380, 0x3b70, 0x3902, 0x38d8, 0x39f3, 0x3a4b, 0x3853, 0x397b, 0x2ebe, 0x387f, 0x2845, 0x37e2, 0x360f, 0x370b, 0x3acb, 0x35d4, 0x36e6, 0x3262, -0x2e88, 0x3a54, 0x2ee3, 0x3575, 0x3afe, 0x2aee, 0x39a0, 0x3aae, 0x3693, 0x3432, 0x3834, 0x3b9b, 0x3bcb, 0x2e3a, 0x356d, 0x374e, 0x3924, 0x383c, 0x311e, 0x3ac5, 0x352d, 0x311e, 0x38ca, 0x34d4, 0x36ca, 0x34ed, 0x3a13, 0x33eb, 0x3639, 0x3828, 0x3b3c, 0x3939, -0x3837, 0x3521, 0x2cb5, 0x3629, 0x3924, 0x384c, 0x366a, 0x3bbf, 0x2e9e, 0x3ba8, 0x33ad, 0x38c8, 0x3934, 0x3907, 0x249a, 0x3690, 0x3a09, 0x3215, 0x3898, 0x325d, 0x37d5, 0x3195, 0x361c, 0x3ae4, 0x351f, 0x3452, 0x3bc0, 0x375c, 0x39bf, 0x317a, 0x3aae, 0x283a, -0x3476, 0x3b92, 0x3472, 0x383e, 0x280f, 0x39d6, 0x2fd1, 0x31f4, 0x2ffb, 0x3b97, 0x3692, 0x36c0, 0x3989, 0x33cf, 0x3ba6, 0x3239, 0x35d7, 0x33ab, 0x31eb, 0x3b47, 0x389b, 0x3b88, 0x3580, 0x354c, 0x3802, 0x3b9a, 0x3b94, 0x2a92, 0x2db1, 0x38bd, 0x2dfb, 0x3900, -0x344f, 0x3739, 0x27a5, 0x3b2e, 0x342b, 0x34bb, 0x30c8, 0x3ae8, 0x3b26, 0x3982, 0x38c0, 0x3408, 0x38c8, 0x36ef, 0x3bf0, 0x3acf, 0x3a3c, 0x3825, 0x31a5, 0x3ada, 0x3b5b, 0x37db, 0x3a01, 0x3663, 0x3a7d, 0x327b, 0x3a1f, 0x3862, 0x38af, 0x3204, 0x372e, 0x3b19, -0x3708, 0x3622, 0x2e62, 0x39ab, 0x2d4d, 0x31b4, 0x3552, 0x3bbc, 0x36f2, 0x36eb, 0x38ef, 0x3755, 0x3bbe, 0x2c17, 0x3815, 0x2f53, 0x363f, 0x38c1, 0x3246, 0x386b, 0x34de, 0x34e4, 0x3baa, 0x349e, 0x32ce, 0x3a68, 0x373f, 0x2cce, 0x3b36, 0x28ba, 0x3b50, 0x3232, -0x1f34, 0x3928, 0x35cd, 0x3b38, 0x30ce, 0x35a1, 0x3a06, 0x3a32, 0x3a53, 0x3489, 0x3241, 0x372f, 0x390c, 0x3a1b, 0x378a, 0x3713, 0x3769, 0x37a8, 0x3418, 0x3ad4, 0x3a4e, 0x3bf7, 0x37a5, 0x34dc, 0x39b2, 0x351b, 0x3372, 0x349f, 0x2f50, 0x3ab1, 0x3795, 0x2db7, -0x3864, 0x3157, 0x3900, 0x323e, 0x389e, 0x3880, 0x3b1f, 0x37a1, 0x396c, 0x2e43, 0x2c2a, 0x3b78, 0x3988, 0x3a14, 0x39c1, 0x3b51, 0x3780, 0x3bf2, 0x2d19, 0x3815, 0x3a5f, 0x3641, 0x2f62, 0x37d5, 0x3564, 0x139a, 0x3ab8, 0x28f7, 0x3785, 0x34e1, 0x3097, 0x3768, -0x3971, 0x3ae2, 0x32ae, 0x2fd5, 0x382a, 0x346c, 0x3133, 0x3167, 0x3940, 0x2d12, 0x389a, 0x3bd0, 0x3943, 0x391c, 0x3a75, 0x2a11, 0x391e, 0x372d, 0x3a79, 0x3b72, 0x3373, 0x39b7, 0x35d7, 0x372b, 0x3a6d, 0x38a1, 0x3279, 0x3434, 0x3694, 0x3b45, 0x3abb, 0x392d, -0x34a8, 0x3757, 0x32ca, 0x345d, 0x36a5, 0x3854, 0x2dcd, 0x30af, 0x38dd, 0x3067, 0x3411, 0x3997, 0x397a, 0x3a64, 0x38b8, 0x3962, 0x3509, 0x3bb6, 0x3a66, 0x339f, 0x372a, 0x31a8, 0x37da, 0x36ff, 0x33c6, 0x31da, 0x3977, 0x3b72, 0x3841, 0x3567, 0x3433, 0x33b8, -0x39fe, 0x3a10, 0x3bf2, 0x35e7, 0x3a4a, 0x3b3e, 0x2ec7, 0x3aa4, 0x3846, 0x3af9, 0x38a9, 0x2c1f, 0x39ab, 0x349f, 0x31d6, 0x39ae, 0x3b79, 0x352d, 0x3516, 0x347c, 0x2f33, 0x35ad, 0x31c4, 0x3b52, 0x354b, 0x3786, 0x3ab7, 0x3896, 0x34ac, 0x352f, 0x37e6, 0x326a, -0x2e44, 0x34c7, 0x388d, 0x3bf4, 0x363f, 0x3b3d, 0x33b1, 0x3b8b, 0x3340, 0x37f7, 0x3b07, 0x25bf, 0x398e, 0x3505, 0x3bd7, 0x366d, 0x388a, 0x2cc0, 0x359a, 0x3b9a, 0x3b99, 0x379d, 0x3b6b, 0x39b8, 0x3223, 0x2703, 0x3ba9, 0x2ecb, 0x3759, 0x39d8, 0x37ac, 0x32cf, -0x35f2, 0x38a3, 0x399e, 0x3bd2, 0x3780, 0x3af3, 0x3b5e, 0x337b, 0x3a08, 0x35da, 0x3446, 0x3b25, 0x3ad0, 0x3bee, 0x3141, 0x32d8, 0x34ce, 0x2ac9, 0x3800, 0x3a8a, 0x2d53, 0x368a, 0x3561, 0x3998, 0x35a3, 0x3677, 0x3ab2, 0x3269, 0x3236, 0x3b3e, 0x3aba, 0x3bac, -0x395d, 0x3820, 0x1df6, 0x3bb5, 0x35b5, 0x3675, 0x3b74, 0x360f, 0x34de, 0x3a0c, 0x3aeb, 0x299d, 0x3207, 0x3bd8, 0x2178, 0x3995, 0x3948, 0x3908, 0x3843, 0x2ea5, 0x3045, 0x3989, 0x345d, 0x39c5, 0x3a89, 0x3863, 0x3be0, 0x397a, 0x38f1, 0x39e2, 0x3b08, 0x352e, -0x385f, 0x28f2, 0x3bc3, 0x35e0, 0x380c, 0x3b9c, 0x3afc, 0x390a, 0x3689, 0x34fd, 0x2cf5, 0x308e, 0x342b, 0x3921, 0x3a67, 0x3ad6, 0x2986, 0x32fc, 0x35aa, 0x3507, 0x3608, 0x33fd, 0x3bf3, 0x39e2, 0x3b0f, 0x30b7, 0x3896, 0x3ae4, 0x2145, 0x35b6, 0x2e1d, 0x3ad1, -0x333d, 0x3afb, 0x2703, 0x3413, 0x1d7d, 0x3b7f, 0x3ae1, 0x303c, 0x3004, 0x39d3, 0x3554, 0x31a4, 0x354e, 0x3662, 0x39c5, 0x2eb7, 0x2c6e, 0x397f, 0x31d8, 0x1f0c, 0x38e3, 0x35f0, 0x2714, 0x28d1, 0x375e, 0x3a75, 0x3830, 0x3578, 0x397d, 0x3b18, 0x383c, 0x3498, -0x39ad, 0x3598, 0x23c4, 0x34ea, 0x3a61, 0x2b00, 0x3707, 0x3ae1, 0x37ae, 0x389d, 0x37fa, 0x3673, 0x3278, 0xf3e, 0x3809, 0x33c6, 0x3bf5, 0x3279, 0x3816, 0x360c, 0x39c8, 0x381f, 0x3741, 0x2d66, 0x38c0, 0x37d3, 0x377a, 0x3621, 0x2faf, 0x392e, 0x2de6, 0x33c5, -0x3803, 0x2600, 0x32e9, 0x39b4, 0x38d2, 0x34e8, 0x2fe6, 0x3199, 0x3643, 0x3a77, 0x27cc, 0x39d7, 0x34c6, 0x2ea8, 0x364e, 0x3b07, 0x31c7, 0x30a1, 0x31b1, 0x3b8f, 0x3571, 0x3b75, 0x3989, 0x3805, 0x39fb, 0x3945, 0x352b, 0x31d8, 0x3904, 0x3440, 0x3a57, 0x2cf7, -0x3b39, 0x2fcd, 0x2b89, 0x2edd, 0x3682, 0x36a9, 0x32c8, 0x37ac, 0x32a5, 0x3311, 0x394b, 0x3b84, 0x3aec, 0x3601, 0x2765, 0x3b69, 0x396b, 0x3727, 0x3bfe, 0x3907, 0x376f, 0x3674, 0x3973, 0x3671, 0x3491, 0x3993, 0x383f, 0x3335, 0x3989, 0x3550, 0x3077, 0x35f5, -0x3a59, 0x3950, 0x380c, 0x37cd, 0x30bf, 0x3607, 0x3afa, 0x3b5d, 0x32b9, 0x386b, 0x35bd, 0x3aca, 0x3ba5, 0x3b2d, 0x3b19, 0x3b8b, 0x345e, 0x2845, 0x34aa, 0x372a, 0x3448, 0x34f5, 0x3ae2, 0x3637, 0x2cb5, 0x354b, 0x3b15, 0x2ca8, 0x2641, 0x3178, 0x2cfe, 0x39b4, -0x3bdd, 0x3acb, 0x3a05, 0x38a2, 0x3b4a, 0x34e5, 0x395f, 0x394b, 0x34c4, 0x3aa5, 0x29bb, 0x2d96, 0x339d, 0x387c, 0x382e, 0x385a, 0x396b, 0x3aa9, 0x2f1e, 0x33a7, 0x3b90, 0x3b7b, 0x3b5f, 0x39d3, 0x3b18, 0x354f, 0x2cdb, 0x3a6f, 0x3434, 0x34ff, 0x3a5b, 0x3b84, -0x3a33, 0x384b, 0x2e67, 0x3b85, 0x3853, 0x380c, 0x346a, 0x3aaa, 0x3492, 0x33e8, 0x3bf2, 0x38ae, 0x3a29, 0x3830, 0x3221, 0x35b1, 0x3a48, 0x2c68, 0x2ced, 0x3a7e, 0x3539, 0x3922, 0x374c, 0x3aaa, 0x2dae, 0x395d, 0x3b3d, 0x3890, 0x2cfe, 0x2dd6, 0x3bad, 0x33c5, -0x2c07, 0x3a2c, 0x37a8, 0x390f, 0x2fc8, 0x35ae, 0x388c, 0x30ee, 0x3674, 0x391d, 0x3bfc, 0x36bf, 0x322d, 0x3a78, 0x35c0, 0x3492, 0x3ac8, 0x3504, 0x3315, 0x381d, 0x3a7a, 0x3a08, 0x343c, 0x3bda, 0x341b, 0x39f0, 0x3b9e, 0x395d, 0x3c00, 0x38ab, 0x3bcf, 0x3564, -0x33c4, 0x3b0d, 0x3623, 0x33b9, 0x3b92, 0x1e71, 0x2c57, 0x36d0, 0x314b, 0x3a16, 0x3372, 0x341b, 0x3aaa, 0x3444, 0x396b, 0x2dd7, 0x3b30, 0x3559, 0x3b5b, 0x3a29, 0x2d19, 0x38b7, 0x3b01, 0x3afa, 0x398a, 0x3839, 0x3ac9, 0x2e31, 0x3924, 0x39f2, 0x3a7f, 0x3285 -}; \ No newline at end of file diff --git a/astral/redmule/inc/w_input.h b/astral/redmule/inc/w_input.h deleted file mode 100644 index dc4d3be..0000000 --- a/astral/redmule/inc/w_input.h +++ /dev/null @@ -1,35 +0,0 @@ - /* Header file generated by RedMulE Golden Model */ -uint16_t w_inp [1024] = { -0x311a, 0x39e0, 0x387d, 0x3a4a, 0x386f, 0x3ada, 0x392f, 0x3854, 0x3014, 0x2fd2, 0x31c9, 0x2fca, 0x2e55, 0x3bc8, 0x396d, 0x3b1d, 0x39f6, 0x333a, 0x3908, 0x3628, 0x3bab, 0x3b8b, 0x3b4a, 0x322d, 0x3925, 0x317a, 0x3725, 0x31c2, 0x3066, 0x38f3, 0x3a17, 0x3476, -0x3bda, 0x3196, 0x3922, 0x3680, 0x396a, 0x3021, 0x3761, 0x374d, 0x2fc2, 0x3967, 0x3b94, 0x33b5, 0x3797, 0x34d6, 0x3655, 0x2176, 0x39bc, 0x3999, 0x3658, 0x3904, 0x3759, 0x2ade, 0x3a5a, 0x3b78, 0x36c7, 0x2d01, 0x3b58, 0x2d9a, 0x373d, 0x3952, 0x38e8, 0x3887, -0x37b6, 0x3a88, 0x2f8a, 0x2d79, 0x3413, 0x3421, 0x3976, 0x32b2, 0x3446, 0x2d99, 0x3a56, 0x3322, 0x3b49, 0x39fa, 0x3acd, 0x3af6, 0x304c, 0x3abb, 0x3a83, 0x38b2, 0x3ab9, 0x363e, 0x389f, 0x31bb, 0x38e1, 0x3bc4, 0x3b9b, 0x2984, 0x3a43, 0x3b2f, 0x35d6, 0x3bda, -0x2df3, 0x3bf8, 0x2acc, 0x378b, 0x3555, 0x2e59, 0x31d4, 0x34ec, 0x3a46, 0x3bab, 0x3214, 0x3161, 0x3470, 0x3a03, 0x368e, 0x31ad, 0x27cb, 0x2ecb, 0x3422, 0x39f7, 0x3644, 0x3a77, 0x313f, 0x34f2, 0x39b3, 0x3bf2, 0x379a, 0x3456, 0x35fe, 0x3ae7, 0x3964, 0x385f, -0x3b16, 0x3999, 0x3833, 0x2eda, 0x3afd, 0x3a4a, 0x3ba2, 0x2bd4, 0x3b38, 0x31a2, 0x32dd, 0x353c, 0x366f, 0x375e, 0x3821, 0x367a, 0x3b44, 0x39e6, 0x3787, 0x339e, 0x39d7, 0x38c6, 0x37d5, 0x342f, 0x3984, 0x319b, 0x33b5, 0x35ab, 0x398a, 0x374e, 0x36b6, 0x3b21, -0x3bbb, 0x2ab3, 0x2ad5, 0x33bc, 0x2bef, 0x3780, 0x3738, 0x3a0b, 0x3b09, 0x30ca, 0x384e, 0x3ab3, 0x39bd, 0x3453, 0x3a6d, 0x3957, 0x2c10, 0x30e9, 0x35d4, 0x3aef, 0x3be9, 0x39ad, 0x3a74, 0x3af9, 0x3739, 0x2d4d, 0x39fe, 0x3b72, 0x2c57, 0x398c, 0x381f, 0x3930, -0x3820, 0x321b, 0x3964, 0x2964, 0x33a0, 0x2d00, 0x2490, 0x336b, 0x3465, 0x3b2e, 0x3aa0, 0x371f, 0x300e, 0x3a09, 0x3bf1, 0x25cc, 0x3b6f, 0x3384, 0x3a88, 0x3acb, 0x3814, 0x36d0, 0x3081, 0x3a2c, 0x3353, 0x39cb, 0x31ed, 0x3af6, 0x3721, 0x36c7, 0x2ce2, 0x390d, -0x3698, 0x3ab2, 0x3b3e, 0x2eb4, 0x3998, 0x39e3, 0x3a77, 0x3632, 0x2c12, 0x3bd5, 0x3ba3, 0x3bba, 0x323c, 0x367b, 0x3557, 0x39c8, 0x37db, 0x3b45, 0x3b6e, 0x3931, 0x3121, 0x3a8d, 0x3a55, 0x3b9b, 0x358a, 0x3925, 0x3491, 0x3912, 0x3b6b, 0x3584, 0x32df, 0x3120, -0x32b2, 0x3b0a, 0x2cad, 0x3465, 0x3ad3, 0x3bcd, 0x363b, 0x3afe, 0x354b, 0x3374, 0x39af, 0x3b7f, 0x308c, 0x2e72, 0x3380, 0x3b70, 0x3902, 0x38d8, 0x39f3, 0x3a4b, 0x3853, 0x397b, 0x2ebe, 0x387f, 0x2845, 0x37e2, 0x360f, 0x370b, 0x3acb, 0x35d4, 0x36e6, 0x3262, -0x2e88, 0x3a54, 0x2ee3, 0x3575, 0x3afe, 0x2aee, 0x39a0, 0x3aae, 0x3693, 0x3432, 0x3834, 0x3b9b, 0x3bcb, 0x2e3a, 0x356d, 0x374e, 0x3924, 0x383c, 0x311e, 0x3ac5, 0x352d, 0x311e, 0x38ca, 0x34d4, 0x36ca, 0x34ed, 0x3a13, 0x33eb, 0x3639, 0x3828, 0x3b3c, 0x3939, -0x3837, 0x3521, 0x2cb5, 0x3629, 0x3924, 0x384c, 0x366a, 0x3bbf, 0x2e9e, 0x3ba8, 0x33ad, 0x38c8, 0x3934, 0x3907, 0x249a, 0x3690, 0x3a09, 0x3215, 0x3898, 0x325d, 0x37d5, 0x3195, 0x361c, 0x3ae4, 0x351f, 0x3452, 0x3bc0, 0x375c, 0x39bf, 0x317a, 0x3aae, 0x283a, -0x3476, 0x3b92, 0x3472, 0x383e, 0x280f, 0x39d6, 0x2fd1, 0x31f4, 0x2ffb, 0x3b97, 0x3692, 0x36c0, 0x3989, 0x33cf, 0x3ba6, 0x3239, 0x35d7, 0x33ab, 0x31eb, 0x3b47, 0x389b, 0x3b88, 0x3580, 0x354c, 0x3802, 0x3b9a, 0x3b94, 0x2a92, 0x2db1, 0x38bd, 0x2dfb, 0x3900, -0x344f, 0x3739, 0x27a5, 0x3b2e, 0x342b, 0x34bb, 0x30c8, 0x3ae8, 0x3b26, 0x3982, 0x38c0, 0x3408, 0x38c8, 0x36ef, 0x3bf0, 0x3acf, 0x3a3c, 0x3825, 0x31a5, 0x3ada, 0x3b5b, 0x37db, 0x3a01, 0x3663, 0x3a7d, 0x327b, 0x3a1f, 0x3862, 0x38af, 0x3204, 0x372e, 0x3b19, -0x3708, 0x3622, 0x2e62, 0x39ab, 0x2d4d, 0x31b4, 0x3552, 0x3bbc, 0x36f2, 0x36eb, 0x38ef, 0x3755, 0x3bbe, 0x2c17, 0x3815, 0x2f53, 0x363f, 0x38c1, 0x3246, 0x386b, 0x34de, 0x34e4, 0x3baa, 0x349e, 0x32ce, 0x3a68, 0x373f, 0x2cce, 0x3b36, 0x28ba, 0x3b50, 0x3232, -0x1f34, 0x3928, 0x35cd, 0x3b38, 0x30ce, 0x35a1, 0x3a06, 0x3a32, 0x3a53, 0x3489, 0x3241, 0x372f, 0x390c, 0x3a1b, 0x378a, 0x3713, 0x3769, 0x37a8, 0x3418, 0x3ad4, 0x3a4e, 0x3bf7, 0x37a5, 0x34dc, 0x39b2, 0x351b, 0x3372, 0x349f, 0x2f50, 0x3ab1, 0x3795, 0x2db7, -0x3864, 0x3157, 0x3900, 0x323e, 0x389e, 0x3880, 0x3b1f, 0x37a1, 0x396c, 0x2e43, 0x2c2a, 0x3b78, 0x3988, 0x3a14, 0x39c1, 0x3b51, 0x3780, 0x3bf2, 0x2d19, 0x3815, 0x3a5f, 0x3641, 0x2f62, 0x37d5, 0x3564, 0x139a, 0x3ab8, 0x28f7, 0x3785, 0x34e1, 0x3097, 0x3768, -0x3971, 0x3ae2, 0x32ae, 0x2fd5, 0x382a, 0x346c, 0x3133, 0x3167, 0x3940, 0x2d12, 0x389a, 0x3bd0, 0x3943, 0x391c, 0x3a75, 0x2a11, 0x391e, 0x372d, 0x3a79, 0x3b72, 0x3373, 0x39b7, 0x35d7, 0x372b, 0x3a6d, 0x38a1, 0x3279, 0x3434, 0x3694, 0x3b45, 0x3abb, 0x392d, -0x34a8, 0x3757, 0x32ca, 0x345d, 0x36a5, 0x3854, 0x2dcd, 0x30af, 0x38dd, 0x3067, 0x3411, 0x3997, 0x397a, 0x3a64, 0x38b8, 0x3962, 0x3509, 0x3bb6, 0x3a66, 0x339f, 0x372a, 0x31a8, 0x37da, 0x36ff, 0x33c6, 0x31da, 0x3977, 0x3b72, 0x3841, 0x3567, 0x3433, 0x33b8, -0x39fe, 0x3a10, 0x3bf2, 0x35e7, 0x3a4a, 0x3b3e, 0x2ec7, 0x3aa4, 0x3846, 0x3af9, 0x38a9, 0x2c1f, 0x39ab, 0x349f, 0x31d6, 0x39ae, 0x3b79, 0x352d, 0x3516, 0x347c, 0x2f33, 0x35ad, 0x31c4, 0x3b52, 0x354b, 0x3786, 0x3ab7, 0x3896, 0x34ac, 0x352f, 0x37e6, 0x326a, -0x2e44, 0x34c7, 0x388d, 0x3bf4, 0x363f, 0x3b3d, 0x33b1, 0x3b8b, 0x3340, 0x37f7, 0x3b07, 0x25bf, 0x398e, 0x3505, 0x3bd7, 0x366d, 0x388a, 0x2cc0, 0x359a, 0x3b9a, 0x3b99, 0x379d, 0x3b6b, 0x39b8, 0x3223, 0x2703, 0x3ba9, 0x2ecb, 0x3759, 0x39d8, 0x37ac, 0x32cf, -0x35f2, 0x38a3, 0x399e, 0x3bd2, 0x3780, 0x3af3, 0x3b5e, 0x337b, 0x3a08, 0x35da, 0x3446, 0x3b25, 0x3ad0, 0x3bee, 0x3141, 0x32d8, 0x34ce, 0x2ac9, 0x3800, 0x3a8a, 0x2d53, 0x368a, 0x3561, 0x3998, 0x35a3, 0x3677, 0x3ab2, 0x3269, 0x3236, 0x3b3e, 0x3aba, 0x3bac, -0x395d, 0x3820, 0x1df6, 0x3bb5, 0x35b5, 0x3675, 0x3b74, 0x360f, 0x34de, 0x3a0c, 0x3aeb, 0x299d, 0x3207, 0x3bd8, 0x2178, 0x3995, 0x3948, 0x3908, 0x3843, 0x2ea5, 0x3045, 0x3989, 0x345d, 0x39c5, 0x3a89, 0x3863, 0x3be0, 0x397a, 0x38f1, 0x39e2, 0x3b08, 0x352e, -0x385f, 0x28f2, 0x3bc3, 0x35e0, 0x380c, 0x3b9c, 0x3afc, 0x390a, 0x3689, 0x34fd, 0x2cf5, 0x308e, 0x342b, 0x3921, 0x3a67, 0x3ad6, 0x2986, 0x32fc, 0x35aa, 0x3507, 0x3608, 0x33fd, 0x3bf3, 0x39e2, 0x3b0f, 0x30b7, 0x3896, 0x3ae4, 0x2145, 0x35b6, 0x2e1d, 0x3ad1, -0x333d, 0x3afb, 0x2703, 0x3413, 0x1d7d, 0x3b7f, 0x3ae1, 0x303c, 0x3004, 0x39d3, 0x3554, 0x31a4, 0x354e, 0x3662, 0x39c5, 0x2eb7, 0x2c6e, 0x397f, 0x31d8, 0x1f0c, 0x38e3, 0x35f0, 0x2714, 0x28d1, 0x375e, 0x3a75, 0x3830, 0x3578, 0x397d, 0x3b18, 0x383c, 0x3498, -0x39ad, 0x3598, 0x23c4, 0x34ea, 0x3a61, 0x2b00, 0x3707, 0x3ae1, 0x37ae, 0x389d, 0x37fa, 0x3673, 0x3278, 0xf3e, 0x3809, 0x33c6, 0x3bf5, 0x3279, 0x3816, 0x360c, 0x39c8, 0x381f, 0x3741, 0x2d66, 0x38c0, 0x37d3, 0x377a, 0x3621, 0x2faf, 0x392e, 0x2de6, 0x33c5, -0x3803, 0x2600, 0x32e9, 0x39b4, 0x38d2, 0x34e8, 0x2fe6, 0x3199, 0x3643, 0x3a77, 0x27cc, 0x39d7, 0x34c6, 0x2ea8, 0x364e, 0x3b07, 0x31c7, 0x30a1, 0x31b1, 0x3b8f, 0x3571, 0x3b75, 0x3989, 0x3805, 0x39fb, 0x3945, 0x352b, 0x31d8, 0x3904, 0x3440, 0x3a57, 0x2cf7, -0x3b39, 0x2fcd, 0x2b89, 0x2edd, 0x3682, 0x36a9, 0x32c8, 0x37ac, 0x32a5, 0x3311, 0x394b, 0x3b84, 0x3aec, 0x3601, 0x2765, 0x3b69, 0x396b, 0x3727, 0x3bfe, 0x3907, 0x376f, 0x3674, 0x3973, 0x3671, 0x3491, 0x3993, 0x383f, 0x3335, 0x3989, 0x3550, 0x3077, 0x35f5, -0x3a59, 0x3950, 0x380c, 0x37cd, 0x30bf, 0x3607, 0x3afa, 0x3b5d, 0x32b9, 0x386b, 0x35bd, 0x3aca, 0x3ba5, 0x3b2d, 0x3b19, 0x3b8b, 0x345e, 0x2845, 0x34aa, 0x372a, 0x3448, 0x34f5, 0x3ae2, 0x3637, 0x2cb5, 0x354b, 0x3b15, 0x2ca8, 0x2641, 0x3178, 0x2cfe, 0x39b4, -0x3bdd, 0x3acb, 0x3a05, 0x38a2, 0x3b4a, 0x34e5, 0x395f, 0x394b, 0x34c4, 0x3aa5, 0x29bb, 0x2d96, 0x339d, 0x387c, 0x382e, 0x385a, 0x396b, 0x3aa9, 0x2f1e, 0x33a7, 0x3b90, 0x3b7b, 0x3b5f, 0x39d3, 0x3b18, 0x354f, 0x2cdb, 0x3a6f, 0x3434, 0x34ff, 0x3a5b, 0x3b84, -0x3a33, 0x384b, 0x2e67, 0x3b85, 0x3853, 0x380c, 0x346a, 0x3aaa, 0x3492, 0x33e8, 0x3bf2, 0x38ae, 0x3a29, 0x3830, 0x3221, 0x35b1, 0x3a48, 0x2c68, 0x2ced, 0x3a7e, 0x3539, 0x3922, 0x374c, 0x3aaa, 0x2dae, 0x395d, 0x3b3d, 0x3890, 0x2cfe, 0x2dd6, 0x3bad, 0x33c5, -0x2c07, 0x3a2c, 0x37a8, 0x390f, 0x2fc8, 0x35ae, 0x388c, 0x30ee, 0x3674, 0x391d, 0x3bfc, 0x36bf, 0x322d, 0x3a78, 0x35c0, 0x3492, 0x3ac8, 0x3504, 0x3315, 0x381d, 0x3a7a, 0x3a08, 0x343c, 0x3bda, 0x341b, 0x39f0, 0x3b9e, 0x395d, 0x3c00, 0x38ab, 0x3bcf, 0x3564, -0x33c4, 0x3b0d, 0x3623, 0x33b9, 0x3b92, 0x1e71, 0x2c57, 0x36d0, 0x314b, 0x3a16, 0x3372, 0x341b, 0x3aaa, 0x3444, 0x396b, 0x2dd7, 0x3b30, 0x3559, 0x3b5b, 0x3a29, 0x2d19, 0x38b7, 0x3b01, 0x3afa, 0x398a, 0x3839, 0x3ac9, 0x2e31, 0x3924, 0x39f2, 0x3a7f, 0x3285 -}; \ No newline at end of file diff --git a/astral/redmule/inc/x_2D.h b/astral/redmule/inc/x_2D.h deleted file mode 100644 index 0b589f8..0000000 --- a/astral/redmule/inc/x_2D.h +++ /dev/null @@ -1,27 +0,0 @@ - /* Header file generated by RedMulE Golden Model */ -uint16_t x_inp_2D [24][32] = { -0x2153, 0x3bb5, 0x3896, 0x365f, 0x2483, 0x3518, 0x2dd1, 0x3bca, 0x397b, 0x29b1, 0x3705, 0x36c8, 0x398b, 0x3661, 0x2f05, 0x365a, 0x3bf9, 0x34df, 0x363b, 0x38d9, 0x39c6, 0x3abb, 0x3952, 0x38f2, 0x392d, 0x3b3e, 0x2afb, 0x3a9d, 0x353b, 0x3b73, 0x3a01, 0x3679, -0x3934, 0x397d, 0x2904, 0x3822, 0x3462, 0x3b44, 0x39e9, 0x28be, 0x331e, 0x3a1d, 0x39e5, 0x34da, 0x3a19, 0x3906, 0x1d35, 0x3871, 0x31e7, 0x3b29, 0x325d, 0x3797, 0x2b2f, 0x38b4, 0x232f, 0x38aa, 0x3aca, 0x316f, 0x3811, 0x3950, 0x32ea, 0x3bc7, 0x382c, 0x38a2, -0x29ce, 0x3afa, 0x3a39, 0x2ccc, 0x39fd, 0x3b3d, 0x384a, 0x3a35, 0x3802, 0x366a, 0x37ec, 0x3598, 0x3bf8, 0x3a85, 0x3a1b, 0x386e, 0x3b4c, 0x39de, 0x38c2, 0x2f93, 0x3b4c, 0x39c4, 0x3b9e, 0x3844, 0x346d, 0x3bff, 0x32ce, 0x296d, 0x3130, 0x3b3d, 0x3b44, 0x369d, -0x3b13, 0x31ed, 0x330a, 0x3831, 0x34e7, 0x37b3, 0x331a, 0x3918, 0x32d3, 0x3995, 0x3991, 0x3919, 0x3a26, 0x385b, 0x2b76, 0x3a3b, 0x37f2, 0x26a7, 0x3225, 0x3b64, 0x28f0, 0x3456, 0x3822, 0x341e, 0x381a, 0x38d8, 0x2c11, 0x33be, 0x33ac, 0x353f, 0x3476, 0x3abc, -0x36ec, 0x3a1d, 0x39d3, 0x3821, 0x36ac, 0x3bce, 0x3ad2, 0x3616, 0x36a1, 0x2cb3, 0x38d2, 0x314f, 0x385c, 0x3b63, 0x3bb6, 0x2951, 0x372d, 0x2c42, 0x3823, 0x3883, 0x3872, 0x31ee, 0x36c5, 0x399a, 0x31b0, 0x3887, 0x3884, 0x3865, 0x3896, 0x36c3, 0x32e3, 0x346c, -0x3935, 0x3b50, 0x2b6d, 0x38cd, 0x388f, 0x3389, 0x395d, 0x31cd, 0x2efd, 0x3154, 0x2f35, 0x3444, 0x3293, 0x3b6b, 0x1bec, 0x3b69, 0x3bf3, 0x3611, 0x3508, 0x3742, 0x3a50, 0x3ab7, 0x3457, 0x38d3, 0x3344, 0x38e8, 0x33c0, 0x3668, 0x3bee, 0x3b21, 0x3727, 0x3121, -0x316c, 0x3288, 0x2d50, 0x2e74, 0x35d5, 0x37e2, 0x303d, 0x36af, 0x341f, 0x3436, 0x2df7, 0x399d, 0x30f4, 0x3aaf, 0x34e4, 0x2c2a, 0x3116, 0x34d3, 0x36ac, 0x35e3, 0x3760, 0x36e1, 0x3ad2, 0x3547, 0x38f4, 0x369c, 0x3ba9, 0x34f0, 0x3a39, 0x3b19, 0x36e6, 0x395d, -0x3be8, 0x3293, 0x3bfc, 0x3435, 0x2eb3, 0x3360, 0x3919, 0x3bed, 0x396a, 0x37fc, 0x3242, 0x384b, 0x38cb, 0x3b2c, 0x3b28, 0x28cf, 0x3828, 0x3855, 0x3ba9, 0x2fa7, 0x340b, 0x32f1, 0x3ada, 0x36fa, 0x31f5, 0x3436, 0x29d0, 0x33e6, 0x3232, 0x3bec, 0x3904, 0x2797, -0x3b81, 0x3bac, 0x38d2, 0x343d, 0x31af, 0x3b1e, 0x33fc, 0x3864, 0x3624, 0x3905, 0x2945, 0x3b52, 0x2d08, 0x3a17, 0x3b84, 0x3804, 0x3a24, 0x38a3, 0x3562, 0x3ae6, 0x3bba, 0x3a45, 0x3679, 0x31fa, 0x3994, 0x2c3d, 0x383f, 0x399d, 0x34f7, 0x360e, 0x35f3, 0x38f0, -0x38d4, 0x399a, 0x3a48, 0x3987, 0x3b54, 0x382c, 0x3210, 0x35ef, 0x36ca, 0x31b4, 0x3625, 0x371f, 0x37bd, 0x3680, 0x3a3a, 0x3ac0, 0x3bbf, 0x3bf5, 0x39f2, 0x29c2, 0x363e, 0x3a4e, 0x3596, 0x3b1b, 0x3459, 0x3669, 0x3aa1, 0x39c3, 0x3376, 0x390d, 0x2456, 0x39b5, -0x3a66, 0x3ad8, 0x3b51, 0x36aa, 0x32be, 0x3ac8, 0x392b, 0x3740, 0x3a48, 0x38f5, 0x3b2d, 0x3a5f, 0x2ff3, 0x366f, 0x39d3, 0x35e5, 0x3822, 0x38db, 0x3b8a, 0x34be, 0x2d33, 0x36dd, 0x3578, 0x3bdf, 0x2c7e, 0x39cf, 0x32ff, 0x35c9, 0x3970, 0x3bcb, 0x351e, 0x3956, -0x2c42, 0x3308, 0x377a, 0x361c, 0x39a0, 0x36c9, 0x2dcb, 0x3bf2, 0x3b5f, 0x33ee, 0x24c1, 0x2ce9, 0x3927, 0x305d, 0x3702, 0x3119, 0x35f9, 0x3855, 0x3374, 0x349b, 0x3bcf, 0x2dea, 0x34f0, 0x363f, 0x37da, 0x3a74, 0x35fc, 0x35fa, 0x316b, 0x3804, 0x37a7, 0x3986, -0x3073, 0x3aed, 0x31c7, 0x3844, 0x34a4, 0x387d, 0x3a20, 0x3037, 0x3a00, 0x3b70, 0x377f, 0x3686, 0x3b7e, 0x38b3, 0x32e3, 0x3323, 0x391e, 0x3228, 0x3930, 0x3997, 0x3a5e, 0x398b, 0x3512, 0x35b0, 0x365c, 0x325d, 0x3b61, 0x38b8, 0x39a4, 0x3423, 0x3bd7, 0x38af, -0x2d3d, 0x382d, 0x38ac, 0x26ca, 0x395e, 0x21a8, 0x3520, 0x386f, 0x3b95, 0x32c0, 0x3b84, 0x3a51, 0x3b4b, 0x31d2, 0x3747, 0x3b96, 0x3b40, 0x3535, 0x38d1, 0x3899, 0x3b00, 0x3827, 0x3ae3, 0x38c8, 0x3a07, 0x338d, 0x2e96, 0x3a46, 0x394a, 0x39de, 0x2951, 0x3a02, -0x3838, 0x2d45, 0x28c0, 0x3958, 0x3070, 0x2aa2, 0x3510, 0x38ce, 0x271c, 0x3440, 0x3954, 0x30bc, 0x3b35, 0x2f1d, 0x3afb, 0x2dae, 0x356f, 0x2e13, 0x3981, 0x326d, 0x3a28, 0x3a36, 0x3a95, 0x38cb, 0x38db, 0x3150, 0x2c9e, 0x34c5, 0x3adb, 0x3bdf, 0x38f2, 0x3994, -0x36f8, 0x31c0, 0x3a4f, 0x3825, 0x394b, 0x3a8b, 0x38ac, 0x3167, 0x2e2d, 0x3a93, 0x34f3, 0x37bd, 0x3b63, 0x2f2f, 0x3ae0, 0x3ad8, 0x34a8, 0x2e1c, 0x3890, 0x3705, 0x3b69, 0x3bc1, 0x28af, 0x3b36, 0x348b, 0x3111, 0x3a8d, 0x389c, 0x3916, 0x36dc, 0x3bae, 0x3874, -0x3593, 0x3638, 0x3018, 0x3a56, 0x38a3, 0x2ad4, 0x3a25, 0x38d7, 0x3864, 0x31c1, 0x28d1, 0x39c8, 0x37d6, 0x2c7f, 0x3ba5, 0x34b8, 0x3bef, 0x3b83, 0x3ab5, 0x3062, 0x38bc, 0x399c, 0x2ce4, 0x2f2c, 0x39bf, 0x2ed1, 0x385f, 0x37e0, 0x35ee, 0x397d, 0x3b0c, 0x3049, -0x39d5, 0x322e, 0x3936, 0x3747, 0x2e15, 0x3b41, 0x3874, 0x3bd0, 0x2c04, 0x3800, 0x375b, 0x3b2d, 0x38d8, 0x3a51, 0x3406, 0x38da, 0x38ba, 0x3497, 0x382e, 0x35fc, 0x39d4, 0x3775, 0x3b1e, 0x3813, 0x3649, 0x31af, 0x37bb, 0x334a, 0x3a6e, 0x3284, 0x26e0, 0x2e01, -0x2ebb, 0x344b, 0x3821, 0x381a, 0x385a, 0x2534, 0x3635, 0x2a92, 0x3b8c, 0x31f0, 0x3947, 0x3ac7, 0x3743, 0x3924, 0x39e4, 0x358f, 0x2b62, 0x392c, 0x3955, 0x3341, 0x3676, 0x38ac, 0x3957, 0x335b, 0x2ca2, 0x39ff, 0x37cb, 0x341f, 0x3ac9, 0x3b6c, 0x2f14, 0x34c3, -0x3018, 0x3169, 0x355b, 0x3624, 0x31ed, 0x379e, 0x3268, 0x309b, 0x35db, 0x3872, 0x3bdb, 0x34c7, 0x3408, 0x3359, 0x3920, 0x331f, 0x3866, 0x3af0, 0x2a1a, 0x39e0, 0x3b14, 0x34fa, 0x2d18, 0x3963, 0x35e8, 0x2539, 0x38f5, 0x37b3, 0x378f, 0x31b5, 0x3a6c, 0x3685, -0x3a06, 0x318a, 0x2934, 0x33c1, 0x3be8, 0x375b, 0x3860, 0x3543, 0x3702, 0x3951, 0x3677, 0x37ff, 0x2e27, 0x2e3a, 0x340f, 0x3817, 0x2f04, 0x357e, 0x3a1d, 0x2dd6, 0x252a, 0x3945, 0x162a, 0x3b19, 0x3a53, 0x35d2, 0x3a5d, 0x3474, 0x38e9, 0x374b, 0x387c, 0x1f1a, -0x38ac, 0x3291, 0x3393, 0x3b53, 0x3169, 0x3bca, 0x2f1a, 0x3551, 0x38a3, 0x28e3, 0x369d, 0x34a1, 0x38a8, 0x34c3, 0x3841, 0x390d, 0x3b13, 0x3282, 0x3a29, 0x3a78, 0x2df3, 0x3a37, 0x35f4, 0x35a6, 0x38e8, 0x3328, 0x3beb, 0x390b, 0x32dc, 0x34dc, 0x396d, 0x3a78, -0x39ba, 0x3a06, 0x2cdd, 0x3bc3, 0x2d43, 0x2992, 0x3663, 0x3a68, 0x2c3e, 0x394e, 0x2c9f, 0x380e, 0x37f5, 0x3557, 0x2873, 0x390f, 0x39e7, 0x3939, 0x3669, 0x385c, 0x3a68, 0x32c4, 0x2b04, 0x2d6d, 0x39d3, 0x3895, 0x331d, 0x3b59, 0x3463, 0x2b6a, 0x31de, 0x3296, -0x3aae, 0x3bcd, 0x345a, 0x3897, 0x374b, 0x3bd4, 0x38a2, 0x357f, 0x3402, 0x3a0c, 0x3507, 0x3865, 0x3a54, 0x3878, 0x3859, 0x383e, 0x32b5, 0x34ea, 0x328d, 0x38b6, 0x3464, 0x2f5b, 0x35ff, 0x3817, 0x2f24, 0x3533, 0x3b21, 0x37ba, 0x3837, 0x2e34, 0x3bad, 0x34bc -}; \ No newline at end of file diff --git a/astral/redmule/inc/x_input.h b/astral/redmule/inc/x_input.h deleted file mode 100644 index 1e38d23..0000000 --- a/astral/redmule/inc/x_input.h +++ /dev/null @@ -1,27 +0,0 @@ - /* Header file generated by RedMulE Golden Model */ -uint16_t x_inp [768] = { -0x2153, 0x3bb5, 0x3896, 0x365f, 0x2483, 0x3518, 0x2dd1, 0x3bca, 0x397b, 0x29b1, 0x3705, 0x36c8, 0x398b, 0x3661, 0x2f05, 0x365a, 0x3bf9, 0x34df, 0x363b, 0x38d9, 0x39c6, 0x3abb, 0x3952, 0x38f2, 0x392d, 0x3b3e, 0x2afb, 0x3a9d, 0x353b, 0x3b73, 0x3a01, 0x3679, -0x3934, 0x397d, 0x2904, 0x3822, 0x3462, 0x3b44, 0x39e9, 0x28be, 0x331e, 0x3a1d, 0x39e5, 0x34da, 0x3a19, 0x3906, 0x1d35, 0x3871, 0x31e7, 0x3b29, 0x325d, 0x3797, 0x2b2f, 0x38b4, 0x232f, 0x38aa, 0x3aca, 0x316f, 0x3811, 0x3950, 0x32ea, 0x3bc7, 0x382c, 0x38a2, -0x29ce, 0x3afa, 0x3a39, 0x2ccc, 0x39fd, 0x3b3d, 0x384a, 0x3a35, 0x3802, 0x366a, 0x37ec, 0x3598, 0x3bf8, 0x3a85, 0x3a1b, 0x386e, 0x3b4c, 0x39de, 0x38c2, 0x2f93, 0x3b4c, 0x39c4, 0x3b9e, 0x3844, 0x346d, 0x3bff, 0x32ce, 0x296d, 0x3130, 0x3b3d, 0x3b44, 0x369d, -0x3b13, 0x31ed, 0x330a, 0x3831, 0x34e7, 0x37b3, 0x331a, 0x3918, 0x32d3, 0x3995, 0x3991, 0x3919, 0x3a26, 0x385b, 0x2b76, 0x3a3b, 0x37f2, 0x26a7, 0x3225, 0x3b64, 0x28f0, 0x3456, 0x3822, 0x341e, 0x381a, 0x38d8, 0x2c11, 0x33be, 0x33ac, 0x353f, 0x3476, 0x3abc, -0x36ec, 0x3a1d, 0x39d3, 0x3821, 0x36ac, 0x3bce, 0x3ad2, 0x3616, 0x36a1, 0x2cb3, 0x38d2, 0x314f, 0x385c, 0x3b63, 0x3bb6, 0x2951, 0x372d, 0x2c42, 0x3823, 0x3883, 0x3872, 0x31ee, 0x36c5, 0x399a, 0x31b0, 0x3887, 0x3884, 0x3865, 0x3896, 0x36c3, 0x32e3, 0x346c, -0x3935, 0x3b50, 0x2b6d, 0x38cd, 0x388f, 0x3389, 0x395d, 0x31cd, 0x2efd, 0x3154, 0x2f35, 0x3444, 0x3293, 0x3b6b, 0x1bec, 0x3b69, 0x3bf3, 0x3611, 0x3508, 0x3742, 0x3a50, 0x3ab7, 0x3457, 0x38d3, 0x3344, 0x38e8, 0x33c0, 0x3668, 0x3bee, 0x3b21, 0x3727, 0x3121, -0x316c, 0x3288, 0x2d50, 0x2e74, 0x35d5, 0x37e2, 0x303d, 0x36af, 0x341f, 0x3436, 0x2df7, 0x399d, 0x30f4, 0x3aaf, 0x34e4, 0x2c2a, 0x3116, 0x34d3, 0x36ac, 0x35e3, 0x3760, 0x36e1, 0x3ad2, 0x3547, 0x38f4, 0x369c, 0x3ba9, 0x34f0, 0x3a39, 0x3b19, 0x36e6, 0x395d, -0x3be8, 0x3293, 0x3bfc, 0x3435, 0x2eb3, 0x3360, 0x3919, 0x3bed, 0x396a, 0x37fc, 0x3242, 0x384b, 0x38cb, 0x3b2c, 0x3b28, 0x28cf, 0x3828, 0x3855, 0x3ba9, 0x2fa7, 0x340b, 0x32f1, 0x3ada, 0x36fa, 0x31f5, 0x3436, 0x29d0, 0x33e6, 0x3232, 0x3bec, 0x3904, 0x2797, -0x3b81, 0x3bac, 0x38d2, 0x343d, 0x31af, 0x3b1e, 0x33fc, 0x3864, 0x3624, 0x3905, 0x2945, 0x3b52, 0x2d08, 0x3a17, 0x3b84, 0x3804, 0x3a24, 0x38a3, 0x3562, 0x3ae6, 0x3bba, 0x3a45, 0x3679, 0x31fa, 0x3994, 0x2c3d, 0x383f, 0x399d, 0x34f7, 0x360e, 0x35f3, 0x38f0, -0x38d4, 0x399a, 0x3a48, 0x3987, 0x3b54, 0x382c, 0x3210, 0x35ef, 0x36ca, 0x31b4, 0x3625, 0x371f, 0x37bd, 0x3680, 0x3a3a, 0x3ac0, 0x3bbf, 0x3bf5, 0x39f2, 0x29c2, 0x363e, 0x3a4e, 0x3596, 0x3b1b, 0x3459, 0x3669, 0x3aa1, 0x39c3, 0x3376, 0x390d, 0x2456, 0x39b5, -0x3a66, 0x3ad8, 0x3b51, 0x36aa, 0x32be, 0x3ac8, 0x392b, 0x3740, 0x3a48, 0x38f5, 0x3b2d, 0x3a5f, 0x2ff3, 0x366f, 0x39d3, 0x35e5, 0x3822, 0x38db, 0x3b8a, 0x34be, 0x2d33, 0x36dd, 0x3578, 0x3bdf, 0x2c7e, 0x39cf, 0x32ff, 0x35c9, 0x3970, 0x3bcb, 0x351e, 0x3956, -0x2c42, 0x3308, 0x377a, 0x361c, 0x39a0, 0x36c9, 0x2dcb, 0x3bf2, 0x3b5f, 0x33ee, 0x24c1, 0x2ce9, 0x3927, 0x305d, 0x3702, 0x3119, 0x35f9, 0x3855, 0x3374, 0x349b, 0x3bcf, 0x2dea, 0x34f0, 0x363f, 0x37da, 0x3a74, 0x35fc, 0x35fa, 0x316b, 0x3804, 0x37a7, 0x3986, -0x3073, 0x3aed, 0x31c7, 0x3844, 0x34a4, 0x387d, 0x3a20, 0x3037, 0x3a00, 0x3b70, 0x377f, 0x3686, 0x3b7e, 0x38b3, 0x32e3, 0x3323, 0x391e, 0x3228, 0x3930, 0x3997, 0x3a5e, 0x398b, 0x3512, 0x35b0, 0x365c, 0x325d, 0x3b61, 0x38b8, 0x39a4, 0x3423, 0x3bd7, 0x38af, -0x2d3d, 0x382d, 0x38ac, 0x26ca, 0x395e, 0x21a8, 0x3520, 0x386f, 0x3b95, 0x32c0, 0x3b84, 0x3a51, 0x3b4b, 0x31d2, 0x3747, 0x3b96, 0x3b40, 0x3535, 0x38d1, 0x3899, 0x3b00, 0x3827, 0x3ae3, 0x38c8, 0x3a07, 0x338d, 0x2e96, 0x3a46, 0x394a, 0x39de, 0x2951, 0x3a02, -0x3838, 0x2d45, 0x28c0, 0x3958, 0x3070, 0x2aa2, 0x3510, 0x38ce, 0x271c, 0x3440, 0x3954, 0x30bc, 0x3b35, 0x2f1d, 0x3afb, 0x2dae, 0x356f, 0x2e13, 0x3981, 0x326d, 0x3a28, 0x3a36, 0x3a95, 0x38cb, 0x38db, 0x3150, 0x2c9e, 0x34c5, 0x3adb, 0x3bdf, 0x38f2, 0x3994, -0x36f8, 0x31c0, 0x3a4f, 0x3825, 0x394b, 0x3a8b, 0x38ac, 0x3167, 0x2e2d, 0x3a93, 0x34f3, 0x37bd, 0x3b63, 0x2f2f, 0x3ae0, 0x3ad8, 0x34a8, 0x2e1c, 0x3890, 0x3705, 0x3b69, 0x3bc1, 0x28af, 0x3b36, 0x348b, 0x3111, 0x3a8d, 0x389c, 0x3916, 0x36dc, 0x3bae, 0x3874, -0x3593, 0x3638, 0x3018, 0x3a56, 0x38a3, 0x2ad4, 0x3a25, 0x38d7, 0x3864, 0x31c1, 0x28d1, 0x39c8, 0x37d6, 0x2c7f, 0x3ba5, 0x34b8, 0x3bef, 0x3b83, 0x3ab5, 0x3062, 0x38bc, 0x399c, 0x2ce4, 0x2f2c, 0x39bf, 0x2ed1, 0x385f, 0x37e0, 0x35ee, 0x397d, 0x3b0c, 0x3049, -0x39d5, 0x322e, 0x3936, 0x3747, 0x2e15, 0x3b41, 0x3874, 0x3bd0, 0x2c04, 0x3800, 0x375b, 0x3b2d, 0x38d8, 0x3a51, 0x3406, 0x38da, 0x38ba, 0x3497, 0x382e, 0x35fc, 0x39d4, 0x3775, 0x3b1e, 0x3813, 0x3649, 0x31af, 0x37bb, 0x334a, 0x3a6e, 0x3284, 0x26e0, 0x2e01, -0x2ebb, 0x344b, 0x3821, 0x381a, 0x385a, 0x2534, 0x3635, 0x2a92, 0x3b8c, 0x31f0, 0x3947, 0x3ac7, 0x3743, 0x3924, 0x39e4, 0x358f, 0x2b62, 0x392c, 0x3955, 0x3341, 0x3676, 0x38ac, 0x3957, 0x335b, 0x2ca2, 0x39ff, 0x37cb, 0x341f, 0x3ac9, 0x3b6c, 0x2f14, 0x34c3, -0x3018, 0x3169, 0x355b, 0x3624, 0x31ed, 0x379e, 0x3268, 0x309b, 0x35db, 0x3872, 0x3bdb, 0x34c7, 0x3408, 0x3359, 0x3920, 0x331f, 0x3866, 0x3af0, 0x2a1a, 0x39e0, 0x3b14, 0x34fa, 0x2d18, 0x3963, 0x35e8, 0x2539, 0x38f5, 0x37b3, 0x378f, 0x31b5, 0x3a6c, 0x3685, -0x3a06, 0x318a, 0x2934, 0x33c1, 0x3be8, 0x375b, 0x3860, 0x3543, 0x3702, 0x3951, 0x3677, 0x37ff, 0x2e27, 0x2e3a, 0x340f, 0x3817, 0x2f04, 0x357e, 0x3a1d, 0x2dd6, 0x252a, 0x3945, 0x162a, 0x3b19, 0x3a53, 0x35d2, 0x3a5d, 0x3474, 0x38e9, 0x374b, 0x387c, 0x1f1a, -0x38ac, 0x3291, 0x3393, 0x3b53, 0x3169, 0x3bca, 0x2f1a, 0x3551, 0x38a3, 0x28e3, 0x369d, 0x34a1, 0x38a8, 0x34c3, 0x3841, 0x390d, 0x3b13, 0x3282, 0x3a29, 0x3a78, 0x2df3, 0x3a37, 0x35f4, 0x35a6, 0x38e8, 0x3328, 0x3beb, 0x390b, 0x32dc, 0x34dc, 0x396d, 0x3a78, -0x39ba, 0x3a06, 0x2cdd, 0x3bc3, 0x2d43, 0x2992, 0x3663, 0x3a68, 0x2c3e, 0x394e, 0x2c9f, 0x380e, 0x37f5, 0x3557, 0x2873, 0x390f, 0x39e7, 0x3939, 0x3669, 0x385c, 0x3a68, 0x32c4, 0x2b04, 0x2d6d, 0x39d3, 0x3895, 0x331d, 0x3b59, 0x3463, 0x2b6a, 0x31de, 0x3296, -0x3aae, 0x3bcd, 0x345a, 0x3897, 0x374b, 0x3bd4, 0x38a2, 0x357f, 0x3402, 0x3a0c, 0x3507, 0x3865, 0x3a54, 0x3878, 0x3859, 0x383e, 0x32b5, 0x34ea, 0x328d, 0x38b6, 0x3464, 0x2f5b, 0x35ff, 0x3817, 0x2f24, 0x3533, 0x3b21, 0x37ba, 0x3837, 0x2e34, 0x3bad, 0x34bc -}; \ No newline at end of file diff --git a/astral/redmule/inc/y_2D.h b/astral/redmule/inc/y_2D.h deleted file mode 100644 index 9484a10..0000000 --- a/astral/redmule/inc/y_2D.h +++ /dev/null @@ -1,27 +0,0 @@ - /* Header file generated by RedMulE Golden Model */ -uint16_t y_inp_2D [32][32] = { -0x3150, 0x2dc1, 0x3033, 0x31f5, 0x3bb6, 0x3bff, 0x39f9, 0x3662, 0x3720, 0x351d, 0x384b, 0x3093, 0x3b9d, 0x35ad, 0x3695, 0x3466, 0x2300, 0x3445, 0x33ae, 0x3586, 0x38a3, 0x3bdb, 0x33a2, 0x379b, 0x3a0e, 0x38b0, 0x39ba, 0x379b, 0x39d3, 0x3a51, 0x3b30, 0x3794, -0x3b76, 0x3042, 0x38cc, 0x2dfc, 0x3b1a, 0x37fb, 0x38f7, 0x3824, 0x386f, 0x38c7, 0x36ee, 0x3a9c, 0x38d3, 0x2c67, 0x3a80, 0x2f30, 0x3328, 0x3721, 0x3790, 0x34e5, 0x3a6c, 0x3643, 0x3934, 0x3034, 0x38d4, 0x362e, 0x3b4b, 0x3408, 0x30c2, 0x370e, 0x3b31, 0x3b16, -0x3b6b, 0x39d4, 0x339c, 0x381e, 0x313e, 0x3671, 0x3ae2, 0x3479, 0x3940, 0x342d, 0x3925, 0x370a, 0x35d8, 0x2dad, 0x3888, 0x24b9, 0x375d, 0x34bd, 0x3243, 0x2ebb, 0x3970, 0x3a21, 0x3a07, 0x3877, 0x3888, 0x3569, 0x372d, 0x2ac1, 0x331e, 0x384d, 0x3996, 0x34a4, -0x35c1, 0x33a9, 0x21ed, 0x3a42, 0x388d, 0x34e4, 0x33c3, 0x34f9, 0x3a7b, 0x33fb, 0x2cdd, 0x3b0e, 0x333b, 0x3973, 0x34fc, 0x3771, 0x32ea, 0x2de4, 0x31a8, 0x3946, 0x3657, 0x3a4e, 0x36f6, 0x2829, 0x3ba2, 0x3bdc, 0x3bb3, 0x306c, 0x398d, 0x3a1f, 0x3991, 0x3846, -0x3547, 0x3292, 0x2e85, 0x31ed, 0x3979, 0x3a90, 0x28a4, 0x3bed, 0x36d8, 0x340e, 0x3b6a, 0x3ab6, 0x3824, 0x382b, 0x3ac3, 0x3811, 0x36d7, 0x3519, 0x3a92, 0x3a42, 0x29d1, 0x383a, 0x3a9b, 0x300e, 0x2cd3, 0x39cd, 0x3874, 0x3a07, 0x2eb1, 0x3b86, 0x3ad8, 0x3a5d, -0x3712, 0x284a, 0x38c1, 0x3bec, 0x39c0, 0x32cd, 0x3ad8, 0x3bce, 0x3817, 0x3896, 0x3aa7, 0x3870, 0x3996, 0x32cc, 0x3a4c, 0x3757, 0x3814, 0x3b65, 0x3acb, 0x376e, 0x34c0, 0x3609, 0x3bf0, 0x3b24, 0x3b29, 0x3848, 0x34b7, 0x398a, 0x220c, 0x3498, 0x3a8c, 0x3883, -0x38c4, 0x3af6, 0x3a42, 0x2dd6, 0x3147, 0x3717, 0x3a8e, 0x3af9, 0x3296, 0x38ef, 0x34fa, 0x3555, 0x3b29, 0x38de, 0x315e, 0x3773, 0x3b67, 0x3116, 0x38ec, 0x357c, 0x35d0, 0x2518, 0x3958, 0x2a03, 0x37d9, 0x3699, 0x3a1e, 0x3230, 0x3b13, 0x36d4, 0x3b2a, 0x39ad, -0x3b10, 0x351a, 0x3b97, 0x3326, 0x2b54, 0x3b7d, 0x386f, 0x373e, 0x37fa, 0x389b, 0x3b90, 0x3292, 0x3975, 0x38f3, 0x37f1, 0x3590, 0x3810, 0x2fd7, 0x3bf7, 0x3a5a, 0x3a1c, 0x34dd, 0x354c, 0x32f8, 0x3095, 0x321e, 0x39e0, 0x395c, 0x3717, 0x357f, 0x394a, 0x34b1, -0x3ba4, 0x380c, 0x3604, 0x2f50, 0x348d, 0x3828, 0x3a9f, 0x39ce, 0x32ca, 0x3906, 0x3ab2, 0x2ca5, 0x38c9, 0x362a, 0x34b2, 0x29dc, 0x3a36, 0x3052, 0x31b7, 0x3589, 0x387c, 0x3401, 0x3b22, 0x3ad6, 0x3ae8, 0x3238, 0x3494, 0x3502, 0x3717, 0x3a6c, 0x3229, 0x368c, -0x3056, 0x3a56, 0x3498, 0x39eb, 0x2864, 0x342d, 0x39e0, 0x34a1, 0x2b99, 0x3a04, 0x38ff, 0x328c, 0x34d9, 0x387d, 0x3a3c, 0x32e5, 0x39eb, 0x3984, 0x34dd, 0x38a7, 0x373f, 0x39b4, 0x3235, 0x2f58, 0x2f39, 0x3800, 0x3758, 0x3939, 0x39fc, 0x3a4b, 0x38bf, 0x30ee, -0x345e, 0x39c8, 0x3a6d, 0x3262, 0x3b81, 0x31dc, 0x3a15, 0x3bd0, 0x36af, 0x36de, 0x37d5, 0x39d7, 0x3ad3, 0x3ac1, 0x3109, 0x35ea, 0x31c6, 0x398d, 0x3987, 0x3a4a, 0x34d2, 0x2ed2, 0x35e6, 0x352c, 0x39eb, 0x3bd6, 0x3a5b, 0x39d1, 0x34aa, 0x3ade, 0x394b, 0x38a1, -0x2bed, 0x38de, 0x3811, 0x3813, 0x391a, 0x374b, 0x3829, 0x3725, 0x38f0, 0x3583, 0x3966, 0x3a7d, 0x375a, 0x38fe, 0x3696, 0x361c, 0x39a8, 0x35f0, 0x38e1, 0x3003, 0x3595, 0x316e, 0x3862, 0x3af8, 0x3af2, 0x34c8, 0x381d, 0x37d8, 0x3893, 0x3a9c, 0x3989, 0x308c, -0x30cc, 0x2538, 0x399d, 0x3919, 0x399e, 0x21cc, 0x38e9, 0x30f8, 0x3a20, 0x3b3c, 0x3990, 0x259c, 0x3143, 0x3080, 0x3967, 0x3afb, 0x3a1b, 0x3779, 0x2eeb, 0x39f3, 0x379a, 0x369c, 0x3985, 0x3a1b, 0x3ba6, 0x3a53, 0x28d5, 0x3881, 0x31d9, 0x3a34, 0x3bd9, 0x393a, -0x3601, 0x2c6e, 0x3636, 0x3298, 0x39bb, 0x3a08, 0x38db, 0x35ad, 0x3a09, 0x36a6, 0x3bc7, 0x3bac, 0x34ae, 0x3291, 0x290b, 0x3250, 0x2648, 0x333d, 0x2bf3, 0x34b1, 0x30e0, 0x351f, 0x3a74, 0x38dc, 0x3883, 0x2841, 0x35e1, 0x390d, 0x3a50, 0x3abd, 0x386d, 0x3bb7, -0x3b94, 0x36b7, 0x3a49, 0x332f, 0x3a1d, 0x354b, 0x3bab, 0x3346, 0x3417, 0x351e, 0x3b6d, 0x391a, 0x2db3, 0x3b1c, 0x3a4a, 0x37b7, 0x36cf, 0x3a56, 0x39c4, 0x3be9, 0x34f0, 0x39be, 0x3691, 0x1ba5, 0x3888, 0x3040, 0x3ae1, 0x3b9b, 0x398f, 0x3a49, 0x3a16, 0x38c0, -0x386c, 0x39ab, 0x37fa, 0x382c, 0x3a6f, 0x393f, 0x340d, 0x38ef, 0x39d1, 0x3845, 0x398f, 0x363e, 0x3687, 0x3052, 0x3a2b, 0x392c, 0x2f5c, 0x3412, 0x3a1f, 0x3b2f, 0x3bcc, 0x3a63, 0x3a89, 0x36e9, 0x3921, 0x3b80, 0x2dc0, 0x3a03, 0x3beb, 0x38d3, 0x36cb, 0x39a3, -0x3978, 0x3a88, 0x3ba4, 0x3561, 0x28c5, 0x33a0, 0x37be, 0x2c39, 0x30ee, 0x3782, 0x2c07, 0x354e, 0x3491, 0x3a92, 0x331a, 0x3b15, 0x32e1, 0x3839, 0x3afb, 0x36c2, 0x2fd0, 0x29ad, 0x3b2e, 0x39c1, 0x2a8c, 0x341a, 0x2f90, 0x395a, 0x3969, 0x37ea, 0x3a5c, 0x3b6d, -0x3971, 0x3a93, 0x304e, 0x3623, 0x3a22, 0x31ee, 0x29df, 0x2c93, 0x3a01, 0x3a62, 0x366c, 0x371d, 0x3af3, 0x2e08, 0x3ac0, 0x3642, 0x3a28, 0x368d, 0x2d3d, 0x36d9, 0x32c3, 0x373f, 0x36fe, 0x3487, 0x2c81, 0x3623, 0x3b59, 0x3a91, 0x350a, 0x34f4, 0x3b09, 0x2c25, -0x3b13, 0x325a, 0x379e, 0x3a7d, 0x34b1, 0x39d5, 0x2ba8, 0x322b, 0x3b5e, 0x37ab, 0x2e24, 0x3ba9, 0x3a3d, 0x34f7, 0x3ba1, 0x3877, 0x3071, 0x39fb, 0x3bbd, 0x3633, 0x3b36, 0x2daa, 0x3b9b, 0x3aa0, 0x395c, 0x3b8f, 0x38d5, 0x3ab0, 0x3a8f, 0x36c2, 0x3b1f, 0x3489, -0x2acc, 0x3845, 0x3715, 0x37d8, 0x3992, 0x3bff, 0x350e, 0x3ad7, 0x39b0, 0x35ac, 0x3287, 0x385f, 0x3bd4, 0x37a3, 0x3438, 0x39a5, 0x3bcf, 0x38c3, 0x34f6, 0x3ae3, 0x3b57, 0x39af, 0x35eb, 0x3bed, 0x34d4, 0x2a95, 0x3b13, 0x384e, 0x3a3b, 0x33da, 0x3bce, 0x3b99, -0x3559, 0x3335, 0x3a2e, 0x3123, 0x38db, 0x33d0, 0x3638, 0x3b17, 0x3a72, 0x3afc, 0x3936, 0x3838, 0x2b69, 0x3895, 0x3a1a, 0x3192, 0x39d5, 0x37a5, 0x2eb0, 0x2e8b, 0x329a, 0x3b90, 0x390a, 0x3a1e, 0x3847, 0x375d, 0x3873, 0x35e2, 0x3771, 0x30f5, 0x3231, 0x3bd7, -0x2bbc, 0x3ace, 0x31ad, 0x3a6b, 0x28a4, 0x3b48, 0x3ba3, 0x3a84, 0x3353, 0x39f6, 0x381f, 0x2dd6, 0x314c, 0x34af, 0x3929, 0x3921, 0x383b, 0x34b0, 0x3923, 0x32c9, 0x3ae7, 0x318f, 0x3480, 0x2ad8, 0x3042, 0x3a4c, 0x349d, 0x2c12, 0x3abb, 0x3a57, 0x3b0d, 0x3111, -0x3359, 0x3a84, 0x38f2, 0x368d, 0x2f4b, 0x3ba0, 0x395c, 0x3026, 0x3a15, 0x2a04, 0x326e, 0x3522, 0x31a2, 0x382f, 0x2ada, 0x3b7c, 0x2f80, 0x3af5, 0x2d35, 0x38fa, 0x39ab, 0x2c6d, 0x2e7a, 0x39f6, 0x31a4, 0x3a53, 0x358c, 0x3951, 0x3a4e, 0x3916, 0x2a3f, 0x3ae9, -0x3b03, 0x39f8, 0x39fe, 0x3a61, 0x39fb, 0x3704, 0x360d, 0x39a7, 0x37a9, 0x348f, 0x3a30, 0x3af5, 0x366f, 0x3b29, 0x3a6a, 0x33d5, 0x370a, 0x39cd, 0x3444, 0x3bea, 0x3b2b, 0x312e, 0x3b8e, 0x32cf, 0x3b79, 0x3302, 0x3bba, 0x3962, 0x3413, 0x37a1, 0x39e0, 0x3805 -}; \ No newline at end of file diff --git a/astral/redmule/inc/y_input.h b/astral/redmule/inc/y_input.h deleted file mode 100644 index 45a2375..0000000 --- a/astral/redmule/inc/y_input.h +++ /dev/null @@ -1,27 +0,0 @@ - /* Header file generated by RedMulE Golden Model */ -uint16_t y_inp [768] = { -0x3150, 0x2dc1, 0x3033, 0x31f5, 0x3bb6, 0x3bff, 0x39f9, 0x3662, 0x3720, 0x351d, 0x384b, 0x3093, 0x3b9d, 0x35ad, 0x3695, 0x3466, 0x2300, 0x3445, 0x33ae, 0x3586, 0x38a3, 0x3bdb, 0x33a2, 0x379b, 0x3a0e, 0x38b0, 0x39ba, 0x379b, 0x39d3, 0x3a51, 0x3b30, 0x3794, -0x3b76, 0x3042, 0x38cc, 0x2dfc, 0x3b1a, 0x37fb, 0x38f7, 0x3824, 0x386f, 0x38c7, 0x36ee, 0x3a9c, 0x38d3, 0x2c67, 0x3a80, 0x2f30, 0x3328, 0x3721, 0x3790, 0x34e5, 0x3a6c, 0x3643, 0x3934, 0x3034, 0x38d4, 0x362e, 0x3b4b, 0x3408, 0x30c2, 0x370e, 0x3b31, 0x3b16, -0x3b6b, 0x39d4, 0x339c, 0x381e, 0x313e, 0x3671, 0x3ae2, 0x3479, 0x3940, 0x342d, 0x3925, 0x370a, 0x35d8, 0x2dad, 0x3888, 0x24b9, 0x375d, 0x34bd, 0x3243, 0x2ebb, 0x3970, 0x3a21, 0x3a07, 0x3877, 0x3888, 0x3569, 0x372d, 0x2ac1, 0x331e, 0x384d, 0x3996, 0x34a4, -0x35c1, 0x33a9, 0x21ed, 0x3a42, 0x388d, 0x34e4, 0x33c3, 0x34f9, 0x3a7b, 0x33fb, 0x2cdd, 0x3b0e, 0x333b, 0x3973, 0x34fc, 0x3771, 0x32ea, 0x2de4, 0x31a8, 0x3946, 0x3657, 0x3a4e, 0x36f6, 0x2829, 0x3ba2, 0x3bdc, 0x3bb3, 0x306c, 0x398d, 0x3a1f, 0x3991, 0x3846, -0x3547, 0x3292, 0x2e85, 0x31ed, 0x3979, 0x3a90, 0x28a4, 0x3bed, 0x36d8, 0x340e, 0x3b6a, 0x3ab6, 0x3824, 0x382b, 0x3ac3, 0x3811, 0x36d7, 0x3519, 0x3a92, 0x3a42, 0x29d1, 0x383a, 0x3a9b, 0x300e, 0x2cd3, 0x39cd, 0x3874, 0x3a07, 0x2eb1, 0x3b86, 0x3ad8, 0x3a5d, -0x3712, 0x284a, 0x38c1, 0x3bec, 0x39c0, 0x32cd, 0x3ad8, 0x3bce, 0x3817, 0x3896, 0x3aa7, 0x3870, 0x3996, 0x32cc, 0x3a4c, 0x3757, 0x3814, 0x3b65, 0x3acb, 0x376e, 0x34c0, 0x3609, 0x3bf0, 0x3b24, 0x3b29, 0x3848, 0x34b7, 0x398a, 0x220c, 0x3498, 0x3a8c, 0x3883, -0x38c4, 0x3af6, 0x3a42, 0x2dd6, 0x3147, 0x3717, 0x3a8e, 0x3af9, 0x3296, 0x38ef, 0x34fa, 0x3555, 0x3b29, 0x38de, 0x315e, 0x3773, 0x3b67, 0x3116, 0x38ec, 0x357c, 0x35d0, 0x2518, 0x3958, 0x2a03, 0x37d9, 0x3699, 0x3a1e, 0x3230, 0x3b13, 0x36d4, 0x3b2a, 0x39ad, -0x3b10, 0x351a, 0x3b97, 0x3326, 0x2b54, 0x3b7d, 0x386f, 0x373e, 0x37fa, 0x389b, 0x3b90, 0x3292, 0x3975, 0x38f3, 0x37f1, 0x3590, 0x3810, 0x2fd7, 0x3bf7, 0x3a5a, 0x3a1c, 0x34dd, 0x354c, 0x32f8, 0x3095, 0x321e, 0x39e0, 0x395c, 0x3717, 0x357f, 0x394a, 0x34b1, -0x3ba4, 0x380c, 0x3604, 0x2f50, 0x348d, 0x3828, 0x3a9f, 0x39ce, 0x32ca, 0x3906, 0x3ab2, 0x2ca5, 0x38c9, 0x362a, 0x34b2, 0x29dc, 0x3a36, 0x3052, 0x31b7, 0x3589, 0x387c, 0x3401, 0x3b22, 0x3ad6, 0x3ae8, 0x3238, 0x3494, 0x3502, 0x3717, 0x3a6c, 0x3229, 0x368c, -0x3056, 0x3a56, 0x3498, 0x39eb, 0x2864, 0x342d, 0x39e0, 0x34a1, 0x2b99, 0x3a04, 0x38ff, 0x328c, 0x34d9, 0x387d, 0x3a3c, 0x32e5, 0x39eb, 0x3984, 0x34dd, 0x38a7, 0x373f, 0x39b4, 0x3235, 0x2f58, 0x2f39, 0x3800, 0x3758, 0x3939, 0x39fc, 0x3a4b, 0x38bf, 0x30ee, -0x345e, 0x39c8, 0x3a6d, 0x3262, 0x3b81, 0x31dc, 0x3a15, 0x3bd0, 0x36af, 0x36de, 0x37d5, 0x39d7, 0x3ad3, 0x3ac1, 0x3109, 0x35ea, 0x31c6, 0x398d, 0x3987, 0x3a4a, 0x34d2, 0x2ed2, 0x35e6, 0x352c, 0x39eb, 0x3bd6, 0x3a5b, 0x39d1, 0x34aa, 0x3ade, 0x394b, 0x38a1, -0x2bed, 0x38de, 0x3811, 0x3813, 0x391a, 0x374b, 0x3829, 0x3725, 0x38f0, 0x3583, 0x3966, 0x3a7d, 0x375a, 0x38fe, 0x3696, 0x361c, 0x39a8, 0x35f0, 0x38e1, 0x3003, 0x3595, 0x316e, 0x3862, 0x3af8, 0x3af2, 0x34c8, 0x381d, 0x37d8, 0x3893, 0x3a9c, 0x3989, 0x308c, -0x30cc, 0x2538, 0x399d, 0x3919, 0x399e, 0x21cc, 0x38e9, 0x30f8, 0x3a20, 0x3b3c, 0x3990, 0x259c, 0x3143, 0x3080, 0x3967, 0x3afb, 0x3a1b, 0x3779, 0x2eeb, 0x39f3, 0x379a, 0x369c, 0x3985, 0x3a1b, 0x3ba6, 0x3a53, 0x28d5, 0x3881, 0x31d9, 0x3a34, 0x3bd9, 0x393a, -0x3601, 0x2c6e, 0x3636, 0x3298, 0x39bb, 0x3a08, 0x38db, 0x35ad, 0x3a09, 0x36a6, 0x3bc7, 0x3bac, 0x34ae, 0x3291, 0x290b, 0x3250, 0x2648, 0x333d, 0x2bf3, 0x34b1, 0x30e0, 0x351f, 0x3a74, 0x38dc, 0x3883, 0x2841, 0x35e1, 0x390d, 0x3a50, 0x3abd, 0x386d, 0x3bb7, -0x3b94, 0x36b7, 0x3a49, 0x332f, 0x3a1d, 0x354b, 0x3bab, 0x3346, 0x3417, 0x351e, 0x3b6d, 0x391a, 0x2db3, 0x3b1c, 0x3a4a, 0x37b7, 0x36cf, 0x3a56, 0x39c4, 0x3be9, 0x34f0, 0x39be, 0x3691, 0x1ba5, 0x3888, 0x3040, 0x3ae1, 0x3b9b, 0x398f, 0x3a49, 0x3a16, 0x38c0, -0x386c, 0x39ab, 0x37fa, 0x382c, 0x3a6f, 0x393f, 0x340d, 0x38ef, 0x39d1, 0x3845, 0x398f, 0x363e, 0x3687, 0x3052, 0x3a2b, 0x392c, 0x2f5c, 0x3412, 0x3a1f, 0x3b2f, 0x3bcc, 0x3a63, 0x3a89, 0x36e9, 0x3921, 0x3b80, 0x2dc0, 0x3a03, 0x3beb, 0x38d3, 0x36cb, 0x39a3, -0x3978, 0x3a88, 0x3ba4, 0x3561, 0x28c5, 0x33a0, 0x37be, 0x2c39, 0x30ee, 0x3782, 0x2c07, 0x354e, 0x3491, 0x3a92, 0x331a, 0x3b15, 0x32e1, 0x3839, 0x3afb, 0x36c2, 0x2fd0, 0x29ad, 0x3b2e, 0x39c1, 0x2a8c, 0x341a, 0x2f90, 0x395a, 0x3969, 0x37ea, 0x3a5c, 0x3b6d, -0x3971, 0x3a93, 0x304e, 0x3623, 0x3a22, 0x31ee, 0x29df, 0x2c93, 0x3a01, 0x3a62, 0x366c, 0x371d, 0x3af3, 0x2e08, 0x3ac0, 0x3642, 0x3a28, 0x368d, 0x2d3d, 0x36d9, 0x32c3, 0x373f, 0x36fe, 0x3487, 0x2c81, 0x3623, 0x3b59, 0x3a91, 0x350a, 0x34f4, 0x3b09, 0x2c25, -0x3b13, 0x325a, 0x379e, 0x3a7d, 0x34b1, 0x39d5, 0x2ba8, 0x322b, 0x3b5e, 0x37ab, 0x2e24, 0x3ba9, 0x3a3d, 0x34f7, 0x3ba1, 0x3877, 0x3071, 0x39fb, 0x3bbd, 0x3633, 0x3b36, 0x2daa, 0x3b9b, 0x3aa0, 0x395c, 0x3b8f, 0x38d5, 0x3ab0, 0x3a8f, 0x36c2, 0x3b1f, 0x3489, -0x2acc, 0x3845, 0x3715, 0x37d8, 0x3992, 0x3bff, 0x350e, 0x3ad7, 0x39b0, 0x35ac, 0x3287, 0x385f, 0x3bd4, 0x37a3, 0x3438, 0x39a5, 0x3bcf, 0x38c3, 0x34f6, 0x3ae3, 0x3b57, 0x39af, 0x35eb, 0x3bed, 0x34d4, 0x2a95, 0x3b13, 0x384e, 0x3a3b, 0x33da, 0x3bce, 0x3b99, -0x3559, 0x3335, 0x3a2e, 0x3123, 0x38db, 0x33d0, 0x3638, 0x3b17, 0x3a72, 0x3afc, 0x3936, 0x3838, 0x2b69, 0x3895, 0x3a1a, 0x3192, 0x39d5, 0x37a5, 0x2eb0, 0x2e8b, 0x329a, 0x3b90, 0x390a, 0x3a1e, 0x3847, 0x375d, 0x3873, 0x35e2, 0x3771, 0x30f5, 0x3231, 0x3bd7, -0x2bbc, 0x3ace, 0x31ad, 0x3a6b, 0x28a4, 0x3b48, 0x3ba3, 0x3a84, 0x3353, 0x39f6, 0x381f, 0x2dd6, 0x314c, 0x34af, 0x3929, 0x3921, 0x383b, 0x34b0, 0x3923, 0x32c9, 0x3ae7, 0x318f, 0x3480, 0x2ad8, 0x3042, 0x3a4c, 0x349d, 0x2c12, 0x3abb, 0x3a57, 0x3b0d, 0x3111, -0x3359, 0x3a84, 0x38f2, 0x368d, 0x2f4b, 0x3ba0, 0x395c, 0x3026, 0x3a15, 0x2a04, 0x326e, 0x3522, 0x31a2, 0x382f, 0x2ada, 0x3b7c, 0x2f80, 0x3af5, 0x2d35, 0x38fa, 0x39ab, 0x2c6d, 0x2e7a, 0x39f6, 0x31a4, 0x3a53, 0x358c, 0x3951, 0x3a4e, 0x3916, 0x2a3f, 0x3ae9, -0x3b03, 0x39f8, 0x39fe, 0x3a61, 0x39fb, 0x3704, 0x360d, 0x39a7, 0x37a9, 0x348f, 0x3a30, 0x3af5, 0x366f, 0x3b29, 0x3a6a, 0x33d5, 0x370a, 0x39cd, 0x3444, 0x3bea, 0x3b2b, 0x312e, 0x3b8e, 0x32cf, 0x3b79, 0x3302, 0x3bba, 0x3962, 0x3413, 0x37a1, 0x39e0, 0x3805 -}; \ No newline at end of file diff --git a/astral/redmule/inc/z_2D.h b/astral/redmule/inc/z_2D.h deleted file mode 100644 index aff808a..0000000 --- a/astral/redmule/inc/z_2D.h +++ /dev/null @@ -1,27 +0,0 @@ - /* Header file generated by RedMulE Golden Model */ -uint16_t z_oup_2D [24][32] = { -0x4845, 0x4897, 0x4608, 0x4838, 0x4855, 0x487b, 0x4869, 0x4880, 0x46d1, 0x48b0, 0x48db, 0x483f, 0x48c9, 0x485f, 0x4881, 0x483a, 0x484b, 0x472c, 0x4762, 0x492b, 0x4822, 0x48fd, 0x488e, 0x492e, 0x483e, 0x484f, 0x49e8, 0x46d7, 0x484b, 0x489d, 0x490b, 0x47e9, -0x484f, 0x47d2, 0x44be, 0x4747, 0x47c7, 0x46c0, 0x4727, 0x48af, 0x46c5, 0x482d, 0x483d, 0x482e, 0x4897, 0x479f, 0x488b, 0x4749, 0x489a, 0x46a8, 0x46f2, 0x488b, 0x4891, 0x47e8, 0x4872, 0x483d, 0x4716, 0x46fd, 0x49b5, 0x46a0, 0x46e7, 0x47a4, 0x48a1, 0x4767, -0x4939, 0x4935, 0x4703, 0x48c1, 0x4863, 0x48bd, 0x4913, 0x48cf, 0x48b6, 0x48b8, 0x4946, 0x4920, 0x495e, 0x48e1, 0x4938, 0x48b2, 0x493a, 0x4882, 0x483b, 0x49d5, 0x4911, 0x4972, 0x496b, 0x49df, 0x48f2, 0x4888, 0x4a46, 0x4821, 0x48c1, 0x490c, 0x49b2, 0x48a3, -0x463a, 0x47b0, 0x44cb, 0x4762, 0x4765, 0x46b9, 0x466a, 0x4814, 0x4631, 0x4796, 0x4666, 0x474b, 0x4798, 0x4704, 0x4838, 0x4761, 0x47d3, 0x4590, 0x45ea, 0x48a2, 0x47f1, 0x4844, 0x484b, 0x4776, 0x47d6, 0x46d8, 0x48f3, 0x44d3, 0x46fa, 0x478d, 0x481e, 0x466e, -0x4827, 0x481e, 0x45a2, 0x4794, 0x4727, 0x4806, 0x475d, 0x48d5, 0x4708, 0x4828, 0x4862, 0x480d, 0x4895, 0x4832, 0x48bd, 0x47f1, 0x482a, 0x46a7, 0x47b1, 0x492d, 0x484d, 0x4884, 0x48dc, 0x485f, 0x476d, 0x480c, 0x48e9, 0x46d3, 0x4728, 0x4884, 0x48a0, 0x480e, -0x4862, 0x4813, 0x4675, 0x485a, 0x47e8, 0x4738, 0x4836, 0x4823, 0x46e7, 0x4821, 0x4822, 0x47b3, 0x4846, 0x4855, 0x4863, 0x4717, 0x4872, 0x47c1, 0x46d5, 0x488e, 0x47e2, 0x485f, 0x487c, 0x48b8, 0x481e, 0x4788, 0x48bd, 0x4677, 0x46c9, 0x47f8, 0x48fe, 0x47fc, -0x47a0, 0x47b2, 0x4588, 0x467e, 0x4662, 0x46c7, 0x46e8, 0x4812, 0x4536, 0x474e, 0x46c0, 0x468f, 0x481f, 0x4679, 0x46a1, 0x46e2, 0x4809, 0x4560, 0x4630, 0x47eb, 0x46b5, 0x4757, 0x4848, 0x477f, 0x46a6, 0x46d8, 0x4870, 0x459a, 0x4670, 0x4678, 0x47d2, 0x468c, -0x4762, 0x48c4, 0x46e3, 0x4791, 0x46b1, 0x486d, 0x47d0, 0x4867, 0x468d, 0x47f6, 0x48a5, 0x4756, 0x4857, 0x4854, 0x4866, 0x4838, 0x484d, 0x46ec, 0x47d2, 0x48f6, 0x484a, 0x4879, 0x4848, 0x483c, 0x471d, 0x4806, 0x48fa, 0x4730, 0x4768, 0x47b8, 0x4865, 0x46f9, -0x48a8, 0x4918, 0x46ca, 0x4867, 0x4800, 0x4862, 0x48d3, 0x4910, 0x474e, 0x4849, 0x48eb, 0x486b, 0x4966, 0x48c5, 0x48f4, 0x4830, 0x48f9, 0x4778, 0x481e, 0x499e, 0x48cf, 0x48f1, 0x4982, 0x4923, 0x487c, 0x47cf, 0x49ea, 0x4649, 0x4773, 0x495e, 0x48b2, 0x483f, -0x48a7, 0x4975, 0x4616, 0x481e, 0x481f, 0x4866, 0x48b6, 0x4864, 0x47dc, 0x4873, 0x485c, 0x487f, 0x4938, 0x491f, 0x490d, 0x48b6, 0x48f8, 0x48a1, 0x4859, 0x492d, 0x489c, 0x4915, 0x4899, 0x4887, 0x486c, 0x4859, 0x49ca, 0x471e, 0x4867, 0x4918, 0x48d3, 0x4827, -0x488b, 0x4998, 0x4704, 0x481d, 0x48b8, 0x4880, 0x4876, 0x4944, 0x470c, 0x48f2, 0x48b9, 0x489b, 0x4956, 0x48e5, 0x48d6, 0x48a5, 0x48dc, 0x4856, 0x484e, 0x49ab, 0x48e0, 0x490e, 0x48dd, 0x4945, 0x488b, 0x48dd, 0x4a32, 0x47ea, 0x4835, 0x4911, 0x4965, 0x4819, -0x460e, 0x481e, 0x452c, 0x4673, 0x475c, 0x4717, 0x46f6, 0x46d0, 0x4696, 0x46bc, 0x4726, 0x481e, 0x4763, 0x46ea, 0x46fe, 0x4758, 0x478b, 0x4627, 0x4704, 0x483f, 0x46ad, 0x47b1, 0x4792, 0x4816, 0x46f2, 0x4684, 0x4827, 0x45a8, 0x472f, 0x47a4, 0x4797, 0x462b, -0x483f, 0x48ab, 0x468f, 0x4863, 0x485a, 0x4766, 0x481d, 0x48cb, 0x47dc, 0x4903, 0x48fc, 0x4830, 0x48cc, 0x483e, 0x48ab, 0x4864, 0x4966, 0x4763, 0x4794, 0x499d, 0x488e, 0x488b, 0x48dc, 0x4960, 0x4854, 0x484c, 0x499c, 0x474c, 0x4826, 0x48bc, 0x4949, 0x4883, -0x489d, 0x4905, 0x4718, 0x481e, 0x48e3, 0x48f4, 0x48c1, 0x4904, 0x47e8, 0x48b3, 0x4892, 0x48d4, 0x48ff, 0x4894, 0x48d5, 0x4886, 0x48fa, 0x4803, 0x47d2, 0x492e, 0x4870, 0x48b2, 0x48e5, 0x492b, 0x487b, 0x4785, 0x49e3, 0x471d, 0x4837, 0x48bf, 0x489b, 0x48c4, -0x475c, 0x4871, 0x464a, 0x4811, 0x47af, 0x471c, 0x4817, 0x4817, 0x463b, 0x484e, 0x477f, 0x464f, 0x4704, 0x487c, 0x47a3, 0x4725, 0x4853, 0x462a, 0x465a, 0x4860, 0x4736, 0x4880, 0x47e1, 0x482b, 0x4811, 0x46c0, 0x48dc, 0x475d, 0x4668, 0x4806, 0x4893, 0x46f4, -0x4858, 0x4959, 0x463d, 0x487b, 0x480f, 0x484e, 0x48c0, 0x48a6, 0x4847, 0x4894, 0x48a0, 0x484a, 0x491e, 0x48f4, 0x48fc, 0x48b5, 0x48ce, 0x47d2, 0x47db, 0x497f, 0x4955, 0x4939, 0x48a7, 0x48ce, 0x4890, 0x4884, 0x49d6, 0x4763, 0x486e, 0x4922, 0x48f4, 0x48c3, -0x47ec, 0x491c, 0x4698, 0x4783, 0x4715, 0x4754, 0x4745, 0x4752, 0x472f, 0x4832, 0x4817, 0x4809, 0x47f8, 0x48c3, 0x47e6, 0x4800, 0x48b6, 0x4730, 0x480a, 0x48cb, 0x479e, 0x488e, 0x47c2, 0x488e, 0x472f, 0x47ee, 0x489d, 0x4744, 0x4755, 0x4851, 0x4846, 0x47d3, -0x4838, 0x48a0, 0x4634, 0x4762, 0x4786, 0x4806, 0x47e3, 0x482d, 0x4726, 0x486c, 0x47b7, 0x4803, 0x48ac, 0x4814, 0x48e0, 0x4839, 0x4827, 0x4750, 0x46f2, 0x48c5, 0x483f, 0x4886, 0x48ad, 0x4856, 0x47e8, 0x47a9, 0x4937, 0x4743, 0x46d0, 0x481f, 0x484c, 0x4804, -0x47fd, 0x481f, 0x456d, 0x4813, 0x474d, 0x4807, 0x4688, 0x480e, 0x46e8, 0x4810, 0x469f, 0x4799, 0x4853, 0x478f, 0x47f2, 0x4824, 0x47d0, 0x471f, 0x46da, 0x485f, 0x4813, 0x481c, 0x482e, 0x4863, 0x4786, 0x480b, 0x48c9, 0x46b8, 0x475a, 0x46e2, 0x4852, 0x46c5, -0x45af, 0x4802, 0x4466, 0x46c2, 0x465d, 0x4743, 0x46b7, 0x47ba, 0x4636, 0x46c3, 0x4677, 0x4784, 0x485a, 0x47c2, 0x46dc, 0x46ac, 0x47de, 0x460e, 0x465f, 0x4834, 0x47f4, 0x4769, 0x46fc, 0x4810, 0x45fd, 0x45ea, 0x48d0, 0x45b5, 0x4704, 0x4783, 0x4830, 0x46c4, -0x4759, 0x47c7, 0x453d, 0x45b0, 0x4741, 0x4702, 0x4736, 0x4793, 0x461b, 0x47ba, 0x470b, 0x46dd, 0x4657, 0x470b, 0x470d, 0x4710, 0x486c, 0x468f, 0x45c3, 0x46ba, 0x479d, 0x483b, 0x46c9, 0x4774, 0x46a9, 0x46a7, 0x4833, 0x4606, 0x4690, 0x46a9, 0x46f5, 0x46a7, -0x47ac, 0x48bb, 0x452c, 0x4803, 0x470f, 0x4824, 0x47d5, 0x48cb, 0x4707, 0x484a, 0x4832, 0x4797, 0x4851, 0x482c, 0x487a, 0x4877, 0x4891, 0x465d, 0x47f4, 0x48ce, 0x4898, 0x4899, 0x484e, 0x486a, 0x47ac, 0x47f0, 0x493e, 0x4611, 0x47e2, 0x489e, 0x488c, 0x46af, -0x4665, 0x4836, 0x45e4, 0x46b6, 0x46a1, 0x46b9, 0x46c8, 0x46dd, 0x4658, 0x474b, 0x467b, 0x4777, 0x4769, 0x4798, 0x4785, 0x475e, 0x472a, 0x4656, 0x45fb, 0x4881, 0x46fc, 0x472d, 0x476e, 0x47a3, 0x465d, 0x46ca, 0x4855, 0x4500, 0x464f, 0x479a, 0x46c3, 0x4738, -0x481e, 0x486c, 0x4659, 0x4801, 0x4756, 0x477a, 0x47d5, 0x487b, 0x4706, 0x4808, 0x484f, 0x4838, 0x4870, 0x4863, 0x48d3, 0x4806, 0x4865, 0x4771, 0x46be, 0x494c, 0x4915, 0x484c, 0x4900, 0x4862, 0x481a, 0x46e8, 0x4974, 0x46a0, 0x4775, 0x483d, 0x487c, 0x480e -}; \ No newline at end of file diff --git a/astral/redmule/inc/z_output.h b/astral/redmule/inc/z_output.h deleted file mode 100644 index 96c7e5f..0000000 --- a/astral/redmule/inc/z_output.h +++ /dev/null @@ -1,27 +0,0 @@ - /* Header file generated by RedMulE Golden Model */ -uint16_t z_oup [768] = { -0x4845, 0x4897, 0x4608, 0x4838, 0x4855, 0x487b, 0x4869, 0x4880, 0x46d1, 0x48b0, 0x48db, 0x483f, 0x48c9, 0x485f, 0x4881, 0x483a, 0x484b, 0x472c, 0x4762, 0x492b, 0x4822, 0x48fd, 0x488e, 0x492e, 0x483e, 0x484f, 0x49e8, 0x46d7, 0x484b, 0x489d, 0x490b, 0x47e9, -0x484f, 0x47d2, 0x44be, 0x4747, 0x47c7, 0x46c0, 0x4727, 0x48af, 0x46c5, 0x482d, 0x483d, 0x482e, 0x4897, 0x479f, 0x488b, 0x4749, 0x489a, 0x46a8, 0x46f2, 0x488b, 0x4891, 0x47e8, 0x4872, 0x483d, 0x4716, 0x46fd, 0x49b5, 0x46a0, 0x46e7, 0x47a4, 0x48a1, 0x4767, -0x4939, 0x4935, 0x4703, 0x48c1, 0x4863, 0x48bd, 0x4913, 0x48cf, 0x48b6, 0x48b8, 0x4946, 0x4920, 0x495e, 0x48e1, 0x4938, 0x48b2, 0x493a, 0x4882, 0x483b, 0x49d5, 0x4911, 0x4972, 0x496b, 0x49df, 0x48f2, 0x4888, 0x4a46, 0x4821, 0x48c1, 0x490c, 0x49b2, 0x48a3, -0x463a, 0x47b0, 0x44cb, 0x4762, 0x4765, 0x46b9, 0x466a, 0x4814, 0x4631, 0x4796, 0x4666, 0x474b, 0x4798, 0x4704, 0x4838, 0x4761, 0x47d3, 0x4590, 0x45ea, 0x48a2, 0x47f1, 0x4844, 0x484b, 0x4776, 0x47d6, 0x46d8, 0x48f3, 0x44d3, 0x46fa, 0x478d, 0x481e, 0x466e, -0x4827, 0x481e, 0x45a2, 0x4794, 0x4727, 0x4806, 0x475d, 0x48d5, 0x4708, 0x4828, 0x4862, 0x480d, 0x4895, 0x4832, 0x48bd, 0x47f1, 0x482a, 0x46a7, 0x47b1, 0x492d, 0x484d, 0x4884, 0x48dc, 0x485f, 0x476d, 0x480c, 0x48e9, 0x46d3, 0x4728, 0x4884, 0x48a0, 0x480e, -0x4862, 0x4813, 0x4675, 0x485a, 0x47e8, 0x4738, 0x4836, 0x4823, 0x46e7, 0x4821, 0x4822, 0x47b3, 0x4846, 0x4855, 0x4863, 0x4717, 0x4872, 0x47c1, 0x46d5, 0x488e, 0x47e2, 0x485f, 0x487c, 0x48b8, 0x481e, 0x4788, 0x48bd, 0x4677, 0x46c9, 0x47f8, 0x48fe, 0x47fc, -0x47a0, 0x47b2, 0x4588, 0x467e, 0x4662, 0x46c7, 0x46e8, 0x4812, 0x4536, 0x474e, 0x46c0, 0x468f, 0x481f, 0x4679, 0x46a1, 0x46e2, 0x4809, 0x4560, 0x4630, 0x47eb, 0x46b5, 0x4757, 0x4848, 0x477f, 0x46a6, 0x46d8, 0x4870, 0x459a, 0x4670, 0x4678, 0x47d2, 0x468c, -0x4762, 0x48c4, 0x46e3, 0x4791, 0x46b1, 0x486d, 0x47d0, 0x4867, 0x468d, 0x47f6, 0x48a5, 0x4756, 0x4857, 0x4854, 0x4866, 0x4838, 0x484d, 0x46ec, 0x47d2, 0x48f6, 0x484a, 0x4879, 0x4848, 0x483c, 0x471d, 0x4806, 0x48fa, 0x4730, 0x4768, 0x47b8, 0x4865, 0x46f9, -0x48a8, 0x4918, 0x46ca, 0x4867, 0x4800, 0x4862, 0x48d3, 0x4910, 0x474e, 0x4849, 0x48eb, 0x486b, 0x4966, 0x48c5, 0x48f4, 0x4830, 0x48f9, 0x4778, 0x481e, 0x499e, 0x48cf, 0x48f1, 0x4982, 0x4923, 0x487c, 0x47cf, 0x49ea, 0x4649, 0x4773, 0x495e, 0x48b2, 0x483f, -0x48a7, 0x4975, 0x4616, 0x481e, 0x481f, 0x4866, 0x48b6, 0x4864, 0x47dc, 0x4873, 0x485c, 0x487f, 0x4938, 0x491f, 0x490d, 0x48b6, 0x48f8, 0x48a1, 0x4859, 0x492d, 0x489c, 0x4915, 0x4899, 0x4887, 0x486c, 0x4859, 0x49ca, 0x471e, 0x4867, 0x4918, 0x48d3, 0x4827, -0x488b, 0x4998, 0x4704, 0x481d, 0x48b8, 0x4880, 0x4876, 0x4944, 0x470c, 0x48f2, 0x48b9, 0x489b, 0x4956, 0x48e5, 0x48d6, 0x48a5, 0x48dc, 0x4856, 0x484e, 0x49ab, 0x48e0, 0x490e, 0x48dd, 0x4945, 0x488b, 0x48dd, 0x4a32, 0x47ea, 0x4835, 0x4911, 0x4965, 0x4819, -0x460e, 0x481e, 0x452c, 0x4673, 0x475c, 0x4717, 0x46f6, 0x46d0, 0x4696, 0x46bc, 0x4726, 0x481e, 0x4763, 0x46ea, 0x46fe, 0x4758, 0x478b, 0x4627, 0x4704, 0x483f, 0x46ad, 0x47b1, 0x4792, 0x4816, 0x46f2, 0x4684, 0x4827, 0x45a8, 0x472f, 0x47a4, 0x4797, 0x462b, -0x483f, 0x48ab, 0x468f, 0x4863, 0x485a, 0x4766, 0x481d, 0x48cb, 0x47dc, 0x4903, 0x48fc, 0x4830, 0x48cc, 0x483e, 0x48ab, 0x4864, 0x4966, 0x4763, 0x4794, 0x499d, 0x488e, 0x488b, 0x48dc, 0x4960, 0x4854, 0x484c, 0x499c, 0x474c, 0x4826, 0x48bc, 0x4949, 0x4883, -0x489d, 0x4905, 0x4718, 0x481e, 0x48e3, 0x48f4, 0x48c1, 0x4904, 0x47e8, 0x48b3, 0x4892, 0x48d4, 0x48ff, 0x4894, 0x48d5, 0x4886, 0x48fa, 0x4803, 0x47d2, 0x492e, 0x4870, 0x48b2, 0x48e5, 0x492b, 0x487b, 0x4785, 0x49e3, 0x471d, 0x4837, 0x48bf, 0x489b, 0x48c4, -0x475c, 0x4871, 0x464a, 0x4811, 0x47af, 0x471c, 0x4817, 0x4817, 0x463b, 0x484e, 0x477f, 0x464f, 0x4704, 0x487c, 0x47a3, 0x4725, 0x4853, 0x462a, 0x465a, 0x4860, 0x4736, 0x4880, 0x47e1, 0x482b, 0x4811, 0x46c0, 0x48dc, 0x475d, 0x4668, 0x4806, 0x4893, 0x46f4, -0x4858, 0x4959, 0x463d, 0x487b, 0x480f, 0x484e, 0x48c0, 0x48a6, 0x4847, 0x4894, 0x48a0, 0x484a, 0x491e, 0x48f4, 0x48fc, 0x48b5, 0x48ce, 0x47d2, 0x47db, 0x497f, 0x4955, 0x4939, 0x48a7, 0x48ce, 0x4890, 0x4884, 0x49d6, 0x4763, 0x486e, 0x4922, 0x48f4, 0x48c3, -0x47ec, 0x491c, 0x4698, 0x4783, 0x4715, 0x4754, 0x4745, 0x4752, 0x472f, 0x4832, 0x4817, 0x4809, 0x47f8, 0x48c3, 0x47e6, 0x4800, 0x48b6, 0x4730, 0x480a, 0x48cb, 0x479e, 0x488e, 0x47c2, 0x488e, 0x472f, 0x47ee, 0x489d, 0x4744, 0x4755, 0x4851, 0x4846, 0x47d3, -0x4838, 0x48a0, 0x4634, 0x4762, 0x4786, 0x4806, 0x47e3, 0x482d, 0x4726, 0x486c, 0x47b7, 0x4803, 0x48ac, 0x4814, 0x48e0, 0x4839, 0x4827, 0x4750, 0x46f2, 0x48c5, 0x483f, 0x4886, 0x48ad, 0x4856, 0x47e8, 0x47a9, 0x4937, 0x4743, 0x46d0, 0x481f, 0x484c, 0x4804, -0x47fd, 0x481f, 0x456d, 0x4813, 0x474d, 0x4807, 0x4688, 0x480e, 0x46e8, 0x4810, 0x469f, 0x4799, 0x4853, 0x478f, 0x47f2, 0x4824, 0x47d0, 0x471f, 0x46da, 0x485f, 0x4813, 0x481c, 0x482e, 0x4863, 0x4786, 0x480b, 0x48c9, 0x46b8, 0x475a, 0x46e2, 0x4852, 0x46c5, -0x45af, 0x4802, 0x4466, 0x46c2, 0x465d, 0x4743, 0x46b7, 0x47ba, 0x4636, 0x46c3, 0x4677, 0x4784, 0x485a, 0x47c2, 0x46dc, 0x46ac, 0x47de, 0x460e, 0x465f, 0x4834, 0x47f4, 0x4769, 0x46fc, 0x4810, 0x45fd, 0x45ea, 0x48d0, 0x45b5, 0x4704, 0x4783, 0x4830, 0x46c4, -0x4759, 0x47c7, 0x453d, 0x45b0, 0x4741, 0x4702, 0x4736, 0x4793, 0x461b, 0x47ba, 0x470b, 0x46dd, 0x4657, 0x470b, 0x470d, 0x4710, 0x486c, 0x468f, 0x45c3, 0x46ba, 0x479d, 0x483b, 0x46c9, 0x4774, 0x46a9, 0x46a7, 0x4833, 0x4606, 0x4690, 0x46a9, 0x46f5, 0x46a7, -0x47ac, 0x48bb, 0x452c, 0x4803, 0x470f, 0x4824, 0x47d5, 0x48cb, 0x4707, 0x484a, 0x4832, 0x4797, 0x4851, 0x482c, 0x487a, 0x4877, 0x4891, 0x465d, 0x47f4, 0x48ce, 0x4898, 0x4899, 0x484e, 0x486a, 0x47ac, 0x47f0, 0x493e, 0x4611, 0x47e2, 0x489e, 0x488c, 0x46af, -0x4665, 0x4836, 0x45e4, 0x46b6, 0x46a1, 0x46b9, 0x46c8, 0x46dd, 0x4658, 0x474b, 0x467b, 0x4777, 0x4769, 0x4798, 0x4785, 0x475e, 0x472a, 0x4656, 0x45fb, 0x4881, 0x46fc, 0x472d, 0x476e, 0x47a3, 0x465d, 0x46ca, 0x4855, 0x4500, 0x464f, 0x479a, 0x46c3, 0x4738, -0x481e, 0x486c, 0x4659, 0x4801, 0x4756, 0x477a, 0x47d5, 0x487b, 0x4706, 0x4808, 0x484f, 0x4838, 0x4870, 0x4863, 0x48d3, 0x4806, 0x4865, 0x4771, 0x46be, 0x494c, 0x4915, 0x484c, 0x4900, 0x4862, 0x481a, 0x46e8, 0x4974, 0x46a0, 0x4775, 0x483d, 0x487c, 0x480e -}; \ No newline at end of file diff --git a/astral/redmule/redmule.c b/astral/redmule/redmule.c deleted file mode 100644 index 992e223..0000000 --- a/astral/redmule/redmule.c +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Copyright (C) 2022-2023 ETH Zurich and University of Bologna - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * SPDX-License-Identifier: Apache-2.0 - * - * Author: Yvan Tortorella - * - * RedMulE SW test - */ - -#include -#include "stdio.h" -#include "archi_redmule.h" -#include "hal_redmule.h" -#include "pulp.h" - -int main() { - - volatile int errors = 0; - - if(get_core_id() == 0){ - - uint16_t m_size = M_SIZE; - uint16_t n_size = N_SIZE; - uint16_t k_size = K_SIZE; - - uint8_t *x_ext = x_inp; - uint8_t *w_ext = w_inp; - uint8_t *y_ext = y_inp; - uint8_t *z_ext = z_oup; - - uint8_t volatile *x = (uint8_t volatile *) pi_l1_malloc(0, (2*m_size*n_size)); - uint8_t volatile *w = (uint8_t volatile *) pi_l1_malloc(0, (2*n_size*k_size)); - uint8_t volatile *y = (uint8_t volatile *) pi_l1_malloc(0, (2*m_size*k_size)); - - #ifdef USE_NO_DMA - generate_test_data16((int) x, (int) w, (int) y, (int) m_size, (int) n_size, (int) k_size); - #else - volatile unsigned int dma_id = 0; - dma_id = mchan_alloc(); - mchan_transfer((unsigned int) 2*(2*m_size*n_size), - (unsigned int) x_ext, - (unsigned int) x ); - mchan_barrier(dma_id); - mchan_free(dma_id); - - dma_id = mchan_alloc(); - mchan_transfer((unsigned int) 2*(2*n_size*k_size), - (unsigned int) w_ext, - (unsigned int) w ); - mchan_barrier(dma_id); - mchan_free(dma_id); - - dma_id = mchan_alloc(); - mchan_transfer((unsigned int) 2*(2*m_size*k_size), - (unsigned int) y_ext, - (unsigned int) y ); - mchan_barrier(dma_id); - #endif - - int gold_sum = 0, check_sum = 0; - int i,j; - - int offload_id_tmp, offload_id; - - // Enable RedMulE - hwpe_cg_enable(); - - hwpe_soft_clear(); - - // redmule_cfg ((unsigned int) x, - // (unsigned int) w, - // (unsigned int) y, - // m_size, n_size, k_size, - // (uint8_t) GEMM, - // (uint8_t) Float16); - redmule_x_add_set ((unsigned int) x); - redmule_w_add_set ((unsigned int) w); - redmule_y_add_set ((unsigned int) y); - redmule_z_add_set ((unsigned int) y); - redmule_cfg (m_size, n_size, k_size, gemm_ops); - - // Start RedMulE operation - hwpe_trigger_job(); - - // Wait for end of computation - redmule_evt_wait(); - - // Disable RedMulE - hwpe_cg_disable(); - - errors = redmule_compare16((int) y, (int) m_size, (int) k_size); - - *(int *) 0x1A1040A0 = errors; - - printf ("Terminated test with %d errors. See you!\n", errors); - - } - synch_barrier(); - return errors; -} From 484768eb4027d52132a83196247bbc05e2151598 Mon Sep 17 00:00:00 2001 From: Riccardo Tedeschi Date: Fri, 29 Mar 2024 12:07:05 +0100 Subject: [PATCH 30/56] Fix ECC scrubber test return value --- astral/ecc_test/ecc_test.c | 2 +- carfield/ecc_test/ecc_test.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/astral/ecc_test/ecc_test.c b/astral/ecc_test/ecc_test.c index d3c92bd..99ee1cf 100644 --- a/astral/ecc_test/ecc_test.c +++ b/astral/ecc_test/ecc_test.c @@ -65,5 +65,5 @@ int main() { printf("mismatch_cnt: %d, fix_cnt: %d, uncorrectable_cnt: %d\n", mismatch_cnt, fix_cnt, uncorrectable_cnt); - return (error != 0) ^ (uncorrectable_cnt != 0); + return (error != 0) && (uncorrectable_cnt == 0); } diff --git a/carfield/ecc_test/ecc_test.c b/carfield/ecc_test/ecc_test.c index d3c92bd..99ee1cf 100644 --- a/carfield/ecc_test/ecc_test.c +++ b/carfield/ecc_test/ecc_test.c @@ -65,5 +65,5 @@ int main() { printf("mismatch_cnt: %d, fix_cnt: %d, uncorrectable_cnt: %d\n", mismatch_cnt, fix_cnt, uncorrectable_cnt); - return (error != 0) ^ (uncorrectable_cnt != 0); + return (error != 0) && (uncorrectable_cnt == 0); } From c4af4ddd3a945f35e7b1240ea3add056f515cac3 Mon Sep 17 00:00:00 2001 From: Andrea Belano Date: Tue, 7 May 2024 16:29:06 +0200 Subject: [PATCH 31/56] Added softex tests --- hwpe/softex/Makefile | 9 + hwpe/softex/archi_softex.h | 81 +++ hwpe/softex/hal_softex.h | 91 ++++ hwpe/softex/inc/golden.h | 1031 +++++++++++++++++++++++++++++++++++ hwpe/softex/inc/scores.h | 1037 ++++++++++++++++++++++++++++++++++++ hwpe/softex/softex.c | 96 ++++ 6 files changed, 2345 insertions(+) create mode 100644 hwpe/softex/Makefile create mode 100644 hwpe/softex/archi_softex.h create mode 100644 hwpe/softex/hal_softex.h create mode 100644 hwpe/softex/inc/golden.h create mode 100644 hwpe/softex/inc/scores.h create mode 100644 hwpe/softex/softex.c diff --git a/hwpe/softex/Makefile b/hwpe/softex/Makefile new file mode 100644 index 0000000..a15e398 --- /dev/null +++ b/hwpe/softex/Makefile @@ -0,0 +1,9 @@ +PULP_APP = test +PULP_APP_SRCS = softex.c +PULP_CFLAGS = -O3 + +ifeq ($(use_dma),1) + PULP_CFLAGS += -DUSE_DMA +endif + +include $(PULP_SDK_HOME)/install/rules/pulp_rt.mk diff --git a/hwpe/softex/archi_softex.h b/hwpe/softex/archi_softex.h new file mode 100644 index 0000000..70727a2 --- /dev/null +++ b/hwpe/softex/archi_softex.h @@ -0,0 +1,81 @@ +/* + * Andrea Belano + * + * Copyright 2024 ETH Zurich and University of Bologna + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#ifndef __ARCHI_SOFTEX__ +#define __ARCHI_SOFTEX__ + +#define DATA_WIDTH 256 + +/* PULP Cluster Archi defines */ +#define ARCHI_CLUST_CTRL_BASE 0x50200000 +#define ARCHI_CLUST_HWPE_BASE 0x50201000 +#define DMA_COMMAND_QUEUE 0x50204400 +#define DMA_STATUS_REGISTER 0x50204404 +#define ARCHI_CL_HWPE_EVT0 12 +#define ARCHI_CL_HWPE_EVT1 13 +#define FC_DMA_EVENT 8 +#define CL_DMA_EVENT 22 +#define CLUST_CTRL_HWPE_EN 0x18 +#define CLUST_CTRL_HWPE_EN_MASK 0x800 +#define __builtin_bitinsert(a,b,c,d) (a | (((b << (32-c)) >> (32-c)) << d)) + +#define SOFTEX_BASE_ADD ARCHI_CLUST_HWPE_BASE +#define SOFTEX_CG_EN_MSK 0x4000 +// Commands +#define SOFTEX_TRIGGER 0x00 +#define SOFTEX_ACQUIRE 0x04 +#define SOFTEX_FINISHED 0x08 +#define SOFTEX_STATUS 0x0C +#define SOFTEX_RUNNING_JOB 0x10 +#define SOFTEX_SOFT_CLEAR 0x14 + +#define SOFTEX_REG_OFFS 0x20 + +#define SOFTEX_IN_ADDR SOFTEX_REG_OFFS + 0x00 +#define SOFTEX_OUT_ADDR SOFTEX_REG_OFFS + 0x04 +#define SOFTEX_TOT_LEN SOFTEX_REG_OFFS + 0x08 +#define SOFTEX_COMMANDS SOFTEX_REG_OFFS + 0x0C +#define SOFTEX_CACHE_BASE_ADDR SOFTEX_REG_OFFS + 0x10 +#define SOFTEX_CAST_CTRL SOFTEX_REG_OFFS + 0x14 + + +#define SOFTEX_CMD_ACC_ONLY 0x00000001 +#define SOFTEX_CMD_DIV_ONLY 0x00000002 +#define SOFTEX_CMD_ACQUIRE_SLOT 0x00000004 +#define SOFTEX_CMD_LAST 0x00000008 +#define SOFTEX_CMD_SET_CACHE_ADDR 0x00000010 +#define SOFTEX_CMD_NO_OP 0x00000020 +#define SOFTEX_CMD_INT_INPUT 0x00000040 +#define SOFTEX_CMD_INT_OUTPUT 0x00000080 + +/* DMA Archi */ +#define DMA_TX 0 +#define DMA_RX 1 +#define DMA_INC 1 + +#define PLP_DMA_TYPE_BIT 0x00000011 +#define PLP_DMA_INCR_BIT 0x00000012 +#define PLP_DMA_2D_BIT 0x00000013 +#define PLP_DMA_ELE_BIT 0x00000014 +#define PLP_DMA_ILE_BIT 0x00000015 +#define PLP_DMA_BLE_BIT 0x00000016 +#define PLP_DMA_2D_TCDM_BIT 0x0000017 + +#endif \ No newline at end of file diff --git a/hwpe/softex/hal_softex.h b/hwpe/softex/hal_softex.h new file mode 100644 index 0000000..199a972 --- /dev/null +++ b/hwpe/softex/hal_softex.h @@ -0,0 +1,91 @@ +/* + * Andrea Belano + * + * Copyright 2024 ETH Zurich and University of Bologna + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#ifndef __HAL_SOFTEX__ +#define __HAL_SOFTEX__ + +#include +#include "archi_softex.h" + +#define HWPE_WRITE(value, offset) *(volatile int *)(SOFTEX_BASE_ADD + offset) = value +#define HWPE_READ(offset) *(volatile int *)(SOFTEX_BASE_ADD + offset) + +static inline void hwpe_trigger_job() { + HWPE_WRITE(0, SOFTEX_TRIGGER); +} + +static inline int hwpe_acquire_job() { + return HWPE_READ(SOFTEX_ACQUIRE); +} + +static inline unsigned int hwpe_get_status() { + return HWPE_READ(SOFTEX_STATUS); +} + +static inline void hwpe_soft_clear() { + HWPE_WRITE(0, SOFTEX_SOFT_CLEAR); +} + +static inline void hwpe_cg_enable() { + *(volatile int*) (ARCHI_CLUST_CTRL_BASE + CLUST_CTRL_HWPE_EN) |= (CLUST_CTRL_HWPE_EN_MASK | SOFTEX_CG_EN_MSK); +} + +static inline void hwpe_cg_disable() { + *(volatile int*) (ARCHI_CLUST_CTRL_BASE + CLUST_CTRL_HWPE_EN) &= ~(CLUST_CTRL_HWPE_EN_MASK | SOFTEX_CG_EN_MSK); +} + +static inline void softex_evt_wait() { + do { + eu_evt_maskWaitAndClr (1 << ARCHI_CL_HWPE_EVT0); + } while((*(int volatile *)(ARCHI_CLUST_HWPE_BASE + SOFTEX_STATUS)) != 0); +} + +/* DMA APIs */ +static inline int mchan_alloc(){ + return *(volatile int*) DMA_COMMAND_QUEUE; +} + +static inline void mchan_transfer(unsigned int len, + unsigned int ext_addr, + unsigned int tcdm_addr) { + + *(volatile int*) DMA_COMMAND_QUEUE = len | + (DMA_RX << PLP_DMA_TYPE_BIT) | + (DMA_INC << PLP_DMA_INCR_BIT) | + (0 << PLP_DMA_2D_BIT) | + (1 << PLP_DMA_ELE_BIT) | + (1 << PLP_DMA_ILE_BIT) | + (0 << PLP_DMA_BLE_BIT) | + (0 << PLP_DMA_2D_TCDM_BIT); + *(volatile int*) DMA_COMMAND_QUEUE = tcdm_addr; + *(volatile int*) DMA_COMMAND_QUEUE = ext_addr; +} + +static inline void mchan_barrier(int id) { + while(((*(volatile int*)(DMA_STATUS_REGISTER)) >> id ) & 0x1 ) { + eu_evt_maskWaitAndClr(1 << FC_DMA_EVENT); + } +} + +static inline void mchan_free(int id) { + *(volatile int*) DMA_STATUS_REGISTER = 0x1 << id; +} + +#endif \ No newline at end of file diff --git a/hwpe/softex/inc/golden.h b/hwpe/softex/inc/golden.h new file mode 100644 index 0000000..12f0012 --- /dev/null +++ b/hwpe/softex/inc/golden.h @@ -0,0 +1,1031 @@ +#ifndef __SOFTEX_GOLDEN__ +#define __SOFTEX_GOLDEN__ + +#define GOLDEN { \ + 0x31c8, \ + 0x323b, \ + 0x2cba, \ + 0x2bf2, \ + 0x3c72, \ + 0x2c91, \ + 0x39a1, \ + 0x308b, \ + 0x3c56, \ + 0x395d, \ + 0x308b, \ + 0x2f8c, \ + 0x2d45, \ + 0x3693, \ + 0x2613, \ + 0x3a16, \ + 0x32fe, \ + 0x326f, \ + 0x3310, \ + 0x2b82, \ + 0x2fb4, \ + 0x2c91, \ + 0x2f5b, \ + 0x28dd, \ + 0x3730, \ + 0x3b28, \ + 0x3b58, \ + 0x364a, \ + 0x2c1b, \ + 0x3890, \ + 0x2c80, \ + 0x3c89, \ + 0x38d1, \ + 0x2cef, \ + 0x2f2a, \ + 0x29db, \ + 0x2cba, \ + 0x294e, \ + 0x3906, \ + 0x38b8, \ + 0x39cf, \ + 0x3a8c, \ + 0x38d1, \ + 0x3028, \ + 0x3a78, \ + 0x2e7b, \ + 0x2d90, \ + 0x2f5b, \ + 0x31c8, \ + 0x2f9f, \ + 0x29f8, \ + 0x364a, \ + 0x34db, \ + 0x33fb, \ + 0x3ae8, \ + 0x381a, \ + 0x3028, \ + 0x35bf, \ + 0x2689, \ + 0x364a, \ + 0x3211, \ + 0x3791, \ + 0x33c3, \ + 0x3748, \ + 0x3a5b, \ + 0x39a1, \ + 0x2672, \ + 0x276f, \ + 0x34db, \ + 0x2656, \ + 0x2cef, \ + 0x3c13, \ + 0x33ac, \ + 0x3386, \ + 0x39a1, \ + 0x3058, \ + 0x3253, \ + 0x3b75, \ + 0x3a9f, \ + 0x2753, \ + 0x360b, \ + 0x309d, \ + 0x3568, \ + 0x3c89, \ + 0x276f, \ + 0x28ac, \ + 0x35bf, \ + 0x38a3, \ + 0x344f, \ + 0x2ea1, \ + 0x3003, \ + 0x3c3d, \ + 0x3a16, \ + 0x2626, \ + 0x2d2e, \ + 0x3436, \ + 0x37f0, \ + 0x31c8, \ + 0x36bd, \ + 0x2db8, \ + 0x3386, \ + 0x3a41, \ + 0x33dd, \ + 0x3200, \ + 0x2823, \ + 0x3c02, \ + 0x2dd1, \ + 0x3225, \ + 0x2898, \ + 0x340e, \ + 0x387e, \ + 0x3808, \ + 0x30b2, \ + 0x381a, \ + 0x371c, \ + 0x2689, \ + 0x27ae, \ + 0x3be5, \ + 0x2b32, \ + 0x33ac, \ + 0x3c56, \ + 0x2656, \ + 0x2c48, \ + 0x2cd3, \ + 0x2672, \ + 0x3a5b, \ + 0x3583, \ + 0x3943, \ + 0x2bd6, \ + 0x2a67, \ + 0x387e, \ + 0x3c3d, \ + 0x3709, \ + 0x3ab4, \ + 0x3534, \ + 0x3c13, \ + 0x29aa, \ + 0x2a95, \ + 0x269b, \ + 0x346a, \ + 0x3211, \ + 0x3943, \ + 0x2921, \ + 0x3b9d, \ + 0x2cd3, \ + 0x3a41, \ + 0x3890, \ + 0x323b, \ + 0x2cef, \ + 0x2851, \ + 0x3225, \ + 0x2b4a, \ + 0x2bbd, \ + 0x2a67, \ + 0x3351, \ + 0x3351, \ + 0x2823, \ + 0x3028, \ + 0x382e, \ + 0x3808, \ + 0x2cba, \ + 0x3665, \ + 0x2d2e, \ + 0x2ca5, \ + 0x2db8, \ + 0x3cb0, \ + 0x2fb4, \ + 0x2838, \ + 0x36a7, \ + 0x3253, \ + 0x2810, \ + 0x2753, \ + 0x395d, \ + 0x2f41, \ + 0x36bd, \ + 0x279a, \ + 0x3126, \ + 0x3172, \ + 0x336d, \ + 0x2f05, \ + 0x2f9f, \ + 0x35a8, \ + 0x392c, \ + 0x3015, \ + 0x3780, \ + 0x303f, \ + 0x2e8e, \ + 0x36a7, \ + 0x39cf, \ + 0x34db, \ + 0x2f41, \ + 0x39a1, \ + 0x3ce2, \ + 0x28fa, \ + 0x2a4c, \ + 0x38ed, \ + 0x2936, \ + 0x3ab4, \ + 0x3102, \ + 0x30ca, \ + 0x3be5, \ + 0x31b0, \ + 0x2dd1, \ + 0x2e18, \ + 0x36a7, \ + 0x361d, \ + 0x27fd, \ + 0x2eb6, \ + 0x3a16, \ + 0x2eb6, \ + 0x2a67, \ + 0x37d3, \ + 0x3436, \ + 0x33c3, \ + 0x336d, \ + 0x27c5, \ + 0x2f5b, \ + 0x360b, \ + 0x2cd3, \ + 0x387e, \ + 0x3568, \ + 0x3890, \ + 0x3b9d, \ + 0x3be5, \ + 0x2788, \ + 0x27fd, \ + 0x2886, \ + 0x3126, \ + 0x2eea, \ + 0x2753, \ + 0x2f8c, \ + 0x34db, \ + 0x2d2e, \ + 0x3075, \ + 0x360b, \ + 0x2a1f, \ + 0x3595, \ + 0x3682, \ + 0x2eb6, \ + 0x29db, \ + 0x395d, \ + 0x2f2a, \ + 0x2bbd, \ + 0x3906, \ + 0x263c, \ + 0x2e06, \ + 0x3acc, \ + 0x2700, \ + 0x28dd, \ + 0x2f16, \ + 0x2a67, \ + 0x309d, \ + 0x2b1d, \ + 0x2aa8, \ + 0x3709, \ + 0x28fa, \ + 0x3436, \ + 0x3534, \ + 0x3b03, \ + 0x2fe7, \ + 0x2aa8, \ + 0x2823, \ + 0x326f, \ + 0x32ae, \ + 0x3c72, \ + 0x29db, \ + 0x3253, \ + 0x29db, \ + 0x3225, \ + 0x2c91, \ + 0x2700, \ + 0x2bf2, \ + 0x3bca, \ + 0x34f8, \ + 0x29db, \ + 0x3568, \ + 0x27c5, \ + 0x3730, \ + 0x2672, \ + 0x3730, \ + 0x3a2a, \ + 0x303f, \ + 0x32c5, \ + 0x33c3, \ + 0x3693, \ + 0x37f0, \ + 0x33ac, \ + 0x3906, \ + 0x313d, \ + 0x3780, \ + 0x2cba, \ + 0x2c30, \ + 0x3c72, \ + 0x2cd3, \ + 0x2810, \ + 0x263c, \ + 0x382e, \ + 0x28fa, \ + 0x382e, \ + 0x395d, \ + 0x28ac, \ + 0x38a3, \ + 0x32e0, \ + 0x2724, \ + 0x31b0, \ + 0x2613, \ + 0x273a, \ + 0x2cef, \ + 0x29c1, \ + 0x2b93, \ + 0x2f78, \ + 0x2e2c, \ + 0x344f, \ + 0x2b93, \ + 0x2996, \ + 0x2d60, \ + 0x3ce2, \ + 0x3be5, \ + 0x2672, \ + 0x28c3, \ + 0x2ded, \ + 0x34db, \ + 0x2b4a, \ + 0x38d1, \ + 0x27ae, \ + 0x38ed, \ + 0x2c1b, \ + 0x3172, \ + 0x3288, \ + 0x2810, \ + 0x2bbd, \ + 0x3b03, \ + 0x326f, \ + 0x3b15, \ + 0x3b9d, \ + 0x2a0c, \ + 0x3ae8, \ + 0x3846, \ + 0x2e8e, \ + 0x2ecf, \ + 0x286d, \ + 0x3b28, \ + 0x2eea, \ + 0x3156, \ + 0x2c48, \ + 0x3ab4, \ + 0x35bf, \ + 0x2c48, \ + 0x32c5, \ + 0x2d90, \ + 0x3015, \ + 0x3860, \ + 0x3be5, \ + 0x2ded, \ + 0x3a2a, \ + 0x3b03, \ + 0x32ae, \ + 0x346a, \ + 0x3890, \ + 0x34f8, \ + 0x3a41, \ + 0x3b58, \ + 0x36bd, \ + 0x3bb2, \ + 0x2b4a, \ + 0x39a1, \ + 0x3693, \ + 0x2a83, \ + 0x2d1a, \ + 0x3890, \ + 0x3918, \ + 0x3762, \ + 0x3a2a, \ + 0x3860, \ + 0x2f9f, \ + 0x3ce2, \ + 0x3730, \ + 0x34c1, \ + 0x279a, \ + 0x35a8, \ + 0x2ba6, \ + 0x392c, \ + 0x33ac, \ + 0x3943, \ + 0x2da3, \ + 0x2eea, \ + 0x344f, \ + 0x35d8, \ + 0x2ea1, \ + 0x3c13, \ + 0x2a95, \ + 0x2bf2, \ + 0x2823, \ + 0x36f2, \ + 0x381a, \ + 0x3a05, \ + 0x3846, \ + 0x308b, \ + 0x3ae8, \ + 0x3b8b, \ + 0x354c, \ + 0x3b9d, \ + 0x2e2c, \ + 0x273a, \ + 0x3323, \ + 0x28fa, \ + 0x2b82, \ + 0x34aa, \ + 0x2cef, \ + 0x26e2, \ + 0x392c, \ + 0x2cba, \ + 0x2a67, \ + 0x2b4a, \ + 0x2a67, \ + 0x3748, \ + 0x371c, \ + 0x3288, \ + 0x32c5, \ + 0x3c3d, \ + 0x2e2c, \ + 0x3791, \ + 0x2e5d, \ + 0x3075, \ + 0x3a05, \ + 0x2e8e, \ + 0x32fe, \ + 0x3c02, \ + 0x27fd, \ + 0x2cba, \ + 0x3c89, \ + 0x2838, \ + 0x2700, \ + 0x2e43, \ + 0x3386, \ + 0x37f0, \ + 0x3421, \ + 0x354c, \ + 0x31e2, \ + 0x2996, \ + 0x30b2, \ + 0x2f8c, \ + 0x2a0c, \ + 0x3c02, \ + 0x32e0, \ + 0x2a83, \ + 0x2886, \ + 0x3568, \ + 0x326f, \ + 0x2788, \ + 0x398e, \ + 0x371c, \ + 0x2851, \ + 0x269b, \ + 0x2613, \ + 0x2672, \ + 0x364a, \ + 0x2bf2, \ + 0x387e, \ + 0x2f78, \ + 0x3398, \ + 0x2851, \ + 0x2838, \ + 0x39b6, \ + 0x2e18, \ + 0x3c3d, \ + 0x39b6, \ + 0x3943, \ + 0x28fa, \ + 0x2a83, \ + 0x3cb0, \ + 0x2f2a, \ + 0x2e7b, \ + 0x2f78, \ + 0x3bca, \ + 0x37bb, \ + 0x279a, \ + 0x2e7b, \ + 0x3a9f, \ + 0x392c, \ + 0x27c5, \ + 0x3156, \ + 0x37a5, \ + 0x3c56, \ + 0x3172, \ + 0x2d2e, \ + 0x3665, \ + 0x2fb4, \ + 0x2d08, \ + 0x361d, \ + 0x2abf, \ + 0x36f2, \ + 0x2cd3, \ + 0x30e5, \ + 0x2fb4, \ + 0x2a1f, \ + 0x3cc8, \ + 0x38a3, \ + 0x397b, \ + 0x2f9f, \ + 0x39b6, \ + 0x3200, \ + 0x3253, \ + 0x3156, \ + 0x2724, \ + 0x296a, \ + 0x3a5b, \ + 0x2c30, \ + 0x3398, \ + 0x2f5b, \ + 0x2cef, \ + 0x39ea, \ + 0x3906, \ + 0x3b3f, \ + 0x2724, \ + 0x2753, \ + 0x3200, \ + 0x2a1f, \ + 0x329a, \ + 0x32ae, \ + 0x2b32, \ + 0x33c3, \ + 0x3075, \ + 0x3126, \ + 0x37a5, \ + 0x361d, \ + 0x32fe, \ + 0x3665, \ + 0x263c, \ + 0x2c09, \ + 0x3709, \ + 0x29db, \ + 0x3682, \ + 0x39cf, \ + 0x2ecf, \ + 0x3d00, \ + 0x30ca, \ + 0x3421, \ + 0x3890, \ + 0x2f2a, \ + 0x3172, \ + 0x263c, \ + 0x2689, \ + 0x39ea, \ + 0x2cef, \ + 0x26c8, \ + 0x3015, \ + 0x2936, \ + 0x2689, \ + 0x3943, \ + 0x2db8, \ + 0x37d3, \ + 0x3534, \ + 0x3682, \ + 0x32fe, \ + 0x2b32, \ + 0x2f05, \ + 0x3421, \ + 0x2613, \ + 0x2b4a, \ + 0x3189, \ + 0x3310, \ + 0x2bf2, \ + 0x2f41, \ + 0x3780, \ + 0x3386, \ + 0x3102, \ + 0x326f, \ + 0x2cd3, \ + 0x3c3d, \ + 0x2eb6, \ + 0x33c3, \ + 0x2f5b, \ + 0x2bbd, \ + 0x3b03, \ + 0x2cba, \ + 0x3780, \ + 0x346a, \ + 0x398e, \ + 0x2c30, \ + 0x28fa, \ + 0x2a95, \ + 0x3ae8, \ + 0x2c91, \ + 0x381a, \ + 0x2788, \ + 0x26b0, \ + 0x34f8, \ + 0x3c27, \ + 0x34db, \ + 0x3780, \ + 0x3398, \ + 0x3b58, \ + 0x3172, \ + 0x31e2, \ + 0x350c, \ + 0x3bb2, \ + 0x3748, \ + 0x350c, \ + 0x3b75, \ + 0x34aa, \ + 0x2eb6, \ + 0x381a, \ + 0x2cba, \ + 0x2b1d, \ + 0x2613, \ + 0x3496, \ + 0x2abf, \ + 0x3102, \ + 0x2936, \ + 0x3351, \ + 0x2bbd, \ + 0x3496, \ + 0x3398, \ + 0x3015, \ + 0x2a34, \ + 0x2613, \ + 0x2e43, \ + 0x2ded, \ + 0x29db, \ + 0x37a5, \ + 0x296a, \ + 0x2bbd, \ + 0x3bca, \ + 0x37a5, \ + 0x3a2a, \ + 0x2f9f, \ + 0x3709, \ + 0x29c1, \ + 0x3bca, \ + 0x398e, \ + 0x3595, \ + 0x29f8, \ + 0x2da3, \ + 0x3568, \ + 0x3485, \ + 0x2da3, \ + 0x38a3, \ + 0x3323, \ + 0x2d90, \ + 0x344f, \ + 0x26b0, \ + 0x2a0c, \ + 0x3534, \ + 0x3b03, \ + 0x3b28, \ + 0x3c72, \ + 0x2f5b, \ + 0x2a34, \ + 0x3436, \ + 0x30ca, \ + 0x3730, \ + 0x3211, \ + 0x32e0, \ + 0x3126, \ + 0x3003, \ + 0x395d, \ + 0x294e, \ + 0x38ed, \ + 0x3c9c, \ + 0x2996, \ + 0x2b32, \ + 0x313d, \ + 0x350c, \ + 0x2d90, \ + 0x3d11, \ + 0x2eb6, \ + 0x2f78, \ + 0x39a1, \ + 0x3351, \ + 0x2da3, \ + 0x2985, \ + 0x3225, \ + 0x2c62, \ + 0x3ce2, \ + 0x3682, \ + 0x39cf, \ + 0x2aa8, \ + 0x2ea1, \ + 0x2d1a, \ + 0x344f, \ + 0x290e, \ + 0x2700, \ + 0x2af5, \ + 0x3808, \ + 0x3398, \ + 0x3211, \ + 0x2bbd, \ + 0x3780, \ + 0x3323, \ + 0x3172, \ + 0x350c, \ + 0x3acc, \ + 0x3058, \ + 0x3ab4, \ + 0x3200, \ + 0x2fb4, \ + 0x3cb0, \ + 0x2cba, \ + 0x3015, \ + 0x354c, \ + 0x26e2, \ + 0x2cef, \ + 0x3b28, \ + 0x2c30, \ + 0x3c02, \ + 0x2700, \ + 0x2788, \ + 0x2fb4, \ + 0x28ac, \ + 0x3b03, \ + 0x33c3, \ + 0x34db, \ + 0x3b28, \ + 0x3780, \ + 0x3b58, \ + 0x3d00, \ + 0x3075, \ + 0x28fa, \ + 0x34db, \ + 0x34db, \ + 0x279a, \ + 0x2ea1, \ + 0x3386, \ + 0x37bb, \ + 0x35bf, \ + 0x2eb6, \ + 0x371c, \ + 0x2e7b, \ + 0x2d90, \ + 0x2f78, \ + 0x32ae, \ + 0x3b03, \ + 0x269b, \ + 0x2ba6, \ + 0x2ba6, \ + 0x364a, \ + 0x2c91, \ + 0x279a, \ + 0x28fa, \ + 0x3a9f, \ + 0x33c3, \ + 0x2abf, \ + 0x3a2a, \ + 0x3846, \ + 0x2f2a, \ + 0x2b93, \ + 0x397b, \ + 0x2b4a, \ + 0x371c, \ + 0x2fcc, \ + 0x2a1f, \ + 0x37f0, \ + 0x3943, \ + 0x3730, \ + 0x3d00, \ + 0x2c80, \ + 0x346a, \ + 0x39a1, \ + 0x32ae, \ + 0x308b, \ + 0x39cf, \ + 0x32e0, \ + 0x3c02, \ + 0x2aa8, \ + 0x3568, \ + 0x3c89, \ + 0x2724, \ + 0x296a, \ + 0x3acc, \ + 0x296a, \ + 0x2e7b, \ + 0x2e5d, \ + 0x2936, \ + 0x3c27, \ + 0x3a9f, \ + 0x2ca5, \ + 0x2a4c, \ + 0x2f41, \ + 0x2b82, \ + 0x28c3, \ + 0x39a1, \ + 0x286d, \ + 0x308b, \ + 0x3253, \ + 0x395d, \ + 0x2e8e, \ + 0x2db8, \ + 0x3906, \ + 0x2c48, \ + 0x3310, \ + 0x326f, \ + 0x2810, \ + 0x3172, \ + 0x3632, \ + 0x2b93, \ + 0x3a5b, \ + 0x34db, \ + 0x290e, \ + 0x294e, \ + 0x3c3d, \ + 0x3534, \ + 0x29c1, \ + 0x37a5, \ + 0x39b6, \ + 0x3c13, \ + 0x3acc, \ + 0x269b, \ + 0x33dd, \ + 0x29db, \ + 0x2851, \ + 0x323b, \ + 0x3436, \ + 0x3709, \ + 0x26c8, \ + 0x2656, \ + 0x354c, \ + 0x2810, \ + 0x3ab4, \ + 0x3b9d, \ + 0x371c, \ + 0x2838, \ + 0x3386, \ + 0x3b15, \ + 0x3bca, \ + 0x32e0, \ + 0x2a67, \ + 0x2838, \ + 0x2c91, \ + 0x3189, \ + 0x279a, \ + 0x3225, \ + 0x27c5, \ + 0x3730, \ + 0x2cd3, \ + 0x269b, \ + 0x3225, \ + 0x309d, \ + 0x26e2, \ + 0x2a83, \ + 0x36a7, \ + 0x34aa, \ + 0x2bf2, \ + 0x387e, \ + 0x3c3d, \ + 0x28dd, \ + 0x3730, \ + 0x3253, \ + 0x2ca5, \ + 0x3338, \ + 0x2a67, \ + 0x2ea1, \ + 0x2d7d, \ + 0x3496, \ + 0x2cba, \ + 0x2e2c, \ + 0x2985, \ + 0x3126, \ + 0x2ecf, \ + 0x2e43, \ + 0x32c5, \ + 0x3be5, \ + 0x2e18, \ + 0x3386, \ + 0x3906, \ + 0x2689, \ + 0x33fb, \ + 0x31e2, \ + 0x3762, \ + 0x2b65, \ + 0x3a5b, \ + 0x3a8c, \ + 0x263c, \ + 0x27ae, \ + 0x2a4c, \ + 0x2d60, \ + 0x3860, \ + 0x303f, \ + 0x2724, \ + 0x344f, \ + 0x2d08, \ + 0x351f, \ + 0x361d, \ + 0x30ca, \ + 0x37bb, \ + 0x3ce2, \ + 0x2724, \ + 0x3ab4, \ + 0x2b65, \ + 0x3860, \ + 0x33c3, \ + 0x3015, \ + 0x2c1b, \ + 0x3189, \ + 0x2886, \ + 0x30b2, \ + 0x2996, \ + 0x3288, \ + 0x3918, \ + 0x2b93, \ + 0x2f9f, \ + 0x2613, \ + 0x33fb, \ + 0x3791, \ + 0x3c13, \ + 0x3113, \ + 0x2af5, \ + 0x3791, \ + 0x2e43, \ + 0x2ca5, \ + 0x27ae, \ + 0x3b15, \ + 0x34aa, \ + 0x3338, \ + 0x39a1, \ + 0x387e, \ + 0x3172, \ + 0x2b0b, \ + 0x34aa, \ + 0x2ded, \ + 0x3be5, \ + 0x3323, \ + 0x3568, \ + 0x2f41, \ + 0x2bd6, \ + 0x3568, \ + 0x34c1, \ + 0x2689, \ + 0x2672, \ + 0x2eb6, \ + 0x3b8b, \ + 0x3058, \ + 0x3113, \ + 0x3583, \ + 0x2a34, \ + 0x3906, \ + 0x3bb2, \ + 0x2eea, \ + 0x2ad8, \ + 0x319c, \ + 0x3693, \ + 0x33ac, \ + 0x38b8, \ + 0x2689, \ + 0x31e2, \ + 0x33ac, \ + 0x27ae, \ + 0x2bbd, \ + 0x360b, \ + 0x2985, \ + 0x28ac, \ + 0x2b1d, \ + 0x336d, \ + 0x35bf, \ + 0x323b, \ + 0x2e8e, \ + 0x351f, \ + 0x2b82, \ + 0x313d, \ + 0x3421, \ + 0x2f9f, \ + 0x3b8b, \ + 0x2fe7, \ + 0x360b, \ + 0x2b32, \ + 0x2b32, \ + 0x27c5, \ + 0x273a, \ + 0x3b75, \ + 0x2626, \ + 0x2f2a, \ + 0x296a, \ + 0x3730, \ + 0x37d3, \ + 0x2700, \ + 0x395d, \ + 0x30ca, \ + 0x2921, \ + 0x3156, \ + 0x3c9c, \ + 0x2fe7, \ + 0x2788, \ + 0x2bd6, \ + 0x35bf, \ + 0x3a16, \ + 0x36a7, \ + 0x351f, \ + 0x395d, \ + 0x3288, \ + 0x3a2a, \ + 0x37a5, \ + 0x2bbd, \ + 0x2d1a, \ + 0x34db, \ + 0x3126, \ + 0x2fe7, \ + 0x33fb, \ + 0x294e, \ + 0x2bbd, \ + 0x3156, \ + 0x2e7b, \ + 0x2a67, \ + 0x38ed, \ + 0x397b, \ + 0x30ca, \ + 0x2f78, \ + 0x2a0c, \ + 0x3075, \ + 0x2d2e, \ + 0x2656, \ + 0x3a16, \ + 0x2a83, \ + 0x2c80, \ + 0x3693, \ + 0x354c, \ + 0x2788, \ + 0x36f2, \ + 0x37f0, \ + 0x27ae, \ + 0x34f8, \ + 0x2b82, \ + 0x35a8, \ + 0x3632, \ + 0x2f16, \ +} + +#endif \ No newline at end of file diff --git a/hwpe/softex/inc/scores.h b/hwpe/softex/inc/scores.h new file mode 100644 index 0000000..d60ba7a --- /dev/null +++ b/hwpe/softex/inc/scores.h @@ -0,0 +1,1037 @@ +#ifndef __SOFTEX_SCORES__ +#define __SOFTEX_SCORES__ + +#define LENGTH 1024 + +#define FMT_WIDTH 2 + +#define N_VECTORS 1 + +#define SCORES { \ + 0x4182, \ + 0x4187, \ + 0x4114, \ + 0x4102, \ + 0x41f8, \ + 0x4110, \ + 0x41d9, \ + 0x4168, \ + 0x41f7, \ + 0x41d6, \ + 0x4168, \ + 0x4152, \ + 0x4120, \ + 0x41b7, \ + 0x0000, \ + 0x41de, \ + 0x418f, \ + 0x4189, \ + 0x4190, \ + 0x40f0, \ + 0x4156, \ + 0x4110, \ + 0x414e, \ + 0x4078, \ + 0x41be, \ + 0x41ea, \ + 0x41ec, \ + 0x41b4, \ + 0x4106, \ + 0x41cd, \ + 0x410e, \ + 0x41f9, \ + 0x41d0, \ + 0x4118, \ + 0x414a, \ + 0x40a8, \ + 0x4114, \ + 0x4090, \ + 0x41d2, \ + 0x41cf, \ + 0x41db, \ + 0x41e3, \ + 0x41d0, \ + 0x4160, \ + 0x41e2, \ + 0x413a, \ + 0x4126, \ + 0x414e, \ + 0x4182, \ + 0x4154, \ + 0x40ac, \ + 0x41b4, \ + 0x41a4, \ + 0x419a, \ + 0x41e7, \ + 0x41c8, \ + 0x4160, \ + 0x41ae, \ + 0x3f20, \ + 0x41b4, \ + 0x4185, \ + 0x41c2, \ + 0x4198, \ + 0x41bf, \ + 0x41e1, \ + 0x41d9, \ + 0x3f00, \ + 0x3ff0, \ + 0x41a4, \ + 0x3ec0, \ + 0x4118, \ + 0x41f4, \ + 0x4197, \ + 0x4195, \ + 0x41d9, \ + 0x4164, \ + 0x4188, \ + 0x41ed, \ + 0x41e4, \ + 0x3fe0, \ + 0x41b1, \ + 0x416a, \ + 0x41aa, \ + 0x41f9, \ + 0x3ff0, \ + 0x4068, \ + 0x41ae, \ + 0x41ce, \ + 0x419e, \ + 0x413e, \ + 0x415c, \ + 0x41f6, \ + 0x41de, \ + 0x3e00, \ + 0x411e, \ + 0x419d, \ + 0x41c6, \ + 0x4182, \ + 0x41b9, \ + 0x412a, \ + 0x4195, \ + 0x41e0, \ + 0x4199, \ + 0x4184, \ + 0x4038, \ + 0x41f3, \ + 0x412c, \ + 0x4186, \ + 0x4060, \ + 0x419b, \ + 0x41cc, \ + 0x41c7, \ + 0x416c, \ + 0x41c8, \ + 0x41bd, \ + 0x3f20, \ + 0x4010, \ + 0x41f2, \ + 0x40e4, \ + 0x4197, \ + 0x41f7, \ + 0x3ec0, \ + 0x410a, \ + 0x4116, \ + 0x3f00, \ + 0x41e1, \ + 0x41ab, \ + 0x41d5, \ + 0x4100, \ + 0x40c0, \ + 0x41cc, \ + 0x41f6, \ + 0x41bc, \ + 0x41e5, \ + 0x41a8, \ + 0x41f4, \ + 0x40a0, \ + 0x40c8, \ + 0x3f40, \ + 0x419f, \ + 0x4185, \ + 0x41d5, \ + 0x4088, \ + 0x41ef, \ + 0x4116, \ + 0x41e0, \ + 0x41cd, \ + 0x4187, \ + 0x4118, \ + 0x4048, \ + 0x4186, \ + 0x40e8, \ + 0x40fc, \ + 0x40c0, \ + 0x4193, \ + 0x4193, \ + 0x4038, \ + 0x4160, \ + 0x41c9, \ + 0x41c7, \ + 0x4114, \ + 0x41b5, \ + 0x411e, \ + 0x4112, \ + 0x412a, \ + 0x41fb, \ + 0x4156, \ + 0x4040, \ + 0x41b8, \ + 0x4188, \ + 0x4030, \ + 0x3fe0, \ + 0x41d6, \ + 0x414c, \ + 0x41b9, \ + 0x4008, \ + 0x4176, \ + 0x417c, \ + 0x4194, \ + 0x4146, \ + 0x4154, \ + 0x41ad, \ + 0x41d4, \ + 0x415e, \ + 0x41c1, \ + 0x4162, \ + 0x413c, \ + 0x41b8, \ + 0x41db, \ + 0x41a4, \ + 0x414c, \ + 0x41d9, \ + 0x41fd, \ + 0x4080, \ + 0x40bc, \ + 0x41d1, \ + 0x408c, \ + 0x41e5, \ + 0x4172, \ + 0x416e, \ + 0x41f2, \ + 0x4181, \ + 0x412c, \ + 0x4132, \ + 0x41b8, \ + 0x41b2, \ + 0x4028, \ + 0x4140, \ + 0x41de, \ + 0x4140, \ + 0x40c0, \ + 0x41c5, \ + 0x419d, \ + 0x4198, \ + 0x4194, \ + 0x4018, \ + 0x414e, \ + 0x41b1, \ + 0x4116, \ + 0x41cc, \ + 0x41aa, \ + 0x41cd, \ + 0x41ef, \ + 0x41f2, \ + 0x4000, \ + 0x4028, \ + 0x4058, \ + 0x4176, \ + 0x4144, \ + 0x3fe0, \ + 0x4152, \ + 0x41a4, \ + 0x411e, \ + 0x4166, \ + 0x41b1, \ + 0x40b4, \ + 0x41ac, \ + 0x41b6, \ + 0x4140, \ + 0x40a8, \ + 0x41d6, \ + 0x414a, \ + 0x40fc, \ + 0x41d2, \ + 0x3e80, \ + 0x4130, \ + 0x41e6, \ + 0x3fa0, \ + 0x4078, \ + 0x4148, \ + 0x40c0, \ + 0x416a, \ + 0x40e0, \ + 0x40cc, \ + 0x41bc, \ + 0x4080, \ + 0x419d, \ + 0x41a8, \ + 0x41e8, \ + 0x415a, \ + 0x40cc, \ + 0x4038, \ + 0x4189, \ + 0x418c, \ + 0x41f8, \ + 0x40a8, \ + 0x4188, \ + 0x40a8, \ + 0x4186, \ + 0x4110, \ + 0x3fa0, \ + 0x4102, \ + 0x41f1, \ + 0x41a5, \ + 0x40a8, \ + 0x41aa, \ + 0x4018, \ + 0x41be, \ + 0x3f00, \ + 0x41be, \ + 0x41df, \ + 0x4162, \ + 0x418d, \ + 0x4198, \ + 0x41b7, \ + 0x41c6, \ + 0x4197, \ + 0x41d2, \ + 0x4178, \ + 0x41c1, \ + 0x4114, \ + 0x4108, \ + 0x41f8, \ + 0x4116, \ + 0x4030, \ + 0x3e80, \ + 0x41c9, \ + 0x4080, \ + 0x41c9, \ + 0x41d6, \ + 0x4068, \ + 0x41ce, \ + 0x418e, \ + 0x3fc0, \ + 0x4181, \ + 0x0000, \ + 0x3fd0, \ + 0x4118, \ + 0x40a4, \ + 0x40f4, \ + 0x4150, \ + 0x4134, \ + 0x419e, \ + 0x40f4, \ + 0x409c, \ + 0x4122, \ + 0x41fd, \ + 0x41f2, \ + 0x3f00, \ + 0x4070, \ + 0x412e, \ + 0x41a4, \ + 0x40e8, \ + 0x41d0, \ + 0x4010, \ + 0x41d1, \ + 0x4106, \ + 0x417c, \ + 0x418a, \ + 0x4030, \ + 0x40fc, \ + 0x41e8, \ + 0x4189, \ + 0x41e9, \ + 0x41ef, \ + 0x40b0, \ + 0x41e7, \ + 0x41ca, \ + 0x413c, \ + 0x4142, \ + 0x4050, \ + 0x41ea, \ + 0x4144, \ + 0x417a, \ + 0x410a, \ + 0x41e5, \ + 0x41ae, \ + 0x410a, \ + 0x418d, \ + 0x4126, \ + 0x415e, \ + 0x41cb, \ + 0x41f2, \ + 0x412e, \ + 0x41df, \ + 0x41e8, \ + 0x418c, \ + 0x419f, \ + 0x41cd, \ + 0x41a5, \ + 0x41e0, \ + 0x41ec, \ + 0x41b9, \ + 0x41f0, \ + 0x40e8, \ + 0x41d9, \ + 0x41b7, \ + 0x40c4, \ + 0x411c, \ + 0x41cd, \ + 0x41d3, \ + 0x41c0, \ + 0x41df, \ + 0x41cb, \ + 0x4154, \ + 0x41fd, \ + 0x41be, \ + 0x41a3, \ + 0x4008, \ + 0x41ad, \ + 0x40f8, \ + 0x41d4, \ + 0x4197, \ + 0x41d5, \ + 0x4128, \ + 0x4144, \ + 0x419e, \ + 0x41af, \ + 0x413e, \ + 0x41f4, \ + 0x40c8, \ + 0x4102, \ + 0x4038, \ + 0x41bb, \ + 0x41c8, \ + 0x41dd, \ + 0x41ca, \ + 0x4168, \ + 0x41e7, \ + 0x41ee, \ + 0x41a9, \ + 0x41ef, \ + 0x4134, \ + 0x3fd0, \ + 0x4191, \ + 0x4080, \ + 0x40f0, \ + 0x41a2, \ + 0x4118, \ + 0x3f90, \ + 0x41d4, \ + 0x4114, \ + 0x40c0, \ + 0x40e8, \ + 0x40c0, \ + 0x41bf, \ + 0x41bd, \ + 0x418a, \ + 0x418d, \ + 0x41f6, \ + 0x4134, \ + 0x41c2, \ + 0x4138, \ + 0x4166, \ + 0x41dd, \ + 0x413c, \ + 0x418f, \ + 0x41f3, \ + 0x4028, \ + 0x4114, \ + 0x41f9, \ + 0x4040, \ + 0x3fa0, \ + 0x4136, \ + 0x4195, \ + 0x41c6, \ + 0x419c, \ + 0x41a9, \ + 0x4183, \ + 0x409c, \ + 0x416c, \ + 0x4152, \ + 0x40b0, \ + 0x41f3, \ + 0x418e, \ + 0x40c4, \ + 0x4058, \ + 0x41aa, \ + 0x4189, \ + 0x4000, \ + 0x41d8, \ + 0x41bd, \ + 0x4048, \ + 0x3f40, \ + 0x0000, \ + 0x3f00, \ + 0x41b4, \ + 0x4102, \ + 0x41cc, \ + 0x4150, \ + 0x4196, \ + 0x4048, \ + 0x4040, \ + 0x41da, \ + 0x4132, \ + 0x41f6, \ + 0x41da, \ + 0x41d5, \ + 0x4080, \ + 0x40c4, \ + 0x41fb, \ + 0x414a, \ + 0x413a, \ + 0x4150, \ + 0x41f1, \ + 0x41c4, \ + 0x4008, \ + 0x413a, \ + 0x41e4, \ + 0x41d4, \ + 0x4018, \ + 0x417a, \ + 0x41c3, \ + 0x41f7, \ + 0x417c, \ + 0x411e, \ + 0x41b5, \ + 0x4156, \ + 0x411a, \ + 0x41b2, \ + 0x40d0, \ + 0x41bb, \ + 0x4116, \ + 0x4170, \ + 0x4156, \ + 0x40b4, \ + 0x41fc, \ + 0x41ce, \ + 0x41d7, \ + 0x4154, \ + 0x41da, \ + 0x4184, \ + 0x4188, \ + 0x417a, \ + 0x3fc0, \ + 0x4094, \ + 0x41e1, \ + 0x4108, \ + 0x4196, \ + 0x414e, \ + 0x4118, \ + 0x41dc, \ + 0x41d2, \ + 0x41eb, \ + 0x3fc0, \ + 0x3fe0, \ + 0x4184, \ + 0x40b4, \ + 0x418b, \ + 0x418c, \ + 0x40e4, \ + 0x4198, \ + 0x4166, \ + 0x4176, \ + 0x41c3, \ + 0x41b2, \ + 0x418f, \ + 0x41b5, \ + 0x3e80, \ + 0x4104, \ + 0x41bc, \ + 0x40a8, \ + 0x41b6, \ + 0x41db, \ + 0x4142, \ + 0x41fe, \ + 0x416e, \ + 0x419c, \ + 0x41cd, \ + 0x414a, \ + 0x417c, \ + 0x3e80, \ + 0x3f20, \ + 0x41dc, \ + 0x4118, \ + 0x3f80, \ + 0x415e, \ + 0x408c, \ + 0x3f20, \ + 0x41d5, \ + 0x412a, \ + 0x41c5, \ + 0x41a8, \ + 0x41b6, \ + 0x418f, \ + 0x40e4, \ + 0x4146, \ + 0x419c, \ + 0x0000, \ + 0x40e8, \ + 0x417e, \ + 0x4190, \ + 0x4102, \ + 0x414c, \ + 0x41c1, \ + 0x4195, \ + 0x4172, \ + 0x4189, \ + 0x4116, \ + 0x41f6, \ + 0x4140, \ + 0x4198, \ + 0x414e, \ + 0x40fc, \ + 0x41e8, \ + 0x4114, \ + 0x41c1, \ + 0x419f, \ + 0x41d8, \ + 0x4108, \ + 0x4080, \ + 0x40c8, \ + 0x41e7, \ + 0x4110, \ + 0x41c8, \ + 0x4000, \ + 0x3f60, \ + 0x41a5, \ + 0x41f5, \ + 0x41a4, \ + 0x41c1, \ + 0x4196, \ + 0x41ec, \ + 0x417c, \ + 0x4183, \ + 0x41a6, \ + 0x41f0, \ + 0x41bf, \ + 0x41a6, \ + 0x41ed, \ + 0x41a2, \ + 0x4140, \ + 0x41c8, \ + 0x4114, \ + 0x40e0, \ + 0x0000, \ + 0x41a1, \ + 0x40d0, \ + 0x4172, \ + 0x408c, \ + 0x4193, \ + 0x40fc, \ + 0x41a1, \ + 0x4196, \ + 0x415e, \ + 0x40b8, \ + 0x0000, \ + 0x4136, \ + 0x412e, \ + 0x40a8, \ + 0x41c3, \ + 0x4094, \ + 0x40fc, \ + 0x41f1, \ + 0x41c3, \ + 0x41df, \ + 0x4154, \ + 0x41bc, \ + 0x40a4, \ + 0x41f1, \ + 0x41d8, \ + 0x41ac, \ + 0x40ac, \ + 0x4128, \ + 0x41aa, \ + 0x41a0, \ + 0x4128, \ + 0x41ce, \ + 0x4191, \ + 0x4126, \ + 0x419e, \ + 0x3f60, \ + 0x40b0, \ + 0x41a8, \ + 0x41e8, \ + 0x41ea, \ + 0x41f8, \ + 0x414e, \ + 0x40b8, \ + 0x419d, \ + 0x416e, \ + 0x41be, \ + 0x4185, \ + 0x418e, \ + 0x4176, \ + 0x415c, \ + 0x41d6, \ + 0x4090, \ + 0x41d1, \ + 0x41fa, \ + 0x409c, \ + 0x40e4, \ + 0x4178, \ + 0x41a6, \ + 0x4126, \ + 0x41ff, \ + 0x4140, \ + 0x4150, \ + 0x41d9, \ + 0x4193, \ + 0x4128, \ + 0x4098, \ + 0x4186, \ + 0x410c, \ + 0x41fd, \ + 0x41b6, \ + 0x41db, \ + 0x40cc, \ + 0x413e, \ + 0x411c, \ + 0x419e, \ + 0x4084, \ + 0x3fa0, \ + 0x40d8, \ + 0x41c7, \ + 0x4196, \ + 0x4185, \ + 0x40fc, \ + 0x41c1, \ + 0x4191, \ + 0x417c, \ + 0x41a6, \ + 0x41e6, \ + 0x4164, \ + 0x41e5, \ + 0x4184, \ + 0x4156, \ + 0x41fb, \ + 0x4114, \ + 0x415e, \ + 0x41a9, \ + 0x3f90, \ + 0x4118, \ + 0x41ea, \ + 0x4108, \ + 0x41f3, \ + 0x3fa0, \ + 0x4000, \ + 0x4156, \ + 0x4068, \ + 0x41e8, \ + 0x4198, \ + 0x41a4, \ + 0x41ea, \ + 0x41c1, \ + 0x41ec, \ + 0x41fe, \ + 0x4166, \ + 0x4080, \ + 0x41a4, \ + 0x41a4, \ + 0x4008, \ + 0x413e, \ + 0x4195, \ + 0x41c4, \ + 0x41ae, \ + 0x4140, \ + 0x41bd, \ + 0x413a, \ + 0x4126, \ + 0x4150, \ + 0x418c, \ + 0x41e8, \ + 0x3f40, \ + 0x40f8, \ + 0x40f8, \ + 0x41b4, \ + 0x4110, \ + 0x4008, \ + 0x4080, \ + 0x41e4, \ + 0x4198, \ + 0x40d0, \ + 0x41df, \ + 0x41ca, \ + 0x414a, \ + 0x40f4, \ + 0x41d7, \ + 0x40e8, \ + 0x41bd, \ + 0x4158, \ + 0x40b4, \ + 0x41c6, \ + 0x41d5, \ + 0x41be, \ + 0x41fe, \ + 0x410e, \ + 0x419f, \ + 0x41d9, \ + 0x418c, \ + 0x4168, \ + 0x41db, \ + 0x418e, \ + 0x41f3, \ + 0x40cc, \ + 0x41aa, \ + 0x41f9, \ + 0x3fc0, \ + 0x4094, \ + 0x41e6, \ + 0x4094, \ + 0x413a, \ + 0x4138, \ + 0x408c, \ + 0x41f5, \ + 0x41e4, \ + 0x4112, \ + 0x40bc, \ + 0x414c, \ + 0x40f0, \ + 0x4070, \ + 0x41d9, \ + 0x4050, \ + 0x4168, \ + 0x4188, \ + 0x41d6, \ + 0x413c, \ + 0x412a, \ + 0x41d2, \ + 0x410a, \ + 0x4190, \ + 0x4189, \ + 0x4030, \ + 0x417c, \ + 0x41b3, \ + 0x40f4, \ + 0x41e1, \ + 0x41a4, \ + 0x4084, \ + 0x4090, \ + 0x41f6, \ + 0x41a8, \ + 0x40a4, \ + 0x41c3, \ + 0x41da, \ + 0x41f4, \ + 0x41e6, \ + 0x3f40, \ + 0x4199, \ + 0x40a8, \ + 0x4048, \ + 0x4187, \ + 0x419d, \ + 0x41bc, \ + 0x3f80, \ + 0x3ec0, \ + 0x41a9, \ + 0x4030, \ + 0x41e5, \ + 0x41ef, \ + 0x41bd, \ + 0x4040, \ + 0x4195, \ + 0x41e9, \ + 0x41f1, \ + 0x418e, \ + 0x40c0, \ + 0x4040, \ + 0x4110, \ + 0x417e, \ + 0x4008, \ + 0x4186, \ + 0x4018, \ + 0x41be, \ + 0x4116, \ + 0x3f40, \ + 0x4186, \ + 0x416a, \ + 0x3f90, \ + 0x40c4, \ + 0x41b8, \ + 0x41a2, \ + 0x4102, \ + 0x41cc, \ + 0x41f6, \ + 0x4078, \ + 0x41be, \ + 0x4188, \ + 0x4112, \ + 0x4192, \ + 0x40c0, \ + 0x413e, \ + 0x4124, \ + 0x41a1, \ + 0x4114, \ + 0x4134, \ + 0x4098, \ + 0x4176, \ + 0x4142, \ + 0x4136, \ + 0x418d, \ + 0x41f2, \ + 0x4132, \ + 0x4195, \ + 0x41d2, \ + 0x3f20, \ + 0x419a, \ + 0x4183, \ + 0x41c0, \ + 0x40ec, \ + 0x41e1, \ + 0x41e3, \ + 0x3e80, \ + 0x4010, \ + 0x40bc, \ + 0x4122, \ + 0x41cb, \ + 0x4162, \ + 0x3fc0, \ + 0x419e, \ + 0x411a, \ + 0x41a7, \ + 0x41b2, \ + 0x416e, \ + 0x41c4, \ + 0x41fd, \ + 0x3fc0, \ + 0x41e5, \ + 0x40ec, \ + 0x41cb, \ + 0x4198, \ + 0x415e, \ + 0x4106, \ + 0x417e, \ + 0x4058, \ + 0x416c, \ + 0x409c, \ + 0x418a, \ + 0x41d3, \ + 0x40f4, \ + 0x4154, \ + 0x0000, \ + 0x419a, \ + 0x41c2, \ + 0x41f4, \ + 0x4174, \ + 0x40d8, \ + 0x41c2, \ + 0x4136, \ + 0x4112, \ + 0x4010, \ + 0x41e9, \ + 0x41a2, \ + 0x4192, \ + 0x41d9, \ + 0x41cc, \ + 0x417c, \ + 0x40dc, \ + 0x41a2, \ + 0x412e, \ + 0x41f2, \ + 0x4191, \ + 0x41aa, \ + 0x414c, \ + 0x4100, \ + 0x41aa, \ + 0x41a3, \ + 0x3f20, \ + 0x3f00, \ + 0x4140, \ + 0x41ee, \ + 0x4164, \ + 0x4174, \ + 0x41ab, \ + 0x40b8, \ + 0x41d2, \ + 0x41f0, \ + 0x4144, \ + 0x40d4, \ + 0x4180, \ + 0x41b7, \ + 0x4197, \ + 0x41cf, \ + 0x3f20, \ + 0x4183, \ + 0x4197, \ + 0x4010, \ + 0x40fc, \ + 0x41b1, \ + 0x4098, \ + 0x4068, \ + 0x40e0, \ + 0x4194, \ + 0x41ae, \ + 0x4187, \ + 0x413c, \ + 0x41a7, \ + 0x40f0, \ + 0x4178, \ + 0x419c, \ + 0x4154, \ + 0x41ee, \ + 0x415a, \ + 0x41b1, \ + 0x40e4, \ + 0x40e4, \ + 0x4018, \ + 0x3fd0, \ + 0x41ed, \ + 0x3e00, \ + 0x414a, \ + 0x4094, \ + 0x41be, \ + 0x41c5, \ + 0x3fa0, \ + 0x41d6, \ + 0x416e, \ + 0x4088, \ + 0x417a, \ + 0x41fa, \ + 0x415a, \ + 0x4000, \ + 0x4100, \ + 0x41ae, \ + 0x41de, \ + 0x41b8, \ + 0x41a7, \ + 0x41d6, \ + 0x418a, \ + 0x41df, \ + 0x41c3, \ + 0x40fc, \ + 0x411c, \ + 0x41a4, \ + 0x4176, \ + 0x415a, \ + 0x419a, \ + 0x4090, \ + 0x40fc, \ + 0x417a, \ + 0x413a, \ + 0x40c0, \ + 0x41d1, \ + 0x41d7, \ + 0x416e, \ + 0x4150, \ + 0x40b0, \ + 0x4166, \ + 0x411e, \ + 0x3ec0, \ + 0x41de, \ + 0x40c4, \ + 0x410e, \ + 0x41b7, \ + 0x41a9, \ + 0x4000, \ + 0x41bb, \ + 0x41c6, \ + 0x4010, \ + 0x41a5, \ + 0x40f0, \ + 0x41ad, \ + 0x41b3, \ + 0x4148 \ +} + +#endif \ No newline at end of file diff --git a/hwpe/softex/softex.c b/hwpe/softex/softex.c new file mode 100644 index 0000000..289e6d7 --- /dev/null +++ b/hwpe/softex/softex.c @@ -0,0 +1,96 @@ +/* + * Andrea Belano + * + * Copyright 2024 ETH Zurich and University of Bologna + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include +#include "stdio.h" +#include "archi_softex.h" +#include "hal_softex.h" +#include "pulp.h" + +#include "inc/golden.h" +#include "inc/scores.h" + +#define TOLERANCE 0x2 + +uint16_t scores_ext [LENGTH] = SCORES; +uint16_t golden [LENGTH] = GOLDEN; + +int main() { + volatile int errors = 0; + + uint16_t volatile *scores = (uint16_t volatile *) pi_l1_malloc(0, (FMT_WIDTH*LENGTH)); + + if(get_core_id() == 0){ + #ifdef USE_DMA + volatile unsigned int dma_id = 0; + dma_id = mchan_alloc(); + + mchan_transfer((unsigned int) FMT_WIDTH*LENGTH , + (unsigned int) scores_ext , + (unsigned int) scores + ); + + mchan_barrier(dma_id); + mchan_free(dma_id); + #else + for (int i = 0; i < LENGTH; i++) { + scores [i] = scores_ext [i]; + } + #endif + + // Enable softex + hwpe_cg_enable(); + + hwpe_soft_clear(); + + HWPE_WRITE(scores, SOFTEX_IN_ADDR); + HWPE_WRITE(LENGTH * FMT_WIDTH, SOFTEX_TOT_LEN); + HWPE_WRITE(scores, SOFTEX_OUT_ADDR); + + hwpe_trigger_job(); + + softex_evt_wait(); + + // Disable softex + hwpe_cg_disable(); + + for (int i = 0; i < LENGTH; i++) { + uint16_t diff; + + if (golden [i] >= scores[i]) { + diff = golden [i] - scores [i]; + } else { + diff = scores [i] - golden [i]; + } + + if (diff > TOLERANCE) { + errors += 1; + + printf ("Mismatch!!!\tIndex: %d\tExpected: 0x%04x\tWas: 0x%04x\tDifference: 0x%x\n", i, golden [i], scores [i], diff); + } + } + + *(int *) 0x1A1040A0 = errors; + + printf("Test completed with %d errors\n", errors); + } + synch_barrier(); + return errors; +} From 26dc475c885c448ec2cd6df052dc4d77b8ca0861 Mon Sep 17 00:00:00 2001 From: Yvan Tortorella Date: Wed, 15 May 2024 18:27:09 +0200 Subject: [PATCH 32/56] Remove submodule SSH. --- .gitmodules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitmodules b/.gitmodules index 36d31e4..5ade099 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ [submodule "hwpe/neureka/pulp-nnx"] path = hwpe/neureka/pulp-nnx - url = git@github.com:pulp-platform/pulp-nnx + url = https://github.com/pulp-platform/pulp-nnx From c58da1f4c46ba1fff2bcccd5e8ad6308bee51191 Mon Sep 17 00:00:00 2001 From: Andrea Belano Date: Mon, 20 May 2024 11:39:17 +0200 Subject: [PATCH 33/56] Added link to softex test --- astral/softex | 1 + 1 file changed, 1 insertion(+) create mode 120000 astral/softex diff --git a/astral/softex b/astral/softex new file mode 120000 index 0000000..e1a6d4b --- /dev/null +++ b/astral/softex @@ -0,0 +1 @@ +../hwpe/softex/ \ No newline at end of file From 90551fa71498b420df734d23d06d661d0553556a Mon Sep 17 00:00:00 2001 From: Andrea Belano Date: Mon, 27 May 2024 10:20:39 +0200 Subject: [PATCH 34/56] Updated softex test --- hwpe/softex/softex.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/hwpe/softex/softex.c b/hwpe/softex/softex.c index 289e6d7..3126f1a 100644 --- a/hwpe/softex/softex.c +++ b/hwpe/softex/softex.c @@ -19,6 +19,7 @@ */ #include +#include #include "stdio.h" #include "archi_softex.h" #include "hal_softex.h" @@ -50,9 +51,7 @@ int main() { mchan_barrier(dma_id); mchan_free(dma_id); #else - for (int i = 0; i < LENGTH; i++) { - scores [i] = scores_ext [i]; - } + memcpy(scores, scores_ext, LENGTH*FMT_WIDTH); #endif // Enable softex From 2ee29de429107adf729170d0ef0ed8e93ff09397 Mon Sep 17 00:00:00 2001 From: Luigi Ghionda Date: Fri, 31 May 2024 00:51:59 +0200 Subject: [PATCH 35/56] Add fault injection in redmule regression to test ECC HCI --- hwpe/redmule/Makefile | 11 +++++++ hwpe/redmule/archi_redmule.h | 6 ++++ hwpe/redmule/hal_redmule.h | 16 +++++++++ hwpe/redmule/pulp_inject_fault.tcl | 53 ++++++++++++++++++++++++++++++ hwpe/redmule/redmule.c | 28 +++++++++++++++- 5 files changed, 113 insertions(+), 1 deletion(-) create mode 100644 hwpe/redmule/pulp_inject_fault.tcl diff --git a/hwpe/redmule/Makefile b/hwpe/redmule/Makefile index 0b85ed2..88346b6 100644 --- a/hwpe/redmule/Makefile +++ b/hwpe/redmule/Makefile @@ -6,4 +6,15 @@ ifeq ($(use_dma),1) PULP_CFLAGS += -DUSE_DMA endif +ifeq ($(fault_inject),1) + export FAULT_INJECTION=1 + export FAULT_INJECTION_SCRIPT=$(CURDIR)/pulp_inject_fault.tcl +endif + +ifeq ($(multi_bit_upset),1) + export MULTI_BIT_UPSET=1 +else + export MULTI_BIT_UPSET=0 +endif + include $(PULP_SDK_HOME)/install/rules/pulp_rt.mk diff --git a/hwpe/redmule/archi_redmule.h b/hwpe/redmule/archi_redmule.h index 9222d63..662e1e6 100644 --- a/hwpe/redmule/archi_redmule.h +++ b/hwpe/redmule/archi_redmule.h @@ -119,6 +119,12 @@ #define REDMULE_REG_X_TOT_LEN_PTR 0x44 #define REDMULE_REG_OP_SELECTION 0x48 +#define REDMULE_ECC_REG_OFFS 0x90 +#define DATA_CORR_ERR 0x00 +#define DATA_UNCORR_ERR 0x04 +#define METADATA_CORR_ERR 0x08 +#define METADATA_UNCORR_ERR 0x0c + // OPs definition #define MATMUL 0x0 #define GEMM 0x1 diff --git a/hwpe/redmule/hal_redmule.h b/hwpe/redmule/hal_redmule.h index c5a0c32..ef0b633 100644 --- a/hwpe/redmule/hal_redmule.h +++ b/hwpe/redmule/hal_redmule.h @@ -99,6 +99,22 @@ static inline void redmule_evt_wait() { } while((*(int volatile *)(ARCHI_CLUST_HWPE_BASE + REDMULE_STATUS)) != 0); } +static inline unsigned int redmule_get_data_correctable_count () { + return HWPE_READ(REDMULE_ECC_REG_OFFS + DATA_CORR_ERR); +} + +static inline unsigned int redmule_get_data_uncorrectable_count () { + return HWPE_READ(REDMULE_ECC_REG_OFFS + DATA_UNCORR_ERR); +} + +static inline unsigned int redmule_get_meta_correctable_count () { + return HWPE_READ(REDMULE_ECC_REG_OFFS + METADATA_CORR_ERR); +} + +static inline unsigned int redmule_get_meta_uncorrectable_count () { + return HWPE_READ(REDMULE_ECC_REG_OFFS + METADATA_UNCORR_ERR); +} + /* DMA APIs */ static inline int mchan_alloc(){ return *(volatile int*) DMA_COMMAND_QUEUE; diff --git a/hwpe/redmule/pulp_inject_fault.tcl b/hwpe/redmule/pulp_inject_fault.tcl new file mode 100644 index 0000000..61ccadf --- /dev/null +++ b/hwpe/redmule/pulp_inject_fault.tcl @@ -0,0 +1,53 @@ +# Copyright 2023 ETH Zurich and University of Bologna. +# Solderpad Hardware License, Version 0.51, see LICENSE for details. +# SPDX-License-Identifier: SHL-0.51 +# +# Author: Michael Rogenmoser (michaero@iis.ee.ethz.ch) + +transcript quietly +if {! [info exists ::env(VSIM_PATH)]} {error "Define VSIM_PATH"} +set utils_base_path [file join $::env(VSIM_PATH) scripts fault_injection_utils] +set script_base_path [file join $::env(VSIM_PATH) fault_injection_sim scripts] + +set verbosity 2 +set log_injections 1 +# Easy way to generate a variable seed +# set seed [clock seconds] +# Default value +set seed 12345 +set print_statistics 1 + +set inject_start_time 550000000000ps +set inject_stop_time 750000000000ps +set injection_clock "pulp_cluster_tb/cluster_i/clk_i" +set injection_clock_trigger 0 +set fault_period 150 +set rand_initial_injection_phase 0 +# max_num set to 0 means until stop_time +set max_num_fault_inject 0 +set signal_fault_duration 20ns +set register_fault_duration 0ns + +set allow_multi_bit_upset $::env(MULTI_BIT_UPSET) +set use_bitwidth_as_weight 0 +set check_core_output_modification 0 +set check_core_next_state_modification 0 +set reg_to_sig_ratio 1 + +source [file join $utils_base_path pulp_extract_nets.tcl] + +set inject_signals_netlist [] +set inject_register_netlist [] +set output_netlist [] +set next_state_netlist [] +set assertion_disable_list [] + +# for {set idx 0} {$idx < 12} {incr idx} { +# set inject_signals_netlist [list {*}$inject_signals_netlist {*}[get_all_core_nets $idx]] +# set output_netlist [list {*}$output_netlist {*}[get_core_output_nets $idx]] +# } + +set inject_register_netlist [list {*}$inject_register_netlist {*}[get_memory_slice {0 16} {256 336}]] + +source [file join $script_base_path inject_fault.tcl] + diff --git a/hwpe/redmule/redmule.c b/hwpe/redmule/redmule.c index db549e2..6d4f9fd 100644 --- a/hwpe/redmule/redmule.c +++ b/hwpe/redmule/redmule.c @@ -28,6 +28,11 @@ int main() { volatile int errors = 0; + unsigned int cluster_id = rt_cluster_id(); + unsigned int intc_data_correctable_cnt, redmule_data_correctable_cnt = 0; + unsigned int intc_meta_correctable_cnt = 0; + unsigned int intc_data_uncorrectable_cnt, redmule_data_uncorrectable_cnt = 0; + unsigned int intc_meta_uncorrectable_cnt = 0; if(get_core_id() == 0){ @@ -97,6 +102,10 @@ int main() { // Wait for end of computation redmule_evt_wait(); + // Check number of detected errors by ECC modules inside RedMulE + redmule_data_correctable_cnt = redmule_get_data_correctable_count(); + redmule_data_uncorrectable_cnt = redmule_get_data_uncorrectable_count(); + // Disable RedMulE hwpe_cg_disable(); @@ -106,7 +115,24 @@ int main() { printf ("Terminated test with %d errors. See you!\n", errors); + // Check number of detected errors by ECC modules inside interconnect + intc_data_correctable_cnt = hwpe_hci_ecc_get_data_correctable_count(cluster_id); + intc_meta_correctable_cnt = hwpe_hci_ecc_get_meta_correctable_count(cluster_id); + intc_data_uncorrectable_cnt = hwpe_hci_ecc_get_data_uncorrectable_count(cluster_id); + intc_meta_uncorrectable_cnt = hwpe_hci_ecc_get_meta_uncorrectable_count(cluster_id); + for (int i = 0; i < 16; i++) { + intc_meta_correctable_cnt += tcdm_scrubber_get_mismatch_count(cluster_id, i); + } + + printf ("Data errors corrected inside RedMulE: %d. Data errors uncorrectable inside RedMulE: %d \n", + redmule_data_correctable_cnt, redmule_data_uncorrectable_cnt); + printf("Data errors corrected inside intc: %d. Data errors uncorrectable inside intc: %d\n", + intc_data_correctable_cnt, intc_data_uncorrectable_cnt); + printf("Meta errors corrected inside intc: %d. Meta errors uncorrectable inside intc: %d\n", + intc_meta_correctable_cnt, intc_meta_uncorrectable_cnt); + + } synch_barrier(); - return errors; + return (errors != 0) && (redmule_data_uncorrectable_cnt==0 && intc_data_uncorrectable_cnt == 0 && intc_meta_uncorrectable_cnt == 0); } From 6660fcd1ef639fe3fcbf9d677261aabbadc1b127 Mon Sep 17 00:00:00 2001 From: Luigi Ghionda Date: Fri, 31 May 2024 14:08:07 +0200 Subject: [PATCH 36/56] Add fault injection in neureka regression to test ECC HCI --- hwpe/neureka/Makefile | 11 +++++++ hwpe/neureka/inc/ecc_check.h | 27 +++++++++++++++ hwpe/neureka/pulp-nnx | 2 +- hwpe/neureka/pulp_inject_fault.tcl | 53 ++++++++++++++++++++++++++++++ hwpe/neureka/src/main.c | 34 +++++++++++++++++-- hwpe/neureka/src/nnx_layer.c | 4 +++ 6 files changed, 127 insertions(+), 4 deletions(-) create mode 100644 hwpe/neureka/inc/ecc_check.h create mode 100644 hwpe/neureka/pulp_inject_fault.tcl diff --git a/hwpe/neureka/Makefile b/hwpe/neureka/Makefile index 37ace72..92b7197 100644 --- a/hwpe/neureka/Makefile +++ b/hwpe/neureka/Makefile @@ -31,4 +31,15 @@ PULP_CFLAGS += $(INC_FLAGS) -O3 PULP_APP = test +ifeq ($(fault_inject),1) + export FAULT_INJECTION=1 + export FAULT_INJECTION_SCRIPT=$(CURDIR)/pulp_inject_fault.tcl +endif + +ifeq ($(multi_bit_upset),1) + export MULTI_BIT_UPSET=1 +else + export MULTI_BIT_UPSET=0 +endif + include $(PULP_SDK_HOME)/install/rules/pulp_rt.mk diff --git a/hwpe/neureka/inc/ecc_check.h b/hwpe/neureka/inc/ecc_check.h new file mode 100644 index 0000000..3f9783d --- /dev/null +++ b/hwpe/neureka/inc/ecc_check.h @@ -0,0 +1,27 @@ +/* + * Copyright 2024 ETH Zurich and University of Bologna + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#ifndef __ECC_CHECK_H__ +#define __ECC_CHECK_H__ + +#include + +#define ECC_REGS (4) +extern uint32_t ecc_errs[ECC_REGS]; + +#endif // __ECC_CHECK_H__ diff --git a/hwpe/neureka/pulp-nnx b/hwpe/neureka/pulp-nnx index 37a8013..47baf51 160000 --- a/hwpe/neureka/pulp-nnx +++ b/hwpe/neureka/pulp-nnx @@ -1 +1 @@ -Subproject commit 37a80138686668c455fb07af475ee7abbb8b6fbb +Subproject commit 47baf51728fcaaacbd8a332b8d03717d6c03ace1 diff --git a/hwpe/neureka/pulp_inject_fault.tcl b/hwpe/neureka/pulp_inject_fault.tcl new file mode 100644 index 0000000..fa7efb2 --- /dev/null +++ b/hwpe/neureka/pulp_inject_fault.tcl @@ -0,0 +1,53 @@ +# Copyright 2023 ETH Zurich and University of Bologna. +# Solderpad Hardware License, Version 0.51, see LICENSE for details. +# SPDX-License-Identifier: SHL-0.51 +# +# Author: Michael Rogenmoser (michaero@iis.ee.ethz.ch) + +transcript quietly +if {! [info exists ::env(VSIM_PATH)]} {error "Define VSIM_PATH"} +set utils_base_path [file join $::env(VSIM_PATH) scripts fault_injection_utils] +set script_base_path [file join $::env(VSIM_PATH) fault_injection_sim scripts] + +set verbosity 2 +set log_injections 1 +# Easy way to generate a variable seed +# set seed [clock seconds] +# Default value +set seed 12345 +set print_statistics 1 + +set inject_start_time 80000000000ps +set inject_stop_time 150000000000ps +set injection_clock "pulp_cluster_tb/cluster_i/clk_i" +set injection_clock_trigger 0 +set fault_period 100 +set rand_initial_injection_phase 1 +# max_num set to 0 means until stop_time +set max_num_fault_inject 0 +set signal_fault_duration 20ns +set register_fault_duration 0ns + +set allow_multi_bit_upset $::env(MULTI_BIT_UPSET) +set use_bitwidth_as_weight 0 +set check_core_output_modification 0 +set check_core_next_state_modification 0 +set reg_to_sig_ratio 1 + +source [file join $utils_base_path pulp_extract_nets.tcl] + +set inject_signals_netlist [] +set inject_register_netlist [] +set output_netlist [] +set next_state_netlist [] +set assertion_disable_list [] + +# for {set idx 0} {$idx < 12} {incr idx} { +# set inject_signals_netlist [list {*}$inject_signals_netlist {*}[get_all_core_nets $idx]] +# set output_netlist [list {*}$output_netlist {*}[get_core_output_nets $idx]] +# } + +set inject_register_netlist [list {*}$inject_register_netlist {*}[get_memory_slice {0 16} {0 50}]] + +source [file join $script_base_path inject_fault.tcl] + diff --git a/hwpe/neureka/src/main.c b/hwpe/neureka/src/main.c index 4a8f24e..4e82af7 100644 --- a/hwpe/neureka/src/main.c +++ b/hwpe/neureka/src/main.c @@ -23,16 +23,20 @@ * Main Test Program for N-EUREKA */ +#include #include #include #include "layer_util.h" #include "nnx_layer.h" +#include "ecc_check.h" #define OUTPUT_SIZE 512 extern int8_t output[]; +uint32_t ecc_errs[ECC_REGS]; + static int check_output() { int checksum = 0; for (int i = 0; i < OUTPUT_SIZE; i++) { @@ -42,10 +46,17 @@ static int check_output() { } int errors = 0; +unsigned int intc_data_correctable_cnt = 0; +unsigned int intc_meta_correctable_cnt = 0; +unsigned int intc_data_uncorrectable_cnt = 0; +unsigned int intc_meta_uncorrectable_cnt = 0; int main() { - if (get_core_id() == 0) { + unsigned int core_id = get_core_id(); + unsigned int cluster_id = rt_cluster_id(); + + if (core_id == 0) { // execute NNX layer execute_nnx_layer(NULL); @@ -58,8 +69,25 @@ int main() { else printf ("[OK] Terminated test with no errors!!!\n"); + // Check number of detected errors by ECC modules inside interconnect + intc_data_correctable_cnt = hwpe_hci_ecc_get_data_correctable_count(cluster_id); + intc_meta_correctable_cnt = hwpe_hci_ecc_get_meta_correctable_count(cluster_id); + intc_data_uncorrectable_cnt = hwpe_hci_ecc_get_data_uncorrectable_count(cluster_id); + intc_meta_uncorrectable_cnt = hwpe_hci_ecc_get_meta_uncorrectable_count(cluster_id); + for (int i = 0; i < 16; i++) { + intc_meta_correctable_cnt += tcdm_scrubber_get_mismatch_count(cluster_id, i); + } + + printf("Data errors corrected inside Neureka: %d. Data errors uncorrectable inside Neureka: %d\n", + ecc_errs[0], ecc_errs[1]); + printf("Meta errors corrected inside Neureka: %d. Meta errors uncorrectable inside Neureka: %d\n", + ecc_errs[2], ecc_errs[3]); + + printf("Data errors corrected inside intc: %d. Data errors uncorrectable inside intc: %d\n", + intc_data_correctable_cnt, intc_data_uncorrectable_cnt); + printf("Meta errors corrected inside intc: %d. Meta errors uncorrectable inside intc: %d\n", + intc_meta_correctable_cnt, intc_meta_uncorrectable_cnt); } synch_barrier(); - return errors; - + return (errors != 0) && (intc_data_uncorrectable_cnt == 0 && intc_meta_uncorrectable_cnt == 0 && (ecc_errs[1]==0 && ecc_errs[3]==0)); } diff --git a/hwpe/neureka/src/nnx_layer.c b/hwpe/neureka/src/nnx_layer.c index cb53369..57eb6fc 100644 --- a/hwpe/neureka/src/nnx_layer.c +++ b/hwpe/neureka/src/nnx_layer.c @@ -19,6 +19,7 @@ */ #include "nnx_layer.h" +#include "ecc_check.h" #include #include "neureka.h" @@ -57,6 +58,7 @@ typedef neureka_task_flag_e nnx_task_flag_e; #define nnx_dispatch_wait neureka_nnx_dispatch_wait #define nnx_dispatch neureka_nnx_dispatch #define nnx_resolve_wait neureka_nnx_resolve_wait +#define nnx_read_ecc_regs neureka_nnx_read_ecc_regs #define nnx_term neureka_nnx_term // Generated headers @@ -160,6 +162,8 @@ static void task_execute(nnx_task_t *task) { nnx_resolve_wait(dev, task); + nnx_read_ecc_regs(dev, (uint32_t)ecc_errs); + nnx_term(dev); } From b1c3f826ebee842f91be9a504e1cab94a9f95840 Mon Sep 17 00:00:00 2001 From: Francesco Conti Date: Fri, 23 Aug 2024 17:09:02 +0200 Subject: [PATCH 37/56] Add redmule_softclear, redmule_256iter tests --- astral/redmule_256iter | 1 + astral/redmule_softclear | 1 + hwpe/redmule/hal_redmule.h | 15 +- hwpe/redmule/redmule.c | 2 + hwpe/redmule_256iter/Makefile | 20 + hwpe/redmule_256iter/archi_redmule.h | 170 ++++++ hwpe/redmule_256iter/hal_redmule.h | 556 +++++++++++++++++++ hwpe/redmule_256iter/inc/golden.h | 387 +++++++++++++ hwpe/redmule_256iter/inc/tensor_dim.h | 13 + hwpe/redmule_256iter/inc/w_2D.h | 35 ++ hwpe/redmule_256iter/inc/w_input.h | 35 ++ hwpe/redmule_256iter/inc/x_2D.h | 27 + hwpe/redmule_256iter/inc/x_input.h | 27 + hwpe/redmule_256iter/inc/y_2D.h | 27 + hwpe/redmule_256iter/inc/y_input.h | 27 + hwpe/redmule_256iter/inc/z_2D.h | 27 + hwpe/redmule_256iter/inc/z_output.h | 27 + hwpe/redmule_256iter/pulp_inject_fault.tcl | 53 ++ hwpe/redmule_256iter/redmule.c | 141 +++++ hwpe/redmule_softclear/Makefile | 20 + hwpe/redmule_softclear/archi_redmule.h | 170 ++++++ hwpe/redmule_softclear/hal_redmule.h | 556 +++++++++++++++++++ hwpe/redmule_softclear/inc/golden.h | 387 +++++++++++++ hwpe/redmule_softclear/inc/tensor_dim.h | 13 + hwpe/redmule_softclear/inc/w_2D.h | 35 ++ hwpe/redmule_softclear/inc/w_input.h | 35 ++ hwpe/redmule_softclear/inc/x_2D.h | 27 + hwpe/redmule_softclear/inc/x_input.h | 27 + hwpe/redmule_softclear/inc/y_2D.h | 27 + hwpe/redmule_softclear/inc/y_input.h | 27 + hwpe/redmule_softclear/inc/z_2D.h | 27 + hwpe/redmule_softclear/inc/z_output.h | 27 + hwpe/redmule_softclear/pulp_inject_fault.tcl | 53 ++ hwpe/redmule_softclear/redmule.c | 185 ++++++ 34 files changed, 3206 insertions(+), 1 deletion(-) create mode 120000 astral/redmule_256iter create mode 120000 astral/redmule_softclear create mode 100644 hwpe/redmule_256iter/Makefile create mode 100644 hwpe/redmule_256iter/archi_redmule.h create mode 100644 hwpe/redmule_256iter/hal_redmule.h create mode 100644 hwpe/redmule_256iter/inc/golden.h create mode 100644 hwpe/redmule_256iter/inc/tensor_dim.h create mode 100644 hwpe/redmule_256iter/inc/w_2D.h create mode 100644 hwpe/redmule_256iter/inc/w_input.h create mode 100644 hwpe/redmule_256iter/inc/x_2D.h create mode 100644 hwpe/redmule_256iter/inc/x_input.h create mode 100644 hwpe/redmule_256iter/inc/y_2D.h create mode 100644 hwpe/redmule_256iter/inc/y_input.h create mode 100644 hwpe/redmule_256iter/inc/z_2D.h create mode 100644 hwpe/redmule_256iter/inc/z_output.h create mode 100644 hwpe/redmule_256iter/pulp_inject_fault.tcl create mode 100644 hwpe/redmule_256iter/redmule.c create mode 100644 hwpe/redmule_softclear/Makefile create mode 100644 hwpe/redmule_softclear/archi_redmule.h create mode 100644 hwpe/redmule_softclear/hal_redmule.h create mode 100644 hwpe/redmule_softclear/inc/golden.h create mode 100644 hwpe/redmule_softclear/inc/tensor_dim.h create mode 100644 hwpe/redmule_softclear/inc/w_2D.h create mode 100644 hwpe/redmule_softclear/inc/w_input.h create mode 100644 hwpe/redmule_softclear/inc/x_2D.h create mode 100644 hwpe/redmule_softclear/inc/x_input.h create mode 100644 hwpe/redmule_softclear/inc/y_2D.h create mode 100644 hwpe/redmule_softclear/inc/y_input.h create mode 100644 hwpe/redmule_softclear/inc/z_2D.h create mode 100644 hwpe/redmule_softclear/inc/z_output.h create mode 100644 hwpe/redmule_softclear/pulp_inject_fault.tcl create mode 100644 hwpe/redmule_softclear/redmule.c diff --git a/astral/redmule_256iter b/astral/redmule_256iter new file mode 120000 index 0000000..e81b225 --- /dev/null +++ b/astral/redmule_256iter @@ -0,0 +1 @@ +../hwpe/redmule_256iter/ \ No newline at end of file diff --git a/astral/redmule_softclear b/astral/redmule_softclear new file mode 120000 index 0000000..2904f52 --- /dev/null +++ b/astral/redmule_softclear @@ -0,0 +1 @@ +../hwpe/redmule_softclear/ \ No newline at end of file diff --git a/hwpe/redmule/hal_redmule.h b/hwpe/redmule/hal_redmule.h index ef0b633..8fc5000 100644 --- a/hwpe/redmule/hal_redmule.h +++ b/hwpe/redmule/hal_redmule.h @@ -81,8 +81,12 @@ static inline unsigned int hwpe_get_status() { return HWPE_READ(REDMULE_STATUS); } +static inline unsigned int hwpe_get_running_job() { + return HWPE_READ(REDMULE_RUNNING_JOB); +} + static inline void hwpe_soft_clear() { - HWPE_WRITE(1, REDMULE_SOFT_CLEAR); + HWPE_WRITE(0, REDMULE_SOFT_CLEAR); } static inline void hwpe_cg_enable() { @@ -99,6 +103,15 @@ static inline void redmule_evt_wait() { } while((*(int volatile *)(ARCHI_CLUST_HWPE_BASE + REDMULE_STATUS)) != 0); } +static inline int hwpe_wait_acquire() { + int job_id = hwpe_acquire_job(); + while(job_id < 0) { + eu_evt_maskWaitAndClr (1 << ARCHI_CL_HWPE_EVT0); + job_id = hwpe_acquire_job(); + } + return job_id; +} + static inline unsigned int redmule_get_data_correctable_count () { return HWPE_READ(REDMULE_ECC_REG_OFFS + DATA_CORR_ERR); } diff --git a/hwpe/redmule/redmule.c b/hwpe/redmule/redmule.c index 6d4f9fd..44a724d 100644 --- a/hwpe/redmule/redmule.c +++ b/hwpe/redmule/redmule.c @@ -81,8 +81,10 @@ int main() { // Enable RedMulE hwpe_cg_enable(); + asm volatile("": : :"memory"); hwpe_soft_clear(); + asm volatile("": : :"memory"); // redmule_cfg ((unsigned int) x, // (unsigned int) w, diff --git a/hwpe/redmule_256iter/Makefile b/hwpe/redmule_256iter/Makefile new file mode 100644 index 0000000..88346b6 --- /dev/null +++ b/hwpe/redmule_256iter/Makefile @@ -0,0 +1,20 @@ +PULP_APP = test +PULP_APP_SRCS = redmule.c +PULP_CFLAGS = -O3 + +ifeq ($(use_dma),1) + PULP_CFLAGS += -DUSE_DMA +endif + +ifeq ($(fault_inject),1) + export FAULT_INJECTION=1 + export FAULT_INJECTION_SCRIPT=$(CURDIR)/pulp_inject_fault.tcl +endif + +ifeq ($(multi_bit_upset),1) + export MULTI_BIT_UPSET=1 +else + export MULTI_BIT_UPSET=0 +endif + +include $(PULP_SDK_HOME)/install/rules/pulp_rt.mk diff --git a/hwpe/redmule_256iter/archi_redmule.h b/hwpe/redmule_256iter/archi_redmule.h new file mode 100644 index 0000000..662e1e6 --- /dev/null +++ b/hwpe/redmule_256iter/archi_redmule.h @@ -0,0 +1,170 @@ +/* + * Copyright (C) 2022-2023 ETH Zurich and University of Bologna + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * SPDX-License-Identifier: Apache-2.0 + * + * Author: Yvan Tortorella + * + * High-level architecture of RedMulE + * + */ + +#ifndef __ARCHI_REDMULE_H__ +#define __ARCHI_REDMULE_H__ + +/* + * |========================================================================| + * || || + * ||Control and generic configuration register layout || + * |========================================================================| + * || # reg | offset | bits | bitmask || content || + * ||-------+----------+---------+--------------++-------------------------|| + * || 0 | 0x0000 | 31: 0 | 0xFFFFFFFF || TRIGGER || + * || 1 | 0x0004 | 31: 0 | 0xFFFFFFFF || ACQUIRE || + * || 2 | 0x0008 | 31: 0 | 0xFFFFFFFF || EVT_ENABLE || + * || 3 | 0x000c | 31: 0 | 0xFFFFFFFF || STATUS || + * || 4 | 0x0010 | 31: 0 | 0xFFFFFFFF || RUNNING_JOB || + * || 5 | 0x0014 | 31: 0 | 0xFFFFFFFF || SOFT_CLEAR || + * |========================================================================| + * || || + * ||Job-dependent registers layout || + * |========================================================================| + * || # reg | offset | bits | bitmask || content || + * ||-------+----------+---------+--------------++-------------------------|| + * || 0 | 0x0040 | 31: 0 | 0xFFFFFFFF || X_ADDR || + * ||-------+----------+---------+--------------++-------------------------|| + * || 1 | 0x0044 | 31: 0 | 0xFFFFFFFF || W_ADDR || + * ||-------+----------+---------+--------------++-------------------------|| + * || 2 | 0x0048 | 31: 0 | 0xFFFFFFFF || Z_ADDR || + * ||-------+----------+---------+--------------++-------------------------|| + * || 3 | 0x004C | | || Matrix Config 0 Reg || + * || | | 31:16 | 0xFFFF0000 || K Size (W Columns) || + * || | | 15: 0 | 0x0000FFFF || M Size (X Rows) || + * ||-------+----------+---------+--------------++-------------------------|| + * || 4 | 0x0050 | | || Matrix Config 1 Reg || + * || | | 31:16 | 0xFFFFFFFF || N Size (X Cols/W Rows) || + * ||-------+----------+---------+--------------++-------------------------|| + * || 5 | 0x0054 | | || Matrix Arithmetic Reg || + * || | | 12:10 | 0x00001C00 || Operation selection || + * || | | 9: 7 | 0x00000380 || Input/Output format || + * |========================================================================| + * + */ + +/* PULP Cluster Archi defines */ +#define ARCHI_CLUST_CTRL_BASE 0x50200000 +#define ARCHI_CLUST_HWPE_BASE 0x50201000 +#define DMA_COMMAND_QUEUE 0x50204400 +#define DMA_STATUS_REGISTER 0x50204404 +#define ARCHI_CL_HWPE_EVT0 12 +#define ARCHI_CL_HWPE_EVT1 13 +#define FC_DMA_EVENT 8 +#define CL_DMA_EVENT 22 +#define CLUST_CTRL_HWPE_EN 0x18 +#define CLUST_CTRL_HWPE_EN_MASK 0x800 +#define __builtin_bitinsert(a,b,c,d) (a | (((b << (32-c)) >> (32-c)) << d)) + +// RedMulE architecture +#define ADDR_WIDTH 32 +#define DATA_WIDTH 256 +#define REDMULE_FMT 16 +#define ARRAY_HEIGHT 4 +#define PIPE_REGS 3 +#define ARRAY_WIDTH 12 /* Superior limit is ARRAY_HEIGHT*PIPE_REGS */ + +// Commands +#define REDMULE_TRIGGER 0x00 +#define REDMULE_ACQUIRE 0x04 +#define REDMULE_FINISHED 0x08 +#define REDMULE_STATUS 0x0C +#define REDMULE_RUNNING_JOB 0x10 +#define REDMULE_SOFT_CLEAR 0x14 + +// Registers +#define REDMULE_REG_OFFS 0x40 +// #define REDMULE_REG_X_PTR 0x00 +// #define REDMULE_REG_W_PTR 0x04 +// #define REDMULE_REG_Z_PTR 0x08 +// #define REDMULE_MCFG0_PTR 0x0C +// #define REDMULE_MCFG1_PTR 0x10 +// #define REDMULE_ARITH_PTR 0x14 +#define REDMULE_REG_X_PTR 0x00 +#define REDMULE_REG_W_PTR 0x04 +#define REDMULE_REG_Y_PTR 0x08 +#define REDMULE_REG_Z_PTR 0x0C +#define REDMULE_REG_X_ITER_PTR 0x10 +#define REDMULE_REG_W_ITER_PTR 0x14 +#define REDMULE_REG_LEFTOVERS_PTR 0x18 +#define REDMULE_REG_LEFT_PARAMS_PTR 0x1C +#define REDMULE_REG_X_D1_STRIDE_PTR 0x20 +#define REDMULE_REG_W_TOT_LEN_PTR 0x24 +#define REDMULE_REG_TOT_X_READ_PTR 0x28 +#define REDMULE_REG_W_D0_STRIDE_PTR 0x2C +#define REDMULE_REG_YZ_TOT_LEN_PTR 0x30 +#define REDMULE_REG_YZ_D0_STRIDE_PTR 0x34 +#define REDMULE_REG_YZ_D2_STRIDE_PTR 0x38 +#define REDMULE_REG_X_ROWS_OFFS_PTR 0x3C +#define REDMULE_REG_X_BUFFER_SLOTS_PTR 0x40 +#define REDMULE_REG_X_TOT_LEN_PTR 0x44 +#define REDMULE_REG_OP_SELECTION 0x48 + +#define REDMULE_ECC_REG_OFFS 0x90 +#define DATA_CORR_ERR 0x00 +#define DATA_UNCORR_ERR 0x04 +#define METADATA_CORR_ERR 0x08 +#define METADATA_UNCORR_ERR 0x0c + +// OPs definition +#define MATMUL 0x0 +#define GEMM 0x1 +#define ADDMAX 0x2 +#define ADDMIN 0x3 +#define MULMAX 0x4 +#define MULMIN 0x5 +#define MAXMIN 0x6 +#define MINMAX 0x7 + +// GEMM formats +#define Float8 0x0 +#define Float16 0x1 +#define Float8Alt 0x2 +#define Float16Alt 0x3 + +#define RNE 0x0 +#define RTZ 0x1 +#define OP_FMADD 0x0 +#define OP_ADD 0x2 +#define OP_MUL 0x3 +#define OP_MINMAX 0x7 + +// FP Formats encoding +#define FP16 0x2 +#define FP8 0x3 +#define FP16ALT 0x4 +#define FP8ALT 0x5 + +/* DMA Archi */ +#define DMA_TX 0 +#define DMA_RX 1 +#define DMA_INC 1 + +#define PLP_DMA_TYPE_BIT 0x00000011 +#define PLP_DMA_INCR_BIT 0x00000012 +#define PLP_DMA_2D_BIT 0x00000013 +#define PLP_DMA_ELE_BIT 0x00000014 +#define PLP_DMA_ILE_BIT 0x00000015 +#define PLP_DMA_BLE_BIT 0x00000016 +#define PLP_DMA_2D_TCDM_BIT 0x0000017 + +#endif diff --git a/hwpe/redmule_256iter/hal_redmule.h b/hwpe/redmule_256iter/hal_redmule.h new file mode 100644 index 0000000..8fc5000 --- /dev/null +++ b/hwpe/redmule_256iter/hal_redmule.h @@ -0,0 +1,556 @@ +/* + * Copyright (C) 2022-2023 ETH Zurich and University of Bologna + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * SPDX-License-Identifier: Apache-2.0 + * + * Author: Yvan Tortorella + * + * RedMulE Hardware Abstraction Layer (HAL) + */ + +#ifndef __HAL_REDMULE_H__ +#define __HAL_REDMULE_H__ + +#include +#include "inc/x_input.h" +#include "inc/w_input.h" +#include "inc/y_input.h" +#include "inc/z_output.h" +#include "inc/golden.h" +#include "inc/tensor_dim.h" + +/* + * + * For control, generic configuration register layout, + * and job-dependent register map, look at redmule_archi.h + * + */ + +// For all the following functions we use __builtin_pulp_OffsetedWrite and __builtin_pulp_OffsetedRead +// instead of classic load/store because otherwise the compiler is not able to correctly factorize +// the HWPE base in case several accesses are done, ending up with twice more code + +#define HWPE_WRITE(value, offset) *(int *)(ARCHI_CLUST_HWPE_BASE + offset) = value +#define HWPE_READ(offset) *(int *)(ARCHI_CLUST_HWPE_BASE + offset) + +static inline void redmule_x_add_set (unsigned int value) { + HWPE_WRITE(value, REDMULE_REG_OFFS + REDMULE_REG_X_PTR); +} + +static inline void redmule_w_add_set (unsigned int value) { + HWPE_WRITE(value, REDMULE_REG_OFFS + REDMULE_REG_W_PTR); +} + +static inline void redmule_y_add_set (unsigned int value) { + HWPE_WRITE(value, REDMULE_REG_OFFS + REDMULE_REG_Y_PTR); +} + +static inline void redmule_z_add_set (unsigned int value) { + HWPE_WRITE(value, REDMULE_REG_OFFS + REDMULE_REG_Z_PTR); +} + +// static inline void redmule_mcfg_set (uint32_t mcfg0, uint32_t mcfg1) { +// HWPE_WRITE(mcfg0, REDMULE_REG_OFFS + REDMULE_MCFG0_PTR); +// HWPE_WRITE(mcfg1, REDMULE_REG_OFFS + REDMULE_MCFG1_PTR); +// } +// +// static inline void redmule_arith_set (uint32_t arith) { +// HWPE_WRITE(arith, REDMULE_REG_OFFS + REDMULE_ARITH_PTR); +// } + +static inline void hwpe_trigger_job() { + HWPE_WRITE(0, REDMULE_TRIGGER); +} + +static inline int hwpe_acquire_job() { + return HWPE_READ(REDMULE_ACQUIRE); +} + +static inline unsigned int hwpe_get_status() { + return HWPE_READ(REDMULE_STATUS); +} + +static inline unsigned int hwpe_get_running_job() { + return HWPE_READ(REDMULE_RUNNING_JOB); +} + +static inline void hwpe_soft_clear() { + HWPE_WRITE(0, REDMULE_SOFT_CLEAR); +} + +static inline void hwpe_cg_enable() { + *(volatile int*) (ARCHI_CLUST_CTRL_BASE + CLUST_CTRL_HWPE_EN) |= CLUST_CTRL_HWPE_EN_MASK; +} + +static inline void hwpe_cg_disable() { + *(volatile int*) (ARCHI_CLUST_CTRL_BASE + CLUST_CTRL_HWPE_EN) &= ~CLUST_CTRL_HWPE_EN_MASK; +} + +static inline void redmule_evt_wait() { + do { + eu_evt_maskWaitAndClr (1 << ARCHI_CL_HWPE_EVT0); + } while((*(int volatile *)(ARCHI_CLUST_HWPE_BASE + REDMULE_STATUS)) != 0); +} + +static inline int hwpe_wait_acquire() { + int job_id = hwpe_acquire_job(); + while(job_id < 0) { + eu_evt_maskWaitAndClr (1 << ARCHI_CL_HWPE_EVT0); + job_id = hwpe_acquire_job(); + } + return job_id; +} + +static inline unsigned int redmule_get_data_correctable_count () { + return HWPE_READ(REDMULE_ECC_REG_OFFS + DATA_CORR_ERR); +} + +static inline unsigned int redmule_get_data_uncorrectable_count () { + return HWPE_READ(REDMULE_ECC_REG_OFFS + DATA_UNCORR_ERR); +} + +static inline unsigned int redmule_get_meta_correctable_count () { + return HWPE_READ(REDMULE_ECC_REG_OFFS + METADATA_CORR_ERR); +} + +static inline unsigned int redmule_get_meta_uncorrectable_count () { + return HWPE_READ(REDMULE_ECC_REG_OFFS + METADATA_UNCORR_ERR); +} + +/* DMA APIs */ +static inline int mchan_alloc(){ + return *(volatile int*) DMA_COMMAND_QUEUE; +} + +static inline void mchan_transfer(unsigned int len, + unsigned int ext_addr, + unsigned int tcdm_addr) { + + *(volatile int*) DMA_COMMAND_QUEUE = len | + (DMA_RX << PLP_DMA_TYPE_BIT) | + (DMA_INC << PLP_DMA_INCR_BIT) | + (0 << PLP_DMA_2D_BIT) | + (1 << PLP_DMA_ELE_BIT) | + (1 << PLP_DMA_ILE_BIT) | + (0 << PLP_DMA_BLE_BIT) | + (0 << PLP_DMA_2D_TCDM_BIT); + *(volatile int*) DMA_COMMAND_QUEUE = tcdm_addr; + *(volatile int*) DMA_COMMAND_QUEUE = ext_addr; +} + +static inline void mchan_barrier(int id) { + while(((*(volatile int*)(DMA_STATUS_REGISTER)) >> id ) & 0x1 ) { + eu_evt_maskWaitAndClr(1 << FC_DMA_EVENT); + } +} + +static inline void mchan_free(int id) { + *(volatile int*) DMA_STATUS_REGISTER = 0x1 << id; +} + +// void redmule_cfg (unsigned int x, unsigned int w, unsigned int z, +// uint16_t m_size, uint16_t n_size, uint16_t k_size, +// uint8_t gemm_op, uint8_t gemm_fmt){ +// +// uint32_t mcfg_reg0 = 0; +// uint32_t mcfg_reg1 = 0; +// uint32_t arith_reg = 0; +// +// mcfg_reg0 = (k_size << 16) | +// (m_size << 0); +// mcfg_reg1 = n_size << 0; +// +// arith_reg = (gemm_op << 10) | +// (gemm_fmt << 7); +// +// redmule_x_add_set ((unsigned int) x); +// redmule_w_add_set ((unsigned int) w); +// redmule_z_add_set ((unsigned int) z); +// redmule_mcfg_set ((unsigned int) mcfg_reg0, +// (unsigned int) mcfg_reg1); +// redmule_arith_set ((unsigned int) arith_reg); +// +// } + +void redmule_cfg (uint16_t m_size, uint16_t n_size, uint16_t k_size, uint8_t gemm_ops){ + uint32_t x_iters = 0; + uint32_t w_iters = 0; + uint32_t leftovers = 0; + uint32_t left_params = 0; + uint32_t x_d1_stride = 0; + uint32_t x_rows_offs = 0; + uint32_t w_tot_len = 0; + uint32_t w_d1_len = 0; + uint32_t w_d0_stride = 0; + uint32_t yz_tot_len = 0; + uint32_t yz_d0_stride = 0; + uint32_t yz_d2_stride = 0; + uint32_t tot_x_read = 0; + uint32_t x_buffer_slots = 0; + uint32_t op_selection = 0; + uint16_t tot_stores = 0; + uint16_t w_rows = n_size; + uint16_t depth = DATA_WIDTH/(ARRAY_HEIGHT*FPFORMAT); + uint8_t tile = ARRAY_HEIGHT*(PIPE_REGS + 1); + _Bool x_rows_sub = 0; + _Bool x_cols_sub = 0; + _Bool w_cols_sub = 0; + uint16_t x_rows_iter, + x_rows_iter_tmp, + w_rows_iter, + w_rows_iter_tmp; + uint16_t x_cols_iter, + x_cols_iter_tmp, + w_cols_iter, + w_cols_iter_tmp; + uint8_t x_rows_lftovr, + x_cols_lftovr, + w_rows_lftovr, + w_cols_lftovr, + slots; + + // Calculating the number of iterations alng the two dimensions of the X matrix + x_rows_iter_tmp = m_size/ARRAY_WIDTH; + x_cols_iter_tmp = n_size/tile; + + // Calculating the number of iterations alng the two dimensions of the W matrix + w_rows_iter_tmp = w_rows; + w_cols_iter_tmp = k_size/tile; + + // Calculating the residuals along the input dimensions + x_rows_lftovr = m_size - (x_rows_iter_tmp*ARRAY_WIDTH); + x_cols_lftovr = n_size - (x_cols_iter_tmp*tile); + + // Calculating the residuals along the weight dimensions + w_rows_lftovr = n_size - (ARRAY_HEIGHT*(w_rows/ARRAY_HEIGHT)); + w_cols_lftovr = k_size - (w_cols_iter_tmp*tile); + + if (w_cols_lftovr != 0) + w_cols_iter = w_cols_iter_tmp + 1; + else + w_cols_iter = w_cols_iter_tmp; + + if (w_rows_lftovr != 0) + w_rows_iter = w_rows_iter_tmp + ARRAY_HEIGHT - w_rows_lftovr; + else + w_rows_iter = w_rows_iter_tmp; + + if (x_cols_lftovr != 0) + x_cols_iter = x_cols_iter_tmp + 1; + else + x_cols_iter = x_cols_iter_tmp; + + if (x_rows_lftovr != 0) + x_rows_iter = x_rows_iter_tmp + 1; + else + x_rows_iter = x_rows_iter_tmp; + + if (x_cols_lftovr%depth != 0) + x_buffer_slots = x_cols_lftovr/depth + 1; + else + x_buffer_slots = x_cols_lftovr/depth; + + // Calculating the number of total stores + tot_stores = x_rows_iter*w_cols_iter; + + // Determining if input matrixes are sub-matrixes + if (m_size < ARRAY_WIDTH) + x_rows_sub = 1; + if (n_size < ARRAY_HEIGHT) + x_cols_sub = 1; + if (k_size < tile) + w_cols_sub = 1; + + // Operation selection + switch (gemm_ops) { + case MATMUL: + op_selection |= (RNE << 29 | RNE << 26 | OP_FMADD << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 0; + break; + + case GEMM: + op_selection |= (RNE << 29 | RNE << 26 | OP_FMADD << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; + break; + + case ADDMAX: + op_selection |= (RNE << 29 | RTZ << 26 | OP_ADD << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; + break; + + case ADDMIN: + op_selection |= (RNE << 29 | RNE << 26 | OP_ADD << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; + break; + + case MULMAX: + op_selection |= (RNE << 29 | RTZ << 26 | OP_MUL << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; + break; + + case MULMIN: + op_selection |= (RNE << 29 | RNE << 26 | OP_MUL << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; + break; + + case MAXMIN: + op_selection |= (RTZ << 29 | RNE << 26 | OP_MINMAX << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; + break; + + case MINMAX: + op_selection |= (RNE << 29 | RTZ << 26 | OP_MINMAX << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; + break; + } + + // Storing iterations and residuals in registers + x_iters |= x_rows_iter << 16 | x_cols_iter << 0; + w_iters |= w_rows_iter << 16 | w_cols_iter << 0; + leftovers |= x_rows_lftovr << 24 | x_cols_lftovr << 16 | w_rows_lftovr << 8 | w_cols_lftovr << 0; + left_params |= tot_stores << 16 | x_rows_sub << 15 | x_cols_sub << 14 | w_cols_sub << 13; + x_d1_stride = ((4*FPFORMAT)/ADDR_WIDTH)*(((DATA_WIDTH/FPFORMAT)*x_cols_iter_tmp) + x_cols_lftovr); + x_rows_offs = ARRAY_WIDTH*x_d1_stride; + w_tot_len = w_rows_iter*w_cols_iter*x_rows_iter; + w_d0_stride = ((4*FPFORMAT)/ADDR_WIDTH)*(((DATA_WIDTH/FPFORMAT)*w_cols_iter_tmp) + w_cols_lftovr); + yz_tot_len = ARRAY_WIDTH*x_rows_iter*w_cols_iter; + yz_d0_stride = w_d0_stride; + yz_d2_stride = ARRAY_WIDTH*w_d0_stride; + tot_x_read = x_rows_iter*x_cols_iter*w_cols_iter; + + // Writing the computations in configuration register + HWPE_WRITE(x_iters , REDMULE_REG_OFFS + REDMULE_REG_X_ITER_PTR ); + HWPE_WRITE(w_iters , REDMULE_REG_OFFS + REDMULE_REG_W_ITER_PTR ); + HWPE_WRITE(leftovers , REDMULE_REG_OFFS + REDMULE_REG_LEFTOVERS_PTR ); + HWPE_WRITE(left_params , REDMULE_REG_OFFS + REDMULE_REG_LEFT_PARAMS_PTR ); + HWPE_WRITE(x_d1_stride , REDMULE_REG_OFFS + REDMULE_REG_X_D1_STRIDE_PTR ); + HWPE_WRITE(x_rows_offs , REDMULE_REG_OFFS + REDMULE_REG_X_ROWS_OFFS_PTR ); + HWPE_WRITE(tot_x_read , REDMULE_REG_OFFS + REDMULE_REG_TOT_X_READ_PTR ); + HWPE_WRITE(x_buffer_slots, REDMULE_REG_OFFS + REDMULE_REG_X_BUFFER_SLOTS_PTR ); + HWPE_WRITE(w_tot_len , REDMULE_REG_OFFS + REDMULE_REG_W_TOT_LEN_PTR ); + HWPE_WRITE(w_d0_stride , REDMULE_REG_OFFS + REDMULE_REG_W_D0_STRIDE_PTR ); + HWPE_WRITE(yz_tot_len , REDMULE_REG_OFFS + REDMULE_REG_YZ_TOT_LEN_PTR ); + HWPE_WRITE(yz_d0_stride , REDMULE_REG_OFFS + REDMULE_REG_YZ_D0_STRIDE_PTR ); + HWPE_WRITE(yz_d2_stride , REDMULE_REG_OFFS + REDMULE_REG_YZ_D2_STRIDE_PTR ); + HWPE_WRITE(op_selection , REDMULE_REG_OFFS + REDMULE_REG_OP_SELECTION ); +} + +void generate_test_data16(int x_start_addr, + int w_start_addr, + int y_start_addr, + int m_size, + int n_size, + int k_size) { + + int x_addr = x_start_addr; + int w_addr = w_start_addr; + int y_addr = y_start_addr; + int x_end_addr = x_start_addr + (2*m_size*n_size); + int w_end_addr = w_start_addr + (2*n_size*k_size); + int y_end_addr = y_start_addr + (2*m_size*k_size); + + // Generating input stimuli from golden model + for (x_addr = x_start_addr; x_addr < x_end_addr; x_addr += 2) { + int x = x_addr - x_start_addr; + *(uint32_t *)(x_addr) = x_inp[x/2]; + } + + // Generating Weight stimuli from golden model + for (w_addr = w_start_addr; w_addr < w_end_addr; w_addr += 2) { + int w = w_addr - w_start_addr; + *(uint32_t *)(w_addr) = w_inp[w/2]; + } + + for (y_addr = y_start_addr; y_addr < y_end_addr; y_addr += 2) { + int y = y_addr - y_start_addr; + *(uint32_t *)(y_addr) = y_inp[y/2]; + } +} + +int redmule_compare16 (int z_start_addr, int m_size, int k_size) { + int err = 0; + int z_end_addr = z_start_addr + 2*m_size*k_size; + uint16_t z_computed; + uint16_t diff, diff_1, diff_2; + + for (int z_addr = z_start_addr; z_addr < z_end_addr; z_addr += 2) { + int z = z_addr - z_start_addr; + z_computed = *(uint32_t *)(z_addr); + + if ( z_computed != z_oup[z/2] ) { + diff_1 = z_computed - z_oup[z/2]; + if (diff_1 > 3) { + diff_2 = z_oup[z/2] - z_computed; + if (diff_2 > 3) { + err++; + } + } + } + } + + return err; + +} + +int redmule16_compare_int(uint32_t *actual_z, uint32_t *golden_z, int len) { + #define ERR 0x0011 + uint32_t actual_word = 0; + uint16_t actual_MSHWord, actual_LSHWord; + uint32_t golden_word = 0; + uint16_t golden_MSHWord, golden_LSHWord; + uint32_t actual = 0; + uint32_t golden = 0; + + int errors = 0; + int error; + + for (int i=0; i golden_LSHWord) ? (actual_LSHWord - golden_LSHWord) : 0; + diff = (actual_LSHWord < golden_LSHWord) ? (golden_LSHWord - actual_LSHWord) : 0; + + if (diff > ERR) { + error = 1; + #ifdef VERBOSE + tfp_printf ("diff: 0x%08x\n", diff); + tfp_printf ("LSW: Error!\n"); + #endif + } + + // Checking Most Significant Half-Word + actual_MSHWord = (uint16_t)((actual_word >> 16) & 0x0000FFFF); + golden_MSHWord = (uint16_t)((golden_word >> 16) & 0x0000FFFF); + + diff = (actual_MSHWord > golden_MSHWord) ? (actual_MSHWord - golden_MSHWord) : 0; + diff = (actual_MSHWord < golden_MSHWord) ? (golden_MSHWord - actual_MSHWord) : 0; + + if (diff > ERR) { + error = 1; + #ifdef VERBOSE + tfp_printf ("diff: 0x%08x\n", diff); + tfp_printf ("MSW: Error!\n"); + #endif + } + + errors += error; + + #ifdef DEBUG + tfp_printf(" Golden: 0x%08x; Actual: 0x%08x,\n", golden_word, actual_word); + #endif + + #ifdef VERBOSE + if(error) { + if(errors==1) tfp_printf(" golden <- actual @ address @ index\n"); + tfp_printf(" 0x%08x <- 0x%08x @ 0x%08x @ 0x%08x\n", golden_word, actual_word, (actual_z+i), i*4); + } + #endif + } + return errors; +} + +int redmule8_compare_int(uint32_t *actual_z, uint32_t *golden_z, int len) { + #define ERR 0x0011 + uint32_t actual_word = 0; + uint8_t actual_Byte0, + actual_Byte1, + actual_Byte2, + actual_Byte3; + uint32_t golden_word = 0; + uint8_t golden_Byte0, + golden_Byte1, + golden_Byte2, + golden_Byte3; + uint32_t actual = 0; + uint32_t golden = 0; + + int errors = 0; + int error; + + for (int i=0; i golden_Byte0) ? (actual_Byte0 - golden_Byte0) : 0; + diff = (actual_Byte0 < golden_Byte0) ? (golden_Byte0 - actual_Byte0) : 0; + + if (diff > ERR) { + error = 1; + tfp_printf ("diff: 0x%08x\n", diff); + tfp_printf ("Byte0: Error!\n"); + } + + // Cheching Byte1 + actual_Byte1 = (uint8_t)( (actual_word >> 8 ) & 0x000000FF); + golden_Byte1 = (uint8_t)( (golden_word >> 8 ) & 0x000000FF); + + diff = (actual_Byte1 > golden_Byte1) ? (actual_Byte1 - golden_Byte1) : 0; + diff = (actual_Byte1 < golden_Byte1) ? (golden_Byte1 - actual_Byte1) : 0; + + if (diff > ERR) { + error = 1; + tfp_printf ("diff: 0x%08x\n", diff); + tfp_printf ("Byte1: Error!\n"); + } + + // Cheching Byte2 + actual_Byte2 = (uint8_t)( (actual_word >> 16 ) & 0x000000FF); + golden_Byte2 = (uint8_t)( (golden_word >> 16 ) & 0x000000FF); + + diff = (actual_Byte2 > golden_Byte2) ? (actual_Byte2 - golden_Byte2) : 0; + diff = (actual_Byte2 < golden_Byte2) ? (golden_Byte2 - actual_Byte2) : 0; + + if (diff > ERR) { + error = 1; + tfp_printf ("diff: 0x%08x\n", diff); + tfp_printf ("Byte2: Error!\n"); + } + + // Cheching Byte3 + actual_Byte3 = (uint8_t)( (actual_word >> 24 ) & 0x000000FF); + golden_Byte3 = (uint8_t)( (golden_word >> 24 ) & 0x000000FF); + + diff = (actual_Byte3 > golden_Byte3) ? (actual_Byte3 - golden_Byte3) : 0; + diff = (actual_Byte3 < golden_Byte3) ? (golden_Byte3 - actual_Byte3) : 0; + + if (diff > ERR) { + error = 1; + tfp_printf ("diff: 0x%08x\n", diff); + tfp_printf ("Byte3: Error!\n"); + } + + errors += error; + + #ifdef DEBUG + tfp_printf(" Golden: 0x%08x; Actual: 0x%08x,\n", golden_word, actual_word); + #endif + + #ifdef VERBOSE + if(error) { + if(errors==1) tfp_printf(" golden <- actual @ address @ index\n"); + tfp_printf(" 0x%08x <- 0x%08x @ 0x%08x @ 0x%08x\n", golden_word, actual_word, (actual_z+i), i*4); + } + #endif + } + return errors; +} + +#endif diff --git a/hwpe/redmule_256iter/inc/golden.h b/hwpe/redmule_256iter/inc/golden.h new file mode 100644 index 0000000..f664e47 --- /dev/null +++ b/hwpe/redmule_256iter/inc/golden.h @@ -0,0 +1,387 @@ + /* Header file generated by RedMulE Golden Model */ +uint32_t golden [384] = { +0x48974845, +0x48384608, +0x487b4855, +0x48804869, +0x48b046d1, +0x483f48db, +0x485f48c9, +0x483a4881, +0x472c484b, +0x492b4762, +0x48fd4822, +0x492e488e, +0x484f483e, +0x46d749e8, +0x489d484b, +0x47e9490b, +0x47d2484f, +0x474744be, +0x46c047c7, +0x48af4727, +0x482d46c5, +0x482e483d, +0x479f4897, +0x4749488b, +0x46a8489a, +0x488b46f2, +0x47e84891, +0x483d4872, +0x46fd4716, +0x46a049b5, +0x47a446e7, +0x476748a1, +0x49354939, +0x48c14703, +0x48bd4863, +0x48cf4913, +0x48b848b6, +0x49204946, +0x48e1495e, +0x48b24938, +0x4882493a, +0x49d5483b, +0x49724911, +0x49df496b, +0x488848f2, +0x48214a46, +0x490c48c1, +0x48a349b2, +0x47b0463a, +0x476244cb, +0x46b94765, +0x4814466a, +0x47964631, +0x474b4666, +0x47044798, +0x47614838, +0x459047d3, +0x48a245ea, +0x484447f1, +0x4776484b, +0x46d847d6, +0x44d348f3, +0x478d46fa, +0x466e481e, +0x481e4827, +0x479445a2, +0x48064727, +0x48d5475d, +0x48284708, +0x480d4862, +0x48324895, +0x47f148bd, +0x46a7482a, +0x492d47b1, +0x4884484d, +0x485f48dc, +0x480c476d, +0x46d348e9, +0x48844728, +0x480e48a0, +0x48134862, +0x485a4675, +0x473847e8, +0x48234836, +0x482146e7, +0x47b34822, +0x48554846, +0x47174863, +0x47c14872, +0x488e46d5, +0x485f47e2, +0x48b8487c, +0x4788481e, +0x467748bd, +0x47f846c9, +0x47fc48fe, +0x47b247a0, +0x467e4588, +0x46c74662, +0x481246e8, +0x474e4536, +0x468f46c0, +0x4679481f, +0x46e246a1, +0x45604809, +0x47eb4630, +0x475746b5, +0x477f4848, +0x46d846a6, +0x459a4870, +0x46784670, +0x468c47d2, +0x48c44762, +0x479146e3, +0x486d46b1, +0x486747d0, +0x47f6468d, +0x475648a5, +0x48544857, +0x48384866, +0x46ec484d, +0x48f647d2, +0x4879484a, +0x483c4848, +0x4806471d, +0x473048fa, +0x47b84768, +0x46f94865, +0x491848a8, +0x486746ca, +0x48624800, +0x491048d3, +0x4849474e, +0x486b48eb, +0x48c54966, +0x483048f4, +0x477848f9, +0x499e481e, +0x48f148cf, +0x49234982, +0x47cf487c, +0x464949ea, +0x495e4773, +0x483f48b2, +0x497548a7, +0x481e4616, +0x4866481f, +0x486448b6, +0x487347dc, +0x487f485c, +0x491f4938, +0x48b6490d, +0x48a148f8, +0x492d4859, +0x4915489c, +0x48874899, +0x4859486c, +0x471e49ca, +0x49184867, +0x482748d3, +0x4998488b, +0x481d4704, +0x488048b8, +0x49444876, +0x48f2470c, +0x489b48b9, +0x48e54956, +0x48a548d6, +0x485648dc, +0x49ab484e, +0x490e48e0, +0x494548dd, +0x48dd488b, +0x47ea4a32, +0x49114835, +0x48194965, +0x481e460e, +0x4673452c, +0x4717475c, +0x46d046f6, +0x46bc4696, +0x481e4726, +0x46ea4763, +0x475846fe, +0x4627478b, +0x483f4704, +0x47b146ad, +0x48164792, +0x468446f2, +0x45a84827, +0x47a4472f, +0x462b4797, +0x48ab483f, +0x4863468f, +0x4766485a, +0x48cb481d, +0x490347dc, +0x483048fc, +0x483e48cc, +0x486448ab, +0x47634966, +0x499d4794, +0x488b488e, +0x496048dc, +0x484c4854, +0x474c499c, +0x48bc4826, +0x48834949, +0x4905489d, +0x481e4718, +0x48f448e3, +0x490448c1, +0x48b347e8, +0x48d44892, +0x489448ff, +0x488648d5, +0x480348fa, +0x492e47d2, +0x48b24870, +0x492b48e5, +0x4785487b, +0x471d49e3, +0x48bf4837, +0x48c4489b, +0x4871475c, +0x4811464a, +0x471c47af, +0x48174817, +0x484e463b, +0x464f477f, +0x487c4704, +0x472547a3, +0x462a4853, +0x4860465a, +0x48804736, +0x482b47e1, +0x46c04811, +0x475d48dc, +0x48064668, +0x46f44893, +0x49594858, +0x487b463d, +0x484e480f, +0x48a648c0, +0x48944847, +0x484a48a0, +0x48f4491e, +0x48b548fc, +0x47d248ce, +0x497f47db, +0x49394955, +0x48ce48a7, +0x48844890, +0x476349d6, +0x4922486e, +0x48c348f4, +0x491c47ec, +0x47834698, +0x47544715, +0x47524745, +0x4832472f, +0x48094817, +0x48c347f8, +0x480047e6, +0x473048b6, +0x48cb480a, +0x488e479e, +0x488e47c2, +0x47ee472f, +0x4744489d, +0x48514755, +0x47d34846, +0x48a04838, +0x47624634, +0x48064786, +0x482d47e3, +0x486c4726, +0x480347b7, +0x481448ac, +0x483948e0, +0x47504827, +0x48c546f2, +0x4886483f, +0x485648ad, +0x47a947e8, +0x47434937, +0x481f46d0, +0x4804484c, +0x481f47fd, +0x4813456d, +0x4807474d, +0x480e4688, +0x481046e8, +0x4799469f, +0x478f4853, +0x482447f2, +0x471f47d0, +0x485f46da, +0x481c4813, +0x4863482e, +0x480b4786, +0x46b848c9, +0x46e2475a, +0x46c54852, +0x480245af, +0x46c24466, +0x4743465d, +0x47ba46b7, +0x46c34636, +0x47844677, +0x47c2485a, +0x46ac46dc, +0x460e47de, +0x4834465f, +0x476947f4, +0x481046fc, +0x45ea45fd, +0x45b548d0, +0x47834704, +0x46c44830, +0x47c74759, +0x45b0453d, +0x47024741, +0x47934736, +0x47ba461b, +0x46dd470b, +0x470b4657, +0x4710470d, +0x468f486c, +0x46ba45c3, +0x483b479d, +0x477446c9, +0x46a746a9, +0x46064833, +0x46a94690, +0x46a746f5, +0x48bb47ac, +0x4803452c, +0x4824470f, +0x48cb47d5, +0x484a4707, +0x47974832, +0x482c4851, +0x4877487a, +0x465d4891, +0x48ce47f4, +0x48994898, +0x486a484e, +0x47f047ac, +0x4611493e, +0x489e47e2, +0x46af488c, +0x48364665, +0x46b645e4, +0x46b946a1, +0x46dd46c8, +0x474b4658, +0x4777467b, +0x47984769, +0x475e4785, +0x4656472a, +0x488145fb, +0x472d46fc, +0x47a3476e, +0x46ca465d, +0x45004855, +0x479a464f, +0x473846c3, +0x486c481e, +0x48014659, +0x477a4756, +0x487b47d5, +0x48084706, +0x4838484f, +0x48634870, +0x480648d3, +0x47714865, +0x494c46be, +0x484c4915, +0x48624900, +0x46e8481a, +0x46a04974, +0x483d4775, +0x480e487c, +}; \ No newline at end of file diff --git a/hwpe/redmule_256iter/inc/tensor_dim.h b/hwpe/redmule_256iter/inc/tensor_dim.h new file mode 100644 index 0000000..21bd0d8 --- /dev/null +++ b/hwpe/redmule_256iter/inc/tensor_dim.h @@ -0,0 +1,13 @@ + /* Header file generated by RedMulE Golden Model */ +#ifndef __TENSOR_DIM__ +#define __TENSOR_DIM__ + +#define M_SIZE 24 +#define N_SIZE 32 +#define K_SIZE 32 +#define SRC_FMT FP16 +#define DST_FMT FP16 +#define FPFORMAT 16 +uint8_t gemm_ops = GEMM; + +#endif diff --git a/hwpe/redmule_256iter/inc/w_2D.h b/hwpe/redmule_256iter/inc/w_2D.h new file mode 100644 index 0000000..9409c64 --- /dev/null +++ b/hwpe/redmule_256iter/inc/w_2D.h @@ -0,0 +1,35 @@ + /* Header file generated by RedMulE Golden Model */ +uint16_t w_inp_2D [32][32] = { +0x311a, 0x39e0, 0x387d, 0x3a4a, 0x386f, 0x3ada, 0x392f, 0x3854, 0x3014, 0x2fd2, 0x31c9, 0x2fca, 0x2e55, 0x3bc8, 0x396d, 0x3b1d, 0x39f6, 0x333a, 0x3908, 0x3628, 0x3bab, 0x3b8b, 0x3b4a, 0x322d, 0x3925, 0x317a, 0x3725, 0x31c2, 0x3066, 0x38f3, 0x3a17, 0x3476, +0x3bda, 0x3196, 0x3922, 0x3680, 0x396a, 0x3021, 0x3761, 0x374d, 0x2fc2, 0x3967, 0x3b94, 0x33b5, 0x3797, 0x34d6, 0x3655, 0x2176, 0x39bc, 0x3999, 0x3658, 0x3904, 0x3759, 0x2ade, 0x3a5a, 0x3b78, 0x36c7, 0x2d01, 0x3b58, 0x2d9a, 0x373d, 0x3952, 0x38e8, 0x3887, +0x37b6, 0x3a88, 0x2f8a, 0x2d79, 0x3413, 0x3421, 0x3976, 0x32b2, 0x3446, 0x2d99, 0x3a56, 0x3322, 0x3b49, 0x39fa, 0x3acd, 0x3af6, 0x304c, 0x3abb, 0x3a83, 0x38b2, 0x3ab9, 0x363e, 0x389f, 0x31bb, 0x38e1, 0x3bc4, 0x3b9b, 0x2984, 0x3a43, 0x3b2f, 0x35d6, 0x3bda, +0x2df3, 0x3bf8, 0x2acc, 0x378b, 0x3555, 0x2e59, 0x31d4, 0x34ec, 0x3a46, 0x3bab, 0x3214, 0x3161, 0x3470, 0x3a03, 0x368e, 0x31ad, 0x27cb, 0x2ecb, 0x3422, 0x39f7, 0x3644, 0x3a77, 0x313f, 0x34f2, 0x39b3, 0x3bf2, 0x379a, 0x3456, 0x35fe, 0x3ae7, 0x3964, 0x385f, +0x3b16, 0x3999, 0x3833, 0x2eda, 0x3afd, 0x3a4a, 0x3ba2, 0x2bd4, 0x3b38, 0x31a2, 0x32dd, 0x353c, 0x366f, 0x375e, 0x3821, 0x367a, 0x3b44, 0x39e6, 0x3787, 0x339e, 0x39d7, 0x38c6, 0x37d5, 0x342f, 0x3984, 0x319b, 0x33b5, 0x35ab, 0x398a, 0x374e, 0x36b6, 0x3b21, +0x3bbb, 0x2ab3, 0x2ad5, 0x33bc, 0x2bef, 0x3780, 0x3738, 0x3a0b, 0x3b09, 0x30ca, 0x384e, 0x3ab3, 0x39bd, 0x3453, 0x3a6d, 0x3957, 0x2c10, 0x30e9, 0x35d4, 0x3aef, 0x3be9, 0x39ad, 0x3a74, 0x3af9, 0x3739, 0x2d4d, 0x39fe, 0x3b72, 0x2c57, 0x398c, 0x381f, 0x3930, +0x3820, 0x321b, 0x3964, 0x2964, 0x33a0, 0x2d00, 0x2490, 0x336b, 0x3465, 0x3b2e, 0x3aa0, 0x371f, 0x300e, 0x3a09, 0x3bf1, 0x25cc, 0x3b6f, 0x3384, 0x3a88, 0x3acb, 0x3814, 0x36d0, 0x3081, 0x3a2c, 0x3353, 0x39cb, 0x31ed, 0x3af6, 0x3721, 0x36c7, 0x2ce2, 0x390d, +0x3698, 0x3ab2, 0x3b3e, 0x2eb4, 0x3998, 0x39e3, 0x3a77, 0x3632, 0x2c12, 0x3bd5, 0x3ba3, 0x3bba, 0x323c, 0x367b, 0x3557, 0x39c8, 0x37db, 0x3b45, 0x3b6e, 0x3931, 0x3121, 0x3a8d, 0x3a55, 0x3b9b, 0x358a, 0x3925, 0x3491, 0x3912, 0x3b6b, 0x3584, 0x32df, 0x3120, +0x32b2, 0x3b0a, 0x2cad, 0x3465, 0x3ad3, 0x3bcd, 0x363b, 0x3afe, 0x354b, 0x3374, 0x39af, 0x3b7f, 0x308c, 0x2e72, 0x3380, 0x3b70, 0x3902, 0x38d8, 0x39f3, 0x3a4b, 0x3853, 0x397b, 0x2ebe, 0x387f, 0x2845, 0x37e2, 0x360f, 0x370b, 0x3acb, 0x35d4, 0x36e6, 0x3262, +0x2e88, 0x3a54, 0x2ee3, 0x3575, 0x3afe, 0x2aee, 0x39a0, 0x3aae, 0x3693, 0x3432, 0x3834, 0x3b9b, 0x3bcb, 0x2e3a, 0x356d, 0x374e, 0x3924, 0x383c, 0x311e, 0x3ac5, 0x352d, 0x311e, 0x38ca, 0x34d4, 0x36ca, 0x34ed, 0x3a13, 0x33eb, 0x3639, 0x3828, 0x3b3c, 0x3939, +0x3837, 0x3521, 0x2cb5, 0x3629, 0x3924, 0x384c, 0x366a, 0x3bbf, 0x2e9e, 0x3ba8, 0x33ad, 0x38c8, 0x3934, 0x3907, 0x249a, 0x3690, 0x3a09, 0x3215, 0x3898, 0x325d, 0x37d5, 0x3195, 0x361c, 0x3ae4, 0x351f, 0x3452, 0x3bc0, 0x375c, 0x39bf, 0x317a, 0x3aae, 0x283a, +0x3476, 0x3b92, 0x3472, 0x383e, 0x280f, 0x39d6, 0x2fd1, 0x31f4, 0x2ffb, 0x3b97, 0x3692, 0x36c0, 0x3989, 0x33cf, 0x3ba6, 0x3239, 0x35d7, 0x33ab, 0x31eb, 0x3b47, 0x389b, 0x3b88, 0x3580, 0x354c, 0x3802, 0x3b9a, 0x3b94, 0x2a92, 0x2db1, 0x38bd, 0x2dfb, 0x3900, +0x344f, 0x3739, 0x27a5, 0x3b2e, 0x342b, 0x34bb, 0x30c8, 0x3ae8, 0x3b26, 0x3982, 0x38c0, 0x3408, 0x38c8, 0x36ef, 0x3bf0, 0x3acf, 0x3a3c, 0x3825, 0x31a5, 0x3ada, 0x3b5b, 0x37db, 0x3a01, 0x3663, 0x3a7d, 0x327b, 0x3a1f, 0x3862, 0x38af, 0x3204, 0x372e, 0x3b19, +0x3708, 0x3622, 0x2e62, 0x39ab, 0x2d4d, 0x31b4, 0x3552, 0x3bbc, 0x36f2, 0x36eb, 0x38ef, 0x3755, 0x3bbe, 0x2c17, 0x3815, 0x2f53, 0x363f, 0x38c1, 0x3246, 0x386b, 0x34de, 0x34e4, 0x3baa, 0x349e, 0x32ce, 0x3a68, 0x373f, 0x2cce, 0x3b36, 0x28ba, 0x3b50, 0x3232, +0x1f34, 0x3928, 0x35cd, 0x3b38, 0x30ce, 0x35a1, 0x3a06, 0x3a32, 0x3a53, 0x3489, 0x3241, 0x372f, 0x390c, 0x3a1b, 0x378a, 0x3713, 0x3769, 0x37a8, 0x3418, 0x3ad4, 0x3a4e, 0x3bf7, 0x37a5, 0x34dc, 0x39b2, 0x351b, 0x3372, 0x349f, 0x2f50, 0x3ab1, 0x3795, 0x2db7, +0x3864, 0x3157, 0x3900, 0x323e, 0x389e, 0x3880, 0x3b1f, 0x37a1, 0x396c, 0x2e43, 0x2c2a, 0x3b78, 0x3988, 0x3a14, 0x39c1, 0x3b51, 0x3780, 0x3bf2, 0x2d19, 0x3815, 0x3a5f, 0x3641, 0x2f62, 0x37d5, 0x3564, 0x139a, 0x3ab8, 0x28f7, 0x3785, 0x34e1, 0x3097, 0x3768, +0x3971, 0x3ae2, 0x32ae, 0x2fd5, 0x382a, 0x346c, 0x3133, 0x3167, 0x3940, 0x2d12, 0x389a, 0x3bd0, 0x3943, 0x391c, 0x3a75, 0x2a11, 0x391e, 0x372d, 0x3a79, 0x3b72, 0x3373, 0x39b7, 0x35d7, 0x372b, 0x3a6d, 0x38a1, 0x3279, 0x3434, 0x3694, 0x3b45, 0x3abb, 0x392d, +0x34a8, 0x3757, 0x32ca, 0x345d, 0x36a5, 0x3854, 0x2dcd, 0x30af, 0x38dd, 0x3067, 0x3411, 0x3997, 0x397a, 0x3a64, 0x38b8, 0x3962, 0x3509, 0x3bb6, 0x3a66, 0x339f, 0x372a, 0x31a8, 0x37da, 0x36ff, 0x33c6, 0x31da, 0x3977, 0x3b72, 0x3841, 0x3567, 0x3433, 0x33b8, +0x39fe, 0x3a10, 0x3bf2, 0x35e7, 0x3a4a, 0x3b3e, 0x2ec7, 0x3aa4, 0x3846, 0x3af9, 0x38a9, 0x2c1f, 0x39ab, 0x349f, 0x31d6, 0x39ae, 0x3b79, 0x352d, 0x3516, 0x347c, 0x2f33, 0x35ad, 0x31c4, 0x3b52, 0x354b, 0x3786, 0x3ab7, 0x3896, 0x34ac, 0x352f, 0x37e6, 0x326a, +0x2e44, 0x34c7, 0x388d, 0x3bf4, 0x363f, 0x3b3d, 0x33b1, 0x3b8b, 0x3340, 0x37f7, 0x3b07, 0x25bf, 0x398e, 0x3505, 0x3bd7, 0x366d, 0x388a, 0x2cc0, 0x359a, 0x3b9a, 0x3b99, 0x379d, 0x3b6b, 0x39b8, 0x3223, 0x2703, 0x3ba9, 0x2ecb, 0x3759, 0x39d8, 0x37ac, 0x32cf, +0x35f2, 0x38a3, 0x399e, 0x3bd2, 0x3780, 0x3af3, 0x3b5e, 0x337b, 0x3a08, 0x35da, 0x3446, 0x3b25, 0x3ad0, 0x3bee, 0x3141, 0x32d8, 0x34ce, 0x2ac9, 0x3800, 0x3a8a, 0x2d53, 0x368a, 0x3561, 0x3998, 0x35a3, 0x3677, 0x3ab2, 0x3269, 0x3236, 0x3b3e, 0x3aba, 0x3bac, +0x395d, 0x3820, 0x1df6, 0x3bb5, 0x35b5, 0x3675, 0x3b74, 0x360f, 0x34de, 0x3a0c, 0x3aeb, 0x299d, 0x3207, 0x3bd8, 0x2178, 0x3995, 0x3948, 0x3908, 0x3843, 0x2ea5, 0x3045, 0x3989, 0x345d, 0x39c5, 0x3a89, 0x3863, 0x3be0, 0x397a, 0x38f1, 0x39e2, 0x3b08, 0x352e, +0x385f, 0x28f2, 0x3bc3, 0x35e0, 0x380c, 0x3b9c, 0x3afc, 0x390a, 0x3689, 0x34fd, 0x2cf5, 0x308e, 0x342b, 0x3921, 0x3a67, 0x3ad6, 0x2986, 0x32fc, 0x35aa, 0x3507, 0x3608, 0x33fd, 0x3bf3, 0x39e2, 0x3b0f, 0x30b7, 0x3896, 0x3ae4, 0x2145, 0x35b6, 0x2e1d, 0x3ad1, +0x333d, 0x3afb, 0x2703, 0x3413, 0x1d7d, 0x3b7f, 0x3ae1, 0x303c, 0x3004, 0x39d3, 0x3554, 0x31a4, 0x354e, 0x3662, 0x39c5, 0x2eb7, 0x2c6e, 0x397f, 0x31d8, 0x1f0c, 0x38e3, 0x35f0, 0x2714, 0x28d1, 0x375e, 0x3a75, 0x3830, 0x3578, 0x397d, 0x3b18, 0x383c, 0x3498, +0x39ad, 0x3598, 0x23c4, 0x34ea, 0x3a61, 0x2b00, 0x3707, 0x3ae1, 0x37ae, 0x389d, 0x37fa, 0x3673, 0x3278, 0xf3e, 0x3809, 0x33c6, 0x3bf5, 0x3279, 0x3816, 0x360c, 0x39c8, 0x381f, 0x3741, 0x2d66, 0x38c0, 0x37d3, 0x377a, 0x3621, 0x2faf, 0x392e, 0x2de6, 0x33c5, +0x3803, 0x2600, 0x32e9, 0x39b4, 0x38d2, 0x34e8, 0x2fe6, 0x3199, 0x3643, 0x3a77, 0x27cc, 0x39d7, 0x34c6, 0x2ea8, 0x364e, 0x3b07, 0x31c7, 0x30a1, 0x31b1, 0x3b8f, 0x3571, 0x3b75, 0x3989, 0x3805, 0x39fb, 0x3945, 0x352b, 0x31d8, 0x3904, 0x3440, 0x3a57, 0x2cf7, +0x3b39, 0x2fcd, 0x2b89, 0x2edd, 0x3682, 0x36a9, 0x32c8, 0x37ac, 0x32a5, 0x3311, 0x394b, 0x3b84, 0x3aec, 0x3601, 0x2765, 0x3b69, 0x396b, 0x3727, 0x3bfe, 0x3907, 0x376f, 0x3674, 0x3973, 0x3671, 0x3491, 0x3993, 0x383f, 0x3335, 0x3989, 0x3550, 0x3077, 0x35f5, +0x3a59, 0x3950, 0x380c, 0x37cd, 0x30bf, 0x3607, 0x3afa, 0x3b5d, 0x32b9, 0x386b, 0x35bd, 0x3aca, 0x3ba5, 0x3b2d, 0x3b19, 0x3b8b, 0x345e, 0x2845, 0x34aa, 0x372a, 0x3448, 0x34f5, 0x3ae2, 0x3637, 0x2cb5, 0x354b, 0x3b15, 0x2ca8, 0x2641, 0x3178, 0x2cfe, 0x39b4, +0x3bdd, 0x3acb, 0x3a05, 0x38a2, 0x3b4a, 0x34e5, 0x395f, 0x394b, 0x34c4, 0x3aa5, 0x29bb, 0x2d96, 0x339d, 0x387c, 0x382e, 0x385a, 0x396b, 0x3aa9, 0x2f1e, 0x33a7, 0x3b90, 0x3b7b, 0x3b5f, 0x39d3, 0x3b18, 0x354f, 0x2cdb, 0x3a6f, 0x3434, 0x34ff, 0x3a5b, 0x3b84, +0x3a33, 0x384b, 0x2e67, 0x3b85, 0x3853, 0x380c, 0x346a, 0x3aaa, 0x3492, 0x33e8, 0x3bf2, 0x38ae, 0x3a29, 0x3830, 0x3221, 0x35b1, 0x3a48, 0x2c68, 0x2ced, 0x3a7e, 0x3539, 0x3922, 0x374c, 0x3aaa, 0x2dae, 0x395d, 0x3b3d, 0x3890, 0x2cfe, 0x2dd6, 0x3bad, 0x33c5, +0x2c07, 0x3a2c, 0x37a8, 0x390f, 0x2fc8, 0x35ae, 0x388c, 0x30ee, 0x3674, 0x391d, 0x3bfc, 0x36bf, 0x322d, 0x3a78, 0x35c0, 0x3492, 0x3ac8, 0x3504, 0x3315, 0x381d, 0x3a7a, 0x3a08, 0x343c, 0x3bda, 0x341b, 0x39f0, 0x3b9e, 0x395d, 0x3c00, 0x38ab, 0x3bcf, 0x3564, +0x33c4, 0x3b0d, 0x3623, 0x33b9, 0x3b92, 0x1e71, 0x2c57, 0x36d0, 0x314b, 0x3a16, 0x3372, 0x341b, 0x3aaa, 0x3444, 0x396b, 0x2dd7, 0x3b30, 0x3559, 0x3b5b, 0x3a29, 0x2d19, 0x38b7, 0x3b01, 0x3afa, 0x398a, 0x3839, 0x3ac9, 0x2e31, 0x3924, 0x39f2, 0x3a7f, 0x3285 +}; \ No newline at end of file diff --git a/hwpe/redmule_256iter/inc/w_input.h b/hwpe/redmule_256iter/inc/w_input.h new file mode 100644 index 0000000..dc4d3be --- /dev/null +++ b/hwpe/redmule_256iter/inc/w_input.h @@ -0,0 +1,35 @@ + /* Header file generated by RedMulE Golden Model */ +uint16_t w_inp [1024] = { +0x311a, 0x39e0, 0x387d, 0x3a4a, 0x386f, 0x3ada, 0x392f, 0x3854, 0x3014, 0x2fd2, 0x31c9, 0x2fca, 0x2e55, 0x3bc8, 0x396d, 0x3b1d, 0x39f6, 0x333a, 0x3908, 0x3628, 0x3bab, 0x3b8b, 0x3b4a, 0x322d, 0x3925, 0x317a, 0x3725, 0x31c2, 0x3066, 0x38f3, 0x3a17, 0x3476, +0x3bda, 0x3196, 0x3922, 0x3680, 0x396a, 0x3021, 0x3761, 0x374d, 0x2fc2, 0x3967, 0x3b94, 0x33b5, 0x3797, 0x34d6, 0x3655, 0x2176, 0x39bc, 0x3999, 0x3658, 0x3904, 0x3759, 0x2ade, 0x3a5a, 0x3b78, 0x36c7, 0x2d01, 0x3b58, 0x2d9a, 0x373d, 0x3952, 0x38e8, 0x3887, +0x37b6, 0x3a88, 0x2f8a, 0x2d79, 0x3413, 0x3421, 0x3976, 0x32b2, 0x3446, 0x2d99, 0x3a56, 0x3322, 0x3b49, 0x39fa, 0x3acd, 0x3af6, 0x304c, 0x3abb, 0x3a83, 0x38b2, 0x3ab9, 0x363e, 0x389f, 0x31bb, 0x38e1, 0x3bc4, 0x3b9b, 0x2984, 0x3a43, 0x3b2f, 0x35d6, 0x3bda, +0x2df3, 0x3bf8, 0x2acc, 0x378b, 0x3555, 0x2e59, 0x31d4, 0x34ec, 0x3a46, 0x3bab, 0x3214, 0x3161, 0x3470, 0x3a03, 0x368e, 0x31ad, 0x27cb, 0x2ecb, 0x3422, 0x39f7, 0x3644, 0x3a77, 0x313f, 0x34f2, 0x39b3, 0x3bf2, 0x379a, 0x3456, 0x35fe, 0x3ae7, 0x3964, 0x385f, +0x3b16, 0x3999, 0x3833, 0x2eda, 0x3afd, 0x3a4a, 0x3ba2, 0x2bd4, 0x3b38, 0x31a2, 0x32dd, 0x353c, 0x366f, 0x375e, 0x3821, 0x367a, 0x3b44, 0x39e6, 0x3787, 0x339e, 0x39d7, 0x38c6, 0x37d5, 0x342f, 0x3984, 0x319b, 0x33b5, 0x35ab, 0x398a, 0x374e, 0x36b6, 0x3b21, +0x3bbb, 0x2ab3, 0x2ad5, 0x33bc, 0x2bef, 0x3780, 0x3738, 0x3a0b, 0x3b09, 0x30ca, 0x384e, 0x3ab3, 0x39bd, 0x3453, 0x3a6d, 0x3957, 0x2c10, 0x30e9, 0x35d4, 0x3aef, 0x3be9, 0x39ad, 0x3a74, 0x3af9, 0x3739, 0x2d4d, 0x39fe, 0x3b72, 0x2c57, 0x398c, 0x381f, 0x3930, +0x3820, 0x321b, 0x3964, 0x2964, 0x33a0, 0x2d00, 0x2490, 0x336b, 0x3465, 0x3b2e, 0x3aa0, 0x371f, 0x300e, 0x3a09, 0x3bf1, 0x25cc, 0x3b6f, 0x3384, 0x3a88, 0x3acb, 0x3814, 0x36d0, 0x3081, 0x3a2c, 0x3353, 0x39cb, 0x31ed, 0x3af6, 0x3721, 0x36c7, 0x2ce2, 0x390d, +0x3698, 0x3ab2, 0x3b3e, 0x2eb4, 0x3998, 0x39e3, 0x3a77, 0x3632, 0x2c12, 0x3bd5, 0x3ba3, 0x3bba, 0x323c, 0x367b, 0x3557, 0x39c8, 0x37db, 0x3b45, 0x3b6e, 0x3931, 0x3121, 0x3a8d, 0x3a55, 0x3b9b, 0x358a, 0x3925, 0x3491, 0x3912, 0x3b6b, 0x3584, 0x32df, 0x3120, +0x32b2, 0x3b0a, 0x2cad, 0x3465, 0x3ad3, 0x3bcd, 0x363b, 0x3afe, 0x354b, 0x3374, 0x39af, 0x3b7f, 0x308c, 0x2e72, 0x3380, 0x3b70, 0x3902, 0x38d8, 0x39f3, 0x3a4b, 0x3853, 0x397b, 0x2ebe, 0x387f, 0x2845, 0x37e2, 0x360f, 0x370b, 0x3acb, 0x35d4, 0x36e6, 0x3262, +0x2e88, 0x3a54, 0x2ee3, 0x3575, 0x3afe, 0x2aee, 0x39a0, 0x3aae, 0x3693, 0x3432, 0x3834, 0x3b9b, 0x3bcb, 0x2e3a, 0x356d, 0x374e, 0x3924, 0x383c, 0x311e, 0x3ac5, 0x352d, 0x311e, 0x38ca, 0x34d4, 0x36ca, 0x34ed, 0x3a13, 0x33eb, 0x3639, 0x3828, 0x3b3c, 0x3939, +0x3837, 0x3521, 0x2cb5, 0x3629, 0x3924, 0x384c, 0x366a, 0x3bbf, 0x2e9e, 0x3ba8, 0x33ad, 0x38c8, 0x3934, 0x3907, 0x249a, 0x3690, 0x3a09, 0x3215, 0x3898, 0x325d, 0x37d5, 0x3195, 0x361c, 0x3ae4, 0x351f, 0x3452, 0x3bc0, 0x375c, 0x39bf, 0x317a, 0x3aae, 0x283a, +0x3476, 0x3b92, 0x3472, 0x383e, 0x280f, 0x39d6, 0x2fd1, 0x31f4, 0x2ffb, 0x3b97, 0x3692, 0x36c0, 0x3989, 0x33cf, 0x3ba6, 0x3239, 0x35d7, 0x33ab, 0x31eb, 0x3b47, 0x389b, 0x3b88, 0x3580, 0x354c, 0x3802, 0x3b9a, 0x3b94, 0x2a92, 0x2db1, 0x38bd, 0x2dfb, 0x3900, +0x344f, 0x3739, 0x27a5, 0x3b2e, 0x342b, 0x34bb, 0x30c8, 0x3ae8, 0x3b26, 0x3982, 0x38c0, 0x3408, 0x38c8, 0x36ef, 0x3bf0, 0x3acf, 0x3a3c, 0x3825, 0x31a5, 0x3ada, 0x3b5b, 0x37db, 0x3a01, 0x3663, 0x3a7d, 0x327b, 0x3a1f, 0x3862, 0x38af, 0x3204, 0x372e, 0x3b19, +0x3708, 0x3622, 0x2e62, 0x39ab, 0x2d4d, 0x31b4, 0x3552, 0x3bbc, 0x36f2, 0x36eb, 0x38ef, 0x3755, 0x3bbe, 0x2c17, 0x3815, 0x2f53, 0x363f, 0x38c1, 0x3246, 0x386b, 0x34de, 0x34e4, 0x3baa, 0x349e, 0x32ce, 0x3a68, 0x373f, 0x2cce, 0x3b36, 0x28ba, 0x3b50, 0x3232, +0x1f34, 0x3928, 0x35cd, 0x3b38, 0x30ce, 0x35a1, 0x3a06, 0x3a32, 0x3a53, 0x3489, 0x3241, 0x372f, 0x390c, 0x3a1b, 0x378a, 0x3713, 0x3769, 0x37a8, 0x3418, 0x3ad4, 0x3a4e, 0x3bf7, 0x37a5, 0x34dc, 0x39b2, 0x351b, 0x3372, 0x349f, 0x2f50, 0x3ab1, 0x3795, 0x2db7, +0x3864, 0x3157, 0x3900, 0x323e, 0x389e, 0x3880, 0x3b1f, 0x37a1, 0x396c, 0x2e43, 0x2c2a, 0x3b78, 0x3988, 0x3a14, 0x39c1, 0x3b51, 0x3780, 0x3bf2, 0x2d19, 0x3815, 0x3a5f, 0x3641, 0x2f62, 0x37d5, 0x3564, 0x139a, 0x3ab8, 0x28f7, 0x3785, 0x34e1, 0x3097, 0x3768, +0x3971, 0x3ae2, 0x32ae, 0x2fd5, 0x382a, 0x346c, 0x3133, 0x3167, 0x3940, 0x2d12, 0x389a, 0x3bd0, 0x3943, 0x391c, 0x3a75, 0x2a11, 0x391e, 0x372d, 0x3a79, 0x3b72, 0x3373, 0x39b7, 0x35d7, 0x372b, 0x3a6d, 0x38a1, 0x3279, 0x3434, 0x3694, 0x3b45, 0x3abb, 0x392d, +0x34a8, 0x3757, 0x32ca, 0x345d, 0x36a5, 0x3854, 0x2dcd, 0x30af, 0x38dd, 0x3067, 0x3411, 0x3997, 0x397a, 0x3a64, 0x38b8, 0x3962, 0x3509, 0x3bb6, 0x3a66, 0x339f, 0x372a, 0x31a8, 0x37da, 0x36ff, 0x33c6, 0x31da, 0x3977, 0x3b72, 0x3841, 0x3567, 0x3433, 0x33b8, +0x39fe, 0x3a10, 0x3bf2, 0x35e7, 0x3a4a, 0x3b3e, 0x2ec7, 0x3aa4, 0x3846, 0x3af9, 0x38a9, 0x2c1f, 0x39ab, 0x349f, 0x31d6, 0x39ae, 0x3b79, 0x352d, 0x3516, 0x347c, 0x2f33, 0x35ad, 0x31c4, 0x3b52, 0x354b, 0x3786, 0x3ab7, 0x3896, 0x34ac, 0x352f, 0x37e6, 0x326a, +0x2e44, 0x34c7, 0x388d, 0x3bf4, 0x363f, 0x3b3d, 0x33b1, 0x3b8b, 0x3340, 0x37f7, 0x3b07, 0x25bf, 0x398e, 0x3505, 0x3bd7, 0x366d, 0x388a, 0x2cc0, 0x359a, 0x3b9a, 0x3b99, 0x379d, 0x3b6b, 0x39b8, 0x3223, 0x2703, 0x3ba9, 0x2ecb, 0x3759, 0x39d8, 0x37ac, 0x32cf, +0x35f2, 0x38a3, 0x399e, 0x3bd2, 0x3780, 0x3af3, 0x3b5e, 0x337b, 0x3a08, 0x35da, 0x3446, 0x3b25, 0x3ad0, 0x3bee, 0x3141, 0x32d8, 0x34ce, 0x2ac9, 0x3800, 0x3a8a, 0x2d53, 0x368a, 0x3561, 0x3998, 0x35a3, 0x3677, 0x3ab2, 0x3269, 0x3236, 0x3b3e, 0x3aba, 0x3bac, +0x395d, 0x3820, 0x1df6, 0x3bb5, 0x35b5, 0x3675, 0x3b74, 0x360f, 0x34de, 0x3a0c, 0x3aeb, 0x299d, 0x3207, 0x3bd8, 0x2178, 0x3995, 0x3948, 0x3908, 0x3843, 0x2ea5, 0x3045, 0x3989, 0x345d, 0x39c5, 0x3a89, 0x3863, 0x3be0, 0x397a, 0x38f1, 0x39e2, 0x3b08, 0x352e, +0x385f, 0x28f2, 0x3bc3, 0x35e0, 0x380c, 0x3b9c, 0x3afc, 0x390a, 0x3689, 0x34fd, 0x2cf5, 0x308e, 0x342b, 0x3921, 0x3a67, 0x3ad6, 0x2986, 0x32fc, 0x35aa, 0x3507, 0x3608, 0x33fd, 0x3bf3, 0x39e2, 0x3b0f, 0x30b7, 0x3896, 0x3ae4, 0x2145, 0x35b6, 0x2e1d, 0x3ad1, +0x333d, 0x3afb, 0x2703, 0x3413, 0x1d7d, 0x3b7f, 0x3ae1, 0x303c, 0x3004, 0x39d3, 0x3554, 0x31a4, 0x354e, 0x3662, 0x39c5, 0x2eb7, 0x2c6e, 0x397f, 0x31d8, 0x1f0c, 0x38e3, 0x35f0, 0x2714, 0x28d1, 0x375e, 0x3a75, 0x3830, 0x3578, 0x397d, 0x3b18, 0x383c, 0x3498, +0x39ad, 0x3598, 0x23c4, 0x34ea, 0x3a61, 0x2b00, 0x3707, 0x3ae1, 0x37ae, 0x389d, 0x37fa, 0x3673, 0x3278, 0xf3e, 0x3809, 0x33c6, 0x3bf5, 0x3279, 0x3816, 0x360c, 0x39c8, 0x381f, 0x3741, 0x2d66, 0x38c0, 0x37d3, 0x377a, 0x3621, 0x2faf, 0x392e, 0x2de6, 0x33c5, +0x3803, 0x2600, 0x32e9, 0x39b4, 0x38d2, 0x34e8, 0x2fe6, 0x3199, 0x3643, 0x3a77, 0x27cc, 0x39d7, 0x34c6, 0x2ea8, 0x364e, 0x3b07, 0x31c7, 0x30a1, 0x31b1, 0x3b8f, 0x3571, 0x3b75, 0x3989, 0x3805, 0x39fb, 0x3945, 0x352b, 0x31d8, 0x3904, 0x3440, 0x3a57, 0x2cf7, +0x3b39, 0x2fcd, 0x2b89, 0x2edd, 0x3682, 0x36a9, 0x32c8, 0x37ac, 0x32a5, 0x3311, 0x394b, 0x3b84, 0x3aec, 0x3601, 0x2765, 0x3b69, 0x396b, 0x3727, 0x3bfe, 0x3907, 0x376f, 0x3674, 0x3973, 0x3671, 0x3491, 0x3993, 0x383f, 0x3335, 0x3989, 0x3550, 0x3077, 0x35f5, +0x3a59, 0x3950, 0x380c, 0x37cd, 0x30bf, 0x3607, 0x3afa, 0x3b5d, 0x32b9, 0x386b, 0x35bd, 0x3aca, 0x3ba5, 0x3b2d, 0x3b19, 0x3b8b, 0x345e, 0x2845, 0x34aa, 0x372a, 0x3448, 0x34f5, 0x3ae2, 0x3637, 0x2cb5, 0x354b, 0x3b15, 0x2ca8, 0x2641, 0x3178, 0x2cfe, 0x39b4, +0x3bdd, 0x3acb, 0x3a05, 0x38a2, 0x3b4a, 0x34e5, 0x395f, 0x394b, 0x34c4, 0x3aa5, 0x29bb, 0x2d96, 0x339d, 0x387c, 0x382e, 0x385a, 0x396b, 0x3aa9, 0x2f1e, 0x33a7, 0x3b90, 0x3b7b, 0x3b5f, 0x39d3, 0x3b18, 0x354f, 0x2cdb, 0x3a6f, 0x3434, 0x34ff, 0x3a5b, 0x3b84, +0x3a33, 0x384b, 0x2e67, 0x3b85, 0x3853, 0x380c, 0x346a, 0x3aaa, 0x3492, 0x33e8, 0x3bf2, 0x38ae, 0x3a29, 0x3830, 0x3221, 0x35b1, 0x3a48, 0x2c68, 0x2ced, 0x3a7e, 0x3539, 0x3922, 0x374c, 0x3aaa, 0x2dae, 0x395d, 0x3b3d, 0x3890, 0x2cfe, 0x2dd6, 0x3bad, 0x33c5, +0x2c07, 0x3a2c, 0x37a8, 0x390f, 0x2fc8, 0x35ae, 0x388c, 0x30ee, 0x3674, 0x391d, 0x3bfc, 0x36bf, 0x322d, 0x3a78, 0x35c0, 0x3492, 0x3ac8, 0x3504, 0x3315, 0x381d, 0x3a7a, 0x3a08, 0x343c, 0x3bda, 0x341b, 0x39f0, 0x3b9e, 0x395d, 0x3c00, 0x38ab, 0x3bcf, 0x3564, +0x33c4, 0x3b0d, 0x3623, 0x33b9, 0x3b92, 0x1e71, 0x2c57, 0x36d0, 0x314b, 0x3a16, 0x3372, 0x341b, 0x3aaa, 0x3444, 0x396b, 0x2dd7, 0x3b30, 0x3559, 0x3b5b, 0x3a29, 0x2d19, 0x38b7, 0x3b01, 0x3afa, 0x398a, 0x3839, 0x3ac9, 0x2e31, 0x3924, 0x39f2, 0x3a7f, 0x3285 +}; \ No newline at end of file diff --git a/hwpe/redmule_256iter/inc/x_2D.h b/hwpe/redmule_256iter/inc/x_2D.h new file mode 100644 index 0000000..0b589f8 --- /dev/null +++ b/hwpe/redmule_256iter/inc/x_2D.h @@ -0,0 +1,27 @@ + /* Header file generated by RedMulE Golden Model */ +uint16_t x_inp_2D [24][32] = { +0x2153, 0x3bb5, 0x3896, 0x365f, 0x2483, 0x3518, 0x2dd1, 0x3bca, 0x397b, 0x29b1, 0x3705, 0x36c8, 0x398b, 0x3661, 0x2f05, 0x365a, 0x3bf9, 0x34df, 0x363b, 0x38d9, 0x39c6, 0x3abb, 0x3952, 0x38f2, 0x392d, 0x3b3e, 0x2afb, 0x3a9d, 0x353b, 0x3b73, 0x3a01, 0x3679, +0x3934, 0x397d, 0x2904, 0x3822, 0x3462, 0x3b44, 0x39e9, 0x28be, 0x331e, 0x3a1d, 0x39e5, 0x34da, 0x3a19, 0x3906, 0x1d35, 0x3871, 0x31e7, 0x3b29, 0x325d, 0x3797, 0x2b2f, 0x38b4, 0x232f, 0x38aa, 0x3aca, 0x316f, 0x3811, 0x3950, 0x32ea, 0x3bc7, 0x382c, 0x38a2, +0x29ce, 0x3afa, 0x3a39, 0x2ccc, 0x39fd, 0x3b3d, 0x384a, 0x3a35, 0x3802, 0x366a, 0x37ec, 0x3598, 0x3bf8, 0x3a85, 0x3a1b, 0x386e, 0x3b4c, 0x39de, 0x38c2, 0x2f93, 0x3b4c, 0x39c4, 0x3b9e, 0x3844, 0x346d, 0x3bff, 0x32ce, 0x296d, 0x3130, 0x3b3d, 0x3b44, 0x369d, +0x3b13, 0x31ed, 0x330a, 0x3831, 0x34e7, 0x37b3, 0x331a, 0x3918, 0x32d3, 0x3995, 0x3991, 0x3919, 0x3a26, 0x385b, 0x2b76, 0x3a3b, 0x37f2, 0x26a7, 0x3225, 0x3b64, 0x28f0, 0x3456, 0x3822, 0x341e, 0x381a, 0x38d8, 0x2c11, 0x33be, 0x33ac, 0x353f, 0x3476, 0x3abc, +0x36ec, 0x3a1d, 0x39d3, 0x3821, 0x36ac, 0x3bce, 0x3ad2, 0x3616, 0x36a1, 0x2cb3, 0x38d2, 0x314f, 0x385c, 0x3b63, 0x3bb6, 0x2951, 0x372d, 0x2c42, 0x3823, 0x3883, 0x3872, 0x31ee, 0x36c5, 0x399a, 0x31b0, 0x3887, 0x3884, 0x3865, 0x3896, 0x36c3, 0x32e3, 0x346c, +0x3935, 0x3b50, 0x2b6d, 0x38cd, 0x388f, 0x3389, 0x395d, 0x31cd, 0x2efd, 0x3154, 0x2f35, 0x3444, 0x3293, 0x3b6b, 0x1bec, 0x3b69, 0x3bf3, 0x3611, 0x3508, 0x3742, 0x3a50, 0x3ab7, 0x3457, 0x38d3, 0x3344, 0x38e8, 0x33c0, 0x3668, 0x3bee, 0x3b21, 0x3727, 0x3121, +0x316c, 0x3288, 0x2d50, 0x2e74, 0x35d5, 0x37e2, 0x303d, 0x36af, 0x341f, 0x3436, 0x2df7, 0x399d, 0x30f4, 0x3aaf, 0x34e4, 0x2c2a, 0x3116, 0x34d3, 0x36ac, 0x35e3, 0x3760, 0x36e1, 0x3ad2, 0x3547, 0x38f4, 0x369c, 0x3ba9, 0x34f0, 0x3a39, 0x3b19, 0x36e6, 0x395d, +0x3be8, 0x3293, 0x3bfc, 0x3435, 0x2eb3, 0x3360, 0x3919, 0x3bed, 0x396a, 0x37fc, 0x3242, 0x384b, 0x38cb, 0x3b2c, 0x3b28, 0x28cf, 0x3828, 0x3855, 0x3ba9, 0x2fa7, 0x340b, 0x32f1, 0x3ada, 0x36fa, 0x31f5, 0x3436, 0x29d0, 0x33e6, 0x3232, 0x3bec, 0x3904, 0x2797, +0x3b81, 0x3bac, 0x38d2, 0x343d, 0x31af, 0x3b1e, 0x33fc, 0x3864, 0x3624, 0x3905, 0x2945, 0x3b52, 0x2d08, 0x3a17, 0x3b84, 0x3804, 0x3a24, 0x38a3, 0x3562, 0x3ae6, 0x3bba, 0x3a45, 0x3679, 0x31fa, 0x3994, 0x2c3d, 0x383f, 0x399d, 0x34f7, 0x360e, 0x35f3, 0x38f0, +0x38d4, 0x399a, 0x3a48, 0x3987, 0x3b54, 0x382c, 0x3210, 0x35ef, 0x36ca, 0x31b4, 0x3625, 0x371f, 0x37bd, 0x3680, 0x3a3a, 0x3ac0, 0x3bbf, 0x3bf5, 0x39f2, 0x29c2, 0x363e, 0x3a4e, 0x3596, 0x3b1b, 0x3459, 0x3669, 0x3aa1, 0x39c3, 0x3376, 0x390d, 0x2456, 0x39b5, +0x3a66, 0x3ad8, 0x3b51, 0x36aa, 0x32be, 0x3ac8, 0x392b, 0x3740, 0x3a48, 0x38f5, 0x3b2d, 0x3a5f, 0x2ff3, 0x366f, 0x39d3, 0x35e5, 0x3822, 0x38db, 0x3b8a, 0x34be, 0x2d33, 0x36dd, 0x3578, 0x3bdf, 0x2c7e, 0x39cf, 0x32ff, 0x35c9, 0x3970, 0x3bcb, 0x351e, 0x3956, +0x2c42, 0x3308, 0x377a, 0x361c, 0x39a0, 0x36c9, 0x2dcb, 0x3bf2, 0x3b5f, 0x33ee, 0x24c1, 0x2ce9, 0x3927, 0x305d, 0x3702, 0x3119, 0x35f9, 0x3855, 0x3374, 0x349b, 0x3bcf, 0x2dea, 0x34f0, 0x363f, 0x37da, 0x3a74, 0x35fc, 0x35fa, 0x316b, 0x3804, 0x37a7, 0x3986, +0x3073, 0x3aed, 0x31c7, 0x3844, 0x34a4, 0x387d, 0x3a20, 0x3037, 0x3a00, 0x3b70, 0x377f, 0x3686, 0x3b7e, 0x38b3, 0x32e3, 0x3323, 0x391e, 0x3228, 0x3930, 0x3997, 0x3a5e, 0x398b, 0x3512, 0x35b0, 0x365c, 0x325d, 0x3b61, 0x38b8, 0x39a4, 0x3423, 0x3bd7, 0x38af, +0x2d3d, 0x382d, 0x38ac, 0x26ca, 0x395e, 0x21a8, 0x3520, 0x386f, 0x3b95, 0x32c0, 0x3b84, 0x3a51, 0x3b4b, 0x31d2, 0x3747, 0x3b96, 0x3b40, 0x3535, 0x38d1, 0x3899, 0x3b00, 0x3827, 0x3ae3, 0x38c8, 0x3a07, 0x338d, 0x2e96, 0x3a46, 0x394a, 0x39de, 0x2951, 0x3a02, +0x3838, 0x2d45, 0x28c0, 0x3958, 0x3070, 0x2aa2, 0x3510, 0x38ce, 0x271c, 0x3440, 0x3954, 0x30bc, 0x3b35, 0x2f1d, 0x3afb, 0x2dae, 0x356f, 0x2e13, 0x3981, 0x326d, 0x3a28, 0x3a36, 0x3a95, 0x38cb, 0x38db, 0x3150, 0x2c9e, 0x34c5, 0x3adb, 0x3bdf, 0x38f2, 0x3994, +0x36f8, 0x31c0, 0x3a4f, 0x3825, 0x394b, 0x3a8b, 0x38ac, 0x3167, 0x2e2d, 0x3a93, 0x34f3, 0x37bd, 0x3b63, 0x2f2f, 0x3ae0, 0x3ad8, 0x34a8, 0x2e1c, 0x3890, 0x3705, 0x3b69, 0x3bc1, 0x28af, 0x3b36, 0x348b, 0x3111, 0x3a8d, 0x389c, 0x3916, 0x36dc, 0x3bae, 0x3874, +0x3593, 0x3638, 0x3018, 0x3a56, 0x38a3, 0x2ad4, 0x3a25, 0x38d7, 0x3864, 0x31c1, 0x28d1, 0x39c8, 0x37d6, 0x2c7f, 0x3ba5, 0x34b8, 0x3bef, 0x3b83, 0x3ab5, 0x3062, 0x38bc, 0x399c, 0x2ce4, 0x2f2c, 0x39bf, 0x2ed1, 0x385f, 0x37e0, 0x35ee, 0x397d, 0x3b0c, 0x3049, +0x39d5, 0x322e, 0x3936, 0x3747, 0x2e15, 0x3b41, 0x3874, 0x3bd0, 0x2c04, 0x3800, 0x375b, 0x3b2d, 0x38d8, 0x3a51, 0x3406, 0x38da, 0x38ba, 0x3497, 0x382e, 0x35fc, 0x39d4, 0x3775, 0x3b1e, 0x3813, 0x3649, 0x31af, 0x37bb, 0x334a, 0x3a6e, 0x3284, 0x26e0, 0x2e01, +0x2ebb, 0x344b, 0x3821, 0x381a, 0x385a, 0x2534, 0x3635, 0x2a92, 0x3b8c, 0x31f0, 0x3947, 0x3ac7, 0x3743, 0x3924, 0x39e4, 0x358f, 0x2b62, 0x392c, 0x3955, 0x3341, 0x3676, 0x38ac, 0x3957, 0x335b, 0x2ca2, 0x39ff, 0x37cb, 0x341f, 0x3ac9, 0x3b6c, 0x2f14, 0x34c3, +0x3018, 0x3169, 0x355b, 0x3624, 0x31ed, 0x379e, 0x3268, 0x309b, 0x35db, 0x3872, 0x3bdb, 0x34c7, 0x3408, 0x3359, 0x3920, 0x331f, 0x3866, 0x3af0, 0x2a1a, 0x39e0, 0x3b14, 0x34fa, 0x2d18, 0x3963, 0x35e8, 0x2539, 0x38f5, 0x37b3, 0x378f, 0x31b5, 0x3a6c, 0x3685, +0x3a06, 0x318a, 0x2934, 0x33c1, 0x3be8, 0x375b, 0x3860, 0x3543, 0x3702, 0x3951, 0x3677, 0x37ff, 0x2e27, 0x2e3a, 0x340f, 0x3817, 0x2f04, 0x357e, 0x3a1d, 0x2dd6, 0x252a, 0x3945, 0x162a, 0x3b19, 0x3a53, 0x35d2, 0x3a5d, 0x3474, 0x38e9, 0x374b, 0x387c, 0x1f1a, +0x38ac, 0x3291, 0x3393, 0x3b53, 0x3169, 0x3bca, 0x2f1a, 0x3551, 0x38a3, 0x28e3, 0x369d, 0x34a1, 0x38a8, 0x34c3, 0x3841, 0x390d, 0x3b13, 0x3282, 0x3a29, 0x3a78, 0x2df3, 0x3a37, 0x35f4, 0x35a6, 0x38e8, 0x3328, 0x3beb, 0x390b, 0x32dc, 0x34dc, 0x396d, 0x3a78, +0x39ba, 0x3a06, 0x2cdd, 0x3bc3, 0x2d43, 0x2992, 0x3663, 0x3a68, 0x2c3e, 0x394e, 0x2c9f, 0x380e, 0x37f5, 0x3557, 0x2873, 0x390f, 0x39e7, 0x3939, 0x3669, 0x385c, 0x3a68, 0x32c4, 0x2b04, 0x2d6d, 0x39d3, 0x3895, 0x331d, 0x3b59, 0x3463, 0x2b6a, 0x31de, 0x3296, +0x3aae, 0x3bcd, 0x345a, 0x3897, 0x374b, 0x3bd4, 0x38a2, 0x357f, 0x3402, 0x3a0c, 0x3507, 0x3865, 0x3a54, 0x3878, 0x3859, 0x383e, 0x32b5, 0x34ea, 0x328d, 0x38b6, 0x3464, 0x2f5b, 0x35ff, 0x3817, 0x2f24, 0x3533, 0x3b21, 0x37ba, 0x3837, 0x2e34, 0x3bad, 0x34bc +}; \ No newline at end of file diff --git a/hwpe/redmule_256iter/inc/x_input.h b/hwpe/redmule_256iter/inc/x_input.h new file mode 100644 index 0000000..1e38d23 --- /dev/null +++ b/hwpe/redmule_256iter/inc/x_input.h @@ -0,0 +1,27 @@ + /* Header file generated by RedMulE Golden Model */ +uint16_t x_inp [768] = { +0x2153, 0x3bb5, 0x3896, 0x365f, 0x2483, 0x3518, 0x2dd1, 0x3bca, 0x397b, 0x29b1, 0x3705, 0x36c8, 0x398b, 0x3661, 0x2f05, 0x365a, 0x3bf9, 0x34df, 0x363b, 0x38d9, 0x39c6, 0x3abb, 0x3952, 0x38f2, 0x392d, 0x3b3e, 0x2afb, 0x3a9d, 0x353b, 0x3b73, 0x3a01, 0x3679, +0x3934, 0x397d, 0x2904, 0x3822, 0x3462, 0x3b44, 0x39e9, 0x28be, 0x331e, 0x3a1d, 0x39e5, 0x34da, 0x3a19, 0x3906, 0x1d35, 0x3871, 0x31e7, 0x3b29, 0x325d, 0x3797, 0x2b2f, 0x38b4, 0x232f, 0x38aa, 0x3aca, 0x316f, 0x3811, 0x3950, 0x32ea, 0x3bc7, 0x382c, 0x38a2, +0x29ce, 0x3afa, 0x3a39, 0x2ccc, 0x39fd, 0x3b3d, 0x384a, 0x3a35, 0x3802, 0x366a, 0x37ec, 0x3598, 0x3bf8, 0x3a85, 0x3a1b, 0x386e, 0x3b4c, 0x39de, 0x38c2, 0x2f93, 0x3b4c, 0x39c4, 0x3b9e, 0x3844, 0x346d, 0x3bff, 0x32ce, 0x296d, 0x3130, 0x3b3d, 0x3b44, 0x369d, +0x3b13, 0x31ed, 0x330a, 0x3831, 0x34e7, 0x37b3, 0x331a, 0x3918, 0x32d3, 0x3995, 0x3991, 0x3919, 0x3a26, 0x385b, 0x2b76, 0x3a3b, 0x37f2, 0x26a7, 0x3225, 0x3b64, 0x28f0, 0x3456, 0x3822, 0x341e, 0x381a, 0x38d8, 0x2c11, 0x33be, 0x33ac, 0x353f, 0x3476, 0x3abc, +0x36ec, 0x3a1d, 0x39d3, 0x3821, 0x36ac, 0x3bce, 0x3ad2, 0x3616, 0x36a1, 0x2cb3, 0x38d2, 0x314f, 0x385c, 0x3b63, 0x3bb6, 0x2951, 0x372d, 0x2c42, 0x3823, 0x3883, 0x3872, 0x31ee, 0x36c5, 0x399a, 0x31b0, 0x3887, 0x3884, 0x3865, 0x3896, 0x36c3, 0x32e3, 0x346c, +0x3935, 0x3b50, 0x2b6d, 0x38cd, 0x388f, 0x3389, 0x395d, 0x31cd, 0x2efd, 0x3154, 0x2f35, 0x3444, 0x3293, 0x3b6b, 0x1bec, 0x3b69, 0x3bf3, 0x3611, 0x3508, 0x3742, 0x3a50, 0x3ab7, 0x3457, 0x38d3, 0x3344, 0x38e8, 0x33c0, 0x3668, 0x3bee, 0x3b21, 0x3727, 0x3121, +0x316c, 0x3288, 0x2d50, 0x2e74, 0x35d5, 0x37e2, 0x303d, 0x36af, 0x341f, 0x3436, 0x2df7, 0x399d, 0x30f4, 0x3aaf, 0x34e4, 0x2c2a, 0x3116, 0x34d3, 0x36ac, 0x35e3, 0x3760, 0x36e1, 0x3ad2, 0x3547, 0x38f4, 0x369c, 0x3ba9, 0x34f0, 0x3a39, 0x3b19, 0x36e6, 0x395d, +0x3be8, 0x3293, 0x3bfc, 0x3435, 0x2eb3, 0x3360, 0x3919, 0x3bed, 0x396a, 0x37fc, 0x3242, 0x384b, 0x38cb, 0x3b2c, 0x3b28, 0x28cf, 0x3828, 0x3855, 0x3ba9, 0x2fa7, 0x340b, 0x32f1, 0x3ada, 0x36fa, 0x31f5, 0x3436, 0x29d0, 0x33e6, 0x3232, 0x3bec, 0x3904, 0x2797, +0x3b81, 0x3bac, 0x38d2, 0x343d, 0x31af, 0x3b1e, 0x33fc, 0x3864, 0x3624, 0x3905, 0x2945, 0x3b52, 0x2d08, 0x3a17, 0x3b84, 0x3804, 0x3a24, 0x38a3, 0x3562, 0x3ae6, 0x3bba, 0x3a45, 0x3679, 0x31fa, 0x3994, 0x2c3d, 0x383f, 0x399d, 0x34f7, 0x360e, 0x35f3, 0x38f0, +0x38d4, 0x399a, 0x3a48, 0x3987, 0x3b54, 0x382c, 0x3210, 0x35ef, 0x36ca, 0x31b4, 0x3625, 0x371f, 0x37bd, 0x3680, 0x3a3a, 0x3ac0, 0x3bbf, 0x3bf5, 0x39f2, 0x29c2, 0x363e, 0x3a4e, 0x3596, 0x3b1b, 0x3459, 0x3669, 0x3aa1, 0x39c3, 0x3376, 0x390d, 0x2456, 0x39b5, +0x3a66, 0x3ad8, 0x3b51, 0x36aa, 0x32be, 0x3ac8, 0x392b, 0x3740, 0x3a48, 0x38f5, 0x3b2d, 0x3a5f, 0x2ff3, 0x366f, 0x39d3, 0x35e5, 0x3822, 0x38db, 0x3b8a, 0x34be, 0x2d33, 0x36dd, 0x3578, 0x3bdf, 0x2c7e, 0x39cf, 0x32ff, 0x35c9, 0x3970, 0x3bcb, 0x351e, 0x3956, +0x2c42, 0x3308, 0x377a, 0x361c, 0x39a0, 0x36c9, 0x2dcb, 0x3bf2, 0x3b5f, 0x33ee, 0x24c1, 0x2ce9, 0x3927, 0x305d, 0x3702, 0x3119, 0x35f9, 0x3855, 0x3374, 0x349b, 0x3bcf, 0x2dea, 0x34f0, 0x363f, 0x37da, 0x3a74, 0x35fc, 0x35fa, 0x316b, 0x3804, 0x37a7, 0x3986, +0x3073, 0x3aed, 0x31c7, 0x3844, 0x34a4, 0x387d, 0x3a20, 0x3037, 0x3a00, 0x3b70, 0x377f, 0x3686, 0x3b7e, 0x38b3, 0x32e3, 0x3323, 0x391e, 0x3228, 0x3930, 0x3997, 0x3a5e, 0x398b, 0x3512, 0x35b0, 0x365c, 0x325d, 0x3b61, 0x38b8, 0x39a4, 0x3423, 0x3bd7, 0x38af, +0x2d3d, 0x382d, 0x38ac, 0x26ca, 0x395e, 0x21a8, 0x3520, 0x386f, 0x3b95, 0x32c0, 0x3b84, 0x3a51, 0x3b4b, 0x31d2, 0x3747, 0x3b96, 0x3b40, 0x3535, 0x38d1, 0x3899, 0x3b00, 0x3827, 0x3ae3, 0x38c8, 0x3a07, 0x338d, 0x2e96, 0x3a46, 0x394a, 0x39de, 0x2951, 0x3a02, +0x3838, 0x2d45, 0x28c0, 0x3958, 0x3070, 0x2aa2, 0x3510, 0x38ce, 0x271c, 0x3440, 0x3954, 0x30bc, 0x3b35, 0x2f1d, 0x3afb, 0x2dae, 0x356f, 0x2e13, 0x3981, 0x326d, 0x3a28, 0x3a36, 0x3a95, 0x38cb, 0x38db, 0x3150, 0x2c9e, 0x34c5, 0x3adb, 0x3bdf, 0x38f2, 0x3994, +0x36f8, 0x31c0, 0x3a4f, 0x3825, 0x394b, 0x3a8b, 0x38ac, 0x3167, 0x2e2d, 0x3a93, 0x34f3, 0x37bd, 0x3b63, 0x2f2f, 0x3ae0, 0x3ad8, 0x34a8, 0x2e1c, 0x3890, 0x3705, 0x3b69, 0x3bc1, 0x28af, 0x3b36, 0x348b, 0x3111, 0x3a8d, 0x389c, 0x3916, 0x36dc, 0x3bae, 0x3874, +0x3593, 0x3638, 0x3018, 0x3a56, 0x38a3, 0x2ad4, 0x3a25, 0x38d7, 0x3864, 0x31c1, 0x28d1, 0x39c8, 0x37d6, 0x2c7f, 0x3ba5, 0x34b8, 0x3bef, 0x3b83, 0x3ab5, 0x3062, 0x38bc, 0x399c, 0x2ce4, 0x2f2c, 0x39bf, 0x2ed1, 0x385f, 0x37e0, 0x35ee, 0x397d, 0x3b0c, 0x3049, +0x39d5, 0x322e, 0x3936, 0x3747, 0x2e15, 0x3b41, 0x3874, 0x3bd0, 0x2c04, 0x3800, 0x375b, 0x3b2d, 0x38d8, 0x3a51, 0x3406, 0x38da, 0x38ba, 0x3497, 0x382e, 0x35fc, 0x39d4, 0x3775, 0x3b1e, 0x3813, 0x3649, 0x31af, 0x37bb, 0x334a, 0x3a6e, 0x3284, 0x26e0, 0x2e01, +0x2ebb, 0x344b, 0x3821, 0x381a, 0x385a, 0x2534, 0x3635, 0x2a92, 0x3b8c, 0x31f0, 0x3947, 0x3ac7, 0x3743, 0x3924, 0x39e4, 0x358f, 0x2b62, 0x392c, 0x3955, 0x3341, 0x3676, 0x38ac, 0x3957, 0x335b, 0x2ca2, 0x39ff, 0x37cb, 0x341f, 0x3ac9, 0x3b6c, 0x2f14, 0x34c3, +0x3018, 0x3169, 0x355b, 0x3624, 0x31ed, 0x379e, 0x3268, 0x309b, 0x35db, 0x3872, 0x3bdb, 0x34c7, 0x3408, 0x3359, 0x3920, 0x331f, 0x3866, 0x3af0, 0x2a1a, 0x39e0, 0x3b14, 0x34fa, 0x2d18, 0x3963, 0x35e8, 0x2539, 0x38f5, 0x37b3, 0x378f, 0x31b5, 0x3a6c, 0x3685, +0x3a06, 0x318a, 0x2934, 0x33c1, 0x3be8, 0x375b, 0x3860, 0x3543, 0x3702, 0x3951, 0x3677, 0x37ff, 0x2e27, 0x2e3a, 0x340f, 0x3817, 0x2f04, 0x357e, 0x3a1d, 0x2dd6, 0x252a, 0x3945, 0x162a, 0x3b19, 0x3a53, 0x35d2, 0x3a5d, 0x3474, 0x38e9, 0x374b, 0x387c, 0x1f1a, +0x38ac, 0x3291, 0x3393, 0x3b53, 0x3169, 0x3bca, 0x2f1a, 0x3551, 0x38a3, 0x28e3, 0x369d, 0x34a1, 0x38a8, 0x34c3, 0x3841, 0x390d, 0x3b13, 0x3282, 0x3a29, 0x3a78, 0x2df3, 0x3a37, 0x35f4, 0x35a6, 0x38e8, 0x3328, 0x3beb, 0x390b, 0x32dc, 0x34dc, 0x396d, 0x3a78, +0x39ba, 0x3a06, 0x2cdd, 0x3bc3, 0x2d43, 0x2992, 0x3663, 0x3a68, 0x2c3e, 0x394e, 0x2c9f, 0x380e, 0x37f5, 0x3557, 0x2873, 0x390f, 0x39e7, 0x3939, 0x3669, 0x385c, 0x3a68, 0x32c4, 0x2b04, 0x2d6d, 0x39d3, 0x3895, 0x331d, 0x3b59, 0x3463, 0x2b6a, 0x31de, 0x3296, +0x3aae, 0x3bcd, 0x345a, 0x3897, 0x374b, 0x3bd4, 0x38a2, 0x357f, 0x3402, 0x3a0c, 0x3507, 0x3865, 0x3a54, 0x3878, 0x3859, 0x383e, 0x32b5, 0x34ea, 0x328d, 0x38b6, 0x3464, 0x2f5b, 0x35ff, 0x3817, 0x2f24, 0x3533, 0x3b21, 0x37ba, 0x3837, 0x2e34, 0x3bad, 0x34bc +}; \ No newline at end of file diff --git a/hwpe/redmule_256iter/inc/y_2D.h b/hwpe/redmule_256iter/inc/y_2D.h new file mode 100644 index 0000000..9484a10 --- /dev/null +++ b/hwpe/redmule_256iter/inc/y_2D.h @@ -0,0 +1,27 @@ + /* Header file generated by RedMulE Golden Model */ +uint16_t y_inp_2D [32][32] = { +0x3150, 0x2dc1, 0x3033, 0x31f5, 0x3bb6, 0x3bff, 0x39f9, 0x3662, 0x3720, 0x351d, 0x384b, 0x3093, 0x3b9d, 0x35ad, 0x3695, 0x3466, 0x2300, 0x3445, 0x33ae, 0x3586, 0x38a3, 0x3bdb, 0x33a2, 0x379b, 0x3a0e, 0x38b0, 0x39ba, 0x379b, 0x39d3, 0x3a51, 0x3b30, 0x3794, +0x3b76, 0x3042, 0x38cc, 0x2dfc, 0x3b1a, 0x37fb, 0x38f7, 0x3824, 0x386f, 0x38c7, 0x36ee, 0x3a9c, 0x38d3, 0x2c67, 0x3a80, 0x2f30, 0x3328, 0x3721, 0x3790, 0x34e5, 0x3a6c, 0x3643, 0x3934, 0x3034, 0x38d4, 0x362e, 0x3b4b, 0x3408, 0x30c2, 0x370e, 0x3b31, 0x3b16, +0x3b6b, 0x39d4, 0x339c, 0x381e, 0x313e, 0x3671, 0x3ae2, 0x3479, 0x3940, 0x342d, 0x3925, 0x370a, 0x35d8, 0x2dad, 0x3888, 0x24b9, 0x375d, 0x34bd, 0x3243, 0x2ebb, 0x3970, 0x3a21, 0x3a07, 0x3877, 0x3888, 0x3569, 0x372d, 0x2ac1, 0x331e, 0x384d, 0x3996, 0x34a4, +0x35c1, 0x33a9, 0x21ed, 0x3a42, 0x388d, 0x34e4, 0x33c3, 0x34f9, 0x3a7b, 0x33fb, 0x2cdd, 0x3b0e, 0x333b, 0x3973, 0x34fc, 0x3771, 0x32ea, 0x2de4, 0x31a8, 0x3946, 0x3657, 0x3a4e, 0x36f6, 0x2829, 0x3ba2, 0x3bdc, 0x3bb3, 0x306c, 0x398d, 0x3a1f, 0x3991, 0x3846, +0x3547, 0x3292, 0x2e85, 0x31ed, 0x3979, 0x3a90, 0x28a4, 0x3bed, 0x36d8, 0x340e, 0x3b6a, 0x3ab6, 0x3824, 0x382b, 0x3ac3, 0x3811, 0x36d7, 0x3519, 0x3a92, 0x3a42, 0x29d1, 0x383a, 0x3a9b, 0x300e, 0x2cd3, 0x39cd, 0x3874, 0x3a07, 0x2eb1, 0x3b86, 0x3ad8, 0x3a5d, +0x3712, 0x284a, 0x38c1, 0x3bec, 0x39c0, 0x32cd, 0x3ad8, 0x3bce, 0x3817, 0x3896, 0x3aa7, 0x3870, 0x3996, 0x32cc, 0x3a4c, 0x3757, 0x3814, 0x3b65, 0x3acb, 0x376e, 0x34c0, 0x3609, 0x3bf0, 0x3b24, 0x3b29, 0x3848, 0x34b7, 0x398a, 0x220c, 0x3498, 0x3a8c, 0x3883, +0x38c4, 0x3af6, 0x3a42, 0x2dd6, 0x3147, 0x3717, 0x3a8e, 0x3af9, 0x3296, 0x38ef, 0x34fa, 0x3555, 0x3b29, 0x38de, 0x315e, 0x3773, 0x3b67, 0x3116, 0x38ec, 0x357c, 0x35d0, 0x2518, 0x3958, 0x2a03, 0x37d9, 0x3699, 0x3a1e, 0x3230, 0x3b13, 0x36d4, 0x3b2a, 0x39ad, +0x3b10, 0x351a, 0x3b97, 0x3326, 0x2b54, 0x3b7d, 0x386f, 0x373e, 0x37fa, 0x389b, 0x3b90, 0x3292, 0x3975, 0x38f3, 0x37f1, 0x3590, 0x3810, 0x2fd7, 0x3bf7, 0x3a5a, 0x3a1c, 0x34dd, 0x354c, 0x32f8, 0x3095, 0x321e, 0x39e0, 0x395c, 0x3717, 0x357f, 0x394a, 0x34b1, +0x3ba4, 0x380c, 0x3604, 0x2f50, 0x348d, 0x3828, 0x3a9f, 0x39ce, 0x32ca, 0x3906, 0x3ab2, 0x2ca5, 0x38c9, 0x362a, 0x34b2, 0x29dc, 0x3a36, 0x3052, 0x31b7, 0x3589, 0x387c, 0x3401, 0x3b22, 0x3ad6, 0x3ae8, 0x3238, 0x3494, 0x3502, 0x3717, 0x3a6c, 0x3229, 0x368c, +0x3056, 0x3a56, 0x3498, 0x39eb, 0x2864, 0x342d, 0x39e0, 0x34a1, 0x2b99, 0x3a04, 0x38ff, 0x328c, 0x34d9, 0x387d, 0x3a3c, 0x32e5, 0x39eb, 0x3984, 0x34dd, 0x38a7, 0x373f, 0x39b4, 0x3235, 0x2f58, 0x2f39, 0x3800, 0x3758, 0x3939, 0x39fc, 0x3a4b, 0x38bf, 0x30ee, +0x345e, 0x39c8, 0x3a6d, 0x3262, 0x3b81, 0x31dc, 0x3a15, 0x3bd0, 0x36af, 0x36de, 0x37d5, 0x39d7, 0x3ad3, 0x3ac1, 0x3109, 0x35ea, 0x31c6, 0x398d, 0x3987, 0x3a4a, 0x34d2, 0x2ed2, 0x35e6, 0x352c, 0x39eb, 0x3bd6, 0x3a5b, 0x39d1, 0x34aa, 0x3ade, 0x394b, 0x38a1, +0x2bed, 0x38de, 0x3811, 0x3813, 0x391a, 0x374b, 0x3829, 0x3725, 0x38f0, 0x3583, 0x3966, 0x3a7d, 0x375a, 0x38fe, 0x3696, 0x361c, 0x39a8, 0x35f0, 0x38e1, 0x3003, 0x3595, 0x316e, 0x3862, 0x3af8, 0x3af2, 0x34c8, 0x381d, 0x37d8, 0x3893, 0x3a9c, 0x3989, 0x308c, +0x30cc, 0x2538, 0x399d, 0x3919, 0x399e, 0x21cc, 0x38e9, 0x30f8, 0x3a20, 0x3b3c, 0x3990, 0x259c, 0x3143, 0x3080, 0x3967, 0x3afb, 0x3a1b, 0x3779, 0x2eeb, 0x39f3, 0x379a, 0x369c, 0x3985, 0x3a1b, 0x3ba6, 0x3a53, 0x28d5, 0x3881, 0x31d9, 0x3a34, 0x3bd9, 0x393a, +0x3601, 0x2c6e, 0x3636, 0x3298, 0x39bb, 0x3a08, 0x38db, 0x35ad, 0x3a09, 0x36a6, 0x3bc7, 0x3bac, 0x34ae, 0x3291, 0x290b, 0x3250, 0x2648, 0x333d, 0x2bf3, 0x34b1, 0x30e0, 0x351f, 0x3a74, 0x38dc, 0x3883, 0x2841, 0x35e1, 0x390d, 0x3a50, 0x3abd, 0x386d, 0x3bb7, +0x3b94, 0x36b7, 0x3a49, 0x332f, 0x3a1d, 0x354b, 0x3bab, 0x3346, 0x3417, 0x351e, 0x3b6d, 0x391a, 0x2db3, 0x3b1c, 0x3a4a, 0x37b7, 0x36cf, 0x3a56, 0x39c4, 0x3be9, 0x34f0, 0x39be, 0x3691, 0x1ba5, 0x3888, 0x3040, 0x3ae1, 0x3b9b, 0x398f, 0x3a49, 0x3a16, 0x38c0, +0x386c, 0x39ab, 0x37fa, 0x382c, 0x3a6f, 0x393f, 0x340d, 0x38ef, 0x39d1, 0x3845, 0x398f, 0x363e, 0x3687, 0x3052, 0x3a2b, 0x392c, 0x2f5c, 0x3412, 0x3a1f, 0x3b2f, 0x3bcc, 0x3a63, 0x3a89, 0x36e9, 0x3921, 0x3b80, 0x2dc0, 0x3a03, 0x3beb, 0x38d3, 0x36cb, 0x39a3, +0x3978, 0x3a88, 0x3ba4, 0x3561, 0x28c5, 0x33a0, 0x37be, 0x2c39, 0x30ee, 0x3782, 0x2c07, 0x354e, 0x3491, 0x3a92, 0x331a, 0x3b15, 0x32e1, 0x3839, 0x3afb, 0x36c2, 0x2fd0, 0x29ad, 0x3b2e, 0x39c1, 0x2a8c, 0x341a, 0x2f90, 0x395a, 0x3969, 0x37ea, 0x3a5c, 0x3b6d, +0x3971, 0x3a93, 0x304e, 0x3623, 0x3a22, 0x31ee, 0x29df, 0x2c93, 0x3a01, 0x3a62, 0x366c, 0x371d, 0x3af3, 0x2e08, 0x3ac0, 0x3642, 0x3a28, 0x368d, 0x2d3d, 0x36d9, 0x32c3, 0x373f, 0x36fe, 0x3487, 0x2c81, 0x3623, 0x3b59, 0x3a91, 0x350a, 0x34f4, 0x3b09, 0x2c25, +0x3b13, 0x325a, 0x379e, 0x3a7d, 0x34b1, 0x39d5, 0x2ba8, 0x322b, 0x3b5e, 0x37ab, 0x2e24, 0x3ba9, 0x3a3d, 0x34f7, 0x3ba1, 0x3877, 0x3071, 0x39fb, 0x3bbd, 0x3633, 0x3b36, 0x2daa, 0x3b9b, 0x3aa0, 0x395c, 0x3b8f, 0x38d5, 0x3ab0, 0x3a8f, 0x36c2, 0x3b1f, 0x3489, +0x2acc, 0x3845, 0x3715, 0x37d8, 0x3992, 0x3bff, 0x350e, 0x3ad7, 0x39b0, 0x35ac, 0x3287, 0x385f, 0x3bd4, 0x37a3, 0x3438, 0x39a5, 0x3bcf, 0x38c3, 0x34f6, 0x3ae3, 0x3b57, 0x39af, 0x35eb, 0x3bed, 0x34d4, 0x2a95, 0x3b13, 0x384e, 0x3a3b, 0x33da, 0x3bce, 0x3b99, +0x3559, 0x3335, 0x3a2e, 0x3123, 0x38db, 0x33d0, 0x3638, 0x3b17, 0x3a72, 0x3afc, 0x3936, 0x3838, 0x2b69, 0x3895, 0x3a1a, 0x3192, 0x39d5, 0x37a5, 0x2eb0, 0x2e8b, 0x329a, 0x3b90, 0x390a, 0x3a1e, 0x3847, 0x375d, 0x3873, 0x35e2, 0x3771, 0x30f5, 0x3231, 0x3bd7, +0x2bbc, 0x3ace, 0x31ad, 0x3a6b, 0x28a4, 0x3b48, 0x3ba3, 0x3a84, 0x3353, 0x39f6, 0x381f, 0x2dd6, 0x314c, 0x34af, 0x3929, 0x3921, 0x383b, 0x34b0, 0x3923, 0x32c9, 0x3ae7, 0x318f, 0x3480, 0x2ad8, 0x3042, 0x3a4c, 0x349d, 0x2c12, 0x3abb, 0x3a57, 0x3b0d, 0x3111, +0x3359, 0x3a84, 0x38f2, 0x368d, 0x2f4b, 0x3ba0, 0x395c, 0x3026, 0x3a15, 0x2a04, 0x326e, 0x3522, 0x31a2, 0x382f, 0x2ada, 0x3b7c, 0x2f80, 0x3af5, 0x2d35, 0x38fa, 0x39ab, 0x2c6d, 0x2e7a, 0x39f6, 0x31a4, 0x3a53, 0x358c, 0x3951, 0x3a4e, 0x3916, 0x2a3f, 0x3ae9, +0x3b03, 0x39f8, 0x39fe, 0x3a61, 0x39fb, 0x3704, 0x360d, 0x39a7, 0x37a9, 0x348f, 0x3a30, 0x3af5, 0x366f, 0x3b29, 0x3a6a, 0x33d5, 0x370a, 0x39cd, 0x3444, 0x3bea, 0x3b2b, 0x312e, 0x3b8e, 0x32cf, 0x3b79, 0x3302, 0x3bba, 0x3962, 0x3413, 0x37a1, 0x39e0, 0x3805 +}; \ No newline at end of file diff --git a/hwpe/redmule_256iter/inc/y_input.h b/hwpe/redmule_256iter/inc/y_input.h new file mode 100644 index 0000000..45a2375 --- /dev/null +++ b/hwpe/redmule_256iter/inc/y_input.h @@ -0,0 +1,27 @@ + /* Header file generated by RedMulE Golden Model */ +uint16_t y_inp [768] = { +0x3150, 0x2dc1, 0x3033, 0x31f5, 0x3bb6, 0x3bff, 0x39f9, 0x3662, 0x3720, 0x351d, 0x384b, 0x3093, 0x3b9d, 0x35ad, 0x3695, 0x3466, 0x2300, 0x3445, 0x33ae, 0x3586, 0x38a3, 0x3bdb, 0x33a2, 0x379b, 0x3a0e, 0x38b0, 0x39ba, 0x379b, 0x39d3, 0x3a51, 0x3b30, 0x3794, +0x3b76, 0x3042, 0x38cc, 0x2dfc, 0x3b1a, 0x37fb, 0x38f7, 0x3824, 0x386f, 0x38c7, 0x36ee, 0x3a9c, 0x38d3, 0x2c67, 0x3a80, 0x2f30, 0x3328, 0x3721, 0x3790, 0x34e5, 0x3a6c, 0x3643, 0x3934, 0x3034, 0x38d4, 0x362e, 0x3b4b, 0x3408, 0x30c2, 0x370e, 0x3b31, 0x3b16, +0x3b6b, 0x39d4, 0x339c, 0x381e, 0x313e, 0x3671, 0x3ae2, 0x3479, 0x3940, 0x342d, 0x3925, 0x370a, 0x35d8, 0x2dad, 0x3888, 0x24b9, 0x375d, 0x34bd, 0x3243, 0x2ebb, 0x3970, 0x3a21, 0x3a07, 0x3877, 0x3888, 0x3569, 0x372d, 0x2ac1, 0x331e, 0x384d, 0x3996, 0x34a4, +0x35c1, 0x33a9, 0x21ed, 0x3a42, 0x388d, 0x34e4, 0x33c3, 0x34f9, 0x3a7b, 0x33fb, 0x2cdd, 0x3b0e, 0x333b, 0x3973, 0x34fc, 0x3771, 0x32ea, 0x2de4, 0x31a8, 0x3946, 0x3657, 0x3a4e, 0x36f6, 0x2829, 0x3ba2, 0x3bdc, 0x3bb3, 0x306c, 0x398d, 0x3a1f, 0x3991, 0x3846, +0x3547, 0x3292, 0x2e85, 0x31ed, 0x3979, 0x3a90, 0x28a4, 0x3bed, 0x36d8, 0x340e, 0x3b6a, 0x3ab6, 0x3824, 0x382b, 0x3ac3, 0x3811, 0x36d7, 0x3519, 0x3a92, 0x3a42, 0x29d1, 0x383a, 0x3a9b, 0x300e, 0x2cd3, 0x39cd, 0x3874, 0x3a07, 0x2eb1, 0x3b86, 0x3ad8, 0x3a5d, +0x3712, 0x284a, 0x38c1, 0x3bec, 0x39c0, 0x32cd, 0x3ad8, 0x3bce, 0x3817, 0x3896, 0x3aa7, 0x3870, 0x3996, 0x32cc, 0x3a4c, 0x3757, 0x3814, 0x3b65, 0x3acb, 0x376e, 0x34c0, 0x3609, 0x3bf0, 0x3b24, 0x3b29, 0x3848, 0x34b7, 0x398a, 0x220c, 0x3498, 0x3a8c, 0x3883, +0x38c4, 0x3af6, 0x3a42, 0x2dd6, 0x3147, 0x3717, 0x3a8e, 0x3af9, 0x3296, 0x38ef, 0x34fa, 0x3555, 0x3b29, 0x38de, 0x315e, 0x3773, 0x3b67, 0x3116, 0x38ec, 0x357c, 0x35d0, 0x2518, 0x3958, 0x2a03, 0x37d9, 0x3699, 0x3a1e, 0x3230, 0x3b13, 0x36d4, 0x3b2a, 0x39ad, +0x3b10, 0x351a, 0x3b97, 0x3326, 0x2b54, 0x3b7d, 0x386f, 0x373e, 0x37fa, 0x389b, 0x3b90, 0x3292, 0x3975, 0x38f3, 0x37f1, 0x3590, 0x3810, 0x2fd7, 0x3bf7, 0x3a5a, 0x3a1c, 0x34dd, 0x354c, 0x32f8, 0x3095, 0x321e, 0x39e0, 0x395c, 0x3717, 0x357f, 0x394a, 0x34b1, +0x3ba4, 0x380c, 0x3604, 0x2f50, 0x348d, 0x3828, 0x3a9f, 0x39ce, 0x32ca, 0x3906, 0x3ab2, 0x2ca5, 0x38c9, 0x362a, 0x34b2, 0x29dc, 0x3a36, 0x3052, 0x31b7, 0x3589, 0x387c, 0x3401, 0x3b22, 0x3ad6, 0x3ae8, 0x3238, 0x3494, 0x3502, 0x3717, 0x3a6c, 0x3229, 0x368c, +0x3056, 0x3a56, 0x3498, 0x39eb, 0x2864, 0x342d, 0x39e0, 0x34a1, 0x2b99, 0x3a04, 0x38ff, 0x328c, 0x34d9, 0x387d, 0x3a3c, 0x32e5, 0x39eb, 0x3984, 0x34dd, 0x38a7, 0x373f, 0x39b4, 0x3235, 0x2f58, 0x2f39, 0x3800, 0x3758, 0x3939, 0x39fc, 0x3a4b, 0x38bf, 0x30ee, +0x345e, 0x39c8, 0x3a6d, 0x3262, 0x3b81, 0x31dc, 0x3a15, 0x3bd0, 0x36af, 0x36de, 0x37d5, 0x39d7, 0x3ad3, 0x3ac1, 0x3109, 0x35ea, 0x31c6, 0x398d, 0x3987, 0x3a4a, 0x34d2, 0x2ed2, 0x35e6, 0x352c, 0x39eb, 0x3bd6, 0x3a5b, 0x39d1, 0x34aa, 0x3ade, 0x394b, 0x38a1, +0x2bed, 0x38de, 0x3811, 0x3813, 0x391a, 0x374b, 0x3829, 0x3725, 0x38f0, 0x3583, 0x3966, 0x3a7d, 0x375a, 0x38fe, 0x3696, 0x361c, 0x39a8, 0x35f0, 0x38e1, 0x3003, 0x3595, 0x316e, 0x3862, 0x3af8, 0x3af2, 0x34c8, 0x381d, 0x37d8, 0x3893, 0x3a9c, 0x3989, 0x308c, +0x30cc, 0x2538, 0x399d, 0x3919, 0x399e, 0x21cc, 0x38e9, 0x30f8, 0x3a20, 0x3b3c, 0x3990, 0x259c, 0x3143, 0x3080, 0x3967, 0x3afb, 0x3a1b, 0x3779, 0x2eeb, 0x39f3, 0x379a, 0x369c, 0x3985, 0x3a1b, 0x3ba6, 0x3a53, 0x28d5, 0x3881, 0x31d9, 0x3a34, 0x3bd9, 0x393a, +0x3601, 0x2c6e, 0x3636, 0x3298, 0x39bb, 0x3a08, 0x38db, 0x35ad, 0x3a09, 0x36a6, 0x3bc7, 0x3bac, 0x34ae, 0x3291, 0x290b, 0x3250, 0x2648, 0x333d, 0x2bf3, 0x34b1, 0x30e0, 0x351f, 0x3a74, 0x38dc, 0x3883, 0x2841, 0x35e1, 0x390d, 0x3a50, 0x3abd, 0x386d, 0x3bb7, +0x3b94, 0x36b7, 0x3a49, 0x332f, 0x3a1d, 0x354b, 0x3bab, 0x3346, 0x3417, 0x351e, 0x3b6d, 0x391a, 0x2db3, 0x3b1c, 0x3a4a, 0x37b7, 0x36cf, 0x3a56, 0x39c4, 0x3be9, 0x34f0, 0x39be, 0x3691, 0x1ba5, 0x3888, 0x3040, 0x3ae1, 0x3b9b, 0x398f, 0x3a49, 0x3a16, 0x38c0, +0x386c, 0x39ab, 0x37fa, 0x382c, 0x3a6f, 0x393f, 0x340d, 0x38ef, 0x39d1, 0x3845, 0x398f, 0x363e, 0x3687, 0x3052, 0x3a2b, 0x392c, 0x2f5c, 0x3412, 0x3a1f, 0x3b2f, 0x3bcc, 0x3a63, 0x3a89, 0x36e9, 0x3921, 0x3b80, 0x2dc0, 0x3a03, 0x3beb, 0x38d3, 0x36cb, 0x39a3, +0x3978, 0x3a88, 0x3ba4, 0x3561, 0x28c5, 0x33a0, 0x37be, 0x2c39, 0x30ee, 0x3782, 0x2c07, 0x354e, 0x3491, 0x3a92, 0x331a, 0x3b15, 0x32e1, 0x3839, 0x3afb, 0x36c2, 0x2fd0, 0x29ad, 0x3b2e, 0x39c1, 0x2a8c, 0x341a, 0x2f90, 0x395a, 0x3969, 0x37ea, 0x3a5c, 0x3b6d, +0x3971, 0x3a93, 0x304e, 0x3623, 0x3a22, 0x31ee, 0x29df, 0x2c93, 0x3a01, 0x3a62, 0x366c, 0x371d, 0x3af3, 0x2e08, 0x3ac0, 0x3642, 0x3a28, 0x368d, 0x2d3d, 0x36d9, 0x32c3, 0x373f, 0x36fe, 0x3487, 0x2c81, 0x3623, 0x3b59, 0x3a91, 0x350a, 0x34f4, 0x3b09, 0x2c25, +0x3b13, 0x325a, 0x379e, 0x3a7d, 0x34b1, 0x39d5, 0x2ba8, 0x322b, 0x3b5e, 0x37ab, 0x2e24, 0x3ba9, 0x3a3d, 0x34f7, 0x3ba1, 0x3877, 0x3071, 0x39fb, 0x3bbd, 0x3633, 0x3b36, 0x2daa, 0x3b9b, 0x3aa0, 0x395c, 0x3b8f, 0x38d5, 0x3ab0, 0x3a8f, 0x36c2, 0x3b1f, 0x3489, +0x2acc, 0x3845, 0x3715, 0x37d8, 0x3992, 0x3bff, 0x350e, 0x3ad7, 0x39b0, 0x35ac, 0x3287, 0x385f, 0x3bd4, 0x37a3, 0x3438, 0x39a5, 0x3bcf, 0x38c3, 0x34f6, 0x3ae3, 0x3b57, 0x39af, 0x35eb, 0x3bed, 0x34d4, 0x2a95, 0x3b13, 0x384e, 0x3a3b, 0x33da, 0x3bce, 0x3b99, +0x3559, 0x3335, 0x3a2e, 0x3123, 0x38db, 0x33d0, 0x3638, 0x3b17, 0x3a72, 0x3afc, 0x3936, 0x3838, 0x2b69, 0x3895, 0x3a1a, 0x3192, 0x39d5, 0x37a5, 0x2eb0, 0x2e8b, 0x329a, 0x3b90, 0x390a, 0x3a1e, 0x3847, 0x375d, 0x3873, 0x35e2, 0x3771, 0x30f5, 0x3231, 0x3bd7, +0x2bbc, 0x3ace, 0x31ad, 0x3a6b, 0x28a4, 0x3b48, 0x3ba3, 0x3a84, 0x3353, 0x39f6, 0x381f, 0x2dd6, 0x314c, 0x34af, 0x3929, 0x3921, 0x383b, 0x34b0, 0x3923, 0x32c9, 0x3ae7, 0x318f, 0x3480, 0x2ad8, 0x3042, 0x3a4c, 0x349d, 0x2c12, 0x3abb, 0x3a57, 0x3b0d, 0x3111, +0x3359, 0x3a84, 0x38f2, 0x368d, 0x2f4b, 0x3ba0, 0x395c, 0x3026, 0x3a15, 0x2a04, 0x326e, 0x3522, 0x31a2, 0x382f, 0x2ada, 0x3b7c, 0x2f80, 0x3af5, 0x2d35, 0x38fa, 0x39ab, 0x2c6d, 0x2e7a, 0x39f6, 0x31a4, 0x3a53, 0x358c, 0x3951, 0x3a4e, 0x3916, 0x2a3f, 0x3ae9, +0x3b03, 0x39f8, 0x39fe, 0x3a61, 0x39fb, 0x3704, 0x360d, 0x39a7, 0x37a9, 0x348f, 0x3a30, 0x3af5, 0x366f, 0x3b29, 0x3a6a, 0x33d5, 0x370a, 0x39cd, 0x3444, 0x3bea, 0x3b2b, 0x312e, 0x3b8e, 0x32cf, 0x3b79, 0x3302, 0x3bba, 0x3962, 0x3413, 0x37a1, 0x39e0, 0x3805 +}; \ No newline at end of file diff --git a/hwpe/redmule_256iter/inc/z_2D.h b/hwpe/redmule_256iter/inc/z_2D.h new file mode 100644 index 0000000..aff808a --- /dev/null +++ b/hwpe/redmule_256iter/inc/z_2D.h @@ -0,0 +1,27 @@ + /* Header file generated by RedMulE Golden Model */ +uint16_t z_oup_2D [24][32] = { +0x4845, 0x4897, 0x4608, 0x4838, 0x4855, 0x487b, 0x4869, 0x4880, 0x46d1, 0x48b0, 0x48db, 0x483f, 0x48c9, 0x485f, 0x4881, 0x483a, 0x484b, 0x472c, 0x4762, 0x492b, 0x4822, 0x48fd, 0x488e, 0x492e, 0x483e, 0x484f, 0x49e8, 0x46d7, 0x484b, 0x489d, 0x490b, 0x47e9, +0x484f, 0x47d2, 0x44be, 0x4747, 0x47c7, 0x46c0, 0x4727, 0x48af, 0x46c5, 0x482d, 0x483d, 0x482e, 0x4897, 0x479f, 0x488b, 0x4749, 0x489a, 0x46a8, 0x46f2, 0x488b, 0x4891, 0x47e8, 0x4872, 0x483d, 0x4716, 0x46fd, 0x49b5, 0x46a0, 0x46e7, 0x47a4, 0x48a1, 0x4767, +0x4939, 0x4935, 0x4703, 0x48c1, 0x4863, 0x48bd, 0x4913, 0x48cf, 0x48b6, 0x48b8, 0x4946, 0x4920, 0x495e, 0x48e1, 0x4938, 0x48b2, 0x493a, 0x4882, 0x483b, 0x49d5, 0x4911, 0x4972, 0x496b, 0x49df, 0x48f2, 0x4888, 0x4a46, 0x4821, 0x48c1, 0x490c, 0x49b2, 0x48a3, +0x463a, 0x47b0, 0x44cb, 0x4762, 0x4765, 0x46b9, 0x466a, 0x4814, 0x4631, 0x4796, 0x4666, 0x474b, 0x4798, 0x4704, 0x4838, 0x4761, 0x47d3, 0x4590, 0x45ea, 0x48a2, 0x47f1, 0x4844, 0x484b, 0x4776, 0x47d6, 0x46d8, 0x48f3, 0x44d3, 0x46fa, 0x478d, 0x481e, 0x466e, +0x4827, 0x481e, 0x45a2, 0x4794, 0x4727, 0x4806, 0x475d, 0x48d5, 0x4708, 0x4828, 0x4862, 0x480d, 0x4895, 0x4832, 0x48bd, 0x47f1, 0x482a, 0x46a7, 0x47b1, 0x492d, 0x484d, 0x4884, 0x48dc, 0x485f, 0x476d, 0x480c, 0x48e9, 0x46d3, 0x4728, 0x4884, 0x48a0, 0x480e, +0x4862, 0x4813, 0x4675, 0x485a, 0x47e8, 0x4738, 0x4836, 0x4823, 0x46e7, 0x4821, 0x4822, 0x47b3, 0x4846, 0x4855, 0x4863, 0x4717, 0x4872, 0x47c1, 0x46d5, 0x488e, 0x47e2, 0x485f, 0x487c, 0x48b8, 0x481e, 0x4788, 0x48bd, 0x4677, 0x46c9, 0x47f8, 0x48fe, 0x47fc, +0x47a0, 0x47b2, 0x4588, 0x467e, 0x4662, 0x46c7, 0x46e8, 0x4812, 0x4536, 0x474e, 0x46c0, 0x468f, 0x481f, 0x4679, 0x46a1, 0x46e2, 0x4809, 0x4560, 0x4630, 0x47eb, 0x46b5, 0x4757, 0x4848, 0x477f, 0x46a6, 0x46d8, 0x4870, 0x459a, 0x4670, 0x4678, 0x47d2, 0x468c, +0x4762, 0x48c4, 0x46e3, 0x4791, 0x46b1, 0x486d, 0x47d0, 0x4867, 0x468d, 0x47f6, 0x48a5, 0x4756, 0x4857, 0x4854, 0x4866, 0x4838, 0x484d, 0x46ec, 0x47d2, 0x48f6, 0x484a, 0x4879, 0x4848, 0x483c, 0x471d, 0x4806, 0x48fa, 0x4730, 0x4768, 0x47b8, 0x4865, 0x46f9, +0x48a8, 0x4918, 0x46ca, 0x4867, 0x4800, 0x4862, 0x48d3, 0x4910, 0x474e, 0x4849, 0x48eb, 0x486b, 0x4966, 0x48c5, 0x48f4, 0x4830, 0x48f9, 0x4778, 0x481e, 0x499e, 0x48cf, 0x48f1, 0x4982, 0x4923, 0x487c, 0x47cf, 0x49ea, 0x4649, 0x4773, 0x495e, 0x48b2, 0x483f, +0x48a7, 0x4975, 0x4616, 0x481e, 0x481f, 0x4866, 0x48b6, 0x4864, 0x47dc, 0x4873, 0x485c, 0x487f, 0x4938, 0x491f, 0x490d, 0x48b6, 0x48f8, 0x48a1, 0x4859, 0x492d, 0x489c, 0x4915, 0x4899, 0x4887, 0x486c, 0x4859, 0x49ca, 0x471e, 0x4867, 0x4918, 0x48d3, 0x4827, +0x488b, 0x4998, 0x4704, 0x481d, 0x48b8, 0x4880, 0x4876, 0x4944, 0x470c, 0x48f2, 0x48b9, 0x489b, 0x4956, 0x48e5, 0x48d6, 0x48a5, 0x48dc, 0x4856, 0x484e, 0x49ab, 0x48e0, 0x490e, 0x48dd, 0x4945, 0x488b, 0x48dd, 0x4a32, 0x47ea, 0x4835, 0x4911, 0x4965, 0x4819, +0x460e, 0x481e, 0x452c, 0x4673, 0x475c, 0x4717, 0x46f6, 0x46d0, 0x4696, 0x46bc, 0x4726, 0x481e, 0x4763, 0x46ea, 0x46fe, 0x4758, 0x478b, 0x4627, 0x4704, 0x483f, 0x46ad, 0x47b1, 0x4792, 0x4816, 0x46f2, 0x4684, 0x4827, 0x45a8, 0x472f, 0x47a4, 0x4797, 0x462b, +0x483f, 0x48ab, 0x468f, 0x4863, 0x485a, 0x4766, 0x481d, 0x48cb, 0x47dc, 0x4903, 0x48fc, 0x4830, 0x48cc, 0x483e, 0x48ab, 0x4864, 0x4966, 0x4763, 0x4794, 0x499d, 0x488e, 0x488b, 0x48dc, 0x4960, 0x4854, 0x484c, 0x499c, 0x474c, 0x4826, 0x48bc, 0x4949, 0x4883, +0x489d, 0x4905, 0x4718, 0x481e, 0x48e3, 0x48f4, 0x48c1, 0x4904, 0x47e8, 0x48b3, 0x4892, 0x48d4, 0x48ff, 0x4894, 0x48d5, 0x4886, 0x48fa, 0x4803, 0x47d2, 0x492e, 0x4870, 0x48b2, 0x48e5, 0x492b, 0x487b, 0x4785, 0x49e3, 0x471d, 0x4837, 0x48bf, 0x489b, 0x48c4, +0x475c, 0x4871, 0x464a, 0x4811, 0x47af, 0x471c, 0x4817, 0x4817, 0x463b, 0x484e, 0x477f, 0x464f, 0x4704, 0x487c, 0x47a3, 0x4725, 0x4853, 0x462a, 0x465a, 0x4860, 0x4736, 0x4880, 0x47e1, 0x482b, 0x4811, 0x46c0, 0x48dc, 0x475d, 0x4668, 0x4806, 0x4893, 0x46f4, +0x4858, 0x4959, 0x463d, 0x487b, 0x480f, 0x484e, 0x48c0, 0x48a6, 0x4847, 0x4894, 0x48a0, 0x484a, 0x491e, 0x48f4, 0x48fc, 0x48b5, 0x48ce, 0x47d2, 0x47db, 0x497f, 0x4955, 0x4939, 0x48a7, 0x48ce, 0x4890, 0x4884, 0x49d6, 0x4763, 0x486e, 0x4922, 0x48f4, 0x48c3, +0x47ec, 0x491c, 0x4698, 0x4783, 0x4715, 0x4754, 0x4745, 0x4752, 0x472f, 0x4832, 0x4817, 0x4809, 0x47f8, 0x48c3, 0x47e6, 0x4800, 0x48b6, 0x4730, 0x480a, 0x48cb, 0x479e, 0x488e, 0x47c2, 0x488e, 0x472f, 0x47ee, 0x489d, 0x4744, 0x4755, 0x4851, 0x4846, 0x47d3, +0x4838, 0x48a0, 0x4634, 0x4762, 0x4786, 0x4806, 0x47e3, 0x482d, 0x4726, 0x486c, 0x47b7, 0x4803, 0x48ac, 0x4814, 0x48e0, 0x4839, 0x4827, 0x4750, 0x46f2, 0x48c5, 0x483f, 0x4886, 0x48ad, 0x4856, 0x47e8, 0x47a9, 0x4937, 0x4743, 0x46d0, 0x481f, 0x484c, 0x4804, +0x47fd, 0x481f, 0x456d, 0x4813, 0x474d, 0x4807, 0x4688, 0x480e, 0x46e8, 0x4810, 0x469f, 0x4799, 0x4853, 0x478f, 0x47f2, 0x4824, 0x47d0, 0x471f, 0x46da, 0x485f, 0x4813, 0x481c, 0x482e, 0x4863, 0x4786, 0x480b, 0x48c9, 0x46b8, 0x475a, 0x46e2, 0x4852, 0x46c5, +0x45af, 0x4802, 0x4466, 0x46c2, 0x465d, 0x4743, 0x46b7, 0x47ba, 0x4636, 0x46c3, 0x4677, 0x4784, 0x485a, 0x47c2, 0x46dc, 0x46ac, 0x47de, 0x460e, 0x465f, 0x4834, 0x47f4, 0x4769, 0x46fc, 0x4810, 0x45fd, 0x45ea, 0x48d0, 0x45b5, 0x4704, 0x4783, 0x4830, 0x46c4, +0x4759, 0x47c7, 0x453d, 0x45b0, 0x4741, 0x4702, 0x4736, 0x4793, 0x461b, 0x47ba, 0x470b, 0x46dd, 0x4657, 0x470b, 0x470d, 0x4710, 0x486c, 0x468f, 0x45c3, 0x46ba, 0x479d, 0x483b, 0x46c9, 0x4774, 0x46a9, 0x46a7, 0x4833, 0x4606, 0x4690, 0x46a9, 0x46f5, 0x46a7, +0x47ac, 0x48bb, 0x452c, 0x4803, 0x470f, 0x4824, 0x47d5, 0x48cb, 0x4707, 0x484a, 0x4832, 0x4797, 0x4851, 0x482c, 0x487a, 0x4877, 0x4891, 0x465d, 0x47f4, 0x48ce, 0x4898, 0x4899, 0x484e, 0x486a, 0x47ac, 0x47f0, 0x493e, 0x4611, 0x47e2, 0x489e, 0x488c, 0x46af, +0x4665, 0x4836, 0x45e4, 0x46b6, 0x46a1, 0x46b9, 0x46c8, 0x46dd, 0x4658, 0x474b, 0x467b, 0x4777, 0x4769, 0x4798, 0x4785, 0x475e, 0x472a, 0x4656, 0x45fb, 0x4881, 0x46fc, 0x472d, 0x476e, 0x47a3, 0x465d, 0x46ca, 0x4855, 0x4500, 0x464f, 0x479a, 0x46c3, 0x4738, +0x481e, 0x486c, 0x4659, 0x4801, 0x4756, 0x477a, 0x47d5, 0x487b, 0x4706, 0x4808, 0x484f, 0x4838, 0x4870, 0x4863, 0x48d3, 0x4806, 0x4865, 0x4771, 0x46be, 0x494c, 0x4915, 0x484c, 0x4900, 0x4862, 0x481a, 0x46e8, 0x4974, 0x46a0, 0x4775, 0x483d, 0x487c, 0x480e +}; \ No newline at end of file diff --git a/hwpe/redmule_256iter/inc/z_output.h b/hwpe/redmule_256iter/inc/z_output.h new file mode 100644 index 0000000..96c7e5f --- /dev/null +++ b/hwpe/redmule_256iter/inc/z_output.h @@ -0,0 +1,27 @@ + /* Header file generated by RedMulE Golden Model */ +uint16_t z_oup [768] = { +0x4845, 0x4897, 0x4608, 0x4838, 0x4855, 0x487b, 0x4869, 0x4880, 0x46d1, 0x48b0, 0x48db, 0x483f, 0x48c9, 0x485f, 0x4881, 0x483a, 0x484b, 0x472c, 0x4762, 0x492b, 0x4822, 0x48fd, 0x488e, 0x492e, 0x483e, 0x484f, 0x49e8, 0x46d7, 0x484b, 0x489d, 0x490b, 0x47e9, +0x484f, 0x47d2, 0x44be, 0x4747, 0x47c7, 0x46c0, 0x4727, 0x48af, 0x46c5, 0x482d, 0x483d, 0x482e, 0x4897, 0x479f, 0x488b, 0x4749, 0x489a, 0x46a8, 0x46f2, 0x488b, 0x4891, 0x47e8, 0x4872, 0x483d, 0x4716, 0x46fd, 0x49b5, 0x46a0, 0x46e7, 0x47a4, 0x48a1, 0x4767, +0x4939, 0x4935, 0x4703, 0x48c1, 0x4863, 0x48bd, 0x4913, 0x48cf, 0x48b6, 0x48b8, 0x4946, 0x4920, 0x495e, 0x48e1, 0x4938, 0x48b2, 0x493a, 0x4882, 0x483b, 0x49d5, 0x4911, 0x4972, 0x496b, 0x49df, 0x48f2, 0x4888, 0x4a46, 0x4821, 0x48c1, 0x490c, 0x49b2, 0x48a3, +0x463a, 0x47b0, 0x44cb, 0x4762, 0x4765, 0x46b9, 0x466a, 0x4814, 0x4631, 0x4796, 0x4666, 0x474b, 0x4798, 0x4704, 0x4838, 0x4761, 0x47d3, 0x4590, 0x45ea, 0x48a2, 0x47f1, 0x4844, 0x484b, 0x4776, 0x47d6, 0x46d8, 0x48f3, 0x44d3, 0x46fa, 0x478d, 0x481e, 0x466e, +0x4827, 0x481e, 0x45a2, 0x4794, 0x4727, 0x4806, 0x475d, 0x48d5, 0x4708, 0x4828, 0x4862, 0x480d, 0x4895, 0x4832, 0x48bd, 0x47f1, 0x482a, 0x46a7, 0x47b1, 0x492d, 0x484d, 0x4884, 0x48dc, 0x485f, 0x476d, 0x480c, 0x48e9, 0x46d3, 0x4728, 0x4884, 0x48a0, 0x480e, +0x4862, 0x4813, 0x4675, 0x485a, 0x47e8, 0x4738, 0x4836, 0x4823, 0x46e7, 0x4821, 0x4822, 0x47b3, 0x4846, 0x4855, 0x4863, 0x4717, 0x4872, 0x47c1, 0x46d5, 0x488e, 0x47e2, 0x485f, 0x487c, 0x48b8, 0x481e, 0x4788, 0x48bd, 0x4677, 0x46c9, 0x47f8, 0x48fe, 0x47fc, +0x47a0, 0x47b2, 0x4588, 0x467e, 0x4662, 0x46c7, 0x46e8, 0x4812, 0x4536, 0x474e, 0x46c0, 0x468f, 0x481f, 0x4679, 0x46a1, 0x46e2, 0x4809, 0x4560, 0x4630, 0x47eb, 0x46b5, 0x4757, 0x4848, 0x477f, 0x46a6, 0x46d8, 0x4870, 0x459a, 0x4670, 0x4678, 0x47d2, 0x468c, +0x4762, 0x48c4, 0x46e3, 0x4791, 0x46b1, 0x486d, 0x47d0, 0x4867, 0x468d, 0x47f6, 0x48a5, 0x4756, 0x4857, 0x4854, 0x4866, 0x4838, 0x484d, 0x46ec, 0x47d2, 0x48f6, 0x484a, 0x4879, 0x4848, 0x483c, 0x471d, 0x4806, 0x48fa, 0x4730, 0x4768, 0x47b8, 0x4865, 0x46f9, +0x48a8, 0x4918, 0x46ca, 0x4867, 0x4800, 0x4862, 0x48d3, 0x4910, 0x474e, 0x4849, 0x48eb, 0x486b, 0x4966, 0x48c5, 0x48f4, 0x4830, 0x48f9, 0x4778, 0x481e, 0x499e, 0x48cf, 0x48f1, 0x4982, 0x4923, 0x487c, 0x47cf, 0x49ea, 0x4649, 0x4773, 0x495e, 0x48b2, 0x483f, +0x48a7, 0x4975, 0x4616, 0x481e, 0x481f, 0x4866, 0x48b6, 0x4864, 0x47dc, 0x4873, 0x485c, 0x487f, 0x4938, 0x491f, 0x490d, 0x48b6, 0x48f8, 0x48a1, 0x4859, 0x492d, 0x489c, 0x4915, 0x4899, 0x4887, 0x486c, 0x4859, 0x49ca, 0x471e, 0x4867, 0x4918, 0x48d3, 0x4827, +0x488b, 0x4998, 0x4704, 0x481d, 0x48b8, 0x4880, 0x4876, 0x4944, 0x470c, 0x48f2, 0x48b9, 0x489b, 0x4956, 0x48e5, 0x48d6, 0x48a5, 0x48dc, 0x4856, 0x484e, 0x49ab, 0x48e0, 0x490e, 0x48dd, 0x4945, 0x488b, 0x48dd, 0x4a32, 0x47ea, 0x4835, 0x4911, 0x4965, 0x4819, +0x460e, 0x481e, 0x452c, 0x4673, 0x475c, 0x4717, 0x46f6, 0x46d0, 0x4696, 0x46bc, 0x4726, 0x481e, 0x4763, 0x46ea, 0x46fe, 0x4758, 0x478b, 0x4627, 0x4704, 0x483f, 0x46ad, 0x47b1, 0x4792, 0x4816, 0x46f2, 0x4684, 0x4827, 0x45a8, 0x472f, 0x47a4, 0x4797, 0x462b, +0x483f, 0x48ab, 0x468f, 0x4863, 0x485a, 0x4766, 0x481d, 0x48cb, 0x47dc, 0x4903, 0x48fc, 0x4830, 0x48cc, 0x483e, 0x48ab, 0x4864, 0x4966, 0x4763, 0x4794, 0x499d, 0x488e, 0x488b, 0x48dc, 0x4960, 0x4854, 0x484c, 0x499c, 0x474c, 0x4826, 0x48bc, 0x4949, 0x4883, +0x489d, 0x4905, 0x4718, 0x481e, 0x48e3, 0x48f4, 0x48c1, 0x4904, 0x47e8, 0x48b3, 0x4892, 0x48d4, 0x48ff, 0x4894, 0x48d5, 0x4886, 0x48fa, 0x4803, 0x47d2, 0x492e, 0x4870, 0x48b2, 0x48e5, 0x492b, 0x487b, 0x4785, 0x49e3, 0x471d, 0x4837, 0x48bf, 0x489b, 0x48c4, +0x475c, 0x4871, 0x464a, 0x4811, 0x47af, 0x471c, 0x4817, 0x4817, 0x463b, 0x484e, 0x477f, 0x464f, 0x4704, 0x487c, 0x47a3, 0x4725, 0x4853, 0x462a, 0x465a, 0x4860, 0x4736, 0x4880, 0x47e1, 0x482b, 0x4811, 0x46c0, 0x48dc, 0x475d, 0x4668, 0x4806, 0x4893, 0x46f4, +0x4858, 0x4959, 0x463d, 0x487b, 0x480f, 0x484e, 0x48c0, 0x48a6, 0x4847, 0x4894, 0x48a0, 0x484a, 0x491e, 0x48f4, 0x48fc, 0x48b5, 0x48ce, 0x47d2, 0x47db, 0x497f, 0x4955, 0x4939, 0x48a7, 0x48ce, 0x4890, 0x4884, 0x49d6, 0x4763, 0x486e, 0x4922, 0x48f4, 0x48c3, +0x47ec, 0x491c, 0x4698, 0x4783, 0x4715, 0x4754, 0x4745, 0x4752, 0x472f, 0x4832, 0x4817, 0x4809, 0x47f8, 0x48c3, 0x47e6, 0x4800, 0x48b6, 0x4730, 0x480a, 0x48cb, 0x479e, 0x488e, 0x47c2, 0x488e, 0x472f, 0x47ee, 0x489d, 0x4744, 0x4755, 0x4851, 0x4846, 0x47d3, +0x4838, 0x48a0, 0x4634, 0x4762, 0x4786, 0x4806, 0x47e3, 0x482d, 0x4726, 0x486c, 0x47b7, 0x4803, 0x48ac, 0x4814, 0x48e0, 0x4839, 0x4827, 0x4750, 0x46f2, 0x48c5, 0x483f, 0x4886, 0x48ad, 0x4856, 0x47e8, 0x47a9, 0x4937, 0x4743, 0x46d0, 0x481f, 0x484c, 0x4804, +0x47fd, 0x481f, 0x456d, 0x4813, 0x474d, 0x4807, 0x4688, 0x480e, 0x46e8, 0x4810, 0x469f, 0x4799, 0x4853, 0x478f, 0x47f2, 0x4824, 0x47d0, 0x471f, 0x46da, 0x485f, 0x4813, 0x481c, 0x482e, 0x4863, 0x4786, 0x480b, 0x48c9, 0x46b8, 0x475a, 0x46e2, 0x4852, 0x46c5, +0x45af, 0x4802, 0x4466, 0x46c2, 0x465d, 0x4743, 0x46b7, 0x47ba, 0x4636, 0x46c3, 0x4677, 0x4784, 0x485a, 0x47c2, 0x46dc, 0x46ac, 0x47de, 0x460e, 0x465f, 0x4834, 0x47f4, 0x4769, 0x46fc, 0x4810, 0x45fd, 0x45ea, 0x48d0, 0x45b5, 0x4704, 0x4783, 0x4830, 0x46c4, +0x4759, 0x47c7, 0x453d, 0x45b0, 0x4741, 0x4702, 0x4736, 0x4793, 0x461b, 0x47ba, 0x470b, 0x46dd, 0x4657, 0x470b, 0x470d, 0x4710, 0x486c, 0x468f, 0x45c3, 0x46ba, 0x479d, 0x483b, 0x46c9, 0x4774, 0x46a9, 0x46a7, 0x4833, 0x4606, 0x4690, 0x46a9, 0x46f5, 0x46a7, +0x47ac, 0x48bb, 0x452c, 0x4803, 0x470f, 0x4824, 0x47d5, 0x48cb, 0x4707, 0x484a, 0x4832, 0x4797, 0x4851, 0x482c, 0x487a, 0x4877, 0x4891, 0x465d, 0x47f4, 0x48ce, 0x4898, 0x4899, 0x484e, 0x486a, 0x47ac, 0x47f0, 0x493e, 0x4611, 0x47e2, 0x489e, 0x488c, 0x46af, +0x4665, 0x4836, 0x45e4, 0x46b6, 0x46a1, 0x46b9, 0x46c8, 0x46dd, 0x4658, 0x474b, 0x467b, 0x4777, 0x4769, 0x4798, 0x4785, 0x475e, 0x472a, 0x4656, 0x45fb, 0x4881, 0x46fc, 0x472d, 0x476e, 0x47a3, 0x465d, 0x46ca, 0x4855, 0x4500, 0x464f, 0x479a, 0x46c3, 0x4738, +0x481e, 0x486c, 0x4659, 0x4801, 0x4756, 0x477a, 0x47d5, 0x487b, 0x4706, 0x4808, 0x484f, 0x4838, 0x4870, 0x4863, 0x48d3, 0x4806, 0x4865, 0x4771, 0x46be, 0x494c, 0x4915, 0x484c, 0x4900, 0x4862, 0x481a, 0x46e8, 0x4974, 0x46a0, 0x4775, 0x483d, 0x487c, 0x480e +}; \ No newline at end of file diff --git a/hwpe/redmule_256iter/pulp_inject_fault.tcl b/hwpe/redmule_256iter/pulp_inject_fault.tcl new file mode 100644 index 0000000..61ccadf --- /dev/null +++ b/hwpe/redmule_256iter/pulp_inject_fault.tcl @@ -0,0 +1,53 @@ +# Copyright 2023 ETH Zurich and University of Bologna. +# Solderpad Hardware License, Version 0.51, see LICENSE for details. +# SPDX-License-Identifier: SHL-0.51 +# +# Author: Michael Rogenmoser (michaero@iis.ee.ethz.ch) + +transcript quietly +if {! [info exists ::env(VSIM_PATH)]} {error "Define VSIM_PATH"} +set utils_base_path [file join $::env(VSIM_PATH) scripts fault_injection_utils] +set script_base_path [file join $::env(VSIM_PATH) fault_injection_sim scripts] + +set verbosity 2 +set log_injections 1 +# Easy way to generate a variable seed +# set seed [clock seconds] +# Default value +set seed 12345 +set print_statistics 1 + +set inject_start_time 550000000000ps +set inject_stop_time 750000000000ps +set injection_clock "pulp_cluster_tb/cluster_i/clk_i" +set injection_clock_trigger 0 +set fault_period 150 +set rand_initial_injection_phase 0 +# max_num set to 0 means until stop_time +set max_num_fault_inject 0 +set signal_fault_duration 20ns +set register_fault_duration 0ns + +set allow_multi_bit_upset $::env(MULTI_BIT_UPSET) +set use_bitwidth_as_weight 0 +set check_core_output_modification 0 +set check_core_next_state_modification 0 +set reg_to_sig_ratio 1 + +source [file join $utils_base_path pulp_extract_nets.tcl] + +set inject_signals_netlist [] +set inject_register_netlist [] +set output_netlist [] +set next_state_netlist [] +set assertion_disable_list [] + +# for {set idx 0} {$idx < 12} {incr idx} { +# set inject_signals_netlist [list {*}$inject_signals_netlist {*}[get_all_core_nets $idx]] +# set output_netlist [list {*}$output_netlist {*}[get_core_output_nets $idx]] +# } + +set inject_register_netlist [list {*}$inject_register_netlist {*}[get_memory_slice {0 16} {256 336}]] + +source [file join $script_base_path inject_fault.tcl] + diff --git a/hwpe/redmule_256iter/redmule.c b/hwpe/redmule_256iter/redmule.c new file mode 100644 index 0000000..77019ae --- /dev/null +++ b/hwpe/redmule_256iter/redmule.c @@ -0,0 +1,141 @@ +/* + * Copyright (C) 2022-2023 ETH Zurich and University of Bologna + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * SPDX-License-Identifier: Apache-2.0 + * + * Author: Yvan Tortorella + * + * RedMulE SW test + */ + +#include +#include "stdio.h" +#include "archi_redmule.h" +#include "hal_redmule.h" +#include "pulp.h" + +#define NB_ITER 255 + +int main() { + + volatile int errors = 0; + unsigned int cluster_id = rt_cluster_id(); + unsigned int intc_data_correctable_cnt, redmule_data_correctable_cnt = 0; + unsigned int intc_meta_correctable_cnt = 0; + unsigned int intc_data_uncorrectable_cnt, redmule_data_uncorrectable_cnt = 0; + unsigned int intc_meta_uncorrectable_cnt = 0; + + if(get_core_id() == 0){ + + uint16_t m_size = M_SIZE; + uint16_t n_size = N_SIZE; + uint16_t k_size = K_SIZE; + + uint8_t *x_ext = x_inp; + uint8_t *w_ext = w_inp; + uint8_t *y_ext = y_inp; + uint8_t *z_ext = z_oup; + + uint8_t volatile *x = (uint8_t volatile *) pi_l1_malloc(0, (2*m_size*n_size)); + uint8_t volatile *w = (uint8_t volatile *) pi_l1_malloc(0, (2*n_size*k_size)); + uint8_t volatile *y = (uint8_t volatile *) pi_l1_malloc(0, (2*m_size*k_size)); + uint8_t volatile *z = (uint8_t volatile *) pi_l1_malloc(0, (2*m_size*k_size)); + + #ifdef USE_DMA + volatile unsigned int dma_id = 0; + dma_id = mchan_alloc(); + mchan_transfer((unsigned int) 2*(2*m_size*n_size), + (unsigned int) x_ext, + (unsigned int) x ); + mchan_barrier(dma_id); + mchan_free(dma_id); + + dma_id = mchan_alloc(); + mchan_transfer((unsigned int) 2*(2*n_size*k_size), + (unsigned int) w_ext, + (unsigned int) w ); + mchan_barrier(dma_id); + mchan_free(dma_id); + + dma_id = mchan_alloc(); + mchan_transfer((unsigned int) 2*(2*m_size*k_size), + (unsigned int) y_ext, + (unsigned int) y ); + mchan_barrier(dma_id); + #else + generate_test_data16((int) x, (int) w, (int) y, (int) m_size, (int) n_size, (int) k_size); + #endif + + int gold_sum = 0, check_sum = 0; + int i,j; + + int offload_id_tmp, offload_id; + + // Enable RedMulE + hwpe_cg_enable(); + asm volatile("": : :"memory"); + + hwpe_soft_clear(); + asm volatile("": : :"memory"); + + volatile int job_id = -1; + + // job 0 + job_id = hwpe_wait_acquire(); + asm volatile("": : :"memory"); + redmule_x_add_set ((unsigned int) x); + redmule_w_add_set ((unsigned int) w); + redmule_y_add_set ((unsigned int) y); + redmule_z_add_set ((unsigned int) z); + redmule_cfg (m_size, n_size, k_size, gemm_ops); + asm volatile("": : :"memory"); + hwpe_trigger_job(); + asm volatile("": : :"memory"); + + // job 1 + job_id = hwpe_wait_acquire(); + asm volatile("": : :"memory"); + redmule_x_add_set ((unsigned int) x); + redmule_w_add_set ((unsigned int) w); + redmule_y_add_set ((unsigned int) y); + redmule_z_add_set ((unsigned int) z); + redmule_cfg (m_size, n_size, k_size, gemm_ops); + asm volatile("": : :"memory"); + hwpe_trigger_job(); + asm volatile("": : :"memory"); + + // jobs 2-255 + do { + job_id = hwpe_wait_acquire(); + asm volatile("": : :"memory"); + hwpe_trigger_job(); + asm volatile("": : :"memory"); + } while(job_id < NB_ITER); + + // Wait for end of computation + redmule_evt_wait(); + + // Disable RedMulE + hwpe_cg_disable(); + + errors = redmule_compare16((int) z, (int) m_size, (int) k_size); + + *(int *) 0x1A1040A0 = errors; + + printf ("Terminated test with %d errors. See you!\n", errors); + + } + synch_barrier(); + return (errors != 0); +} diff --git a/hwpe/redmule_softclear/Makefile b/hwpe/redmule_softclear/Makefile new file mode 100644 index 0000000..88346b6 --- /dev/null +++ b/hwpe/redmule_softclear/Makefile @@ -0,0 +1,20 @@ +PULP_APP = test +PULP_APP_SRCS = redmule.c +PULP_CFLAGS = -O3 + +ifeq ($(use_dma),1) + PULP_CFLAGS += -DUSE_DMA +endif + +ifeq ($(fault_inject),1) + export FAULT_INJECTION=1 + export FAULT_INJECTION_SCRIPT=$(CURDIR)/pulp_inject_fault.tcl +endif + +ifeq ($(multi_bit_upset),1) + export MULTI_BIT_UPSET=1 +else + export MULTI_BIT_UPSET=0 +endif + +include $(PULP_SDK_HOME)/install/rules/pulp_rt.mk diff --git a/hwpe/redmule_softclear/archi_redmule.h b/hwpe/redmule_softclear/archi_redmule.h new file mode 100644 index 0000000..662e1e6 --- /dev/null +++ b/hwpe/redmule_softclear/archi_redmule.h @@ -0,0 +1,170 @@ +/* + * Copyright (C) 2022-2023 ETH Zurich and University of Bologna + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * SPDX-License-Identifier: Apache-2.0 + * + * Author: Yvan Tortorella + * + * High-level architecture of RedMulE + * + */ + +#ifndef __ARCHI_REDMULE_H__ +#define __ARCHI_REDMULE_H__ + +/* + * |========================================================================| + * || || + * ||Control and generic configuration register layout || + * |========================================================================| + * || # reg | offset | bits | bitmask || content || + * ||-------+----------+---------+--------------++-------------------------|| + * || 0 | 0x0000 | 31: 0 | 0xFFFFFFFF || TRIGGER || + * || 1 | 0x0004 | 31: 0 | 0xFFFFFFFF || ACQUIRE || + * || 2 | 0x0008 | 31: 0 | 0xFFFFFFFF || EVT_ENABLE || + * || 3 | 0x000c | 31: 0 | 0xFFFFFFFF || STATUS || + * || 4 | 0x0010 | 31: 0 | 0xFFFFFFFF || RUNNING_JOB || + * || 5 | 0x0014 | 31: 0 | 0xFFFFFFFF || SOFT_CLEAR || + * |========================================================================| + * || || + * ||Job-dependent registers layout || + * |========================================================================| + * || # reg | offset | bits | bitmask || content || + * ||-------+----------+---------+--------------++-------------------------|| + * || 0 | 0x0040 | 31: 0 | 0xFFFFFFFF || X_ADDR || + * ||-------+----------+---------+--------------++-------------------------|| + * || 1 | 0x0044 | 31: 0 | 0xFFFFFFFF || W_ADDR || + * ||-------+----------+---------+--------------++-------------------------|| + * || 2 | 0x0048 | 31: 0 | 0xFFFFFFFF || Z_ADDR || + * ||-------+----------+---------+--------------++-------------------------|| + * || 3 | 0x004C | | || Matrix Config 0 Reg || + * || | | 31:16 | 0xFFFF0000 || K Size (W Columns) || + * || | | 15: 0 | 0x0000FFFF || M Size (X Rows) || + * ||-------+----------+---------+--------------++-------------------------|| + * || 4 | 0x0050 | | || Matrix Config 1 Reg || + * || | | 31:16 | 0xFFFFFFFF || N Size (X Cols/W Rows) || + * ||-------+----------+---------+--------------++-------------------------|| + * || 5 | 0x0054 | | || Matrix Arithmetic Reg || + * || | | 12:10 | 0x00001C00 || Operation selection || + * || | | 9: 7 | 0x00000380 || Input/Output format || + * |========================================================================| + * + */ + +/* PULP Cluster Archi defines */ +#define ARCHI_CLUST_CTRL_BASE 0x50200000 +#define ARCHI_CLUST_HWPE_BASE 0x50201000 +#define DMA_COMMAND_QUEUE 0x50204400 +#define DMA_STATUS_REGISTER 0x50204404 +#define ARCHI_CL_HWPE_EVT0 12 +#define ARCHI_CL_HWPE_EVT1 13 +#define FC_DMA_EVENT 8 +#define CL_DMA_EVENT 22 +#define CLUST_CTRL_HWPE_EN 0x18 +#define CLUST_CTRL_HWPE_EN_MASK 0x800 +#define __builtin_bitinsert(a,b,c,d) (a | (((b << (32-c)) >> (32-c)) << d)) + +// RedMulE architecture +#define ADDR_WIDTH 32 +#define DATA_WIDTH 256 +#define REDMULE_FMT 16 +#define ARRAY_HEIGHT 4 +#define PIPE_REGS 3 +#define ARRAY_WIDTH 12 /* Superior limit is ARRAY_HEIGHT*PIPE_REGS */ + +// Commands +#define REDMULE_TRIGGER 0x00 +#define REDMULE_ACQUIRE 0x04 +#define REDMULE_FINISHED 0x08 +#define REDMULE_STATUS 0x0C +#define REDMULE_RUNNING_JOB 0x10 +#define REDMULE_SOFT_CLEAR 0x14 + +// Registers +#define REDMULE_REG_OFFS 0x40 +// #define REDMULE_REG_X_PTR 0x00 +// #define REDMULE_REG_W_PTR 0x04 +// #define REDMULE_REG_Z_PTR 0x08 +// #define REDMULE_MCFG0_PTR 0x0C +// #define REDMULE_MCFG1_PTR 0x10 +// #define REDMULE_ARITH_PTR 0x14 +#define REDMULE_REG_X_PTR 0x00 +#define REDMULE_REG_W_PTR 0x04 +#define REDMULE_REG_Y_PTR 0x08 +#define REDMULE_REG_Z_PTR 0x0C +#define REDMULE_REG_X_ITER_PTR 0x10 +#define REDMULE_REG_W_ITER_PTR 0x14 +#define REDMULE_REG_LEFTOVERS_PTR 0x18 +#define REDMULE_REG_LEFT_PARAMS_PTR 0x1C +#define REDMULE_REG_X_D1_STRIDE_PTR 0x20 +#define REDMULE_REG_W_TOT_LEN_PTR 0x24 +#define REDMULE_REG_TOT_X_READ_PTR 0x28 +#define REDMULE_REG_W_D0_STRIDE_PTR 0x2C +#define REDMULE_REG_YZ_TOT_LEN_PTR 0x30 +#define REDMULE_REG_YZ_D0_STRIDE_PTR 0x34 +#define REDMULE_REG_YZ_D2_STRIDE_PTR 0x38 +#define REDMULE_REG_X_ROWS_OFFS_PTR 0x3C +#define REDMULE_REG_X_BUFFER_SLOTS_PTR 0x40 +#define REDMULE_REG_X_TOT_LEN_PTR 0x44 +#define REDMULE_REG_OP_SELECTION 0x48 + +#define REDMULE_ECC_REG_OFFS 0x90 +#define DATA_CORR_ERR 0x00 +#define DATA_UNCORR_ERR 0x04 +#define METADATA_CORR_ERR 0x08 +#define METADATA_UNCORR_ERR 0x0c + +// OPs definition +#define MATMUL 0x0 +#define GEMM 0x1 +#define ADDMAX 0x2 +#define ADDMIN 0x3 +#define MULMAX 0x4 +#define MULMIN 0x5 +#define MAXMIN 0x6 +#define MINMAX 0x7 + +// GEMM formats +#define Float8 0x0 +#define Float16 0x1 +#define Float8Alt 0x2 +#define Float16Alt 0x3 + +#define RNE 0x0 +#define RTZ 0x1 +#define OP_FMADD 0x0 +#define OP_ADD 0x2 +#define OP_MUL 0x3 +#define OP_MINMAX 0x7 + +// FP Formats encoding +#define FP16 0x2 +#define FP8 0x3 +#define FP16ALT 0x4 +#define FP8ALT 0x5 + +/* DMA Archi */ +#define DMA_TX 0 +#define DMA_RX 1 +#define DMA_INC 1 + +#define PLP_DMA_TYPE_BIT 0x00000011 +#define PLP_DMA_INCR_BIT 0x00000012 +#define PLP_DMA_2D_BIT 0x00000013 +#define PLP_DMA_ELE_BIT 0x00000014 +#define PLP_DMA_ILE_BIT 0x00000015 +#define PLP_DMA_BLE_BIT 0x00000016 +#define PLP_DMA_2D_TCDM_BIT 0x0000017 + +#endif diff --git a/hwpe/redmule_softclear/hal_redmule.h b/hwpe/redmule_softclear/hal_redmule.h new file mode 100644 index 0000000..8fc5000 --- /dev/null +++ b/hwpe/redmule_softclear/hal_redmule.h @@ -0,0 +1,556 @@ +/* + * Copyright (C) 2022-2023 ETH Zurich and University of Bologna + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * SPDX-License-Identifier: Apache-2.0 + * + * Author: Yvan Tortorella + * + * RedMulE Hardware Abstraction Layer (HAL) + */ + +#ifndef __HAL_REDMULE_H__ +#define __HAL_REDMULE_H__ + +#include +#include "inc/x_input.h" +#include "inc/w_input.h" +#include "inc/y_input.h" +#include "inc/z_output.h" +#include "inc/golden.h" +#include "inc/tensor_dim.h" + +/* + * + * For control, generic configuration register layout, + * and job-dependent register map, look at redmule_archi.h + * + */ + +// For all the following functions we use __builtin_pulp_OffsetedWrite and __builtin_pulp_OffsetedRead +// instead of classic load/store because otherwise the compiler is not able to correctly factorize +// the HWPE base in case several accesses are done, ending up with twice more code + +#define HWPE_WRITE(value, offset) *(int *)(ARCHI_CLUST_HWPE_BASE + offset) = value +#define HWPE_READ(offset) *(int *)(ARCHI_CLUST_HWPE_BASE + offset) + +static inline void redmule_x_add_set (unsigned int value) { + HWPE_WRITE(value, REDMULE_REG_OFFS + REDMULE_REG_X_PTR); +} + +static inline void redmule_w_add_set (unsigned int value) { + HWPE_WRITE(value, REDMULE_REG_OFFS + REDMULE_REG_W_PTR); +} + +static inline void redmule_y_add_set (unsigned int value) { + HWPE_WRITE(value, REDMULE_REG_OFFS + REDMULE_REG_Y_PTR); +} + +static inline void redmule_z_add_set (unsigned int value) { + HWPE_WRITE(value, REDMULE_REG_OFFS + REDMULE_REG_Z_PTR); +} + +// static inline void redmule_mcfg_set (uint32_t mcfg0, uint32_t mcfg1) { +// HWPE_WRITE(mcfg0, REDMULE_REG_OFFS + REDMULE_MCFG0_PTR); +// HWPE_WRITE(mcfg1, REDMULE_REG_OFFS + REDMULE_MCFG1_PTR); +// } +// +// static inline void redmule_arith_set (uint32_t arith) { +// HWPE_WRITE(arith, REDMULE_REG_OFFS + REDMULE_ARITH_PTR); +// } + +static inline void hwpe_trigger_job() { + HWPE_WRITE(0, REDMULE_TRIGGER); +} + +static inline int hwpe_acquire_job() { + return HWPE_READ(REDMULE_ACQUIRE); +} + +static inline unsigned int hwpe_get_status() { + return HWPE_READ(REDMULE_STATUS); +} + +static inline unsigned int hwpe_get_running_job() { + return HWPE_READ(REDMULE_RUNNING_JOB); +} + +static inline void hwpe_soft_clear() { + HWPE_WRITE(0, REDMULE_SOFT_CLEAR); +} + +static inline void hwpe_cg_enable() { + *(volatile int*) (ARCHI_CLUST_CTRL_BASE + CLUST_CTRL_HWPE_EN) |= CLUST_CTRL_HWPE_EN_MASK; +} + +static inline void hwpe_cg_disable() { + *(volatile int*) (ARCHI_CLUST_CTRL_BASE + CLUST_CTRL_HWPE_EN) &= ~CLUST_CTRL_HWPE_EN_MASK; +} + +static inline void redmule_evt_wait() { + do { + eu_evt_maskWaitAndClr (1 << ARCHI_CL_HWPE_EVT0); + } while((*(int volatile *)(ARCHI_CLUST_HWPE_BASE + REDMULE_STATUS)) != 0); +} + +static inline int hwpe_wait_acquire() { + int job_id = hwpe_acquire_job(); + while(job_id < 0) { + eu_evt_maskWaitAndClr (1 << ARCHI_CL_HWPE_EVT0); + job_id = hwpe_acquire_job(); + } + return job_id; +} + +static inline unsigned int redmule_get_data_correctable_count () { + return HWPE_READ(REDMULE_ECC_REG_OFFS + DATA_CORR_ERR); +} + +static inline unsigned int redmule_get_data_uncorrectable_count () { + return HWPE_READ(REDMULE_ECC_REG_OFFS + DATA_UNCORR_ERR); +} + +static inline unsigned int redmule_get_meta_correctable_count () { + return HWPE_READ(REDMULE_ECC_REG_OFFS + METADATA_CORR_ERR); +} + +static inline unsigned int redmule_get_meta_uncorrectable_count () { + return HWPE_READ(REDMULE_ECC_REG_OFFS + METADATA_UNCORR_ERR); +} + +/* DMA APIs */ +static inline int mchan_alloc(){ + return *(volatile int*) DMA_COMMAND_QUEUE; +} + +static inline void mchan_transfer(unsigned int len, + unsigned int ext_addr, + unsigned int tcdm_addr) { + + *(volatile int*) DMA_COMMAND_QUEUE = len | + (DMA_RX << PLP_DMA_TYPE_BIT) | + (DMA_INC << PLP_DMA_INCR_BIT) | + (0 << PLP_DMA_2D_BIT) | + (1 << PLP_DMA_ELE_BIT) | + (1 << PLP_DMA_ILE_BIT) | + (0 << PLP_DMA_BLE_BIT) | + (0 << PLP_DMA_2D_TCDM_BIT); + *(volatile int*) DMA_COMMAND_QUEUE = tcdm_addr; + *(volatile int*) DMA_COMMAND_QUEUE = ext_addr; +} + +static inline void mchan_barrier(int id) { + while(((*(volatile int*)(DMA_STATUS_REGISTER)) >> id ) & 0x1 ) { + eu_evt_maskWaitAndClr(1 << FC_DMA_EVENT); + } +} + +static inline void mchan_free(int id) { + *(volatile int*) DMA_STATUS_REGISTER = 0x1 << id; +} + +// void redmule_cfg (unsigned int x, unsigned int w, unsigned int z, +// uint16_t m_size, uint16_t n_size, uint16_t k_size, +// uint8_t gemm_op, uint8_t gemm_fmt){ +// +// uint32_t mcfg_reg0 = 0; +// uint32_t mcfg_reg1 = 0; +// uint32_t arith_reg = 0; +// +// mcfg_reg0 = (k_size << 16) | +// (m_size << 0); +// mcfg_reg1 = n_size << 0; +// +// arith_reg = (gemm_op << 10) | +// (gemm_fmt << 7); +// +// redmule_x_add_set ((unsigned int) x); +// redmule_w_add_set ((unsigned int) w); +// redmule_z_add_set ((unsigned int) z); +// redmule_mcfg_set ((unsigned int) mcfg_reg0, +// (unsigned int) mcfg_reg1); +// redmule_arith_set ((unsigned int) arith_reg); +// +// } + +void redmule_cfg (uint16_t m_size, uint16_t n_size, uint16_t k_size, uint8_t gemm_ops){ + uint32_t x_iters = 0; + uint32_t w_iters = 0; + uint32_t leftovers = 0; + uint32_t left_params = 0; + uint32_t x_d1_stride = 0; + uint32_t x_rows_offs = 0; + uint32_t w_tot_len = 0; + uint32_t w_d1_len = 0; + uint32_t w_d0_stride = 0; + uint32_t yz_tot_len = 0; + uint32_t yz_d0_stride = 0; + uint32_t yz_d2_stride = 0; + uint32_t tot_x_read = 0; + uint32_t x_buffer_slots = 0; + uint32_t op_selection = 0; + uint16_t tot_stores = 0; + uint16_t w_rows = n_size; + uint16_t depth = DATA_WIDTH/(ARRAY_HEIGHT*FPFORMAT); + uint8_t tile = ARRAY_HEIGHT*(PIPE_REGS + 1); + _Bool x_rows_sub = 0; + _Bool x_cols_sub = 0; + _Bool w_cols_sub = 0; + uint16_t x_rows_iter, + x_rows_iter_tmp, + w_rows_iter, + w_rows_iter_tmp; + uint16_t x_cols_iter, + x_cols_iter_tmp, + w_cols_iter, + w_cols_iter_tmp; + uint8_t x_rows_lftovr, + x_cols_lftovr, + w_rows_lftovr, + w_cols_lftovr, + slots; + + // Calculating the number of iterations alng the two dimensions of the X matrix + x_rows_iter_tmp = m_size/ARRAY_WIDTH; + x_cols_iter_tmp = n_size/tile; + + // Calculating the number of iterations alng the two dimensions of the W matrix + w_rows_iter_tmp = w_rows; + w_cols_iter_tmp = k_size/tile; + + // Calculating the residuals along the input dimensions + x_rows_lftovr = m_size - (x_rows_iter_tmp*ARRAY_WIDTH); + x_cols_lftovr = n_size - (x_cols_iter_tmp*tile); + + // Calculating the residuals along the weight dimensions + w_rows_lftovr = n_size - (ARRAY_HEIGHT*(w_rows/ARRAY_HEIGHT)); + w_cols_lftovr = k_size - (w_cols_iter_tmp*tile); + + if (w_cols_lftovr != 0) + w_cols_iter = w_cols_iter_tmp + 1; + else + w_cols_iter = w_cols_iter_tmp; + + if (w_rows_lftovr != 0) + w_rows_iter = w_rows_iter_tmp + ARRAY_HEIGHT - w_rows_lftovr; + else + w_rows_iter = w_rows_iter_tmp; + + if (x_cols_lftovr != 0) + x_cols_iter = x_cols_iter_tmp + 1; + else + x_cols_iter = x_cols_iter_tmp; + + if (x_rows_lftovr != 0) + x_rows_iter = x_rows_iter_tmp + 1; + else + x_rows_iter = x_rows_iter_tmp; + + if (x_cols_lftovr%depth != 0) + x_buffer_slots = x_cols_lftovr/depth + 1; + else + x_buffer_slots = x_cols_lftovr/depth; + + // Calculating the number of total stores + tot_stores = x_rows_iter*w_cols_iter; + + // Determining if input matrixes are sub-matrixes + if (m_size < ARRAY_WIDTH) + x_rows_sub = 1; + if (n_size < ARRAY_HEIGHT) + x_cols_sub = 1; + if (k_size < tile) + w_cols_sub = 1; + + // Operation selection + switch (gemm_ops) { + case MATMUL: + op_selection |= (RNE << 29 | RNE << 26 | OP_FMADD << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 0; + break; + + case GEMM: + op_selection |= (RNE << 29 | RNE << 26 | OP_FMADD << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; + break; + + case ADDMAX: + op_selection |= (RNE << 29 | RTZ << 26 | OP_ADD << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; + break; + + case ADDMIN: + op_selection |= (RNE << 29 | RNE << 26 | OP_ADD << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; + break; + + case MULMAX: + op_selection |= (RNE << 29 | RTZ << 26 | OP_MUL << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; + break; + + case MULMIN: + op_selection |= (RNE << 29 | RNE << 26 | OP_MUL << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; + break; + + case MAXMIN: + op_selection |= (RTZ << 29 | RNE << 26 | OP_MINMAX << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; + break; + + case MINMAX: + op_selection |= (RNE << 29 | RTZ << 26 | OP_MINMAX << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; + break; + } + + // Storing iterations and residuals in registers + x_iters |= x_rows_iter << 16 | x_cols_iter << 0; + w_iters |= w_rows_iter << 16 | w_cols_iter << 0; + leftovers |= x_rows_lftovr << 24 | x_cols_lftovr << 16 | w_rows_lftovr << 8 | w_cols_lftovr << 0; + left_params |= tot_stores << 16 | x_rows_sub << 15 | x_cols_sub << 14 | w_cols_sub << 13; + x_d1_stride = ((4*FPFORMAT)/ADDR_WIDTH)*(((DATA_WIDTH/FPFORMAT)*x_cols_iter_tmp) + x_cols_lftovr); + x_rows_offs = ARRAY_WIDTH*x_d1_stride; + w_tot_len = w_rows_iter*w_cols_iter*x_rows_iter; + w_d0_stride = ((4*FPFORMAT)/ADDR_WIDTH)*(((DATA_WIDTH/FPFORMAT)*w_cols_iter_tmp) + w_cols_lftovr); + yz_tot_len = ARRAY_WIDTH*x_rows_iter*w_cols_iter; + yz_d0_stride = w_d0_stride; + yz_d2_stride = ARRAY_WIDTH*w_d0_stride; + tot_x_read = x_rows_iter*x_cols_iter*w_cols_iter; + + // Writing the computations in configuration register + HWPE_WRITE(x_iters , REDMULE_REG_OFFS + REDMULE_REG_X_ITER_PTR ); + HWPE_WRITE(w_iters , REDMULE_REG_OFFS + REDMULE_REG_W_ITER_PTR ); + HWPE_WRITE(leftovers , REDMULE_REG_OFFS + REDMULE_REG_LEFTOVERS_PTR ); + HWPE_WRITE(left_params , REDMULE_REG_OFFS + REDMULE_REG_LEFT_PARAMS_PTR ); + HWPE_WRITE(x_d1_stride , REDMULE_REG_OFFS + REDMULE_REG_X_D1_STRIDE_PTR ); + HWPE_WRITE(x_rows_offs , REDMULE_REG_OFFS + REDMULE_REG_X_ROWS_OFFS_PTR ); + HWPE_WRITE(tot_x_read , REDMULE_REG_OFFS + REDMULE_REG_TOT_X_READ_PTR ); + HWPE_WRITE(x_buffer_slots, REDMULE_REG_OFFS + REDMULE_REG_X_BUFFER_SLOTS_PTR ); + HWPE_WRITE(w_tot_len , REDMULE_REG_OFFS + REDMULE_REG_W_TOT_LEN_PTR ); + HWPE_WRITE(w_d0_stride , REDMULE_REG_OFFS + REDMULE_REG_W_D0_STRIDE_PTR ); + HWPE_WRITE(yz_tot_len , REDMULE_REG_OFFS + REDMULE_REG_YZ_TOT_LEN_PTR ); + HWPE_WRITE(yz_d0_stride , REDMULE_REG_OFFS + REDMULE_REG_YZ_D0_STRIDE_PTR ); + HWPE_WRITE(yz_d2_stride , REDMULE_REG_OFFS + REDMULE_REG_YZ_D2_STRIDE_PTR ); + HWPE_WRITE(op_selection , REDMULE_REG_OFFS + REDMULE_REG_OP_SELECTION ); +} + +void generate_test_data16(int x_start_addr, + int w_start_addr, + int y_start_addr, + int m_size, + int n_size, + int k_size) { + + int x_addr = x_start_addr; + int w_addr = w_start_addr; + int y_addr = y_start_addr; + int x_end_addr = x_start_addr + (2*m_size*n_size); + int w_end_addr = w_start_addr + (2*n_size*k_size); + int y_end_addr = y_start_addr + (2*m_size*k_size); + + // Generating input stimuli from golden model + for (x_addr = x_start_addr; x_addr < x_end_addr; x_addr += 2) { + int x = x_addr - x_start_addr; + *(uint32_t *)(x_addr) = x_inp[x/2]; + } + + // Generating Weight stimuli from golden model + for (w_addr = w_start_addr; w_addr < w_end_addr; w_addr += 2) { + int w = w_addr - w_start_addr; + *(uint32_t *)(w_addr) = w_inp[w/2]; + } + + for (y_addr = y_start_addr; y_addr < y_end_addr; y_addr += 2) { + int y = y_addr - y_start_addr; + *(uint32_t *)(y_addr) = y_inp[y/2]; + } +} + +int redmule_compare16 (int z_start_addr, int m_size, int k_size) { + int err = 0; + int z_end_addr = z_start_addr + 2*m_size*k_size; + uint16_t z_computed; + uint16_t diff, diff_1, diff_2; + + for (int z_addr = z_start_addr; z_addr < z_end_addr; z_addr += 2) { + int z = z_addr - z_start_addr; + z_computed = *(uint32_t *)(z_addr); + + if ( z_computed != z_oup[z/2] ) { + diff_1 = z_computed - z_oup[z/2]; + if (diff_1 > 3) { + diff_2 = z_oup[z/2] - z_computed; + if (diff_2 > 3) { + err++; + } + } + } + } + + return err; + +} + +int redmule16_compare_int(uint32_t *actual_z, uint32_t *golden_z, int len) { + #define ERR 0x0011 + uint32_t actual_word = 0; + uint16_t actual_MSHWord, actual_LSHWord; + uint32_t golden_word = 0; + uint16_t golden_MSHWord, golden_LSHWord; + uint32_t actual = 0; + uint32_t golden = 0; + + int errors = 0; + int error; + + for (int i=0; i golden_LSHWord) ? (actual_LSHWord - golden_LSHWord) : 0; + diff = (actual_LSHWord < golden_LSHWord) ? (golden_LSHWord - actual_LSHWord) : 0; + + if (diff > ERR) { + error = 1; + #ifdef VERBOSE + tfp_printf ("diff: 0x%08x\n", diff); + tfp_printf ("LSW: Error!\n"); + #endif + } + + // Checking Most Significant Half-Word + actual_MSHWord = (uint16_t)((actual_word >> 16) & 0x0000FFFF); + golden_MSHWord = (uint16_t)((golden_word >> 16) & 0x0000FFFF); + + diff = (actual_MSHWord > golden_MSHWord) ? (actual_MSHWord - golden_MSHWord) : 0; + diff = (actual_MSHWord < golden_MSHWord) ? (golden_MSHWord - actual_MSHWord) : 0; + + if (diff > ERR) { + error = 1; + #ifdef VERBOSE + tfp_printf ("diff: 0x%08x\n", diff); + tfp_printf ("MSW: Error!\n"); + #endif + } + + errors += error; + + #ifdef DEBUG + tfp_printf(" Golden: 0x%08x; Actual: 0x%08x,\n", golden_word, actual_word); + #endif + + #ifdef VERBOSE + if(error) { + if(errors==1) tfp_printf(" golden <- actual @ address @ index\n"); + tfp_printf(" 0x%08x <- 0x%08x @ 0x%08x @ 0x%08x\n", golden_word, actual_word, (actual_z+i), i*4); + } + #endif + } + return errors; +} + +int redmule8_compare_int(uint32_t *actual_z, uint32_t *golden_z, int len) { + #define ERR 0x0011 + uint32_t actual_word = 0; + uint8_t actual_Byte0, + actual_Byte1, + actual_Byte2, + actual_Byte3; + uint32_t golden_word = 0; + uint8_t golden_Byte0, + golden_Byte1, + golden_Byte2, + golden_Byte3; + uint32_t actual = 0; + uint32_t golden = 0; + + int errors = 0; + int error; + + for (int i=0; i golden_Byte0) ? (actual_Byte0 - golden_Byte0) : 0; + diff = (actual_Byte0 < golden_Byte0) ? (golden_Byte0 - actual_Byte0) : 0; + + if (diff > ERR) { + error = 1; + tfp_printf ("diff: 0x%08x\n", diff); + tfp_printf ("Byte0: Error!\n"); + } + + // Cheching Byte1 + actual_Byte1 = (uint8_t)( (actual_word >> 8 ) & 0x000000FF); + golden_Byte1 = (uint8_t)( (golden_word >> 8 ) & 0x000000FF); + + diff = (actual_Byte1 > golden_Byte1) ? (actual_Byte1 - golden_Byte1) : 0; + diff = (actual_Byte1 < golden_Byte1) ? (golden_Byte1 - actual_Byte1) : 0; + + if (diff > ERR) { + error = 1; + tfp_printf ("diff: 0x%08x\n", diff); + tfp_printf ("Byte1: Error!\n"); + } + + // Cheching Byte2 + actual_Byte2 = (uint8_t)( (actual_word >> 16 ) & 0x000000FF); + golden_Byte2 = (uint8_t)( (golden_word >> 16 ) & 0x000000FF); + + diff = (actual_Byte2 > golden_Byte2) ? (actual_Byte2 - golden_Byte2) : 0; + diff = (actual_Byte2 < golden_Byte2) ? (golden_Byte2 - actual_Byte2) : 0; + + if (diff > ERR) { + error = 1; + tfp_printf ("diff: 0x%08x\n", diff); + tfp_printf ("Byte2: Error!\n"); + } + + // Cheching Byte3 + actual_Byte3 = (uint8_t)( (actual_word >> 24 ) & 0x000000FF); + golden_Byte3 = (uint8_t)( (golden_word >> 24 ) & 0x000000FF); + + diff = (actual_Byte3 > golden_Byte3) ? (actual_Byte3 - golden_Byte3) : 0; + diff = (actual_Byte3 < golden_Byte3) ? (golden_Byte3 - actual_Byte3) : 0; + + if (diff > ERR) { + error = 1; + tfp_printf ("diff: 0x%08x\n", diff); + tfp_printf ("Byte3: Error!\n"); + } + + errors += error; + + #ifdef DEBUG + tfp_printf(" Golden: 0x%08x; Actual: 0x%08x,\n", golden_word, actual_word); + #endif + + #ifdef VERBOSE + if(error) { + if(errors==1) tfp_printf(" golden <- actual @ address @ index\n"); + tfp_printf(" 0x%08x <- 0x%08x @ 0x%08x @ 0x%08x\n", golden_word, actual_word, (actual_z+i), i*4); + } + #endif + } + return errors; +} + +#endif diff --git a/hwpe/redmule_softclear/inc/golden.h b/hwpe/redmule_softclear/inc/golden.h new file mode 100644 index 0000000..f664e47 --- /dev/null +++ b/hwpe/redmule_softclear/inc/golden.h @@ -0,0 +1,387 @@ + /* Header file generated by RedMulE Golden Model */ +uint32_t golden [384] = { +0x48974845, +0x48384608, +0x487b4855, +0x48804869, +0x48b046d1, +0x483f48db, +0x485f48c9, +0x483a4881, +0x472c484b, +0x492b4762, +0x48fd4822, +0x492e488e, +0x484f483e, +0x46d749e8, +0x489d484b, +0x47e9490b, +0x47d2484f, +0x474744be, +0x46c047c7, +0x48af4727, +0x482d46c5, +0x482e483d, +0x479f4897, +0x4749488b, +0x46a8489a, +0x488b46f2, +0x47e84891, +0x483d4872, +0x46fd4716, +0x46a049b5, +0x47a446e7, +0x476748a1, +0x49354939, +0x48c14703, +0x48bd4863, +0x48cf4913, +0x48b848b6, +0x49204946, +0x48e1495e, +0x48b24938, +0x4882493a, +0x49d5483b, +0x49724911, +0x49df496b, +0x488848f2, +0x48214a46, +0x490c48c1, +0x48a349b2, +0x47b0463a, +0x476244cb, +0x46b94765, +0x4814466a, +0x47964631, +0x474b4666, +0x47044798, +0x47614838, +0x459047d3, +0x48a245ea, +0x484447f1, +0x4776484b, +0x46d847d6, +0x44d348f3, +0x478d46fa, +0x466e481e, +0x481e4827, +0x479445a2, +0x48064727, +0x48d5475d, +0x48284708, +0x480d4862, +0x48324895, +0x47f148bd, +0x46a7482a, +0x492d47b1, +0x4884484d, +0x485f48dc, +0x480c476d, +0x46d348e9, +0x48844728, +0x480e48a0, +0x48134862, +0x485a4675, +0x473847e8, +0x48234836, +0x482146e7, +0x47b34822, +0x48554846, +0x47174863, +0x47c14872, +0x488e46d5, +0x485f47e2, +0x48b8487c, +0x4788481e, +0x467748bd, +0x47f846c9, +0x47fc48fe, +0x47b247a0, +0x467e4588, +0x46c74662, +0x481246e8, +0x474e4536, +0x468f46c0, +0x4679481f, +0x46e246a1, +0x45604809, +0x47eb4630, +0x475746b5, +0x477f4848, +0x46d846a6, +0x459a4870, +0x46784670, +0x468c47d2, +0x48c44762, +0x479146e3, +0x486d46b1, +0x486747d0, +0x47f6468d, +0x475648a5, +0x48544857, +0x48384866, +0x46ec484d, +0x48f647d2, +0x4879484a, +0x483c4848, +0x4806471d, +0x473048fa, +0x47b84768, +0x46f94865, +0x491848a8, +0x486746ca, +0x48624800, +0x491048d3, +0x4849474e, +0x486b48eb, +0x48c54966, +0x483048f4, +0x477848f9, +0x499e481e, +0x48f148cf, +0x49234982, +0x47cf487c, +0x464949ea, +0x495e4773, +0x483f48b2, +0x497548a7, +0x481e4616, +0x4866481f, +0x486448b6, +0x487347dc, +0x487f485c, +0x491f4938, +0x48b6490d, +0x48a148f8, +0x492d4859, +0x4915489c, +0x48874899, +0x4859486c, +0x471e49ca, +0x49184867, +0x482748d3, +0x4998488b, +0x481d4704, +0x488048b8, +0x49444876, +0x48f2470c, +0x489b48b9, +0x48e54956, +0x48a548d6, +0x485648dc, +0x49ab484e, +0x490e48e0, +0x494548dd, +0x48dd488b, +0x47ea4a32, +0x49114835, +0x48194965, +0x481e460e, +0x4673452c, +0x4717475c, +0x46d046f6, +0x46bc4696, +0x481e4726, +0x46ea4763, +0x475846fe, +0x4627478b, +0x483f4704, +0x47b146ad, +0x48164792, +0x468446f2, +0x45a84827, +0x47a4472f, +0x462b4797, +0x48ab483f, +0x4863468f, +0x4766485a, +0x48cb481d, +0x490347dc, +0x483048fc, +0x483e48cc, +0x486448ab, +0x47634966, +0x499d4794, +0x488b488e, +0x496048dc, +0x484c4854, +0x474c499c, +0x48bc4826, +0x48834949, +0x4905489d, +0x481e4718, +0x48f448e3, +0x490448c1, +0x48b347e8, +0x48d44892, +0x489448ff, +0x488648d5, +0x480348fa, +0x492e47d2, +0x48b24870, +0x492b48e5, +0x4785487b, +0x471d49e3, +0x48bf4837, +0x48c4489b, +0x4871475c, +0x4811464a, +0x471c47af, +0x48174817, +0x484e463b, +0x464f477f, +0x487c4704, +0x472547a3, +0x462a4853, +0x4860465a, +0x48804736, +0x482b47e1, +0x46c04811, +0x475d48dc, +0x48064668, +0x46f44893, +0x49594858, +0x487b463d, +0x484e480f, +0x48a648c0, +0x48944847, +0x484a48a0, +0x48f4491e, +0x48b548fc, +0x47d248ce, +0x497f47db, +0x49394955, +0x48ce48a7, +0x48844890, +0x476349d6, +0x4922486e, +0x48c348f4, +0x491c47ec, +0x47834698, +0x47544715, +0x47524745, +0x4832472f, +0x48094817, +0x48c347f8, +0x480047e6, +0x473048b6, +0x48cb480a, +0x488e479e, +0x488e47c2, +0x47ee472f, +0x4744489d, +0x48514755, +0x47d34846, +0x48a04838, +0x47624634, +0x48064786, +0x482d47e3, +0x486c4726, +0x480347b7, +0x481448ac, +0x483948e0, +0x47504827, +0x48c546f2, +0x4886483f, +0x485648ad, +0x47a947e8, +0x47434937, +0x481f46d0, +0x4804484c, +0x481f47fd, +0x4813456d, +0x4807474d, +0x480e4688, +0x481046e8, +0x4799469f, +0x478f4853, +0x482447f2, +0x471f47d0, +0x485f46da, +0x481c4813, +0x4863482e, +0x480b4786, +0x46b848c9, +0x46e2475a, +0x46c54852, +0x480245af, +0x46c24466, +0x4743465d, +0x47ba46b7, +0x46c34636, +0x47844677, +0x47c2485a, +0x46ac46dc, +0x460e47de, +0x4834465f, +0x476947f4, +0x481046fc, +0x45ea45fd, +0x45b548d0, +0x47834704, +0x46c44830, +0x47c74759, +0x45b0453d, +0x47024741, +0x47934736, +0x47ba461b, +0x46dd470b, +0x470b4657, +0x4710470d, +0x468f486c, +0x46ba45c3, +0x483b479d, +0x477446c9, +0x46a746a9, +0x46064833, +0x46a94690, +0x46a746f5, +0x48bb47ac, +0x4803452c, +0x4824470f, +0x48cb47d5, +0x484a4707, +0x47974832, +0x482c4851, +0x4877487a, +0x465d4891, +0x48ce47f4, +0x48994898, +0x486a484e, +0x47f047ac, +0x4611493e, +0x489e47e2, +0x46af488c, +0x48364665, +0x46b645e4, +0x46b946a1, +0x46dd46c8, +0x474b4658, +0x4777467b, +0x47984769, +0x475e4785, +0x4656472a, +0x488145fb, +0x472d46fc, +0x47a3476e, +0x46ca465d, +0x45004855, +0x479a464f, +0x473846c3, +0x486c481e, +0x48014659, +0x477a4756, +0x487b47d5, +0x48084706, +0x4838484f, +0x48634870, +0x480648d3, +0x47714865, +0x494c46be, +0x484c4915, +0x48624900, +0x46e8481a, +0x46a04974, +0x483d4775, +0x480e487c, +}; \ No newline at end of file diff --git a/hwpe/redmule_softclear/inc/tensor_dim.h b/hwpe/redmule_softclear/inc/tensor_dim.h new file mode 100644 index 0000000..21bd0d8 --- /dev/null +++ b/hwpe/redmule_softclear/inc/tensor_dim.h @@ -0,0 +1,13 @@ + /* Header file generated by RedMulE Golden Model */ +#ifndef __TENSOR_DIM__ +#define __TENSOR_DIM__ + +#define M_SIZE 24 +#define N_SIZE 32 +#define K_SIZE 32 +#define SRC_FMT FP16 +#define DST_FMT FP16 +#define FPFORMAT 16 +uint8_t gemm_ops = GEMM; + +#endif diff --git a/hwpe/redmule_softclear/inc/w_2D.h b/hwpe/redmule_softclear/inc/w_2D.h new file mode 100644 index 0000000..9409c64 --- /dev/null +++ b/hwpe/redmule_softclear/inc/w_2D.h @@ -0,0 +1,35 @@ + /* Header file generated by RedMulE Golden Model */ +uint16_t w_inp_2D [32][32] = { +0x311a, 0x39e0, 0x387d, 0x3a4a, 0x386f, 0x3ada, 0x392f, 0x3854, 0x3014, 0x2fd2, 0x31c9, 0x2fca, 0x2e55, 0x3bc8, 0x396d, 0x3b1d, 0x39f6, 0x333a, 0x3908, 0x3628, 0x3bab, 0x3b8b, 0x3b4a, 0x322d, 0x3925, 0x317a, 0x3725, 0x31c2, 0x3066, 0x38f3, 0x3a17, 0x3476, +0x3bda, 0x3196, 0x3922, 0x3680, 0x396a, 0x3021, 0x3761, 0x374d, 0x2fc2, 0x3967, 0x3b94, 0x33b5, 0x3797, 0x34d6, 0x3655, 0x2176, 0x39bc, 0x3999, 0x3658, 0x3904, 0x3759, 0x2ade, 0x3a5a, 0x3b78, 0x36c7, 0x2d01, 0x3b58, 0x2d9a, 0x373d, 0x3952, 0x38e8, 0x3887, +0x37b6, 0x3a88, 0x2f8a, 0x2d79, 0x3413, 0x3421, 0x3976, 0x32b2, 0x3446, 0x2d99, 0x3a56, 0x3322, 0x3b49, 0x39fa, 0x3acd, 0x3af6, 0x304c, 0x3abb, 0x3a83, 0x38b2, 0x3ab9, 0x363e, 0x389f, 0x31bb, 0x38e1, 0x3bc4, 0x3b9b, 0x2984, 0x3a43, 0x3b2f, 0x35d6, 0x3bda, +0x2df3, 0x3bf8, 0x2acc, 0x378b, 0x3555, 0x2e59, 0x31d4, 0x34ec, 0x3a46, 0x3bab, 0x3214, 0x3161, 0x3470, 0x3a03, 0x368e, 0x31ad, 0x27cb, 0x2ecb, 0x3422, 0x39f7, 0x3644, 0x3a77, 0x313f, 0x34f2, 0x39b3, 0x3bf2, 0x379a, 0x3456, 0x35fe, 0x3ae7, 0x3964, 0x385f, +0x3b16, 0x3999, 0x3833, 0x2eda, 0x3afd, 0x3a4a, 0x3ba2, 0x2bd4, 0x3b38, 0x31a2, 0x32dd, 0x353c, 0x366f, 0x375e, 0x3821, 0x367a, 0x3b44, 0x39e6, 0x3787, 0x339e, 0x39d7, 0x38c6, 0x37d5, 0x342f, 0x3984, 0x319b, 0x33b5, 0x35ab, 0x398a, 0x374e, 0x36b6, 0x3b21, +0x3bbb, 0x2ab3, 0x2ad5, 0x33bc, 0x2bef, 0x3780, 0x3738, 0x3a0b, 0x3b09, 0x30ca, 0x384e, 0x3ab3, 0x39bd, 0x3453, 0x3a6d, 0x3957, 0x2c10, 0x30e9, 0x35d4, 0x3aef, 0x3be9, 0x39ad, 0x3a74, 0x3af9, 0x3739, 0x2d4d, 0x39fe, 0x3b72, 0x2c57, 0x398c, 0x381f, 0x3930, +0x3820, 0x321b, 0x3964, 0x2964, 0x33a0, 0x2d00, 0x2490, 0x336b, 0x3465, 0x3b2e, 0x3aa0, 0x371f, 0x300e, 0x3a09, 0x3bf1, 0x25cc, 0x3b6f, 0x3384, 0x3a88, 0x3acb, 0x3814, 0x36d0, 0x3081, 0x3a2c, 0x3353, 0x39cb, 0x31ed, 0x3af6, 0x3721, 0x36c7, 0x2ce2, 0x390d, +0x3698, 0x3ab2, 0x3b3e, 0x2eb4, 0x3998, 0x39e3, 0x3a77, 0x3632, 0x2c12, 0x3bd5, 0x3ba3, 0x3bba, 0x323c, 0x367b, 0x3557, 0x39c8, 0x37db, 0x3b45, 0x3b6e, 0x3931, 0x3121, 0x3a8d, 0x3a55, 0x3b9b, 0x358a, 0x3925, 0x3491, 0x3912, 0x3b6b, 0x3584, 0x32df, 0x3120, +0x32b2, 0x3b0a, 0x2cad, 0x3465, 0x3ad3, 0x3bcd, 0x363b, 0x3afe, 0x354b, 0x3374, 0x39af, 0x3b7f, 0x308c, 0x2e72, 0x3380, 0x3b70, 0x3902, 0x38d8, 0x39f3, 0x3a4b, 0x3853, 0x397b, 0x2ebe, 0x387f, 0x2845, 0x37e2, 0x360f, 0x370b, 0x3acb, 0x35d4, 0x36e6, 0x3262, +0x2e88, 0x3a54, 0x2ee3, 0x3575, 0x3afe, 0x2aee, 0x39a0, 0x3aae, 0x3693, 0x3432, 0x3834, 0x3b9b, 0x3bcb, 0x2e3a, 0x356d, 0x374e, 0x3924, 0x383c, 0x311e, 0x3ac5, 0x352d, 0x311e, 0x38ca, 0x34d4, 0x36ca, 0x34ed, 0x3a13, 0x33eb, 0x3639, 0x3828, 0x3b3c, 0x3939, +0x3837, 0x3521, 0x2cb5, 0x3629, 0x3924, 0x384c, 0x366a, 0x3bbf, 0x2e9e, 0x3ba8, 0x33ad, 0x38c8, 0x3934, 0x3907, 0x249a, 0x3690, 0x3a09, 0x3215, 0x3898, 0x325d, 0x37d5, 0x3195, 0x361c, 0x3ae4, 0x351f, 0x3452, 0x3bc0, 0x375c, 0x39bf, 0x317a, 0x3aae, 0x283a, +0x3476, 0x3b92, 0x3472, 0x383e, 0x280f, 0x39d6, 0x2fd1, 0x31f4, 0x2ffb, 0x3b97, 0x3692, 0x36c0, 0x3989, 0x33cf, 0x3ba6, 0x3239, 0x35d7, 0x33ab, 0x31eb, 0x3b47, 0x389b, 0x3b88, 0x3580, 0x354c, 0x3802, 0x3b9a, 0x3b94, 0x2a92, 0x2db1, 0x38bd, 0x2dfb, 0x3900, +0x344f, 0x3739, 0x27a5, 0x3b2e, 0x342b, 0x34bb, 0x30c8, 0x3ae8, 0x3b26, 0x3982, 0x38c0, 0x3408, 0x38c8, 0x36ef, 0x3bf0, 0x3acf, 0x3a3c, 0x3825, 0x31a5, 0x3ada, 0x3b5b, 0x37db, 0x3a01, 0x3663, 0x3a7d, 0x327b, 0x3a1f, 0x3862, 0x38af, 0x3204, 0x372e, 0x3b19, +0x3708, 0x3622, 0x2e62, 0x39ab, 0x2d4d, 0x31b4, 0x3552, 0x3bbc, 0x36f2, 0x36eb, 0x38ef, 0x3755, 0x3bbe, 0x2c17, 0x3815, 0x2f53, 0x363f, 0x38c1, 0x3246, 0x386b, 0x34de, 0x34e4, 0x3baa, 0x349e, 0x32ce, 0x3a68, 0x373f, 0x2cce, 0x3b36, 0x28ba, 0x3b50, 0x3232, +0x1f34, 0x3928, 0x35cd, 0x3b38, 0x30ce, 0x35a1, 0x3a06, 0x3a32, 0x3a53, 0x3489, 0x3241, 0x372f, 0x390c, 0x3a1b, 0x378a, 0x3713, 0x3769, 0x37a8, 0x3418, 0x3ad4, 0x3a4e, 0x3bf7, 0x37a5, 0x34dc, 0x39b2, 0x351b, 0x3372, 0x349f, 0x2f50, 0x3ab1, 0x3795, 0x2db7, +0x3864, 0x3157, 0x3900, 0x323e, 0x389e, 0x3880, 0x3b1f, 0x37a1, 0x396c, 0x2e43, 0x2c2a, 0x3b78, 0x3988, 0x3a14, 0x39c1, 0x3b51, 0x3780, 0x3bf2, 0x2d19, 0x3815, 0x3a5f, 0x3641, 0x2f62, 0x37d5, 0x3564, 0x139a, 0x3ab8, 0x28f7, 0x3785, 0x34e1, 0x3097, 0x3768, +0x3971, 0x3ae2, 0x32ae, 0x2fd5, 0x382a, 0x346c, 0x3133, 0x3167, 0x3940, 0x2d12, 0x389a, 0x3bd0, 0x3943, 0x391c, 0x3a75, 0x2a11, 0x391e, 0x372d, 0x3a79, 0x3b72, 0x3373, 0x39b7, 0x35d7, 0x372b, 0x3a6d, 0x38a1, 0x3279, 0x3434, 0x3694, 0x3b45, 0x3abb, 0x392d, +0x34a8, 0x3757, 0x32ca, 0x345d, 0x36a5, 0x3854, 0x2dcd, 0x30af, 0x38dd, 0x3067, 0x3411, 0x3997, 0x397a, 0x3a64, 0x38b8, 0x3962, 0x3509, 0x3bb6, 0x3a66, 0x339f, 0x372a, 0x31a8, 0x37da, 0x36ff, 0x33c6, 0x31da, 0x3977, 0x3b72, 0x3841, 0x3567, 0x3433, 0x33b8, +0x39fe, 0x3a10, 0x3bf2, 0x35e7, 0x3a4a, 0x3b3e, 0x2ec7, 0x3aa4, 0x3846, 0x3af9, 0x38a9, 0x2c1f, 0x39ab, 0x349f, 0x31d6, 0x39ae, 0x3b79, 0x352d, 0x3516, 0x347c, 0x2f33, 0x35ad, 0x31c4, 0x3b52, 0x354b, 0x3786, 0x3ab7, 0x3896, 0x34ac, 0x352f, 0x37e6, 0x326a, +0x2e44, 0x34c7, 0x388d, 0x3bf4, 0x363f, 0x3b3d, 0x33b1, 0x3b8b, 0x3340, 0x37f7, 0x3b07, 0x25bf, 0x398e, 0x3505, 0x3bd7, 0x366d, 0x388a, 0x2cc0, 0x359a, 0x3b9a, 0x3b99, 0x379d, 0x3b6b, 0x39b8, 0x3223, 0x2703, 0x3ba9, 0x2ecb, 0x3759, 0x39d8, 0x37ac, 0x32cf, +0x35f2, 0x38a3, 0x399e, 0x3bd2, 0x3780, 0x3af3, 0x3b5e, 0x337b, 0x3a08, 0x35da, 0x3446, 0x3b25, 0x3ad0, 0x3bee, 0x3141, 0x32d8, 0x34ce, 0x2ac9, 0x3800, 0x3a8a, 0x2d53, 0x368a, 0x3561, 0x3998, 0x35a3, 0x3677, 0x3ab2, 0x3269, 0x3236, 0x3b3e, 0x3aba, 0x3bac, +0x395d, 0x3820, 0x1df6, 0x3bb5, 0x35b5, 0x3675, 0x3b74, 0x360f, 0x34de, 0x3a0c, 0x3aeb, 0x299d, 0x3207, 0x3bd8, 0x2178, 0x3995, 0x3948, 0x3908, 0x3843, 0x2ea5, 0x3045, 0x3989, 0x345d, 0x39c5, 0x3a89, 0x3863, 0x3be0, 0x397a, 0x38f1, 0x39e2, 0x3b08, 0x352e, +0x385f, 0x28f2, 0x3bc3, 0x35e0, 0x380c, 0x3b9c, 0x3afc, 0x390a, 0x3689, 0x34fd, 0x2cf5, 0x308e, 0x342b, 0x3921, 0x3a67, 0x3ad6, 0x2986, 0x32fc, 0x35aa, 0x3507, 0x3608, 0x33fd, 0x3bf3, 0x39e2, 0x3b0f, 0x30b7, 0x3896, 0x3ae4, 0x2145, 0x35b6, 0x2e1d, 0x3ad1, +0x333d, 0x3afb, 0x2703, 0x3413, 0x1d7d, 0x3b7f, 0x3ae1, 0x303c, 0x3004, 0x39d3, 0x3554, 0x31a4, 0x354e, 0x3662, 0x39c5, 0x2eb7, 0x2c6e, 0x397f, 0x31d8, 0x1f0c, 0x38e3, 0x35f0, 0x2714, 0x28d1, 0x375e, 0x3a75, 0x3830, 0x3578, 0x397d, 0x3b18, 0x383c, 0x3498, +0x39ad, 0x3598, 0x23c4, 0x34ea, 0x3a61, 0x2b00, 0x3707, 0x3ae1, 0x37ae, 0x389d, 0x37fa, 0x3673, 0x3278, 0xf3e, 0x3809, 0x33c6, 0x3bf5, 0x3279, 0x3816, 0x360c, 0x39c8, 0x381f, 0x3741, 0x2d66, 0x38c0, 0x37d3, 0x377a, 0x3621, 0x2faf, 0x392e, 0x2de6, 0x33c5, +0x3803, 0x2600, 0x32e9, 0x39b4, 0x38d2, 0x34e8, 0x2fe6, 0x3199, 0x3643, 0x3a77, 0x27cc, 0x39d7, 0x34c6, 0x2ea8, 0x364e, 0x3b07, 0x31c7, 0x30a1, 0x31b1, 0x3b8f, 0x3571, 0x3b75, 0x3989, 0x3805, 0x39fb, 0x3945, 0x352b, 0x31d8, 0x3904, 0x3440, 0x3a57, 0x2cf7, +0x3b39, 0x2fcd, 0x2b89, 0x2edd, 0x3682, 0x36a9, 0x32c8, 0x37ac, 0x32a5, 0x3311, 0x394b, 0x3b84, 0x3aec, 0x3601, 0x2765, 0x3b69, 0x396b, 0x3727, 0x3bfe, 0x3907, 0x376f, 0x3674, 0x3973, 0x3671, 0x3491, 0x3993, 0x383f, 0x3335, 0x3989, 0x3550, 0x3077, 0x35f5, +0x3a59, 0x3950, 0x380c, 0x37cd, 0x30bf, 0x3607, 0x3afa, 0x3b5d, 0x32b9, 0x386b, 0x35bd, 0x3aca, 0x3ba5, 0x3b2d, 0x3b19, 0x3b8b, 0x345e, 0x2845, 0x34aa, 0x372a, 0x3448, 0x34f5, 0x3ae2, 0x3637, 0x2cb5, 0x354b, 0x3b15, 0x2ca8, 0x2641, 0x3178, 0x2cfe, 0x39b4, +0x3bdd, 0x3acb, 0x3a05, 0x38a2, 0x3b4a, 0x34e5, 0x395f, 0x394b, 0x34c4, 0x3aa5, 0x29bb, 0x2d96, 0x339d, 0x387c, 0x382e, 0x385a, 0x396b, 0x3aa9, 0x2f1e, 0x33a7, 0x3b90, 0x3b7b, 0x3b5f, 0x39d3, 0x3b18, 0x354f, 0x2cdb, 0x3a6f, 0x3434, 0x34ff, 0x3a5b, 0x3b84, +0x3a33, 0x384b, 0x2e67, 0x3b85, 0x3853, 0x380c, 0x346a, 0x3aaa, 0x3492, 0x33e8, 0x3bf2, 0x38ae, 0x3a29, 0x3830, 0x3221, 0x35b1, 0x3a48, 0x2c68, 0x2ced, 0x3a7e, 0x3539, 0x3922, 0x374c, 0x3aaa, 0x2dae, 0x395d, 0x3b3d, 0x3890, 0x2cfe, 0x2dd6, 0x3bad, 0x33c5, +0x2c07, 0x3a2c, 0x37a8, 0x390f, 0x2fc8, 0x35ae, 0x388c, 0x30ee, 0x3674, 0x391d, 0x3bfc, 0x36bf, 0x322d, 0x3a78, 0x35c0, 0x3492, 0x3ac8, 0x3504, 0x3315, 0x381d, 0x3a7a, 0x3a08, 0x343c, 0x3bda, 0x341b, 0x39f0, 0x3b9e, 0x395d, 0x3c00, 0x38ab, 0x3bcf, 0x3564, +0x33c4, 0x3b0d, 0x3623, 0x33b9, 0x3b92, 0x1e71, 0x2c57, 0x36d0, 0x314b, 0x3a16, 0x3372, 0x341b, 0x3aaa, 0x3444, 0x396b, 0x2dd7, 0x3b30, 0x3559, 0x3b5b, 0x3a29, 0x2d19, 0x38b7, 0x3b01, 0x3afa, 0x398a, 0x3839, 0x3ac9, 0x2e31, 0x3924, 0x39f2, 0x3a7f, 0x3285 +}; \ No newline at end of file diff --git a/hwpe/redmule_softclear/inc/w_input.h b/hwpe/redmule_softclear/inc/w_input.h new file mode 100644 index 0000000..dc4d3be --- /dev/null +++ b/hwpe/redmule_softclear/inc/w_input.h @@ -0,0 +1,35 @@ + /* Header file generated by RedMulE Golden Model */ +uint16_t w_inp [1024] = { +0x311a, 0x39e0, 0x387d, 0x3a4a, 0x386f, 0x3ada, 0x392f, 0x3854, 0x3014, 0x2fd2, 0x31c9, 0x2fca, 0x2e55, 0x3bc8, 0x396d, 0x3b1d, 0x39f6, 0x333a, 0x3908, 0x3628, 0x3bab, 0x3b8b, 0x3b4a, 0x322d, 0x3925, 0x317a, 0x3725, 0x31c2, 0x3066, 0x38f3, 0x3a17, 0x3476, +0x3bda, 0x3196, 0x3922, 0x3680, 0x396a, 0x3021, 0x3761, 0x374d, 0x2fc2, 0x3967, 0x3b94, 0x33b5, 0x3797, 0x34d6, 0x3655, 0x2176, 0x39bc, 0x3999, 0x3658, 0x3904, 0x3759, 0x2ade, 0x3a5a, 0x3b78, 0x36c7, 0x2d01, 0x3b58, 0x2d9a, 0x373d, 0x3952, 0x38e8, 0x3887, +0x37b6, 0x3a88, 0x2f8a, 0x2d79, 0x3413, 0x3421, 0x3976, 0x32b2, 0x3446, 0x2d99, 0x3a56, 0x3322, 0x3b49, 0x39fa, 0x3acd, 0x3af6, 0x304c, 0x3abb, 0x3a83, 0x38b2, 0x3ab9, 0x363e, 0x389f, 0x31bb, 0x38e1, 0x3bc4, 0x3b9b, 0x2984, 0x3a43, 0x3b2f, 0x35d6, 0x3bda, +0x2df3, 0x3bf8, 0x2acc, 0x378b, 0x3555, 0x2e59, 0x31d4, 0x34ec, 0x3a46, 0x3bab, 0x3214, 0x3161, 0x3470, 0x3a03, 0x368e, 0x31ad, 0x27cb, 0x2ecb, 0x3422, 0x39f7, 0x3644, 0x3a77, 0x313f, 0x34f2, 0x39b3, 0x3bf2, 0x379a, 0x3456, 0x35fe, 0x3ae7, 0x3964, 0x385f, +0x3b16, 0x3999, 0x3833, 0x2eda, 0x3afd, 0x3a4a, 0x3ba2, 0x2bd4, 0x3b38, 0x31a2, 0x32dd, 0x353c, 0x366f, 0x375e, 0x3821, 0x367a, 0x3b44, 0x39e6, 0x3787, 0x339e, 0x39d7, 0x38c6, 0x37d5, 0x342f, 0x3984, 0x319b, 0x33b5, 0x35ab, 0x398a, 0x374e, 0x36b6, 0x3b21, +0x3bbb, 0x2ab3, 0x2ad5, 0x33bc, 0x2bef, 0x3780, 0x3738, 0x3a0b, 0x3b09, 0x30ca, 0x384e, 0x3ab3, 0x39bd, 0x3453, 0x3a6d, 0x3957, 0x2c10, 0x30e9, 0x35d4, 0x3aef, 0x3be9, 0x39ad, 0x3a74, 0x3af9, 0x3739, 0x2d4d, 0x39fe, 0x3b72, 0x2c57, 0x398c, 0x381f, 0x3930, +0x3820, 0x321b, 0x3964, 0x2964, 0x33a0, 0x2d00, 0x2490, 0x336b, 0x3465, 0x3b2e, 0x3aa0, 0x371f, 0x300e, 0x3a09, 0x3bf1, 0x25cc, 0x3b6f, 0x3384, 0x3a88, 0x3acb, 0x3814, 0x36d0, 0x3081, 0x3a2c, 0x3353, 0x39cb, 0x31ed, 0x3af6, 0x3721, 0x36c7, 0x2ce2, 0x390d, +0x3698, 0x3ab2, 0x3b3e, 0x2eb4, 0x3998, 0x39e3, 0x3a77, 0x3632, 0x2c12, 0x3bd5, 0x3ba3, 0x3bba, 0x323c, 0x367b, 0x3557, 0x39c8, 0x37db, 0x3b45, 0x3b6e, 0x3931, 0x3121, 0x3a8d, 0x3a55, 0x3b9b, 0x358a, 0x3925, 0x3491, 0x3912, 0x3b6b, 0x3584, 0x32df, 0x3120, +0x32b2, 0x3b0a, 0x2cad, 0x3465, 0x3ad3, 0x3bcd, 0x363b, 0x3afe, 0x354b, 0x3374, 0x39af, 0x3b7f, 0x308c, 0x2e72, 0x3380, 0x3b70, 0x3902, 0x38d8, 0x39f3, 0x3a4b, 0x3853, 0x397b, 0x2ebe, 0x387f, 0x2845, 0x37e2, 0x360f, 0x370b, 0x3acb, 0x35d4, 0x36e6, 0x3262, +0x2e88, 0x3a54, 0x2ee3, 0x3575, 0x3afe, 0x2aee, 0x39a0, 0x3aae, 0x3693, 0x3432, 0x3834, 0x3b9b, 0x3bcb, 0x2e3a, 0x356d, 0x374e, 0x3924, 0x383c, 0x311e, 0x3ac5, 0x352d, 0x311e, 0x38ca, 0x34d4, 0x36ca, 0x34ed, 0x3a13, 0x33eb, 0x3639, 0x3828, 0x3b3c, 0x3939, +0x3837, 0x3521, 0x2cb5, 0x3629, 0x3924, 0x384c, 0x366a, 0x3bbf, 0x2e9e, 0x3ba8, 0x33ad, 0x38c8, 0x3934, 0x3907, 0x249a, 0x3690, 0x3a09, 0x3215, 0x3898, 0x325d, 0x37d5, 0x3195, 0x361c, 0x3ae4, 0x351f, 0x3452, 0x3bc0, 0x375c, 0x39bf, 0x317a, 0x3aae, 0x283a, +0x3476, 0x3b92, 0x3472, 0x383e, 0x280f, 0x39d6, 0x2fd1, 0x31f4, 0x2ffb, 0x3b97, 0x3692, 0x36c0, 0x3989, 0x33cf, 0x3ba6, 0x3239, 0x35d7, 0x33ab, 0x31eb, 0x3b47, 0x389b, 0x3b88, 0x3580, 0x354c, 0x3802, 0x3b9a, 0x3b94, 0x2a92, 0x2db1, 0x38bd, 0x2dfb, 0x3900, +0x344f, 0x3739, 0x27a5, 0x3b2e, 0x342b, 0x34bb, 0x30c8, 0x3ae8, 0x3b26, 0x3982, 0x38c0, 0x3408, 0x38c8, 0x36ef, 0x3bf0, 0x3acf, 0x3a3c, 0x3825, 0x31a5, 0x3ada, 0x3b5b, 0x37db, 0x3a01, 0x3663, 0x3a7d, 0x327b, 0x3a1f, 0x3862, 0x38af, 0x3204, 0x372e, 0x3b19, +0x3708, 0x3622, 0x2e62, 0x39ab, 0x2d4d, 0x31b4, 0x3552, 0x3bbc, 0x36f2, 0x36eb, 0x38ef, 0x3755, 0x3bbe, 0x2c17, 0x3815, 0x2f53, 0x363f, 0x38c1, 0x3246, 0x386b, 0x34de, 0x34e4, 0x3baa, 0x349e, 0x32ce, 0x3a68, 0x373f, 0x2cce, 0x3b36, 0x28ba, 0x3b50, 0x3232, +0x1f34, 0x3928, 0x35cd, 0x3b38, 0x30ce, 0x35a1, 0x3a06, 0x3a32, 0x3a53, 0x3489, 0x3241, 0x372f, 0x390c, 0x3a1b, 0x378a, 0x3713, 0x3769, 0x37a8, 0x3418, 0x3ad4, 0x3a4e, 0x3bf7, 0x37a5, 0x34dc, 0x39b2, 0x351b, 0x3372, 0x349f, 0x2f50, 0x3ab1, 0x3795, 0x2db7, +0x3864, 0x3157, 0x3900, 0x323e, 0x389e, 0x3880, 0x3b1f, 0x37a1, 0x396c, 0x2e43, 0x2c2a, 0x3b78, 0x3988, 0x3a14, 0x39c1, 0x3b51, 0x3780, 0x3bf2, 0x2d19, 0x3815, 0x3a5f, 0x3641, 0x2f62, 0x37d5, 0x3564, 0x139a, 0x3ab8, 0x28f7, 0x3785, 0x34e1, 0x3097, 0x3768, +0x3971, 0x3ae2, 0x32ae, 0x2fd5, 0x382a, 0x346c, 0x3133, 0x3167, 0x3940, 0x2d12, 0x389a, 0x3bd0, 0x3943, 0x391c, 0x3a75, 0x2a11, 0x391e, 0x372d, 0x3a79, 0x3b72, 0x3373, 0x39b7, 0x35d7, 0x372b, 0x3a6d, 0x38a1, 0x3279, 0x3434, 0x3694, 0x3b45, 0x3abb, 0x392d, +0x34a8, 0x3757, 0x32ca, 0x345d, 0x36a5, 0x3854, 0x2dcd, 0x30af, 0x38dd, 0x3067, 0x3411, 0x3997, 0x397a, 0x3a64, 0x38b8, 0x3962, 0x3509, 0x3bb6, 0x3a66, 0x339f, 0x372a, 0x31a8, 0x37da, 0x36ff, 0x33c6, 0x31da, 0x3977, 0x3b72, 0x3841, 0x3567, 0x3433, 0x33b8, +0x39fe, 0x3a10, 0x3bf2, 0x35e7, 0x3a4a, 0x3b3e, 0x2ec7, 0x3aa4, 0x3846, 0x3af9, 0x38a9, 0x2c1f, 0x39ab, 0x349f, 0x31d6, 0x39ae, 0x3b79, 0x352d, 0x3516, 0x347c, 0x2f33, 0x35ad, 0x31c4, 0x3b52, 0x354b, 0x3786, 0x3ab7, 0x3896, 0x34ac, 0x352f, 0x37e6, 0x326a, +0x2e44, 0x34c7, 0x388d, 0x3bf4, 0x363f, 0x3b3d, 0x33b1, 0x3b8b, 0x3340, 0x37f7, 0x3b07, 0x25bf, 0x398e, 0x3505, 0x3bd7, 0x366d, 0x388a, 0x2cc0, 0x359a, 0x3b9a, 0x3b99, 0x379d, 0x3b6b, 0x39b8, 0x3223, 0x2703, 0x3ba9, 0x2ecb, 0x3759, 0x39d8, 0x37ac, 0x32cf, +0x35f2, 0x38a3, 0x399e, 0x3bd2, 0x3780, 0x3af3, 0x3b5e, 0x337b, 0x3a08, 0x35da, 0x3446, 0x3b25, 0x3ad0, 0x3bee, 0x3141, 0x32d8, 0x34ce, 0x2ac9, 0x3800, 0x3a8a, 0x2d53, 0x368a, 0x3561, 0x3998, 0x35a3, 0x3677, 0x3ab2, 0x3269, 0x3236, 0x3b3e, 0x3aba, 0x3bac, +0x395d, 0x3820, 0x1df6, 0x3bb5, 0x35b5, 0x3675, 0x3b74, 0x360f, 0x34de, 0x3a0c, 0x3aeb, 0x299d, 0x3207, 0x3bd8, 0x2178, 0x3995, 0x3948, 0x3908, 0x3843, 0x2ea5, 0x3045, 0x3989, 0x345d, 0x39c5, 0x3a89, 0x3863, 0x3be0, 0x397a, 0x38f1, 0x39e2, 0x3b08, 0x352e, +0x385f, 0x28f2, 0x3bc3, 0x35e0, 0x380c, 0x3b9c, 0x3afc, 0x390a, 0x3689, 0x34fd, 0x2cf5, 0x308e, 0x342b, 0x3921, 0x3a67, 0x3ad6, 0x2986, 0x32fc, 0x35aa, 0x3507, 0x3608, 0x33fd, 0x3bf3, 0x39e2, 0x3b0f, 0x30b7, 0x3896, 0x3ae4, 0x2145, 0x35b6, 0x2e1d, 0x3ad1, +0x333d, 0x3afb, 0x2703, 0x3413, 0x1d7d, 0x3b7f, 0x3ae1, 0x303c, 0x3004, 0x39d3, 0x3554, 0x31a4, 0x354e, 0x3662, 0x39c5, 0x2eb7, 0x2c6e, 0x397f, 0x31d8, 0x1f0c, 0x38e3, 0x35f0, 0x2714, 0x28d1, 0x375e, 0x3a75, 0x3830, 0x3578, 0x397d, 0x3b18, 0x383c, 0x3498, +0x39ad, 0x3598, 0x23c4, 0x34ea, 0x3a61, 0x2b00, 0x3707, 0x3ae1, 0x37ae, 0x389d, 0x37fa, 0x3673, 0x3278, 0xf3e, 0x3809, 0x33c6, 0x3bf5, 0x3279, 0x3816, 0x360c, 0x39c8, 0x381f, 0x3741, 0x2d66, 0x38c0, 0x37d3, 0x377a, 0x3621, 0x2faf, 0x392e, 0x2de6, 0x33c5, +0x3803, 0x2600, 0x32e9, 0x39b4, 0x38d2, 0x34e8, 0x2fe6, 0x3199, 0x3643, 0x3a77, 0x27cc, 0x39d7, 0x34c6, 0x2ea8, 0x364e, 0x3b07, 0x31c7, 0x30a1, 0x31b1, 0x3b8f, 0x3571, 0x3b75, 0x3989, 0x3805, 0x39fb, 0x3945, 0x352b, 0x31d8, 0x3904, 0x3440, 0x3a57, 0x2cf7, +0x3b39, 0x2fcd, 0x2b89, 0x2edd, 0x3682, 0x36a9, 0x32c8, 0x37ac, 0x32a5, 0x3311, 0x394b, 0x3b84, 0x3aec, 0x3601, 0x2765, 0x3b69, 0x396b, 0x3727, 0x3bfe, 0x3907, 0x376f, 0x3674, 0x3973, 0x3671, 0x3491, 0x3993, 0x383f, 0x3335, 0x3989, 0x3550, 0x3077, 0x35f5, +0x3a59, 0x3950, 0x380c, 0x37cd, 0x30bf, 0x3607, 0x3afa, 0x3b5d, 0x32b9, 0x386b, 0x35bd, 0x3aca, 0x3ba5, 0x3b2d, 0x3b19, 0x3b8b, 0x345e, 0x2845, 0x34aa, 0x372a, 0x3448, 0x34f5, 0x3ae2, 0x3637, 0x2cb5, 0x354b, 0x3b15, 0x2ca8, 0x2641, 0x3178, 0x2cfe, 0x39b4, +0x3bdd, 0x3acb, 0x3a05, 0x38a2, 0x3b4a, 0x34e5, 0x395f, 0x394b, 0x34c4, 0x3aa5, 0x29bb, 0x2d96, 0x339d, 0x387c, 0x382e, 0x385a, 0x396b, 0x3aa9, 0x2f1e, 0x33a7, 0x3b90, 0x3b7b, 0x3b5f, 0x39d3, 0x3b18, 0x354f, 0x2cdb, 0x3a6f, 0x3434, 0x34ff, 0x3a5b, 0x3b84, +0x3a33, 0x384b, 0x2e67, 0x3b85, 0x3853, 0x380c, 0x346a, 0x3aaa, 0x3492, 0x33e8, 0x3bf2, 0x38ae, 0x3a29, 0x3830, 0x3221, 0x35b1, 0x3a48, 0x2c68, 0x2ced, 0x3a7e, 0x3539, 0x3922, 0x374c, 0x3aaa, 0x2dae, 0x395d, 0x3b3d, 0x3890, 0x2cfe, 0x2dd6, 0x3bad, 0x33c5, +0x2c07, 0x3a2c, 0x37a8, 0x390f, 0x2fc8, 0x35ae, 0x388c, 0x30ee, 0x3674, 0x391d, 0x3bfc, 0x36bf, 0x322d, 0x3a78, 0x35c0, 0x3492, 0x3ac8, 0x3504, 0x3315, 0x381d, 0x3a7a, 0x3a08, 0x343c, 0x3bda, 0x341b, 0x39f0, 0x3b9e, 0x395d, 0x3c00, 0x38ab, 0x3bcf, 0x3564, +0x33c4, 0x3b0d, 0x3623, 0x33b9, 0x3b92, 0x1e71, 0x2c57, 0x36d0, 0x314b, 0x3a16, 0x3372, 0x341b, 0x3aaa, 0x3444, 0x396b, 0x2dd7, 0x3b30, 0x3559, 0x3b5b, 0x3a29, 0x2d19, 0x38b7, 0x3b01, 0x3afa, 0x398a, 0x3839, 0x3ac9, 0x2e31, 0x3924, 0x39f2, 0x3a7f, 0x3285 +}; \ No newline at end of file diff --git a/hwpe/redmule_softclear/inc/x_2D.h b/hwpe/redmule_softclear/inc/x_2D.h new file mode 100644 index 0000000..0b589f8 --- /dev/null +++ b/hwpe/redmule_softclear/inc/x_2D.h @@ -0,0 +1,27 @@ + /* Header file generated by RedMulE Golden Model */ +uint16_t x_inp_2D [24][32] = { +0x2153, 0x3bb5, 0x3896, 0x365f, 0x2483, 0x3518, 0x2dd1, 0x3bca, 0x397b, 0x29b1, 0x3705, 0x36c8, 0x398b, 0x3661, 0x2f05, 0x365a, 0x3bf9, 0x34df, 0x363b, 0x38d9, 0x39c6, 0x3abb, 0x3952, 0x38f2, 0x392d, 0x3b3e, 0x2afb, 0x3a9d, 0x353b, 0x3b73, 0x3a01, 0x3679, +0x3934, 0x397d, 0x2904, 0x3822, 0x3462, 0x3b44, 0x39e9, 0x28be, 0x331e, 0x3a1d, 0x39e5, 0x34da, 0x3a19, 0x3906, 0x1d35, 0x3871, 0x31e7, 0x3b29, 0x325d, 0x3797, 0x2b2f, 0x38b4, 0x232f, 0x38aa, 0x3aca, 0x316f, 0x3811, 0x3950, 0x32ea, 0x3bc7, 0x382c, 0x38a2, +0x29ce, 0x3afa, 0x3a39, 0x2ccc, 0x39fd, 0x3b3d, 0x384a, 0x3a35, 0x3802, 0x366a, 0x37ec, 0x3598, 0x3bf8, 0x3a85, 0x3a1b, 0x386e, 0x3b4c, 0x39de, 0x38c2, 0x2f93, 0x3b4c, 0x39c4, 0x3b9e, 0x3844, 0x346d, 0x3bff, 0x32ce, 0x296d, 0x3130, 0x3b3d, 0x3b44, 0x369d, +0x3b13, 0x31ed, 0x330a, 0x3831, 0x34e7, 0x37b3, 0x331a, 0x3918, 0x32d3, 0x3995, 0x3991, 0x3919, 0x3a26, 0x385b, 0x2b76, 0x3a3b, 0x37f2, 0x26a7, 0x3225, 0x3b64, 0x28f0, 0x3456, 0x3822, 0x341e, 0x381a, 0x38d8, 0x2c11, 0x33be, 0x33ac, 0x353f, 0x3476, 0x3abc, +0x36ec, 0x3a1d, 0x39d3, 0x3821, 0x36ac, 0x3bce, 0x3ad2, 0x3616, 0x36a1, 0x2cb3, 0x38d2, 0x314f, 0x385c, 0x3b63, 0x3bb6, 0x2951, 0x372d, 0x2c42, 0x3823, 0x3883, 0x3872, 0x31ee, 0x36c5, 0x399a, 0x31b0, 0x3887, 0x3884, 0x3865, 0x3896, 0x36c3, 0x32e3, 0x346c, +0x3935, 0x3b50, 0x2b6d, 0x38cd, 0x388f, 0x3389, 0x395d, 0x31cd, 0x2efd, 0x3154, 0x2f35, 0x3444, 0x3293, 0x3b6b, 0x1bec, 0x3b69, 0x3bf3, 0x3611, 0x3508, 0x3742, 0x3a50, 0x3ab7, 0x3457, 0x38d3, 0x3344, 0x38e8, 0x33c0, 0x3668, 0x3bee, 0x3b21, 0x3727, 0x3121, +0x316c, 0x3288, 0x2d50, 0x2e74, 0x35d5, 0x37e2, 0x303d, 0x36af, 0x341f, 0x3436, 0x2df7, 0x399d, 0x30f4, 0x3aaf, 0x34e4, 0x2c2a, 0x3116, 0x34d3, 0x36ac, 0x35e3, 0x3760, 0x36e1, 0x3ad2, 0x3547, 0x38f4, 0x369c, 0x3ba9, 0x34f0, 0x3a39, 0x3b19, 0x36e6, 0x395d, +0x3be8, 0x3293, 0x3bfc, 0x3435, 0x2eb3, 0x3360, 0x3919, 0x3bed, 0x396a, 0x37fc, 0x3242, 0x384b, 0x38cb, 0x3b2c, 0x3b28, 0x28cf, 0x3828, 0x3855, 0x3ba9, 0x2fa7, 0x340b, 0x32f1, 0x3ada, 0x36fa, 0x31f5, 0x3436, 0x29d0, 0x33e6, 0x3232, 0x3bec, 0x3904, 0x2797, +0x3b81, 0x3bac, 0x38d2, 0x343d, 0x31af, 0x3b1e, 0x33fc, 0x3864, 0x3624, 0x3905, 0x2945, 0x3b52, 0x2d08, 0x3a17, 0x3b84, 0x3804, 0x3a24, 0x38a3, 0x3562, 0x3ae6, 0x3bba, 0x3a45, 0x3679, 0x31fa, 0x3994, 0x2c3d, 0x383f, 0x399d, 0x34f7, 0x360e, 0x35f3, 0x38f0, +0x38d4, 0x399a, 0x3a48, 0x3987, 0x3b54, 0x382c, 0x3210, 0x35ef, 0x36ca, 0x31b4, 0x3625, 0x371f, 0x37bd, 0x3680, 0x3a3a, 0x3ac0, 0x3bbf, 0x3bf5, 0x39f2, 0x29c2, 0x363e, 0x3a4e, 0x3596, 0x3b1b, 0x3459, 0x3669, 0x3aa1, 0x39c3, 0x3376, 0x390d, 0x2456, 0x39b5, +0x3a66, 0x3ad8, 0x3b51, 0x36aa, 0x32be, 0x3ac8, 0x392b, 0x3740, 0x3a48, 0x38f5, 0x3b2d, 0x3a5f, 0x2ff3, 0x366f, 0x39d3, 0x35e5, 0x3822, 0x38db, 0x3b8a, 0x34be, 0x2d33, 0x36dd, 0x3578, 0x3bdf, 0x2c7e, 0x39cf, 0x32ff, 0x35c9, 0x3970, 0x3bcb, 0x351e, 0x3956, +0x2c42, 0x3308, 0x377a, 0x361c, 0x39a0, 0x36c9, 0x2dcb, 0x3bf2, 0x3b5f, 0x33ee, 0x24c1, 0x2ce9, 0x3927, 0x305d, 0x3702, 0x3119, 0x35f9, 0x3855, 0x3374, 0x349b, 0x3bcf, 0x2dea, 0x34f0, 0x363f, 0x37da, 0x3a74, 0x35fc, 0x35fa, 0x316b, 0x3804, 0x37a7, 0x3986, +0x3073, 0x3aed, 0x31c7, 0x3844, 0x34a4, 0x387d, 0x3a20, 0x3037, 0x3a00, 0x3b70, 0x377f, 0x3686, 0x3b7e, 0x38b3, 0x32e3, 0x3323, 0x391e, 0x3228, 0x3930, 0x3997, 0x3a5e, 0x398b, 0x3512, 0x35b0, 0x365c, 0x325d, 0x3b61, 0x38b8, 0x39a4, 0x3423, 0x3bd7, 0x38af, +0x2d3d, 0x382d, 0x38ac, 0x26ca, 0x395e, 0x21a8, 0x3520, 0x386f, 0x3b95, 0x32c0, 0x3b84, 0x3a51, 0x3b4b, 0x31d2, 0x3747, 0x3b96, 0x3b40, 0x3535, 0x38d1, 0x3899, 0x3b00, 0x3827, 0x3ae3, 0x38c8, 0x3a07, 0x338d, 0x2e96, 0x3a46, 0x394a, 0x39de, 0x2951, 0x3a02, +0x3838, 0x2d45, 0x28c0, 0x3958, 0x3070, 0x2aa2, 0x3510, 0x38ce, 0x271c, 0x3440, 0x3954, 0x30bc, 0x3b35, 0x2f1d, 0x3afb, 0x2dae, 0x356f, 0x2e13, 0x3981, 0x326d, 0x3a28, 0x3a36, 0x3a95, 0x38cb, 0x38db, 0x3150, 0x2c9e, 0x34c5, 0x3adb, 0x3bdf, 0x38f2, 0x3994, +0x36f8, 0x31c0, 0x3a4f, 0x3825, 0x394b, 0x3a8b, 0x38ac, 0x3167, 0x2e2d, 0x3a93, 0x34f3, 0x37bd, 0x3b63, 0x2f2f, 0x3ae0, 0x3ad8, 0x34a8, 0x2e1c, 0x3890, 0x3705, 0x3b69, 0x3bc1, 0x28af, 0x3b36, 0x348b, 0x3111, 0x3a8d, 0x389c, 0x3916, 0x36dc, 0x3bae, 0x3874, +0x3593, 0x3638, 0x3018, 0x3a56, 0x38a3, 0x2ad4, 0x3a25, 0x38d7, 0x3864, 0x31c1, 0x28d1, 0x39c8, 0x37d6, 0x2c7f, 0x3ba5, 0x34b8, 0x3bef, 0x3b83, 0x3ab5, 0x3062, 0x38bc, 0x399c, 0x2ce4, 0x2f2c, 0x39bf, 0x2ed1, 0x385f, 0x37e0, 0x35ee, 0x397d, 0x3b0c, 0x3049, +0x39d5, 0x322e, 0x3936, 0x3747, 0x2e15, 0x3b41, 0x3874, 0x3bd0, 0x2c04, 0x3800, 0x375b, 0x3b2d, 0x38d8, 0x3a51, 0x3406, 0x38da, 0x38ba, 0x3497, 0x382e, 0x35fc, 0x39d4, 0x3775, 0x3b1e, 0x3813, 0x3649, 0x31af, 0x37bb, 0x334a, 0x3a6e, 0x3284, 0x26e0, 0x2e01, +0x2ebb, 0x344b, 0x3821, 0x381a, 0x385a, 0x2534, 0x3635, 0x2a92, 0x3b8c, 0x31f0, 0x3947, 0x3ac7, 0x3743, 0x3924, 0x39e4, 0x358f, 0x2b62, 0x392c, 0x3955, 0x3341, 0x3676, 0x38ac, 0x3957, 0x335b, 0x2ca2, 0x39ff, 0x37cb, 0x341f, 0x3ac9, 0x3b6c, 0x2f14, 0x34c3, +0x3018, 0x3169, 0x355b, 0x3624, 0x31ed, 0x379e, 0x3268, 0x309b, 0x35db, 0x3872, 0x3bdb, 0x34c7, 0x3408, 0x3359, 0x3920, 0x331f, 0x3866, 0x3af0, 0x2a1a, 0x39e0, 0x3b14, 0x34fa, 0x2d18, 0x3963, 0x35e8, 0x2539, 0x38f5, 0x37b3, 0x378f, 0x31b5, 0x3a6c, 0x3685, +0x3a06, 0x318a, 0x2934, 0x33c1, 0x3be8, 0x375b, 0x3860, 0x3543, 0x3702, 0x3951, 0x3677, 0x37ff, 0x2e27, 0x2e3a, 0x340f, 0x3817, 0x2f04, 0x357e, 0x3a1d, 0x2dd6, 0x252a, 0x3945, 0x162a, 0x3b19, 0x3a53, 0x35d2, 0x3a5d, 0x3474, 0x38e9, 0x374b, 0x387c, 0x1f1a, +0x38ac, 0x3291, 0x3393, 0x3b53, 0x3169, 0x3bca, 0x2f1a, 0x3551, 0x38a3, 0x28e3, 0x369d, 0x34a1, 0x38a8, 0x34c3, 0x3841, 0x390d, 0x3b13, 0x3282, 0x3a29, 0x3a78, 0x2df3, 0x3a37, 0x35f4, 0x35a6, 0x38e8, 0x3328, 0x3beb, 0x390b, 0x32dc, 0x34dc, 0x396d, 0x3a78, +0x39ba, 0x3a06, 0x2cdd, 0x3bc3, 0x2d43, 0x2992, 0x3663, 0x3a68, 0x2c3e, 0x394e, 0x2c9f, 0x380e, 0x37f5, 0x3557, 0x2873, 0x390f, 0x39e7, 0x3939, 0x3669, 0x385c, 0x3a68, 0x32c4, 0x2b04, 0x2d6d, 0x39d3, 0x3895, 0x331d, 0x3b59, 0x3463, 0x2b6a, 0x31de, 0x3296, +0x3aae, 0x3bcd, 0x345a, 0x3897, 0x374b, 0x3bd4, 0x38a2, 0x357f, 0x3402, 0x3a0c, 0x3507, 0x3865, 0x3a54, 0x3878, 0x3859, 0x383e, 0x32b5, 0x34ea, 0x328d, 0x38b6, 0x3464, 0x2f5b, 0x35ff, 0x3817, 0x2f24, 0x3533, 0x3b21, 0x37ba, 0x3837, 0x2e34, 0x3bad, 0x34bc +}; \ No newline at end of file diff --git a/hwpe/redmule_softclear/inc/x_input.h b/hwpe/redmule_softclear/inc/x_input.h new file mode 100644 index 0000000..1e38d23 --- /dev/null +++ b/hwpe/redmule_softclear/inc/x_input.h @@ -0,0 +1,27 @@ + /* Header file generated by RedMulE Golden Model */ +uint16_t x_inp [768] = { +0x2153, 0x3bb5, 0x3896, 0x365f, 0x2483, 0x3518, 0x2dd1, 0x3bca, 0x397b, 0x29b1, 0x3705, 0x36c8, 0x398b, 0x3661, 0x2f05, 0x365a, 0x3bf9, 0x34df, 0x363b, 0x38d9, 0x39c6, 0x3abb, 0x3952, 0x38f2, 0x392d, 0x3b3e, 0x2afb, 0x3a9d, 0x353b, 0x3b73, 0x3a01, 0x3679, +0x3934, 0x397d, 0x2904, 0x3822, 0x3462, 0x3b44, 0x39e9, 0x28be, 0x331e, 0x3a1d, 0x39e5, 0x34da, 0x3a19, 0x3906, 0x1d35, 0x3871, 0x31e7, 0x3b29, 0x325d, 0x3797, 0x2b2f, 0x38b4, 0x232f, 0x38aa, 0x3aca, 0x316f, 0x3811, 0x3950, 0x32ea, 0x3bc7, 0x382c, 0x38a2, +0x29ce, 0x3afa, 0x3a39, 0x2ccc, 0x39fd, 0x3b3d, 0x384a, 0x3a35, 0x3802, 0x366a, 0x37ec, 0x3598, 0x3bf8, 0x3a85, 0x3a1b, 0x386e, 0x3b4c, 0x39de, 0x38c2, 0x2f93, 0x3b4c, 0x39c4, 0x3b9e, 0x3844, 0x346d, 0x3bff, 0x32ce, 0x296d, 0x3130, 0x3b3d, 0x3b44, 0x369d, +0x3b13, 0x31ed, 0x330a, 0x3831, 0x34e7, 0x37b3, 0x331a, 0x3918, 0x32d3, 0x3995, 0x3991, 0x3919, 0x3a26, 0x385b, 0x2b76, 0x3a3b, 0x37f2, 0x26a7, 0x3225, 0x3b64, 0x28f0, 0x3456, 0x3822, 0x341e, 0x381a, 0x38d8, 0x2c11, 0x33be, 0x33ac, 0x353f, 0x3476, 0x3abc, +0x36ec, 0x3a1d, 0x39d3, 0x3821, 0x36ac, 0x3bce, 0x3ad2, 0x3616, 0x36a1, 0x2cb3, 0x38d2, 0x314f, 0x385c, 0x3b63, 0x3bb6, 0x2951, 0x372d, 0x2c42, 0x3823, 0x3883, 0x3872, 0x31ee, 0x36c5, 0x399a, 0x31b0, 0x3887, 0x3884, 0x3865, 0x3896, 0x36c3, 0x32e3, 0x346c, +0x3935, 0x3b50, 0x2b6d, 0x38cd, 0x388f, 0x3389, 0x395d, 0x31cd, 0x2efd, 0x3154, 0x2f35, 0x3444, 0x3293, 0x3b6b, 0x1bec, 0x3b69, 0x3bf3, 0x3611, 0x3508, 0x3742, 0x3a50, 0x3ab7, 0x3457, 0x38d3, 0x3344, 0x38e8, 0x33c0, 0x3668, 0x3bee, 0x3b21, 0x3727, 0x3121, +0x316c, 0x3288, 0x2d50, 0x2e74, 0x35d5, 0x37e2, 0x303d, 0x36af, 0x341f, 0x3436, 0x2df7, 0x399d, 0x30f4, 0x3aaf, 0x34e4, 0x2c2a, 0x3116, 0x34d3, 0x36ac, 0x35e3, 0x3760, 0x36e1, 0x3ad2, 0x3547, 0x38f4, 0x369c, 0x3ba9, 0x34f0, 0x3a39, 0x3b19, 0x36e6, 0x395d, +0x3be8, 0x3293, 0x3bfc, 0x3435, 0x2eb3, 0x3360, 0x3919, 0x3bed, 0x396a, 0x37fc, 0x3242, 0x384b, 0x38cb, 0x3b2c, 0x3b28, 0x28cf, 0x3828, 0x3855, 0x3ba9, 0x2fa7, 0x340b, 0x32f1, 0x3ada, 0x36fa, 0x31f5, 0x3436, 0x29d0, 0x33e6, 0x3232, 0x3bec, 0x3904, 0x2797, +0x3b81, 0x3bac, 0x38d2, 0x343d, 0x31af, 0x3b1e, 0x33fc, 0x3864, 0x3624, 0x3905, 0x2945, 0x3b52, 0x2d08, 0x3a17, 0x3b84, 0x3804, 0x3a24, 0x38a3, 0x3562, 0x3ae6, 0x3bba, 0x3a45, 0x3679, 0x31fa, 0x3994, 0x2c3d, 0x383f, 0x399d, 0x34f7, 0x360e, 0x35f3, 0x38f0, +0x38d4, 0x399a, 0x3a48, 0x3987, 0x3b54, 0x382c, 0x3210, 0x35ef, 0x36ca, 0x31b4, 0x3625, 0x371f, 0x37bd, 0x3680, 0x3a3a, 0x3ac0, 0x3bbf, 0x3bf5, 0x39f2, 0x29c2, 0x363e, 0x3a4e, 0x3596, 0x3b1b, 0x3459, 0x3669, 0x3aa1, 0x39c3, 0x3376, 0x390d, 0x2456, 0x39b5, +0x3a66, 0x3ad8, 0x3b51, 0x36aa, 0x32be, 0x3ac8, 0x392b, 0x3740, 0x3a48, 0x38f5, 0x3b2d, 0x3a5f, 0x2ff3, 0x366f, 0x39d3, 0x35e5, 0x3822, 0x38db, 0x3b8a, 0x34be, 0x2d33, 0x36dd, 0x3578, 0x3bdf, 0x2c7e, 0x39cf, 0x32ff, 0x35c9, 0x3970, 0x3bcb, 0x351e, 0x3956, +0x2c42, 0x3308, 0x377a, 0x361c, 0x39a0, 0x36c9, 0x2dcb, 0x3bf2, 0x3b5f, 0x33ee, 0x24c1, 0x2ce9, 0x3927, 0x305d, 0x3702, 0x3119, 0x35f9, 0x3855, 0x3374, 0x349b, 0x3bcf, 0x2dea, 0x34f0, 0x363f, 0x37da, 0x3a74, 0x35fc, 0x35fa, 0x316b, 0x3804, 0x37a7, 0x3986, +0x3073, 0x3aed, 0x31c7, 0x3844, 0x34a4, 0x387d, 0x3a20, 0x3037, 0x3a00, 0x3b70, 0x377f, 0x3686, 0x3b7e, 0x38b3, 0x32e3, 0x3323, 0x391e, 0x3228, 0x3930, 0x3997, 0x3a5e, 0x398b, 0x3512, 0x35b0, 0x365c, 0x325d, 0x3b61, 0x38b8, 0x39a4, 0x3423, 0x3bd7, 0x38af, +0x2d3d, 0x382d, 0x38ac, 0x26ca, 0x395e, 0x21a8, 0x3520, 0x386f, 0x3b95, 0x32c0, 0x3b84, 0x3a51, 0x3b4b, 0x31d2, 0x3747, 0x3b96, 0x3b40, 0x3535, 0x38d1, 0x3899, 0x3b00, 0x3827, 0x3ae3, 0x38c8, 0x3a07, 0x338d, 0x2e96, 0x3a46, 0x394a, 0x39de, 0x2951, 0x3a02, +0x3838, 0x2d45, 0x28c0, 0x3958, 0x3070, 0x2aa2, 0x3510, 0x38ce, 0x271c, 0x3440, 0x3954, 0x30bc, 0x3b35, 0x2f1d, 0x3afb, 0x2dae, 0x356f, 0x2e13, 0x3981, 0x326d, 0x3a28, 0x3a36, 0x3a95, 0x38cb, 0x38db, 0x3150, 0x2c9e, 0x34c5, 0x3adb, 0x3bdf, 0x38f2, 0x3994, +0x36f8, 0x31c0, 0x3a4f, 0x3825, 0x394b, 0x3a8b, 0x38ac, 0x3167, 0x2e2d, 0x3a93, 0x34f3, 0x37bd, 0x3b63, 0x2f2f, 0x3ae0, 0x3ad8, 0x34a8, 0x2e1c, 0x3890, 0x3705, 0x3b69, 0x3bc1, 0x28af, 0x3b36, 0x348b, 0x3111, 0x3a8d, 0x389c, 0x3916, 0x36dc, 0x3bae, 0x3874, +0x3593, 0x3638, 0x3018, 0x3a56, 0x38a3, 0x2ad4, 0x3a25, 0x38d7, 0x3864, 0x31c1, 0x28d1, 0x39c8, 0x37d6, 0x2c7f, 0x3ba5, 0x34b8, 0x3bef, 0x3b83, 0x3ab5, 0x3062, 0x38bc, 0x399c, 0x2ce4, 0x2f2c, 0x39bf, 0x2ed1, 0x385f, 0x37e0, 0x35ee, 0x397d, 0x3b0c, 0x3049, +0x39d5, 0x322e, 0x3936, 0x3747, 0x2e15, 0x3b41, 0x3874, 0x3bd0, 0x2c04, 0x3800, 0x375b, 0x3b2d, 0x38d8, 0x3a51, 0x3406, 0x38da, 0x38ba, 0x3497, 0x382e, 0x35fc, 0x39d4, 0x3775, 0x3b1e, 0x3813, 0x3649, 0x31af, 0x37bb, 0x334a, 0x3a6e, 0x3284, 0x26e0, 0x2e01, +0x2ebb, 0x344b, 0x3821, 0x381a, 0x385a, 0x2534, 0x3635, 0x2a92, 0x3b8c, 0x31f0, 0x3947, 0x3ac7, 0x3743, 0x3924, 0x39e4, 0x358f, 0x2b62, 0x392c, 0x3955, 0x3341, 0x3676, 0x38ac, 0x3957, 0x335b, 0x2ca2, 0x39ff, 0x37cb, 0x341f, 0x3ac9, 0x3b6c, 0x2f14, 0x34c3, +0x3018, 0x3169, 0x355b, 0x3624, 0x31ed, 0x379e, 0x3268, 0x309b, 0x35db, 0x3872, 0x3bdb, 0x34c7, 0x3408, 0x3359, 0x3920, 0x331f, 0x3866, 0x3af0, 0x2a1a, 0x39e0, 0x3b14, 0x34fa, 0x2d18, 0x3963, 0x35e8, 0x2539, 0x38f5, 0x37b3, 0x378f, 0x31b5, 0x3a6c, 0x3685, +0x3a06, 0x318a, 0x2934, 0x33c1, 0x3be8, 0x375b, 0x3860, 0x3543, 0x3702, 0x3951, 0x3677, 0x37ff, 0x2e27, 0x2e3a, 0x340f, 0x3817, 0x2f04, 0x357e, 0x3a1d, 0x2dd6, 0x252a, 0x3945, 0x162a, 0x3b19, 0x3a53, 0x35d2, 0x3a5d, 0x3474, 0x38e9, 0x374b, 0x387c, 0x1f1a, +0x38ac, 0x3291, 0x3393, 0x3b53, 0x3169, 0x3bca, 0x2f1a, 0x3551, 0x38a3, 0x28e3, 0x369d, 0x34a1, 0x38a8, 0x34c3, 0x3841, 0x390d, 0x3b13, 0x3282, 0x3a29, 0x3a78, 0x2df3, 0x3a37, 0x35f4, 0x35a6, 0x38e8, 0x3328, 0x3beb, 0x390b, 0x32dc, 0x34dc, 0x396d, 0x3a78, +0x39ba, 0x3a06, 0x2cdd, 0x3bc3, 0x2d43, 0x2992, 0x3663, 0x3a68, 0x2c3e, 0x394e, 0x2c9f, 0x380e, 0x37f5, 0x3557, 0x2873, 0x390f, 0x39e7, 0x3939, 0x3669, 0x385c, 0x3a68, 0x32c4, 0x2b04, 0x2d6d, 0x39d3, 0x3895, 0x331d, 0x3b59, 0x3463, 0x2b6a, 0x31de, 0x3296, +0x3aae, 0x3bcd, 0x345a, 0x3897, 0x374b, 0x3bd4, 0x38a2, 0x357f, 0x3402, 0x3a0c, 0x3507, 0x3865, 0x3a54, 0x3878, 0x3859, 0x383e, 0x32b5, 0x34ea, 0x328d, 0x38b6, 0x3464, 0x2f5b, 0x35ff, 0x3817, 0x2f24, 0x3533, 0x3b21, 0x37ba, 0x3837, 0x2e34, 0x3bad, 0x34bc +}; \ No newline at end of file diff --git a/hwpe/redmule_softclear/inc/y_2D.h b/hwpe/redmule_softclear/inc/y_2D.h new file mode 100644 index 0000000..9484a10 --- /dev/null +++ b/hwpe/redmule_softclear/inc/y_2D.h @@ -0,0 +1,27 @@ + /* Header file generated by RedMulE Golden Model */ +uint16_t y_inp_2D [32][32] = { +0x3150, 0x2dc1, 0x3033, 0x31f5, 0x3bb6, 0x3bff, 0x39f9, 0x3662, 0x3720, 0x351d, 0x384b, 0x3093, 0x3b9d, 0x35ad, 0x3695, 0x3466, 0x2300, 0x3445, 0x33ae, 0x3586, 0x38a3, 0x3bdb, 0x33a2, 0x379b, 0x3a0e, 0x38b0, 0x39ba, 0x379b, 0x39d3, 0x3a51, 0x3b30, 0x3794, +0x3b76, 0x3042, 0x38cc, 0x2dfc, 0x3b1a, 0x37fb, 0x38f7, 0x3824, 0x386f, 0x38c7, 0x36ee, 0x3a9c, 0x38d3, 0x2c67, 0x3a80, 0x2f30, 0x3328, 0x3721, 0x3790, 0x34e5, 0x3a6c, 0x3643, 0x3934, 0x3034, 0x38d4, 0x362e, 0x3b4b, 0x3408, 0x30c2, 0x370e, 0x3b31, 0x3b16, +0x3b6b, 0x39d4, 0x339c, 0x381e, 0x313e, 0x3671, 0x3ae2, 0x3479, 0x3940, 0x342d, 0x3925, 0x370a, 0x35d8, 0x2dad, 0x3888, 0x24b9, 0x375d, 0x34bd, 0x3243, 0x2ebb, 0x3970, 0x3a21, 0x3a07, 0x3877, 0x3888, 0x3569, 0x372d, 0x2ac1, 0x331e, 0x384d, 0x3996, 0x34a4, +0x35c1, 0x33a9, 0x21ed, 0x3a42, 0x388d, 0x34e4, 0x33c3, 0x34f9, 0x3a7b, 0x33fb, 0x2cdd, 0x3b0e, 0x333b, 0x3973, 0x34fc, 0x3771, 0x32ea, 0x2de4, 0x31a8, 0x3946, 0x3657, 0x3a4e, 0x36f6, 0x2829, 0x3ba2, 0x3bdc, 0x3bb3, 0x306c, 0x398d, 0x3a1f, 0x3991, 0x3846, +0x3547, 0x3292, 0x2e85, 0x31ed, 0x3979, 0x3a90, 0x28a4, 0x3bed, 0x36d8, 0x340e, 0x3b6a, 0x3ab6, 0x3824, 0x382b, 0x3ac3, 0x3811, 0x36d7, 0x3519, 0x3a92, 0x3a42, 0x29d1, 0x383a, 0x3a9b, 0x300e, 0x2cd3, 0x39cd, 0x3874, 0x3a07, 0x2eb1, 0x3b86, 0x3ad8, 0x3a5d, +0x3712, 0x284a, 0x38c1, 0x3bec, 0x39c0, 0x32cd, 0x3ad8, 0x3bce, 0x3817, 0x3896, 0x3aa7, 0x3870, 0x3996, 0x32cc, 0x3a4c, 0x3757, 0x3814, 0x3b65, 0x3acb, 0x376e, 0x34c0, 0x3609, 0x3bf0, 0x3b24, 0x3b29, 0x3848, 0x34b7, 0x398a, 0x220c, 0x3498, 0x3a8c, 0x3883, +0x38c4, 0x3af6, 0x3a42, 0x2dd6, 0x3147, 0x3717, 0x3a8e, 0x3af9, 0x3296, 0x38ef, 0x34fa, 0x3555, 0x3b29, 0x38de, 0x315e, 0x3773, 0x3b67, 0x3116, 0x38ec, 0x357c, 0x35d0, 0x2518, 0x3958, 0x2a03, 0x37d9, 0x3699, 0x3a1e, 0x3230, 0x3b13, 0x36d4, 0x3b2a, 0x39ad, +0x3b10, 0x351a, 0x3b97, 0x3326, 0x2b54, 0x3b7d, 0x386f, 0x373e, 0x37fa, 0x389b, 0x3b90, 0x3292, 0x3975, 0x38f3, 0x37f1, 0x3590, 0x3810, 0x2fd7, 0x3bf7, 0x3a5a, 0x3a1c, 0x34dd, 0x354c, 0x32f8, 0x3095, 0x321e, 0x39e0, 0x395c, 0x3717, 0x357f, 0x394a, 0x34b1, +0x3ba4, 0x380c, 0x3604, 0x2f50, 0x348d, 0x3828, 0x3a9f, 0x39ce, 0x32ca, 0x3906, 0x3ab2, 0x2ca5, 0x38c9, 0x362a, 0x34b2, 0x29dc, 0x3a36, 0x3052, 0x31b7, 0x3589, 0x387c, 0x3401, 0x3b22, 0x3ad6, 0x3ae8, 0x3238, 0x3494, 0x3502, 0x3717, 0x3a6c, 0x3229, 0x368c, +0x3056, 0x3a56, 0x3498, 0x39eb, 0x2864, 0x342d, 0x39e0, 0x34a1, 0x2b99, 0x3a04, 0x38ff, 0x328c, 0x34d9, 0x387d, 0x3a3c, 0x32e5, 0x39eb, 0x3984, 0x34dd, 0x38a7, 0x373f, 0x39b4, 0x3235, 0x2f58, 0x2f39, 0x3800, 0x3758, 0x3939, 0x39fc, 0x3a4b, 0x38bf, 0x30ee, +0x345e, 0x39c8, 0x3a6d, 0x3262, 0x3b81, 0x31dc, 0x3a15, 0x3bd0, 0x36af, 0x36de, 0x37d5, 0x39d7, 0x3ad3, 0x3ac1, 0x3109, 0x35ea, 0x31c6, 0x398d, 0x3987, 0x3a4a, 0x34d2, 0x2ed2, 0x35e6, 0x352c, 0x39eb, 0x3bd6, 0x3a5b, 0x39d1, 0x34aa, 0x3ade, 0x394b, 0x38a1, +0x2bed, 0x38de, 0x3811, 0x3813, 0x391a, 0x374b, 0x3829, 0x3725, 0x38f0, 0x3583, 0x3966, 0x3a7d, 0x375a, 0x38fe, 0x3696, 0x361c, 0x39a8, 0x35f0, 0x38e1, 0x3003, 0x3595, 0x316e, 0x3862, 0x3af8, 0x3af2, 0x34c8, 0x381d, 0x37d8, 0x3893, 0x3a9c, 0x3989, 0x308c, +0x30cc, 0x2538, 0x399d, 0x3919, 0x399e, 0x21cc, 0x38e9, 0x30f8, 0x3a20, 0x3b3c, 0x3990, 0x259c, 0x3143, 0x3080, 0x3967, 0x3afb, 0x3a1b, 0x3779, 0x2eeb, 0x39f3, 0x379a, 0x369c, 0x3985, 0x3a1b, 0x3ba6, 0x3a53, 0x28d5, 0x3881, 0x31d9, 0x3a34, 0x3bd9, 0x393a, +0x3601, 0x2c6e, 0x3636, 0x3298, 0x39bb, 0x3a08, 0x38db, 0x35ad, 0x3a09, 0x36a6, 0x3bc7, 0x3bac, 0x34ae, 0x3291, 0x290b, 0x3250, 0x2648, 0x333d, 0x2bf3, 0x34b1, 0x30e0, 0x351f, 0x3a74, 0x38dc, 0x3883, 0x2841, 0x35e1, 0x390d, 0x3a50, 0x3abd, 0x386d, 0x3bb7, +0x3b94, 0x36b7, 0x3a49, 0x332f, 0x3a1d, 0x354b, 0x3bab, 0x3346, 0x3417, 0x351e, 0x3b6d, 0x391a, 0x2db3, 0x3b1c, 0x3a4a, 0x37b7, 0x36cf, 0x3a56, 0x39c4, 0x3be9, 0x34f0, 0x39be, 0x3691, 0x1ba5, 0x3888, 0x3040, 0x3ae1, 0x3b9b, 0x398f, 0x3a49, 0x3a16, 0x38c0, +0x386c, 0x39ab, 0x37fa, 0x382c, 0x3a6f, 0x393f, 0x340d, 0x38ef, 0x39d1, 0x3845, 0x398f, 0x363e, 0x3687, 0x3052, 0x3a2b, 0x392c, 0x2f5c, 0x3412, 0x3a1f, 0x3b2f, 0x3bcc, 0x3a63, 0x3a89, 0x36e9, 0x3921, 0x3b80, 0x2dc0, 0x3a03, 0x3beb, 0x38d3, 0x36cb, 0x39a3, +0x3978, 0x3a88, 0x3ba4, 0x3561, 0x28c5, 0x33a0, 0x37be, 0x2c39, 0x30ee, 0x3782, 0x2c07, 0x354e, 0x3491, 0x3a92, 0x331a, 0x3b15, 0x32e1, 0x3839, 0x3afb, 0x36c2, 0x2fd0, 0x29ad, 0x3b2e, 0x39c1, 0x2a8c, 0x341a, 0x2f90, 0x395a, 0x3969, 0x37ea, 0x3a5c, 0x3b6d, +0x3971, 0x3a93, 0x304e, 0x3623, 0x3a22, 0x31ee, 0x29df, 0x2c93, 0x3a01, 0x3a62, 0x366c, 0x371d, 0x3af3, 0x2e08, 0x3ac0, 0x3642, 0x3a28, 0x368d, 0x2d3d, 0x36d9, 0x32c3, 0x373f, 0x36fe, 0x3487, 0x2c81, 0x3623, 0x3b59, 0x3a91, 0x350a, 0x34f4, 0x3b09, 0x2c25, +0x3b13, 0x325a, 0x379e, 0x3a7d, 0x34b1, 0x39d5, 0x2ba8, 0x322b, 0x3b5e, 0x37ab, 0x2e24, 0x3ba9, 0x3a3d, 0x34f7, 0x3ba1, 0x3877, 0x3071, 0x39fb, 0x3bbd, 0x3633, 0x3b36, 0x2daa, 0x3b9b, 0x3aa0, 0x395c, 0x3b8f, 0x38d5, 0x3ab0, 0x3a8f, 0x36c2, 0x3b1f, 0x3489, +0x2acc, 0x3845, 0x3715, 0x37d8, 0x3992, 0x3bff, 0x350e, 0x3ad7, 0x39b0, 0x35ac, 0x3287, 0x385f, 0x3bd4, 0x37a3, 0x3438, 0x39a5, 0x3bcf, 0x38c3, 0x34f6, 0x3ae3, 0x3b57, 0x39af, 0x35eb, 0x3bed, 0x34d4, 0x2a95, 0x3b13, 0x384e, 0x3a3b, 0x33da, 0x3bce, 0x3b99, +0x3559, 0x3335, 0x3a2e, 0x3123, 0x38db, 0x33d0, 0x3638, 0x3b17, 0x3a72, 0x3afc, 0x3936, 0x3838, 0x2b69, 0x3895, 0x3a1a, 0x3192, 0x39d5, 0x37a5, 0x2eb0, 0x2e8b, 0x329a, 0x3b90, 0x390a, 0x3a1e, 0x3847, 0x375d, 0x3873, 0x35e2, 0x3771, 0x30f5, 0x3231, 0x3bd7, +0x2bbc, 0x3ace, 0x31ad, 0x3a6b, 0x28a4, 0x3b48, 0x3ba3, 0x3a84, 0x3353, 0x39f6, 0x381f, 0x2dd6, 0x314c, 0x34af, 0x3929, 0x3921, 0x383b, 0x34b0, 0x3923, 0x32c9, 0x3ae7, 0x318f, 0x3480, 0x2ad8, 0x3042, 0x3a4c, 0x349d, 0x2c12, 0x3abb, 0x3a57, 0x3b0d, 0x3111, +0x3359, 0x3a84, 0x38f2, 0x368d, 0x2f4b, 0x3ba0, 0x395c, 0x3026, 0x3a15, 0x2a04, 0x326e, 0x3522, 0x31a2, 0x382f, 0x2ada, 0x3b7c, 0x2f80, 0x3af5, 0x2d35, 0x38fa, 0x39ab, 0x2c6d, 0x2e7a, 0x39f6, 0x31a4, 0x3a53, 0x358c, 0x3951, 0x3a4e, 0x3916, 0x2a3f, 0x3ae9, +0x3b03, 0x39f8, 0x39fe, 0x3a61, 0x39fb, 0x3704, 0x360d, 0x39a7, 0x37a9, 0x348f, 0x3a30, 0x3af5, 0x366f, 0x3b29, 0x3a6a, 0x33d5, 0x370a, 0x39cd, 0x3444, 0x3bea, 0x3b2b, 0x312e, 0x3b8e, 0x32cf, 0x3b79, 0x3302, 0x3bba, 0x3962, 0x3413, 0x37a1, 0x39e0, 0x3805 +}; \ No newline at end of file diff --git a/hwpe/redmule_softclear/inc/y_input.h b/hwpe/redmule_softclear/inc/y_input.h new file mode 100644 index 0000000..45a2375 --- /dev/null +++ b/hwpe/redmule_softclear/inc/y_input.h @@ -0,0 +1,27 @@ + /* Header file generated by RedMulE Golden Model */ +uint16_t y_inp [768] = { +0x3150, 0x2dc1, 0x3033, 0x31f5, 0x3bb6, 0x3bff, 0x39f9, 0x3662, 0x3720, 0x351d, 0x384b, 0x3093, 0x3b9d, 0x35ad, 0x3695, 0x3466, 0x2300, 0x3445, 0x33ae, 0x3586, 0x38a3, 0x3bdb, 0x33a2, 0x379b, 0x3a0e, 0x38b0, 0x39ba, 0x379b, 0x39d3, 0x3a51, 0x3b30, 0x3794, +0x3b76, 0x3042, 0x38cc, 0x2dfc, 0x3b1a, 0x37fb, 0x38f7, 0x3824, 0x386f, 0x38c7, 0x36ee, 0x3a9c, 0x38d3, 0x2c67, 0x3a80, 0x2f30, 0x3328, 0x3721, 0x3790, 0x34e5, 0x3a6c, 0x3643, 0x3934, 0x3034, 0x38d4, 0x362e, 0x3b4b, 0x3408, 0x30c2, 0x370e, 0x3b31, 0x3b16, +0x3b6b, 0x39d4, 0x339c, 0x381e, 0x313e, 0x3671, 0x3ae2, 0x3479, 0x3940, 0x342d, 0x3925, 0x370a, 0x35d8, 0x2dad, 0x3888, 0x24b9, 0x375d, 0x34bd, 0x3243, 0x2ebb, 0x3970, 0x3a21, 0x3a07, 0x3877, 0x3888, 0x3569, 0x372d, 0x2ac1, 0x331e, 0x384d, 0x3996, 0x34a4, +0x35c1, 0x33a9, 0x21ed, 0x3a42, 0x388d, 0x34e4, 0x33c3, 0x34f9, 0x3a7b, 0x33fb, 0x2cdd, 0x3b0e, 0x333b, 0x3973, 0x34fc, 0x3771, 0x32ea, 0x2de4, 0x31a8, 0x3946, 0x3657, 0x3a4e, 0x36f6, 0x2829, 0x3ba2, 0x3bdc, 0x3bb3, 0x306c, 0x398d, 0x3a1f, 0x3991, 0x3846, +0x3547, 0x3292, 0x2e85, 0x31ed, 0x3979, 0x3a90, 0x28a4, 0x3bed, 0x36d8, 0x340e, 0x3b6a, 0x3ab6, 0x3824, 0x382b, 0x3ac3, 0x3811, 0x36d7, 0x3519, 0x3a92, 0x3a42, 0x29d1, 0x383a, 0x3a9b, 0x300e, 0x2cd3, 0x39cd, 0x3874, 0x3a07, 0x2eb1, 0x3b86, 0x3ad8, 0x3a5d, +0x3712, 0x284a, 0x38c1, 0x3bec, 0x39c0, 0x32cd, 0x3ad8, 0x3bce, 0x3817, 0x3896, 0x3aa7, 0x3870, 0x3996, 0x32cc, 0x3a4c, 0x3757, 0x3814, 0x3b65, 0x3acb, 0x376e, 0x34c0, 0x3609, 0x3bf0, 0x3b24, 0x3b29, 0x3848, 0x34b7, 0x398a, 0x220c, 0x3498, 0x3a8c, 0x3883, +0x38c4, 0x3af6, 0x3a42, 0x2dd6, 0x3147, 0x3717, 0x3a8e, 0x3af9, 0x3296, 0x38ef, 0x34fa, 0x3555, 0x3b29, 0x38de, 0x315e, 0x3773, 0x3b67, 0x3116, 0x38ec, 0x357c, 0x35d0, 0x2518, 0x3958, 0x2a03, 0x37d9, 0x3699, 0x3a1e, 0x3230, 0x3b13, 0x36d4, 0x3b2a, 0x39ad, +0x3b10, 0x351a, 0x3b97, 0x3326, 0x2b54, 0x3b7d, 0x386f, 0x373e, 0x37fa, 0x389b, 0x3b90, 0x3292, 0x3975, 0x38f3, 0x37f1, 0x3590, 0x3810, 0x2fd7, 0x3bf7, 0x3a5a, 0x3a1c, 0x34dd, 0x354c, 0x32f8, 0x3095, 0x321e, 0x39e0, 0x395c, 0x3717, 0x357f, 0x394a, 0x34b1, +0x3ba4, 0x380c, 0x3604, 0x2f50, 0x348d, 0x3828, 0x3a9f, 0x39ce, 0x32ca, 0x3906, 0x3ab2, 0x2ca5, 0x38c9, 0x362a, 0x34b2, 0x29dc, 0x3a36, 0x3052, 0x31b7, 0x3589, 0x387c, 0x3401, 0x3b22, 0x3ad6, 0x3ae8, 0x3238, 0x3494, 0x3502, 0x3717, 0x3a6c, 0x3229, 0x368c, +0x3056, 0x3a56, 0x3498, 0x39eb, 0x2864, 0x342d, 0x39e0, 0x34a1, 0x2b99, 0x3a04, 0x38ff, 0x328c, 0x34d9, 0x387d, 0x3a3c, 0x32e5, 0x39eb, 0x3984, 0x34dd, 0x38a7, 0x373f, 0x39b4, 0x3235, 0x2f58, 0x2f39, 0x3800, 0x3758, 0x3939, 0x39fc, 0x3a4b, 0x38bf, 0x30ee, +0x345e, 0x39c8, 0x3a6d, 0x3262, 0x3b81, 0x31dc, 0x3a15, 0x3bd0, 0x36af, 0x36de, 0x37d5, 0x39d7, 0x3ad3, 0x3ac1, 0x3109, 0x35ea, 0x31c6, 0x398d, 0x3987, 0x3a4a, 0x34d2, 0x2ed2, 0x35e6, 0x352c, 0x39eb, 0x3bd6, 0x3a5b, 0x39d1, 0x34aa, 0x3ade, 0x394b, 0x38a1, +0x2bed, 0x38de, 0x3811, 0x3813, 0x391a, 0x374b, 0x3829, 0x3725, 0x38f0, 0x3583, 0x3966, 0x3a7d, 0x375a, 0x38fe, 0x3696, 0x361c, 0x39a8, 0x35f0, 0x38e1, 0x3003, 0x3595, 0x316e, 0x3862, 0x3af8, 0x3af2, 0x34c8, 0x381d, 0x37d8, 0x3893, 0x3a9c, 0x3989, 0x308c, +0x30cc, 0x2538, 0x399d, 0x3919, 0x399e, 0x21cc, 0x38e9, 0x30f8, 0x3a20, 0x3b3c, 0x3990, 0x259c, 0x3143, 0x3080, 0x3967, 0x3afb, 0x3a1b, 0x3779, 0x2eeb, 0x39f3, 0x379a, 0x369c, 0x3985, 0x3a1b, 0x3ba6, 0x3a53, 0x28d5, 0x3881, 0x31d9, 0x3a34, 0x3bd9, 0x393a, +0x3601, 0x2c6e, 0x3636, 0x3298, 0x39bb, 0x3a08, 0x38db, 0x35ad, 0x3a09, 0x36a6, 0x3bc7, 0x3bac, 0x34ae, 0x3291, 0x290b, 0x3250, 0x2648, 0x333d, 0x2bf3, 0x34b1, 0x30e0, 0x351f, 0x3a74, 0x38dc, 0x3883, 0x2841, 0x35e1, 0x390d, 0x3a50, 0x3abd, 0x386d, 0x3bb7, +0x3b94, 0x36b7, 0x3a49, 0x332f, 0x3a1d, 0x354b, 0x3bab, 0x3346, 0x3417, 0x351e, 0x3b6d, 0x391a, 0x2db3, 0x3b1c, 0x3a4a, 0x37b7, 0x36cf, 0x3a56, 0x39c4, 0x3be9, 0x34f0, 0x39be, 0x3691, 0x1ba5, 0x3888, 0x3040, 0x3ae1, 0x3b9b, 0x398f, 0x3a49, 0x3a16, 0x38c0, +0x386c, 0x39ab, 0x37fa, 0x382c, 0x3a6f, 0x393f, 0x340d, 0x38ef, 0x39d1, 0x3845, 0x398f, 0x363e, 0x3687, 0x3052, 0x3a2b, 0x392c, 0x2f5c, 0x3412, 0x3a1f, 0x3b2f, 0x3bcc, 0x3a63, 0x3a89, 0x36e9, 0x3921, 0x3b80, 0x2dc0, 0x3a03, 0x3beb, 0x38d3, 0x36cb, 0x39a3, +0x3978, 0x3a88, 0x3ba4, 0x3561, 0x28c5, 0x33a0, 0x37be, 0x2c39, 0x30ee, 0x3782, 0x2c07, 0x354e, 0x3491, 0x3a92, 0x331a, 0x3b15, 0x32e1, 0x3839, 0x3afb, 0x36c2, 0x2fd0, 0x29ad, 0x3b2e, 0x39c1, 0x2a8c, 0x341a, 0x2f90, 0x395a, 0x3969, 0x37ea, 0x3a5c, 0x3b6d, +0x3971, 0x3a93, 0x304e, 0x3623, 0x3a22, 0x31ee, 0x29df, 0x2c93, 0x3a01, 0x3a62, 0x366c, 0x371d, 0x3af3, 0x2e08, 0x3ac0, 0x3642, 0x3a28, 0x368d, 0x2d3d, 0x36d9, 0x32c3, 0x373f, 0x36fe, 0x3487, 0x2c81, 0x3623, 0x3b59, 0x3a91, 0x350a, 0x34f4, 0x3b09, 0x2c25, +0x3b13, 0x325a, 0x379e, 0x3a7d, 0x34b1, 0x39d5, 0x2ba8, 0x322b, 0x3b5e, 0x37ab, 0x2e24, 0x3ba9, 0x3a3d, 0x34f7, 0x3ba1, 0x3877, 0x3071, 0x39fb, 0x3bbd, 0x3633, 0x3b36, 0x2daa, 0x3b9b, 0x3aa0, 0x395c, 0x3b8f, 0x38d5, 0x3ab0, 0x3a8f, 0x36c2, 0x3b1f, 0x3489, +0x2acc, 0x3845, 0x3715, 0x37d8, 0x3992, 0x3bff, 0x350e, 0x3ad7, 0x39b0, 0x35ac, 0x3287, 0x385f, 0x3bd4, 0x37a3, 0x3438, 0x39a5, 0x3bcf, 0x38c3, 0x34f6, 0x3ae3, 0x3b57, 0x39af, 0x35eb, 0x3bed, 0x34d4, 0x2a95, 0x3b13, 0x384e, 0x3a3b, 0x33da, 0x3bce, 0x3b99, +0x3559, 0x3335, 0x3a2e, 0x3123, 0x38db, 0x33d0, 0x3638, 0x3b17, 0x3a72, 0x3afc, 0x3936, 0x3838, 0x2b69, 0x3895, 0x3a1a, 0x3192, 0x39d5, 0x37a5, 0x2eb0, 0x2e8b, 0x329a, 0x3b90, 0x390a, 0x3a1e, 0x3847, 0x375d, 0x3873, 0x35e2, 0x3771, 0x30f5, 0x3231, 0x3bd7, +0x2bbc, 0x3ace, 0x31ad, 0x3a6b, 0x28a4, 0x3b48, 0x3ba3, 0x3a84, 0x3353, 0x39f6, 0x381f, 0x2dd6, 0x314c, 0x34af, 0x3929, 0x3921, 0x383b, 0x34b0, 0x3923, 0x32c9, 0x3ae7, 0x318f, 0x3480, 0x2ad8, 0x3042, 0x3a4c, 0x349d, 0x2c12, 0x3abb, 0x3a57, 0x3b0d, 0x3111, +0x3359, 0x3a84, 0x38f2, 0x368d, 0x2f4b, 0x3ba0, 0x395c, 0x3026, 0x3a15, 0x2a04, 0x326e, 0x3522, 0x31a2, 0x382f, 0x2ada, 0x3b7c, 0x2f80, 0x3af5, 0x2d35, 0x38fa, 0x39ab, 0x2c6d, 0x2e7a, 0x39f6, 0x31a4, 0x3a53, 0x358c, 0x3951, 0x3a4e, 0x3916, 0x2a3f, 0x3ae9, +0x3b03, 0x39f8, 0x39fe, 0x3a61, 0x39fb, 0x3704, 0x360d, 0x39a7, 0x37a9, 0x348f, 0x3a30, 0x3af5, 0x366f, 0x3b29, 0x3a6a, 0x33d5, 0x370a, 0x39cd, 0x3444, 0x3bea, 0x3b2b, 0x312e, 0x3b8e, 0x32cf, 0x3b79, 0x3302, 0x3bba, 0x3962, 0x3413, 0x37a1, 0x39e0, 0x3805 +}; \ No newline at end of file diff --git a/hwpe/redmule_softclear/inc/z_2D.h b/hwpe/redmule_softclear/inc/z_2D.h new file mode 100644 index 0000000..aff808a --- /dev/null +++ b/hwpe/redmule_softclear/inc/z_2D.h @@ -0,0 +1,27 @@ + /* Header file generated by RedMulE Golden Model */ +uint16_t z_oup_2D [24][32] = { +0x4845, 0x4897, 0x4608, 0x4838, 0x4855, 0x487b, 0x4869, 0x4880, 0x46d1, 0x48b0, 0x48db, 0x483f, 0x48c9, 0x485f, 0x4881, 0x483a, 0x484b, 0x472c, 0x4762, 0x492b, 0x4822, 0x48fd, 0x488e, 0x492e, 0x483e, 0x484f, 0x49e8, 0x46d7, 0x484b, 0x489d, 0x490b, 0x47e9, +0x484f, 0x47d2, 0x44be, 0x4747, 0x47c7, 0x46c0, 0x4727, 0x48af, 0x46c5, 0x482d, 0x483d, 0x482e, 0x4897, 0x479f, 0x488b, 0x4749, 0x489a, 0x46a8, 0x46f2, 0x488b, 0x4891, 0x47e8, 0x4872, 0x483d, 0x4716, 0x46fd, 0x49b5, 0x46a0, 0x46e7, 0x47a4, 0x48a1, 0x4767, +0x4939, 0x4935, 0x4703, 0x48c1, 0x4863, 0x48bd, 0x4913, 0x48cf, 0x48b6, 0x48b8, 0x4946, 0x4920, 0x495e, 0x48e1, 0x4938, 0x48b2, 0x493a, 0x4882, 0x483b, 0x49d5, 0x4911, 0x4972, 0x496b, 0x49df, 0x48f2, 0x4888, 0x4a46, 0x4821, 0x48c1, 0x490c, 0x49b2, 0x48a3, +0x463a, 0x47b0, 0x44cb, 0x4762, 0x4765, 0x46b9, 0x466a, 0x4814, 0x4631, 0x4796, 0x4666, 0x474b, 0x4798, 0x4704, 0x4838, 0x4761, 0x47d3, 0x4590, 0x45ea, 0x48a2, 0x47f1, 0x4844, 0x484b, 0x4776, 0x47d6, 0x46d8, 0x48f3, 0x44d3, 0x46fa, 0x478d, 0x481e, 0x466e, +0x4827, 0x481e, 0x45a2, 0x4794, 0x4727, 0x4806, 0x475d, 0x48d5, 0x4708, 0x4828, 0x4862, 0x480d, 0x4895, 0x4832, 0x48bd, 0x47f1, 0x482a, 0x46a7, 0x47b1, 0x492d, 0x484d, 0x4884, 0x48dc, 0x485f, 0x476d, 0x480c, 0x48e9, 0x46d3, 0x4728, 0x4884, 0x48a0, 0x480e, +0x4862, 0x4813, 0x4675, 0x485a, 0x47e8, 0x4738, 0x4836, 0x4823, 0x46e7, 0x4821, 0x4822, 0x47b3, 0x4846, 0x4855, 0x4863, 0x4717, 0x4872, 0x47c1, 0x46d5, 0x488e, 0x47e2, 0x485f, 0x487c, 0x48b8, 0x481e, 0x4788, 0x48bd, 0x4677, 0x46c9, 0x47f8, 0x48fe, 0x47fc, +0x47a0, 0x47b2, 0x4588, 0x467e, 0x4662, 0x46c7, 0x46e8, 0x4812, 0x4536, 0x474e, 0x46c0, 0x468f, 0x481f, 0x4679, 0x46a1, 0x46e2, 0x4809, 0x4560, 0x4630, 0x47eb, 0x46b5, 0x4757, 0x4848, 0x477f, 0x46a6, 0x46d8, 0x4870, 0x459a, 0x4670, 0x4678, 0x47d2, 0x468c, +0x4762, 0x48c4, 0x46e3, 0x4791, 0x46b1, 0x486d, 0x47d0, 0x4867, 0x468d, 0x47f6, 0x48a5, 0x4756, 0x4857, 0x4854, 0x4866, 0x4838, 0x484d, 0x46ec, 0x47d2, 0x48f6, 0x484a, 0x4879, 0x4848, 0x483c, 0x471d, 0x4806, 0x48fa, 0x4730, 0x4768, 0x47b8, 0x4865, 0x46f9, +0x48a8, 0x4918, 0x46ca, 0x4867, 0x4800, 0x4862, 0x48d3, 0x4910, 0x474e, 0x4849, 0x48eb, 0x486b, 0x4966, 0x48c5, 0x48f4, 0x4830, 0x48f9, 0x4778, 0x481e, 0x499e, 0x48cf, 0x48f1, 0x4982, 0x4923, 0x487c, 0x47cf, 0x49ea, 0x4649, 0x4773, 0x495e, 0x48b2, 0x483f, +0x48a7, 0x4975, 0x4616, 0x481e, 0x481f, 0x4866, 0x48b6, 0x4864, 0x47dc, 0x4873, 0x485c, 0x487f, 0x4938, 0x491f, 0x490d, 0x48b6, 0x48f8, 0x48a1, 0x4859, 0x492d, 0x489c, 0x4915, 0x4899, 0x4887, 0x486c, 0x4859, 0x49ca, 0x471e, 0x4867, 0x4918, 0x48d3, 0x4827, +0x488b, 0x4998, 0x4704, 0x481d, 0x48b8, 0x4880, 0x4876, 0x4944, 0x470c, 0x48f2, 0x48b9, 0x489b, 0x4956, 0x48e5, 0x48d6, 0x48a5, 0x48dc, 0x4856, 0x484e, 0x49ab, 0x48e0, 0x490e, 0x48dd, 0x4945, 0x488b, 0x48dd, 0x4a32, 0x47ea, 0x4835, 0x4911, 0x4965, 0x4819, +0x460e, 0x481e, 0x452c, 0x4673, 0x475c, 0x4717, 0x46f6, 0x46d0, 0x4696, 0x46bc, 0x4726, 0x481e, 0x4763, 0x46ea, 0x46fe, 0x4758, 0x478b, 0x4627, 0x4704, 0x483f, 0x46ad, 0x47b1, 0x4792, 0x4816, 0x46f2, 0x4684, 0x4827, 0x45a8, 0x472f, 0x47a4, 0x4797, 0x462b, +0x483f, 0x48ab, 0x468f, 0x4863, 0x485a, 0x4766, 0x481d, 0x48cb, 0x47dc, 0x4903, 0x48fc, 0x4830, 0x48cc, 0x483e, 0x48ab, 0x4864, 0x4966, 0x4763, 0x4794, 0x499d, 0x488e, 0x488b, 0x48dc, 0x4960, 0x4854, 0x484c, 0x499c, 0x474c, 0x4826, 0x48bc, 0x4949, 0x4883, +0x489d, 0x4905, 0x4718, 0x481e, 0x48e3, 0x48f4, 0x48c1, 0x4904, 0x47e8, 0x48b3, 0x4892, 0x48d4, 0x48ff, 0x4894, 0x48d5, 0x4886, 0x48fa, 0x4803, 0x47d2, 0x492e, 0x4870, 0x48b2, 0x48e5, 0x492b, 0x487b, 0x4785, 0x49e3, 0x471d, 0x4837, 0x48bf, 0x489b, 0x48c4, +0x475c, 0x4871, 0x464a, 0x4811, 0x47af, 0x471c, 0x4817, 0x4817, 0x463b, 0x484e, 0x477f, 0x464f, 0x4704, 0x487c, 0x47a3, 0x4725, 0x4853, 0x462a, 0x465a, 0x4860, 0x4736, 0x4880, 0x47e1, 0x482b, 0x4811, 0x46c0, 0x48dc, 0x475d, 0x4668, 0x4806, 0x4893, 0x46f4, +0x4858, 0x4959, 0x463d, 0x487b, 0x480f, 0x484e, 0x48c0, 0x48a6, 0x4847, 0x4894, 0x48a0, 0x484a, 0x491e, 0x48f4, 0x48fc, 0x48b5, 0x48ce, 0x47d2, 0x47db, 0x497f, 0x4955, 0x4939, 0x48a7, 0x48ce, 0x4890, 0x4884, 0x49d6, 0x4763, 0x486e, 0x4922, 0x48f4, 0x48c3, +0x47ec, 0x491c, 0x4698, 0x4783, 0x4715, 0x4754, 0x4745, 0x4752, 0x472f, 0x4832, 0x4817, 0x4809, 0x47f8, 0x48c3, 0x47e6, 0x4800, 0x48b6, 0x4730, 0x480a, 0x48cb, 0x479e, 0x488e, 0x47c2, 0x488e, 0x472f, 0x47ee, 0x489d, 0x4744, 0x4755, 0x4851, 0x4846, 0x47d3, +0x4838, 0x48a0, 0x4634, 0x4762, 0x4786, 0x4806, 0x47e3, 0x482d, 0x4726, 0x486c, 0x47b7, 0x4803, 0x48ac, 0x4814, 0x48e0, 0x4839, 0x4827, 0x4750, 0x46f2, 0x48c5, 0x483f, 0x4886, 0x48ad, 0x4856, 0x47e8, 0x47a9, 0x4937, 0x4743, 0x46d0, 0x481f, 0x484c, 0x4804, +0x47fd, 0x481f, 0x456d, 0x4813, 0x474d, 0x4807, 0x4688, 0x480e, 0x46e8, 0x4810, 0x469f, 0x4799, 0x4853, 0x478f, 0x47f2, 0x4824, 0x47d0, 0x471f, 0x46da, 0x485f, 0x4813, 0x481c, 0x482e, 0x4863, 0x4786, 0x480b, 0x48c9, 0x46b8, 0x475a, 0x46e2, 0x4852, 0x46c5, +0x45af, 0x4802, 0x4466, 0x46c2, 0x465d, 0x4743, 0x46b7, 0x47ba, 0x4636, 0x46c3, 0x4677, 0x4784, 0x485a, 0x47c2, 0x46dc, 0x46ac, 0x47de, 0x460e, 0x465f, 0x4834, 0x47f4, 0x4769, 0x46fc, 0x4810, 0x45fd, 0x45ea, 0x48d0, 0x45b5, 0x4704, 0x4783, 0x4830, 0x46c4, +0x4759, 0x47c7, 0x453d, 0x45b0, 0x4741, 0x4702, 0x4736, 0x4793, 0x461b, 0x47ba, 0x470b, 0x46dd, 0x4657, 0x470b, 0x470d, 0x4710, 0x486c, 0x468f, 0x45c3, 0x46ba, 0x479d, 0x483b, 0x46c9, 0x4774, 0x46a9, 0x46a7, 0x4833, 0x4606, 0x4690, 0x46a9, 0x46f5, 0x46a7, +0x47ac, 0x48bb, 0x452c, 0x4803, 0x470f, 0x4824, 0x47d5, 0x48cb, 0x4707, 0x484a, 0x4832, 0x4797, 0x4851, 0x482c, 0x487a, 0x4877, 0x4891, 0x465d, 0x47f4, 0x48ce, 0x4898, 0x4899, 0x484e, 0x486a, 0x47ac, 0x47f0, 0x493e, 0x4611, 0x47e2, 0x489e, 0x488c, 0x46af, +0x4665, 0x4836, 0x45e4, 0x46b6, 0x46a1, 0x46b9, 0x46c8, 0x46dd, 0x4658, 0x474b, 0x467b, 0x4777, 0x4769, 0x4798, 0x4785, 0x475e, 0x472a, 0x4656, 0x45fb, 0x4881, 0x46fc, 0x472d, 0x476e, 0x47a3, 0x465d, 0x46ca, 0x4855, 0x4500, 0x464f, 0x479a, 0x46c3, 0x4738, +0x481e, 0x486c, 0x4659, 0x4801, 0x4756, 0x477a, 0x47d5, 0x487b, 0x4706, 0x4808, 0x484f, 0x4838, 0x4870, 0x4863, 0x48d3, 0x4806, 0x4865, 0x4771, 0x46be, 0x494c, 0x4915, 0x484c, 0x4900, 0x4862, 0x481a, 0x46e8, 0x4974, 0x46a0, 0x4775, 0x483d, 0x487c, 0x480e +}; \ No newline at end of file diff --git a/hwpe/redmule_softclear/inc/z_output.h b/hwpe/redmule_softclear/inc/z_output.h new file mode 100644 index 0000000..96c7e5f --- /dev/null +++ b/hwpe/redmule_softclear/inc/z_output.h @@ -0,0 +1,27 @@ + /* Header file generated by RedMulE Golden Model */ +uint16_t z_oup [768] = { +0x4845, 0x4897, 0x4608, 0x4838, 0x4855, 0x487b, 0x4869, 0x4880, 0x46d1, 0x48b0, 0x48db, 0x483f, 0x48c9, 0x485f, 0x4881, 0x483a, 0x484b, 0x472c, 0x4762, 0x492b, 0x4822, 0x48fd, 0x488e, 0x492e, 0x483e, 0x484f, 0x49e8, 0x46d7, 0x484b, 0x489d, 0x490b, 0x47e9, +0x484f, 0x47d2, 0x44be, 0x4747, 0x47c7, 0x46c0, 0x4727, 0x48af, 0x46c5, 0x482d, 0x483d, 0x482e, 0x4897, 0x479f, 0x488b, 0x4749, 0x489a, 0x46a8, 0x46f2, 0x488b, 0x4891, 0x47e8, 0x4872, 0x483d, 0x4716, 0x46fd, 0x49b5, 0x46a0, 0x46e7, 0x47a4, 0x48a1, 0x4767, +0x4939, 0x4935, 0x4703, 0x48c1, 0x4863, 0x48bd, 0x4913, 0x48cf, 0x48b6, 0x48b8, 0x4946, 0x4920, 0x495e, 0x48e1, 0x4938, 0x48b2, 0x493a, 0x4882, 0x483b, 0x49d5, 0x4911, 0x4972, 0x496b, 0x49df, 0x48f2, 0x4888, 0x4a46, 0x4821, 0x48c1, 0x490c, 0x49b2, 0x48a3, +0x463a, 0x47b0, 0x44cb, 0x4762, 0x4765, 0x46b9, 0x466a, 0x4814, 0x4631, 0x4796, 0x4666, 0x474b, 0x4798, 0x4704, 0x4838, 0x4761, 0x47d3, 0x4590, 0x45ea, 0x48a2, 0x47f1, 0x4844, 0x484b, 0x4776, 0x47d6, 0x46d8, 0x48f3, 0x44d3, 0x46fa, 0x478d, 0x481e, 0x466e, +0x4827, 0x481e, 0x45a2, 0x4794, 0x4727, 0x4806, 0x475d, 0x48d5, 0x4708, 0x4828, 0x4862, 0x480d, 0x4895, 0x4832, 0x48bd, 0x47f1, 0x482a, 0x46a7, 0x47b1, 0x492d, 0x484d, 0x4884, 0x48dc, 0x485f, 0x476d, 0x480c, 0x48e9, 0x46d3, 0x4728, 0x4884, 0x48a0, 0x480e, +0x4862, 0x4813, 0x4675, 0x485a, 0x47e8, 0x4738, 0x4836, 0x4823, 0x46e7, 0x4821, 0x4822, 0x47b3, 0x4846, 0x4855, 0x4863, 0x4717, 0x4872, 0x47c1, 0x46d5, 0x488e, 0x47e2, 0x485f, 0x487c, 0x48b8, 0x481e, 0x4788, 0x48bd, 0x4677, 0x46c9, 0x47f8, 0x48fe, 0x47fc, +0x47a0, 0x47b2, 0x4588, 0x467e, 0x4662, 0x46c7, 0x46e8, 0x4812, 0x4536, 0x474e, 0x46c0, 0x468f, 0x481f, 0x4679, 0x46a1, 0x46e2, 0x4809, 0x4560, 0x4630, 0x47eb, 0x46b5, 0x4757, 0x4848, 0x477f, 0x46a6, 0x46d8, 0x4870, 0x459a, 0x4670, 0x4678, 0x47d2, 0x468c, +0x4762, 0x48c4, 0x46e3, 0x4791, 0x46b1, 0x486d, 0x47d0, 0x4867, 0x468d, 0x47f6, 0x48a5, 0x4756, 0x4857, 0x4854, 0x4866, 0x4838, 0x484d, 0x46ec, 0x47d2, 0x48f6, 0x484a, 0x4879, 0x4848, 0x483c, 0x471d, 0x4806, 0x48fa, 0x4730, 0x4768, 0x47b8, 0x4865, 0x46f9, +0x48a8, 0x4918, 0x46ca, 0x4867, 0x4800, 0x4862, 0x48d3, 0x4910, 0x474e, 0x4849, 0x48eb, 0x486b, 0x4966, 0x48c5, 0x48f4, 0x4830, 0x48f9, 0x4778, 0x481e, 0x499e, 0x48cf, 0x48f1, 0x4982, 0x4923, 0x487c, 0x47cf, 0x49ea, 0x4649, 0x4773, 0x495e, 0x48b2, 0x483f, +0x48a7, 0x4975, 0x4616, 0x481e, 0x481f, 0x4866, 0x48b6, 0x4864, 0x47dc, 0x4873, 0x485c, 0x487f, 0x4938, 0x491f, 0x490d, 0x48b6, 0x48f8, 0x48a1, 0x4859, 0x492d, 0x489c, 0x4915, 0x4899, 0x4887, 0x486c, 0x4859, 0x49ca, 0x471e, 0x4867, 0x4918, 0x48d3, 0x4827, +0x488b, 0x4998, 0x4704, 0x481d, 0x48b8, 0x4880, 0x4876, 0x4944, 0x470c, 0x48f2, 0x48b9, 0x489b, 0x4956, 0x48e5, 0x48d6, 0x48a5, 0x48dc, 0x4856, 0x484e, 0x49ab, 0x48e0, 0x490e, 0x48dd, 0x4945, 0x488b, 0x48dd, 0x4a32, 0x47ea, 0x4835, 0x4911, 0x4965, 0x4819, +0x460e, 0x481e, 0x452c, 0x4673, 0x475c, 0x4717, 0x46f6, 0x46d0, 0x4696, 0x46bc, 0x4726, 0x481e, 0x4763, 0x46ea, 0x46fe, 0x4758, 0x478b, 0x4627, 0x4704, 0x483f, 0x46ad, 0x47b1, 0x4792, 0x4816, 0x46f2, 0x4684, 0x4827, 0x45a8, 0x472f, 0x47a4, 0x4797, 0x462b, +0x483f, 0x48ab, 0x468f, 0x4863, 0x485a, 0x4766, 0x481d, 0x48cb, 0x47dc, 0x4903, 0x48fc, 0x4830, 0x48cc, 0x483e, 0x48ab, 0x4864, 0x4966, 0x4763, 0x4794, 0x499d, 0x488e, 0x488b, 0x48dc, 0x4960, 0x4854, 0x484c, 0x499c, 0x474c, 0x4826, 0x48bc, 0x4949, 0x4883, +0x489d, 0x4905, 0x4718, 0x481e, 0x48e3, 0x48f4, 0x48c1, 0x4904, 0x47e8, 0x48b3, 0x4892, 0x48d4, 0x48ff, 0x4894, 0x48d5, 0x4886, 0x48fa, 0x4803, 0x47d2, 0x492e, 0x4870, 0x48b2, 0x48e5, 0x492b, 0x487b, 0x4785, 0x49e3, 0x471d, 0x4837, 0x48bf, 0x489b, 0x48c4, +0x475c, 0x4871, 0x464a, 0x4811, 0x47af, 0x471c, 0x4817, 0x4817, 0x463b, 0x484e, 0x477f, 0x464f, 0x4704, 0x487c, 0x47a3, 0x4725, 0x4853, 0x462a, 0x465a, 0x4860, 0x4736, 0x4880, 0x47e1, 0x482b, 0x4811, 0x46c0, 0x48dc, 0x475d, 0x4668, 0x4806, 0x4893, 0x46f4, +0x4858, 0x4959, 0x463d, 0x487b, 0x480f, 0x484e, 0x48c0, 0x48a6, 0x4847, 0x4894, 0x48a0, 0x484a, 0x491e, 0x48f4, 0x48fc, 0x48b5, 0x48ce, 0x47d2, 0x47db, 0x497f, 0x4955, 0x4939, 0x48a7, 0x48ce, 0x4890, 0x4884, 0x49d6, 0x4763, 0x486e, 0x4922, 0x48f4, 0x48c3, +0x47ec, 0x491c, 0x4698, 0x4783, 0x4715, 0x4754, 0x4745, 0x4752, 0x472f, 0x4832, 0x4817, 0x4809, 0x47f8, 0x48c3, 0x47e6, 0x4800, 0x48b6, 0x4730, 0x480a, 0x48cb, 0x479e, 0x488e, 0x47c2, 0x488e, 0x472f, 0x47ee, 0x489d, 0x4744, 0x4755, 0x4851, 0x4846, 0x47d3, +0x4838, 0x48a0, 0x4634, 0x4762, 0x4786, 0x4806, 0x47e3, 0x482d, 0x4726, 0x486c, 0x47b7, 0x4803, 0x48ac, 0x4814, 0x48e0, 0x4839, 0x4827, 0x4750, 0x46f2, 0x48c5, 0x483f, 0x4886, 0x48ad, 0x4856, 0x47e8, 0x47a9, 0x4937, 0x4743, 0x46d0, 0x481f, 0x484c, 0x4804, +0x47fd, 0x481f, 0x456d, 0x4813, 0x474d, 0x4807, 0x4688, 0x480e, 0x46e8, 0x4810, 0x469f, 0x4799, 0x4853, 0x478f, 0x47f2, 0x4824, 0x47d0, 0x471f, 0x46da, 0x485f, 0x4813, 0x481c, 0x482e, 0x4863, 0x4786, 0x480b, 0x48c9, 0x46b8, 0x475a, 0x46e2, 0x4852, 0x46c5, +0x45af, 0x4802, 0x4466, 0x46c2, 0x465d, 0x4743, 0x46b7, 0x47ba, 0x4636, 0x46c3, 0x4677, 0x4784, 0x485a, 0x47c2, 0x46dc, 0x46ac, 0x47de, 0x460e, 0x465f, 0x4834, 0x47f4, 0x4769, 0x46fc, 0x4810, 0x45fd, 0x45ea, 0x48d0, 0x45b5, 0x4704, 0x4783, 0x4830, 0x46c4, +0x4759, 0x47c7, 0x453d, 0x45b0, 0x4741, 0x4702, 0x4736, 0x4793, 0x461b, 0x47ba, 0x470b, 0x46dd, 0x4657, 0x470b, 0x470d, 0x4710, 0x486c, 0x468f, 0x45c3, 0x46ba, 0x479d, 0x483b, 0x46c9, 0x4774, 0x46a9, 0x46a7, 0x4833, 0x4606, 0x4690, 0x46a9, 0x46f5, 0x46a7, +0x47ac, 0x48bb, 0x452c, 0x4803, 0x470f, 0x4824, 0x47d5, 0x48cb, 0x4707, 0x484a, 0x4832, 0x4797, 0x4851, 0x482c, 0x487a, 0x4877, 0x4891, 0x465d, 0x47f4, 0x48ce, 0x4898, 0x4899, 0x484e, 0x486a, 0x47ac, 0x47f0, 0x493e, 0x4611, 0x47e2, 0x489e, 0x488c, 0x46af, +0x4665, 0x4836, 0x45e4, 0x46b6, 0x46a1, 0x46b9, 0x46c8, 0x46dd, 0x4658, 0x474b, 0x467b, 0x4777, 0x4769, 0x4798, 0x4785, 0x475e, 0x472a, 0x4656, 0x45fb, 0x4881, 0x46fc, 0x472d, 0x476e, 0x47a3, 0x465d, 0x46ca, 0x4855, 0x4500, 0x464f, 0x479a, 0x46c3, 0x4738, +0x481e, 0x486c, 0x4659, 0x4801, 0x4756, 0x477a, 0x47d5, 0x487b, 0x4706, 0x4808, 0x484f, 0x4838, 0x4870, 0x4863, 0x48d3, 0x4806, 0x4865, 0x4771, 0x46be, 0x494c, 0x4915, 0x484c, 0x4900, 0x4862, 0x481a, 0x46e8, 0x4974, 0x46a0, 0x4775, 0x483d, 0x487c, 0x480e +}; \ No newline at end of file diff --git a/hwpe/redmule_softclear/pulp_inject_fault.tcl b/hwpe/redmule_softclear/pulp_inject_fault.tcl new file mode 100644 index 0000000..61ccadf --- /dev/null +++ b/hwpe/redmule_softclear/pulp_inject_fault.tcl @@ -0,0 +1,53 @@ +# Copyright 2023 ETH Zurich and University of Bologna. +# Solderpad Hardware License, Version 0.51, see LICENSE for details. +# SPDX-License-Identifier: SHL-0.51 +# +# Author: Michael Rogenmoser (michaero@iis.ee.ethz.ch) + +transcript quietly +if {! [info exists ::env(VSIM_PATH)]} {error "Define VSIM_PATH"} +set utils_base_path [file join $::env(VSIM_PATH) scripts fault_injection_utils] +set script_base_path [file join $::env(VSIM_PATH) fault_injection_sim scripts] + +set verbosity 2 +set log_injections 1 +# Easy way to generate a variable seed +# set seed [clock seconds] +# Default value +set seed 12345 +set print_statistics 1 + +set inject_start_time 550000000000ps +set inject_stop_time 750000000000ps +set injection_clock "pulp_cluster_tb/cluster_i/clk_i" +set injection_clock_trigger 0 +set fault_period 150 +set rand_initial_injection_phase 0 +# max_num set to 0 means until stop_time +set max_num_fault_inject 0 +set signal_fault_duration 20ns +set register_fault_duration 0ns + +set allow_multi_bit_upset $::env(MULTI_BIT_UPSET) +set use_bitwidth_as_weight 0 +set check_core_output_modification 0 +set check_core_next_state_modification 0 +set reg_to_sig_ratio 1 + +source [file join $utils_base_path pulp_extract_nets.tcl] + +set inject_signals_netlist [] +set inject_register_netlist [] +set output_netlist [] +set next_state_netlist [] +set assertion_disable_list [] + +# for {set idx 0} {$idx < 12} {incr idx} { +# set inject_signals_netlist [list {*}$inject_signals_netlist {*}[get_all_core_nets $idx]] +# set output_netlist [list {*}$output_netlist {*}[get_core_output_nets $idx]] +# } + +set inject_register_netlist [list {*}$inject_register_netlist {*}[get_memory_slice {0 16} {256 336}]] + +source [file join $script_base_path inject_fault.tcl] + diff --git a/hwpe/redmule_softclear/redmule.c b/hwpe/redmule_softclear/redmule.c new file mode 100644 index 0000000..a80171c --- /dev/null +++ b/hwpe/redmule_softclear/redmule.c @@ -0,0 +1,185 @@ +/* + * Copyright (C) 2022-2023 ETH Zurich and University of Bologna + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * SPDX-License-Identifier: Apache-2.0 + * + * Author: Yvan Tortorella + * + * RedMulE SW test + */ + +#include +#include "stdio.h" +#include "archi_redmule.h" +#include "hal_redmule.h" +#include "pulp.h" + +static inline void wait_cycles(const unsigned cycles) +{ + /** + * Each iteration of the loop below will take four cycles on RI5CY (one for + * `addi` and three for the taken `bnez`; if the instructions hit in the + * I$). Thus, we let `i` count the number of remaining loop iterations and + * initialize it to a fourth of the number of clock cyles. With this + * initialization, we must not enter the loop if the number of clock cycles + * is less than four, because this will cause an underflow on the first + * subtraction. + */ + register unsigned threshold; + asm volatile("li %[threshold], 4" : [threshold] "=r" (threshold)); + asm volatile goto("ble %[cycles], %[threshold], %l2" + : /* no output */ + : [cycles] "r" (cycles), [threshold] "r" (threshold) + : /* no clobbers */ + : __wait_cycles_end); + register unsigned i = cycles >> 2; +__wait_cycles_start: + // Decrement `i` and loop if it is not yet zero. + asm volatile("addi %0, %0, -1" : "+r" (i)); + asm volatile goto("bnez %0, %l1" + : /* no output */ + : "r" (i) + : /* no clobbers */ + : __wait_cycles_start); +__wait_cycles_end: + return; +} + +int main() { + + volatile int errors = 0; + unsigned int cluster_id = rt_cluster_id(); + unsigned int intc_data_correctable_cnt, redmule_data_correctable_cnt = 0; + unsigned int intc_meta_correctable_cnt = 0; + unsigned int intc_data_uncorrectable_cnt, redmule_data_uncorrectable_cnt = 0; + unsigned int intc_meta_uncorrectable_cnt = 0; + + if(get_core_id() == 0){ + + uint16_t m_size = M_SIZE; + uint16_t n_size = N_SIZE; + uint16_t k_size = K_SIZE; + + uint8_t *x_ext = x_inp; + uint8_t *w_ext = w_inp; + uint8_t *y_ext = y_inp; + uint8_t *z_ext = z_oup; + + uint8_t volatile *x = (uint8_t volatile *) pi_l1_malloc(0, (2*m_size*n_size)); + uint8_t volatile *w = (uint8_t volatile *) pi_l1_malloc(0, (2*n_size*k_size)); + uint8_t volatile *y = (uint8_t volatile *) pi_l1_malloc(0, (2*m_size*k_size)); + uint8_t volatile *z = (uint8_t volatile *) pi_l1_malloc(0, (2*m_size*k_size)); + + #ifdef USE_DMA + volatile unsigned int dma_id = 0; + dma_id = mchan_alloc(); + mchan_transfer((unsigned int) 2*(2*m_size*n_size), + (unsigned int) x_ext, + (unsigned int) x ); + mchan_barrier(dma_id); + mchan_free(dma_id); + + dma_id = mchan_alloc(); + mchan_transfer((unsigned int) 2*(2*n_size*k_size), + (unsigned int) w_ext, + (unsigned int) w ); + mchan_barrier(dma_id); + mchan_free(dma_id); + + dma_id = mchan_alloc(); + mchan_transfer((unsigned int) 2*(2*m_size*k_size), + (unsigned int) y_ext, + (unsigned int) y ); + mchan_barrier(dma_id); + #else + generate_test_data16((int) x, (int) w, (int) y, (int) m_size, (int) n_size, (int) k_size); + #endif + + int gold_sum = 0, check_sum = 0; + int i,j; + + int offload_id_tmp, offload_id; + + // Enable RedMulE + hwpe_cg_enable(); + asm volatile("": : :"memory"); + + hwpe_soft_clear(); + asm volatile("": : :"memory"); + + volatile int job_id = -1; + + // job 0 + job_id = hwpe_wait_acquire(); + asm volatile("": : :"memory"); + redmule_x_add_set ((unsigned int) x); + redmule_w_add_set ((unsigned int) w); + redmule_y_add_set ((unsigned int) y); + redmule_z_add_set ((unsigned int) z); + redmule_cfg (m_size, n_size, k_size, gemm_ops); + asm volatile("": : :"memory"); + hwpe_trigger_job(); + asm volatile("": : :"memory"); + + // job 1 + job_id = hwpe_wait_acquire(); + asm volatile("": : :"memory"); + redmule_x_add_set ((unsigned int) x); + redmule_w_add_set ((unsigned int) w); + redmule_y_add_set ((unsigned int) y); + redmule_z_add_set ((unsigned int) z); + redmule_cfg (m_size, n_size, k_size, gemm_ops); + asm volatile("": : :"memory"); + hwpe_trigger_job(); + asm volatile("": : :"memory"); + + // soft-clear execution + wait_cycles(20); + hwpe_soft_clear(); + wait_cycles(100); + + // job 0 + job_id = hwpe_wait_acquire(); + asm volatile("": : :"memory"); + redmule_x_add_set ((unsigned int) x); + redmule_w_add_set ((unsigned int) w); + redmule_y_add_set ((unsigned int) y); + redmule_z_add_set ((unsigned int) z); + redmule_cfg (m_size, n_size, k_size, gemm_ops); + asm volatile("": : :"memory"); + hwpe_trigger_job(); + asm volatile("": : :"memory"); + + // Wait for end of computation + redmule_evt_wait(); + + // Disable RedMulE + hwpe_cg_disable(); + + errors = redmule_compare16((int) z, (int) m_size, (int) k_size); + + *(int *) 0x1A1040A0 = errors; + + if(job_id != 0) { + printf ("Terminated test with wrong job id!!! and %d errors. See you!\n", errors); + errors++; + } + else { + printf ("Terminated test with OK job id and %d errors. See you!\n", errors); + } + + } + synch_barrier(); + return (errors != 0); +} From 53d7aee16d8670e1e0ee0cd75fd9688674c2de97 Mon Sep 17 00:00:00 2001 From: Andrea Belano Date: Mon, 9 Dec 2024 16:15:02 +0100 Subject: [PATCH 38/56] Remove hardcoded addresses in softex and redmule tests --- hwpe/redmule/archi_redmule.h | 8 ++++---- hwpe/redmule_256iter/archi_redmule.h | 8 ++++---- hwpe/redmule_softclear/archi_redmule.h | 8 ++++---- hwpe/softex/archi_softex.h | 10 +++++----- 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/hwpe/redmule/archi_redmule.h b/hwpe/redmule/archi_redmule.h index 662e1e6..40eceee 100644 --- a/hwpe/redmule/archi_redmule.h +++ b/hwpe/redmule/archi_redmule.h @@ -63,10 +63,10 @@ */ /* PULP Cluster Archi defines */ -#define ARCHI_CLUST_CTRL_BASE 0x50200000 -#define ARCHI_CLUST_HWPE_BASE 0x50201000 -#define DMA_COMMAND_QUEUE 0x50204400 -#define DMA_STATUS_REGISTER 0x50204404 +#define ARCHI_CLUST_CTRL_BASE ARCHI_CLUSTER_CTRL_ADDR +#define ARCHI_CLUST_HWPE_BASE ARCHI_HWCE_ADDR +#define DMA_COMMAND_QUEUE ARCHI_MCHAN_DEMUX_ADDR +#define DMA_STATUS_REGISTER (ARCHI_MCHAN_DEMUX_ADDR + 4) #define ARCHI_CL_HWPE_EVT0 12 #define ARCHI_CL_HWPE_EVT1 13 #define FC_DMA_EVENT 8 diff --git a/hwpe/redmule_256iter/archi_redmule.h b/hwpe/redmule_256iter/archi_redmule.h index 662e1e6..40eceee 100644 --- a/hwpe/redmule_256iter/archi_redmule.h +++ b/hwpe/redmule_256iter/archi_redmule.h @@ -63,10 +63,10 @@ */ /* PULP Cluster Archi defines */ -#define ARCHI_CLUST_CTRL_BASE 0x50200000 -#define ARCHI_CLUST_HWPE_BASE 0x50201000 -#define DMA_COMMAND_QUEUE 0x50204400 -#define DMA_STATUS_REGISTER 0x50204404 +#define ARCHI_CLUST_CTRL_BASE ARCHI_CLUSTER_CTRL_ADDR +#define ARCHI_CLUST_HWPE_BASE ARCHI_HWCE_ADDR +#define DMA_COMMAND_QUEUE ARCHI_MCHAN_DEMUX_ADDR +#define DMA_STATUS_REGISTER (ARCHI_MCHAN_DEMUX_ADDR + 4) #define ARCHI_CL_HWPE_EVT0 12 #define ARCHI_CL_HWPE_EVT1 13 #define FC_DMA_EVENT 8 diff --git a/hwpe/redmule_softclear/archi_redmule.h b/hwpe/redmule_softclear/archi_redmule.h index 662e1e6..40eceee 100644 --- a/hwpe/redmule_softclear/archi_redmule.h +++ b/hwpe/redmule_softclear/archi_redmule.h @@ -63,10 +63,10 @@ */ /* PULP Cluster Archi defines */ -#define ARCHI_CLUST_CTRL_BASE 0x50200000 -#define ARCHI_CLUST_HWPE_BASE 0x50201000 -#define DMA_COMMAND_QUEUE 0x50204400 -#define DMA_STATUS_REGISTER 0x50204404 +#define ARCHI_CLUST_CTRL_BASE ARCHI_CLUSTER_CTRL_ADDR +#define ARCHI_CLUST_HWPE_BASE ARCHI_HWCE_ADDR +#define DMA_COMMAND_QUEUE ARCHI_MCHAN_DEMUX_ADDR +#define DMA_STATUS_REGISTER (ARCHI_MCHAN_DEMUX_ADDR + 4) #define ARCHI_CL_HWPE_EVT0 12 #define ARCHI_CL_HWPE_EVT1 13 #define FC_DMA_EVENT 8 diff --git a/hwpe/softex/archi_softex.h b/hwpe/softex/archi_softex.h index 70727a2..8d08543 100644 --- a/hwpe/softex/archi_softex.h +++ b/hwpe/softex/archi_softex.h @@ -24,10 +24,10 @@ #define DATA_WIDTH 256 /* PULP Cluster Archi defines */ -#define ARCHI_CLUST_CTRL_BASE 0x50200000 -#define ARCHI_CLUST_HWPE_BASE 0x50201000 -#define DMA_COMMAND_QUEUE 0x50204400 -#define DMA_STATUS_REGISTER 0x50204404 +#define ARCHI_CLUST_CTRL_BASE ARCHI_CLUSTER_CTRL_ADDR +#define ARCHI_CLUST_HWPE_BASE ARCHI_HWCE_ADDR +#define DMA_COMMAND_QUEUE ARCHI_MCHAN_DEMUX_ADDR +#define DMA_STATUS_REGISTER (ARCHI_MCHAN_DEMUX_ADDR + 4) #define ARCHI_CL_HWPE_EVT0 12 #define ARCHI_CL_HWPE_EVT1 13 #define FC_DMA_EVENT 8 @@ -37,7 +37,7 @@ #define __builtin_bitinsert(a,b,c,d) (a | (((b << (32-c)) >> (32-c)) << d)) #define SOFTEX_BASE_ADD ARCHI_CLUST_HWPE_BASE -#define SOFTEX_CG_EN_MSK 0x4000 +#define SOFTEX_CG_EN_MSK 0x4000 // Commands #define SOFTEX_TRIGGER 0x00 #define SOFTEX_ACQUIRE 0x04 From c8ac022c1be105ca6c602b4bb7b9dc0412beaad4 Mon Sep 17 00:00:00 2001 From: Andrea Belano Date: Tue, 10 Dec 2024 15:54:09 +0100 Subject: [PATCH 39/56] Move reliability tests to their own directory --- astral/dmr_matmul | 1 + astral/ecc_test | 1 + {astral => reliability_tests}/dmr_matmul/Makefile | 0 {astral => reliability_tests}/dmr_matmul/dmr_matmul.c | 2 +- {astral => reliability_tests}/dmr_matmul/matmul.h | 0 {astral => reliability_tests}/dmr_matmul/pulp_inject_fault.tcl | 0 {astral => reliability_tests}/ecc_test/Makefile | 0 {astral => reliability_tests}/ecc_test/ecc_test.c | 0 {astral => reliability_tests}/ecc_test/pulp_inject_fault.tcl | 0 9 files changed, 3 insertions(+), 1 deletion(-) create mode 120000 astral/dmr_matmul create mode 120000 astral/ecc_test rename {astral => reliability_tests}/dmr_matmul/Makefile (100%) rename {astral => reliability_tests}/dmr_matmul/dmr_matmul.c (99%) rename {astral => reliability_tests}/dmr_matmul/matmul.h (100%) rename {astral => reliability_tests}/dmr_matmul/pulp_inject_fault.tcl (100%) rename {astral => reliability_tests}/ecc_test/Makefile (100%) rename {astral => reliability_tests}/ecc_test/ecc_test.c (100%) rename {astral => reliability_tests}/ecc_test/pulp_inject_fault.tcl (100%) diff --git a/astral/dmr_matmul b/astral/dmr_matmul new file mode 120000 index 0000000..c6cc223 --- /dev/null +++ b/astral/dmr_matmul @@ -0,0 +1 @@ +../reliability_tests/dmr_matmul \ No newline at end of file diff --git a/astral/ecc_test b/astral/ecc_test new file mode 120000 index 0000000..a80e9ae --- /dev/null +++ b/astral/ecc_test @@ -0,0 +1 @@ +../reliability_tests/ecc_test \ No newline at end of file diff --git a/astral/dmr_matmul/Makefile b/reliability_tests/dmr_matmul/Makefile similarity index 100% rename from astral/dmr_matmul/Makefile rename to reliability_tests/dmr_matmul/Makefile diff --git a/astral/dmr_matmul/dmr_matmul.c b/reliability_tests/dmr_matmul/dmr_matmul.c similarity index 99% rename from astral/dmr_matmul/dmr_matmul.c rename to reliability_tests/dmr_matmul/dmr_matmul.c index 953dfdf..0cfcc61 100644 --- a/astral/dmr_matmul/dmr_matmul.c +++ b/reliability_tests/dmr_matmul/dmr_matmul.c @@ -60,7 +60,7 @@ int main() { void matrix_multiplication(testresult_t *result, void (*start)(), void (*stop)()) { int coreid = rt_core_id(); - int numcores = 6; + int numcores = 4; int *CHKSUM_RESULT; short int i, iter, j, k; int lb, ub, chunk; diff --git a/astral/dmr_matmul/matmul.h b/reliability_tests/dmr_matmul/matmul.h similarity index 100% rename from astral/dmr_matmul/matmul.h rename to reliability_tests/dmr_matmul/matmul.h diff --git a/astral/dmr_matmul/pulp_inject_fault.tcl b/reliability_tests/dmr_matmul/pulp_inject_fault.tcl similarity index 100% rename from astral/dmr_matmul/pulp_inject_fault.tcl rename to reliability_tests/dmr_matmul/pulp_inject_fault.tcl diff --git a/astral/ecc_test/Makefile b/reliability_tests/ecc_test/Makefile similarity index 100% rename from astral/ecc_test/Makefile rename to reliability_tests/ecc_test/Makefile diff --git a/astral/ecc_test/ecc_test.c b/reliability_tests/ecc_test/ecc_test.c similarity index 100% rename from astral/ecc_test/ecc_test.c rename to reliability_tests/ecc_test/ecc_test.c diff --git a/astral/ecc_test/pulp_inject_fault.tcl b/reliability_tests/ecc_test/pulp_inject_fault.tcl similarity index 100% rename from astral/ecc_test/pulp_inject_fault.tcl rename to reliability_tests/ecc_test/pulp_inject_fault.tcl From a61fc85e424ca99af941d924bbadbb1b64736ceb Mon Sep 17 00:00:00 2001 From: Andrea Belano Date: Tue, 10 Dec 2024 18:12:28 +0100 Subject: [PATCH 40/56] Neureka: add configuration for the pulp cluster --- hwpe/neureka/Makefile | 8 ++++---- hwpe/neureka/pulp-nnx | 2 +- hwpe/neureka/src/nnx_layer.c | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/hwpe/neureka/Makefile b/hwpe/neureka/Makefile index 92b7197..618cbfb 100644 --- a/hwpe/neureka/Makefile +++ b/hwpe/neureka/Makefile @@ -14,9 +14,9 @@ PULP_APP_SRCS += $(LIBDIR)/src/pulp_nnx_$(ACCELERATOR).c $(wildcard $(LIBDIR)/ut SRC_DIRS += $(LIBDIR)/src $(LIBDIR)/util ## Accelerator -INC_DIRS += $(ACC_DIR)/hal $(ACC_DIR)/bsp $(ACC_DIR)/bsp/astral -PULP_APP_SRCS += $(wildcard $(ACC_DIR)/hal/*.c) $(wildcard $(ACC_DIR)/bsp/astral/*.c) -SRC_DIRS += $(ACC_DIR)/hal $(ACC_DIR)/bsp/astral +INC_DIRS += $(ACC_DIR)/hal $(ACC_DIR)/bsp $(ACC_DIR)/bsp/pulp_cluster +PULP_APP_SRCS += $(wildcard $(ACC_DIR)/hal/*.c) $(wildcard $(ACC_DIR)/bsp/pulp_cluster/*.c) +SRC_DIRS += $(ACC_DIR)/hal $(ACC_DIR)/bsp/pulp_cluster ## Generated INC_DIRS += gen/inc @@ -26,7 +26,7 @@ INC_FLAGS += $(addprefix -I,$(INC_DIRS)) # Flags ACCELERATOR_UPPERCASE := $(shell echo $(ACCELERATOR) | tr [:lower:] [:upper:]) -PULP_CFLAGS += -DNNX_ACCELERATOR=\"$(ACCELERATOR)\" -DNNX_$(ACCELERATOR_UPPERCASE) -DNNX_NEUREKA_ASTRAL -DNNX_NEUREKA_PE_H=4 -DNNX_NEUREKA_PE_W=4 +PULP_CFLAGS += -DNNX_ACCELERATOR=\"$(ACCELERATOR)\" -DNNX_$(ACCELERATOR_UPPERCASE) -DNNX_NEUREKA_PULP_CLUSTER -DNNX_NEUREKA_PE_H=4 -DNNX_NEUREKA_PE_W=4 PULP_CFLAGS += $(INC_FLAGS) -O3 PULP_APP = test diff --git a/hwpe/neureka/pulp-nnx b/hwpe/neureka/pulp-nnx index 47baf51..4becda2 160000 --- a/hwpe/neureka/pulp-nnx +++ b/hwpe/neureka/pulp-nnx @@ -1 +1 @@ -Subproject commit 47baf51728fcaaacbd8a332b8d03717d6c03ace1 +Subproject commit 4becda239309035887db4f7fdf54a63ac8463180 diff --git a/hwpe/neureka/src/nnx_layer.c b/hwpe/neureka/src/nnx_layer.c index 57eb6fc..41edddf 100644 --- a/hwpe/neureka/src/nnx_layer.c +++ b/hwpe/neureka/src/nnx_layer.c @@ -20,10 +20,10 @@ #include "nnx_layer.h" #include "ecc_check.h" -#include +#include "pulp.h" #include "neureka.h" -#include "neureka_astral_bsp.h" +#include "neureka_pulp_cluster_bsp.h" #include "neureka_task.h" #include "pulp_nnx_neureka.h" @@ -35,7 +35,7 @@ typedef neureka_quant_function_e nnx_quant_function_e; typedef neureka_norm_t nnx_norm_t; typedef neureka_task_t nnx_task_t; typedef neureka_dev_t nnx_dev_t; -typedef neureka_astral_conf_t nnx_bsp_conf_t; +typedef neureka_pulp_cluster_conf_t nnx_bsp_conf_t; typedef neureka_task_flag_e nnx_task_flag_e; #define nnxTaskFlagTrue neurekaTaskFlagTrue @@ -52,7 +52,7 @@ typedef neureka_task_flag_e nnx_task_flag_e; #define nnx_task_set_ptrs_conv neureka_task_set_ptrs_conv #define nnx_task_set_ptrs_norm_quant neureka_task_set_ptrs_norm_quant -#define nnx_bsp_get_dev neureka_astral_get_dev +#define nnx_bsp_get_dev neureka_pulp_cluster_get_dev #define nnx_init neureka_nnx_init #define nnx_dispatch_wait neureka_nnx_dispatch_wait From 1cbed9e3b84d033f6dee08394b675f2163b7b72a Mon Sep 17 00:00:00 2001 From: Michael Rogenmoser Date: Wed, 31 Jul 2024 13:02:50 +0200 Subject: [PATCH 41/56] Add cluster icache fault injection test --- astral/icache_fi_conv16/Makefile | 11 + astral/icache_fi_conv16/conv16.h | 397 ++++++++ astral/icache_fi_conv16/icache_conv16.c | 935 ++++++++++++++++++ astral/icache_fi_conv16/pulp_inject_fault.tcl | 53 + 4 files changed, 1396 insertions(+) create mode 100644 astral/icache_fi_conv16/Makefile create mode 100644 astral/icache_fi_conv16/conv16.h create mode 100644 astral/icache_fi_conv16/icache_conv16.c create mode 100644 astral/icache_fi_conv16/pulp_inject_fault.tcl diff --git a/astral/icache_fi_conv16/Makefile b/astral/icache_fi_conv16/Makefile new file mode 100644 index 0000000..58620aa --- /dev/null +++ b/astral/icache_fi_conv16/Makefile @@ -0,0 +1,11 @@ +PULP_APP = test +PULP_APP_SRCS = icache_conv16.c + +PULP_CFLAGS = -O3 + +ifeq ($(fault_inject),1) + export FAULT_INJECTION=1 + export FAULT_INJECTION_SCRIPT=$(CURDIR)/pulp_inject_fault.tcl +endif + +include $(PULP_SDK_HOME)/install/rules/pulp.mk diff --git a/astral/icache_fi_conv16/conv16.h b/astral/icache_fi_conv16/conv16.h new file mode 100644 index 0000000..b75c587 --- /dev/null +++ b/astral/icache_fi_conv16/conv16.h @@ -0,0 +1,397 @@ +/* + * Copyright (C) 2018 ETH Zurich and University of Bologna + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * Mantainer: Luca Valente, luca.valente2@unibo.it + */ +/****************************************************************************** + * * + * Multitherman Lab @ DEI - University of Bologna * + * Viale Risorgimento 2 40136 * + * Bologna - phone 0512092759 * + * * + * Engineer: Francesco Conti - f.conti@unibo.it * + * * + * Project: CConvNet * + * File: conv16.h * + * Description: 16-bit fixed point convolution test * + * * + ******************************************************************************/ + +#ifndef _CONV16_H +#define _CONV16_H + +// uncomment if doing test with SPI (disables printf's) +// #define PULP_SPI + +// fractionary bits +#define QF 13 + +// uncomment if checking errors in detail +#define CHECK_ERROR + +// uncomment if performing checks at all +#define CHECK_CHECKSUM + +#define IMPRECISE_ASM5 + +#define FIXED_MUL(a,b) ((a*b) >> QF); + +#define IH 32 +#define IW 32 +#define FH 5 +#define FW 5 +#define OH (IH-FH+1) +#define OW (IW-FW+1) + +// right checksum +#define RIGHT_CHECKSUM 0x009da8b0 + +#define FIXED_MUL_ASM(W_ptr,x_ptr,conv) \ +__asm__ volatile \ +( \ + "l.lhs r28,0x0(%0); " \ + "l.addi %0,%0,0x4; " \ + "l.addi %1,%1,0xFFFC; " \ + "l.mul r28,r28,r29; " \ + "l.srli r28,r28,0xD; " \ + "l.add %2,%2,r28; " \ + : "=r"(W_ptr), "=r"(x_ptr), "=&r"(conv) \ + : "r"(W_ptr), "r"(x_ptr) \ + : "r28", "r29", "cc" \ +) + +#define FIXED_MUL_ASM5_IMPRECISE(W_ptr,x_ptr,conv) \ +__asm__ volatile \ +( \ + "l.ori r25,r0,0xffff; " \ + "l.ori r26,r0,16; " \ + "l.andi r27,r27,0x0000; " \ + "l.lwz r28,0x0000(%0); " \ + "l.lwz r29,0x0000(%1); " \ + "l.ror r30,r28,r26; " \ + "l.ror r31,r29,r26; " \ + "l.and r30,r30,r25; " \ + "l.and r31,r31,r25; " \ + "l.mul r30,r30,r31; " \ + "l.add r27,r27,r30; " \ + "l.and r28,r28,r25; " \ + "l.and r29,r29,r25; " \ + "l.mul r28,r28,r29; " \ + "l.add r27,r27,r28; " \ + "l.lwz r28,0x0004(%0); " \ + "l.lwz r29,0xfffc(%1); " \ + "l.ror r30,r28,r26; " \ + "l.ror r31,r29,r26; " \ + "l.and r30,r30,r25; " \ + "l.and r31,r31,r25; " \ + "l.mul r30,r30,r31; " \ + "l.add r27,r27,r30; " \ + "l.and r28,r28,r25; " \ + "l.and r29,r29,r25; " \ + "l.mul r28,r28,r29; " \ + "l.add r27,r27,r28; " \ + "l.lwz r28,0x0008(%0); " \ + "l.lwz r29,0xfff8(%1); " \ + "l.ror r31,r29,r26; " \ + "l.and r28,r28,r25; " \ + "l.and r31,r31,r25; " \ + "l.mul r28,r28,r31; " \ + "l.add r27,r27,r28; " \ + "l.srli r27,r27,0xD; " \ + "l.add %2,%2,r27; " \ + : "=r"(W_ptr), "=r"(x_ptr), "=&r"(conv) \ + : "r"(W_ptr), "r"(x_ptr), "r"(conv) \ + : "r27", "r28", "r29", "cc" \ +) + +#define FIXED_MUL_ASM5_PRECISE(W_ptr,x_ptr,conv) \ +__asm__ volatile \ +( \ + "l.lhs r28,0x0000(%0); " \ + "l.lhs r29,0x0000(%1); " \ + "l.mul r28,r28,r29; " \ + "l.srli r28,r28,0xD; " \ + "l.add %2,%2,r28; " \ + "l.lhs r28,0x0002(%0); " \ + "l.lhs r29,0xfffe(%1); " \ + "l.mul r28,r28,r29; " \ + "l.srli r28,r28,0xD; " \ + "l.add %2,%2,r28; " \ + "l.lhs r28,0x0004(%0); " \ + "l.lhs r29,0xfffc(%1); " \ + "l.mul r28,r28,r29; " \ + "l.srli r28,r28,0xD; " \ + "l.add %2,%2,r28; " \ + "l.lhs r28,0x0006(%0); " \ + "l.lhs r29,0xfffa(%1); " \ + "l.mul r28,r28,r29; " \ + "l.srli r28,r28,0xD; " \ + "l.add %2,%2,r28; " \ + "l.lhs r28,0x0008(%0); " \ + "l.lhs r29,0xfff8(%1); " \ + "l.mul r28,r28,r29; " \ + "l.srli r28,r28,0xD; " \ + "l.add %2,%2,r28; " \ + : "=r"(W_ptr), "=r"(x_ptr), "=&r"(conv) \ + : "r"(W_ptr), "r"(x_ptr) \ + : "r27", "r28", "r29", "cc" \ +) + +// #define FIXED_MUL_ASM25_PRECISE(W_ptr,x_ptr,conv) \ +// __asm__ volatile \ +// ( \ +// "l.lwz r28,0x0000(%0); " \ +// "l.lwz r29,0x0000(%1); " \ +// "l.mul r28,r28,r29; " \ +// "l.srli r28,r28,0xD; " \ +// "l.add %2,%2,r28; " \ +// "l.lwz r28,0x0004(%0); " \ +// "l.lwz r29,0xfffc(%1); " \ +// "l.mul r28,r28,r29; " \ +// "l.srli r28,r28,0xD; " \ +// "l.add %2,%2,r28; " \ +// "l.lwz r28,0x0008(%0); " \ +// "l.lwz r29,0xfff8(%1); " \ +// "l.mul r28,r28,r29; " \ +// "l.srli r28,r28,0xD; " \ +// "l.add %2,%2,r28; " \ +// "l.lwz r28,0x000c(%0); " \ +// "l.lwz r29,0xfff4(%1); " \ +// "l.mul r28,r28,r29; " \ +// "l.srli r28,r28,0xD; " \ +// "l.add %2,%2,r28; " \ +// "l.lwz r28,0x0010(%0); " \ +// "l.lwz r29,0xfff0(%1); " \ +// "l.mul r28,r28,r29; " \ +// "l.srli r28,r28,0xD; " \ +// "l.add %2,%2,r28; " \ +// \ +// "l.slli %1,r28,0x2; " \ +// \ +// "l.lwz r28,0x0014(%0); " \ +// "l.lwz r29,0x0000(%1); " \ +// "l.mul r28,r28,r29; " \ +// "l.srli r28,r28,0xD; " \ +// "l.add %2,%2,r28; " \ +// "l.lwz r28,0x0018(%0); " \ +// "l.lwz r29,0xfffc(%1); " \ +// "l.mul r28,r28,r29; " \ +// "l.srli r28,r28,0xD; " \ +// "l.add %2,%2,r28; " \ +// "l.lwz r28,0x001c(%0); " \ +// "l.lwz r29,0xfff8(%1); " \ +// "l.mul r28,r28,r29; " \ +// "l.srli r28,r28,0xD; " \ +// "l.add %2,%2,r28; " \ +// "l.lwz r28,0x0020(%0); " \ +// "l.lwz r29,0xfff4(%1); " \ +// "l.mul r28,r28,r29; " \ +// "l.srli r28,r28,0xD; " \ +// "l.add %2,%2,r28; " \ +// "l.lwz r28,0x0024(%0); " \ +// "l.lwz r29,0xfff0(%1); " \ +// "l.mul r28,r28,r29; " \ +// "l.srli r28,r28,0xD; " \ +// "l.add %2,%2,r28; " \ +// // WIP +// : "=r"(W_ptr), "=r"(x_ptr), "=&r"(conv) \ +// : "r"(W_ptr), "r"(x_ptr), "r"(w), "r"(fw) \ +// : "r27", "r28", "r29", "cc" \ +// ) + +#define XPTR_UPDATE(x_ptr,w,fw) \ +__asm__ volatile \ +( \ + "l.sub r28,%1,%2; " \ + "l.slli r28,r28,0x2; " \ + "l.sub %0,%0,r28; " \ + : "=&r"(x_ptr) \ + : "r"(x_ptr), "r"(w), "r"(fw) \ + : "r28", "cc" \ +) + +int test_singlethread(void (*test)(int16_t *, int16_t *, int16_t *, int, int, int, int, int, int, int, int, int), char *str); +int test_multithread(void (*test)(int16_t *, int16_t *, int16_t *, int, int, int, int, int, int, int, int, int), char *str); + +void conv16_gold(int16_t *__restrict__ W, int16_t *__restrict__ x, int16_t *__restrict__ y, int h, int w, int fh, int fw, int oh, int ow, int nif, int a, int b); +void conv16_asm_mul(int16_t *__restrict__ W, int16_t *__restrict__ x, int16_t *__restrict__ y, int h, int w, int fh, int fw, int oh, int ow, int nif, int a, int b); +// void conv16_asm_mac(int16_t *__restrict__ W, int16_t *__restrict__ x, int16_t *__restrict__ y, int h, int w, int fh, int fw, int oh, int ow, int nif, int a, int b); +void conv16_asm_mul_unrolled_5x5(int16_t *__restrict__ W, int16_t *__restrict__ x, int16_t *__restrict__ y, int h, int w, int fh, int fw, int oh, int ow, int nif, int a, int b); +void conv16_unrolled_5x5(int16_t *__restrict__ W, int16_t *__restrict__ x, int16_t *__restrict__ y, int h, int w, int fh, int fw, int oh, int ow, int nif, int a, int b); +void conv16_unrolled_ptr_5x5(int16_t *__restrict__ W, int16_t *__restrict__ x, int16_t *__restrict__ y, int h, int w, int fh, int fw, int oh, int ow, int nif, int a, int b); +// void conv16_gold_four_finest(int16_t *__restrict__ W, int16_t *__restrict__ x, int16_t *__restrict__ y, int h, int w, int fh, int fw, int oh, int ow, int nif, int a, int b, int32_t *shared_conv); +// void conv16_gold_four_fine(int16_t *__restrict__ W, int16_t *__restrict__ x, int16_t *__restrict__ y, int h, int w, int fh, int fw, int oh, int ow, int nif, int a, int b); +void conv16_gold_four_coarse(int16_t *__restrict__ W, int16_t *__restrict__ x, int16_t *__restrict__ y, int h, int w, int fh, int fw, int oh, int ow, int nif, int a, int b); +void conv16_unrolled_5x5_four_coarse(int16_t *__restrict__ W, int16_t *__restrict__ x, int16_t *__restrict__ y, int h, int w, int fh, int fw, int oh, int ow, int nif, int a, int b); +void conv16_unrolled_ptr_5x5_four_coarse(int16_t *__restrict__ W, int16_t *__restrict__ x, int16_t *__restrict__ y, int h, int w, int fh, int fw, int oh, int ow, int nif, int a, int b); +void conv16_gold_four_coarsest(int16_t *__restrict__ W, int16_t *__restrict__ x, int16_t *__restrict__ y, int h, int w, int fh, int fw, int oh, int ow, int nif, int a, int b); +void conv16_unrolled_5x5_four_coarsest(int16_t *__restrict__ W, int16_t *__restrict__ x, int16_t *__restrict__ y, int h, int w, int fh, int fw, int oh, int ow, int nif, int a, int b); +void conv16_unrolled_ptr_5x5_four_coarsest(int16_t *__restrict__ W, int16_t *__restrict__ x, int16_t *__restrict__ y, int h, int w, int fh, int fw, int oh, int ow, int nif, int a, int b); +void conv16_asm_mul_unrolled_5x5_four_coarsest(int16_t *__restrict__ W, int16_t *__restrict__ x, int16_t *__restrict__ y, int h, int w, int fh, int fw, int oh, int ow, int nif, int a, int b); + +void load(); +int check(int16_t *y); +int checksum(int16_t *y); + +int16_t correct_yout[OH*OW] = { + 0x0352, + 0x036c, + 0x0386, + 0x03a0, + 0x03ba, + 0x03d4, + 0x03ee, + 0x0408, + 0x0422, + 0x043c, + 0x0456, + 0x0470, + 0x04ee, + 0x0508, + 0x0522, + 0x053c, + 0x0556, + 0x0570, + 0x058a, + 0x05a4, + 0x05be, + 0x05d8, + 0x05f2, + 0x060c, + 0x068a, + 0x06a4, + 0x06be, + 0x06d8, + 0x06f2, + 0x070c, + 0x0726, + 0x0740, + 0x075a, + 0x0774, + 0x078e, + 0x07a8, + 0x0826, + 0x0840, + 0x085a, + 0x0874, + 0x088e, + 0x08a8, + 0x08c2, + 0x08dc, + 0x08f6, + 0x0910, + 0x092a, + 0x0944, + 0x09c2, + 0x09dc, + 0x09f6, + 0x0a10, + 0x0a2a, + 0x0a44, + 0x0a5e, + 0x0a78, + 0x0a92, + 0x0aac, + 0x0ac6, + 0x0ae0, + 0x0b5e, + 0x0b78, + 0x0b92, + 0x0bac, + 0x0bc6, + 0x0be0, + 0x0bfa, + 0x0c14, + 0x0c2e, + 0x0c48, + 0x0c62, + 0x0c7c, + 0x0cfa, + 0x0d14, + 0x0d2e, + 0x0d48, + 0x0d62, + 0x0d7c, + 0x0d96, + 0x0db0, + 0x0dca, + 0x0de4, + 0x0dfe, + 0x0e18, + 0x0e96, + 0x0eb0, + 0x0eca, + 0x0ee4, + 0x0efe, + 0x0f18, + 0x0f32, + 0x0f4c, + 0x0f66, + 0x0f80, + 0x0f9a, + 0x0fb4, + 0x1032, + 0x104c, + 0x1066, + 0x1080, + 0x109a, + 0x10b4, + 0x10ce, + 0x10e8, + 0x1102, + 0x111c, + 0x1136, + 0x1150, + 0x11ce, + 0x11e8, + 0x1202, + 0x121c, + 0x1236, + 0x1250, + 0x126a, + 0x1284, + 0x129e, + 0x12b8, + 0x12d2, + 0x12ec, + 0x136a, + 0x1384, + 0x139e, + 0x13b8, + 0x13d2, + 0x13ec, + 0x1406, + 0x1420, + 0x143a, + 0x1454, + 0x146e, + 0x1488, + 0x1506, + 0x1520, + 0x153a, + 0x1554, + 0x156e, + 0x1588, + 0x15a2, + 0x15bc, + 0x15d6, + 0x15f0, + 0x160a, + 0x1624, +}; + +#endif diff --git a/astral/icache_fi_conv16/icache_conv16.c b/astral/icache_fi_conv16/icache_conv16.c new file mode 100644 index 0000000..e62c440 --- /dev/null +++ b/astral/icache_fi_conv16/icache_conv16.c @@ -0,0 +1,935 @@ +/* + * Copyright (C) 2018 ETH Zurich and University of Bologna + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * Mantainer: Luca Valente, luca.valente2@unibo.it + */ +/****************************************************************************** + * * + * Multitherman Lab @ DEI - University of Bologna * + * Viale Risorgimento 2 40136 * + * Bologna - phone 0512092759 * + * * + * Engineer: Francesco Conti - f.conti@unibo.it * + * * + * Project: CConvNet * + * File: conv16.c * + * Description: 16-bit fixed point convolution test * + * * + ******************************************************************************/ + +#include +#include +#include "conv16.h" + +__attribute__((section(".heapsram"))) int16_t g_W[FH*FW]; +__attribute__((section(".heapsram"))) int16_t g_x[IH*IW]; +__attribute__((section(".heapsram"))) int16_t g_y[OH*OW]; +__attribute__((section(".heapsram"))) int16_t g_y_in[OH*OW]; + +int main() { + + if (rt_cluster_id() != 0) + return bench_cluster_forward(0); + + int errors = 0; + int sum = 0; + + // single-threaded "golden" by-the-book convolution + errors += test_singlethread(&conv16_gold, "sequential convolution"); + + // single-threaded loop-unrolled convolution + errors += test_singlethread(&conv16_unrolled_5x5, "sequential loop-unrolled convolution"); + + // single-threaded loop-unrolled pointer-optimized convolution + errors += test_singlethread(&conv16_unrolled_ptr_5x5, "sequential loop-unrolled pointer-optimized convolution"); + + // multi-threaded by-the-book convolution (1 thread per output pixel) + errors += test_multithread(&conv16_gold_four_coarse, "4-threaded convolution (1 thread per output pixel)"); + + // multi-threaded loop-unrolled convolution (1 thread per output pixel) + errors += test_multithread(&conv16_unrolled_5x5_four_coarse, "4-threaded loop-unrolled convolution (1 thread per output pixel)"); + + // multi-threaded loop-unrolled pointer-optimized convolution (1 thread per output pixel) + errors += test_multithread(&conv16_unrolled_ptr_5x5_four_coarse, "4-threaded loop-unrolled pointer-optimized convolution (1 thread per output pixel)"); + + // multi-threaded by-the-book convolution (1 thread per output row) + errors += test_multithread(&conv16_gold_four_coarsest, "4-threaded convolution (1 thread per output row)"); + + // multi-threaded loop-unrolled convolution (1 thread per output row) + errors += test_multithread(&conv16_unrolled_5x5_four_coarsest, "4-threaded loop-unrolled convolution (1 thread per output row)"); + + // multi-threaded loop-unrolled pointer-optimized convolution (1 thread per output row) + errors += test_multithread(&conv16_unrolled_ptr_5x5_four_coarsest, "4-threaded loop-unrolled pointer-optimized convolution (1 thread per output row)"); + + synch_barrier(); + + // TODO readout icache errors + + return errors; +} + +int test_singlethread(void (*test)(int16_t *, int16_t *, int16_t *, int, int, int, int, int, int, int, int, int), char *str) { + int errors = 0; + int sum = 0; + + synch_barrier(); + + if(rt_core_id() == 0) { + load(); + + reset_timer(rt_cluster_id()); + start_timer(rt_cluster_id()); + test(g_W, g_x, g_y, IH, IW, FH, FW, OH, OW, 1, 0, 0); + stop_timer(rt_cluster_id()); + + #ifdef CHECK_CHECKSUM + errors = 0; + sum = checksum(g_y); + if(sum != RIGHT_CHECKSUM) { + #ifndef PULP_SPI + printf("wrong checksum, 0x%08x instead of 0x%08x\n", sum, RIGHT_CHECKSUM); + #ifndef CHECK_ERROR + errors += 1; + #endif + #endif + #ifdef CHECK_ERROR + errors = check(g_y); + #endif + } + #else + errors = -1; + #endif + + #ifndef PULP_SPI + printf("%s, errors=%d, time=%d\n", str, errors, get_time(rt_cluster_id())); + #endif + + } + + return errors; +} + +int test_multithread(void (*test)(int16_t *, int16_t *, int16_t *, int, int, int, int, int, int, int, int, int), char *str) { + int errors = 0; + int sum = 0; + + if(rt_core_id() == 0) { + load(); + } + + synch_barrier(); + + if(rt_core_id() == 0) { + reset_timer(rt_cluster_id()); + start_timer(rt_cluster_id()); + } + test(g_W, g_x, g_y, IH, IW, FH, FW, OH, OW, 1, 0, 0); + if(rt_core_id() == 0) { + stop_timer(rt_cluster_id()); + + #ifdef CHECK_CHECKSUM + errors = 0; + sum = checksum(g_y); + if(sum != RIGHT_CHECKSUM) { + #ifndef PULP_SPI + printf("wrong checksum, 0x%08x instead of 0x%08x\n", sum, RIGHT_CHECKSUM); + #ifndef CHECK_ERROR + errors += 1; + #endif + #endif + #ifdef CHECK_ERROR + errors = check(g_y); + #endif + } + #else + errors = -1; + #endif + + #ifndef PULP_SPI + printf("%s, errors=%d, time=%d\n", str, errors, get_time(rt_cluster_id())); + #endif + + } + + return errors; +} + +void conv16_gold(int16_t *__restrict__ W, int16_t *__restrict__ x, int16_t *__restrict__ y, int h, int w, int fh, int fw, int oh, int ow, int nif, int a, int b) { + int i; + for (i=0; i> QF)); + #endif + } + } +} + +void conv16_unrolled_5x5(int16_t *__restrict__ W, int16_t *__restrict__ x, int16_t *__restrict__ y, int h, int w, int fh, int fw, int oh, int ow, int nif, int a, int b) { + int i; + for (i=0; i> QF); + + #endif + + } + } +} + +void conv16_unrolled_ptr_5x5(int16_t *__restrict__ W, int16_t *__restrict__ x, int16_t *__restrict__ y, int h, int w, int fh, int fw, int oh, int ow, int nif, int a, int b) { + register int i; + register int j; + + int16_t *y_ptr = y + a*oh*ow; + int16_t *x_base = x + b*h*w + (fh-1)*w + (fw-1); + int16_t *W_base = &W[((a*nif)+b)*fh*fw]; + int16_t *W_ptr; + int16_t *x_ptr; + + for (i=0; i> QF; + + #endif + + } + } + +} + +void conv16_gold_four_coarse(int16_t *__restrict__ W, int16_t *__restrict__ x, int16_t *__restrict__ y, int h, int w, int fh, int fw, int oh, int ow, int nif, int a, int b) { + int i; + register int myid = rt_core_id(); + register int num_cores = get_core_num(); + // synch_barrier(); + for (i=0; i> QF)); + #endif + } + } + synch_barrier(); +} + +void conv16_gold_four_coarsest(int16_t *__restrict__ W, int16_t *__restrict__ x, int16_t *__restrict__ y, int h, int w, int fh, int fw, int oh, int ow, int nif, int a, int b) { + int i; + register int myid = rt_core_id(); + register int num_cores = get_core_num(); + // synch_barrier(); + for (i=myid; i> QF)); + #endif + } + } + synch_barrier(); +} + +void conv16_unrolled_5x5_four_coarse(int16_t *__restrict__ W, int16_t *__restrict__ x, int16_t *__restrict__ y, int h, int w, int fh, int fw, int oh, int ow, int nif, int a, int b) { + int i; + register int myid = rt_core_id(); + register int num_cores = get_core_num(); + // synch_barrier(); + for (i=0; i> QF); // because i'm using 32-bit int + + #endif + + } + } + synch_barrier(); +} + +void conv16_unrolled_5x5_four_coarsest(int16_t *__restrict__ W, int16_t *__restrict__ x, int16_t *__restrict__ y, int h, int w, int fh, int fw, int oh, int ow, int nif, int a, int b) { + int i; + register int myid = rt_core_id(); + register int num_cores = get_core_num(); + // synch_barrier(); + for (i=myid; i> QF); // because i'm using 32-bit int + + #endif + + } + } + synch_barrier(); +} + +void conv16_unrolled_ptr_5x5_four_coarse(int16_t *__restrict__ W, int16_t *__restrict__ x, int16_t *__restrict__ y, int h, int w, int fh, int fw, int oh, int ow, int nif, int a, int b) { + register int i; + register int j; + register int myid = rt_core_id(); + register int num_cores = get_core_num(); + int16_t *W_ptr; + int16_t *x_ptr; + int16_t *y_ptr = y + a*oh*ow; + int16_t *x_base = x + b*h*w + (fh-1)*w + (fw-1); + int16_t *W_base = &W[((a*nif)+b)*fh*fw]; + + // synch_barrier(); + + for (i=0; i> QF; + + #endif + + } + } + + synch_barrier(); +} + +void conv16_unrolled_ptr_5x5_four_coarsest(int16_t *__restrict__ W, int16_t *__restrict__ x, int16_t *__restrict__ y, int h, int w, int fh, int fw, int oh, int ow, int nif, int a, int b) { + // register int i; + // register int j; + // register int myid = rt_core_id(); + // int16_t *W_ptr; + // int16_t *x_ptr; + int16_t *y_ptr = y + a*oh*ow; + int16_t *x_base = x + b*h*w + (fh-1)*w + (fw-1); + int16_t *W_base = &W[((a*nif)+b)*fh*fw]; + + register int myid = rt_core_id(); + register int num_cores = get_core_num(); + + register int i; + register int j; + int16_t *W_ptr; + int16_t *x_ptr; + + for (i=myid; i> QF; + + #endif + + } + } + + synch_barrier(); + +} + +#ifndef __GCC__ +#ifndef __riscv__ +void conv16_asm_mul_unrolled_5x5_four_coarsest(int16_t *__restrict__ W, int16_t *__restrict__ x, int16_t *__restrict__ y, int h, int w, int fh, int fw, int oh, int ow, int nif, int a, int b) { + register int i; + register int j; + register int myid = rt_core_id(); + register int num_cores = get_core_num(); + register int16_t *W_ptr; + register int16_t *x_ptr; + int16_t *y_ptr = y + a*oh*ow; + int16_t *x_base = x + b*h*w + (fh-1)*w + (fw-1); + int16_t *W_base = &W[((a*nif)+b)*fh*fw]; + for (i=myid; i Date: Thu, 19 Dec 2024 17:14:53 +0100 Subject: [PATCH 42/56] Move icache_fi_conv16 tests to reliability_tests directory --- astral/icache_fi_conv16 | 1 + {astral => reliability_tests}/icache_fi_conv16/Makefile | 0 {astral => reliability_tests}/icache_fi_conv16/conv16.h | 0 {astral => reliability_tests}/icache_fi_conv16/icache_conv16.c | 0 .../icache_fi_conv16/pulp_inject_fault.tcl | 0 5 files changed, 1 insertion(+) create mode 120000 astral/icache_fi_conv16 rename {astral => reliability_tests}/icache_fi_conv16/Makefile (100%) rename {astral => reliability_tests}/icache_fi_conv16/conv16.h (100%) rename {astral => reliability_tests}/icache_fi_conv16/icache_conv16.c (100%) rename {astral => reliability_tests}/icache_fi_conv16/pulp_inject_fault.tcl (100%) diff --git a/astral/icache_fi_conv16 b/astral/icache_fi_conv16 new file mode 120000 index 0000000..c97475b --- /dev/null +++ b/astral/icache_fi_conv16 @@ -0,0 +1 @@ +../reliability_tests/icache_fi_conv16 \ No newline at end of file diff --git a/astral/icache_fi_conv16/Makefile b/reliability_tests/icache_fi_conv16/Makefile similarity index 100% rename from astral/icache_fi_conv16/Makefile rename to reliability_tests/icache_fi_conv16/Makefile diff --git a/astral/icache_fi_conv16/conv16.h b/reliability_tests/icache_fi_conv16/conv16.h similarity index 100% rename from astral/icache_fi_conv16/conv16.h rename to reliability_tests/icache_fi_conv16/conv16.h diff --git a/astral/icache_fi_conv16/icache_conv16.c b/reliability_tests/icache_fi_conv16/icache_conv16.c similarity index 100% rename from astral/icache_fi_conv16/icache_conv16.c rename to reliability_tests/icache_fi_conv16/icache_conv16.c diff --git a/astral/icache_fi_conv16/pulp_inject_fault.tcl b/reliability_tests/icache_fi_conv16/pulp_inject_fault.tcl similarity index 100% rename from astral/icache_fi_conv16/pulp_inject_fault.tcl rename to reliability_tests/icache_fi_conv16/pulp_inject_fault.tcl From 06b73a8d225fea6aebeebdd1e5f92f9d96fb3248 Mon Sep 17 00:00:00 2001 From: Luigi Ghionda Date: Sun, 16 Feb 2025 17:26:00 +0100 Subject: [PATCH 43/56] Fix neureka's check_output function --- hwpe/neureka/src/main.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hwpe/neureka/src/main.c b/hwpe/neureka/src/main.c index 4e82af7..d6c70f3 100644 --- a/hwpe/neureka/src/main.c +++ b/hwpe/neureka/src/main.c @@ -33,16 +33,16 @@ #define OUTPUT_SIZE 512 -extern int8_t output[]; +extern uint8_t output[]; uint32_t ecc_errs[ECC_REGS]; static int check_output() { - int checksum = 0; + uint32_t checksum = 0; for (int i = 0; i < OUTPUT_SIZE; i++) { checksum += output[i]; } - return (checksum == 0x00007330); + return (checksum != 0x00007330); } int errors = 0; From be5f94c5ba4c2998a24c9d8a01449494bfc3640b Mon Sep 17 00:00:00 2001 From: Luigi Ghionda Date: Sun, 16 Feb 2025 18:32:12 +0100 Subject: [PATCH 44/56] Add define to redmule and neureka tests to skip ecc-related checks if they are not implemented --- hwpe/neureka/Makefile | 4 +++ hwpe/neureka/src/main.c | 46 ++++++++++++++++++----------- hwpe/neureka/src/nnx_layer.c | 3 +- hwpe/redmule/Makefile | 3 ++ hwpe/redmule/redmule.c | 57 +++++++++++++++++++++--------------- 5 files changed, 71 insertions(+), 42 deletions(-) diff --git a/hwpe/neureka/Makefile b/hwpe/neureka/Makefile index 618cbfb..22ba1d0 100644 --- a/hwpe/neureka/Makefile +++ b/hwpe/neureka/Makefile @@ -31,6 +31,10 @@ PULP_CFLAGS += $(INC_FLAGS) -O3 PULP_APP = test +ifeq ($(no_ecc),1) + PULP_CFLAGS += -DNO_ECC +endif + ifeq ($(fault_inject),1) export FAULT_INJECTION=1 export FAULT_INJECTION_SCRIPT=$(CURDIR)/pulp_inject_fault.tcl diff --git a/hwpe/neureka/src/main.c b/hwpe/neureka/src/main.c index d6c70f3..d0133cf 100644 --- a/hwpe/neureka/src/main.c +++ b/hwpe/neureka/src/main.c @@ -29,13 +29,17 @@ #include "layer_util.h" #include "nnx_layer.h" +#ifndef NO_ECC #include "ecc_check.h" +#endif #define OUTPUT_SIZE 512 extern uint8_t output[]; +#ifndef NO_ECC uint32_t ecc_errs[ECC_REGS]; +#endif static int check_output() { uint32_t checksum = 0; @@ -46,10 +50,12 @@ static int check_output() { } int errors = 0; +#ifndef NO_ECC unsigned int intc_data_correctable_cnt = 0; unsigned int intc_meta_correctable_cnt = 0; unsigned int intc_data_uncorrectable_cnt = 0; unsigned int intc_meta_uncorrectable_cnt = 0; +#endif int main() { @@ -69,25 +75,31 @@ int main() { else printf ("[OK] Terminated test with no errors!!!\n"); - // Check number of detected errors by ECC modules inside interconnect - intc_data_correctable_cnt = hwpe_hci_ecc_get_data_correctable_count(cluster_id); - intc_meta_correctable_cnt = hwpe_hci_ecc_get_meta_correctable_count(cluster_id); - intc_data_uncorrectable_cnt = hwpe_hci_ecc_get_data_uncorrectable_count(cluster_id); - intc_meta_uncorrectable_cnt = hwpe_hci_ecc_get_meta_uncorrectable_count(cluster_id); - for (int i = 0; i < 16; i++) { - intc_meta_correctable_cnt += tcdm_scrubber_get_mismatch_count(cluster_id, i); - } + #ifndef NO_ECC + // Check number of detected errors by ECC modules inside interconnect + intc_data_correctable_cnt = hwpe_hci_ecc_get_data_correctable_count(cluster_id); + intc_meta_correctable_cnt = hwpe_hci_ecc_get_meta_correctable_count(cluster_id); + intc_data_uncorrectable_cnt = hwpe_hci_ecc_get_data_uncorrectable_count(cluster_id); + intc_meta_uncorrectable_cnt = hwpe_hci_ecc_get_meta_uncorrectable_count(cluster_id); + for (int i = 0; i < 16; i++) { + intc_meta_correctable_cnt += tcdm_scrubber_get_mismatch_count(cluster_id, i); + } - printf("Data errors corrected inside Neureka: %d. Data errors uncorrectable inside Neureka: %d\n", - ecc_errs[0], ecc_errs[1]); - printf("Meta errors corrected inside Neureka: %d. Meta errors uncorrectable inside Neureka: %d\n", - ecc_errs[2], ecc_errs[3]); + printf("Data errors corrected inside Neureka: %d. Data errors uncorrectable inside Neureka: %d\n", + ecc_errs[0], ecc_errs[1]); + printf("Meta errors corrected inside Neureka: %d. Meta errors uncorrectable inside Neureka: %d\n", + ecc_errs[2], ecc_errs[3]); - printf("Data errors corrected inside intc: %d. Data errors uncorrectable inside intc: %d\n", - intc_data_correctable_cnt, intc_data_uncorrectable_cnt); - printf("Meta errors corrected inside intc: %d. Meta errors uncorrectable inside intc: %d\n", - intc_meta_correctable_cnt, intc_meta_uncorrectable_cnt); + printf("Data errors corrected inside intc: %d. Data errors uncorrectable inside intc: %d\n", + intc_data_correctable_cnt, intc_data_uncorrectable_cnt); + printf("Meta errors corrected inside intc: %d. Meta errors uncorrectable inside intc: %d\n", + intc_meta_correctable_cnt, intc_meta_uncorrectable_cnt); + #endif } synch_barrier(); - return (errors != 0) && (intc_data_uncorrectable_cnt == 0 && intc_meta_uncorrectable_cnt == 0 && (ecc_errs[1]==0 && ecc_errs[3]==0)); + #ifndef NO_ECC + return (errors != 0) && (intc_data_uncorrectable_cnt == 0 && intc_meta_uncorrectable_cnt == 0 && (ecc_errs[1]==0 && ecc_errs[3]==0)); + #else + return errors; + #endif } diff --git a/hwpe/neureka/src/nnx_layer.c b/hwpe/neureka/src/nnx_layer.c index 41edddf..06a7dd4 100644 --- a/hwpe/neureka/src/nnx_layer.c +++ b/hwpe/neureka/src/nnx_layer.c @@ -161,8 +161,9 @@ static void task_execute(nnx_task_t *task) { #endif nnx_resolve_wait(dev, task); - +#ifndef NO_ECC nnx_read_ecc_regs(dev, (uint32_t)ecc_errs); +#endif nnx_term(dev); diff --git a/hwpe/redmule/Makefile b/hwpe/redmule/Makefile index 88346b6..2d118a6 100644 --- a/hwpe/redmule/Makefile +++ b/hwpe/redmule/Makefile @@ -5,6 +5,9 @@ PULP_CFLAGS = -O3 ifeq ($(use_dma),1) PULP_CFLAGS += -DUSE_DMA endif +ifeq ($(no_ecc),1) + PULP_CFLAGS += -DNO_ECC +endif ifeq ($(fault_inject),1) export FAULT_INJECTION=1 diff --git a/hwpe/redmule/redmule.c b/hwpe/redmule/redmule.c index 44a724d..61a4b2b 100644 --- a/hwpe/redmule/redmule.c +++ b/hwpe/redmule/redmule.c @@ -29,10 +29,12 @@ int main() { volatile int errors = 0; unsigned int cluster_id = rt_cluster_id(); - unsigned int intc_data_correctable_cnt, redmule_data_correctable_cnt = 0; - unsigned int intc_meta_correctable_cnt = 0; - unsigned int intc_data_uncorrectable_cnt, redmule_data_uncorrectable_cnt = 0; - unsigned int intc_meta_uncorrectable_cnt = 0; + #ifndef NO_ECC + unsigned int intc_data_correctable_cnt, redmule_data_correctable_cnt = 0; + unsigned int intc_meta_correctable_cnt = 0; + unsigned int intc_data_uncorrectable_cnt, redmule_data_uncorrectable_cnt = 0; + unsigned int intc_meta_uncorrectable_cnt = 0; + #endif if(get_core_id() == 0){ @@ -104,9 +106,11 @@ int main() { // Wait for end of computation redmule_evt_wait(); - // Check number of detected errors by ECC modules inside RedMulE - redmule_data_correctable_cnt = redmule_get_data_correctable_count(); - redmule_data_uncorrectable_cnt = redmule_get_data_uncorrectable_count(); + #ifndef NO_ECC + // Check number of detected errors by ECC modules inside RedMulE + redmule_data_correctable_cnt = redmule_get_data_correctable_count(); + redmule_data_uncorrectable_cnt = redmule_get_data_uncorrectable_count(); + #endif // Disable RedMulE hwpe_cg_disable(); @@ -117,24 +121,29 @@ int main() { printf ("Terminated test with %d errors. See you!\n", errors); - // Check number of detected errors by ECC modules inside interconnect - intc_data_correctable_cnt = hwpe_hci_ecc_get_data_correctable_count(cluster_id); - intc_meta_correctable_cnt = hwpe_hci_ecc_get_meta_correctable_count(cluster_id); - intc_data_uncorrectable_cnt = hwpe_hci_ecc_get_data_uncorrectable_count(cluster_id); - intc_meta_uncorrectable_cnt = hwpe_hci_ecc_get_meta_uncorrectable_count(cluster_id); - for (int i = 0; i < 16; i++) { - intc_meta_correctable_cnt += tcdm_scrubber_get_mismatch_count(cluster_id, i); - } - - printf ("Data errors corrected inside RedMulE: %d. Data errors uncorrectable inside RedMulE: %d \n", - redmule_data_correctable_cnt, redmule_data_uncorrectable_cnt); - printf("Data errors corrected inside intc: %d. Data errors uncorrectable inside intc: %d\n", - intc_data_correctable_cnt, intc_data_uncorrectable_cnt); - printf("Meta errors corrected inside intc: %d. Meta errors uncorrectable inside intc: %d\n", - intc_meta_correctable_cnt, intc_meta_uncorrectable_cnt); - + #ifndef NO_ECC + // Check number of detected errors by ECC modules inside interconnect + intc_data_correctable_cnt = hwpe_hci_ecc_get_data_correctable_count(cluster_id); + intc_meta_correctable_cnt = hwpe_hci_ecc_get_meta_correctable_count(cluster_id); + intc_data_uncorrectable_cnt = hwpe_hci_ecc_get_data_uncorrectable_count(cluster_id); + intc_meta_uncorrectable_cnt = hwpe_hci_ecc_get_meta_uncorrectable_count(cluster_id); + for (int i = 0; i < 16; i++) { + intc_meta_correctable_cnt += tcdm_scrubber_get_mismatch_count(cluster_id, i); + } + + printf ("Data errors corrected inside RedMulE: %d. Data errors uncorrectable inside RedMulE: %d \n", + redmule_data_correctable_cnt, redmule_data_uncorrectable_cnt); + printf("Data errors corrected inside intc: %d. Data errors uncorrectable inside intc: %d\n", + intc_data_correctable_cnt, intc_data_uncorrectable_cnt); + printf("Meta errors corrected inside intc: %d. Meta errors uncorrectable inside intc: %d\n", + intc_meta_correctable_cnt, intc_meta_uncorrectable_cnt); + #endif } synch_barrier(); - return (errors != 0) && (redmule_data_uncorrectable_cnt==0 && intc_data_uncorrectable_cnt == 0 && intc_meta_uncorrectable_cnt == 0); + #ifndef NO_ECC + return (errors != 0) && (redmule_data_uncorrectable_cnt==0 && intc_data_uncorrectable_cnt == 0 && intc_meta_uncorrectable_cnt == 0); + #else + return errors; + #endif } From d43cb0d58ba3ca985170c68d7192eaa2998a5398 Mon Sep 17 00:00:00 2001 From: Luigi Ghionda Date: Sun, 16 Feb 2025 18:36:49 +0100 Subject: [PATCH 45/56] Update `.gitignore` --- .gitignore | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitignore b/.gitignore index 831ba58..fa8d3f0 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,7 @@ /**/*~ !boot_code/crt0.S /simplified-runtime.xml +*.log +*.wlf +modelsim.ini +transcript From 26d7629629f2169325aaa529c1207ec3d7eb93f6 Mon Sep 17 00:00:00 2001 From: aottaviano Date: Tue, 8 Jul 2025 21:02:16 +0200 Subject: [PATCH 46/56] carfield: Adapt Carfield's DMR test to 8 cores --- carfield/dmr_matmul | 1 + carfield/dmr_matmul/Makefile | 12 --- carfield/dmr_matmul/dmr_matmul.c | 100 ---------------------- carfield/dmr_matmul/matmul.h | 56 ------------ carfield/dmr_matmul/pulp_inject_fault.tcl | 51 ----------- 5 files changed, 1 insertion(+), 219 deletions(-) create mode 120000 carfield/dmr_matmul delete mode 100644 carfield/dmr_matmul/Makefile delete mode 100644 carfield/dmr_matmul/dmr_matmul.c delete mode 100644 carfield/dmr_matmul/matmul.h delete mode 100644 carfield/dmr_matmul/pulp_inject_fault.tcl diff --git a/carfield/dmr_matmul b/carfield/dmr_matmul new file mode 120000 index 0000000..c6cc223 --- /dev/null +++ b/carfield/dmr_matmul @@ -0,0 +1 @@ +../reliability_tests/dmr_matmul \ No newline at end of file diff --git a/carfield/dmr_matmul/Makefile b/carfield/dmr_matmul/Makefile deleted file mode 100644 index 66ed60e..0000000 --- a/carfield/dmr_matmul/Makefile +++ /dev/null @@ -1,12 +0,0 @@ -PULP_APP = test -PULP_APP_SRCS = dmr_matmul.c - -PULP_CFLAGS = -O3 -PULP_LDFLAGS = -lm - -ifeq ($(fault_inject),1) - export FAULT_INJECTION=1 - export FAULT_INJECTION_SCRIPT=$(CURDIR)/pulp_inject_fault.tcl -endif - -include $(PULP_SDK_HOME)/install/rules/pulp.mk diff --git a/carfield/dmr_matmul/dmr_matmul.c b/carfield/dmr_matmul/dmr_matmul.c deleted file mode 100644 index 953dfdf..0000000 --- a/carfield/dmr_matmul/dmr_matmul.c +++ /dev/null @@ -1,100 +0,0 @@ -/* -* @Author: Michael Rogenmoser -* @Date: 2023-02-17 18:00:21 -* @Last Modified by: Michael Rogenmoser -* @Last Modified time: 2023-02-17 18:15:33 -*/ -#include -#include -#include "matmul.h" - -#define N_ITERS 1 -#define max(x,y) (x > y ? x : y) -#define min(x,y) (x < y ? x : y) - -__attribute__ ((section(".heapsram"))) int A[SIZE][SIZE]; -__attribute__ ((section(".heapsram"))) int B[SIZE][SIZE]; -__attribute__ ((section(".heapsram"))) int C[SIZE][SIZE]; - -void initialize_mat(); - -void initialize_mat() { - int i,j; - - for (i=0;i Date: Thu, 10 Jul 2025 08:09:12 +0200 Subject: [PATCH 47/56] Revert "carfield: Adapt Carfield's DMR test to 8 cores" This reverts commit 26d7629629f2169325aaa529c1207ec3d7eb93f6. --- carfield/dmr_matmul | 1 - carfield/dmr_matmul/Makefile | 12 +++ carfield/dmr_matmul/dmr_matmul.c | 100 ++++++++++++++++++++++ carfield/dmr_matmul/matmul.h | 56 ++++++++++++ carfield/dmr_matmul/pulp_inject_fault.tcl | 51 +++++++++++ 5 files changed, 219 insertions(+), 1 deletion(-) delete mode 120000 carfield/dmr_matmul create mode 100644 carfield/dmr_matmul/Makefile create mode 100644 carfield/dmr_matmul/dmr_matmul.c create mode 100644 carfield/dmr_matmul/matmul.h create mode 100644 carfield/dmr_matmul/pulp_inject_fault.tcl diff --git a/carfield/dmr_matmul b/carfield/dmr_matmul deleted file mode 120000 index c6cc223..0000000 --- a/carfield/dmr_matmul +++ /dev/null @@ -1 +0,0 @@ -../reliability_tests/dmr_matmul \ No newline at end of file diff --git a/carfield/dmr_matmul/Makefile b/carfield/dmr_matmul/Makefile new file mode 100644 index 0000000..66ed60e --- /dev/null +++ b/carfield/dmr_matmul/Makefile @@ -0,0 +1,12 @@ +PULP_APP = test +PULP_APP_SRCS = dmr_matmul.c + +PULP_CFLAGS = -O3 +PULP_LDFLAGS = -lm + +ifeq ($(fault_inject),1) + export FAULT_INJECTION=1 + export FAULT_INJECTION_SCRIPT=$(CURDIR)/pulp_inject_fault.tcl +endif + +include $(PULP_SDK_HOME)/install/rules/pulp.mk diff --git a/carfield/dmr_matmul/dmr_matmul.c b/carfield/dmr_matmul/dmr_matmul.c new file mode 100644 index 0000000..953dfdf --- /dev/null +++ b/carfield/dmr_matmul/dmr_matmul.c @@ -0,0 +1,100 @@ +/* +* @Author: Michael Rogenmoser +* @Date: 2023-02-17 18:00:21 +* @Last Modified by: Michael Rogenmoser +* @Last Modified time: 2023-02-17 18:15:33 +*/ +#include +#include +#include "matmul.h" + +#define N_ITERS 1 +#define max(x,y) (x > y ? x : y) +#define min(x,y) (x < y ? x : y) + +__attribute__ ((section(".heapsram"))) int A[SIZE][SIZE]; +__attribute__ ((section(".heapsram"))) int B[SIZE][SIZE]; +__attribute__ ((section(".heapsram"))) int C[SIZE][SIZE]; + +void initialize_mat(); + +void initialize_mat() { + int i,j; + + for (i=0;i Date: Thu, 10 Jul 2025 09:12:42 +0200 Subject: [PATCH 48/56] carfield: Set DMR test to 8 cores --- carfield/dmr_matmul/dmr_matmul.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/carfield/dmr_matmul/dmr_matmul.c b/carfield/dmr_matmul/dmr_matmul.c index 953dfdf..0cfcc61 100644 --- a/carfield/dmr_matmul/dmr_matmul.c +++ b/carfield/dmr_matmul/dmr_matmul.c @@ -60,7 +60,7 @@ int main() { void matrix_multiplication(testresult_t *result, void (*start)(), void (*stop)()) { int coreid = rt_core_id(); - int numcores = 6; + int numcores = 4; int *CHKSUM_RESULT; short int i, iter, j, k; int lb, ub, chunk; From dd7ef996c74a5e8caf98788acd4f6effeec16743 Mon Sep 17 00:00:00 2001 From: aottaviano Date: Thu, 10 Jul 2025 09:12:56 +0200 Subject: [PATCH 49/56] [WIP] carfield: Comment printfs for DMR test --- carfield/dmr_matmul/dmr_matmul.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/carfield/dmr_matmul/dmr_matmul.c b/carfield/dmr_matmul/dmr_matmul.c index 0cfcc61..7e456fb 100644 --- a/carfield/dmr_matmul/dmr_matmul.c +++ b/carfield/dmr_matmul/dmr_matmul.c @@ -46,8 +46,8 @@ int main() { true , // Rapid recovery enabled true , // Setback enabled false); // Synch req - printf("Available Config: %x\n", hmr_get_available_config(rt_cluster_id())); - printf("after setup: %x\n", hmr_get_active_cores(rt_cluster_id())); + //printf("Available Config: %x\n", hmr_get_available_config(rt_cluster_id())); + //printf("after setup: %x\n", hmr_get_active_cores(rt_cluster_id())); hmr_setup_barrier(hmr_get_active_cores(0)); @@ -66,7 +66,7 @@ void matrix_multiplication(testresult_t *result, void (*start)(), void (*stop)() int lb, ub, chunk; if (coreid == 0){ - printf("Start ParMatrixMul\n",0,0,0,0); + //printf("Start ParMatrixMul\n",0,0,0,0); // initialize matrix A and B initialize_mat(); } From 3eb1a5cfb254695a9c780d62bf6efc631e56db90 Mon Sep 17 00:00:00 2001 From: Luigi Ghionda Date: Wed, 30 Apr 2025 12:18:45 +0200 Subject: [PATCH 50/56] [WIP] Adapt redmule software to `2.0.0` version --- hwpe/redmule/archi_redmule.h | 33 ++---- hwpe/redmule/hal_redmule.h | 214 ++++------------------------------- hwpe/redmule/redmule.c | 12 +- 3 files changed, 33 insertions(+), 226 deletions(-) diff --git a/hwpe/redmule/archi_redmule.h b/hwpe/redmule/archi_redmule.h index 40eceee..0f04614 100644 --- a/hwpe/redmule/archi_redmule.h +++ b/hwpe/redmule/archi_redmule.h @@ -92,32 +92,13 @@ #define REDMULE_SOFT_CLEAR 0x14 // Registers -#define REDMULE_REG_OFFS 0x40 -// #define REDMULE_REG_X_PTR 0x00 -// #define REDMULE_REG_W_PTR 0x04 -// #define REDMULE_REG_Z_PTR 0x08 -// #define REDMULE_MCFG0_PTR 0x0C -// #define REDMULE_MCFG1_PTR 0x10 -// #define REDMULE_ARITH_PTR 0x14 -#define REDMULE_REG_X_PTR 0x00 -#define REDMULE_REG_W_PTR 0x04 -#define REDMULE_REG_Y_PTR 0x08 -#define REDMULE_REG_Z_PTR 0x0C -#define REDMULE_REG_X_ITER_PTR 0x10 -#define REDMULE_REG_W_ITER_PTR 0x14 -#define REDMULE_REG_LEFTOVERS_PTR 0x18 -#define REDMULE_REG_LEFT_PARAMS_PTR 0x1C -#define REDMULE_REG_X_D1_STRIDE_PTR 0x20 -#define REDMULE_REG_W_TOT_LEN_PTR 0x24 -#define REDMULE_REG_TOT_X_READ_PTR 0x28 -#define REDMULE_REG_W_D0_STRIDE_PTR 0x2C -#define REDMULE_REG_YZ_TOT_LEN_PTR 0x30 -#define REDMULE_REG_YZ_D0_STRIDE_PTR 0x34 -#define REDMULE_REG_YZ_D2_STRIDE_PTR 0x38 -#define REDMULE_REG_X_ROWS_OFFS_PTR 0x3C -#define REDMULE_REG_X_BUFFER_SLOTS_PTR 0x40 -#define REDMULE_REG_X_TOT_LEN_PTR 0x44 -#define REDMULE_REG_OP_SELECTION 0x48 +#define REDMULE_REG_OFFS 0x40 +#define REDMULE_REG_X_PTR 0x00 +#define REDMULE_REG_W_PTR 0x04 +#define REDMULE_REG_Z_PTR 0x08 +#define REDMULE_MCFG0_PTR 0x0C +#define REDMULE_MCFG1_PTR 0x10 +#define REDMULE_ARITH_PTR 0x14 #define REDMULE_ECC_REG_OFFS 0x90 #define DATA_CORR_ERR 0x00 diff --git a/hwpe/redmule/hal_redmule.h b/hwpe/redmule/hal_redmule.h index 8fc5000..9e63b17 100644 --- a/hwpe/redmule/hal_redmule.h +++ b/hwpe/redmule/hal_redmule.h @@ -52,22 +52,18 @@ static inline void redmule_w_add_set (unsigned int value) { HWPE_WRITE(value, REDMULE_REG_OFFS + REDMULE_REG_W_PTR); } -static inline void redmule_y_add_set (unsigned int value) { - HWPE_WRITE(value, REDMULE_REG_OFFS + REDMULE_REG_Y_PTR); -} - static inline void redmule_z_add_set (unsigned int value) { HWPE_WRITE(value, REDMULE_REG_OFFS + REDMULE_REG_Z_PTR); } -// static inline void redmule_mcfg_set (uint32_t mcfg0, uint32_t mcfg1) { -// HWPE_WRITE(mcfg0, REDMULE_REG_OFFS + REDMULE_MCFG0_PTR); -// HWPE_WRITE(mcfg1, REDMULE_REG_OFFS + REDMULE_MCFG1_PTR); -// } -// -// static inline void redmule_arith_set (uint32_t arith) { -// HWPE_WRITE(arith, REDMULE_REG_OFFS + REDMULE_ARITH_PTR); -// } +static inline void redmule_mcfg_set (uint32_t mcfg0, uint32_t mcfg1) { + HWPE_WRITE(mcfg0, REDMULE_REG_OFFS + REDMULE_MCFG0_PTR); + HWPE_WRITE(mcfg1, REDMULE_REG_OFFS + REDMULE_MCFG1_PTR); +} + +static inline void redmule_arith_set(uint32_t arith) { + HWPE_WRITE(arith, REDMULE_REG_OFFS + REDMULE_ARITH_PTR); +} static inline void hwpe_trigger_job() { HWPE_WRITE(0, REDMULE_TRIGGER); @@ -159,183 +155,23 @@ static inline void mchan_free(int id) { *(volatile int*) DMA_STATUS_REGISTER = 0x1 << id; } -// void redmule_cfg (unsigned int x, unsigned int w, unsigned int z, -// uint16_t m_size, uint16_t n_size, uint16_t k_size, -// uint8_t gemm_op, uint8_t gemm_fmt){ -// -// uint32_t mcfg_reg0 = 0; -// uint32_t mcfg_reg1 = 0; -// uint32_t arith_reg = 0; -// -// mcfg_reg0 = (k_size << 16) | -// (m_size << 0); -// mcfg_reg1 = n_size << 0; -// -// arith_reg = (gemm_op << 10) | -// (gemm_fmt << 7); -// -// redmule_x_add_set ((unsigned int) x); -// redmule_w_add_set ((unsigned int) w); -// redmule_z_add_set ((unsigned int) z); -// redmule_mcfg_set ((unsigned int) mcfg_reg0, -// (unsigned int) mcfg_reg1); -// redmule_arith_set ((unsigned int) arith_reg); -// -// } - -void redmule_cfg (uint16_t m_size, uint16_t n_size, uint16_t k_size, uint8_t gemm_ops){ - uint32_t x_iters = 0; - uint32_t w_iters = 0; - uint32_t leftovers = 0; - uint32_t left_params = 0; - uint32_t x_d1_stride = 0; - uint32_t x_rows_offs = 0; - uint32_t w_tot_len = 0; - uint32_t w_d1_len = 0; - uint32_t w_d0_stride = 0; - uint32_t yz_tot_len = 0; - uint32_t yz_d0_stride = 0; - uint32_t yz_d2_stride = 0; - uint32_t tot_x_read = 0; - uint32_t x_buffer_slots = 0; - uint32_t op_selection = 0; - uint16_t tot_stores = 0; - uint16_t w_rows = n_size; - uint16_t depth = DATA_WIDTH/(ARRAY_HEIGHT*FPFORMAT); - uint8_t tile = ARRAY_HEIGHT*(PIPE_REGS + 1); - _Bool x_rows_sub = 0; - _Bool x_cols_sub = 0; - _Bool w_cols_sub = 0; - uint16_t x_rows_iter, - x_rows_iter_tmp, - w_rows_iter, - w_rows_iter_tmp; - uint16_t x_cols_iter, - x_cols_iter_tmp, - w_cols_iter, - w_cols_iter_tmp; - uint8_t x_rows_lftovr, - x_cols_lftovr, - w_rows_lftovr, - w_cols_lftovr, - slots; - - // Calculating the number of iterations alng the two dimensions of the X matrix - x_rows_iter_tmp = m_size/ARRAY_WIDTH; - x_cols_iter_tmp = n_size/tile; - - // Calculating the number of iterations alng the two dimensions of the W matrix - w_rows_iter_tmp = w_rows; - w_cols_iter_tmp = k_size/tile; - - // Calculating the residuals along the input dimensions - x_rows_lftovr = m_size - (x_rows_iter_tmp*ARRAY_WIDTH); - x_cols_lftovr = n_size - (x_cols_iter_tmp*tile); - - // Calculating the residuals along the weight dimensions - w_rows_lftovr = n_size - (ARRAY_HEIGHT*(w_rows/ARRAY_HEIGHT)); - w_cols_lftovr = k_size - (w_cols_iter_tmp*tile); - - if (w_cols_lftovr != 0) - w_cols_iter = w_cols_iter_tmp + 1; - else - w_cols_iter = w_cols_iter_tmp; - - if (w_rows_lftovr != 0) - w_rows_iter = w_rows_iter_tmp + ARRAY_HEIGHT - w_rows_lftovr; - else - w_rows_iter = w_rows_iter_tmp; - - if (x_cols_lftovr != 0) - x_cols_iter = x_cols_iter_tmp + 1; - else - x_cols_iter = x_cols_iter_tmp; - - if (x_rows_lftovr != 0) - x_rows_iter = x_rows_iter_tmp + 1; - else - x_rows_iter = x_rows_iter_tmp; - - if (x_cols_lftovr%depth != 0) - x_buffer_slots = x_cols_lftovr/depth + 1; - else - x_buffer_slots = x_cols_lftovr/depth; - - // Calculating the number of total stores - tot_stores = x_rows_iter*w_cols_iter; - - // Determining if input matrixes are sub-matrixes - if (m_size < ARRAY_WIDTH) - x_rows_sub = 1; - if (n_size < ARRAY_HEIGHT) - x_cols_sub = 1; - if (k_size < tile) - w_cols_sub = 1; - - // Operation selection - switch (gemm_ops) { - case MATMUL: - op_selection |= (RNE << 29 | RNE << 26 | OP_FMADD << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 0; - break; - - case GEMM: - op_selection |= (RNE << 29 | RNE << 26 | OP_FMADD << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; - break; - - case ADDMAX: - op_selection |= (RNE << 29 | RTZ << 26 | OP_ADD << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; - break; - - case ADDMIN: - op_selection |= (RNE << 29 | RNE << 26 | OP_ADD << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; - break; - - case MULMAX: - op_selection |= (RNE << 29 | RTZ << 26 | OP_MUL << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; - break; - - case MULMIN: - op_selection |= (RNE << 29 | RNE << 26 | OP_MUL << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; - break; - - case MAXMIN: - op_selection |= (RTZ << 29 | RNE << 26 | OP_MINMAX << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; - break; - - case MINMAX: - op_selection |= (RNE << 29 | RTZ << 26 | OP_MINMAX << 22 | OP_MINMAX << 18 | SRC_FMT << 15 | DST_FMT << 12) | 1; - break; - } - - // Storing iterations and residuals in registers - x_iters |= x_rows_iter << 16 | x_cols_iter << 0; - w_iters |= w_rows_iter << 16 | w_cols_iter << 0; - leftovers |= x_rows_lftovr << 24 | x_cols_lftovr << 16 | w_rows_lftovr << 8 | w_cols_lftovr << 0; - left_params |= tot_stores << 16 | x_rows_sub << 15 | x_cols_sub << 14 | w_cols_sub << 13; - x_d1_stride = ((4*FPFORMAT)/ADDR_WIDTH)*(((DATA_WIDTH/FPFORMAT)*x_cols_iter_tmp) + x_cols_lftovr); - x_rows_offs = ARRAY_WIDTH*x_d1_stride; - w_tot_len = w_rows_iter*w_cols_iter*x_rows_iter; - w_d0_stride = ((4*FPFORMAT)/ADDR_WIDTH)*(((DATA_WIDTH/FPFORMAT)*w_cols_iter_tmp) + w_cols_lftovr); - yz_tot_len = ARRAY_WIDTH*x_rows_iter*w_cols_iter; - yz_d0_stride = w_d0_stride; - yz_d2_stride = ARRAY_WIDTH*w_d0_stride; - tot_x_read = x_rows_iter*x_cols_iter*w_cols_iter; - - // Writing the computations in configuration register - HWPE_WRITE(x_iters , REDMULE_REG_OFFS + REDMULE_REG_X_ITER_PTR ); - HWPE_WRITE(w_iters , REDMULE_REG_OFFS + REDMULE_REG_W_ITER_PTR ); - HWPE_WRITE(leftovers , REDMULE_REG_OFFS + REDMULE_REG_LEFTOVERS_PTR ); - HWPE_WRITE(left_params , REDMULE_REG_OFFS + REDMULE_REG_LEFT_PARAMS_PTR ); - HWPE_WRITE(x_d1_stride , REDMULE_REG_OFFS + REDMULE_REG_X_D1_STRIDE_PTR ); - HWPE_WRITE(x_rows_offs , REDMULE_REG_OFFS + REDMULE_REG_X_ROWS_OFFS_PTR ); - HWPE_WRITE(tot_x_read , REDMULE_REG_OFFS + REDMULE_REG_TOT_X_READ_PTR ); - HWPE_WRITE(x_buffer_slots, REDMULE_REG_OFFS + REDMULE_REG_X_BUFFER_SLOTS_PTR ); - HWPE_WRITE(w_tot_len , REDMULE_REG_OFFS + REDMULE_REG_W_TOT_LEN_PTR ); - HWPE_WRITE(w_d0_stride , REDMULE_REG_OFFS + REDMULE_REG_W_D0_STRIDE_PTR ); - HWPE_WRITE(yz_tot_len , REDMULE_REG_OFFS + REDMULE_REG_YZ_TOT_LEN_PTR ); - HWPE_WRITE(yz_d0_stride , REDMULE_REG_OFFS + REDMULE_REG_YZ_D0_STRIDE_PTR ); - HWPE_WRITE(yz_d2_stride , REDMULE_REG_OFFS + REDMULE_REG_YZ_D2_STRIDE_PTR ); - HWPE_WRITE(op_selection , REDMULE_REG_OFFS + REDMULE_REG_OP_SELECTION ); +void redmule_cfg(unsigned int x, unsigned int w, unsigned int z, uint16_t m_size, uint16_t n_size, + uint16_t k_size, uint8_t gemm_op, uint8_t gemm_fmt) { + + uint32_t mcfg_reg0 = 0; + uint32_t mcfg_reg1 = 0; + uint32_t arith_reg = 0; + + mcfg_reg0 = (k_size << 16) | (m_size << 0); + mcfg_reg1 = n_size << 0; + + arith_reg = (gemm_op << 10) | (gemm_fmt << 7); + + redmule_x_add_set((unsigned int)x); + redmule_w_add_set((unsigned int)w); + redmule_z_add_set((unsigned int)z); + redmule_mcfg_set((unsigned int)mcfg_reg0, (unsigned int)mcfg_reg1); + redmule_arith_set((unsigned int)arith_reg); } void generate_test_data16(int x_start_addr, diff --git a/hwpe/redmule/redmule.c b/hwpe/redmule/redmule.c index 61a4b2b..878aafc 100644 --- a/hwpe/redmule/redmule.c +++ b/hwpe/redmule/redmule.c @@ -88,17 +88,7 @@ int main() { hwpe_soft_clear(); asm volatile("": : :"memory"); - // redmule_cfg ((unsigned int) x, - // (unsigned int) w, - // (unsigned int) y, - // m_size, n_size, k_size, - // (uint8_t) GEMM, - // (uint8_t) Float16); - redmule_x_add_set ((unsigned int) x); - redmule_w_add_set ((unsigned int) w); - redmule_y_add_set ((unsigned int) y); - redmule_z_add_set ((unsigned int) y); - redmule_cfg (m_size, n_size, k_size, gemm_ops); + redmule_cfg((unsigned int)x, (unsigned int)w, (unsigned int)y, m_size, n_size, k_size, (uint8_t)gemm_ops, (uint8_t)Float16); // Start RedMulE operation hwpe_trigger_job(); From 1345aebf3e1baddd12dc74c181dfad94a9da0342 Mon Sep 17 00:00:00 2001 From: Yvan Tortorella Date: Fri, 13 Jun 2025 15:50:50 +0200 Subject: [PATCH 51/56] Remove filters from RedMulE checking functions. --- hwpe/redmule/hal_redmule.h | 12 +- hwpe/redmule/inc/golden.h | 1538 ++++++++++++++++++++++++--------- hwpe/redmule/inc/tensor_dim.h | 6 +- hwpe/redmule/inc/w_2D.h | 82 +- hwpe/redmule/inc/w_input.h | 82 +- hwpe/redmule/inc/x_2D.h | 74 +- hwpe/redmule/inc/x_input.h | 74 +- hwpe/redmule/inc/y_2D.h | 74 +- hwpe/redmule/inc/y_input.h | 74 +- hwpe/redmule/inc/z_2D.h | 74 +- hwpe/redmule/inc/z_output.h | 74 +- 11 files changed, 1550 insertions(+), 614 deletions(-) diff --git a/hwpe/redmule/hal_redmule.h b/hwpe/redmule/hal_redmule.h index 9e63b17..65b1a2d 100644 --- a/hwpe/redmule/hal_redmule.h +++ b/hwpe/redmule/hal_redmule.h @@ -216,15 +216,7 @@ int redmule_compare16 (int z_start_addr, int m_size, int k_size) { int z = z_addr - z_start_addr; z_computed = *(uint32_t *)(z_addr); - if ( z_computed != z_oup[z/2] ) { - diff_1 = z_computed - z_oup[z/2]; - if (diff_1 > 3) { - diff_2 = z_oup[z/2] - z_computed; - if (diff_2 > 3) { - err++; - } - } - } + if ( z_computed != z_oup[z/2] ) err++; } return err; @@ -232,7 +224,7 @@ int redmule_compare16 (int z_start_addr, int m_size, int k_size) { } int redmule16_compare_int(uint32_t *actual_z, uint32_t *golden_z, int len) { - #define ERR 0x0011 + #define ERR 0x0000 uint32_t actual_word = 0; uint16_t actual_MSHWord, actual_LSHWord; uint32_t golden_word = 0; diff --git a/hwpe/redmule/inc/golden.h b/hwpe/redmule/inc/golden.h index f664e47..d18cb60 100644 --- a/hwpe/redmule/inc/golden.h +++ b/hwpe/redmule/inc/golden.h @@ -1,387 +1,1155 @@ /* Header file generated by RedMulE Golden Model */ -uint32_t golden [384] = { -0x48974845, -0x48384608, -0x487b4855, -0x48804869, -0x48b046d1, -0x483f48db, -0x485f48c9, -0x483a4881, -0x472c484b, -0x492b4762, -0x48fd4822, -0x492e488e, -0x484f483e, -0x46d749e8, -0x489d484b, -0x47e9490b, -0x47d2484f, -0x474744be, -0x46c047c7, -0x48af4727, -0x482d46c5, -0x482e483d, -0x479f4897, -0x4749488b, -0x46a8489a, -0x488b46f2, -0x47e84891, -0x483d4872, -0x46fd4716, -0x46a049b5, -0x47a446e7, -0x476748a1, -0x49354939, -0x48c14703, -0x48bd4863, -0x48cf4913, -0x48b848b6, -0x49204946, -0x48e1495e, -0x48b24938, -0x4882493a, -0x49d5483b, -0x49724911, -0x49df496b, -0x488848f2, -0x48214a46, -0x490c48c1, -0x48a349b2, -0x47b0463a, -0x476244cb, -0x46b94765, -0x4814466a, -0x47964631, -0x474b4666, -0x47044798, -0x47614838, -0x459047d3, -0x48a245ea, -0x484447f1, -0x4776484b, -0x46d847d6, -0x44d348f3, -0x478d46fa, -0x466e481e, -0x481e4827, -0x479445a2, -0x48064727, -0x48d5475d, -0x48284708, -0x480d4862, -0x48324895, -0x47f148bd, -0x46a7482a, -0x492d47b1, -0x4884484d, -0x485f48dc, -0x480c476d, -0x46d348e9, -0x48844728, -0x480e48a0, -0x48134862, -0x485a4675, -0x473847e8, -0x48234836, -0x482146e7, -0x47b34822, -0x48554846, -0x47174863, -0x47c14872, -0x488e46d5, -0x485f47e2, -0x48b8487c, -0x4788481e, -0x467748bd, -0x47f846c9, -0x47fc48fe, -0x47b247a0, -0x467e4588, -0x46c74662, -0x481246e8, -0x474e4536, -0x468f46c0, -0x4679481f, -0x46e246a1, -0x45604809, -0x47eb4630, -0x475746b5, -0x477f4848, -0x46d846a6, -0x459a4870, -0x46784670, -0x468c47d2, -0x48c44762, -0x479146e3, -0x486d46b1, -0x486747d0, -0x47f6468d, -0x475648a5, -0x48544857, -0x48384866, -0x46ec484d, -0x48f647d2, -0x4879484a, -0x483c4848, -0x4806471d, -0x473048fa, -0x47b84768, -0x46f94865, -0x491848a8, -0x486746ca, -0x48624800, -0x491048d3, -0x4849474e, -0x486b48eb, -0x48c54966, -0x483048f4, -0x477848f9, -0x499e481e, -0x48f148cf, -0x49234982, -0x47cf487c, -0x464949ea, -0x495e4773, -0x483f48b2, -0x497548a7, -0x481e4616, -0x4866481f, -0x486448b6, -0x487347dc, -0x487f485c, -0x491f4938, -0x48b6490d, -0x48a148f8, -0x492d4859, -0x4915489c, -0x48874899, -0x4859486c, -0x471e49ca, -0x49184867, -0x482748d3, -0x4998488b, -0x481d4704, -0x488048b8, -0x49444876, -0x48f2470c, -0x489b48b9, -0x48e54956, -0x48a548d6, -0x485648dc, -0x49ab484e, -0x490e48e0, -0x494548dd, -0x48dd488b, -0x47ea4a32, -0x49114835, -0x48194965, -0x481e460e, -0x4673452c, -0x4717475c, -0x46d046f6, -0x46bc4696, -0x481e4726, -0x46ea4763, -0x475846fe, -0x4627478b, -0x483f4704, -0x47b146ad, -0x48164792, -0x468446f2, -0x45a84827, -0x47a4472f, -0x462b4797, -0x48ab483f, -0x4863468f, -0x4766485a, -0x48cb481d, -0x490347dc, -0x483048fc, -0x483e48cc, -0x486448ab, -0x47634966, -0x499d4794, -0x488b488e, -0x496048dc, -0x484c4854, -0x474c499c, -0x48bc4826, -0x48834949, -0x4905489d, -0x481e4718, -0x48f448e3, -0x490448c1, -0x48b347e8, -0x48d44892, -0x489448ff, -0x488648d5, -0x480348fa, -0x492e47d2, -0x48b24870, -0x492b48e5, -0x4785487b, -0x471d49e3, -0x48bf4837, -0x48c4489b, -0x4871475c, -0x4811464a, -0x471c47af, -0x48174817, -0x484e463b, -0x464f477f, -0x487c4704, -0x472547a3, -0x462a4853, -0x4860465a, -0x48804736, -0x482b47e1, -0x46c04811, -0x475d48dc, -0x48064668, -0x46f44893, -0x49594858, -0x487b463d, -0x484e480f, -0x48a648c0, -0x48944847, -0x484a48a0, -0x48f4491e, -0x48b548fc, -0x47d248ce, -0x497f47db, -0x49394955, -0x48ce48a7, -0x48844890, -0x476349d6, -0x4922486e, -0x48c348f4, -0x491c47ec, -0x47834698, -0x47544715, -0x47524745, -0x4832472f, -0x48094817, -0x48c347f8, -0x480047e6, -0x473048b6, -0x48cb480a, -0x488e479e, -0x488e47c2, -0x47ee472f, -0x4744489d, -0x48514755, -0x47d34846, -0x48a04838, -0x47624634, -0x48064786, -0x482d47e3, -0x486c4726, -0x480347b7, -0x481448ac, -0x483948e0, -0x47504827, -0x48c546f2, -0x4886483f, -0x485648ad, -0x47a947e8, -0x47434937, -0x481f46d0, -0x4804484c, -0x481f47fd, -0x4813456d, -0x4807474d, -0x480e4688, -0x481046e8, -0x4799469f, -0x478f4853, -0x482447f2, -0x471f47d0, -0x485f46da, -0x481c4813, -0x4863482e, -0x480b4786, -0x46b848c9, -0x46e2475a, -0x46c54852, -0x480245af, -0x46c24466, -0x4743465d, -0x47ba46b7, -0x46c34636, -0x47844677, -0x47c2485a, -0x46ac46dc, -0x460e47de, -0x4834465f, -0x476947f4, -0x481046fc, -0x45ea45fd, -0x45b548d0, -0x47834704, -0x46c44830, -0x47c74759, -0x45b0453d, -0x47024741, -0x47934736, -0x47ba461b, -0x46dd470b, -0x470b4657, -0x4710470d, -0x468f486c, -0x46ba45c3, -0x483b479d, -0x477446c9, -0x46a746a9, -0x46064833, -0x46a94690, -0x46a746f5, -0x48bb47ac, -0x4803452c, -0x4824470f, -0x48cb47d5, -0x484a4707, -0x47974832, -0x482c4851, -0x4877487a, -0x465d4891, -0x48ce47f4, -0x48994898, -0x486a484e, -0x47f047ac, -0x4611493e, -0x489e47e2, -0x46af488c, -0x48364665, -0x46b645e4, -0x46b946a1, -0x46dd46c8, -0x474b4658, -0x4777467b, -0x47984769, -0x475e4785, -0x4656472a, -0x488145fb, -0x472d46fc, -0x47a3476e, -0x46ca465d, -0x45004855, -0x479a464f, -0x473846c3, -0x486c481e, -0x48014659, -0x477a4756, -0x487b47d5, -0x48084706, -0x4838484f, -0x48634870, -0x480648d3, -0x47714865, -0x494c46be, -0x484c4915, -0x48624900, -0x46e8481a, -0x46a04974, -0x483d4775, -0x480e487c, +uint32_t golden [1152] = { +0x4b524c08, +0x4bed4c14, +0x4ba64c2d, +0x4c104ca5, +0x4b6d4c37, +0x4bd24af1, +0x4c0f4c16, +0x4b964ccd, +0x4b9a4c23, +0x4bc84c05, +0x4b1a4ac8, +0x4b3f4c24, +0x4c014b58, +0x4b714bc1, +0x4c374c8e, +0x4cb54c12, +0x4bae4c0a, +0x4c0e4c56, +0x4a814bec, +0x4b4e4c14, +0x4b554bac, +0x4b224c20, +0x4c684c4e, +0x4c334bba, +0x4a3949ed, +0x4ae249d5, +0x4a024a83, +0x49f64aed, +0x4a4c4a1e, +0x4a1049a9, +0x49c549fd, +0x493c4b06, +0x4a314a76, +0x49a7496e, +0x48fc4842, +0x49a94a22, +0x4ade498d, +0x49724aaa, +0x4a2c4a76, +0x4b374a1a, +0x4a2b49b0, +0x4a214a37, +0x49814a4b, +0x49f04a4b, +0x4a014a9f, +0x49404a15, +0x4a8349f2, +0x4a274a01, +0x4b794b62, +0x4c004b15, +0x4b2d4b91, +0x4af04c1e, +0x4aed4aab, +0x4aaa4af1, +0x4adf4b65, +0x4a874c04, +0x4b204af3, +0x4ada4a7c, +0x4a3749e9, +0x4b3f4b2d, +0x4b034a84, +0x4a9f4b15, +0x4b1d4c34, +0x4bf94b50, +0x4afa4aed, +0x4b304b39, +0x4a2a4b22, +0x4a894bdf, +0x4ad64b97, +0x4a814b77, +0x4b924b56, +0x4b544adc, +0x4ada4b28, +0x4a7f4a71, +0x4a8f4aca, +0x4a0d4b14, +0x4ac14a41, +0x4a46497f, +0x4ae24a27, +0x4a2a4b06, +0x4a5249ef, +0x4a1d49e1, +0x49954964, +0x49b34a4a, +0x4ac8497d, +0x4a1b4a0d, +0x4ab94bc2, +0x4b4949ba, +0x4aa14b0a, +0x4b134ae4, +0x48d54aae, +0x49f04b35, +0x49cb4ae6, +0x49ff4b49, +0x4b494b14, +0x4a814a01, +0x4a354a40, +0x4aad4a90, +0x4ad14ada, +0x4b094a6c, +0x4a4d4a96, +0x49e3492f, +0x4a794a74, +0x4a154b59, +0x4a9649e7, +0x49bb49ea, +0x49354967, +0x4a3c4a18, +0x4aeb49c3, +0x4a8f4b1f, +0x4b064bee, +0x4b6c4a18, +0x49e24adf, +0x4aac4aa7, +0x48d44ab5, +0x4a704ac8, +0x4a5549cd, +0x4a394ae7, +0x4b3b4af1, +0x4abd49e9, +0x49f649cc, +0x49d549f2, +0x49cb4a75, +0x49fd4ae2, +0x49b74a00, +0x494049d2, +0x4a1e49f4, +0x49ad4a2b, +0x49644948, +0x4a2e499d, +0x48eb4930, +0x498d4a53, +0x4a10497b, +0x49254a5f, +0x490e4b0b, +0x4a734a4a, +0x493a49d4, +0x49ee49a8, +0x48f54a23, +0x49344a27, +0x4a0149ab, +0x497549f0, +0x4a754a77, +0x495f493c, +0x4ae24ac3, +0x4b424a29, +0x49fe4ad9, +0x4b044b00, +0x4b224b30, +0x4a0e49f6, +0x4abc4ae3, +0x4a6a4b47, +0x4a5e4a5b, +0x4a804a42, +0x49be49a1, +0x4a104b36, +0x4ae54a2b, +0x4aa44ad0, +0x4aad4b3c, +0x4c1a4a2a, +0x4b2f4b2c, +0x4a774aa0, +0x49e84af6, +0x4a0a4a4b, +0x4a144ae4, +0x4a1d4aa8, +0x4bae4ae0, +0x4b3a49c9, +0x4a854af0, +0x4a914a70, +0x4aba4a7c, +0x4a9a4ae7, +0x4ab54b17, +0x4a544a25, +0x4b594ab5, +0x4a644b5b, +0x49e14a74, +0x4a664ac6, +0x498f49cb, +0x4ab74b1f, +0x4af44a0a, +0x49fa4aab, +0x4abb4c05, +0x4bbe4a46, +0x4a374a9f, +0x4a694a8c, +0x492c4a50, +0x49c64b10, +0x4a914b26, +0x4a674b2b, +0x4bb24b4f, +0x4a864a05, +0x4a794b3a, +0x4b1e4ac0, +0x4b054ac3, +0x49e14c11, +0x4a964aa4, +0x4aab4a06, +0x4a664acc, +0x4aa74b27, +0x4aeb4a37, +0x4aae4a98, +0x492e4973, +0x4a1c4ad4, +0x4aca49f9, +0x4a514ac8, +0x4a874ba4, +0x4b3c4ac1, +0x4a8f4add, +0x4ad74a7d, +0x49b94adc, +0x4a954aca, +0x4a374ada, +0x4ad04b55, +0x4b1c4b78, +0x4b1f4a29, +0x4aca4a63, +0x4a9249b7, +0x49fe4ada, +0x4a3d4ab5, +0x49d94a42, +0x4a0049fc, +0x4a344ade, +0x49314b06, +0x4a634943, +0x497849e9, +0x48f24965, +0x49f54a89, +0x49ac4a38, +0x49b14a38, +0x4a094b82, +0x4b644a31, +0x4a2c4a91, +0x4a974a1e, +0x48a04ab3, +0x496d49fd, +0x494e4a1e, +0x49604a0e, +0x4b1a4b38, +0x49f649ae, +0x4a514a7f, +0x4a5f4a0d, +0x4a4c4a11, +0x49aa4b44, +0x4a7e4a60, +0x4a0c4a36, +0x4a564a27, +0x497d4b50, +0x49f34a2b, +0x4a214a2f, +0x491448db, +0x49f74a92, +0x4a7d499d, +0x49c44a42, +0x49f04ab0, +0x4ad24a17, +0x4a654a17, +0x49bc4a4a, +0x496c49b2, +0x4a014acc, +0x49f24a5e, +0x495d4a87, +0x4a7c4af6, +0x4ac94a0d, +0x4a5b4988, +0x4a174a71, +0x4a1a4ae3, +0x4a7e4a00, +0x49fd4a47, +0x49dd499f, +0x4a224a83, +0x49c64a19, +0x4aa24a0a, +0x49b14971, +0x48a44890, +0x49a84a89, +0x49bc49fa, +0x49e24996, +0x49df4b36, +0x4b514a58, +0x4a544b09, +0x4a2d4a87, +0x493b4a78, +0x494d49cd, +0x497a4983, +0x4a504a78, +0x4b0b4a81, +0x4a414921, +0x4aaf4aa6, +0x4ade4ab0, +0x4a804b5d, +0x4a434bb8, +0x4a734a9f, +0x4a444ae0, +0x4aef4ae1, +0x4a7f4b70, +0x4b074a1c, +0x4a294a54, +0x49d0494e, +0x4a594ac3, +0x4abe49ec, +0x4a7c4abe, +0x4b144afe, +0x4bbc4a27, +0x4adc4ad0, +0x4b054b72, +0x49714ae4, +0x4a7a4a4b, +0x4a084a8d, +0x4a514ae2, +0x4b014b1c, +0x4b184a4a, +0x4a4b4a35, +0x4a1749cf, +0x49dd4a6e, +0x4a1d4a79, +0x49ad4ac7, +0x49c44924, +0x4a9d4a33, +0x4a364a98, +0x4a3049b6, +0x4a15498d, +0x48ea48da, +0x49e24a14, +0x4a4449ab, +0x49734a2c, +0x4a2b4ba2, +0x4afd4a29, +0x49944a81, +0x4a504a16, +0x48754a68, +0x49534a25, +0x4a1f4a2e, +0x49d24ad3, +0x4b0e49dc, +0x4a6449e3, +0x4b454a67, +0x4b164a92, +0x4a7e4b93, +0x4a8a4ae8, +0x4b124ade, +0x4a984a76, +0x4b004a57, +0x4a4f4b10, +0x49fb4a7b, +0x4ac34a48, +0x496b4998, +0x4aa74b02, +0x4af44a63, +0x4a254ad6, +0x4abe4b23, +0x4bdc4af0, +0x4a6f4acb, +0x4ae74a8a, +0x49d64a40, +0x4a1b4a4e, +0x4b3e4ad3, +0x4ab84b6e, +0x4b854b19, +0x4ad64a20, +0x492c4916, +0x49a848c6, +0x493d48eb, +0x492049e4, +0x490f497a, +0x489f48cd, +0x497b49b9, +0x490d4a0d, +0x490a4968, +0x490248b5, +0x481d489d, +0x48fb4933, +0x491e489d, +0x48fd49a4, +0x497649a8, +0x49c048ed, +0x490149d0, +0x495a497f, +0x489f48db, +0x4906490c, +0x491248fd, +0x4908499c, +0x49b64922, +0x49c74852, +0x495749eb, +0x49f149e9, +0x49dd4a79, +0x49824a74, +0x49f449c2, +0x494f4937, +0x49ac4a28, +0x48ad49cf, +0x4a23496a, +0x4a834950, +0x495548bc, +0x49924a60, +0x499b49a3, +0x492d4a31, +0x49804aea, +0x4a7c499f, +0x490449a9, +0x4a344a17, +0x48f749d9, +0x49a649a2, +0x4a044a91, +0x493149ee, +0x4acc4a4f, +0x4a0149a6, +0x4af74a67, +0x4aca4a92, +0x4b144b39, +0x4ac64b05, +0x4a764a53, +0x4a0a4a41, +0x4a214a65, +0x4a194ba7, +0x4a7d49ea, +0x4a2d4a08, +0x494e4930, +0x49b64ab8, +0x4ab749b8, +0x4a304b4d, +0x4a9b4b1c, +0x4bbb4abe, +0x4a164ada, +0x4a794aeb, +0x499b4aa2, +0x49eb4afd, +0x4a654a51, +0x49de4b60, +0x4ac04bad, +0x4a7c4a21, +0x4b304b17, +0x4bd34afa, +0x4ae44b33, +0x4bb64be9, +0x4b7f4b60, +0x4a0f4ad4, +0x4b4a4bd2, +0x4a494bdc, +0x4b734a7d, +0x4a984af5, +0x49e04999, +0x4a914b70, +0x4b444abe, +0x4adb4b2b, +0x4b224bf0, +0x4c3c4a02, +0x4b2d4bdf, +0x4b3b4b1a, +0x4a094bec, +0x4a8d4b54, +0x4ae94b11, +0x4a1b4b63, +0x4bb44beb, +0x4b1e4b1d, +0x4a5d49da, +0x4ae34a46, +0x49ac4a1f, +0x4a064add, +0x4a4c4b11, +0x49af4990, +0x4a164a0f, +0x496a4b22, +0x4a0e4a1e, +0x4a154a3f, +0x49624921, +0x49da4a12, +0x4a5149ed, +0x49a94a7c, +0x4a464b0c, +0x4b3749cb, +0x4a6d4ace, +0x49994a66, +0x495a4a3a, +0x49214abf, +0x499249da, +0x495d4a93, +0x4a964aa8, +0x4a254a29, +0x4a0a497d, +0x49d249bf, +0x49934a66, +0x49f34a2a, +0x4a184a4c, +0x490c49a3, +0x4a3249b4, +0x49f34a2d, +0x4a0c4a06, +0x49ed4936, +0x493648e1, +0x4a054a33, +0x4a494914, +0x495e4a30, +0x49f14a73, +0x4ad74966, +0x49c049fa, +0x499549f4, +0x49184a12, +0x49a34a91, +0x493b4a15, +0x49454b13, +0x4a494a16, +0x49cd4979, +0x4ad54a5e, +0x4ac24ad2, +0x4a704af9, +0x4afb4bb7, +0x4ac84ba0, +0x4aa74a43, +0x4b454b03, +0x4a084bd9, +0x4aea4a33, +0x4a974a3f, +0x496149da, +0x4ab94b20, +0x4a8f4a73, +0x4a6e4a2c, +0x4a6d4bda, +0x4bf04a5a, +0x4af74b7b, +0x4aba4b3d, +0x49614b3f, +0x49934ada, +0x49bf4ae4, +0x4a6d4b0a, +0x4bd74ace, +0x4aeb4a61, +0x49b649cb, +0x4a4d4996, +0x497c4a39, +0x4a694afa, +0x49404a2b, +0x492d49c0, +0x49b44a15, +0x49ae4a40, +0x49684969, +0x498149ea, +0x48b348ca, +0x49604a18, +0x499049ac, +0x49584a17, +0x4a164b2a, +0x4aa04a3c, +0x495349a7, +0x4a564996, +0x491849eb, +0x49514948, +0x49364982, +0x499249b4, +0x4a174a9c, +0x49ee492e, +0x4aa54af4, +0x4a8e4a04, +0x4a144ad9, +0x4b844b0e, +0x4a664bb4, +0x4a6b4a2a, +0x4a594a74, +0x49a54af0, +0x4aea4a79, +0x4a904a90, +0x49824961, +0x4a8e4aea, +0x4af649f1, +0x49e04a63, +0x4a344b74, +0x4b8d4a68, +0x49fc4aa4, +0x49b34a60, +0x4a114a4c, +0x49064a71, +0x49c14a47, +0x49764a81, +0x4adb4b2d, +0x4a2d49e1, +0x49c049a1, +0x498b49b6, +0x494d49eb, +0x49d449fd, +0x4a814931, +0x49534961, +0x498949c9, +0x497649cd, +0x49a448fb, +0x496948c5, +0x48e348d0, +0x495c4a23, +0x4a1b48eb, +0x48f94a07, +0x49824a6d, +0x4a3d49c4, +0x495c498b, +0x4a104931, +0x48fe49ce, +0x49a5497b, +0x49a64a09, +0x49534aa2, +0x4a3049ff, +0x49c348f5, +0x49684a01, +0x4951497d, +0x48fd4a12, +0x49c849d8, +0x49c04987, +0x498148ab, +0x49d4495e, +0x48dc49b8, +0x491b490d, +0x491f48cd, +0x48814840, +0x485749f7, +0x495b493c, +0x497a495a, +0x498c4a34, +0x4a4e4900, +0x49aa49bb, +0x49bd499f, +0x48a4493b, +0x49454977, +0x48ef4945, +0x4910499c, +0x4aad49c4, +0x492e48f9, +0x4b0c4b0c, +0x4b704b29, +0x4a9a4b6c, +0x4af24bcb, +0x4b384af1, +0x4ac14a0d, +0x4b254b1a, +0x4a264be6, +0x4acc4b43, +0x4a6d4a96, +0x49f34a40, +0x4adb4aea, +0x4b3a4b0a, +0x4a974b1a, +0x4acc4bf5, +0x4c0b4b64, +0x4a4d4adc, +0x4aaa4ab0, +0x49ff4a75, +0x4aa34ad9, +0x4ab84aed, +0x4a624b42, +0x4b614b21, +0x4ad84a65, +0x4aae4ac3, +0x4ac049e7, +0x4a2a4ab9, +0x4a994aeb, +0x4ad44add, +0x49c449e2, +0x4a944af6, +0x4a3e4aac, +0x4ac04a53, +0x4a7849a9, +0x49ad4901, +0x4a044ac8, +0x4ac349e4, +0x4a0e4aa7, +0x4a4d4b92, +0x4b274a04, +0x4a054ae6, +0x4a0c4a60, +0x498a4a26, +0x4a274b16, +0x4a6d4ab3, +0x49bf4afa, +0x4b144ad0, +0x4a9f49c4, +0x4a454a9e, +0x4ae14a66, +0x4ad54a7a, +0x4a8c4b8c, +0x4b0d4a75, +0x49a449cb, +0x4a6f4b1a, +0x4a314ba5, +0x49f54a24, +0x4a824aa7, +0x49574913, +0x4a024a96, +0x4a5f4a2c, +0x4a5d4b2b, +0x4b444c22, +0x4c064a59, +0x4a3d4b22, +0x4af34ada, +0x48d74ad3, +0x4ab24af6, +0x4ae34b11, +0x4a8a4bcc, +0x4b0a4b0a, +0x4b424a53, +0x4a3a4a5f, +0x4abe49be, +0x4a3c4a91, +0x49fc4b64, +0x4a5f4a28, +0x49c449fe, +0x4a404a75, +0x4a134b24, +0x4a6849d0, +0x4a3a4973, +0x495c492c, +0x49a34aa0, +0x4a7d4978, +0x4a214afa, +0x4a6e4b08, +0x4b854a45, +0x49bd4a4e, +0x4aa74aae, +0x48fd4a0f, +0x4a0c4a4f, +0x4a064a7a, +0x49924a62, +0x4aa04b2c, +0x4a8d4a27, +0x4ad24ad6, +0x4b364a41, +0x49ce4b2a, +0x4a884b5d, +0x4ab24a5d, +0x4a044a18, +0x4a794a93, +0x49c54b1a, +0x4a2c4a48, +0x4a7e4a40, +0x49c04972, +0x49dc4abc, +0x4a5d4a64, +0x4a584b30, +0x4a5a4be0, +0x4bcb4aae, +0x4a4f4a87, +0x4ace4aa0, +0x49704a8b, +0x49a34ae7, +0x49cf4a91, +0x4a814b21, +0x4b6b4b30, +0x49f94a06, +0x4a1d4a27, +0x4a344a0e, +0x49af49de, +0x49ba4a3a, +0x4a0b4a05, +0x49944994, +0x495d4a57, +0x48e54a8f, +0x49bf498e, +0x499c4966, +0x48fb48b0, +0x49924a33, +0x49f449aa, +0x49d04a13, +0x4a344aee, +0x4ac449fb, +0x49514a08, +0x49e54a3d, +0x48c449ba, +0x49454a19, +0x495749f8, +0x48d24a47, +0x4a144a4e, +0x496d492f, +0x4a3c4a89, +0x4ac449e3, +0x4a8e4a78, +0x4a2e4b2b, +0x4a624b0e, +0x49f64a48, +0x4aa649eb, +0x49ec4b4d, +0x4afe4a5f, +0x4a6c4a79, +0x49b448cc, +0x4adb4a46, +0x4a8b498f, +0x49894a4c, +0x4a7e4b20, +0x4b234ada, +0x49cb4a8c, +0x4a514a58, +0x49894a2a, +0x4a214a50, +0x49f84a13, +0x49c74ae8, +0x4ace4adc, +0x4a214a18, +0x49d248d2, +0x49e94985, +0x49604a0f, +0x498b49c7, +0x4960497c, +0x48bb4886, +0x48f249c3, +0x48b249fc, +0x49c549ae, +0x49364891, +0x482b4849, +0x493e49ed, +0x492c4999, +0x493c4977, +0x497a4a50, +0x4ae549f9, +0x48c949c3, +0x49c74a5e, +0x48c049a0, +0x48d3498d, +0x4a094988, +0x48f149e4, +0x4a274930, +0x49494910, +0x4be44bad, +0x4b7a4aac, +0x4aff4b3f, +0x4aef4bfa, +0x4ba64b76, +0x4a774aed, +0x4b2b4b38, +0x4aa04bb9, +0x4b374b70, +0x4b194ac1, +0x4a2f49eb, +0x4ac54bd3, +0x4b3a4a6f, +0x4a734b80, +0x4aad4c1f, +0x4c074b16, +0x4aec4b16, +0x4b0c4a7b, +0x4acc4b33, +0x4a754b76, +0x4add4bd2, +0x4a434bbb, +0x4c064bde, +0x4b094b57, +0x4a474a13, +0x4a944a38, +0x4a224a6f, +0x499b4ab0, +0x49fc4a1a, +0x492e4986, +0x4a4a4a1e, +0x49a64afd, +0x49d949f6, +0x4a644a56, +0x4902492d, +0x499a49df, +0x49c2497e, +0x49c84a8f, +0x4a7e4af5, +0x4a964a23, +0x49f84a49, +0x4a024a11, +0x490b4a5c, +0x49954a5e, +0x49cf4a0f, +0x4a744ae7, +0x4a954aca, +0x49f549ad, +0x4a494aaa, +0x4a394a5b, +0x49dd4ad5, +0x4a954af8, +0x4a3e4a50, +0x4a4249f6, +0x4ade4a8c, +0x4a2b4ad3, +0x4a4e4a3e, +0x4aa04a6b, +0x498e49a6, +0x4a144afb, +0x4a454998, +0x49df4a5f, +0x4a554b9e, +0x4b604ada, +0x4a5d4a61, +0x4acc4ae5, +0x49324a44, +0x4a2c4a36, +0x4a5c49e8, +0x4a2b4a9b, +0x4b664ac0, +0x4ad649ff, +0x4b934ac2, +0x4b174a9c, +0x4ab14ad9, +0x4b124b2e, +0x4a884a89, +0x4ace4a85, +0x4a5e4b8e, +0x4a6d4b3d, +0x4a3c49cf, +0x4a944a4f, +0x495f49ce, +0x4ac54af2, +0x4ad04a56, +0x4a1b4b63, +0x4ac34bd6, +0x4b794a51, +0x4a9f4a8e, +0x4ae34a0f, +0x49144aae, +0x49ed4a44, +0x4a974a82, +0x4a884b41, +0x4b164bba, +0x4a7e49d2, +0x4a6e49f2, +0x4a5c4a81, +0x4a0a4aeb, +0x4ac24a73, +0x4a6e4a93, +0x49c84920, +0x4acd4a41, +0x499b4b05, +0x49e24a4e, +0x4a3449a7, +0x49694929, +0x4a624a56, +0x4b3f49b6, +0x49fb4aec, +0x4a5e4afa, +0x4b9949f1, +0x49a24a7e, +0x4a004ad1, +0x496b4a2a, +0x49b84a5e, +0x4b114ace, +0x49f64ae2, +0x4b004a39, +0x4a4a4a3c, +0x4a624a92, +0x4a794a4e, +0x4a214ab0, +0x4a4d4b76, +0x4a5a4a1d, +0x4a3149ce, +0x4a284a51, +0x49324b1b, +0x4a1a491f, +0x4a2e4a33, +0x4a17490f, +0x4aa24a43, +0x4a914a26, +0x499c4a4e, +0x4a5b4b51, +0x4b794a4c, +0x4a3749f6, +0x4ab44a49, +0x490649cd, +0x49af49f3, +0x4a024af1, +0x4a914a4a, +0x4ab34aa5, +0x4a67499f, +0x4a3f4a3b, +0x4aa549f3, +0x498049cb, +0x49dc49f7, +0x49bd4a70, +0x491b48ff, +0x49d54932, +0x49c54a8c, +0x490d49bb, +0x49d749d9, +0x486548cf, +0x492c49cf, +0x49fd4909, +0x49cf4a33, +0x49e34aeb, +0x4a4a4a32, +0x494d499a, +0x4a3849a3, +0x494f49d3, +0x495d4a43, +0x4a3b4ab2, +0x49914a7d, +0x4aeb49c9, +0x4985499e, +0x4bb34b7c, +0x4b414ac0, +0x4b3b4afa, +0x4b114c33, +0x4ada4b6b, +0x4b204b1c, +0x4b6b4b91, +0x4a264c57, +0x4b184a9b, +0x4aca4a93, +0x4a504a1d, +0x4a304afe, +0x4b6a4a3c, +0x4a5f4b8d, +0x4b764b91, +0x4bc24acc, +0x4af44b2c, +0x4b3c4aea, +0x49e54b5e, +0x4a444b18, +0x4a7a4b2f, +0x4a2f4a6b, +0x4be24bc0, +0x4a7a4aaa, +0x4ad34a84, +0x4b2c4a28, +0x4a4d4afb, +0x4a964c18, +0x4a8b4abc, +0x4a0a4a34, +0x4aeb4b0c, +0x4a674b93, +0x4a984af0, +0x4a5f4a26, +0x49c949cc, +0x4a634a4d, +0x4b3c4a12, +0x4a1c4b03, +0x4ad54b70, +0x4b2b4ac7, +0x4a974adf, +0x4a714a39, +0x499c4a92, +0x4a034a83, +0x4a134ae5, +0x4a364a6a, +0x4b454b06, +0x4ad249f3, +0x4a4949f7, +0x4ab14a91, +0x4a6f4b0f, +0x4a6e4b24, +0x4a784b0b, +0x4a8e4a1e, +0x4ad54a2d, +0x4a694b14, +0x49d94a34, +0x4a7f4a70, +0x49504946, +0x49e94a89, +0x4b5c49e3, +0x4a4e4ae0, +0x4a304af8, +0x4b044a25, +0x4ad14a7e, +0x4a904ac7, +0x49474a2e, +0x49754a9d, +0x4a894ac1, +0x4a1e4ae8, +0x4b484b18, +0x49fc4a13, +0x4b394aec, +0x4b394a12, +0x4aca4ae8, +0x4a6b4bdf, +0x4b664ad5, +0x4a1b4a82, +0x4ada4b03, +0x4a724bde, +0x4ad84aef, +0x4ac84a59, +0x4a4149ba, +0x4a6c4b73, +0x4b274a54, +0x4ac74b94, +0x4acb4b64, +0x4be24a2d, +0x4a564ae6, +0x4b2c4a62, +0x49db4b0f, +0x4afd4afb, +0x4afe4b23, +0x49cc4bbc, +0x4b814b54, +0x4b3a4a8f, +0x4ac54a6c, +0x49f94a37, +0x4ab94a91, +0x49f94bb2, +0x4a3b4a8d, +0x4a274aab, +0x4ad34a9c, +0x4a7f4b24, +0x4a784aee, +0x4a164ab4, +0x499b49e3, +0x49fb4ae9, +0x4a36496b, +0x49bd4a04, +0x4a084b04, +0x4ae54a91, +0x49fe4ab2, +0x4a484a79, +0x48ec4a54, +0x49b24acc, +0x49cf4ad1, +0x4a1a4b09, +0x4aa64b3f, +0x4a144979, +0x4a5a4b1c, +0x4adc4a71, +0x4a604b35, +0x4a2f4aeb, +0x4a9d4a3c, +0x4a8549cd, +0x4a8d4ad1, +0x49724c07, +0x4a774a2c, +0x49aa4a55, +0x49734922, +0x4a314af1, +0x4aae4995, +0x4a504a97, +0x4ac64b17, +0x4b534a35, +0x49ce4ad4, +0x4b8a4af5, +0x49824ad5, +0x4a234ad1, +0x4a904a58, +0x49b14afa, +0x4af34b43, +0x4a6a4968, +0x4a624a3c, +0x4a374a08, +0x49d44a1c, +0x4a1a4aa9, +0x4a4d4a90, +0x49b949e3, +0x49d14a1e, +0x49eb4a88, +0x49c349ea, +0x4a2b4a58, +0x491748e7, +0x4a0e49b8, +0x4a5749b1, +0x496c4a9a, +0x49eb4b0c, +0x4ae44a17, +0x49cc4a90, +0x49b649b6, +0x49494a15, +0x495b4a79, +0x49e54a43, +0x49fe4a84, +0x4a7c4a91, +0x4a4f497a, }; \ No newline at end of file diff --git a/hwpe/redmule/inc/tensor_dim.h b/hwpe/redmule/inc/tensor_dim.h index 21bd0d8..ab5aca4 100644 --- a/hwpe/redmule/inc/tensor_dim.h +++ b/hwpe/redmule/inc/tensor_dim.h @@ -2,9 +2,9 @@ #ifndef __TENSOR_DIM__ #define __TENSOR_DIM__ -#define M_SIZE 24 -#define N_SIZE 32 -#define K_SIZE 32 +#define M_SIZE 48 +#define N_SIZE 48 +#define K_SIZE 48 #define SRC_FMT FP16 #define DST_FMT FP16 #define FPFORMAT 16 diff --git a/hwpe/redmule/inc/w_2D.h b/hwpe/redmule/inc/w_2D.h index 9409c64..32e8267 100644 --- a/hwpe/redmule/inc/w_2D.h +++ b/hwpe/redmule/inc/w_2D.h @@ -1,35 +1,51 @@ /* Header file generated by RedMulE Golden Model */ -uint16_t w_inp_2D [32][32] = { -0x311a, 0x39e0, 0x387d, 0x3a4a, 0x386f, 0x3ada, 0x392f, 0x3854, 0x3014, 0x2fd2, 0x31c9, 0x2fca, 0x2e55, 0x3bc8, 0x396d, 0x3b1d, 0x39f6, 0x333a, 0x3908, 0x3628, 0x3bab, 0x3b8b, 0x3b4a, 0x322d, 0x3925, 0x317a, 0x3725, 0x31c2, 0x3066, 0x38f3, 0x3a17, 0x3476, -0x3bda, 0x3196, 0x3922, 0x3680, 0x396a, 0x3021, 0x3761, 0x374d, 0x2fc2, 0x3967, 0x3b94, 0x33b5, 0x3797, 0x34d6, 0x3655, 0x2176, 0x39bc, 0x3999, 0x3658, 0x3904, 0x3759, 0x2ade, 0x3a5a, 0x3b78, 0x36c7, 0x2d01, 0x3b58, 0x2d9a, 0x373d, 0x3952, 0x38e8, 0x3887, -0x37b6, 0x3a88, 0x2f8a, 0x2d79, 0x3413, 0x3421, 0x3976, 0x32b2, 0x3446, 0x2d99, 0x3a56, 0x3322, 0x3b49, 0x39fa, 0x3acd, 0x3af6, 0x304c, 0x3abb, 0x3a83, 0x38b2, 0x3ab9, 0x363e, 0x389f, 0x31bb, 0x38e1, 0x3bc4, 0x3b9b, 0x2984, 0x3a43, 0x3b2f, 0x35d6, 0x3bda, -0x2df3, 0x3bf8, 0x2acc, 0x378b, 0x3555, 0x2e59, 0x31d4, 0x34ec, 0x3a46, 0x3bab, 0x3214, 0x3161, 0x3470, 0x3a03, 0x368e, 0x31ad, 0x27cb, 0x2ecb, 0x3422, 0x39f7, 0x3644, 0x3a77, 0x313f, 0x34f2, 0x39b3, 0x3bf2, 0x379a, 0x3456, 0x35fe, 0x3ae7, 0x3964, 0x385f, -0x3b16, 0x3999, 0x3833, 0x2eda, 0x3afd, 0x3a4a, 0x3ba2, 0x2bd4, 0x3b38, 0x31a2, 0x32dd, 0x353c, 0x366f, 0x375e, 0x3821, 0x367a, 0x3b44, 0x39e6, 0x3787, 0x339e, 0x39d7, 0x38c6, 0x37d5, 0x342f, 0x3984, 0x319b, 0x33b5, 0x35ab, 0x398a, 0x374e, 0x36b6, 0x3b21, -0x3bbb, 0x2ab3, 0x2ad5, 0x33bc, 0x2bef, 0x3780, 0x3738, 0x3a0b, 0x3b09, 0x30ca, 0x384e, 0x3ab3, 0x39bd, 0x3453, 0x3a6d, 0x3957, 0x2c10, 0x30e9, 0x35d4, 0x3aef, 0x3be9, 0x39ad, 0x3a74, 0x3af9, 0x3739, 0x2d4d, 0x39fe, 0x3b72, 0x2c57, 0x398c, 0x381f, 0x3930, -0x3820, 0x321b, 0x3964, 0x2964, 0x33a0, 0x2d00, 0x2490, 0x336b, 0x3465, 0x3b2e, 0x3aa0, 0x371f, 0x300e, 0x3a09, 0x3bf1, 0x25cc, 0x3b6f, 0x3384, 0x3a88, 0x3acb, 0x3814, 0x36d0, 0x3081, 0x3a2c, 0x3353, 0x39cb, 0x31ed, 0x3af6, 0x3721, 0x36c7, 0x2ce2, 0x390d, -0x3698, 0x3ab2, 0x3b3e, 0x2eb4, 0x3998, 0x39e3, 0x3a77, 0x3632, 0x2c12, 0x3bd5, 0x3ba3, 0x3bba, 0x323c, 0x367b, 0x3557, 0x39c8, 0x37db, 0x3b45, 0x3b6e, 0x3931, 0x3121, 0x3a8d, 0x3a55, 0x3b9b, 0x358a, 0x3925, 0x3491, 0x3912, 0x3b6b, 0x3584, 0x32df, 0x3120, -0x32b2, 0x3b0a, 0x2cad, 0x3465, 0x3ad3, 0x3bcd, 0x363b, 0x3afe, 0x354b, 0x3374, 0x39af, 0x3b7f, 0x308c, 0x2e72, 0x3380, 0x3b70, 0x3902, 0x38d8, 0x39f3, 0x3a4b, 0x3853, 0x397b, 0x2ebe, 0x387f, 0x2845, 0x37e2, 0x360f, 0x370b, 0x3acb, 0x35d4, 0x36e6, 0x3262, -0x2e88, 0x3a54, 0x2ee3, 0x3575, 0x3afe, 0x2aee, 0x39a0, 0x3aae, 0x3693, 0x3432, 0x3834, 0x3b9b, 0x3bcb, 0x2e3a, 0x356d, 0x374e, 0x3924, 0x383c, 0x311e, 0x3ac5, 0x352d, 0x311e, 0x38ca, 0x34d4, 0x36ca, 0x34ed, 0x3a13, 0x33eb, 0x3639, 0x3828, 0x3b3c, 0x3939, -0x3837, 0x3521, 0x2cb5, 0x3629, 0x3924, 0x384c, 0x366a, 0x3bbf, 0x2e9e, 0x3ba8, 0x33ad, 0x38c8, 0x3934, 0x3907, 0x249a, 0x3690, 0x3a09, 0x3215, 0x3898, 0x325d, 0x37d5, 0x3195, 0x361c, 0x3ae4, 0x351f, 0x3452, 0x3bc0, 0x375c, 0x39bf, 0x317a, 0x3aae, 0x283a, -0x3476, 0x3b92, 0x3472, 0x383e, 0x280f, 0x39d6, 0x2fd1, 0x31f4, 0x2ffb, 0x3b97, 0x3692, 0x36c0, 0x3989, 0x33cf, 0x3ba6, 0x3239, 0x35d7, 0x33ab, 0x31eb, 0x3b47, 0x389b, 0x3b88, 0x3580, 0x354c, 0x3802, 0x3b9a, 0x3b94, 0x2a92, 0x2db1, 0x38bd, 0x2dfb, 0x3900, -0x344f, 0x3739, 0x27a5, 0x3b2e, 0x342b, 0x34bb, 0x30c8, 0x3ae8, 0x3b26, 0x3982, 0x38c0, 0x3408, 0x38c8, 0x36ef, 0x3bf0, 0x3acf, 0x3a3c, 0x3825, 0x31a5, 0x3ada, 0x3b5b, 0x37db, 0x3a01, 0x3663, 0x3a7d, 0x327b, 0x3a1f, 0x3862, 0x38af, 0x3204, 0x372e, 0x3b19, -0x3708, 0x3622, 0x2e62, 0x39ab, 0x2d4d, 0x31b4, 0x3552, 0x3bbc, 0x36f2, 0x36eb, 0x38ef, 0x3755, 0x3bbe, 0x2c17, 0x3815, 0x2f53, 0x363f, 0x38c1, 0x3246, 0x386b, 0x34de, 0x34e4, 0x3baa, 0x349e, 0x32ce, 0x3a68, 0x373f, 0x2cce, 0x3b36, 0x28ba, 0x3b50, 0x3232, -0x1f34, 0x3928, 0x35cd, 0x3b38, 0x30ce, 0x35a1, 0x3a06, 0x3a32, 0x3a53, 0x3489, 0x3241, 0x372f, 0x390c, 0x3a1b, 0x378a, 0x3713, 0x3769, 0x37a8, 0x3418, 0x3ad4, 0x3a4e, 0x3bf7, 0x37a5, 0x34dc, 0x39b2, 0x351b, 0x3372, 0x349f, 0x2f50, 0x3ab1, 0x3795, 0x2db7, -0x3864, 0x3157, 0x3900, 0x323e, 0x389e, 0x3880, 0x3b1f, 0x37a1, 0x396c, 0x2e43, 0x2c2a, 0x3b78, 0x3988, 0x3a14, 0x39c1, 0x3b51, 0x3780, 0x3bf2, 0x2d19, 0x3815, 0x3a5f, 0x3641, 0x2f62, 0x37d5, 0x3564, 0x139a, 0x3ab8, 0x28f7, 0x3785, 0x34e1, 0x3097, 0x3768, -0x3971, 0x3ae2, 0x32ae, 0x2fd5, 0x382a, 0x346c, 0x3133, 0x3167, 0x3940, 0x2d12, 0x389a, 0x3bd0, 0x3943, 0x391c, 0x3a75, 0x2a11, 0x391e, 0x372d, 0x3a79, 0x3b72, 0x3373, 0x39b7, 0x35d7, 0x372b, 0x3a6d, 0x38a1, 0x3279, 0x3434, 0x3694, 0x3b45, 0x3abb, 0x392d, -0x34a8, 0x3757, 0x32ca, 0x345d, 0x36a5, 0x3854, 0x2dcd, 0x30af, 0x38dd, 0x3067, 0x3411, 0x3997, 0x397a, 0x3a64, 0x38b8, 0x3962, 0x3509, 0x3bb6, 0x3a66, 0x339f, 0x372a, 0x31a8, 0x37da, 0x36ff, 0x33c6, 0x31da, 0x3977, 0x3b72, 0x3841, 0x3567, 0x3433, 0x33b8, -0x39fe, 0x3a10, 0x3bf2, 0x35e7, 0x3a4a, 0x3b3e, 0x2ec7, 0x3aa4, 0x3846, 0x3af9, 0x38a9, 0x2c1f, 0x39ab, 0x349f, 0x31d6, 0x39ae, 0x3b79, 0x352d, 0x3516, 0x347c, 0x2f33, 0x35ad, 0x31c4, 0x3b52, 0x354b, 0x3786, 0x3ab7, 0x3896, 0x34ac, 0x352f, 0x37e6, 0x326a, -0x2e44, 0x34c7, 0x388d, 0x3bf4, 0x363f, 0x3b3d, 0x33b1, 0x3b8b, 0x3340, 0x37f7, 0x3b07, 0x25bf, 0x398e, 0x3505, 0x3bd7, 0x366d, 0x388a, 0x2cc0, 0x359a, 0x3b9a, 0x3b99, 0x379d, 0x3b6b, 0x39b8, 0x3223, 0x2703, 0x3ba9, 0x2ecb, 0x3759, 0x39d8, 0x37ac, 0x32cf, -0x35f2, 0x38a3, 0x399e, 0x3bd2, 0x3780, 0x3af3, 0x3b5e, 0x337b, 0x3a08, 0x35da, 0x3446, 0x3b25, 0x3ad0, 0x3bee, 0x3141, 0x32d8, 0x34ce, 0x2ac9, 0x3800, 0x3a8a, 0x2d53, 0x368a, 0x3561, 0x3998, 0x35a3, 0x3677, 0x3ab2, 0x3269, 0x3236, 0x3b3e, 0x3aba, 0x3bac, -0x395d, 0x3820, 0x1df6, 0x3bb5, 0x35b5, 0x3675, 0x3b74, 0x360f, 0x34de, 0x3a0c, 0x3aeb, 0x299d, 0x3207, 0x3bd8, 0x2178, 0x3995, 0x3948, 0x3908, 0x3843, 0x2ea5, 0x3045, 0x3989, 0x345d, 0x39c5, 0x3a89, 0x3863, 0x3be0, 0x397a, 0x38f1, 0x39e2, 0x3b08, 0x352e, -0x385f, 0x28f2, 0x3bc3, 0x35e0, 0x380c, 0x3b9c, 0x3afc, 0x390a, 0x3689, 0x34fd, 0x2cf5, 0x308e, 0x342b, 0x3921, 0x3a67, 0x3ad6, 0x2986, 0x32fc, 0x35aa, 0x3507, 0x3608, 0x33fd, 0x3bf3, 0x39e2, 0x3b0f, 0x30b7, 0x3896, 0x3ae4, 0x2145, 0x35b6, 0x2e1d, 0x3ad1, -0x333d, 0x3afb, 0x2703, 0x3413, 0x1d7d, 0x3b7f, 0x3ae1, 0x303c, 0x3004, 0x39d3, 0x3554, 0x31a4, 0x354e, 0x3662, 0x39c5, 0x2eb7, 0x2c6e, 0x397f, 0x31d8, 0x1f0c, 0x38e3, 0x35f0, 0x2714, 0x28d1, 0x375e, 0x3a75, 0x3830, 0x3578, 0x397d, 0x3b18, 0x383c, 0x3498, -0x39ad, 0x3598, 0x23c4, 0x34ea, 0x3a61, 0x2b00, 0x3707, 0x3ae1, 0x37ae, 0x389d, 0x37fa, 0x3673, 0x3278, 0xf3e, 0x3809, 0x33c6, 0x3bf5, 0x3279, 0x3816, 0x360c, 0x39c8, 0x381f, 0x3741, 0x2d66, 0x38c0, 0x37d3, 0x377a, 0x3621, 0x2faf, 0x392e, 0x2de6, 0x33c5, -0x3803, 0x2600, 0x32e9, 0x39b4, 0x38d2, 0x34e8, 0x2fe6, 0x3199, 0x3643, 0x3a77, 0x27cc, 0x39d7, 0x34c6, 0x2ea8, 0x364e, 0x3b07, 0x31c7, 0x30a1, 0x31b1, 0x3b8f, 0x3571, 0x3b75, 0x3989, 0x3805, 0x39fb, 0x3945, 0x352b, 0x31d8, 0x3904, 0x3440, 0x3a57, 0x2cf7, -0x3b39, 0x2fcd, 0x2b89, 0x2edd, 0x3682, 0x36a9, 0x32c8, 0x37ac, 0x32a5, 0x3311, 0x394b, 0x3b84, 0x3aec, 0x3601, 0x2765, 0x3b69, 0x396b, 0x3727, 0x3bfe, 0x3907, 0x376f, 0x3674, 0x3973, 0x3671, 0x3491, 0x3993, 0x383f, 0x3335, 0x3989, 0x3550, 0x3077, 0x35f5, -0x3a59, 0x3950, 0x380c, 0x37cd, 0x30bf, 0x3607, 0x3afa, 0x3b5d, 0x32b9, 0x386b, 0x35bd, 0x3aca, 0x3ba5, 0x3b2d, 0x3b19, 0x3b8b, 0x345e, 0x2845, 0x34aa, 0x372a, 0x3448, 0x34f5, 0x3ae2, 0x3637, 0x2cb5, 0x354b, 0x3b15, 0x2ca8, 0x2641, 0x3178, 0x2cfe, 0x39b4, -0x3bdd, 0x3acb, 0x3a05, 0x38a2, 0x3b4a, 0x34e5, 0x395f, 0x394b, 0x34c4, 0x3aa5, 0x29bb, 0x2d96, 0x339d, 0x387c, 0x382e, 0x385a, 0x396b, 0x3aa9, 0x2f1e, 0x33a7, 0x3b90, 0x3b7b, 0x3b5f, 0x39d3, 0x3b18, 0x354f, 0x2cdb, 0x3a6f, 0x3434, 0x34ff, 0x3a5b, 0x3b84, -0x3a33, 0x384b, 0x2e67, 0x3b85, 0x3853, 0x380c, 0x346a, 0x3aaa, 0x3492, 0x33e8, 0x3bf2, 0x38ae, 0x3a29, 0x3830, 0x3221, 0x35b1, 0x3a48, 0x2c68, 0x2ced, 0x3a7e, 0x3539, 0x3922, 0x374c, 0x3aaa, 0x2dae, 0x395d, 0x3b3d, 0x3890, 0x2cfe, 0x2dd6, 0x3bad, 0x33c5, -0x2c07, 0x3a2c, 0x37a8, 0x390f, 0x2fc8, 0x35ae, 0x388c, 0x30ee, 0x3674, 0x391d, 0x3bfc, 0x36bf, 0x322d, 0x3a78, 0x35c0, 0x3492, 0x3ac8, 0x3504, 0x3315, 0x381d, 0x3a7a, 0x3a08, 0x343c, 0x3bda, 0x341b, 0x39f0, 0x3b9e, 0x395d, 0x3c00, 0x38ab, 0x3bcf, 0x3564, -0x33c4, 0x3b0d, 0x3623, 0x33b9, 0x3b92, 0x1e71, 0x2c57, 0x36d0, 0x314b, 0x3a16, 0x3372, 0x341b, 0x3aaa, 0x3444, 0x396b, 0x2dd7, 0x3b30, 0x3559, 0x3b5b, 0x3a29, 0x2d19, 0x38b7, 0x3b01, 0x3afa, 0x398a, 0x3839, 0x3ac9, 0x2e31, 0x3924, 0x39f2, 0x3a7f, 0x3285 +uint16_t w_inp_2D [48][48] = { +0x35fc, 0x3b0d, 0x3932, 0x38db, 0x351c, 0x3606, 0x2cac, 0x3881, 0x39f7, 0x3a4e, 0x36dc, 0x3be4, 0x3b10, 0x380f, 0x3a86, 0x3068, 0x39ef, 0x3843, 0x3799, 0x32e7, 0x37ec, 0x2f9f, 0x3b70, 0x3ad0, 0x3a4e, 0x2c0e, 0x34f2, 0x3996, 0x3496, 0x3744, 0x3a0a, 0x39e5, 0x3665, 0x3ae8, 0x3bd5, 0x3673, 0x28b7, 0x3b20, 0x36e9, 0x37f6, 0x36ba, 0x334c, 0x38f3, 0x3991, 0x3513, 0x36fd, 0x3249, 0x359b, +0x3a1f, 0x3af4, 0x3469, 0x3b47, 0x3a83, 0x302a, 0x2e5b, 0x3aea, 0x3b41, 0x392d, 0x2167, 0x2d48, 0x3b1a, 0x3b67, 0x353b, 0x3646, 0x2caa, 0x2fad, 0x1808, 0x3840, 0x3b9c, 0x305a, 0x2ebf, 0x3a6c, 0x366b, 0x34d2, 0x3752, 0x386d, 0x3be9, 0x3583, 0x353d, 0x3bcf, 0x3b4c, 0x37a2, 0x3324, 0x2f81, 0x3aa0, 0x31ad, 0x3beb, 0x327b, 0x221c, 0x3719, 0x3624, 0x3ad2, 0x3662, 0x3b80, 0x3a90, 0x3849, +0x364b, 0x37a3, 0x3a8f, 0x39b5, 0x3ac3, 0x2cc3, 0x3a4d, 0x36bb, 0x3aa9, 0x38e3, 0x3b3d, 0x34c2, 0x2f39, 0x3986, 0x3add, 0x3aba, 0x3aec, 0x35a9, 0x3730, 0x3345, 0x335c, 0x34d7, 0x322d, 0x3bb7, 0x39b5, 0x3bca, 0x361b, 0x3462, 0x31e5, 0x35c1, 0x3b65, 0x3b1a, 0x34fd, 0x3b93, 0x3bf5, 0x338a, 0x376e, 0x3b22, 0x325f, 0x2cd5, 0x3424, 0x37a3, 0x391f, 0x37bd, 0x3acc, 0x3439, 0x38ed, 0x3636, +0x3138, 0x3798, 0x3801, 0x3982, 0x3adb, 0x39c1, 0x3bce, 0x2eb9, 0x3799, 0x347f, 0x372a, 0x3a6e, 0x2e9c, 0x3a35, 0x3a62, 0x3468, 0x349a, 0x27e7, 0x36eb, 0x3b0e, 0x3842, 0x393e, 0x242c, 0x3b0b, 0x36f8, 0x338a, 0x3813, 0x2fe8, 0x393c, 0x2c58, 0x3a15, 0x3407, 0x2a90, 0x2d77, 0x3bab, 0x398f, 0x32bc, 0x2115, 0x36e8, 0x357e, 0x3ab3, 0x39ff, 0x2f1e, 0x38cb, 0x3979, 0x36cd, 0x37bc, 0x23ff, +0x3ba7, 0x3884, 0x325a, 0x3308, 0x3b58, 0x3a4e, 0x36e0, 0x3add, 0x30bb, 0x3b1b, 0x35b7, 0x2dea, 0x36fa, 0x34c3, 0x3a49, 0x2cb4, 0x31bf, 0x21f5, 0x3188, 0x31ad, 0x292c, 0x3a61, 0x36f6, 0x32c8, 0x3aa0, 0x3b1f, 0x3aa1, 0x38c3, 0x3848, 0x39e9, 0x15bf, 0x3a81, 0x383e, 0x394b, 0x3046, 0x373d, 0x3577, 0x3673, 0x3ad4, 0x3be4, 0x3afd, 0x3888, 0x39df, 0x2a50, 0x34ce, 0x389d, 0x3457, 0x32f9, +0x3ad8, 0x2cee, 0x36d4, 0x3804, 0x3987, 0x3887, 0x3b55, 0x372b, 0x3b31, 0x36b8, 0x3481, 0x37be, 0x2d47, 0x31fb, 0x3b5c, 0x35d0, 0x2d16, 0x38a5, 0x373b, 0x3a4d, 0x3a3e, 0x2460, 0x3a0e, 0x34da, 0x3776, 0x383a, 0x3a9a, 0x3613, 0x3832, 0x2a7f, 0x394e, 0x3bb2, 0x3736, 0x3408, 0x3824, 0x32d3, 0x3964, 0x31f6, 0x3aef, 0x252b, 0x3482, 0x207c, 0x3bab, 0x2d1b, 0x3a9c, 0x37bd, 0x384e, 0x3829, +0x2e22, 0x3333, 0x39a1, 0x30a4, 0x37bf, 0x3a7f, 0x3752, 0x3506, 0x2876, 0x34b7, 0x3476, 0x34a2, 0x3a31, 0x2db6, 0x3210, 0x318e, 0x1e10, 0x3395, 0x387a, 0x3674, 0x3381, 0x2b89, 0x3613, 0x304e, 0x38ab, 0x38f3, 0x3a29, 0x379a, 0x3876, 0x2c22, 0x353b, 0x3a4c, 0x3bdb, 0x2dd6, 0x3a77, 0x3a19, 0x38ed, 0x349d, 0x34a3, 0x38f8, 0x314a, 0x3915, 0x3869, 0x3512, 0x3976, 0x3873, 0x3049, 0x3750, +0x39ab, 0x3b69, 0x3825, 0x3595, 0x3922, 0x3871, 0x3308, 0x3856, 0x3b8f, 0x27c9, 0x2bfe, 0x3aa1, 0x3a6e, 0x3642, 0x385e, 0x3502, 0x3ac5, 0x3a06, 0x3a83, 0x37c9, 0x29d7, 0x2ffd, 0x386c, 0x34eb, 0x33f9, 0x3758, 0x18b1, 0x28d1, 0x3bfb, 0x3892, 0x388e, 0x39ae, 0x3623, 0x29c6, 0x39a7, 0x38b7, 0x393f, 0x2acf, 0x34a9, 0x3088, 0x380a, 0x3974, 0x304b, 0x332c, 0x2a6a, 0x379b, 0x3bdd, 0x1dd6, +0x148c, 0x34ae, 0x3a32, 0x366b, 0x39e8, 0x346b, 0x3986, 0x3ae4, 0x3576, 0x391e, 0x3834, 0x37f9, 0x2fac, 0x3738, 0x3b73, 0x3b95, 0x351c, 0x38d3, 0x2af2, 0x3624, 0x3505, 0x3810, 0x2d15, 0x3b25, 0x380c, 0x3ab4, 0x3a00, 0x381d, 0x33cd, 0x397a, 0x3a08, 0x3ab0, 0x2fc2, 0x3868, 0x37aa, 0x3668, 0x36d0, 0x37d9, 0x3474, 0x38a1, 0x2eb8, 0x396e, 0x397e, 0x35df, 0x3082, 0x3795, 0x3b81, 0x3a97, +0x34ba, 0x3535, 0x234d, 0x3750, 0x3095, 0x3a02, 0x3bec, 0x2e19, 0x378b, 0x37d4, 0x3b3c, 0x2fc6, 0x3a80, 0x317a, 0x3b20, 0x381a, 0x343b, 0x3842, 0x3938, 0x3866, 0x34dd, 0x3a3e, 0x3ac4, 0x343d, 0x358c, 0x34e3, 0x37ab, 0x2def, 0x368c, 0x389e, 0x3835, 0x388e, 0x36aa, 0x35d4, 0x3771, 0x3378, 0x30cb, 0x37ca, 0x3863, 0x3376, 0x2d72, 0x2f74, 0x351b, 0x3618, 0x3b8c, 0x3279, 0x379f, 0x382d, +0x385d, 0x3baa, 0x30eb, 0x2c8d, 0x3bb6, 0x3a11, 0x3852, 0x3a3c, 0x28e8, 0x3632, 0x3a2c, 0x35c4, 0x39aa, 0x36f9, 0x3142, 0x27de, 0x31ba, 0x3938, 0x368a, 0x387e, 0x3777, 0x37f1, 0x3abd, 0x3a2a, 0x3881, 0x3beb, 0x3ac4, 0x303d, 0x3262, 0x3282, 0x3064, 0x3b74, 0x2f15, 0x31a8, 0x39d5, 0x3a1f, 0x37ea, 0x3807, 0x2c37, 0x374e, 0x39fa, 0x3ab7, 0x3957, 0x31c7, 0x3a21, 0x3162, 0x3812, 0x3476, +0x33e1, 0x3198, 0x3933, 0x35d9, 0x2b29, 0x3872, 0x3758, 0x34c9, 0x2da4, 0x3a45, 0x35fa, 0x3923, 0x3a06, 0x38d3, 0x3866, 0x295f, 0x3579, 0x39f5, 0x28a9, 0x3242, 0x3907, 0x3700, 0x3bc7, 0x3934, 0x36c6, 0x3562, 0x3654, 0x3916, 0x3be3, 0x35f8, 0x33aa, 0x3035, 0x3511, 0x3ab6, 0x3687, 0x3838, 0x3ae3, 0x3183, 0x3b8c, 0x38b7, 0x396d, 0x35ce, 0x3a03, 0x29be, 0x3bd0, 0x39a8, 0x3b96, 0x3951, +0x32b5, 0x3448, 0x3ae5, 0x39ae, 0x3a15, 0x3019, 0x39a4, 0x3626, 0x3863, 0x3b0d, 0x3337, 0x36b8, 0x3971, 0x3943, 0x3b19, 0x33d7, 0x2e81, 0x325e, 0x3957, 0x357e, 0x3441, 0x38f7, 0x3a33, 0x2f39, 0x3999, 0x30d0, 0x376a, 0x389a, 0x3842, 0x3985, 0x3769, 0x38e1, 0x3953, 0x349f, 0x386d, 0x3aee, 0x3946, 0x39dd, 0x3a64, 0x3953, 0x393d, 0x3560, 0x30f2, 0x35ba, 0x3611, 0x3a3d, 0x39a9, 0x39ee, +0x386a, 0x3aaa, 0x3bdf, 0x3a80, 0x3acb, 0x3950, 0x35af, 0x33c5, 0x371f, 0x349e, 0x378d, 0x3b6a, 0x3356, 0x391c, 0x396f, 0x35f1, 0x3bfa, 0x392c, 0x2937, 0x35ed, 0x3187, 0x3b63, 0x39c0, 0x3676, 0x37dd, 0x3108, 0x3409, 0x35f8, 0x3958, 0x3844, 0x3bae, 0x36d5, 0x35e3, 0x2b3d, 0x3814, 0x3737, 0x367d, 0x3ac9, 0x3bca, 0x3abb, 0x30a1, 0x3b81, 0x3454, 0x2f9f, 0x387e, 0x3810, 0x3a84, 0x375a, +0x3adb, 0x363b, 0x37c9, 0x34f9, 0x304a, 0x36d3, 0x3381, 0x32a3, 0x3a82, 0x3baa, 0x34ec, 0x3aaa, 0x3474, 0x30e9, 0x3430, 0x3953, 0x33e5, 0x3532, 0x2b12, 0x39cc, 0x38eb, 0x3919, 0x3b4c, 0x336f, 0x3033, 0x34c6, 0x3623, 0x3414, 0x3b27, 0x3adf, 0x375f, 0x39ef, 0x38ff, 0x30ac, 0x399b, 0x3bb6, 0x2eb2, 0x37b5, 0x3b67, 0x3976, 0x3bba, 0x3855, 0x38bc, 0x3b24, 0x39f5, 0x38f5, 0x3647, 0x3b3e, +0x3481, 0x3984, 0x391e, 0x3b18, 0x3503, 0x3740, 0x3881, 0x38dd, 0x37a3, 0x35c6, 0x3b5d, 0x348a, 0x35e9, 0x30e7, 0x36e4, 0x374a, 0x317e, 0x3763, 0x33ac, 0x3752, 0x23a2, 0x3157, 0x3458, 0x34dd, 0x38c6, 0x39f5, 0x3b90, 0x341e, 0x3a4e, 0x3a9e, 0x3847, 0x3534, 0x37b0, 0x394b, 0x3235, 0x3370, 0x3a93, 0x398c, 0x3696, 0x28be, 0x3bc9, 0x34d3, 0x3061, 0x3a77, 0x3b81, 0x399d, 0x343a, 0x315a, +0x3537, 0x39d5, 0x2d26, 0x396a, 0x3a5f, 0x3a73, 0x390f, 0x2fdf, 0x3b36, 0x26da, 0x3b4f, 0x3376, 0x3b54, 0x3a06, 0x3a70, 0x38f7, 0x3b54, 0x3a21, 0x396e, 0x3818, 0x3564, 0x25ad, 0x3838, 0x378a, 0x3467, 0x3801, 0x3b6d, 0x38dd, 0x2891, 0x388a, 0x376d, 0x2dd7, 0x393c, 0x38a8, 0x3829, 0x3bad, 0x3b91, 0x3860, 0x3bc6, 0x3ad4, 0x3be9, 0x3a7e, 0x3a24, 0x3622, 0x35ee, 0x37cf, 0x3081, 0x3a71, +0x2fe3, 0x35d4, 0x3b7c, 0x2e07, 0x3a86, 0x3807, 0x3592, 0x37a8, 0x2f01, 0x3ad0, 0x3296, 0x31aa, 0x2a76, 0x3780, 0x2903, 0x3642, 0x2923, 0x31f4, 0x38b6, 0x3a02, 0x328d, 0x323b, 0x36af, 0x384d, 0x3965, 0x3950, 0x28be, 0x3b82, 0x3aa9, 0x3b59, 0x2c6e, 0x39ff, 0x3872, 0x3521, 0x3b2a, 0x2519, 0x3819, 0x332c, 0x3ada, 0x3903, 0x3998, 0x3ab1, 0x3bb8, 0x3afe, 0x3801, 0x3976, 0x3936, 0x376d, +0x3111, 0x34d6, 0x309d, 0x362e, 0x29e6, 0x2b85, 0x360c, 0x38d7, 0x3789, 0x3aad, 0x3275, 0x34c3, 0x3987, 0x38e5, 0x2eef, 0x2fa6, 0x384d, 0x38c2, 0x3955, 0x39fd, 0x2ef6, 0x3954, 0x3884, 0x3bd5, 0x3bb3, 0x2a83, 0x3585, 0x2c68, 0x3a2c, 0x33c6, 0x34c3, 0x3bdb, 0x34e4, 0x3a8c, 0x36ba, 0x390d, 0x34b6, 0x347a, 0x34e8, 0x36d4, 0x3802, 0x3523, 0x38b6, 0x35a5, 0x3271, 0x3ae6, 0x3b39, 0x39c3, +0x376e, 0x3570, 0x3816, 0x3085, 0x343d, 0x2fe4, 0x3b5f, 0x36f9, 0x3ac5, 0x37cd, 0x3ac3, 0x3add, 0x34bb, 0x3a7f, 0x2864, 0x39f1, 0x3826, 0x29a0, 0x3a74, 0x3871, 0x399a, 0x35aa, 0x38d7, 0x355e, 0x30dd, 0x3a16, 0x3473, 0x35d4, 0x326e, 0x2d92, 0x3ac7, 0x33f5, 0x2c76, 0x387b, 0x2f6e, 0x30ae, 0x2eea, 0x3a58, 0x31c0, 0x29a9, 0x3941, 0x3747, 0x30ec, 0x320c, 0x38e2, 0x3843, 0x356b, 0x3878, +0x2de2, 0x38c4, 0x39ea, 0x3535, 0x3478, 0x3437, 0x3983, 0x38f8, 0x3620, 0x3282, 0x38e2, 0x358a, 0x39ee, 0x3842, 0x3ad2, 0x2cc7, 0x3923, 0x3bf5, 0x3671, 0x2cf9, 0x36ca, 0x34b0, 0x2f2d, 0x2dcc, 0x37c6, 0x34bd, 0x1958, 0x3874, 0x3053, 0x3b1c, 0x387d, 0x38d4, 0x3bb8, 0x39d7, 0x3ad3, 0x38d4, 0x3adc, 0x25cf, 0x2431, 0x3340, 0x2920, 0x3436, 0x2de5, 0x3773, 0x25ba, 0x30d4, 0x36de, 0x3b4e, +0x3b11, 0x38cd, 0x3bf1, 0x32b9, 0x3487, 0x39d5, 0x39db, 0x3417, 0x3bc9, 0x3809, 0x3a1f, 0x31d7, 0x38e9, 0x3bdd, 0x3a7a, 0x3ad3, 0x3246, 0x3990, 0x3965, 0x316f, 0x1cf3, 0x3903, 0x3afd, 0x38ba, 0x3190, 0x3bc5, 0x38fa, 0x3814, 0x2aa6, 0x38be, 0x3433, 0x38c3, 0x3b3e, 0x3b7e, 0x3918, 0x3abd, 0x39b7, 0x3532, 0x3893, 0x3786, 0x2df3, 0x2669, 0x3bdb, 0x368f, 0x3b55, 0x385d, 0x39e4, 0x3814, +0x36ad, 0x38c5, 0x386b, 0x3718, 0x34b3, 0x3941, 0x34f3, 0x389e, 0x37ab, 0x3a84, 0x2a6e, 0x3bf9, 0x342e, 0x361b, 0x3bb9, 0x322f, 0x36e6, 0x349c, 0x3961, 0x34e2, 0x2e2f, 0x3642, 0x357d, 0x32b8, 0x259d, 0x3a58, 0x3aa7, 0x3759, 0x3352, 0x3bb1, 0x352c, 0x3776, 0x3aa6, 0x2a06, 0x3b7a, 0x38ae, 0x330e, 0x377a, 0x3841, 0x2cb3, 0x3aa6, 0x3bfc, 0x39a2, 0x3257, 0x3584, 0x38ac, 0x3761, 0x3623, +0x38ae, 0x37d1, 0x361f, 0x3080, 0x3816, 0x3936, 0x3864, 0x3a8c, 0x377c, 0x3847, 0x37c3, 0x35ab, 0x33c1, 0x39ec, 0x368c, 0x3b72, 0x322e, 0x2e35, 0x3983, 0x3a36, 0x3456, 0x33d0, 0x320a, 0x37b9, 0x18b9, 0x39ec, 0x3782, 0x3178, 0x3adb, 0x376d, 0x3514, 0x2f00, 0x39e8, 0x2e6a, 0x2153, 0x3bdb, 0x38b0, 0x2c53, 0x35e5, 0x3b3d, 0x3863, 0x3ae6, 0x3a0c, 0x3bfa, 0x3829, 0x3a6c, 0x2e19, 0x3a59, +0x3892, 0x363e, 0x303c, 0x3bdd, 0x3565, 0x3b18, 0x383c, 0x3437, 0x38bb, 0x3bb1, 0x3665, 0x2d86, 0x36de, 0x34ba, 0x3853, 0x385c, 0x31a6, 0x3a8e, 0x2cde, 0x3adc, 0x2cd5, 0x3884, 0x28de, 0x3b06, 0x29b4, 0x38df, 0x3955, 0x363f, 0x32a2, 0x35ea, 0x3879, 0x368e, 0x39aa, 0x382c, 0x34a0, 0x34ac, 0x374b, 0x3846, 0x32c2, 0x3bf8, 0x3a62, 0x3b6d, 0x3b1e, 0x3aa8, 0x333e, 0x3621, 0x3911, 0x3a8a, +0x3738, 0x3a91, 0x394f, 0x3ba9, 0x3a11, 0x3a08, 0x3b02, 0x38fe, 0x3860, 0x39db, 0x3b3a, 0x3090, 0x3836, 0x324d, 0x2d84, 0x384b, 0x2e3a, 0x3bee, 0x33ff, 0x3be7, 0x3144, 0x31b4, 0x39f9, 0x3c00, 0x3614, 0x2c49, 0x3706, 0x2f7e, 0x39bb, 0x31a9, 0x39e9, 0x382e, 0x3868, 0x3a2c, 0x369f, 0x39fb, 0x3bdb, 0x39e5, 0x3956, 0x340e, 0x38ab, 0x36d8, 0x38f1, 0x3baf, 0x3a9f, 0x3b9f, 0x3593, 0x3aa7, +0x3b35, 0x36dd, 0x39b1, 0x3a34, 0x3471, 0x3b10, 0x357b, 0x3901, 0x3a1a, 0x2b62, 0x333f, 0x39f4, 0x3532, 0x3439, 0x3b58, 0x3747, 0x35b6, 0x385e, 0x3809, 0x3292, 0x3685, 0x306a, 0x3650, 0x3bf9, 0x3944, 0x3ad6, 0x3967, 0x3bc1, 0x383f, 0x398c, 0x3903, 0x37a5, 0x3886, 0x3578, 0x2fbd, 0x2d16, 0x3679, 0x3989, 0x360f, 0x3722, 0x3816, 0x3af2, 0x391b, 0x38ff, 0x3aac, 0x38fa, 0x3495, 0x36a2, +0x392b, 0x30ef, 0x36ab, 0x3b08, 0x2874, 0x36bf, 0x3ab9, 0x3826, 0x3aa3, 0x3264, 0x367c, 0x3bb2, 0x36af, 0x3bd0, 0x3686, 0x39fa, 0x38c7, 0x3828, 0x2ece, 0x38dc, 0x2503, 0x39a9, 0x1e5b, 0x36d0, 0x2cda, 0x3876, 0x3898, 0x2f2f, 0x388e, 0x3957, 0x2de2, 0x3527, 0x38ff, 0x3bca, 0x3b64, 0x3871, 0x3569, 0x33e0, 0x39fb, 0x3841, 0x3956, 0x3548, 0x2dc0, 0x34f8, 0x3ac5, 0x3825, 0x390b, 0x3afd, +0x39b6, 0x31e0, 0x347c, 0x390a, 0x3797, 0x340d, 0x3965, 0x393c, 0x39b9, 0x354a, 0x3735, 0x39c0, 0x3a12, 0x3705, 0x3aa8, 0x2d54, 0x39ae, 0x3b94, 0x390d, 0x3ae2, 0x35bc, 0x3bc5, 0x342d, 0x3960, 0x3927, 0x3b75, 0x3b59, 0x37a8, 0x38b0, 0x3a31, 0x34c6, 0x387b, 0x3421, 0x3201, 0x2e3e, 0x355e, 0x31b3, 0x37ee, 0x264f, 0x383b, 0x3a97, 0x2f43, 0x21b1, 0x246d, 0x3941, 0x3895, 0x33c2, 0x3922, +0x3be3, 0x3b92, 0x30b0, 0x3a4d, 0x3276, 0x3254, 0x388b, 0x2a11, 0x337c, 0x3a12, 0x3bcb, 0x3830, 0x3716, 0x3211, 0x3397, 0x375b, 0x3704, 0x31c3, 0x3b40, 0x3882, 0x3644, 0x34b4, 0x2cd3, 0x328f, 0x3944, 0x32a0, 0x3a25, 0x3865, 0x3989, 0x387d, 0x3333, 0x37b6, 0x3b1a, 0x36d8, 0x3191, 0x38b6, 0x3aa9, 0x3593, 0x3ac6, 0x391b, 0x39a8, 0x3762, 0x3832, 0x348d, 0x3b8e, 0x2e1b, 0x3609, 0x2f99, +0x39a8, 0x3b3a, 0x326e, 0x3af1, 0x35fe, 0x3a6d, 0x3865, 0x2e64, 0x35f7, 0x3250, 0x394d, 0x35cc, 0x38d4, 0x34e3, 0x3998, 0x38d8, 0x344d, 0x35f6, 0x370f, 0x2dd9, 0x3318, 0x3175, 0x2ca7, 0x3b8d, 0x381b, 0x2e3f, 0x38e2, 0x3a20, 0x3980, 0x3b51, 0x3bc5, 0x34ad, 0x38fb, 0x351f, 0x35f4, 0x3a7c, 0x30a3, 0x29c3, 0x34b0, 0x38dd, 0x32d0, 0x3196, 0x3a52, 0x3b1a, 0x3bd5, 0x2336, 0x2b84, 0x373c, +0x3b48, 0x2cc4, 0x3ae6, 0x36c5, 0x3bef, 0x3429, 0x39e0, 0x37e5, 0x393f, 0x3075, 0x371d, 0x3ae5, 0x3bcf, 0x3985, 0x3a61, 0x3952, 0x3a59, 0x3b67, 0x2eed, 0x38c7, 0x3984, 0x3ab3, 0x3bf6, 0x3b8c, 0x3aa2, 0x38b7, 0x361d, 0x3889, 0x3bf2, 0x357d, 0x3906, 0x3916, 0x3b6b, 0x2ce3, 0x38f5, 0x38a3, 0x3a03, 0x3848, 0x32e4, 0x31f1, 0x3659, 0x321c, 0x3b9d, 0x3543, 0x346f, 0x3ad2, 0x28be, 0x3814, +0x3ac3, 0x3a25, 0x370d, 0x3959, 0x39f1, 0x3564, 0x3abd, 0x30e3, 0x2e05, 0x352e, 0x38fd, 0x32b4, 0x34fe, 0x3806, 0x37f7, 0x30ce, 0x352d, 0x28aa, 0x3bb6, 0x3596, 0x367c, 0x3179, 0x3888, 0x2435, 0x39ff, 0x30bc, 0x2d57, 0x3b18, 0x3816, 0x37c6, 0x3700, 0x3801, 0x30a1, 0x397d, 0x3995, 0x3b34, 0x3b32, 0x3a23, 0x2899, 0x2d9e, 0x383b, 0x38dc, 0x3174, 0x38c8, 0x34c9, 0x38cc, 0x3813, 0x3224, +0x3580, 0x3913, 0x3908, 0x378e, 0x359d, 0x368a, 0x3b98, 0x3a4e, 0x3647, 0x256b, 0x31bd, 0x3aac, 0x3bd7, 0x253b, 0x2c43, 0x3b2e, 0x3a7d, 0x3533, 0x3638, 0x31ab, 0x2ffc, 0x2ae2, 0x391f, 0x303f, 0x3a56, 0x3830, 0x3af0, 0x3894, 0x3bda, 0x3a64, 0x3887, 0x318a, 0x349b, 0x3a9a, 0x348a, 0x3a9f, 0x3895, 0x2df3, 0x33e6, 0x3751, 0x3493, 0x35d7, 0x347b, 0x390e, 0x38ca, 0x336e, 0x3b06, 0x38dc, +0x3b26, 0x37c1, 0x392a, 0x34c8, 0x3b85, 0x3bdc, 0x3b87, 0x32d8, 0x38c7, 0x36e8, 0x37ea, 0x3ae2, 0x3514, 0x3a11, 0x3997, 0x3058, 0x39a3, 0x3bb8, 0x3b14, 0x375f, 0x3ab4, 0x3afa, 0x3454, 0x37a2, 0x2753, 0x368f, 0x2eeb, 0x3744, 0x3516, 0x301b, 0x32ce, 0x37bd, 0x3b00, 0x3904, 0x3b32, 0x2a9b, 0x357d, 0x3a9f, 0x3bfd, 0x38e5, 0x37a9, 0x3255, 0x3585, 0x38e5, 0x3888, 0x34e0, 0x37c5, 0x3a3e, +0x372b, 0x2170, 0x35ba, 0x3aea, 0x31e7, 0x3839, 0x371c, 0x3a87, 0x36d8, 0x31ca, 0x3aa6, 0x2b08, 0x3b9e, 0x3851, 0x3bc8, 0x371a, 0x3a32, 0x3417, 0x3adb, 0x2bc3, 0x3a5c, 0x3052, 0x3b2d, 0x3509, 0x366c, 0x28b2, 0x37c2, 0x3ae5, 0x3723, 0x37f9, 0x3837, 0x3b4b, 0x2e1c, 0x3a39, 0x3957, 0x3187, 0x39db, 0x35e5, 0x348a, 0x39a1, 0x3446, 0x398b, 0x2c5a, 0x350f, 0x387a, 0x38c0, 0x3991, 0x3ab3, +0x3a43, 0x34a9, 0x38f7, 0x38e1, 0x37cd, 0x336e, 0x3a65, 0x35c1, 0x2cee, 0x3893, 0x2da1, 0x36e3, 0x3522, 0x2a40, 0x3b9e, 0x3742, 0x3bfa, 0x3634, 0x347b, 0x2d83, 0x39f7, 0x3a2c, 0x3b1e, 0x32eb, 0x3506, 0x3a5d, 0x34f9, 0x354c, 0x3104, 0x2cdf, 0x3a35, 0x3a08, 0x319e, 0x37b7, 0x3570, 0x3b22, 0x387a, 0x330c, 0x3706, 0x31a6, 0x38de, 0x3bbc, 0x38e7, 0x360e, 0x3257, 0x331b, 0x315d, 0x320e, +0x3908, 0x3375, 0x2d75, 0x3182, 0x3304, 0x2d93, 0x3868, 0x38ca, 0x2d07, 0x3253, 0x39ff, 0x3456, 0x37fc, 0x3a8d, 0x37d4, 0x360e, 0x32e6, 0x36ab, 0x3a4d, 0x3411, 0x3a14, 0x3a5f, 0x38bf, 0x3858, 0x3688, 0x25c2, 0x3949, 0x2a05, 0x3b45, 0x359f, 0x3af5, 0x3408, 0x2fa0, 0x34e8, 0x28c2, 0x3944, 0x3300, 0x3212, 0x3311, 0x3b6c, 0x306c, 0x220c, 0x300b, 0x3a38, 0x3bb2, 0x3ab9, 0x2c5f, 0x2ec8, +0x3610, 0x3057, 0x30e9, 0x3357, 0x39fb, 0x39df, 0x3be6, 0x36b0, 0x32e6, 0x384a, 0x338c, 0x3b6f, 0x3bcb, 0x3787, 0x3be7, 0x3af5, 0x35f5, 0x3915, 0x2178, 0x36ee, 0x392e, 0x37b4, 0x3a03, 0x3414, 0x38a5, 0x3afc, 0x39ba, 0x3655, 0x2e40, 0x377f, 0x3811, 0x3b95, 0x3753, 0x39e9, 0x38a2, 0x3b58, 0x37c7, 0x2371, 0x2ff7, 0x3592, 0x34e5, 0x3203, 0x3719, 0x384d, 0x3ad5, 0x3a1c, 0x35cf, 0x39b4, +0x367e, 0x3846, 0x2ef6, 0x3af1, 0x2ede, 0x3ae8, 0x390d, 0x3607, 0x3956, 0x348e, 0x3869, 0x31e3, 0x2d45, 0x1d83, 0x37af, 0x3885, 0x3aa6, 0x3a0e, 0x34d9, 0x3b1a, 0x38ae, 0x3958, 0x35b2, 0x3ad5, 0x3462, 0x3630, 0x3900, 0x394a, 0x3b42, 0x36e6, 0x39c2, 0x3149, 0x35f1, 0x377c, 0x354e, 0x29af, 0x3a9c, 0x3892, 0x3b4f, 0x33da, 0x3980, 0x2b89, 0x3984, 0x31a, 0x3455, 0x3abd, 0x3b48, 0x3223, +0x356d, 0x3b1c, 0x3703, 0x36bf, 0x2fd8, 0x3972, 0x3b08, 0x3b5f, 0x3a35, 0x3996, 0x3ad5, 0x3631, 0x3923, 0x3a56, 0x3515, 0x37aa, 0x3bc3, 0x32de, 0x3aa1, 0x3579, 0x3acd, 0x3046, 0x36ff, 0x370e, 0x3bcd, 0x363c, 0x3836, 0x3609, 0x38e2, 0x3569, 0x2808, 0x383d, 0x3b7c, 0x386f, 0x2655, 0x1df6, 0x389e, 0x3460, 0x3895, 0x33b2, 0x3a42, 0x37d2, 0x3938, 0x3316, 0x3b24, 0x326f, 0x2c93, 0x3a2a, +0x369d, 0x3aea, 0x287f, 0x3ae7, 0x3900, 0x2bd7, 0x2f4f, 0x3ad3, 0x3adc, 0x3aac, 0x385e, 0x3002, 0x34de, 0x380d, 0x3998, 0x340f, 0x3695, 0x3bdb, 0x321a, 0x2a8f, 0x39fa, 0x2f3f, 0x3b44, 0x355f, 0x32b7, 0x39d3, 0x2854, 0x39db, 0x3318, 0x383b, 0x2f98, 0x393d, 0x3b71, 0x3b26, 0x37af, 0x3734, 0x3af6, 0x33bc, 0x2ac2, 0x360a, 0x3219, 0x2d1f, 0x3477, 0x1525, 0x3324, 0x3bdd, 0x3581, 0x2905, +0x3131, 0x3b47, 0x3947, 0x3bef, 0x3046, 0x3938, 0x2ca4, 0x28be, 0x321d, 0x3bc9, 0x2f66, 0x3559, 0x326e, 0x39d8, 0x33b1, 0x3715, 0x3aef, 0x2c8b, 0x3b06, 0x36ba, 0x3957, 0x3825, 0x364e, 0x387d, 0x3130, 0x3a56, 0x3bf6, 0x3797, 0x39d4, 0x37d9, 0x3371, 0x321e, 0x31ac, 0x3a66, 0x220e, 0x363d, 0x33ca, 0x387b, 0x3b5e, 0x3b67, 0x3974, 0x3a18, 0x3bb4, 0x3ba7, 0x2583, 0x3a2f, 0x36e4, 0x3575, +0x3a64, 0x35bd, 0x3a5b, 0x3909, 0x38a1, 0x3a4c, 0x349c, 0x3afe, 0x3ad4, 0x2e2f, 0x2e19, 0x3a17, 0x356b, 0x3b5f, 0x3852, 0x3a62, 0x3ba9, 0x3992, 0x3a86, 0x3a73, 0x3042, 0x2a7c, 0x3841, 0x33ae, 0x2f4c, 0x35b6, 0x349e, 0x387b, 0x39d8, 0x370c, 0x3b8a, 0x3b54, 0x3a63, 0x37cb, 0x3bb9, 0x3af4, 0x3720, 0x39df, 0x39e9, 0x38bb, 0x3bb9, 0x354f, 0x3bd9, 0x3bbb, 0x39c6, 0x3aaf, 0x3654, 0x254c, +0x3b96, 0x38d3, 0x2e2e, 0x33df, 0x3a9a, 0x1c03, 0x3ac0, 0x3416, 0x319f, 0x39e5, 0x306a, 0x2f55, 0x3acb, 0x3b00, 0x396d, 0x3915, 0x3abc, 0x3856, 0x32ba, 0x38e8, 0x35e5, 0x3817, 0x3a8f, 0x1882, 0x383d, 0x396c, 0x35da, 0x37c5, 0x3ba3, 0x398c, 0x390b, 0x3a95, 0x3078, 0x3612, 0x3812, 0x1e29, 0x3559, 0x366a, 0x3832, 0x3909, 0x36b6, 0x2c9e, 0x3999, 0x2fbd, 0x38a3, 0x34b5, 0x3689, 0x3bfc, +0x2d8d, 0x39f8, 0x3add, 0x3384, 0x3a91, 0x37f3, 0x2cdd, 0x3b57, 0x37fd, 0x3158, 0x3a28, 0x3bf2, 0x344e, 0x360b, 0x3365, 0x3aff, 0x386d, 0x31d8, 0x38d4, 0x3b6a, 0x34ae, 0x346c, 0x3beb, 0x24e1, 0x3958, 0x3a6a, 0x37d2, 0x397e, 0x38c4, 0x2ec6, 0x383f, 0x3a1d, 0x39aa, 0x3abe, 0x35ac, 0x3280, 0x3618, 0x240d, 0x38f3, 0x317c, 0x301b, 0x3a2e, 0x31e1, 0x3795, 0x390d, 0x39e1, 0x3400, 0x367f, +0x3701, 0x3865, 0x39b2, 0x2f08, 0x3baf, 0x2cf5, 0x2d91, 0x3a37, 0x37bf, 0x39e8, 0x384c, 0x30b7, 0x3a22, 0x36c7, 0x3854, 0x39e2, 0x35d5, 0x39db, 0x3b20, 0x33b4, 0x34ea, 0x3aad, 0x3827, 0x359e, 0x3580, 0x2fa6, 0x2c22, 0x3479, 0x39b4, 0x3a62, 0x3b25, 0x3b3a, 0x34b6, 0x2d83, 0x3a9c, 0x3bc0, 0x339a, 0x3074, 0x399a, 0x3540, 0x2982, 0x3638, 0x3a89, 0x36fc, 0x2b61, 0x3121, 0x3225, 0x3862, +0x2ff4, 0x36a8, 0x337a, 0x3854, 0x3b79, 0x3589, 0x3275, 0x3bde, 0x3bd6, 0x3975, 0x273c, 0x29df, 0x36f2, 0x39e8, 0x2ad3, 0x3538, 0x3976, 0x3b92, 0x2e45, 0x3b57, 0x3a3b, 0x34d3, 0x36fe, 0x2fe4, 0x3764, 0x3a33, 0x3b3e, 0x3b67, 0x3a99, 0x3874, 0x3418, 0x35f9, 0x39c7, 0x31fd, 0x37b7, 0x36f7, 0x385c, 0x3add, 0x3716, 0x36cb, 0x3a4a, 0x3bca, 0x38b9, 0x3622, 0x231b, 0x3bca, 0x3938, 0x385b }; \ No newline at end of file diff --git a/hwpe/redmule/inc/w_input.h b/hwpe/redmule/inc/w_input.h index dc4d3be..b90f9aa 100644 --- a/hwpe/redmule/inc/w_input.h +++ b/hwpe/redmule/inc/w_input.h @@ -1,35 +1,51 @@ /* Header file generated by RedMulE Golden Model */ -uint16_t w_inp [1024] = { -0x311a, 0x39e0, 0x387d, 0x3a4a, 0x386f, 0x3ada, 0x392f, 0x3854, 0x3014, 0x2fd2, 0x31c9, 0x2fca, 0x2e55, 0x3bc8, 0x396d, 0x3b1d, 0x39f6, 0x333a, 0x3908, 0x3628, 0x3bab, 0x3b8b, 0x3b4a, 0x322d, 0x3925, 0x317a, 0x3725, 0x31c2, 0x3066, 0x38f3, 0x3a17, 0x3476, -0x3bda, 0x3196, 0x3922, 0x3680, 0x396a, 0x3021, 0x3761, 0x374d, 0x2fc2, 0x3967, 0x3b94, 0x33b5, 0x3797, 0x34d6, 0x3655, 0x2176, 0x39bc, 0x3999, 0x3658, 0x3904, 0x3759, 0x2ade, 0x3a5a, 0x3b78, 0x36c7, 0x2d01, 0x3b58, 0x2d9a, 0x373d, 0x3952, 0x38e8, 0x3887, -0x37b6, 0x3a88, 0x2f8a, 0x2d79, 0x3413, 0x3421, 0x3976, 0x32b2, 0x3446, 0x2d99, 0x3a56, 0x3322, 0x3b49, 0x39fa, 0x3acd, 0x3af6, 0x304c, 0x3abb, 0x3a83, 0x38b2, 0x3ab9, 0x363e, 0x389f, 0x31bb, 0x38e1, 0x3bc4, 0x3b9b, 0x2984, 0x3a43, 0x3b2f, 0x35d6, 0x3bda, -0x2df3, 0x3bf8, 0x2acc, 0x378b, 0x3555, 0x2e59, 0x31d4, 0x34ec, 0x3a46, 0x3bab, 0x3214, 0x3161, 0x3470, 0x3a03, 0x368e, 0x31ad, 0x27cb, 0x2ecb, 0x3422, 0x39f7, 0x3644, 0x3a77, 0x313f, 0x34f2, 0x39b3, 0x3bf2, 0x379a, 0x3456, 0x35fe, 0x3ae7, 0x3964, 0x385f, -0x3b16, 0x3999, 0x3833, 0x2eda, 0x3afd, 0x3a4a, 0x3ba2, 0x2bd4, 0x3b38, 0x31a2, 0x32dd, 0x353c, 0x366f, 0x375e, 0x3821, 0x367a, 0x3b44, 0x39e6, 0x3787, 0x339e, 0x39d7, 0x38c6, 0x37d5, 0x342f, 0x3984, 0x319b, 0x33b5, 0x35ab, 0x398a, 0x374e, 0x36b6, 0x3b21, -0x3bbb, 0x2ab3, 0x2ad5, 0x33bc, 0x2bef, 0x3780, 0x3738, 0x3a0b, 0x3b09, 0x30ca, 0x384e, 0x3ab3, 0x39bd, 0x3453, 0x3a6d, 0x3957, 0x2c10, 0x30e9, 0x35d4, 0x3aef, 0x3be9, 0x39ad, 0x3a74, 0x3af9, 0x3739, 0x2d4d, 0x39fe, 0x3b72, 0x2c57, 0x398c, 0x381f, 0x3930, -0x3820, 0x321b, 0x3964, 0x2964, 0x33a0, 0x2d00, 0x2490, 0x336b, 0x3465, 0x3b2e, 0x3aa0, 0x371f, 0x300e, 0x3a09, 0x3bf1, 0x25cc, 0x3b6f, 0x3384, 0x3a88, 0x3acb, 0x3814, 0x36d0, 0x3081, 0x3a2c, 0x3353, 0x39cb, 0x31ed, 0x3af6, 0x3721, 0x36c7, 0x2ce2, 0x390d, -0x3698, 0x3ab2, 0x3b3e, 0x2eb4, 0x3998, 0x39e3, 0x3a77, 0x3632, 0x2c12, 0x3bd5, 0x3ba3, 0x3bba, 0x323c, 0x367b, 0x3557, 0x39c8, 0x37db, 0x3b45, 0x3b6e, 0x3931, 0x3121, 0x3a8d, 0x3a55, 0x3b9b, 0x358a, 0x3925, 0x3491, 0x3912, 0x3b6b, 0x3584, 0x32df, 0x3120, -0x32b2, 0x3b0a, 0x2cad, 0x3465, 0x3ad3, 0x3bcd, 0x363b, 0x3afe, 0x354b, 0x3374, 0x39af, 0x3b7f, 0x308c, 0x2e72, 0x3380, 0x3b70, 0x3902, 0x38d8, 0x39f3, 0x3a4b, 0x3853, 0x397b, 0x2ebe, 0x387f, 0x2845, 0x37e2, 0x360f, 0x370b, 0x3acb, 0x35d4, 0x36e6, 0x3262, -0x2e88, 0x3a54, 0x2ee3, 0x3575, 0x3afe, 0x2aee, 0x39a0, 0x3aae, 0x3693, 0x3432, 0x3834, 0x3b9b, 0x3bcb, 0x2e3a, 0x356d, 0x374e, 0x3924, 0x383c, 0x311e, 0x3ac5, 0x352d, 0x311e, 0x38ca, 0x34d4, 0x36ca, 0x34ed, 0x3a13, 0x33eb, 0x3639, 0x3828, 0x3b3c, 0x3939, -0x3837, 0x3521, 0x2cb5, 0x3629, 0x3924, 0x384c, 0x366a, 0x3bbf, 0x2e9e, 0x3ba8, 0x33ad, 0x38c8, 0x3934, 0x3907, 0x249a, 0x3690, 0x3a09, 0x3215, 0x3898, 0x325d, 0x37d5, 0x3195, 0x361c, 0x3ae4, 0x351f, 0x3452, 0x3bc0, 0x375c, 0x39bf, 0x317a, 0x3aae, 0x283a, -0x3476, 0x3b92, 0x3472, 0x383e, 0x280f, 0x39d6, 0x2fd1, 0x31f4, 0x2ffb, 0x3b97, 0x3692, 0x36c0, 0x3989, 0x33cf, 0x3ba6, 0x3239, 0x35d7, 0x33ab, 0x31eb, 0x3b47, 0x389b, 0x3b88, 0x3580, 0x354c, 0x3802, 0x3b9a, 0x3b94, 0x2a92, 0x2db1, 0x38bd, 0x2dfb, 0x3900, -0x344f, 0x3739, 0x27a5, 0x3b2e, 0x342b, 0x34bb, 0x30c8, 0x3ae8, 0x3b26, 0x3982, 0x38c0, 0x3408, 0x38c8, 0x36ef, 0x3bf0, 0x3acf, 0x3a3c, 0x3825, 0x31a5, 0x3ada, 0x3b5b, 0x37db, 0x3a01, 0x3663, 0x3a7d, 0x327b, 0x3a1f, 0x3862, 0x38af, 0x3204, 0x372e, 0x3b19, -0x3708, 0x3622, 0x2e62, 0x39ab, 0x2d4d, 0x31b4, 0x3552, 0x3bbc, 0x36f2, 0x36eb, 0x38ef, 0x3755, 0x3bbe, 0x2c17, 0x3815, 0x2f53, 0x363f, 0x38c1, 0x3246, 0x386b, 0x34de, 0x34e4, 0x3baa, 0x349e, 0x32ce, 0x3a68, 0x373f, 0x2cce, 0x3b36, 0x28ba, 0x3b50, 0x3232, -0x1f34, 0x3928, 0x35cd, 0x3b38, 0x30ce, 0x35a1, 0x3a06, 0x3a32, 0x3a53, 0x3489, 0x3241, 0x372f, 0x390c, 0x3a1b, 0x378a, 0x3713, 0x3769, 0x37a8, 0x3418, 0x3ad4, 0x3a4e, 0x3bf7, 0x37a5, 0x34dc, 0x39b2, 0x351b, 0x3372, 0x349f, 0x2f50, 0x3ab1, 0x3795, 0x2db7, -0x3864, 0x3157, 0x3900, 0x323e, 0x389e, 0x3880, 0x3b1f, 0x37a1, 0x396c, 0x2e43, 0x2c2a, 0x3b78, 0x3988, 0x3a14, 0x39c1, 0x3b51, 0x3780, 0x3bf2, 0x2d19, 0x3815, 0x3a5f, 0x3641, 0x2f62, 0x37d5, 0x3564, 0x139a, 0x3ab8, 0x28f7, 0x3785, 0x34e1, 0x3097, 0x3768, -0x3971, 0x3ae2, 0x32ae, 0x2fd5, 0x382a, 0x346c, 0x3133, 0x3167, 0x3940, 0x2d12, 0x389a, 0x3bd0, 0x3943, 0x391c, 0x3a75, 0x2a11, 0x391e, 0x372d, 0x3a79, 0x3b72, 0x3373, 0x39b7, 0x35d7, 0x372b, 0x3a6d, 0x38a1, 0x3279, 0x3434, 0x3694, 0x3b45, 0x3abb, 0x392d, -0x34a8, 0x3757, 0x32ca, 0x345d, 0x36a5, 0x3854, 0x2dcd, 0x30af, 0x38dd, 0x3067, 0x3411, 0x3997, 0x397a, 0x3a64, 0x38b8, 0x3962, 0x3509, 0x3bb6, 0x3a66, 0x339f, 0x372a, 0x31a8, 0x37da, 0x36ff, 0x33c6, 0x31da, 0x3977, 0x3b72, 0x3841, 0x3567, 0x3433, 0x33b8, -0x39fe, 0x3a10, 0x3bf2, 0x35e7, 0x3a4a, 0x3b3e, 0x2ec7, 0x3aa4, 0x3846, 0x3af9, 0x38a9, 0x2c1f, 0x39ab, 0x349f, 0x31d6, 0x39ae, 0x3b79, 0x352d, 0x3516, 0x347c, 0x2f33, 0x35ad, 0x31c4, 0x3b52, 0x354b, 0x3786, 0x3ab7, 0x3896, 0x34ac, 0x352f, 0x37e6, 0x326a, -0x2e44, 0x34c7, 0x388d, 0x3bf4, 0x363f, 0x3b3d, 0x33b1, 0x3b8b, 0x3340, 0x37f7, 0x3b07, 0x25bf, 0x398e, 0x3505, 0x3bd7, 0x366d, 0x388a, 0x2cc0, 0x359a, 0x3b9a, 0x3b99, 0x379d, 0x3b6b, 0x39b8, 0x3223, 0x2703, 0x3ba9, 0x2ecb, 0x3759, 0x39d8, 0x37ac, 0x32cf, -0x35f2, 0x38a3, 0x399e, 0x3bd2, 0x3780, 0x3af3, 0x3b5e, 0x337b, 0x3a08, 0x35da, 0x3446, 0x3b25, 0x3ad0, 0x3bee, 0x3141, 0x32d8, 0x34ce, 0x2ac9, 0x3800, 0x3a8a, 0x2d53, 0x368a, 0x3561, 0x3998, 0x35a3, 0x3677, 0x3ab2, 0x3269, 0x3236, 0x3b3e, 0x3aba, 0x3bac, -0x395d, 0x3820, 0x1df6, 0x3bb5, 0x35b5, 0x3675, 0x3b74, 0x360f, 0x34de, 0x3a0c, 0x3aeb, 0x299d, 0x3207, 0x3bd8, 0x2178, 0x3995, 0x3948, 0x3908, 0x3843, 0x2ea5, 0x3045, 0x3989, 0x345d, 0x39c5, 0x3a89, 0x3863, 0x3be0, 0x397a, 0x38f1, 0x39e2, 0x3b08, 0x352e, -0x385f, 0x28f2, 0x3bc3, 0x35e0, 0x380c, 0x3b9c, 0x3afc, 0x390a, 0x3689, 0x34fd, 0x2cf5, 0x308e, 0x342b, 0x3921, 0x3a67, 0x3ad6, 0x2986, 0x32fc, 0x35aa, 0x3507, 0x3608, 0x33fd, 0x3bf3, 0x39e2, 0x3b0f, 0x30b7, 0x3896, 0x3ae4, 0x2145, 0x35b6, 0x2e1d, 0x3ad1, -0x333d, 0x3afb, 0x2703, 0x3413, 0x1d7d, 0x3b7f, 0x3ae1, 0x303c, 0x3004, 0x39d3, 0x3554, 0x31a4, 0x354e, 0x3662, 0x39c5, 0x2eb7, 0x2c6e, 0x397f, 0x31d8, 0x1f0c, 0x38e3, 0x35f0, 0x2714, 0x28d1, 0x375e, 0x3a75, 0x3830, 0x3578, 0x397d, 0x3b18, 0x383c, 0x3498, -0x39ad, 0x3598, 0x23c4, 0x34ea, 0x3a61, 0x2b00, 0x3707, 0x3ae1, 0x37ae, 0x389d, 0x37fa, 0x3673, 0x3278, 0xf3e, 0x3809, 0x33c6, 0x3bf5, 0x3279, 0x3816, 0x360c, 0x39c8, 0x381f, 0x3741, 0x2d66, 0x38c0, 0x37d3, 0x377a, 0x3621, 0x2faf, 0x392e, 0x2de6, 0x33c5, -0x3803, 0x2600, 0x32e9, 0x39b4, 0x38d2, 0x34e8, 0x2fe6, 0x3199, 0x3643, 0x3a77, 0x27cc, 0x39d7, 0x34c6, 0x2ea8, 0x364e, 0x3b07, 0x31c7, 0x30a1, 0x31b1, 0x3b8f, 0x3571, 0x3b75, 0x3989, 0x3805, 0x39fb, 0x3945, 0x352b, 0x31d8, 0x3904, 0x3440, 0x3a57, 0x2cf7, -0x3b39, 0x2fcd, 0x2b89, 0x2edd, 0x3682, 0x36a9, 0x32c8, 0x37ac, 0x32a5, 0x3311, 0x394b, 0x3b84, 0x3aec, 0x3601, 0x2765, 0x3b69, 0x396b, 0x3727, 0x3bfe, 0x3907, 0x376f, 0x3674, 0x3973, 0x3671, 0x3491, 0x3993, 0x383f, 0x3335, 0x3989, 0x3550, 0x3077, 0x35f5, -0x3a59, 0x3950, 0x380c, 0x37cd, 0x30bf, 0x3607, 0x3afa, 0x3b5d, 0x32b9, 0x386b, 0x35bd, 0x3aca, 0x3ba5, 0x3b2d, 0x3b19, 0x3b8b, 0x345e, 0x2845, 0x34aa, 0x372a, 0x3448, 0x34f5, 0x3ae2, 0x3637, 0x2cb5, 0x354b, 0x3b15, 0x2ca8, 0x2641, 0x3178, 0x2cfe, 0x39b4, -0x3bdd, 0x3acb, 0x3a05, 0x38a2, 0x3b4a, 0x34e5, 0x395f, 0x394b, 0x34c4, 0x3aa5, 0x29bb, 0x2d96, 0x339d, 0x387c, 0x382e, 0x385a, 0x396b, 0x3aa9, 0x2f1e, 0x33a7, 0x3b90, 0x3b7b, 0x3b5f, 0x39d3, 0x3b18, 0x354f, 0x2cdb, 0x3a6f, 0x3434, 0x34ff, 0x3a5b, 0x3b84, -0x3a33, 0x384b, 0x2e67, 0x3b85, 0x3853, 0x380c, 0x346a, 0x3aaa, 0x3492, 0x33e8, 0x3bf2, 0x38ae, 0x3a29, 0x3830, 0x3221, 0x35b1, 0x3a48, 0x2c68, 0x2ced, 0x3a7e, 0x3539, 0x3922, 0x374c, 0x3aaa, 0x2dae, 0x395d, 0x3b3d, 0x3890, 0x2cfe, 0x2dd6, 0x3bad, 0x33c5, -0x2c07, 0x3a2c, 0x37a8, 0x390f, 0x2fc8, 0x35ae, 0x388c, 0x30ee, 0x3674, 0x391d, 0x3bfc, 0x36bf, 0x322d, 0x3a78, 0x35c0, 0x3492, 0x3ac8, 0x3504, 0x3315, 0x381d, 0x3a7a, 0x3a08, 0x343c, 0x3bda, 0x341b, 0x39f0, 0x3b9e, 0x395d, 0x3c00, 0x38ab, 0x3bcf, 0x3564, -0x33c4, 0x3b0d, 0x3623, 0x33b9, 0x3b92, 0x1e71, 0x2c57, 0x36d0, 0x314b, 0x3a16, 0x3372, 0x341b, 0x3aaa, 0x3444, 0x396b, 0x2dd7, 0x3b30, 0x3559, 0x3b5b, 0x3a29, 0x2d19, 0x38b7, 0x3b01, 0x3afa, 0x398a, 0x3839, 0x3ac9, 0x2e31, 0x3924, 0x39f2, 0x3a7f, 0x3285 +uint16_t w_inp [2304] = { +0x35fc, 0x3b0d, 0x3932, 0x38db, 0x351c, 0x3606, 0x2cac, 0x3881, 0x39f7, 0x3a4e, 0x36dc, 0x3be4, 0x3b10, 0x380f, 0x3a86, 0x3068, 0x39ef, 0x3843, 0x3799, 0x32e7, 0x37ec, 0x2f9f, 0x3b70, 0x3ad0, 0x3a4e, 0x2c0e, 0x34f2, 0x3996, 0x3496, 0x3744, 0x3a0a, 0x39e5, 0x3665, 0x3ae8, 0x3bd5, 0x3673, 0x28b7, 0x3b20, 0x36e9, 0x37f6, 0x36ba, 0x334c, 0x38f3, 0x3991, 0x3513, 0x36fd, 0x3249, 0x359b, +0x3a1f, 0x3af4, 0x3469, 0x3b47, 0x3a83, 0x302a, 0x2e5b, 0x3aea, 0x3b41, 0x392d, 0x2167, 0x2d48, 0x3b1a, 0x3b67, 0x353b, 0x3646, 0x2caa, 0x2fad, 0x1808, 0x3840, 0x3b9c, 0x305a, 0x2ebf, 0x3a6c, 0x366b, 0x34d2, 0x3752, 0x386d, 0x3be9, 0x3583, 0x353d, 0x3bcf, 0x3b4c, 0x37a2, 0x3324, 0x2f81, 0x3aa0, 0x31ad, 0x3beb, 0x327b, 0x221c, 0x3719, 0x3624, 0x3ad2, 0x3662, 0x3b80, 0x3a90, 0x3849, +0x364b, 0x37a3, 0x3a8f, 0x39b5, 0x3ac3, 0x2cc3, 0x3a4d, 0x36bb, 0x3aa9, 0x38e3, 0x3b3d, 0x34c2, 0x2f39, 0x3986, 0x3add, 0x3aba, 0x3aec, 0x35a9, 0x3730, 0x3345, 0x335c, 0x34d7, 0x322d, 0x3bb7, 0x39b5, 0x3bca, 0x361b, 0x3462, 0x31e5, 0x35c1, 0x3b65, 0x3b1a, 0x34fd, 0x3b93, 0x3bf5, 0x338a, 0x376e, 0x3b22, 0x325f, 0x2cd5, 0x3424, 0x37a3, 0x391f, 0x37bd, 0x3acc, 0x3439, 0x38ed, 0x3636, +0x3138, 0x3798, 0x3801, 0x3982, 0x3adb, 0x39c1, 0x3bce, 0x2eb9, 0x3799, 0x347f, 0x372a, 0x3a6e, 0x2e9c, 0x3a35, 0x3a62, 0x3468, 0x349a, 0x27e7, 0x36eb, 0x3b0e, 0x3842, 0x393e, 0x242c, 0x3b0b, 0x36f8, 0x338a, 0x3813, 0x2fe8, 0x393c, 0x2c58, 0x3a15, 0x3407, 0x2a90, 0x2d77, 0x3bab, 0x398f, 0x32bc, 0x2115, 0x36e8, 0x357e, 0x3ab3, 0x39ff, 0x2f1e, 0x38cb, 0x3979, 0x36cd, 0x37bc, 0x23ff, +0x3ba7, 0x3884, 0x325a, 0x3308, 0x3b58, 0x3a4e, 0x36e0, 0x3add, 0x30bb, 0x3b1b, 0x35b7, 0x2dea, 0x36fa, 0x34c3, 0x3a49, 0x2cb4, 0x31bf, 0x21f5, 0x3188, 0x31ad, 0x292c, 0x3a61, 0x36f6, 0x32c8, 0x3aa0, 0x3b1f, 0x3aa1, 0x38c3, 0x3848, 0x39e9, 0x15bf, 0x3a81, 0x383e, 0x394b, 0x3046, 0x373d, 0x3577, 0x3673, 0x3ad4, 0x3be4, 0x3afd, 0x3888, 0x39df, 0x2a50, 0x34ce, 0x389d, 0x3457, 0x32f9, +0x3ad8, 0x2cee, 0x36d4, 0x3804, 0x3987, 0x3887, 0x3b55, 0x372b, 0x3b31, 0x36b8, 0x3481, 0x37be, 0x2d47, 0x31fb, 0x3b5c, 0x35d0, 0x2d16, 0x38a5, 0x373b, 0x3a4d, 0x3a3e, 0x2460, 0x3a0e, 0x34da, 0x3776, 0x383a, 0x3a9a, 0x3613, 0x3832, 0x2a7f, 0x394e, 0x3bb2, 0x3736, 0x3408, 0x3824, 0x32d3, 0x3964, 0x31f6, 0x3aef, 0x252b, 0x3482, 0x207c, 0x3bab, 0x2d1b, 0x3a9c, 0x37bd, 0x384e, 0x3829, +0x2e22, 0x3333, 0x39a1, 0x30a4, 0x37bf, 0x3a7f, 0x3752, 0x3506, 0x2876, 0x34b7, 0x3476, 0x34a2, 0x3a31, 0x2db6, 0x3210, 0x318e, 0x1e10, 0x3395, 0x387a, 0x3674, 0x3381, 0x2b89, 0x3613, 0x304e, 0x38ab, 0x38f3, 0x3a29, 0x379a, 0x3876, 0x2c22, 0x353b, 0x3a4c, 0x3bdb, 0x2dd6, 0x3a77, 0x3a19, 0x38ed, 0x349d, 0x34a3, 0x38f8, 0x314a, 0x3915, 0x3869, 0x3512, 0x3976, 0x3873, 0x3049, 0x3750, +0x39ab, 0x3b69, 0x3825, 0x3595, 0x3922, 0x3871, 0x3308, 0x3856, 0x3b8f, 0x27c9, 0x2bfe, 0x3aa1, 0x3a6e, 0x3642, 0x385e, 0x3502, 0x3ac5, 0x3a06, 0x3a83, 0x37c9, 0x29d7, 0x2ffd, 0x386c, 0x34eb, 0x33f9, 0x3758, 0x18b1, 0x28d1, 0x3bfb, 0x3892, 0x388e, 0x39ae, 0x3623, 0x29c6, 0x39a7, 0x38b7, 0x393f, 0x2acf, 0x34a9, 0x3088, 0x380a, 0x3974, 0x304b, 0x332c, 0x2a6a, 0x379b, 0x3bdd, 0x1dd6, +0x148c, 0x34ae, 0x3a32, 0x366b, 0x39e8, 0x346b, 0x3986, 0x3ae4, 0x3576, 0x391e, 0x3834, 0x37f9, 0x2fac, 0x3738, 0x3b73, 0x3b95, 0x351c, 0x38d3, 0x2af2, 0x3624, 0x3505, 0x3810, 0x2d15, 0x3b25, 0x380c, 0x3ab4, 0x3a00, 0x381d, 0x33cd, 0x397a, 0x3a08, 0x3ab0, 0x2fc2, 0x3868, 0x37aa, 0x3668, 0x36d0, 0x37d9, 0x3474, 0x38a1, 0x2eb8, 0x396e, 0x397e, 0x35df, 0x3082, 0x3795, 0x3b81, 0x3a97, +0x34ba, 0x3535, 0x234d, 0x3750, 0x3095, 0x3a02, 0x3bec, 0x2e19, 0x378b, 0x37d4, 0x3b3c, 0x2fc6, 0x3a80, 0x317a, 0x3b20, 0x381a, 0x343b, 0x3842, 0x3938, 0x3866, 0x34dd, 0x3a3e, 0x3ac4, 0x343d, 0x358c, 0x34e3, 0x37ab, 0x2def, 0x368c, 0x389e, 0x3835, 0x388e, 0x36aa, 0x35d4, 0x3771, 0x3378, 0x30cb, 0x37ca, 0x3863, 0x3376, 0x2d72, 0x2f74, 0x351b, 0x3618, 0x3b8c, 0x3279, 0x379f, 0x382d, +0x385d, 0x3baa, 0x30eb, 0x2c8d, 0x3bb6, 0x3a11, 0x3852, 0x3a3c, 0x28e8, 0x3632, 0x3a2c, 0x35c4, 0x39aa, 0x36f9, 0x3142, 0x27de, 0x31ba, 0x3938, 0x368a, 0x387e, 0x3777, 0x37f1, 0x3abd, 0x3a2a, 0x3881, 0x3beb, 0x3ac4, 0x303d, 0x3262, 0x3282, 0x3064, 0x3b74, 0x2f15, 0x31a8, 0x39d5, 0x3a1f, 0x37ea, 0x3807, 0x2c37, 0x374e, 0x39fa, 0x3ab7, 0x3957, 0x31c7, 0x3a21, 0x3162, 0x3812, 0x3476, +0x33e1, 0x3198, 0x3933, 0x35d9, 0x2b29, 0x3872, 0x3758, 0x34c9, 0x2da4, 0x3a45, 0x35fa, 0x3923, 0x3a06, 0x38d3, 0x3866, 0x295f, 0x3579, 0x39f5, 0x28a9, 0x3242, 0x3907, 0x3700, 0x3bc7, 0x3934, 0x36c6, 0x3562, 0x3654, 0x3916, 0x3be3, 0x35f8, 0x33aa, 0x3035, 0x3511, 0x3ab6, 0x3687, 0x3838, 0x3ae3, 0x3183, 0x3b8c, 0x38b7, 0x396d, 0x35ce, 0x3a03, 0x29be, 0x3bd0, 0x39a8, 0x3b96, 0x3951, +0x32b5, 0x3448, 0x3ae5, 0x39ae, 0x3a15, 0x3019, 0x39a4, 0x3626, 0x3863, 0x3b0d, 0x3337, 0x36b8, 0x3971, 0x3943, 0x3b19, 0x33d7, 0x2e81, 0x325e, 0x3957, 0x357e, 0x3441, 0x38f7, 0x3a33, 0x2f39, 0x3999, 0x30d0, 0x376a, 0x389a, 0x3842, 0x3985, 0x3769, 0x38e1, 0x3953, 0x349f, 0x386d, 0x3aee, 0x3946, 0x39dd, 0x3a64, 0x3953, 0x393d, 0x3560, 0x30f2, 0x35ba, 0x3611, 0x3a3d, 0x39a9, 0x39ee, +0x386a, 0x3aaa, 0x3bdf, 0x3a80, 0x3acb, 0x3950, 0x35af, 0x33c5, 0x371f, 0x349e, 0x378d, 0x3b6a, 0x3356, 0x391c, 0x396f, 0x35f1, 0x3bfa, 0x392c, 0x2937, 0x35ed, 0x3187, 0x3b63, 0x39c0, 0x3676, 0x37dd, 0x3108, 0x3409, 0x35f8, 0x3958, 0x3844, 0x3bae, 0x36d5, 0x35e3, 0x2b3d, 0x3814, 0x3737, 0x367d, 0x3ac9, 0x3bca, 0x3abb, 0x30a1, 0x3b81, 0x3454, 0x2f9f, 0x387e, 0x3810, 0x3a84, 0x375a, +0x3adb, 0x363b, 0x37c9, 0x34f9, 0x304a, 0x36d3, 0x3381, 0x32a3, 0x3a82, 0x3baa, 0x34ec, 0x3aaa, 0x3474, 0x30e9, 0x3430, 0x3953, 0x33e5, 0x3532, 0x2b12, 0x39cc, 0x38eb, 0x3919, 0x3b4c, 0x336f, 0x3033, 0x34c6, 0x3623, 0x3414, 0x3b27, 0x3adf, 0x375f, 0x39ef, 0x38ff, 0x30ac, 0x399b, 0x3bb6, 0x2eb2, 0x37b5, 0x3b67, 0x3976, 0x3bba, 0x3855, 0x38bc, 0x3b24, 0x39f5, 0x38f5, 0x3647, 0x3b3e, +0x3481, 0x3984, 0x391e, 0x3b18, 0x3503, 0x3740, 0x3881, 0x38dd, 0x37a3, 0x35c6, 0x3b5d, 0x348a, 0x35e9, 0x30e7, 0x36e4, 0x374a, 0x317e, 0x3763, 0x33ac, 0x3752, 0x23a2, 0x3157, 0x3458, 0x34dd, 0x38c6, 0x39f5, 0x3b90, 0x341e, 0x3a4e, 0x3a9e, 0x3847, 0x3534, 0x37b0, 0x394b, 0x3235, 0x3370, 0x3a93, 0x398c, 0x3696, 0x28be, 0x3bc9, 0x34d3, 0x3061, 0x3a77, 0x3b81, 0x399d, 0x343a, 0x315a, +0x3537, 0x39d5, 0x2d26, 0x396a, 0x3a5f, 0x3a73, 0x390f, 0x2fdf, 0x3b36, 0x26da, 0x3b4f, 0x3376, 0x3b54, 0x3a06, 0x3a70, 0x38f7, 0x3b54, 0x3a21, 0x396e, 0x3818, 0x3564, 0x25ad, 0x3838, 0x378a, 0x3467, 0x3801, 0x3b6d, 0x38dd, 0x2891, 0x388a, 0x376d, 0x2dd7, 0x393c, 0x38a8, 0x3829, 0x3bad, 0x3b91, 0x3860, 0x3bc6, 0x3ad4, 0x3be9, 0x3a7e, 0x3a24, 0x3622, 0x35ee, 0x37cf, 0x3081, 0x3a71, +0x2fe3, 0x35d4, 0x3b7c, 0x2e07, 0x3a86, 0x3807, 0x3592, 0x37a8, 0x2f01, 0x3ad0, 0x3296, 0x31aa, 0x2a76, 0x3780, 0x2903, 0x3642, 0x2923, 0x31f4, 0x38b6, 0x3a02, 0x328d, 0x323b, 0x36af, 0x384d, 0x3965, 0x3950, 0x28be, 0x3b82, 0x3aa9, 0x3b59, 0x2c6e, 0x39ff, 0x3872, 0x3521, 0x3b2a, 0x2519, 0x3819, 0x332c, 0x3ada, 0x3903, 0x3998, 0x3ab1, 0x3bb8, 0x3afe, 0x3801, 0x3976, 0x3936, 0x376d, +0x3111, 0x34d6, 0x309d, 0x362e, 0x29e6, 0x2b85, 0x360c, 0x38d7, 0x3789, 0x3aad, 0x3275, 0x34c3, 0x3987, 0x38e5, 0x2eef, 0x2fa6, 0x384d, 0x38c2, 0x3955, 0x39fd, 0x2ef6, 0x3954, 0x3884, 0x3bd5, 0x3bb3, 0x2a83, 0x3585, 0x2c68, 0x3a2c, 0x33c6, 0x34c3, 0x3bdb, 0x34e4, 0x3a8c, 0x36ba, 0x390d, 0x34b6, 0x347a, 0x34e8, 0x36d4, 0x3802, 0x3523, 0x38b6, 0x35a5, 0x3271, 0x3ae6, 0x3b39, 0x39c3, +0x376e, 0x3570, 0x3816, 0x3085, 0x343d, 0x2fe4, 0x3b5f, 0x36f9, 0x3ac5, 0x37cd, 0x3ac3, 0x3add, 0x34bb, 0x3a7f, 0x2864, 0x39f1, 0x3826, 0x29a0, 0x3a74, 0x3871, 0x399a, 0x35aa, 0x38d7, 0x355e, 0x30dd, 0x3a16, 0x3473, 0x35d4, 0x326e, 0x2d92, 0x3ac7, 0x33f5, 0x2c76, 0x387b, 0x2f6e, 0x30ae, 0x2eea, 0x3a58, 0x31c0, 0x29a9, 0x3941, 0x3747, 0x30ec, 0x320c, 0x38e2, 0x3843, 0x356b, 0x3878, +0x2de2, 0x38c4, 0x39ea, 0x3535, 0x3478, 0x3437, 0x3983, 0x38f8, 0x3620, 0x3282, 0x38e2, 0x358a, 0x39ee, 0x3842, 0x3ad2, 0x2cc7, 0x3923, 0x3bf5, 0x3671, 0x2cf9, 0x36ca, 0x34b0, 0x2f2d, 0x2dcc, 0x37c6, 0x34bd, 0x1958, 0x3874, 0x3053, 0x3b1c, 0x387d, 0x38d4, 0x3bb8, 0x39d7, 0x3ad3, 0x38d4, 0x3adc, 0x25cf, 0x2431, 0x3340, 0x2920, 0x3436, 0x2de5, 0x3773, 0x25ba, 0x30d4, 0x36de, 0x3b4e, +0x3b11, 0x38cd, 0x3bf1, 0x32b9, 0x3487, 0x39d5, 0x39db, 0x3417, 0x3bc9, 0x3809, 0x3a1f, 0x31d7, 0x38e9, 0x3bdd, 0x3a7a, 0x3ad3, 0x3246, 0x3990, 0x3965, 0x316f, 0x1cf3, 0x3903, 0x3afd, 0x38ba, 0x3190, 0x3bc5, 0x38fa, 0x3814, 0x2aa6, 0x38be, 0x3433, 0x38c3, 0x3b3e, 0x3b7e, 0x3918, 0x3abd, 0x39b7, 0x3532, 0x3893, 0x3786, 0x2df3, 0x2669, 0x3bdb, 0x368f, 0x3b55, 0x385d, 0x39e4, 0x3814, +0x36ad, 0x38c5, 0x386b, 0x3718, 0x34b3, 0x3941, 0x34f3, 0x389e, 0x37ab, 0x3a84, 0x2a6e, 0x3bf9, 0x342e, 0x361b, 0x3bb9, 0x322f, 0x36e6, 0x349c, 0x3961, 0x34e2, 0x2e2f, 0x3642, 0x357d, 0x32b8, 0x259d, 0x3a58, 0x3aa7, 0x3759, 0x3352, 0x3bb1, 0x352c, 0x3776, 0x3aa6, 0x2a06, 0x3b7a, 0x38ae, 0x330e, 0x377a, 0x3841, 0x2cb3, 0x3aa6, 0x3bfc, 0x39a2, 0x3257, 0x3584, 0x38ac, 0x3761, 0x3623, +0x38ae, 0x37d1, 0x361f, 0x3080, 0x3816, 0x3936, 0x3864, 0x3a8c, 0x377c, 0x3847, 0x37c3, 0x35ab, 0x33c1, 0x39ec, 0x368c, 0x3b72, 0x322e, 0x2e35, 0x3983, 0x3a36, 0x3456, 0x33d0, 0x320a, 0x37b9, 0x18b9, 0x39ec, 0x3782, 0x3178, 0x3adb, 0x376d, 0x3514, 0x2f00, 0x39e8, 0x2e6a, 0x2153, 0x3bdb, 0x38b0, 0x2c53, 0x35e5, 0x3b3d, 0x3863, 0x3ae6, 0x3a0c, 0x3bfa, 0x3829, 0x3a6c, 0x2e19, 0x3a59, +0x3892, 0x363e, 0x303c, 0x3bdd, 0x3565, 0x3b18, 0x383c, 0x3437, 0x38bb, 0x3bb1, 0x3665, 0x2d86, 0x36de, 0x34ba, 0x3853, 0x385c, 0x31a6, 0x3a8e, 0x2cde, 0x3adc, 0x2cd5, 0x3884, 0x28de, 0x3b06, 0x29b4, 0x38df, 0x3955, 0x363f, 0x32a2, 0x35ea, 0x3879, 0x368e, 0x39aa, 0x382c, 0x34a0, 0x34ac, 0x374b, 0x3846, 0x32c2, 0x3bf8, 0x3a62, 0x3b6d, 0x3b1e, 0x3aa8, 0x333e, 0x3621, 0x3911, 0x3a8a, +0x3738, 0x3a91, 0x394f, 0x3ba9, 0x3a11, 0x3a08, 0x3b02, 0x38fe, 0x3860, 0x39db, 0x3b3a, 0x3090, 0x3836, 0x324d, 0x2d84, 0x384b, 0x2e3a, 0x3bee, 0x33ff, 0x3be7, 0x3144, 0x31b4, 0x39f9, 0x3c00, 0x3614, 0x2c49, 0x3706, 0x2f7e, 0x39bb, 0x31a9, 0x39e9, 0x382e, 0x3868, 0x3a2c, 0x369f, 0x39fb, 0x3bdb, 0x39e5, 0x3956, 0x340e, 0x38ab, 0x36d8, 0x38f1, 0x3baf, 0x3a9f, 0x3b9f, 0x3593, 0x3aa7, +0x3b35, 0x36dd, 0x39b1, 0x3a34, 0x3471, 0x3b10, 0x357b, 0x3901, 0x3a1a, 0x2b62, 0x333f, 0x39f4, 0x3532, 0x3439, 0x3b58, 0x3747, 0x35b6, 0x385e, 0x3809, 0x3292, 0x3685, 0x306a, 0x3650, 0x3bf9, 0x3944, 0x3ad6, 0x3967, 0x3bc1, 0x383f, 0x398c, 0x3903, 0x37a5, 0x3886, 0x3578, 0x2fbd, 0x2d16, 0x3679, 0x3989, 0x360f, 0x3722, 0x3816, 0x3af2, 0x391b, 0x38ff, 0x3aac, 0x38fa, 0x3495, 0x36a2, +0x392b, 0x30ef, 0x36ab, 0x3b08, 0x2874, 0x36bf, 0x3ab9, 0x3826, 0x3aa3, 0x3264, 0x367c, 0x3bb2, 0x36af, 0x3bd0, 0x3686, 0x39fa, 0x38c7, 0x3828, 0x2ece, 0x38dc, 0x2503, 0x39a9, 0x1e5b, 0x36d0, 0x2cda, 0x3876, 0x3898, 0x2f2f, 0x388e, 0x3957, 0x2de2, 0x3527, 0x38ff, 0x3bca, 0x3b64, 0x3871, 0x3569, 0x33e0, 0x39fb, 0x3841, 0x3956, 0x3548, 0x2dc0, 0x34f8, 0x3ac5, 0x3825, 0x390b, 0x3afd, +0x39b6, 0x31e0, 0x347c, 0x390a, 0x3797, 0x340d, 0x3965, 0x393c, 0x39b9, 0x354a, 0x3735, 0x39c0, 0x3a12, 0x3705, 0x3aa8, 0x2d54, 0x39ae, 0x3b94, 0x390d, 0x3ae2, 0x35bc, 0x3bc5, 0x342d, 0x3960, 0x3927, 0x3b75, 0x3b59, 0x37a8, 0x38b0, 0x3a31, 0x34c6, 0x387b, 0x3421, 0x3201, 0x2e3e, 0x355e, 0x31b3, 0x37ee, 0x264f, 0x383b, 0x3a97, 0x2f43, 0x21b1, 0x246d, 0x3941, 0x3895, 0x33c2, 0x3922, +0x3be3, 0x3b92, 0x30b0, 0x3a4d, 0x3276, 0x3254, 0x388b, 0x2a11, 0x337c, 0x3a12, 0x3bcb, 0x3830, 0x3716, 0x3211, 0x3397, 0x375b, 0x3704, 0x31c3, 0x3b40, 0x3882, 0x3644, 0x34b4, 0x2cd3, 0x328f, 0x3944, 0x32a0, 0x3a25, 0x3865, 0x3989, 0x387d, 0x3333, 0x37b6, 0x3b1a, 0x36d8, 0x3191, 0x38b6, 0x3aa9, 0x3593, 0x3ac6, 0x391b, 0x39a8, 0x3762, 0x3832, 0x348d, 0x3b8e, 0x2e1b, 0x3609, 0x2f99, +0x39a8, 0x3b3a, 0x326e, 0x3af1, 0x35fe, 0x3a6d, 0x3865, 0x2e64, 0x35f7, 0x3250, 0x394d, 0x35cc, 0x38d4, 0x34e3, 0x3998, 0x38d8, 0x344d, 0x35f6, 0x370f, 0x2dd9, 0x3318, 0x3175, 0x2ca7, 0x3b8d, 0x381b, 0x2e3f, 0x38e2, 0x3a20, 0x3980, 0x3b51, 0x3bc5, 0x34ad, 0x38fb, 0x351f, 0x35f4, 0x3a7c, 0x30a3, 0x29c3, 0x34b0, 0x38dd, 0x32d0, 0x3196, 0x3a52, 0x3b1a, 0x3bd5, 0x2336, 0x2b84, 0x373c, +0x3b48, 0x2cc4, 0x3ae6, 0x36c5, 0x3bef, 0x3429, 0x39e0, 0x37e5, 0x393f, 0x3075, 0x371d, 0x3ae5, 0x3bcf, 0x3985, 0x3a61, 0x3952, 0x3a59, 0x3b67, 0x2eed, 0x38c7, 0x3984, 0x3ab3, 0x3bf6, 0x3b8c, 0x3aa2, 0x38b7, 0x361d, 0x3889, 0x3bf2, 0x357d, 0x3906, 0x3916, 0x3b6b, 0x2ce3, 0x38f5, 0x38a3, 0x3a03, 0x3848, 0x32e4, 0x31f1, 0x3659, 0x321c, 0x3b9d, 0x3543, 0x346f, 0x3ad2, 0x28be, 0x3814, +0x3ac3, 0x3a25, 0x370d, 0x3959, 0x39f1, 0x3564, 0x3abd, 0x30e3, 0x2e05, 0x352e, 0x38fd, 0x32b4, 0x34fe, 0x3806, 0x37f7, 0x30ce, 0x352d, 0x28aa, 0x3bb6, 0x3596, 0x367c, 0x3179, 0x3888, 0x2435, 0x39ff, 0x30bc, 0x2d57, 0x3b18, 0x3816, 0x37c6, 0x3700, 0x3801, 0x30a1, 0x397d, 0x3995, 0x3b34, 0x3b32, 0x3a23, 0x2899, 0x2d9e, 0x383b, 0x38dc, 0x3174, 0x38c8, 0x34c9, 0x38cc, 0x3813, 0x3224, +0x3580, 0x3913, 0x3908, 0x378e, 0x359d, 0x368a, 0x3b98, 0x3a4e, 0x3647, 0x256b, 0x31bd, 0x3aac, 0x3bd7, 0x253b, 0x2c43, 0x3b2e, 0x3a7d, 0x3533, 0x3638, 0x31ab, 0x2ffc, 0x2ae2, 0x391f, 0x303f, 0x3a56, 0x3830, 0x3af0, 0x3894, 0x3bda, 0x3a64, 0x3887, 0x318a, 0x349b, 0x3a9a, 0x348a, 0x3a9f, 0x3895, 0x2df3, 0x33e6, 0x3751, 0x3493, 0x35d7, 0x347b, 0x390e, 0x38ca, 0x336e, 0x3b06, 0x38dc, +0x3b26, 0x37c1, 0x392a, 0x34c8, 0x3b85, 0x3bdc, 0x3b87, 0x32d8, 0x38c7, 0x36e8, 0x37ea, 0x3ae2, 0x3514, 0x3a11, 0x3997, 0x3058, 0x39a3, 0x3bb8, 0x3b14, 0x375f, 0x3ab4, 0x3afa, 0x3454, 0x37a2, 0x2753, 0x368f, 0x2eeb, 0x3744, 0x3516, 0x301b, 0x32ce, 0x37bd, 0x3b00, 0x3904, 0x3b32, 0x2a9b, 0x357d, 0x3a9f, 0x3bfd, 0x38e5, 0x37a9, 0x3255, 0x3585, 0x38e5, 0x3888, 0x34e0, 0x37c5, 0x3a3e, +0x372b, 0x2170, 0x35ba, 0x3aea, 0x31e7, 0x3839, 0x371c, 0x3a87, 0x36d8, 0x31ca, 0x3aa6, 0x2b08, 0x3b9e, 0x3851, 0x3bc8, 0x371a, 0x3a32, 0x3417, 0x3adb, 0x2bc3, 0x3a5c, 0x3052, 0x3b2d, 0x3509, 0x366c, 0x28b2, 0x37c2, 0x3ae5, 0x3723, 0x37f9, 0x3837, 0x3b4b, 0x2e1c, 0x3a39, 0x3957, 0x3187, 0x39db, 0x35e5, 0x348a, 0x39a1, 0x3446, 0x398b, 0x2c5a, 0x350f, 0x387a, 0x38c0, 0x3991, 0x3ab3, +0x3a43, 0x34a9, 0x38f7, 0x38e1, 0x37cd, 0x336e, 0x3a65, 0x35c1, 0x2cee, 0x3893, 0x2da1, 0x36e3, 0x3522, 0x2a40, 0x3b9e, 0x3742, 0x3bfa, 0x3634, 0x347b, 0x2d83, 0x39f7, 0x3a2c, 0x3b1e, 0x32eb, 0x3506, 0x3a5d, 0x34f9, 0x354c, 0x3104, 0x2cdf, 0x3a35, 0x3a08, 0x319e, 0x37b7, 0x3570, 0x3b22, 0x387a, 0x330c, 0x3706, 0x31a6, 0x38de, 0x3bbc, 0x38e7, 0x360e, 0x3257, 0x331b, 0x315d, 0x320e, +0x3908, 0x3375, 0x2d75, 0x3182, 0x3304, 0x2d93, 0x3868, 0x38ca, 0x2d07, 0x3253, 0x39ff, 0x3456, 0x37fc, 0x3a8d, 0x37d4, 0x360e, 0x32e6, 0x36ab, 0x3a4d, 0x3411, 0x3a14, 0x3a5f, 0x38bf, 0x3858, 0x3688, 0x25c2, 0x3949, 0x2a05, 0x3b45, 0x359f, 0x3af5, 0x3408, 0x2fa0, 0x34e8, 0x28c2, 0x3944, 0x3300, 0x3212, 0x3311, 0x3b6c, 0x306c, 0x220c, 0x300b, 0x3a38, 0x3bb2, 0x3ab9, 0x2c5f, 0x2ec8, +0x3610, 0x3057, 0x30e9, 0x3357, 0x39fb, 0x39df, 0x3be6, 0x36b0, 0x32e6, 0x384a, 0x338c, 0x3b6f, 0x3bcb, 0x3787, 0x3be7, 0x3af5, 0x35f5, 0x3915, 0x2178, 0x36ee, 0x392e, 0x37b4, 0x3a03, 0x3414, 0x38a5, 0x3afc, 0x39ba, 0x3655, 0x2e40, 0x377f, 0x3811, 0x3b95, 0x3753, 0x39e9, 0x38a2, 0x3b58, 0x37c7, 0x2371, 0x2ff7, 0x3592, 0x34e5, 0x3203, 0x3719, 0x384d, 0x3ad5, 0x3a1c, 0x35cf, 0x39b4, +0x367e, 0x3846, 0x2ef6, 0x3af1, 0x2ede, 0x3ae8, 0x390d, 0x3607, 0x3956, 0x348e, 0x3869, 0x31e3, 0x2d45, 0x1d83, 0x37af, 0x3885, 0x3aa6, 0x3a0e, 0x34d9, 0x3b1a, 0x38ae, 0x3958, 0x35b2, 0x3ad5, 0x3462, 0x3630, 0x3900, 0x394a, 0x3b42, 0x36e6, 0x39c2, 0x3149, 0x35f1, 0x377c, 0x354e, 0x29af, 0x3a9c, 0x3892, 0x3b4f, 0x33da, 0x3980, 0x2b89, 0x3984, 0x31a, 0x3455, 0x3abd, 0x3b48, 0x3223, +0x356d, 0x3b1c, 0x3703, 0x36bf, 0x2fd8, 0x3972, 0x3b08, 0x3b5f, 0x3a35, 0x3996, 0x3ad5, 0x3631, 0x3923, 0x3a56, 0x3515, 0x37aa, 0x3bc3, 0x32de, 0x3aa1, 0x3579, 0x3acd, 0x3046, 0x36ff, 0x370e, 0x3bcd, 0x363c, 0x3836, 0x3609, 0x38e2, 0x3569, 0x2808, 0x383d, 0x3b7c, 0x386f, 0x2655, 0x1df6, 0x389e, 0x3460, 0x3895, 0x33b2, 0x3a42, 0x37d2, 0x3938, 0x3316, 0x3b24, 0x326f, 0x2c93, 0x3a2a, +0x369d, 0x3aea, 0x287f, 0x3ae7, 0x3900, 0x2bd7, 0x2f4f, 0x3ad3, 0x3adc, 0x3aac, 0x385e, 0x3002, 0x34de, 0x380d, 0x3998, 0x340f, 0x3695, 0x3bdb, 0x321a, 0x2a8f, 0x39fa, 0x2f3f, 0x3b44, 0x355f, 0x32b7, 0x39d3, 0x2854, 0x39db, 0x3318, 0x383b, 0x2f98, 0x393d, 0x3b71, 0x3b26, 0x37af, 0x3734, 0x3af6, 0x33bc, 0x2ac2, 0x360a, 0x3219, 0x2d1f, 0x3477, 0x1525, 0x3324, 0x3bdd, 0x3581, 0x2905, +0x3131, 0x3b47, 0x3947, 0x3bef, 0x3046, 0x3938, 0x2ca4, 0x28be, 0x321d, 0x3bc9, 0x2f66, 0x3559, 0x326e, 0x39d8, 0x33b1, 0x3715, 0x3aef, 0x2c8b, 0x3b06, 0x36ba, 0x3957, 0x3825, 0x364e, 0x387d, 0x3130, 0x3a56, 0x3bf6, 0x3797, 0x39d4, 0x37d9, 0x3371, 0x321e, 0x31ac, 0x3a66, 0x220e, 0x363d, 0x33ca, 0x387b, 0x3b5e, 0x3b67, 0x3974, 0x3a18, 0x3bb4, 0x3ba7, 0x2583, 0x3a2f, 0x36e4, 0x3575, +0x3a64, 0x35bd, 0x3a5b, 0x3909, 0x38a1, 0x3a4c, 0x349c, 0x3afe, 0x3ad4, 0x2e2f, 0x2e19, 0x3a17, 0x356b, 0x3b5f, 0x3852, 0x3a62, 0x3ba9, 0x3992, 0x3a86, 0x3a73, 0x3042, 0x2a7c, 0x3841, 0x33ae, 0x2f4c, 0x35b6, 0x349e, 0x387b, 0x39d8, 0x370c, 0x3b8a, 0x3b54, 0x3a63, 0x37cb, 0x3bb9, 0x3af4, 0x3720, 0x39df, 0x39e9, 0x38bb, 0x3bb9, 0x354f, 0x3bd9, 0x3bbb, 0x39c6, 0x3aaf, 0x3654, 0x254c, +0x3b96, 0x38d3, 0x2e2e, 0x33df, 0x3a9a, 0x1c03, 0x3ac0, 0x3416, 0x319f, 0x39e5, 0x306a, 0x2f55, 0x3acb, 0x3b00, 0x396d, 0x3915, 0x3abc, 0x3856, 0x32ba, 0x38e8, 0x35e5, 0x3817, 0x3a8f, 0x1882, 0x383d, 0x396c, 0x35da, 0x37c5, 0x3ba3, 0x398c, 0x390b, 0x3a95, 0x3078, 0x3612, 0x3812, 0x1e29, 0x3559, 0x366a, 0x3832, 0x3909, 0x36b6, 0x2c9e, 0x3999, 0x2fbd, 0x38a3, 0x34b5, 0x3689, 0x3bfc, +0x2d8d, 0x39f8, 0x3add, 0x3384, 0x3a91, 0x37f3, 0x2cdd, 0x3b57, 0x37fd, 0x3158, 0x3a28, 0x3bf2, 0x344e, 0x360b, 0x3365, 0x3aff, 0x386d, 0x31d8, 0x38d4, 0x3b6a, 0x34ae, 0x346c, 0x3beb, 0x24e1, 0x3958, 0x3a6a, 0x37d2, 0x397e, 0x38c4, 0x2ec6, 0x383f, 0x3a1d, 0x39aa, 0x3abe, 0x35ac, 0x3280, 0x3618, 0x240d, 0x38f3, 0x317c, 0x301b, 0x3a2e, 0x31e1, 0x3795, 0x390d, 0x39e1, 0x3400, 0x367f, +0x3701, 0x3865, 0x39b2, 0x2f08, 0x3baf, 0x2cf5, 0x2d91, 0x3a37, 0x37bf, 0x39e8, 0x384c, 0x30b7, 0x3a22, 0x36c7, 0x3854, 0x39e2, 0x35d5, 0x39db, 0x3b20, 0x33b4, 0x34ea, 0x3aad, 0x3827, 0x359e, 0x3580, 0x2fa6, 0x2c22, 0x3479, 0x39b4, 0x3a62, 0x3b25, 0x3b3a, 0x34b6, 0x2d83, 0x3a9c, 0x3bc0, 0x339a, 0x3074, 0x399a, 0x3540, 0x2982, 0x3638, 0x3a89, 0x36fc, 0x2b61, 0x3121, 0x3225, 0x3862, +0x2ff4, 0x36a8, 0x337a, 0x3854, 0x3b79, 0x3589, 0x3275, 0x3bde, 0x3bd6, 0x3975, 0x273c, 0x29df, 0x36f2, 0x39e8, 0x2ad3, 0x3538, 0x3976, 0x3b92, 0x2e45, 0x3b57, 0x3a3b, 0x34d3, 0x36fe, 0x2fe4, 0x3764, 0x3a33, 0x3b3e, 0x3b67, 0x3a99, 0x3874, 0x3418, 0x35f9, 0x39c7, 0x31fd, 0x37b7, 0x36f7, 0x385c, 0x3add, 0x3716, 0x36cb, 0x3a4a, 0x3bca, 0x38b9, 0x3622, 0x231b, 0x3bca, 0x3938, 0x385b }; \ No newline at end of file diff --git a/hwpe/redmule/inc/x_2D.h b/hwpe/redmule/inc/x_2D.h index 0b589f8..a20e883 100644 --- a/hwpe/redmule/inc/x_2D.h +++ b/hwpe/redmule/inc/x_2D.h @@ -1,27 +1,51 @@ /* Header file generated by RedMulE Golden Model */ -uint16_t x_inp_2D [24][32] = { -0x2153, 0x3bb5, 0x3896, 0x365f, 0x2483, 0x3518, 0x2dd1, 0x3bca, 0x397b, 0x29b1, 0x3705, 0x36c8, 0x398b, 0x3661, 0x2f05, 0x365a, 0x3bf9, 0x34df, 0x363b, 0x38d9, 0x39c6, 0x3abb, 0x3952, 0x38f2, 0x392d, 0x3b3e, 0x2afb, 0x3a9d, 0x353b, 0x3b73, 0x3a01, 0x3679, -0x3934, 0x397d, 0x2904, 0x3822, 0x3462, 0x3b44, 0x39e9, 0x28be, 0x331e, 0x3a1d, 0x39e5, 0x34da, 0x3a19, 0x3906, 0x1d35, 0x3871, 0x31e7, 0x3b29, 0x325d, 0x3797, 0x2b2f, 0x38b4, 0x232f, 0x38aa, 0x3aca, 0x316f, 0x3811, 0x3950, 0x32ea, 0x3bc7, 0x382c, 0x38a2, -0x29ce, 0x3afa, 0x3a39, 0x2ccc, 0x39fd, 0x3b3d, 0x384a, 0x3a35, 0x3802, 0x366a, 0x37ec, 0x3598, 0x3bf8, 0x3a85, 0x3a1b, 0x386e, 0x3b4c, 0x39de, 0x38c2, 0x2f93, 0x3b4c, 0x39c4, 0x3b9e, 0x3844, 0x346d, 0x3bff, 0x32ce, 0x296d, 0x3130, 0x3b3d, 0x3b44, 0x369d, -0x3b13, 0x31ed, 0x330a, 0x3831, 0x34e7, 0x37b3, 0x331a, 0x3918, 0x32d3, 0x3995, 0x3991, 0x3919, 0x3a26, 0x385b, 0x2b76, 0x3a3b, 0x37f2, 0x26a7, 0x3225, 0x3b64, 0x28f0, 0x3456, 0x3822, 0x341e, 0x381a, 0x38d8, 0x2c11, 0x33be, 0x33ac, 0x353f, 0x3476, 0x3abc, -0x36ec, 0x3a1d, 0x39d3, 0x3821, 0x36ac, 0x3bce, 0x3ad2, 0x3616, 0x36a1, 0x2cb3, 0x38d2, 0x314f, 0x385c, 0x3b63, 0x3bb6, 0x2951, 0x372d, 0x2c42, 0x3823, 0x3883, 0x3872, 0x31ee, 0x36c5, 0x399a, 0x31b0, 0x3887, 0x3884, 0x3865, 0x3896, 0x36c3, 0x32e3, 0x346c, -0x3935, 0x3b50, 0x2b6d, 0x38cd, 0x388f, 0x3389, 0x395d, 0x31cd, 0x2efd, 0x3154, 0x2f35, 0x3444, 0x3293, 0x3b6b, 0x1bec, 0x3b69, 0x3bf3, 0x3611, 0x3508, 0x3742, 0x3a50, 0x3ab7, 0x3457, 0x38d3, 0x3344, 0x38e8, 0x33c0, 0x3668, 0x3bee, 0x3b21, 0x3727, 0x3121, -0x316c, 0x3288, 0x2d50, 0x2e74, 0x35d5, 0x37e2, 0x303d, 0x36af, 0x341f, 0x3436, 0x2df7, 0x399d, 0x30f4, 0x3aaf, 0x34e4, 0x2c2a, 0x3116, 0x34d3, 0x36ac, 0x35e3, 0x3760, 0x36e1, 0x3ad2, 0x3547, 0x38f4, 0x369c, 0x3ba9, 0x34f0, 0x3a39, 0x3b19, 0x36e6, 0x395d, -0x3be8, 0x3293, 0x3bfc, 0x3435, 0x2eb3, 0x3360, 0x3919, 0x3bed, 0x396a, 0x37fc, 0x3242, 0x384b, 0x38cb, 0x3b2c, 0x3b28, 0x28cf, 0x3828, 0x3855, 0x3ba9, 0x2fa7, 0x340b, 0x32f1, 0x3ada, 0x36fa, 0x31f5, 0x3436, 0x29d0, 0x33e6, 0x3232, 0x3bec, 0x3904, 0x2797, -0x3b81, 0x3bac, 0x38d2, 0x343d, 0x31af, 0x3b1e, 0x33fc, 0x3864, 0x3624, 0x3905, 0x2945, 0x3b52, 0x2d08, 0x3a17, 0x3b84, 0x3804, 0x3a24, 0x38a3, 0x3562, 0x3ae6, 0x3bba, 0x3a45, 0x3679, 0x31fa, 0x3994, 0x2c3d, 0x383f, 0x399d, 0x34f7, 0x360e, 0x35f3, 0x38f0, -0x38d4, 0x399a, 0x3a48, 0x3987, 0x3b54, 0x382c, 0x3210, 0x35ef, 0x36ca, 0x31b4, 0x3625, 0x371f, 0x37bd, 0x3680, 0x3a3a, 0x3ac0, 0x3bbf, 0x3bf5, 0x39f2, 0x29c2, 0x363e, 0x3a4e, 0x3596, 0x3b1b, 0x3459, 0x3669, 0x3aa1, 0x39c3, 0x3376, 0x390d, 0x2456, 0x39b5, -0x3a66, 0x3ad8, 0x3b51, 0x36aa, 0x32be, 0x3ac8, 0x392b, 0x3740, 0x3a48, 0x38f5, 0x3b2d, 0x3a5f, 0x2ff3, 0x366f, 0x39d3, 0x35e5, 0x3822, 0x38db, 0x3b8a, 0x34be, 0x2d33, 0x36dd, 0x3578, 0x3bdf, 0x2c7e, 0x39cf, 0x32ff, 0x35c9, 0x3970, 0x3bcb, 0x351e, 0x3956, -0x2c42, 0x3308, 0x377a, 0x361c, 0x39a0, 0x36c9, 0x2dcb, 0x3bf2, 0x3b5f, 0x33ee, 0x24c1, 0x2ce9, 0x3927, 0x305d, 0x3702, 0x3119, 0x35f9, 0x3855, 0x3374, 0x349b, 0x3bcf, 0x2dea, 0x34f0, 0x363f, 0x37da, 0x3a74, 0x35fc, 0x35fa, 0x316b, 0x3804, 0x37a7, 0x3986, -0x3073, 0x3aed, 0x31c7, 0x3844, 0x34a4, 0x387d, 0x3a20, 0x3037, 0x3a00, 0x3b70, 0x377f, 0x3686, 0x3b7e, 0x38b3, 0x32e3, 0x3323, 0x391e, 0x3228, 0x3930, 0x3997, 0x3a5e, 0x398b, 0x3512, 0x35b0, 0x365c, 0x325d, 0x3b61, 0x38b8, 0x39a4, 0x3423, 0x3bd7, 0x38af, -0x2d3d, 0x382d, 0x38ac, 0x26ca, 0x395e, 0x21a8, 0x3520, 0x386f, 0x3b95, 0x32c0, 0x3b84, 0x3a51, 0x3b4b, 0x31d2, 0x3747, 0x3b96, 0x3b40, 0x3535, 0x38d1, 0x3899, 0x3b00, 0x3827, 0x3ae3, 0x38c8, 0x3a07, 0x338d, 0x2e96, 0x3a46, 0x394a, 0x39de, 0x2951, 0x3a02, -0x3838, 0x2d45, 0x28c0, 0x3958, 0x3070, 0x2aa2, 0x3510, 0x38ce, 0x271c, 0x3440, 0x3954, 0x30bc, 0x3b35, 0x2f1d, 0x3afb, 0x2dae, 0x356f, 0x2e13, 0x3981, 0x326d, 0x3a28, 0x3a36, 0x3a95, 0x38cb, 0x38db, 0x3150, 0x2c9e, 0x34c5, 0x3adb, 0x3bdf, 0x38f2, 0x3994, -0x36f8, 0x31c0, 0x3a4f, 0x3825, 0x394b, 0x3a8b, 0x38ac, 0x3167, 0x2e2d, 0x3a93, 0x34f3, 0x37bd, 0x3b63, 0x2f2f, 0x3ae0, 0x3ad8, 0x34a8, 0x2e1c, 0x3890, 0x3705, 0x3b69, 0x3bc1, 0x28af, 0x3b36, 0x348b, 0x3111, 0x3a8d, 0x389c, 0x3916, 0x36dc, 0x3bae, 0x3874, -0x3593, 0x3638, 0x3018, 0x3a56, 0x38a3, 0x2ad4, 0x3a25, 0x38d7, 0x3864, 0x31c1, 0x28d1, 0x39c8, 0x37d6, 0x2c7f, 0x3ba5, 0x34b8, 0x3bef, 0x3b83, 0x3ab5, 0x3062, 0x38bc, 0x399c, 0x2ce4, 0x2f2c, 0x39bf, 0x2ed1, 0x385f, 0x37e0, 0x35ee, 0x397d, 0x3b0c, 0x3049, -0x39d5, 0x322e, 0x3936, 0x3747, 0x2e15, 0x3b41, 0x3874, 0x3bd0, 0x2c04, 0x3800, 0x375b, 0x3b2d, 0x38d8, 0x3a51, 0x3406, 0x38da, 0x38ba, 0x3497, 0x382e, 0x35fc, 0x39d4, 0x3775, 0x3b1e, 0x3813, 0x3649, 0x31af, 0x37bb, 0x334a, 0x3a6e, 0x3284, 0x26e0, 0x2e01, -0x2ebb, 0x344b, 0x3821, 0x381a, 0x385a, 0x2534, 0x3635, 0x2a92, 0x3b8c, 0x31f0, 0x3947, 0x3ac7, 0x3743, 0x3924, 0x39e4, 0x358f, 0x2b62, 0x392c, 0x3955, 0x3341, 0x3676, 0x38ac, 0x3957, 0x335b, 0x2ca2, 0x39ff, 0x37cb, 0x341f, 0x3ac9, 0x3b6c, 0x2f14, 0x34c3, -0x3018, 0x3169, 0x355b, 0x3624, 0x31ed, 0x379e, 0x3268, 0x309b, 0x35db, 0x3872, 0x3bdb, 0x34c7, 0x3408, 0x3359, 0x3920, 0x331f, 0x3866, 0x3af0, 0x2a1a, 0x39e0, 0x3b14, 0x34fa, 0x2d18, 0x3963, 0x35e8, 0x2539, 0x38f5, 0x37b3, 0x378f, 0x31b5, 0x3a6c, 0x3685, -0x3a06, 0x318a, 0x2934, 0x33c1, 0x3be8, 0x375b, 0x3860, 0x3543, 0x3702, 0x3951, 0x3677, 0x37ff, 0x2e27, 0x2e3a, 0x340f, 0x3817, 0x2f04, 0x357e, 0x3a1d, 0x2dd6, 0x252a, 0x3945, 0x162a, 0x3b19, 0x3a53, 0x35d2, 0x3a5d, 0x3474, 0x38e9, 0x374b, 0x387c, 0x1f1a, -0x38ac, 0x3291, 0x3393, 0x3b53, 0x3169, 0x3bca, 0x2f1a, 0x3551, 0x38a3, 0x28e3, 0x369d, 0x34a1, 0x38a8, 0x34c3, 0x3841, 0x390d, 0x3b13, 0x3282, 0x3a29, 0x3a78, 0x2df3, 0x3a37, 0x35f4, 0x35a6, 0x38e8, 0x3328, 0x3beb, 0x390b, 0x32dc, 0x34dc, 0x396d, 0x3a78, -0x39ba, 0x3a06, 0x2cdd, 0x3bc3, 0x2d43, 0x2992, 0x3663, 0x3a68, 0x2c3e, 0x394e, 0x2c9f, 0x380e, 0x37f5, 0x3557, 0x2873, 0x390f, 0x39e7, 0x3939, 0x3669, 0x385c, 0x3a68, 0x32c4, 0x2b04, 0x2d6d, 0x39d3, 0x3895, 0x331d, 0x3b59, 0x3463, 0x2b6a, 0x31de, 0x3296, -0x3aae, 0x3bcd, 0x345a, 0x3897, 0x374b, 0x3bd4, 0x38a2, 0x357f, 0x3402, 0x3a0c, 0x3507, 0x3865, 0x3a54, 0x3878, 0x3859, 0x383e, 0x32b5, 0x34ea, 0x328d, 0x38b6, 0x3464, 0x2f5b, 0x35ff, 0x3817, 0x2f24, 0x3533, 0x3b21, 0x37ba, 0x3837, 0x2e34, 0x3bad, 0x34bc +uint16_t x_inp_2D [48][48] = { +0x348f, 0x3244, 0x3b67, 0x3ab8, 0x3ab1, 0x39f4, 0x3807, 0x3ba3, 0x37e3, 0x3bd4, 0x337e, 0x36cb, 0x3a60, 0x381e, 0x3b98, 0x2c0e, 0x3421, 0x3bc4, 0x3b18, 0x3703, 0x3b8d, 0x3a06, 0x38f6, 0x36af, 0x322a, 0x3354, 0x3bf3, 0x3b7e, 0x38cf, 0x3826, 0x35be, 0x3a42, 0x39c4, 0x3b62, 0x3a29, 0x3b5b, 0x39ab, 0x3a4c, 0x3b44, 0x3b48, 0x3831, 0x31ca, 0x3918, 0x39bb, 0x3a82, 0x3830, 0x39af, 0x39ba, +0x3853, 0x2b2a, 0x39bc, 0x36e5, 0x3bb8, 0x37f6, 0x2e8d, 0x3a93, 0x3b53, 0x3424, 0x38a6, 0x3583, 0x39cd, 0x35f0, 0x3556, 0x3956, 0x3a10, 0x37de, 0x353b, 0x2cdd, 0x3779, 0x2a45, 0x3b07, 0x303f, 0x3b95, 0x3903, 0x3275, 0x391c, 0x39bd, 0x3503, 0x328e, 0x2f75, 0x35da, 0x3a32, 0x3974, 0x37a0, 0x3ab6, 0x34c9, 0x3674, 0x3859, 0x2c40, 0x38da, 0x38be, 0x38a1, 0x38a4, 0x3a74, 0x2167, 0x33f4, +0x38d2, 0x3a5a, 0x30a7, 0x3b8e, 0x39bd, 0x382a, 0x3714, 0x35f7, 0x3b34, 0x3535, 0x3b2c, 0x39b1, 0x3902, 0x3965, 0x3b7b, 0x3a1d, 0x3ae6, 0x3b0e, 0x3960, 0x37b6, 0x3872, 0x2dc4, 0x320f, 0x2c60, 0x38c9, 0x3a10, 0x387b, 0x39f1, 0x3929, 0x387c, 0x3ae4, 0x3881, 0x3a7c, 0x39c9, 0x3ae4, 0x38ec, 0x3ad0, 0x314a, 0x2d1e, 0x3b18, 0x2629, 0x358b, 0x3760, 0x2e4f, 0x3996, 0x394c, 0x3aa1, 0x28cc, +0x2c01, 0x38d9, 0x2a1c, 0x3bac, 0x3b50, 0x38e3, 0x33ac, 0x317a, 0x3277, 0x2f5e, 0x36b4, 0x39a2, 0x34fa, 0x24f8, 0x3b5c, 0x3890, 0x248e, 0x39c1, 0x37be, 0x2830, 0x3aa0, 0x3a1f, 0x3bb4, 0x3af9, 0x1c84, 0x3a33, 0x3742, 0x3bdb, 0x28be, 0x3bc1, 0x3572, 0x3911, 0x39d2, 0x35b5, 0x3ab6, 0x3206, 0x3914, 0x3127, 0x3adf, 0x362d, 0x340d, 0x3b5b, 0x3a05, 0x3b25, 0x3b65, 0x361b, 0x3801, 0x2d22, +0x2d9e, 0x3a91, 0x2db9, 0x3861, 0x39f9, 0x3aab, 0x3afa, 0x30bb, 0x3a1e, 0x2f27, 0x329a, 0x3bb7, 0x3472, 0x37b5, 0x3462, 0x32bd, 0x2722, 0x3ba7, 0x2bb9, 0x2431, 0x39bd, 0x38fc, 0x3b4f, 0x3b45, 0x3572, 0x37b8, 0x3aa7, 0x3a36, 0x3b2d, 0x3422, 0x3b09, 0x397f, 0x26b3, 0x3a0f, 0x3625, 0x3b6a, 0x3493, 0x3771, 0x357e, 0x360b, 0x30e8, 0x3905, 0x3a55, 0x39b9, 0x3344, 0x36d2, 0x3a6e, 0x3809, +0x3240, 0x39e0, 0x3746, 0x3b22, 0x34ba, 0x391b, 0x3939, 0x3321, 0x31e2, 0x3a97, 0x3bc0, 0x34a3, 0x3adb, 0x3a6d, 0x34af, 0x37b3, 0x3a63, 0x3702, 0x36c7, 0x3b73, 0x273c, 0x3808, 0x21e6, 0x3b34, 0x381c, 0x3825, 0x2fde, 0x299c, 0x2f4a, 0x3733, 0x314e, 0x3b89, 0x2e89, 0x37d2, 0x36a2, 0x353a, 0x3901, 0x3a9e, 0x2c1a, 0x3880, 0x37e7, 0x346f, 0x3361, 0x3896, 0x2f56, 0x3aa7, 0x33dd, 0x390b, +0x3bb0, 0x3b1a, 0x2d21, 0x3562, 0x38d8, 0x2f77, 0x38f6, 0x3158, 0x36cd, 0x35a1, 0x2b2e, 0x2938, 0x3af9, 0x348a, 0x399b, 0x3954, 0x29b8, 0x39a7, 0x3a83, 0x3bcb, 0x38ee, 0x3806, 0x2697, 0x3628, 0x3b38, 0x38be, 0x363c, 0x387e, 0x3a6c, 0x3b92, 0x335f, 0x37ba, 0x37da, 0x342e, 0x3509, 0x3be9, 0x392a, 0x32d7, 0x3ac6, 0x346e, 0x38f4, 0x3b5a, 0x3814, 0x3875, 0x39c9, 0x3a9f, 0x37c3, 0x3b00, +0x3675, 0x3a15, 0x36ec, 0x3b53, 0x3915, 0x36c4, 0x3462, 0x3b05, 0x2b3e, 0x351e, 0x369c, 0x38aa, 0x3342, 0x2e71, 0x3af1, 0x3aa7, 0x39d1, 0x3b0b, 0x3be9, 0x3a0a, 0x344f, 0x3b04, 0x39d6, 0x3864, 0x34e9, 0x308e, 0x3b6b, 0x32bf, 0x3610, 0x36d2, 0x350f, 0x3a78, 0x306f, 0x30e5, 0x3213, 0x3b6c, 0x356f, 0x38db, 0x387e, 0x3064, 0x3bf7, 0x2e00, 0x3bc4, 0x39df, 0x3758, 0x397f, 0x38a8, 0x34b8, +0x2c53, 0x36b9, 0x38a5, 0x2c24, 0x2836, 0x3a5a, 0x3acf, 0x37b2, 0x33f7, 0x3858, 0x3204, 0x37f8, 0x394c, 0x3781, 0x3b0f, 0x306a, 0x3ab4, 0x3a72, 0x3861, 0x3ab7, 0x3857, 0x375a, 0x3886, 0x3833, 0x3b06, 0x3bf9, 0x3bdc, 0x356c, 0x380f, 0x394f, 0x3942, 0x39cb, 0x3a2e, 0x3a94, 0x3b77, 0x36b3, 0x3585, 0x3916, 0x3ba5, 0x31de, 0x33fe, 0x2f98, 0x3953, 0x38c1, 0x38b4, 0x2c65, 0x30f6, 0x3523, +0x3661, 0x3b45, 0x2cba, 0x3615, 0x38a1, 0x3a9b, 0x3b75, 0x3be3, 0x3978, 0x36ba, 0x3a1e, 0x3bc1, 0x3bd2, 0x3738, 0x2f64, 0x3998, 0x3868, 0x34ae, 0x36b5, 0x3468, 0x390a, 0x2484, 0x3146, 0x30ea, 0x332b, 0x35b8, 0x390a, 0x3903, 0x288a, 0x3b74, 0x3bf9, 0x396a, 0x3bae, 0x30e3, 0x3857, 0x1ce7, 0x253f, 0x3b44, 0x3a54, 0x31b4, 0x37e2, 0x3b32, 0x323d, 0x3808, 0x34de, 0x3759, 0x300c, 0x3257, +0x37d3, 0x28ef, 0x3bd0, 0x39f1, 0x3b26, 0x3988, 0x3756, 0x39d5, 0x38b8, 0x3906, 0x30e3, 0x3b48, 0x34cb, 0x38cc, 0x3b88, 0x2c93, 0x3aae, 0x3822, 0x35fa, 0x39a0, 0x3830, 0x382b, 0x38c8, 0x348b, 0x3293, 0x397f, 0x39aa, 0x3416, 0x3b17, 0x34a7, 0x3671, 0x2942, 0x38ce, 0x2e26, 0x3832, 0x3ab2, 0x2e39, 0x3700, 0x3399, 0x34c7, 0x3ac6, 0x193b, 0x3a2b, 0x3481, 0x3b02, 0x3a2c, 0x2d24, 0x2fb8, +0x3aa9, 0x3599, 0x3520, 0x3551, 0x2561, 0x2e7a, 0x3b26, 0x3463, 0x2f1c, 0x2e4d, 0x343d, 0x3502, 0x2d9b, 0x3b38, 0x37a5, 0x3ba2, 0x34b4, 0x3891, 0x3af1, 0x2c37, 0x39e9, 0x3658, 0x3188, 0x24f0, 0x3a41, 0x3bf1, 0x3707, 0x3101, 0x34fb, 0x32cc, 0x35bb, 0x3acd, 0x38af, 0x39e9, 0x3974, 0x32e1, 0x32f7, 0x32e3, 0x3ad5, 0x2a73, 0x39e6, 0x3b01, 0x3347, 0x3bd1, 0x3791, 0x3aaf, 0x3be8, 0x3a88, +0x376a, 0x3127, 0x3858, 0x3481, 0x3689, 0x33b9, 0x38ee, 0x3a6d, 0x3b96, 0x35c2, 0x3a21, 0x34a7, 0x39f2, 0x344e, 0x3a81, 0x30a6, 0x39c1, 0x3bd2, 0x26f5, 0x3a2f, 0x3a6a, 0x3a30, 0x2ca0, 0x3046, 0x38ae, 0x39cf, 0x3610, 0x3b72, 0x3766, 0x3b24, 0x3877, 0x3baf, 0x3a09, 0x383d, 0x3b1c, 0x39ab, 0x2d04, 0x366a, 0x3b9a, 0x33d3, 0x36d3, 0x3834, 0x395a, 0x3227, 0x2f00, 0x3124, 0x3b27, 0x3674, +0x2c8d, 0x39ff, 0x3686, 0x3a0c, 0x395f, 0x392e, 0x33f7, 0x3910, 0x3907, 0x303a, 0x2cc5, 0x380b, 0x2999, 0x37e7, 0x39dc, 0x37cf, 0x3a77, 0x377a, 0x3bbc, 0x3817, 0x3bce, 0x396f, 0x39d2, 0x3abb, 0x348e, 0x32bc, 0x365c, 0x349a, 0x2c22, 0x329c, 0x37c4, 0x3a6f, 0x370b, 0x3ade, 0x2886, 0x3625, 0x3086, 0x382b, 0x3677, 0x3828, 0x2fe5, 0x3456, 0x36a4, 0x3820, 0x3a32, 0x36fe, 0x3851, 0x3b25, +0x3b48, 0x38ad, 0x3a5f, 0x399c, 0x3586, 0x313d, 0x2e15, 0x3626, 0x393e, 0x2ed4, 0x3be6, 0x2c4e, 0x3926, 0x3a90, 0x3b28, 0x389d, 0x32bc, 0x3b76, 0x391f, 0x3bee, 0x30d8, 0x3598, 0x368c, 0x39d0, 0x3b45, 0x34e1, 0x3939, 0x3513, 0x3392, 0x388b, 0x3a88, 0x397f, 0x3861, 0x345d, 0x3384, 0x371d, 0x365b, 0x2d16, 0x3ad6, 0x3537, 0x3896, 0x399d, 0x3ab4, 0x3286, 0x35dd, 0x399f, 0x39ed, 0x39f7, +0x3acf, 0x38ac, 0x317c, 0x3608, 0x33f2, 0x2bca, 0x3970, 0x2f27, 0x3636, 0x397b, 0x3570, 0x340f, 0x3184, 0x2ddd, 0x36d4, 0x3458, 0x3968, 0x3716, 0x343c, 0x3852, 0x3ab2, 0x3673, 0x3937, 0x31bf, 0x397d, 0x31ce, 0x2ec4, 0x39b8, 0x329f, 0x2b35, 0x3b1e, 0x3ab1, 0x3604, 0x2815, 0x361d, 0x3bd1, 0x350c, 0x34be, 0x37df, 0x3422, 0x3819, 0x30aa, 0x38f3, 0x378d, 0x352d, 0x34d3, 0x3177, 0x3a8e, +0x2dff, 0x34b7, 0x30fd, 0x3ae0, 0x3710, 0x33e6, 0x3ba0, 0x3786, 0x3008, 0x3739, 0x3a4e, 0x3b30, 0x3aac, 0x344e, 0x3b85, 0x344e, 0x3873, 0x3882, 0x3be0, 0x37b1, 0x3860, 0x33ff, 0x35fb, 0x3414, 0x3785, 0x3bf8, 0x3513, 0x3317, 0x3a99, 0x349e, 0x2f56, 0x3b82, 0x3717, 0x360d, 0x354d, 0x3663, 0x39d8, 0x3766, 0x2f0d, 0x319e, 0x31aa, 0x2ded, 0x32e1, 0x3942, 0x3901, 0x3571, 0x27e6, 0x3adb, +0x31d1, 0x38b4, 0x31b1, 0x39a8, 0x3b99, 0x37d1, 0x3b32, 0x3021, 0x3a93, 0x39e9, 0x38f7, 0x38b8, 0x3639, 0x39e8, 0x392f, 0x393d, 0x3602, 0x368f, 0x2fe5, 0x32a3, 0x38bd, 0x3a11, 0x3be2, 0x29e2, 0x357a, 0x3810, 0x39e4, 0x3568, 0x3584, 0x3aaf, 0x3bdf, 0x350b, 0x30e2, 0x2f69, 0x3500, 0x38fb, 0x34e5, 0x336b, 0x387b, 0x36b8, 0x366c, 0x32b0, 0x3599, 0x3b7f, 0x3aa1, 0x3ae7, 0x38f5, 0x3a99, +0x338c, 0x3a97, 0x3807, 0x3520, 0x3ba8, 0x307b, 0x3ad3, 0x37bb, 0x364a, 0x3b20, 0x3b30, 0x39bb, 0x3b9e, 0x34f3, 0x34d3, 0x35d6, 0x34be, 0x3be0, 0x383a, 0x346a, 0x3aef, 0x3b6d, 0x36cb, 0x2d86, 0x3819, 0x3b7f, 0x3ba9, 0x3afe, 0x3bc3, 0x3a11, 0x31b7, 0x37e9, 0x3820, 0x398a, 0x36f0, 0x3968, 0x38cd, 0x2763, 0x303f, 0x3848, 0x3bd8, 0x3b81, 0x37a0, 0x3831, 0x32f0, 0x33a1, 0x3860, 0x39fb, +0x3a76, 0x3a11, 0x3952, 0x35ac, 0x340c, 0x3af6, 0x39a8, 0x3955, 0x3775, 0x3a7a, 0x2df5, 0x2943, 0x39b1, 0x37f4, 0x33f2, 0x3985, 0x370e, 0x3b33, 0x3b60, 0x3818, 0x3a43, 0x39ba, 0x3640, 0x3715, 0x30b0, 0x3511, 0x3560, 0x3ac2, 0x3a6d, 0x38d1, 0x36fa, 0x3824, 0x2727, 0x3360, 0x3970, 0x3400, 0x3a89, 0x26c2, 0x2e28, 0x398d, 0x368e, 0x37f4, 0x3add, 0x3280, 0x323b, 0x38fa, 0x24ad, 0x36e4, +0x3557, 0x3849, 0x3998, 0x325f, 0x39bb, 0x31f8, 0x2e0b, 0x2b6c, 0x39da, 0x3846, 0x3a54, 0x376e, 0x31c3, 0x34c7, 0x39e7, 0x376b, 0x3abc, 0x3adc, 0x37e7, 0x2ef3, 0x28ca, 0x3abc, 0x2e0e, 0x35f6, 0x31bd, 0x35af, 0x338f, 0x3886, 0x36b9, 0x2cc2, 0x311a, 0x39b1, 0x328d, 0x389d, 0x3a0b, 0x31a7, 0x3666, 0x29ea, 0x2ea9, 0x3b75, 0x38df, 0x39c9, 0x3b4a, 0x377f, 0x3908, 0x3879, 0x3b8e, 0x3875, +0x3bfa, 0x3a08, 0x3755, 0x3a00, 0x3815, 0x3bd0, 0x36db, 0x3a1c, 0x3735, 0x2dcc, 0x27e9, 0x3931, 0x3766, 0x352e, 0x386f, 0x3b57, 0x381c, 0x3a3d, 0x3b9a, 0x3318, 0x3b51, 0x3a5b, 0x31b1, 0x395d, 0x38af, 0x380b, 0x2fcf, 0x38e5, 0x387d, 0x268f, 0x32fb, 0x39c2, 0x3a6e, 0x346e, 0x3966, 0x2bc6, 0x3775, 0x34ed, 0x3b08, 0x3877, 0x3bfd, 0x3b50, 0x36ba, 0x3729, 0x3405, 0x3922, 0x387f, 0x3419, +0x2dff, 0x3158, 0x3977, 0x372e, 0x3404, 0x3429, 0x34e3, 0x34ab, 0x38ce, 0x3875, 0x3a15, 0x3575, 0x3bf5, 0x35ee, 0x394b, 0x3827, 0x2cda, 0x32d1, 0x2f50, 0x38c7, 0x36a6, 0x3184, 0x2e37, 0x3920, 0x3450, 0x392b, 0x38df, 0x3851, 0x3521, 0x32b7, 0x3934, 0x39fc, 0x3adf, 0x3b4a, 0x3477, 0x3bff, 0x2ea7, 0x3a25, 0x3425, 0x3878, 0x3a0d, 0x33a8, 0x346b, 0x384f, 0x36b8, 0x2a4a, 0x3ad8, 0x39bc, +0x3a3a, 0x39db, 0x3980, 0x34d6, 0x37bb, 0x3b02, 0x301f, 0x3a2c, 0x367d, 0x3991, 0x3a67, 0x3507, 0x3563, 0x3361, 0x3128, 0x3888, 0x2938, 0x3059, 0x3984, 0x3a7b, 0x2576, 0x2e91, 0x3ad1, 0x342d, 0x3609, 0x369c, 0x3ad9, 0x3708, 0x3b39, 0x3886, 0x344e, 0x3a72, 0x327c, 0x397f, 0x3b90, 0x35bd, 0x332e, 0x3652, 0x23c5, 0x3a86, 0x3a94, 0x39fb, 0x222b, 0x3a24, 0x3637, 0x3b56, 0x3afb, 0x3ab4, +0x3393, 0x2440, 0x39d7, 0x2e45, 0x3a47, 0x2f01, 0x3940, 0x3451, 0x3989, 0x31b7, 0x3acd, 0x3a78, 0x38cc, 0x34e5, 0x3a2b, 0x3919, 0x2a1e, 0x27bd, 0x24f1, 0x3a34, 0x3670, 0x3155, 0x3217, 0x3a63, 0x3be9, 0x3873, 0x37c2, 0x2e6e, 0x1f1e, 0x3aca, 0x2c5c, 0x3b45, 0x3432, 0x3271, 0x31d6, 0x3247, 0x2ba2, 0x3649, 0x3b1b, 0x360e, 0x3577, 0x354b, 0x3b16, 0x3818, 0x3983, 0x388a, 0x3a04, 0x398d, +0x3bbb, 0x33f6, 0x2d28, 0x2663, 0x3b63, 0x38b7, 0x336f, 0x37dd, 0x3548, 0x304d, 0x30dd, 0x345a, 0x3a44, 0x398c, 0x382c, 0x3852, 0x20b2, 0x3859, 0x310a, 0x36bf, 0x3020, 0x3818, 0x3146, 0x3844, 0x34b2, 0x3534, 0x30b0, 0x3a25, 0x3516, 0x3908, 0x2a38, 0x3882, 0x3a84, 0x3869, 0x37de, 0x36f3, 0x324b, 0x365b, 0x3a4c, 0x2ec9, 0x2e4a, 0x393f, 0x384f, 0x3a8e, 0x3630, 0x391f, 0x3539, 0x39ed, +0x3a5a, 0x3bd3, 0x3b62, 0x39a1, 0x3896, 0x3747, 0x3bc9, 0x314d, 0x3a7c, 0x3658, 0x3122, 0x1fd9, 0x3b62, 0x38fa, 0x379d, 0x37af, 0x387d, 0x3a70, 0x3987, 0x38cc, 0x38b3, 0x1a67, 0x3a2b, 0x2c66, 0x3748, 0x3480, 0x39db, 0x2cf4, 0x3bdc, 0x3506, 0x387b, 0x3a38, 0x2fdc, 0x3aa2, 0x3891, 0x3716, 0x3ad4, 0x3b2c, 0x3584, 0x389a, 0x3bc8, 0x37b7, 0x3a78, 0x3a5c, 0x3a6e, 0x2f67, 0x34e0, 0x33ec, +0x3746, 0x3b19, 0x36c5, 0x3294, 0x3b64, 0x318c, 0x349a, 0x35cb, 0x3298, 0x3aed, 0x387b, 0x3526, 0x2bb8, 0x3a73, 0x388f, 0x3399, 0x3b48, 0x395e, 0x35ad, 0x3aaf, 0x35fe, 0x2daf, 0x3560, 0x373c, 0x3b71, 0x3b24, 0x2e17, 0x39c2, 0x3a7b, 0x3914, 0x36ca, 0x3a4c, 0x2d0e, 0x3927, 0x3582, 0x3578, 0x321e, 0x2a26, 0x39e0, 0x3755, 0x3894, 0x388d, 0x3a1e, 0x39d1, 0x3972, 0x363d, 0x38f3, 0x3947, +0x2ac7, 0x39a1, 0x351b, 0x378b, 0x3a3e, 0x3ba9, 0x3bf8, 0x3559, 0x3961, 0x3b07, 0x21bb, 0x3bff, 0x3b00, 0x2dc7, 0x350e, 0x331c, 0x3696, 0x3b67, 0x3ad3, 0x3052, 0x3993, 0x33de, 0x3ac1, 0x3b5d, 0x3b19, 0x3419, 0x31ed, 0x3736, 0x3856, 0x3699, 0x3b41, 0x3163, 0x3a60, 0x3985, 0x2fa1, 0x3a61, 0x38e2, 0x2d73, 0x35a4, 0x3771, 0x3a6f, 0x2b6c, 0x3a5b, 0x3b2d, 0x391f, 0x31ad, 0x3abd, 0x35f1, +0x2b56, 0x371d, 0x3092, 0x383a, 0x3845, 0x3805, 0x3931, 0x364f, 0x39be, 0x3bc2, 0x3b10, 0x3233, 0x3a78, 0x3abe, 0x3904, 0x383b, 0x302c, 0x388a, 0x30d2, 0x374d, 0x361b, 0x39c1, 0x356b, 0x2e92, 0x39e2, 0x2d42, 0x3260, 0x3ad1, 0x38e1, 0x3a83, 0x3b87, 0x39fd, 0x34ac, 0x38f0, 0x2eb3, 0x3bcf, 0x328a, 0x1f8d, 0x3ab4, 0x3835, 0x2933, 0x38c0, 0x3a69, 0x3a21, 0x39a6, 0x3796, 0x2ccf, 0x38fa, +0x38d6, 0x3bed, 0x385e, 0x392b, 0x3888, 0x3a71, 0x3430, 0x2f5f, 0x34bb, 0x3a19, 0x330b, 0x35e0, 0x32af, 0x3367, 0x34bb, 0x3ab7, 0x3844, 0x38f3, 0x3a7d, 0x2019, 0x364f, 0x35b2, 0x3b5a, 0x2919, 0x3326, 0x396c, 0x2ce5, 0x2df7, 0x3bed, 0x3ae9, 0x3712, 0x3b3b, 0x3bbb, 0x3943, 0x335f, 0x3083, 0x3a46, 0x39f7, 0x390d, 0x34ed, 0x3219, 0x3502, 0x3b5f, 0x3a0c, 0x39ca, 0x3a52, 0x38cb, 0x39a2, +0x3b7c, 0x361c, 0x3332, 0x3941, 0x3a0a, 0x2e87, 0x39aa, 0x33a1, 0x2cb2, 0x2726, 0x317c, 0x36d3, 0x37d2, 0x3792, 0x369d, 0x3971, 0x3243, 0x3b78, 0x37e4, 0x38f2, 0x37c2, 0x3a84, 0x38fa, 0x1d50, 0x2ec4, 0x340e, 0x35df, 0x361a, 0x3b67, 0x3bb6, 0x3bbc, 0x39df, 0x3571, 0x3881, 0x3660, 0x363a, 0x3922, 0x3170, 0x35d4, 0x3be3, 0x35da, 0x357e, 0x2cb2, 0x34a7, 0x38df, 0x341d, 0x3961, 0x354a, +0x37b8, 0x34a5, 0x3ac5, 0x383a, 0x3116, 0x30a5, 0x2489, 0x39f8, 0x3b9e, 0x3b0d, 0x3593, 0x3303, 0x2e28, 0x395f, 0x317f, 0x37cb, 0x3878, 0x3b20, 0x3bcc, 0x3592, 0x3237, 0x3a65, 0x3959, 0x39de, 0x3b7d, 0x2fea, 0x353c, 0x2f58, 0x3b49, 0x35df, 0x3bda, 0x3718, 0x3429, 0x3497, 0x3bad, 0x3623, 0x3b67, 0x3b2a, 0x2bf1, 0x3ac8, 0x35e2, 0x3887, 0x2ee7, 0x39d6, 0x2c31, 0x35ba, 0x3658, 0x39a6, +0x3b07, 0x386c, 0x3415, 0x3a85, 0x3911, 0x30df, 0x3b20, 0x38bd, 0x392a, 0x352c, 0x3558, 0x2486, 0x2f62, 0x3a99, 0x38f5, 0x2dfc, 0x38f9, 0x3bbb, 0x3be2, 0x34b1, 0x3b6e, 0x2cf2, 0x3a61, 0x25f9, 0x3024, 0x3b46, 0x3332, 0x2385, 0x3017, 0x1a5f, 0x39f7, 0x365e, 0x33f7, 0x3478, 0x28da, 0x3808, 0x3b4b, 0x2610, 0x30fd, 0x392c, 0x37aa, 0x361e, 0x2d9e, 0x3287, 0x34cd, 0x376f, 0x356e, 0x3b74, +0x3acb, 0x395f, 0x3974, 0x3179, 0x3b19, 0x385d, 0x31c1, 0x3bd8, 0x365a, 0x375f, 0x383f, 0x3a31, 0x31c2, 0x3bc0, 0x39d7, 0x3a6a, 0x3766, 0x3841, 0x3a91, 0x3b0a, 0x2c17, 0x3a75, 0x3988, 0x378f, 0x3871, 0x3ada, 0x360c, 0x3136, 0x38f9, 0x3b55, 0x2c2b, 0x368d, 0x3940, 0x3783, 0x38ed, 0x38d0, 0x377c, 0x3b27, 0x39f3, 0x3afc, 0x3ad7, 0x2e41, 0x3ae4, 0x37a7, 0x36c3, 0x2ab0, 0x27f6, 0x3b55, +0x358f, 0x3ad7, 0x2b72, 0x3a7f, 0x205b, 0x37f1, 0x34c8, 0x2f69, 0x3356, 0x3732, 0x3194, 0x32ce, 0x38ad, 0x2c9b, 0x344c, 0x3aaf, 0x38f5, 0x39f3, 0x3428, 0x3276, 0x389c, 0x3a37, 0x3bbd, 0x34ab, 0x3910, 0x38b4, 0x37b5, 0x28d8, 0x378f, 0x3796, 0x3931, 0x38f9, 0x3a06, 0x3848, 0x3a15, 0x370e, 0x33da, 0x389a, 0x36fd, 0x3a76, 0x37f4, 0x22f8, 0x3b5a, 0x39ac, 0x3b8e, 0x37f7, 0x3918, 0x365b, +0x39d3, 0x3402, 0x325b, 0x3a97, 0x3253, 0x3915, 0x3a5e, 0x331f, 0x3954, 0x34e7, 0x3548, 0x3562, 0x2611, 0x3a97, 0x3a02, 0x33e5, 0x31a0, 0x3495, 0x3b34, 0x3948, 0x39b3, 0x37a6, 0x366a, 0x3bf2, 0x3932, 0x37d3, 0x2c6f, 0x39d2, 0x367f, 0x237b, 0x384d, 0x2f93, 0x3b84, 0x3770, 0x3997, 0x3b31, 0x3959, 0x3bd1, 0x2e11, 0x33ba, 0x2fd6, 0x38a6, 0x37ef, 0x38a9, 0x3bef, 0x3b98, 0x3b80, 0x3921, +0x3ac9, 0x3b94, 0x2da8, 0x39b1, 0x3096, 0x35b1, 0x39a8, 0x3abc, 0x3b01, 0x36dc, 0x3bd2, 0x39fa, 0x3441, 0x2b98, 0x3628, 0x3933, 0x323d, 0x386a, 0x330d, 0x38d4, 0x327a, 0x3581, 0x351e, 0x39ea, 0x3709, 0x39c9, 0x39ce, 0x3749, 0x392a, 0x3bbd, 0x3bf6, 0x3a92, 0x38b8, 0x39b7, 0x2e49, 0x3523, 0x35ea, 0x350c, 0x39f7, 0x2fe2, 0x3a5e, 0x3901, 0x3bcc, 0x1da2, 0x3807, 0x3a7b, 0x3ab7, 0x3095, +0x380f, 0x3bce, 0x3aa2, 0x3bcd, 0x3887, 0x2f27, 0x3999, 0x3a35, 0x3884, 0x29bf, 0x3aed, 0x32ec, 0x3831, 0x351b, 0x386e, 0x38cc, 0x35e8, 0x3b73, 0x37ee, 0x36f3, 0x32de, 0x3a8e, 0x3a7f, 0x37b2, 0x39fb, 0x26f9, 0x31c1, 0x3a69, 0x3aa1, 0x2e39, 0x186f, 0x39ca, 0x2d4c, 0x35dd, 0x2d94, 0x39df, 0x3a3f, 0x2fad, 0x2850, 0x3630, 0x3470, 0x3580, 0x3b38, 0x3639, 0x385a, 0x3778, 0x3843, 0x3bbb, +0x336e, 0x350e, 0x30a3, 0x3b56, 0x3b24, 0x3859, 0x3090, 0x398d, 0x3afd, 0x33bd, 0x3a92, 0x393e, 0x39cc, 0x2711, 0x3bf0, 0x38c7, 0x2f96, 0x3a3d, 0x3a9a, 0x3843, 0x3940, 0x33c8, 0x35c0, 0x2f6c, 0x37e3, 0x3b04, 0x3aa1, 0x3810, 0x3b66, 0x142f, 0x3b9d, 0x368f, 0x3b90, 0x3550, 0x3b2a, 0x2747, 0x38f8, 0x3a55, 0x386c, 0xd14, 0x36eb, 0x341e, 0x3b4f, 0x2bca, 0x2c8a, 0x3664, 0x3829, 0x2ed0, +0x388c, 0x388a, 0x3481, 0x39f6, 0x3287, 0x38da, 0x394d, 0x3ae5, 0x3811, 0x21e1, 0x2d3a, 0x217d, 0x3b63, 0x34af, 0x38e5, 0x3870, 0x34b9, 0x38e3, 0x358e, 0x39ea, 0x26e8, 0x3984, 0x382c, 0x3b28, 0x37b4, 0x360b, 0x3740, 0x2c22, 0x3960, 0x39c5, 0x37f7, 0x249d, 0x391b, 0x3765, 0x2c22, 0x3942, 0x3ab8, 0x2b4a, 0x1da1, 0x3be5, 0x3010, 0x3542, 0x3aac, 0x3af5, 0x36b2, 0x2698, 0x34fb, 0x3a9d, +0x3b9d, 0x3bbb, 0x2378, 0x3b83, 0x3b93, 0x304e, 0x2b45, 0x378c, 0x37c1, 0x3ade, 0x38e3, 0x37d2, 0x3ba1, 0x3b3e, 0x362c, 0x3bcd, 0x3a02, 0x2723, 0x287c, 0x3bdd, 0x3b13, 0x3b43, 0x3b2a, 0x3a87, 0x35dd, 0x2c4c, 0x379c, 0x37af, 0x3b2f, 0x37fb, 0x34e7, 0x3207, 0x39a5, 0x381d, 0x39ef, 0x3652, 0x37aa, 0x3a07, 0x3bd2, 0x3bcb, 0x38cc, 0x38b6, 0x27d8, 0x3a0c, 0x2fec, 0x3847, 0x2fa0, 0x3529, +0x35ec, 0x3b54, 0x3a7a, 0x3bba, 0x396b, 0x32de, 0x375b, 0x37b8, 0x28c3, 0x3943, 0x2dff, 0x2c42, 0x36f4, 0x3637, 0x3115, 0x3a45, 0x3ba4, 0x3af8, 0x281c, 0x3ad8, 0x3b4c, 0x388a, 0x39f5, 0x308e, 0x3ab9, 0x3ab6, 0x2fe0, 0x36f8, 0x3bba, 0x29a5, 0x3752, 0x39f8, 0x33cb, 0x3b35, 0x356a, 0x3339, 0x3bb9, 0x3bd9, 0x3818, 0x3bbf, 0x3a13, 0x3551, 0x3975, 0x2709, 0x3af7, 0x3459, 0x2bbc, 0x36b6, +0x3b29, 0x2d13, 0x3999, 0x3b0f, 0x39cb, 0x3ae9, 0x3413, 0x38ab, 0x3a6a, 0x374e, 0x33b8, 0x3a15, 0x3618, 0x2d46, 0x330b, 0x3a3b, 0x3a6b, 0x3a90, 0x2ef4, 0x3bff, 0x2dd7, 0x3887, 0x360b, 0x382c, 0x375e, 0x32f0, 0x38d4, 0x3aa5, 0x36aa, 0x37af, 0x22fd, 0x3725, 0x3b3f, 0x37a7, 0x3452, 0x1c44, 0x35af, 0x3670, 0x3bfe, 0x27be, 0x380b, 0x3828, 0x3a88, 0x388e, 0x3571, 0x3b6c, 0x3821, 0x3a57, +0x3588, 0x2e21, 0x2ca3, 0x39d1, 0x3a56, 0x38d4, 0x39d6, 0x352b, 0x38f2, 0x396b, 0x3a8d, 0x2ccf, 0x3920, 0x390f, 0x3933, 0x2aa9, 0x3b6a, 0x3991, 0x389f, 0x3974, 0x2d2c, 0x3b59, 0x31b7, 0x3601, 0x38b8, 0x35ef, 0x3864, 0x3a43, 0x38d6, 0x3bc5, 0x39d7, 0x3740, 0x340b, 0x3630, 0x34f1, 0x3b1a, 0x3a16, 0x36fa, 0x38fe, 0x3980, 0x3929, 0x3b41, 0x3bf4, 0x2e4a, 0x3ac1, 0x30a3, 0x35a2, 0x3bee, +0x3a86, 0x1850, 0x35fb, 0x38e1, 0x2971, 0x368e, 0x3590, 0x38cb, 0x2ba6, 0x3b2b, 0x38d6, 0x386a, 0x30a2, 0x3262, 0x335b, 0x3571, 0x3a39, 0x3bf7, 0x2c12, 0x3abd, 0x391d, 0x38c5, 0x3578, 0x3a6c, 0x2dcd, 0x3818, 0x34b4, 0x3848, 0x2fa9, 0x3b24, 0x38d5, 0x3a7f, 0x31ec, 0x31a9, 0x3ab6, 0x345a, 0x3a71, 0x395c, 0x3bfd, 0x3be8, 0x3b5d, 0x325b, 0x3914, 0x39cf, 0x39c3, 0x3518, 0x38b7, 0x3500, +0x3a47, 0x3436, 0x382f, 0x37ae, 0x386b, 0x371b, 0x3a89, 0x3837, 0x379d, 0x352f, 0x3911, 0x3b1f, 0x3ba2, 0x39a2, 0x30d5, 0x2f54, 0x3a40, 0x398b, 0x188d, 0x2439, 0x2816, 0x3886, 0x3b4e, 0x3bac, 0x21a1, 0x379c, 0x3b9d, 0x3a9e, 0x3a29, 0x3a12, 0x396c, 0x39ef, 0x37e2, 0x29f9, 0x3a76, 0x38a1, 0x3a84, 0x357c, 0x3a66, 0x2edc, 0x2eb4, 0x3a98, 0x34b4, 0x3653, 0x2b4c, 0x281c, 0x3af1, 0x3652, +0x39d9, 0x3b52, 0x3976, 0x3005, 0x33ec, 0x3960, 0x38e9, 0x35e0, 0x3790, 0x3b8c, 0x3346, 0x3722, 0x35fc, 0x333b, 0x3242, 0x3a42, 0x3865, 0x39d9, 0x38bb, 0x3930, 0x362a, 0x341b, 0x3973, 0x3ac8, 0x3913, 0x2c64, 0x3808, 0x384c, 0x393c, 0x3b7d, 0x3862, 0x3703, 0x2f4e, 0x352b, 0x37f9, 0x345c, 0x3a97, 0x2ee3, 0x300c, 0x372d, 0x3a61, 0x2cf1, 0x3801, 0x377c, 0x316e, 0x382d, 0x3af3, 0x34c3 }; \ No newline at end of file diff --git a/hwpe/redmule/inc/x_input.h b/hwpe/redmule/inc/x_input.h index 1e38d23..3312e91 100644 --- a/hwpe/redmule/inc/x_input.h +++ b/hwpe/redmule/inc/x_input.h @@ -1,27 +1,51 @@ /* Header file generated by RedMulE Golden Model */ -uint16_t x_inp [768] = { -0x2153, 0x3bb5, 0x3896, 0x365f, 0x2483, 0x3518, 0x2dd1, 0x3bca, 0x397b, 0x29b1, 0x3705, 0x36c8, 0x398b, 0x3661, 0x2f05, 0x365a, 0x3bf9, 0x34df, 0x363b, 0x38d9, 0x39c6, 0x3abb, 0x3952, 0x38f2, 0x392d, 0x3b3e, 0x2afb, 0x3a9d, 0x353b, 0x3b73, 0x3a01, 0x3679, -0x3934, 0x397d, 0x2904, 0x3822, 0x3462, 0x3b44, 0x39e9, 0x28be, 0x331e, 0x3a1d, 0x39e5, 0x34da, 0x3a19, 0x3906, 0x1d35, 0x3871, 0x31e7, 0x3b29, 0x325d, 0x3797, 0x2b2f, 0x38b4, 0x232f, 0x38aa, 0x3aca, 0x316f, 0x3811, 0x3950, 0x32ea, 0x3bc7, 0x382c, 0x38a2, -0x29ce, 0x3afa, 0x3a39, 0x2ccc, 0x39fd, 0x3b3d, 0x384a, 0x3a35, 0x3802, 0x366a, 0x37ec, 0x3598, 0x3bf8, 0x3a85, 0x3a1b, 0x386e, 0x3b4c, 0x39de, 0x38c2, 0x2f93, 0x3b4c, 0x39c4, 0x3b9e, 0x3844, 0x346d, 0x3bff, 0x32ce, 0x296d, 0x3130, 0x3b3d, 0x3b44, 0x369d, -0x3b13, 0x31ed, 0x330a, 0x3831, 0x34e7, 0x37b3, 0x331a, 0x3918, 0x32d3, 0x3995, 0x3991, 0x3919, 0x3a26, 0x385b, 0x2b76, 0x3a3b, 0x37f2, 0x26a7, 0x3225, 0x3b64, 0x28f0, 0x3456, 0x3822, 0x341e, 0x381a, 0x38d8, 0x2c11, 0x33be, 0x33ac, 0x353f, 0x3476, 0x3abc, -0x36ec, 0x3a1d, 0x39d3, 0x3821, 0x36ac, 0x3bce, 0x3ad2, 0x3616, 0x36a1, 0x2cb3, 0x38d2, 0x314f, 0x385c, 0x3b63, 0x3bb6, 0x2951, 0x372d, 0x2c42, 0x3823, 0x3883, 0x3872, 0x31ee, 0x36c5, 0x399a, 0x31b0, 0x3887, 0x3884, 0x3865, 0x3896, 0x36c3, 0x32e3, 0x346c, -0x3935, 0x3b50, 0x2b6d, 0x38cd, 0x388f, 0x3389, 0x395d, 0x31cd, 0x2efd, 0x3154, 0x2f35, 0x3444, 0x3293, 0x3b6b, 0x1bec, 0x3b69, 0x3bf3, 0x3611, 0x3508, 0x3742, 0x3a50, 0x3ab7, 0x3457, 0x38d3, 0x3344, 0x38e8, 0x33c0, 0x3668, 0x3bee, 0x3b21, 0x3727, 0x3121, -0x316c, 0x3288, 0x2d50, 0x2e74, 0x35d5, 0x37e2, 0x303d, 0x36af, 0x341f, 0x3436, 0x2df7, 0x399d, 0x30f4, 0x3aaf, 0x34e4, 0x2c2a, 0x3116, 0x34d3, 0x36ac, 0x35e3, 0x3760, 0x36e1, 0x3ad2, 0x3547, 0x38f4, 0x369c, 0x3ba9, 0x34f0, 0x3a39, 0x3b19, 0x36e6, 0x395d, -0x3be8, 0x3293, 0x3bfc, 0x3435, 0x2eb3, 0x3360, 0x3919, 0x3bed, 0x396a, 0x37fc, 0x3242, 0x384b, 0x38cb, 0x3b2c, 0x3b28, 0x28cf, 0x3828, 0x3855, 0x3ba9, 0x2fa7, 0x340b, 0x32f1, 0x3ada, 0x36fa, 0x31f5, 0x3436, 0x29d0, 0x33e6, 0x3232, 0x3bec, 0x3904, 0x2797, -0x3b81, 0x3bac, 0x38d2, 0x343d, 0x31af, 0x3b1e, 0x33fc, 0x3864, 0x3624, 0x3905, 0x2945, 0x3b52, 0x2d08, 0x3a17, 0x3b84, 0x3804, 0x3a24, 0x38a3, 0x3562, 0x3ae6, 0x3bba, 0x3a45, 0x3679, 0x31fa, 0x3994, 0x2c3d, 0x383f, 0x399d, 0x34f7, 0x360e, 0x35f3, 0x38f0, -0x38d4, 0x399a, 0x3a48, 0x3987, 0x3b54, 0x382c, 0x3210, 0x35ef, 0x36ca, 0x31b4, 0x3625, 0x371f, 0x37bd, 0x3680, 0x3a3a, 0x3ac0, 0x3bbf, 0x3bf5, 0x39f2, 0x29c2, 0x363e, 0x3a4e, 0x3596, 0x3b1b, 0x3459, 0x3669, 0x3aa1, 0x39c3, 0x3376, 0x390d, 0x2456, 0x39b5, -0x3a66, 0x3ad8, 0x3b51, 0x36aa, 0x32be, 0x3ac8, 0x392b, 0x3740, 0x3a48, 0x38f5, 0x3b2d, 0x3a5f, 0x2ff3, 0x366f, 0x39d3, 0x35e5, 0x3822, 0x38db, 0x3b8a, 0x34be, 0x2d33, 0x36dd, 0x3578, 0x3bdf, 0x2c7e, 0x39cf, 0x32ff, 0x35c9, 0x3970, 0x3bcb, 0x351e, 0x3956, -0x2c42, 0x3308, 0x377a, 0x361c, 0x39a0, 0x36c9, 0x2dcb, 0x3bf2, 0x3b5f, 0x33ee, 0x24c1, 0x2ce9, 0x3927, 0x305d, 0x3702, 0x3119, 0x35f9, 0x3855, 0x3374, 0x349b, 0x3bcf, 0x2dea, 0x34f0, 0x363f, 0x37da, 0x3a74, 0x35fc, 0x35fa, 0x316b, 0x3804, 0x37a7, 0x3986, -0x3073, 0x3aed, 0x31c7, 0x3844, 0x34a4, 0x387d, 0x3a20, 0x3037, 0x3a00, 0x3b70, 0x377f, 0x3686, 0x3b7e, 0x38b3, 0x32e3, 0x3323, 0x391e, 0x3228, 0x3930, 0x3997, 0x3a5e, 0x398b, 0x3512, 0x35b0, 0x365c, 0x325d, 0x3b61, 0x38b8, 0x39a4, 0x3423, 0x3bd7, 0x38af, -0x2d3d, 0x382d, 0x38ac, 0x26ca, 0x395e, 0x21a8, 0x3520, 0x386f, 0x3b95, 0x32c0, 0x3b84, 0x3a51, 0x3b4b, 0x31d2, 0x3747, 0x3b96, 0x3b40, 0x3535, 0x38d1, 0x3899, 0x3b00, 0x3827, 0x3ae3, 0x38c8, 0x3a07, 0x338d, 0x2e96, 0x3a46, 0x394a, 0x39de, 0x2951, 0x3a02, -0x3838, 0x2d45, 0x28c0, 0x3958, 0x3070, 0x2aa2, 0x3510, 0x38ce, 0x271c, 0x3440, 0x3954, 0x30bc, 0x3b35, 0x2f1d, 0x3afb, 0x2dae, 0x356f, 0x2e13, 0x3981, 0x326d, 0x3a28, 0x3a36, 0x3a95, 0x38cb, 0x38db, 0x3150, 0x2c9e, 0x34c5, 0x3adb, 0x3bdf, 0x38f2, 0x3994, -0x36f8, 0x31c0, 0x3a4f, 0x3825, 0x394b, 0x3a8b, 0x38ac, 0x3167, 0x2e2d, 0x3a93, 0x34f3, 0x37bd, 0x3b63, 0x2f2f, 0x3ae0, 0x3ad8, 0x34a8, 0x2e1c, 0x3890, 0x3705, 0x3b69, 0x3bc1, 0x28af, 0x3b36, 0x348b, 0x3111, 0x3a8d, 0x389c, 0x3916, 0x36dc, 0x3bae, 0x3874, -0x3593, 0x3638, 0x3018, 0x3a56, 0x38a3, 0x2ad4, 0x3a25, 0x38d7, 0x3864, 0x31c1, 0x28d1, 0x39c8, 0x37d6, 0x2c7f, 0x3ba5, 0x34b8, 0x3bef, 0x3b83, 0x3ab5, 0x3062, 0x38bc, 0x399c, 0x2ce4, 0x2f2c, 0x39bf, 0x2ed1, 0x385f, 0x37e0, 0x35ee, 0x397d, 0x3b0c, 0x3049, -0x39d5, 0x322e, 0x3936, 0x3747, 0x2e15, 0x3b41, 0x3874, 0x3bd0, 0x2c04, 0x3800, 0x375b, 0x3b2d, 0x38d8, 0x3a51, 0x3406, 0x38da, 0x38ba, 0x3497, 0x382e, 0x35fc, 0x39d4, 0x3775, 0x3b1e, 0x3813, 0x3649, 0x31af, 0x37bb, 0x334a, 0x3a6e, 0x3284, 0x26e0, 0x2e01, -0x2ebb, 0x344b, 0x3821, 0x381a, 0x385a, 0x2534, 0x3635, 0x2a92, 0x3b8c, 0x31f0, 0x3947, 0x3ac7, 0x3743, 0x3924, 0x39e4, 0x358f, 0x2b62, 0x392c, 0x3955, 0x3341, 0x3676, 0x38ac, 0x3957, 0x335b, 0x2ca2, 0x39ff, 0x37cb, 0x341f, 0x3ac9, 0x3b6c, 0x2f14, 0x34c3, -0x3018, 0x3169, 0x355b, 0x3624, 0x31ed, 0x379e, 0x3268, 0x309b, 0x35db, 0x3872, 0x3bdb, 0x34c7, 0x3408, 0x3359, 0x3920, 0x331f, 0x3866, 0x3af0, 0x2a1a, 0x39e0, 0x3b14, 0x34fa, 0x2d18, 0x3963, 0x35e8, 0x2539, 0x38f5, 0x37b3, 0x378f, 0x31b5, 0x3a6c, 0x3685, -0x3a06, 0x318a, 0x2934, 0x33c1, 0x3be8, 0x375b, 0x3860, 0x3543, 0x3702, 0x3951, 0x3677, 0x37ff, 0x2e27, 0x2e3a, 0x340f, 0x3817, 0x2f04, 0x357e, 0x3a1d, 0x2dd6, 0x252a, 0x3945, 0x162a, 0x3b19, 0x3a53, 0x35d2, 0x3a5d, 0x3474, 0x38e9, 0x374b, 0x387c, 0x1f1a, -0x38ac, 0x3291, 0x3393, 0x3b53, 0x3169, 0x3bca, 0x2f1a, 0x3551, 0x38a3, 0x28e3, 0x369d, 0x34a1, 0x38a8, 0x34c3, 0x3841, 0x390d, 0x3b13, 0x3282, 0x3a29, 0x3a78, 0x2df3, 0x3a37, 0x35f4, 0x35a6, 0x38e8, 0x3328, 0x3beb, 0x390b, 0x32dc, 0x34dc, 0x396d, 0x3a78, -0x39ba, 0x3a06, 0x2cdd, 0x3bc3, 0x2d43, 0x2992, 0x3663, 0x3a68, 0x2c3e, 0x394e, 0x2c9f, 0x380e, 0x37f5, 0x3557, 0x2873, 0x390f, 0x39e7, 0x3939, 0x3669, 0x385c, 0x3a68, 0x32c4, 0x2b04, 0x2d6d, 0x39d3, 0x3895, 0x331d, 0x3b59, 0x3463, 0x2b6a, 0x31de, 0x3296, -0x3aae, 0x3bcd, 0x345a, 0x3897, 0x374b, 0x3bd4, 0x38a2, 0x357f, 0x3402, 0x3a0c, 0x3507, 0x3865, 0x3a54, 0x3878, 0x3859, 0x383e, 0x32b5, 0x34ea, 0x328d, 0x38b6, 0x3464, 0x2f5b, 0x35ff, 0x3817, 0x2f24, 0x3533, 0x3b21, 0x37ba, 0x3837, 0x2e34, 0x3bad, 0x34bc +uint16_t x_inp [2304] = { +0x348f, 0x3244, 0x3b67, 0x3ab8, 0x3ab1, 0x39f4, 0x3807, 0x3ba3, 0x37e3, 0x3bd4, 0x337e, 0x36cb, 0x3a60, 0x381e, 0x3b98, 0x2c0e, 0x3421, 0x3bc4, 0x3b18, 0x3703, 0x3b8d, 0x3a06, 0x38f6, 0x36af, 0x322a, 0x3354, 0x3bf3, 0x3b7e, 0x38cf, 0x3826, 0x35be, 0x3a42, 0x39c4, 0x3b62, 0x3a29, 0x3b5b, 0x39ab, 0x3a4c, 0x3b44, 0x3b48, 0x3831, 0x31ca, 0x3918, 0x39bb, 0x3a82, 0x3830, 0x39af, 0x39ba, +0x3853, 0x2b2a, 0x39bc, 0x36e5, 0x3bb8, 0x37f6, 0x2e8d, 0x3a93, 0x3b53, 0x3424, 0x38a6, 0x3583, 0x39cd, 0x35f0, 0x3556, 0x3956, 0x3a10, 0x37de, 0x353b, 0x2cdd, 0x3779, 0x2a45, 0x3b07, 0x303f, 0x3b95, 0x3903, 0x3275, 0x391c, 0x39bd, 0x3503, 0x328e, 0x2f75, 0x35da, 0x3a32, 0x3974, 0x37a0, 0x3ab6, 0x34c9, 0x3674, 0x3859, 0x2c40, 0x38da, 0x38be, 0x38a1, 0x38a4, 0x3a74, 0x2167, 0x33f4, +0x38d2, 0x3a5a, 0x30a7, 0x3b8e, 0x39bd, 0x382a, 0x3714, 0x35f7, 0x3b34, 0x3535, 0x3b2c, 0x39b1, 0x3902, 0x3965, 0x3b7b, 0x3a1d, 0x3ae6, 0x3b0e, 0x3960, 0x37b6, 0x3872, 0x2dc4, 0x320f, 0x2c60, 0x38c9, 0x3a10, 0x387b, 0x39f1, 0x3929, 0x387c, 0x3ae4, 0x3881, 0x3a7c, 0x39c9, 0x3ae4, 0x38ec, 0x3ad0, 0x314a, 0x2d1e, 0x3b18, 0x2629, 0x358b, 0x3760, 0x2e4f, 0x3996, 0x394c, 0x3aa1, 0x28cc, +0x2c01, 0x38d9, 0x2a1c, 0x3bac, 0x3b50, 0x38e3, 0x33ac, 0x317a, 0x3277, 0x2f5e, 0x36b4, 0x39a2, 0x34fa, 0x24f8, 0x3b5c, 0x3890, 0x248e, 0x39c1, 0x37be, 0x2830, 0x3aa0, 0x3a1f, 0x3bb4, 0x3af9, 0x1c84, 0x3a33, 0x3742, 0x3bdb, 0x28be, 0x3bc1, 0x3572, 0x3911, 0x39d2, 0x35b5, 0x3ab6, 0x3206, 0x3914, 0x3127, 0x3adf, 0x362d, 0x340d, 0x3b5b, 0x3a05, 0x3b25, 0x3b65, 0x361b, 0x3801, 0x2d22, +0x2d9e, 0x3a91, 0x2db9, 0x3861, 0x39f9, 0x3aab, 0x3afa, 0x30bb, 0x3a1e, 0x2f27, 0x329a, 0x3bb7, 0x3472, 0x37b5, 0x3462, 0x32bd, 0x2722, 0x3ba7, 0x2bb9, 0x2431, 0x39bd, 0x38fc, 0x3b4f, 0x3b45, 0x3572, 0x37b8, 0x3aa7, 0x3a36, 0x3b2d, 0x3422, 0x3b09, 0x397f, 0x26b3, 0x3a0f, 0x3625, 0x3b6a, 0x3493, 0x3771, 0x357e, 0x360b, 0x30e8, 0x3905, 0x3a55, 0x39b9, 0x3344, 0x36d2, 0x3a6e, 0x3809, +0x3240, 0x39e0, 0x3746, 0x3b22, 0x34ba, 0x391b, 0x3939, 0x3321, 0x31e2, 0x3a97, 0x3bc0, 0x34a3, 0x3adb, 0x3a6d, 0x34af, 0x37b3, 0x3a63, 0x3702, 0x36c7, 0x3b73, 0x273c, 0x3808, 0x21e6, 0x3b34, 0x381c, 0x3825, 0x2fde, 0x299c, 0x2f4a, 0x3733, 0x314e, 0x3b89, 0x2e89, 0x37d2, 0x36a2, 0x353a, 0x3901, 0x3a9e, 0x2c1a, 0x3880, 0x37e7, 0x346f, 0x3361, 0x3896, 0x2f56, 0x3aa7, 0x33dd, 0x390b, +0x3bb0, 0x3b1a, 0x2d21, 0x3562, 0x38d8, 0x2f77, 0x38f6, 0x3158, 0x36cd, 0x35a1, 0x2b2e, 0x2938, 0x3af9, 0x348a, 0x399b, 0x3954, 0x29b8, 0x39a7, 0x3a83, 0x3bcb, 0x38ee, 0x3806, 0x2697, 0x3628, 0x3b38, 0x38be, 0x363c, 0x387e, 0x3a6c, 0x3b92, 0x335f, 0x37ba, 0x37da, 0x342e, 0x3509, 0x3be9, 0x392a, 0x32d7, 0x3ac6, 0x346e, 0x38f4, 0x3b5a, 0x3814, 0x3875, 0x39c9, 0x3a9f, 0x37c3, 0x3b00, +0x3675, 0x3a15, 0x36ec, 0x3b53, 0x3915, 0x36c4, 0x3462, 0x3b05, 0x2b3e, 0x351e, 0x369c, 0x38aa, 0x3342, 0x2e71, 0x3af1, 0x3aa7, 0x39d1, 0x3b0b, 0x3be9, 0x3a0a, 0x344f, 0x3b04, 0x39d6, 0x3864, 0x34e9, 0x308e, 0x3b6b, 0x32bf, 0x3610, 0x36d2, 0x350f, 0x3a78, 0x306f, 0x30e5, 0x3213, 0x3b6c, 0x356f, 0x38db, 0x387e, 0x3064, 0x3bf7, 0x2e00, 0x3bc4, 0x39df, 0x3758, 0x397f, 0x38a8, 0x34b8, +0x2c53, 0x36b9, 0x38a5, 0x2c24, 0x2836, 0x3a5a, 0x3acf, 0x37b2, 0x33f7, 0x3858, 0x3204, 0x37f8, 0x394c, 0x3781, 0x3b0f, 0x306a, 0x3ab4, 0x3a72, 0x3861, 0x3ab7, 0x3857, 0x375a, 0x3886, 0x3833, 0x3b06, 0x3bf9, 0x3bdc, 0x356c, 0x380f, 0x394f, 0x3942, 0x39cb, 0x3a2e, 0x3a94, 0x3b77, 0x36b3, 0x3585, 0x3916, 0x3ba5, 0x31de, 0x33fe, 0x2f98, 0x3953, 0x38c1, 0x38b4, 0x2c65, 0x30f6, 0x3523, +0x3661, 0x3b45, 0x2cba, 0x3615, 0x38a1, 0x3a9b, 0x3b75, 0x3be3, 0x3978, 0x36ba, 0x3a1e, 0x3bc1, 0x3bd2, 0x3738, 0x2f64, 0x3998, 0x3868, 0x34ae, 0x36b5, 0x3468, 0x390a, 0x2484, 0x3146, 0x30ea, 0x332b, 0x35b8, 0x390a, 0x3903, 0x288a, 0x3b74, 0x3bf9, 0x396a, 0x3bae, 0x30e3, 0x3857, 0x1ce7, 0x253f, 0x3b44, 0x3a54, 0x31b4, 0x37e2, 0x3b32, 0x323d, 0x3808, 0x34de, 0x3759, 0x300c, 0x3257, +0x37d3, 0x28ef, 0x3bd0, 0x39f1, 0x3b26, 0x3988, 0x3756, 0x39d5, 0x38b8, 0x3906, 0x30e3, 0x3b48, 0x34cb, 0x38cc, 0x3b88, 0x2c93, 0x3aae, 0x3822, 0x35fa, 0x39a0, 0x3830, 0x382b, 0x38c8, 0x348b, 0x3293, 0x397f, 0x39aa, 0x3416, 0x3b17, 0x34a7, 0x3671, 0x2942, 0x38ce, 0x2e26, 0x3832, 0x3ab2, 0x2e39, 0x3700, 0x3399, 0x34c7, 0x3ac6, 0x193b, 0x3a2b, 0x3481, 0x3b02, 0x3a2c, 0x2d24, 0x2fb8, +0x3aa9, 0x3599, 0x3520, 0x3551, 0x2561, 0x2e7a, 0x3b26, 0x3463, 0x2f1c, 0x2e4d, 0x343d, 0x3502, 0x2d9b, 0x3b38, 0x37a5, 0x3ba2, 0x34b4, 0x3891, 0x3af1, 0x2c37, 0x39e9, 0x3658, 0x3188, 0x24f0, 0x3a41, 0x3bf1, 0x3707, 0x3101, 0x34fb, 0x32cc, 0x35bb, 0x3acd, 0x38af, 0x39e9, 0x3974, 0x32e1, 0x32f7, 0x32e3, 0x3ad5, 0x2a73, 0x39e6, 0x3b01, 0x3347, 0x3bd1, 0x3791, 0x3aaf, 0x3be8, 0x3a88, +0x376a, 0x3127, 0x3858, 0x3481, 0x3689, 0x33b9, 0x38ee, 0x3a6d, 0x3b96, 0x35c2, 0x3a21, 0x34a7, 0x39f2, 0x344e, 0x3a81, 0x30a6, 0x39c1, 0x3bd2, 0x26f5, 0x3a2f, 0x3a6a, 0x3a30, 0x2ca0, 0x3046, 0x38ae, 0x39cf, 0x3610, 0x3b72, 0x3766, 0x3b24, 0x3877, 0x3baf, 0x3a09, 0x383d, 0x3b1c, 0x39ab, 0x2d04, 0x366a, 0x3b9a, 0x33d3, 0x36d3, 0x3834, 0x395a, 0x3227, 0x2f00, 0x3124, 0x3b27, 0x3674, +0x2c8d, 0x39ff, 0x3686, 0x3a0c, 0x395f, 0x392e, 0x33f7, 0x3910, 0x3907, 0x303a, 0x2cc5, 0x380b, 0x2999, 0x37e7, 0x39dc, 0x37cf, 0x3a77, 0x377a, 0x3bbc, 0x3817, 0x3bce, 0x396f, 0x39d2, 0x3abb, 0x348e, 0x32bc, 0x365c, 0x349a, 0x2c22, 0x329c, 0x37c4, 0x3a6f, 0x370b, 0x3ade, 0x2886, 0x3625, 0x3086, 0x382b, 0x3677, 0x3828, 0x2fe5, 0x3456, 0x36a4, 0x3820, 0x3a32, 0x36fe, 0x3851, 0x3b25, +0x3b48, 0x38ad, 0x3a5f, 0x399c, 0x3586, 0x313d, 0x2e15, 0x3626, 0x393e, 0x2ed4, 0x3be6, 0x2c4e, 0x3926, 0x3a90, 0x3b28, 0x389d, 0x32bc, 0x3b76, 0x391f, 0x3bee, 0x30d8, 0x3598, 0x368c, 0x39d0, 0x3b45, 0x34e1, 0x3939, 0x3513, 0x3392, 0x388b, 0x3a88, 0x397f, 0x3861, 0x345d, 0x3384, 0x371d, 0x365b, 0x2d16, 0x3ad6, 0x3537, 0x3896, 0x399d, 0x3ab4, 0x3286, 0x35dd, 0x399f, 0x39ed, 0x39f7, +0x3acf, 0x38ac, 0x317c, 0x3608, 0x33f2, 0x2bca, 0x3970, 0x2f27, 0x3636, 0x397b, 0x3570, 0x340f, 0x3184, 0x2ddd, 0x36d4, 0x3458, 0x3968, 0x3716, 0x343c, 0x3852, 0x3ab2, 0x3673, 0x3937, 0x31bf, 0x397d, 0x31ce, 0x2ec4, 0x39b8, 0x329f, 0x2b35, 0x3b1e, 0x3ab1, 0x3604, 0x2815, 0x361d, 0x3bd1, 0x350c, 0x34be, 0x37df, 0x3422, 0x3819, 0x30aa, 0x38f3, 0x378d, 0x352d, 0x34d3, 0x3177, 0x3a8e, +0x2dff, 0x34b7, 0x30fd, 0x3ae0, 0x3710, 0x33e6, 0x3ba0, 0x3786, 0x3008, 0x3739, 0x3a4e, 0x3b30, 0x3aac, 0x344e, 0x3b85, 0x344e, 0x3873, 0x3882, 0x3be0, 0x37b1, 0x3860, 0x33ff, 0x35fb, 0x3414, 0x3785, 0x3bf8, 0x3513, 0x3317, 0x3a99, 0x349e, 0x2f56, 0x3b82, 0x3717, 0x360d, 0x354d, 0x3663, 0x39d8, 0x3766, 0x2f0d, 0x319e, 0x31aa, 0x2ded, 0x32e1, 0x3942, 0x3901, 0x3571, 0x27e6, 0x3adb, +0x31d1, 0x38b4, 0x31b1, 0x39a8, 0x3b99, 0x37d1, 0x3b32, 0x3021, 0x3a93, 0x39e9, 0x38f7, 0x38b8, 0x3639, 0x39e8, 0x392f, 0x393d, 0x3602, 0x368f, 0x2fe5, 0x32a3, 0x38bd, 0x3a11, 0x3be2, 0x29e2, 0x357a, 0x3810, 0x39e4, 0x3568, 0x3584, 0x3aaf, 0x3bdf, 0x350b, 0x30e2, 0x2f69, 0x3500, 0x38fb, 0x34e5, 0x336b, 0x387b, 0x36b8, 0x366c, 0x32b0, 0x3599, 0x3b7f, 0x3aa1, 0x3ae7, 0x38f5, 0x3a99, +0x338c, 0x3a97, 0x3807, 0x3520, 0x3ba8, 0x307b, 0x3ad3, 0x37bb, 0x364a, 0x3b20, 0x3b30, 0x39bb, 0x3b9e, 0x34f3, 0x34d3, 0x35d6, 0x34be, 0x3be0, 0x383a, 0x346a, 0x3aef, 0x3b6d, 0x36cb, 0x2d86, 0x3819, 0x3b7f, 0x3ba9, 0x3afe, 0x3bc3, 0x3a11, 0x31b7, 0x37e9, 0x3820, 0x398a, 0x36f0, 0x3968, 0x38cd, 0x2763, 0x303f, 0x3848, 0x3bd8, 0x3b81, 0x37a0, 0x3831, 0x32f0, 0x33a1, 0x3860, 0x39fb, +0x3a76, 0x3a11, 0x3952, 0x35ac, 0x340c, 0x3af6, 0x39a8, 0x3955, 0x3775, 0x3a7a, 0x2df5, 0x2943, 0x39b1, 0x37f4, 0x33f2, 0x3985, 0x370e, 0x3b33, 0x3b60, 0x3818, 0x3a43, 0x39ba, 0x3640, 0x3715, 0x30b0, 0x3511, 0x3560, 0x3ac2, 0x3a6d, 0x38d1, 0x36fa, 0x3824, 0x2727, 0x3360, 0x3970, 0x3400, 0x3a89, 0x26c2, 0x2e28, 0x398d, 0x368e, 0x37f4, 0x3add, 0x3280, 0x323b, 0x38fa, 0x24ad, 0x36e4, +0x3557, 0x3849, 0x3998, 0x325f, 0x39bb, 0x31f8, 0x2e0b, 0x2b6c, 0x39da, 0x3846, 0x3a54, 0x376e, 0x31c3, 0x34c7, 0x39e7, 0x376b, 0x3abc, 0x3adc, 0x37e7, 0x2ef3, 0x28ca, 0x3abc, 0x2e0e, 0x35f6, 0x31bd, 0x35af, 0x338f, 0x3886, 0x36b9, 0x2cc2, 0x311a, 0x39b1, 0x328d, 0x389d, 0x3a0b, 0x31a7, 0x3666, 0x29ea, 0x2ea9, 0x3b75, 0x38df, 0x39c9, 0x3b4a, 0x377f, 0x3908, 0x3879, 0x3b8e, 0x3875, +0x3bfa, 0x3a08, 0x3755, 0x3a00, 0x3815, 0x3bd0, 0x36db, 0x3a1c, 0x3735, 0x2dcc, 0x27e9, 0x3931, 0x3766, 0x352e, 0x386f, 0x3b57, 0x381c, 0x3a3d, 0x3b9a, 0x3318, 0x3b51, 0x3a5b, 0x31b1, 0x395d, 0x38af, 0x380b, 0x2fcf, 0x38e5, 0x387d, 0x268f, 0x32fb, 0x39c2, 0x3a6e, 0x346e, 0x3966, 0x2bc6, 0x3775, 0x34ed, 0x3b08, 0x3877, 0x3bfd, 0x3b50, 0x36ba, 0x3729, 0x3405, 0x3922, 0x387f, 0x3419, +0x2dff, 0x3158, 0x3977, 0x372e, 0x3404, 0x3429, 0x34e3, 0x34ab, 0x38ce, 0x3875, 0x3a15, 0x3575, 0x3bf5, 0x35ee, 0x394b, 0x3827, 0x2cda, 0x32d1, 0x2f50, 0x38c7, 0x36a6, 0x3184, 0x2e37, 0x3920, 0x3450, 0x392b, 0x38df, 0x3851, 0x3521, 0x32b7, 0x3934, 0x39fc, 0x3adf, 0x3b4a, 0x3477, 0x3bff, 0x2ea7, 0x3a25, 0x3425, 0x3878, 0x3a0d, 0x33a8, 0x346b, 0x384f, 0x36b8, 0x2a4a, 0x3ad8, 0x39bc, +0x3a3a, 0x39db, 0x3980, 0x34d6, 0x37bb, 0x3b02, 0x301f, 0x3a2c, 0x367d, 0x3991, 0x3a67, 0x3507, 0x3563, 0x3361, 0x3128, 0x3888, 0x2938, 0x3059, 0x3984, 0x3a7b, 0x2576, 0x2e91, 0x3ad1, 0x342d, 0x3609, 0x369c, 0x3ad9, 0x3708, 0x3b39, 0x3886, 0x344e, 0x3a72, 0x327c, 0x397f, 0x3b90, 0x35bd, 0x332e, 0x3652, 0x23c5, 0x3a86, 0x3a94, 0x39fb, 0x222b, 0x3a24, 0x3637, 0x3b56, 0x3afb, 0x3ab4, +0x3393, 0x2440, 0x39d7, 0x2e45, 0x3a47, 0x2f01, 0x3940, 0x3451, 0x3989, 0x31b7, 0x3acd, 0x3a78, 0x38cc, 0x34e5, 0x3a2b, 0x3919, 0x2a1e, 0x27bd, 0x24f1, 0x3a34, 0x3670, 0x3155, 0x3217, 0x3a63, 0x3be9, 0x3873, 0x37c2, 0x2e6e, 0x1f1e, 0x3aca, 0x2c5c, 0x3b45, 0x3432, 0x3271, 0x31d6, 0x3247, 0x2ba2, 0x3649, 0x3b1b, 0x360e, 0x3577, 0x354b, 0x3b16, 0x3818, 0x3983, 0x388a, 0x3a04, 0x398d, +0x3bbb, 0x33f6, 0x2d28, 0x2663, 0x3b63, 0x38b7, 0x336f, 0x37dd, 0x3548, 0x304d, 0x30dd, 0x345a, 0x3a44, 0x398c, 0x382c, 0x3852, 0x20b2, 0x3859, 0x310a, 0x36bf, 0x3020, 0x3818, 0x3146, 0x3844, 0x34b2, 0x3534, 0x30b0, 0x3a25, 0x3516, 0x3908, 0x2a38, 0x3882, 0x3a84, 0x3869, 0x37de, 0x36f3, 0x324b, 0x365b, 0x3a4c, 0x2ec9, 0x2e4a, 0x393f, 0x384f, 0x3a8e, 0x3630, 0x391f, 0x3539, 0x39ed, +0x3a5a, 0x3bd3, 0x3b62, 0x39a1, 0x3896, 0x3747, 0x3bc9, 0x314d, 0x3a7c, 0x3658, 0x3122, 0x1fd9, 0x3b62, 0x38fa, 0x379d, 0x37af, 0x387d, 0x3a70, 0x3987, 0x38cc, 0x38b3, 0x1a67, 0x3a2b, 0x2c66, 0x3748, 0x3480, 0x39db, 0x2cf4, 0x3bdc, 0x3506, 0x387b, 0x3a38, 0x2fdc, 0x3aa2, 0x3891, 0x3716, 0x3ad4, 0x3b2c, 0x3584, 0x389a, 0x3bc8, 0x37b7, 0x3a78, 0x3a5c, 0x3a6e, 0x2f67, 0x34e0, 0x33ec, +0x3746, 0x3b19, 0x36c5, 0x3294, 0x3b64, 0x318c, 0x349a, 0x35cb, 0x3298, 0x3aed, 0x387b, 0x3526, 0x2bb8, 0x3a73, 0x388f, 0x3399, 0x3b48, 0x395e, 0x35ad, 0x3aaf, 0x35fe, 0x2daf, 0x3560, 0x373c, 0x3b71, 0x3b24, 0x2e17, 0x39c2, 0x3a7b, 0x3914, 0x36ca, 0x3a4c, 0x2d0e, 0x3927, 0x3582, 0x3578, 0x321e, 0x2a26, 0x39e0, 0x3755, 0x3894, 0x388d, 0x3a1e, 0x39d1, 0x3972, 0x363d, 0x38f3, 0x3947, +0x2ac7, 0x39a1, 0x351b, 0x378b, 0x3a3e, 0x3ba9, 0x3bf8, 0x3559, 0x3961, 0x3b07, 0x21bb, 0x3bff, 0x3b00, 0x2dc7, 0x350e, 0x331c, 0x3696, 0x3b67, 0x3ad3, 0x3052, 0x3993, 0x33de, 0x3ac1, 0x3b5d, 0x3b19, 0x3419, 0x31ed, 0x3736, 0x3856, 0x3699, 0x3b41, 0x3163, 0x3a60, 0x3985, 0x2fa1, 0x3a61, 0x38e2, 0x2d73, 0x35a4, 0x3771, 0x3a6f, 0x2b6c, 0x3a5b, 0x3b2d, 0x391f, 0x31ad, 0x3abd, 0x35f1, +0x2b56, 0x371d, 0x3092, 0x383a, 0x3845, 0x3805, 0x3931, 0x364f, 0x39be, 0x3bc2, 0x3b10, 0x3233, 0x3a78, 0x3abe, 0x3904, 0x383b, 0x302c, 0x388a, 0x30d2, 0x374d, 0x361b, 0x39c1, 0x356b, 0x2e92, 0x39e2, 0x2d42, 0x3260, 0x3ad1, 0x38e1, 0x3a83, 0x3b87, 0x39fd, 0x34ac, 0x38f0, 0x2eb3, 0x3bcf, 0x328a, 0x1f8d, 0x3ab4, 0x3835, 0x2933, 0x38c0, 0x3a69, 0x3a21, 0x39a6, 0x3796, 0x2ccf, 0x38fa, +0x38d6, 0x3bed, 0x385e, 0x392b, 0x3888, 0x3a71, 0x3430, 0x2f5f, 0x34bb, 0x3a19, 0x330b, 0x35e0, 0x32af, 0x3367, 0x34bb, 0x3ab7, 0x3844, 0x38f3, 0x3a7d, 0x2019, 0x364f, 0x35b2, 0x3b5a, 0x2919, 0x3326, 0x396c, 0x2ce5, 0x2df7, 0x3bed, 0x3ae9, 0x3712, 0x3b3b, 0x3bbb, 0x3943, 0x335f, 0x3083, 0x3a46, 0x39f7, 0x390d, 0x34ed, 0x3219, 0x3502, 0x3b5f, 0x3a0c, 0x39ca, 0x3a52, 0x38cb, 0x39a2, +0x3b7c, 0x361c, 0x3332, 0x3941, 0x3a0a, 0x2e87, 0x39aa, 0x33a1, 0x2cb2, 0x2726, 0x317c, 0x36d3, 0x37d2, 0x3792, 0x369d, 0x3971, 0x3243, 0x3b78, 0x37e4, 0x38f2, 0x37c2, 0x3a84, 0x38fa, 0x1d50, 0x2ec4, 0x340e, 0x35df, 0x361a, 0x3b67, 0x3bb6, 0x3bbc, 0x39df, 0x3571, 0x3881, 0x3660, 0x363a, 0x3922, 0x3170, 0x35d4, 0x3be3, 0x35da, 0x357e, 0x2cb2, 0x34a7, 0x38df, 0x341d, 0x3961, 0x354a, +0x37b8, 0x34a5, 0x3ac5, 0x383a, 0x3116, 0x30a5, 0x2489, 0x39f8, 0x3b9e, 0x3b0d, 0x3593, 0x3303, 0x2e28, 0x395f, 0x317f, 0x37cb, 0x3878, 0x3b20, 0x3bcc, 0x3592, 0x3237, 0x3a65, 0x3959, 0x39de, 0x3b7d, 0x2fea, 0x353c, 0x2f58, 0x3b49, 0x35df, 0x3bda, 0x3718, 0x3429, 0x3497, 0x3bad, 0x3623, 0x3b67, 0x3b2a, 0x2bf1, 0x3ac8, 0x35e2, 0x3887, 0x2ee7, 0x39d6, 0x2c31, 0x35ba, 0x3658, 0x39a6, +0x3b07, 0x386c, 0x3415, 0x3a85, 0x3911, 0x30df, 0x3b20, 0x38bd, 0x392a, 0x352c, 0x3558, 0x2486, 0x2f62, 0x3a99, 0x38f5, 0x2dfc, 0x38f9, 0x3bbb, 0x3be2, 0x34b1, 0x3b6e, 0x2cf2, 0x3a61, 0x25f9, 0x3024, 0x3b46, 0x3332, 0x2385, 0x3017, 0x1a5f, 0x39f7, 0x365e, 0x33f7, 0x3478, 0x28da, 0x3808, 0x3b4b, 0x2610, 0x30fd, 0x392c, 0x37aa, 0x361e, 0x2d9e, 0x3287, 0x34cd, 0x376f, 0x356e, 0x3b74, +0x3acb, 0x395f, 0x3974, 0x3179, 0x3b19, 0x385d, 0x31c1, 0x3bd8, 0x365a, 0x375f, 0x383f, 0x3a31, 0x31c2, 0x3bc0, 0x39d7, 0x3a6a, 0x3766, 0x3841, 0x3a91, 0x3b0a, 0x2c17, 0x3a75, 0x3988, 0x378f, 0x3871, 0x3ada, 0x360c, 0x3136, 0x38f9, 0x3b55, 0x2c2b, 0x368d, 0x3940, 0x3783, 0x38ed, 0x38d0, 0x377c, 0x3b27, 0x39f3, 0x3afc, 0x3ad7, 0x2e41, 0x3ae4, 0x37a7, 0x36c3, 0x2ab0, 0x27f6, 0x3b55, +0x358f, 0x3ad7, 0x2b72, 0x3a7f, 0x205b, 0x37f1, 0x34c8, 0x2f69, 0x3356, 0x3732, 0x3194, 0x32ce, 0x38ad, 0x2c9b, 0x344c, 0x3aaf, 0x38f5, 0x39f3, 0x3428, 0x3276, 0x389c, 0x3a37, 0x3bbd, 0x34ab, 0x3910, 0x38b4, 0x37b5, 0x28d8, 0x378f, 0x3796, 0x3931, 0x38f9, 0x3a06, 0x3848, 0x3a15, 0x370e, 0x33da, 0x389a, 0x36fd, 0x3a76, 0x37f4, 0x22f8, 0x3b5a, 0x39ac, 0x3b8e, 0x37f7, 0x3918, 0x365b, +0x39d3, 0x3402, 0x325b, 0x3a97, 0x3253, 0x3915, 0x3a5e, 0x331f, 0x3954, 0x34e7, 0x3548, 0x3562, 0x2611, 0x3a97, 0x3a02, 0x33e5, 0x31a0, 0x3495, 0x3b34, 0x3948, 0x39b3, 0x37a6, 0x366a, 0x3bf2, 0x3932, 0x37d3, 0x2c6f, 0x39d2, 0x367f, 0x237b, 0x384d, 0x2f93, 0x3b84, 0x3770, 0x3997, 0x3b31, 0x3959, 0x3bd1, 0x2e11, 0x33ba, 0x2fd6, 0x38a6, 0x37ef, 0x38a9, 0x3bef, 0x3b98, 0x3b80, 0x3921, +0x3ac9, 0x3b94, 0x2da8, 0x39b1, 0x3096, 0x35b1, 0x39a8, 0x3abc, 0x3b01, 0x36dc, 0x3bd2, 0x39fa, 0x3441, 0x2b98, 0x3628, 0x3933, 0x323d, 0x386a, 0x330d, 0x38d4, 0x327a, 0x3581, 0x351e, 0x39ea, 0x3709, 0x39c9, 0x39ce, 0x3749, 0x392a, 0x3bbd, 0x3bf6, 0x3a92, 0x38b8, 0x39b7, 0x2e49, 0x3523, 0x35ea, 0x350c, 0x39f7, 0x2fe2, 0x3a5e, 0x3901, 0x3bcc, 0x1da2, 0x3807, 0x3a7b, 0x3ab7, 0x3095, +0x380f, 0x3bce, 0x3aa2, 0x3bcd, 0x3887, 0x2f27, 0x3999, 0x3a35, 0x3884, 0x29bf, 0x3aed, 0x32ec, 0x3831, 0x351b, 0x386e, 0x38cc, 0x35e8, 0x3b73, 0x37ee, 0x36f3, 0x32de, 0x3a8e, 0x3a7f, 0x37b2, 0x39fb, 0x26f9, 0x31c1, 0x3a69, 0x3aa1, 0x2e39, 0x186f, 0x39ca, 0x2d4c, 0x35dd, 0x2d94, 0x39df, 0x3a3f, 0x2fad, 0x2850, 0x3630, 0x3470, 0x3580, 0x3b38, 0x3639, 0x385a, 0x3778, 0x3843, 0x3bbb, +0x336e, 0x350e, 0x30a3, 0x3b56, 0x3b24, 0x3859, 0x3090, 0x398d, 0x3afd, 0x33bd, 0x3a92, 0x393e, 0x39cc, 0x2711, 0x3bf0, 0x38c7, 0x2f96, 0x3a3d, 0x3a9a, 0x3843, 0x3940, 0x33c8, 0x35c0, 0x2f6c, 0x37e3, 0x3b04, 0x3aa1, 0x3810, 0x3b66, 0x142f, 0x3b9d, 0x368f, 0x3b90, 0x3550, 0x3b2a, 0x2747, 0x38f8, 0x3a55, 0x386c, 0xd14, 0x36eb, 0x341e, 0x3b4f, 0x2bca, 0x2c8a, 0x3664, 0x3829, 0x2ed0, +0x388c, 0x388a, 0x3481, 0x39f6, 0x3287, 0x38da, 0x394d, 0x3ae5, 0x3811, 0x21e1, 0x2d3a, 0x217d, 0x3b63, 0x34af, 0x38e5, 0x3870, 0x34b9, 0x38e3, 0x358e, 0x39ea, 0x26e8, 0x3984, 0x382c, 0x3b28, 0x37b4, 0x360b, 0x3740, 0x2c22, 0x3960, 0x39c5, 0x37f7, 0x249d, 0x391b, 0x3765, 0x2c22, 0x3942, 0x3ab8, 0x2b4a, 0x1da1, 0x3be5, 0x3010, 0x3542, 0x3aac, 0x3af5, 0x36b2, 0x2698, 0x34fb, 0x3a9d, +0x3b9d, 0x3bbb, 0x2378, 0x3b83, 0x3b93, 0x304e, 0x2b45, 0x378c, 0x37c1, 0x3ade, 0x38e3, 0x37d2, 0x3ba1, 0x3b3e, 0x362c, 0x3bcd, 0x3a02, 0x2723, 0x287c, 0x3bdd, 0x3b13, 0x3b43, 0x3b2a, 0x3a87, 0x35dd, 0x2c4c, 0x379c, 0x37af, 0x3b2f, 0x37fb, 0x34e7, 0x3207, 0x39a5, 0x381d, 0x39ef, 0x3652, 0x37aa, 0x3a07, 0x3bd2, 0x3bcb, 0x38cc, 0x38b6, 0x27d8, 0x3a0c, 0x2fec, 0x3847, 0x2fa0, 0x3529, +0x35ec, 0x3b54, 0x3a7a, 0x3bba, 0x396b, 0x32de, 0x375b, 0x37b8, 0x28c3, 0x3943, 0x2dff, 0x2c42, 0x36f4, 0x3637, 0x3115, 0x3a45, 0x3ba4, 0x3af8, 0x281c, 0x3ad8, 0x3b4c, 0x388a, 0x39f5, 0x308e, 0x3ab9, 0x3ab6, 0x2fe0, 0x36f8, 0x3bba, 0x29a5, 0x3752, 0x39f8, 0x33cb, 0x3b35, 0x356a, 0x3339, 0x3bb9, 0x3bd9, 0x3818, 0x3bbf, 0x3a13, 0x3551, 0x3975, 0x2709, 0x3af7, 0x3459, 0x2bbc, 0x36b6, +0x3b29, 0x2d13, 0x3999, 0x3b0f, 0x39cb, 0x3ae9, 0x3413, 0x38ab, 0x3a6a, 0x374e, 0x33b8, 0x3a15, 0x3618, 0x2d46, 0x330b, 0x3a3b, 0x3a6b, 0x3a90, 0x2ef4, 0x3bff, 0x2dd7, 0x3887, 0x360b, 0x382c, 0x375e, 0x32f0, 0x38d4, 0x3aa5, 0x36aa, 0x37af, 0x22fd, 0x3725, 0x3b3f, 0x37a7, 0x3452, 0x1c44, 0x35af, 0x3670, 0x3bfe, 0x27be, 0x380b, 0x3828, 0x3a88, 0x388e, 0x3571, 0x3b6c, 0x3821, 0x3a57, +0x3588, 0x2e21, 0x2ca3, 0x39d1, 0x3a56, 0x38d4, 0x39d6, 0x352b, 0x38f2, 0x396b, 0x3a8d, 0x2ccf, 0x3920, 0x390f, 0x3933, 0x2aa9, 0x3b6a, 0x3991, 0x389f, 0x3974, 0x2d2c, 0x3b59, 0x31b7, 0x3601, 0x38b8, 0x35ef, 0x3864, 0x3a43, 0x38d6, 0x3bc5, 0x39d7, 0x3740, 0x340b, 0x3630, 0x34f1, 0x3b1a, 0x3a16, 0x36fa, 0x38fe, 0x3980, 0x3929, 0x3b41, 0x3bf4, 0x2e4a, 0x3ac1, 0x30a3, 0x35a2, 0x3bee, +0x3a86, 0x1850, 0x35fb, 0x38e1, 0x2971, 0x368e, 0x3590, 0x38cb, 0x2ba6, 0x3b2b, 0x38d6, 0x386a, 0x30a2, 0x3262, 0x335b, 0x3571, 0x3a39, 0x3bf7, 0x2c12, 0x3abd, 0x391d, 0x38c5, 0x3578, 0x3a6c, 0x2dcd, 0x3818, 0x34b4, 0x3848, 0x2fa9, 0x3b24, 0x38d5, 0x3a7f, 0x31ec, 0x31a9, 0x3ab6, 0x345a, 0x3a71, 0x395c, 0x3bfd, 0x3be8, 0x3b5d, 0x325b, 0x3914, 0x39cf, 0x39c3, 0x3518, 0x38b7, 0x3500, +0x3a47, 0x3436, 0x382f, 0x37ae, 0x386b, 0x371b, 0x3a89, 0x3837, 0x379d, 0x352f, 0x3911, 0x3b1f, 0x3ba2, 0x39a2, 0x30d5, 0x2f54, 0x3a40, 0x398b, 0x188d, 0x2439, 0x2816, 0x3886, 0x3b4e, 0x3bac, 0x21a1, 0x379c, 0x3b9d, 0x3a9e, 0x3a29, 0x3a12, 0x396c, 0x39ef, 0x37e2, 0x29f9, 0x3a76, 0x38a1, 0x3a84, 0x357c, 0x3a66, 0x2edc, 0x2eb4, 0x3a98, 0x34b4, 0x3653, 0x2b4c, 0x281c, 0x3af1, 0x3652, +0x39d9, 0x3b52, 0x3976, 0x3005, 0x33ec, 0x3960, 0x38e9, 0x35e0, 0x3790, 0x3b8c, 0x3346, 0x3722, 0x35fc, 0x333b, 0x3242, 0x3a42, 0x3865, 0x39d9, 0x38bb, 0x3930, 0x362a, 0x341b, 0x3973, 0x3ac8, 0x3913, 0x2c64, 0x3808, 0x384c, 0x393c, 0x3b7d, 0x3862, 0x3703, 0x2f4e, 0x352b, 0x37f9, 0x345c, 0x3a97, 0x2ee3, 0x300c, 0x372d, 0x3a61, 0x2cf1, 0x3801, 0x377c, 0x316e, 0x382d, 0x3af3, 0x34c3 }; \ No newline at end of file diff --git a/hwpe/redmule/inc/y_2D.h b/hwpe/redmule/inc/y_2D.h index 9484a10..96721c4 100644 --- a/hwpe/redmule/inc/y_2D.h +++ b/hwpe/redmule/inc/y_2D.h @@ -1,27 +1,51 @@ /* Header file generated by RedMulE Golden Model */ -uint16_t y_inp_2D [32][32] = { -0x3150, 0x2dc1, 0x3033, 0x31f5, 0x3bb6, 0x3bff, 0x39f9, 0x3662, 0x3720, 0x351d, 0x384b, 0x3093, 0x3b9d, 0x35ad, 0x3695, 0x3466, 0x2300, 0x3445, 0x33ae, 0x3586, 0x38a3, 0x3bdb, 0x33a2, 0x379b, 0x3a0e, 0x38b0, 0x39ba, 0x379b, 0x39d3, 0x3a51, 0x3b30, 0x3794, -0x3b76, 0x3042, 0x38cc, 0x2dfc, 0x3b1a, 0x37fb, 0x38f7, 0x3824, 0x386f, 0x38c7, 0x36ee, 0x3a9c, 0x38d3, 0x2c67, 0x3a80, 0x2f30, 0x3328, 0x3721, 0x3790, 0x34e5, 0x3a6c, 0x3643, 0x3934, 0x3034, 0x38d4, 0x362e, 0x3b4b, 0x3408, 0x30c2, 0x370e, 0x3b31, 0x3b16, -0x3b6b, 0x39d4, 0x339c, 0x381e, 0x313e, 0x3671, 0x3ae2, 0x3479, 0x3940, 0x342d, 0x3925, 0x370a, 0x35d8, 0x2dad, 0x3888, 0x24b9, 0x375d, 0x34bd, 0x3243, 0x2ebb, 0x3970, 0x3a21, 0x3a07, 0x3877, 0x3888, 0x3569, 0x372d, 0x2ac1, 0x331e, 0x384d, 0x3996, 0x34a4, -0x35c1, 0x33a9, 0x21ed, 0x3a42, 0x388d, 0x34e4, 0x33c3, 0x34f9, 0x3a7b, 0x33fb, 0x2cdd, 0x3b0e, 0x333b, 0x3973, 0x34fc, 0x3771, 0x32ea, 0x2de4, 0x31a8, 0x3946, 0x3657, 0x3a4e, 0x36f6, 0x2829, 0x3ba2, 0x3bdc, 0x3bb3, 0x306c, 0x398d, 0x3a1f, 0x3991, 0x3846, -0x3547, 0x3292, 0x2e85, 0x31ed, 0x3979, 0x3a90, 0x28a4, 0x3bed, 0x36d8, 0x340e, 0x3b6a, 0x3ab6, 0x3824, 0x382b, 0x3ac3, 0x3811, 0x36d7, 0x3519, 0x3a92, 0x3a42, 0x29d1, 0x383a, 0x3a9b, 0x300e, 0x2cd3, 0x39cd, 0x3874, 0x3a07, 0x2eb1, 0x3b86, 0x3ad8, 0x3a5d, -0x3712, 0x284a, 0x38c1, 0x3bec, 0x39c0, 0x32cd, 0x3ad8, 0x3bce, 0x3817, 0x3896, 0x3aa7, 0x3870, 0x3996, 0x32cc, 0x3a4c, 0x3757, 0x3814, 0x3b65, 0x3acb, 0x376e, 0x34c0, 0x3609, 0x3bf0, 0x3b24, 0x3b29, 0x3848, 0x34b7, 0x398a, 0x220c, 0x3498, 0x3a8c, 0x3883, -0x38c4, 0x3af6, 0x3a42, 0x2dd6, 0x3147, 0x3717, 0x3a8e, 0x3af9, 0x3296, 0x38ef, 0x34fa, 0x3555, 0x3b29, 0x38de, 0x315e, 0x3773, 0x3b67, 0x3116, 0x38ec, 0x357c, 0x35d0, 0x2518, 0x3958, 0x2a03, 0x37d9, 0x3699, 0x3a1e, 0x3230, 0x3b13, 0x36d4, 0x3b2a, 0x39ad, -0x3b10, 0x351a, 0x3b97, 0x3326, 0x2b54, 0x3b7d, 0x386f, 0x373e, 0x37fa, 0x389b, 0x3b90, 0x3292, 0x3975, 0x38f3, 0x37f1, 0x3590, 0x3810, 0x2fd7, 0x3bf7, 0x3a5a, 0x3a1c, 0x34dd, 0x354c, 0x32f8, 0x3095, 0x321e, 0x39e0, 0x395c, 0x3717, 0x357f, 0x394a, 0x34b1, -0x3ba4, 0x380c, 0x3604, 0x2f50, 0x348d, 0x3828, 0x3a9f, 0x39ce, 0x32ca, 0x3906, 0x3ab2, 0x2ca5, 0x38c9, 0x362a, 0x34b2, 0x29dc, 0x3a36, 0x3052, 0x31b7, 0x3589, 0x387c, 0x3401, 0x3b22, 0x3ad6, 0x3ae8, 0x3238, 0x3494, 0x3502, 0x3717, 0x3a6c, 0x3229, 0x368c, -0x3056, 0x3a56, 0x3498, 0x39eb, 0x2864, 0x342d, 0x39e0, 0x34a1, 0x2b99, 0x3a04, 0x38ff, 0x328c, 0x34d9, 0x387d, 0x3a3c, 0x32e5, 0x39eb, 0x3984, 0x34dd, 0x38a7, 0x373f, 0x39b4, 0x3235, 0x2f58, 0x2f39, 0x3800, 0x3758, 0x3939, 0x39fc, 0x3a4b, 0x38bf, 0x30ee, -0x345e, 0x39c8, 0x3a6d, 0x3262, 0x3b81, 0x31dc, 0x3a15, 0x3bd0, 0x36af, 0x36de, 0x37d5, 0x39d7, 0x3ad3, 0x3ac1, 0x3109, 0x35ea, 0x31c6, 0x398d, 0x3987, 0x3a4a, 0x34d2, 0x2ed2, 0x35e6, 0x352c, 0x39eb, 0x3bd6, 0x3a5b, 0x39d1, 0x34aa, 0x3ade, 0x394b, 0x38a1, -0x2bed, 0x38de, 0x3811, 0x3813, 0x391a, 0x374b, 0x3829, 0x3725, 0x38f0, 0x3583, 0x3966, 0x3a7d, 0x375a, 0x38fe, 0x3696, 0x361c, 0x39a8, 0x35f0, 0x38e1, 0x3003, 0x3595, 0x316e, 0x3862, 0x3af8, 0x3af2, 0x34c8, 0x381d, 0x37d8, 0x3893, 0x3a9c, 0x3989, 0x308c, -0x30cc, 0x2538, 0x399d, 0x3919, 0x399e, 0x21cc, 0x38e9, 0x30f8, 0x3a20, 0x3b3c, 0x3990, 0x259c, 0x3143, 0x3080, 0x3967, 0x3afb, 0x3a1b, 0x3779, 0x2eeb, 0x39f3, 0x379a, 0x369c, 0x3985, 0x3a1b, 0x3ba6, 0x3a53, 0x28d5, 0x3881, 0x31d9, 0x3a34, 0x3bd9, 0x393a, -0x3601, 0x2c6e, 0x3636, 0x3298, 0x39bb, 0x3a08, 0x38db, 0x35ad, 0x3a09, 0x36a6, 0x3bc7, 0x3bac, 0x34ae, 0x3291, 0x290b, 0x3250, 0x2648, 0x333d, 0x2bf3, 0x34b1, 0x30e0, 0x351f, 0x3a74, 0x38dc, 0x3883, 0x2841, 0x35e1, 0x390d, 0x3a50, 0x3abd, 0x386d, 0x3bb7, -0x3b94, 0x36b7, 0x3a49, 0x332f, 0x3a1d, 0x354b, 0x3bab, 0x3346, 0x3417, 0x351e, 0x3b6d, 0x391a, 0x2db3, 0x3b1c, 0x3a4a, 0x37b7, 0x36cf, 0x3a56, 0x39c4, 0x3be9, 0x34f0, 0x39be, 0x3691, 0x1ba5, 0x3888, 0x3040, 0x3ae1, 0x3b9b, 0x398f, 0x3a49, 0x3a16, 0x38c0, -0x386c, 0x39ab, 0x37fa, 0x382c, 0x3a6f, 0x393f, 0x340d, 0x38ef, 0x39d1, 0x3845, 0x398f, 0x363e, 0x3687, 0x3052, 0x3a2b, 0x392c, 0x2f5c, 0x3412, 0x3a1f, 0x3b2f, 0x3bcc, 0x3a63, 0x3a89, 0x36e9, 0x3921, 0x3b80, 0x2dc0, 0x3a03, 0x3beb, 0x38d3, 0x36cb, 0x39a3, -0x3978, 0x3a88, 0x3ba4, 0x3561, 0x28c5, 0x33a0, 0x37be, 0x2c39, 0x30ee, 0x3782, 0x2c07, 0x354e, 0x3491, 0x3a92, 0x331a, 0x3b15, 0x32e1, 0x3839, 0x3afb, 0x36c2, 0x2fd0, 0x29ad, 0x3b2e, 0x39c1, 0x2a8c, 0x341a, 0x2f90, 0x395a, 0x3969, 0x37ea, 0x3a5c, 0x3b6d, -0x3971, 0x3a93, 0x304e, 0x3623, 0x3a22, 0x31ee, 0x29df, 0x2c93, 0x3a01, 0x3a62, 0x366c, 0x371d, 0x3af3, 0x2e08, 0x3ac0, 0x3642, 0x3a28, 0x368d, 0x2d3d, 0x36d9, 0x32c3, 0x373f, 0x36fe, 0x3487, 0x2c81, 0x3623, 0x3b59, 0x3a91, 0x350a, 0x34f4, 0x3b09, 0x2c25, -0x3b13, 0x325a, 0x379e, 0x3a7d, 0x34b1, 0x39d5, 0x2ba8, 0x322b, 0x3b5e, 0x37ab, 0x2e24, 0x3ba9, 0x3a3d, 0x34f7, 0x3ba1, 0x3877, 0x3071, 0x39fb, 0x3bbd, 0x3633, 0x3b36, 0x2daa, 0x3b9b, 0x3aa0, 0x395c, 0x3b8f, 0x38d5, 0x3ab0, 0x3a8f, 0x36c2, 0x3b1f, 0x3489, -0x2acc, 0x3845, 0x3715, 0x37d8, 0x3992, 0x3bff, 0x350e, 0x3ad7, 0x39b0, 0x35ac, 0x3287, 0x385f, 0x3bd4, 0x37a3, 0x3438, 0x39a5, 0x3bcf, 0x38c3, 0x34f6, 0x3ae3, 0x3b57, 0x39af, 0x35eb, 0x3bed, 0x34d4, 0x2a95, 0x3b13, 0x384e, 0x3a3b, 0x33da, 0x3bce, 0x3b99, -0x3559, 0x3335, 0x3a2e, 0x3123, 0x38db, 0x33d0, 0x3638, 0x3b17, 0x3a72, 0x3afc, 0x3936, 0x3838, 0x2b69, 0x3895, 0x3a1a, 0x3192, 0x39d5, 0x37a5, 0x2eb0, 0x2e8b, 0x329a, 0x3b90, 0x390a, 0x3a1e, 0x3847, 0x375d, 0x3873, 0x35e2, 0x3771, 0x30f5, 0x3231, 0x3bd7, -0x2bbc, 0x3ace, 0x31ad, 0x3a6b, 0x28a4, 0x3b48, 0x3ba3, 0x3a84, 0x3353, 0x39f6, 0x381f, 0x2dd6, 0x314c, 0x34af, 0x3929, 0x3921, 0x383b, 0x34b0, 0x3923, 0x32c9, 0x3ae7, 0x318f, 0x3480, 0x2ad8, 0x3042, 0x3a4c, 0x349d, 0x2c12, 0x3abb, 0x3a57, 0x3b0d, 0x3111, -0x3359, 0x3a84, 0x38f2, 0x368d, 0x2f4b, 0x3ba0, 0x395c, 0x3026, 0x3a15, 0x2a04, 0x326e, 0x3522, 0x31a2, 0x382f, 0x2ada, 0x3b7c, 0x2f80, 0x3af5, 0x2d35, 0x38fa, 0x39ab, 0x2c6d, 0x2e7a, 0x39f6, 0x31a4, 0x3a53, 0x358c, 0x3951, 0x3a4e, 0x3916, 0x2a3f, 0x3ae9, -0x3b03, 0x39f8, 0x39fe, 0x3a61, 0x39fb, 0x3704, 0x360d, 0x39a7, 0x37a9, 0x348f, 0x3a30, 0x3af5, 0x366f, 0x3b29, 0x3a6a, 0x33d5, 0x370a, 0x39cd, 0x3444, 0x3bea, 0x3b2b, 0x312e, 0x3b8e, 0x32cf, 0x3b79, 0x3302, 0x3bba, 0x3962, 0x3413, 0x37a1, 0x39e0, 0x3805 +uint16_t y_inp_2D [48][48] = { +0x2a2c, 0x303b, 0x3a3b, 0x37e1, 0x3aa7, 0x32fc, 0x35c2, 0x3b7f, 0x3a5f, 0x2b3e, 0x32eb, 0x37cd, 0x3864, 0x37f2, 0x3b49, 0x3701, 0x3919, 0x1c22, 0x3a1e, 0x3abe, 0x3b89, 0x2f84, 0x300f, 0x385a, 0x3309, 0x350a, 0x32ec, 0x3657, 0x2a10, 0x3aa7, 0x38f3, 0x3625, 0x3af7, 0x374a, 0x38a5, 0x378d, 0x3a3a, 0x387b, 0x37bc, 0x383a, 0x3019, 0x3419, 0x38a5, 0x3794, 0x3770, 0x3ad3, 0x31d5, 0x3b7c, +0x37d1, 0x3547, 0x376d, 0x3b0c, 0x3590, 0x355e, 0x3a64, 0x2742, 0x388b, 0x3b2d, 0x3b41, 0x3a58, 0x3ac0, 0x39d0, 0x2ecc, 0x2767, 0x3b8d, 0x36cd, 0x380a, 0x2c1c, 0x3274, 0x2f60, 0x3757, 0x39ee, 0x3b01, 0x3b5f, 0x3aba, 0x334d, 0x39ce, 0x37f5, 0x3a2f, 0x3be6, 0x337f, 0x3341, 0x3510, 0x39a7, 0x3abb, 0x3be6, 0x3aae, 0x3b01, 0x37bd, 0x3129, 0x36d9, 0x3478, 0x3530, 0x3807, 0x380b, 0x3b2c, +0x399d, 0x35bc, 0x3971, 0x3bb8, 0x2ec7, 0x3a89, 0x3b38, 0x3a88, 0x22a9, 0x33d5, 0x3a10, 0x361d, 0x3ae5, 0x3b13, 0x3a6d, 0x3b3c, 0x3bf3, 0x391d, 0x3a20, 0x3324, 0x394a, 0x30fc, 0x3348, 0x3925, 0x316f, 0x3b75, 0x34dc, 0x30c2, 0x3949, 0x35bd, 0x38ac, 0x2e88, 0x3b96, 0x38c0, 0x2f84, 0x3644, 0x31d2, 0x3b26, 0x3a1c, 0x31ba, 0x3b5c, 0x3181, 0x3a9f, 0x35ae, 0x3208, 0x397a, 0x35f0, 0x3689, +0x37fb, 0x3aba, 0x3a69, 0x373a, 0x392f, 0x3adb, 0x3167, 0x29b8, 0x3920, 0x34ac, 0x3758, 0x38bf, 0x3940, 0x3baf, 0x32ef, 0x3b98, 0x3b9f, 0x3b30, 0x384f, 0x3539, 0x3a26, 0x398f, 0x2230, 0x39d8, 0x395b, 0x3a3f, 0x2d89, 0x3b01, 0x3b8c, 0x3a30, 0x38b4, 0x30ab, 0x35ab, 0x3a7e, 0x3850, 0x3894, 0x3424, 0x39d3, 0x3a42, 0x39d0, 0x39a8, 0x36a9, 0x3b35, 0x2cdf, 0x3705, 0x3841, 0x3b79, 0x3b23, +0x2dd5, 0x3a67, 0x3178, 0x37a5, 0x3b5b, 0x3b5a, 0x2a68, 0x38c4, 0x3b23, 0x3943, 0x310c, 0x3261, 0x3889, 0x380c, 0x3626, 0x39ab, 0x3b7b, 0x3b53, 0x3a4a, 0x2f44, 0x3a74, 0x346b, 0x3481, 0x379b, 0x3bd0, 0x3a76, 0x3bca, 0x38b3, 0x3b1a, 0x3a84, 0x373f, 0x3a52, 0x3554, 0x3690, 0x3b66, 0x3a12, 0x3aa5, 0x3b45, 0x38c3, 0x396a, 0x2d50, 0x3978, 0x2442, 0x3ab9, 0x3818, 0x34b6, 0x34c0, 0x3a08, +0x38a4, 0x380c, 0x3b25, 0x363e, 0x2e86, 0x356f, 0x394f, 0x38e2, 0x27ab, 0x3b59, 0x2e61, 0x34ea, 0x38e6, 0x3673, 0x39a5, 0x3785, 0x2ebb, 0x3314, 0x367e, 0x34e4, 0x3884, 0x2fbf, 0x2f51, 0x3105, 0x3a29, 0x3aae, 0x3aea, 0x3977, 0x3b46, 0x3b29, 0x3ab7, 0x374c, 0x2e01, 0x3935, 0x3965, 0x31ed, 0x380e, 0x340d, 0x3615, 0x2a10, 0x23ab, 0x3990, 0x2c3a, 0x3723, 0x3001, 0x25e3, 0x3649, 0x2491, +0x39f6, 0x3a32, 0x3171, 0x38bc, 0x390d, 0x39ec, 0x3621, 0x3511, 0x39c8, 0x2c9b, 0x24b6, 0x38fb, 0x201c, 0x3367, 0x3b6c, 0x3ada, 0x37ce, 0x368e, 0x3909, 0x32f0, 0x3180, 0x3aca, 0x39e8, 0x3a6f, 0x2f65, 0x3b78, 0x3b6f, 0x378c, 0x2938, 0x393a, 0x319f, 0x38aa, 0x386c, 0x3b7b, 0x3b7d, 0x387a, 0x3bdd, 0x3af5, 0x2e74, 0x2c3d, 0x3add, 0x2ef4, 0x3a16, 0x2d55, 0x387d, 0x35ce, 0x2753, 0x3b55, +0x3b84, 0x2ebf, 0x335a, 0x391b, 0x3870, 0x3a8e, 0x39a2, 0x3397, 0x3751, 0x3a3e, 0x3920, 0x379b, 0x31a4, 0x3b01, 0x3ad6, 0x3a94, 0x3825, 0x3840, 0x3690, 0x37e9, 0x3bf0, 0x3bb3, 0x39a6, 0x3bf2, 0x363b, 0x39e1, 0x306c, 0x36de, 0x3b80, 0x3b52, 0x3769, 0x389d, 0x3598, 0x36b1, 0x3a0c, 0x3647, 0x3587, 0x3884, 0x3a4d, 0x29ad, 0x382a, 0x35cb, 0x35d3, 0x374b, 0x374c, 0x3b35, 0x3a58, 0x39db, +0x3951, 0x38d5, 0x3ad1, 0x3b01, 0x3714, 0x3a8b, 0x3a1d, 0x360f, 0x2e2d, 0x3990, 0x35d5, 0x3b98, 0x3122, 0x2efe, 0x33bd, 0x3b8c, 0x37b8, 0x3a51, 0x38d8, 0x39ac, 0x3691, 0x31b6, 0x3557, 0x2cf7, 0x3a32, 0x3aa3, 0x35b8, 0x385b, 0x3a32, 0x3688, 0x367a, 0x30d6, 0x2f4b, 0x3ba0, 0x3121, 0x30af, 0x375b, 0x33f0, 0x3854, 0x3b73, 0x3a16, 0x3444, 0x393b, 0x393b, 0x30f4, 0x2d8b, 0x38a1, 0x2b29, +0x3679, 0x3966, 0x37a1, 0x3832, 0x39bc, 0x356b, 0x2d9a, 0x3a05, 0x3b20, 0x38e9, 0x38c2, 0x38c2, 0x3a76, 0x3523, 0x3812, 0x388d, 0x37f4, 0x3b3b, 0x3ab7, 0x3366, 0x39a9, 0x3bb3, 0x3ac8, 0x3ad9, 0x3994, 0x343f, 0x3669, 0x2e50, 0x3b6c, 0x3873, 0x3b13, 0x3acd, 0x2bf7, 0x3b9c, 0x34aa, 0x385b, 0x2dae, 0x2aac, 0x2882, 0x2d37, 0x3bd9, 0x32f9, 0x36e2, 0x3315, 0x395c, 0x3ace, 0x353c, 0x3b25, +0x3b1e, 0x3687, 0x2fee, 0x3917, 0x3027, 0x3238, 0x39ce, 0x323d, 0x3498, 0x3be7, 0x36c5, 0x36e0, 0x38b3, 0x3420, 0x36ed, 0x3353, 0x30cc, 0x3ab7, 0x323b, 0x3a05, 0x27f2, 0x3177, 0x3552, 0x3897, 0x2f99, 0x39d3, 0x31a0, 0x3634, 0x2d52, 0x2915, 0x33c4, 0x1585, 0x3bf7, 0x3ad6, 0x380d, 0x3673, 0x29d3, 0x3800, 0x39fa, 0x391c, 0x3263, 0x3025, 0x3995, 0x373e, 0x2941, 0x35b7, 0x3b45, 0x3a0f, +0x327c, 0x3172, 0x38aa, 0x298f, 0x3a13, 0x3b4a, 0x2b09, 0x3816, 0x3567, 0x390c, 0x3885, 0x38e9, 0x34f9, 0x39ca, 0x35f6, 0x3a74, 0x35f3, 0x1e43, 0x38d4, 0x26fc, 0x2d8a, 0x350f, 0x3456, 0x3862, 0x389c, 0x382a, 0x3756, 0x3941, 0x3ba5, 0x37fb, 0x39d9, 0x382d, 0x3ba3, 0x3b3c, 0x3619, 0x3228, 0x3a5b, 0x3753, 0x38f6, 0x3840, 0x2870, 0x3149, 0x39a4, 0x3ba1, 0x3b35, 0x3afa, 0x3248, 0x3a32, +0x34d3, 0x35a7, 0x34d4, 0x3b27, 0x3a3b, 0x3769, 0x380a, 0x34e9, 0x2434, 0x3452, 0x3a30, 0x34e8, 0x27e1, 0x39e2, 0x395f, 0x38e9, 0x342b, 0x3954, 0x3071, 0x38a3, 0x3153, 0x3974, 0x36d5, 0x37f9, 0x35c5, 0x3870, 0x3ba9, 0x3a57, 0x36c9, 0x3ab2, 0x2a4c, 0x3887, 0x339c, 0x3bc1, 0x3a83, 0x326c, 0x373a, 0x2c72, 0x2b29, 0x3a2d, 0x393a, 0x2fcb, 0x3800, 0x394f, 0x38c6, 0x3955, 0x3910, 0x378a, +0x3acd, 0x3a17, 0x355f, 0x39f4, 0x36e7, 0x3ae9, 0x3546, 0x261c, 0x3bec, 0x3472, 0x34cb, 0x3af4, 0x3712, 0x3a84, 0x368e, 0x3b1a, 0x2654, 0x3ace, 0x3a72, 0x39ad, 0x3858, 0x37c9, 0x3734, 0x3ba6, 0x3b15, 0x390d, 0x354f, 0x1b54, 0x3b79, 0x2ba6, 0x35dd, 0x3b25, 0x3bfe, 0x3405, 0x363d, 0x2f80, 0x39a7, 0x3400, 0x37ec, 0x2c2c, 0x3b6e, 0x3acc, 0x3b03, 0x39af, 0x31e7, 0x3958, 0x3480, 0x3977, +0x34e7, 0x35d1, 0x35bc, 0x38d0, 0x3b9e, 0x3ae4, 0x3865, 0x1e86, 0x32e5, 0x28d7, 0x3ae5, 0x3a0a, 0x3678, 0x3a1c, 0x3856, 0x280c, 0x3a5a, 0x30e7, 0x3b96, 0x3b1d, 0x3826, 0x2eb3, 0x3a15, 0x301f, 0x3a08, 0x340f, 0x3a8d, 0x1cb3, 0x2a89, 0x38ea, 0x3ae1, 0x384d, 0x3b70, 0x3982, 0x3077, 0x3af2, 0x37a9, 0x361b, 0x3335, 0x35db, 0x3701, 0x3a0a, 0x3aec, 0x39bb, 0x3bf6, 0x3b22, 0x3793, 0x3aef, +0x3a88, 0x3834, 0x33d4, 0x38ed, 0x2e48, 0x3291, 0x3b11, 0x3775, 0x36bc, 0x36d6, 0x314e, 0x3266, 0x3326, 0x2fe6, 0x386f, 0x3bdf, 0x3a3c, 0x2e72, 0x3238, 0x3a0e, 0x3812, 0x332b, 0x3594, 0x368b, 0x38f6, 0x381d, 0x3b00, 0x1c2d, 0x3abf, 0x3ac4, 0x2ced, 0x3128, 0x39e9, 0x2d97, 0x247d, 0x3a10, 0x2d03, 0x3a5a, 0x3839, 0x3985, 0x2d87, 0x3645, 0x387e, 0x34be, 0x29e6, 0x395c, 0x2ce6, 0x395f, +0x3a6c, 0x3545, 0x3b3f, 0x3ad1, 0x3b94, 0x3b9a, 0x2d92, 0x2e46, 0x3866, 0x3994, 0x3a0d, 0x341d, 0x3199, 0x30e4, 0x2d19, 0x34a9, 0x36d5, 0x3916, 0x385c, 0x3b9d, 0x3660, 0x39a5, 0x3091, 0x38d1, 0x3a0d, 0x34d5, 0x3b90, 0x3707, 0x32ae, 0x39e1, 0x382d, 0x2875, 0x2d57, 0x3484, 0x384e, 0x1cb2, 0x2e3d, 0x3575, 0x30f3, 0x3ac7, 0x37c0, 0x3a1c, 0x355a, 0x34d8, 0x38ac, 0x3839, 0x3abc, 0x3517, +0x2d7b, 0x3b2b, 0x3a3f, 0x3962, 0x3bcd, 0x3a92, 0x3983, 0x3b99, 0x3446, 0x37db, 0x3a51, 0x385c, 0x3179, 0x2942, 0x396b, 0x3855, 0x3872, 0x3a2b, 0x3b91, 0x35a7, 0x3a30, 0x2f3d, 0x39c2, 0x352a, 0x301a, 0x362b, 0x395a, 0x28fe, 0x2e22, 0x2b81, 0x3b3d, 0x3680, 0x3061, 0x3b29, 0x3a5a, 0x3549, 0x3bb2, 0x3bc9, 0x352f, 0x2e0b, 0x3220, 0x3637, 0x3b8c, 0x38c5, 0x3af1, 0x33b7, 0x3b6c, 0x389b, +0x3763, 0x23a5, 0x3461, 0x3a80, 0x35c7, 0x3200, 0x3811, 0x39e4, 0x356b, 0x39d5, 0x3974, 0x38b0, 0x3b00, 0x3bc7, 0x3a01, 0x3bf3, 0x3268, 0x3971, 0x3bbe, 0x37cc, 0x3607, 0x3327, 0x3995, 0x2bc0, 0x345f, 0x2ad7, 0x341f, 0x322a, 0x380d, 0x2b0f, 0x34b6, 0x38df, 0x382d, 0x35ca, 0x34c4, 0x3bce, 0x3a53, 0x36cc, 0x38ff, 0x38fd, 0x2c82, 0x3899, 0x3895, 0x3871, 0x3bd1, 0x3543, 0x3a44, 0x349b, +0x3512, 0x37a4, 0x3429, 0x399d, 0x37a6, 0x2afb, 0x37a4, 0x3832, 0x39f0, 0x38e0, 0x3266, 0x27b9, 0x3814, 0x327b, 0x3a8c, 0x31f9, 0x346d, 0x34c9, 0x3b8a, 0x359d, 0x39b2, 0x39d6, 0x3602, 0x2df2, 0x3b65, 0x2fe6, 0x3ad5, 0x3600, 0x3b32, 0x3b92, 0x34a1, 0x375b, 0x38f6, 0x3aab, 0x38f2, 0x3561, 0x367c, 0x3995, 0x39c0, 0x2ff3, 0x31f8, 0x3413, 0x3ba4, 0x2e61, 0x3b6f, 0x2956, 0x3af0, 0x35fa, +0x2a90, 0x33f4, 0x3885, 0x3803, 0x37c3, 0x3499, 0x38f4, 0x36a3, 0x3984, 0x3715, 0x3a15, 0x3a7d, 0x3885, 0x3a5e, 0x3921, 0x3af3, 0x397a, 0x380c, 0x381b, 0x3be7, 0x395e, 0x357d, 0x36bd, 0x3b7c, 0x34a2, 0x333c, 0x3be1, 0x3431, 0x3051, 0x38ec, 0x3a6d, 0x3aa9, 0x399a, 0x2b03, 0x394b, 0x3823, 0x3bc3, 0x388f, 0x3815, 0x3a7c, 0x3a85, 0x32fe, 0x3bbb, 0x38fd, 0x3b92, 0x3472, 0x367d, 0x32b2, +0x2c09, 0x3236, 0x36be, 0x3007, 0x30c2, 0x3666, 0x3b42, 0x3780, 0x3a9d, 0x314a, 0x3933, 0x3b0e, 0x3a76, 0x3ab1, 0x3acc, 0x35c7, 0x2834, 0x347e, 0x393e, 0x36fd, 0x3ac8, 0x3419, 0x3977, 0x3a68, 0x38aa, 0x2f27, 0x30a5, 0x3bef, 0x3bb0, 0x3629, 0x35ea, 0x3647, 0x39dd, 0x33ef, 0x3a4c, 0x33ba, 0x37c6, 0x3a33, 0x3824, 0x30c5, 0x3b25, 0x332d, 0x363f, 0x394d, 0x3289, 0x388e, 0x3978, 0x396b, +0x3647, 0x3876, 0x3364, 0x3b51, 0x3a09, 0x385c, 0x38cb, 0x3bb1, 0x3b8e, 0x3172, 0x3235, 0x3873, 0x3701, 0x2d2f, 0x3610, 0x35a8, 0x30da, 0x28c2, 0x3b5f, 0x39ef, 0x326b, 0x2b05, 0x378a, 0x3491, 0x3a86, 0x3a16, 0x3ae6, 0x3601, 0x3a6d, 0x394e, 0x389c, 0x3b19, 0x3af7, 0x36ee, 0x2bc3, 0x3a71, 0x3751, 0x3577, 0x34a3, 0x37da, 0x28ae, 0x2e26, 0x37d1, 0x3872, 0x3941, 0x31dd, 0x2b26, 0x3152, +0x3a0d, 0x33c1, 0x3572, 0x326b, 0x34a6, 0x373a, 0x39cc, 0x39d8, 0x39fd, 0x3af7, 0x390a, 0x3434, 0x34c6, 0x364a, 0x3417, 0x2962, 0x30dd, 0x38d1, 0x3a99, 0x3762, 0x2e6a, 0x392d, 0x3983, 0x3aa1, 0x322f, 0x3b7e, 0x2e09, 0x341d, 0x3412, 0x3995, 0x355f, 0x30a1, 0x3641, 0x35e6, 0x35d8, 0x38b9, 0x3920, 0x3be6, 0x3836, 0x35f2, 0x2af0, 0x3543, 0x34a2, 0x3a2a, 0x3b4a, 0x2c71, 0x3191, 0x39e5, +0x3812, 0x3841, 0x3aaa, 0x38d0, 0x2e84, 0x3106, 0x3649, 0x3927, 0x320a, 0x3bd9, 0x3478, 0x3a16, 0x39d2, 0x36e8, 0x35c3, 0x2cd9, 0x2fe8, 0x393f, 0x3406, 0x317e, 0x3abe, 0x36ec, 0x3a6d, 0x3a7d, 0x30bf, 0x2cd3, 0x363b, 0x3163, 0x36ae, 0x387a, 0x3a1e, 0x3013, 0x2cc7, 0x3845, 0x3587, 0x3a74, 0x3939, 0x35bc, 0x378e, 0x38ef, 0x39df, 0x374e, 0x3b2c, 0x388c, 0x37b0, 0x3421, 0x3837, 0x372a, +0x3b1c, 0x3509, 0x36ae, 0x24b6, 0x39eb, 0x34fe, 0x3b1e, 0x3925, 0x3407, 0x3a93, 0x3727, 0x37da, 0x3648, 0x3ac5, 0x3095, 0x25c6, 0x324d, 0x34cb, 0x2ee4, 0x3516, 0x35c6, 0x3744, 0x3314, 0x387e, 0x3bb6, 0x3344, 0x373b, 0x39a2, 0x355d, 0x38a3, 0x34b9, 0x3590, 0x3907, 0x39bb, 0x3908, 0x38fc, 0x2c76, 0x2ca0, 0x2a80, 0x37fb, 0x264c, 0x36e0, 0x3a2a, 0x3813, 0x3a15, 0x3bfb, 0x357f, 0x37a1, +0x3b41, 0x393b, 0x3ae1, 0x35f4, 0x39dc, 0x3ad5, 0x376c, 0x32bc, 0x2e82, 0x3ab0, 0x379d, 0x3a93, 0x3665, 0x38dd, 0x2afc, 0x3367, 0x3873, 0x3baa, 0x35d5, 0x3823, 0x3add, 0x37f4, 0x38aa, 0x357b, 0x3a4f, 0x3aab, 0x2832, 0x3667, 0x3823, 0x3106, 0x38e6, 0x3245, 0x3051, 0x30a3, 0x2db8, 0x39ac, 0x31e7, 0x325e, 0x3410, 0x39eb, 0x369c, 0x3aa4, 0x35b2, 0x3322, 0x308c, 0x2f88, 0x3b4b, 0x34fe, +0x3b32, 0x3235, 0x3b8b, 0x332b, 0x3001, 0x2067, 0x361e, 0x397b, 0x378b, 0x3ad9, 0x3236, 0x34b0, 0x387c, 0x37de, 0x38f2, 0x3861, 0x27fd, 0x3a01, 0x3992, 0x2d5c, 0x313f, 0x3a05, 0x3bfe, 0x34b1, 0x3bfb, 0x39f4, 0x3747, 0x3b61, 0x3bb1, 0x3145, 0x3446, 0x34e6, 0x3a96, 0x2d1d, 0x3bd7, 0x2c12, 0x3161, 0x3790, 0x3bea, 0x3518, 0x36a2, 0x3b7c, 0x3825, 0x325f, 0x3997, 0x38e8, 0x37c4, 0x312a, +0x3a69, 0x3177, 0x35f7, 0x3381, 0x32c4, 0x38bb, 0x3677, 0x30bd, 0x38da, 0x325a, 0x3944, 0x3913, 0x3962, 0x308d, 0x37ad, 0x3834, 0x385b, 0x3492, 0x3574, 0x38a5, 0x30e2, 0x35c1, 0x3975, 0x37ad, 0x3784, 0x33ea, 0x39ff, 0x328e, 0x3be0, 0x3b34, 0x3460, 0x3ab7, 0x3a60, 0x3477, 0x3938, 0x3342, 0x34cc, 0x31d0, 0x2c08, 0x3aab, 0x3bb2, 0x3ba5, 0x396b, 0x3ae2, 0x37af, 0x334a, 0x2866, 0x3836, +0x3528, 0x362b, 0x2b89, 0x2946, 0x3812, 0x2a40, 0x3b9c, 0x36a8, 0x2d19, 0x3b81, 0x3a64, 0x305b, 0x3143, 0x37b0, 0x35a7, 0x3579, 0x313e, 0x3b5f, 0x35f7, 0x385c, 0x3bbd, 0x2b09, 0x37c1, 0x3833, 0x30b6, 0x1dbb, 0x36f3, 0x3785, 0x351d, 0x1d0d, 0x398c, 0x3919, 0x312d, 0x2af8, 0x3ae6, 0x3ba3, 0x2821, 0x1bb5, 0x37d2, 0x3344, 0x3b88, 0x38e8, 0x333d, 0x37cb, 0x3962, 0x3100, 0x3260, 0x3aeb, +0x39d6, 0x36e1, 0x393a, 0x3a38, 0x383c, 0x35c6, 0x3acd, 0x38d9, 0x35f8, 0x377a, 0x3af7, 0x3903, 0x2148, 0x3851, 0x2a7b, 0x3452, 0x3425, 0x2fd4, 0x3751, 0x335c, 0x366e, 0x3a2b, 0x30c1, 0x317a, 0x355a, 0x2d45, 0x390c, 0x3aa9, 0x38f4, 0x3007, 0x3924, 0x381d, 0x378c, 0x3541, 0x3a37, 0x38d0, 0x351d, 0x37ad, 0x3abb, 0x3989, 0x3716, 0x33ed, 0x396a, 0x3b60, 0x3ba0, 0x3818, 0x3b94, 0x35a7, +0x369a, 0x3755, 0x3a5b, 0x3a1e, 0x35d3, 0x3a14, 0x1da4, 0x39f6, 0x3a81, 0x3ac3, 0x397d, 0x340b, 0x3aa7, 0x2b95, 0x3791, 0x1fa8, 0x2e38, 0x38e0, 0x3275, 0x3b9f, 0x3956, 0x2520, 0x3baf, 0x35c4, 0x3112, 0x3aee, 0x3a57, 0x31db, 0x394c, 0x35c7, 0x3a4f, 0x39fa, 0x3415, 0x26d6, 0x3a20, 0x383a, 0x35ed, 0x3549, 0x3907, 0x3858, 0x34f9, 0x3b66, 0x39f1, 0x2fc9, 0x3479, 0x3674, 0x3622, 0x34cc, +0x3aa6, 0x2c56, 0x347e, 0x39a1, 0x364c, 0x3b8b, 0x3abe, 0x311f, 0x3ae4, 0x3beb, 0x39a9, 0x3b8b, 0x3763, 0x3b33, 0x3407, 0x34a7, 0x31b8, 0x3a3d, 0x3a91, 0x3b44, 0x31ef, 0x3136, 0x3b43, 0x37a5, 0x39f8, 0x3893, 0x3851, 0x2991, 0x3b5a, 0x3a61, 0x3a0f, 0x397e, 0x3b5b, 0x34cd, 0x3647, 0x39ce, 0x3aab, 0x3899, 0x3baf, 0x3aea, 0x2aa1, 0x2da5, 0x3908, 0x29a7, 0x3bd7, 0x38d7, 0x36fd, 0x3aac, +0x38c1, 0x311e, 0x37d2, 0x3b9c, 0x36f8, 0x35aa, 0x3a7d, 0x26c4, 0x3467, 0x28c5, 0x1070, 0x2acd, 0x3ab6, 0x3310, 0x3876, 0x394f, 0x3a17, 0x3b9c, 0x3039, 0x32d0, 0x31bc, 0x2a58, 0x3ad3, 0x2dcb, 0x3acd, 0x38ad, 0x3ba0, 0x33fa, 0x3a3b, 0x37e9, 0x3b77, 0x3b04, 0x397a, 0x2fcb, 0x3b00, 0x397b, 0x39f3, 0x3b65, 0x386b, 0x38ec, 0x39d0, 0x3772, 0x3874, 0x3623, 0x3a9b, 0x3a01, 0x327e, 0x2cf5, +0x3993, 0x3be6, 0x375b, 0x3635, 0x3ba4, 0x3208, 0x3940, 0x3252, 0x3557, 0x39ae, 0x3a57, 0x2c3a, 0x389b, 0x3401, 0x3acf, 0x3beb, 0x3a90, 0x3add, 0x35cd, 0x38cf, 0x3328, 0x38e1, 0x3b21, 0x2e2e, 0x3395, 0x37e0, 0x3170, 0x384a, 0x32fe, 0x2383, 0x3aae, 0x3980, 0x3a4a, 0x314d, 0x33d8, 0x3adf, 0x34c2, 0x3a10, 0x3201, 0x3027, 0x38fb, 0x367c, 0x39b0, 0x2d2d, 0x3836, 0x326b, 0x3bf9, 0x3a35, +0x3258, 0x2acc, 0x3b1f, 0x35f8, 0x38e9, 0x344f, 0x289b, 0x345d, 0x3498, 0x3717, 0x355d, 0x29ff, 0x32c8, 0x3653, 0x39ef, 0x34ac, 0x3a94, 0x34cb, 0x395f, 0x3b8a, 0x38bb, 0x3759, 0x3318, 0x30b2, 0x3a03, 0x3174, 0x392e, 0x297d, 0x2548, 0x3b2c, 0x35b0, 0x3565, 0x323f, 0x3b9b, 0x3457, 0x384d, 0x38d6, 0x355d, 0x3008, 0x39c3, 0x2c5e, 0x3b90, 0x3ae3, 0x3a44, 0x3b8d, 0x307e, 0x3a86, 0x3058, +0x3add, 0x2333, 0x36c5, 0x280a, 0x3856, 0x2d97, 0x3419, 0x33a8, 0x3230, 0x2e85, 0x32f5, 0x3a43, 0x3a53, 0x3547, 0x208c, 0x3718, 0x31a0, 0x3460, 0x3788, 0x3aa0, 0x3abf, 0x2be0, 0x387c, 0x3bf2, 0x392b, 0x3a50, 0x3b0c, 0x380c, 0x39cf, 0x3af9, 0x31c0, 0x2f02, 0x3bb9, 0x3819, 0x3587, 0x30be, 0x3acd, 0x3693, 0x3576, 0x30ac, 0x3553, 0x36d6, 0x39ba, 0x31cb, 0x383b, 0x3ba1, 0x386d, 0x361b, +0x391a, 0x37c2, 0x398c, 0x3972, 0x32ad, 0x3b4f, 0x3617, 0x3b19, 0x36c4, 0x26e6, 0x3842, 0x3b5a, 0x3b60, 0x3061, 0x3af6, 0x3752, 0x2da0, 0x36d0, 0x34e5, 0x3ae4, 0x3909, 0x3a64, 0x3824, 0x352c, 0x339c, 0x327e, 0x3bf6, 0x3271, 0x2ebd, 0x39ff, 0x2883, 0x2f32, 0x30c1, 0x3b76, 0x2a62, 0x351a, 0x33d7, 0x39a7, 0x344c, 0x368a, 0x38d7, 0x38e4, 0x3a55, 0x3761, 0x3b7e, 0x367c, 0x35bf, 0x3441, +0x35a2, 0x3967, 0x3892, 0x2f81, 0x3881, 0x3b12, 0x3966, 0x390f, 0x2cf4, 0x32a9, 0x351e, 0x389b, 0x3712, 0x3806, 0x3ba7, 0x3137, 0x3911, 0x3706, 0x37cc, 0x3403, 0x3a9d, 0x322d, 0x3a3e, 0x3ae6, 0x3ad9, 0x37c7, 0x3b2b, 0x3b1f, 0x2dd7, 0x396c, 0x39de, 0x39db, 0x3bbb, 0x32fb, 0x38ee, 0x2c9e, 0x38a1, 0x3a41, 0x3938, 0x3497, 0x38f1, 0x3abd, 0x3a8f, 0x3be5, 0x3b00, 0x3482, 0x3731, 0x3a85, +0x39e6, 0x359a, 0x37f1, 0x3938, 0x37cb, 0x3051, 0x3a9a, 0x39ff, 0x39e0, 0x27b2, 0x3856, 0x36e9, 0x3ac2, 0x379a, 0x38fa, 0x3546, 0x2ab1, 0x35f6, 0x3aba, 0x39ce, 0x30f2, 0x3b07, 0x35e3, 0x38dd, 0x3a31, 0x3a87, 0x339b, 0x37e4, 0x39b5, 0x3642, 0x3aaa, 0x3b79, 0x3995, 0x39ba, 0x38fb, 0x3696, 0x348c, 0x35cf, 0x2df5, 0x3063, 0x3b39, 0x34ff, 0x3507, 0x3bc2, 0x3075, 0x300b, 0x3005, 0x37ff, +0x3b87, 0x3a23, 0x39bd, 0x38a5, 0x34a2, 0x2e3b, 0x2ffa, 0x3a5c, 0x382a, 0x1d4a, 0x39e0, 0x34a0, 0x30e8, 0x3a3b, 0x3bb6, 0x3b98, 0x3873, 0x30c9, 0x31c3, 0x3190, 0x3982, 0x352d, 0x39bd, 0x2977, 0x39e4, 0x3885, 0x3878, 0x38f1, 0x3706, 0x3874, 0x3a1b, 0x302f, 0x32be, 0x3a6f, 0x35b8, 0x38de, 0x2ef9, 0x39a5, 0x3ac2, 0x35a5, 0x3bb4, 0x3ab4, 0x3aea, 0x33ad, 0x3878, 0x3b22, 0x32af, 0x3ab1, +0x3ac1, 0x3aaa, 0x39d9, 0x3281, 0x26db, 0x3600, 0x3b1a, 0x308e, 0x2800, 0x3bbb, 0x3993, 0x3483, 0x3b99, 0x36d7, 0x38b6, 0x2e35, 0x1da9, 0x3bd9, 0x3395, 0x3bb4, 0x3b4f, 0x37e9, 0x28ad, 0x323b, 0x3901, 0x3b0a, 0x3a39, 0x2c30, 0x3a1a, 0x3bb2, 0x211a, 0x3ae0, 0x2f50, 0x387d, 0x382b, 0x350a, 0x3b88, 0x2f5a, 0x35eb, 0x3199, 0x30a3, 0x3724, 0x379e, 0x35e9, 0x33c8, 0x3859, 0x3984, 0x13b1, +0x372c, 0x34a3, 0x3504, 0x357a, 0x3881, 0x31da, 0x38a8, 0x3b7e, 0x2e03, 0x39d8, 0x30bf, 0x3ae1, 0x394b, 0x3a33, 0x382c, 0x3b0a, 0x39ea, 0x38d8, 0x3a3d, 0x34de, 0x3bbc, 0x3533, 0x2f62, 0x355f, 0x3863, 0x3a7b, 0x34c8, 0x39a5, 0x37d3, 0x3af4, 0x3685, 0x3b0f, 0x3b1a, 0x391b, 0x3492, 0x3b05, 0x2345, 0x398e, 0x372d, 0x3a99, 0x382f, 0x350e, 0x3076, 0x384a, 0x362b, 0x38e6, 0x38b0, 0x3a91, +0x2837, 0x2c9a, 0x381c, 0x3b93, 0x37d9, 0x3a1f, 0x2a6a, 0x351f, 0x3a89, 0x35ab, 0x379b, 0x35a4, 0x3874, 0x36d8, 0x30c5, 0x37a3, 0x384b, 0x31b9, 0x3b3f, 0x3928, 0x3810, 0x3af2, 0x287f, 0x3902, 0x343b, 0x3752, 0x36f3, 0x39a3, 0x3856, 0x3574, 0x327e, 0x30dd, 0x3bce, 0x3895, 0x3b0c, 0x38c3, 0x2fac, 0x21f3, 0x39c6, 0x28b0, 0x3081, 0x39cb, 0x38a5, 0x3a06, 0x3810, 0x380c, 0x3b58, 0x3159, +0x30b7, 0x3a80, 0x3914, 0x341a, 0x3154, 0x305d, 0x37b1, 0x3551, 0x2712, 0x3b44, 0x34c6, 0x3aaf, 0x3686, 0x319b, 0x3b0a, 0x37ca, 0x3a86, 0x3933, 0x3043, 0x3970, 0x2c82, 0x396e, 0x39b0, 0x3657, 0x39db, 0x3143, 0x33cb, 0x3a4f, 0x349f, 0x35b6, 0x2a9e, 0x39e1, 0x38a4, 0x2943, 0x25b6, 0x3966, 0x3b5e, 0x396e, 0x32a4, 0x3456, 0x35c8, 0x3b18, 0x3b5f, 0x37ba, 0x3554, 0x3979, 0x3b80, 0x3a88, +0x344f, 0x3a2c, 0x39e0, 0x3128, 0x3a0f, 0x390c, 0x3833, 0x39e5, 0x39e5, 0x3a75, 0x3b0a, 0x34ce, 0x383e, 0x3a7d, 0x3855, 0x3b1a, 0x3b5b, 0x37a8, 0x393f, 0x3103, 0x3b4d, 0x3b35, 0x3969, 0x366c, 0x34de, 0x3031, 0x30b1, 0x3788, 0x3521, 0x378d, 0x38f9, 0x379c, 0x39c9, 0x3507, 0x30cb, 0x3115, 0x3532, 0x298a, 0x3923, 0x37f9, 0x3be9, 0x39f8, 0x34b0, 0x3996, 0x34df, 0x3967, 0x3a9c, 0x30a8, +0x3bc8, 0x373c, 0x3174, 0x3a77, 0x36a2, 0x2992, 0x34f4, 0x3457, 0x2426, 0x3b9b, 0x35a1, 0x38a9, 0x39e6, 0x36ed, 0x3623, 0x2a73, 0x3afc, 0x3309, 0x3979, 0x3927, 0x3423, 0x3150, 0x3a55, 0x34c2, 0x34a2, 0x375b, 0x38a3, 0x3838, 0x3bc0, 0x3b15, 0x389d, 0x36e2, 0x361f, 0x3855, 0x3482, 0x3bb9, 0x3af9, 0x38ee, 0x3981, 0x312d, 0x3448, 0x3972, 0x3761, 0x38f2, 0x3a00, 0x34c3, 0x2dee, 0x3a23, +0x3a41, 0x3975, 0x388c, 0x2b7f, 0x3a39, 0x364d, 0x3849, 0x3600, 0x3885, 0x3761, 0x3845, 0x38ae, 0x3523, 0x32ae, 0x25d3, 0x391e, 0x36fb, 0x3897, 0x39f7, 0x3bb9, 0x3571, 0x395b, 0x364c, 0x39f1, 0x39d5, 0x3877, 0x3b82, 0x30e6, 0x3a99, 0x31b6, 0x3942, 0x33a7, 0x36b8, 0x3874, 0x2f01, 0x3607, 0x3914, 0x3b8a, 0x3589, 0x385b, 0x39c6, 0x3423, 0x286f, 0x3b94, 0x351f, 0x3bf9, 0x38d2, 0x39fa }; \ No newline at end of file diff --git a/hwpe/redmule/inc/y_input.h b/hwpe/redmule/inc/y_input.h index 45a2375..07f17ec 100644 --- a/hwpe/redmule/inc/y_input.h +++ b/hwpe/redmule/inc/y_input.h @@ -1,27 +1,51 @@ /* Header file generated by RedMulE Golden Model */ -uint16_t y_inp [768] = { -0x3150, 0x2dc1, 0x3033, 0x31f5, 0x3bb6, 0x3bff, 0x39f9, 0x3662, 0x3720, 0x351d, 0x384b, 0x3093, 0x3b9d, 0x35ad, 0x3695, 0x3466, 0x2300, 0x3445, 0x33ae, 0x3586, 0x38a3, 0x3bdb, 0x33a2, 0x379b, 0x3a0e, 0x38b0, 0x39ba, 0x379b, 0x39d3, 0x3a51, 0x3b30, 0x3794, -0x3b76, 0x3042, 0x38cc, 0x2dfc, 0x3b1a, 0x37fb, 0x38f7, 0x3824, 0x386f, 0x38c7, 0x36ee, 0x3a9c, 0x38d3, 0x2c67, 0x3a80, 0x2f30, 0x3328, 0x3721, 0x3790, 0x34e5, 0x3a6c, 0x3643, 0x3934, 0x3034, 0x38d4, 0x362e, 0x3b4b, 0x3408, 0x30c2, 0x370e, 0x3b31, 0x3b16, -0x3b6b, 0x39d4, 0x339c, 0x381e, 0x313e, 0x3671, 0x3ae2, 0x3479, 0x3940, 0x342d, 0x3925, 0x370a, 0x35d8, 0x2dad, 0x3888, 0x24b9, 0x375d, 0x34bd, 0x3243, 0x2ebb, 0x3970, 0x3a21, 0x3a07, 0x3877, 0x3888, 0x3569, 0x372d, 0x2ac1, 0x331e, 0x384d, 0x3996, 0x34a4, -0x35c1, 0x33a9, 0x21ed, 0x3a42, 0x388d, 0x34e4, 0x33c3, 0x34f9, 0x3a7b, 0x33fb, 0x2cdd, 0x3b0e, 0x333b, 0x3973, 0x34fc, 0x3771, 0x32ea, 0x2de4, 0x31a8, 0x3946, 0x3657, 0x3a4e, 0x36f6, 0x2829, 0x3ba2, 0x3bdc, 0x3bb3, 0x306c, 0x398d, 0x3a1f, 0x3991, 0x3846, -0x3547, 0x3292, 0x2e85, 0x31ed, 0x3979, 0x3a90, 0x28a4, 0x3bed, 0x36d8, 0x340e, 0x3b6a, 0x3ab6, 0x3824, 0x382b, 0x3ac3, 0x3811, 0x36d7, 0x3519, 0x3a92, 0x3a42, 0x29d1, 0x383a, 0x3a9b, 0x300e, 0x2cd3, 0x39cd, 0x3874, 0x3a07, 0x2eb1, 0x3b86, 0x3ad8, 0x3a5d, -0x3712, 0x284a, 0x38c1, 0x3bec, 0x39c0, 0x32cd, 0x3ad8, 0x3bce, 0x3817, 0x3896, 0x3aa7, 0x3870, 0x3996, 0x32cc, 0x3a4c, 0x3757, 0x3814, 0x3b65, 0x3acb, 0x376e, 0x34c0, 0x3609, 0x3bf0, 0x3b24, 0x3b29, 0x3848, 0x34b7, 0x398a, 0x220c, 0x3498, 0x3a8c, 0x3883, -0x38c4, 0x3af6, 0x3a42, 0x2dd6, 0x3147, 0x3717, 0x3a8e, 0x3af9, 0x3296, 0x38ef, 0x34fa, 0x3555, 0x3b29, 0x38de, 0x315e, 0x3773, 0x3b67, 0x3116, 0x38ec, 0x357c, 0x35d0, 0x2518, 0x3958, 0x2a03, 0x37d9, 0x3699, 0x3a1e, 0x3230, 0x3b13, 0x36d4, 0x3b2a, 0x39ad, -0x3b10, 0x351a, 0x3b97, 0x3326, 0x2b54, 0x3b7d, 0x386f, 0x373e, 0x37fa, 0x389b, 0x3b90, 0x3292, 0x3975, 0x38f3, 0x37f1, 0x3590, 0x3810, 0x2fd7, 0x3bf7, 0x3a5a, 0x3a1c, 0x34dd, 0x354c, 0x32f8, 0x3095, 0x321e, 0x39e0, 0x395c, 0x3717, 0x357f, 0x394a, 0x34b1, -0x3ba4, 0x380c, 0x3604, 0x2f50, 0x348d, 0x3828, 0x3a9f, 0x39ce, 0x32ca, 0x3906, 0x3ab2, 0x2ca5, 0x38c9, 0x362a, 0x34b2, 0x29dc, 0x3a36, 0x3052, 0x31b7, 0x3589, 0x387c, 0x3401, 0x3b22, 0x3ad6, 0x3ae8, 0x3238, 0x3494, 0x3502, 0x3717, 0x3a6c, 0x3229, 0x368c, -0x3056, 0x3a56, 0x3498, 0x39eb, 0x2864, 0x342d, 0x39e0, 0x34a1, 0x2b99, 0x3a04, 0x38ff, 0x328c, 0x34d9, 0x387d, 0x3a3c, 0x32e5, 0x39eb, 0x3984, 0x34dd, 0x38a7, 0x373f, 0x39b4, 0x3235, 0x2f58, 0x2f39, 0x3800, 0x3758, 0x3939, 0x39fc, 0x3a4b, 0x38bf, 0x30ee, -0x345e, 0x39c8, 0x3a6d, 0x3262, 0x3b81, 0x31dc, 0x3a15, 0x3bd0, 0x36af, 0x36de, 0x37d5, 0x39d7, 0x3ad3, 0x3ac1, 0x3109, 0x35ea, 0x31c6, 0x398d, 0x3987, 0x3a4a, 0x34d2, 0x2ed2, 0x35e6, 0x352c, 0x39eb, 0x3bd6, 0x3a5b, 0x39d1, 0x34aa, 0x3ade, 0x394b, 0x38a1, -0x2bed, 0x38de, 0x3811, 0x3813, 0x391a, 0x374b, 0x3829, 0x3725, 0x38f0, 0x3583, 0x3966, 0x3a7d, 0x375a, 0x38fe, 0x3696, 0x361c, 0x39a8, 0x35f0, 0x38e1, 0x3003, 0x3595, 0x316e, 0x3862, 0x3af8, 0x3af2, 0x34c8, 0x381d, 0x37d8, 0x3893, 0x3a9c, 0x3989, 0x308c, -0x30cc, 0x2538, 0x399d, 0x3919, 0x399e, 0x21cc, 0x38e9, 0x30f8, 0x3a20, 0x3b3c, 0x3990, 0x259c, 0x3143, 0x3080, 0x3967, 0x3afb, 0x3a1b, 0x3779, 0x2eeb, 0x39f3, 0x379a, 0x369c, 0x3985, 0x3a1b, 0x3ba6, 0x3a53, 0x28d5, 0x3881, 0x31d9, 0x3a34, 0x3bd9, 0x393a, -0x3601, 0x2c6e, 0x3636, 0x3298, 0x39bb, 0x3a08, 0x38db, 0x35ad, 0x3a09, 0x36a6, 0x3bc7, 0x3bac, 0x34ae, 0x3291, 0x290b, 0x3250, 0x2648, 0x333d, 0x2bf3, 0x34b1, 0x30e0, 0x351f, 0x3a74, 0x38dc, 0x3883, 0x2841, 0x35e1, 0x390d, 0x3a50, 0x3abd, 0x386d, 0x3bb7, -0x3b94, 0x36b7, 0x3a49, 0x332f, 0x3a1d, 0x354b, 0x3bab, 0x3346, 0x3417, 0x351e, 0x3b6d, 0x391a, 0x2db3, 0x3b1c, 0x3a4a, 0x37b7, 0x36cf, 0x3a56, 0x39c4, 0x3be9, 0x34f0, 0x39be, 0x3691, 0x1ba5, 0x3888, 0x3040, 0x3ae1, 0x3b9b, 0x398f, 0x3a49, 0x3a16, 0x38c0, -0x386c, 0x39ab, 0x37fa, 0x382c, 0x3a6f, 0x393f, 0x340d, 0x38ef, 0x39d1, 0x3845, 0x398f, 0x363e, 0x3687, 0x3052, 0x3a2b, 0x392c, 0x2f5c, 0x3412, 0x3a1f, 0x3b2f, 0x3bcc, 0x3a63, 0x3a89, 0x36e9, 0x3921, 0x3b80, 0x2dc0, 0x3a03, 0x3beb, 0x38d3, 0x36cb, 0x39a3, -0x3978, 0x3a88, 0x3ba4, 0x3561, 0x28c5, 0x33a0, 0x37be, 0x2c39, 0x30ee, 0x3782, 0x2c07, 0x354e, 0x3491, 0x3a92, 0x331a, 0x3b15, 0x32e1, 0x3839, 0x3afb, 0x36c2, 0x2fd0, 0x29ad, 0x3b2e, 0x39c1, 0x2a8c, 0x341a, 0x2f90, 0x395a, 0x3969, 0x37ea, 0x3a5c, 0x3b6d, -0x3971, 0x3a93, 0x304e, 0x3623, 0x3a22, 0x31ee, 0x29df, 0x2c93, 0x3a01, 0x3a62, 0x366c, 0x371d, 0x3af3, 0x2e08, 0x3ac0, 0x3642, 0x3a28, 0x368d, 0x2d3d, 0x36d9, 0x32c3, 0x373f, 0x36fe, 0x3487, 0x2c81, 0x3623, 0x3b59, 0x3a91, 0x350a, 0x34f4, 0x3b09, 0x2c25, -0x3b13, 0x325a, 0x379e, 0x3a7d, 0x34b1, 0x39d5, 0x2ba8, 0x322b, 0x3b5e, 0x37ab, 0x2e24, 0x3ba9, 0x3a3d, 0x34f7, 0x3ba1, 0x3877, 0x3071, 0x39fb, 0x3bbd, 0x3633, 0x3b36, 0x2daa, 0x3b9b, 0x3aa0, 0x395c, 0x3b8f, 0x38d5, 0x3ab0, 0x3a8f, 0x36c2, 0x3b1f, 0x3489, -0x2acc, 0x3845, 0x3715, 0x37d8, 0x3992, 0x3bff, 0x350e, 0x3ad7, 0x39b0, 0x35ac, 0x3287, 0x385f, 0x3bd4, 0x37a3, 0x3438, 0x39a5, 0x3bcf, 0x38c3, 0x34f6, 0x3ae3, 0x3b57, 0x39af, 0x35eb, 0x3bed, 0x34d4, 0x2a95, 0x3b13, 0x384e, 0x3a3b, 0x33da, 0x3bce, 0x3b99, -0x3559, 0x3335, 0x3a2e, 0x3123, 0x38db, 0x33d0, 0x3638, 0x3b17, 0x3a72, 0x3afc, 0x3936, 0x3838, 0x2b69, 0x3895, 0x3a1a, 0x3192, 0x39d5, 0x37a5, 0x2eb0, 0x2e8b, 0x329a, 0x3b90, 0x390a, 0x3a1e, 0x3847, 0x375d, 0x3873, 0x35e2, 0x3771, 0x30f5, 0x3231, 0x3bd7, -0x2bbc, 0x3ace, 0x31ad, 0x3a6b, 0x28a4, 0x3b48, 0x3ba3, 0x3a84, 0x3353, 0x39f6, 0x381f, 0x2dd6, 0x314c, 0x34af, 0x3929, 0x3921, 0x383b, 0x34b0, 0x3923, 0x32c9, 0x3ae7, 0x318f, 0x3480, 0x2ad8, 0x3042, 0x3a4c, 0x349d, 0x2c12, 0x3abb, 0x3a57, 0x3b0d, 0x3111, -0x3359, 0x3a84, 0x38f2, 0x368d, 0x2f4b, 0x3ba0, 0x395c, 0x3026, 0x3a15, 0x2a04, 0x326e, 0x3522, 0x31a2, 0x382f, 0x2ada, 0x3b7c, 0x2f80, 0x3af5, 0x2d35, 0x38fa, 0x39ab, 0x2c6d, 0x2e7a, 0x39f6, 0x31a4, 0x3a53, 0x358c, 0x3951, 0x3a4e, 0x3916, 0x2a3f, 0x3ae9, -0x3b03, 0x39f8, 0x39fe, 0x3a61, 0x39fb, 0x3704, 0x360d, 0x39a7, 0x37a9, 0x348f, 0x3a30, 0x3af5, 0x366f, 0x3b29, 0x3a6a, 0x33d5, 0x370a, 0x39cd, 0x3444, 0x3bea, 0x3b2b, 0x312e, 0x3b8e, 0x32cf, 0x3b79, 0x3302, 0x3bba, 0x3962, 0x3413, 0x37a1, 0x39e0, 0x3805 +uint16_t y_inp [2304] = { +0x2a2c, 0x303b, 0x3a3b, 0x37e1, 0x3aa7, 0x32fc, 0x35c2, 0x3b7f, 0x3a5f, 0x2b3e, 0x32eb, 0x37cd, 0x3864, 0x37f2, 0x3b49, 0x3701, 0x3919, 0x1c22, 0x3a1e, 0x3abe, 0x3b89, 0x2f84, 0x300f, 0x385a, 0x3309, 0x350a, 0x32ec, 0x3657, 0x2a10, 0x3aa7, 0x38f3, 0x3625, 0x3af7, 0x374a, 0x38a5, 0x378d, 0x3a3a, 0x387b, 0x37bc, 0x383a, 0x3019, 0x3419, 0x38a5, 0x3794, 0x3770, 0x3ad3, 0x31d5, 0x3b7c, +0x37d1, 0x3547, 0x376d, 0x3b0c, 0x3590, 0x355e, 0x3a64, 0x2742, 0x388b, 0x3b2d, 0x3b41, 0x3a58, 0x3ac0, 0x39d0, 0x2ecc, 0x2767, 0x3b8d, 0x36cd, 0x380a, 0x2c1c, 0x3274, 0x2f60, 0x3757, 0x39ee, 0x3b01, 0x3b5f, 0x3aba, 0x334d, 0x39ce, 0x37f5, 0x3a2f, 0x3be6, 0x337f, 0x3341, 0x3510, 0x39a7, 0x3abb, 0x3be6, 0x3aae, 0x3b01, 0x37bd, 0x3129, 0x36d9, 0x3478, 0x3530, 0x3807, 0x380b, 0x3b2c, +0x399d, 0x35bc, 0x3971, 0x3bb8, 0x2ec7, 0x3a89, 0x3b38, 0x3a88, 0x22a9, 0x33d5, 0x3a10, 0x361d, 0x3ae5, 0x3b13, 0x3a6d, 0x3b3c, 0x3bf3, 0x391d, 0x3a20, 0x3324, 0x394a, 0x30fc, 0x3348, 0x3925, 0x316f, 0x3b75, 0x34dc, 0x30c2, 0x3949, 0x35bd, 0x38ac, 0x2e88, 0x3b96, 0x38c0, 0x2f84, 0x3644, 0x31d2, 0x3b26, 0x3a1c, 0x31ba, 0x3b5c, 0x3181, 0x3a9f, 0x35ae, 0x3208, 0x397a, 0x35f0, 0x3689, +0x37fb, 0x3aba, 0x3a69, 0x373a, 0x392f, 0x3adb, 0x3167, 0x29b8, 0x3920, 0x34ac, 0x3758, 0x38bf, 0x3940, 0x3baf, 0x32ef, 0x3b98, 0x3b9f, 0x3b30, 0x384f, 0x3539, 0x3a26, 0x398f, 0x2230, 0x39d8, 0x395b, 0x3a3f, 0x2d89, 0x3b01, 0x3b8c, 0x3a30, 0x38b4, 0x30ab, 0x35ab, 0x3a7e, 0x3850, 0x3894, 0x3424, 0x39d3, 0x3a42, 0x39d0, 0x39a8, 0x36a9, 0x3b35, 0x2cdf, 0x3705, 0x3841, 0x3b79, 0x3b23, +0x2dd5, 0x3a67, 0x3178, 0x37a5, 0x3b5b, 0x3b5a, 0x2a68, 0x38c4, 0x3b23, 0x3943, 0x310c, 0x3261, 0x3889, 0x380c, 0x3626, 0x39ab, 0x3b7b, 0x3b53, 0x3a4a, 0x2f44, 0x3a74, 0x346b, 0x3481, 0x379b, 0x3bd0, 0x3a76, 0x3bca, 0x38b3, 0x3b1a, 0x3a84, 0x373f, 0x3a52, 0x3554, 0x3690, 0x3b66, 0x3a12, 0x3aa5, 0x3b45, 0x38c3, 0x396a, 0x2d50, 0x3978, 0x2442, 0x3ab9, 0x3818, 0x34b6, 0x34c0, 0x3a08, +0x38a4, 0x380c, 0x3b25, 0x363e, 0x2e86, 0x356f, 0x394f, 0x38e2, 0x27ab, 0x3b59, 0x2e61, 0x34ea, 0x38e6, 0x3673, 0x39a5, 0x3785, 0x2ebb, 0x3314, 0x367e, 0x34e4, 0x3884, 0x2fbf, 0x2f51, 0x3105, 0x3a29, 0x3aae, 0x3aea, 0x3977, 0x3b46, 0x3b29, 0x3ab7, 0x374c, 0x2e01, 0x3935, 0x3965, 0x31ed, 0x380e, 0x340d, 0x3615, 0x2a10, 0x23ab, 0x3990, 0x2c3a, 0x3723, 0x3001, 0x25e3, 0x3649, 0x2491, +0x39f6, 0x3a32, 0x3171, 0x38bc, 0x390d, 0x39ec, 0x3621, 0x3511, 0x39c8, 0x2c9b, 0x24b6, 0x38fb, 0x201c, 0x3367, 0x3b6c, 0x3ada, 0x37ce, 0x368e, 0x3909, 0x32f0, 0x3180, 0x3aca, 0x39e8, 0x3a6f, 0x2f65, 0x3b78, 0x3b6f, 0x378c, 0x2938, 0x393a, 0x319f, 0x38aa, 0x386c, 0x3b7b, 0x3b7d, 0x387a, 0x3bdd, 0x3af5, 0x2e74, 0x2c3d, 0x3add, 0x2ef4, 0x3a16, 0x2d55, 0x387d, 0x35ce, 0x2753, 0x3b55, +0x3b84, 0x2ebf, 0x335a, 0x391b, 0x3870, 0x3a8e, 0x39a2, 0x3397, 0x3751, 0x3a3e, 0x3920, 0x379b, 0x31a4, 0x3b01, 0x3ad6, 0x3a94, 0x3825, 0x3840, 0x3690, 0x37e9, 0x3bf0, 0x3bb3, 0x39a6, 0x3bf2, 0x363b, 0x39e1, 0x306c, 0x36de, 0x3b80, 0x3b52, 0x3769, 0x389d, 0x3598, 0x36b1, 0x3a0c, 0x3647, 0x3587, 0x3884, 0x3a4d, 0x29ad, 0x382a, 0x35cb, 0x35d3, 0x374b, 0x374c, 0x3b35, 0x3a58, 0x39db, +0x3951, 0x38d5, 0x3ad1, 0x3b01, 0x3714, 0x3a8b, 0x3a1d, 0x360f, 0x2e2d, 0x3990, 0x35d5, 0x3b98, 0x3122, 0x2efe, 0x33bd, 0x3b8c, 0x37b8, 0x3a51, 0x38d8, 0x39ac, 0x3691, 0x31b6, 0x3557, 0x2cf7, 0x3a32, 0x3aa3, 0x35b8, 0x385b, 0x3a32, 0x3688, 0x367a, 0x30d6, 0x2f4b, 0x3ba0, 0x3121, 0x30af, 0x375b, 0x33f0, 0x3854, 0x3b73, 0x3a16, 0x3444, 0x393b, 0x393b, 0x30f4, 0x2d8b, 0x38a1, 0x2b29, +0x3679, 0x3966, 0x37a1, 0x3832, 0x39bc, 0x356b, 0x2d9a, 0x3a05, 0x3b20, 0x38e9, 0x38c2, 0x38c2, 0x3a76, 0x3523, 0x3812, 0x388d, 0x37f4, 0x3b3b, 0x3ab7, 0x3366, 0x39a9, 0x3bb3, 0x3ac8, 0x3ad9, 0x3994, 0x343f, 0x3669, 0x2e50, 0x3b6c, 0x3873, 0x3b13, 0x3acd, 0x2bf7, 0x3b9c, 0x34aa, 0x385b, 0x2dae, 0x2aac, 0x2882, 0x2d37, 0x3bd9, 0x32f9, 0x36e2, 0x3315, 0x395c, 0x3ace, 0x353c, 0x3b25, +0x3b1e, 0x3687, 0x2fee, 0x3917, 0x3027, 0x3238, 0x39ce, 0x323d, 0x3498, 0x3be7, 0x36c5, 0x36e0, 0x38b3, 0x3420, 0x36ed, 0x3353, 0x30cc, 0x3ab7, 0x323b, 0x3a05, 0x27f2, 0x3177, 0x3552, 0x3897, 0x2f99, 0x39d3, 0x31a0, 0x3634, 0x2d52, 0x2915, 0x33c4, 0x1585, 0x3bf7, 0x3ad6, 0x380d, 0x3673, 0x29d3, 0x3800, 0x39fa, 0x391c, 0x3263, 0x3025, 0x3995, 0x373e, 0x2941, 0x35b7, 0x3b45, 0x3a0f, +0x327c, 0x3172, 0x38aa, 0x298f, 0x3a13, 0x3b4a, 0x2b09, 0x3816, 0x3567, 0x390c, 0x3885, 0x38e9, 0x34f9, 0x39ca, 0x35f6, 0x3a74, 0x35f3, 0x1e43, 0x38d4, 0x26fc, 0x2d8a, 0x350f, 0x3456, 0x3862, 0x389c, 0x382a, 0x3756, 0x3941, 0x3ba5, 0x37fb, 0x39d9, 0x382d, 0x3ba3, 0x3b3c, 0x3619, 0x3228, 0x3a5b, 0x3753, 0x38f6, 0x3840, 0x2870, 0x3149, 0x39a4, 0x3ba1, 0x3b35, 0x3afa, 0x3248, 0x3a32, +0x34d3, 0x35a7, 0x34d4, 0x3b27, 0x3a3b, 0x3769, 0x380a, 0x34e9, 0x2434, 0x3452, 0x3a30, 0x34e8, 0x27e1, 0x39e2, 0x395f, 0x38e9, 0x342b, 0x3954, 0x3071, 0x38a3, 0x3153, 0x3974, 0x36d5, 0x37f9, 0x35c5, 0x3870, 0x3ba9, 0x3a57, 0x36c9, 0x3ab2, 0x2a4c, 0x3887, 0x339c, 0x3bc1, 0x3a83, 0x326c, 0x373a, 0x2c72, 0x2b29, 0x3a2d, 0x393a, 0x2fcb, 0x3800, 0x394f, 0x38c6, 0x3955, 0x3910, 0x378a, +0x3acd, 0x3a17, 0x355f, 0x39f4, 0x36e7, 0x3ae9, 0x3546, 0x261c, 0x3bec, 0x3472, 0x34cb, 0x3af4, 0x3712, 0x3a84, 0x368e, 0x3b1a, 0x2654, 0x3ace, 0x3a72, 0x39ad, 0x3858, 0x37c9, 0x3734, 0x3ba6, 0x3b15, 0x390d, 0x354f, 0x1b54, 0x3b79, 0x2ba6, 0x35dd, 0x3b25, 0x3bfe, 0x3405, 0x363d, 0x2f80, 0x39a7, 0x3400, 0x37ec, 0x2c2c, 0x3b6e, 0x3acc, 0x3b03, 0x39af, 0x31e7, 0x3958, 0x3480, 0x3977, +0x34e7, 0x35d1, 0x35bc, 0x38d0, 0x3b9e, 0x3ae4, 0x3865, 0x1e86, 0x32e5, 0x28d7, 0x3ae5, 0x3a0a, 0x3678, 0x3a1c, 0x3856, 0x280c, 0x3a5a, 0x30e7, 0x3b96, 0x3b1d, 0x3826, 0x2eb3, 0x3a15, 0x301f, 0x3a08, 0x340f, 0x3a8d, 0x1cb3, 0x2a89, 0x38ea, 0x3ae1, 0x384d, 0x3b70, 0x3982, 0x3077, 0x3af2, 0x37a9, 0x361b, 0x3335, 0x35db, 0x3701, 0x3a0a, 0x3aec, 0x39bb, 0x3bf6, 0x3b22, 0x3793, 0x3aef, +0x3a88, 0x3834, 0x33d4, 0x38ed, 0x2e48, 0x3291, 0x3b11, 0x3775, 0x36bc, 0x36d6, 0x314e, 0x3266, 0x3326, 0x2fe6, 0x386f, 0x3bdf, 0x3a3c, 0x2e72, 0x3238, 0x3a0e, 0x3812, 0x332b, 0x3594, 0x368b, 0x38f6, 0x381d, 0x3b00, 0x1c2d, 0x3abf, 0x3ac4, 0x2ced, 0x3128, 0x39e9, 0x2d97, 0x247d, 0x3a10, 0x2d03, 0x3a5a, 0x3839, 0x3985, 0x2d87, 0x3645, 0x387e, 0x34be, 0x29e6, 0x395c, 0x2ce6, 0x395f, +0x3a6c, 0x3545, 0x3b3f, 0x3ad1, 0x3b94, 0x3b9a, 0x2d92, 0x2e46, 0x3866, 0x3994, 0x3a0d, 0x341d, 0x3199, 0x30e4, 0x2d19, 0x34a9, 0x36d5, 0x3916, 0x385c, 0x3b9d, 0x3660, 0x39a5, 0x3091, 0x38d1, 0x3a0d, 0x34d5, 0x3b90, 0x3707, 0x32ae, 0x39e1, 0x382d, 0x2875, 0x2d57, 0x3484, 0x384e, 0x1cb2, 0x2e3d, 0x3575, 0x30f3, 0x3ac7, 0x37c0, 0x3a1c, 0x355a, 0x34d8, 0x38ac, 0x3839, 0x3abc, 0x3517, +0x2d7b, 0x3b2b, 0x3a3f, 0x3962, 0x3bcd, 0x3a92, 0x3983, 0x3b99, 0x3446, 0x37db, 0x3a51, 0x385c, 0x3179, 0x2942, 0x396b, 0x3855, 0x3872, 0x3a2b, 0x3b91, 0x35a7, 0x3a30, 0x2f3d, 0x39c2, 0x352a, 0x301a, 0x362b, 0x395a, 0x28fe, 0x2e22, 0x2b81, 0x3b3d, 0x3680, 0x3061, 0x3b29, 0x3a5a, 0x3549, 0x3bb2, 0x3bc9, 0x352f, 0x2e0b, 0x3220, 0x3637, 0x3b8c, 0x38c5, 0x3af1, 0x33b7, 0x3b6c, 0x389b, +0x3763, 0x23a5, 0x3461, 0x3a80, 0x35c7, 0x3200, 0x3811, 0x39e4, 0x356b, 0x39d5, 0x3974, 0x38b0, 0x3b00, 0x3bc7, 0x3a01, 0x3bf3, 0x3268, 0x3971, 0x3bbe, 0x37cc, 0x3607, 0x3327, 0x3995, 0x2bc0, 0x345f, 0x2ad7, 0x341f, 0x322a, 0x380d, 0x2b0f, 0x34b6, 0x38df, 0x382d, 0x35ca, 0x34c4, 0x3bce, 0x3a53, 0x36cc, 0x38ff, 0x38fd, 0x2c82, 0x3899, 0x3895, 0x3871, 0x3bd1, 0x3543, 0x3a44, 0x349b, +0x3512, 0x37a4, 0x3429, 0x399d, 0x37a6, 0x2afb, 0x37a4, 0x3832, 0x39f0, 0x38e0, 0x3266, 0x27b9, 0x3814, 0x327b, 0x3a8c, 0x31f9, 0x346d, 0x34c9, 0x3b8a, 0x359d, 0x39b2, 0x39d6, 0x3602, 0x2df2, 0x3b65, 0x2fe6, 0x3ad5, 0x3600, 0x3b32, 0x3b92, 0x34a1, 0x375b, 0x38f6, 0x3aab, 0x38f2, 0x3561, 0x367c, 0x3995, 0x39c0, 0x2ff3, 0x31f8, 0x3413, 0x3ba4, 0x2e61, 0x3b6f, 0x2956, 0x3af0, 0x35fa, +0x2a90, 0x33f4, 0x3885, 0x3803, 0x37c3, 0x3499, 0x38f4, 0x36a3, 0x3984, 0x3715, 0x3a15, 0x3a7d, 0x3885, 0x3a5e, 0x3921, 0x3af3, 0x397a, 0x380c, 0x381b, 0x3be7, 0x395e, 0x357d, 0x36bd, 0x3b7c, 0x34a2, 0x333c, 0x3be1, 0x3431, 0x3051, 0x38ec, 0x3a6d, 0x3aa9, 0x399a, 0x2b03, 0x394b, 0x3823, 0x3bc3, 0x388f, 0x3815, 0x3a7c, 0x3a85, 0x32fe, 0x3bbb, 0x38fd, 0x3b92, 0x3472, 0x367d, 0x32b2, +0x2c09, 0x3236, 0x36be, 0x3007, 0x30c2, 0x3666, 0x3b42, 0x3780, 0x3a9d, 0x314a, 0x3933, 0x3b0e, 0x3a76, 0x3ab1, 0x3acc, 0x35c7, 0x2834, 0x347e, 0x393e, 0x36fd, 0x3ac8, 0x3419, 0x3977, 0x3a68, 0x38aa, 0x2f27, 0x30a5, 0x3bef, 0x3bb0, 0x3629, 0x35ea, 0x3647, 0x39dd, 0x33ef, 0x3a4c, 0x33ba, 0x37c6, 0x3a33, 0x3824, 0x30c5, 0x3b25, 0x332d, 0x363f, 0x394d, 0x3289, 0x388e, 0x3978, 0x396b, +0x3647, 0x3876, 0x3364, 0x3b51, 0x3a09, 0x385c, 0x38cb, 0x3bb1, 0x3b8e, 0x3172, 0x3235, 0x3873, 0x3701, 0x2d2f, 0x3610, 0x35a8, 0x30da, 0x28c2, 0x3b5f, 0x39ef, 0x326b, 0x2b05, 0x378a, 0x3491, 0x3a86, 0x3a16, 0x3ae6, 0x3601, 0x3a6d, 0x394e, 0x389c, 0x3b19, 0x3af7, 0x36ee, 0x2bc3, 0x3a71, 0x3751, 0x3577, 0x34a3, 0x37da, 0x28ae, 0x2e26, 0x37d1, 0x3872, 0x3941, 0x31dd, 0x2b26, 0x3152, +0x3a0d, 0x33c1, 0x3572, 0x326b, 0x34a6, 0x373a, 0x39cc, 0x39d8, 0x39fd, 0x3af7, 0x390a, 0x3434, 0x34c6, 0x364a, 0x3417, 0x2962, 0x30dd, 0x38d1, 0x3a99, 0x3762, 0x2e6a, 0x392d, 0x3983, 0x3aa1, 0x322f, 0x3b7e, 0x2e09, 0x341d, 0x3412, 0x3995, 0x355f, 0x30a1, 0x3641, 0x35e6, 0x35d8, 0x38b9, 0x3920, 0x3be6, 0x3836, 0x35f2, 0x2af0, 0x3543, 0x34a2, 0x3a2a, 0x3b4a, 0x2c71, 0x3191, 0x39e5, +0x3812, 0x3841, 0x3aaa, 0x38d0, 0x2e84, 0x3106, 0x3649, 0x3927, 0x320a, 0x3bd9, 0x3478, 0x3a16, 0x39d2, 0x36e8, 0x35c3, 0x2cd9, 0x2fe8, 0x393f, 0x3406, 0x317e, 0x3abe, 0x36ec, 0x3a6d, 0x3a7d, 0x30bf, 0x2cd3, 0x363b, 0x3163, 0x36ae, 0x387a, 0x3a1e, 0x3013, 0x2cc7, 0x3845, 0x3587, 0x3a74, 0x3939, 0x35bc, 0x378e, 0x38ef, 0x39df, 0x374e, 0x3b2c, 0x388c, 0x37b0, 0x3421, 0x3837, 0x372a, +0x3b1c, 0x3509, 0x36ae, 0x24b6, 0x39eb, 0x34fe, 0x3b1e, 0x3925, 0x3407, 0x3a93, 0x3727, 0x37da, 0x3648, 0x3ac5, 0x3095, 0x25c6, 0x324d, 0x34cb, 0x2ee4, 0x3516, 0x35c6, 0x3744, 0x3314, 0x387e, 0x3bb6, 0x3344, 0x373b, 0x39a2, 0x355d, 0x38a3, 0x34b9, 0x3590, 0x3907, 0x39bb, 0x3908, 0x38fc, 0x2c76, 0x2ca0, 0x2a80, 0x37fb, 0x264c, 0x36e0, 0x3a2a, 0x3813, 0x3a15, 0x3bfb, 0x357f, 0x37a1, +0x3b41, 0x393b, 0x3ae1, 0x35f4, 0x39dc, 0x3ad5, 0x376c, 0x32bc, 0x2e82, 0x3ab0, 0x379d, 0x3a93, 0x3665, 0x38dd, 0x2afc, 0x3367, 0x3873, 0x3baa, 0x35d5, 0x3823, 0x3add, 0x37f4, 0x38aa, 0x357b, 0x3a4f, 0x3aab, 0x2832, 0x3667, 0x3823, 0x3106, 0x38e6, 0x3245, 0x3051, 0x30a3, 0x2db8, 0x39ac, 0x31e7, 0x325e, 0x3410, 0x39eb, 0x369c, 0x3aa4, 0x35b2, 0x3322, 0x308c, 0x2f88, 0x3b4b, 0x34fe, +0x3b32, 0x3235, 0x3b8b, 0x332b, 0x3001, 0x2067, 0x361e, 0x397b, 0x378b, 0x3ad9, 0x3236, 0x34b0, 0x387c, 0x37de, 0x38f2, 0x3861, 0x27fd, 0x3a01, 0x3992, 0x2d5c, 0x313f, 0x3a05, 0x3bfe, 0x34b1, 0x3bfb, 0x39f4, 0x3747, 0x3b61, 0x3bb1, 0x3145, 0x3446, 0x34e6, 0x3a96, 0x2d1d, 0x3bd7, 0x2c12, 0x3161, 0x3790, 0x3bea, 0x3518, 0x36a2, 0x3b7c, 0x3825, 0x325f, 0x3997, 0x38e8, 0x37c4, 0x312a, +0x3a69, 0x3177, 0x35f7, 0x3381, 0x32c4, 0x38bb, 0x3677, 0x30bd, 0x38da, 0x325a, 0x3944, 0x3913, 0x3962, 0x308d, 0x37ad, 0x3834, 0x385b, 0x3492, 0x3574, 0x38a5, 0x30e2, 0x35c1, 0x3975, 0x37ad, 0x3784, 0x33ea, 0x39ff, 0x328e, 0x3be0, 0x3b34, 0x3460, 0x3ab7, 0x3a60, 0x3477, 0x3938, 0x3342, 0x34cc, 0x31d0, 0x2c08, 0x3aab, 0x3bb2, 0x3ba5, 0x396b, 0x3ae2, 0x37af, 0x334a, 0x2866, 0x3836, +0x3528, 0x362b, 0x2b89, 0x2946, 0x3812, 0x2a40, 0x3b9c, 0x36a8, 0x2d19, 0x3b81, 0x3a64, 0x305b, 0x3143, 0x37b0, 0x35a7, 0x3579, 0x313e, 0x3b5f, 0x35f7, 0x385c, 0x3bbd, 0x2b09, 0x37c1, 0x3833, 0x30b6, 0x1dbb, 0x36f3, 0x3785, 0x351d, 0x1d0d, 0x398c, 0x3919, 0x312d, 0x2af8, 0x3ae6, 0x3ba3, 0x2821, 0x1bb5, 0x37d2, 0x3344, 0x3b88, 0x38e8, 0x333d, 0x37cb, 0x3962, 0x3100, 0x3260, 0x3aeb, +0x39d6, 0x36e1, 0x393a, 0x3a38, 0x383c, 0x35c6, 0x3acd, 0x38d9, 0x35f8, 0x377a, 0x3af7, 0x3903, 0x2148, 0x3851, 0x2a7b, 0x3452, 0x3425, 0x2fd4, 0x3751, 0x335c, 0x366e, 0x3a2b, 0x30c1, 0x317a, 0x355a, 0x2d45, 0x390c, 0x3aa9, 0x38f4, 0x3007, 0x3924, 0x381d, 0x378c, 0x3541, 0x3a37, 0x38d0, 0x351d, 0x37ad, 0x3abb, 0x3989, 0x3716, 0x33ed, 0x396a, 0x3b60, 0x3ba0, 0x3818, 0x3b94, 0x35a7, +0x369a, 0x3755, 0x3a5b, 0x3a1e, 0x35d3, 0x3a14, 0x1da4, 0x39f6, 0x3a81, 0x3ac3, 0x397d, 0x340b, 0x3aa7, 0x2b95, 0x3791, 0x1fa8, 0x2e38, 0x38e0, 0x3275, 0x3b9f, 0x3956, 0x2520, 0x3baf, 0x35c4, 0x3112, 0x3aee, 0x3a57, 0x31db, 0x394c, 0x35c7, 0x3a4f, 0x39fa, 0x3415, 0x26d6, 0x3a20, 0x383a, 0x35ed, 0x3549, 0x3907, 0x3858, 0x34f9, 0x3b66, 0x39f1, 0x2fc9, 0x3479, 0x3674, 0x3622, 0x34cc, +0x3aa6, 0x2c56, 0x347e, 0x39a1, 0x364c, 0x3b8b, 0x3abe, 0x311f, 0x3ae4, 0x3beb, 0x39a9, 0x3b8b, 0x3763, 0x3b33, 0x3407, 0x34a7, 0x31b8, 0x3a3d, 0x3a91, 0x3b44, 0x31ef, 0x3136, 0x3b43, 0x37a5, 0x39f8, 0x3893, 0x3851, 0x2991, 0x3b5a, 0x3a61, 0x3a0f, 0x397e, 0x3b5b, 0x34cd, 0x3647, 0x39ce, 0x3aab, 0x3899, 0x3baf, 0x3aea, 0x2aa1, 0x2da5, 0x3908, 0x29a7, 0x3bd7, 0x38d7, 0x36fd, 0x3aac, +0x38c1, 0x311e, 0x37d2, 0x3b9c, 0x36f8, 0x35aa, 0x3a7d, 0x26c4, 0x3467, 0x28c5, 0x1070, 0x2acd, 0x3ab6, 0x3310, 0x3876, 0x394f, 0x3a17, 0x3b9c, 0x3039, 0x32d0, 0x31bc, 0x2a58, 0x3ad3, 0x2dcb, 0x3acd, 0x38ad, 0x3ba0, 0x33fa, 0x3a3b, 0x37e9, 0x3b77, 0x3b04, 0x397a, 0x2fcb, 0x3b00, 0x397b, 0x39f3, 0x3b65, 0x386b, 0x38ec, 0x39d0, 0x3772, 0x3874, 0x3623, 0x3a9b, 0x3a01, 0x327e, 0x2cf5, +0x3993, 0x3be6, 0x375b, 0x3635, 0x3ba4, 0x3208, 0x3940, 0x3252, 0x3557, 0x39ae, 0x3a57, 0x2c3a, 0x389b, 0x3401, 0x3acf, 0x3beb, 0x3a90, 0x3add, 0x35cd, 0x38cf, 0x3328, 0x38e1, 0x3b21, 0x2e2e, 0x3395, 0x37e0, 0x3170, 0x384a, 0x32fe, 0x2383, 0x3aae, 0x3980, 0x3a4a, 0x314d, 0x33d8, 0x3adf, 0x34c2, 0x3a10, 0x3201, 0x3027, 0x38fb, 0x367c, 0x39b0, 0x2d2d, 0x3836, 0x326b, 0x3bf9, 0x3a35, +0x3258, 0x2acc, 0x3b1f, 0x35f8, 0x38e9, 0x344f, 0x289b, 0x345d, 0x3498, 0x3717, 0x355d, 0x29ff, 0x32c8, 0x3653, 0x39ef, 0x34ac, 0x3a94, 0x34cb, 0x395f, 0x3b8a, 0x38bb, 0x3759, 0x3318, 0x30b2, 0x3a03, 0x3174, 0x392e, 0x297d, 0x2548, 0x3b2c, 0x35b0, 0x3565, 0x323f, 0x3b9b, 0x3457, 0x384d, 0x38d6, 0x355d, 0x3008, 0x39c3, 0x2c5e, 0x3b90, 0x3ae3, 0x3a44, 0x3b8d, 0x307e, 0x3a86, 0x3058, +0x3add, 0x2333, 0x36c5, 0x280a, 0x3856, 0x2d97, 0x3419, 0x33a8, 0x3230, 0x2e85, 0x32f5, 0x3a43, 0x3a53, 0x3547, 0x208c, 0x3718, 0x31a0, 0x3460, 0x3788, 0x3aa0, 0x3abf, 0x2be0, 0x387c, 0x3bf2, 0x392b, 0x3a50, 0x3b0c, 0x380c, 0x39cf, 0x3af9, 0x31c0, 0x2f02, 0x3bb9, 0x3819, 0x3587, 0x30be, 0x3acd, 0x3693, 0x3576, 0x30ac, 0x3553, 0x36d6, 0x39ba, 0x31cb, 0x383b, 0x3ba1, 0x386d, 0x361b, +0x391a, 0x37c2, 0x398c, 0x3972, 0x32ad, 0x3b4f, 0x3617, 0x3b19, 0x36c4, 0x26e6, 0x3842, 0x3b5a, 0x3b60, 0x3061, 0x3af6, 0x3752, 0x2da0, 0x36d0, 0x34e5, 0x3ae4, 0x3909, 0x3a64, 0x3824, 0x352c, 0x339c, 0x327e, 0x3bf6, 0x3271, 0x2ebd, 0x39ff, 0x2883, 0x2f32, 0x30c1, 0x3b76, 0x2a62, 0x351a, 0x33d7, 0x39a7, 0x344c, 0x368a, 0x38d7, 0x38e4, 0x3a55, 0x3761, 0x3b7e, 0x367c, 0x35bf, 0x3441, +0x35a2, 0x3967, 0x3892, 0x2f81, 0x3881, 0x3b12, 0x3966, 0x390f, 0x2cf4, 0x32a9, 0x351e, 0x389b, 0x3712, 0x3806, 0x3ba7, 0x3137, 0x3911, 0x3706, 0x37cc, 0x3403, 0x3a9d, 0x322d, 0x3a3e, 0x3ae6, 0x3ad9, 0x37c7, 0x3b2b, 0x3b1f, 0x2dd7, 0x396c, 0x39de, 0x39db, 0x3bbb, 0x32fb, 0x38ee, 0x2c9e, 0x38a1, 0x3a41, 0x3938, 0x3497, 0x38f1, 0x3abd, 0x3a8f, 0x3be5, 0x3b00, 0x3482, 0x3731, 0x3a85, +0x39e6, 0x359a, 0x37f1, 0x3938, 0x37cb, 0x3051, 0x3a9a, 0x39ff, 0x39e0, 0x27b2, 0x3856, 0x36e9, 0x3ac2, 0x379a, 0x38fa, 0x3546, 0x2ab1, 0x35f6, 0x3aba, 0x39ce, 0x30f2, 0x3b07, 0x35e3, 0x38dd, 0x3a31, 0x3a87, 0x339b, 0x37e4, 0x39b5, 0x3642, 0x3aaa, 0x3b79, 0x3995, 0x39ba, 0x38fb, 0x3696, 0x348c, 0x35cf, 0x2df5, 0x3063, 0x3b39, 0x34ff, 0x3507, 0x3bc2, 0x3075, 0x300b, 0x3005, 0x37ff, +0x3b87, 0x3a23, 0x39bd, 0x38a5, 0x34a2, 0x2e3b, 0x2ffa, 0x3a5c, 0x382a, 0x1d4a, 0x39e0, 0x34a0, 0x30e8, 0x3a3b, 0x3bb6, 0x3b98, 0x3873, 0x30c9, 0x31c3, 0x3190, 0x3982, 0x352d, 0x39bd, 0x2977, 0x39e4, 0x3885, 0x3878, 0x38f1, 0x3706, 0x3874, 0x3a1b, 0x302f, 0x32be, 0x3a6f, 0x35b8, 0x38de, 0x2ef9, 0x39a5, 0x3ac2, 0x35a5, 0x3bb4, 0x3ab4, 0x3aea, 0x33ad, 0x3878, 0x3b22, 0x32af, 0x3ab1, +0x3ac1, 0x3aaa, 0x39d9, 0x3281, 0x26db, 0x3600, 0x3b1a, 0x308e, 0x2800, 0x3bbb, 0x3993, 0x3483, 0x3b99, 0x36d7, 0x38b6, 0x2e35, 0x1da9, 0x3bd9, 0x3395, 0x3bb4, 0x3b4f, 0x37e9, 0x28ad, 0x323b, 0x3901, 0x3b0a, 0x3a39, 0x2c30, 0x3a1a, 0x3bb2, 0x211a, 0x3ae0, 0x2f50, 0x387d, 0x382b, 0x350a, 0x3b88, 0x2f5a, 0x35eb, 0x3199, 0x30a3, 0x3724, 0x379e, 0x35e9, 0x33c8, 0x3859, 0x3984, 0x13b1, +0x372c, 0x34a3, 0x3504, 0x357a, 0x3881, 0x31da, 0x38a8, 0x3b7e, 0x2e03, 0x39d8, 0x30bf, 0x3ae1, 0x394b, 0x3a33, 0x382c, 0x3b0a, 0x39ea, 0x38d8, 0x3a3d, 0x34de, 0x3bbc, 0x3533, 0x2f62, 0x355f, 0x3863, 0x3a7b, 0x34c8, 0x39a5, 0x37d3, 0x3af4, 0x3685, 0x3b0f, 0x3b1a, 0x391b, 0x3492, 0x3b05, 0x2345, 0x398e, 0x372d, 0x3a99, 0x382f, 0x350e, 0x3076, 0x384a, 0x362b, 0x38e6, 0x38b0, 0x3a91, +0x2837, 0x2c9a, 0x381c, 0x3b93, 0x37d9, 0x3a1f, 0x2a6a, 0x351f, 0x3a89, 0x35ab, 0x379b, 0x35a4, 0x3874, 0x36d8, 0x30c5, 0x37a3, 0x384b, 0x31b9, 0x3b3f, 0x3928, 0x3810, 0x3af2, 0x287f, 0x3902, 0x343b, 0x3752, 0x36f3, 0x39a3, 0x3856, 0x3574, 0x327e, 0x30dd, 0x3bce, 0x3895, 0x3b0c, 0x38c3, 0x2fac, 0x21f3, 0x39c6, 0x28b0, 0x3081, 0x39cb, 0x38a5, 0x3a06, 0x3810, 0x380c, 0x3b58, 0x3159, +0x30b7, 0x3a80, 0x3914, 0x341a, 0x3154, 0x305d, 0x37b1, 0x3551, 0x2712, 0x3b44, 0x34c6, 0x3aaf, 0x3686, 0x319b, 0x3b0a, 0x37ca, 0x3a86, 0x3933, 0x3043, 0x3970, 0x2c82, 0x396e, 0x39b0, 0x3657, 0x39db, 0x3143, 0x33cb, 0x3a4f, 0x349f, 0x35b6, 0x2a9e, 0x39e1, 0x38a4, 0x2943, 0x25b6, 0x3966, 0x3b5e, 0x396e, 0x32a4, 0x3456, 0x35c8, 0x3b18, 0x3b5f, 0x37ba, 0x3554, 0x3979, 0x3b80, 0x3a88, +0x344f, 0x3a2c, 0x39e0, 0x3128, 0x3a0f, 0x390c, 0x3833, 0x39e5, 0x39e5, 0x3a75, 0x3b0a, 0x34ce, 0x383e, 0x3a7d, 0x3855, 0x3b1a, 0x3b5b, 0x37a8, 0x393f, 0x3103, 0x3b4d, 0x3b35, 0x3969, 0x366c, 0x34de, 0x3031, 0x30b1, 0x3788, 0x3521, 0x378d, 0x38f9, 0x379c, 0x39c9, 0x3507, 0x30cb, 0x3115, 0x3532, 0x298a, 0x3923, 0x37f9, 0x3be9, 0x39f8, 0x34b0, 0x3996, 0x34df, 0x3967, 0x3a9c, 0x30a8, +0x3bc8, 0x373c, 0x3174, 0x3a77, 0x36a2, 0x2992, 0x34f4, 0x3457, 0x2426, 0x3b9b, 0x35a1, 0x38a9, 0x39e6, 0x36ed, 0x3623, 0x2a73, 0x3afc, 0x3309, 0x3979, 0x3927, 0x3423, 0x3150, 0x3a55, 0x34c2, 0x34a2, 0x375b, 0x38a3, 0x3838, 0x3bc0, 0x3b15, 0x389d, 0x36e2, 0x361f, 0x3855, 0x3482, 0x3bb9, 0x3af9, 0x38ee, 0x3981, 0x312d, 0x3448, 0x3972, 0x3761, 0x38f2, 0x3a00, 0x34c3, 0x2dee, 0x3a23, +0x3a41, 0x3975, 0x388c, 0x2b7f, 0x3a39, 0x364d, 0x3849, 0x3600, 0x3885, 0x3761, 0x3845, 0x38ae, 0x3523, 0x32ae, 0x25d3, 0x391e, 0x36fb, 0x3897, 0x39f7, 0x3bb9, 0x3571, 0x395b, 0x364c, 0x39f1, 0x39d5, 0x3877, 0x3b82, 0x30e6, 0x3a99, 0x31b6, 0x3942, 0x33a7, 0x36b8, 0x3874, 0x2f01, 0x3607, 0x3914, 0x3b8a, 0x3589, 0x385b, 0x39c6, 0x3423, 0x286f, 0x3b94, 0x351f, 0x3bf9, 0x38d2, 0x39fa }; \ No newline at end of file diff --git a/hwpe/redmule/inc/z_2D.h b/hwpe/redmule/inc/z_2D.h index aff808a..5c1e055 100644 --- a/hwpe/redmule/inc/z_2D.h +++ b/hwpe/redmule/inc/z_2D.h @@ -1,27 +1,51 @@ /* Header file generated by RedMulE Golden Model */ -uint16_t z_oup_2D [24][32] = { -0x4845, 0x4897, 0x4608, 0x4838, 0x4855, 0x487b, 0x4869, 0x4880, 0x46d1, 0x48b0, 0x48db, 0x483f, 0x48c9, 0x485f, 0x4881, 0x483a, 0x484b, 0x472c, 0x4762, 0x492b, 0x4822, 0x48fd, 0x488e, 0x492e, 0x483e, 0x484f, 0x49e8, 0x46d7, 0x484b, 0x489d, 0x490b, 0x47e9, -0x484f, 0x47d2, 0x44be, 0x4747, 0x47c7, 0x46c0, 0x4727, 0x48af, 0x46c5, 0x482d, 0x483d, 0x482e, 0x4897, 0x479f, 0x488b, 0x4749, 0x489a, 0x46a8, 0x46f2, 0x488b, 0x4891, 0x47e8, 0x4872, 0x483d, 0x4716, 0x46fd, 0x49b5, 0x46a0, 0x46e7, 0x47a4, 0x48a1, 0x4767, -0x4939, 0x4935, 0x4703, 0x48c1, 0x4863, 0x48bd, 0x4913, 0x48cf, 0x48b6, 0x48b8, 0x4946, 0x4920, 0x495e, 0x48e1, 0x4938, 0x48b2, 0x493a, 0x4882, 0x483b, 0x49d5, 0x4911, 0x4972, 0x496b, 0x49df, 0x48f2, 0x4888, 0x4a46, 0x4821, 0x48c1, 0x490c, 0x49b2, 0x48a3, -0x463a, 0x47b0, 0x44cb, 0x4762, 0x4765, 0x46b9, 0x466a, 0x4814, 0x4631, 0x4796, 0x4666, 0x474b, 0x4798, 0x4704, 0x4838, 0x4761, 0x47d3, 0x4590, 0x45ea, 0x48a2, 0x47f1, 0x4844, 0x484b, 0x4776, 0x47d6, 0x46d8, 0x48f3, 0x44d3, 0x46fa, 0x478d, 0x481e, 0x466e, -0x4827, 0x481e, 0x45a2, 0x4794, 0x4727, 0x4806, 0x475d, 0x48d5, 0x4708, 0x4828, 0x4862, 0x480d, 0x4895, 0x4832, 0x48bd, 0x47f1, 0x482a, 0x46a7, 0x47b1, 0x492d, 0x484d, 0x4884, 0x48dc, 0x485f, 0x476d, 0x480c, 0x48e9, 0x46d3, 0x4728, 0x4884, 0x48a0, 0x480e, -0x4862, 0x4813, 0x4675, 0x485a, 0x47e8, 0x4738, 0x4836, 0x4823, 0x46e7, 0x4821, 0x4822, 0x47b3, 0x4846, 0x4855, 0x4863, 0x4717, 0x4872, 0x47c1, 0x46d5, 0x488e, 0x47e2, 0x485f, 0x487c, 0x48b8, 0x481e, 0x4788, 0x48bd, 0x4677, 0x46c9, 0x47f8, 0x48fe, 0x47fc, -0x47a0, 0x47b2, 0x4588, 0x467e, 0x4662, 0x46c7, 0x46e8, 0x4812, 0x4536, 0x474e, 0x46c0, 0x468f, 0x481f, 0x4679, 0x46a1, 0x46e2, 0x4809, 0x4560, 0x4630, 0x47eb, 0x46b5, 0x4757, 0x4848, 0x477f, 0x46a6, 0x46d8, 0x4870, 0x459a, 0x4670, 0x4678, 0x47d2, 0x468c, -0x4762, 0x48c4, 0x46e3, 0x4791, 0x46b1, 0x486d, 0x47d0, 0x4867, 0x468d, 0x47f6, 0x48a5, 0x4756, 0x4857, 0x4854, 0x4866, 0x4838, 0x484d, 0x46ec, 0x47d2, 0x48f6, 0x484a, 0x4879, 0x4848, 0x483c, 0x471d, 0x4806, 0x48fa, 0x4730, 0x4768, 0x47b8, 0x4865, 0x46f9, -0x48a8, 0x4918, 0x46ca, 0x4867, 0x4800, 0x4862, 0x48d3, 0x4910, 0x474e, 0x4849, 0x48eb, 0x486b, 0x4966, 0x48c5, 0x48f4, 0x4830, 0x48f9, 0x4778, 0x481e, 0x499e, 0x48cf, 0x48f1, 0x4982, 0x4923, 0x487c, 0x47cf, 0x49ea, 0x4649, 0x4773, 0x495e, 0x48b2, 0x483f, -0x48a7, 0x4975, 0x4616, 0x481e, 0x481f, 0x4866, 0x48b6, 0x4864, 0x47dc, 0x4873, 0x485c, 0x487f, 0x4938, 0x491f, 0x490d, 0x48b6, 0x48f8, 0x48a1, 0x4859, 0x492d, 0x489c, 0x4915, 0x4899, 0x4887, 0x486c, 0x4859, 0x49ca, 0x471e, 0x4867, 0x4918, 0x48d3, 0x4827, -0x488b, 0x4998, 0x4704, 0x481d, 0x48b8, 0x4880, 0x4876, 0x4944, 0x470c, 0x48f2, 0x48b9, 0x489b, 0x4956, 0x48e5, 0x48d6, 0x48a5, 0x48dc, 0x4856, 0x484e, 0x49ab, 0x48e0, 0x490e, 0x48dd, 0x4945, 0x488b, 0x48dd, 0x4a32, 0x47ea, 0x4835, 0x4911, 0x4965, 0x4819, -0x460e, 0x481e, 0x452c, 0x4673, 0x475c, 0x4717, 0x46f6, 0x46d0, 0x4696, 0x46bc, 0x4726, 0x481e, 0x4763, 0x46ea, 0x46fe, 0x4758, 0x478b, 0x4627, 0x4704, 0x483f, 0x46ad, 0x47b1, 0x4792, 0x4816, 0x46f2, 0x4684, 0x4827, 0x45a8, 0x472f, 0x47a4, 0x4797, 0x462b, -0x483f, 0x48ab, 0x468f, 0x4863, 0x485a, 0x4766, 0x481d, 0x48cb, 0x47dc, 0x4903, 0x48fc, 0x4830, 0x48cc, 0x483e, 0x48ab, 0x4864, 0x4966, 0x4763, 0x4794, 0x499d, 0x488e, 0x488b, 0x48dc, 0x4960, 0x4854, 0x484c, 0x499c, 0x474c, 0x4826, 0x48bc, 0x4949, 0x4883, -0x489d, 0x4905, 0x4718, 0x481e, 0x48e3, 0x48f4, 0x48c1, 0x4904, 0x47e8, 0x48b3, 0x4892, 0x48d4, 0x48ff, 0x4894, 0x48d5, 0x4886, 0x48fa, 0x4803, 0x47d2, 0x492e, 0x4870, 0x48b2, 0x48e5, 0x492b, 0x487b, 0x4785, 0x49e3, 0x471d, 0x4837, 0x48bf, 0x489b, 0x48c4, -0x475c, 0x4871, 0x464a, 0x4811, 0x47af, 0x471c, 0x4817, 0x4817, 0x463b, 0x484e, 0x477f, 0x464f, 0x4704, 0x487c, 0x47a3, 0x4725, 0x4853, 0x462a, 0x465a, 0x4860, 0x4736, 0x4880, 0x47e1, 0x482b, 0x4811, 0x46c0, 0x48dc, 0x475d, 0x4668, 0x4806, 0x4893, 0x46f4, -0x4858, 0x4959, 0x463d, 0x487b, 0x480f, 0x484e, 0x48c0, 0x48a6, 0x4847, 0x4894, 0x48a0, 0x484a, 0x491e, 0x48f4, 0x48fc, 0x48b5, 0x48ce, 0x47d2, 0x47db, 0x497f, 0x4955, 0x4939, 0x48a7, 0x48ce, 0x4890, 0x4884, 0x49d6, 0x4763, 0x486e, 0x4922, 0x48f4, 0x48c3, -0x47ec, 0x491c, 0x4698, 0x4783, 0x4715, 0x4754, 0x4745, 0x4752, 0x472f, 0x4832, 0x4817, 0x4809, 0x47f8, 0x48c3, 0x47e6, 0x4800, 0x48b6, 0x4730, 0x480a, 0x48cb, 0x479e, 0x488e, 0x47c2, 0x488e, 0x472f, 0x47ee, 0x489d, 0x4744, 0x4755, 0x4851, 0x4846, 0x47d3, -0x4838, 0x48a0, 0x4634, 0x4762, 0x4786, 0x4806, 0x47e3, 0x482d, 0x4726, 0x486c, 0x47b7, 0x4803, 0x48ac, 0x4814, 0x48e0, 0x4839, 0x4827, 0x4750, 0x46f2, 0x48c5, 0x483f, 0x4886, 0x48ad, 0x4856, 0x47e8, 0x47a9, 0x4937, 0x4743, 0x46d0, 0x481f, 0x484c, 0x4804, -0x47fd, 0x481f, 0x456d, 0x4813, 0x474d, 0x4807, 0x4688, 0x480e, 0x46e8, 0x4810, 0x469f, 0x4799, 0x4853, 0x478f, 0x47f2, 0x4824, 0x47d0, 0x471f, 0x46da, 0x485f, 0x4813, 0x481c, 0x482e, 0x4863, 0x4786, 0x480b, 0x48c9, 0x46b8, 0x475a, 0x46e2, 0x4852, 0x46c5, -0x45af, 0x4802, 0x4466, 0x46c2, 0x465d, 0x4743, 0x46b7, 0x47ba, 0x4636, 0x46c3, 0x4677, 0x4784, 0x485a, 0x47c2, 0x46dc, 0x46ac, 0x47de, 0x460e, 0x465f, 0x4834, 0x47f4, 0x4769, 0x46fc, 0x4810, 0x45fd, 0x45ea, 0x48d0, 0x45b5, 0x4704, 0x4783, 0x4830, 0x46c4, -0x4759, 0x47c7, 0x453d, 0x45b0, 0x4741, 0x4702, 0x4736, 0x4793, 0x461b, 0x47ba, 0x470b, 0x46dd, 0x4657, 0x470b, 0x470d, 0x4710, 0x486c, 0x468f, 0x45c3, 0x46ba, 0x479d, 0x483b, 0x46c9, 0x4774, 0x46a9, 0x46a7, 0x4833, 0x4606, 0x4690, 0x46a9, 0x46f5, 0x46a7, -0x47ac, 0x48bb, 0x452c, 0x4803, 0x470f, 0x4824, 0x47d5, 0x48cb, 0x4707, 0x484a, 0x4832, 0x4797, 0x4851, 0x482c, 0x487a, 0x4877, 0x4891, 0x465d, 0x47f4, 0x48ce, 0x4898, 0x4899, 0x484e, 0x486a, 0x47ac, 0x47f0, 0x493e, 0x4611, 0x47e2, 0x489e, 0x488c, 0x46af, -0x4665, 0x4836, 0x45e4, 0x46b6, 0x46a1, 0x46b9, 0x46c8, 0x46dd, 0x4658, 0x474b, 0x467b, 0x4777, 0x4769, 0x4798, 0x4785, 0x475e, 0x472a, 0x4656, 0x45fb, 0x4881, 0x46fc, 0x472d, 0x476e, 0x47a3, 0x465d, 0x46ca, 0x4855, 0x4500, 0x464f, 0x479a, 0x46c3, 0x4738, -0x481e, 0x486c, 0x4659, 0x4801, 0x4756, 0x477a, 0x47d5, 0x487b, 0x4706, 0x4808, 0x484f, 0x4838, 0x4870, 0x4863, 0x48d3, 0x4806, 0x4865, 0x4771, 0x46be, 0x494c, 0x4915, 0x484c, 0x4900, 0x4862, 0x481a, 0x46e8, 0x4974, 0x46a0, 0x4775, 0x483d, 0x487c, 0x480e +uint16_t z_oup_2D [48][48] = { +0x4c08, 0x4b52, 0x4c14, 0x4bed, 0x4c2d, 0x4ba6, 0x4ca5, 0x4c10, 0x4c37, 0x4b6d, 0x4af1, 0x4bd2, 0x4c16, 0x4c0f, 0x4ccd, 0x4b96, 0x4c23, 0x4b9a, 0x4c05, 0x4bc8, 0x4ac8, 0x4b1a, 0x4c24, 0x4b3f, 0x4b58, 0x4c01, 0x4bc1, 0x4b71, 0x4c8e, 0x4c37, 0x4c12, 0x4cb5, 0x4c0a, 0x4bae, 0x4c56, 0x4c0e, 0x4bec, 0x4a81, 0x4c14, 0x4b4e, 0x4bac, 0x4b55, 0x4c20, 0x4b22, 0x4c4e, 0x4c68, 0x4bba, 0x4c33, +0x49ed, 0x4a39, 0x49d5, 0x4ae2, 0x4a83, 0x4a02, 0x4aed, 0x49f6, 0x4a1e, 0x4a4c, 0x49a9, 0x4a10, 0x49fd, 0x49c5, 0x4b06, 0x493c, 0x4a76, 0x4a31, 0x496e, 0x49a7, 0x4842, 0x48fc, 0x4a22, 0x49a9, 0x498d, 0x4ade, 0x4aaa, 0x4972, 0x4a76, 0x4a2c, 0x4a1a, 0x4b37, 0x49b0, 0x4a2b, 0x4a37, 0x4a21, 0x4a4b, 0x4981, 0x4a4b, 0x49f0, 0x4a9f, 0x4a01, 0x4a15, 0x4940, 0x49f2, 0x4a83, 0x4a01, 0x4a27, +0x4b62, 0x4b79, 0x4b15, 0x4c00, 0x4b91, 0x4b2d, 0x4c1e, 0x4af0, 0x4aab, 0x4aed, 0x4af1, 0x4aaa, 0x4b65, 0x4adf, 0x4c04, 0x4a87, 0x4af3, 0x4b20, 0x4a7c, 0x4ada, 0x49e9, 0x4a37, 0x4b2d, 0x4b3f, 0x4a84, 0x4b03, 0x4b15, 0x4a9f, 0x4c34, 0x4b1d, 0x4b50, 0x4bf9, 0x4aed, 0x4afa, 0x4b39, 0x4b30, 0x4b22, 0x4a2a, 0x4bdf, 0x4a89, 0x4b97, 0x4ad6, 0x4b77, 0x4a81, 0x4b56, 0x4b92, 0x4adc, 0x4b54, +0x4b28, 0x4ada, 0x4a71, 0x4a7f, 0x4aca, 0x4a8f, 0x4b14, 0x4a0d, 0x4a41, 0x4ac1, 0x497f, 0x4a46, 0x4a27, 0x4ae2, 0x4b06, 0x4a2a, 0x49ef, 0x4a52, 0x49e1, 0x4a1d, 0x4964, 0x4995, 0x4a4a, 0x49b3, 0x497d, 0x4ac8, 0x4a0d, 0x4a1b, 0x4bc2, 0x4ab9, 0x49ba, 0x4b49, 0x4b0a, 0x4aa1, 0x4ae4, 0x4b13, 0x4aae, 0x48d5, 0x4b35, 0x49f0, 0x4ae6, 0x49cb, 0x4b49, 0x49ff, 0x4b14, 0x4b49, 0x4a01, 0x4a81, +0x4a40, 0x4a35, 0x4a90, 0x4aad, 0x4ada, 0x4ad1, 0x4a6c, 0x4b09, 0x4a96, 0x4a4d, 0x492f, 0x49e3, 0x4a74, 0x4a79, 0x4b59, 0x4a15, 0x49e7, 0x4a96, 0x49ea, 0x49bb, 0x4967, 0x4935, 0x4a18, 0x4a3c, 0x49c3, 0x4aeb, 0x4b1f, 0x4a8f, 0x4bee, 0x4b06, 0x4a18, 0x4b6c, 0x4adf, 0x49e2, 0x4aa7, 0x4aac, 0x4ab5, 0x48d4, 0x4ac8, 0x4a70, 0x49cd, 0x4a55, 0x4ae7, 0x4a39, 0x4af1, 0x4b3b, 0x49e9, 0x4abd, +0x49cc, 0x49f6, 0x49f2, 0x49d5, 0x4a75, 0x49cb, 0x4ae2, 0x49fd, 0x4a00, 0x49b7, 0x49d2, 0x4940, 0x49f4, 0x4a1e, 0x4a2b, 0x49ad, 0x4948, 0x4964, 0x499d, 0x4a2e, 0x4930, 0x48eb, 0x4a53, 0x498d, 0x497b, 0x4a10, 0x4a5f, 0x4925, 0x4b0b, 0x490e, 0x4a4a, 0x4a73, 0x49d4, 0x493a, 0x49a8, 0x49ee, 0x4a23, 0x48f5, 0x4a27, 0x4934, 0x49ab, 0x4a01, 0x49f0, 0x4975, 0x4a77, 0x4a75, 0x493c, 0x495f, +0x4ac3, 0x4ae2, 0x4a29, 0x4b42, 0x4ad9, 0x49fe, 0x4b00, 0x4b04, 0x4b30, 0x4b22, 0x49f6, 0x4a0e, 0x4ae3, 0x4abc, 0x4b47, 0x4a6a, 0x4a5b, 0x4a5e, 0x4a42, 0x4a80, 0x49a1, 0x49be, 0x4b36, 0x4a10, 0x4a2b, 0x4ae5, 0x4ad0, 0x4aa4, 0x4b3c, 0x4aad, 0x4a2a, 0x4c1a, 0x4b2c, 0x4b2f, 0x4aa0, 0x4a77, 0x4af6, 0x49e8, 0x4a4b, 0x4a0a, 0x4ae4, 0x4a14, 0x4aa8, 0x4a1d, 0x4ae0, 0x4bae, 0x49c9, 0x4b3a, +0x4af0, 0x4a85, 0x4a70, 0x4a91, 0x4a7c, 0x4aba, 0x4ae7, 0x4a9a, 0x4b17, 0x4ab5, 0x4a25, 0x4a54, 0x4ab5, 0x4b59, 0x4b5b, 0x4a64, 0x4a74, 0x49e1, 0x4ac6, 0x4a66, 0x49cb, 0x498f, 0x4b1f, 0x4ab7, 0x4a0a, 0x4af4, 0x4aab, 0x49fa, 0x4c05, 0x4abb, 0x4a46, 0x4bbe, 0x4a9f, 0x4a37, 0x4a8c, 0x4a69, 0x4a50, 0x492c, 0x4b10, 0x49c6, 0x4b26, 0x4a91, 0x4b2b, 0x4a67, 0x4b4f, 0x4bb2, 0x4a05, 0x4a86, +0x4b3a, 0x4a79, 0x4ac0, 0x4b1e, 0x4ac3, 0x4b05, 0x4c11, 0x49e1, 0x4aa4, 0x4a96, 0x4a06, 0x4aab, 0x4acc, 0x4a66, 0x4b27, 0x4aa7, 0x4a37, 0x4aeb, 0x4a98, 0x4aae, 0x4973, 0x492e, 0x4ad4, 0x4a1c, 0x49f9, 0x4aca, 0x4ac8, 0x4a51, 0x4ba4, 0x4a87, 0x4ac1, 0x4b3c, 0x4add, 0x4a8f, 0x4a7d, 0x4ad7, 0x4adc, 0x49b9, 0x4aca, 0x4a95, 0x4ada, 0x4a37, 0x4b55, 0x4ad0, 0x4b78, 0x4b1c, 0x4a29, 0x4b1f, +0x4a63, 0x4aca, 0x49b7, 0x4a92, 0x4ada, 0x49fe, 0x4ab5, 0x4a3d, 0x4a42, 0x49d9, 0x49fc, 0x4a00, 0x4ade, 0x4a34, 0x4b06, 0x4931, 0x4943, 0x4a63, 0x49e9, 0x4978, 0x4965, 0x48f2, 0x4a89, 0x49f5, 0x4a38, 0x49ac, 0x4a38, 0x49b1, 0x4b82, 0x4a09, 0x4a31, 0x4b64, 0x4a91, 0x4a2c, 0x4a1e, 0x4a97, 0x4ab3, 0x48a0, 0x49fd, 0x496d, 0x4a1e, 0x494e, 0x4a0e, 0x4960, 0x4b38, 0x4b1a, 0x49ae, 0x49f6, +0x4a7f, 0x4a51, 0x4a0d, 0x4a5f, 0x4a11, 0x4a4c, 0x4b44, 0x49aa, 0x4a60, 0x4a7e, 0x4a36, 0x4a0c, 0x4a27, 0x4a56, 0x4b50, 0x497d, 0x4a2b, 0x49f3, 0x4a2f, 0x4a21, 0x48db, 0x4914, 0x4a92, 0x49f7, 0x499d, 0x4a7d, 0x4a42, 0x49c4, 0x4ab0, 0x49f0, 0x4a17, 0x4ad2, 0x4a17, 0x4a65, 0x4a4a, 0x49bc, 0x49b2, 0x496c, 0x4acc, 0x4a01, 0x4a5e, 0x49f2, 0x4a87, 0x495d, 0x4af6, 0x4a7c, 0x4a0d, 0x4ac9, +0x4988, 0x4a5b, 0x4a71, 0x4a17, 0x4ae3, 0x4a1a, 0x4a00, 0x4a7e, 0x4a47, 0x49fd, 0x499f, 0x49dd, 0x4a83, 0x4a22, 0x4a19, 0x49c6, 0x4a0a, 0x4aa2, 0x4971, 0x49b1, 0x4890, 0x48a4, 0x4a89, 0x49a8, 0x49fa, 0x49bc, 0x4996, 0x49e2, 0x4b36, 0x49df, 0x4a58, 0x4b51, 0x4b09, 0x4a54, 0x4a87, 0x4a2d, 0x4a78, 0x493b, 0x49cd, 0x494d, 0x4983, 0x497a, 0x4a78, 0x4a50, 0x4a81, 0x4b0b, 0x4921, 0x4a41, +0x4aa6, 0x4aaf, 0x4ab0, 0x4ade, 0x4b5d, 0x4a80, 0x4bb8, 0x4a43, 0x4a9f, 0x4a73, 0x4ae0, 0x4a44, 0x4ae1, 0x4aef, 0x4b70, 0x4a7f, 0x4a1c, 0x4b07, 0x4a54, 0x4a29, 0x494e, 0x49d0, 0x4ac3, 0x4a59, 0x49ec, 0x4abe, 0x4abe, 0x4a7c, 0x4afe, 0x4b14, 0x4a27, 0x4bbc, 0x4ad0, 0x4adc, 0x4b72, 0x4b05, 0x4ae4, 0x4971, 0x4a4b, 0x4a7a, 0x4a8d, 0x4a08, 0x4ae2, 0x4a51, 0x4b1c, 0x4b01, 0x4a4a, 0x4b18, +0x4a35, 0x4a4b, 0x49cf, 0x4a17, 0x4a6e, 0x49dd, 0x4a79, 0x4a1d, 0x4ac7, 0x49ad, 0x4924, 0x49c4, 0x4a33, 0x4a9d, 0x4a98, 0x4a36, 0x49b6, 0x4a30, 0x498d, 0x4a15, 0x48da, 0x48ea, 0x4a14, 0x49e2, 0x49ab, 0x4a44, 0x4a2c, 0x4973, 0x4ba2, 0x4a2b, 0x4a29, 0x4afd, 0x4a81, 0x4994, 0x4a16, 0x4a50, 0x4a68, 0x4875, 0x4a25, 0x4953, 0x4a2e, 0x4a1f, 0x4ad3, 0x49d2, 0x49dc, 0x4b0e, 0x49e3, 0x4a64, +0x4a67, 0x4b45, 0x4a92, 0x4b16, 0x4b93, 0x4a7e, 0x4ae8, 0x4a8a, 0x4ade, 0x4b12, 0x4a76, 0x4a98, 0x4a57, 0x4b00, 0x4b10, 0x4a4f, 0x4a7b, 0x49fb, 0x4a48, 0x4ac3, 0x4998, 0x496b, 0x4b02, 0x4aa7, 0x4a63, 0x4af4, 0x4ad6, 0x4a25, 0x4b23, 0x4abe, 0x4af0, 0x4bdc, 0x4acb, 0x4a6f, 0x4a8a, 0x4ae7, 0x4a40, 0x49d6, 0x4a4e, 0x4a1b, 0x4ad3, 0x4b3e, 0x4b6e, 0x4ab8, 0x4b19, 0x4b85, 0x4a20, 0x4ad6, +0x4916, 0x492c, 0x48c6, 0x49a8, 0x48eb, 0x493d, 0x49e4, 0x4920, 0x497a, 0x490f, 0x48cd, 0x489f, 0x49b9, 0x497b, 0x4a0d, 0x490d, 0x4968, 0x490a, 0x48b5, 0x4902, 0x489d, 0x481d, 0x4933, 0x48fb, 0x489d, 0x491e, 0x49a4, 0x48fd, 0x49a8, 0x4976, 0x48ed, 0x49c0, 0x49d0, 0x4901, 0x497f, 0x495a, 0x48db, 0x489f, 0x490c, 0x4906, 0x48fd, 0x4912, 0x499c, 0x4908, 0x4922, 0x49b6, 0x4852, 0x49c7, +0x49eb, 0x4957, 0x49e9, 0x49f1, 0x4a79, 0x49dd, 0x4a74, 0x4982, 0x49c2, 0x49f4, 0x4937, 0x494f, 0x4a28, 0x49ac, 0x49cf, 0x48ad, 0x496a, 0x4a23, 0x4950, 0x4a83, 0x48bc, 0x4955, 0x4a60, 0x4992, 0x49a3, 0x499b, 0x4a31, 0x492d, 0x4aea, 0x4980, 0x499f, 0x4a7c, 0x49a9, 0x4904, 0x4a17, 0x4a34, 0x49d9, 0x48f7, 0x49a2, 0x49a6, 0x4a91, 0x4a04, 0x49ee, 0x4931, 0x4a4f, 0x4acc, 0x49a6, 0x4a01, +0x4a67, 0x4af7, 0x4a92, 0x4aca, 0x4b39, 0x4b14, 0x4b05, 0x4ac6, 0x4a53, 0x4a76, 0x4a41, 0x4a0a, 0x4a65, 0x4a21, 0x4ba7, 0x4a19, 0x49ea, 0x4a7d, 0x4a08, 0x4a2d, 0x4930, 0x494e, 0x4ab8, 0x49b6, 0x49b8, 0x4ab7, 0x4b4d, 0x4a30, 0x4b1c, 0x4a9b, 0x4abe, 0x4bbb, 0x4ada, 0x4a16, 0x4aeb, 0x4a79, 0x4aa2, 0x499b, 0x4afd, 0x49eb, 0x4a51, 0x4a65, 0x4b60, 0x49de, 0x4bad, 0x4ac0, 0x4a21, 0x4a7c, +0x4b17, 0x4b30, 0x4afa, 0x4bd3, 0x4b33, 0x4ae4, 0x4be9, 0x4bb6, 0x4b60, 0x4b7f, 0x4ad4, 0x4a0f, 0x4bd2, 0x4b4a, 0x4bdc, 0x4a49, 0x4a7d, 0x4b73, 0x4af5, 0x4a98, 0x4999, 0x49e0, 0x4b70, 0x4a91, 0x4abe, 0x4b44, 0x4b2b, 0x4adb, 0x4bf0, 0x4b22, 0x4a02, 0x4c3c, 0x4bdf, 0x4b2d, 0x4b1a, 0x4b3b, 0x4bec, 0x4a09, 0x4b54, 0x4a8d, 0x4b11, 0x4ae9, 0x4b63, 0x4a1b, 0x4beb, 0x4bb4, 0x4b1d, 0x4b1e, +0x49da, 0x4a5d, 0x4a46, 0x4ae3, 0x4a1f, 0x49ac, 0x4add, 0x4a06, 0x4b11, 0x4a4c, 0x4990, 0x49af, 0x4a0f, 0x4a16, 0x4b22, 0x496a, 0x4a1e, 0x4a0e, 0x4a3f, 0x4a15, 0x4921, 0x4962, 0x4a12, 0x49da, 0x49ed, 0x4a51, 0x4a7c, 0x49a9, 0x4b0c, 0x4a46, 0x49cb, 0x4b37, 0x4ace, 0x4a6d, 0x4a66, 0x4999, 0x4a3a, 0x495a, 0x4abf, 0x4921, 0x49da, 0x4992, 0x4a93, 0x495d, 0x4aa8, 0x4a96, 0x4a29, 0x4a25, +0x497d, 0x4a0a, 0x49bf, 0x49d2, 0x4a66, 0x4993, 0x4a2a, 0x49f3, 0x4a4c, 0x4a18, 0x49a3, 0x490c, 0x49b4, 0x4a32, 0x4a2d, 0x49f3, 0x4a06, 0x4a0c, 0x4936, 0x49ed, 0x48e1, 0x4936, 0x4a33, 0x4a05, 0x4914, 0x4a49, 0x4a30, 0x495e, 0x4a73, 0x49f1, 0x4966, 0x4ad7, 0x49fa, 0x49c0, 0x49f4, 0x4995, 0x4a12, 0x4918, 0x4a91, 0x49a3, 0x4a15, 0x493b, 0x4b13, 0x4945, 0x4a16, 0x4a49, 0x4979, 0x49cd, +0x4a5e, 0x4ad5, 0x4ad2, 0x4ac2, 0x4af9, 0x4a70, 0x4bb7, 0x4afb, 0x4ba0, 0x4ac8, 0x4a43, 0x4aa7, 0x4b03, 0x4b45, 0x4bd9, 0x4a08, 0x4a33, 0x4aea, 0x4a3f, 0x4a97, 0x49da, 0x4961, 0x4b20, 0x4ab9, 0x4a73, 0x4a8f, 0x4a2c, 0x4a6e, 0x4bda, 0x4a6d, 0x4a5a, 0x4bf0, 0x4b7b, 0x4af7, 0x4b3d, 0x4aba, 0x4b3f, 0x4961, 0x4ada, 0x4993, 0x4ae4, 0x49bf, 0x4b0a, 0x4a6d, 0x4ace, 0x4bd7, 0x4a61, 0x4aeb, +0x49cb, 0x49b6, 0x4996, 0x4a4d, 0x4a39, 0x497c, 0x4afa, 0x4a69, 0x4a2b, 0x4940, 0x49c0, 0x492d, 0x4a15, 0x49b4, 0x4a40, 0x49ae, 0x4969, 0x4968, 0x49ea, 0x4981, 0x48ca, 0x48b3, 0x4a18, 0x4960, 0x49ac, 0x4990, 0x4a17, 0x4958, 0x4b2a, 0x4a16, 0x4a3c, 0x4aa0, 0x49a7, 0x4953, 0x4996, 0x4a56, 0x49eb, 0x4918, 0x4948, 0x4951, 0x4982, 0x4936, 0x49b4, 0x4992, 0x4a9c, 0x4a17, 0x492e, 0x49ee, +0x4af4, 0x4aa5, 0x4a04, 0x4a8e, 0x4ad9, 0x4a14, 0x4b0e, 0x4b84, 0x4bb4, 0x4a66, 0x4a2a, 0x4a6b, 0x4a74, 0x4a59, 0x4af0, 0x49a5, 0x4a79, 0x4aea, 0x4a90, 0x4a90, 0x4961, 0x4982, 0x4aea, 0x4a8e, 0x49f1, 0x4af6, 0x4a63, 0x49e0, 0x4b74, 0x4a34, 0x4a68, 0x4b8d, 0x4aa4, 0x49fc, 0x4a60, 0x49b3, 0x4a4c, 0x4a11, 0x4a71, 0x4906, 0x4a47, 0x49c1, 0x4a81, 0x4976, 0x4b2d, 0x4adb, 0x49e1, 0x4a2d, +0x49a1, 0x49c0, 0x49b6, 0x498b, 0x49eb, 0x494d, 0x49fd, 0x49d4, 0x4931, 0x4a81, 0x4961, 0x4953, 0x49c9, 0x4989, 0x49cd, 0x4976, 0x48fb, 0x49a4, 0x48c5, 0x4969, 0x48d0, 0x48e3, 0x4a23, 0x495c, 0x48eb, 0x4a1b, 0x4a07, 0x48f9, 0x4a6d, 0x4982, 0x49c4, 0x4a3d, 0x498b, 0x495c, 0x4931, 0x4a10, 0x49ce, 0x48fe, 0x497b, 0x49a5, 0x4a09, 0x49a6, 0x4aa2, 0x4953, 0x49ff, 0x4a30, 0x48f5, 0x49c3, +0x4a01, 0x4968, 0x497d, 0x4951, 0x4a12, 0x48fd, 0x49d8, 0x49c8, 0x4987, 0x49c0, 0x48ab, 0x4981, 0x495e, 0x49d4, 0x49b8, 0x48dc, 0x490d, 0x491b, 0x48cd, 0x491f, 0x4840, 0x4881, 0x49f7, 0x4857, 0x493c, 0x495b, 0x495a, 0x497a, 0x4a34, 0x498c, 0x4900, 0x4a4e, 0x49bb, 0x49aa, 0x499f, 0x49bd, 0x493b, 0x48a4, 0x4977, 0x4945, 0x4945, 0x48ef, 0x499c, 0x4910, 0x49c4, 0x4aad, 0x48f9, 0x492e, +0x4b0c, 0x4b0c, 0x4b29, 0x4b70, 0x4b6c, 0x4a9a, 0x4bcb, 0x4af2, 0x4af1, 0x4b38, 0x4a0d, 0x4ac1, 0x4b1a, 0x4b25, 0x4be6, 0x4a26, 0x4b43, 0x4acc, 0x4a96, 0x4a6d, 0x4a40, 0x49f3, 0x4aea, 0x4adb, 0x4b0a, 0x4b3a, 0x4b1a, 0x4a97, 0x4bf5, 0x4acc, 0x4b64, 0x4c0b, 0x4adc, 0x4a4d, 0x4ab0, 0x4aaa, 0x4a75, 0x49ff, 0x4ad9, 0x4aa3, 0x4aed, 0x4ab8, 0x4b42, 0x4a62, 0x4b21, 0x4b61, 0x4a65, 0x4ad8, +0x4ac3, 0x4aae, 0x49e7, 0x4ac0, 0x4ab9, 0x4a2a, 0x4aeb, 0x4a99, 0x4add, 0x4ad4, 0x49e2, 0x49c4, 0x4af6, 0x4a94, 0x4aac, 0x4a3e, 0x4a53, 0x4ac0, 0x49a9, 0x4a78, 0x4901, 0x49ad, 0x4ac8, 0x4a04, 0x49e4, 0x4ac3, 0x4aa7, 0x4a0e, 0x4b92, 0x4a4d, 0x4a04, 0x4b27, 0x4ae6, 0x4a05, 0x4a60, 0x4a0c, 0x4a26, 0x498a, 0x4b16, 0x4a27, 0x4ab3, 0x4a6d, 0x4afa, 0x49bf, 0x4ad0, 0x4b14, 0x49c4, 0x4a9f, +0x4a9e, 0x4a45, 0x4a66, 0x4ae1, 0x4a7a, 0x4ad5, 0x4b8c, 0x4a8c, 0x4a75, 0x4b0d, 0x49cb, 0x49a4, 0x4b1a, 0x4a6f, 0x4ba5, 0x4a31, 0x4a24, 0x49f5, 0x4aa7, 0x4a82, 0x4913, 0x4957, 0x4a96, 0x4a02, 0x4a2c, 0x4a5f, 0x4b2b, 0x4a5d, 0x4c22, 0x4b44, 0x4a59, 0x4c06, 0x4b22, 0x4a3d, 0x4ada, 0x4af3, 0x4ad3, 0x48d7, 0x4af6, 0x4ab2, 0x4b11, 0x4ae3, 0x4bcc, 0x4a8a, 0x4b0a, 0x4b0a, 0x4a53, 0x4b42, +0x4a5f, 0x4a3a, 0x49be, 0x4abe, 0x4a91, 0x4a3c, 0x4b64, 0x49fc, 0x4a28, 0x4a5f, 0x49fe, 0x49c4, 0x4a75, 0x4a40, 0x4b24, 0x4a13, 0x49d0, 0x4a68, 0x4973, 0x4a3a, 0x492c, 0x495c, 0x4aa0, 0x49a3, 0x4978, 0x4a7d, 0x4afa, 0x4a21, 0x4b08, 0x4a6e, 0x4a45, 0x4b85, 0x4a4e, 0x49bd, 0x4aae, 0x4aa7, 0x4a0f, 0x48fd, 0x4a4f, 0x4a0c, 0x4a7a, 0x4a06, 0x4a62, 0x4992, 0x4b2c, 0x4aa0, 0x4a27, 0x4a8d, +0x4ad6, 0x4ad2, 0x4a41, 0x4b36, 0x4b2a, 0x49ce, 0x4b5d, 0x4a88, 0x4a5d, 0x4ab2, 0x4a18, 0x4a04, 0x4a93, 0x4a79, 0x4b1a, 0x49c5, 0x4a48, 0x4a2c, 0x4a40, 0x4a7e, 0x4972, 0x49c0, 0x4abc, 0x49dc, 0x4a64, 0x4a5d, 0x4b30, 0x4a58, 0x4be0, 0x4a5a, 0x4aae, 0x4bcb, 0x4a87, 0x4a4f, 0x4aa0, 0x4ace, 0x4a8b, 0x4970, 0x4ae7, 0x49a3, 0x4a91, 0x49cf, 0x4b21, 0x4a81, 0x4b30, 0x4b6b, 0x4a06, 0x49f9, +0x4a27, 0x4a1d, 0x4a0e, 0x4a34, 0x49de, 0x49af, 0x4a3a, 0x49ba, 0x4a05, 0x4a0b, 0x4994, 0x4994, 0x4a57, 0x495d, 0x4a8f, 0x48e5, 0x498e, 0x49bf, 0x4966, 0x499c, 0x48b0, 0x48fb, 0x4a33, 0x4992, 0x49aa, 0x49f4, 0x4a13, 0x49d0, 0x4aee, 0x4a34, 0x49fb, 0x4ac4, 0x4a08, 0x4951, 0x4a3d, 0x49e5, 0x49ba, 0x48c4, 0x4a19, 0x4945, 0x49f8, 0x4957, 0x4a47, 0x48d2, 0x4a4e, 0x4a14, 0x492f, 0x496d, +0x4a89, 0x4a3c, 0x49e3, 0x4ac4, 0x4a78, 0x4a8e, 0x4b2b, 0x4a2e, 0x4b0e, 0x4a62, 0x4a48, 0x49f6, 0x49eb, 0x4aa6, 0x4b4d, 0x49ec, 0x4a5f, 0x4afe, 0x4a79, 0x4a6c, 0x48cc, 0x49b4, 0x4a46, 0x4adb, 0x498f, 0x4a8b, 0x4a4c, 0x4989, 0x4b20, 0x4a7e, 0x4ada, 0x4b23, 0x4a8c, 0x49cb, 0x4a58, 0x4a51, 0x4a2a, 0x4989, 0x4a50, 0x4a21, 0x4a13, 0x49f8, 0x4ae8, 0x49c7, 0x4adc, 0x4ace, 0x4a18, 0x4a21, +0x48d2, 0x49d2, 0x4985, 0x49e9, 0x4a0f, 0x4960, 0x49c7, 0x498b, 0x497c, 0x4960, 0x4886, 0x48bb, 0x49c3, 0x48f2, 0x49fc, 0x48b2, 0x49ae, 0x49c5, 0x4891, 0x4936, 0x4849, 0x482b, 0x49ed, 0x493e, 0x4999, 0x492c, 0x4977, 0x493c, 0x4a50, 0x497a, 0x49f9, 0x4ae5, 0x49c3, 0x48c9, 0x4a5e, 0x49c7, 0x49a0, 0x48c0, 0x498d, 0x48d3, 0x4988, 0x4a09, 0x49e4, 0x48f1, 0x4930, 0x4a27, 0x4910, 0x4949, +0x4bad, 0x4be4, 0x4aac, 0x4b7a, 0x4b3f, 0x4aff, 0x4bfa, 0x4aef, 0x4b76, 0x4ba6, 0x4aed, 0x4a77, 0x4b38, 0x4b2b, 0x4bb9, 0x4aa0, 0x4b70, 0x4b37, 0x4ac1, 0x4b19, 0x49eb, 0x4a2f, 0x4bd3, 0x4ac5, 0x4a6f, 0x4b3a, 0x4b80, 0x4a73, 0x4c1f, 0x4aad, 0x4b16, 0x4c07, 0x4b16, 0x4aec, 0x4a7b, 0x4b0c, 0x4b33, 0x4acc, 0x4b76, 0x4a75, 0x4bd2, 0x4add, 0x4bbb, 0x4a43, 0x4bde, 0x4c06, 0x4b57, 0x4b09, +0x4a13, 0x4a47, 0x4a38, 0x4a94, 0x4a6f, 0x4a22, 0x4ab0, 0x499b, 0x4a1a, 0x49fc, 0x4986, 0x492e, 0x4a1e, 0x4a4a, 0x4afd, 0x49a6, 0x49f6, 0x49d9, 0x4a56, 0x4a64, 0x492d, 0x4902, 0x49df, 0x499a, 0x497e, 0x49c2, 0x4a8f, 0x49c8, 0x4af5, 0x4a7e, 0x4a23, 0x4a96, 0x4a49, 0x49f8, 0x4a11, 0x4a02, 0x4a5c, 0x490b, 0x4a5e, 0x4995, 0x4a0f, 0x49cf, 0x4ae7, 0x4a74, 0x4aca, 0x4a95, 0x49ad, 0x49f5, +0x4aaa, 0x4a49, 0x4a5b, 0x4a39, 0x4ad5, 0x49dd, 0x4af8, 0x4a95, 0x4a50, 0x4a3e, 0x49f6, 0x4a42, 0x4a8c, 0x4ade, 0x4ad3, 0x4a2b, 0x4a3e, 0x4a4e, 0x4a6b, 0x4aa0, 0x49a6, 0x498e, 0x4afb, 0x4a14, 0x4998, 0x4a45, 0x4a5f, 0x49df, 0x4b9e, 0x4a55, 0x4ada, 0x4b60, 0x4a61, 0x4a5d, 0x4ae5, 0x4acc, 0x4a44, 0x4932, 0x4a36, 0x4a2c, 0x49e8, 0x4a5c, 0x4a9b, 0x4a2b, 0x4ac0, 0x4b66, 0x49ff, 0x4ad6, +0x4ac2, 0x4b93, 0x4a9c, 0x4b17, 0x4ad9, 0x4ab1, 0x4b2e, 0x4b12, 0x4a89, 0x4a88, 0x4a85, 0x4ace, 0x4b8e, 0x4a5e, 0x4b3d, 0x4a6d, 0x49cf, 0x4a3c, 0x4a4f, 0x4a94, 0x49ce, 0x495f, 0x4af2, 0x4ac5, 0x4a56, 0x4ad0, 0x4b63, 0x4a1b, 0x4bd6, 0x4ac3, 0x4a51, 0x4b79, 0x4a8e, 0x4a9f, 0x4a0f, 0x4ae3, 0x4aae, 0x4914, 0x4a44, 0x49ed, 0x4a82, 0x4a97, 0x4b41, 0x4a88, 0x4bba, 0x4b16, 0x49d2, 0x4a7e, +0x49f2, 0x4a6e, 0x4a81, 0x4a5c, 0x4aeb, 0x4a0a, 0x4a73, 0x4ac2, 0x4a93, 0x4a6e, 0x4920, 0x49c8, 0x4a41, 0x4acd, 0x4b05, 0x499b, 0x4a4e, 0x49e2, 0x49a7, 0x4a34, 0x4929, 0x4969, 0x4a56, 0x4a62, 0x49b6, 0x4b3f, 0x4aec, 0x49fb, 0x4afa, 0x4a5e, 0x49f1, 0x4b99, 0x4a7e, 0x49a2, 0x4ad1, 0x4a00, 0x4a2a, 0x496b, 0x4a5e, 0x49b8, 0x4ace, 0x4b11, 0x4ae2, 0x49f6, 0x4a39, 0x4b00, 0x4a3c, 0x4a4a, +0x4a92, 0x4a62, 0x4a4e, 0x4a79, 0x4ab0, 0x4a21, 0x4b76, 0x4a4d, 0x4a1d, 0x4a5a, 0x49ce, 0x4a31, 0x4a51, 0x4a28, 0x4b1b, 0x4932, 0x491f, 0x4a1a, 0x4a33, 0x4a2e, 0x490f, 0x4a17, 0x4a43, 0x4aa2, 0x4a26, 0x4a91, 0x4a4e, 0x499c, 0x4b51, 0x4a5b, 0x4a4c, 0x4b79, 0x49f6, 0x4a37, 0x4a49, 0x4ab4, 0x49cd, 0x4906, 0x49f3, 0x49af, 0x4af1, 0x4a02, 0x4a4a, 0x4a91, 0x4aa5, 0x4ab3, 0x499f, 0x4a67, +0x4a3b, 0x4a3f, 0x49f3, 0x4aa5, 0x49cb, 0x4980, 0x49f7, 0x49dc, 0x4a70, 0x49bd, 0x48ff, 0x491b, 0x4932, 0x49d5, 0x4a8c, 0x49c5, 0x49bb, 0x490d, 0x49d9, 0x49d7, 0x48cf, 0x4865, 0x49cf, 0x492c, 0x4909, 0x49fd, 0x4a33, 0x49cf, 0x4aeb, 0x49e3, 0x4a32, 0x4a4a, 0x499a, 0x494d, 0x49a3, 0x4a38, 0x49d3, 0x494f, 0x4a43, 0x495d, 0x4ab2, 0x4a3b, 0x4a7d, 0x4991, 0x49c9, 0x4aeb, 0x499e, 0x4985, +0x4b7c, 0x4bb3, 0x4ac0, 0x4b41, 0x4afa, 0x4b3b, 0x4c33, 0x4b11, 0x4b6b, 0x4ada, 0x4b1c, 0x4b20, 0x4b91, 0x4b6b, 0x4c57, 0x4a26, 0x4a9b, 0x4b18, 0x4a93, 0x4aca, 0x4a1d, 0x4a50, 0x4afe, 0x4a30, 0x4a3c, 0x4b6a, 0x4b8d, 0x4a5f, 0x4b91, 0x4b76, 0x4acc, 0x4bc2, 0x4b2c, 0x4af4, 0x4aea, 0x4b3c, 0x4b5e, 0x49e5, 0x4b18, 0x4a44, 0x4b2f, 0x4a7a, 0x4a6b, 0x4a2f, 0x4bc0, 0x4be2, 0x4aaa, 0x4a7a, +0x4a84, 0x4ad3, 0x4a28, 0x4b2c, 0x4afb, 0x4a4d, 0x4c18, 0x4a96, 0x4abc, 0x4a8b, 0x4a34, 0x4a0a, 0x4b0c, 0x4aeb, 0x4b93, 0x4a67, 0x4af0, 0x4a98, 0x4a26, 0x4a5f, 0x49cc, 0x49c9, 0x4a4d, 0x4a63, 0x4a12, 0x4b3c, 0x4b03, 0x4a1c, 0x4b70, 0x4ad5, 0x4ac7, 0x4b2b, 0x4adf, 0x4a97, 0x4a39, 0x4a71, 0x4a92, 0x499c, 0x4a83, 0x4a03, 0x4ae5, 0x4a13, 0x4a6a, 0x4a36, 0x4b06, 0x4b45, 0x49f3, 0x4ad2, +0x49f7, 0x4a49, 0x4a91, 0x4ab1, 0x4b0f, 0x4a6f, 0x4b24, 0x4a6e, 0x4b0b, 0x4a78, 0x4a1e, 0x4a8e, 0x4a2d, 0x4ad5, 0x4b14, 0x4a69, 0x4a34, 0x49d9, 0x4a70, 0x4a7f, 0x4946, 0x4950, 0x4a89, 0x49e9, 0x49e3, 0x4b5c, 0x4ae0, 0x4a4e, 0x4af8, 0x4a30, 0x4a25, 0x4b04, 0x4a7e, 0x4ad1, 0x4ac7, 0x4a90, 0x4a2e, 0x4947, 0x4a9d, 0x4975, 0x4ac1, 0x4a89, 0x4ae8, 0x4a1e, 0x4b18, 0x4b48, 0x4a13, 0x49fc, +0x4aec, 0x4b39, 0x4a12, 0x4b39, 0x4ae8, 0x4aca, 0x4bdf, 0x4a6b, 0x4ad5, 0x4b66, 0x4a82, 0x4a1b, 0x4b03, 0x4ada, 0x4bde, 0x4a72, 0x4aef, 0x4ad8, 0x4a59, 0x4ac8, 0x49ba, 0x4a41, 0x4b73, 0x4a6c, 0x4a54, 0x4b27, 0x4b94, 0x4ac7, 0x4b64, 0x4acb, 0x4a2d, 0x4be2, 0x4ae6, 0x4a56, 0x4a62, 0x4b2c, 0x4b0f, 0x49db, 0x4afb, 0x4afd, 0x4b23, 0x4afe, 0x4bbc, 0x49cc, 0x4b54, 0x4b81, 0x4a8f, 0x4b3a, +0x4a6c, 0x4ac5, 0x4a37, 0x49f9, 0x4a91, 0x4ab9, 0x4bb2, 0x49f9, 0x4a8d, 0x4a3b, 0x4aab, 0x4a27, 0x4a9c, 0x4ad3, 0x4b24, 0x4a7f, 0x4aee, 0x4a78, 0x4ab4, 0x4a16, 0x49e3, 0x499b, 0x4ae9, 0x49fb, 0x496b, 0x4a36, 0x4a04, 0x49bd, 0x4b04, 0x4a08, 0x4a91, 0x4ae5, 0x4ab2, 0x49fe, 0x4a79, 0x4a48, 0x4a54, 0x48ec, 0x4acc, 0x49b2, 0x4ad1, 0x49cf, 0x4b09, 0x4a1a, 0x4b3f, 0x4aa6, 0x4979, 0x4a14, +0x4b1c, 0x4a5a, 0x4a71, 0x4adc, 0x4b35, 0x4a60, 0x4aeb, 0x4a2f, 0x4a3c, 0x4a9d, 0x49cd, 0x4a85, 0x4ad1, 0x4a8d, 0x4c07, 0x4972, 0x4a2c, 0x4a77, 0x4a55, 0x49aa, 0x4922, 0x4973, 0x4af1, 0x4a31, 0x4995, 0x4aae, 0x4a97, 0x4a50, 0x4b17, 0x4ac6, 0x4a35, 0x4b53, 0x4ad4, 0x49ce, 0x4af5, 0x4b8a, 0x4ad5, 0x4982, 0x4ad1, 0x4a23, 0x4a58, 0x4a90, 0x4afa, 0x49b1, 0x4b43, 0x4af3, 0x4968, 0x4a6a, +0x4a3c, 0x4a62, 0x4a08, 0x4a37, 0x4a1c, 0x49d4, 0x4aa9, 0x4a1a, 0x4a90, 0x4a4d, 0x49e3, 0x49b9, 0x4a1e, 0x49d1, 0x4a88, 0x49eb, 0x49ea, 0x49c3, 0x4a58, 0x4a2b, 0x48e7, 0x4917, 0x49b8, 0x4a0e, 0x49b1, 0x4a57, 0x4a9a, 0x496c, 0x4b0c, 0x49eb, 0x4a17, 0x4ae4, 0x4a90, 0x49cc, 0x49b6, 0x49b6, 0x4a15, 0x4949, 0x4a79, 0x495b, 0x4a43, 0x49e5, 0x4a84, 0x49fe, 0x4a91, 0x4a7c, 0x497a, 0x4a4f }; \ No newline at end of file diff --git a/hwpe/redmule/inc/z_output.h b/hwpe/redmule/inc/z_output.h index 96c7e5f..53f5525 100644 --- a/hwpe/redmule/inc/z_output.h +++ b/hwpe/redmule/inc/z_output.h @@ -1,27 +1,51 @@ /* Header file generated by RedMulE Golden Model */ -uint16_t z_oup [768] = { -0x4845, 0x4897, 0x4608, 0x4838, 0x4855, 0x487b, 0x4869, 0x4880, 0x46d1, 0x48b0, 0x48db, 0x483f, 0x48c9, 0x485f, 0x4881, 0x483a, 0x484b, 0x472c, 0x4762, 0x492b, 0x4822, 0x48fd, 0x488e, 0x492e, 0x483e, 0x484f, 0x49e8, 0x46d7, 0x484b, 0x489d, 0x490b, 0x47e9, -0x484f, 0x47d2, 0x44be, 0x4747, 0x47c7, 0x46c0, 0x4727, 0x48af, 0x46c5, 0x482d, 0x483d, 0x482e, 0x4897, 0x479f, 0x488b, 0x4749, 0x489a, 0x46a8, 0x46f2, 0x488b, 0x4891, 0x47e8, 0x4872, 0x483d, 0x4716, 0x46fd, 0x49b5, 0x46a0, 0x46e7, 0x47a4, 0x48a1, 0x4767, -0x4939, 0x4935, 0x4703, 0x48c1, 0x4863, 0x48bd, 0x4913, 0x48cf, 0x48b6, 0x48b8, 0x4946, 0x4920, 0x495e, 0x48e1, 0x4938, 0x48b2, 0x493a, 0x4882, 0x483b, 0x49d5, 0x4911, 0x4972, 0x496b, 0x49df, 0x48f2, 0x4888, 0x4a46, 0x4821, 0x48c1, 0x490c, 0x49b2, 0x48a3, -0x463a, 0x47b0, 0x44cb, 0x4762, 0x4765, 0x46b9, 0x466a, 0x4814, 0x4631, 0x4796, 0x4666, 0x474b, 0x4798, 0x4704, 0x4838, 0x4761, 0x47d3, 0x4590, 0x45ea, 0x48a2, 0x47f1, 0x4844, 0x484b, 0x4776, 0x47d6, 0x46d8, 0x48f3, 0x44d3, 0x46fa, 0x478d, 0x481e, 0x466e, -0x4827, 0x481e, 0x45a2, 0x4794, 0x4727, 0x4806, 0x475d, 0x48d5, 0x4708, 0x4828, 0x4862, 0x480d, 0x4895, 0x4832, 0x48bd, 0x47f1, 0x482a, 0x46a7, 0x47b1, 0x492d, 0x484d, 0x4884, 0x48dc, 0x485f, 0x476d, 0x480c, 0x48e9, 0x46d3, 0x4728, 0x4884, 0x48a0, 0x480e, -0x4862, 0x4813, 0x4675, 0x485a, 0x47e8, 0x4738, 0x4836, 0x4823, 0x46e7, 0x4821, 0x4822, 0x47b3, 0x4846, 0x4855, 0x4863, 0x4717, 0x4872, 0x47c1, 0x46d5, 0x488e, 0x47e2, 0x485f, 0x487c, 0x48b8, 0x481e, 0x4788, 0x48bd, 0x4677, 0x46c9, 0x47f8, 0x48fe, 0x47fc, -0x47a0, 0x47b2, 0x4588, 0x467e, 0x4662, 0x46c7, 0x46e8, 0x4812, 0x4536, 0x474e, 0x46c0, 0x468f, 0x481f, 0x4679, 0x46a1, 0x46e2, 0x4809, 0x4560, 0x4630, 0x47eb, 0x46b5, 0x4757, 0x4848, 0x477f, 0x46a6, 0x46d8, 0x4870, 0x459a, 0x4670, 0x4678, 0x47d2, 0x468c, -0x4762, 0x48c4, 0x46e3, 0x4791, 0x46b1, 0x486d, 0x47d0, 0x4867, 0x468d, 0x47f6, 0x48a5, 0x4756, 0x4857, 0x4854, 0x4866, 0x4838, 0x484d, 0x46ec, 0x47d2, 0x48f6, 0x484a, 0x4879, 0x4848, 0x483c, 0x471d, 0x4806, 0x48fa, 0x4730, 0x4768, 0x47b8, 0x4865, 0x46f9, -0x48a8, 0x4918, 0x46ca, 0x4867, 0x4800, 0x4862, 0x48d3, 0x4910, 0x474e, 0x4849, 0x48eb, 0x486b, 0x4966, 0x48c5, 0x48f4, 0x4830, 0x48f9, 0x4778, 0x481e, 0x499e, 0x48cf, 0x48f1, 0x4982, 0x4923, 0x487c, 0x47cf, 0x49ea, 0x4649, 0x4773, 0x495e, 0x48b2, 0x483f, -0x48a7, 0x4975, 0x4616, 0x481e, 0x481f, 0x4866, 0x48b6, 0x4864, 0x47dc, 0x4873, 0x485c, 0x487f, 0x4938, 0x491f, 0x490d, 0x48b6, 0x48f8, 0x48a1, 0x4859, 0x492d, 0x489c, 0x4915, 0x4899, 0x4887, 0x486c, 0x4859, 0x49ca, 0x471e, 0x4867, 0x4918, 0x48d3, 0x4827, -0x488b, 0x4998, 0x4704, 0x481d, 0x48b8, 0x4880, 0x4876, 0x4944, 0x470c, 0x48f2, 0x48b9, 0x489b, 0x4956, 0x48e5, 0x48d6, 0x48a5, 0x48dc, 0x4856, 0x484e, 0x49ab, 0x48e0, 0x490e, 0x48dd, 0x4945, 0x488b, 0x48dd, 0x4a32, 0x47ea, 0x4835, 0x4911, 0x4965, 0x4819, -0x460e, 0x481e, 0x452c, 0x4673, 0x475c, 0x4717, 0x46f6, 0x46d0, 0x4696, 0x46bc, 0x4726, 0x481e, 0x4763, 0x46ea, 0x46fe, 0x4758, 0x478b, 0x4627, 0x4704, 0x483f, 0x46ad, 0x47b1, 0x4792, 0x4816, 0x46f2, 0x4684, 0x4827, 0x45a8, 0x472f, 0x47a4, 0x4797, 0x462b, -0x483f, 0x48ab, 0x468f, 0x4863, 0x485a, 0x4766, 0x481d, 0x48cb, 0x47dc, 0x4903, 0x48fc, 0x4830, 0x48cc, 0x483e, 0x48ab, 0x4864, 0x4966, 0x4763, 0x4794, 0x499d, 0x488e, 0x488b, 0x48dc, 0x4960, 0x4854, 0x484c, 0x499c, 0x474c, 0x4826, 0x48bc, 0x4949, 0x4883, -0x489d, 0x4905, 0x4718, 0x481e, 0x48e3, 0x48f4, 0x48c1, 0x4904, 0x47e8, 0x48b3, 0x4892, 0x48d4, 0x48ff, 0x4894, 0x48d5, 0x4886, 0x48fa, 0x4803, 0x47d2, 0x492e, 0x4870, 0x48b2, 0x48e5, 0x492b, 0x487b, 0x4785, 0x49e3, 0x471d, 0x4837, 0x48bf, 0x489b, 0x48c4, -0x475c, 0x4871, 0x464a, 0x4811, 0x47af, 0x471c, 0x4817, 0x4817, 0x463b, 0x484e, 0x477f, 0x464f, 0x4704, 0x487c, 0x47a3, 0x4725, 0x4853, 0x462a, 0x465a, 0x4860, 0x4736, 0x4880, 0x47e1, 0x482b, 0x4811, 0x46c0, 0x48dc, 0x475d, 0x4668, 0x4806, 0x4893, 0x46f4, -0x4858, 0x4959, 0x463d, 0x487b, 0x480f, 0x484e, 0x48c0, 0x48a6, 0x4847, 0x4894, 0x48a0, 0x484a, 0x491e, 0x48f4, 0x48fc, 0x48b5, 0x48ce, 0x47d2, 0x47db, 0x497f, 0x4955, 0x4939, 0x48a7, 0x48ce, 0x4890, 0x4884, 0x49d6, 0x4763, 0x486e, 0x4922, 0x48f4, 0x48c3, -0x47ec, 0x491c, 0x4698, 0x4783, 0x4715, 0x4754, 0x4745, 0x4752, 0x472f, 0x4832, 0x4817, 0x4809, 0x47f8, 0x48c3, 0x47e6, 0x4800, 0x48b6, 0x4730, 0x480a, 0x48cb, 0x479e, 0x488e, 0x47c2, 0x488e, 0x472f, 0x47ee, 0x489d, 0x4744, 0x4755, 0x4851, 0x4846, 0x47d3, -0x4838, 0x48a0, 0x4634, 0x4762, 0x4786, 0x4806, 0x47e3, 0x482d, 0x4726, 0x486c, 0x47b7, 0x4803, 0x48ac, 0x4814, 0x48e0, 0x4839, 0x4827, 0x4750, 0x46f2, 0x48c5, 0x483f, 0x4886, 0x48ad, 0x4856, 0x47e8, 0x47a9, 0x4937, 0x4743, 0x46d0, 0x481f, 0x484c, 0x4804, -0x47fd, 0x481f, 0x456d, 0x4813, 0x474d, 0x4807, 0x4688, 0x480e, 0x46e8, 0x4810, 0x469f, 0x4799, 0x4853, 0x478f, 0x47f2, 0x4824, 0x47d0, 0x471f, 0x46da, 0x485f, 0x4813, 0x481c, 0x482e, 0x4863, 0x4786, 0x480b, 0x48c9, 0x46b8, 0x475a, 0x46e2, 0x4852, 0x46c5, -0x45af, 0x4802, 0x4466, 0x46c2, 0x465d, 0x4743, 0x46b7, 0x47ba, 0x4636, 0x46c3, 0x4677, 0x4784, 0x485a, 0x47c2, 0x46dc, 0x46ac, 0x47de, 0x460e, 0x465f, 0x4834, 0x47f4, 0x4769, 0x46fc, 0x4810, 0x45fd, 0x45ea, 0x48d0, 0x45b5, 0x4704, 0x4783, 0x4830, 0x46c4, -0x4759, 0x47c7, 0x453d, 0x45b0, 0x4741, 0x4702, 0x4736, 0x4793, 0x461b, 0x47ba, 0x470b, 0x46dd, 0x4657, 0x470b, 0x470d, 0x4710, 0x486c, 0x468f, 0x45c3, 0x46ba, 0x479d, 0x483b, 0x46c9, 0x4774, 0x46a9, 0x46a7, 0x4833, 0x4606, 0x4690, 0x46a9, 0x46f5, 0x46a7, -0x47ac, 0x48bb, 0x452c, 0x4803, 0x470f, 0x4824, 0x47d5, 0x48cb, 0x4707, 0x484a, 0x4832, 0x4797, 0x4851, 0x482c, 0x487a, 0x4877, 0x4891, 0x465d, 0x47f4, 0x48ce, 0x4898, 0x4899, 0x484e, 0x486a, 0x47ac, 0x47f0, 0x493e, 0x4611, 0x47e2, 0x489e, 0x488c, 0x46af, -0x4665, 0x4836, 0x45e4, 0x46b6, 0x46a1, 0x46b9, 0x46c8, 0x46dd, 0x4658, 0x474b, 0x467b, 0x4777, 0x4769, 0x4798, 0x4785, 0x475e, 0x472a, 0x4656, 0x45fb, 0x4881, 0x46fc, 0x472d, 0x476e, 0x47a3, 0x465d, 0x46ca, 0x4855, 0x4500, 0x464f, 0x479a, 0x46c3, 0x4738, -0x481e, 0x486c, 0x4659, 0x4801, 0x4756, 0x477a, 0x47d5, 0x487b, 0x4706, 0x4808, 0x484f, 0x4838, 0x4870, 0x4863, 0x48d3, 0x4806, 0x4865, 0x4771, 0x46be, 0x494c, 0x4915, 0x484c, 0x4900, 0x4862, 0x481a, 0x46e8, 0x4974, 0x46a0, 0x4775, 0x483d, 0x487c, 0x480e +uint16_t z_oup [2304] = { +0x4c08, 0x4b52, 0x4c14, 0x4bed, 0x4c2d, 0x4ba6, 0x4ca5, 0x4c10, 0x4c37, 0x4b6d, 0x4af1, 0x4bd2, 0x4c16, 0x4c0f, 0x4ccd, 0x4b96, 0x4c23, 0x4b9a, 0x4c05, 0x4bc8, 0x4ac8, 0x4b1a, 0x4c24, 0x4b3f, 0x4b58, 0x4c01, 0x4bc1, 0x4b71, 0x4c8e, 0x4c37, 0x4c12, 0x4cb5, 0x4c0a, 0x4bae, 0x4c56, 0x4c0e, 0x4bec, 0x4a81, 0x4c14, 0x4b4e, 0x4bac, 0x4b55, 0x4c20, 0x4b22, 0x4c4e, 0x4c68, 0x4bba, 0x4c33, +0x49ed, 0x4a39, 0x49d5, 0x4ae2, 0x4a83, 0x4a02, 0x4aed, 0x49f6, 0x4a1e, 0x4a4c, 0x49a9, 0x4a10, 0x49fd, 0x49c5, 0x4b06, 0x493c, 0x4a76, 0x4a31, 0x496e, 0x49a7, 0x4842, 0x48fc, 0x4a22, 0x49a9, 0x498d, 0x4ade, 0x4aaa, 0x4972, 0x4a76, 0x4a2c, 0x4a1a, 0x4b37, 0x49b0, 0x4a2b, 0x4a37, 0x4a21, 0x4a4b, 0x4981, 0x4a4b, 0x49f0, 0x4a9f, 0x4a01, 0x4a15, 0x4940, 0x49f2, 0x4a83, 0x4a01, 0x4a27, +0x4b62, 0x4b79, 0x4b15, 0x4c00, 0x4b91, 0x4b2d, 0x4c1e, 0x4af0, 0x4aab, 0x4aed, 0x4af1, 0x4aaa, 0x4b65, 0x4adf, 0x4c04, 0x4a87, 0x4af3, 0x4b20, 0x4a7c, 0x4ada, 0x49e9, 0x4a37, 0x4b2d, 0x4b3f, 0x4a84, 0x4b03, 0x4b15, 0x4a9f, 0x4c34, 0x4b1d, 0x4b50, 0x4bf9, 0x4aed, 0x4afa, 0x4b39, 0x4b30, 0x4b22, 0x4a2a, 0x4bdf, 0x4a89, 0x4b97, 0x4ad6, 0x4b77, 0x4a81, 0x4b56, 0x4b92, 0x4adc, 0x4b54, +0x4b28, 0x4ada, 0x4a71, 0x4a7f, 0x4aca, 0x4a8f, 0x4b14, 0x4a0d, 0x4a41, 0x4ac1, 0x497f, 0x4a46, 0x4a27, 0x4ae2, 0x4b06, 0x4a2a, 0x49ef, 0x4a52, 0x49e1, 0x4a1d, 0x4964, 0x4995, 0x4a4a, 0x49b3, 0x497d, 0x4ac8, 0x4a0d, 0x4a1b, 0x4bc2, 0x4ab9, 0x49ba, 0x4b49, 0x4b0a, 0x4aa1, 0x4ae4, 0x4b13, 0x4aae, 0x48d5, 0x4b35, 0x49f0, 0x4ae6, 0x49cb, 0x4b49, 0x49ff, 0x4b14, 0x4b49, 0x4a01, 0x4a81, +0x4a40, 0x4a35, 0x4a90, 0x4aad, 0x4ada, 0x4ad1, 0x4a6c, 0x4b09, 0x4a96, 0x4a4d, 0x492f, 0x49e3, 0x4a74, 0x4a79, 0x4b59, 0x4a15, 0x49e7, 0x4a96, 0x49ea, 0x49bb, 0x4967, 0x4935, 0x4a18, 0x4a3c, 0x49c3, 0x4aeb, 0x4b1f, 0x4a8f, 0x4bee, 0x4b06, 0x4a18, 0x4b6c, 0x4adf, 0x49e2, 0x4aa7, 0x4aac, 0x4ab5, 0x48d4, 0x4ac8, 0x4a70, 0x49cd, 0x4a55, 0x4ae7, 0x4a39, 0x4af1, 0x4b3b, 0x49e9, 0x4abd, +0x49cc, 0x49f6, 0x49f2, 0x49d5, 0x4a75, 0x49cb, 0x4ae2, 0x49fd, 0x4a00, 0x49b7, 0x49d2, 0x4940, 0x49f4, 0x4a1e, 0x4a2b, 0x49ad, 0x4948, 0x4964, 0x499d, 0x4a2e, 0x4930, 0x48eb, 0x4a53, 0x498d, 0x497b, 0x4a10, 0x4a5f, 0x4925, 0x4b0b, 0x490e, 0x4a4a, 0x4a73, 0x49d4, 0x493a, 0x49a8, 0x49ee, 0x4a23, 0x48f5, 0x4a27, 0x4934, 0x49ab, 0x4a01, 0x49f0, 0x4975, 0x4a77, 0x4a75, 0x493c, 0x495f, +0x4ac3, 0x4ae2, 0x4a29, 0x4b42, 0x4ad9, 0x49fe, 0x4b00, 0x4b04, 0x4b30, 0x4b22, 0x49f6, 0x4a0e, 0x4ae3, 0x4abc, 0x4b47, 0x4a6a, 0x4a5b, 0x4a5e, 0x4a42, 0x4a80, 0x49a1, 0x49be, 0x4b36, 0x4a10, 0x4a2b, 0x4ae5, 0x4ad0, 0x4aa4, 0x4b3c, 0x4aad, 0x4a2a, 0x4c1a, 0x4b2c, 0x4b2f, 0x4aa0, 0x4a77, 0x4af6, 0x49e8, 0x4a4b, 0x4a0a, 0x4ae4, 0x4a14, 0x4aa8, 0x4a1d, 0x4ae0, 0x4bae, 0x49c9, 0x4b3a, +0x4af0, 0x4a85, 0x4a70, 0x4a91, 0x4a7c, 0x4aba, 0x4ae7, 0x4a9a, 0x4b17, 0x4ab5, 0x4a25, 0x4a54, 0x4ab5, 0x4b59, 0x4b5b, 0x4a64, 0x4a74, 0x49e1, 0x4ac6, 0x4a66, 0x49cb, 0x498f, 0x4b1f, 0x4ab7, 0x4a0a, 0x4af4, 0x4aab, 0x49fa, 0x4c05, 0x4abb, 0x4a46, 0x4bbe, 0x4a9f, 0x4a37, 0x4a8c, 0x4a69, 0x4a50, 0x492c, 0x4b10, 0x49c6, 0x4b26, 0x4a91, 0x4b2b, 0x4a67, 0x4b4f, 0x4bb2, 0x4a05, 0x4a86, +0x4b3a, 0x4a79, 0x4ac0, 0x4b1e, 0x4ac3, 0x4b05, 0x4c11, 0x49e1, 0x4aa4, 0x4a96, 0x4a06, 0x4aab, 0x4acc, 0x4a66, 0x4b27, 0x4aa7, 0x4a37, 0x4aeb, 0x4a98, 0x4aae, 0x4973, 0x492e, 0x4ad4, 0x4a1c, 0x49f9, 0x4aca, 0x4ac8, 0x4a51, 0x4ba4, 0x4a87, 0x4ac1, 0x4b3c, 0x4add, 0x4a8f, 0x4a7d, 0x4ad7, 0x4adc, 0x49b9, 0x4aca, 0x4a95, 0x4ada, 0x4a37, 0x4b55, 0x4ad0, 0x4b78, 0x4b1c, 0x4a29, 0x4b1f, +0x4a63, 0x4aca, 0x49b7, 0x4a92, 0x4ada, 0x49fe, 0x4ab5, 0x4a3d, 0x4a42, 0x49d9, 0x49fc, 0x4a00, 0x4ade, 0x4a34, 0x4b06, 0x4931, 0x4943, 0x4a63, 0x49e9, 0x4978, 0x4965, 0x48f2, 0x4a89, 0x49f5, 0x4a38, 0x49ac, 0x4a38, 0x49b1, 0x4b82, 0x4a09, 0x4a31, 0x4b64, 0x4a91, 0x4a2c, 0x4a1e, 0x4a97, 0x4ab3, 0x48a0, 0x49fd, 0x496d, 0x4a1e, 0x494e, 0x4a0e, 0x4960, 0x4b38, 0x4b1a, 0x49ae, 0x49f6, +0x4a7f, 0x4a51, 0x4a0d, 0x4a5f, 0x4a11, 0x4a4c, 0x4b44, 0x49aa, 0x4a60, 0x4a7e, 0x4a36, 0x4a0c, 0x4a27, 0x4a56, 0x4b50, 0x497d, 0x4a2b, 0x49f3, 0x4a2f, 0x4a21, 0x48db, 0x4914, 0x4a92, 0x49f7, 0x499d, 0x4a7d, 0x4a42, 0x49c4, 0x4ab0, 0x49f0, 0x4a17, 0x4ad2, 0x4a17, 0x4a65, 0x4a4a, 0x49bc, 0x49b2, 0x496c, 0x4acc, 0x4a01, 0x4a5e, 0x49f2, 0x4a87, 0x495d, 0x4af6, 0x4a7c, 0x4a0d, 0x4ac9, +0x4988, 0x4a5b, 0x4a71, 0x4a17, 0x4ae3, 0x4a1a, 0x4a00, 0x4a7e, 0x4a47, 0x49fd, 0x499f, 0x49dd, 0x4a83, 0x4a22, 0x4a19, 0x49c6, 0x4a0a, 0x4aa2, 0x4971, 0x49b1, 0x4890, 0x48a4, 0x4a89, 0x49a8, 0x49fa, 0x49bc, 0x4996, 0x49e2, 0x4b36, 0x49df, 0x4a58, 0x4b51, 0x4b09, 0x4a54, 0x4a87, 0x4a2d, 0x4a78, 0x493b, 0x49cd, 0x494d, 0x4983, 0x497a, 0x4a78, 0x4a50, 0x4a81, 0x4b0b, 0x4921, 0x4a41, +0x4aa6, 0x4aaf, 0x4ab0, 0x4ade, 0x4b5d, 0x4a80, 0x4bb8, 0x4a43, 0x4a9f, 0x4a73, 0x4ae0, 0x4a44, 0x4ae1, 0x4aef, 0x4b70, 0x4a7f, 0x4a1c, 0x4b07, 0x4a54, 0x4a29, 0x494e, 0x49d0, 0x4ac3, 0x4a59, 0x49ec, 0x4abe, 0x4abe, 0x4a7c, 0x4afe, 0x4b14, 0x4a27, 0x4bbc, 0x4ad0, 0x4adc, 0x4b72, 0x4b05, 0x4ae4, 0x4971, 0x4a4b, 0x4a7a, 0x4a8d, 0x4a08, 0x4ae2, 0x4a51, 0x4b1c, 0x4b01, 0x4a4a, 0x4b18, +0x4a35, 0x4a4b, 0x49cf, 0x4a17, 0x4a6e, 0x49dd, 0x4a79, 0x4a1d, 0x4ac7, 0x49ad, 0x4924, 0x49c4, 0x4a33, 0x4a9d, 0x4a98, 0x4a36, 0x49b6, 0x4a30, 0x498d, 0x4a15, 0x48da, 0x48ea, 0x4a14, 0x49e2, 0x49ab, 0x4a44, 0x4a2c, 0x4973, 0x4ba2, 0x4a2b, 0x4a29, 0x4afd, 0x4a81, 0x4994, 0x4a16, 0x4a50, 0x4a68, 0x4875, 0x4a25, 0x4953, 0x4a2e, 0x4a1f, 0x4ad3, 0x49d2, 0x49dc, 0x4b0e, 0x49e3, 0x4a64, +0x4a67, 0x4b45, 0x4a92, 0x4b16, 0x4b93, 0x4a7e, 0x4ae8, 0x4a8a, 0x4ade, 0x4b12, 0x4a76, 0x4a98, 0x4a57, 0x4b00, 0x4b10, 0x4a4f, 0x4a7b, 0x49fb, 0x4a48, 0x4ac3, 0x4998, 0x496b, 0x4b02, 0x4aa7, 0x4a63, 0x4af4, 0x4ad6, 0x4a25, 0x4b23, 0x4abe, 0x4af0, 0x4bdc, 0x4acb, 0x4a6f, 0x4a8a, 0x4ae7, 0x4a40, 0x49d6, 0x4a4e, 0x4a1b, 0x4ad3, 0x4b3e, 0x4b6e, 0x4ab8, 0x4b19, 0x4b85, 0x4a20, 0x4ad6, +0x4916, 0x492c, 0x48c6, 0x49a8, 0x48eb, 0x493d, 0x49e4, 0x4920, 0x497a, 0x490f, 0x48cd, 0x489f, 0x49b9, 0x497b, 0x4a0d, 0x490d, 0x4968, 0x490a, 0x48b5, 0x4902, 0x489d, 0x481d, 0x4933, 0x48fb, 0x489d, 0x491e, 0x49a4, 0x48fd, 0x49a8, 0x4976, 0x48ed, 0x49c0, 0x49d0, 0x4901, 0x497f, 0x495a, 0x48db, 0x489f, 0x490c, 0x4906, 0x48fd, 0x4912, 0x499c, 0x4908, 0x4922, 0x49b6, 0x4852, 0x49c7, +0x49eb, 0x4957, 0x49e9, 0x49f1, 0x4a79, 0x49dd, 0x4a74, 0x4982, 0x49c2, 0x49f4, 0x4937, 0x494f, 0x4a28, 0x49ac, 0x49cf, 0x48ad, 0x496a, 0x4a23, 0x4950, 0x4a83, 0x48bc, 0x4955, 0x4a60, 0x4992, 0x49a3, 0x499b, 0x4a31, 0x492d, 0x4aea, 0x4980, 0x499f, 0x4a7c, 0x49a9, 0x4904, 0x4a17, 0x4a34, 0x49d9, 0x48f7, 0x49a2, 0x49a6, 0x4a91, 0x4a04, 0x49ee, 0x4931, 0x4a4f, 0x4acc, 0x49a6, 0x4a01, +0x4a67, 0x4af7, 0x4a92, 0x4aca, 0x4b39, 0x4b14, 0x4b05, 0x4ac6, 0x4a53, 0x4a76, 0x4a41, 0x4a0a, 0x4a65, 0x4a21, 0x4ba7, 0x4a19, 0x49ea, 0x4a7d, 0x4a08, 0x4a2d, 0x4930, 0x494e, 0x4ab8, 0x49b6, 0x49b8, 0x4ab7, 0x4b4d, 0x4a30, 0x4b1c, 0x4a9b, 0x4abe, 0x4bbb, 0x4ada, 0x4a16, 0x4aeb, 0x4a79, 0x4aa2, 0x499b, 0x4afd, 0x49eb, 0x4a51, 0x4a65, 0x4b60, 0x49de, 0x4bad, 0x4ac0, 0x4a21, 0x4a7c, +0x4b17, 0x4b30, 0x4afa, 0x4bd3, 0x4b33, 0x4ae4, 0x4be9, 0x4bb6, 0x4b60, 0x4b7f, 0x4ad4, 0x4a0f, 0x4bd2, 0x4b4a, 0x4bdc, 0x4a49, 0x4a7d, 0x4b73, 0x4af5, 0x4a98, 0x4999, 0x49e0, 0x4b70, 0x4a91, 0x4abe, 0x4b44, 0x4b2b, 0x4adb, 0x4bf0, 0x4b22, 0x4a02, 0x4c3c, 0x4bdf, 0x4b2d, 0x4b1a, 0x4b3b, 0x4bec, 0x4a09, 0x4b54, 0x4a8d, 0x4b11, 0x4ae9, 0x4b63, 0x4a1b, 0x4beb, 0x4bb4, 0x4b1d, 0x4b1e, +0x49da, 0x4a5d, 0x4a46, 0x4ae3, 0x4a1f, 0x49ac, 0x4add, 0x4a06, 0x4b11, 0x4a4c, 0x4990, 0x49af, 0x4a0f, 0x4a16, 0x4b22, 0x496a, 0x4a1e, 0x4a0e, 0x4a3f, 0x4a15, 0x4921, 0x4962, 0x4a12, 0x49da, 0x49ed, 0x4a51, 0x4a7c, 0x49a9, 0x4b0c, 0x4a46, 0x49cb, 0x4b37, 0x4ace, 0x4a6d, 0x4a66, 0x4999, 0x4a3a, 0x495a, 0x4abf, 0x4921, 0x49da, 0x4992, 0x4a93, 0x495d, 0x4aa8, 0x4a96, 0x4a29, 0x4a25, +0x497d, 0x4a0a, 0x49bf, 0x49d2, 0x4a66, 0x4993, 0x4a2a, 0x49f3, 0x4a4c, 0x4a18, 0x49a3, 0x490c, 0x49b4, 0x4a32, 0x4a2d, 0x49f3, 0x4a06, 0x4a0c, 0x4936, 0x49ed, 0x48e1, 0x4936, 0x4a33, 0x4a05, 0x4914, 0x4a49, 0x4a30, 0x495e, 0x4a73, 0x49f1, 0x4966, 0x4ad7, 0x49fa, 0x49c0, 0x49f4, 0x4995, 0x4a12, 0x4918, 0x4a91, 0x49a3, 0x4a15, 0x493b, 0x4b13, 0x4945, 0x4a16, 0x4a49, 0x4979, 0x49cd, +0x4a5e, 0x4ad5, 0x4ad2, 0x4ac2, 0x4af9, 0x4a70, 0x4bb7, 0x4afb, 0x4ba0, 0x4ac8, 0x4a43, 0x4aa7, 0x4b03, 0x4b45, 0x4bd9, 0x4a08, 0x4a33, 0x4aea, 0x4a3f, 0x4a97, 0x49da, 0x4961, 0x4b20, 0x4ab9, 0x4a73, 0x4a8f, 0x4a2c, 0x4a6e, 0x4bda, 0x4a6d, 0x4a5a, 0x4bf0, 0x4b7b, 0x4af7, 0x4b3d, 0x4aba, 0x4b3f, 0x4961, 0x4ada, 0x4993, 0x4ae4, 0x49bf, 0x4b0a, 0x4a6d, 0x4ace, 0x4bd7, 0x4a61, 0x4aeb, +0x49cb, 0x49b6, 0x4996, 0x4a4d, 0x4a39, 0x497c, 0x4afa, 0x4a69, 0x4a2b, 0x4940, 0x49c0, 0x492d, 0x4a15, 0x49b4, 0x4a40, 0x49ae, 0x4969, 0x4968, 0x49ea, 0x4981, 0x48ca, 0x48b3, 0x4a18, 0x4960, 0x49ac, 0x4990, 0x4a17, 0x4958, 0x4b2a, 0x4a16, 0x4a3c, 0x4aa0, 0x49a7, 0x4953, 0x4996, 0x4a56, 0x49eb, 0x4918, 0x4948, 0x4951, 0x4982, 0x4936, 0x49b4, 0x4992, 0x4a9c, 0x4a17, 0x492e, 0x49ee, +0x4af4, 0x4aa5, 0x4a04, 0x4a8e, 0x4ad9, 0x4a14, 0x4b0e, 0x4b84, 0x4bb4, 0x4a66, 0x4a2a, 0x4a6b, 0x4a74, 0x4a59, 0x4af0, 0x49a5, 0x4a79, 0x4aea, 0x4a90, 0x4a90, 0x4961, 0x4982, 0x4aea, 0x4a8e, 0x49f1, 0x4af6, 0x4a63, 0x49e0, 0x4b74, 0x4a34, 0x4a68, 0x4b8d, 0x4aa4, 0x49fc, 0x4a60, 0x49b3, 0x4a4c, 0x4a11, 0x4a71, 0x4906, 0x4a47, 0x49c1, 0x4a81, 0x4976, 0x4b2d, 0x4adb, 0x49e1, 0x4a2d, +0x49a1, 0x49c0, 0x49b6, 0x498b, 0x49eb, 0x494d, 0x49fd, 0x49d4, 0x4931, 0x4a81, 0x4961, 0x4953, 0x49c9, 0x4989, 0x49cd, 0x4976, 0x48fb, 0x49a4, 0x48c5, 0x4969, 0x48d0, 0x48e3, 0x4a23, 0x495c, 0x48eb, 0x4a1b, 0x4a07, 0x48f9, 0x4a6d, 0x4982, 0x49c4, 0x4a3d, 0x498b, 0x495c, 0x4931, 0x4a10, 0x49ce, 0x48fe, 0x497b, 0x49a5, 0x4a09, 0x49a6, 0x4aa2, 0x4953, 0x49ff, 0x4a30, 0x48f5, 0x49c3, +0x4a01, 0x4968, 0x497d, 0x4951, 0x4a12, 0x48fd, 0x49d8, 0x49c8, 0x4987, 0x49c0, 0x48ab, 0x4981, 0x495e, 0x49d4, 0x49b8, 0x48dc, 0x490d, 0x491b, 0x48cd, 0x491f, 0x4840, 0x4881, 0x49f7, 0x4857, 0x493c, 0x495b, 0x495a, 0x497a, 0x4a34, 0x498c, 0x4900, 0x4a4e, 0x49bb, 0x49aa, 0x499f, 0x49bd, 0x493b, 0x48a4, 0x4977, 0x4945, 0x4945, 0x48ef, 0x499c, 0x4910, 0x49c4, 0x4aad, 0x48f9, 0x492e, +0x4b0c, 0x4b0c, 0x4b29, 0x4b70, 0x4b6c, 0x4a9a, 0x4bcb, 0x4af2, 0x4af1, 0x4b38, 0x4a0d, 0x4ac1, 0x4b1a, 0x4b25, 0x4be6, 0x4a26, 0x4b43, 0x4acc, 0x4a96, 0x4a6d, 0x4a40, 0x49f3, 0x4aea, 0x4adb, 0x4b0a, 0x4b3a, 0x4b1a, 0x4a97, 0x4bf5, 0x4acc, 0x4b64, 0x4c0b, 0x4adc, 0x4a4d, 0x4ab0, 0x4aaa, 0x4a75, 0x49ff, 0x4ad9, 0x4aa3, 0x4aed, 0x4ab8, 0x4b42, 0x4a62, 0x4b21, 0x4b61, 0x4a65, 0x4ad8, +0x4ac3, 0x4aae, 0x49e7, 0x4ac0, 0x4ab9, 0x4a2a, 0x4aeb, 0x4a99, 0x4add, 0x4ad4, 0x49e2, 0x49c4, 0x4af6, 0x4a94, 0x4aac, 0x4a3e, 0x4a53, 0x4ac0, 0x49a9, 0x4a78, 0x4901, 0x49ad, 0x4ac8, 0x4a04, 0x49e4, 0x4ac3, 0x4aa7, 0x4a0e, 0x4b92, 0x4a4d, 0x4a04, 0x4b27, 0x4ae6, 0x4a05, 0x4a60, 0x4a0c, 0x4a26, 0x498a, 0x4b16, 0x4a27, 0x4ab3, 0x4a6d, 0x4afa, 0x49bf, 0x4ad0, 0x4b14, 0x49c4, 0x4a9f, +0x4a9e, 0x4a45, 0x4a66, 0x4ae1, 0x4a7a, 0x4ad5, 0x4b8c, 0x4a8c, 0x4a75, 0x4b0d, 0x49cb, 0x49a4, 0x4b1a, 0x4a6f, 0x4ba5, 0x4a31, 0x4a24, 0x49f5, 0x4aa7, 0x4a82, 0x4913, 0x4957, 0x4a96, 0x4a02, 0x4a2c, 0x4a5f, 0x4b2b, 0x4a5d, 0x4c22, 0x4b44, 0x4a59, 0x4c06, 0x4b22, 0x4a3d, 0x4ada, 0x4af3, 0x4ad3, 0x48d7, 0x4af6, 0x4ab2, 0x4b11, 0x4ae3, 0x4bcc, 0x4a8a, 0x4b0a, 0x4b0a, 0x4a53, 0x4b42, +0x4a5f, 0x4a3a, 0x49be, 0x4abe, 0x4a91, 0x4a3c, 0x4b64, 0x49fc, 0x4a28, 0x4a5f, 0x49fe, 0x49c4, 0x4a75, 0x4a40, 0x4b24, 0x4a13, 0x49d0, 0x4a68, 0x4973, 0x4a3a, 0x492c, 0x495c, 0x4aa0, 0x49a3, 0x4978, 0x4a7d, 0x4afa, 0x4a21, 0x4b08, 0x4a6e, 0x4a45, 0x4b85, 0x4a4e, 0x49bd, 0x4aae, 0x4aa7, 0x4a0f, 0x48fd, 0x4a4f, 0x4a0c, 0x4a7a, 0x4a06, 0x4a62, 0x4992, 0x4b2c, 0x4aa0, 0x4a27, 0x4a8d, +0x4ad6, 0x4ad2, 0x4a41, 0x4b36, 0x4b2a, 0x49ce, 0x4b5d, 0x4a88, 0x4a5d, 0x4ab2, 0x4a18, 0x4a04, 0x4a93, 0x4a79, 0x4b1a, 0x49c5, 0x4a48, 0x4a2c, 0x4a40, 0x4a7e, 0x4972, 0x49c0, 0x4abc, 0x49dc, 0x4a64, 0x4a5d, 0x4b30, 0x4a58, 0x4be0, 0x4a5a, 0x4aae, 0x4bcb, 0x4a87, 0x4a4f, 0x4aa0, 0x4ace, 0x4a8b, 0x4970, 0x4ae7, 0x49a3, 0x4a91, 0x49cf, 0x4b21, 0x4a81, 0x4b30, 0x4b6b, 0x4a06, 0x49f9, +0x4a27, 0x4a1d, 0x4a0e, 0x4a34, 0x49de, 0x49af, 0x4a3a, 0x49ba, 0x4a05, 0x4a0b, 0x4994, 0x4994, 0x4a57, 0x495d, 0x4a8f, 0x48e5, 0x498e, 0x49bf, 0x4966, 0x499c, 0x48b0, 0x48fb, 0x4a33, 0x4992, 0x49aa, 0x49f4, 0x4a13, 0x49d0, 0x4aee, 0x4a34, 0x49fb, 0x4ac4, 0x4a08, 0x4951, 0x4a3d, 0x49e5, 0x49ba, 0x48c4, 0x4a19, 0x4945, 0x49f8, 0x4957, 0x4a47, 0x48d2, 0x4a4e, 0x4a14, 0x492f, 0x496d, +0x4a89, 0x4a3c, 0x49e3, 0x4ac4, 0x4a78, 0x4a8e, 0x4b2b, 0x4a2e, 0x4b0e, 0x4a62, 0x4a48, 0x49f6, 0x49eb, 0x4aa6, 0x4b4d, 0x49ec, 0x4a5f, 0x4afe, 0x4a79, 0x4a6c, 0x48cc, 0x49b4, 0x4a46, 0x4adb, 0x498f, 0x4a8b, 0x4a4c, 0x4989, 0x4b20, 0x4a7e, 0x4ada, 0x4b23, 0x4a8c, 0x49cb, 0x4a58, 0x4a51, 0x4a2a, 0x4989, 0x4a50, 0x4a21, 0x4a13, 0x49f8, 0x4ae8, 0x49c7, 0x4adc, 0x4ace, 0x4a18, 0x4a21, +0x48d2, 0x49d2, 0x4985, 0x49e9, 0x4a0f, 0x4960, 0x49c7, 0x498b, 0x497c, 0x4960, 0x4886, 0x48bb, 0x49c3, 0x48f2, 0x49fc, 0x48b2, 0x49ae, 0x49c5, 0x4891, 0x4936, 0x4849, 0x482b, 0x49ed, 0x493e, 0x4999, 0x492c, 0x4977, 0x493c, 0x4a50, 0x497a, 0x49f9, 0x4ae5, 0x49c3, 0x48c9, 0x4a5e, 0x49c7, 0x49a0, 0x48c0, 0x498d, 0x48d3, 0x4988, 0x4a09, 0x49e4, 0x48f1, 0x4930, 0x4a27, 0x4910, 0x4949, +0x4bad, 0x4be4, 0x4aac, 0x4b7a, 0x4b3f, 0x4aff, 0x4bfa, 0x4aef, 0x4b76, 0x4ba6, 0x4aed, 0x4a77, 0x4b38, 0x4b2b, 0x4bb9, 0x4aa0, 0x4b70, 0x4b37, 0x4ac1, 0x4b19, 0x49eb, 0x4a2f, 0x4bd3, 0x4ac5, 0x4a6f, 0x4b3a, 0x4b80, 0x4a73, 0x4c1f, 0x4aad, 0x4b16, 0x4c07, 0x4b16, 0x4aec, 0x4a7b, 0x4b0c, 0x4b33, 0x4acc, 0x4b76, 0x4a75, 0x4bd2, 0x4add, 0x4bbb, 0x4a43, 0x4bde, 0x4c06, 0x4b57, 0x4b09, +0x4a13, 0x4a47, 0x4a38, 0x4a94, 0x4a6f, 0x4a22, 0x4ab0, 0x499b, 0x4a1a, 0x49fc, 0x4986, 0x492e, 0x4a1e, 0x4a4a, 0x4afd, 0x49a6, 0x49f6, 0x49d9, 0x4a56, 0x4a64, 0x492d, 0x4902, 0x49df, 0x499a, 0x497e, 0x49c2, 0x4a8f, 0x49c8, 0x4af5, 0x4a7e, 0x4a23, 0x4a96, 0x4a49, 0x49f8, 0x4a11, 0x4a02, 0x4a5c, 0x490b, 0x4a5e, 0x4995, 0x4a0f, 0x49cf, 0x4ae7, 0x4a74, 0x4aca, 0x4a95, 0x49ad, 0x49f5, +0x4aaa, 0x4a49, 0x4a5b, 0x4a39, 0x4ad5, 0x49dd, 0x4af8, 0x4a95, 0x4a50, 0x4a3e, 0x49f6, 0x4a42, 0x4a8c, 0x4ade, 0x4ad3, 0x4a2b, 0x4a3e, 0x4a4e, 0x4a6b, 0x4aa0, 0x49a6, 0x498e, 0x4afb, 0x4a14, 0x4998, 0x4a45, 0x4a5f, 0x49df, 0x4b9e, 0x4a55, 0x4ada, 0x4b60, 0x4a61, 0x4a5d, 0x4ae5, 0x4acc, 0x4a44, 0x4932, 0x4a36, 0x4a2c, 0x49e8, 0x4a5c, 0x4a9b, 0x4a2b, 0x4ac0, 0x4b66, 0x49ff, 0x4ad6, +0x4ac2, 0x4b93, 0x4a9c, 0x4b17, 0x4ad9, 0x4ab1, 0x4b2e, 0x4b12, 0x4a89, 0x4a88, 0x4a85, 0x4ace, 0x4b8e, 0x4a5e, 0x4b3d, 0x4a6d, 0x49cf, 0x4a3c, 0x4a4f, 0x4a94, 0x49ce, 0x495f, 0x4af2, 0x4ac5, 0x4a56, 0x4ad0, 0x4b63, 0x4a1b, 0x4bd6, 0x4ac3, 0x4a51, 0x4b79, 0x4a8e, 0x4a9f, 0x4a0f, 0x4ae3, 0x4aae, 0x4914, 0x4a44, 0x49ed, 0x4a82, 0x4a97, 0x4b41, 0x4a88, 0x4bba, 0x4b16, 0x49d2, 0x4a7e, +0x49f2, 0x4a6e, 0x4a81, 0x4a5c, 0x4aeb, 0x4a0a, 0x4a73, 0x4ac2, 0x4a93, 0x4a6e, 0x4920, 0x49c8, 0x4a41, 0x4acd, 0x4b05, 0x499b, 0x4a4e, 0x49e2, 0x49a7, 0x4a34, 0x4929, 0x4969, 0x4a56, 0x4a62, 0x49b6, 0x4b3f, 0x4aec, 0x49fb, 0x4afa, 0x4a5e, 0x49f1, 0x4b99, 0x4a7e, 0x49a2, 0x4ad1, 0x4a00, 0x4a2a, 0x496b, 0x4a5e, 0x49b8, 0x4ace, 0x4b11, 0x4ae2, 0x49f6, 0x4a39, 0x4b00, 0x4a3c, 0x4a4a, +0x4a92, 0x4a62, 0x4a4e, 0x4a79, 0x4ab0, 0x4a21, 0x4b76, 0x4a4d, 0x4a1d, 0x4a5a, 0x49ce, 0x4a31, 0x4a51, 0x4a28, 0x4b1b, 0x4932, 0x491f, 0x4a1a, 0x4a33, 0x4a2e, 0x490f, 0x4a17, 0x4a43, 0x4aa2, 0x4a26, 0x4a91, 0x4a4e, 0x499c, 0x4b51, 0x4a5b, 0x4a4c, 0x4b79, 0x49f6, 0x4a37, 0x4a49, 0x4ab4, 0x49cd, 0x4906, 0x49f3, 0x49af, 0x4af1, 0x4a02, 0x4a4a, 0x4a91, 0x4aa5, 0x4ab3, 0x499f, 0x4a67, +0x4a3b, 0x4a3f, 0x49f3, 0x4aa5, 0x49cb, 0x4980, 0x49f7, 0x49dc, 0x4a70, 0x49bd, 0x48ff, 0x491b, 0x4932, 0x49d5, 0x4a8c, 0x49c5, 0x49bb, 0x490d, 0x49d9, 0x49d7, 0x48cf, 0x4865, 0x49cf, 0x492c, 0x4909, 0x49fd, 0x4a33, 0x49cf, 0x4aeb, 0x49e3, 0x4a32, 0x4a4a, 0x499a, 0x494d, 0x49a3, 0x4a38, 0x49d3, 0x494f, 0x4a43, 0x495d, 0x4ab2, 0x4a3b, 0x4a7d, 0x4991, 0x49c9, 0x4aeb, 0x499e, 0x4985, +0x4b7c, 0x4bb3, 0x4ac0, 0x4b41, 0x4afa, 0x4b3b, 0x4c33, 0x4b11, 0x4b6b, 0x4ada, 0x4b1c, 0x4b20, 0x4b91, 0x4b6b, 0x4c57, 0x4a26, 0x4a9b, 0x4b18, 0x4a93, 0x4aca, 0x4a1d, 0x4a50, 0x4afe, 0x4a30, 0x4a3c, 0x4b6a, 0x4b8d, 0x4a5f, 0x4b91, 0x4b76, 0x4acc, 0x4bc2, 0x4b2c, 0x4af4, 0x4aea, 0x4b3c, 0x4b5e, 0x49e5, 0x4b18, 0x4a44, 0x4b2f, 0x4a7a, 0x4a6b, 0x4a2f, 0x4bc0, 0x4be2, 0x4aaa, 0x4a7a, +0x4a84, 0x4ad3, 0x4a28, 0x4b2c, 0x4afb, 0x4a4d, 0x4c18, 0x4a96, 0x4abc, 0x4a8b, 0x4a34, 0x4a0a, 0x4b0c, 0x4aeb, 0x4b93, 0x4a67, 0x4af0, 0x4a98, 0x4a26, 0x4a5f, 0x49cc, 0x49c9, 0x4a4d, 0x4a63, 0x4a12, 0x4b3c, 0x4b03, 0x4a1c, 0x4b70, 0x4ad5, 0x4ac7, 0x4b2b, 0x4adf, 0x4a97, 0x4a39, 0x4a71, 0x4a92, 0x499c, 0x4a83, 0x4a03, 0x4ae5, 0x4a13, 0x4a6a, 0x4a36, 0x4b06, 0x4b45, 0x49f3, 0x4ad2, +0x49f7, 0x4a49, 0x4a91, 0x4ab1, 0x4b0f, 0x4a6f, 0x4b24, 0x4a6e, 0x4b0b, 0x4a78, 0x4a1e, 0x4a8e, 0x4a2d, 0x4ad5, 0x4b14, 0x4a69, 0x4a34, 0x49d9, 0x4a70, 0x4a7f, 0x4946, 0x4950, 0x4a89, 0x49e9, 0x49e3, 0x4b5c, 0x4ae0, 0x4a4e, 0x4af8, 0x4a30, 0x4a25, 0x4b04, 0x4a7e, 0x4ad1, 0x4ac7, 0x4a90, 0x4a2e, 0x4947, 0x4a9d, 0x4975, 0x4ac1, 0x4a89, 0x4ae8, 0x4a1e, 0x4b18, 0x4b48, 0x4a13, 0x49fc, +0x4aec, 0x4b39, 0x4a12, 0x4b39, 0x4ae8, 0x4aca, 0x4bdf, 0x4a6b, 0x4ad5, 0x4b66, 0x4a82, 0x4a1b, 0x4b03, 0x4ada, 0x4bde, 0x4a72, 0x4aef, 0x4ad8, 0x4a59, 0x4ac8, 0x49ba, 0x4a41, 0x4b73, 0x4a6c, 0x4a54, 0x4b27, 0x4b94, 0x4ac7, 0x4b64, 0x4acb, 0x4a2d, 0x4be2, 0x4ae6, 0x4a56, 0x4a62, 0x4b2c, 0x4b0f, 0x49db, 0x4afb, 0x4afd, 0x4b23, 0x4afe, 0x4bbc, 0x49cc, 0x4b54, 0x4b81, 0x4a8f, 0x4b3a, +0x4a6c, 0x4ac5, 0x4a37, 0x49f9, 0x4a91, 0x4ab9, 0x4bb2, 0x49f9, 0x4a8d, 0x4a3b, 0x4aab, 0x4a27, 0x4a9c, 0x4ad3, 0x4b24, 0x4a7f, 0x4aee, 0x4a78, 0x4ab4, 0x4a16, 0x49e3, 0x499b, 0x4ae9, 0x49fb, 0x496b, 0x4a36, 0x4a04, 0x49bd, 0x4b04, 0x4a08, 0x4a91, 0x4ae5, 0x4ab2, 0x49fe, 0x4a79, 0x4a48, 0x4a54, 0x48ec, 0x4acc, 0x49b2, 0x4ad1, 0x49cf, 0x4b09, 0x4a1a, 0x4b3f, 0x4aa6, 0x4979, 0x4a14, +0x4b1c, 0x4a5a, 0x4a71, 0x4adc, 0x4b35, 0x4a60, 0x4aeb, 0x4a2f, 0x4a3c, 0x4a9d, 0x49cd, 0x4a85, 0x4ad1, 0x4a8d, 0x4c07, 0x4972, 0x4a2c, 0x4a77, 0x4a55, 0x49aa, 0x4922, 0x4973, 0x4af1, 0x4a31, 0x4995, 0x4aae, 0x4a97, 0x4a50, 0x4b17, 0x4ac6, 0x4a35, 0x4b53, 0x4ad4, 0x49ce, 0x4af5, 0x4b8a, 0x4ad5, 0x4982, 0x4ad1, 0x4a23, 0x4a58, 0x4a90, 0x4afa, 0x49b1, 0x4b43, 0x4af3, 0x4968, 0x4a6a, +0x4a3c, 0x4a62, 0x4a08, 0x4a37, 0x4a1c, 0x49d4, 0x4aa9, 0x4a1a, 0x4a90, 0x4a4d, 0x49e3, 0x49b9, 0x4a1e, 0x49d1, 0x4a88, 0x49eb, 0x49ea, 0x49c3, 0x4a58, 0x4a2b, 0x48e7, 0x4917, 0x49b8, 0x4a0e, 0x49b1, 0x4a57, 0x4a9a, 0x496c, 0x4b0c, 0x49eb, 0x4a17, 0x4ae4, 0x4a90, 0x49cc, 0x49b6, 0x49b6, 0x4a15, 0x4949, 0x4a79, 0x495b, 0x4a43, 0x49e5, 0x4a84, 0x49fe, 0x4a91, 0x4a7c, 0x497a, 0x4a4f }; \ No newline at end of file From f69803ff77c0937036b234c084580f23fcc4f65b Mon Sep 17 00:00:00 2001 From: Yvan Tortorella Date: Mon, 16 Jun 2025 21:00:11 +0200 Subject: [PATCH 52/56] Add RedMulE golden model as a dependency. --- .gitmodules | 3 +++ hwpe/redmule/Makefile | 12 ++++++++++++ hwpe/redmule/redmule-golden-model | 1 + 3 files changed, 16 insertions(+) create mode 160000 hwpe/redmule/redmule-golden-model diff --git a/.gitmodules b/.gitmodules index 5ade099..c1c527f 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "hwpe/neureka/pulp-nnx"] path = hwpe/neureka/pulp-nnx url = https://github.com/pulp-platform/pulp-nnx +[submodule "hwpe/redmule/redmule-golden-model"] + path = hwpe/redmule/redmule-golden-model + url = https://github.com/yvantor/redmule-golden-model.git diff --git a/hwpe/redmule/Makefile b/hwpe/redmule/Makefile index 2d118a6..a92a1db 100644 --- a/hwpe/redmule/Makefile +++ b/hwpe/redmule/Makefile @@ -21,3 +21,15 @@ else endif include $(PULP_SDK_HOME)/install/rules/pulp_rt.mk + +Golden := redmule-golden-model + +OP ?= gemm +M ?= 32 +N ?= 32 +K ?= 32 +fp_fmt ?= FP16 +SW ?= $(shell pwd) + +golden: + $(MAKE) -C $(Golden) $(OP) SW=$(SW)/inc M=$(M) N=$(N) K=$(K) fp_fmt=$(fp_fmt) diff --git a/hwpe/redmule/redmule-golden-model b/hwpe/redmule/redmule-golden-model new file mode 160000 index 0000000..3b3980e --- /dev/null +++ b/hwpe/redmule/redmule-golden-model @@ -0,0 +1 @@ +Subproject commit 3b3980eb03f891c411226c35a95fa115066573a4 From 3ee685769e27ea00747b8dd396298aeba1c8abd2 Mon Sep 17 00:00:00 2001 From: Yvan Tortorella Date: Tue, 15 Jul 2025 18:13:23 +0200 Subject: [PATCH 53/56] Make HWPE read/write functions volatile to prevent compiler from swapping execution order. --- hwpe/redmule/hal_redmule.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hwpe/redmule/hal_redmule.h b/hwpe/redmule/hal_redmule.h index 65b1a2d..14dc663 100644 --- a/hwpe/redmule/hal_redmule.h +++ b/hwpe/redmule/hal_redmule.h @@ -41,8 +41,8 @@ // instead of classic load/store because otherwise the compiler is not able to correctly factorize // the HWPE base in case several accesses are done, ending up with twice more code -#define HWPE_WRITE(value, offset) *(int *)(ARCHI_CLUST_HWPE_BASE + offset) = value -#define HWPE_READ(offset) *(int *)(ARCHI_CLUST_HWPE_BASE + offset) +#define HWPE_WRITE(value, offset) *(volatile int *)(ARCHI_CLUST_HWPE_BASE + offset) = value +#define HWPE_READ(offset) *(volatile int *)(ARCHI_CLUST_HWPE_BASE + offset) static inline void redmule_x_add_set (unsigned int value) { HWPE_WRITE(value, REDMULE_REG_OFFS + REDMULE_REG_X_PTR); From 5e26b13ef0217939c2d71274e2f57e6f97ebe405 Mon Sep 17 00:00:00 2001 From: Yvan Tortorella Date: Tue, 15 Jul 2025 18:19:05 +0200 Subject: [PATCH 54/56] Bump redmule golden. --- hwpe/redmule/redmule-golden-model | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hwpe/redmule/redmule-golden-model b/hwpe/redmule/redmule-golden-model index 3b3980e..512c780 160000 --- a/hwpe/redmule/redmule-golden-model +++ b/hwpe/redmule/redmule-golden-model @@ -1 +1 @@ -Subproject commit 3b3980eb03f891c411226c35a95fa115066573a4 +Subproject commit 512c7809f630e0258ea89f652802bbaed5104138 From 9de83fa5a6662ee085607e485a23e6ac4af5ecc6 Mon Sep 17 00:00:00 2001 From: Luigi Ghionda Date: Tue, 30 Sep 2025 16:05:06 +0200 Subject: [PATCH 55/56] Remove unintended file --- fpu_tests/matmul/FP32/out.txt | 15 --------------- 1 file changed, 15 deletions(-) delete mode 100644 fpu_tests/matmul/FP32/out.txt diff --git a/fpu_tests/matmul/FP32/out.txt b/fpu_tests/matmul/FP32/out.txt deleted file mode 100644 index 9950041..0000000 --- a/fpu_tests/matmul/FP32/out.txt +++ /dev/null @@ -1,15 +0,0 @@ -GNU Make 3.82 -Built for x86_64-redhat-linux-gnu -Copyright (C) 2010 Free Software Foundation, Inc. -License GPLv3+: GNU GPL version 3 or later -This is free software: you are free to change and redistribute it. -There is NO WARRANTY, to the extent permitted by law. -Lettura dei makefile... -/scratch2/rtedeschi/pulp_cluster/alsaqr_cluster/pulp-runtime/rules/pulpos/targets/pulp_cluster.mk:74: warning: overriding recipe for target `run' -/scratch2/rtedeschi/pulp_cluster/alsaqr_cluster/pulp-runtime/rules/pulpos/default_rules.mk:322: warning: ignoring old recipe for target `run' -Aggiornamento degli obbiettivi.... - Il file «all» non esiste. - Il file «/scratch2/rtedeschi/pulp_cluster/alsaqr_cluster/regression-tests/fpu_tests/matmul/FP32/build/fp_matmul/fp_matmul» non esiste. - Il file «/scratch2/rtedeschi/pulp_cluster/alsaqr_cluster/regression-tests/fpu_tests/matmul/FP32/build/fp_matmul/support_func.o» non esiste. - L'obiettivo «/scratch2/rtedeschi/pulp_cluster/alsaqr_cluster/regression-tests/fpu_tests/matmul/FP32/build/fp_matmul/support_func.o» deve essere rigenerato. -make: *** Nessuna regola per generare l'obiettivo «/scratch2/rtedeschi/pulp_cluster/alsaqr_cluster/regression-tests/fpu_tests/matmul/FP32/build/fp_matmul/support_func.o», necessario per «/scratch2/rtedeschi/pulp_cluster/alsaqr_cluster/regression-tests/fpu_tests/matmul/FP32/build/fp_matmul/fp_matmul». Stop. From 7fa307d24daf38a26a81013f677b4b1e422d76e8 Mon Sep 17 00:00:00 2001 From: Luigi Ghionda Date: Tue, 30 Sep 2025 18:01:13 +0200 Subject: [PATCH 56/56] NEureka: update submodule --- hwpe/neureka/pulp-nnx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hwpe/neureka/pulp-nnx b/hwpe/neureka/pulp-nnx index 4becda2..b1e7c0a 160000 --- a/hwpe/neureka/pulp-nnx +++ b/hwpe/neureka/pulp-nnx @@ -1 +1 @@ -Subproject commit 4becda239309035887db4f7fdf54a63ac8463180 +Subproject commit b1e7c0a517e770079f2f07acae013489b5d9d0f4