-
Notifications
You must be signed in to change notification settings - Fork 87
fixes issue 763 #774
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fixes issue 763 #774
Conversation
We need to release after this. Waiting for tests to go green. |
good morning! I tried this and unfortunately there is more. |
with the smaller block size used in fuzzing, this fails: #if !SIMDUTF_IS_BIG_ENDIAN
TEST(causes_mismatch_in_count2) {
// different count reported! 168 vs 88
const std::vector<std::uint16_t> base64{
0x4a, 0x31, 0x41, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x3d, 0x20, 0x20, 0x3d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x2020, 0x2020, 0x2020, 0x2020,
};
compare_decode(base64, 8224, simdutf::base64_default,
simdutf::last_chunk_handling_options::stop_before_partial,
false);
};
#endif working right to reproduce the problem with 4096 size as well. |
here is an unminimized case, working for block size 4096: // different data size! 5763 vs 5766
TEST(issue_xxx) {
const std::vector<unsigned char> base64{
0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31,
0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39,
0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30,
0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31,
0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32,
0x38, 0x33, 0x34, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x31, 0x30,
0x31, 0x32, 0x32, 0x32, 0x35, 0x33, 0x36, 0x34, 0x35, 0x35, 0x39, 0x37,
0x34, 0x37, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x39, 0x09, 0x09,
0x30, 0x30, 0x30, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38,
0x33, 0x34, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x32, 0x39, 0x31, 0x31,
0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31,
0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30,
0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32, 0x32, 0x32, 0x35, 0x33, 0x36,
0x34, 0x35, 0x35, 0x39, 0x37, 0x37, 0x31, 0x34, 0x32, 0x34, 0x09, 0x09,
0x09, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31,
0x32, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x39,
0x35, 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30,
0x31, 0x30, 0x31, 0x32, 0x32, 0x32, 0x35, 0x33, 0x36, 0x34, 0x35, 0x35,
0x39, 0x37, 0x37, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31,
0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x35, 0x35, 0x35, 0x32, 0x32,
0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09,
0x09, 0x35, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30,
0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32,
0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x31, 0x39, 0x35, 0x33,
0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x38,
0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39, 0x09,
0x09, 0x30, 0x30, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30,
0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39,
0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34,
0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31,
0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30,
0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32,
0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39,
0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30,
0x31, 0x30, 0x31, 0x32, 0x32, 0x32, 0x35, 0x33, 0x36, 0x34, 0x35, 0x35,
0x39, 0x37, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x39, 0x09, 0x09, 0x30,
0x30, 0x30, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33,
0x34, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x32, 0x39, 0x31, 0x31, 0x39,
0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39,
0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30,
0x30, 0x30, 0x31, 0x30, 0x31, 0x32, 0x32, 0x32, 0x35, 0x33, 0x36, 0x34,
0x35, 0x35, 0x39, 0x37, 0x37, 0x31, 0x34, 0x32, 0x34, 0x09, 0x09, 0x09,
0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x39, 0x35,
0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x31,
0x30, 0x31, 0x32, 0x32, 0x32, 0x35, 0x33, 0x36, 0x34, 0x35, 0x35, 0x39,
0x37, 0x37, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39,
0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x35, 0x35, 0x35, 0x32, 0x32, 0x35,
0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09,
0x35, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30,
0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39,
0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x31, 0x39, 0x35, 0x33, 0x34,
0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x38, 0x09,
0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39, 0x09, 0x09,
0x30, 0x30, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30,
0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31,
0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31,
0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31,
0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x30, 0x31, 0x30, 0x30,
0x09, 0x09, 0x32, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39,
0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31,
0x32, 0x38, 0x31, 0x37, 0x32, 0x34, 0x09, 0x09, 0x30, 0x30, 0x30, 0x31,
0x30, 0x31, 0x32, 0x32, 0x32, 0x35, 0x33, 0x36, 0x34, 0x35, 0x35, 0x39,
0x37, 0x37, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x39, 0x09, 0x09,
0x30, 0x30, 0x30, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38,
0x33, 0x34, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x32, 0x39, 0x31, 0x31,
0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31,
0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30,
0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39,
0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x09, 0x09, 0x31, 0x31, 0x39,
0x35, 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30,
0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34,
0x39, 0x09, 0x09, 0x30, 0x30, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09,
0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37,
0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35,
0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32,
0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31,
0x39, 0x35, 0x34, 0x32, 0x38, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38,
0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x38, 0x09, 0x09, 0x09,
0x35, 0x35, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32,
0x39, 0x31, 0x31, 0x39, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35,
0x33, 0x34, 0x32, 0x38, 0x35, 0x35, 0x35, 0x35, 0x32, 0x32, 0x35, 0x30,
0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35,
0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30,
0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31,
0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32,
0x38, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34,
0x32, 0x09, 0x09, 0x35, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09,
0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30,
0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x31, 0x39,
0x35, 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30,
0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34,
0x39, 0x09, 0x09, 0x30, 0x30, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09,
0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37,
0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35,
0x33, 0x34, 0x31, 0x31, 0x32, 0x32, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32,
0x38, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31,
0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38,
0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32,
0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32,
0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x31, 0x35, 0x35, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39,
0x09, 0x09, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32, 0x32, 0x32, 0x35,
0x33, 0x36, 0x34, 0x35, 0x35, 0x39, 0x37, 0x37, 0x38, 0x09, 0x09, 0x09,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31,
0x39, 0x35, 0x33, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x38, 0x09,
0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39, 0x09, 0x09,
0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x35, 0x35, 0x35,
0x35, 0x31, 0x31, 0x39, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37,
0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x31, 0x39, 0x35,
0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32,
0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x39, 0x35, 0x34, 0x32, 0x38, 0x09,
0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34,
0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x38, 0x09, 0x09, 0x09,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31,
0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38,
0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35,
0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35,
0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32,
0x31, 0x30, 0x31, 0x35, 0x34, 0x32, 0x38, 0x31, 0x39, 0x35, 0x33, 0x34,
0x32, 0x38, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35,
0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30,
0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35,
0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x31,
0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30,
0x30, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34,
0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09,
0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30,
0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39,
0x35, 0x33, 0x34, 0x31, 0x31, 0x32, 0x32, 0x31, 0x39, 0x35, 0x33, 0x34,
0x32, 0x38, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31,
0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32,
0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31,
0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34,
0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x31, 0x35, 0x35, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34,
0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32, 0x32, 0x32,
0x35, 0x33, 0x36, 0x34, 0x35, 0x35, 0x39, 0x37, 0x37, 0x38, 0x09, 0x09,
0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31,
0x31, 0x39, 0x35, 0x33, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x38,
0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39, 0x09,
0x09, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x35, 0x35,
0x35, 0x35, 0x31, 0x31, 0x39, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30,
0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x31, 0x39,
0x35, 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30,
0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x39, 0x35, 0x34, 0x32, 0x38,
0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33,
0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x38, 0x37, 0x32,
0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x31, 0x39, 0x35, 0x33,
0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x38,
0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39, 0x09,
0x09, 0x30, 0x30, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30,
0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39,
0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x30, 0x30, 0x30,
0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x31, 0x31,
0x31, 0x39, 0x34, 0x38, 0x37, 0x31, 0x34, 0x30, 0x09, 0x09, 0x09, 0x30,
0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x39, 0x35, 0x33,
0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x31, 0x30,
0x31, 0x32, 0x32, 0x32, 0x35, 0x33, 0x36, 0x34, 0x35, 0x35, 0x39, 0x37,
0x37, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35,
0x33, 0x34, 0x32, 0x38, 0x35, 0x35, 0x35, 0x35, 0x32, 0x32, 0x35, 0x30,
0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35,
0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30,
0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31,
0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32,
0x38, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34,
0x32, 0x09, 0x09, 0x35, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09,
0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30,
0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x31, 0x39,
0x35, 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30,
0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34,
0x39, 0x09, 0x09, 0x30, 0x30, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09,
0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37,
0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35,
0x33, 0x34, 0x31, 0x31, 0x32, 0x32, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32,
0x38, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31,
0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38,
0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32,
0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32,
0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x31, 0x35, 0x35, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39,
0x09, 0x09, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32, 0x32, 0x32, 0x35,
0x33, 0x36, 0x34, 0x35, 0x35, 0x39, 0x37, 0x37, 0x38, 0x09, 0x09, 0x09,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31,
0x39, 0x35, 0x33, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x38, 0x09,
0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39, 0x09, 0x09,
0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x35, 0x35, 0x35,
0x35, 0x31, 0x31, 0x39, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37,
0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x31, 0x39, 0x35,
0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32,
0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x39, 0x35, 0x34, 0x32, 0x38, 0x09,
0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34,
0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x38, 0x09, 0x09, 0x09,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31,
0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38,
0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35,
0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35,
0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32,
0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31,
0x39, 0x35, 0x34, 0x32, 0x38, 0x09, 0x09, 0x31, 0x31, 0x39, 0x35, 0x33,
0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34,
0x39, 0x09, 0x09, 0x30, 0x30, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09,
0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37,
0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31,
0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38,
0x35, 0x35, 0x35, 0x35, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31,
0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x33, 0x34, 0x32,
0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31,
0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34,
0x32, 0x38, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09,
0x09, 0x30, 0x30, 0x30, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32,
0x38, 0x33, 0x34, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x34, 0x32, 0x38,
0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32,
0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32,
0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34,
0x32, 0x38, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31,
0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32,
0x38, 0x35, 0x30, 0x30, 0x31, 0x30, 0x30, 0x09, 0x09, 0x32, 0x30, 0x31,
0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34,
0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x31, 0x37, 0x32,
0x34, 0x09, 0x09, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32, 0x32, 0x32,
0x35, 0x33, 0x36, 0x34, 0x35, 0x35, 0x39, 0x37, 0x37, 0x38, 0x09, 0x09,
0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31,
0x31, 0x39, 0x35, 0x33, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x38,
0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39, 0x09,
0x09, 0x30, 0x30, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09,
0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31,
0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32,
0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31,
0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34,
0x32, 0x38, 0x09, 0x09, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38,
0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x38, 0x09, 0x09, 0x09,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35,
0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30,
0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31,
0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39,
0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35,
0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32,
0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38,
0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30,
0x30, 0x30, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33,
0x34, 0x34, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37,
0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x31, 0x39, 0x35,
0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32,
0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39,
0x09, 0x09, 0x30, 0x30, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30,
0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32,
0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x30, 0x30,
0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x31,
0x31, 0x31, 0x39, 0x34, 0x38, 0x37, 0x31, 0x34, 0x30, 0x09, 0x09, 0x09,
0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x39, 0x35,
0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x31,
0x30, 0x31, 0x32, 0x32, 0x32, 0x35, 0x33, 0x36, 0x34, 0x35, 0x35, 0x39,
0x37, 0x37, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39,
0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x35, 0x35, 0x35, 0x32, 0x32, 0x35,
0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09,
0x35, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30,
0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39,
0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x31, 0x39, 0x35, 0x33, 0x34,
0x32, 0x38, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35,
0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30,
0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35,
0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x31,
0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30,
0x30, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34,
0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09,
0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30,
0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39,
0x35, 0x33, 0x34, 0x31, 0x31, 0x32, 0x32, 0x31, 0x39, 0x35, 0x33, 0x34,
0x32, 0x38, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31,
0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32,
0x38, 0x35, 0x30, 0x09, 0x09, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32,
0x38, 0x33, 0x34, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x34, 0x32, 0x38,
0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32,
0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32,
0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35,
0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x31,
0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30,
0x30, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34,
0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09,
0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30,
0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39,
0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35,
0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30,
0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35,
0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x09,
0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39, 0x09, 0x09,
0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32, 0x32, 0x32, 0x35, 0x33, 0x36,
0x34, 0x35, 0x35, 0x39, 0x37, 0x37, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35,
0x33, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x38, 0x32, 0x09, 0x09, 0x09,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35,
0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30,
0x30, 0x31, 0x30, 0x31, 0x32, 0x32, 0x32, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x34,
0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32, 0x32, 0x32,
0x35, 0x33, 0x36, 0x34, 0x35, 0x35, 0x39, 0x37, 0x37, 0x31, 0x34, 0x32,
0x34, 0x09, 0x09, 0x09, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
0x31, 0x30, 0x31, 0x32, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09,
0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32, 0x32, 0x32, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34,
0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09,
0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30,
0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39,
0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35,
0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30,
0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35,
0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x09,
0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x39,
0x31, 0x35, 0x35, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39, 0x09, 0x09,
0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32, 0x32, 0x32, 0x35, 0x33, 0x36,
0x34, 0x35, 0x35, 0x39, 0x37, 0x37, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35,
0x33, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x38, 0x09, 0x09, 0x09,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35,
0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30,
0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x33, 0x34, 0x32, 0x38,
0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x34, 0x35, 0x35, 0x39, 0x37,
0x37, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x39, 0x09, 0x09, 0x30,
0x30, 0x30, 0x38, 0x32, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33,
0x34, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32,
0x32, 0x32, 0x35, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33,
0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x35, 0x35,
0x35, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35,
0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30,
0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35,
0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x31,
0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30,
0x30, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34,
0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09,
0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30,
0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39,
0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35,
0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30,
0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35,
0x30, 0x37, 0x32, 0x39, 0x31, 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09,
0x09, 0x30, 0x30, 0x30, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32,
0x38, 0x33, 0x34, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x34, 0x32, 0x38,
0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32,
0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32,
0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x30, 0x36, 0x38,
0x35, 0x36, 0x39, 0x38, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x38, 0x09,
0x09, 0x09, 0x35, 0x35, 0x39, 0x35, 0x34, 0x32, 0x38, 0x09, 0x09, 0x09,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31,
0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38,
0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35,
0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33,
0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09,
0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30,
0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x09, 0x09,
0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09,
0x30, 0x30, 0x30, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34,
0x39, 0x09, 0x09, 0x30, 0x30, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09,
0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37,
0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35,
0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32,
0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31,
0x39, 0x35, 0x34, 0x32, 0x38, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38,
0x34, 0x39, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34,
0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35,
0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35,
0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x30,
0x30, 0x31, 0x30, 0x31, 0x32, 0x32, 0x32, 0x35, 0x33, 0x36, 0x34, 0x35,
0x35, 0x39, 0x37, 0x37, 0x31, 0x34, 0x32, 0x34, 0x09, 0x09, 0x09, 0x30,
0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x39, 0x35, 0x33,
0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x31, 0x30,
0x31, 0x32, 0x32, 0x32, 0x35, 0x33, 0x36, 0x34, 0x35, 0x35, 0x39, 0x37,
0x37, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35,
0x33, 0x34, 0x32, 0x38, 0x35, 0x35, 0x35, 0x35, 0x32, 0x32, 0x35, 0x30,
0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35,
0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30,
0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31,
0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32,
0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x38, 0x09, 0x09,
0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31,
0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39, 0x09, 0x09, 0x30,
0x30, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32,
0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31,
0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31,
0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39,
0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30,
0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31,
0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32,
0x38, 0x33, 0x34, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x31, 0x30,
0x31, 0x32, 0x32, 0x32, 0x35, 0x33, 0x36, 0x34, 0x35, 0x35, 0x39, 0x37,
0x37, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x39, 0x09, 0x09, 0x30,
0x30, 0x30, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33,
0x34, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x32, 0x39, 0x31, 0x31, 0x39,
0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x33, 0x34,
0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30,
0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35,
0x34, 0x32, 0x38, 0x09, 0x09, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32,
0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x38, 0x09, 0x09,
0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31,
0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39, 0x09, 0x09, 0x30,
0x30, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32,
0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31,
0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x33, 0x34, 0x32, 0x38,
0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32,
0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32,
0x38, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09,
0x30, 0x30, 0x30, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38,
0x33, 0x34, 0x34, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30,
0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x31, 0x39,
0x35, 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30,
0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34,
0x39, 0x09, 0x09, 0x30, 0x30, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09,
0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37,
0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35,
0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x35,
0x35, 0x35, 0x35, 0x39, 0x37, 0x37, 0x31, 0x34, 0x32, 0x34, 0x09, 0x09,
0x09, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31,
0x32, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x39,
0x35, 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30,
0x31, 0x30, 0x31, 0x32, 0x32, 0x32, 0x35, 0x33, 0x36, 0x34, 0x35, 0x35,
0x39, 0x37, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32, 0x32, 0x32, 0x35,
0x33, 0x36, 0x34, 0x35, 0x35, 0x39, 0x37, 0x37, 0x31, 0x34, 0x32, 0x34,
0x09, 0x09, 0x09, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x31,
0x30, 0x31, 0x32, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x31, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37,
0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x31, 0x39, 0x35,
0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32,
0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39,
0x09, 0x09, 0x30, 0x30, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30,
0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32,
0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33,
0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x35, 0x35,
0x35, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35,
0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30,
0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35,
0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x30, 0x30, 0x30, 0x30, 0x32, 0x31,
0x33, 0x31, 0x37, 0x31, 0x30, 0x30, 0x31, 0x36, 0x09, 0x09, 0x30, 0x30,
0x30, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34,
0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09,
0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30,
0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x30,
0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32,
0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x31, 0x39, 0x35, 0x33,
0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x38,
0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39, 0x09,
0x09, 0x30, 0x30, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30,
0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39,
0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34,
0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31,
0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30,
0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32,
0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39,
0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30,
0x31, 0x30, 0x31, 0x32, 0x32, 0x32, 0x35, 0x33, 0x36, 0x34, 0x35, 0x35,
0x39, 0x37, 0x37, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x39, 0x09,
0x09, 0x30, 0x30, 0x30, 0x38, 0x32, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32,
0x38, 0x33, 0x34, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x31, 0x30,
0x31, 0x32, 0x32, 0x32, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09,
0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32, 0x32, 0x32, 0x35, 0x33, 0x36,
0x34, 0x35, 0x35, 0x39, 0x37, 0x37, 0x31, 0x34, 0x32, 0x34, 0x09, 0x09,
0x09, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31,
0x32, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x39,
0x35, 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30,
0x31, 0x30, 0x31, 0x32, 0x32, 0x32, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39, 0x09,
0x09, 0x30, 0x30, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30,
0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39,
0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35, 0x31,
0x32, 0x32, 0x32, 0x35, 0x33, 0x36, 0x34, 0x35, 0x35, 0x39, 0x37, 0x37,
0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x39, 0x09, 0x09, 0x30, 0x30,
0x30, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x38,
0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32, 0x32,
0x32, 0x35, 0x33, 0x36, 0x34, 0x35, 0x35, 0x39, 0x37, 0x37, 0x31, 0x34,
0x32, 0x34, 0x09, 0x09, 0x09, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
0x30, 0x31, 0x30, 0x31, 0x32, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09,
0x09, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32, 0x32, 0x32, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33,
0x34, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x34, 0x32, 0x38, 0x35, 0x30,
0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35,
0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31,
0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39,
0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35,
0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32,
0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38,
0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39, 0x09,
0x09, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32, 0x32, 0x32, 0x35, 0x33,
0x36, 0x34, 0x35, 0x35, 0x39, 0x37, 0x34, 0x37, 0x38, 0x09, 0x09, 0x09,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31,
0x39, 0x35, 0x33, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x38, 0x09,
0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39, 0x09, 0x09,
0x30, 0x30, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31,
0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38,
0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31,
0x32, 0x32, 0x32, 0x35, 0x33, 0x36, 0x34, 0x35, 0x35, 0x39, 0x37, 0x37,
0x31, 0x34, 0x32, 0x34, 0x09, 0x09, 0x09, 0x30, 0x30, 0x30, 0x30, 0x30,
0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x34,
0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32, 0x32, 0x32,
0x35, 0x33, 0x36, 0x34, 0x35, 0x35, 0x39, 0x37, 0x37, 0x32, 0x09, 0x09,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31,
0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38,
0x35, 0x35, 0x35, 0x35, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31,
0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x33, 0x34, 0x32,
0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31,
0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34,
0x32, 0x38, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09,
0x09, 0x30, 0x30, 0x30, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32,
0x38, 0x33, 0x34, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x34, 0x32, 0x38,
0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32,
0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32,
0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34,
0x32, 0x38, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31,
0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32,
0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31,
0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34,
0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34,
0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32, 0x32, 0x32,
0x35, 0x33, 0x36, 0x34, 0x35, 0x35, 0x39, 0x37, 0x37, 0x38, 0x09, 0x09,
0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31,
0x31, 0x39, 0x35, 0x33, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x38,
0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39, 0x09,
0x09, 0x30, 0x30, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09,
0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31,
0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32,
0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31,
0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34,
0x32, 0x38, 0x09, 0x09, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38,
0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x38, 0x09, 0x09, 0x09,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35,
0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30,
0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31,
0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39,
0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35,
0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32,
0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38,
0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30,
0x30, 0x30, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33,
0x34, 0x34, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37,
0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x31, 0x39, 0x35,
0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32,
0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39,
0x09, 0x09, 0x30, 0x30, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30,
0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32,
0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33,
0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x35, 0x35,
0x35, 0x35, 0x39, 0x37, 0x37, 0x31, 0x34, 0x32, 0x34, 0x09, 0x09, 0x09,
0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x39, 0x35,
0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x31,
0x30, 0x31, 0x32, 0x32, 0x32, 0x35, 0x33, 0x36, 0x34, 0x35, 0x35, 0x39,
0x37, 0x37, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39,
0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x35, 0x35, 0x35, 0x32, 0x32, 0x35,
0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09,
0x35, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30,
0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39,
0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x31, 0x39, 0x35, 0x33, 0x34,
0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x38, 0x09,
0x09, 0x09, 0x35, 0x35, 0x35, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30,
0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35,
0x34, 0x32, 0x38, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x34, 0x39,
0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35,
0x35, 0x09, 0x30, 0x30, 0x30, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35,
0x39, 0x35, 0x34, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34,
0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09,
0x30, 0x30, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x39, 0x35, 0x33, 0x34,
0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31,
0x32, 0x32, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31,
0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38,
0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35,
0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35,
0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x37,
0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35,
0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32,
0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31,
0x39, 0x35, 0x34, 0x32, 0x38, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38,
0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x38, 0x09, 0x09, 0x09,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35,
0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30,
0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31,
0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39,
0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39,
0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35,
0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32,
0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31,
0x39, 0x35, 0x34, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38,
0x33, 0x34, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31,
0x32, 0x32, 0x32, 0x35, 0x33, 0x36, 0x34, 0x35, 0x35, 0x39, 0x37, 0x37,
0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x39, 0x09, 0x09, 0x30, 0x30,
0x30, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34,
0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35,
0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35,
0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32,
0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31,
0x39, 0x35, 0x34, 0x32, 0x38, 0x09, 0x09, 0x31, 0x31, 0x39, 0x35, 0x33,
0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x38,
0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x32, 0x35, 0x33, 0x36,
0x34, 0x37, 0x37, 0x39, 0x35, 0x35, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35,
0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33,
0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x35, 0x35,
0x35, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35,
0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30,
0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35,
0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x31,
0x39, 0x35, 0x33, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31,
0x32, 0x34, 0x32, 0x38,
};
compare_decode(base64, 12601, simdutf::base64_default,
simdutf::last_chunk_handling_options::stop_before_partial,
true);
}; |
here is a smaller problematic case which gets different result (SUCCESS vs BASE64_INPUT_REMAINDER): TEST(gets_different_error) {
std::vector<unsigned char> base64(5463, 0x20);
base64.back() = 0x38;
compare_decode(base64, 8224, simdutf::base64_default,
simdutf::last_chunk_handling_options::stop_before_partial,
false);
} |
@pauldreik Thanks. We shall produce a patch release. |
@pauldreik Please see #778 |
@pauldreik Note that this issue is not new. It was pre-existing. Your new fuzzing just exposed it. |
See #778 |
@pauldreik did find one more bug... this should fix it. Reproducing test case added.
fixes #763