summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYongqin Liu <yongqin.liu@linaro.org>2016-10-31 15:33:01 +0800
committerYongqin Liu <yongqin.liu@linaro.org>2016-10-31 15:33:01 +0800
commit7d2a1aae51f21e59b977f3c3615da9344cdfb8ec (patch)
treea1189c6d45037f225bfd61f5ff7ce01c0182b84e
parentd96d13ade566beaaead978153d464ab1e899f586 (diff)
downloadlinaro-android-userspace-test-linaro-nougat.tar.gz
fix test failureslinaro-nougat
update the test programe, and update some of the md5sums Change-Id: I1a1bb180b0121765b7ced70d2917fc012670a40e Signed-off-by: Yongqin Liu <yongqin.liu@linaro.org>
-rwxr-xr-xlinaro-android-userspace-tests.sh81
-rw-r--r--speech-codec/amrwb/media/MD5SUM.dec18
-rw-r--r--speech-codec/amrwb/media/MD5SUM.enc46
3 files changed, 80 insertions, 65 deletions
diff --git a/linaro-android-userspace-tests.sh b/linaro-android-userspace-tests.sh
index e37ff5d..0ab464f 100755
--- a/linaro-android-userspace-tests.sh
+++ b/linaro-android-userspace-tests.sh
@@ -13,7 +13,7 @@
# Individual and batch test definitions
ALL_AUDIO_CODECS="audio_codec_aac audio_codec_flac audio_codec_mp3 \
audio_codec_tremolo"
-ALL_SPEECH_CODECS="speech_codec_amrnb_dec_linaro speech_codec_amrnb_enc_linaro \
+ALL_SPEECH_CODECS="speech_codec_amrnb_dec speech_codec_amrnb_enc \
speech_codec_amrwb_dec speech_codec_amrwb_enc"
ALL_VIDEO_CODECS="video_codec_h264_dec video_codec_h264_enc \
video_codec_h263_dec video_codec_h263_enc"
@@ -55,7 +55,7 @@ usage() {
printf " %-10s\t%s\n" "-v" "Turn on verbose output"
echo
echo "Example:"
- echo "\t$0 -t \"audio_codec_aac speech_codec_amrnb_dec_linaro\""
+ echo "\t$0 -t \"audio_codec_aac speech_codec_amrnb_dec\""
}
run_audio_codec_aac()
@@ -125,7 +125,7 @@ run_audio_codec_mp3()
{
local TEST_FILE="/data/linaro-android-userspace-test/audio-codec/Retribution.mp3"
local OUT_FILE="/data/local/tmp/audio-codec-test.out"
- local EXPECTED_MD5SUM="a1210e10a6bcf51c831473f715e5190d"
+ local EXPECTED_MD5SUM="bf1456a93dfc53e474c30c9fca75c647"
echo
echo "Running MP3 decoder test"
@@ -260,36 +260,40 @@ run_speech_codec()
fi
local INDEX=0
+ local result=true
for EXPECTED_MD5SUM in ${LINE}; do
+ local cmd=""
if [ "${IS_ENCODE}" -eq "1" ]; then
+ cmd="${RUN} +M${INDEX} ${TEST_FILE} ${OUT_FILE}"
if [ "${VERBOSE}" -eq "1" ]; then
- ${RUN} +M${INDEX} ${TEST_FILE} ${OUT_FILE}
+ ${cmd}
else
- ${RUN} +M${INDEX} ${TEST_FILE} ${OUT_FILE} &> /dev/null
+ ${cmd} &> /dev/null
fi
else
+ cmd="${RUN} ${TEST_FILE} ${OUT_FILE}"
if [ "${VERBOSE}" -eq "1" ]; then
- ${RUN} ${TEST_FILE} ${OUT_FILE}
+ ${cmd}
else
- ${RUN} ${TEST_FILE} ${OUT_FILE} &> /dev/null
+ ${cmd} &> /dev/null
fi
fi
if [ "$?" -ne "0" ]; then
echo
+ echo "${TAG}: ${cmd}"
echo "${TAG}: ERROR: ${NAME} returned error"
- echo "${TAG}: ${NAME}: FAILED"
- echo "[${TAG}]: test failed"
- return 1
+ result=false
+ continue
fi
local MD5SUM=$(func_md5 ${OUT_FILE})
MD5SUM="${MD5SUM%% *}"
if [[ "${MD5SUM}" != "${EXPECTED_MD5SUM}" ]]; then
echo
+ echo "${TAG}: ${cmd}"
echo "${TAG}: ERROR: incorrect MD5SUM '${MD5SUM}' (expected '${EXPECTED_MD5SUM}')"
- echo "${TAG}: ${NAME}: FAILED"
- echo "[${TAG}]: test failed"
- return 1
+ result=false
+ continue
fi
((INDEX++))
@@ -301,29 +305,34 @@ run_speech_codec()
rm ${OUT_FILE}
fi
- echo "${TAG}: ${NAME}: PASSED"
- echo "[${TAG}]: test passed"
+ if $result; then
+ echo "${TAG}: ${NAME}: PASSED"
+ echo "[${TAG}]: test passed"
+ else
+ echo "${TAG}: ${NAME}: FAILED"
+ echo "[${TAG}]: test failed"
+ fi
}
-run_speech_codec_amrnb_dec_linaro()
+run_speech_codec_amrnb_dec()
{
- local TAG="speech_codec_amrnb_dec_linaro"
+ local TAG="speech_codec_amrnb_dec"
local NAME="AMR NB decoder test"
local DATA_DIR="/data/linaro-android-userspace-test/speech-codec/amrnb"
local MD5SUM_FILE="${DATA_DIR}/MD5SUM.dec"
- run_speech_codec 0 "${TAG}" "${NAME}" "${DATA_DIR}" "${MD5SUM_FILE}" "libstagefright_amrnbdec_test_linaro"
+ run_speech_codec 0 "${TAG}" "${NAME}" "${DATA_DIR}" "${MD5SUM_FILE}" "libstagefright_amrnbdec_test"
return $?
}
-run_speech_codec_amrnb_enc_linaro()
+run_speech_codec_amrnb_enc()
{
- local TAG="speech_codec_amrnb_enc_linaro"
+ local TAG="speech_codec_amrnb_enc"
local NAME="AMR NB encoder test"
local DATA_DIR="/data/linaro-android-userspace-test/speech-codec/amrnb"
local MD5SUM_FILE="${DATA_DIR}/MD5SUM.enc"
- run_speech_codec 1 "${TAG}" "${NAME}" "${DATA_DIR}" "${MD5SUM_FILE}" "libstagefright_amrnbenc_test_linaro"
+ run_speech_codec 1 "${TAG}" "${NAME}" "${DATA_DIR}" "${MD5SUM_FILE}" "libstagefright_amrnbenc_test"
return $?
}
@@ -459,6 +468,7 @@ run_video_codec_h264_enc()
local OUT_BITRATE=""
local EXPECTED_MD5SUM=""
local LINE=0
+ local result=true
while read -r TEST_FILE OUT_WIDTH OUT_HEIGHT OUT_FRAMERATE OUT_BITRATE EXPECTED_MD5SUM
do
((LINE++))
@@ -484,29 +494,29 @@ run_video_codec_h264_enc()
echo "[${TAG}]: test failed"
return 1
fi
-
+ local cmd="${RUN} ${TEST_FILE} ${OUT_FILE} ${OUT_WIDTH} ${OUT_HEIGHT} ${OUT_FRAMERATE} ${OUT_BITRATE}"
if [ "${VERBOSE}" -eq "1" ]; then
- ${RUN} ${TEST_FILE} ${OUT_FILE} ${OUT_WIDTH} ${OUT_HEIGHT} ${OUT_FRAMERATE} ${OUT_BITRATE}
+ $cmd
else
- ${RUN} ${TEST_FILE} ${OUT_FILE} ${OUT_WIDTH} ${OUT_HEIGHT} ${OUT_FRAMERATE} ${OUT_BITRATE} &> /dev/null
+ ${cmd} &> /dev/null
fi
if [ "$?" -ne "0" ]; then
echo
+ echo "${TAG}: ${cmd}"
echo "${TAG}: ERROR: ${NAME} returned error for ${MD5SUM_FILE}:${LINE}"
- echo "${TAG}: ${NAME}: FAILED"
- echo "[${TAG}]: test failed"
- return 1
+ result=false
+ continue
fi
local MD5SUM=$(func_md5 ${OUT_FILE})
MD5SUM="${MD5SUM%% *}"
if [[ "${MD5SUM}" != "${EXPECTED_MD5SUM}" ]]; then
echo
+ echo "${TAG}: ${cmd}"
echo "${TAG}: ERROR: incorrect MD5SUM '${MD5SUM}' (expected '${EXPECTED_MD5SUM}')"
- echo "${TAG}: ${NAME}: FAILED"
- echo "[${TAG}]: test failed"
- return 1
+ result=false
+ continue
fi
done < ${MD5SUM_FILE}
echo "done"
@@ -515,9 +525,14 @@ run_video_codec_h264_enc()
rm ${OUT_FILE}
fi
- echo "${TAG}: ${NAME}: PASSED"
- echo "[${TAG}]: test passed"
- return $?
+ if ${result}; then
+ echo "${TAG}: ${NAME}: PASSED"
+ echo "[${TAG}]: test passed"
+ else
+ echo "${TAG}: ${NAME}: FAILED"
+ echo "[${TAG}]: test failed"
+ fi
+ return 0
}
run_video_codec_h263_dec()
diff --git a/speech-codec/amrwb/media/MD5SUM.dec b/speech-codec/amrwb/media/MD5SUM.dec
index b978be3..ab2d357 100644
--- a/speech-codec/amrwb/media/MD5SUM.dec
+++ b/speech-codec/amrwb/media/MD5SUM.dec
@@ -17,14 +17,14 @@ T01_6.amr fbdb8d61f738b6526d95d042f2f889dd
T01_7.amr 4c8ddc80fb268d7efb769e1434c9ac38
T01_8.amr cf44a9dcf1ac0a7744e84a75e952ad34
T02_0.amr ad4c5e4a3e61e5eb539fa85a0708711d
-T02_1.amr a2c1e16286f0efa2b76d8848089b0fa3
+T02_1.amr 4f69a4af399d275afbfa27454aed23b1
T02_2.amr 1b4a895c693b94620e27691300bc7a85
-T02_3.amr 13bc55ca11f6e1e12f5404179b2760ba
+T02_3.amr be7d389f57ab82e772263f5cac399ef2
T02_4.amr e99346d10094390484b17c70063b587a
T02_5.amr 525720a0e2df7f98377532738a30d8dd
-T02_6.amr e2137f1f5f5fecbba231f774186a9101
+T02_6.amr 2ebae61c4fda9e4ad0497506dce979ba
T02_7.amr da294ed8a987fee1f7d21596be87566a
-T02_8.amr 40e5570af466af928f11966564ebc38b
+T02_8.amr f014dd15802efc3ed26aa1c3a0d7e9bd
T03_0.amr bf431b067fe47218ff1cdd2c65f8131f
T03_1.amr 06caaa8b3026c5bf98a47acc2cd08783
T03_2.amr dd5a0bbf5564833255a420473f7ca98d
@@ -70,11 +70,11 @@ T07_5.amr c351dde1e5b69469972417f47ababdd8
T07_6.amr ae688293b872fe112301eb4c8fea76eb
T07_7.amr aaff53d488710ed7bebe62bddb894647
T07_8.amr 84ed2b653b8b21df1a11de13d76e1a75
-T08_0.amr 73e0c9cfd2170dcda6137fdec896b802
+T08_0.amr b7763d5311f8c571991868dee7d093bc
T08_1.amr c0371b60a165f13b4bf794c78cf66b7e
T08_2.amr 49b91cee2652e8b21b78ba7112621b0e
-T08_3.amr 49482f97b6dbc7162b33a61ff09a89d8
-T08_4.amr 424c21644445c60c299f60162471473f
+T08_3.amr 5c6aff0b1d9fa276430c7a39c570d9ea
+T08_4.amr 8322261f4ad50731be07d29654e6daf3
T08_5.amr 0a28f0bcdd94ef55fbf3fd3e6b768f0b
T08_6.amr 34905ee6d47915ee3511881890ae1f25
T08_7.amr 3aa0b4fec8b9a294de205cf0efb17479
@@ -122,8 +122,8 @@ T13_3.amr 209a6df06523363af7d46382ca740421
T13_4.amr d9953fe95d4238189b4604d0ed3b63b3
T13_5.amr 2f319acbaf981dfcd61af53fd95bb80e
T13_6.amr d1df3a6df38928c3826702d41c5e2fdb
-T13_7.amr 2498c680b1508ee48d3ed8f51f08f9ce
-T13_8.amr 965cf35f977066e2b31e7c8656cd2d52
+T13_7.amr 6d8c18c17aafeb1b7c8e95803090e037
+T13_8.amr 94988b42c66879e265b45f00d19c134e
T14_0.amr cd3694748d7b0fddac30e1a7a0389a58
T14_1.amr 8f00186205b7ec10f3a150d9adb25176
T14_2.amr af193b43c833e7aab3baf751f4678da2
diff --git a/speech-codec/amrwb/media/MD5SUM.enc b/speech-codec/amrwb/media/MD5SUM.enc
index b853e6b..d3b679e 100644
--- a/speech-codec/amrwb/media/MD5SUM.enc
+++ b/speech-codec/amrwb/media/MD5SUM.enc
@@ -1,23 +1,23 @@
-T00.inp 443ba4ddeab65e4c1901f2c99d27af6f 154e0ec61af428b44faf2b5baf79db36 209511428d79be0846292d4361508a70 4b8dd03d512ebbbc1ea44093fe9a9f3a 3d8fb3305926cd8eceb0f9bc6308bc0f f32e093e73e0de1c09ae6291fc501aaf 8e716df581f1756638436ee256218cb3 4684d0ce55aa55df65edbd6c479a831c ada6c80a29468cb751eaedd463373f7a
-T01.inp 2cb160564ee2a1835bd12e7d7fd10794 b72fa0a5a44f78749a6ee9b653cf64a4 6bfc6705d0ba992f8d15966a73aec75e 33d79636c0ce4650c355a657f747e186 62947cd40f50300cd06a9b2bbac292b6 bde0f590d4cd3175d8b641a55f507939 7fc28c9e2eb3efb43b12c05a67f1ff63 63efc6fd3082c3c5cd89da9c516878ff 22777893faedbf9bcd6dfefdcc8397b7
-T02.inp 5426065e8dc8958148196294344d2186 245119d890548344c11f51c6280d36d4 5076e6b42b7e5fb752fb56ea4c3ca9f0 d48c76570ba4dc3b34a34a857bfa13a7 fc72beb9d588e68732305057d03e0fcc cd100d53da10c5afbe185f776a14fb2f 0557779c8aeac7ce2fa093d763100f5f b5d15a4f736edac98ed72a0bb15b0516 77c795f2afc35c2f25e24a21b05994d4
-T03.inp 58902518c16b6d4c3af91d24ac68ee60 4c175f79804168c20b2ddf5339051583 d3d6e13f3c973283847fb01df2390b15 b670828d72a81097ba9941c82d4c74d4 0a1c921ec6423677500927d92e7d4f1c df94cd39578d60a6c36c8f08aca0bb59 c1749385b37917918a6fa995ea4983e8 3c19c8b1ee3d43dc6e4b20dbe6ffd9c4 da7b2700dfb3e15c166bcb4b90bcd13a
-T04.inp 324c443e760a8a07d96bb3ad8e1768bf af7fa19992b3c238cc39a5c038edf4f3 ef193406ca91a056b17346910bea2e49 ba3bf7ec4b18565ede1957f4221fcdbd 1323432580eac6130b3f83be7107dc4c ad896c6ce5a68af44ee783749b50ff8e 66a68656b6cdc65f5a02e3b0d8f325f8 d41e4c91e35993042faf23d5f2f09709 e6d38b5bbd53c9f12021c0a2b31e910b
-T05.inp b20d4f4d8a054e851b67572680003c61 c335f42bf6461f247433c4bbc8312157 c2630802575a2897c485abc55dfb7b99 f96e7b628ae337f55ce94c47ca76d3f5 3302151591544c03cf5e4f01ca0b6cb0 d7c5ad34deae347199d416d82d49e96b 02e8e7e392092324dad157258858031c 73af44236c2c2fe611838a03bb81e7b0 e729bd726b884719a790aa3a8c072808
-T06.inp 97237afa691de8a4d773f544f1039687 91a9b81c52ede7f54f86d4057a2df2f5 71f59fb7e8e60cf8b6477404dcf2c035 926c49b044b7b2b09a3fa71e75e71427 a78065c93fe53cdd7ca8a2cccf684c33 fa58b8d9eb50a3d6b506ab45702fb87a 58497a2007ce29c5b6ade92ec618d85a d8812011adad30f9e2351269f445564b 9d19f6d66921353367a8ab9e1b407743
-T07.inp 27cbdd210ff6a4e016ddaefa4ebdc1f0 0bdb8c89f00ac10874bcdc60ce797fa2 f4aa5ca776f98bb7a49ae624aea47187 c7892f09922a69e5d9a3a677ebaa6b97 78fdca574bb59175cd2964358b45af78 d71fa99ec31e74447be2b6cd0113bcad 1495e3d18c4e2116d86e98bfa81158e7 2a5f9646c4a9325d5f3bcb69e6e04929 a4b4ed118e709f61cdedd2a9a63feaa5
-T08.inp cfebd6af0e66f5c7af9772be5a5a1e86 1031f08f2dbf982b26f590e670a6399c 62e50977b1bcb4899b69963998506521 b1638e34e289dcf0ad00396909e789d1 04936d925e2258df8452ee2171d8193a b7faafaa3ef2960d06b1c31d139e0cd6 9aaa721d63c8e7853d191ae4deb2d6c4 29ec29ac7d6431fcd922c758068d528c fae07949647843d04297cb389836d984
-T09.inp 477effa29ec76df1fc7a24f02593a590 3da2ac7bc6a7089b9f071c48c2b0eb2e 1cdd44a6a57de737b26ce107d33194c3 d28dd6737bd75bdff069ec9b8585ea02 839100d471b99d2288177c7daeefaacc 0c63c9f6b0404d06d45c98f7d3716eaf 041912ae313fefd52cfee5b60f61a43c 8ecdc3362b166ba04498de8e91cafdc7 13f38a02b0ca01f5fbb501d7cbaae159
-T10.inp 949d1a5ae392a419e7278cae332e598c 408fbcbd2b9b7238a85a5a9ce321dcb3 7d024ea5c139bd1037d7f6e27e1678a9 0241db84a71070609605be9b4be55ca3 8c7b57bd442ae2edf194fac712fc9f30 0201b7ff09a923640e837da4bcb01ad3 5ae54b17e767a1f5377c93767484ec46 dae317e63d8d3678598d8dd16257f139 506a13372f39d399af13a1a339b8676b
-T11.inp ec5355fb14114e1f5a0f5d182a0a577e 70843f25009517dd3f33d2dcd961a757 1dd9d6975028c117c2b433a878f67d29 1c2b2a73e3959135b4b9f03eab44d525 194422c3dd21da994830cd1e80f4028b 7512a9a322f8ef28f6b0d6c3fdb631bb 4911360b09772c26fd60174a1743b936 c6e931122959726d66db4e5dd989044e ce9ba79b6c508bd83b842a6e795d1386
-T12.inp b5e8e8f5ff3a3617b6f14307bb4cdc57 918e38668bb4e6890798caddc86f61e1 20f9b4bd43e2af6cda73e97ce929f291 d1b4b5469de3c425bb7f47ce994c4852 d0f2ef4289a5563baf941a50bdb18890 13b17234ef74bc90b211b309800c01bb 415ff871befb7864284f09e98e16c6fe 9ec6a6d7c9babf830157d72ce98cfa45 4b5d4df1ddb1e9552354a9458785c3bf
-T13.inp 134aa8e05011922168a4e3798385bd59 f041c29ab1d7fa9d685f1660c188f63e 6adf8746e2fcea77178c293ad4e262d0 0323d69a935162191198bf29b49f908f 081ecf5f221d9842a897f528258518f1 1d5c7f5e529894a96e544df3036cb56b b916f37edb2f869f8e50ac958edf393f 6524148c70b95081d45d2fa97915e022 f1b4746fffb7594a5ad32d070e46ab2b
-T14.inp 9976c41e34cb55cb4bb40b828bbf6bd7 4f9a0aa490cf879f34aec7fb4b72602a e154c7ced25205dc2e439312904804b5 bff4336c9f4b8d1cbf5e395a511d65db 68cb8c4094dc5dbb12530cb7f356e937 18221c22a5a738dfd850f80a5e15b38a a4f67819a0efe27a6357919aa079a73e 4ea28a9dc3bd99a30de975a8966d2f3b 2a2e94fdf8b53736067b79f3e9523f9e
-T15.inp c7b1e03c2653402140875882cc525bc3 d7faf69558635c46632f3752625413f7 9fd807f65c2c7102b7df02e3344295f2 6dec4f21fe84fc6c46c1b61e9c0767f5 58c0dc230c621b337e315c16f511c0ae 492fe28b6eb54ecb14a1003d13ec4eaa ef12e8cccacfd8275a648e9e142206f9 245b00b60dbb02c2bd160eb559238df9 53dff60e98af6e37da3fc93f5f9cca8b
-T16.inp 69aca558cf6c9dac699193ad200ca67b 7750e84c23431bbdd5b5e3cf6ef562fc 2cfaae5c19225bfaa831cb61139e6d8a febcd0b01ba6dad89e94275d183d7148 056afa6e6fe7e4405eac05c26a87c77a 38d5908a8b1be29a09a0ff6383ee0a4c ebae418773d8e25f0e26ded8c96a3328 c60da417e414d76583bd492a4ace9698 5931bb238af45ab39f38f2e4a4e74ddb
-T17.inp 549c6e8c607bd566756daf5fe6e7545a d5a1fe9e4c3af238ddadc5dab731dd2e a2d0802cc6b12315df18ce7627c84b38 a7ff91b6b57d30f98498ecfe0c9d4059 8877a901019dfd29c08a33346f7db7e9 d11e2034d81de85936b3ecb5ed5eb82b 47b99f61d4e08c719acd85f544e34832 935520ec727feead078ba6e936a00e6e 73ca9d95900b4c465da1e42ca1859d0b
-T18.inp e7f9512524afc13ffa39614d29aa46da 15305cfa4c3b2b50584349aa56330dc1 0330231a675aed783a5ed00d3edf11f9 06856acff46bb2add4aad8f75b38771e 840da442d20b5c4e97bc76061e147fb9 3da1b00ca063a7f79fa063ff36bfa6c1 3f2d0a9d86f007ef423868c92cf05f9c 16541915ca4926990e3429eed0891a4f 422ce4e77b24e39413ff20330f9397a9
-T19.inp b7fdf3d4ee600c2734b6f1dd9b10dd15 54d37c5c7cb49dab44629a114653cb71 c6991fb49ae79baeb6d74537855b9950 8d4deba0de583e3fbff909dc52d6feb1 8239b01ab240bdfc89c49c36821c1928 94c4d0496b65b24c98982600a6821ea9 932d39c2c3b20bb7fa697dcfa6196bab 0221546dc21ca7553011d53902d3746e 37139277bfcdb3fe362c5235f91a833c
-T20.inp b611e66eabe7017165a804f8ba0d2c27 a425d4897529328678e4a7cbcf825677 22dcd4ef2ebd4d71556b497aba3f56a7 0decd0ec70baab755279e6d77f770851 6bae732e527f8ade422be7a7e343c2f2 07fbe430c6a3279fdf0dd07493977359 3102c5281c02a2caa76e42d317581c8e d913aaa7ad2db491285eb779b4751e01 723a3e31ddeb38a204b60aa5f7203ea9
-T21.inp 3ee3ca622e67f6b82e8e1dd62689ad93 beab9375ba9ca645ac8d5785bb373853 6904aeace272f2445a4155a4ab12dcba 06829e8d477898a0f1ff50c2e5de4242 a5717f81e2988e76f3afdc155e88dedb eae01263eef2481b50fd10483ece5489 eaa647afc15c6c14387e0d8fe4bf2041 c9ab19c296771d4ead16539f834d5f73 d3c530dbeb45b57a744f9a1a5118fde5
-T22.inp 30c10327ca4191ddc8f321028762b8bd 6a636b192bae2cc824f973ae0a5cfffd d60e5f1aa55a9e88be1956aefec5025e 1741f04e9b31313e703afe560bbc6d9f bfeec954c2c5e94a5f83d984bd10e24c d0be6a48fbc9c2a1b4dcd7a1f3cb8ba6 9d33c38d14ac4e290e5638bf44dc2835 37ddb368e797645b0d0dd902d250093f 2e15576d66d445d23fb81eab2090b2af
+T00.inp e972ce155d04f17b2a43798639fa6f77 24c1b04cda17761cae6d01be1de1aa3f 51d6820a4fb26b59c49f02bae4547e97 9186a19a6cfa75df284d0dab23bea49e a73caf9b443dd75de07834dd1733f639 d9346f65dc027b9ca3a1bf8e1d518d31 2bd249dc80dd59361ef764e1b83cf994 356bb4877d365ccd32d18bac72efcbad 5e98f5093d0f80195915f4353ec5433e
+T01.inp 4cc8815893c392759efbf7c83a5a01ba 241bb30ef64ff1d05b71e15478fb142f e1020d388fffde7eadb6ab722cf6cde8 9c3a892cf66e5e17575f823896e8b89f 7f84da4b186393efb78e3af83ee3ce6c df2cdf732ed86d551c4b84ae071cdf75 e3111210ae0e9e60b4e0af492b5a8009 353a83599650900b73e9a43acfe4282d 59fc89e6090d7b87f54f1c642db09aea
+T02.inp 0e3c000b69881f84ed05ec9406c6a893 c1b6e9197e2d6c5e112997f9c0494523 5688581b274c1ea6ed5dadca9e258a7e 3a0d1bed9f33e542b2ca57edb5f4db04 85d0b2a48a26f530c81fcd67a47dcb81 223668dde72a61caeb444d032cdd3289 6f22c889847c643d5eaa13ffec729346 be68f61527ec843c1a9bd4fbd5a7f29c 1f53975717e2aa318f64fd25ecf481c9
+T03.inp 3e1a3fc31bf7081ec125ffb123e6d76d 32cbfa936e6c2a35aad02ddfc8d79819 099e56325c3b33ee7c63e115760ee0b6 2d2ff5798f12d5987d30c8670c486394 a875f88d9e6f1282a733159e6c8d475e cd16a7365eeed527ebb3095dca5a6ae9 4b72ddcec4f83fa23e441fddd2e30300 4661ca54bd3b0b425ffe29b5eea0d272 9815b8679ceea127bc1c678ff856f00e
+T04.inp 68434bdee73515df9a29881c81fd2b9c 69a8b362b02840beeda254917b681966 ad28c9e1e16f1d12c951beea3b20b5a8 83995416efb351a6172106bee3283774 9e335aa1e1729df5566e41e8ec36d229 b8729b3381481951e4d9b43217a1816f d1aeb64c7d4fe5a4cb5f08d8549acaaa 19429c98ff0956a698172809b891e0d4 8761b49c482ccf3328688dd9c9735c81
+T05.inp e15032f8fb5b983c43eab2f8cb71a9e1 1552d206eadfce29f7f723d4601306c5 e4cd20c2a345a1e20e4b91b52822b576 8e6ec0f075321acc4304a88662422b53 eb9ab1b8d75c6e841a00092bce115cf8 933e6a8a4880e6141c08e09f911e539a 22753546e179205e0f926a24fef3f6be 5e14a9ff4f1c919c276792ef81a252a5 0483d32d47d5e336b0df18d838990ab3
+T06.inp cde021e1443db6093e0497232ae84ac5 39d0d70f2b26ba3e6294153f69a09148 20697c3c853fcc1302de849bedddfeb3 f44f38e2540f66bb10829a4ab61ce3b2 e0f318af1d71cebd8c740212feccbb17 b9bd8b7bf41ac1a223360a1e0c7c2107 5329803094599b77ed4b71be4109ef1a 2a36472da14cd17ec281fe77909c2ab0 25305c4e3410a0611f681446ca44f2a2
+T07.inp b34a796af5af79269ede4a684550f7ce 827760733719da47edc6284ab06f6b98 1a252a2bc9a84f63221e62b8ac596866 7b5c54291fba8da91c97e7f5be05487d 76763410eff19a69ec79061e3f517521 813398c8afa2ef057eae142bab232207 7af1f3f642ff0155083fbce083d24910 0d6fa32c588748136467a4f0c6e39a24 1e3fd93b41cf971056d6ad2435fcdb25
+T08.inp e3029476433d0ec4ffbf8630a5f140ae e5aa8c687c6bf754e0838c064e669aad 0fdbf0a4b56f4ce6438f4af885f77c38 9dcf9a7eef37b7de0ddf3b84772d90e0 15708817de59f2a9e3e04e589becf329 0db9ad65b01e02ccd288f31c1b664f79 319f1bee16a377e97725fb99e080a937 064c82acf74b56413bdded1daee2d11e 47c2f45355de925987b23b27dfab4286
+T09.inp 58bfbf142d2a552222a00df9ebd95da3 2ffa74054207ebfee60c81a7877fa4e7 66dbfda2277a69d8ae1a369657465b22 e3b3d8c55bf63b7d02a5c17dae7206d5 820dc27e1acd951f897eb13a45b5c66c 003856373cfd11fbf4ae31961b188dd5 9d42cc37e90f0bbfd2e0afb5b1f8e712 d8619b7a582d6f89e57d1621c301ab90 f583287aa27e65e2179312f03e99bf07
+T10.inp feb03900802ddb3cbf8e3190a0da6a29 336a56dafecbd2d6574e3b8c1cb5ec06 858a0689a541e652a17448a2f4a7b07c 86fd0031cc6ed0cd05fdfdeef5ab0d21 0db81b3a9f4124a07c5c0a2ce3dd4a0f 4b5cee0745d8de49aad682039a6df677 2db7c288d80752000be6137b22ed14e1 70955dccc9981c88ba832a0c9dd3cdc6 10629c63b343359cb9d038a6fb151d2c
+T11.inp cf44c24e20c7a634036a7a510244929d cd953f63263461c69c427d1004b991a1 7fc22da689b6efe1563925c7c9df4fd9 14ae3b3aa72819495c5cc4cc2b109830 acc6a8923fb927909b11b409b334e1eb 669404f12b0b3a0b6555ce254b1e576f 5f686fb7a06bfc512173bfa0ed395b83 c4b9b8e66d81c8a5a20394e3b5fc50a1 41afe375c571c11d2fbd79f027e68336
+T12.inp 629a46009fdd55eda44322bb7b5a8b4b b126bbdf5b841e9292bb214f9ff4d5f1 31789ee65a28b5ce38d362b8a172da8f 371a69122a6d9f639527d825bbc52b71 81839263cd4ec83f8385159f595362ac b8cb5646ca9019c383a79c533be7ef46 a134113b3e27db30eaa131fdf53adb04 62c95347e0bb88c0f625db90667d9894 14721a63de966b47ffb98f3d8b08608f
+T13.inp 3430f3ee32bdc773e055616c93e3110f ffe7f89743fa12f14cff359eab263c86 60529972c4c51e617dd25852a22eed16 71b33e1a14a087acf54227851257ec59 35386425e6eeaf8725261c90ddb1670b d3d6f81d475fd3a1280f4c9613271bfe ebdf7db1644763aed9ffc0827c6f0785 8c89390b413d3558577ffe6edb726d40 aa9d12e733019776e7ec1e43955682a7
+T14.inp ddc86b9a900f645fe2782f6f4051ef98 aee0a97d1daf465cdee37636ddd96dfc 0da5bc5b14ca8379e9c4855ecf92b482 ec135e2a74a674514ea5123226ea7e12 317c72932c3a08cacf0400839f987e32 90d7aa29ba617c080e023850884f764a c4cb3231a545deb30f4e41970a83348d fffaf333df119197f52d76cbdf8f16c2 c553a8fe917fab5b00d8ca52a69bf89a
+T15.inp e43f67ffde31639b3743175b91c11dfc 0d2e856be4f7b80155d4e6f2a8301587 fd13671481025a08142f5fad1eb071d6 10b427d4cf8df3215a68a08cf225059b fb93cdff71da2d086d947f9df9d28a4f 7aad9cfd14fa706d2786c5e0f6d1351b 6b8d33cb392ec8d204516a2f998aa255 6a26fc0c3e431e3f6bd99c8d75af54dc ba4f3ea4a594377971cb3140797f760c
+T16.inp d27d044c9c3d81f4c62a1c4dadcba4fe 313d603e7bfa72f95b9048b4eaacfee8 d006d93a17f59d9791878921936ea242 4ff21edd3186ebc74e80b660b953e6ea dee275fdc50dc67de7c60c67cf1facad 37844f0a241a56e86e29ff2db0091c9d 9e7f03d547376cfee63a3739c59a0400 fec908d9c6357e8dee61bb19045de01a de27fe1527d51a297e1451e7410da286
+T17.inp 94dfb24a56d25b8453492a2c90d0289d c9d64e615d34b1bb09e35b5670a7f64f 6a2fa7a1a4ad5c4046a05d99de3063ac 41d81f3e8e308d0da62e61b5e8f95998 4b6b8cf86d3f4b96b4f9c99b8f878dff 7ff5c46091878132b8008b49cabe950b 00dbb675b0091357aaec9b874106b5c8 0b648bf746c27705a1dd485478c5a23a 31ddf724f1d03741a815bbd2a7825d39
+T18.inp 39e5c92fad2296f6500eced790c5f011 8f555e6511d1024b5a0108e47b853de4 35fd1666a94ceb797859bd7a303c8a86 1205c7307f8accfac7cb951acf826b84 2093ae45d41733f940c590db0e05f329 b47bc9eb71f7ce7e5fb4d1141b3a6fbe 2a1fbbaadbc8708b1444e4ad96ab214a 6a5811c147077146890a430c99f2dc89 899710eb3fa49d8967f54f3c0e143006
+T19.inp c95cf7af539e29976b246d82ff89b029 8e45c7ff7fc469f7dc9f82c5d3d0d258 d2764bd7dd10130de2d1e1b284b54683 e9de7d37262e57bb010b2bc0344d1eea a438e7d45db6c88c187b37c95e85c5dc 6e1e7594c29db4ed5e8a498c3f406c84 f68d4eb9b9d039b3126be212fd027c3c 42e0c6e3c07f921de3ea9ebb6fc131cd 26861294d599a99e4ff443338c6758bd
+T20.inp cb05e879e5cabb5a35d8b20bc2456b20 7a14e74f3447158221f774b77c6f03ce 211ce9e64b97ea3af634b4383e50dee1 3abf889ba8b9b1456729e5118850aef8 6dd567da514055b2b265b6ca0c5aaab2 b3d93d10ce3e5b9fe199e0871bd998ea 4f6ab1c6944d3d99598eedbd7a39000d 4efb5581e74799442fea186a940e17a6 89cf19b7e12b0a5746ec4f70eb45350a
+T21.inp dd350f78fe89fc89667d1ecd8f0be5d6 65b917ebbd074053bd71a0bc953fa8d2 12350d37e75f90d0d0dd0869c5ee9a13 3b2ccfa6920ef7d227e6e28e79ef67d9 3298ef643015964fcd2980ae3a41e63b 6ddffd7f1254acb1a7e173ad90364d09 310e0a8a762016f2ef997cd7f5afffa9 21bc8223b918ab2a6b6fef718a0bca13 1485580e9e407e8fe424cb0c4423e5b1
+T22.inp 4d5bfe48a8697b8266b6c810f0758182 bda757fa68aa8d4b94b481fb97f3fa17 8069551b2ccfc64dcd8f676bf7884ee2 de04f8e1a42bde94f1e5696e4fc34d6b 6835e9fce9cb9f45882719a340c4a77b 74a4f61d4239a73a1ff16f6c12a60c30 c3bf8c69fe559fac445eae4eb98a451f abfd74fbd19e55ac664fd6033794d84a f88b83fbe1a35812e568e82024a0e7c7