The VP3/4/5/6 reference decoders all use three IDCT versions: one for the DC-only case, another for blocks with more than 10 coefficients, and an optimised one for blocks with up to 10 AC coefficents. VP6 relies on the sparse 10 coefficient version, and without it, IDCT drift occurs. Fixes: https://trac.ffmpeg.org/ticket/1282 Signed-off-by: Peter Ross <pross@xvid.org>tags/n4.2
| @@ -252,6 +252,7 @@ static int vp5_parse_coeff(VP56Context *s) | |||
| for (i=coeff_idx; i<=ctx_last; i++) | |||
| s->coeff_ctx[ff_vp56_b6to4[b]][i] = 5; | |||
| s->above_blocks[s->above_block_idx[b]].not_null_dc = s->coeff_ctx[ff_vp56_b6to4[b]][0]; | |||
| s->idct_selector[b] = 63; | |||
| } | |||
| return 0; | |||
| } | |||
| @@ -406,6 +406,24 @@ static void vp56_mc(VP56Context *s, int b, int plane, uint8_t *src, | |||
| } | |||
| } | |||
| static void vp56_idct_put(VP56Context *s, uint8_t * dest, ptrdiff_t stride, int16_t *block, int selector) | |||
| { | |||
| if (selector > 10 || selector == 1) | |||
| s->vp3dsp.idct_put(dest, stride, block); | |||
| else | |||
| ff_vp3dsp_idct10_put(dest, stride, block); | |||
| } | |||
| static void vp56_idct_add(VP56Context *s, uint8_t * dest, ptrdiff_t stride, int16_t *block, int selector) | |||
| { | |||
| if (selector > 10) | |||
| s->vp3dsp.idct_add(dest, stride, block); | |||
| else if (selector > 1) | |||
| ff_vp3dsp_idct10_add(dest, stride, block); | |||
| else | |||
| s->vp3dsp.idct_dc_add(dest, stride, block); | |||
| } | |||
| static av_always_inline void vp56_render_mb(VP56Context *s, int row, int col, int is_alpha, VP56mb mb_type) | |||
| { | |||
| int b, ab, b_max, plane, off; | |||
| @@ -426,8 +444,8 @@ static av_always_inline void vp56_render_mb(VP56Context *s, int row, int col, in | |||
| case VP56_MB_INTRA: | |||
| for (b=0; b<b_max; b++) { | |||
| plane = ff_vp56_b2p[b+ab]; | |||
| s->vp3dsp.idct_put(frame_current->data[plane] + s->block_offset[b], | |||
| s->stride[plane], s->block_coeff[b]); | |||
| vp56_idct_put(s, frame_current->data[plane] + s->block_offset[b], | |||
| s->stride[plane], s->block_coeff[b], s->idct_selector[b]); | |||
| } | |||
| break; | |||
| @@ -439,8 +457,8 @@ static av_always_inline void vp56_render_mb(VP56Context *s, int row, int col, in | |||
| s->hdsp.put_pixels_tab[1][0](frame_current->data[plane] + off, | |||
| frame_ref->data[plane] + off, | |||
| s->stride[plane], 8); | |||
| s->vp3dsp.idct_add(frame_current->data[plane] + off, | |||
| s->stride[plane], s->block_coeff[b]); | |||
| vp56_idct_add(s, frame_current->data[plane] + off, | |||
| s->stride[plane], s->block_coeff[b], s->idct_selector[b]); | |||
| } | |||
| break; | |||
| @@ -457,8 +475,8 @@ static av_always_inline void vp56_render_mb(VP56Context *s, int row, int col, in | |||
| plane = ff_vp56_b2p[b+ab]; | |||
| vp56_mc(s, b, plane, frame_ref->data[plane], s->stride[plane], | |||
| 16*col+x_off, 16*row+y_off); | |||
| s->vp3dsp.idct_add(frame_current->data[plane] + s->block_offset[b], | |||
| s->stride[plane], s->block_coeff[b]); | |||
| vp56_idct_add(s, frame_current->data[plane] + s->block_offset[b], | |||
| s->stride[plane], s->block_coeff[b], s->idct_selector[b]); | |||
| } | |||
| break; | |||
| } | |||
| @@ -105,6 +105,7 @@ typedef struct VP56Macroblock { | |||
| typedef struct VP56Model { | |||
| uint8_t coeff_reorder[64]; /* used in vp6 only */ | |||
| uint8_t coeff_index_to_pos[64]; /* used in vp6 only */ | |||
| uint8_t coeff_index_to_idct_selector[64]; /* used in vp6 only */ | |||
| uint8_t vector_sig[2]; /* delta sign */ | |||
| uint8_t vector_dct[2]; /* delta coding types */ | |||
| uint8_t vector_pdi[2][2]; /* predefined delta init */ | |||
| @@ -157,6 +158,7 @@ struct vp56_context { | |||
| VP56mb mb_type; | |||
| VP56Macroblock *macroblocks; | |||
| DECLARE_ALIGNED(16, int16_t, block_coeff)[6][64]; | |||
| int idct_selector[6]; | |||
| /* motion vectors */ | |||
| VP56mv mv[6]; /* vectors for each block in MB */ | |||
| @@ -194,6 +194,18 @@ static void vp6_coeff_order_table_init(VP56Context *s) | |||
| for (pos=1; pos<64; pos++) | |||
| if (s->modelp->coeff_reorder[pos] == i) | |||
| s->modelp->coeff_index_to_pos[idx++] = pos; | |||
| for (idx = 0; idx < 64; idx++) { | |||
| int max = 0; | |||
| for (i = 0; i <= idx; i++) { | |||
| int v = s->modelp->coeff_index_to_pos[i]; | |||
| if (v > max) | |||
| max = v; | |||
| } | |||
| if (s->sub_version > 6) | |||
| max++; | |||
| s->modelp->coeff_index_to_idct_selector[idx] = max; | |||
| } | |||
| } | |||
| static void vp6_default_models_init(VP56Context *s) | |||
| @@ -446,6 +458,7 @@ static int vp6_parse_coeff_huffman(VP56Context *s) | |||
| cg = FFMIN(vp6_coeff_groups[coeff_idx], 3); | |||
| vlc_coeff = &s->ract_vlc[pt][ct][cg]; | |||
| } | |||
| s->idct_selector[b] = model->coeff_index_to_idct_selector[FFMIN(coeff_idx, 63)]; | |||
| } | |||
| return 0; | |||
| } | |||
| @@ -527,6 +540,7 @@ static int vp6_parse_coeff(VP56Context *s) | |||
| s->left_block[ff_vp56_b6to4[b]].not_null_dc = | |||
| s->above_blocks[s->above_block_idx[b]].not_null_dc = !!s->block_coeff[b][0]; | |||
| s->idct_selector[b] = model->coeff_index_to_idct_selector[FFMIN(coeff_idx, 63)]; | |||
| } | |||
| return 0; | |||
| } | |||
| @@ -4,95 +4,95 @@ | |||
| #dimensions 0: 300x180 | |||
| #sar 0: 0/1 | |||
| 0, 0, 0, 1, 135000, 0x9dceed6d | |||
| 0, 1, 1, 1, 135000, 0x47e5778d | |||
| 0, 2, 2, 1, 135000, 0x5de36599 | |||
| 0, 3, 3, 1, 135000, 0x540d8079 | |||
| 0, 4, 4, 1, 135000, 0xba9ea534 | |||
| 0, 5, 5, 1, 135000, 0xa75088f8 | |||
| 0, 6, 6, 1, 135000, 0x7d867559 | |||
| 0, 7, 7, 1, 135000, 0xcc678fee | |||
| 0, 8, 8, 1, 135000, 0x79c590b9 | |||
| 0, 9, 9, 1, 135000, 0x87789918 | |||
| 0, 10, 10, 1, 135000, 0xaa939213 | |||
| 0, 11, 11, 1, 135000, 0x3912916d | |||
| 0, 12, 12, 1, 135000, 0x41305d0b | |||
| 0, 13, 13, 1, 135000, 0x2686b5dd | |||
| 0, 14, 14, 1, 135000, 0xa69ae422 | |||
| 0, 15, 15, 1, 135000, 0x998a3478 | |||
| 0, 16, 16, 1, 135000, 0x5842768d | |||
| 0, 17, 17, 1, 135000, 0xf6a85b16 | |||
| 0, 18, 18, 1, 135000, 0x7a5b2708 | |||
| 0, 19, 19, 1, 135000, 0x8b2abb63 | |||
| 0, 20, 20, 1, 135000, 0x7dc8468b | |||
| 0, 21, 21, 1, 135000, 0x04d85001 | |||
| 0, 22, 22, 1, 135000, 0x83e3c647 | |||
| 0, 23, 23, 1, 135000, 0xcddd687e | |||
| 0, 24, 24, 1, 135000, 0x818e785e | |||
| 0, 25, 25, 1, 135000, 0x3a915080 | |||
| 0, 26, 26, 1, 135000, 0x953d603d | |||
| 0, 27, 27, 1, 135000, 0x79005ebf | |||
| 0, 28, 28, 1, 135000, 0x80afec75 | |||
| 0, 29, 29, 1, 135000, 0xfc8e376b | |||
| 0, 30, 30, 1, 135000, 0xf957b7ef | |||
| 0, 31, 31, 1, 135000, 0xe878da44 | |||
| 0, 32, 32, 1, 135000, 0xe68ecca3 | |||
| 0, 33, 33, 1, 135000, 0x1a2cc7d3 | |||
| 0, 34, 34, 1, 135000, 0x4f346a69 | |||
| 0, 35, 35, 1, 135000, 0x7a0cf4ac | |||
| 0, 36, 36, 1, 135000, 0x6d4eee7a | |||
| 0, 37, 37, 1, 135000, 0xf0688cbd | |||
| 0, 38, 38, 1, 135000, 0xca4abbbc | |||
| 0, 39, 39, 1, 135000, 0x87669519 | |||
| 0, 40, 40, 1, 135000, 0xd090e9d7 | |||
| 0, 41, 41, 1, 135000, 0xd7f536c1 | |||
| 0, 42, 42, 1, 135000, 0x353ede54 | |||
| 0, 43, 43, 1, 135000, 0xbc8f5358 | |||
| 0, 44, 44, 1, 135000, 0xb52cd59a | |||
| 0, 45, 45, 1, 135000, 0x0b882eba | |||
| 0, 46, 46, 1, 135000, 0xc544cd54 | |||
| 0, 47, 47, 1, 135000, 0x31ca7e73 | |||
| 0, 1, 1, 1, 135000, 0x1fc377a4 | |||
| 0, 2, 2, 1, 135000, 0x0b4465d4 | |||
| 0, 3, 3, 1, 135000, 0x136b8062 | |||
| 0, 4, 4, 1, 135000, 0x4691a55c | |||
| 0, 5, 5, 1, 135000, 0x55bb8a19 | |||
| 0, 6, 6, 1, 135000, 0xdbf67651 | |||
| 0, 7, 7, 1, 135000, 0x6fb19113 | |||
| 0, 8, 8, 1, 135000, 0x3edc9227 | |||
| 0, 9, 9, 1, 135000, 0x53b39aff | |||
| 0, 10, 10, 1, 135000, 0x699e94b0 | |||
| 0, 11, 11, 1, 135000, 0xeedd9388 | |||
| 0, 12, 12, 1, 135000, 0x14055f96 | |||
| 0, 13, 13, 1, 135000, 0x71fbb5fd | |||
| 0, 14, 14, 1, 135000, 0x6fb4e491 | |||
| 0, 15, 15, 1, 135000, 0x35ca3482 | |||
| 0, 16, 16, 1, 135000, 0x0c2a7530 | |||
| 0, 17, 17, 1, 135000, 0x422c5581 | |||
| 0, 18, 18, 1, 135000, 0x19eb2155 | |||
| 0, 19, 19, 1, 135000, 0x07e1b114 | |||
| 0, 20, 20, 1, 135000, 0xa10f3f81 | |||
| 0, 21, 21, 1, 135000, 0x75684dcd | |||
| 0, 22, 22, 1, 135000, 0x1721c337 | |||
| 0, 23, 23, 1, 135000, 0x3897667d | |||
| 0, 24, 24, 1, 135000, 0x1232769e | |||
| 0, 25, 25, 1, 135000, 0xec975059 | |||
| 0, 26, 26, 1, 135000, 0xb2a46123 | |||
| 0, 27, 27, 1, 135000, 0x052c5f72 | |||
| 0, 28, 28, 1, 135000, 0x3087eb2f | |||
| 0, 29, 29, 1, 135000, 0xd1e0373a | |||
| 0, 30, 30, 1, 135000, 0x64dab704 | |||
| 0, 31, 31, 1, 135000, 0xa44dd89e | |||
| 0, 32, 32, 1, 135000, 0x380ecae9 | |||
| 0, 33, 33, 1, 135000, 0x8c6fc4ab | |||
| 0, 34, 34, 1, 135000, 0x02096903 | |||
| 0, 35, 35, 1, 135000, 0x11edf432 | |||
| 0, 36, 36, 1, 135000, 0x3585ee5f | |||
| 0, 37, 37, 1, 135000, 0xe1338c40 | |||
| 0, 38, 38, 1, 135000, 0x5edfbd0c | |||
| 0, 39, 39, 1, 135000, 0x9420965c | |||
| 0, 40, 40, 1, 135000, 0x0caceb17 | |||
| 0, 41, 41, 1, 135000, 0x3fdc36c3 | |||
| 0, 42, 42, 1, 135000, 0x8a24df14 | |||
| 0, 43, 43, 1, 135000, 0x5dc057b0 | |||
| 0, 44, 44, 1, 135000, 0xdc5eda65 | |||
| 0, 45, 45, 1, 135000, 0x60433612 | |||
| 0, 46, 46, 1, 135000, 0x6a91d6c9 | |||
| 0, 47, 47, 1, 135000, 0x53598734 | |||
| 0, 48, 48, 1, 135000, 0xb1569ce9 | |||
| 0, 49, 49, 1, 135000, 0x8bf4394f | |||
| 0, 50, 50, 1, 135000, 0xf413812a | |||
| 0, 51, 51, 1, 135000, 0xf2fa90ab | |||
| 0, 52, 52, 1, 135000, 0xdcd8b265 | |||
| 0, 53, 53, 1, 135000, 0xa89cdba1 | |||
| 0, 54, 54, 1, 135000, 0x212b59a5 | |||
| 0, 55, 55, 1, 135000, 0x10c589c3 | |||
| 0, 56, 56, 1, 135000, 0x432ab5b4 | |||
| 0, 49, 49, 1, 135000, 0xf5e83a33 | |||
| 0, 50, 50, 1, 135000, 0xebe18275 | |||
| 0, 51, 51, 1, 135000, 0x98af9447 | |||
| 0, 52, 52, 1, 135000, 0x3f03b765 | |||
| 0, 53, 53, 1, 135000, 0x7423e0b8 | |||
| 0, 54, 54, 1, 135000, 0x6c1b5faa | |||
| 0, 55, 55, 1, 135000, 0xebf98d52 | |||
| 0, 56, 56, 1, 135000, 0xf3dfb8b6 | |||
| 0, 57, 57, 1, 135000, 0x85a9634a | |||
| 0, 58, 58, 1, 135000, 0x10db5b87 | |||
| 0, 59, 59, 1, 135000, 0x583145d9 | |||
| 0, 60, 60, 1, 135000, 0x7d3a33bd | |||
| 0, 61, 61, 1, 135000, 0xcf592423 | |||
| 0, 62, 62, 1, 135000, 0xb59728e5 | |||
| 0, 63, 63, 1, 135000, 0x1eeca660 | |||
| 0, 64, 64, 1, 135000, 0xff7bcc34 | |||
| 0, 65, 65, 1, 135000, 0x0ef8f271 | |||
| 0, 66, 66, 1, 135000, 0x8c9ca8ee | |||
| 0, 67, 67, 1, 135000, 0x8a7ece34 | |||
| 0, 68, 68, 1, 135000, 0x7d4c3b5d | |||
| 0, 69, 69, 1, 135000, 0x99118f21 | |||
| 0, 70, 70, 1, 135000, 0xd97fe7e2 | |||
| 0, 71, 71, 1, 135000, 0xf93842f1 | |||
| 0, 72, 72, 1, 135000, 0x35c912e8 | |||
| 0, 73, 73, 1, 135000, 0x14e59e97 | |||
| 0, 58, 58, 1, 135000, 0x4d425bb5 | |||
| 0, 59, 59, 1, 135000, 0xfb7945ee | |||
| 0, 60, 60, 1, 135000, 0x593534c1 | |||
| 0, 61, 61, 1, 135000, 0xe3fa2517 | |||
| 0, 62, 62, 1, 135000, 0x893629e3 | |||
| 0, 63, 63, 1, 135000, 0xdc3ca6ad | |||
| 0, 64, 64, 1, 135000, 0x16b1ce27 | |||
| 0, 65, 65, 1, 135000, 0x8296f478 | |||
| 0, 66, 66, 1, 135000, 0x9e9baaa3 | |||
| 0, 67, 67, 1, 135000, 0x994ecd4a | |||
| 0, 68, 68, 1, 135000, 0x40f83b3c | |||
| 0, 69, 69, 1, 135000, 0x0de38f90 | |||
| 0, 70, 70, 1, 135000, 0x5455ea6c | |||
| 0, 71, 71, 1, 135000, 0x053e41e8 | |||
| 0, 72, 72, 1, 135000, 0x0fee1281 | |||
| 0, 73, 73, 1, 135000, 0xa0c9a434 | |||
| 0, 74, 74, 1, 135000, 0x8e4c19aa | |||
| 0, 75, 75, 1, 135000, 0x4adfbc53 | |||
| 0, 76, 76, 1, 135000, 0x0613adde | |||
| 0, 77, 77, 1, 135000, 0x8db264ab | |||
| 0, 78, 78, 1, 135000, 0x3948b619 | |||
| 0, 79, 79, 1, 135000, 0x843d7c02 | |||
| 0, 80, 80, 1, 135000, 0x534fea34 | |||
| 0, 75, 75, 1, 135000, 0x34bebc00 | |||
| 0, 76, 76, 1, 135000, 0x6670ad6f | |||
| 0, 77, 77, 1, 135000, 0xdbba63fc | |||
| 0, 78, 78, 1, 135000, 0xe34fb839 | |||
| 0, 79, 79, 1, 135000, 0xa3ce7eb1 | |||
| 0, 80, 80, 1, 135000, 0xdec7ed7d | |||
| 0, 81, 81, 1, 135000, 0xdb7041bf | |||
| 0, 82, 82, 1, 135000, 0xd0ce1cce | |||
| 0, 83, 83, 1, 135000, 0x3c008335 | |||
| 0, 84, 84, 1, 135000, 0xb699208f | |||
| 0, 85, 85, 1, 135000, 0xe07da3ca | |||
| 0, 86, 86, 1, 135000, 0x26331f41 | |||
| 0, 87, 87, 1, 135000, 0x4e19fe83 | |||
| 0, 88, 88, 1, 135000, 0xaa9a9e45 | |||
| 0, 89, 89, 1, 135000, 0x336b7ed0 | |||
| 0, 90, 90, 1, 135000, 0xc9bf7611 | |||
| 0, 82, 82, 1, 135000, 0x2b1d1dc1 | |||
| 0, 83, 83, 1, 135000, 0xaaa384c1 | |||
| 0, 84, 84, 1, 135000, 0x37f42217 | |||
| 0, 85, 85, 1, 135000, 0x928ba4da | |||
| 0, 86, 86, 1, 135000, 0x2b681f41 | |||
| 0, 87, 87, 1, 135000, 0xcbe1ff84 | |||
| 0, 88, 88, 1, 135000, 0x47949f24 | |||
| 0, 89, 89, 1, 135000, 0x368b7fe5 | |||
| 0, 90, 90, 1, 135000, 0x1cf4773b | |||
| 0, 91, 91, 1, 135000, 0x14c33a35 | |||
| 0, 92, 92, 1, 135000, 0xdc08470e | |||
| @@ -4,95 +4,95 @@ | |||
| #dimensions 0: 300x180 | |||
| #sar 0: 0/1 | |||
| 0, 0, 0, 1, 81000, 0xcb92962d | |||
| 0, 1, 1, 1, 81000, 0xae381904 | |||
| 0, 2, 2, 1, 81000, 0x1fcc0c75 | |||
| 0, 3, 3, 1, 81000, 0x023f0c21 | |||
| 0, 4, 4, 1, 81000, 0xad691402 | |||
| 0, 5, 5, 1, 81000, 0x42390be0 | |||
| 0, 6, 6, 1, 81000, 0xc1c10a4e | |||
| 0, 7, 7, 1, 81000, 0x9c0315ac | |||
| 0, 8, 8, 1, 81000, 0xc2a315a7 | |||
| 0, 9, 9, 1, 81000, 0x3a631392 | |||
| 0, 10, 10, 1, 81000, 0x11591414 | |||
| 0, 11, 11, 1, 81000, 0x1a551125 | |||
| 0, 12, 12, 1, 81000, 0x2e1efa4f | |||
| 0, 13, 13, 1, 81000, 0x4aa3f016 | |||
| 0, 14, 14, 1, 81000, 0x74c029d8 | |||
| 0, 15, 15, 1, 81000, 0xdee9a98b | |||
| 0, 16, 16, 1, 81000, 0xdf3502d5 | |||
| 0, 17, 17, 1, 81000, 0x4653536b | |||
| 0, 18, 18, 1, 81000, 0x7f658c75 | |||
| 0, 19, 19, 1, 81000, 0xab18ff13 | |||
| 0, 20, 20, 1, 81000, 0xac2b8f3b | |||
| 0, 21, 21, 1, 81000, 0xd61ff094 | |||
| 0, 22, 22, 1, 81000, 0x425bfc2b | |||
| 0, 23, 23, 1, 81000, 0x6be7ecd3 | |||
| 0, 24, 24, 1, 81000, 0x0b0ee65b | |||
| 0, 25, 25, 1, 81000, 0x3c6f146b | |||
| 0, 26, 26, 1, 81000, 0x27c4e9c8 | |||
| 0, 27, 27, 1, 81000, 0x174022c4 | |||
| 0, 28, 28, 1, 81000, 0x3320fe81 | |||
| 0, 29, 29, 1, 81000, 0x7a3c342e | |||
| 0, 30, 30, 1, 81000, 0x448b4346 | |||
| 0, 31, 31, 1, 81000, 0xd285b23d | |||
| 0, 32, 32, 1, 81000, 0x852ed590 | |||
| 0, 33, 33, 1, 81000, 0xc9d3df17 | |||
| 0, 34, 34, 1, 81000, 0x4d23727b | |||
| 0, 35, 35, 1, 81000, 0x1fae66cd | |||
| 0, 36, 36, 1, 81000, 0x384d54ab | |||
| 0, 37, 37, 1, 81000, 0x2fee6ba3 | |||
| 0, 38, 38, 1, 81000, 0xd7ad6f59 | |||
| 0, 39, 39, 1, 81000, 0xaf5e3e76 | |||
| 0, 40, 40, 1, 81000, 0x10fceda4 | |||
| 0, 41, 41, 1, 81000, 0xb26df92b | |||
| 0, 42, 42, 1, 81000, 0xd6676e08 | |||
| 0, 43, 43, 1, 81000, 0xff6b1b95 | |||
| 0, 44, 44, 1, 81000, 0x6196d598 | |||
| 0, 45, 45, 1, 81000, 0x833ebf1b | |||
| 0, 46, 46, 1, 81000, 0x7b085af1 | |||
| 0, 47, 47, 1, 81000, 0xe8f583b4 | |||
| 0, 1, 1, 1, 81000, 0x8fef1925 | |||
| 0, 2, 2, 1, 81000, 0xf0350cb6 | |||
| 0, 3, 3, 1, 81000, 0xa70a0c52 | |||
| 0, 4, 4, 1, 81000, 0x21ef1490 | |||
| 0, 5, 5, 1, 81000, 0x98bc0c96 | |||
| 0, 6, 6, 1, 81000, 0x92380b27 | |||
| 0, 7, 7, 1, 81000, 0xbba216cd | |||
| 0, 8, 8, 1, 81000, 0x92a8172b | |||
| 0, 9, 9, 1, 81000, 0xfbc21592 | |||
| 0, 10, 10, 1, 81000, 0xdad416a1 | |||
| 0, 11, 11, 1, 81000, 0xec4d13aa | |||
| 0, 12, 12, 1, 81000, 0xaf36fcff | |||
| 0, 13, 13, 1, 81000, 0xb4fcf056 | |||
| 0, 14, 14, 1, 81000, 0xe3782a3f | |||
| 0, 15, 15, 1, 81000, 0x714daa0b | |||
| 0, 16, 16, 1, 81000, 0xe2770382 | |||
| 0, 17, 17, 1, 81000, 0x553253ff | |||
| 0, 18, 18, 1, 81000, 0x928d8c46 | |||
| 0, 19, 19, 1, 81000, 0x06c8fe82 | |||
| 0, 20, 20, 1, 81000, 0xb8198f5a | |||
| 0, 21, 21, 1, 81000, 0x0029f118 | |||
| 0, 22, 22, 1, 81000, 0x6fe7fc6f | |||
| 0, 23, 23, 1, 81000, 0x9165edde | |||
| 0, 24, 24, 1, 81000, 0xe76ae791 | |||
| 0, 25, 25, 1, 81000, 0xa4dd145a | |||
| 0, 26, 26, 1, 81000, 0x2d7de9d8 | |||
| 0, 27, 27, 1, 81000, 0xe102228b | |||
| 0, 28, 28, 1, 81000, 0xc57ffe0e | |||
| 0, 29, 29, 1, 81000, 0x324434cb | |||
| 0, 30, 30, 1, 81000, 0xedc0433e | |||
| 0, 31, 31, 1, 81000, 0xd42bb18a | |||
| 0, 32, 32, 1, 81000, 0xedb3d561 | |||
| 0, 33, 33, 1, 81000, 0x5244de92 | |||
| 0, 34, 34, 1, 81000, 0x0bb27280 | |||
| 0, 35, 35, 1, 81000, 0xc6116736 | |||
| 0, 36, 36, 1, 81000, 0x42f154e2 | |||
| 0, 37, 37, 1, 81000, 0xffbd6bf9 | |||
| 0, 38, 38, 1, 81000, 0x813170d0 | |||
| 0, 39, 39, 1, 81000, 0x430c4040 | |||
| 0, 40, 40, 1, 81000, 0x56d1eecb | |||
| 0, 41, 41, 1, 81000, 0xaa4afa12 | |||
| 0, 42, 42, 1, 81000, 0x2c3d6fb8 | |||
| 0, 43, 43, 1, 81000, 0xfedf1e3e | |||
| 0, 44, 44, 1, 81000, 0xf538d893 | |||
| 0, 45, 45, 1, 81000, 0xcc81c3b5 | |||
| 0, 46, 46, 1, 81000, 0x59b95fbc | |||
| 0, 47, 47, 1, 81000, 0xb4da87a0 | |||
| 0, 48, 48, 1, 81000, 0x3426d5e4 | |||
| 0, 49, 49, 1, 81000, 0x214069ed | |||
| 0, 50, 50, 1, 81000, 0x7dbdfd3f | |||
| 0, 51, 51, 1, 81000, 0xf19b3f45 | |||
| 0, 52, 52, 1, 81000, 0x0f05c7e2 | |||
| 0, 53, 53, 1, 81000, 0xba94e323 | |||
| 0, 54, 54, 1, 81000, 0x0de7b0c2 | |||
| 0, 55, 55, 1, 81000, 0xfcf93c55 | |||
| 0, 56, 56, 1, 81000, 0x8a8dbd55 | |||
| 0, 49, 49, 1, 81000, 0x8d066aae | |||
| 0, 50, 50, 1, 81000, 0x09effe79 | |||
| 0, 51, 51, 1, 81000, 0xecc540ae | |||
| 0, 52, 52, 1, 81000, 0x845dc90c | |||
| 0, 53, 53, 1, 81000, 0x9c2fe4d2 | |||
| 0, 54, 54, 1, 81000, 0x8887b277 | |||
| 0, 55, 55, 1, 81000, 0x3bdc3ca9 | |||
| 0, 56, 56, 1, 81000, 0x094fbe27 | |||
| 0, 57, 57, 1, 81000, 0xddf22b97 | |||
| 0, 58, 58, 1, 81000, 0x49a830ff | |||
| 0, 59, 59, 1, 81000, 0x82ab2a4b | |||
| 0, 60, 60, 1, 81000, 0xd23420e5 | |||
| 0, 61, 61, 1, 81000, 0x7c1017d1 | |||
| 0, 62, 62, 1, 81000, 0x9aa61b38 | |||
| 0, 63, 63, 1, 81000, 0x2a724a18 | |||
| 0, 64, 64, 1, 81000, 0xc18055f2 | |||
| 0, 65, 65, 1, 81000, 0xecba3855 | |||
| 0, 66, 66, 1, 81000, 0x0eed6b0f | |||
| 0, 67, 67, 1, 81000, 0x4be73816 | |||
| 0, 68, 68, 1, 81000, 0xa681214e | |||
| 0, 69, 69, 1, 81000, 0x4958f83d | |||
| 0, 70, 70, 1, 81000, 0xca0f0d61 | |||
| 0, 71, 71, 1, 81000, 0x3c453de1 | |||
| 0, 72, 72, 1, 81000, 0xff60360a | |||
| 0, 73, 73, 1, 81000, 0xdcef0949 | |||
| 0, 58, 58, 1, 81000, 0x31b23156 | |||
| 0, 59, 59, 1, 81000, 0xf5bf2ad8 | |||
| 0, 60, 60, 1, 81000, 0x4a9321c4 | |||
| 0, 61, 61, 1, 81000, 0xdd1b18ca | |||
| 0, 62, 62, 1, 81000, 0x4ece1cdd | |||
| 0, 63, 63, 1, 81000, 0x6a9a4b53 | |||
| 0, 64, 64, 1, 81000, 0x6624578b | |||
| 0, 65, 65, 1, 81000, 0x89273a0f | |||
| 0, 66, 66, 1, 81000, 0x9eb56c4c | |||
| 0, 67, 67, 1, 81000, 0xe60238f5 | |||
| 0, 68, 68, 1, 81000, 0xbc4c228a | |||
| 0, 69, 69, 1, 81000, 0x3feefa08 | |||
| 0, 70, 70, 1, 81000, 0x0d620f37 | |||
| 0, 71, 71, 1, 81000, 0x93693fc8 | |||
| 0, 72, 72, 1, 81000, 0xfc4b3848 | |||
| 0, 73, 73, 1, 81000, 0xd9950bfb | |||
| 0, 74, 74, 1, 81000, 0xe5e3732d | |||
| 0, 75, 75, 1, 81000, 0x39747fd4 | |||
| 0, 76, 76, 1, 81000, 0x6bec70e6 | |||
| 0, 77, 77, 1, 81000, 0x7026a8c0 | |||
| 0, 78, 78, 1, 81000, 0x92de5b61 | |||
| 0, 79, 79, 1, 81000, 0x3f00507f | |||
| 0, 80, 80, 1, 81000, 0x5620c377 | |||
| 0, 75, 75, 1, 81000, 0x53517fd2 | |||
| 0, 76, 76, 1, 81000, 0xb57c70b0 | |||
| 0, 77, 77, 1, 81000, 0x378ea87c | |||
| 0, 78, 78, 1, 81000, 0xfd2b5b58 | |||
| 0, 79, 79, 1, 81000, 0x66d45077 | |||
| 0, 80, 80, 1, 81000, 0x6e07c3f8 | |||
| 0, 81, 81, 1, 81000, 0x39f5ed38 | |||
| 0, 82, 82, 1, 81000, 0x6ee35d67 | |||
| 0, 83, 83, 1, 81000, 0x4f99a409 | |||
| 0, 84, 84, 1, 81000, 0x0a05b6ea | |||
| 0, 85, 85, 1, 81000, 0xd6c442d9 | |||
| 0, 86, 86, 1, 81000, 0x0bb3d2f0 | |||
| 0, 87, 87, 1, 81000, 0x6891c5b1 | |||
| 0, 88, 88, 1, 81000, 0xf16ba9be | |||
| 0, 89, 89, 1, 81000, 0xba53528e | |||
| 0, 90, 90, 1, 81000, 0xc847de49 | |||
| 0, 82, 82, 1, 81000, 0x55b05da7 | |||
| 0, 83, 83, 1, 81000, 0x7f78a42c | |||
| 0, 84, 84, 1, 81000, 0x5139b79c | |||
| 0, 85, 85, 1, 81000, 0x4054437d | |||
| 0, 86, 86, 1, 81000, 0x0f9dd327 | |||
| 0, 87, 87, 1, 81000, 0xa885c60e | |||
| 0, 88, 88, 1, 81000, 0x37abaa72 | |||
| 0, 89, 89, 1, 81000, 0xdab25345 | |||
| 0, 90, 90, 1, 81000, 0xbdf4df9d | |||
| 0, 91, 91, 1, 81000, 0xc5b2e2b0 | |||
| 0, 92, 92, 1, 81000, 0xb0b497ff | |||