1 // SPDX-License-Identifier: GPL-2.0-or-later 2 /* 3 * Copyright (C) 2023 Oracle. All Rights Reserved. 4 * Author: Darrick J. Wong <djwong@kernel.org> 5 */ 6 #include "xfs.h" 7 #include "xfs_fs.h" 8 #include "xfs_shared.h" 9 #include "xfs_format.h" 10 #include "xfs_da_format.h" 11 #include "xfs_da_btree.h" 12 #include "xfs_trans_resv.h" 13 #include "xfs_mount.h" 14 #include "xfs_dir2_priv.h" 15 #include "xfs_dahash_test.h" 16 17 /* 4096 random bytes */ 18 static uint8_t __initdata __attribute__((__aligned__(8))) test_buf[] = 19 { 20 0x5b, 0x85, 0x21, 0xcb, 0x09, 0x68, 0x7d, 0x30, 21 0xc7, 0x69, 0xd7, 0x30, 0x92, 0xde, 0x59, 0xe4, 22 0xc9, 0x6e, 0x8b, 0xdb, 0x98, 0x6b, 0xaa, 0x60, 23 0xa8, 0xb5, 0xbc, 0x6c, 0xa9, 0xb1, 0x5b, 0x2c, 24 0xea, 0xb4, 0x92, 0x6a, 0x3f, 0x79, 0x91, 0xe4, 25 0xe9, 0x70, 0x51, 0x8c, 0x7f, 0x95, 0x6f, 0x1a, 26 0x56, 0xa1, 0x5c, 0x27, 0x03, 0x67, 0x9f, 0x3a, 27 0xe2, 0x31, 0x11, 0x29, 0x6b, 0x98, 0xfc, 0xc4, 28 0x53, 0x24, 0xc5, 0x8b, 0xce, 0x47, 0xb2, 0xb9, 29 0x32, 0xcb, 0xc1, 0xd0, 0x03, 0x57, 0x4e, 0xd4, 30 0xe9, 0x3c, 0xa1, 0x63, 0xcf, 0x12, 0x0e, 0xca, 31 0xe1, 0x13, 0xd1, 0x93, 0xa6, 0x88, 0x5c, 0x61, 32 0x5b, 0xbb, 0xf0, 0x19, 0x46, 0xb4, 0xcf, 0x9e, 33 0xb6, 0x6b, 0x4c, 0x3a, 0xcf, 0x60, 0xf9, 0x7a, 34 0x8d, 0x07, 0x63, 0xdb, 0x40, 0xe9, 0x0b, 0x6f, 35 0xad, 0x97, 0xf1, 0xed, 0xd0, 0x1e, 0x26, 0xfd, 36 0xbf, 0xb7, 0xc8, 0x04, 0x94, 0xf8, 0x8b, 0x8c, 37 0xf1, 0xab, 0x7a, 0xd4, 0xdd, 0xf3, 0xe8, 0x88, 38 0xc3, 0xed, 0x17, 0x8a, 0x9b, 0x40, 0x0d, 0x53, 39 0x62, 0x12, 0x03, 0x5f, 0x1b, 0x35, 0x32, 0x1f, 40 0xb4, 0x7b, 0x93, 0x78, 0x0d, 0xdb, 0xce, 0xa4, 41 0xc0, 0x47, 0xd5, 0xbf, 0x68, 0xe8, 0x5d, 0x74, 42 0x8f, 0x8e, 0x75, 0x1c, 0xb2, 0x4f, 0x9a, 0x60, 43 0xd1, 0xbe, 0x10, 0xf4, 0x5c, 0xa1, 0x53, 0x09, 44 0xa5, 0xe0, 0x09, 0x54, 0x85, 0x5c, 0xdc, 0x07, 45 0xe7, 0x21, 0x69, 0x7b, 0x8a, 0xfd, 0x90, 0xf1, 46 0x22, 0xd0, 0xb4, 0x36, 0x28, 0xe6, 0xb8, 0x0f, 47 0x39, 0xde, 0xc8, 0xf3, 0x86, 0x60, 0x34, 0xd2, 48 0x5e, 0xdf, 0xfd, 0xcf, 0x0f, 0xa9, 0x65, 0xf0, 49 0xd5, 0x4d, 0x96, 0x40, 0xe3, 0xdf, 0x3f, 0x95, 50 0x5a, 0x39, 0x19, 0x93, 0xf4, 0x75, 0xce, 0x22, 51 0x00, 0x1c, 0x93, 0xe2, 0x03, 0x66, 0xf4, 0x93, 52 0x73, 0x86, 0x81, 0x8e, 0x29, 0x44, 0x48, 0x86, 53 0x61, 0x7c, 0x48, 0xa3, 0x43, 0xd2, 0x9c, 0x8d, 54 0xd4, 0x95, 0xdd, 0xe1, 0x22, 0x89, 0x3a, 0x40, 55 0x4c, 0x1b, 0x8a, 0x04, 0xa8, 0x09, 0x69, 0x8b, 56 0xea, 0xc6, 0x55, 0x8e, 0x57, 0xe6, 0x64, 0x35, 57 0xf0, 0xc7, 0x16, 0x9f, 0x5d, 0x5e, 0x86, 0x40, 58 0x46, 0xbb, 0xe5, 0x45, 0x88, 0xfe, 0xc9, 0x63, 59 0x15, 0xfb, 0xf5, 0xbd, 0x71, 0x61, 0xeb, 0x7b, 60 0x78, 0x70, 0x07, 0x31, 0x03, 0x9f, 0xb2, 0xc8, 61 0xa7, 0xab, 0x47, 0xfd, 0xdf, 0xa0, 0x78, 0x72, 62 0xa4, 0x2a, 0xe4, 0xb6, 0xba, 0xc0, 0x1e, 0x86, 63 0x71, 0xe6, 0x3d, 0x18, 0x37, 0x70, 0xe6, 0xff, 64 0xe0, 0xbc, 0x0b, 0x22, 0xa0, 0x1f, 0xd3, 0xed, 65 0xa2, 0x55, 0x39, 0xab, 0xa8, 0x13, 0x73, 0x7c, 66 0x3f, 0xb2, 0xd6, 0x19, 0xac, 0xff, 0x99, 0xed, 67 0xe8, 0xe6, 0xa6, 0x22, 0xe3, 0x9c, 0xf1, 0x30, 68 0xdc, 0x01, 0x0a, 0x56, 0xfa, 0xe4, 0xc9, 0x99, 69 0xdd, 0xa8, 0xd8, 0xda, 0x35, 0x51, 0x73, 0xb4, 70 0x40, 0x86, 0x85, 0xdb, 0x5c, 0xd5, 0x85, 0x80, 71 0x14, 0x9c, 0xfd, 0x98, 0xa9, 0x82, 0xc5, 0x37, 72 0xff, 0x32, 0x5d, 0xd0, 0x0b, 0xfa, 0xdc, 0x04, 73 0x5e, 0x09, 0xd2, 0xca, 0x17, 0x4b, 0x1a, 0x8e, 74 0x15, 0xe1, 0xcc, 0x4e, 0x52, 0x88, 0x35, 0xbd, 75 0x48, 0xfe, 0x15, 0xa0, 0x91, 0xfd, 0x7e, 0x6c, 76 0x0e, 0x5d, 0x79, 0x1b, 0x81, 0x79, 0xd2, 0x09, 77 0x34, 0x70, 0x3d, 0x81, 0xec, 0xf6, 0x24, 0xbb, 78 0xfb, 0xf1, 0x7b, 0xdf, 0x54, 0xea, 0x80, 0x9b, 79 0xc7, 0x99, 0x9e, 0xbd, 0x16, 0x78, 0x12, 0x53, 80 0x5e, 0x01, 0xa7, 0x4e, 0xbd, 0x67, 0xe1, 0x9b, 81 0x4c, 0x0e, 0x61, 0x45, 0x97, 0xd2, 0xf0, 0x0f, 82 0xfe, 0x15, 0x08, 0xb7, 0x11, 0x4c, 0xe7, 0xff, 83 0x81, 0x53, 0xff, 0x91, 0x25, 0x38, 0x7e, 0x40, 84 0x94, 0xe5, 0xe0, 0xad, 0xe6, 0xd9, 0x79, 0xb6, 85 0x92, 0xc9, 0xfc, 0xde, 0xc3, 0x1a, 0x23, 0xbb, 86 0xdd, 0xc8, 0x51, 0x0c, 0x3a, 0x72, 0xfa, 0x73, 87 0x6f, 0xb7, 0xee, 0x61, 0x39, 0x03, 0x01, 0x3f, 88 0x7f, 0x94, 0x2e, 0x2e, 0xba, 0x3a, 0xbb, 0xb4, 89 0xfa, 0x6a, 0x17, 0xfe, 0xea, 0xef, 0x5e, 0x66, 90 0x97, 0x3f, 0x32, 0x3d, 0xd7, 0x3e, 0xb1, 0xf1, 91 0x6c, 0x14, 0x4c, 0xfd, 0x37, 0xd3, 0x38, 0x80, 92 0xfb, 0xde, 0xa6, 0x24, 0x1e, 0xc8, 0xca, 0x7f, 93 0x3a, 0x93, 0xd8, 0x8b, 0x18, 0x13, 0xb2, 0xe5, 94 0xe4, 0x93, 0x05, 0x53, 0x4f, 0x84, 0x66, 0xa7, 95 0x58, 0x5c, 0x7b, 0x86, 0x52, 0x6d, 0x0d, 0xce, 96 0xa4, 0x30, 0x7d, 0xb6, 0x18, 0x9f, 0xeb, 0xff, 97 0x22, 0xbb, 0x72, 0x29, 0xb9, 0x44, 0x0b, 0x48, 98 0x1e, 0x84, 0x71, 0x81, 0xe3, 0x6d, 0x73, 0x26, 99 0x92, 0xb4, 0x4d, 0x2a, 0x29, 0xb8, 0x1f, 0x72, 100 0xed, 0xd0, 0xe1, 0x64, 0x77, 0xea, 0x8e, 0x88, 101 0x0f, 0xef, 0x3f, 0xb1, 0x3b, 0xad, 0xf9, 0xc9, 102 0x8b, 0xd0, 0xac, 0xc6, 0xcc, 0xa9, 0x40, 0xcc, 103 0x76, 0xf6, 0x3b, 0x53, 0xb5, 0x88, 0xcb, 0xc8, 104 0x37, 0xf1, 0xa2, 0xba, 0x23, 0x15, 0x99, 0x09, 105 0xcc, 0xe7, 0x7a, 0x3b, 0x37, 0xf7, 0x58, 0xc8, 106 0x46, 0x8c, 0x2b, 0x2f, 0x4e, 0x0e, 0xa6, 0x5c, 107 0xea, 0x85, 0x55, 0xba, 0x02, 0x0e, 0x0e, 0x48, 108 0xbc, 0xe1, 0xb1, 0x01, 0x35, 0x79, 0x13, 0x3d, 109 0x1b, 0xc0, 0x53, 0x68, 0x11, 0xe7, 0x95, 0x0f, 110 0x9d, 0x3f, 0x4c, 0x47, 0x7b, 0x4d, 0x1c, 0xae, 111 0x50, 0x9b, 0xcb, 0xdd, 0x05, 0x8d, 0x9a, 0x97, 112 0xfd, 0x8c, 0xef, 0x0c, 0x1d, 0x67, 0x73, 0xa8, 113 0x28, 0x36, 0xd5, 0xb6, 0x92, 0x33, 0x40, 0x75, 114 0x0b, 0x51, 0xc3, 0x64, 0xba, 0x1d, 0xc2, 0xcc, 115 0xee, 0x7d, 0x54, 0x0f, 0x27, 0x69, 0xa7, 0x27, 116 0x63, 0x30, 0x29, 0xd9, 0xc8, 0x84, 0xd8, 0xdf, 117 0x9f, 0x68, 0x8d, 0x04, 0xca, 0xa6, 0xc5, 0xc7, 118 0x7a, 0x5c, 0xc8, 0xd1, 0xcb, 0x4a, 0xec, 0xd0, 119 0xd8, 0x20, 0x69, 0xc5, 0x17, 0xcd, 0x78, 0xc8, 120 0x75, 0x23, 0x30, 0x69, 0xc9, 0xd4, 0xea, 0x5c, 121 0x4f, 0x6b, 0x86, 0x3f, 0x8b, 0xfe, 0xee, 0x44, 122 0xc9, 0x7c, 0xb7, 0xdd, 0x3e, 0xe5, 0xec, 0x54, 123 0x03, 0x3e, 0xaa, 0x82, 0xc6, 0xdf, 0xb2, 0x38, 124 0x0e, 0x5d, 0xb3, 0x88, 0xd9, 0xd3, 0x69, 0x5f, 125 0x8f, 0x70, 0x8a, 0x7e, 0x11, 0xd9, 0x1e, 0x7b, 126 0x38, 0xf1, 0x42, 0x1a, 0xc0, 0x35, 0xf5, 0xc7, 127 0x36, 0x85, 0xf5, 0xf7, 0xb8, 0x7e, 0xc7, 0xef, 128 0x18, 0xf1, 0x63, 0xd6, 0x7a, 0xc6, 0xc9, 0x0e, 129 0x4d, 0x69, 0x4f, 0x84, 0xef, 0x26, 0x41, 0x0c, 130 0xec, 0xc7, 0xe0, 0x7e, 0x3c, 0x67, 0x01, 0x4c, 131 0x62, 0x1a, 0x20, 0x6f, 0xee, 0x47, 0x4d, 0xc0, 132 0x99, 0x13, 0x8d, 0x91, 0x4a, 0x26, 0xd4, 0x37, 133 0x28, 0x90, 0x58, 0x75, 0x66, 0x2b, 0x0a, 0xdf, 134 0xda, 0xee, 0x92, 0x25, 0x90, 0x62, 0x39, 0x9e, 135 0x44, 0x98, 0xad, 0xc1, 0x88, 0xed, 0xe4, 0xb4, 136 0xaf, 0xf5, 0x8c, 0x9b, 0x48, 0x4d, 0x56, 0x60, 137 0x97, 0x0f, 0x61, 0x59, 0x9e, 0xa6, 0x27, 0xfe, 138 0xc1, 0x91, 0x15, 0x38, 0xb8, 0x0f, 0xae, 0x61, 139 0x7d, 0x26, 0x13, 0x5a, 0x73, 0xff, 0x1c, 0xa3, 140 0x61, 0x04, 0x58, 0x48, 0x55, 0x44, 0x11, 0xfe, 141 0x15, 0xca, 0xc3, 0xbd, 0xca, 0xc5, 0xb4, 0x40, 142 0x5d, 0x1b, 0x7f, 0x39, 0xb5, 0x9c, 0x35, 0xec, 143 0x61, 0x15, 0x32, 0x32, 0xb8, 0x4e, 0x40, 0x9f, 144 0x17, 0x1f, 0x0a, 0x4d, 0xa9, 0x91, 0xef, 0xb7, 145 0xb0, 0xeb, 0xc2, 0x83, 0x9a, 0x6c, 0xd2, 0x79, 146 0x43, 0x78, 0x5e, 0x2f, 0xe5, 0xdd, 0x1a, 0x3c, 147 0x45, 0xab, 0x29, 0x40, 0x3a, 0x37, 0x5b, 0x6f, 148 0xd7, 0xfc, 0x48, 0x64, 0x3c, 0x49, 0xfb, 0x21, 149 0xbe, 0xc3, 0xff, 0x07, 0xfb, 0x17, 0xe9, 0xc9, 150 0x0c, 0x4c, 0x5c, 0x15, 0x9e, 0x8e, 0x22, 0x30, 151 0x0a, 0xde, 0x48, 0x7f, 0xdb, 0x0d, 0xd1, 0x2b, 152 0x87, 0x38, 0x9e, 0xcc, 0x5a, 0x01, 0x16, 0xee, 153 0x75, 0x49, 0x0d, 0x30, 0x01, 0x34, 0x6a, 0xb6, 154 0x9a, 0x5a, 0x2a, 0xec, 0xbb, 0x48, 0xac, 0xd3, 155 0x77, 0x83, 0xd8, 0x08, 0x86, 0x4f, 0x48, 0x09, 156 0x29, 0x41, 0x79, 0xa1, 0x03, 0x12, 0xc4, 0xcd, 157 0x90, 0x55, 0x47, 0x66, 0x74, 0x9a, 0xcc, 0x4f, 158 0x35, 0x8c, 0xd6, 0x98, 0xef, 0xeb, 0x45, 0xb9, 159 0x9a, 0x26, 0x2f, 0x39, 0xa5, 0x70, 0x6d, 0xfc, 160 0xb4, 0x51, 0xee, 0xf4, 0x9c, 0xe7, 0x38, 0x59, 161 0xad, 0xf4, 0xbc, 0x46, 0xff, 0x46, 0x8e, 0x60, 162 0x9c, 0xa3, 0x60, 0x1d, 0xf8, 0x26, 0x72, 0xf5, 163 0x72, 0x9d, 0x68, 0x80, 0x04, 0xf6, 0x0b, 0xa1, 164 0x0a, 0xd5, 0xa7, 0x82, 0x3a, 0x3e, 0x47, 0xa8, 165 0x5a, 0xde, 0x59, 0x4f, 0x7b, 0x07, 0xb3, 0xe9, 166 0x24, 0x19, 0x3d, 0x34, 0x05, 0xec, 0xf1, 0xab, 167 0x6e, 0x64, 0x8f, 0xd3, 0xe6, 0x41, 0x86, 0x80, 168 0x70, 0xe3, 0x8d, 0x60, 0x9c, 0x34, 0x25, 0x01, 169 0x07, 0x4d, 0x19, 0x41, 0x4e, 0x3d, 0x5c, 0x7e, 170 0xa8, 0xf5, 0xcc, 0xd5, 0x7b, 0xe2, 0x7d, 0x3d, 171 0x49, 0x86, 0x7d, 0x07, 0xb7, 0x10, 0xe3, 0x35, 172 0xb8, 0x84, 0x6d, 0x76, 0xab, 0x17, 0xc6, 0x38, 173 0xb4, 0xd3, 0x28, 0x57, 0xad, 0xd3, 0x88, 0x5a, 174 0xda, 0xea, 0xc8, 0x94, 0xcc, 0x37, 0x19, 0xac, 175 0x9c, 0x9f, 0x4b, 0x00, 0x15, 0xc0, 0xc8, 0xca, 176 0x1f, 0x15, 0xaa, 0xe0, 0xdb, 0xf9, 0x2f, 0x57, 177 0x1b, 0x24, 0xc7, 0x6f, 0x76, 0x29, 0xfb, 0xed, 178 0x25, 0x0d, 0xc0, 0xfe, 0xbd, 0x5a, 0xbf, 0x20, 179 0x08, 0x51, 0x05, 0xec, 0x71, 0xa3, 0xbf, 0xef, 180 0x5e, 0x99, 0x75, 0xdb, 0x3c, 0x5f, 0x9a, 0x8c, 181 0xbb, 0x19, 0x5c, 0x0e, 0x93, 0x19, 0xf8, 0x6a, 182 0xbc, 0xf2, 0x12, 0x54, 0x2f, 0xcb, 0x28, 0x64, 183 0x88, 0xb3, 0x92, 0x0d, 0x96, 0xd1, 0xa6, 0xe4, 184 0x1f, 0xf1, 0x4d, 0xa4, 0xab, 0x1c, 0xee, 0x54, 185 0xf2, 0xad, 0x29, 0x6d, 0x32, 0x37, 0xb2, 0x16, 186 0x77, 0x5c, 0xdc, 0x2e, 0x54, 0xec, 0x75, 0x26, 187 0xc6, 0x36, 0xd9, 0x17, 0x2c, 0xf1, 0x7a, 0xdc, 188 0x4b, 0xf1, 0xe2, 0xd9, 0x95, 0xba, 0xac, 0x87, 189 0xc1, 0xf3, 0x8e, 0x58, 0x08, 0xd8, 0x87, 0x60, 190 0xc9, 0xee, 0x6a, 0xde, 0xa4, 0xd2, 0xfc, 0x0d, 191 0xe5, 0x36, 0xc4, 0x5c, 0x52, 0xb3, 0x07, 0x54, 192 0x65, 0x24, 0xc1, 0xb1, 0xd1, 0xb1, 0x53, 0x13, 193 0x31, 0x79, 0x7f, 0x05, 0x76, 0xeb, 0x37, 0x59, 194 0x15, 0x2b, 0xd1, 0x3f, 0xac, 0x08, 0x97, 0xeb, 195 0x91, 0x98, 0xdf, 0x6c, 0x09, 0x0d, 0x04, 0x9f, 196 0xdc, 0x3b, 0x0e, 0x60, 0x68, 0x47, 0x23, 0x15, 197 0x16, 0xc6, 0x0b, 0x35, 0xf8, 0x77, 0xa2, 0x78, 198 0x50, 0xd4, 0x64, 0x22, 0x33, 0xff, 0xfb, 0x93, 199 0x71, 0x46, 0x50, 0x39, 0x1b, 0x9c, 0xea, 0x4e, 200 0x8d, 0x0c, 0x37, 0xe5, 0x5c, 0x51, 0x3a, 0x31, 201 0xb2, 0x85, 0x84, 0x3f, 0x41, 0xee, 0xa2, 0xc1, 202 0xc6, 0x13, 0x3b, 0x54, 0x28, 0xd2, 0x18, 0x37, 203 0xcc, 0x46, 0x9f, 0x6a, 0x91, 0x3d, 0x5a, 0x15, 204 0x3c, 0x89, 0xa3, 0x61, 0x06, 0x7d, 0x2e, 0x78, 205 0xbe, 0x7d, 0x40, 0xba, 0x2f, 0x95, 0xb1, 0x2f, 206 0x87, 0x3b, 0x8a, 0xbe, 0x6a, 0xf4, 0xc2, 0x31, 207 0x74, 0xee, 0x91, 0xe0, 0x23, 0xaa, 0x5d, 0x7f, 208 0xdd, 0xf0, 0x44, 0x8c, 0x0b, 0x59, 0x2b, 0xfc, 209 0x48, 0x3a, 0xdf, 0x07, 0x05, 0x38, 0x6c, 0xc9, 210 0xeb, 0x18, 0x24, 0x68, 0x8d, 0x58, 0x98, 0xd3, 211 0x31, 0xa3, 0xe4, 0x70, 0x59, 0xb1, 0x21, 0xbe, 212 0x7e, 0x65, 0x7d, 0xb8, 0x04, 0xab, 0xf6, 0xe4, 213 0xd7, 0xda, 0xec, 0x09, 0x8f, 0xda, 0x6d, 0x24, 214 0x07, 0xcc, 0x29, 0x17, 0x05, 0x78, 0x1a, 0xc1, 215 0xb1, 0xce, 0xfc, 0xaa, 0x2d, 0xe7, 0xcc, 0x85, 216 0x84, 0x84, 0x03, 0x2a, 0x0c, 0x3f, 0xa9, 0xf8, 217 0xfd, 0x84, 0x53, 0x59, 0x5c, 0xf0, 0xd4, 0x09, 218 0xf0, 0xd2, 0x6c, 0x32, 0x03, 0xb0, 0xa0, 0x8c, 219 0x52, 0xeb, 0x23, 0x91, 0x88, 0x43, 0x13, 0x46, 220 0xf6, 0x1e, 0xb4, 0x1b, 0xf5, 0x8e, 0x3a, 0xb5, 221 0x3d, 0x00, 0xf6, 0xe5, 0x08, 0x3d, 0x5f, 0x39, 222 0xd3, 0x21, 0x69, 0xbc, 0x03, 0x22, 0x3a, 0xd2, 223 0x5c, 0x84, 0xf8, 0x15, 0xc4, 0x80, 0x0b, 0xbc, 224 0x29, 0x3c, 0xf3, 0x95, 0x98, 0xcd, 0x8f, 0x35, 225 0xbc, 0xa5, 0x3e, 0xfc, 0xd4, 0x13, 0x9e, 0xde, 226 0x4f, 0xce, 0x71, 0x9d, 0x09, 0xad, 0xf2, 0x80, 227 0x6b, 0x65, 0x7f, 0x03, 0x00, 0x14, 0x7c, 0x15, 228 0x85, 0x40, 0x6d, 0x70, 0xea, 0xdc, 0xb3, 0x63, 229 0x35, 0x4f, 0x4d, 0xe0, 0xd9, 0xd5, 0x3c, 0x58, 230 0x56, 0x23, 0x80, 0xe2, 0x36, 0xdd, 0x75, 0x1d, 231 0x94, 0x11, 0x41, 0x8e, 0xe0, 0x81, 0x8e, 0xcf, 232 0xe0, 0xe5, 0xf6, 0xde, 0xd1, 0xe7, 0x04, 0x12, 233 0x79, 0x92, 0x2b, 0x71, 0x2a, 0x79, 0x8b, 0x7c, 234 0x44, 0x79, 0x16, 0x30, 0x4e, 0xf4, 0xf6, 0x9b, 235 0xb7, 0x40, 0xa3, 0x5a, 0xa7, 0x69, 0x3e, 0xc1, 236 0x3a, 0x04, 0xd0, 0x88, 0xa0, 0x3b, 0xdd, 0xc6, 237 0x9e, 0x7e, 0x1e, 0x1e, 0x8f, 0x44, 0xf7, 0x73, 238 0x67, 0x1e, 0x1a, 0x78, 0xfa, 0x62, 0xf4, 0xa9, 239 0xa8, 0xc6, 0x5b, 0xb8, 0xfa, 0x06, 0x7d, 0x5e, 240 0x38, 0x1c, 0x9a, 0x39, 0xe9, 0x39, 0x98, 0x22, 241 0x0b, 0xa7, 0xac, 0x0b, 0xf3, 0xbc, 0xf1, 0xeb, 242 0x8c, 0x81, 0xe3, 0x48, 0x8a, 0xed, 0x42, 0xc2, 243 0x38, 0xcf, 0x3e, 0xda, 0xd2, 0x89, 0x8d, 0x9c, 244 0x53, 0xb5, 0x2f, 0x41, 0x01, 0x26, 0x84, 0x9c, 245 0xa3, 0x56, 0xf6, 0x49, 0xc7, 0xd4, 0x9f, 0x93, 246 0x1b, 0x96, 0x49, 0x5e, 0xad, 0xb3, 0x84, 0x1f, 247 0x3c, 0xa4, 0xe0, 0x9b, 0xd1, 0x90, 0xbc, 0x38, 248 0x6c, 0xdd, 0x95, 0x4d, 0x9d, 0xb1, 0x71, 0x57, 249 0x2d, 0x34, 0xe8, 0xb8, 0x42, 0xc7, 0x99, 0x03, 250 0xc7, 0x07, 0x30, 0x65, 0x91, 0x55, 0xd5, 0x90, 251 0x70, 0x97, 0x37, 0x68, 0xd4, 0x11, 0xf9, 0xe8, 252 0xce, 0xec, 0xdc, 0x34, 0xd5, 0xd3, 0xb7, 0xc4, 253 0xb8, 0x97, 0x05, 0x92, 0xad, 0xf8, 0xe2, 0x36, 254 0x64, 0x41, 0xc9, 0xc5, 0x41, 0x77, 0x52, 0xd7, 255 0x2c, 0xa5, 0x24, 0x2f, 0xd9, 0x34, 0x0b, 0x47, 256 0x35, 0xa7, 0x28, 0x8b, 0xc5, 0xcd, 0xe9, 0x46, 257 0xac, 0x39, 0x94, 0x3c, 0x10, 0xc6, 0x29, 0x73, 258 0x0e, 0x0e, 0x5d, 0xe0, 0x71, 0x03, 0x8a, 0x72, 259 0x0e, 0x26, 0xb0, 0x7d, 0x84, 0xed, 0x95, 0x23, 260 0x49, 0x5a, 0x45, 0x83, 0x45, 0x60, 0x11, 0x4a, 261 0x46, 0x31, 0xd4, 0xd8, 0x16, 0x54, 0x98, 0x58, 262 0xed, 0x6d, 0xcc, 0x5d, 0xd6, 0x50, 0x61, 0x9f, 263 0x9d, 0xc5, 0x3e, 0x9d, 0x32, 0x47, 0xde, 0x96, 264 0xe1, 0x5d, 0xd8, 0xf8, 0xb4, 0x69, 0x6f, 0xb9, 265 0x15, 0x90, 0x57, 0x7a, 0xf6, 0xad, 0xb0, 0x5b, 266 0xf5, 0xa6, 0x36, 0x94, 0xfd, 0x84, 0xce, 0x1c, 267 0x0f, 0x4b, 0xd0, 0xc2, 0x5b, 0x6b, 0x56, 0xef, 268 0x73, 0x93, 0x0b, 0xc3, 0xee, 0xd9, 0xcf, 0xd3, 269 0xa4, 0x22, 0x58, 0xcd, 0x50, 0x6e, 0x65, 0xf4, 270 0xe9, 0xb7, 0x71, 0xaf, 0x4b, 0xb3, 0xb6, 0x2f, 271 0x0f, 0x0e, 0x3b, 0xc9, 0x85, 0x14, 0xf5, 0x17, 272 0xe8, 0x7a, 0x3a, 0xbf, 0x5f, 0x5e, 0xf8, 0x18, 273 0x48, 0xa6, 0x72, 0xab, 0x06, 0x95, 0xe9, 0xc8, 274 0xa7, 0xf4, 0x32, 0x44, 0x04, 0x0c, 0x84, 0x98, 275 0x73, 0xe3, 0x89, 0x8d, 0x5f, 0x7e, 0x4a, 0x42, 276 0x8f, 0xc5, 0x28, 0xb1, 0x82, 0xef, 0x1c, 0x97, 277 0x31, 0x3b, 0x4d, 0xe0, 0x0e, 0x10, 0x10, 0x97, 278 0x93, 0x49, 0x78, 0x2f, 0x0d, 0x86, 0x8b, 0xa1, 279 0x53, 0xa9, 0x81, 0x20, 0x79, 0xe7, 0x07, 0x77, 280 0xb6, 0xac, 0x5e, 0xd2, 0x05, 0xcd, 0xe9, 0xdb, 281 0x8a, 0x94, 0x82, 0x8a, 0x23, 0xb9, 0x3d, 0x1c, 282 0xa9, 0x7d, 0x72, 0x4a, 0xed, 0x33, 0xa3, 0xdb, 283 0x21, 0xa7, 0x86, 0x33, 0x45, 0xa5, 0xaa, 0x56, 284 0x45, 0xb5, 0x83, 0x29, 0x40, 0x47, 0x79, 0x04, 285 0x6e, 0xb9, 0x95, 0xd0, 0x81, 0x77, 0x2d, 0x48, 286 0x1e, 0xfe, 0xc3, 0xc2, 0x1e, 0xe5, 0xf2, 0xbe, 287 0xfd, 0x3b, 0x94, 0x9f, 0xc4, 0xc4, 0x26, 0x9d, 288 0xe4, 0x66, 0x1e, 0x19, 0xee, 0x6c, 0x79, 0x97, 289 0x11, 0x31, 0x4b, 0x0d, 0x01, 0xcb, 0xde, 0xa8, 290 0xf6, 0x6d, 0x7c, 0x39, 0x46, 0x4e, 0x7e, 0x3f, 291 0x94, 0x17, 0xdf, 0xa1, 0x7d, 0xd9, 0x1c, 0x8e, 292 0xbc, 0x7d, 0x33, 0x7d, 0xe3, 0x12, 0x40, 0xca, 293 0xab, 0x37, 0x11, 0x46, 0xd4, 0xae, 0xef, 0x44, 294 0xa2, 0xb3, 0x6a, 0x66, 0x0e, 0x0c, 0x90, 0x7f, 295 0xdf, 0x5c, 0x66, 0x5f, 0xf2, 0x94, 0x9f, 0xa6, 296 0x73, 0x4f, 0xeb, 0x0d, 0xad, 0xbf, 0xc0, 0x63, 297 0x5c, 0xdc, 0x46, 0x51, 0xe8, 0x8e, 0x90, 0x19, 298 0xa8, 0xa4, 0x3c, 0x91, 0x79, 0xfa, 0x7e, 0x58, 299 0x85, 0x13, 0x55, 0xc5, 0x19, 0x82, 0x37, 0x1b, 300 0x0a, 0x02, 0x1f, 0x99, 0x6b, 0x18, 0xf1, 0x28, 301 0x08, 0xa2, 0x73, 0xb8, 0x0f, 0x2e, 0xcd, 0xbf, 302 0xf3, 0x86, 0x7f, 0xea, 0xef, 0xd0, 0xbb, 0xa6, 303 0x21, 0xdf, 0x49, 0x73, 0x51, 0xcc, 0x36, 0xd3, 304 0x3e, 0xa0, 0xf8, 0x44, 0xdf, 0xd3, 0xa6, 0xbe, 305 0x8a, 0xd4, 0x57, 0xdd, 0x72, 0x94, 0x61, 0x0f, 306 0x82, 0xd1, 0x07, 0xb8, 0x7c, 0x18, 0x83, 0xdf, 307 0x3a, 0xe5, 0x50, 0x6a, 0x82, 0x20, 0xac, 0xa9, 308 0xa8, 0xff, 0xd9, 0xf3, 0x77, 0x33, 0x5a, 0x9e, 309 0x7f, 0x6d, 0xfe, 0x5d, 0x33, 0x41, 0x42, 0xe7, 310 0x6c, 0x19, 0xe0, 0x44, 0x8a, 0x15, 0xf6, 0x70, 311 0x98, 0xb7, 0x68, 0x4d, 0xfa, 0x97, 0x39, 0xb0, 312 0x8e, 0xe8, 0x84, 0x8b, 0x75, 0x30, 0xb7, 0x7d, 313 0x92, 0x69, 0x20, 0x9c, 0x81, 0xfb, 0x4b, 0xf4, 314 0x01, 0x50, 0xeb, 0xce, 0x0c, 0x1c, 0x6c, 0xb5, 315 0x4a, 0xd7, 0x27, 0x0c, 0xce, 0xbb, 0xe5, 0x85, 316 0xf0, 0xb6, 0xee, 0xd5, 0x70, 0xdd, 0x3b, 0xfc, 317 0xd4, 0x99, 0xf1, 0x33, 0xdd, 0x8b, 0xc4, 0x2f, 318 0xae, 0xab, 0x74, 0x96, 0x32, 0xc7, 0x4c, 0x56, 319 0x3c, 0x89, 0x0f, 0x96, 0x0b, 0x42, 0xc0, 0xcb, 320 0xee, 0x0f, 0x0b, 0x8c, 0xfb, 0x7e, 0x47, 0x7b, 321 0x64, 0x48, 0xfd, 0xb2, 0x00, 0x80, 0x89, 0xa5, 322 0x13, 0x55, 0x62, 0xfc, 0x8f, 0xe2, 0x42, 0x03, 323 0xb7, 0x4e, 0x2a, 0x79, 0xb4, 0x82, 0xea, 0x23, 324 0x49, 0xda, 0xaf, 0x52, 0x63, 0x1e, 0x60, 0x03, 325 0x89, 0x06, 0x44, 0x46, 0x08, 0xc3, 0xc4, 0x87, 326 0x70, 0x2e, 0xda, 0x94, 0xad, 0x6b, 0xe0, 0xe4, 327 0xd1, 0x8a, 0x06, 0xc2, 0xa8, 0xc0, 0xa7, 0x43, 328 0x3c, 0x47, 0x52, 0x0e, 0xc3, 0x77, 0x81, 0x11, 329 0x67, 0x0e, 0xa0, 0x70, 0x04, 0x47, 0x29, 0x40, 330 0x86, 0x0d, 0x34, 0x56, 0xa7, 0xc9, 0x35, 0x59, 331 0x68, 0xdc, 0x93, 0x81, 0x70, 0xee, 0x86, 0xd9, 332 0x80, 0x06, 0x40, 0x4f, 0x1a, 0x0d, 0x40, 0x30, 333 0x0b, 0xcb, 0x96, 0x47, 0xc1, 0xb7, 0x52, 0xfd, 334 0x56, 0xe0, 0x72, 0x4b, 0xfb, 0xbd, 0x92, 0x45, 335 0x61, 0x71, 0xc2, 0x33, 0x11, 0xbf, 0x52, 0x83, 336 0x79, 0x26, 0xe0, 0x49, 0x6b, 0xb7, 0x05, 0x8b, 337 0xe8, 0x0e, 0x87, 0x31, 0xd7, 0x9d, 0x8a, 0xf5, 338 0xc0, 0x5f, 0x2e, 0x58, 0x4a, 0xdb, 0x11, 0xb3, 339 0x6c, 0x30, 0x2a, 0x46, 0x19, 0xe3, 0x27, 0x84, 340 0x1f, 0x63, 0x6e, 0xf6, 0x57, 0xc7, 0xc9, 0xd8, 341 0x5e, 0xba, 0xb3, 0x87, 0xd5, 0x83, 0x26, 0x34, 342 0x21, 0x9e, 0x65, 0xde, 0x42, 0xd3, 0xbe, 0x7b, 343 0xbc, 0x91, 0x71, 0x44, 0x4d, 0x99, 0x3b, 0x31, 344 0xe5, 0x3f, 0x11, 0x4e, 0x7f, 0x13, 0x51, 0x3b, 345 0xae, 0x79, 0xc9, 0xd3, 0x81, 0x8e, 0x25, 0x40, 346 0x10, 0xfc, 0x07, 0x1e, 0xf9, 0x7b, 0x9a, 0x4b, 347 0x6c, 0xe3, 0xb3, 0xad, 0x1a, 0x0a, 0xdd, 0x9e, 348 0x59, 0x0c, 0xa2, 0xcd, 0xae, 0x48, 0x4a, 0x38, 349 0x5b, 0x47, 0x41, 0x94, 0x65, 0x6b, 0xbb, 0xeb, 350 0x5b, 0xe3, 0xaf, 0x07, 0x5b, 0xd4, 0x4a, 0xa2, 351 0xc9, 0x5d, 0x2f, 0x64, 0x03, 0xd7, 0x3a, 0x2c, 352 0x6e, 0xce, 0x76, 0x95, 0xb4, 0xb3, 0xc0, 0xf1, 353 0xe2, 0x45, 0x73, 0x7a, 0x5c, 0xab, 0xc1, 0xfc, 354 0x02, 0x8d, 0x81, 0x29, 0xb3, 0xac, 0x07, 0xec, 355 0x40, 0x7d, 0x45, 0xd9, 0x7a, 0x59, 0xee, 0x34, 356 0xf0, 0xe9, 0xd5, 0x7b, 0x96, 0xb1, 0x3d, 0x95, 357 0xcc, 0x86, 0xb5, 0xb6, 0x04, 0x2d, 0xb5, 0x92, 358 0x7e, 0x76, 0xf4, 0x06, 0xa9, 0xa3, 0x12, 0x0f, 359 0xb1, 0xaf, 0x26, 0xba, 0x7c, 0xfc, 0x7e, 0x1c, 360 0xbc, 0x2c, 0x49, 0x97, 0x53, 0x60, 0x13, 0x0b, 361 0xa6, 0x61, 0x83, 0x89, 0x42, 0xd4, 0x17, 0x0c, 362 0x6c, 0x26, 0x52, 0xc3, 0xb3, 0xd4, 0x67, 0xf5, 363 0xe3, 0x04, 0xb7, 0xf4, 0xcb, 0x80, 0xb8, 0xcb, 364 0x77, 0x56, 0x3e, 0xaa, 0x57, 0x54, 0xee, 0xb4, 365 0x2c, 0x67, 0xcf, 0xf2, 0xdc, 0xbe, 0x55, 0xf9, 366 0x43, 0x1f, 0x6e, 0x22, 0x97, 0x67, 0x7f, 0xc4, 367 0xef, 0xb1, 0x26, 0x31, 0x1e, 0x27, 0xdf, 0x41, 368 0x80, 0x47, 0x6c, 0xe2, 0xfa, 0xa9, 0x8c, 0x2a, 369 0xf6, 0xf2, 0xab, 0xf0, 0x15, 0xda, 0x6c, 0xc8, 370 0xfe, 0xb5, 0x23, 0xde, 0xa9, 0x05, 0x3f, 0x06, 371 0x54, 0x4c, 0xcd, 0xe1, 0xab, 0xfc, 0x0e, 0x62, 372 0x33, 0x31, 0x73, 0x2c, 0x76, 0xcb, 0xb4, 0x47, 373 0x1e, 0x20, 0xad, 0xd8, 0xf2, 0x31, 0xdd, 0xc4, 374 0x8b, 0x0c, 0x77, 0xbe, 0xe1, 0x8b, 0x26, 0x00, 375 0x02, 0x58, 0xd6, 0x8d, 0xef, 0xad, 0x74, 0x67, 376 0xab, 0x3f, 0xef, 0xcb, 0x6f, 0xb0, 0xcc, 0x81, 377 0x44, 0x4c, 0xaf, 0xe9, 0x49, 0x4f, 0xdb, 0xa0, 378 0x25, 0xa4, 0xf0, 0x89, 0xf1, 0xbe, 0xd8, 0x10, 379 0xff, 0xb1, 0x3b, 0x4b, 0xfa, 0x98, 0xf5, 0x79, 380 0x6d, 0x1e, 0x69, 0x4d, 0x57, 0xb1, 0xc8, 0x19, 381 0x1b, 0xbd, 0x1e, 0x8c, 0x84, 0xb7, 0x7b, 0xe8, 382 0xd2, 0x2d, 0x09, 0x41, 0x41, 0x37, 0x3d, 0xb1, 383 0x6f, 0x26, 0x5d, 0x71, 0x16, 0x3d, 0xb7, 0x83, 384 0x27, 0x2c, 0xa7, 0xb6, 0x50, 0xbd, 0x91, 0x86, 385 0xab, 0x24, 0xa1, 0x38, 0xfd, 0xea, 0x71, 0x55, 386 0x7e, 0x9a, 0x07, 0x77, 0x4b, 0xfa, 0x61, 0x66, 387 0x20, 0x1e, 0x28, 0x95, 0x18, 0x1b, 0xa4, 0xa0, 388 0xfd, 0xc0, 0x89, 0x72, 0x43, 0xd9, 0x3b, 0x49, 389 0x5a, 0x3f, 0x9d, 0xbf, 0xdb, 0xb4, 0x46, 0xea, 390 0x42, 0x01, 0x77, 0x23, 0x68, 0x95, 0xb6, 0x24, 391 0xb3, 0xa8, 0x6c, 0x28, 0x3b, 0x11, 0x40, 0x7e, 392 0x18, 0x65, 0x6d, 0xd8, 0x24, 0x42, 0x7d, 0x88, 393 0xc0, 0x52, 0xd9, 0x05, 0xe4, 0x95, 0x90, 0x87, 394 0x8c, 0xf4, 0xd0, 0x6b, 0xb9, 0x83, 0x99, 0x34, 395 0x6d, 0xfe, 0x54, 0x40, 0x94, 0x52, 0x21, 0x4f, 396 0x14, 0x25, 0xc5, 0xd6, 0x5e, 0x95, 0xdc, 0x0a, 397 0x2b, 0x89, 0x20, 0x11, 0x84, 0x48, 0xd6, 0x3a, 398 0xcd, 0x5c, 0x24, 0xad, 0x62, 0xe3, 0xb1, 0x93, 399 0x25, 0x8d, 0xcd, 0x7e, 0xfc, 0x27, 0xa3, 0x37, 400 0xfd, 0x84, 0xfc, 0x1b, 0xb2, 0xf1, 0x27, 0x38, 401 0x5a, 0xb7, 0xfc, 0xf2, 0xfa, 0x95, 0x66, 0xd4, 402 0xfb, 0xba, 0xa7, 0xd7, 0xa3, 0x72, 0x69, 0x48, 403 0x48, 0x8c, 0xeb, 0x28, 0x89, 0xfe, 0x33, 0x65, 404 0x5a, 0x36, 0x01, 0x7e, 0x06, 0x79, 0x0a, 0x09, 405 0x3b, 0x74, 0x11, 0x9a, 0x6e, 0xbf, 0xd4, 0x9e, 406 0x58, 0x90, 0x49, 0x4f, 0x4d, 0x08, 0xd4, 0xe5, 407 0x4a, 0x09, 0x21, 0xef, 0x8b, 0xb8, 0x74, 0x3b, 408 0x91, 0xdd, 0x36, 0x85, 0x60, 0x2d, 0xfa, 0xd4, 409 0x45, 0x7b, 0x45, 0x53, 0xf5, 0x47, 0x87, 0x7e, 410 0xa6, 0x37, 0xc8, 0x78, 0x7a, 0x68, 0x9d, 0x8d, 411 0x65, 0x2c, 0x0e, 0x91, 0x5c, 0xa2, 0x60, 0xf0, 412 0x8e, 0x3f, 0xe9, 0x1a, 0xcd, 0xaa, 0xe7, 0xd5, 413 0x77, 0x18, 0xaf, 0xc9, 0xbc, 0x18, 0xea, 0x48, 414 0x1b, 0xfb, 0x22, 0x48, 0x70, 0x16, 0x29, 0x9e, 415 0x5b, 0xc1, 0x2c, 0x66, 0x23, 0xbc, 0xf0, 0x1f, 416 0xef, 0xaf, 0xe4, 0xd6, 0x04, 0x19, 0x82, 0x7a, 417 0x0b, 0xba, 0x4b, 0x46, 0xb1, 0x6a, 0x85, 0x5d, 418 0xb4, 0x73, 0xd6, 0x21, 0xa1, 0x71, 0x60, 0x14, 419 0xee, 0x0a, 0x77, 0xc4, 0x66, 0x2e, 0xf9, 0x69, 420 0x30, 0xaf, 0x41, 0x0b, 0xc8, 0x83, 0x3c, 0x53, 421 0x99, 0x19, 0x27, 0x46, 0xf7, 0x41, 0x6e, 0x56, 422 0xdc, 0x94, 0x28, 0x67, 0x4e, 0xb7, 0x25, 0x48, 423 0x8a, 0xc2, 0xe0, 0x60, 0x96, 0xcc, 0x18, 0xf4, 424 0x84, 0xdd, 0xa7, 0x5e, 0x3e, 0x05, 0x0b, 0x26, 425 0x26, 0xb2, 0x5c, 0x1f, 0x57, 0x1a, 0x04, 0x7e, 426 0x6a, 0xe3, 0x2f, 0xb4, 0x35, 0xb6, 0x38, 0x40, 427 0x40, 0xcd, 0x6f, 0x87, 0x2e, 0xef, 0xa3, 0xd7, 428 0xa9, 0xc2, 0xe8, 0x0d, 0x27, 0xdf, 0x44, 0x62, 429 0x99, 0xa0, 0xfc, 0xcf, 0x81, 0x78, 0xcb, 0xfe, 430 0xe5, 0xa0, 0x03, 0x4e, 0x6c, 0xd7, 0xf4, 0xaf, 431 0x7a, 0xbb, 0x61, 0x82, 0xfe, 0x71, 0x89, 0xb2, 432 0x22, 0x7c, 0x8e, 0x83, 0x04, 0xce, 0xf6, 0x5d, 433 0x84, 0x8f, 0x95, 0x6a, 0x7f, 0xad, 0xfd, 0x32, 434 0x9c, 0x5e, 0xe4, 0x9c, 0x89, 0x60, 0x54, 0xaa, 435 0x96, 0x72, 0xd2, 0xd7, 0x36, 0x85, 0xa9, 0x45, 436 0xd2, 0x2a, 0xa1, 0x81, 0x49, 0x6f, 0x7e, 0x04, 437 0xfa, 0xe2, 0xfe, 0x90, 0x26, 0x77, 0x5a, 0x33, 438 0xb8, 0x04, 0x9a, 0x7a, 0xe6, 0x4c, 0x4f, 0xad, 439 0x72, 0x96, 0x08, 0x28, 0x58, 0x13, 0xf8, 0xc4, 440 0x1c, 0xf0, 0xc3, 0x45, 0x95, 0x49, 0x20, 0x8c, 441 0x9f, 0x39, 0x70, 0xe1, 0x77, 0xfe, 0xd5, 0x4b, 442 0xaf, 0x86, 0xda, 0xef, 0x22, 0x06, 0x83, 0x36, 443 0x29, 0x12, 0x11, 0x40, 0xbc, 0x3b, 0x86, 0xaa, 444 0xaa, 0x65, 0x60, 0xc3, 0x80, 0xca, 0xed, 0xa9, 445 0xf3, 0xb0, 0x79, 0x96, 0xa2, 0x55, 0x27, 0x28, 446 0x55, 0x73, 0x26, 0xa5, 0x50, 0xea, 0x92, 0x4b, 447 0x3c, 0x5c, 0x82, 0x33, 0xf0, 0x01, 0x3f, 0x03, 448 0xc1, 0x08, 0x05, 0xbf, 0x98, 0xf4, 0x9b, 0x6d, 449 0xa5, 0xa8, 0xb4, 0x82, 0x0c, 0x06, 0xfa, 0xff, 450 0x2d, 0x08, 0xf3, 0x05, 0x4f, 0x57, 0x2a, 0x39, 451 0xd4, 0x83, 0x0d, 0x75, 0x51, 0xd8, 0x5b, 0x1b, 452 0xd3, 0x51, 0x5a, 0x32, 0x2a, 0x9b, 0x32, 0xb2, 453 0xf2, 0xa4, 0x96, 0x12, 0xf2, 0xae, 0x40, 0x34, 454 0x67, 0xa8, 0xf5, 0x44, 0xd5, 0x35, 0x53, 0xfe, 455 0xa3, 0x60, 0x96, 0x63, 0x0f, 0x1f, 0x6e, 0xb0, 456 0x5a, 0x42, 0xa6, 0xfc, 0x51, 0x0b, 0x60, 0x27, 457 0xbc, 0x06, 0x71, 0xed, 0x65, 0x5b, 0x23, 0x86, 458 0x4a, 0x07, 0x3b, 0x22, 0x07, 0x46, 0xe6, 0x90, 459 0x3e, 0xf3, 0x25, 0x50, 0x1b, 0x4c, 0x7f, 0x03, 460 0x08, 0xa8, 0x36, 0x6b, 0x87, 0xe5, 0xe3, 0xdb, 461 0x9a, 0x38, 0x83, 0xff, 0x9f, 0x1a, 0x9f, 0x57, 462 0xa4, 0x2a, 0xf6, 0x37, 0xbc, 0x1a, 0xff, 0xc9, 463 0x1e, 0x35, 0x0c, 0xc3, 0x7c, 0xa3, 0xb2, 0xe5, 464 0xd2, 0xc6, 0xb4, 0x57, 0x47, 0xe4, 0x32, 0x16, 465 0x6d, 0xa9, 0xae, 0x64, 0xe6, 0x2d, 0x8d, 0xc5, 466 0x8d, 0x50, 0x8e, 0xe8, 0x1a, 0x22, 0x34, 0x2a, 467 0xd9, 0xeb, 0x51, 0x90, 0x4a, 0xb1, 0x41, 0x7d, 468 0x64, 0xf9, 0xb9, 0x0d, 0xf6, 0x23, 0x33, 0xb0, 469 0x33, 0xf4, 0xf7, 0x3f, 0x27, 0x84, 0xc6, 0x0f, 470 0x54, 0xa5, 0xc0, 0x2e, 0xec, 0x0b, 0x3a, 0x48, 471 0x6e, 0x80, 0x35, 0x81, 0x43, 0x9b, 0x90, 0xb1, 472 0xd0, 0x2b, 0xea, 0x21, 0xdc, 0xda, 0x5b, 0x09, 473 0xf4, 0xcc, 0x10, 0xb4, 0xc7, 0xfe, 0x79, 0x51, 474 0xc3, 0xc5, 0xac, 0x88, 0x74, 0x84, 0x0b, 0x4b, 475 0xca, 0x79, 0x16, 0x29, 0xfb, 0x69, 0x54, 0xdf, 476 0x41, 0x7e, 0xe9, 0xc7, 0x8e, 0xea, 0xa5, 0xfe, 477 0xfc, 0x76, 0x0e, 0x90, 0xc4, 0x92, 0x38, 0xad, 478 0x7b, 0x48, 0xe6, 0x6e, 0xf7, 0x21, 0xfd, 0x4e, 479 0x93, 0x0a, 0x7b, 0x41, 0x83, 0x68, 0xfb, 0x57, 480 0x51, 0x76, 0x34, 0xa9, 0x6c, 0x00, 0xaa, 0x4f, 481 0x66, 0x65, 0x98, 0x4a, 0x4f, 0xa3, 0xa0, 0xef, 482 0x69, 0x3f, 0xe3, 0x1c, 0x92, 0x8c, 0xfd, 0xd8, 483 0xe8, 0xde, 0x7c, 0x7f, 0x3e, 0x84, 0x8e, 0x69, 484 0x3c, 0xf1, 0xf2, 0x05, 0x46, 0xdc, 0x2f, 0x9d, 485 0x5e, 0x6e, 0x4c, 0xfb, 0xb5, 0x99, 0x2a, 0x59, 486 0x63, 0xc1, 0x34, 0xbc, 0x57, 0xc0, 0x0d, 0xb9, 487 0x61, 0x25, 0xf3, 0x33, 0x23, 0x51, 0xb6, 0x0d, 488 0x07, 0xa6, 0xab, 0x94, 0x4a, 0xb7, 0x2a, 0xea, 489 0xee, 0xac, 0xa3, 0xc3, 0x04, 0x8b, 0x0e, 0x56, 490 0xfe, 0x44, 0xa7, 0x39, 0xe2, 0xed, 0xed, 0xb4, 491 0x22, 0x2b, 0xac, 0x12, 0x32, 0x28, 0x91, 0xd8, 492 0xa5, 0xab, 0xff, 0x5f, 0xe0, 0x4b, 0xda, 0x78, 493 0x17, 0xda, 0xf1, 0x01, 0x5b, 0xcd, 0xe2, 0x5f, 494 0x50, 0x45, 0x73, 0x2b, 0xe4, 0x76, 0x77, 0xf4, 495 0x64, 0x1d, 0x43, 0xfb, 0x84, 0x7a, 0xea, 0x91, 496 0xae, 0xf9, 0x9e, 0xb7, 0xb4, 0xb0, 0x91, 0x5f, 497 0x16, 0x35, 0x9a, 0x11, 0xb8, 0xc7, 0xc1, 0x8c, 498 0xc6, 0x10, 0x8d, 0x2f, 0x63, 0x4a, 0xa7, 0x57, 499 0x3a, 0x51, 0xd6, 0x32, 0x2d, 0x64, 0x72, 0xd4, 500 0x66, 0xdc, 0x10, 0xa6, 0x67, 0xd6, 0x04, 0x23, 501 0x9d, 0x0a, 0x11, 0x77, 0xdd, 0x37, 0x94, 0x17, 502 0x3c, 0xbf, 0x8b, 0x65, 0xb0, 0x2e, 0x5e, 0x66, 503 0x47, 0x64, 0xac, 0xdd, 0xf0, 0x84, 0xfd, 0x39, 504 0xfa, 0x15, 0x5d, 0xef, 0xae, 0xca, 0xc1, 0x36, 505 0xa7, 0x5c, 0xbf, 0xc7, 0x08, 0xc2, 0x66, 0x00, 506 0x74, 0x74, 0x4e, 0x27, 0x3f, 0x55, 0x8a, 0xb7, 507 0x38, 0x66, 0x83, 0x6d, 0xcf, 0x99, 0x9e, 0x60, 508 0x8f, 0xdd, 0x2e, 0x62, 0x22, 0x0e, 0xef, 0x0c, 509 0x98, 0xa7, 0x85, 0x74, 0x3b, 0x9d, 0xec, 0x9e, 510 0xa9, 0x19, 0x72, 0xa5, 0x7f, 0x2c, 0x39, 0xb7, 511 0x7d, 0xb7, 0xf1, 0x12, 0x65, 0x27, 0x4b, 0x5a, 512 0xde, 0x17, 0xfe, 0xad, 0x44, 0xf3, 0x20, 0x4d, 513 0xfd, 0xe4, 0x1f, 0xb5, 0x81, 0xb0, 0x36, 0x37, 514 0x08, 0x6f, 0xc3, 0x0c, 0xe9, 0x85, 0x98, 0x82, 515 0xa9, 0x62, 0x0c, 0xc4, 0x97, 0xc0, 0x50, 0xc8, 516 0xa7, 0x3c, 0x50, 0x9f, 0x43, 0xb9, 0xcd, 0x5e, 517 0x4d, 0xfa, 0x1c, 0x4b, 0x0b, 0xa9, 0x98, 0x85, 518 0x38, 0x92, 0xac, 0x8d, 0xe4, 0xad, 0x9b, 0x98, 519 0xab, 0xd9, 0x38, 0xac, 0x62, 0x52, 0xa3, 0x22, 520 0x63, 0x0f, 0xbf, 0x95, 0x48, 0xdf, 0x69, 0xe7, 521 0x8b, 0x33, 0xd5, 0xb2, 0xbd, 0x05, 0x49, 0x49, 522 0x9d, 0x57, 0x73, 0x19, 0x33, 0xae, 0xfa, 0x33, 523 0xf1, 0x19, 0xa8, 0x80, 0xce, 0x04, 0x9f, 0xbc, 524 0x1d, 0x65, 0x82, 0x1b, 0xe5, 0x3a, 0x51, 0xc8, 525 0x1c, 0x21, 0xe3, 0x5d, 0xf3, 0x7d, 0x9b, 0x2f, 526 0x2c, 0x1d, 0x4a, 0x7f, 0x9b, 0x68, 0x35, 0xa3, 527 0xb2, 0x50, 0xf7, 0x62, 0x79, 0xcd, 0xf4, 0x98, 528 0x4f, 0xe5, 0x63, 0x7c, 0x3e, 0x45, 0x31, 0x8c, 529 0x16, 0xa0, 0x12, 0xc8, 0x58, 0xce, 0x39, 0xa6, 530 0xbc, 0x54, 0xdb, 0xc5, 0xe0, 0xd5, 0xba, 0xbc, 531 0xb9, 0x04, 0xf4, 0x8d, 0xe8, 0x2f, 0x15, 0x9d, 532 }; 533 534 /* 100 test cases */ 535 static struct dahash_test { 536 uint16_t start; /* random 12 bit offset in buf */ 537 uint16_t length; /* random 8 bit length of test */ 538 xfs_dahash_t dahash; /* expected dahash result */ 539 xfs_dahash_t ascii_ci_dahash; /* expected ascii-ci dahash result */ 540 } test[] __initdata = 541 { 542 {0x0567, 0x0097, 0x96951389, 0xc153aa0d}, 543 {0x0869, 0x0055, 0x6455ab4f, 0xd07f69bf}, 544 {0x0c51, 0x00be, 0x8663afde, 0xf9add90c}, 545 {0x044a, 0x00fc, 0x98fbe432, 0xbf2abb76}, 546 {0x0f29, 0x0079, 0x42371997, 0x282588b3}, 547 {0x08ba, 0x0052, 0x942be4f7, 0x2e023547}, 548 {0x01f2, 0x0013, 0x5262687e, 0x5266287e}, 549 {0x09e3, 0x00e2, 0x8ffb0908, 0x1da892f3}, 550 {0x007c, 0x0051, 0xb3158491, 0xb67f9e63}, 551 {0x0854, 0x001f, 0x83bb20d9, 0x22bb21db}, 552 {0x031b, 0x0008, 0x98970bdf, 0x9cd70adf}, 553 {0x0de7, 0x0027, 0xbfbf6f6c, 0xae3f296c}, 554 {0x0f76, 0x0005, 0x906a7105, 0x906a7105}, 555 {0x092e, 0x00d0, 0x86631850, 0xa3f6ac04}, 556 {0x0233, 0x0082, 0xdbdd914e, 0x5d8c7aac}, 557 {0x04c9, 0x0075, 0x5a400a9e, 0x12f60711}, 558 {0x0b66, 0x0099, 0xae128b45, 0x7551310d}, 559 {0x000d, 0x00ed, 0xe61c216a, 0xc22d3c4c}, 560 {0x0a31, 0x003d, 0xf69663b9, 0x51960bf8}, 561 {0x00a3, 0x0052, 0x643c39ae, 0xa93c73a8}, 562 {0x0125, 0x00d5, 0x7c310b0d, 0xf221cbb3}, 563 {0x0105, 0x004a, 0x06a77e74, 0xa4ef4561}, 564 {0x0858, 0x008e, 0x265bc739, 0xd6c36d9b}, 565 {0x045e, 0x0095, 0x13d6b192, 0x5f5c1d62}, 566 {0x0dab, 0x003c, 0xc4498704, 0x10414654}, 567 {0x00cd, 0x00b5, 0x802a4e2d, 0xfbd17c9d}, 568 {0x069b, 0x008c, 0x5df60f71, 0x91ddca5f}, 569 {0x0454, 0x006c, 0x5f03d8bb, 0x5c59fce0}, 570 {0x040e, 0x0032, 0x0ce513b5, 0xa8cd99b1}, 571 {0x0874, 0x00e2, 0x6a811fb3, 0xca028316}, 572 {0x0521, 0x00b4, 0x93296833, 0x2c4d4880}, 573 {0x0ddc, 0x00cf, 0xf9305338, 0x2c94210d}, 574 {0x0a70, 0x0023, 0x239549ea, 0x22b561aa}, 575 {0x083e, 0x0027, 0x2d88ba97, 0x5cd8bb9d}, 576 {0x0241, 0x00a7, 0xfe0b32e1, 0x17b506b8}, 577 {0x0dfc, 0x0096, 0x1a11e815, 0xee4141bd}, 578 {0x023e, 0x001e, 0xebc9a1f3, 0x5689a1f3}, 579 {0x067e, 0x0066, 0xb1067f81, 0xd9952571}, 580 {0x09ea, 0x000e, 0x46fd7247, 0x42b57245}, 581 {0x036b, 0x008c, 0x1a39acdf, 0x58bf1586}, 582 {0x078f, 0x0030, 0x964042ab, 0xb04218b9}, 583 {0x085c, 0x008f, 0x1829edab, 0x9ceca89c}, 584 {0x02ec, 0x009f, 0x6aefa72d, 0x634cc2a7}, 585 {0x043b, 0x00ce, 0x65642ff5, 0x6c8a584e}, 586 {0x0a32, 0x00b8, 0xbd82759e, 0x0f96a34f}, 587 {0x0d3c, 0x0087, 0xf4d66d54, 0xb71ba5f4}, 588 {0x09ec, 0x008a, 0x06bfa1ff, 0x576ca80f}, 589 {0x0902, 0x0015, 0x755025d2, 0x517225c2}, 590 {0x08fe, 0x000e, 0xf690ce2d, 0xf690cf3d}, 591 {0x00fb, 0x00dc, 0xe55f1528, 0x707d7d92}, 592 {0x0eaa, 0x003a, 0x0fe0a8d7, 0x87638cc5}, 593 {0x05fb, 0x0006, 0x86281cfb, 0x86281cf9}, 594 {0x0dd1, 0x00a7, 0x60ab51b4, 0xe28ef00c}, 595 {0x0005, 0x001b, 0xf51d969b, 0xe71dd6d3}, 596 {0x077c, 0x00dd, 0xc2fed268, 0xdc30c555}, 597 {0x0575, 0x00f5, 0x432c0b1a, 0x81dd7d16}, 598 {0x05be, 0x0088, 0x78baa04b, 0xd69b433e}, 599 {0x0c89, 0x0068, 0xeda9e428, 0xe9b4fa0a}, 600 {0x0f5c, 0x0068, 0xec143c76, 0x9947067a}, 601 {0x06a8, 0x0009, 0xd72651ce, 0xd72651ee}, 602 {0x060f, 0x008e, 0x765426cd, 0x2099626f}, 603 {0x07b1, 0x0047, 0x2cfcfa0c, 0x1a4baa07}, 604 {0x04f1, 0x0041, 0x55b172f9, 0x15331a79}, 605 {0x0e05, 0x00ac, 0x61efde93, 0x320568cc}, 606 {0x0bf7, 0x0097, 0x05b83eee, 0xc72fb7a3}, 607 {0x04e9, 0x00f3, 0x9928223a, 0xe8c77de2}, 608 {0x023a, 0x0005, 0xdfada9bc, 0xdfadb9be}, 609 {0x0acb, 0x000e, 0x2217cecd, 0x0017d6cd}, 610 {0x0148, 0x0060, 0xbc3f7405, 0xf5fd6615}, 611 {0x0764, 0x0059, 0xcbc201b1, 0xbb089bf4}, 612 {0x021f, 0x0059, 0x5d6b2256, 0xa16a0a59}, 613 {0x0f1e, 0x006c, 0xdefeeb45, 0xfc34f9d6}, 614 {0x071c, 0x00b9, 0xb9b59309, 0xb645eae2}, 615 {0x0564, 0x0063, 0xae064271, 0x954dc6d1}, 616 {0x0b14, 0x0044, 0xdb867d9b, 0xdf432309}, 617 {0x0e5a, 0x0055, 0xff06b685, 0xa65ff257}, 618 {0x015e, 0x00ba, 0x1115ccbc, 0x11c365f4}, 619 {0x0379, 0x00e6, 0x5f4e58dd, 0x2d176d31}, 620 {0x013b, 0x0067, 0x4897427e, 0xc40532fe}, 621 {0x0e64, 0x0071, 0x7af2b7a4, 0x1fb7bf43}, 622 {0x0a11, 0x0050, 0x92105726, 0xb1185e51}, 623 {0x0109, 0x0055, 0xd0d000f9, 0x60a60bfd}, 624 {0x00aa, 0x0022, 0x815d229d, 0x215d379c}, 625 {0x09ac, 0x004f, 0x02f9d985, 0x10b90b20}, 626 {0x0e1b, 0x00ce, 0x5cf92ab4, 0x6a477573}, 627 {0x08af, 0x00d8, 0x17ca72d1, 0x385af156}, 628 {0x0e33, 0x000a, 0xda2dba6b, 0xda2dbb69}, 629 {0x0ee3, 0x006a, 0xb00048e5, 0xa9a2decc}, 630 {0x0648, 0x001a, 0x2364b8cb, 0x3364b1cb}, 631 {0x0315, 0x0085, 0x0596fd0d, 0xa651740f}, 632 {0x0fbb, 0x003e, 0x298230ca, 0x7fc617c7}, 633 {0x0422, 0x006a, 0x78ada4ab, 0xc576ae2a}, 634 {0x04ba, 0x0073, 0xced1fbc2, 0xaac8455b}, 635 {0x007d, 0x0061, 0x4b7ff236, 0x347d5739}, 636 {0x070b, 0x00d0, 0x261cf0ae, 0xc7fb1c10}, 637 {0x0c1a, 0x0035, 0x8be92ee2, 0x8be9b4e1}, 638 {0x0af8, 0x0063, 0x824dcf03, 0x53010388}, 639 {0x08f8, 0x006d, 0xd289710c, 0x30418edd}, 640 {0x021b, 0x00ee, 0x6ac1c41d, 0x2557e9a3}, 641 {0x05b5, 0x00da, 0x8e52f0e2, 0x98531012}, 642 }; 643 644 int __init 645 xfs_dahash_test(void) 646 { 647 unsigned int i; 648 unsigned int errors = 0; 649 650 for (i = 0; i < ARRAY_SIZE(test); i++) { 651 struct xfs_name xname = { }; 652 xfs_dahash_t hash; 653 654 hash = xfs_da_hashname(test_buf + test[i].start, 655 test[i].length); 656 if (hash != test[i].dahash) 657 errors++; 658 659 xname.name = test_buf + test[i].start; 660 xname.len = test[i].length; 661 hash = xfs_ascii_ci_hashname(&xname); 662 if (hash != test[i].ascii_ci_dahash) 663 errors++; 664 } 665 666 if (errors) { 667 printk(KERN_ERR "xfs dir/attr hash test failed %u times!", 668 errors); 669 return -ERANGE; 670 } 671 672 return 0; 673 } 674