aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arraylist.c48
-rw-r--r--avl.c4
-rw-r--r--compile_flags.txt3
-rw-r--r--deque.c40
-rw-r--r--dlist.c36
-rw-r--r--hashtab.c6
-rw-r--r--list-tail-node.c16
-rw-r--r--list.c16
-rw-r--r--queue.c4
-rw-r--r--rc4.c363
-rw-r--r--stack2.c2
-rw-r--r--tree.c48
12 files changed, 141 insertions, 445 deletions
diff --git a/arraylist.c b/arraylist.c
index bb4d0c2..a8cebb0 100644
--- a/arraylist.c
+++ b/arraylist.c
@@ -31,7 +31,7 @@ ArrayList_allocateArray(void *ptr, size_t nelem)
31void 31void
32ArrayList_init(struct ArrayList *arrayList) 32ArrayList_init(struct ArrayList *arrayList)
33{ 33{
34 assert(arrayList != NULL); 34 assert(arrayList);
35 35
36 arrayList->array = NULL; 36 arrayList->array = NULL;
37 arrayList->size = 0; 37 arrayList->size = 0;
@@ -42,7 +42,7 @@ struct ArrayList *
42ArrayList_new(void) 42ArrayList_new(void)
43{ 43{
44 struct ArrayList *arrayList = malloc(sizeof *arrayList); 44 struct ArrayList *arrayList = malloc(sizeof *arrayList);
45 if ( arrayList != NULL ) { 45 if ( arrayList ) {
46 ArrayList_init(arrayList); 46 ArrayList_init(arrayList);
47 } 47 }
48 return arrayList; 48 return arrayList;
@@ -51,7 +51,7 @@ ArrayList_new(void)
51void 51void
52ArrayList_free(struct ArrayList *arrayList) 52ArrayList_free(struct ArrayList *arrayList)
53{ 53{
54 assert(arrayList != NULL); 54 assert(arrayList);
55 55
56 free(arrayList->array); 56 free(arrayList->array);
57 ArrayList_init(arrayList); 57 ArrayList_init(arrayList);
@@ -60,7 +60,7 @@ ArrayList_free(struct ArrayList *arrayList)
60void 60void
61ArrayList_delete(struct ArrayList *arrayList) 61ArrayList_delete(struct ArrayList *arrayList)
62{ 62{
63 assert(arrayList != NULL); 63 assert(arrayList);
64 64
65 ArrayList_free(arrayList); 65 ArrayList_free(arrayList);
66 free(arrayList); 66 free(arrayList);
@@ -69,7 +69,7 @@ ArrayList_delete(struct ArrayList *arrayList)
69static void 69static void
70ArrayList_growIfNeeded(struct ArrayList *arrayList) 70ArrayList_growIfNeeded(struct ArrayList *arrayList)
71{ 71{
72 assert(arrayList != NULL); 72 assert(arrayList);
73 73
74 if ( arrayList->size == arrayList->capacity ) { 74 if ( arrayList->size == arrayList->capacity ) {
75 if ( arrayList->array == NULL ) { // leere Liste 75 if ( arrayList->array == NULL ) { // leere Liste
@@ -89,14 +89,14 @@ ArrayList_growIfNeeded(struct ArrayList *arrayList)
89 arrayList->array = new_arrayList; 89 arrayList->array = new_arrayList;
90 } 90 }
91 91
92 assert(arrayList->array != NULL); 92 assert(arrayList->array);
93 } 93 }
94} 94}
95 95
96void 96void
97ArrayList_append(struct ArrayList *arrayList, T *ptr) 97ArrayList_append(struct ArrayList *arrayList, T *ptr)
98{ 98{
99 assert(arrayList != NULL); 99 assert(arrayList);
100 100
101 ArrayList_growIfNeeded(arrayList); 101 ArrayList_growIfNeeded(arrayList);
102 102
@@ -106,7 +106,7 @@ ArrayList_append(struct ArrayList *arrayList, T *ptr)
106void 106void
107ArrayList_insertAt(struct ArrayList *arrayList, size_t idx, T *ptr) 107ArrayList_insertAt(struct ArrayList *arrayList, size_t idx, T *ptr)
108{ 108{
109 assert(arrayList != NULL); 109 assert(arrayList);
110 assert(idx <= arrayList->size); // allow last position 110 assert(idx <= arrayList->size); // allow last position
111 111
112 ArrayList_growIfNeeded(arrayList); 112 ArrayList_growIfNeeded(arrayList);
@@ -119,7 +119,7 @@ ArrayList_insertAt(struct ArrayList *arrayList, size_t idx, T *ptr)
119T * 119T *
120ArrayList_getAt(struct ArrayList *arrayList, size_t idx) 120ArrayList_getAt(struct ArrayList *arrayList, size_t idx)
121{ 121{
122 assert(arrayList != NULL); 122 assert(arrayList);
123 assert(idx < arrayList->size); 123 assert(idx < arrayList->size);
124 124
125 return arrayList->array[idx]; 125 return arrayList->array[idx];
@@ -128,7 +128,7 @@ ArrayList_getAt(struct ArrayList *arrayList, size_t idx)
128size_t 128size_t
129ArrayList_size(struct ArrayList *arrayList) 129ArrayList_size(struct ArrayList *arrayList)
130{ 130{
131 assert(arrayList != NULL); 131 assert(arrayList);
132 132
133 return arrayList->size; 133 return arrayList->size;
134} 134}
@@ -136,7 +136,7 @@ ArrayList_size(struct ArrayList *arrayList)
136bool 136bool
137ArrayList_empty(struct ArrayList *arrayList) 137ArrayList_empty(struct ArrayList *arrayList)
138{ 138{
139 assert(arrayList != NULL); 139 assert(arrayList);
140 140
141 return arrayList->size == 0; 141 return arrayList->size == 0;
142} 142}
@@ -144,10 +144,10 @@ ArrayList_empty(struct ArrayList *arrayList)
144void 144void
145ArrayList_removeAt(struct ArrayList *arrayList, size_t idx, void clear_func(T *, void *), void *args) 145ArrayList_removeAt(struct ArrayList *arrayList, size_t idx, void clear_func(T *, void *), void *args)
146{ 146{
147 assert(arrayList != NULL); 147 assert(arrayList);
148 assert(idx < arrayList->size); 148 assert(idx < arrayList->size);
149 149
150 if ( clear_func != NULL ) { 150 if ( clear_func ) {
151 clear_func(arrayList->array[idx], args); 151 clear_func(arrayList->array[idx], args);
152 } 152 }
153 153
@@ -181,8 +181,8 @@ ArrayList_qsortHelper(void *ctx, const void *a, const void *b)
181void 181void
182ArrayList_sort(struct ArrayList *arrayList, int cmp(const T *, const T *, void *), void *args) 182ArrayList_sort(struct ArrayList *arrayList, int cmp(const T *, const T *, void *), void *args)
183{ 183{
184 assert(arrayList != NULL); 184 assert(arrayList);
185 assert(cmp != NULL); 185 assert(cmp);
186 186
187 struct qsortHelper_context context = { 187 struct qsortHelper_context context = {
188 .cmp = cmp, 188 .cmp = cmp,
@@ -196,9 +196,9 @@ ArrayList_sort(struct ArrayList *arrayList, int cmp(const T *, const T *, void *
196bool 196bool
197ArrayList_linearSearch(struct ArrayList *arrayList, void *key, int cmp(void *, const T *, void *), void *args, size_t *loc) 197ArrayList_linearSearch(struct ArrayList *arrayList, void *key, int cmp(void *, const T *, void *), void *args, size_t *loc)
198{ 198{
199 assert(arrayList != NULL); 199 assert(arrayList);
200 assert(cmp != NULL); 200 assert(cmp);
201 assert(loc != NULL); 201 assert(loc);
202 202
203 for ( size_t idx = 0; idx != arrayList->size; ++idx ) { 203 for ( size_t idx = 0; idx != arrayList->size; ++idx ) {
204 if ( cmp(key, arrayList->array[idx], args) == 0 ) { 204 if ( cmp(key, arrayList->array[idx], args) == 0 ) {
@@ -227,9 +227,9 @@ ArrayList_bsearchHelper(const void *ctx, const void *el)
227bool 227bool
228ArrayList_binarySearch(struct ArrayList *arrayList, void *key, int cmp(void *, const T *, void *), void *args, size_t *loc) 228ArrayList_binarySearch(struct ArrayList *arrayList, void *key, int cmp(void *, const T *, void *), void *args, size_t *loc)
229{ 229{
230 assert(arrayList != NULL); 230 assert(arrayList);
231 assert(cmp != NULL); 231 assert(cmp);
232 assert(loc != NULL); 232 assert(loc);
233 233
234 struct bsearchHelper_context context = { 234 struct bsearchHelper_context context = {
235 .key = key, 235 .key = key,
@@ -238,7 +238,7 @@ ArrayList_binarySearch(struct ArrayList *arrayList, void *key, int cmp(void *, c
238 }; 238 };
239 239
240 T **pos = bsearch(&context, arrayList->array, arrayList->size, sizeof(arrayList->array[0]), ArrayList_bsearchHelper); 240 T **pos = bsearch(&context, arrayList->array, arrayList->size, sizeof(arrayList->array[0]), ArrayList_bsearchHelper);
241 if ( pos != NULL ) { 241 if ( pos ) {
242 *loc = (size_t)(pos - arrayList->array); 242 *loc = (size_t)(pos - arrayList->array);
243 return true; 243 return true;
244 } 244 }
@@ -250,8 +250,8 @@ ArrayList_binarySearch(struct ArrayList *arrayList, void *key, int cmp(void *, c
250void 250void
251ArrayList_shuffle(struct ArrayList *arrayList, size_t rng(size_t, void *), void *args) 251ArrayList_shuffle(struct ArrayList *arrayList, size_t rng(size_t, void *), void *args)
252{ 252{
253 assert(arrayList != NULL); 253 assert(arrayList);
254 assert(rng != NULL); 254 assert(rng);
255 255
256 if ( arrayList->size > 1 ) { 256 if ( arrayList->size > 1 ) {
257 for ( size_t i = arrayList->size - 1; i > 0; --i ) { 257 for ( size_t i = arrayList->size - 1; i > 0; --i ) {
diff --git a/avl.c b/avl.c
index 13a3d5f..0dfe6ca 100644
--- a/avl.c
+++ b/avl.c
@@ -34,7 +34,7 @@ insert_r(T x, struct tree_node *p, bool *h)
34 *h = true; 34 *h = true;
35 35
36 p = malloc(sizeof *p); 36 p = malloc(sizeof *p);
37 if ( p != NULL ) { 37 if ( p ) {
38 p->left = NULL; 38 p->left = NULL;
39 p->right = NULL; 39 p->right = NULL;
40 p->bal = 0; 40 p->bal = 0;
@@ -215,7 +215,7 @@ balanceR(struct tree_node *p, bool *h)
215static void 215static void
216del(struct tree_node **q, struct tree_node **r, bool *h) 216del(struct tree_node **q, struct tree_node **r, bool *h)
217{ 217{
218 if ( (*r)->right != NULL ) { 218 if ( (*r)->right ) {
219 del(q, &(*r)->right, h); 219 del(q, &(*r)->right, h);
220 if ( *h ) 220 if ( *h )
221 *r = balanceR(*r, h); 221 *r = balanceR(*r, h);
diff --git a/compile_flags.txt b/compile_flags.txt
index f97a587..d36fd95 100644
--- a/compile_flags.txt
+++ b/compile_flags.txt
@@ -1,5 +1,8 @@
1-Wall 1-Wall
2-Werror 2-Werror
3-Wextra
4-Wno-unused-function
5-Wsign-conversion
3-pedantic 6-pedantic
4-std=c11 7-std=c11
5-I/usr/local/include 8-I/usr/local/include
diff --git a/deque.c b/deque.c
index eec6f42..881d1d3 100644
--- a/deque.c
+++ b/deque.c
@@ -39,7 +39,7 @@ allocate(size_t n, size_t sz)
39void 39void
40deque_init(struct deque *d) 40deque_init(struct deque *d)
41{ 41{
42 assert(d != NULL); 42 assert(d);
43 43
44 d->map_begin = 0; 44 d->map_begin = 0;
45 d->map_end = 0; 45 d->map_end = 0;
@@ -48,7 +48,7 @@ deque_init(struct deque *d)
48 48
49 // TODO: Error handling 49 // TODO: Error handling
50 d->map = allocate(START_MAP_CAPACITY, sizeof *d->map); 50 d->map = allocate(START_MAP_CAPACITY, sizeof *d->map);
51 if ( d->map != NULL ) { 51 if ( d->map ) {
52 d->map_capacity = START_MAP_CAPACITY; 52 d->map_capacity = START_MAP_CAPACITY;
53 53
54 for ( size_t i = 0; i != d->map_capacity; ++i ) { 54 for ( size_t i = 0; i != d->map_capacity; ++i ) {
@@ -62,7 +62,7 @@ deque_init(struct deque *d)
62void 62void
63deque_free(struct deque *d) 63deque_free(struct deque *d)
64{ 64{
65 assert(d != NULL); 65 assert(d);
66 66
67 // free all chunks 67 // free all chunks
68 for ( size_t i = 0; i != d->map_capacity; ++i ) { 68 for ( size_t i = 0; i != d->map_capacity; ++i ) {
@@ -79,7 +79,7 @@ deque_free(struct deque *d)
79size_t 79size_t
80deque_size(struct deque *d) 80deque_size(struct deque *d)
81{ 81{
82 assert(d != NULL); 82 assert(d);
83 83
84 return d->size; 84 return d->size;
85} 85}
@@ -89,7 +89,7 @@ deque_size(struct deque *d)
89bool 89bool
90deque_is_empty(struct deque *d) 90deque_is_empty(struct deque *d)
91{ 91{
92 assert(d != NULL); 92 assert(d);
93 93
94 return d->map_begin == d->map_end; 94 return d->map_begin == d->map_end;
95} 95}
@@ -99,7 +99,7 @@ deque_is_empty(struct deque *d)
99static void 99static void
100grow_map(struct deque *d) 100grow_map(struct deque *d)
101{ 101{
102 assert(d != NULL); 102 assert(d);
103 103
104 const size_t capacity = d->map_capacity + d->map_capacity / 2; 104 const size_t capacity = d->map_capacity + d->map_capacity / 2;
105 T ** map = allocate(capacity, sizeof *map); 105 T ** map = allocate(capacity, sizeof *map);
@@ -135,7 +135,7 @@ grow_map(struct deque *d)
135static void 135static void
136map_append_chunk(struct deque *d) 136map_append_chunk(struct deque *d)
137{ 137{
138 assert(d != NULL); 138 assert(d);
139 139
140 size_t next = (d->map_end + 1) % d->map_capacity; 140 size_t next = (d->map_end + 1) % d->map_capacity;
141 141
@@ -154,7 +154,7 @@ map_append_chunk(struct deque *d)
154static void 154static void
155map_prepend_chunk(struct deque *d) 155map_prepend_chunk(struct deque *d)
156{ 156{
157 assert(d != NULL); 157 assert(d);
158 158
159 size_t prev = (d->map_begin + d->map_capacity - 1) % d->map_capacity; 159 size_t prev = (d->map_begin + d->map_capacity - 1) % d->map_capacity;
160 160
@@ -173,7 +173,7 @@ map_prepend_chunk(struct deque *d)
173static void 173static void
174map_remove_front_chunk(struct deque *d) 174map_remove_front_chunk(struct deque *d)
175{ 175{
176 assert(d != NULL); 176 assert(d);
177 177
178 if ( d->map_begin == d->map_end ) { 178 if ( d->map_begin == d->map_end ) {
179 return; 179 return;
@@ -192,7 +192,7 @@ map_remove_front_chunk(struct deque *d)
192static void 192static void
193map_remove_tail_chunk(struct deque *d) 193map_remove_tail_chunk(struct deque *d)
194{ 194{
195 assert(d != NULL); 195 assert(d);
196 196
197 if ( d->map_begin == d->map_end ) { 197 if ( d->map_begin == d->map_end ) {
198 return; 198 return;
@@ -211,9 +211,9 @@ map_remove_tail_chunk(struct deque *d)
211bool 211bool
212deque_get_at(struct deque *d, size_t idx, T *data) 212deque_get_at(struct deque *d, size_t idx, T *data)
213{ 213{
214 assert(d != NULL); 214 assert(d);
215 assert(idx < d->size); 215 assert(idx < d->size);
216 assert(data != NULL); 216 assert(data);
217 217
218 if ( idx >= d->size ) { 218 if ( idx >= d->size ) {
219 return false; 219 return false;
@@ -233,7 +233,7 @@ deque_get_at(struct deque *d, size_t idx, T *data)
233bool 233bool
234deque_set_at(struct deque *d, size_t idx, T data) 234deque_set_at(struct deque *d, size_t idx, T data)
235{ 235{
236 assert(d != NULL); 236 assert(d);
237 assert(idx < d->size); 237 assert(idx < d->size);
238 238
239 if ( idx >= d->size ) { 239 if ( idx >= d->size ) {
@@ -254,7 +254,7 @@ deque_set_at(struct deque *d, size_t idx, T data)
254void 254void
255deque_push_back(struct deque *d, T data) 255deque_push_back(struct deque *d, T data)
256{ 256{
257 assert(d != NULL); 257 assert(d);
258 258
259 const size_t pos = d->offset + d->size; 259 const size_t pos = d->offset + d->size;
260 const size_t chunk_off = pos % CHUNK_CAPACITY; 260 const size_t chunk_off = pos % CHUNK_CAPACITY;
@@ -274,7 +274,7 @@ deque_push_back(struct deque *d, T data)
274void 274void
275deque_push_front(struct deque *d, T data) 275deque_push_front(struct deque *d, T data)
276{ 276{
277 assert(d != NULL); 277 assert(d);
278 278
279 if ( d->offset == 0 ) { // Im ersten Element ist kein Platz mehr frei! 279 if ( d->offset == 0 ) { // Im ersten Element ist kein Platz mehr frei!
280 map_prepend_chunk(d); 280 map_prepend_chunk(d);
@@ -294,8 +294,8 @@ deque_push_front(struct deque *d, T data)
294bool 294bool
295deque_pop_back(struct deque *d, T *data) 295deque_pop_back(struct deque *d, T *data)
296{ 296{
297 assert(d != NULL); 297 assert(d);
298 assert(data != NULL); 298 assert(data);
299 299
300 if ( d->size == 0 ) { 300 if ( d->size == 0 ) {
301 return false; 301 return false;
@@ -321,8 +321,8 @@ deque_pop_back(struct deque *d, T *data)
321bool 321bool
322deque_pop_front(struct deque *d, T *data) 322deque_pop_front(struct deque *d, T *data)
323{ 323{
324 assert(d != NULL); 324 assert(d);
325 assert(data != NULL); 325 assert(data);
326 326
327 if ( d->size == 0 ) { 327 if ( d->size == 0 ) {
328 return false; 328 return false;
@@ -348,7 +348,7 @@ deque_pop_front(struct deque *d, T *data)
348static void 348static void
349deque_show(struct deque *d) 349deque_show(struct deque *d)
350{ 350{
351 assert(d != NULL); 351 assert(d);
352 352
353 printf("first: %zu -- last: %zu -- size: %zu -- map_capacity: %zu -- offset: %zu\n", 353 printf("first: %zu -- last: %zu -- size: %zu -- map_capacity: %zu -- offset: %zu\n",
354 d->map_begin, d->map_end, d->size, d->map_capacity, d->offset); 354 d->map_begin, d->map_end, d->size, d->map_capacity, d->offset);
diff --git a/dlist.c b/dlist.c
index bb0ead9..55e42d7 100644
--- a/dlist.c
+++ b/dlist.c
@@ -47,7 +47,7 @@ create_element(T data)
47 struct dlist_element *element; 47 struct dlist_element *element;
48 48
49 element = malloc(sizeof *element); 49 element = malloc(sizeof *element);
50 if ( element != NULL ) { 50 if ( element ) {
51 element->data = data; 51 element->data = data;
52 } 52 }
53 53
@@ -62,7 +62,7 @@ dlist_push_front(struct dlist *dlist, T data)
62 struct dlist_element *element; 62 struct dlist_element *element;
63 63
64 element = create_element(data); 64 element = create_element(data);
65 if ( element != NULL ) { 65 if ( element ) {
66 element->prev = NULL; /* Vorgänger ist in jedem Fall NULL */ 66 element->prev = NULL; /* Vorgänger ist in jedem Fall NULL */
67 67
68 if ( dlist_empty(dlist) ) { 68 if ( dlist_empty(dlist) ) {
@@ -90,7 +90,7 @@ dlist_push_back(struct dlist *dlist, T data)
90 struct dlist_element *element; 90 struct dlist_element *element;
91 91
92 element = create_element(data); 92 element = create_element(data);
93 if ( element != NULL ) { 93 if ( element ) {
94 element->next = NULL; /* Nachfolger ist in jedem Fall NULL */ 94 element->next = NULL; /* Nachfolger ist in jedem Fall NULL */
95 95
96 if ( dlist_empty(dlist) ) { 96 if ( dlist_empty(dlist) ) {
@@ -115,7 +115,7 @@ dlist_push_back(struct dlist *dlist, T data)
115bool 115bool
116dlist_pop_front(struct dlist *dlist, T *data) 116dlist_pop_front(struct dlist *dlist, T *data)
117{ 117{
118 if ( dlist->head != NULL ) { 118 if ( dlist->head ) {
119 struct dlist_element *element = dlist->head; 119 struct dlist_element *element = dlist->head;
120 120
121 dlist->head = element->next; 121 dlist->head = element->next;
@@ -125,7 +125,7 @@ dlist_pop_front(struct dlist *dlist, T *data)
125 else 125 else
126 element->next->prev = NULL; 126 element->next->prev = NULL;
127 127
128 if ( data != NULL ) { 128 if ( data ) {
129 *data = element->data; 129 *data = element->data;
130 } 130 }
131 free(element); 131 free(element);
@@ -141,7 +141,7 @@ dlist_pop_front(struct dlist *dlist, T *data)
141bool 141bool
142dlist_pop_back(struct dlist *dlist, T *data) 142dlist_pop_back(struct dlist *dlist, T *data)
143{ 143{
144 if ( dlist->head != NULL ) { 144 if ( dlist->head ) {
145 struct dlist_element *element = dlist->tail; 145 struct dlist_element *element = dlist->tail;
146 146
147 dlist->tail = element->prev; 147 dlist->tail = element->prev;
@@ -151,7 +151,7 @@ dlist_pop_back(struct dlist *dlist, T *data)
151 else 151 else
152 element->prev->next = NULL; 152 element->prev->next = NULL;
153 153
154 if ( data != NULL ) { 154 if ( data ) {
155 *data = element->data; 155 *data = element->data;
156 } 156 }
157 free(element); 157 free(element);
@@ -170,7 +170,7 @@ dlist_insert_next(struct dlist *dlist, struct dlist_element *element, T data)
170 struct dlist_element *new_element; 170 struct dlist_element *new_element;
171 171
172 new_element = create_element(data); 172 new_element = create_element(data);
173 if ( new_element != NULL ) { 173 if ( new_element ) {
174 if ( dlist->head == NULL ) { 174 if ( dlist->head == NULL ) {
175 dlist->head = new_element; 175 dlist->head = new_element;
176 dlist->head->prev = NULL; 176 dlist->head->prev = NULL;
@@ -203,7 +203,7 @@ dlist_insert_prev(struct dlist *dlist, struct dlist_element *element, T data)
203 struct dlist_element *new_element; 203 struct dlist_element *new_element;
204 204
205 new_element = create_element(data); 205 new_element = create_element(data);
206 if ( new_element != NULL ) { 206 if ( new_element ) {
207 if ( dlist->head == NULL ) { 207 if ( dlist->head == NULL ) {
208 dlist->head = new_element; 208 dlist->head = new_element;
209 dlist->head->prev = NULL; 209 dlist->head->prev = NULL;
@@ -322,11 +322,11 @@ dlist_merge(struct dlist *list1, struct dlist *list2)
322 *e1 = list1->head, 322 *e1 = list1->head,
323 *e2 = list2->head; 323 *e2 = list2->head;
324 324
325 while ( e1 != NULL && e2 != NULL ) // Solange in e1 UND e2 Elemente sind... 325 while ( e1 && e2 ) // Solange in e1 UND e2 Elemente sind...
326 { 326 {
327 if ( e1->data < e2->data ) { 327 if ( e1->data < e2->data ) {
328 e1->prev = cur; 328 e1->prev = cur;
329 if ( cur != NULL ) 329 if ( cur )
330 cur->next = e1; 330 cur->next = e1;
331 else 331 else
332 head = e1; 332 head = e1;
@@ -335,7 +335,7 @@ dlist_merge(struct dlist *list1, struct dlist *list2)
335 } 335 }
336 else { 336 else {
337 e2->prev = cur; 337 e2->prev = cur;
338 if ( cur != NULL ) 338 if ( cur )
339 cur->next = e2; 339 cur->next = e2;
340 else 340 else
341 head = e2; 341 head = e2;
@@ -344,25 +344,25 @@ dlist_merge(struct dlist *list1, struct dlist *list2)
344 } 344 }
345 } 345 }
346 346
347 if ( e1 != NULL ) // in e1 sind noch Elemente vorhanden! 347 if ( e1 ) // in e1 sind noch Elemente vorhanden!
348 { 348 {
349 assert(e2 == NULL); 349 assert(e2 == NULL);
350 350
351 e1->prev = cur; 351 e1->prev = cur;
352 if ( cur != NULL ) 352 if ( cur )
353 cur->next = e1; 353 cur->next = e1;
354 else 354 else
355 head = e1; 355 head = e1;
356 356
357 // list1->tail zeigt bereits auf das letzte Element in list1 357 // list1->tail zeigt bereits auf das letzte Element in list1
358 } 358 }
359 else /* if ( e2 != NULL ) */ 359 else /* if ( e2 ) */
360 { 360 {
361 assert(e1 == NULL); 361 assert(e1 == NULL);
362 assert(e2 != NULL); 362 assert(e2);
363 363
364 e2->prev = cur; 364 e2->prev = cur;
365 if ( cur != NULL ) 365 if ( cur )
366 cur->next = e2; 366 cur->next = e2;
367 else 367 else
368 head = e2; 368 head = e2;
@@ -392,7 +392,7 @@ dlist_sort(struct dlist *list)
392 struct dlist_element *slow = list->head, 392 struct dlist_element *slow = list->head,
393 *fast = list->head->next; 393 *fast = list->head->next;
394 394
395 while ( fast != NULL && fast->next != NULL ) 395 while ( fast && fast->next )
396 slow = slow->next, fast = fast->next->next; 396 slow = slow->next, fast = fast->next->next;
397 397
398 struct dlist list1 = { .head = list->head, .tail = slow }, 398 struct dlist list1 = { .head = list->head, .tail = slow },
diff --git a/hashtab.c b/hashtab.c
index 9f4e4a8..256fac9 100644
--- a/hashtab.c
+++ b/hashtab.c
@@ -51,7 +51,7 @@ hash_add(struct hash_item *next, const char *key, T data)
51 char * new_key; 51 char * new_key;
52 52
53 new_key = strdup(key); // strdup: not standard but commonly used... 53 new_key = strdup(key); // strdup: not standard but commonly used...
54 new_item = malloc(sizeof(*new_item)); 54 new_item = malloc(sizeof *new_item);
55 55
56 if ( new_key == NULL || new_item == NULL ) { 56 if ( new_key == NULL || new_item == NULL ) {
57 free(new_key); 57 free(new_key);
@@ -83,7 +83,7 @@ hash_lookup(struct hash_tab *ht, const char *key, T data, int create)
83 // not found! create? 83 // not found! create?
84 if ( create ) { 84 if ( create ) {
85 item = hash_add(ht->table[h], key, data); 85 item = hash_add(ht->table[h], key, data);
86 if ( item != NULL ) 86 if ( item )
87 ht->table[h] = item; 87 ht->table[h] = item;
88 else 88 else
89 ERROR("can't create item"); 89 ERROR("can't create item");
@@ -208,7 +208,7 @@ main()
208 208
209 while ( getword(stdin, word, sizeof word, first, rest) ) { 209 while ( getword(stdin, word, sizeof word, first, rest) ) {
210 T *p = hash_lookup(ht, word, 0, 1); 210 T *p = hash_lookup(ht, word, 0, 1);
211 if ( p != NULL ) 211 if ( p )
212 ++(*p); 212 ++(*p);
213 } 213 }
214 214
diff --git a/list-tail-node.c b/list-tail-node.c
index 4e40912..edfcf31 100644
--- a/list-tail-node.c
+++ b/list-tail-node.c
@@ -33,7 +33,7 @@ create_node(struct list_node *next, T data)
33{ 33{
34 struct list_node *node = malloc(sizeof *node); 34 struct list_node *node = malloc(sizeof *node);
35 35
36 if ( node != NULL ) { 36 if ( node ) {
37 node->next = next; 37 node->next = next;
38 node->data = data; 38 node->data = data;
39 } 39 }
@@ -47,7 +47,7 @@ list_push_back(struct list *list, T data)
47{ 47{
48 struct list_node *node = create_node(NULL, data); 48 struct list_node *node = create_node(NULL, data);
49 49
50 if ( node != NULL ) { 50 if ( node ) {
51 if ( list->head == NULL ) { 51 if ( list->head == NULL ) {
52 list->head = node; 52 list->head = node;
53 } 53 }
@@ -68,7 +68,7 @@ list_push_front(struct list *list, T data)
68{ 68{
69 struct list_node *node = create_node(list->head, data); 69 struct list_node *node = create_node(list->head, data);
70 70
71 if ( node != NULL ) { 71 if ( node ) {
72 if ( list->head == NULL ) { // Einfügen in eine leere Liste? 72 if ( list->head == NULL ) { // Einfügen in eine leere Liste?
73 list->tail = node; 73 list->tail = node;
74 } 74 }
@@ -84,10 +84,10 @@ list_push_front(struct list *list, T data)
84bool 84bool
85list_pop_front(struct list *list, T *data) 85list_pop_front(struct list *list, T *data)
86{ 86{
87 if ( list->head != NULL ) { 87 if ( list->head ) {
88 struct list_node *next = list->head->next; 88 struct list_node *next = list->head->next;
89 89
90 if ( data != NULL ) { 90 if ( data ) {
91 *data = list->head->data; 91 *data = list->head->data;
92 } 92 }
93 free(list->head); 93 free(list->head);
@@ -111,7 +111,7 @@ list_insert_next(struct list *list, struct list_node *node, T data)
111 else { 111 else {
112 struct list_node *new_node = create_node(node->next, data); 112 struct list_node *new_node = create_node(node->next, data);
113 113
114 if ( new_node != NULL ) { 114 if ( new_node ) {
115 if ( node->next == NULL ) { // Am Ende einfügen 115 if ( node->next == NULL ) { // Am Ende einfügen
116 list->tail = new_node; 116 list->tail = new_node;
117 } 117 }
@@ -132,7 +132,7 @@ list_delete_next(struct list *list, struct list_node *node, T *data)
132 list_pop_front(list, data); 132 list_pop_front(list, data);
133 } 133 }
134 else { 134 else {
135 if ( node->next != NULL ) { 135 if ( node->next ) {
136 struct list_node *old_node = node->next; 136 struct list_node *old_node = node->next;
137 node->next = node->next->next; 137 node->next = node->next->next;
138 138
@@ -140,7 +140,7 @@ list_delete_next(struct list *list, struct list_node *node, T *data)
140 list->tail = node; 140 list->tail = node;
141 } 141 }
142 142
143 if ( data != NULL ) { 143 if ( data ) {
144 *data = old_node->data; 144 *data = old_node->data;
145 } 145 }
146 free(old_node); 146 free(old_node);
diff --git a/list.c b/list.c
index 6117670..5a6c732 100644
--- a/list.c
+++ b/list.c
@@ -25,7 +25,7 @@ list_add(struct list_item *next, T data)
25 struct list_item *new_item; 25 struct list_item *new_item;
26 26
27 new_item = malloc(sizeof *new_item); 27 new_item = malloc(sizeof *new_item);
28 if ( new_item != NULL ) { 28 if ( new_item ) {
29 new_item->data = data; 29 new_item->data = data;
30 new_item->next = next; 30 new_item->next = next;
31 } 31 }
@@ -44,7 +44,7 @@ list_insert_next(struct list_item *list, T data)
44 struct list_item *new_item; 44 struct list_item *new_item;
45 45
46 new_item = malloc(sizeof *new_item); 46 new_item = malloc(sizeof *new_item);
47 if ( new_item != NULL ) { 47 if ( new_item ) {
48 new_item->data = data; 48 new_item->data = data;
49 new_item->next = list->next; 49 new_item->next = list->next;
50 list->next = new_item; 50 list->next = new_item;
@@ -76,7 +76,7 @@ list_delete(struct list_item *list, T data)
76 } 76 }
77 prev = p; 77 prev = p;
78 } 78 }
79#if LIST_REPORT_ERROR 79#ifdef LIST_REPORT_ERROR
80 ERROR("data not found"); 80 ERROR("data not found");
81#endif 81#endif
82 return list; 82 return list;
@@ -87,7 +87,7 @@ list_delete(struct list_item *list, T data)
87void 87void
88list_delete_next(struct list_item *list) 88list_delete_next(struct list_item *list)
89{ 89{
90 if ( list->next != NULL ) { 90 if ( list->next ) {
91 struct list_item *temp = list->next; 91 struct list_item *temp = list->next;
92 92
93 list->next = list->next->next; 93 list->next = list->next->next;
@@ -119,7 +119,7 @@ list_copy(struct list_item *list)
119 119
120 for ( ; list; list = list->next ) { 120 for ( ; list; list = list->next ) {
121 *p = malloc(sizeof **p); 121 *p = malloc(sizeof **p);
122 if ( *p != NULL ) { 122 if ( *p ) {
123 (*p)->data = list->data; // copy elements 123 (*p)->data = list->data; // copy elements
124 p = &(*p)->next; 124 p = &(*p)->next;
125 } 125 }
@@ -164,7 +164,7 @@ list_merge(struct list_item *a, struct list_item *b)
164 struct list_item dummy = { .next = NULL }; 164 struct list_item dummy = { .next = NULL };
165 struct list_item *head = &dummy, *c = head; 165 struct list_item *head = &dummy, *c = head;
166 166
167 while ( a != NULL && b != NULL ) 167 while ( a && b )
168 if ( a->data < b->data ) { 168 if ( a->data < b->data ) {
169 c->next = a, c = a, a = a->next; 169 c->next = a, c = a, a = a->next;
170 } 170 }
@@ -172,7 +172,7 @@ list_merge(struct list_item *a, struct list_item *b)
172 c->next = b, c = b, b = b->next; 172 c->next = b, c = b, b = b->next;
173 } 173 }
174 174
175 c->next = (a != NULL) ? a : b; 175 c->next = a ? a : b;
176 176
177 return head->next; 177 return head->next;
178} 178}
@@ -188,7 +188,7 @@ list_sort(struct list_item *c)
188 struct list_item *a = c, 188 struct list_item *a = c,
189 *b = c->next; 189 *b = c->next;
190 190
191 while ( b != NULL && b->next != NULL ) { 191 while ( b && b->next ) {
192 c = c->next, b = b->next->next; 192 c = c->next, b = b->next->next;
193 } 193 }
194 194
diff --git a/queue.c b/queue.c
index 622609e..8533691 100644
--- a/queue.c
+++ b/queue.c
@@ -53,10 +53,10 @@ queue_put(struct queue *queue, T data)
53bool 53bool
54queue_get(struct queue *queue, T *data) 54queue_get(struct queue *queue, T *data)
55{ 55{
56 if ( queue->head != NULL ) { 56 if ( queue->head ) {
57 struct queue_item *next = queue->head->next; 57 struct queue_item *next = queue->head->next;
58 58
59 if ( data != NULL ) { 59 if ( data ) {
60 *data = queue->head->data; 60 *data = queue->head->data;
61 } 61 }
62 free(queue->head); 62 free(queue->head);
diff --git a/rc4.c b/rc4.c
index 119711c..8a67303 100644
--- a/rc4.c
+++ b/rc4.c
@@ -1,22 +1,24 @@
1#include <stdio.h> 1#include <stdio.h>
2#include <stdlib.h> 2#include <stdlib.h>
3#include <string.h> /* memset() */ 3#include <string.h> /* memset() */
4#include "util.h"
5 4
6#include "random.h" 5#include "random.h"
6#include "util.h"
7 7
8struct rc4_ctx { 8struct rc4_ctx {
9 struct random_ctx ctx; 9 struct random_ctx ctx;
10 10
11 unsigned int i; 11 unsigned int i;
12 unsigned int j; 12 unsigned int j;
13 unsigned char S[256]; 13 unsigned char S[256];
14}; 14};
15 15
16static void 16static void
17swap(unsigned char a[], unsigned int i, unsigned int j) 17swap(unsigned char a[], unsigned int i, unsigned int j)
18{ 18{
19 unsigned char t = a[i]; a[i] = a[j]; a[j] = t; 19 unsigned char t = a[i];
20 a[i] = a[j];
21 a[j] = t;
20} 22}
21 23
22unsigned char 24unsigned char
@@ -33,7 +35,7 @@ void
33rc4_init(struct rc4_ctx *ctx, void *key, size_t sz) 35rc4_init(struct rc4_ctx *ctx, void *key, size_t sz)
34{ 36{
35 const unsigned char *K = key; 37 const unsigned char *K = key;
36 unsigned int i, j; 38 unsigned int i, j;
37 39
38 for ( i = 0; i != 256; ++i ) 40 for ( i = 0; i != 256; ++i )
39 ctx->S[i] = i; 41 ctx->S[i] = i;
@@ -43,8 +45,8 @@ rc4_init(struct rc4_ctx *ctx, void *key, size_t sz)
43 swap(ctx->S, i, j); 45 swap(ctx->S, i, j);
44 } 46 }
45 47
46 ctx->i = 0; 48 ctx->i = 0;
47 ctx->j = 0; 49 ctx->j = 0;
48 ctx->ctx.get_byte = (unsigned char (*)(struct random_ctx *)) rc4_get_byte; 50 ctx->ctx.get_byte = (unsigned char (*)(struct random_ctx *)) rc4_get_byte;
49} 51}
50 52
@@ -60,7 +62,7 @@ rc4_create(void *key, size_t sz)
60 struct rc4_ctx *ctx; 62 struct rc4_ctx *ctx;
61 63
62 ctx = malloc(sizeof(*ctx)); 64 ctx = malloc(sizeof(*ctx));
63 if ( ctx != NULL ) { 65 if ( ctx ) {
64 rc4_init(ctx, key, sz); 66 rc4_init(ctx, key, sz);
65 67
66 return &(ctx->ctx); 68 return &(ctx->ctx);
@@ -80,335 +82,27 @@ void
80rc4_test(void) 82rc4_test(void)
81{ 83{
82 static struct { 84 static struct {
83 char *key; 85 char * key;
84 unsigned int sz; 86 unsigned int sz;
85 struct { 87 struct {
86 unsigned int pos; 88 unsigned int pos;
87 unsigned char bytes[16]; 89 unsigned char bytes[16];
88 } test[18]; 90 } test[18];
89 } cases[] = { 91 } cases[] = {
90 { 92 { "\x01\x02\x03\x04\x05", 5, { { 0, "\xb2\x39\x63\x05\xf0\x3d\xc0\x27\xcc\xc3\x52\x4a\x0a\x11\x18\xa8" }, { 16, "\x69\x82\x94\x4f\x18\xfc\x82\xd5\x89\xc4\x03\xa4\x7a\x0d\x09\x19" }, { 240, "\x28\xcb\x11\x32\xc9\x6c\xe2\x86\x42\x1d\xca\xad\xb8\xb6\x9e\xae" }, { 256, "\x1c\xfc\xf6\x2b\x03\xed\xdb\x64\x1d\x77\xdf\xcf\x7f\x8d\x8c\x93" }, { 496, "\x42\xb7\xd0\xcd\xd9\x18\xa8\xa3\x3d\xd5\x17\x81\xc8\x1f\x40\x41" }, { 512, "\x64\x59\x84\x44\x32\xa7\xda\x92\x3c\xfb\x3e\xb4\x98\x06\x61\xf6" }, { 752, "\xec\x10\x32\x7b\xde\x2b\xee\xfd\x18\xf9\x27\x76\x80\x45\x7e\x22" }, { 768, "\xeb\x62\x63\x8d\x4f\x0b\xa1\xfe\x9f\xca\x20\xe0\x5b\xf8\xff\x2b" }, { 1008, "\x45\x12\x90\x48\xe6\xa0\xed\x0b\x56\xb4\x90\x33\x8f\x07\x8d\xa5" }, { 1024, "\x30\xab\xbc\xc7\xc2\x0b\x01\x60\x9f\x23\xee\x2d\x5f\x6b\xb7\xdf" }, { 1520, "\x32\x94\xf7\x44\xd8\xf9\x79\x05\x07\xe7\x0f\x62\xe5\xbb\xce\xea" }, { 1536, "\xd8\x72\x9d\xb4\x18\x82\x25\x9b\xee\x4f\x82\x53\x25\xf5\xa1\x30" }, { 2032, "\x1e\xb1\x4a\x0c\x13\xb3\xbf\x47\xfa\x2a\x0b\xa9\x3a\xd4\x5b\x8b" }, { 2048, "\xcc\x58\x2f\x8b\xa9\xf2\x65\xe2\xb1\xbe\x91\x12\xe9\x75\xd2\xd7" }, { 3056, "\xf2\xe3\x0f\x9b\xd1\x02\xec\xbf\x75\xaa\xad\xe9\xbc\x35\xc4\x3c" }, { 3072, "\xec\x0e\x11\xc4\x79\xdc\x32\x9d\xc8\xda\x79\x68\xfe\x96\x56\x81" }, { 4080, "\x06\x83\x26\xa2\x11\x84\x16\xd2\x1f\x9d\x04\xb2\xcd\x1c\xa0\x50" }, { 4096, "\xff\x25\xb5\x89\x95\x99\x67\x07\xe5\x1f\xbd\xf0\x8b\x34\xd8\x75" } } },
91 "\x01\x02\x03\x04\x05", 5, 93 { "\x01\x02\x03\x04\x05\x06\x07", 7, { { 0, "\x29\x3f\x02\xd4\x7f\x37\xc9\xb6\x33\xf2\xaf\x52\x85\xfe\xb4\x6b" }, { 16, "\xe6\x20\xf1\x39\x0d\x19\xbd\x84\xe2\xe0\xfd\x75\x20\x31\xaf\xc1" }, { 240, "\x91\x4f\x02\x53\x1c\x92\x18\x81\x0d\xf6\x0f\x67\xe3\x38\x15\x4c" }, { 256, "\xd0\xfd\xb5\x83\x07\x3c\xe8\x5a\xb8\x39\x17\x74\x0e\xc0\x11\xd5" }, { 496, "\x75\xf8\x14\x11\xe8\x71\xcf\xfa\x70\xb9\x0c\x74\xc5\x92\xe4\x54" }, { 512, "\x0b\xb8\x72\x02\x93\x8d\xad\x60\x9e\x87\xa5\xa1\xb0\x79\xe5\xe4" }, { 752, "\xc2\x91\x12\x46\xb6\x12\xe7\xe7\xb9\x03\xdf\xed\xa1\xda\xd8\x66" }, { 768, "\x32\x82\x8f\x91\x50\x2b\x62\x91\x36\x8d\xe8\x08\x1d\xe3\x6f\xc2" }, { 1008, "\xf3\xb9\xa7\xe3\xb2\x97\xbf\x9a\xd8\x04\x51\x2f\x90\x63\xef\xf1" }, { 1024, "\x8e\xcb\x67\xa9\xba\x1f\x55\xa5\xa0\x67\xe2\xb0\x26\xa3\x67\x6f" }, { 1520, "\xd2\xaa\x90\x2b\xd4\x2d\x0d\x7c\xfd\x34\x0c\xd4\x58\x10\x52\x9f" }, { 1536, "\x78\xb2\x72\xc9\x6e\x42\xea\xb4\xc6\x0b\xd9\x14\xe3\x9d\x06\xe3" }, { 2032, "\xf4\x33\x2f\xd3\x1a\x07\x93\x96\xee\x3c\xee\x3f\x2a\x4f\xf0\x49" }, { 2048, "\x05\x45\x97\x81\xd4\x1f\xda\x7f\x30\xc1\xbe\x7e\x12\x46\xc6\x23" }, { 3056, "\xad\xfd\x38\x68\xb8\xe5\x14\x85\xd5\xe6\x10\x01\x7e\x3d\xd6\x09" }, { 3072, "\xad\x26\x58\x1c\x0c\x5b\xe4\x5f\x4c\xea\x01\xdb\x2f\x38\x05\xd5" }, { 4080, "\xf3\x17\x2c\xef\xfc\x3b\x3d\x99\x7c\x85\xcc\xd5\xaf\x1a\x95\x0c" }, { 4096, "\xe7\x4b\x0b\x97\x31\x22\x7f\xd3\x7c\x0e\xc0\x8a\x47\xdd\xd8\xb8" } } },
92 { 94 { "\x01\x02\x03\x04\x05\x06\x07\x08", 8, { { 0, "\x97\xab\x8a\x1b\xf0\xaf\xb9\x61\x32\xf2\xf6\x72\x58\xda\x15\xa8" }, { 16, "\x82\x63\xef\xdb\x45\xc4\xa1\x86\x84\xef\x87\xe6\xb1\x9e\x5b\x09" }, { 240, "\x96\x36\xeb\xc9\x84\x19\x26\xf4\xf7\xd1\xf3\x62\xbd\xdf\x6e\x18" }, { 256, "\xd0\xa9\x90\xff\x2c\x05\xfe\xf5\xb9\x03\x73\xc9\xff\x4b\x87\x0a" }, { 496, "\x73\x23\x9f\x1d\xb7\xf4\x1d\x80\xb6\x43\xc0\xc5\x25\x18\xec\x63" }, { 512, "\x16\x3b\x31\x99\x23\xa6\xbd\xb4\x52\x7c\x62\x61\x26\x70\x3c\x0f" }, { 752, "\x49\xd6\xc8\xaf\x0f\x97\x14\x4a\x87\xdf\x21\xd9\x14\x72\xf9\x66" }, { 768, "\x44\x17\x3a\x10\x3b\x66\x16\xc5\xd5\xad\x1c\xee\x40\xc8\x63\xd0" }, { 1008, "\x27\x3c\x9c\x4b\x27\xf3\x22\xe4\xe7\x16\xef\x53\xa4\x7d\xe7\xa4" }, { 1024, "\xc6\xd0\xe7\xb2\x26\x25\x9f\xa9\x02\x34\x90\xb2\x61\x67\xad\x1d" }, { 1520, "\x1f\xe8\x98\x67\x13\xf0\x7c\x3d\x9a\xe1\xc1\x63\xff\x8c\xf9\xd3" }, { 1536, "\x83\x69\xe1\xa9\x65\x61\x0b\xe8\x87\xfb\xd0\xc7\x91\x62\xaa\xfb" }, { 2032, "\x0a\x01\x27\xab\xb4\x44\x84\xb9\xfb\xef\x5a\xbc\xae\x1b\x57\x9f" }, { 2048, "\xc2\xcd\xad\xc6\x40\x2e\x8e\xe8\x66\xe1\xf3\x7b\xdb\x47\xe4\x2c" }, { 3056, "\x26\xb5\x1e\xa3\x7d\xf8\xe1\xd6\xf7\x6f\xc3\xb6\x6a\x74\x29\xb3" }, { 3072, "\xbc\x76\x83\x20\x5d\x4f\x44\x3d\xc1\xf2\x9d\xda\x33\x15\xc8\x7b" }, { 4080, "\xd5\xfa\x5a\x34\x69\xd2\x9a\xaa\xf8\x3d\x23\x58\x9d\xb8\xc8\x5b" }, { 4096, "\x3f\xb4\x6e\x2c\x8f\x0f\x06\x8e\xdc\xe8\xcd\xcd\x7d\xfc\x58\x62" } } },
93 { 0, "\xb2\x39\x63\x05\xf0\x3d\xc0\x27\xcc\xc3\x52\x4a\x0a\x11\x18\xa8" }, 95 { "\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a", 10, { { 0, "\xed\xe3\xb0\x46\x43\xe5\x86\xcc\x90\x7d\xc2\x18\x51\x70\x99\x02" }, { 16, "\x03\x51\x6b\xa7\x8f\x41\x3b\xeb\x22\x3a\xa5\xd4\xd2\xdf\x67\x11" }, { 240, "\x3c\xfd\x6c\xb5\x8e\xe0\xfd\xde\x64\x01\x76\xad\x00\x00\x04\x4d" }, { 256, "\x48\x53\x2b\x21\xfb\x60\x79\xc9\x11\x4c\x0f\xfd\x9c\x04\xa1\xad" }, { 496, "\x3e\x8c\xea\x98\x01\x71\x09\x97\x90\x84\xb1\xef\x92\xf9\x9d\x86" }, { 512, "\xe2\x0f\xb4\x9b\xdb\x33\x7e\xe4\x8b\x8d\x8d\xc0\xf4\xaf\xef\xfe" }, { 752, "\x5c\x25\x21\xea\xcd\x79\x66\xf1\x5e\x05\x65\x44\xbe\xa0\xd3\x15" }, { 768, "\xe0\x67\xa7\x03\x19\x31\xa2\x46\xa6\xc3\x87\x5d\x2f\x67\x8a\xcb" }, { 1008, "\xa6\x4f\x70\xaf\x88\xae\x56\xb6\xf8\x75\x81\xc0\xe2\x3e\x6b\x08" }, { 1024, "\xf4\x49\x03\x1d\xe3\x12\x81\x4e\xc6\xf3\x19\x29\x1f\x4a\x05\x16" }, { 1520, "\xbd\xae\x85\x92\x4b\x3c\xb1\xd0\xa2\xe3\x3a\x30\xc6\xd7\x95\x99" }, { 1536, "\x8a\x0f\xed\xdb\xac\x86\x5a\x09\xbc\xd1\x27\xfb\x56\x2e\xd6\x0a" }, { 2032, "\xb5\x5a\x0a\x5b\x51\xa1\x2a\x8b\xe3\x48\x99\xc3\xe0\x47\x51\x1a" }, { 2048, "\xd9\xa0\x9c\xea\x3c\xe7\x5f\xe3\x96\x98\x07\x03\x17\xa7\x13\x39" }, { 3056, "\x55\x22\x25\xed\x11\x77\xf4\x45\x84\xac\x8c\xfa\x6c\x4e\xb5\xfc" }, { 3072, "\x7e\x82\xcb\xab\xfc\x95\x38\x1b\x08\x09\x98\x44\x21\x29\xc2\xf8" }, { 4080, "\x1f\x13\x5e\xd1\x4c\xe6\x0a\x91\x36\x9d\x23\x22\xbe\xf2\x5e\x3c" }, { 4096, "\x08\xb6\xbe\x45\x12\x4a\x43\xe2\xeb\x77\x95\x3f\x84\xdc\x85\x53" } } },
94 { 16, "\x69\x82\x94\x4f\x18\xfc\x82\xd5\x89\xc4\x03\xa4\x7a\x0d\x09\x19" }, 96 { "\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10", 16, { { 0, "\x9a\xc7\xcc\x9a\x60\x9d\x1e\xf7\xb2\x93\x28\x99\xcd\xe4\x1b\x97" }, { 16, "\x52\x48\xc4\x95\x90\x14\x12\x6a\x6e\x8a\x84\xf1\x1d\x1a\x9e\x1c" }, { 240, "\x06\x59\x02\xe4\xb6\x20\xf6\xcc\x36\xc8\x58\x9f\x66\x43\x2f\x2b" }, { 256, "\xd3\x9d\x56\x6b\xc6\xbc\xe3\x01\x07\x68\x15\x15\x49\xf3\x87\x3f" }, { 496, "\xb6\xd1\xe6\xc4\xa5\xe4\x77\x1c\xad\x79\x53\x8d\xf2\x95\xfb\x11" }, { 512, "\xc6\x8c\x1d\x5c\x55\x9a\x97\x41\x23\xdf\x1d\xbc\x52\xa4\x3b\x89" }, { 752, "\xc5\xec\xf8\x8d\xe8\x97\xfd\x57\xfe\xd3\x01\x70\x1b\x82\xa2\x59" }, { 768, "\xec\xcb\xe1\x3d\xe1\xfc\xc9\x1c\x11\xa0\xb2\x6c\x0b\xc8\xfa\x4d" }, { 1008, "\xe7\xa7\x25\x74\xf8\x78\x2a\xe2\x6a\xab\xcf\x9e\xbc\xd6\x60\x65" }, { 1024, "\xbd\xf0\x32\x4e\x60\x83\xdc\xc6\xd3\xce\xdd\x3c\xa8\xc5\x3c\x16" }, { 1520, "\xb4\x01\x10\xc4\x19\x0b\x56\x22\xa9\x61\x16\xb0\x01\x7e\xd2\x97" }, { 1536, "\xff\xa0\xb5\x14\x64\x7e\xc0\x4f\x63\x06\xb8\x92\xae\x66\x11\x81" }, { 2032, "\xd0\x3d\x1b\xc0\x3c\xd3\x3d\x70\xdf\xf9\xfa\x5d\x71\x96\x3e\xbd" }, { 2048, "\x8a\x44\x12\x64\x11\xea\xa7\x8b\xd5\x1e\x8d\x87\xa8\x87\x9b\xf5" }, { 3056, "\xfa\xbe\xb7\x60\x28\xad\xe2\xd0\xe4\x87\x22\xe4\x6c\x46\x15\xa3" }, { 3072, "\xc0\x5d\x88\xab\xd5\x03\x57\xf9\x35\xa6\x3c\x59\xee\x53\x76\x23" }, { 4080, "\xff\x38\x26\x5c\x16\x42\xc1\xab\xe8\xd3\xc2\xfe\x5e\x57\x2b\xf8" }, { 4096, "\xa3\x6a\x4c\x30\x1a\xe8\xac\x13\x61\x0c\xcb\xc1\x22\x56\xca\xcc" } } },
95 { 240, "\x28\xcb\x11\x32\xc9\x6c\xe2\x86\x42\x1d\xca\xad\xb8\xb6\x9e\xae" }, 97 { "\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18", 24, { { 0, "\x05\x95\xe5\x7f\xe5\xf0\xbb\x3c\x70\x6e\xda\xc8\xa4\xb2\xdb\x11" }, { 16, "\xdf\xde\x31\x34\x4a\x1a\xf7\x69\xc7\x4f\x07\x0a\xee\x9e\x23\x26" }, { 240, "\xb0\x6b\x9b\x1e\x19\x5d\x13\xd8\xf4\xa7\x99\x5c\x45\x53\xac\x05" }, { 256, "\x6b\xd2\x37\x8e\xc3\x41\xc9\xa4\x2f\x37\xba\x79\xf8\x8a\x32\xff" }, { 496, "\xe7\x0b\xce\x1d\xf7\x64\x5a\xdb\x5d\x2c\x41\x30\x21\x5c\x35\x22" }, { 512, "\x9a\x57\x30\xc7\xfc\xb4\xc9\xaf\x51\xff\xda\x89\xc7\xf1\xad\x22" }, { 752, "\x04\x85\x05\x5f\xd4\xf6\xf0\xd9\x63\xef\x5a\xb9\xa5\x47\x69\x82" }, { 768, "\x59\x1f\xc6\x6b\xcd\xa1\x0e\x45\x2b\x03\xd4\x55\x1f\x6b\x62\xac" }, { 1008, "\x27\x53\xcc\x83\x98\x8a\xfa\x3e\x16\x88\xa1\xd3\xb4\x2c\x9a\x02" }, { 1024, "\x93\x61\x0d\x52\x3d\x1d\x3f\x00\x62\xb3\xc2\xa3\xbb\xc7\xc7\xf0" }, { 1520, "\x96\xc2\x48\x61\x0a\xad\xed\xfe\xaf\x89\x78\xc0\x3d\xe8\x20\x5a" }, { 1536, "\x0e\x31\x7b\x3d\x1c\x73\xb9\xe9\xa4\x68\x8f\x29\x6d\x13\x3a\x19" }, { 2032, "\xbd\xf0\xe6\xc3\xcc\xa5\xb5\xb9\xd5\x33\xb6\x9c\x56\xad\xa1\x20" }, { 2048, "\x88\xa2\x18\xb6\xe2\xec\xe1\xe6\x24\x6d\x44\xc7\x59\xd1\x9b\x10" }, { 3056, "\x68\x66\x39\x7e\x95\xc1\x40\x53\x4f\x94\x26\x34\x21\x00\x6e\x40" }, { 3072, "\x32\xcb\x0a\x1e\x95\x42\xc6\xb3\xb8\xb3\x98\xab\xc3\xb0\xf1\xd5" }, { 4080, "\x29\xa0\xb8\xae\xd5\x4a\x13\x23\x24\xc6\x2e\x42\x3f\x54\xb4\xc8" }, { 4096, "\x3c\xb0\xf3\xb5\x02\x0a\x98\xb8\x2a\xf9\xfe\x15\x44\x84\xa1\x68" } } },
96 { 256, "\x1c\xfc\xf6\x2b\x03\xed\xdb\x64\x1d\x77\xdf\xcf\x7f\x8d\x8c\x93" }, 98 { "\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20", 32, { { 0, "\xea\xa6\xbd\x25\x88\x0b\xf9\x3d\x3f\x5d\x1e\x4c\xa2\x61\x1d\x91" }, { 16, "\xcf\xa4\x5c\x9f\x7e\x71\x4b\x54\xbd\xfa\x80\x02\x7c\xb1\x43\x80" }, { 240, "\x11\x4a\xe3\x44\xde\xd7\x1b\x35\xf2\xe6\x0f\xeb\xad\x72\x7f\xd8" }, { 256, "\x02\xe1\xe7\x05\x6b\x0f\x62\x39\x00\x49\x64\x22\x94\x3e\x97\xb6" }, { 496, "\x91\xcb\x93\xc7\x87\x96\x4e\x10\xd9\x52\x7d\x99\x9c\x6f\x93\x6b" }, { 512, "\x49\xb1\x8b\x42\xf8\xe8\x36\x7c\xbe\xb5\xef\x10\x4b\xa1\xc7\xcd" }, { 752, "\x87\x08\x4b\x3b\xa7\x00\xba\xde\x95\x56\x10\x67\x27\x45\xb3\x74" }, { 768, "\xe7\xa7\xb9\xe9\xec\x54\x0d\x5f\xf4\x3b\xdb\x12\x79\x2d\x1b\x35" }, { 1008, "\xc7\x99\xb5\x96\x73\x8f\x6b\x01\x8c\x76\xc7\x4b\x17\x59\xbd\x90" }, { 1024, "\x7f\xec\x5b\xfd\x9f\x9b\x89\xce\x65\x48\x30\x90\x92\xd7\xe9\x58" }, { 1520, "\x40\xf2\x50\xb2\x6d\x1f\x09\x6a\x4a\xfd\x4c\x34\x0a\x58\x88\x15" }, { 1536, "\x3e\x34\x13\x5c\x79\xdb\x01\x02\x00\x76\x76\x51\xcf\x26\x30\x73" }, { 2032, "\xf6\x56\xab\xcc\xf8\x8d\xd8\x27\x02\x7b\x2c\xe9\x17\xd4\x64\xec" }, { 2048, "\x18\xb6\x25\x03\xbf\xbc\x07\x7f\xba\xbb\x98\xf2\x0d\x98\xab\x34" }, { 3056, "\x8a\xed\x95\xee\x5b\x0d\xcb\xfb\xef\x4e\xb2\x1d\x3a\x3f\x52\xf9" }, { 3072, "\x62\x5a\x1a\xb0\x0e\xe3\x9a\x53\x27\x34\x6b\xdd\xb0\x1a\x9c\x18" }, { 4080, "\xa1\x3a\x7c\x79\xc7\xe1\x19\xb5\xab\x02\x96\xab\x28\xc3\x00\xb9" }, { 4096, "\xf3\xe4\xc0\xa2\xe0\x2d\x1d\x01\xf7\xf0\xa7\x46\x18\xaf\x2b\x48" } } },
97 { 496, "\x42\xb7\xd0\xcd\xd9\x18\xa8\xa3\x3d\xd5\x17\x81\xc8\x1f\x40\x41" }, 99 { "\x83\x32\x22\x77\x2a", 5, { { 0, "\x80\xad\x97\xbd\xc9\x73\xdf\x8a\x2e\x87\x9e\x92\xa4\x97\xef\xda" }, { 16, "\x20\xf0\x60\xc2\xf2\xe5\x12\x65\x01\xd3\xd4\xfe\xa1\x0d\x5f\xc0" }, { 240, "\xfa\xa1\x48\xe9\x90\x46\x18\x1f\xec\x6b\x20\x85\xf3\xb2\x0e\xd9" }, { 256, "\xf0\xda\xf5\xba\xb3\xd5\x96\x83\x98\x57\x84\x6f\x73\xfb\xfe\x5a" }, { 496, "\x1c\x7e\x2f\xc4\x63\x92\x32\xfe\x29\x75\x84\xb2\x96\x99\x6b\xc8" }, { 512, "\x3d\xb9\xb2\x49\x40\x6c\xc8\xed\xff\xac\x55\xcc\xd3\x22\xba\x12" }, { 752, "\xe4\xf9\xf7\xe0\x06\x61\x54\xbb\xd1\x25\xb7\x45\x56\x9b\xc8\x97" }, { 768, "\x75\xd5\xef\x26\x2b\x44\xc4\x1a\x9c\xf6\x3a\xe1\x45\x68\xe1\xb9" }, { 1008, "\x6d\xa4\x53\xdb\xf8\x1e\x82\x33\x4a\x3d\x88\x66\xcb\x50\xa1\xe3" }, { 1024, "\x78\x28\xd0\x74\x11\x9c\xab\x5c\x22\xb2\x94\xd7\xa9\xbf\xa0\xbb" }, { 1520, "\xad\xb8\x9c\xea\x9a\x15\xfb\xe6\x17\x29\x5b\xd0\x4b\x8c\xa0\x5c" }, { 1536, "\x62\x51\xd8\x7f\xd4\xaa\xae\x9a\x7e\x4a\xd5\xc2\x17\xd3\xf3\x00" }, { 2032, "\xe7\x11\x9b\xd6\xdd\x9b\x22\xaf\xe8\xf8\x95\x85\x43\x28\x81\xe2" }, { 2048, "\x78\x5b\x60\xfd\x7e\xc4\xe9\xfc\xb6\x54\x5f\x35\x0d\x66\x0f\xab" }, { 3056, "\xaf\xec\xc0\x37\xfd\xb7\xb0\x83\x8e\xb3\xd7\x0b\xcd\x26\x83\x82" }, { 3072, "\xdb\xc1\xa7\xb4\x9d\x57\x35\x8c\xc9\xfa\x6d\x61\xd7\x3b\x7c\xf0" }, { 4080, "\x63\x49\xd1\x26\xa3\x7a\xfc\xba\x89\x79\x4f\x98\x04\x91\x4f\xdc" }, { 4096, "\xbf\x42\xc3\x01\x8c\x2f\x7c\x66\xbf\xde\x52\x49\x75\x76\x81\x15" } } },
98 { 512, "\x64\x59\x84\x44\x32\xa7\xda\x92\x3c\xfb\x3e\xb4\x98\x06\x61\xf6" }, 100 { "\x19\x10\x83\x32\x22\x77\x2a", 7, { { 0, "\xbc\x92\x22\xdb\xd3\x27\x4d\x8f\xc6\x6d\x14\xcc\xbd\xa6\x69\x0b" }, { 16, "\x7a\xe6\x27\x41\x0c\x9a\x2b\xe6\x93\xdf\x5b\xb7\x48\x5a\x63\xe3" }, { 240, "\x3f\x09\x31\xaa\x03\xde\xfb\x30\x0f\x06\x01\x03\x82\x6f\x2a\x64" }, { 256, "\xbe\xaa\x9e\xc8\xd5\x9b\xb6\x81\x29\xf3\x02\x7c\x96\x36\x11\x81" }, { 496, "\x74\xe0\x4d\xb4\x6d\x28\x64\x8d\x7d\xee\x8a\x00\x64\xb0\x6c\xfe" }, { 512, "\x9b\x5e\x81\xc6\x2f\xe0\x23\xc5\x5b\xe4\x2f\x87\xbb\xf9\x32\xb8" }, { 752, "\xce\x17\x8f\xc1\x82\x6e\xfe\xcb\xc1\x82\xf5\x79\x99\xa4\x61\x40" }, { 768, "\x8b\xdf\x55\xcd\x55\x06\x1c\x06\xdb\xa6\xbe\x11\xde\x4a\x57\x8a" }, { 1008, "\x62\x6f\x5f\x4d\xce\x65\x25\x01\xf3\x08\x7d\x39\xc9\x2c\xc3\x49" }, { 1024, "\x42\xda\xac\x6a\x8f\x9a\xb9\xa7\xfd\x13\x7c\x60\x37\x82\x56\x82" }, { 1520, "\xcc\x03\xfd\xb7\x91\x92\xa2\x07\x31\x2f\x53\xf5\xd4\xdc\x33\xd9" }, { 1536, "\xf7\x0f\x14\x12\x2a\x1c\x98\xa3\x15\x5d\x28\xb8\xa0\xa8\xa4\x1d" }, { 2032, "\x2a\x3a\x30\x7a\xb2\x70\x8a\x9c\x00\xfe\x0b\x42\xf9\xc2\xd6\xa1" }, { 2048, "\x86\x26\x17\x62\x7d\x22\x61\xea\xb0\xb1\x24\x65\x97\xca\x0a\xe9" }, { 3056, "\x55\xf8\x77\xce\x4f\x2e\x1d\xdb\xbf\x8e\x13\xe2\xcd\xe0\xfd\xc8" }, { 3072, "\x1b\x15\x56\xcb\x93\x5f\x17\x33\x37\x70\x5f\xbb\x5d\x50\x1f\xc1" }, { 4080, "\xec\xd0\xe9\x66\x02\xbe\x7f\x8d\x50\x92\x81\x6c\xcc\xf2\xc2\xe9" }, { 4096, "\x02\x78\x81\xfa\xb4\x99\x3a\x1c\x26\x20\x24\xa9\x4f\xff\x3f\x61" } } },
99 { 752, "\xec\x10\x32\x7b\xde\x2b\xee\xfd\x18\xf9\x27\x76\x80\x45\x7e\x22" }, 101 { "\x64\x19\x10\x83\x32\x22\x77\x2a", 8, { { 0, "\xbb\xf6\x09\xde\x94\x13\x17\x2d\x07\x66\x0c\xb6\x80\x71\x69\x26" }, { 16, "\x46\x10\x1a\x6d\xab\x43\x11\x5d\x6c\x52\x2b\x4f\xe9\x36\x04\xa9" }, { 240, "\xcb\xe1\xff\xf2\x1c\x96\xf3\xee\xf6\x1e\x8f\xe0\x54\x2c\xbd\xf0" }, { 256, "\x34\x79\x38\xbf\xfa\x40\x09\xc5\x12\xcf\xb4\x03\x4b\x0d\xd1\xa7" }, { 496, "\x78\x67\xa7\x86\xd0\x0a\x71\x47\x90\x4d\x76\xdd\xf1\xe5\x20\xe3" }, { 512, "\x8d\x3e\x9e\x1c\xae\xfc\xcc\xb3\xfb\xf8\xd1\x8f\x64\x12\x0b\x32" }, { 752, "\x94\x23\x37\xf8\xfd\x76\xf0\xfa\xe8\xc5\x2d\x79\x54\x81\x06\x72" }, { 768, "\xb8\x54\x8c\x10\xf5\x16\x67\xf6\xe6\x0e\x18\x2f\xa1\x9b\x30\xf7" }, { 1008, "\x02\x11\xc7\xc6\x19\x0c\x9e\xfd\x12\x37\xc3\x4c\x8f\x2e\x06\xc4" }, { 1024, "\xbd\xa6\x4f\x65\x27\x6d\x2a\xac\xb8\xf9\x02\x12\x20\x3a\x80\x8e" }, { 1520, "\xbd\x38\x20\xf7\x32\xff\xb5\x3e\xc1\x93\xe7\x9d\x33\xe2\x7c\x73" }, { 1536, "\xd0\x16\x86\x16\x86\x19\x07\xd4\x82\xe3\x6c\xda\xc8\xcf\x57\x49" }, { 2032, "\x97\xb0\xf0\xf2\x24\xb2\xd2\x31\x71\x14\x80\x8f\xb0\x3a\xf7\xa0" }, { 2048, "\xe5\x96\x16\xe4\x69\x78\x79\x39\xa0\x63\xce\xea\x9a\xf9\x56\xd1" }, { 3056, "\xc4\x7e\x0d\xc1\x66\x09\x19\xc1\x11\x01\x20\x8f\x9e\x69\xaa\x1f" }, { 3072, "\x5a\xe4\xf1\x28\x96\xb8\x37\x9a\x2a\xad\x89\xb5\xb5\x53\xd6\xb0" }, { 4080, "\x6b\x6b\x09\x8d\x0c\x29\x3b\xc2\x99\x3d\x80\xbf\x05\x18\xb6\xd9" }, { 4096, "\x81\x70\xcc\x3c\xcd\x92\xa6\x98\x62\x1b\x93\x9d\xd3\x8f\xe7\xb9" } } },
100 { 768, "\xeb\x62\x63\x8d\x4f\x0b\xa1\xfe\x9f\xca\x20\xe0\x5b\xf8\xff\x2b" }, 102 { "\x8b\x37\x64\x19\x10\x83\x32\x22\x77\x2a", 10, { { 0, "\xab\x65\xc2\x6e\xdd\xb2\x87\x60\x0d\xb2\xfd\xa1\x0d\x1e\x60\x5c" }, { 16, "\xbb\x75\x90\x10\xc2\x96\x58\xf2\xc7\x2d\x93\xa2\xd1\x6d\x29\x30" }, { 240, "\xb9\x01\xe8\x03\x6e\xd1\xc3\x83\xcd\x3c\x4c\x4d\xd0\xa6\xab\x05" }, { 256, "\x3d\x25\xce\x49\x22\x92\x4c\x55\xf0\x64\x94\x33\x53\xd7\x8a\x6c" }, { 496, "\x12\xc1\xaa\x44\xbb\xf8\x7e\x75\xe6\x11\xf6\x9b\x2c\x38\xf4\x9b" }, { 512, "\x28\xf2\xb3\x43\x4b\x65\xc0\x98\x77\x47\x00\x44\xc6\xea\x17\x0d" }, { 752, "\xbd\x9e\xf8\x22\xde\x52\x88\x19\x61\x34\xcf\x8a\xf7\x83\x93\x04" }, { 768, "\x67\x55\x9c\x23\xf0\x52\x15\x84\x70\xa2\x96\xf7\x25\x73\x5a\x32" }, { 1008, "\x8b\xab\x26\xfb\xc2\xc1\x2b\x0f\x13\xe2\xab\x18\x5e\xab\xf2\x41" }, { 1024, "\x31\x18\x5a\x6d\x69\x6f\x0c\xfa\x9b\x42\x80\x8b\x38\xe1\x32\xa2" }, { 1520, "\x56\x4d\x3d\xae\x18\x3c\x52\x34\xc8\xaf\x1e\x51\x06\x1c\x44\xb5" }, { 1536, "\x3c\x07\x78\xa7\xb5\xf7\x2d\x3c\x23\xa3\x13\x5c\x7d\x67\xb9\xf4" }, { 2032, "\xf3\x43\x69\x89\x0f\xcf\x16\xfb\x51\x7d\xca\xae\x44\x63\xb2\xdd" }, { 2048, "\x02\xf3\x1c\x81\xe8\x20\x07\x31\xb8\x99\xb0\x28\xe7\x91\xbf\xa7" }, { 3056, "\x72\xda\x64\x62\x83\x22\x8c\x14\x30\x08\x53\x70\x17\x95\x61\x6f" }, { 3072, "\x4e\x0a\x8c\x6f\x79\x34\xa7\x88\xe2\x26\x5e\x81\xd6\xd0\xc8\xf4" }, { 4080, "\x43\x8d\xd5\xea\xfe\xa0\x11\x1b\x6f\x36\xb4\xb9\x38\xda\x2a\x68" }, { 4096, "\x5f\x6b\xfc\x73\x81\x58\x74\xd9\x71\x00\xf0\x86\x97\x93\x57\xd8" } } },
101 { 1008, "\x45\x12\x90\x48\xe6\xa0\xed\x0b\x56\xb4\x90\x33\x8f\x07\x8d\xa5" }, 103 { "\xeb\xb4\x62\x27\xc6\xcc\x8b\x37\x64\x19\x10\x83\x32\x22\x77\x2a", 16, { { 0, "\x72\x0c\x94\xb6\x3e\xdf\x44\xe1\x31\xd9\x50\xca\x21\x1a\x5a\x30" }, { 16, "\xc3\x66\xfd\xea\xcf\x9c\xa8\x04\x36\xbe\x7c\x35\x84\x24\xd2\x0b" }, { 240, "\xb3\x39\x4a\x40\xaa\xbf\x75\xcb\xa4\x22\x82\xef\x25\xa0\x05\x9f" }, { 256, "\x48\x47\xd8\x1d\xa4\x94\x2d\xbc\x24\x9d\xef\xc4\x8c\x92\x2b\x9f" }, { 496, "\x08\x12\x8c\x46\x9f\x27\x53\x42\xad\xda\x20\x2b\x2b\x58\xda\x95" }, { 512, "\x97\x0d\xac\xef\x40\xad\x98\x72\x3b\xac\x5d\x69\x55\xb8\x17\x61" }, { 752, "\x3c\xb8\x99\x93\xb0\x7b\x0c\xed\x93\xde\x13\xd2\xa1\x10\x13\xac" }, { 768, "\xef\x2d\x67\x6f\x15\x45\xc2\xc1\x3d\xc6\x80\xa0\x2f\x4a\xdb\xfe" }, { 1008, "\xb6\x05\x95\x51\x4f\x24\xbc\x9f\xe5\x22\xa6\xca\xd7\x39\x36\x44" }, { 1024, "\xb5\x15\xa8\xc5\x01\x17\x54\xf5\x90\x03\x05\x8b\xdb\x81\x51\x4e" }, { 1520, "\x3c\x70\x04\x7e\x8c\xbc\x03\x8e\x3b\x98\x20\xdb\x60\x1d\xa4\x95" }, { 1536, "\x11\x75\xda\x6e\xe7\x56\xde\x46\xa5\x3e\x2b\x07\x56\x60\xb7\x70" }, { 2032, "\x00\xa5\x42\xbb\xa0\x21\x11\xcc\x2c\x65\xb3\x8e\xbd\xba\x58\x7e" }, { 2048, "\x58\x65\xfd\xbb\x5b\x48\x06\x41\x04\xe8\x30\xb3\x80\xf2\xae\xde" }, { 3056, "\x34\xb2\x1a\xd2\xad\x44\xe9\x99\xdb\x2d\x7f\x08\x63\xf0\xd9\xb6" }, { 3072, "\x84\xa9\x21\x8f\xc3\x6e\x8a\x5f\x2c\xcf\xbe\xae\x53\xa2\x7d\x25" }, { 4080, "\xa2\x22\x1a\x11\xb8\x33\xcc\xb4\x98\xa5\x95\x40\xf0\x54\x5f\x4a" }, { 4096, "\x5b\xbe\xb4\x78\x7d\x59\xe5\x37\x3f\xdb\xea\x6c\x6f\x75\xc2\x9b" } } },
102 { 1024, "\x30\xab\xbc\xc7\xc2\x0b\x01\x60\x9f\x23\xee\x2d\x5f\x6b\xb7\xdf" }, 104 { "\xc1\x09\x16\x39\x08\xeb\xe5\x1d\xeb\xb4\x62\x27\xc6\xcc\x8b\x37\x64\x19\x10\x83\x32\x22\x77\x2a", 24, { { 0, "\x54\xb6\x4e\x6b\x5a\x20\xb5\xe2\xec\x84\x59\x3d\xc7\x98\x9d\xa7" }, { 16, "\xc1\x35\xee\xe2\x37\xa8\x54\x65\xff\x97\xdc\x03\x92\x4f\x45\xce" }, { 240, "\xcf\xcc\x92\x2f\xb4\xa1\x4a\xb4\x5d\x61\x75\xaa\xbb\xf2\xd2\x01" }, { 256, "\x83\x7b\x87\xe2\xa4\x46\xad\x0e\xf7\x98\xac\xd0\x2b\x94\x12\x4f" }, { 496, "\x17\xa6\xdb\xd6\x64\x92\x6a\x06\x36\xb3\xf4\xc3\x7a\x4f\x46\x94" }, { 512, "\x4a\x5f\x9f\x26\xae\xee\xd4\xd4\xa2\x5f\x63\x2d\x30\x52\x33\xd9" }, { 752, "\x80\xa3\xd0\x1e\xf0\x0c\x8e\x9a\x42\x09\xc1\x7f\x4e\xeb\x35\x8c" }, { 768, "\xd1\x5e\x7d\x5f\xfa\xaa\xbc\x02\x07\xbf\x20\x0a\x11\x77\x93\xa2" }, { 1008, "\x34\x96\x82\xbf\x58\x8e\xaa\x52\xd0\xaa\x15\x60\x34\x6a\xea\xfa" }, { 1024, "\xf5\x85\x4c\xdb\x76\xc8\x89\xe3\xad\x63\x35\x4e\x5f\x72\x75\xe3" }, { 1520, "\x53\x2c\x7c\xec\xcb\x39\xdf\x32\x36\x31\x84\x05\xa4\xb1\x27\x9c" }, { 1536, "\xba\xef\xe6\xd9\xce\xb6\x51\x84\x22\x60\xe0\xd1\xe0\x5e\x3b\x90" }, { 2032, "\xe8\x2d\x8c\x6d\xb5\x4e\x3c\x63\x3f\x58\x1c\x95\x2b\xa0\x42\x07" }, { 2048, "\x4b\x16\xe5\x0a\xbd\x38\x1b\xd7\x09\x00\xa9\xcd\x9a\x62\xcb\x23" }, { 3056, "\x36\x82\xee\x33\xbd\x14\x8b\xd9\xf5\x86\x56\xcd\x8f\x30\xd9\xfb" }, { 3072, "\x1e\x5a\x0b\x84\x75\x04\x5d\x9b\x20\xb2\x62\x86\x24\xed\xfd\x9e" }, { 4080, "\x63\xed\xd6\x84\xfb\x82\x62\x82\xfe\x52\x8f\x9c\x0e\x92\x37\xbc" }, { 4096, "\xe4\xdd\x2e\x98\xd6\x96\x0f\xae\x0b\x43\x54\x54\x56\x74\x33\x91" } } },
103 { 1520, "\x32\x94\xf7\x44\xd8\xf9\x79\x05\x07\xe7\x0f\x62\xe5\xbb\xce\xea" }, 105 { "\x1a\xda\x31\xd5\xcf\x68\x82\x21\xc1\x09\x16\x39\x08\xeb\xe5\x1d\xeb\xb4\x62\x27\xc6\xcc\x8b\x37\x64\x19\x10\x83\x32\x22\x77\x2a", 32, { { 0, "\xdd\x5b\xcb\x00\x18\xe9\x22\xd4\x94\x75\x9d\x7c\x39\x5d\x02\xd3" }, { 16, "\xc8\x44\x6f\x8f\x77\xab\xf7\x37\x68\x53\x53\xeb\x89\xa1\xc9\xeb" }, { 240, "\xaf\x3e\x30\xf9\xc0\x95\x04\x59\x38\x15\x15\x75\xc3\xfb\x90\x98" }, { 256, "\xf8\xcb\x62\x74\xdb\x99\xb8\x0b\x1d\x20\x12\xa9\x8e\xd4\x8f\x0e" }, { 496, "\x25\xc3\x00\x5a\x1c\xb8\x5d\xe0\x76\x25\x98\x39\xab\x71\x98\xab" }, { 512, "\x9d\xcb\xc1\x83\xe8\xcb\x99\x4b\x72\x7b\x75\xbe\x31\x80\x76\x9c" }, { 752, "\xa1\xd3\x07\x8d\xfa\x91\x69\x50\x3e\xd9\xd4\x49\x1d\xee\x4e\xb2" }, { 768, "\x85\x14\xa5\x49\x58\x58\x09\x6f\x59\x6e\x4b\xcd\x66\xb1\x06\x65" }, { 1008, "\x5f\x40\xd5\x9e\xc1\xb0\x3b\x33\x73\x8e\xfa\x60\xb2\x25\x5d\x31" }, { 1024, "\x34\x77\xc7\xf7\x64\xa4\x1b\xac\xef\xf9\x0b\xf1\x4f\x92\xb7\xcc" }, { 1520, "\xac\x4e\x95\x36\x8d\x99\xb9\xeb\x78\xb8\xda\x8f\x81\xff\xa7\x95" }, { 1536, "\x8c\x3c\x13\xf8\xc2\x38\x8b\xb7\x3f\x38\x57\x6e\x65\xb7\xc4\x46" }, { 2032, "\x13\xc4\xb9\xc1\xdf\xb6\x65\x79\xed\xdd\x8a\x28\x0b\x9f\x73\x16" }, { 2048, "\xdd\xd2\x78\x20\x55\x01\x26\x69\x8e\xfa\xad\xc6\x4b\x64\xf6\x6e" }, { 3056, "\xf0\x8f\x2e\x66\xd2\x8e\xd1\x43\xf3\xa2\x37\xcf\x9d\xe7\x35\x59" }, { 3072, "\x9e\xa3\x6c\x52\x55\x31\xb8\x80\xba\x12\x43\x34\xf5\x7b\x0b\x70" }, { 4080, "\xd5\xa3\x9e\x3d\xfc\xc5\x02\x80\xba\xc4\xa6\xb5\xaa\x0d\xca\x7d" }, { 4096, "\x37\x0b\x1c\x1f\xe6\x55\x91\x6d\x97\xfd\x0d\x47\xca\x1d\x72\xb8" } } }
104 { 1536, "\xd8\x72\x9d\xb4\x18\x82\x25\x9b\xee\x4f\x82\x53\x25\xf5\xa1\x30" },
105 { 2032, "\x1e\xb1\x4a\x0c\x13\xb3\xbf\x47\xfa\x2a\x0b\xa9\x3a\xd4\x5b\x8b" },
106 { 2048, "\xcc\x58\x2f\x8b\xa9\xf2\x65\xe2\xb1\xbe\x91\x12\xe9\x75\xd2\xd7" },
107 { 3056, "\xf2\xe3\x0f\x9b\xd1\x02\xec\xbf\x75\xaa\xad\xe9\xbc\x35\xc4\x3c" },
108 { 3072, "\xec\x0e\x11\xc4\x79\xdc\x32\x9d\xc8\xda\x79\x68\xfe\x96\x56\x81" },
109 { 4080, "\x06\x83\x26\xa2\x11\x84\x16\xd2\x1f\x9d\x04\xb2\xcd\x1c\xa0\x50" },
110 { 4096, "\xff\x25\xb5\x89\x95\x99\x67\x07\xe5\x1f\xbd\xf0\x8b\x34\xd8\x75" }
111 }
112 },
113 {
114 "\x01\x02\x03\x04\x05\x06\x07", 7,
115 {
116 { 0, "\x29\x3f\x02\xd4\x7f\x37\xc9\xb6\x33\xf2\xaf\x52\x85\xfe\xb4\x6b" },
117 { 16, "\xe6\x20\xf1\x39\x0d\x19\xbd\x84\xe2\xe0\xfd\x75\x20\x31\xaf\xc1" },
118 { 240, "\x91\x4f\x02\x53\x1c\x92\x18\x81\x0d\xf6\x0f\x67\xe3\x38\x15\x4c" },
119 { 256, "\xd0\xfd\xb5\x83\x07\x3c\xe8\x5a\xb8\x39\x17\x74\x0e\xc0\x11\xd5" },
120 { 496, "\x75\xf8\x14\x11\xe8\x71\xcf\xfa\x70\xb9\x0c\x74\xc5\x92\xe4\x54" },
121 { 512, "\x0b\xb8\x72\x02\x93\x8d\xad\x60\x9e\x87\xa5\xa1\xb0\x79\xe5\xe4" },
122 { 752, "\xc2\x91\x12\x46\xb6\x12\xe7\xe7\xb9\x03\xdf\xed\xa1\xda\xd8\x66" },
123 { 768, "\x32\x82\x8f\x91\x50\x2b\x62\x91\x36\x8d\xe8\x08\x1d\xe3\x6f\xc2" },
124 { 1008, "\xf3\xb9\xa7\xe3\xb2\x97\xbf\x9a\xd8\x04\x51\x2f\x90\x63\xef\xf1" },
125 { 1024, "\x8e\xcb\x67\xa9\xba\x1f\x55\xa5\xa0\x67\xe2\xb0\x26\xa3\x67\x6f" },
126 { 1520, "\xd2\xaa\x90\x2b\xd4\x2d\x0d\x7c\xfd\x34\x0c\xd4\x58\x10\x52\x9f" },
127 { 1536, "\x78\xb2\x72\xc9\x6e\x42\xea\xb4\xc6\x0b\xd9\x14\xe3\x9d\x06\xe3" },
128 { 2032, "\xf4\x33\x2f\xd3\x1a\x07\x93\x96\xee\x3c\xee\x3f\x2a\x4f\xf0\x49" },
129 { 2048, "\x05\x45\x97\x81\xd4\x1f\xda\x7f\x30\xc1\xbe\x7e\x12\x46\xc6\x23" },
130 { 3056, "\xad\xfd\x38\x68\xb8\xe5\x14\x85\xd5\xe6\x10\x01\x7e\x3d\xd6\x09" },
131 { 3072, "\xad\x26\x58\x1c\x0c\x5b\xe4\x5f\x4c\xea\x01\xdb\x2f\x38\x05\xd5" },
132 { 4080, "\xf3\x17\x2c\xef\xfc\x3b\x3d\x99\x7c\x85\xcc\xd5\xaf\x1a\x95\x0c" },
133 { 4096, "\xe7\x4b\x0b\x97\x31\x22\x7f\xd3\x7c\x0e\xc0\x8a\x47\xdd\xd8\xb8" }
134 }
135 },
136 {
137 "\x01\x02\x03\x04\x05\x06\x07\x08", 8,
138 {
139 { 0, "\x97\xab\x8a\x1b\xf0\xaf\xb9\x61\x32\xf2\xf6\x72\x58\xda\x15\xa8" },
140 { 16, "\x82\x63\xef\xdb\x45\xc4\xa1\x86\x84\xef\x87\xe6\xb1\x9e\x5b\x09" },
141 { 240, "\x96\x36\xeb\xc9\x84\x19\x26\xf4\xf7\xd1\xf3\x62\xbd\xdf\x6e\x18" },
142 { 256, "\xd0\xa9\x90\xff\x2c\x05\xfe\xf5\xb9\x03\x73\xc9\xff\x4b\x87\x0a" },
143 { 496, "\x73\x23\x9f\x1d\xb7\xf4\x1d\x80\xb6\x43\xc0\xc5\x25\x18\xec\x63" },
144 { 512, "\x16\x3b\x31\x99\x23\xa6\xbd\xb4\x52\x7c\x62\x61\x26\x70\x3c\x0f" },
145 { 752, "\x49\xd6\xc8\xaf\x0f\x97\x14\x4a\x87\xdf\x21\xd9\x14\x72\xf9\x66" },
146 { 768, "\x44\x17\x3a\x10\x3b\x66\x16\xc5\xd5\xad\x1c\xee\x40\xc8\x63\xd0" },
147 { 1008, "\x27\x3c\x9c\x4b\x27\xf3\x22\xe4\xe7\x16\xef\x53\xa4\x7d\xe7\xa4" },
148 { 1024, "\xc6\xd0\xe7\xb2\x26\x25\x9f\xa9\x02\x34\x90\xb2\x61\x67\xad\x1d" },
149 { 1520, "\x1f\xe8\x98\x67\x13\xf0\x7c\x3d\x9a\xe1\xc1\x63\xff\x8c\xf9\xd3" },
150 { 1536, "\x83\x69\xe1\xa9\x65\x61\x0b\xe8\x87\xfb\xd0\xc7\x91\x62\xaa\xfb" },
151 { 2032, "\x0a\x01\x27\xab\xb4\x44\x84\xb9\xfb\xef\x5a\xbc\xae\x1b\x57\x9f" },
152 { 2048, "\xc2\xcd\xad\xc6\x40\x2e\x8e\xe8\x66\xe1\xf3\x7b\xdb\x47\xe4\x2c" },
153 { 3056, "\x26\xb5\x1e\xa3\x7d\xf8\xe1\xd6\xf7\x6f\xc3\xb6\x6a\x74\x29\xb3" },
154 { 3072, "\xbc\x76\x83\x20\x5d\x4f\x44\x3d\xc1\xf2\x9d\xda\x33\x15\xc8\x7b" },
155 { 4080, "\xd5\xfa\x5a\x34\x69\xd2\x9a\xaa\xf8\x3d\x23\x58\x9d\xb8\xc8\x5b" },
156 { 4096, "\x3f\xb4\x6e\x2c\x8f\x0f\x06\x8e\xdc\xe8\xcd\xcd\x7d\xfc\x58\x62" }
157 }
158 },
159 {
160 "\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a", 10,
161 {
162 { 0, "\xed\xe3\xb0\x46\x43\xe5\x86\xcc\x90\x7d\xc2\x18\x51\x70\x99\x02" },
163 { 16, "\x03\x51\x6b\xa7\x8f\x41\x3b\xeb\x22\x3a\xa5\xd4\xd2\xdf\x67\x11" },
164 { 240, "\x3c\xfd\x6c\xb5\x8e\xe0\xfd\xde\x64\x01\x76\xad\x00\x00\x04\x4d" },
165 { 256, "\x48\x53\x2b\x21\xfb\x60\x79\xc9\x11\x4c\x0f\xfd\x9c\x04\xa1\xad" },
166 { 496, "\x3e\x8c\xea\x98\x01\x71\x09\x97\x90\x84\xb1\xef\x92\xf9\x9d\x86" },
167 { 512, "\xe2\x0f\xb4\x9b\xdb\x33\x7e\xe4\x8b\x8d\x8d\xc0\xf4\xaf\xef\xfe" },
168 { 752, "\x5c\x25\x21\xea\xcd\x79\x66\xf1\x5e\x05\x65\x44\xbe\xa0\xd3\x15" },
169 { 768, "\xe0\x67\xa7\x03\x19\x31\xa2\x46\xa6\xc3\x87\x5d\x2f\x67\x8a\xcb" },
170 { 1008, "\xa6\x4f\x70\xaf\x88\xae\x56\xb6\xf8\x75\x81\xc0\xe2\x3e\x6b\x08" },
171 { 1024, "\xf4\x49\x03\x1d\xe3\x12\x81\x4e\xc6\xf3\x19\x29\x1f\x4a\x05\x16" },
172 { 1520, "\xbd\xae\x85\x92\x4b\x3c\xb1\xd0\xa2\xe3\x3a\x30\xc6\xd7\x95\x99" },
173 { 1536, "\x8a\x0f\xed\xdb\xac\x86\x5a\x09\xbc\xd1\x27\xfb\x56\x2e\xd6\x0a" },
174 { 2032, "\xb5\x5a\x0a\x5b\x51\xa1\x2a\x8b\xe3\x48\x99\xc3\xe0\x47\x51\x1a" },
175 { 2048, "\xd9\xa0\x9c\xea\x3c\xe7\x5f\xe3\x96\x98\x07\x03\x17\xa7\x13\x39" },
176 { 3056, "\x55\x22\x25\xed\x11\x77\xf4\x45\x84\xac\x8c\xfa\x6c\x4e\xb5\xfc" },
177 { 3072, "\x7e\x82\xcb\xab\xfc\x95\x38\x1b\x08\x09\x98\x44\x21\x29\xc2\xf8" },
178 { 4080, "\x1f\x13\x5e\xd1\x4c\xe6\x0a\x91\x36\x9d\x23\x22\xbe\xf2\x5e\x3c" },
179 { 4096, "\x08\xb6\xbe\x45\x12\x4a\x43\xe2\xeb\x77\x95\x3f\x84\xdc\x85\x53" }
180 }
181 },
182 {
183 "\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10", 16,
184 {
185 { 0, "\x9a\xc7\xcc\x9a\x60\x9d\x1e\xf7\xb2\x93\x28\x99\xcd\xe4\x1b\x97" },
186 { 16, "\x52\x48\xc4\x95\x90\x14\x12\x6a\x6e\x8a\x84\xf1\x1d\x1a\x9e\x1c" },
187 { 240, "\x06\x59\x02\xe4\xb6\x20\xf6\xcc\x36\xc8\x58\x9f\x66\x43\x2f\x2b" },
188 { 256, "\xd3\x9d\x56\x6b\xc6\xbc\xe3\x01\x07\x68\x15\x15\x49\xf3\x87\x3f" },
189 { 496, "\xb6\xd1\xe6\xc4\xa5\xe4\x77\x1c\xad\x79\x53\x8d\xf2\x95\xfb\x11" },
190 { 512, "\xc6\x8c\x1d\x5c\x55\x9a\x97\x41\x23\xdf\x1d\xbc\x52\xa4\x3b\x89" },
191 { 752, "\xc5\xec\xf8\x8d\xe8\x97\xfd\x57\xfe\xd3\x01\x70\x1b\x82\xa2\x59" },
192 { 768, "\xec\xcb\xe1\x3d\xe1\xfc\xc9\x1c\x11\xa0\xb2\x6c\x0b\xc8\xfa\x4d" },
193 { 1008, "\xe7\xa7\x25\x74\xf8\x78\x2a\xe2\x6a\xab\xcf\x9e\xbc\xd6\x60\x65" },
194 { 1024, "\xbd\xf0\x32\x4e\x60\x83\xdc\xc6\xd3\xce\xdd\x3c\xa8\xc5\x3c\x16" },
195 { 1520, "\xb4\x01\x10\xc4\x19\x0b\x56\x22\xa9\x61\x16\xb0\x01\x7e\xd2\x97" },
196 { 1536, "\xff\xa0\xb5\x14\x64\x7e\xc0\x4f\x63\x06\xb8\x92\xae\x66\x11\x81" },
197 { 2032, "\xd0\x3d\x1b\xc0\x3c\xd3\x3d\x70\xdf\xf9\xfa\x5d\x71\x96\x3e\xbd" },
198 { 2048, "\x8a\x44\x12\x64\x11\xea\xa7\x8b\xd5\x1e\x8d\x87\xa8\x87\x9b\xf5" },
199 { 3056, "\xfa\xbe\xb7\x60\x28\xad\xe2\xd0\xe4\x87\x22\xe4\x6c\x46\x15\xa3" },
200 { 3072, "\xc0\x5d\x88\xab\xd5\x03\x57\xf9\x35\xa6\x3c\x59\xee\x53\x76\x23" },
201 { 4080, "\xff\x38\x26\x5c\x16\x42\xc1\xab\xe8\xd3\xc2\xfe\x5e\x57\x2b\xf8" },
202 { 4096, "\xa3\x6a\x4c\x30\x1a\xe8\xac\x13\x61\x0c\xcb\xc1\x22\x56\xca\xcc" }
203 }
204 },
205 {
206 "\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18", 24,
207 {
208 { 0, "\x05\x95\xe5\x7f\xe5\xf0\xbb\x3c\x70\x6e\xda\xc8\xa4\xb2\xdb\x11" },
209 { 16, "\xdf\xde\x31\x34\x4a\x1a\xf7\x69\xc7\x4f\x07\x0a\xee\x9e\x23\x26" },
210 { 240, "\xb0\x6b\x9b\x1e\x19\x5d\x13\xd8\xf4\xa7\x99\x5c\x45\x53\xac\x05" },
211 { 256, "\x6b\xd2\x37\x8e\xc3\x41\xc9\xa4\x2f\x37\xba\x79\xf8\x8a\x32\xff" },
212 { 496, "\xe7\x0b\xce\x1d\xf7\x64\x5a\xdb\x5d\x2c\x41\x30\x21\x5c\x35\x22" },
213 { 512, "\x9a\x57\x30\xc7\xfc\xb4\xc9\xaf\x51\xff\xda\x89\xc7\xf1\xad\x22" },
214 { 752, "\x04\x85\x05\x5f\xd4\xf6\xf0\xd9\x63\xef\x5a\xb9\xa5\x47\x69\x82" },
215 { 768, "\x59\x1f\xc6\x6b\xcd\xa1\x0e\x45\x2b\x03\xd4\x55\x1f\x6b\x62\xac" },
216 { 1008, "\x27\x53\xcc\x83\x98\x8a\xfa\x3e\x16\x88\xa1\xd3\xb4\x2c\x9a\x02" },
217 { 1024, "\x93\x61\x0d\x52\x3d\x1d\x3f\x00\x62\xb3\xc2\xa3\xbb\xc7\xc7\xf0" },
218 { 1520, "\x96\xc2\x48\x61\x0a\xad\xed\xfe\xaf\x89\x78\xc0\x3d\xe8\x20\x5a" },
219 { 1536, "\x0e\x31\x7b\x3d\x1c\x73\xb9\xe9\xa4\x68\x8f\x29\x6d\x13\x3a\x19" },
220 { 2032, "\xbd\xf0\xe6\xc3\xcc\xa5\xb5\xb9\xd5\x33\xb6\x9c\x56\xad\xa1\x20" },
221 { 2048, "\x88\xa2\x18\xb6\xe2\xec\xe1\xe6\x24\x6d\x44\xc7\x59\xd1\x9b\x10" },
222 { 3056, "\x68\x66\x39\x7e\x95\xc1\x40\x53\x4f\x94\x26\x34\x21\x00\x6e\x40" },
223 { 3072, "\x32\xcb\x0a\x1e\x95\x42\xc6\xb3\xb8\xb3\x98\xab\xc3\xb0\xf1\xd5" },
224 { 4080, "\x29\xa0\xb8\xae\xd5\x4a\x13\x23\x24\xc6\x2e\x42\x3f\x54\xb4\xc8" },
225 { 4096, "\x3c\xb0\xf3\xb5\x02\x0a\x98\xb8\x2a\xf9\xfe\x15\x44\x84\xa1\x68" }
226 }
227 },
228 {
229 "\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20", 32,
230 {
231 { 0, "\xea\xa6\xbd\x25\x88\x0b\xf9\x3d\x3f\x5d\x1e\x4c\xa2\x61\x1d\x91" },
232 { 16, "\xcf\xa4\x5c\x9f\x7e\x71\x4b\x54\xbd\xfa\x80\x02\x7c\xb1\x43\x80" },
233 { 240, "\x11\x4a\xe3\x44\xde\xd7\x1b\x35\xf2\xe6\x0f\xeb\xad\x72\x7f\xd8" },
234 { 256, "\x02\xe1\xe7\x05\x6b\x0f\x62\x39\x00\x49\x64\x22\x94\x3e\x97\xb6" },
235 { 496, "\x91\xcb\x93\xc7\x87\x96\x4e\x10\xd9\x52\x7d\x99\x9c\x6f\x93\x6b" },
236 { 512, "\x49\xb1\x8b\x42\xf8\xe8\x36\x7c\xbe\xb5\xef\x10\x4b\xa1\xc7\xcd" },
237 { 752, "\x87\x08\x4b\x3b\xa7\x00\xba\xde\x95\x56\x10\x67\x27\x45\xb3\x74" },
238 { 768, "\xe7\xa7\xb9\xe9\xec\x54\x0d\x5f\xf4\x3b\xdb\x12\x79\x2d\x1b\x35" },
239 { 1008, "\xc7\x99\xb5\x96\x73\x8f\x6b\x01\x8c\x76\xc7\x4b\x17\x59\xbd\x90" },
240 { 1024, "\x7f\xec\x5b\xfd\x9f\x9b\x89\xce\x65\x48\x30\x90\x92\xd7\xe9\x58" },
241 { 1520, "\x40\xf2\x50\xb2\x6d\x1f\x09\x6a\x4a\xfd\x4c\x34\x0a\x58\x88\x15" },
242 { 1536, "\x3e\x34\x13\x5c\x79\xdb\x01\x02\x00\x76\x76\x51\xcf\x26\x30\x73" },
243 { 2032, "\xf6\x56\xab\xcc\xf8\x8d\xd8\x27\x02\x7b\x2c\xe9\x17\xd4\x64\xec" },
244 { 2048, "\x18\xb6\x25\x03\xbf\xbc\x07\x7f\xba\xbb\x98\xf2\x0d\x98\xab\x34" },
245 { 3056, "\x8a\xed\x95\xee\x5b\x0d\xcb\xfb\xef\x4e\xb2\x1d\x3a\x3f\x52\xf9" },
246 { 3072, "\x62\x5a\x1a\xb0\x0e\xe3\x9a\x53\x27\x34\x6b\xdd\xb0\x1a\x9c\x18" },
247 { 4080, "\xa1\x3a\x7c\x79\xc7\xe1\x19\xb5\xab\x02\x96\xab\x28\xc3\x00\xb9" },
248 { 4096, "\xf3\xe4\xc0\xa2\xe0\x2d\x1d\x01\xf7\xf0\xa7\x46\x18\xaf\x2b\x48" }
249 }
250 },
251 {
252 "\x83\x32\x22\x77\x2a", 5,
253 {
254 { 0, "\x80\xad\x97\xbd\xc9\x73\xdf\x8a\x2e\x87\x9e\x92\xa4\x97\xef\xda" },
255 { 16, "\x20\xf0\x60\xc2\xf2\xe5\x12\x65\x01\xd3\xd4\xfe\xa1\x0d\x5f\xc0" },
256 { 240, "\xfa\xa1\x48\xe9\x90\x46\x18\x1f\xec\x6b\x20\x85\xf3\xb2\x0e\xd9" },
257 { 256, "\xf0\xda\xf5\xba\xb3\xd5\x96\x83\x98\x57\x84\x6f\x73\xfb\xfe\x5a" },
258 { 496, "\x1c\x7e\x2f\xc4\x63\x92\x32\xfe\x29\x75\x84\xb2\x96\x99\x6b\xc8" },
259 { 512, "\x3d\xb9\xb2\x49\x40\x6c\xc8\xed\xff\xac\x55\xcc\xd3\x22\xba\x12" },
260 { 752, "\xe4\xf9\xf7\xe0\x06\x61\x54\xbb\xd1\x25\xb7\x45\x56\x9b\xc8\x97" },
261 { 768, "\x75\xd5\xef\x26\x2b\x44\xc4\x1a\x9c\xf6\x3a\xe1\x45\x68\xe1\xb9" },
262 { 1008, "\x6d\xa4\x53\xdb\xf8\x1e\x82\x33\x4a\x3d\x88\x66\xcb\x50\xa1\xe3" },
263 { 1024, "\x78\x28\xd0\x74\x11\x9c\xab\x5c\x22\xb2\x94\xd7\xa9\xbf\xa0\xbb" },
264 { 1520, "\xad\xb8\x9c\xea\x9a\x15\xfb\xe6\x17\x29\x5b\xd0\x4b\x8c\xa0\x5c" },
265 { 1536, "\x62\x51\xd8\x7f\xd4\xaa\xae\x9a\x7e\x4a\xd5\xc2\x17\xd3\xf3\x00" },
266 { 2032, "\xe7\x11\x9b\xd6\xdd\x9b\x22\xaf\xe8\xf8\x95\x85\x43\x28\x81\xe2" },
267 { 2048, "\x78\x5b\x60\xfd\x7e\xc4\xe9\xfc\xb6\x54\x5f\x35\x0d\x66\x0f\xab" },
268 { 3056, "\xaf\xec\xc0\x37\xfd\xb7\xb0\x83\x8e\xb3\xd7\x0b\xcd\x26\x83\x82" },
269 { 3072, "\xdb\xc1\xa7\xb4\x9d\x57\x35\x8c\xc9\xfa\x6d\x61\xd7\x3b\x7c\xf0" },
270 { 4080, "\x63\x49\xd1\x26\xa3\x7a\xfc\xba\x89\x79\x4f\x98\x04\x91\x4f\xdc" },
271 { 4096, "\xbf\x42\xc3\x01\x8c\x2f\x7c\x66\xbf\xde\x52\x49\x75\x76\x81\x15" }
272 }
273 },
274 {
275 "\x19\x10\x83\x32\x22\x77\x2a", 7,
276 {
277 { 0, "\xbc\x92\x22\xdb\xd3\x27\x4d\x8f\xc6\x6d\x14\xcc\xbd\xa6\x69\x0b" },
278 { 16, "\x7a\xe6\x27\x41\x0c\x9a\x2b\xe6\x93\xdf\x5b\xb7\x48\x5a\x63\xe3" },
279 { 240, "\x3f\x09\x31\xaa\x03\xde\xfb\x30\x0f\x06\x01\x03\x82\x6f\x2a\x64" },
280 { 256, "\xbe\xaa\x9e\xc8\xd5\x9b\xb6\x81\x29\xf3\x02\x7c\x96\x36\x11\x81" },
281 { 496, "\x74\xe0\x4d\xb4\x6d\x28\x64\x8d\x7d\xee\x8a\x00\x64\xb0\x6c\xfe" },
282 { 512, "\x9b\x5e\x81\xc6\x2f\xe0\x23\xc5\x5b\xe4\x2f\x87\xbb\xf9\x32\xb8" },
283 { 752, "\xce\x17\x8f\xc1\x82\x6e\xfe\xcb\xc1\x82\xf5\x79\x99\xa4\x61\x40" },
284 { 768, "\x8b\xdf\x55\xcd\x55\x06\x1c\x06\xdb\xa6\xbe\x11\xde\x4a\x57\x8a" },
285 { 1008, "\x62\x6f\x5f\x4d\xce\x65\x25\x01\xf3\x08\x7d\x39\xc9\x2c\xc3\x49" },
286 { 1024, "\x42\xda\xac\x6a\x8f\x9a\xb9\xa7\xfd\x13\x7c\x60\x37\x82\x56\x82" },
287 { 1520, "\xcc\x03\xfd\xb7\x91\x92\xa2\x07\x31\x2f\x53\xf5\xd4\xdc\x33\xd9" },
288 { 1536, "\xf7\x0f\x14\x12\x2a\x1c\x98\xa3\x15\x5d\x28\xb8\xa0\xa8\xa4\x1d" },
289 { 2032, "\x2a\x3a\x30\x7a\xb2\x70\x8a\x9c\x00\xfe\x0b\x42\xf9\xc2\xd6\xa1" },
290 { 2048, "\x86\x26\x17\x62\x7d\x22\x61\xea\xb0\xb1\x24\x65\x97\xca\x0a\xe9" },
291 { 3056, "\x55\xf8\x77\xce\x4f\x2e\x1d\xdb\xbf\x8e\x13\xe2\xcd\xe0\xfd\xc8" },
292 { 3072, "\x1b\x15\x56\xcb\x93\x5f\x17\x33\x37\x70\x5f\xbb\x5d\x50\x1f\xc1" },
293 { 4080, "\xec\xd0\xe9\x66\x02\xbe\x7f\x8d\x50\x92\x81\x6c\xcc\xf2\xc2\xe9" },
294 { 4096, "\x02\x78\x81\xfa\xb4\x99\x3a\x1c\x26\x20\x24\xa9\x4f\xff\x3f\x61" }
295 }
296 },
297 {
298 "\x64\x19\x10\x83\x32\x22\x77\x2a", 8,
299 {
300 { 0, "\xbb\xf6\x09\xde\x94\x13\x17\x2d\x07\x66\x0c\xb6\x80\x71\x69\x26" },
301 { 16, "\x46\x10\x1a\x6d\xab\x43\x11\x5d\x6c\x52\x2b\x4f\xe9\x36\x04\xa9" },
302 { 240, "\xcb\xe1\xff\xf2\x1c\x96\xf3\xee\xf6\x1e\x8f\xe0\x54\x2c\xbd\xf0" },
303 { 256, "\x34\x79\x38\xbf\xfa\x40\x09\xc5\x12\xcf\xb4\x03\x4b\x0d\xd1\xa7" },
304 { 496, "\x78\x67\xa7\x86\xd0\x0a\x71\x47\x90\x4d\x76\xdd\xf1\xe5\x20\xe3" },
305 { 512, "\x8d\x3e\x9e\x1c\xae\xfc\xcc\xb3\xfb\xf8\xd1\x8f\x64\x12\x0b\x32" },
306 { 752, "\x94\x23\x37\xf8\xfd\x76\xf0\xfa\xe8\xc5\x2d\x79\x54\x81\x06\x72" },
307 { 768, "\xb8\x54\x8c\x10\xf5\x16\x67\xf6\xe6\x0e\x18\x2f\xa1\x9b\x30\xf7" },
308 { 1008, "\x02\x11\xc7\xc6\x19\x0c\x9e\xfd\x12\x37\xc3\x4c\x8f\x2e\x06\xc4" },
309 { 1024, "\xbd\xa6\x4f\x65\x27\x6d\x2a\xac\xb8\xf9\x02\x12\x20\x3a\x80\x8e" },
310 { 1520, "\xbd\x38\x20\xf7\x32\xff\xb5\x3e\xc1\x93\xe7\x9d\x33\xe2\x7c\x73" },
311 { 1536, "\xd0\x16\x86\x16\x86\x19\x07\xd4\x82\xe3\x6c\xda\xc8\xcf\x57\x49" },
312 { 2032, "\x97\xb0\xf0\xf2\x24\xb2\xd2\x31\x71\x14\x80\x8f\xb0\x3a\xf7\xa0" },
313 { 2048, "\xe5\x96\x16\xe4\x69\x78\x79\x39\xa0\x63\xce\xea\x9a\xf9\x56\xd1" },
314 { 3056, "\xc4\x7e\x0d\xc1\x66\x09\x19\xc1\x11\x01\x20\x8f\x9e\x69\xaa\x1f" },
315 { 3072, "\x5a\xe4\xf1\x28\x96\xb8\x37\x9a\x2a\xad\x89\xb5\xb5\x53\xd6\xb0" },
316 { 4080, "\x6b\x6b\x09\x8d\x0c\x29\x3b\xc2\x99\x3d\x80\xbf\x05\x18\xb6\xd9" },
317 { 4096, "\x81\x70\xcc\x3c\xcd\x92\xa6\x98\x62\x1b\x93\x9d\xd3\x8f\xe7\xb9" }
318 }
319 },
320 {
321 "\x8b\x37\x64\x19\x10\x83\x32\x22\x77\x2a", 10,
322 {
323 { 0, "\xab\x65\xc2\x6e\xdd\xb2\x87\x60\x0d\xb2\xfd\xa1\x0d\x1e\x60\x5c" },
324 { 16, "\xbb\x75\x90\x10\xc2\x96\x58\xf2\xc7\x2d\x93\xa2\xd1\x6d\x29\x30" },
325 { 240, "\xb9\x01\xe8\x03\x6e\xd1\xc3\x83\xcd\x3c\x4c\x4d\xd0\xa6\xab\x05" },
326 { 256, "\x3d\x25\xce\x49\x22\x92\x4c\x55\xf0\x64\x94\x33\x53\xd7\x8a\x6c" },
327 { 496, "\x12\xc1\xaa\x44\xbb\xf8\x7e\x75\xe6\x11\xf6\x9b\x2c\x38\xf4\x9b" },
328 { 512, "\x28\xf2\xb3\x43\x4b\x65\xc0\x98\x77\x47\x00\x44\xc6\xea\x17\x0d" },
329 { 752, "\xbd\x9e\xf8\x22\xde\x52\x88\x19\x61\x34\xcf\x8a\xf7\x83\x93\x04" },
330 { 768, "\x67\x55\x9c\x23\xf0\x52\x15\x84\x70\xa2\x96\xf7\x25\x73\x5a\x32" },
331 { 1008, "\x8b\xab\x26\xfb\xc2\xc1\x2b\x0f\x13\xe2\xab\x18\x5e\xab\xf2\x41" },
332 { 1024, "\x31\x18\x5a\x6d\x69\x6f\x0c\xfa\x9b\x42\x80\x8b\x38\xe1\x32\xa2" },
333 { 1520, "\x56\x4d\x3d\xae\x18\x3c\x52\x34\xc8\xaf\x1e\x51\x06\x1c\x44\xb5" },
334 { 1536, "\x3c\x07\x78\xa7\xb5\xf7\x2d\x3c\x23\xa3\x13\x5c\x7d\x67\xb9\xf4" },
335 { 2032, "\xf3\x43\x69\x89\x0f\xcf\x16\xfb\x51\x7d\xca\xae\x44\x63\xb2\xdd" },
336 { 2048, "\x02\xf3\x1c\x81\xe8\x20\x07\x31\xb8\x99\xb0\x28\xe7\x91\xbf\xa7" },
337 { 3056, "\x72\xda\x64\x62\x83\x22\x8c\x14\x30\x08\x53\x70\x17\x95\x61\x6f" },
338 { 3072, "\x4e\x0a\x8c\x6f\x79\x34\xa7\x88\xe2\x26\x5e\x81\xd6\xd0\xc8\xf4" },
339 { 4080, "\x43\x8d\xd5\xea\xfe\xa0\x11\x1b\x6f\x36\xb4\xb9\x38\xda\x2a\x68" },
340 { 4096, "\x5f\x6b\xfc\x73\x81\x58\x74\xd9\x71\x00\xf0\x86\x97\x93\x57\xd8" }
341 }
342 },
343 {
344 "\xeb\xb4\x62\x27\xc6\xcc\x8b\x37\x64\x19\x10\x83\x32\x22\x77\x2a", 16,
345 {
346 { 0, "\x72\x0c\x94\xb6\x3e\xdf\x44\xe1\x31\xd9\x50\xca\x21\x1a\x5a\x30" },
347 { 16, "\xc3\x66\xfd\xea\xcf\x9c\xa8\x04\x36\xbe\x7c\x35\x84\x24\xd2\x0b" },
348 { 240, "\xb3\x39\x4a\x40\xaa\xbf\x75\xcb\xa4\x22\x82\xef\x25\xa0\x05\x9f" },
349 { 256, "\x48\x47\xd8\x1d\xa4\x94\x2d\xbc\x24\x9d\xef\xc4\x8c\x92\x2b\x9f" },
350 { 496, "\x08\x12\x8c\x46\x9f\x27\x53\x42\xad\xda\x20\x2b\x2b\x58\xda\x95" },
351 { 512, "\x97\x0d\xac\xef\x40\xad\x98\x72\x3b\xac\x5d\x69\x55\xb8\x17\x61" },
352 { 752, "\x3c\xb8\x99\x93\xb0\x7b\x0c\xed\x93\xde\x13\xd2\xa1\x10\x13\xac" },
353 { 768, "\xef\x2d\x67\x6f\x15\x45\xc2\xc1\x3d\xc6\x80\xa0\x2f\x4a\xdb\xfe" },
354 { 1008, "\xb6\x05\x95\x51\x4f\x24\xbc\x9f\xe5\x22\xa6\xca\xd7\x39\x36\x44" },
355 { 1024, "\xb5\x15\xa8\xc5\x01\x17\x54\xf5\x90\x03\x05\x8b\xdb\x81\x51\x4e" },
356 { 1520, "\x3c\x70\x04\x7e\x8c\xbc\x03\x8e\x3b\x98\x20\xdb\x60\x1d\xa4\x95" },
357 { 1536, "\x11\x75\xda\x6e\xe7\x56\xde\x46\xa5\x3e\x2b\x07\x56\x60\xb7\x70" },
358 { 2032, "\x00\xa5\x42\xbb\xa0\x21\x11\xcc\x2c\x65\xb3\x8e\xbd\xba\x58\x7e" },
359 { 2048, "\x58\x65\xfd\xbb\x5b\x48\x06\x41\x04\xe8\x30\xb3\x80\xf2\xae\xde" },
360 { 3056, "\x34\xb2\x1a\xd2\xad\x44\xe9\x99\xdb\x2d\x7f\x08\x63\xf0\xd9\xb6" },
361 { 3072, "\x84\xa9\x21\x8f\xc3\x6e\x8a\x5f\x2c\xcf\xbe\xae\x53\xa2\x7d\x25" },
362 { 4080, "\xa2\x22\x1a\x11\xb8\x33\xcc\xb4\x98\xa5\x95\x40\xf0\x54\x5f\x4a" },
363 { 4096, "\x5b\xbe\xb4\x78\x7d\x59\xe5\x37\x3f\xdb\xea\x6c\x6f\x75\xc2\x9b" }
364 }
365 },
366 {
367 "\xc1\x09\x16\x39\x08\xeb\xe5\x1d\xeb\xb4\x62\x27\xc6\xcc\x8b\x37\x64\x19\x10\x83\x32\x22\x77\x2a", 24,
368 {
369 { 0, "\x54\xb6\x4e\x6b\x5a\x20\xb5\xe2\xec\x84\x59\x3d\xc7\x98\x9d\xa7" },
370 { 16, "\xc1\x35\xee\xe2\x37\xa8\x54\x65\xff\x97\xdc\x03\x92\x4f\x45\xce" },
371 { 240, "\xcf\xcc\x92\x2f\xb4\xa1\x4a\xb4\x5d\x61\x75\xaa\xbb\xf2\xd2\x01" },
372 { 256, "\x83\x7b\x87\xe2\xa4\x46\xad\x0e\xf7\x98\xac\xd0\x2b\x94\x12\x4f" },
373 { 496, "\x17\xa6\xdb\xd6\x64\x92\x6a\x06\x36\xb3\xf4\xc3\x7a\x4f\x46\x94" },
374 { 512, "\x4a\x5f\x9f\x26\xae\xee\xd4\xd4\xa2\x5f\x63\x2d\x30\x52\x33\xd9" },
375 { 752, "\x80\xa3\xd0\x1e\xf0\x0c\x8e\x9a\x42\x09\xc1\x7f\x4e\xeb\x35\x8c" },
376 { 768, "\xd1\x5e\x7d\x5f\xfa\xaa\xbc\x02\x07\xbf\x20\x0a\x11\x77\x93\xa2" },
377 { 1008, "\x34\x96\x82\xbf\x58\x8e\xaa\x52\xd0\xaa\x15\x60\x34\x6a\xea\xfa" },
378 { 1024, "\xf5\x85\x4c\xdb\x76\xc8\x89\xe3\xad\x63\x35\x4e\x5f\x72\x75\xe3" },
379 { 1520, "\x53\x2c\x7c\xec\xcb\x39\xdf\x32\x36\x31\x84\x05\xa4\xb1\x27\x9c" },
380 { 1536, "\xba\xef\xe6\xd9\xce\xb6\x51\x84\x22\x60\xe0\xd1\xe0\x5e\x3b\x90" },
381 { 2032, "\xe8\x2d\x8c\x6d\xb5\x4e\x3c\x63\x3f\x58\x1c\x95\x2b\xa0\x42\x07" },
382 { 2048, "\x4b\x16\xe5\x0a\xbd\x38\x1b\xd7\x09\x00\xa9\xcd\x9a\x62\xcb\x23" },
383 { 3056, "\x36\x82\xee\x33\xbd\x14\x8b\xd9\xf5\x86\x56\xcd\x8f\x30\xd9\xfb" },
384 { 3072, "\x1e\x5a\x0b\x84\x75\x04\x5d\x9b\x20\xb2\x62\x86\x24\xed\xfd\x9e" },
385 { 4080, "\x63\xed\xd6\x84\xfb\x82\x62\x82\xfe\x52\x8f\x9c\x0e\x92\x37\xbc" },
386 { 4096, "\xe4\xdd\x2e\x98\xd6\x96\x0f\xae\x0b\x43\x54\x54\x56\x74\x33\x91" }
387 }
388 },
389 {
390 "\x1a\xda\x31\xd5\xcf\x68\x82\x21\xc1\x09\x16\x39\x08\xeb\xe5\x1d\xeb\xb4\x62\x27\xc6\xcc\x8b\x37\x64\x19\x10\x83\x32\x22\x77\x2a", 32,
391 {
392 { 0, "\xdd\x5b\xcb\x00\x18\xe9\x22\xd4\x94\x75\x9d\x7c\x39\x5d\x02\xd3" },
393 { 16, "\xc8\x44\x6f\x8f\x77\xab\xf7\x37\x68\x53\x53\xeb\x89\xa1\xc9\xeb" },
394 { 240, "\xaf\x3e\x30\xf9\xc0\x95\x04\x59\x38\x15\x15\x75\xc3\xfb\x90\x98" },
395 { 256, "\xf8\xcb\x62\x74\xdb\x99\xb8\x0b\x1d\x20\x12\xa9\x8e\xd4\x8f\x0e" },
396 { 496, "\x25\xc3\x00\x5a\x1c\xb8\x5d\xe0\x76\x25\x98\x39\xab\x71\x98\xab" },
397 { 512, "\x9d\xcb\xc1\x83\xe8\xcb\x99\x4b\x72\x7b\x75\xbe\x31\x80\x76\x9c" },
398 { 752, "\xa1\xd3\x07\x8d\xfa\x91\x69\x50\x3e\xd9\xd4\x49\x1d\xee\x4e\xb2" },
399 { 768, "\x85\x14\xa5\x49\x58\x58\x09\x6f\x59\x6e\x4b\xcd\x66\xb1\x06\x65" },
400 { 1008, "\x5f\x40\xd5\x9e\xc1\xb0\x3b\x33\x73\x8e\xfa\x60\xb2\x25\x5d\x31" },
401 { 1024, "\x34\x77\xc7\xf7\x64\xa4\x1b\xac\xef\xf9\x0b\xf1\x4f\x92\xb7\xcc" },
402 { 1520, "\xac\x4e\x95\x36\x8d\x99\xb9\xeb\x78\xb8\xda\x8f\x81\xff\xa7\x95" },
403 { 1536, "\x8c\x3c\x13\xf8\xc2\x38\x8b\xb7\x3f\x38\x57\x6e\x65\xb7\xc4\x46" },
404 { 2032, "\x13\xc4\xb9\xc1\xdf\xb6\x65\x79\xed\xdd\x8a\x28\x0b\x9f\x73\x16" },
405 { 2048, "\xdd\xd2\x78\x20\x55\x01\x26\x69\x8e\xfa\xad\xc6\x4b\x64\xf6\x6e" },
406 { 3056, "\xf0\x8f\x2e\x66\xd2\x8e\xd1\x43\xf3\xa2\x37\xcf\x9d\xe7\x35\x59" },
407 { 3072, "\x9e\xa3\x6c\x52\x55\x31\xb8\x80\xba\x12\x43\x34\xf5\x7b\x0b\x70" },
408 { 4080, "\xd5\xa3\x9e\x3d\xfc\xc5\x02\x80\xba\xc4\xa6\xb5\xaa\x0d\xca\x7d" },
409 { 4096, "\x37\x0b\x1c\x1f\xe6\x55\x91\x6d\x97\xfd\x0d\x47\xca\x1d\x72\xb8" }
410 }
411 }
412 }; 106 };
413 107
414 struct rc4_ctx ctx; 108 struct rc4_ctx ctx;
@@ -460,4 +154,3 @@ main()
460 154
461 return 0; 155 return 0;
462} 156}
463
diff --git a/stack2.c b/stack2.c
index b4b8afd..aa5d6ed 100644
--- a/stack2.c
+++ b/stack2.c
@@ -64,7 +64,7 @@ stack_pop(struct stack *stack, T *data)
64 if ( stack->p != 0 ) { 64 if ( stack->p != 0 ) {
65 --stack->p; 65 --stack->p;
66 66
67 if ( data != NULL ) { 67 if ( data ) {
68 *data = stack->array[stack->p]; 68 *data = stack->array[stack->p];
69 } 69 }
70 return true; 70 return true;
diff --git a/tree.c b/tree.c
index fb38c89..e6ee86e 100644
--- a/tree.c
+++ b/tree.c
@@ -45,7 +45,7 @@ tree_insert(struct tree_node *tree, T key)
45{ 45{
46 if ( tree == NULL ) { 46 if ( tree == NULL ) {
47 tree = malloc(sizeof *tree); 47 tree = malloc(sizeof *tree);
48 if ( tree != NULL ) { 48 if ( tree ) {
49 tree->key = key; 49 tree->key = key;
50 tree->count = 1; 50 tree->count = 1;
51 tree->left = NULL; 51 tree->left = NULL;
@@ -71,7 +71,7 @@ tree_insert_it(struct tree_node *tree, T key)
71{ 71{
72 struct tree_node *parent = NULL; 72 struct tree_node *parent = NULL;
73 73
74 for ( struct tree_node *curr = tree; curr != NULL; ) { 74 for ( struct tree_node *curr = tree; curr; ) {
75 parent = curr; 75 parent = curr;
76 76
77 if ( key < curr->key ) { 77 if ( key < curr->key ) {
@@ -89,7 +89,7 @@ tree_insert_it(struct tree_node *tree, T key)
89 struct tree_node *new_node; 89 struct tree_node *new_node;
90 90
91 new_node = malloc(sizeof *new_node); 91 new_node = malloc(sizeof *new_node);
92 if ( new_node != NULL ) { 92 if ( new_node ) {
93 new_node->key = key; 93 new_node->key = key;
94 new_node->count = 1; 94 new_node->count = 1;
95 new_node->left = NULL; 95 new_node->left = NULL;
@@ -121,7 +121,7 @@ tree_detach_min(struct tree_node **ptree)
121 121
122 if ( tree == NULL ) 122 if ( tree == NULL )
123 return NULL; 123 return NULL;
124 else if ( tree->left != NULL ) 124 else if ( tree->left )
125 return tree_detach_min(&tree->left); 125 return tree_detach_min(&tree->left);
126 else { 126 else {
127 *ptree = tree->right; 127 *ptree = tree->right;
@@ -253,7 +253,7 @@ tree_copy(struct tree_node *tree)
253 struct tree_node *new_node; 253 struct tree_node *new_node;
254 254
255 new_node = malloc(sizeof *new_node); 255 new_node = malloc(sizeof *new_node);
256 if ( new_node != NULL ) { 256 if ( new_node ) {
257 new_node->key = tree->key; 257 new_node->key = tree->key;
258 new_node->count = tree->count; 258 new_node->count = tree->count;
259 new_node->left = tree_copy(tree->left); 259 new_node->left = tree_copy(tree->left);
@@ -340,7 +340,7 @@ stack_push(struct stack *stack, struct tree_node *data)
340{ 340{
341 struct stack_item *new_item; 341 struct stack_item *new_item;
342 342
343 if ( (new_item = malloc(sizeof(*new_item))) != NULL ) { 343 if ( (new_item = malloc(sizeof(*new_item))) ) {
344 new_item->data = data; 344 new_item->data = data;
345 new_item->next = stack->head; 345 new_item->next = stack->head;
346 stack->head = new_item; 346 stack->head = new_item;
@@ -354,7 +354,7 @@ stack_push(struct stack *stack, struct tree_node *data)
354static bool 354static bool
355stack_pop(struct stack *stack, struct tree_node **data) 355stack_pop(struct stack *stack, struct tree_node **data)
356{ 356{
357 if ( stack->head != NULL ) { 357 if ( stack->head ) {
358 struct stack_item *next; 358 struct stack_item *next;
359 359
360 next = stack->head->next; 360 next = stack->head->next;
@@ -374,7 +374,7 @@ stack_pop(struct stack *stack, struct tree_node **data)
374static struct tree_node * 374static struct tree_node *
375stack_peek(struct stack *stack) 375stack_peek(struct stack *stack)
376{ 376{
377 return (stack->head != NULL) ? stack->head->data : NULL; 377 return (stack->head) ? stack->head->data : NULL;
378} 378}
379/* -->8-- */ 379/* -->8-- */
380 380
@@ -426,7 +426,7 @@ queue_put(struct queue *queue, struct tree_node *data)
426{ 426{
427 struct queue_item *new_item; 427 struct queue_item *new_item;
428 428
429 if ( (new_item = malloc(sizeof(*new_item))) != NULL ) { 429 if ( (new_item = malloc(sizeof(*new_item))) ) {
430 struct queue_item *tail; 430 struct queue_item *tail;
431 431
432 tail = queue->tail; 432 tail = queue->tail;
@@ -448,7 +448,7 @@ queue_put(struct queue *queue, struct tree_node *data)
448bool 448bool
449queue_get(struct queue *queue, struct tree_node **data) 449queue_get(struct queue *queue, struct tree_node **data)
450{ 450{
451 if ( queue->head != NULL ) { 451 if ( queue->head ) {
452 struct queue_item *next; 452 struct queue_item *next;
453 453
454 next = queue->head->next; 454 next = queue->head->next;
@@ -491,7 +491,7 @@ queue_free(struct queue *queue)
491void 491void
492tree_apply_preorder_it(struct tree_node *tree, void (*visit)(T key, void *cl), void *cl) 492tree_apply_preorder_it(struct tree_node *tree, void (*visit)(T key, void *cl), void *cl)
493{ 493{
494 if ( tree != NULL ) { 494 if ( tree ) {
495 struct stack stack; 495 struct stack stack;
496 496
497 stack_init(&stack); 497 stack_init(&stack);
@@ -501,9 +501,9 @@ tree_apply_preorder_it(struct tree_node *tree, void (*visit)(T key, void *cl), v
501 while ( stack_pop(&stack, &tree) ) { 501 while ( stack_pop(&stack, &tree) ) {
502 visit(tree->key, cl); 502 visit(tree->key, cl);
503 503
504 if ( tree->right != NULL ) 504 if ( tree->right )
505 stack_push(&stack, tree->right); 505 stack_push(&stack, tree->right);
506 if ( tree->left != NULL ) 506 if ( tree->left )
507 stack_push(&stack, tree->left); 507 stack_push(&stack, tree->left);
508 } 508 }
509 509
@@ -516,13 +516,13 @@ tree_apply_preorder_it(struct tree_node *tree, void (*visit)(T key, void *cl), v
516void 516void
517tree_apply_inorder_it(struct tree_node *tree, void (*visit)(T key, void *cl), void *cl) 517tree_apply_inorder_it(struct tree_node *tree, void (*visit)(T key, void *cl), void *cl)
518{ 518{
519 if ( tree != NULL ) { 519 if ( tree ) {
520 struct stack stack; 520 struct stack stack;
521 521
522 stack_init(&stack); 522 stack_init(&stack);
523 523
524 while ( !stack_empty(&stack) || tree != NULL ) { 524 while ( !stack_empty(&stack) || tree ) {
525 if ( tree != NULL ) { 525 if ( tree ) {
526 stack_push(&stack, tree); 526 stack_push(&stack, tree);
527 tree = tree->left; 527 tree = tree->left;
528 } 528 }
@@ -545,7 +545,7 @@ tree_apply_inorder_it(struct tree_node *tree, void (*visit)(T key, void *cl), vo
545void 545void
546tree_apply_postorder_it(struct tree_node *tree, void (*visit)(T key, void *cl), void *cl) 546tree_apply_postorder_it(struct tree_node *tree, void (*visit)(T key, void *cl), void *cl)
547{ 547{
548 if ( tree != NULL ) { 548 if ( tree ) {
549 struct stack stack; 549 struct stack stack;
550 550
551 stack_init(&stack); 551 stack_init(&stack);
@@ -564,10 +564,10 @@ tree_apply_postorder_it(struct tree_node *tree, void (*visit)(T key, void *cl),
564 tree = next; 564 tree = next;
565 } 565 }
566 else { 566 else {
567 if ( next->right != NULL ) { 567 if ( next->right ) {
568 stack_push(&stack, next->right); 568 stack_push(&stack, next->right);
569 } 569 }
570 if ( next->left != NULL ) { 570 if ( next->left ) {
571 stack_push(&stack, next->left); 571 stack_push(&stack, next->left);
572 } 572 }
573 } 573 }
@@ -581,7 +581,7 @@ tree_apply_postorder_it(struct tree_node *tree, void (*visit)(T key, void *cl),
581void 581void
582tree_apply_levelorder_it(struct tree_node *tree, void (*visit)(T key, void *cl), void *cl) 582tree_apply_levelorder_it(struct tree_node *tree, void (*visit)(T key, void *cl), void *cl)
583{ 583{
584 if ( tree != NULL ) { 584 if ( tree ) {
585 struct queue queue; 585 struct queue queue;
586 586
587 queue_init(&queue); 587 queue_init(&queue);
@@ -591,9 +591,9 @@ tree_apply_levelorder_it(struct tree_node *tree, void (*visit)(T key, void *cl),
591 while ( queue_get(&queue, &tree) ) { 591 while ( queue_get(&queue, &tree) ) {
592 visit(tree->key, cl); 592 visit(tree->key, cl);
593 593
594 if ( tree->left != NULL ) 594 if ( tree->left )
595 queue_put(&queue, tree->left); 595 queue_put(&queue, tree->left);
596 if ( tree->right != NULL ) 596 if ( tree->right )
597 queue_put(&queue, tree->right); 597 queue_put(&queue, tree->right);
598 } 598 }
599 599
@@ -661,10 +661,10 @@ tree_preorder_iterator_next(struct tree_iterator *it)
661 struct tree_node *node = NULL; 661 struct tree_node *node = NULL;
662 662
663 if ( stack_pop(&it->stack, &node) ) { 663 if ( stack_pop(&it->stack, &node) ) {
664 if ( node->right != NULL ) { 664 if ( node->right ) {
665 stack_push(&it->stack, node->right); 665 stack_push(&it->stack, node->right);
666 } 666 }
667 if ( node->left != NULL ) { 667 if ( node->left ) {
668 stack_push(&it->stack, node->left); 668 stack_push(&it->stack, node->left);
669 } 669 }
670 } 670 }