29 #define UNCHECKED_BITSTREAM_READER 1 
   30 #define INT_BIT (CHAR_BIT * sizeof(int)) 
   54     { 20, -15 }, {  2, 54 },  {  3,  74 }, { 20, -15 },
 
   55     {  2,  54 }, {  3, 74 },  { -28,127 }, { -23, 104 },
 
   56     { -6,  53 }, { -1, 54 },  {  7,  51 },
 
   59     { 0, 0 },    { 0, 0 },    { 0, 0 },      { 0, 0 },
 
   60     { 0, 0 },    { 0, 0 },    { 0, 0 },      { 0, 0 },
 
   61     { 0, 0 },    { 0, 0 },    { 0, 0 },      { 0, 0 },
 
   65     { 0, 0 },    { 0, 0 },    { 0, 0 },      { 0, 0 },
 
   66     { 0, 0 },    { 0, 0 },    { 0, 0 },      { 0, 0 },
 
   67     { 0, 0 },    { 0, 0 },    { 0, 0 },      { 0, 0 },
 
   68     { 0, 0 },    { 0, 0 },    { 0, 0 },      { 0, 0 },
 
   71     { 0, 0 },    { 0, 0 },    { 0, 0 },      { 0, 0 },
 
   72     { 0, 0 },    { 0, 0 },    { 0, 0 },      { 0, 0 },
 
   73     { 0, 0 },    { 0, 0 },    { 0, 0 },      { 0, 0 },
 
   77     { 0, 0 },    { 0, 0 },    { 0, 0 },      { 0, 0 },
 
   81     { 0, 41 },   { 0, 63 },   { 0, 63 },     { 0, 63 },
 
   82     { -9, 83 },  { 4, 86 },   { 0, 97 },     { -7, 72 },
 
   83     { 13, 41 },  { 3, 62 },
 
   86     { 0, 11 },   { 1, 55 },   { 0, 69 },     { -17, 127 },
 
   87     { -13, 102 },{ 0, 82 },   { -7, 74 },    { -21, 107 },
 
   88     { -27, 127 },{ -31, 127 },{ -24, 127 },  { -18, 95 },
 
   89     { -27, 127 },{ -21, 114 },{ -30, 127 },  { -17, 123 },
 
   90     { -12, 115 },{ -16, 122 },
 
   93     { -11, 115 },{ -12, 63 }, { -2, 68 },    { -15, 84 },
 
   94     { -13, 104 },{ -3, 70 },  { -8, 93 },    { -10, 90 },
 
   95     { -30, 127 },{ -1, 74 },  { -6, 97 },    { -7, 91 },
 
   96     { -20, 127 },{ -4, 56 },  { -5, 82 },    { -7, 76 },
 
  100     { -7, 93 },  { -11, 87 }, { -3, 77 },    { -5, 71 },
 
  101     { -4, 63 },  { -4, 68 },  { -12, 84 },   { -7, 62 },
 
  102     { -7, 65 },  { 8, 61 },   { 5, 56 },     { -2, 66 },
 
  103     { 1, 64 },   { 0, 61 },   { -2, 78 },    { 1, 50 },
 
  104     { 7, 52 },   { 10, 35 },  { 0, 44 },     { 11, 38 },
 
  105     { 1, 45 },   { 0, 46 },   { 5, 44 },     { 31, 17 },
 
  106     { 1, 51 },   { 7, 50 },   { 28, 19 },    { 16, 33 },
 
  107     { 14, 62 },  { -13, 108 },{ -15, 100 },
 
  110     { -13, 101 },{ -13, 91 }, { -12, 94 },   { -10, 88 },
 
  111     { -16, 84 }, { -10, 86 }, { -7, 83 },    { -13, 87 },
 
  112     { -19, 94 }, { 1, 70 },   { 0, 72 },     { -5, 74 },
 
  113     { 18, 59 },  { -8, 102 }, { -15, 100 },  { 0, 95 },
 
  114     { -4, 75 },  { 2, 72 },   { -11, 75 },   { -3, 71 },
 
  115     { 15, 46 },  { -13, 69 }, { 0, 62 },     { 0, 65 },
 
  116     { 21, 37 },  { -15, 72 }, { 9, 57 },     { 16, 54 },
 
  117     { 0, 62 },   { 12, 72 },
 
  120     { 24, 0 },   { 15, 9 },   { 8, 25 },     { 13, 18 },
 
  121     { 15, 9 },   { 13, 19 },  { 10, 37 },    { 12, 18 },
 
  122     { 6, 29 },   { 20, 33 },  { 15, 30 },    { 4, 45 },
 
  123     { 1, 58 },   { 0, 62 },   { 7, 61 },     { 12, 38 },
 
  124     { 11, 45 },  { 15, 39 },  { 11, 42 },    { 13, 44 },
 
  125     { 16, 45 },  { 12, 41 },  { 10, 49 },    { 30, 34 },
 
  126     { 18, 42 },  { 10, 55 },  { 17, 51 },    { 17, 46 },
 
  127     { 0, 89 },   { 26, -19 }, { 22, -17 },
 
  130     { 26, -17 }, { 30, -25 }, { 28, -20 },   { 33, -23 },
 
  131     { 37, -27 }, { 33, -23 }, { 40, -28 },   { 38, -17 },
 
  132     { 33, -11 }, { 40, -15 }, { 41, -6 },    { 38, 1 },
 
  133     { 41, 17 },  { 30, -6 },  { 27, 3 },     { 26, 22 },
 
  134     { 37, -16 }, { 35, -4 },  { 38, -8 },    { 38, -3 },
 
  135     { 37, 3 },   { 38, 5 },   { 42, 0 },     { 35, 16 },
 
  136     { 39, 22 },  { 14, 48 },  { 27, 37 },    { 21, 60 },
 
  137     { 12, 68 },  { 2, 97 },
 
  140     { -3, 71 },  { -6, 42 },  { -5, 50 },    { -3, 54 },
 
  141     { -2, 62 },  { 0, 58 },   { 1, 63 },     { -2, 72 },
 
  142     { -1, 74 },  { -9, 91 },  { -5, 67 },    { -5, 27 },
 
  143     { -3, 39 },  { -2, 44 },  { 0, 46 },     { -16, 64 },
 
  144     { -8, 68 },  { -10, 78 }, { -6, 77 },    { -10, 86 },
 
  145     { -12, 92 }, { -15, 55 }, { -10, 60 },   { -6, 62 },
 
  149     { -12, 73 }, { -8, 76 },  { -7, 80 },    { -9, 88 },
 
  150     { -17, 110 },{ -11, 97 }, { -20, 84 },   { -11, 79 },
 
  151     { -6, 73 },  { -4, 74 },  { -13, 86 },   { -13, 96 },
 
  152     { -11, 97 }, { -19, 117 },{ -8, 78 },    { -5, 33 },
 
  153     { -4, 48 },  { -2, 53 },  { -3, 62 },    { -13, 71 },
 
  154     { -10, 79 }, { -12, 86 }, { -13, 90 },   { -14, 97 },
 
  160     { -6, 93 },  { -6, 84 },  { -8, 79 },    { 0, 66 },
 
  161     { -1, 71 },  { 0, 62 },   { -2, 60 },    { -2, 59 },
 
  162     { -5, 75 },  { -3, 62 },  { -4, 58 },    { -9, 66 },
 
  163     { -1, 79 },  { 0, 71 },   { 3, 68 },     { 10, 44 },
 
  164     { -7, 62 },  { 15, 36 },  { 14, 40 },    { 16, 27 },
 
  165     { 12, 29 },  { 1, 44 },   { 20, 36 },    { 18, 32 },
 
  166     { 5, 42 },   { 1, 48 },   { 10, 62 },    { 17, 46 },
 
  167     { 9, 64 },   { -12, 104 },{ -11, 97 },
 
  170     { -16, 96 }, { -7, 88 },  { -8, 85 },    { -7, 85 },
 
  171     { -9, 85 },  { -13, 88 }, { 4, 66 },     { -3, 77 },
 
  172     { -3, 76 },  { -6, 76 },  { 10, 58 },    { -1, 76 },
 
  173     { -1, 83 },  { -7, 99 },  { -14, 95 },   { 2, 95 },
 
  174     { 0, 76 },   { -5, 74 },  { 0, 70 },     { -11, 75 },
 
  175     { 1, 68 },   { 0, 65 },   { -14, 73 },   { 3, 62 },
 
  176     { 4, 62 },   { -1, 68 },  { -13, 75 },   { 11, 55 },
 
  177     { 5, 64 },   { 12, 70 },
 
  180     { 15, 6 },   { 6, 19 },   { 7, 16 },     { 12, 14 },
 
  181     { 18, 13 },  { 13, 11 },  { 13, 15 },    { 15, 16 },
 
  182     { 12, 23 },  { 13, 23 },  { 15, 20 },    { 14, 26 },
 
  183     { 14, 44 },  { 17, 40 },  { 17, 47 },    { 24, 17 },
 
  184     { 21, 21 },  { 25, 22 },  { 31, 27 },    { 22, 29 },
 
  185     { 19, 35 },  { 14, 50 },  { 10, 57 },    { 7, 63 },
 
  186     { -2, 77 },  { -4, 82 },  { -3, 94 },    { 9, 69 },
 
  187     { -12, 109 },{ 36, -35 }, { 36, -34 },
 
  190     { 32, -26 }, { 37, -30 }, { 44, -32 },   { 34, -18 },
 
  191     { 34, -15 }, { 40, -15 }, { 33, -7 },    { 35, -5 },
 
  192     { 33, 0 },   { 38, 2 },   { 33, 13 },    { 23, 35 },
 
  193     { 13, 58 },  { 29, -3 },  { 26, 0 },     { 22, 30 },
 
  194     { 31, -7 },  { 35, -15 }, { 34, -3 },    { 34, 3 },
 
  195     { 36, -1 },  { 34, 5 },   { 32, 11 },    { 35, 5 },
 
  196     { 34, 12 },  { 39, 11 },  { 30, 29 },    { 34, 26 },
 
  197     { 29, 39 },  { 19, 66 },
 
  200     {  31,  21 }, {  31,  31 }, {  25,  50 },
 
  201     { -17, 120 }, { -20, 112 }, { -18, 114 }, { -11,  85 },
 
  202     { -15,  92 }, { -14,  89 }, { -26,  71 }, { -15,  81 },
 
  203     { -14,  80 }, {   0,  68 }, { -14,  70 }, { -24,  56 },
 
  204     { -23,  68 }, { -24,  50 }, { -11,  74 }, {  23, -13 },
 
  205     {  26, -13 }, {  40, -15 }, {  49, -14 }, {  44,   3 },
 
  206     {  45,   6 }, {  44,  34 }, {  33,  54 }, {  19,  82 },
 
  207     {  -3,  75 }, {  -1,  23 }, {   1,  34 }, {   1,  43 },
 
  208     {   0,  54 }, {  -2,  55 }, {   0,  61 }, {   1,  64 },
 
  209     {   0,  68 }, {  -9,  92 },
 
  212     { -14, 106 }, { -13,  97 }, { -15,  90 }, { -12,  90 },
 
  213     { -18,  88 }, { -10,  73 }, {  -9,  79 }, { -14,  86 },
 
  214     { -10,  73 }, { -10,  70 }, { -10,  69 }, {  -5,  66 },
 
  215     {  -9,  64 }, {  -5,  58 }, {   2,  59 }, {  21, -10 },
 
  216     {  24, -11 }, {  28,  -8 }, {  28,  -1 }, {  29,   3 },
 
  217     {  29,   9 }, {  35,  20 }, {  29,  36 }, {  14,  67 },
 
  220     { -17, 123 }, { -12, 115 }, { -16, 122 }, { -11, 115 },
 
  221     { -12,  63 }, {  -2,  68 }, { -15,  84 }, { -13, 104 },
 
  222     {  -3,  70 }, {  -8,  93 }, { -10,  90 }, { -30, 127 },
 
  223     { -17, 123 }, { -12, 115 }, { -16, 122 }, { -11, 115 },
 
  224     { -12,  63 }, {  -2,  68 }, { -15,  84 }, { -13, 104 },
 
  225     {  -3,  70 }, {  -8,  93 }, { -10,  90 }, { -30, 127 },
 
  226     {  -7,  93 }, { -11,  87 }, {  -3,  77 }, {  -5,  71 },
 
  227     {  -4,  63 }, {  -4,  68 }, { -12,  84 }, {  -7,  62 },
 
  228     {  -7,  65 }, {   8,  61 }, {   5,  56 }, {  -2,  66 },
 
  229     {   1,  64 }, {   0,  61 }, {  -2,  78 }, {   1,  50 },
 
  230     {   7,  52 }, {  10,  35 }, {   0,  44 }, {  11,  38 },
 
  231     {   1,  45 }, {   0,  46 }, {   5,  44 }, {  31,  17 },
 
  232     {   1,  51 }, {   7,  50 }, {  28,  19 }, {  16,  33 },
 
  233     {  14,  62 }, { -13, 108 }, { -15, 100 }, { -13, 101 },
 
  234     { -13,  91 }, { -12,  94 }, { -10,  88 }, { -16,  84 },
 
  235     { -10,  86 }, {  -7,  83 }, { -13,  87 }, { -19,  94 },
 
  236     {   1,  70 }, {   0,  72 }, {  -5,  74 }, {  18,  59 },
 
  237     {  -7,  93 }, { -11,  87 }, {  -3,  77 }, {  -5,  71 },
 
  238     {  -4,  63 }, {  -4,  68 }, { -12,  84 }, {  -7,  62 },
 
  239     {  -7,  65 }, {   8,  61 }, {   5,  56 }, {  -2,  66 },
 
  240     {   1,  64 }, {   0,  61 }, {  -2,  78 }, {   1,  50 },
 
  241     {   7,  52 }, {  10,  35 }, {   0,  44 }, {  11,  38 },
 
  242     {   1,  45 }, {   0,  46 }, {   5,  44 }, {  31,  17 },
 
  243     {   1,  51 }, {   7,  50 }, {  28,  19 }, {  16,  33 },
 
  244     {  14,  62 }, { -13, 108 }, { -15, 100 }, { -13, 101 },
 
  245     { -13,  91 }, { -12,  94 }, { -10,  88 }, { -16,  84 },
 
  246     { -10,  86 }, {  -7,  83 }, { -13,  87 }, { -19,  94 },
 
  247     {   1,  70 }, {   0,  72 }, {  -5,  74 }, {  18,  59 },
 
  248     {  24,   0 }, {  15,   9 }, {   8,  25 }, {  13,  18 },
 
  249     {  15,   9 }, {  13,  19 }, {  10,  37 }, {  12,  18 },
 
  250     {   6,  29 }, {  20,  33 }, {  15,  30 }, {   4,  45 },
 
  251     {   1,  58 }, {   0,  62 }, {   7,  61 }, {  12,  38 },
 
  252     {  11,  45 }, {  15,  39 }, {  11,  42 }, {  13,  44 },
 
  253     {  16,  45 }, {  12,  41 }, {  10,  49 }, {  30,  34 },
 
  254     {  18,  42 }, {  10,  55 }, {  17,  51 }, {  17,  46 },
 
  255     {   0,  89 }, {  26, -19 }, {  22, -17 }, {  26, -17 },
 
  256     {  30, -25 }, {  28, -20 }, {  33, -23 }, {  37, -27 },
 
  257     {  33, -23 }, {  40, -28 }, {  38, -17 }, {  33, -11 },
 
  258     {  40, -15 }, {  41,  -6 }, {  38,   1 }, {  41,  17 },
 
  259     {  24,   0 }, {  15,   9 }, {   8,  25 }, {  13,  18 },
 
  260     {  15,   9 }, {  13,  19 }, {  10,  37 }, {  12,  18 },
 
  261     {   6,  29 }, {  20,  33 }, {  15,  30 }, {   4,  45 },
 
  262     {   1,  58 }, {   0,  62 }, {   7,  61 }, {  12,  38 },
 
  263     {  11,  45 }, {  15,  39 }, {  11,  42 }, {  13,  44 },
 
  264     {  16,  45 }, {  12,  41 }, {  10,  49 }, {  30,  34 },
 
  265     {  18,  42 }, {  10,  55 }, {  17,  51 }, {  17,  46 },
 
  266     {   0,  89 }, {  26, -19 }, {  22, -17 }, {  26, -17 },
 
  267     {  30, -25 }, {  28, -20 }, {  33, -23 }, {  37, -27 },
 
  268     {  33, -23 }, {  40, -28 }, {  38, -17 }, {  33, -11 },
 
  269     {  40, -15 }, {  41,  -6 }, {  38,   1 }, {  41,  17 },
 
  270     { -17, 120 }, { -20, 112 }, { -18, 114 }, { -11,  85 },
 
  271     { -15,  92 }, { -14,  89 }, { -26,  71 }, { -15,  81 },
 
  272     { -14,  80 }, {   0,  68 }, { -14,  70 }, { -24,  56 },
 
  273     { -23,  68 }, { -24,  50 }, { -11,  74 }, { -14, 106 },
 
  274     { -13,  97 }, { -15,  90 }, { -12,  90 }, { -18,  88 },
 
  275     { -10,  73 }, {  -9,  79 }, { -14,  86 }, { -10,  73 },
 
  276     { -10,  70 }, { -10,  69 }, {  -5,  66 }, {  -9,  64 },
 
  277     {  -5,  58 }, {   2,  59 }, {  23, -13 }, {  26, -13 },
 
  278     {  40, -15 }, {  49, -14 }, {  44,   3 }, {  45,   6 },
 
  279     {  44,  34 }, {  33,  54 }, {  19,  82 }, {  21, -10 },
 
  280     {  24, -11 }, {  28,  -8 }, {  28,  -1 }, {  29,   3 },
 
  281     {  29,   9 }, {  35,  20 }, {  29,  36 }, {  14,  67 },
 
  282     {  -3,  75 }, {  -1,  23 }, {   1,  34 }, {   1,  43 },
 
  283     {   0,  54 }, {  -2,  55 }, {   0,  61 }, {   1,  64 },
 
  284     {   0,  68 }, {  -9,  92 }, { -17, 120 }, { -20, 112 },
 
  285     { -18, 114 }, { -11,  85 }, { -15,  92 }, { -14,  89 },
 
  286     { -26,  71 }, { -15,  81 }, { -14,  80 }, {   0,  68 },
 
  287     { -14,  70 }, { -24,  56 }, { -23,  68 }, { -24,  50 },
 
  288     { -11,  74 }, { -14, 106 }, { -13,  97 }, { -15,  90 },
 
  289     { -12,  90 }, { -18,  88 }, { -10,  73 }, {  -9,  79 },
 
  290     { -14,  86 }, { -10,  73 }, { -10,  70 }, { -10,  69 },
 
  291     {  -5,  66 }, {  -9,  64 }, {  -5,  58 }, {   2,  59 },
 
  292     {  23, -13 }, {  26, -13 }, {  40, -15 }, {  49, -14 },
 
  293     {  44,   3 }, {  45,   6 }, {  44,  34 }, {  33,  54 },
 
  294     {  19,  82 }, {  21, -10 }, {  24, -11 }, {  28,  -8 },
 
  295     {  28,  -1 }, {  29,   3 }, {  29,   9 }, {  35,  20 },
 
  296     {  29,  36 }, {  14,  67 }, {  -3,  75 }, {  -1,  23 },
 
  297     {   1,  34 }, {   1,  43 }, {   0,  54 }, {  -2,  55 },
 
  298     {   0,  61 }, {   1,  64 }, {   0,  68 }, {  -9,  92 },
 
  299     {  -6,  93 }, {  -6,  84 }, {  -8,  79 }, {   0,  66 },
 
  300     {  -1,  71 }, {   0,  62 }, {  -2,  60 }, {  -2,  59 },
 
  301     {  -5,  75 }, {  -3,  62 }, {  -4,  58 }, {  -9,  66 },
 
  302     {  -1,  79 }, {   0,  71 }, {   3,  68 }, {  10,  44 },
 
  303     {  -7,  62 }, {  15,  36 }, {  14,  40 }, {  16,  27 },
 
  304     {  12,  29 }, {   1,  44 }, {  20,  36 }, {  18,  32 },
 
  305     {   5,  42 }, {   1,  48 }, {  10,  62 }, {  17,  46 },
 
  306     {   9,  64 }, { -12, 104 }, { -11,  97 }, { -16,  96 },
 
  307     {  -7,  88 }, {  -8,  85 }, {  -7,  85 }, {  -9,  85 },
 
  308     { -13,  88 }, {   4,  66 }, {  -3,  77 }, {  -3,  76 },
 
  309     {  -6,  76 }, {  10,  58 }, {  -1,  76 }, {  -1,  83 },
 
  310     {  -6,  93 }, {  -6,  84 }, {  -8,  79 }, {   0,  66 },
 
  311     {  -1,  71 }, {   0,  62 }, {  -2,  60 }, {  -2,  59 },
 
  312     {  -5,  75 }, {  -3,  62 }, {  -4,  58 }, {  -9,  66 },
 
  313     {  -1,  79 }, {   0,  71 }, {   3,  68 }, {  10,  44 },
 
  314     {  -7,  62 }, {  15,  36 }, {  14,  40 }, {  16,  27 },
 
  315     {  12,  29 }, {   1,  44 }, {  20,  36 }, {  18,  32 },
 
  316     {   5,  42 }, {   1,  48 }, {  10,  62 }, {  17,  46 },
 
  317     {   9,  64 }, { -12, 104 }, { -11,  97 }, { -16,  96 },
 
  318     {  -7,  88 }, {  -8,  85 }, {  -7,  85 }, {  -9,  85 },
 
  319     { -13,  88 }, {   4,  66 }, {  -3,  77 }, {  -3,  76 },
 
  320     {  -6,  76 }, {  10,  58 }, {  -1,  76 }, {  -1,  83 },
 
  321     {  15,   6 }, {   6,  19 }, {   7,  16 }, {  12,  14 },
 
  322     {  18,  13 }, {  13,  11 }, {  13,  15 }, {  15,  16 },
 
  323     {  12,  23 }, {  13,  23 }, {  15,  20 }, {  14,  26 },
 
  324     {  14,  44 }, {  17,  40 }, {  17,  47 }, {  24,  17 },
 
  325     {  21,  21 }, {  25,  22 }, {  31,  27 }, {  22,  29 },
 
  326     {  19,  35 }, {  14,  50 }, {  10,  57 }, {   7,  63 },
 
  327     {  -2,  77 }, {  -4,  82 }, {  -3,  94 }, {   9,  69 },
 
  328     { -12, 109 }, {  36, -35 }, {  36, -34 }, {  32, -26 },
 
  329     {  37, -30 }, {  44, -32 }, {  34, -18 }, {  34, -15 },
 
  330     {  40, -15 }, {  33,  -7 }, {  35,  -5 }, {  33,   0 },
 
  331     {  38,   2 }, {  33,  13 }, {  23,  35 }, {  13,  58 },
 
  332     {  15,   6 }, {   6,  19 }, {   7,  16 }, {  12,  14 },
 
  333     {  18,  13 }, {  13,  11 }, {  13,  15 }, {  15,  16 },
 
  334     {  12,  23 }, {  13,  23 }, {  15,  20 }, {  14,  26 },
 
  335     {  14,  44 }, {  17,  40 }, {  17,  47 }, {  24,  17 },
 
  336     {  21,  21 }, {  25,  22 }, {  31,  27 }, {  22,  29 },
 
  337     {  19,  35 }, {  14,  50 }, {  10,  57 }, {   7,  63 },
 
  338     {  -2,  77 }, {  -4,  82 }, {  -3,  94 }, {   9,  69 },
 
  339     { -12, 109 }, {  36, -35 }, {  36, -34 }, {  32, -26 },
 
  340     {  37, -30 }, {  44, -32 }, {  34, -18 }, {  34, -15 },
 
  341     {  40, -15 }, {  33,  -7 }, {  35,  -5 }, {  33,   0 },
 
  342     {  38,   2 }, {  33,  13 }, {  23,  35 }, {  13,  58 },
 
  343     {  -3,  71 }, {  -6,  42 }, {  -5,  50 }, {  -3,  54 },
 
  344     {  -2,  62 }, {   0,  58 }, {   1,  63 }, {  -2,  72 },
 
  345     {  -1,  74 }, {  -9,  91 }, {  -5,  67 }, {  -5,  27 },
 
  346     {  -3,  39 }, {  -2,  44 }, {   0,  46 }, { -16,  64 },
 
  347     {  -8,  68 }, { -10,  78 }, {  -6,  77 }, { -10,  86 },
 
  348     { -12,  92 }, { -15,  55 }, { -10,  60 }, {  -6,  62 },
 
  349     {  -4,  65 }, { -12,  73 }, {  -8,  76 }, {  -7,  80 },
 
  350     {  -9,  88 }, { -17, 110 }, {  -3,  71 }, {  -6,  42 },
 
  351     {  -5,  50 }, {  -3,  54 }, {  -2,  62 }, {   0,  58 },
 
  352     {   1,  63 }, {  -2,  72 }, {  -1,  74 }, {  -9,  91 },
 
  353     {  -5,  67 }, {  -5,  27 }, {  -3,  39 }, {  -2,  44 },
 
  354     {   0,  46 }, { -16,  64 }, {  -8,  68 }, { -10,  78 },
 
  355     {  -6,  77 }, { -10,  86 }, { -12,  92 }, { -15,  55 },
 
  356     { -10,  60 }, {  -6,  62 }, {  -4,  65 }, { -12,  73 },
 
  357     {  -8,  76 }, {  -7,  80 }, {  -9,  88 }, { -17, 110 },
 
  358     {  -3,  70 }, {  -8,  93 }, { -10,  90 }, { -30, 127 },
 
  359     {  -3,  70 }, {  -8,  93 }, { -10,  90 }, { -30, 127 },
 
  360     {  -3,  70 }, {  -8,  93 }, { -10,  90 }, { -30, 127 }
 
  368         {  20, -15 }, {   2,  54 }, {   3,  74 }, {  20, -15 },
 
  369         {   2,  54 }, {   3,  74 }, { -28, 127 }, { -23, 104 },
 
  370         {  -6,  53 }, {  -1,  54 }, {   7,  51 },
 
  373         {  23,  33 }, {  23,   2 }, {  21,   0 }, {   1,   9 },
 
  374         {   0,  49 }, { -37, 118 }, {   5,  57 }, { -13,  78 },
 
  375         { -11,  65 }, {   1,  62 }, {  12,  49 }, {  -4,  73 },
 
  379         {  18,  64 }, {   9,  43 }, {  29,   0 }, {  26,  67 },
 
  380         {  16,  90 }, {   9, 104 }, { -46, 127 }, { -20, 104 },
 
  381         {   1,  67 }, { -13,  78 }, { -11,  65 }, {   1,  62 },
 
  382         {  -6,  86 }, { -17,  95 }, {  -6,  61 }, {   9,  45 },
 
  385         {  -3,  69 }, {  -6,  81 }, { -11,  96 }, {   6,  55 },
 
  386         {   7,  67 }, {  -5,  86 }, {   2,  88 }, {   0,  58 },
 
  387         {  -3,  76 }, { -10,  94 }, {   5,  54 }, {   4,  69 },
 
  388         {  -3,  81 }, {   0,  88 },
 
  391         {  -7,  67 }, {  -5,  74 }, {  -4,  74 }, {  -5,  80 },
 
  392         {  -7,  72 }, {   1,  58 },
 
  395         {   0,  41 }, {   0,  63 }, {   0,  63 }, { 0, 63 },
 
  396         {  -9,  83 }, {   4,  86 }, {   0,  97 }, { -7, 72 },
 
  397         {  13,  41 }, {   3,  62 },
 
  400         {   0,  45 }, {  -4,  78 }, {  -3,  96 }, { -27,  126 },
 
  401         { -28,  98 }, { -25, 101 }, { -23,  67 }, { -28,  82 },
 
  402         { -20,  94 }, { -16,  83 }, { -22, 110 }, { -21,  91 },
 
  403         { -18, 102 }, { -13,  93 }, { -29, 127 }, {  -7,  92 },
 
  404         {  -5,  89 }, {  -7,  96 }, { -13, 108 }, {  -3,  46 },
 
  405         {  -1,  65 }, {  -1,  57 }, {  -9,  93 }, {  -3,  74 },
 
  406         {  -9,  92 }, {  -8,  87 }, { -23, 126 }, {   5,  54 },
 
  407         {   6,  60 }, {   6,  59 }, {   6,  69 }, {  -1,  48 },
 
  408         {   0,  68 }, {  -4,  69 }, {  -8,  88 },
 
  411         {  -2,  85 }, {  -6,  78 }, {  -1,  75 }, {  -7,  77 },
 
  412         {   2,  54 }, {   5,  50 }, {  -3,  68 }, {   1,  50 },
 
  413         {   6,  42 }, {  -4,  81 }, {   1,  63 }, {  -4,  70 },
 
  414         {   0,  67 }, {   2,  57 }, {  -2,  76 }, {  11,  35 },
 
  415         {   4,  64 }, {   1,  61 }, {  11,  35 }, {  18,  25 },
 
  416         {  12,  24 }, {  13,  29 }, {  13,  36 }, { -10,  93 },
 
  417         {  -7,  73 }, {  -2,  73 }, {  13,  46 }, {   9,  49 },
 
  418         {  -7, 100 }, {   9,  53 }, {   2,  53 }, {   5,  53 },
 
  419         {  -2,  61 }, {   0,  56 }, {   0,  56 }, { -13,  63 },
 
  420         {  -5,  60 }, {  -1,  62 }, {   4,  57 }, {  -6,  69 },
 
  421         {   4,  57 }, {  14,  39 }, {   4,  51 }, {  13,  68 },
 
  422         {   3,  64 }, {   1,  61 }, {   9,  63 }, {   7,  50 },
 
  423         {  16,  39 }, {   5,  44 }, {   4,  52 }, {  11,  48 },
 
  424         {  -5,  60 }, {  -1,  59 }, {   0,  59 }, {  22,  33 },
 
  425         {   5,  44 }, {  14,  43 }, {  -1,  78 }, {   0,  60 },
 
  429         {  11,  28 }, {   2,  40 }, {   3,  44 }, {   0,  49 },
 
  430         {   0,  46 }, {   2,  44 }, {   2,  51 }, {   0,  47 },
 
  431         {   4,  39 }, {   2,  62 }, {   6,  46 }, {   0,  54 },
 
  432         {   3,  54 }, {   2,  58 }, {   4,  63 }, {   6,  51 },
 
  433         {   6,  57 }, {   7,  53 }, {   6,  52 }, {   6,  55 },
 
  434         {  11,  45 }, {  14,  36 }, {   8,  53 }, {  -1,  82 },
 
  435         {   7,  55 }, {  -3,  78 }, {  15,  46 }, {  22,  31 },
 
  436         {  -1,  84 }, {  25,   7 }, {  30,  -7 }, {  28,   3 },
 
  437         {  28,   4 }, {  32,   0 }, {  34,  -1 }, {  30,   6 },
 
  438         {  30,   6 }, {  32,   9 }, {  31,  19 }, {  26,  27 },
 
  439         {  26,  30 }, {  37,  20 }, {  28,  34 }, {  17,  70 },
 
  440         {   1,  67 }, {   5,  59 }, {   9,  67 }, {  16,  30 },
 
  441         {  18,  32 }, {  18,  35 }, {  22,  29 }, {  24,  31 },
 
  442         {  23,  38 }, {  18,  43 }, {  20,  41 }, {  11,  63 },
 
  443         {   9,  59 }, {   9,  64 }, {  -1,  94 }, {  -2,  89 },
 
  447         {  -6,  76 }, {  -2,  44 }, {   0,  45 }, {   0,  52 },
 
  448         {  -3,  64 }, {  -2,  59 }, {  -4,  70 }, {  -4,  75 },
 
  449         {  -8,  82 }, { -17, 102 }, {  -9,  77 }, {   3,  24 },
 
  450         {   0,  42 }, {   0,  48 }, {   0,  55 }, {  -6,  59 },
 
  451         {  -7,  71 }, { -12,  83 }, { -11,  87 }, { -30, 119 },
 
  452         {   1,  58 }, {  -3,  29 }, {  -1,  36 }, {   1,  38 },
 
  453         {   2,  43 }, {  -6,  55 }, {   0,  58 }, {   0,  64 },
 
  454         {  -3,  74 }, { -10,  90 }, {   0,  70 }, {  -4,  29 },
 
  455         {   5,  31 }, {   7,  42 }, {   1,  59 }, {  -2,  58 },
 
  456         {  -3,  72 }, {  -3,  81 }, { -11,  97 }, {   0,  58 },
 
  457         {   8,   5 }, {  10,  14 }, {  14,  18 }, {  13,  27 },
 
  458         {   2,  40 }, {   0,  58 }, {  -3,  70 }, {  -6,  79 },
 
  465         { -13, 106 }, { -16, 106 }, { -10,  87 }, { -21, 114 },
 
  466         { -18, 110 }, { -14,  98 }, { -22, 110 }, { -21, 106 },
 
  467         { -18, 103 }, { -21, 107 }, { -23, 108 }, { -26, 112 },
 
  468         { -10,  96 }, { -12,  95 }, {  -5,  91 }, {  -9,  93 },
 
  469         { -22,  94 }, {  -5,  86 }, {   9,  67 }, {  -4,  80 },
 
  470         { -10,  85 }, {  -1,  70 }, {   7,  60 }, {   9,  58 },
 
  471         {   5,  61 }, {  12,  50 }, {  15,  50 }, {  18,  49 },
 
  472         {  17,  54 }, {  10,  41 }, {   7,  46 }, {  -1,  51 },
 
  473         {   7,  49 }, {   8,  52 }, {   9,  41 }, {   6,  47 },
 
  474         {   2,  55 }, {  13,  41 }, {  10,  44 }, {   6,  50 },
 
  475         {   5,  53 }, {  13,  49 }, {   4,  63 }, {   6,  64 },
 
  476         {  -2,  69 }, {  -2,  59 }, {   6,  70 }, {  10,  44 },
 
  477         {   9,  31 }, {  12,  43 }, {   3,  53 }, {  14,  34 },
 
  478         {  10,  38 }, {  -3,  52 }, {  13,  40 }, {  17,  32 },
 
  479         {   7,  44 }, {   7,  38 }, {  13,  50 }, {  10,  57 },
 
  483         {  14,  11 }, {  11,  14 }, {   9,  11 }, {  18,  11 },
 
  484         {  21,   9 }, {  23,  -2 }, {  32, -15 }, {  32, -15 },
 
  485         {  34, -21 }, {  39, -23 }, {  42, -33 }, {  41, -31 },
 
  486         {  46, -28 }, {  38, -12 }, {  21,  29 }, {  45, -24 },
 
  487         {  53, -45 }, {  48, -26 }, {  65, -43 }, {  43, -19 },
 
  488         {  39, -10 }, {  30,   9 }, {  18,  26 }, {  20,  27 },
 
  489         {   0,  57 }, { -14,  82 }, {  -5,  75 }, { -19,  97 },
 
  490         { -35, 125 }, {  27,   0 }, {  28,   0 }, {  31,  -4 },
 
  491         {  27,   6 }, {  34,   8 }, {  30,  10 }, {  24,  22 },
 
  492         {  33,  19 }, {  22,  32 }, {  26,  31 }, {  21,  41 },
 
  493         {  26,  44 }, {  23,  47 }, {  16,  65 }, {  14,  71 },
 
  494         {   8,  60 }, {   6,  63 }, {  17,  65 }, {  21,  24 },
 
  495         {  23,  20 }, {  26,  23 }, {  27,  32 }, {  28,  23 },
 
  496         {  28,  24 }, {  23,  40 }, {  24,  32 }, {  28,  29 },
 
  497         {  23,  42 }, {  19,  57 }, {  22,  53 }, {  22,  61 },
 
  501         {  12,  40 }, {  11,  51 }, {  14,  59 },
 
  502         {  -4,  79 }, {  -7,  71 }, {  -5,  69 }, {  -9,  70 },
 
  503         {  -8,  66 }, { -10,  68 }, { -19,  73 }, { -12,  69 },
 
  504         { -16,  70 }, { -15,  67 }, { -20,  62 }, { -19,  70 },
 
  505         { -16,  66 }, { -22,  65 }, { -20,  63 }, {   9,  -2 },
 
  506         {  26,  -9 }, {  33,  -9 }, {  39,  -7 }, {  41,  -2 },
 
  507         {  45,   3 }, {  49,   9 }, {  45,  27 }, {  36,  59 },
 
  508         {  -6,  66 }, {  -7,  35 }, {  -7,  42 }, {  -8,  45 },
 
  509         {  -5,  48 }, { -12,  56 }, {  -6,  60 }, {  -5,  62 },
 
  510         {  -8,  66 }, {  -8,  76 },
 
  513         {  -5,  85 }, {  -6,  81 }, { -10,  77 }, {  -7,  81 },
 
  514         { -17,  80 }, { -18,  73 }, {  -4,  74 }, { -10,  83 },
 
  515         {  -9,  71 }, {  -9,  67 }, {  -1,  61 }, {  -8,  66 },
 
  516         { -14,  66 }, {   0,  59 }, {   2,  59 }, {  21, -13 },
 
  517         {  33, -14 }, {  39,  -7 }, {  46,  -2 }, {  51,   2 },
 
  518         {  60,   6 }, {  61,  17 }, {  55,  34 }, {  42,  62 },
 
  521         {  -7,  92 }, {  -5,  89 }, {  -7,  96 }, { -13, 108 },
 
  522         {  -3,  46 }, {  -1,  65 }, {  -1,  57 }, {  -9,  93 },
 
  523         {  -3,  74 }, {  -9,  92 }, {  -8,  87 }, { -23, 126 },
 
  524         {  -7,  92 }, {  -5,  89 }, {  -7,  96 }, { -13, 108 },
 
  525         {  -3,  46 }, {  -1,  65 }, {  -1,  57 }, {  -9,  93 },
 
  526         {  -3,  74 }, {  -9,  92 }, {  -8,  87 }, { -23, 126 },
 
  527         {  -2,  85 }, {  -6,  78 }, {  -1,  75 }, {  -7,  77 },
 
  528         {   2,  54 }, {   5,  50 }, {  -3,  68 }, {   1,  50 },
 
  529         {   6,  42 }, {  -4,  81 }, {   1,  63 }, {  -4,  70 },
 
  530         {   0,  67 }, {   2,  57 }, {  -2,  76 }, {  11,  35 },
 
  531         {   4,  64 }, {   1,  61 }, {  11,  35 }, {  18,  25 },
 
  532         {  12,  24 }, {  13,  29 }, {  13,  36 }, { -10,  93 },
 
  533         {  -7,  73 }, {  -2,  73 }, {  13,  46 }, {   9,  49 },
 
  534         {  -7, 100 }, {   9,  53 }, {   2,  53 }, {   5,  53 },
 
  535         {  -2,  61 }, {   0,  56 }, {   0,  56 }, { -13,  63 },
 
  536         {  -5,  60 }, {  -1,  62 }, {   4,  57 }, {  -6,  69 },
 
  537         {   4,  57 }, {  14,  39 }, {   4,  51 }, {  13,  68 },
 
  538         {  -2,  85 }, {  -6,  78 }, {  -1,  75 }, {  -7,  77 },
 
  539         {   2,  54 }, {   5,  50 }, {  -3,  68 }, {   1,  50 },
 
  540         {   6,  42 }, {  -4,  81 }, {   1,  63 }, {  -4,  70 },
 
  541         {   0,  67 }, {   2,  57 }, {  -2,  76 }, {  11,  35 },
 
  542         {   4,  64 }, {   1,  61 }, {  11,  35 }, {  18,  25 },
 
  543         {  12,  24 }, {  13,  29 }, {  13,  36 }, { -10,  93 },
 
  544         {  -7,  73 }, {  -2,  73 }, {  13,  46 }, {   9,  49 },
 
  545         {  -7, 100 }, {   9,  53 }, {   2,  53 }, {   5,  53 },
 
  546         {  -2,  61 }, {   0,  56 }, {   0,  56 }, { -13,  63 },
 
  547         {  -5,  60 }, {  -1,  62 }, {   4,  57 }, {  -6,  69 },
 
  548         {   4,  57 }, {  14,  39 }, {   4,  51 }, {  13,  68 },
 
  549         {  11,  28 }, {   2,  40 }, {   3,  44 }, {   0,  49 },
 
  550         {   0,  46 }, {   2,  44 }, {   2,  51 }, {   0,  47 },
 
  551         {   4,  39 }, {   2,  62 }, {   6,  46 }, {   0,  54 },
 
  552         {   3,  54 }, {   2,  58 }, {   4,  63 }, {   6,  51 },
 
  553         {   6,  57 }, {   7,  53 }, {   6,  52 }, {   6,  55 },
 
  554         {  11,  45 }, {  14,  36 }, {   8,  53 }, {  -1,  82 },
 
  555         {   7,  55 }, {  -3,  78 }, {  15,  46 }, {  22,  31 },
 
  556         {  -1,  84 }, {  25,   7 }, {  30,  -7 }, {  28,   3 },
 
  557         {  28,   4 }, {  32,   0 }, {  34,  -1 }, {  30,   6 },
 
  558         {  30,   6 }, {  32,   9 }, {  31,  19 }, {  26,  27 },
 
  559         {  26,  30 }, {  37,  20 }, {  28,  34 }, {  17,  70 },
 
  560         {  11,  28 }, {   2,  40 }, {   3,  44 }, {   0,  49 },
 
  561         {   0,  46 }, {   2,  44 }, {   2,  51 }, {   0,  47 },
 
  562         {   4,  39 }, {   2,  62 }, {   6,  46 }, {   0,  54 },
 
  563         {   3,  54 }, {   2,  58 }, {   4,  63 }, {   6,  51 },
 
  564         {   6,  57 }, {   7,  53 }, {   6,  52 }, {   6,  55 },
 
  565         {  11,  45 }, {  14,  36 }, {   8,  53 }, {  -1,  82 },
 
  566         {   7,  55 }, {  -3,  78 }, {  15,  46 }, {  22,  31 },
 
  567         {  -1,  84 }, {  25,   7 }, {  30,  -7 }, {  28,   3 },
 
  568         {  28,   4 }, {  32,   0 }, {  34,  -1 }, {  30,   6 },
 
  569         {  30,   6 }, {  32,   9 }, {  31,  19 }, {  26,  27 },
 
  570         {  26,  30 }, {  37,  20 }, {  28,  34 }, {  17,  70 },
 
  571         {  -4,  79 }, {  -7,  71 }, {  -5,  69 }, {  -9,  70 },
 
  572         {  -8,  66 }, { -10,  68 }, { -19,  73 }, { -12,  69 },
 
  573         { -16,  70 }, { -15,  67 }, { -20,  62 }, { -19,  70 },
 
  574         { -16,  66 }, { -22,  65 }, { -20,  63 }, {  -5,  85 },
 
  575         {  -6,  81 }, { -10,  77 }, {  -7,  81 }, { -17,  80 },
 
  576         { -18,  73 }, {  -4,  74 }, { -10,  83 }, {  -9,  71 },
 
  577         {  -9,  67 }, {  -1,  61 }, {  -8,  66 }, { -14,  66 },
 
  578         {   0,  59 }, {   2,  59 }, {   9,  -2 }, {  26,  -9 },
 
  579         {  33,  -9 }, {  39,  -7 }, {  41,  -2 }, {  45,   3 },
 
  580         {  49,   9 }, {  45,  27 }, {  36,  59 }, {  21, -13 },
 
  581         {  33, -14 }, {  39,  -7 }, {  46,  -2 }, {  51,   2 },
 
  582         {  60,   6 }, {  61,  17 }, {  55,  34 }, {  42,  62 },
 
  583         {  -6,  66 }, {  -7,  35 }, {  -7,  42 }, {  -8,  45 },
 
  584         {  -5,  48 }, { -12,  56 }, {  -6,  60 }, {  -5,  62 },
 
  585         {  -8,  66 }, {  -8,  76 }, {  -4,  79 }, {  -7,  71 },
 
  586         {  -5,  69 }, {  -9,  70 }, {  -8,  66 }, { -10,  68 },
 
  587         { -19,  73 }, { -12,  69 }, { -16,  70 }, { -15,  67 },
 
  588         { -20,  62 }, { -19,  70 }, { -16,  66 }, { -22,  65 },
 
  589         { -20,  63 }, {  -5,  85 }, {  -6,  81 }, { -10,  77 },
 
  590         {  -7,  81 }, { -17,  80 }, { -18,  73 }, {  -4,  74 },
 
  591         { -10,  83 }, {  -9,  71 }, {  -9,  67 }, {  -1,  61 },
 
  592         {  -8,  66 }, { -14,  66 }, {   0,  59 }, {   2,  59 },
 
  593         {   9,  -2 }, {  26,  -9 }, {  33,  -9 }, {  39,  -7 },
 
  594         {  41,  -2 }, {  45,   3 }, {  49,   9 }, {  45,  27 },
 
  595         {  36,  59 }, {  21, -13 }, {  33, -14 }, {  39,  -7 },
 
  596         {  46,  -2 }, {  51,   2 }, {  60,   6 }, {  61,  17 },
 
  597         {  55,  34 }, {  42,  62 }, {  -6,  66 }, {  -7,  35 },
 
  598         {  -7,  42 }, {  -8,  45 }, {  -5,  48 }, { -12,  56 },
 
  599         {  -6,  60 }, {  -5,  62 }, {  -8,  66 }, {  -8,  76 },
 
  600         { -13, 106 }, { -16, 106 }, { -10,  87 }, { -21, 114 },
 
  601         { -18, 110 }, { -14,  98 }, { -22, 110 }, { -21, 106 },
 
  602         { -18, 103 }, { -21, 107 }, { -23, 108 }, { -26, 112 },
 
  603         { -10,  96 }, { -12,  95 }, {  -5,  91 }, {  -9,  93 },
 
  604         { -22,  94 }, {  -5,  86 }, {   9,  67 }, {  -4,  80 },
 
  605         { -10,  85 }, {  -1,  70 }, {   7,  60 }, {   9,  58 },
 
  606         {   5,  61 }, {  12,  50 }, {  15,  50 }, {  18,  49 },
 
  607         {  17,  54 }, {  10,  41 }, {   7,  46 }, {  -1,  51 },
 
  608         {   7,  49 }, {   8,  52 }, {   9,  41 }, {   6,  47 },
 
  609         {   2,  55 }, {  13,  41 }, {  10,  44 }, {   6,  50 },
 
  610         {   5,  53 }, {  13,  49 }, {   4,  63 }, {   6,  64 },
 
  611         { -13, 106 }, { -16, 106 }, { -10,  87 }, { -21, 114 },
 
  612         { -18, 110 }, { -14,  98 }, { -22, 110 }, { -21, 106 },
 
  613         { -18, 103 }, { -21, 107 }, { -23, 108 }, { -26, 112 },
 
  614         { -10,  96 }, { -12,  95 }, {  -5,  91 }, {  -9,  93 },
 
  615         { -22,  94 }, {  -5,  86 }, {   9,  67 }, {  -4,  80 },
 
  616         { -10,  85 }, {  -1,  70 }, {   7,  60 }, {   9,  58 },
 
  617         {   5,  61 }, {  12,  50 }, {  15,  50 }, {  18,  49 },
 
  618         {  17,  54 }, {  10,  41 }, {   7,  46 }, {  -1,  51 },
 
  619         {   7,  49 }, {   8,  52 }, {   9,  41 }, {   6,  47 },
 
  620         {   2,  55 }, {  13,  41 }, {  10,  44 }, {   6,  50 },
 
  621         {   5,  53 }, {  13,  49 }, {   4,  63 }, {   6,  64 },
 
  622         {  14,  11 }, {  11,  14 }, {   9,  11 }, {  18,  11 },
 
  623         {  21,   9 }, {  23,  -2 }, {  32, -15 }, {  32, -15 },
 
  624         {  34, -21 }, {  39, -23 }, {  42, -33 }, {  41, -31 },
 
  625         {  46, -28 }, {  38, -12 }, {  21,  29 }, {  45, -24 },
 
  626         {  53, -45 }, {  48, -26 }, {  65, -43 }, {  43, -19 },
 
  627         {  39, -10 }, {  30,   9 }, {  18,  26 }, {  20,  27 },
 
  628         {   0,  57 }, { -14,  82 }, {  -5,  75 }, { -19,  97 },
 
  629         { -35, 125 }, {  27,   0 }, {  28,   0 }, {  31,  -4 },
 
  630         {  27,   6 }, {  34,   8 }, {  30,  10 }, {  24,  22 },
 
  631         {  33,  19 }, {  22,  32 }, {  26,  31 }, {  21,  41 },
 
  632         {  26,  44 }, {  23,  47 }, {  16,  65 }, {  14,  71 },
 
  633         {  14,  11 }, {  11,  14 }, {   9,  11 }, {  18,  11 },
 
  634         {  21,   9 }, {  23,  -2 }, {  32, -15 }, {  32, -15 },
 
  635         {  34, -21 }, {  39, -23 }, {  42, -33 }, {  41, -31 },
 
  636         {  46, -28 }, {  38, -12 }, {  21,  29 }, {  45, -24 },
 
  637         {  53, -45 }, {  48, -26 }, {  65, -43 }, {  43, -19 },
 
  638         {  39, -10 }, {  30,   9 }, {  18,  26 }, {  20,  27 },
 
  639         {   0,  57 }, { -14,  82 }, {  -5,  75 }, { -19,  97 },
 
  640         { -35, 125 }, {  27,   0 }, {  28,   0 }, {  31,  -4 },
 
  641         {  27,   6 }, {  34,   8 }, {  30,  10 }, {  24,  22 },
 
  642         {  33,  19 }, {  22,  32 }, {  26,  31 }, {  21,  41 },
 
  643         {  26,  44 }, {  23,  47 }, {  16,  65 }, {  14,  71 },
 
  644         {  -6,  76 }, {  -2,  44 }, {   0,  45 }, {   0,  52 },
 
  645         {  -3,  64 }, {  -2,  59 }, {  -4,  70 }, {  -4,  75 },
 
  646         {  -8,  82 }, { -17, 102 }, {  -9,  77 }, {   3,  24 },
 
  647         {   0,  42 }, {   0,  48 }, {   0,  55 }, {  -6,  59 },
 
  648         {  -7,  71 }, { -12,  83 }, { -11,  87 }, { -30, 119 },
 
  649         {   1,  58 }, {  -3,  29 }, {  -1,  36 }, {   1,  38 },
 
  650         {   2,  43 }, {  -6,  55 }, {   0,  58 }, {   0,  64 },
 
  651         {  -3,  74 }, { -10,  90 }, {  -6,  76 }, {  -2,  44 },
 
  652         {   0,  45 }, {   0,  52 }, {  -3,  64 }, {  -2,  59 },
 
  653         {  -4,  70 }, {  -4,  75 }, {  -8,  82 }, { -17, 102 },
 
  654         {  -9,  77 }, {   3,  24 }, {   0,  42 }, {   0,  48 },
 
  655         {   0,  55 }, {  -6,  59 }, {  -7,  71 }, { -12,  83 },
 
  656         { -11,  87 }, { -30, 119 }, {   1,  58 }, {  -3,  29 },
 
  657         {  -1,  36 }, {   1,  38 }, {   2,  43 }, {  -6,  55 },
 
  658         {   0,  58 }, {   0,  64 }, {  -3,  74 }, { -10,  90 },
 
  659         {  -3,  74 }, {  -9,  92 }, {  -8,  87 }, { -23, 126 },
 
  660         {  -3,  74 }, {  -9,  92 }, {  -8,  87 }, { -23, 126 },
 
  661         {  -3,  74 }, {  -9,  92 }, {  -8,  87 }, { -23, 126 }
 
  667         {  20, -15 }, {   2,  54 }, {   3,  74 }, {  20, -15 },
 
  668         {   2,  54 }, {   3,  74 }, { -28, 127 }, { -23, 104 },
 
  669         {  -6,  53 }, {  -1,  54 }, {   7,  51 },
 
  672         {  22,  25 }, {  34,   0 }, {  16,   0 }, {  -2,   9 },
 
  673         {   4,  41 }, { -29, 118 }, {   2,  65 }, {  -6,  71 },
 
  674         { -13,  79 }, {   5,  52 }, {   9,  50 }, {  -3,  70 },
 
  678         {  26,  34 }, {  19,  22 }, {  40,   0 }, {  57,   2 },
 
  679         {  41,  36 }, {  26,  69 }, { -45, 127 }, { -15, 101 },
 
  680         {  -4,  76 }, {  -6,  71 }, { -13,  79 }, {   5,  52 },
 
  681         {   6,  69 }, { -13,  90 }, {   0,  52 }, {   8,  43 },
 
  684         {  -2,  69 },{  -5,  82 },{ -10,  96 },{   2,  59 },
 
  685         {   2,  75 },{  -3,  87 },{  -3,  100 },{   1,  56 },
 
  686         {  -3,  74 },{  -6,  85 },{   0,  59 },{  -3,  81 },
 
  687         {  -7,  86 },{  -5,  95 },
 
  690         {  -1,  66 },{  -1,  77 },{   1,  70 },{  -2,  86 },
 
  691         {  -5,  72 },{   0,  61 },
 
  694         { 0, 41 },   { 0, 63 },   { 0, 63 },     { 0, 63 },
 
  695         { -9, 83 },  { 4, 86 },   { 0, 97 },     { -7, 72 },
 
  696         { 13, 41 },  { 3, 62 },
 
  699         {  13,  15 }, {   7,  51 }, {   2,  80 }, { -39, 127 },
 
  700         { -18,  91 }, { -17,  96 }, { -26,  81 }, { -35,  98 },
 
  701         { -24, 102 }, { -23,  97 }, { -27, 119 }, { -24,  99 },
 
  702         { -21, 110 }, { -18, 102 }, { -36, 127 }, {   0,  80 },
 
  703         {  -5,  89 }, {  -7,  94 }, {  -4,  92 }, {   0,  39 },
 
  704         {   0,  65 }, { -15,  84 }, { -35, 127 }, {  -2,  73 },
 
  705         { -12, 104 }, {  -9,  91 }, { -31, 127 }, {   3,  55 },
 
  706         {   7,  56 }, {   7,  55 }, {   8,  61 }, {  -3,  53 },
 
  707         {   0,  68 }, {  -7,  74 }, {  -9,  88 },
 
  710         { -13, 103 }, { -13,  91 }, {  -9,  89 }, { -14,  92 },
 
  711         {  -8,  76 }, { -12,  87 }, { -23, 110 }, { -24, 105 },
 
  712         { -10,  78 }, { -20, 112 }, { -17,  99 }, { -78, 127 },
 
  713         { -70, 127 }, { -50, 127 }, { -46, 127 }, {  -4,  66 },
 
  714         {  -5,  78 }, {  -4,  71 }, {  -8,  72 }, {   2,  59 },
 
  715         {  -1,  55 }, {  -7,  70 }, {  -6,  75 }, {  -8,  89 },
 
  716         { -34, 119 }, {  -3,  75 }, {  32,  20 }, {  30,  22 },
 
  717         { -44, 127 }, {   0,  54 }, {  -5,  61 }, {   0,  58 },
 
  718         {  -1,  60 }, {  -3,  61 }, {  -8,  67 }, { -25,  84 },
 
  719         { -14,  74 }, {  -5,  65 }, {   5,  52 }, {   2,  57 },
 
  720         {   0,  61 }, {  -9,  69 }, { -11,  70 }, {  18,  55 },
 
  721         {  -4,  71 }, {   0,  58 }, {   7,  61 }, {   9,  41 },
 
  722         {  18,  25 }, {   9,  32 }, {   5,  43 }, {   9,  47 },
 
  723         {   0,  44 }, {   0,  51 }, {   2,  46 }, {  19,  38 },
 
  724         {  -4,  66 }, {  15,  38 }, {  12,  42 }, {   9,  34 },
 
  728         {   4,  45 }, {  10,  28 }, {  10,  31 }, {  33, -11 },
 
  729         {  52, -43 }, {  18,  15 }, {  28,   0 }, {  35, -22 },
 
  730         {  38, -25 }, {  34,   0 }, {  39, -18 }, {  32, -12 },
 
  731         { 102, -94 }, {   0,   0 }, {  56, -15 }, {  33,  -4 },
 
  732         {  29,  10 }, {  37,  -5 }, {  51, -29 }, {  39,  -9 },
 
  733         {  52, -34 }, {  69, -58 }, {  67, -63 }, {  44,  -5 },
 
  734         {  32,   7 }, {  55, -29 }, {  32,   1 }, {   0,   0 },
 
  735         {  27,  36 }, {  33, -25 }, {  34, -30 }, {  36, -28 },
 
  736         {  38, -28 }, {  38, -27 }, {  34, -18 }, {  35, -16 },
 
  737         {  34, -14 }, {  32,  -8 }, {  37,  -6 }, {  35,   0 },
 
  738         {  30,  10 }, {  28,  18 }, {  26,  25 }, {  29,  41 },
 
  739         {   0,  75 }, {   2,  72 }, {   8,  77 }, {  14,  35 },
 
  740         {  18,  31 }, {  17,  35 }, {  21,  30 }, {  17,  45 },
 
  741         {  20,  42 }, {  18,  45 }, {  27,  26 }, {  16,  54 },
 
  742         {   7,  66 }, {  16,  56 }, {  11,  73 }, {  10,  67 },
 
  746         { -23, 112 }, { -15,  71 }, {  -7,  61 }, {   0,  53 },
 
  747         {  -5,  66 }, { -11,  77 }, {  -9,  80 }, {  -9,  84 },
 
  748         { -10,  87 }, { -34, 127 }, { -21, 101 }, {  -3,  39 },
 
  749         {  -5,  53 }, {  -7,  61 }, { -11,  75 }, { -15,  77 },
 
  750         { -17,  91 }, { -25, 107 }, { -25, 111 }, { -28, 122 },
 
  751         { -11,  76 }, { -10,  44 }, { -10,  52 }, { -10,  57 },
 
  752         {  -9,  58 }, { -16,  72 }, {  -7,  69 }, {  -4,  69 },
 
  753         {  -5,  74 }, {  -9,  86 }, {   2,  66 }, {  -9,  34 },
 
  754         {   1,  32 }, {  11,  31 }, {   5,  52 }, {  -2,  55 },
 
  755         {  -2,  67 }, {   0,  73 }, {  -8,  89 }, {   3,  52 },
 
  756         {   7,   4 }, {  10,   8 }, {  17,   8 }, {  16,  19 },
 
  757         {   3,  37 }, {  -1,  61 }, {  -5,  73 }, {  -1,  70 },
 
  764         { -21, 126 }, { -23, 124 }, { -20, 110 }, { -26, 126 },
 
  765         { -25, 124 }, { -17, 105 }, { -27, 121 }, { -27, 117 },
 
  766         { -17, 102 }, { -26, 117 }, { -27, 116 }, { -33, 122 },
 
  767         { -10,  95 }, { -14, 100 }, {  -8,  95 }, { -17, 111 },
 
  768         { -28, 114 }, {  -6,  89 }, {  -2,  80 }, {  -4,  82 },
 
  769         {  -9,  85 }, {  -8,  81 }, {  -1,  72 }, {   5,  64 },
 
  770         {   1,  67 }, {   9,  56 }, {   0,  69 }, {   1,  69 },
 
  771         {   7,  69 }, {  -7,  69 }, {  -6,  67 }, { -16,  77 },
 
  772         {  -2,  64 }, {   2,  61 }, {  -6,  67 }, {  -3,  64 },
 
  773         {   2,  57 }, {  -3,  65 }, {  -3,  66 }, {   0,  62 },
 
  774         {   9,  51 }, {  -1,  66 }, {  -2,  71 }, {  -2,  75 },
 
  775         {  -1,  70 }, {  -9,  72 }, {  14,  60 }, {  16,  37 },
 
  776         {   0,  47 }, {  18,  35 }, {  11,  37 }, {  12,  41 },
 
  777         {  10,  41 }, {   2,  48 }, {  12,  41 }, {  13,  41 },
 
  778         {   0,  59 }, {   3,  50 }, {  19,  40 }, {   3,  66 },
 
  782         {  19,  -6 }, {  18,  -6 }, {  14,   0 }, {  26, -12 },
 
  783         {  31, -16 }, {  33, -25 }, {  33, -22 }, {  37, -28 },
 
  784         {  39, -30 }, {  42, -30 }, {  47, -42 }, {  45, -36 },
 
  785         {  49, -34 }, {  41, -17 }, {  32,   9 }, {  69, -71 },
 
  786         {  63, -63 }, {  66, -64 }, {  77, -74 }, {  54, -39 },
 
  787         {  52, -35 }, {  41, -10 }, {  36,   0 }, {  40,  -1 },
 
  788         {  30,  14 }, {  28,  26 }, {  23,  37 }, {  12,  55 },
 
  789         {  11,  65 }, {  37, -33 }, {  39, -36 }, {  40, -37 },
 
  790         {  38, -30 }, {  46, -33 }, {  42, -30 }, {  40, -24 },
 
  791         {  49, -29 }, {  38, -12 }, {  40, -10 }, {  38,  -3 },
 
  792         {  46,  -5 }, {  31,  20 }, {  29,  30 }, {  25,  44 },
 
  793         {  12,  48 }, {  11,  49 }, {  26,  45 }, {  22,  22 },
 
  794         {  23,  22 }, {  27,  21 }, {  33,  20 }, {  26,  28 },
 
  795         {  30,  24 }, {  27,  34 }, {  18,  42 }, {  25,  39 },
 
  796         {  18,  50 }, {  12,  70 }, {  21,  54 }, {  14,  71 },
 
  800         {  25,  32 }, {  21,  49 }, {  21,  54 },
 
  801         {  -5,  85 }, {  -6,  81 }, { -10,  77 }, {  -7,  81 },
 
  802         { -17,  80 }, { -18,  73 }, {  -4,  74 }, { -10,  83 },
 
  803         {  -9,  71 }, {  -9,  67 }, {  -1,  61 }, {  -8,  66 },
 
  804         { -14,  66 }, {   0,  59 }, {   2,  59 }, {  17, -10 },
 
  805         {  32, -13 }, {  42,  -9 }, {  49,  -5 }, {  53,   0 },
 
  806         {  64,   3 }, {  68,  10 }, {  66,  27 }, {  47,  57 },
 
  807         {  -5,  71 }, {   0,  24 }, {  -1,  36 }, {  -2,  42 },
 
  808         {  -2,  52 }, {  -9,  57 }, {  -6,  63 }, {  -4,  65 },
 
  809         {  -4,  67 }, {  -7,  82 },
 
  812         {  -3,  81 }, {  -3,  76 }, {  -7,  72 }, {  -6,  78 },
 
  813         { -12,  72 }, { -14,  68 }, {  -3,  70 }, {  -6,  76 },
 
  814         {  -5,  66 }, {  -5,  62 }, {   0,  57 }, {  -4,  61 },
 
  815         {  -9,  60 }, {   1,  54 }, {   2,  58 }, {  17, -10 },
 
  816         {  32, -13 }, {  42,  -9 }, {  49,  -5 }, {  53,   0 },
 
  817         {  64,   3 }, {  68,  10 }, {  66,  27 }, {  47,  57 },
 
  820         {   0,  80 }, {  -5,  89 }, {  -7,  94 }, {  -4,  92 },
 
  821         {   0,  39 }, {   0,  65 }, { -15,  84 }, { -35, 127 },
 
  822         {  -2,  73 }, { -12, 104 }, {  -9,  91 }, { -31, 127 },
 
  823         {   0,  80 }, {  -5,  89 }, {  -7,  94 }, {  -4,  92 },
 
  824         {   0,  39 }, {   0,  65 }, { -15,  84 }, { -35, 127 },
 
  825         {  -2,  73 }, { -12, 104 }, {  -9,  91 }, { -31, 127 },
 
  826         { -13, 103 }, { -13,  91 }, {  -9,  89 }, { -14,  92 },
 
  827         {  -8,  76 }, { -12,  87 }, { -23, 110 }, { -24, 105 },
 
  828         { -10,  78 }, { -20, 112 }, { -17,  99 }, { -78, 127 },
 
  829         { -70, 127 }, { -50, 127 }, { -46, 127 }, {  -4,  66 },
 
  830         {  -5,  78 }, {  -4,  71 }, {  -8,  72 }, {   2,  59 },
 
  831         {  -1,  55 }, {  -7,  70 }, {  -6,  75 }, {  -8,  89 },
 
  832         { -34, 119 }, {  -3,  75 }, {  32,  20 }, {  30,  22 },
 
  833         { -44, 127 }, {   0,  54 }, {  -5,  61 }, {   0,  58 },
 
  834         {  -1,  60 }, {  -3,  61 }, {  -8,  67 }, { -25,  84 },
 
  835         { -14,  74 }, {  -5,  65 }, {   5,  52 }, {   2,  57 },
 
  836         {   0,  61 }, {  -9,  69 }, { -11,  70 }, {  18,  55 },
 
  837         { -13, 103 }, { -13,  91 }, {  -9,  89 }, { -14,  92 },
 
  838         {  -8,  76 }, { -12,  87 }, { -23, 110 }, { -24, 105 },
 
  839         { -10,  78 }, { -20, 112 }, { -17,  99 }, { -78, 127 },
 
  840         { -70, 127 }, { -50, 127 }, { -46, 127 }, {  -4,  66 },
 
  841         {  -5,  78 }, {  -4,  71 }, {  -8,  72 }, {   2,  59 },
 
  842         {  -1,  55 }, {  -7,  70 }, {  -6,  75 }, {  -8,  89 },
 
  843         { -34, 119 }, {  -3,  75 }, {  32,  20 }, {  30,  22 },
 
  844         { -44, 127 }, {   0,  54 }, {  -5,  61 }, {   0,  58 },
 
  845         {  -1,  60 }, {  -3,  61 }, {  -8,  67 }, { -25,  84 },
 
  846         { -14,  74 }, {  -5,  65 }, {   5,  52 }, {   2,  57 },
 
  847         {   0,  61 }, {  -9,  69 }, { -11,  70 }, {  18,  55 },
 
  848         {   4,  45 }, {  10,  28 }, {  10,  31 }, {  33, -11 },
 
  849         {  52, -43 }, {  18,  15 }, {  28,   0 }, {  35, -22 },
 
  850         {  38, -25 }, {  34,   0 }, {  39, -18 }, {  32, -12 },
 
  851         { 102, -94 }, {   0,   0 }, {  56, -15 }, {  33,  -4 },
 
  852         {  29,  10 }, {  37,  -5 }, {  51, -29 }, {  39,  -9 },
 
  853         {  52, -34 }, {  69, -58 }, {  67, -63 }, {  44,  -5 },
 
  854         {  32,   7 }, {  55, -29 }, {  32,   1 }, {   0,   0 },
 
  855         {  27,  36 }, {  33, -25 }, {  34, -30 }, {  36, -28 },
 
  856         {  38, -28 }, {  38, -27 }, {  34, -18 }, {  35, -16 },
 
  857         {  34, -14 }, {  32,  -8 }, {  37,  -6 }, {  35,   0 },
 
  858         {  30,  10 }, {  28,  18 }, {  26,  25 }, {  29,  41 },
 
  859         {   4,  45 }, {  10,  28 }, {  10,  31 }, {  33, -11 },
 
  860         {  52, -43 }, {  18,  15 }, {  28,   0 }, {  35, -22 },
 
  861         {  38, -25 }, {  34,   0 }, {  39, -18 }, {  32, -12 },
 
  862         { 102, -94 }, {   0,   0 }, {  56, -15 }, {  33,  -4 },
 
  863         {  29,  10 }, {  37,  -5 }, {  51, -29 }, {  39,  -9 },
 
  864         {  52, -34 }, {  69, -58 }, {  67, -63 }, {  44,  -5 },
 
  865         {  32,   7 }, {  55, -29 }, {  32,   1 }, {   0,   0 },
 
  866         {  27,  36 }, {  33, -25 }, {  34, -30 }, {  36, -28 },
 
  867         {  38, -28 }, {  38, -27 }, {  34, -18 }, {  35, -16 },
 
  868         {  34, -14 }, {  32,  -8 }, {  37,  -6 }, {  35,   0 },
 
  869         {  30,  10 }, {  28,  18 }, {  26,  25 }, {  29,  41 },
 
  870         {  -5,  85 }, {  -6,  81 }, { -10,  77 }, {  -7,  81 },
 
  871         { -17,  80 }, { -18,  73 }, {  -4,  74 }, { -10,  83 },
 
  872         {  -9,  71 }, {  -9,  67 }, {  -1,  61 }, {  -8,  66 },
 
  873         { -14,  66 }, {   0,  59 }, {   2,  59 }, {  -3,  81 },
 
  874         {  -3,  76 }, {  -7,  72 }, {  -6,  78 }, { -12,  72 },
 
  875         { -14,  68 }, {  -3,  70 }, {  -6,  76 }, {  -5,  66 },
 
  876         {  -5,  62 }, {   0,  57 }, {  -4,  61 }, {  -9,  60 },
 
  877         {   1,  54 }, {   2,  58 }, {  17, -10 }, {  32, -13 },
 
  878         {  42,  -9 }, {  49,  -5 }, {  53,   0 }, {  64,   3 },
 
  879         {  68,  10 }, {  66,  27 }, {  47,  57 }, {  17, -10 },
 
  880         {  32, -13 }, {  42,  -9 }, {  49,  -5 }, {  53,   0 },
 
  881         {  64,   3 }, {  68,  10 }, {  66,  27 }, {  47,  57 },
 
  882         {  -5,  71 }, {   0,  24 }, {  -1,  36 }, {  -2,  42 },
 
  883         {  -2,  52 }, {  -9,  57 }, {  -6,  63 }, {  -4,  65 },
 
  884         {  -4,  67 }, {  -7,  82 }, {  -5,  85 }, {  -6,  81 },
 
  885         { -10,  77 }, {  -7,  81 }, { -17,  80 }, { -18,  73 },
 
  886         {  -4,  74 }, { -10,  83 }, {  -9,  71 }, {  -9,  67 },
 
  887         {  -1,  61 }, {  -8,  66 }, { -14,  66 }, {   0,  59 },
 
  888         {   2,  59 }, {  -3,  81 }, {  -3,  76 }, {  -7,  72 },
 
  889         {  -6,  78 }, { -12,  72 }, { -14,  68 }, {  -3,  70 },
 
  890         {  -6,  76 }, {  -5,  66 }, {  -5,  62 }, {   0,  57 },
 
  891         {  -4,  61 }, {  -9,  60 }, {   1,  54 }, {   2,  58 },
 
  892         {  17, -10 }, {  32, -13 }, {  42,  -9 }, {  49,  -5 },
 
  893         {  53,   0 }, {  64,   3 }, {  68,  10 }, {  66,  27 },
 
  894         {  47,  57 }, {  17, -10 }, {  32, -13 }, {  42,  -9 },
 
  895         {  49,  -5 }, {  53,   0 }, {  64,   3 }, {  68,  10 },
 
  896         {  66,  27 }, {  47,  57 }, {  -5,  71 }, {   0,  24 },
 
  897         {  -1,  36 }, {  -2,  42 }, {  -2,  52 }, {  -9,  57 },
 
  898         {  -6,  63 }, {  -4,  65 }, {  -4,  67 }, {  -7,  82 },
 
  899         { -21, 126 }, { -23, 124 }, { -20, 110 }, { -26, 126 },
 
  900         { -25, 124 }, { -17, 105 }, { -27, 121 }, { -27, 117 },
 
  901         { -17, 102 }, { -26, 117 }, { -27, 116 }, { -33, 122 },
 
  902         { -10,  95 }, { -14, 100 }, {  -8,  95 }, { -17, 111 },
 
  903         { -28, 114 }, {  -6,  89 }, {  -2,  80 }, {  -4,  82 },
 
  904         {  -9,  85 }, {  -8,  81 }, {  -1,  72 }, {   5,  64 },
 
  905         {   1,  67 }, {   9,  56 }, {   0,  69 }, {   1,  69 },
 
  906         {   7,  69 }, {  -7,  69 }, {  -6,  67 }, { -16,  77 },
 
  907         {  -2,  64 }, {   2,  61 }, {  -6,  67 }, {  -3,  64 },
 
  908         {   2,  57 }, {  -3,  65 }, {  -3,  66 }, {   0,  62 },
 
  909         {   9,  51 }, {  -1,  66 }, {  -2,  71 }, {  -2,  75 },
 
  910         { -21, 126 }, { -23, 124 }, { -20, 110 }, { -26, 126 },
 
  911         { -25, 124 }, { -17, 105 }, { -27, 121 }, { -27, 117 },
 
  912         { -17, 102 }, { -26, 117 }, { -27, 116 }, { -33, 122 },
 
  913         { -10,  95 }, { -14, 100 }, {  -8,  95 }, { -17, 111 },
 
  914         { -28, 114 }, {  -6,  89 }, {  -2,  80 }, {  -4,  82 },
 
  915         {  -9,  85 }, {  -8,  81 }, {  -1,  72 }, {   5,  64 },
 
  916         {   1,  67 }, {   9,  56 }, {   0,  69 }, {   1,  69 },
 
  917         {   7,  69 }, {  -7,  69 }, {  -6,  67 }, { -16,  77 },
 
  918         {  -2,  64 }, {   2,  61 }, {  -6,  67 }, {  -3,  64 },
 
  919         {   2,  57 }, {  -3,  65 }, {  -3,  66 }, {   0,  62 },
 
  920         {   9,  51 }, {  -1,  66 }, {  -2,  71 }, {  -2,  75 },
 
  921         {  19,  -6 }, {  18,  -6 }, {  14,   0 }, {  26, -12 },
 
  922         {  31, -16 }, {  33, -25 }, {  33, -22 }, {  37, -28 },
 
  923         {  39, -30 }, {  42, -30 }, {  47, -42 }, {  45, -36 },
 
  924         {  49, -34 }, {  41, -17 }, {  32,   9 }, {  69, -71 },
 
  925         {  63, -63 }, {  66, -64 }, {  77, -74 }, {  54, -39 },
 
  926         {  52, -35 }, {  41, -10 }, {  36,   0 }, {  40,  -1 },
 
  927         {  30,  14 }, {  28,  26 }, {  23,  37 }, {  12,  55 },
 
  928         {  11,  65 }, {  37, -33 }, {  39, -36 }, {  40, -37 },
 
  929         {  38, -30 }, {  46, -33 }, {  42, -30 }, {  40, -24 },
 
  930         {  49, -29 }, {  38, -12 }, {  40, -10 }, {  38,  -3 },
 
  931         {  46,  -5 }, {  31,  20 }, {  29,  30 }, {  25,  44 },
 
  932         {  19,  -6 }, {  18,  -6 }, {  14,   0 }, {  26, -12 },
 
  933         {  31, -16 }, {  33, -25 }, {  33, -22 }, {  37, -28 },
 
  934         {  39, -30 }, {  42, -30 }, {  47, -42 }, {  45, -36 },
 
  935         {  49, -34 }, {  41, -17 }, {  32,   9 }, {  69, -71 },
 
  936         {  63, -63 }, {  66, -64 }, {  77, -74 }, {  54, -39 },
 
  937         {  52, -35 }, {  41, -10 }, {  36,   0 }, {  40,  -1 },
 
  938         {  30,  14 }, {  28,  26 }, {  23,  37 }, {  12,  55 },
 
  939         {  11,  65 }, {  37, -33 }, {  39, -36 }, {  40, -37 },
 
  940         {  38, -30 }, {  46, -33 }, {  42, -30 }, {  40, -24 },
 
  941         {  49, -29 }, {  38, -12 }, {  40, -10 }, {  38,  -3 },
 
  942         {  46,  -5 }, {  31,  20 }, {  29,  30 }, {  25,  44 },
 
  943         { -23, 112 }, { -15,  71 }, {  -7,  61 }, {   0,  53 },
 
  944         {  -5,  66 }, { -11,  77 }, {  -9,  80 }, {  -9,  84 },
 
  945         { -10,  87 }, { -34, 127 }, { -21, 101 }, {  -3,  39 },
 
  946         {  -5,  53 }, {  -7,  61 }, { -11,  75 }, { -15,  77 },
 
  947         { -17,  91 }, { -25, 107 }, { -25, 111 }, { -28, 122 },
 
  948         { -11,  76 }, { -10,  44 }, { -10,  52 }, { -10,  57 },
 
  949         {  -9,  58 }, { -16,  72 }, {  -7,  69 }, {  -4,  69 },
 
  950         {  -5,  74 }, {  -9,  86 }, { -23, 112 }, { -15,  71 },
 
  951         {  -7,  61 }, {   0,  53 }, {  -5,  66 }, { -11,  77 },
 
  952         {  -9,  80 }, {  -9,  84 }, { -10,  87 }, { -34, 127 },
 
  953         { -21, 101 }, {  -3,  39 }, {  -5,  53 }, {  -7,  61 },
 
  954         { -11,  75 }, { -15,  77 }, { -17,  91 }, { -25, 107 },
 
  955         { -25, 111 }, { -28, 122 }, { -11,  76 }, { -10,  44 },
 
  956         { -10,  52 }, { -10,  57 }, {  -9,  58 }, { -16,  72 },
 
  957         {  -7,  69 }, {  -4,  69 }, {  -5,  74 }, {  -9,  86 },
 
  958         {  -2,  73 }, { -12, 104 }, {  -9,  91 }, { -31, 127 },
 
  959         {  -2,  73 }, { -12, 104 }, {  -9,  91 }, { -31, 127 },
 
  960         {  -2,  73 }, { -12, 104 }, {  -9,  91 }, { -31, 127 }
 
  966         {  20, -15 }, {   2,  54 }, {   3,  74 }, {  20, -15 },
 
  967         {   2,  54 }, {   3,  74 }, { -28, 127 }, { -23, 104 },
 
  968         {  -6,  53 }, {  -1,  54 }, {   7,  51 },
 
  971         {  29,  16 }, {  25,   0 }, {  14,   0 }, { -10,  51 },
 
  972         {  -3,  62 }, { -27,  99 }, {  26,  16 }, {  -4,  85 },
 
  973         { -24, 102 }, {   5,  57 }, {   6,  57 }, { -17,  73 },
 
  977         {  20,  40 }, {  20,  10 }, {  29,   0 }, {  54,   0 },
 
  978         {  37,  42 }, {  12,  97 }, { -32, 127 }, { -22, 117 },
 
  979         {  -2,  74 }, {  -4,  85 }, { -24, 102 }, {   5,  57 },
 
  980         {  -6,  93 }, { -14,  88 }, {  -6,  44 }, {   4,  55 },
 
  983         { -11,  89 },{ -15,  103 },{ -21,  116 },{  19,  57 },
 
  984         {  20,  58 },{   4,  84 },{   6,  96 },{   1,  63 },
 
  985         {  -5,  85 },{ -13,  106 },{   5,  63 },{   6,  75 },
 
  986         {  -3,  90 },{  -1,  101 },
 
  989         {   3,  55 },{  -4,  79 },{  -2,  75 },{ -12,  97 },
 
  990         {  -7,  50 },{   1,  60 },
 
  993         { 0, 41 },   { 0, 63 },   { 0, 63 },     { 0, 63 },
 
  994         { -9, 83 },  { 4, 86 },   { 0, 97 },     { -7, 72 },
 
  995         { 13, 41 },  { 3, 62 },
 
  998         {   7,  34 }, {  -9,  88 }, { -20, 127 }, { -36, 127 },
 
  999         { -17,  91 }, { -14,  95 }, { -25,  84 }, { -25,  86 },
 
 1000         { -12,  89 }, { -17,  91 }, { -31, 127 }, { -14,  76 },
 
 1001         { -18, 103 }, { -13,  90 }, { -37, 127 }, {  11,  80 },
 
 1002         {   5,  76 }, {   2,  84 }, {   5,  78 }, {  -6,  55 },
 
 1003         {   4,  61 }, { -14,  83 }, { -37, 127 }, {  -5,  79 },
 
 1004         { -11, 104 }, { -11,  91 }, { -30, 127 }, {   0,  65 },
 
 1005         {  -2,  79 }, {   0,  72 }, {  -4,  92 }, {  -6,  56 },
 
 1006         {   3,  68 }, {  -8,  71 }, { -13,  98 },
 
 1009         {  -4,  86 }, { -12,  88 }, {  -5,  82 }, {  -3,  72 },
 
 1010         {  -4,  67 }, {  -8,  72 }, { -16,  89 }, {  -9,  69 },
 
 1011         {  -1,  59 }, {   5,  66 }, {   4,  57 }, {  -4,  71 },
 
 1012         {  -2,  71 }, {   2,  58 }, {  -1,  74 }, {  -4,  44 },
 
 1013         {  -1,  69 }, {   0,  62 }, {  -7,  51 }, {  -4,  47 },
 
 1014         {  -6,  42 }, {  -3,  41 }, {  -6,  53 }, {   8,  76 },
 
 1015         {  -9,  78 }, { -11,  83 }, {   9,  52 }, {   0,  67 },
 
 1016         {  -5,  90 }, {   1,  67 }, { -15,  72 }, {  -5,  75 },
 
 1017         {  -8,  80 }, { -21,  83 }, { -21,  64 }, { -13,  31 },
 
 1018         { -25,  64 }, { -29,  94 }, {   9,  75 }, {  17,  63 },
 
 1019         {  -8,  74 }, {  -5,  35 }, {  -2,  27 }, {  13,  91 },
 
 1020         {   3,  65 }, {  -7,  69 }, {   8,  77 }, { -10,  66 },
 
 1021         {   3,  62 }, {  -3,  68 }, { -20,  81 }, {   0,  30 },
 
 1022         {   1,   7 }, {  -3,  23 }, { -21,  74 }, {  16,  66 },
 
 1023         { -23, 124 }, {  17,  37 }, {  44, -18 }, {  50, -34 },
 
 1027         {   4,  39 }, {   0,  42 }, {   7,  34 }, {  11,  29 },
 
 1028         {   8,  31 }, {   6,  37 }, {   7,  42 }, {   3,  40 },
 
 1029         {   8,  33 }, {  13,  43 }, {  13,  36 }, {   4,  47 },
 
 1030         {   3,  55 }, {   2,  58 }, {   6,  60 }, {   8,  44 },
 
 1031         {  11,  44 }, {  14,  42 }, {   7,  48 }, {   4,  56 },
 
 1032         {   4,  52 }, {  13,  37 }, {   9,  49 }, {  19,  58 },
 
 1033         {  10,  48 }, {  12,  45 }, {   0,  69 }, {  20,  33 },
 
 1034         {   8,  63 }, {  35, -18 }, {  33, -25 }, {  28,  -3 },
 
 1035         {  24,  10 }, {  27,   0 }, {  34, -14 }, {  52, -44 },
 
 1036         {  39, -24 }, {  19,  17 }, {  31,  25 }, {  36,  29 },
 
 1037         {  24,  33 }, {  34,  15 }, {  30,  20 }, {  22,  73 },
 
 1038         {  20,  34 }, {  19,  31 }, {  27,  44 }, {  19,  16 },
 
 1039         {  15,  36 }, {  15,  36 }, {  21,  28 }, {  25,  21 },
 
 1040         {  30,  20 }, {  31,  12 }, {  27,  16 }, {  24,  42 },
 
 1041         {   0,  93 }, {  14,  56 }, {  15,  57 }, {  26,  38 },
 
 1045         { -24, 115 }, { -22,  82 }, {  -9,  62 }, {   0,  53 },
 
 1046         {   0,  59 }, { -14,  85 }, { -13,  89 }, { -13,  94 },
 
 1047         { -11,  92 }, { -29, 127 }, { -21, 100 }, { -14,  57 },
 
 1048         { -12,  67 }, { -11,  71 }, { -10,  77 }, { -21,  85 },
 
 1049         { -16,  88 }, { -23, 104 }, { -15,  98 }, { -37, 127 },
 
 1050         { -10,  82 }, {  -8,  48 }, {  -8,  61 }, {  -8,  66 },
 
 1051         {  -7,  70 }, { -14,  75 }, { -10,  79 }, {  -9,  83 },
 
 1052         { -12,  92 }, { -18, 108 }, {  -4,  79 }, { -22,  69 },
 
 1053         { -16,  75 }, {  -2,  58 }, {   1,  58 }, { -13,  78 },
 
 1054         {  -9,  83 }, {  -4,  81 }, { -13,  99 }, { -13,  81 },
 
 1055         {  -6,  38 }, { -13,  62 }, {  -6,  58 }, {  -2,  59 },
 
 1056         { -16,  73 }, { -10,  76 }, { -13,  86 }, {  -9,  83 },
 
 1063         { -22, 127 }, { -25, 127 }, { -25, 120 }, { -27, 127 },
 
 1064         { -19, 114 }, { -23, 117 }, { -25, 118 }, { -26, 117 },
 
 1065         { -24, 113 }, { -28, 118 }, { -31, 120 }, { -37, 124 },
 
 1066         { -10,  94 }, { -15, 102 }, { -10,  99 }, { -13, 106 },
 
 1067         { -50, 127 }, {  -5,  92 }, {  17,  57 }, {  -5,  86 },
 
 1068         { -13,  94 }, { -12,  91 }, {  -2,  77 }, {   0,  71 },
 
 1069         {  -1,  73 }, {   4,  64 }, {  -7,  81 }, {   5,  64 },
 
 1070         {  15,  57 }, {   1,  67 }, {   0,  68 }, { -10,  67 },
 
 1071         {   1,  68 }, {   0,  77 }, {   2,  64 }, {   0,  68 },
 
 1072         {  -5,  78 }, {   7,  55 }, {   5,  59 }, {   2,  65 },
 
 1073         {  14,  54 }, {  15,  44 }, {   5,  60 }, {   2,  70 },
 
 1074         {  -2,  76 }, { -18,  86 }, {  12,  70 }, {   5,  64 },
 
 1075         { -12,  70 }, {  11,  55 }, {   5,  56 }, {   0,  69 },
 
 1076         {   2,  65 }, {  -6,  74 }, {   5,  54 }, {   7,  54 },
 
 1077         {  -6,  76 }, { -11,  82 }, {  -2,  77 }, {  -2,  77 },
 
 1081         {  17, -13 }, {  16,  -9 }, {  17, -12 }, {  27, -21 },
 
 1082         {  37, -30 }, {  41, -40 }, {  42, -41 }, {  48, -47 },
 
 1083         {  39, -32 }, {  46, -40 }, {  52, -51 }, {  46, -41 },
 
 1084         {  52, -39 }, {  43, -19 }, {  32,  11 }, {  61, -55 },
 
 1085         {  56, -46 }, {  62, -50 }, {  81, -67 }, {  45, -20 },
 
 1086         {  35,  -2 }, {  28,  15 }, {  34,   1 }, {  39,   1 },
 
 1087         {  30,  17 }, {  20,  38 }, {  18,  45 }, {  15,  54 },
 
 1088         {   0,  79 }, {  36, -16 }, {  37, -14 }, {  37, -17 },
 
 1089         {  32,   1 }, {  34,  15 }, {  29,  15 }, {  24,  25 },
 
 1090         {  34,  22 }, {  31,  16 }, {  35,  18 }, {  31,  28 },
 
 1091         {  33,  41 }, {  36,  28 }, {  27,  47 }, {  21,  62 },
 
 1092         {  18,  31 }, {  19,  26 }, {  36,  24 }, {  24,  23 },
 
 1093         {  27,  16 }, {  24,  30 }, {  31,  29 }, {  22,  41 },
 
 1094         {  22,  42 }, {  16,  60 }, {  15,  52 }, {  14,  60 },
 
 1095         {   3,  78 }, { -16, 123 }, {  21,  53 }, {  22,  56 },
 
 1099         {  21,  33 }, {  19,  50 }, {  17,  61 },
 
 1100         {  -3,  78 }, {  -8,  74 }, {  -9,  72 }, { -10,  72 },
 
 1101         { -18,  75 }, { -12,  71 }, { -11,  63 }, {  -5,  70 },
 
 1102         { -17,  75 }, { -14,  72 }, { -16,  67 }, {  -8,  53 },
 
 1103         { -14,  59 }, {  -9,  52 }, { -11,  68 }, {   9,  -2 },
 
 1104         {  30, -10 }, {  31,  -4 }, {  33,  -1 }, {  33,   7 },
 
 1105         {  31,  12 }, {  37,  23 }, {  31,  38 }, {  20,  64 },
 
 1106         {  -9,  71 }, {  -7,  37 }, {  -8,  44 }, { -11,  49 },
 
 1107         { -10,  56 }, { -12,  59 }, {  -8,  63 }, {  -9,  67 },
 
 1108         {  -6,  68 }, { -10,  79 },
 
 1111         {  -3,  78 }, {  -8,  74 }, {  -9,  72 }, { -10,  72 },
 
 1112         { -18,  75 }, { -12,  71 }, { -11,  63 }, {  -5,  70 },
 
 1113         { -17,  75 }, { -14,  72 }, { -16,  67 }, {  -8,  53 },
 
 1114         { -14,  59 }, {  -9,  52 }, { -11,  68 }, {   9,  -2 },
 
 1115         {  30, -10 }, {  31,  -4 }, {  33,  -1 }, {  33,   7 },
 
 1116         {  31,  12 }, {  37,  23 }, {  31,  38 }, {  20,  64 },
 
 1119         {  11,  80 }, {   5,  76 }, {   2,  84 }, {   5,  78 },
 
 1120         {  -6,  55 }, {   4,  61 }, { -14,  83 }, { -37, 127 },
 
 1121         {  -5,  79 }, { -11, 104 }, { -11,  91 }, { -30, 127 },
 
 1122         {  11,  80 }, {   5,  76 }, {   2,  84 }, {   5,  78 },
 
 1123         {  -6,  55 }, {   4,  61 }, { -14,  83 }, { -37, 127 },
 
 1124         {  -5,  79 }, { -11, 104 }, { -11,  91 }, { -30, 127 },
 
 1125         {  -4,  86 }, { -12,  88 }, {  -5,  82 }, {  -3,  72 },
 
 1126         {  -4,  67 }, {  -8,  72 }, { -16,  89 }, {  -9,  69 },
 
 1127         {  -1,  59 }, {   5,  66 }, {   4,  57 }, {  -4,  71 },
 
 1128         {  -2,  71 }, {   2,  58 }, {  -1,  74 }, {  -4,  44 },
 
 1129         {  -1,  69 }, {   0,  62 }, {  -7,  51 }, {  -4,  47 },
 
 1130         {  -6,  42 }, {  -3,  41 }, {  -6,  53 }, {   8,  76 },
 
 1131         {  -9,  78 }, { -11,  83 }, {   9,  52 }, {   0,  67 },
 
 1132         {  -5,  90 }, {   1,  67 }, { -15,  72 }, {  -5,  75 },
 
 1133         {  -8,  80 }, { -21,  83 }, { -21,  64 }, { -13,  31 },
 
 1134         { -25,  64 }, { -29,  94 }, {   9,  75 }, {  17,  63 },
 
 1135         {  -8,  74 }, {  -5,  35 }, {  -2,  27 }, {  13,  91 },
 
 1136         {  -4,  86 }, { -12,  88 }, {  -5,  82 }, {  -3,  72 },
 
 1137         {  -4,  67 }, {  -8,  72 }, { -16,  89 }, {  -9,  69 },
 
 1138         {  -1,  59 }, {   5,  66 }, {   4,  57 }, {  -4,  71 },
 
 1139         {  -2,  71 }, {   2,  58 }, {  -1,  74 }, {  -4,  44 },
 
 1140         {  -1,  69 }, {   0,  62 }, {  -7,  51 }, {  -4,  47 },
 
 1141         {  -6,  42 }, {  -3,  41 }, {  -6,  53 }, {   8,  76 },
 
 1142         {  -9,  78 }, { -11,  83 }, {   9,  52 }, {   0,  67 },
 
 1143         {  -5,  90 }, {   1,  67 }, { -15,  72 }, {  -5,  75 },
 
 1144         {  -8,  80 }, { -21,  83 }, { -21,  64 }, { -13,  31 },
 
 1145         { -25,  64 }, { -29,  94 }, {   9,  75 }, {  17,  63 },
 
 1146         {  -8,  74 }, {  -5,  35 }, {  -2,  27 }, {  13,  91 },
 
 1147         {   4,  39 }, {   0,  42 }, {   7,  34 }, {  11,  29 },
 
 1148         {   8,  31 }, {   6,  37 }, {   7,  42 }, {   3,  40 },
 
 1149         {   8,  33 }, {  13,  43 }, {  13,  36 }, {   4,  47 },
 
 1150         {   3,  55 }, {   2,  58 }, {   6,  60 }, {   8,  44 },
 
 1151         {  11,  44 }, {  14,  42 }, {   7,  48 }, {   4,  56 },
 
 1152         {   4,  52 }, {  13,  37 }, {   9,  49 }, {  19,  58 },
 
 1153         {  10,  48 }, {  12,  45 }, {   0,  69 }, {  20,  33 },
 
 1154         {   8,  63 }, {  35, -18 }, {  33, -25 }, {  28,  -3 },
 
 1155         {  24,  10 }, {  27,   0 }, {  34, -14 }, {  52, -44 },
 
 1156         {  39, -24 }, {  19,  17 }, {  31,  25 }, {  36,  29 },
 
 1157         {  24,  33 }, {  34,  15 }, {  30,  20 }, {  22,  73 },
 
 1158         {   4,  39 }, {   0,  42 }, {   7,  34 }, {  11,  29 },
 
 1159         {   8,  31 }, {   6,  37 }, {   7,  42 }, {   3,  40 },
 
 1160         {   8,  33 }, {  13,  43 }, {  13,  36 }, {   4,  47 },
 
 1161         {   3,  55 }, {   2,  58 }, {   6,  60 }, {   8,  44 },
 
 1162         {  11,  44 }, {  14,  42 }, {   7,  48 }, {   4,  56 },
 
 1163         {   4,  52 }, {  13,  37 }, {   9,  49 }, {  19,  58 },
 
 1164         {  10,  48 }, {  12,  45 }, {   0,  69 }, {  20,  33 },
 
 1165         {   8,  63 }, {  35, -18 }, {  33, -25 }, {  28,  -3 },
 
 1166         {  24,  10 }, {  27,   0 }, {  34, -14 }, {  52, -44 },
 
 1167         {  39, -24 }, {  19,  17 }, {  31,  25 }, {  36,  29 },
 
 1168         {  24,  33 }, {  34,  15 }, {  30,  20 }, {  22,  73 },
 
 1169         {  -3,  78 }, {  -8,  74 }, {  -9,  72 }, { -10,  72 },
 
 1170         { -18,  75 }, { -12,  71 }, { -11,  63 }, {  -5,  70 },
 
 1171         { -17,  75 }, { -14,  72 }, { -16,  67 }, {  -8,  53 },
 
 1172         { -14,  59 }, {  -9,  52 }, { -11,  68 }, {  -3,  78 },
 
 1173         {  -8,  74 }, {  -9,  72 }, { -10,  72 }, { -18,  75 },
 
 1174         { -12,  71 }, { -11,  63 }, {  -5,  70 }, { -17,  75 },
 
 1175         { -14,  72 }, { -16,  67 }, {  -8,  53 }, { -14,  59 },
 
 1176         {  -9,  52 }, { -11,  68 }, {   9,  -2 }, {  30, -10 },
 
 1177         {  31,  -4 }, {  33,  -1 }, {  33,   7 }, {  31,  12 },
 
 1178         {  37,  23 }, {  31,  38 }, {  20,  64 }, {   9,  -2 },
 
 1179         {  30, -10 }, {  31,  -4 }, {  33,  -1 }, {  33,   7 },
 
 1180         {  31,  12 }, {  37,  23 }, {  31,  38 }, {  20,  64 },
 
 1181         {  -9,  71 }, {  -7,  37 }, {  -8,  44 }, { -11,  49 },
 
 1182         { -10,  56 }, { -12,  59 }, {  -8,  63 }, {  -9,  67 },
 
 1183         {  -6,  68 }, { -10,  79 }, {  -3,  78 }, {  -8,  74 },
 
 1184         {  -9,  72 }, { -10,  72 }, { -18,  75 }, { -12,  71 },
 
 1185         { -11,  63 }, {  -5,  70 }, { -17,  75 }, { -14,  72 },
 
 1186         { -16,  67 }, {  -8,  53 }, { -14,  59 }, {  -9,  52 },
 
 1187         { -11,  68 }, {  -3,  78 }, {  -8,  74 }, {  -9,  72 },
 
 1188         { -10,  72 }, { -18,  75 }, { -12,  71 }, { -11,  63 },
 
 1189         {  -5,  70 }, { -17,  75 }, { -14,  72 }, { -16,  67 },
 
 1190         {  -8,  53 }, { -14,  59 }, {  -9,  52 }, { -11,  68 },
 
 1191         {   9,  -2 }, {  30, -10 }, {  31,  -4 }, {  33,  -1 },
 
 1192         {  33,   7 }, {  31,  12 }, {  37,  23 }, {  31,  38 },
 
 1193         {  20,  64 }, {   9,  -2 }, {  30, -10 }, {  31,  -4 },
 
 1194         {  33,  -1 }, {  33,   7 }, {  31,  12 }, {  37,  23 },
 
 1195         {  31,  38 }, {  20,  64 }, {  -9,  71 }, {  -7,  37 },
 
 1196         {  -8,  44 }, { -11,  49 }, { -10,  56 }, { -12,  59 },
 
 1197         {  -8,  63 }, {  -9,  67 }, {  -6,  68 }, { -10,  79 },
 
 1198         { -22, 127 }, { -25, 127 }, { -25, 120 }, { -27, 127 },
 
 1199         { -19, 114 }, { -23, 117 }, { -25, 118 }, { -26, 117 },
 
 1200         { -24, 113 }, { -28, 118 }, { -31, 120 }, { -37, 124 },
 
 1201         { -10,  94 }, { -15, 102 }, { -10,  99 }, { -13, 106 },
 
 1202         { -50, 127 }, {  -5,  92 }, {  17,  57 }, {  -5,  86 },
 
 1203         { -13,  94 }, { -12,  91 }, {  -2,  77 }, {   0,  71 },
 
 1204         {  -1,  73 }, {   4,  64 }, {  -7,  81 }, {   5,  64 },
 
 1205         {  15,  57 }, {   1,  67 }, {   0,  68 }, { -10,  67 },
 
 1206         {   1,  68 }, {   0,  77 }, {   2,  64 }, {   0,  68 },
 
 1207         {  -5,  78 }, {   7,  55 }, {   5,  59 }, {   2,  65 },
 
 1208         {  14,  54 }, {  15,  44 }, {   5,  60 }, {   2,  70 },
 
 1209         { -22, 127 }, { -25, 127 }, { -25, 120 }, { -27, 127 },
 
 1210         { -19, 114 }, { -23, 117 }, { -25, 118 }, { -26, 117 },
 
 1211         { -24, 113 }, { -28, 118 }, { -31, 120 }, { -37, 124 },
 
 1212         { -10,  94 }, { -15, 102 }, { -10,  99 }, { -13, 106 },
 
 1213         { -50, 127 }, {  -5,  92 }, {  17,  57 }, {  -5,  86 },
 
 1214         { -13,  94 }, { -12,  91 }, {  -2,  77 }, {   0,  71 },
 
 1215         {  -1,  73 }, {   4,  64 }, {  -7,  81 }, {   5,  64 },
 
 1216         {  15,  57 }, {   1,  67 }, {   0,  68 }, { -10,  67 },
 
 1217         {   1,  68 }, {   0,  77 }, {   2,  64 }, {   0,  68 },
 
 1218         {  -5,  78 }, {   7,  55 }, {   5,  59 }, {   2,  65 },
 
 1219         {  14,  54 }, {  15,  44 }, {   5,  60 }, {   2,  70 },
 
 1220         {  17, -13 }, {  16,  -9 }, {  17, -12 }, {  27, -21 },
 
 1221         {  37, -30 }, {  41, -40 }, {  42, -41 }, {  48, -47 },
 
 1222         {  39, -32 }, {  46, -40 }, {  52, -51 }, {  46, -41 },
 
 1223         {  52, -39 }, {  43, -19 }, {  32,  11 }, {  61, -55 },
 
 1224         {  56, -46 }, {  62, -50 }, {  81, -67 }, {  45, -20 },
 
 1225         {  35,  -2 }, {  28,  15 }, {  34,   1 }, {  39,   1 },
 
 1226         {  30,  17 }, {  20,  38 }, {  18,  45 }, {  15,  54 },
 
 1227         {   0,  79 }, {  36, -16 }, {  37, -14 }, {  37, -17 },
 
 1228         {  32,   1 }, {  34,  15 }, {  29,  15 }, {  24,  25 },
 
 1229         {  34,  22 }, {  31,  16 }, {  35,  18 }, {  31,  28 },
 
 1230         {  33,  41 }, {  36,  28 }, {  27,  47 }, {  21,  62 },
 
 1231         {  17, -13 }, {  16,  -9 }, {  17, -12 }, {  27, -21 },
 
 1232         {  37, -30 }, {  41, -40 }, {  42, -41 }, {  48, -47 },
 
 1233         {  39, -32 }, {  46, -40 }, {  52, -51 }, {  46, -41 },
 
 1234         {  52, -39 }, {  43, -19 }, {  32,  11 }, {  61, -55 },
 
 1235         {  56, -46 }, {  62, -50 }, {  81, -67 }, {  45, -20 },
 
 1236         {  35,  -2 }, {  28,  15 }, {  34,   1 }, {  39,   1 },
 
 1237         {  30,  17 }, {  20,  38 }, {  18,  45 }, {  15,  54 },
 
 1238         {   0,  79 }, {  36, -16 }, {  37, -14 }, {  37, -17 },
 
 1239         {  32,   1 }, {  34,  15 }, {  29,  15 }, {  24,  25 },
 
 1240         {  34,  22 }, {  31,  16 }, {  35,  18 }, {  31,  28 },
 
 1241         {  33,  41 }, {  36,  28 }, {  27,  47 }, {  21,  62 },
 
 1242         { -24, 115 }, { -22,  82 }, {  -9,  62 }, {   0,  53 },
 
 1243         {   0,  59 }, { -14,  85 }, { -13,  89 }, { -13,  94 },
 
 1244         { -11,  92 }, { -29, 127 }, { -21, 100 }, { -14,  57 },
 
 1245         { -12,  67 }, { -11,  71 }, { -10,  77 }, { -21,  85 },
 
 1246         { -16,  88 }, { -23, 104 }, { -15,  98 }, { -37, 127 },
 
 1247         { -10,  82 }, {  -8,  48 }, {  -8,  61 }, {  -8,  66 },
 
 1248         {  -7,  70 }, { -14,  75 }, { -10,  79 }, {  -9,  83 },
 
 1249         { -12,  92 }, { -18, 108 }, { -24, 115 }, { -22,  82 },
 
 1250         {  -9,  62 }, {   0,  53 }, {   0,  59 }, { -14,  85 },
 
 1251         { -13,  89 }, { -13,  94 }, { -11,  92 }, { -29, 127 },
 
 1252         { -21, 100 }, { -14,  57 }, { -12,  67 }, { -11,  71 },
 
 1253         { -10,  77 }, { -21,  85 }, { -16,  88 }, { -23, 104 },
 
 1254         { -15,  98 }, { -37, 127 }, { -10,  82 }, {  -8,  48 },
 
 1255         {  -8,  61 }, {  -8,  66 }, {  -7,  70 }, { -14,  75 },
 
 1256         { -10,  79 }, {  -9,  83 }, { -12,  92 }, { -18, 108 },
 
 1257         {  -5,  79 }, { -11, 104 }, { -11,  91 }, { -30, 127 },
 
 1258         {  -5,  79 }, { -11, 104 }, { -11,  91 }, { -30, 127 },
 
 1259         {  -5,  79 }, { -11, 104 }, { -11,  91 }, { -30, 127 }
 
 1266     const int8_t (*
tab)[2];
 
 1273     for( i= 0; i < 1024; i++ ) {
 
 1274         int pre = 2*(((
tab[i][0] * slice_qp) >>4 ) + 
tab[i][1]) - 127;
 
 1288     unsigned long ctx = 0;
 
 1297                                       int ctx_base, 
int intra_slice)
 
 1335         int mb_xy = mb_x + (mb_y&~1)*h->
mb_stride;
 
 1350         int mb_xy = sl->
mb_xy;
 
 1376     return mode + ( mode >= pred_mode );
 
 1406     int cbp_b, cbp_a, 
ctx, cbp = 0;
 
 1411     ctx = !(cbp_a & 0x02) + 2 * !(cbp_b & 0x04);
 
 1413     ctx = !(cbp   & 0x01) + 2 * !(cbp_b & 0x08);
 
 1415     ctx = !(cbp_a & 0x08) + 2 * !(cbp   & 0x01);
 
 1417     ctx = !(cbp   & 0x04) + 2 * !(cbp   & 0x02);
 
 1427     cbp_b = (sl-> top_cbp>>4)&0x03;
 
 1430     if( cbp_a > 0 ) ctx++;
 
 1431     if( cbp_b > 0 ) ctx += 2;
 
 1436     if( cbp_a == 2 ) ctx++;
 
 1437     if( cbp_b == 2 ) ctx += 2;
 
 1529         *mvda=mvd < 70 ? mvd : 70;
 
 1535 #define DECODE_CABAC_MB_MVD(sl, list,  n )\ 
 1537     int amvd0 = sl->mvd_cache[list][scan8[n] - 1][0] +\ 
 1538                 sl->mvd_cache[list][scan8[n] - 8][0];\ 
 1539     int amvd1 = sl->mvd_cache[list][scan8[n] - 1][1] +\ 
 1540                 sl->mvd_cache[list][scan8[n] - 8][1];\ 
 1542     int mxd = decode_cabac_mb_mvd(sl, 40, amvd0, &mpx);\ 
 1543     int myd = decode_cabac_mb_mvd(sl, 47, amvd1, &mpy);\ 
 1544     if (mxd == INT_MIN || myd == INT_MIN) \ 
 1545         return AVERROR_INVALIDDATA; \ 
 1551                                               int cat, 
int idx, 
int max_coeff,
 
 1556     static const uint16_t base_ctx[14] = {85,89,93,97,101,1012,460,464,468,1016,472,476,480,1020};
 
 1561             nza = (sl->
left_cbp>>(6+idx))&0x01;
 
 1562             nzb = (sl-> top_cbp>>(6+idx))&0x01;
 
 1566             nzb = sl-> top_cbp&(0x100<<idx);
 
 1579     return base_ctx[
cat] + 
ctx;
 
 1586                                const uint32_t *qmul, 
int max_coeff,
 
 1587                                int is_dc, 
int chroma422)
 
 1589     static const int significant_coeff_flag_offset[2][14] = {
 
 1590       { 105+0, 105+15, 105+29, 105+44, 105+47, 402, 484+0, 484+15, 484+29, 660, 528+0, 528+15, 528+29, 718 },
 
 1591       { 277+0, 277+15, 277+29, 277+44, 277+47, 436, 776+0, 776+15, 776+29, 675, 820+0, 820+15, 820+29, 733 }
 
 1593     static const int last_coeff_flag_offset[2][14] = {
 
 1594       { 166+0, 166+15, 166+29, 166+44, 166+47, 417, 572+0, 572+15, 572+29, 690, 616+0, 616+15, 616+29, 748 },
 
 1595       { 338+0, 338+15, 338+29, 338+44, 338+47, 451, 864+0, 864+15, 864+29, 699, 908+0, 908+15, 908+29, 757 }
 
 1597     static const int coeff_abs_level_m1_offset[14] = {
 
 1598         227+0, 227+10, 227+20, 227+30, 227+39, 426, 952+0, 952+10, 952+20, 708, 982+0, 982+10, 982+20, 766
 
 1600     static const uint8_t significant_coeff_flag_offset_8x8[2][63] = {
 
 1601       { 0, 1, 2, 3, 4, 5, 5, 4, 4, 3, 3, 4, 4, 4, 5, 5,
 
 1602         4, 4, 4, 4, 3, 3, 6, 7, 7, 7, 8, 9,10, 9, 8, 7,
 
 1603         7, 6,11,12,13,11, 6, 7, 8, 9,14,10, 9, 8, 6,11,
 
 1604        12,13,11, 6, 9,14,10, 9,11,12,13,11,14,10,12 },
 
 1605       { 0, 1, 1, 2, 2, 3, 3, 4, 5, 6, 7, 7, 7, 8, 4, 5,
 
 1606         6, 9,10,10, 8,11,12,11, 9, 9,10,10, 8,11,12,11,
 
 1607         9, 9,10,10, 8,11,12,11, 9, 9,10,10, 8,13,13, 9,
 
 1608         9,10,10, 8,13,13, 9, 9,10,10,14,14,14,14,14 }
 
 1610     static const uint8_t sig_coeff_offset_dc[7] = { 0, 0, 1, 1, 2, 2, 2 };
 
 1614     static const uint8_t coeff_abs_level1_ctx[8] = { 1, 2, 3, 4, 0, 0, 0, 0 };
 
 1616     static const uint8_t coeff_abs_levelgt1_ctx[2][8] = {
 
 1617         { 5, 5, 5, 5, 6, 7, 8, 9 },
 
 1618         { 5, 5, 5, 5, 6, 7, 8, 8 }, 
 
 1620     static const uint8_t coeff_abs_level_transition[2][8] = {
 
 1622         { 1, 2, 3, 3, 4, 5, 6, 7 },
 
 1624         { 4, 4, 4, 4, 5, 6, 7, 7 }
 
 1630     int coeff_count = 0;
 
 1633     uint8_t *significant_coeff_ctx_base;
 
 1635     uint8_t *abs_level_m1_ctx_base;
 
 1638 #define CABAC_ON_STACK 
 1640 #ifdef CABAC_ON_STACK 
 1646 #if !UNCHECKED_BITSTREAM_READER || ARCH_AARCH64 
 1650 #define CC &sl->cabac 
 1654         + significant_coeff_flag_offset[
MB_FIELD(sl)][
cat];
 
 1658         + coeff_abs_level_m1_offset[
cat];
 
 1660     if( !is_dc && max_coeff == 64 ) {
 
 1661 #define DECODE_SIGNIFICANCE( coefs, sig_off, last_off ) \ 
 1662         for(last= 0; last < coefs; last++) { \ 
 1663             uint8_t *sig_ctx = significant_coeff_ctx_base + sig_off; \ 
 1664             if( get_cabac( CC, sig_ctx )) { \ 
 1665                 uint8_t *last_ctx = last_coeff_ctx_base + last_off; \ 
 1666                 index[coeff_count++] = last; \ 
 1667                 if( get_cabac( CC, last_ctx ) ) { \ 
 1673         if( last == max_coeff -1 ) {\ 
 1674             index[coeff_count++] = last;\ 
 1676         const uint8_t *sig_off = significant_coeff_flag_offset_8x8[
MB_FIELD(sl)];
 
 1677 #ifdef decode_significance 
 1678         coeff_count = decode_significance_8x8(
CC, significant_coeff_ctx_base, index,
 
 1679                                                  last_coeff_ctx_base, sig_off);
 
 1681         if (is_dc && chroma422) { 
 
 1684             coeff_count = decode_significance(
CC, max_coeff, significant_coeff_ctx_base, index,
 
 1685                                                  last_coeff_ctx_base-significant_coeff_ctx_base);
 
 1690         if (is_dc && chroma422) { 
 
 1706         if( max_coeff == 64 )
 
 1709             av_assert2( cat == 1 || cat ==  2 || cat ==  4 || cat == 7 || cat == 8 || cat == 11 || cat == 12 );
 
 1714 #define STORE_BLOCK(type) \ 
 1716         uint8_t *ctx = coeff_abs_level1_ctx[node_ctx] + abs_level_m1_ctx_base; \ 
 1718         int j= scantable[index[--coeff_count]]; \ 
 1720         if( get_cabac( CC, ctx ) == 0 ) { \ 
 1721             node_ctx = coeff_abs_level_transition[0][node_ctx]; \ 
 1723                 ((type*)block)[j] = get_cabac_bypass_sign( CC, -1); \ 
 1725                 ((type*)block)[j] = (get_cabac_bypass_sign( CC, -qmul[j]) + 32) >> 6; \ 
 1728             unsigned coeff_abs = 2; \ 
 1729             ctx = coeff_abs_levelgt1_ctx[is_dc && chroma422][node_ctx] + abs_level_m1_ctx_base; \ 
 1730             node_ctx = coeff_abs_level_transition[1][node_ctx]; \ 
 1732             while( coeff_abs < 15 && get_cabac( CC, ctx ) ) { \ 
 1736             if( coeff_abs >= 15 ) { \ 
 1738                 while (get_cabac_bypass(CC) && j < 30) { \ 
 1744                     coeff_abs += coeff_abs + get_cabac_bypass( CC ); \ 
 1750                 ((type*)block)[j] = get_cabac_bypass_sign( CC, -coeff_abs ); \ 
 1752                 ((type*)block)[j] = ((int)(get_cabac_bypass_sign( CC, -coeff_abs ) * qmul[j] + 32)) >> 6; \ 
 1755     } while ( coeff_count ); 
 1762 #ifdef CABAC_ON_STACK 
 1795                                                              const uint32_t *qmul,
 
 1847                                                          const uint32_t *qmul,
 
 1852         if( max_coeff == 64 ) {
 
 1864                                                         int pixel_shift, 
int mb_type, 
int cbp, 
int p)
 
 1866     static const uint8_t ctx_cat[4][3] = {{0,6,10},{1,7,11},{2,8,12},{5,9,13}};
 
 1867     const uint32_t *qmul;
 
 1879             for( i4x4 = 0; i4x4 < 16; i4x4++ ) {
 
 1880                 const int index = 16*p + i4x4;
 
 1887         int cqm = (
IS_INTRA( mb_type ) ? 0:3) + p;
 
 1888         for( i8x8 = 0; i8x8 < 4; i8x8++ ) {
 
 1889             if( cbp & (1<<i8x8) ) {
 
 1891                     const int index = 16*p + 4*i8x8;
 
 1896                     for( i4x4 = 0; i4x4 < 4; i4x4++ ) {
 
 1897                         const int index = 16*p + 4*i8x8 + i4x4;
 
 1918     int mb_type, partition_count, cbp = 0;
 
 1953         if ((sl->
mb_y & 1) == 0)
 
 1983             }
else if( bits == 13 ){
 
 1985                 goto decode_intra_mb;
 
 1986             }
else if( bits == 14 ){
 
 1988             }
else if( bits == 15 ){
 
 2011             goto decode_intra_mb;
 
 2019         partition_count = 0;
 
 2073                 for( i = 0; i < 16; i+=4 ) {
 
 2079                 for( i = 0; i < 16; i++ ) {
 
 2102             if( pred_mode < 0 ) 
return -1;
 
 2107     } 
else if( partition_count == 4 ) {
 
 2108         int i, j, sub_partition_count[4], list, 
ref[2][4];
 
 2111             for( i = 0; i < 4; i++ ) {
 
 2123                     for( i = 0; i < 4; i++ )
 
 2127             for( i = 0; i < 4; i++ ) {
 
 2134         for( list = 0; list < sl->
list_count; list++ ) {
 
 2135                 for( i = 0; i < 4; i++ ) {
 
 2141                             if (ref[list][i] >= rc) {
 
 2158         for (list = 0; list < sl->
list_count; list++) {
 
 2169                     for(j=0; j<sub_partition_count[i]; j++){
 
 2172                         const int index= 4*i + block_width*j;
 
 2181                             mv_cache[ 8 ][0]= mv_cache[ 9 ][0]= mx;
 
 2183                             mv_cache[ 8 ][1]= mv_cache[ 9 ][1]= my;
 
 2186                             mvd_cache[ 8 ][0]= mvd_cache[ 9 ][0]= mpx;
 
 2188                             mvd_cache[ 8 ][1]= mvd_cache[ 9 ][1]= mpy;
 
 2190                             mv_cache[ 1 ][0]= mx;
 
 2191                             mv_cache[ 1 ][1]= my;
 
 2193                             mvd_cache[ 1 ][0]=  mpx;
 
 2194                             mvd_cache[ 1 ][1]= mpy;
 
 2196                             mv_cache[ 8 ][0]= mx;
 
 2197                             mv_cache[ 8 ][1]= my;
 
 2199                             mvd_cache[ 8 ][0]= mpx;
 
 2200                             mvd_cache[ 8 ][1]= mpy;
 
 2202                         mv_cache[ 0 ][0]= mx;
 
 2203                         mv_cache[ 0 ][1]= my;
 
 2205                         mvd_cache[ 0 ][0]= mpx;
 
 2206                         mvd_cache[ 0 ][1]= mpy;
 
 2222             for (list = 0; list < sl->
list_count; list++) {
 
 2223                 if(
IS_DIR(mb_type, 0, list)){
 
 2237             for (list = 0; list < sl->
list_count; list++) {
 
 2238                 if(
IS_DIR(mb_type, 0, list)){
 
 2250             for (list = 0; list < sl->
list_count; list++) {
 
 2252                         if(
IS_DIR(mb_type, i, list)){
 
 2268             for (list = 0; list < sl->
list_count; list++) {
 
 2270                     if(
IS_DIR(mb_type, i, list)){
 
 2286             for (list = 0; list < sl->
list_count; list++) {
 
 2288                         if(
IS_DIR(mb_type, i, list)){ 
 
 2304             for (list = 0; list < sl->
list_count; list++) {
 
 2306                     if(
IS_DIR(mb_type, i, list)){
 
 2333         if (!decode_chroma && cbp>15) {
 
 2341     if( dct8x8_allowed && (cbp&15) && !
IS_INTRA( mb_type ) ) {
 
 2351             for (i = 0; i < 2; i++){
 
 2353                     nnz_cache[3+8* 1 + 2*8*i]=
 
 2354                     nnz_cache[3+8* 2 + 2*8*i]=
 
 2355                     nnz_cache[3+8* 6 + 2*8*i]=
 
 2356                     nnz_cache[3+8* 7 + 2*8*i]=
 
 2357                     nnz_cache[3+8*11 + 2*8*i]=
 
 2358                     nnz_cache[3+8*12 + 2*8*i]= 
IS_INTRA(mb_type) ? 64 : 0;
 
 2362                 uint32_t top_empty = !
IS_INTRA(mb_type) ? 0 : 0x40404040;
 
 2363                 AV_WN32A(&nnz_cache[4+8* 0], top_empty);
 
 2364                 AV_WN32A(&nnz_cache[4+8* 5], top_empty);
 
 2365                 AV_WN32A(&nnz_cache[4+8*10], top_empty);
 
 2368             for (i = 0; i < 2; i++){
 
 2370                     nnz_cache[3+8* 1 + 2*8*i]=
 
 2371                     nnz_cache[3+8* 2 + 2*8*i]=
 
 2372                     nnz_cache[3+8* 6 + 2*8*i]=
 
 2373                     nnz_cache[3+8* 7 + 2*8*i]=
 
 2374                     nnz_cache[3+8*11 + 2*8*i]=
 
 2380                 AV_WN32A(&nnz_cache[4+8* 0], top_empty);
 
 2381                 AV_WN32A(&nnz_cache[4+8* 5], top_empty);
 
 2382                 AV_WN32A(&nnz_cache[4+8*10], top_empty);
 
 2389         const uint8_t *scan, *scan8x8;
 
 2390         const uint32_t *qmul;
 
 2410                 val= -((val + 1)>>1);
 
 2413             if (((
unsigned)sl->
qscale) > max_qp){
 
 2415                 else                sl->
qscale -= max_qp + 1;
 
 2437                 for (c = 0; c < 2; c++)
 
 2445                 for( c = 0; c < 2; c++ ) {
 
 2446                     int16_t *
mb = sl->
mb + (16*(16 + 16*
c) << pixel_shift);
 
 2448                     for (i8x8 = 0; i8x8 < 2; i8x8++) {
 
 2449                         for (i = 0; i < 4; i++) {
 
 2450                             const int index = 16 + 16 * c + 8*i8x8 + i;
 
 2452                             mb += 16<<pixel_shift;
 
 2463                 for (c = 0; c < 2; c++)
 
 2470                 for( c = 0; c < 2; c++ ) {
 
 2472                     for( i = 0; i < 4; i++ ) {
 
 2473                         const int index = 16 + 16 * c + i;
 
#define MB_TYPE_INTRA16x16
struct H264Context * h264
static int decode_cabac_mb_chroma_pre_mode(const H264Context *h, H264SliceContext *sl)
const char const char void * val
#define AVERROR_INVALIDDATA
Invalid data found when processing input. 
static av_always_inline void decode_cabac_residual_dc(const H264Context *h, H264SliceContext *sl, int16_t *block, int cat, int n, const uint8_t *scantable, int max_coeff)
int16_t mv_cache[2][5 *8][2]
Motion vector cache. 
int neighbor_transform_size
number of neighbors (top and/or left) that used 8x8 dct 
static av_always_inline void decode_cabac_residual_internal(const H264Context *h, H264SliceContext *sl, int16_t *block, int cat, int n, const uint8_t *scantable, const uint32_t *qmul, int max_coeff, int is_dc, int chroma422)
uint8_t field_scan8x8_q0[64]
const uint8_t * bytestream_end
static av_always_inline int get_chroma_qp(const PPS *pps, int t, int qscale)
Get the chroma qp. 
uint8_t mvd_cache[2][5 *8][2]
static int av_unused get_cabac(CABACContext *c, uint8_t *const state)
static int decode_cabac_mb_intra4x4_pred_mode(H264SliceContext *sl, int pred_mode)
void ff_h264_pred_direct_motion(const H264Context *const h, H264SliceContext *sl, int *mb_type)
#define DECODE_CABAC_MB_MVD(sl, list,n)
static const uint8_t *const ff_h264_last_coeff_flag_offset_8x8
unsigned int ref_count[2]
num_ref_idx_l0/1_active_minus1 + 1 
Macro definitions for various function/variable attributes. 
uint8_t * chroma_pred_mode_table
static int av_noinline av_unused get_cabac_noinline(CABACContext *c, uint8_t *const state)
const uint8_t * bytestream
uint16_t sub_mb_type[4]
as a DCT coefficient is int32_t in high depth, we need to reserve twice the space. 
#define av_assert2(cond)
assert() equivalent, that does lie in speed critical code. 
static int decode_cabac_intra_mb_type(H264SliceContext *sl, int ctx_base, int intra_slice)
static int decode_cabac_field_decoding_flag(const H264Context *h, H264SliceContext *sl)
#define MB_TYPE_INTRA_PCM
const uint8_t ff_h264_chroma_dc_scan[4]
#define IS_DIR(a, part, list)
uint32_t(*[6] dequant4_coeff)[16]
uint32_t(*[6] dequant8_coeff)[64]
static int decode_cabac_mb_ref(H264SliceContext *sl, int list, int n)
static int decode_cabac_p_mb_sub_type(H264SliceContext *sl)
const IMbInfo ff_h264_i_mb_type_info[26]
static av_always_inline int pred_intra_mode(const H264Context *h, H264SliceContext *sl, int n)
Get the predicted intra4x4 prediction mode. 
int ff_h264_check_intra4x4_pred_mode(int8_t *pred_mode_cache, void *logctx, int top_samples_available, int left_samples_available)
Check if the top & left blocks are available if needed and change the dc mode so it only uses the ava...
high precision timer, useful to profile code 
const PMbInfo ff_h264_p_mb_type_info[5]
static av_always_inline void write_back_motion(const H264Context *h, H264SliceContext *sl, int mb_type)
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered. 
const uint8_t ff_h264_chroma422_dc_scan[8]
static av_always_inline int get_cabac_cbf_ctx(H264SliceContext *sl, int cat, int idx, int max_coeff, int is_dc)
int8_t intra4x4_pred_mode_cache[5 *8]
static av_always_inline void pred_16x8_motion(const H264Context *const h, H264SliceContext *sl, int n, int list, int ref, int *const mx, int *const my)
Get the directionally predicted 16x8 MV. 
simple assert() macros that are a bit more flexible than ISO C assert(). 
static int decode_cabac_mb_cbp_chroma(H264SliceContext *sl)
unsigned int top_samples_available
H264SEIUnregistered unregistered
H.264 / AVC / MPEG-4 part10 codec. 
static av_always_inline uint16_t pack8to16(unsigned a, unsigned b)
int slice_type_nos
S free slice type (SI/SP are remapped to I/P) 
static av_noinline void decode_cabac_residual_nondc_internal(const H264Context *h, H264SliceContext *sl, int16_t *block, int cat, int n, const uint8_t *scantable, const uint32_t *qmul, int max_coeff)
uint8_t zigzag_scan8x8[64]
uint8_t cabac_state[1024]
int16_t mb_luma_dc[3][16 *2]
as mb is addressed by scantable[i] and scantable is uint8_t we can either check that i is not too lar...
static av_always_inline int get_dct8x8_allowed(const H264Context *h, H264SliceContext *sl)
static av_always_inline void decode_cabac_luma_residual(const H264Context *h, H264SliceContext *sl, const uint8_t *scan, const uint8_t *scan8x8, int pixel_shift, int mb_type, int cbp, int p)
uint16_t * slice_table
slice_table_base + 2*mb_stride + 1 
static const int8_t cabac_context_init_PB[3][1024][2]
#define STORE_BLOCK(type)
static av_always_inline void pred_8x16_motion(const H264Context *const h, H264SliceContext *sl, int n, int list, int ref, int *const mx, int *const my)
Get the directionally predicted 8x16 MV. 
#define MB_TYPE_INTERLACED
static av_always_inline void decode_cabac_residual_dc_422(const H264Context *h, H264SliceContext *sl, int16_t *block, int cat, int n, const uint8_t *scantable, int max_coeff)
int ff_init_cabac_decoder(CABACContext *c, const uint8_t *buf, int buf_size)
Context Adaptive Binary Arithmetic Coder inline functions. 
#define CHROMA_DC_BLOCK_INDEX
H.264 / AVC / MPEG-4 part10 codec. 
int direct_8x8_inference_flag
static av_noinline void decode_cabac_residual_dc_internal_422(const H264Context *h, H264SliceContext *sl, int16_t *block, int cat, int n, const uint8_t *scantable, int max_coeff)
static void fill_rectangle(int x, int y, int w, int h)
#define LUMA_DC_BLOCK_INDEX
static int av_unused get_cabac_terminate(CABACContext *c)
static const float pred[4]
uint8_t zigzag_scan_q0[16]
uint8_t zigzag_scan8x8_q0[64]
Libavcodec external API header. 
int ff_h264_decode_mb_cabac(const H264Context *h, H264SliceContext *sl)
Decode a macroblock. 
static const uint8_t scan8[16 *3+3]
uint8_t non_zero_count_cache[15 *8]
non zero coeff count cache. 
static av_always_inline uint32_t pack16to32(unsigned a, unsigned b)
int pixel_shift
0 for 8-bit H.264, 1 for high-bit-depth H.264 
static int decode_cabac_mb_skip(const H264Context *h, H264SliceContext *sl, int mb_x, int mb_y)
int mb_mbaff
mb_aff_frame && mb_field_decoding_flag 
uint8_t direct_cache[5 *8]
static void fill_decode_caches(const H264Context *h, H264SliceContext *sl, int mb_type)
int transform_8x8_mode
transform_8x8_mode_flag 
static av_always_inline int get_cabac_bypass_sign(CABACContext *c, int val)
static int av_unused get_cabac_bypass(CABACContext *c)
static av_always_inline void write_back_non_zero_count(const H264Context *h, H264SliceContext *sl)
common internal api header. 
const PMbInfo ff_h264_b_mb_type_info[23]
static int ref[MAX_W *MAX_W]
int ff_h264_check_intra_pred_mode(void *logctx, int top_samples_available, int left_samples_available, int mode, int is_chroma)
Check if the top & left blocks are available if needed and change the dc mode so it only uses the ava...
static int decode_cabac_mb_cbp_luma(H264SliceContext *sl)
const PMbInfo ff_h264_p_sub_mb_type_info[4]
H.264 / AVC / MPEG-4 part10 motion vector prediction. 
static const int8_t cabac_context_init_I[1024][2]
static void fill_decode_neighbors(const H264Context *h, H264SliceContext *sl, int mb_type)
static int decode_cabac_b_mb_sub_type(H264SliceContext *sl)
int bit_depth_luma
bit_depth_luma_minus8 + 8 
int8_t ref_cache[2][5 *8]
#define PART_NOT_AVAILABLE
static void av_unused decode_mb_skip(const H264Context *h, H264SliceContext *sl)
decodes a P_SKIP or B_SKIP macroblock 
static int decode_cabac_mb_mvd(H264SliceContext *sl, int ctxbase, int amvd, int *mvda)
static const struct twinvq_data tab
const uint8_t * intra_pcm_ptr
#define DECODE_SIGNIFICANCE(coefs, sig_off, last_off)
unsigned int left_samples_available
uint8_t field_scan8x8[64]
const PMbInfo ff_h264_b_sub_mb_type_info[13]
static av_noinline void decode_cabac_residual_dc_internal(const H264Context *h, H264SliceContext *sl, int16_t *block, int cat, int n, const uint8_t *scantable, int max_coeff)
uint8_t field_scan_q0[16]
int mb_field_decoding_flag
uint8_t(* non_zero_count)[48]
mode
Use these values in ebur128_init (or'ed). 
const uint16_t ff_h264_mb_sizes[4]
Context Adaptive Binary Arithmetic Coder. 
static av_always_inline void write_back_intra_pred_mode(const H264Context *h, H264SliceContext *sl)
void ff_h264_init_cabac_states(const H264Context *h, H264SliceContext *sl)
static av_always_inline void pred_motion(const H264Context *const h, H264SliceContext *sl, int n, int part_width, int list, int ref, int *const mx, int *const my)
Get the predicted MV. 
static av_always_inline void decode_cabac_residual_nondc(const H264Context *h, H264SliceContext *sl, int16_t *block, int cat, int n, const uint8_t *scantable, const uint32_t *qmul, int max_coeff)