Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

720 lines
71 KiB

  1. /*++
  2. Copyright (c) 1997-1999 Microsoft Corporation
  3. --*/
  4. static int H_MaxX[4] =
  5. {
  6. 15, 18, 68, 68 //YCMK
  7. };
  8. static int H_MaxY[4] =
  9. {
  10. 10, 12, 68, 68 //YCMK
  11. };
  12. static int L_MaxX[4] =
  13. {
  14. 12, 9, 20, 20 //YCMK
  15. };
  16. static int L_MaxY[4] =
  17. {
  18. 12, 9, 20, 20 //YCMK
  19. };
  20. #define M_MaxX 14
  21. #define M_MaxY 14
  22. #define OHP_MaxX 8
  23. #define OHP_MaxY 8
  24. #define DYE_MaxX 17
  25. #define DYE_MaxY 17
  26. #define kToneLevel 17
  27. static unsigned char H_NewTable[4][68][68] =
  28. {
  29. { // Yellow
  30. {1,42,77,39,1,1,19,52,16,1,1,29,62,26,1},
  31. {3,138,177,154,8,8,133,159,144,1,1,133,169,149,3},
  32. {85,200,253,230,95,80,195,235,220,90,82,197,243,225,93},
  33. {85,189,205,218,95,80,182,202,207,90,82,184,202,212,93},
  34. {1,103,133,110,1,1,98,118,105,1,1,100,128,108,1},
  35. {1,24,57,21,1,1,36,70,34,1,1,14,47,11,1},
  36. {1,133,164,146,1,1,136,174,151,6,6,133,156,141,1},
  37. {82,195,240,223,93,82,197,248,228,95,80,192,233,220,87},
  38. {82,182,202,210,93,82,187,202,215,95,80,179,200,205,87},
  39. {1,98,123,108,1,1,100,131,110,1,1,95,113,105,1}
  40. },
  41. { // Cyan
  42. {138,90,29,26,52,210,141,93,34,34,54,215,144,95,24,24,49,205},
  43. {105,1,1,26,238,159,108,16,16,34,243,161,110,6,6,24,233,159},
  44. {65,1,1,179,151,123,70,16,16,184,154,128,75,6,6,172,149,121},
  45. {44,59,223,146,100,47,47,62,228,149,103,39,39,57,218,144,98,44},
  46. {44,251,167,116,8,8,47,253,169,118,1,1,39,248,164,113,19,19},
  47. {197,156,133,82,8,8,202,156,136,87,1,1,192,154,131,77,19,19},
  48. {141,93,36,36,54,218,144,95,24,24,49,207,138,90,29,31,52,212},
  49. {108,14,14,36,246,161,110,3,3,24,235,159,105,1,1,31,240,159},
  50. {72,14,14,189,154,128,75,3,3,174,149,121,67,1,1,182,151,126},
  51. {47,62,230,149,103,39,39,57,220,144,98,42,42,59,225,146,100,47},
  52. {47,253,169,118,21,21,39,248,164,113,1,1,42,251,167,116,11,11},
  53. {205,156,136,87,21,21,195,154,131,80,1,1,200,156,133,85,11,11}
  54. },
  55. { // Magenta
  56. {19,19,39,59,238,220,205,192,182,169,156,141,123,108,93,70,1,1,1,24,44,246,223,210,197,174,161,144,133,126,113,98,77,16,16,16,36,57,233,220,205,189,182,172,159,141,123,110,95,72,3,3,3,21,42,243,223,207,195,174,161,146,133,126,113,100,80,19},
  57. {253,225,215,200,177,164,151,136,128,116,103,82,11,11,11,31,52,230,218,202,187,179,167,156,138,118,105,87,62,8,8,8,29,49,248,225,212,197,177,164,136,98,131,116,103,85,14,14,14,34,54,228,215,200,184,179,167,154,138,121,105,90,65,6,6,6,26,47},
  58. {182,172,159,141,123,110,95,72,3,3,3,21,42,243,223,207,195,174,161,146,133,126,113,100,80,19,19,19,39,59,238,220,205,192,182,169,156,141,123,108,93,70,1,1,1,24,44,246,223,210,197,174,161,144,133,126,113,98,77,16,16,16,36,57,233,220,205,189},
  59. {131,116,103,85,14,14,14,34,54,228,215,200,184,179,167,154,138,121,105,90,65,6,6,6,26,47,253,225,215,200,177,164,151,136,128,116,103,82,11,11,11,31,52,230,218,202,187,179,167,156,138,118,105,87,62,8,8,8,29,49,248,225,212,197,177,164,136,98},
  60. {1,1,1,24,44,246,223,210,197,174,161,144,133,126,113,98,77,16,16,16,36,57,233,220,205,189,182,172,159,141,123,110,95,72,3,3,3,21,42,243,223,207,195,174,161,146,133,126,113,100,80,19,19,19,39,59,238,220,205,192,182,169,156,141,123,108,93,70},
  61. {52,230,218,202,187,179,167,156,138,118,105,87,62,8,8,8,29,49,248,225,212,197,177,164,136,98,131,116,103,85,14,14,14,34,54,228,215,200,184,179,167,154,138,121,105,90,65,6,6,6,26,47,253,225,215,200,177,164,151,136,128,116,103,82,11,11,11,31},
  62. {195,174,161,146,133,126,113,100,80,19,19,19,39,59,238,220,205,192,182,169,156,141,123,108,93,70,1,1,1,24,44,246,223,210,197,174,161,144,133,126,113,98,77,16,16,16,36,57,233,220,205,189,182,172,159,141,123,110,95,72,3,3,3,21,42,243,223,207},
  63. {138,121,105,90,65,6,6,6,26,47,253,225,215,200,177,164,151,136,128,116,103,82,11,11,11,31,52,230,218,202,187,179,167,156,138,118,105,87,62,8,8,8,29,49,248,225,212,197,177,164,136,98,131,116,103,85,14,14,14,34,54,228,215,200,184,179,167,154},
  64. {77,16,16,16,36,57,233,220,205,189,182,172,159,141,123,110,95,72,3,3,3,21,42,243,223,207,195,174,161,146,133,126,113,100,80,19,19,19,39,59,238,220,205,192,182,169,156,141,123,108,93,70,1,1,1,24,44,246,223,210,197,174,161,144,133,126,113,98},
  65. {29,49,248,225,212,197,177,164,136,98,131,116,103,85,14,14,14,34,54,228,215,200,184,179,167,154,138,121,105,90,65,6,6,6,26,47,253,225,215,200,177,164,151,136,128,116,103,82,11,11,11,31,52,230,218,202,187,179,167,156,138,118,105,87,62,8,8,8},
  66. {205,192,182,169,156,141,123,108,93,70,1,1,1,24,44,246,223,210,197,174,161,144,133,126,113,98,77,16,16,16,36,57,233,220,205,189,182,172,159,141,123,110,95,72,3,3,3,21,42,243,223,207,195,174,161,146,133,126,113,100,80,19,19,19,39,59,238,220},
  67. {151,136,128,116,103,82,11,11,11,31,52,230,218,202,187,179,167,156,138,118,105,87,62,8,8,8,29,49,248,225,212,197,177,164,136,98,131,116,103,85,14,14,14,34,54,228,215,200,184,179,167,154,138,121,105,90,65,6,6,6,26,47,253,225,215,200,177,164},
  68. {95,72,3,3,3,21,42,243,223,207,195,174,161,146,133,126,113,100,80,19,19,19,39,59,238,220,205,192,182,169,156,141,123,108,93,70,1,1,1,24,44,246,223,210,197,174,161,144,133,126,113,98,77,16,16,16,36,57,233,220,205,189,182,172,159,141,123,110},
  69. {14,34,54,228,215,200,184,179,167,154,138,121,105,90,65,6,6,6,26,47,253,225,215,200,177,164,151,136,128,116,103,82,11,11,11,31,52,230,218,202,187,179,167,156,138,118,105,87,62,8,8,8,29,49,248,225,212,197,177,164,136,98,131,116,103,85,14,14},
  70. {223,210,197,174,161,144,133,126,113,98,77,16,16,16,36,57,233,220,205,189,182,172,159,141,123,110,95,72,3,3,3,21,42,243,223,207,195,174,161,146,133,126,113,100,80,19,19,19,39,59,238,220,205,192,182,169,156,141,123,108,93,70,1,1,1,24,44,246},
  71. {167,156,138,118,105,87,62,8,8,8,29,49,248,225,212,197,177,164,136,98,131,116,103,85,14,14,14,34,54,228,215,200,184,179,167,154,138,121,105,90,65,6,6,6,26,47,253,225,215,200,177,164,151,136,128,116,103,82,11,11,11,31,52,230,218,202,187,179},
  72. {113,100,80,19,19,19,39,59,238,220,205,192,182,169,156,141,123,108,93,70,1,1,1,24,44,246,223,210,197,174,161,144,133,126,113,98,77,16,16,16,36,57,233,220,205,189,182,172,159,141,123,110,95,72,3,3,3,21,42,243,223,207,195,174,161,146,133,126},
  73. {6,6,26,47,253,225,215,200,177,164,151,136,128,116,103,82,11,11,11,31,52,230,218,202,187,179,167,156,138,118,105,87,62,8,8,8,29,49,248,225,212,197,177,164,136,98,131,116,103,85,14,14,14,34,54,228,215,200,184,179,167,154,138,121,105,90,65,6},
  74. {233,220,205,189,182,172,159,141,123,110,95,72,3,3,3,21,42,243,223,207,195,174,161,146,133,126,113,100,80,19,19,19,39,59,238,220,205,192,182,169,156,141,123,108,93,70,1,1,1,24,44,246,223,210,197,174,161,144,133,126,113,98,77,16,16,16,36,57},
  75. {177,164,136,98,131,116,103,85,14,14,14,34,54,228,215,200,184,179,167,154,138,121,105,90,65,6,6,6,26,47,253,225,215,200,177,164,151,136,128,116,103,82,11,11,11,31,52,230,218,202,187,179,167,156,138,118,105,87,62,8,8,8,29,49,248,225,212,197},
  76. {123,108,93,70,1,1,1,24,44,246,223,210,197,174,161,144,133,126,113,98,77,16,16,16,36,57,233,220,205,189,182,172,159,141,123,110,95,72,3,3,3,21,42,243,223,207,195,174,161,146,133,126,113,100,80,19,19,19,39,59,238,220,205,192,182,169,156,141},
  77. {11,11,11,31,52,230,218,202,187,179,167,156,138,118,105,87,62,8,8,8,29,49,248,225,212,197,177,164,136,98,131,116,103,85,14,14,14,34,54,228,215,200,184,179,167,154,138,121,105,90,65,6,6,6,26,47,253,225,215,200,177,164,151,136,128,116,103,82},
  78. {42,243,223,207,195,174,161,146,133,126,113,100,80,19,19,19,39,59,238,220,205,192,182,169,156,141,123,108,93,70,1,1,1,24,44,246,223,210,197,174,161,144,133,126,113,98,77,16,16,16,36,57,233,220,205,189,182,172,159,141,123,110,95,72,3,3,3,21},
  79. {184,179,167,154,138,121,105,90,65,6,6,6,26,47,253,225,215,200,177,164,151,136,128,116,103,82,11,11,11,31,52,230,218,202,187,179,167,156,138,118,105,87,62,8,8,8,29,49,248,225,212,197,177,164,136,98,131,116,103,85,14,14,14,34,54,228,215,200},
  80. {133,126,113,98,77,16,16,16,36,57,233,220,205,189,182,172,159,141,123,110,95,72,3,3,3,21,42,243,223,207,195,174,161,146,133,126,113,100,80,19,19,19,39,59,238,220,205,192,182,169,156,141,123,108,93,70,1,1,1,24,44,246,223,210,197,174,161,144},
  81. {62,8,8,8,29,49,248,225,212,197,177,164,136,98,131,116,103,85,14,14,14,34,54,228,215,200,184,179,167,154,138,121,105,90,65,6,6,6,26,47,253,225,215,200,177,164,151,136,128,116,103,82,11,11,11,31,52,230,218,202,187,179,167,156,138,118,105,87},
  82. {39,59,238,220,205,192,182,169,156,141,123,108,93,70,1,1,1,24,44,246,223,210,197,174,161,144,133,126,113,98,77,16,16,16,36,57,233,220,205,189,182,172,159,141,123,110,95,72,3,3,3,21,42,243,223,207,195,174,161,146,133,126,113,100,80,19,19,19},
  83. {215,200,177,164,151,136,128,116,103,82,11,11,11,31,52,230,218,202,187,179,167,156,138,118,105,87,62,8,8,8,29,49,248,225,212,197,177,164,136,98,131,116,103,85,14,14,14,34,54,228,215,200,184,179,167,154,138,121,105,90,65,6,6,6,26,47,253,225},
  84. {159,141,123,110,95,72,3,3,3,21,42,243,223,207,195,174,161,146,133,126,113,100,80,19,19,19,39,59,238,220,205,192,182,169,156,141,123,108,93,70,1,1,1,24,44,246,223,210,197,174,161,144,133,126,113,98,77,16,16,16,36,57,233,220,205,189,182,172},
  85. {103,85,14,14,14,34,54,228,215,200,184,179,167,154,138,121,105,90,65,6,6,6,26,47,253,225,215,200,177,164,151,136,128,116,103,82,11,11,11,31,52,230,218,202,187,179,167,156,138,118,105,87,62,8,8,8,29,49,248,225,212,197,177,164,136,98,131,116},
  86. {1,24,44,246,223,210,197,174,161,144,133,126,113,98,77,16,16,16,36,57,233,220,205,189,182,172,159,141,123,110,95,72,3,3,3,21,42,243,223,207,195,174,161,146,133,126,113,100,80,19,19,19,39,59,238,220,205,192,182,169,156,141,123,108,93,70,1,1},
  87. {218,202,187,179,167,156,138,118,105,87,62,8,8,8,29,49,248,225,212,197,177,164,136,98,131,116,103,85,14,14,14,34,54,228,215,200,184,179,167,154,138,121,105,90,65,6,6,6,26,47,253,225,215,200,177,164,151,136,128,116,103,82,11,11,11,31,52,230},
  88. {161,146,133,126,113,100,80,19,19,19,39,59,238,220,205,192,182,169,156,141,123,108,93,70,1,1,1,24,44,246,223,210,197,174,161,144,133,126,113,98,77,16,16,16,36,57,233,220,205,189,182,172,159,141,123,110,95,72,3,3,3,21,42,243,223,207,195,174},
  89. {105,90,65,6,6,6,26,47,253,225,215,200,177,164,151,136,128,116,103,82,11,11,11,31,52,230,218,202,187,179,167,156,138,118,105,87,62,8,8,8,29,49,248,225,212,197,177,164,136,98,131,116,103,85,14,14,14,34,54,228,215,200,184,179,167,154,138,121},
  90. {16,16,36,57,233,220,205,189,182,172,159,141,123,110,95,72,3,3,3,21,42,243,223,207,195,174,161,146,133,126,113,100,80,19,19,19,39,59,238,220,205,192,182,169,156,141,123,108,93,70,1,1,1,24,44,246,223,210,197,174,161,144,133,126,113,98,77,16},
  91. {248,225,212,197,177,164,136,98,131,116,103,85,14,14,14,34,54,228,215,200,184,179,167,154,138,121,105,90,65,6,6,6,26,47,253,225,215,200,177,164,151,136,128,116,103,82,11,11,11,31,52,230,218,202,187,179,167,156,138,118,105,87,62,8,8,8,29,49},
  92. {182,169,156,141,123,108,93,70,1,1,1,24,44,246,223,210,197,174,161,144,133,126,113,98,77,16,16,16,36,57,233,220,205,189,182,172,159,141,123,110,95,72,3,3,3,21,42,243,223,207,195,174,161,146,133,126,113,100,80,19,19,19,39,59,238,220,205,192},
  93. {128,116,103,82,11,11,11,31,52,230,218,202,187,179,167,156,138,118,105,87,62,8,8,8,29,49,248,225,212,197,177,164,136,98,131,116,103,85,14,14,14,34,54,228,215,200,184,179,167,154,138,121,105,90,65,6,6,6,26,47,253,225,215,200,177,164,151,136},
  94. {3,3,3,21,42,243,223,207,195,174,161,146,133,126,113,100,80,19,19,19,39,59,238,220,205,192,182,169,156,141,123,108,93,70,1,1,1,24,44,246,223,210,197,174,161,144,133,126,113,98,77,16,16,16,36,57,233,220,205,189,182,172,159,141,123,110,95,72},
  95. {54,228,215,200,184,179,167,154,138,121,105,90,65,6,6,6,26,47,253,225,215,200,177,164,151,136,128,116,103,82,11,11,11,31,52,230,218,202,187,179,167,156,138,118,105,87,62,8,8,8,29,49,248,225,212,197,177,164,136,98,131,116,103,85,14,14,14,34},
  96. {197,174,161,144,133,126,113,98,77,16,16,16,36,57,233,220,205,189,182,172,159,141,123,110,95,72,3,3,3,21,42,243,223,207,195,174,161,146,133,126,113,100,80,19,19,19,39,59,238,220,205,192,182,169,156,141,123,108,93,70,1,1,1,24,44,246,223,210},
  97. {138,118,105,87,62,8,8,8,29,49,248,225,212,197,177,164,136,98,131,116,103,85,14,14,14,34,54,228,215,200,184,179,167,154,138,121,105,90,65,6,6,6,26,47,253,225,215,200,177,164,151,136,128,116,103,82,11,11,11,31,52,230,218,202,187,179,167,156},
  98. {80,19,19,19,39,59,238,220,205,192,182,169,156,141,123,108,93,70,1,1,1,24,44,246,223,210,197,174,161,144,133,126,113,98,77,16,16,16,36,57,233,220,205,189,182,172,159,141,123,110,95,72,3,3,3,21,42,243,223,207,195,174,161,146,133,126,113,100},
  99. {26,47,253,225,215,200,177,164,151,136,128,116,103,82,11,11,11,31,52,230,218,202,187,179,167,156,138,118,105,87,62,8,8,8,29,49,248,225,212,197,177,164,136,98,131,116,103,85,14,14,14,34,54,228,215,200,184,179,167,154,138,121,105,90,65,6,6,6},
  100. {205,189,182,172,159,141,123,110,95,72,3,3,3,21,42,243,223,207,195,174,161,146,133,126,113,100,80,19,19,19,39,59,238,220,205,192,182,169,156,141,123,108,93,70,1,1,1,24,44,246,223,210,197,174,161,144,133,126,113,98,77,16,16,16,36,57,233,220},
  101. {136,98,131,116,103,85,14,14,14,34,54,228,215,200,184,179,167,154,138,121,105,90,65,6,6,6,26,47,253,225,215,200,177,164,151,136,128,116,103,82,11,11,11,31,52,230,218,202,187,179,167,156,138,118,105,87,62,8,8,8,29,49,248,225,212,197,177,164},
  102. {93,70,1,1,1,24,44,246,223,210,197,174,161,144,133,126,113,98,77,16,16,16,36,57,233,220,205,189,182,172,159,141,123,110,95,72,3,3,3,21,42,243,223,207,195,174,161,146,133,126,113,100,80,19,19,19,39,59,238,220,205,192,182,169,156,141,123,108},
  103. {11,31,52,230,218,202,187,179,167,156,138,118,105,87,62,8,8,8,29,49,248,225,212,197,177,164,136,98,131,116,103,85,14,14,14,34,54,228,215,200,184,179,167,154,138,121,105,90,65,6,6,6,26,47,253,225,215,200,177,164,151,136,128,116,103,82,11,11},
  104. {223,207,195,174,161,146,133,126,113,100,80,19,19,19,39,59,238,220,205,192,182,169,156,141,123,108,93,70,1,1,1,24,44,246,223,210,197,174,161,144,133,126,113,98,77,16,16,16,36,57,233,220,205,189,182,172,159,141,123,110,95,72,3,3,3,21,42,243},
  105. {167,154,138,121,105,90,65,6,6,6,26,47,253,225,215,200,177,164,151,136,128,116,103,82,11,11,11,31,52,230,218,202,187,179,167,156,138,118,105,87,62,8,8,8,29,49,248,225,212,197,177,164,136,98,131,116,103,85,14,14,14,34,54,228,215,200,184,179},
  106. {113,98,77,16,16,16,36,57,233,220,205,189,182,172,159,141,123,110,95,72,3,3,3,21,42,243,223,207,195,174,161,146,133,126,113,100,80,19,19,19,39,59,238,220,205,192,182,169,156,141,123,108,93,70,1,1,1,24,44,246,223,210,197,174,161,144,133,126},
  107. {8,8,29,49,248,225,212,197,177,164,136,98,131,116,103,85,14,14,14,34,54,228,215,200,184,179,167,154,138,121,105,90,65,6,6,6,26,47,253,225,215,200,177,164,151,136,128,116,103,82,11,11,11,31,52,230,218,202,187,179,167,156,138,118,105,87,62,8},
  108. {238,220,205,192,182,169,156,141,123,108,93,70,1,1,1,24,44,246,223,210,197,174,161,144,133,126,113,98,77,16,16,16,36,57,233,220,205,189,182,172,159,141,123,110,95,72,3,3,3,21,42,243,223,207,195,174,161,146,133,126,113,100,80,19,19,19,39,59},
  109. {177,164,151,136,128,116,103,82,11,11,11,31,52,230,218,202,187,179,167,156,138,118,105,87,62,8,8,8,29,49,248,225,212,197,177,164,136,98,131,116,103,85,14,14,14,34,54,228,215,200,184,179,167,154,138,121,105,90,65,6,6,6,26,47,253,225,215,200},
  110. {123,110,95,72,3,3,3,21,42,243,223,207,195,174,161,146,133,126,113,100,80,19,19,19,39,59,238,220,205,192,182,169,156,141,123,108,93,70,1,1,1,24,44,246,223,210,197,174,161,144,133,126,113,98,77,16,16,16,36,57,233,220,205,189,182,172,159,141},
  111. {14,14,14,34,54,228,215,200,184,179,167,154,138,121,105,90,65,6,6,6,26,47,253,225,215,200,177,164,151,136,128,116,103,82,11,11,11,31,52,230,218,202,187,179,167,156,138,118,105,87,62,8,8,8,29,49,248,225,212,197,177,164,136,98,131,116,103,85},
  112. {44,246,223,210,197,174,161,144,133,126,113,98,77,16,16,16,36,57,233,220,205,189,182,172,159,141,123,110,95,72,3,3,3,21,42,243,223,207,195,174,161,146,133,126,113,100,80,19,19,19,39,59,238,220,205,192,182,169,156,141,123,108,93,70,1,1,1,24},
  113. {187,179,167,156,138,118,105,87,62,8,8,8,29,49,248,225,212,197,177,164,136,98,131,116,103,85,14,14,14,34,54,228,215,200,184,179,167,154,138,121,105,90,65,6,6,6,26,47,253,225,215,200,177,164,151,136,128,116,103,82,11,11,11,31,52,230,218,202},
  114. {133,126,113,100,80,19,19,19,39,59,238,220,205,192,182,169,156,141,123,108,93,70,1,1,1,24,44,246,223,210,197,174,161,144,133,126,113,98,77,16,16,16,36,57,233,220,205,189,182,172,159,141,123,110,95,72,3,3,3,21,42,243,223,207,195,174,161,146},
  115. {65,6,6,6,26,47,253,225,215,200,177,164,151,136,128,116,103,82,11,11,11,31,52,230,218,202,187,179,167,156,138,118,105,87,62,8,8,8,29,49,248,225,212,197,177,164,136,98,131,116,103,85,14,14,14,34,54,228,215,200,184,179,167,154,138,121,105,90},
  116. {36,57,233,220,205,189,182,172,159,141,123,110,95,72,3,3,3,21,42,243,223,207,195,174,161,146,133,126,113,100,80,19,19,19,39,59,238,220,205,192,182,169,156,141,123,108,93,70,1,1,1,24,44,246,223,210,197,174,161,144,133,126,113,98,77,16,16,16},
  117. {212,197,177,164,136,98,131,116,103,85,14,14,14,34,54,228,215,200,184,179,167,154,138,121,105,90,65,6,6,6,26,47,253,225,215,200,177,164,151,136,128,116,103,82,11,11,11,31,52,230,218,202,187,179,167,156,138,118,105,87,62,8,8,8,29,49,248,225},
  118. {156,141,123,108,93,70,1,1,1,24,44,246,223,210,197,174,161,144,133,126,113,98,77,16,16,16,36,57,233,220,205,189,182,172,159,141,123,110,95,72,3,3,3,21,42,243,223,207,195,174,161,146,133,126,113,100,80,19,19,19,39,59,238,220,205,192,182,169},
  119. {103,82,11,11,11,31,52,230,218,202,187,179,167,156,138,118,105,87,62,8,8,8,29,49,248,225,212,197,177,164,136,98,131,116,103,85,14,14,14,34,54,228,215,200,184,179,167,154,138,121,105,90,65,6,6,6,26,47,253,225,215,200,177,164,151,136,128,116},
  120. {3,21,42,243,223,207,195,174,161,146,133,126,113,100,80,19,19,19,39,59,238,220,205,192,182,169,156,141,123,108,93,70,1,1,1,24,44,246,223,210,197,174,161,144,133,126,113,98,77,16,16,16,36,57,233,220,205,189,182,172,159,141,123,110,95,72,3,3},
  121. {215,200,184,179,167,154,138,121,105,90,65,6,6,6,26,47,253,225,215,200,177,164,151,136,128,116,103,82,11,11,11,31,52,230,218,202,187,179,167,156,138,118,105,87,62,8,8,8,29,49,248,225,212,197,177,164,136,98,131,116,103,85,14,14,14,34,54,228},
  122. {161,144,133,126,113,98,77,16,16,16,36,57,233,220,205,189,182,172,159,141,123,110,95,72,3,3,3,21,42,243,223,207,195,174,161,146,133,126,113,100,80,19,19,19,39,59,238,220,205,192,182,169,156,141,123,108,93,70,1,1,1,24,44,246,223,210,197,174},
  123. {105,87,62,8,8,8,29,49,248,225,212,197,177,164,136,98,131,116,103,85,14,14,14,34,54,228,215,200,184,179,167,154,138,121,105,90,65,6,6,6,26,47,253,225,215,200,177,164,151,136,128,116,103,82,11,11,11,31,52,230,218,202,187,179,167,156,138,118}
  124. },
  125. { // Black
  126. {19,19,34,67,8,8,149,126,93,110,187,202,103,182,248,230,82,1,1,21,36,11,11,138,123,90,118,197,218,108,179,243,228,80,16,16,31,62,6,6,154,126,95,110,187,200,103,182,246,230,82,3,3,21,39,14,14,144,123,90,118,197,215,108,177,240,225,80},
  127. {184,253,233,82,8,8,24,44,16,16,136,121,87,116,195,212,108,172,235,220,77,11,11,26,47,3,3,167,131,100,113,192,207,105,184,251,233,82,6,6,24,42,19,19,133,121,85,116,195,210,105,174,238,223,77,14,14,29,52,1,1,159,128,98,113,192,205,105},
  128. {118,197,218,108,179,243,228,80,16,16,31,62,6,6,154,126,95,110,187,200,103,182,246,230,82,3,3,21,39,14,14,144,123,90,118,197,215,108,177,240,225,80,19,19,34,67,8,8,149,126,93,110,187,202,103,182,248,230,82,1,1,21,36,11,11,138,123,90},
  129. {3,167,131,100,113,192,207,105,184,251,233,82,6,6,24,42,19,19,133,121,85,116,195,210,105,174,238,223,77,14,14,29,52,1,1,159,128,98,113,192,205,105,184,253,233,82,8,8,24,44,16,16,136,121,87,116,195,212,108,172,235,220,77,11,11,26,47,3},
  130. {3,21,39,14,14,144,123,90,118,197,215,108,177,240,225,80,19,19,34,67,8,8,149,126,93,110,187,202,103,182,248,230,82,1,1,21,36,11,11,138,123,90,118,197,218,108,179,243,228,80,16,16,31,62,6,6,154,126,95,110,187,200,103,182,246,230,82,3},
  131. {238,223,77,14,14,29,52,1,1,159,128,98,113,192,205,105,184,253,233,82,8,8,24,44,16,16,136,121,87,116,195,212,108,172,235,220,77,11,11,26,47,3,3,167,131,100,113,192,207,105,184,251,233,82,6,6,24,42,19,19,133,121,85,116,195,210,105,174},
  132. {187,202,103,182,248,230,82,1,1,21,36,11,11,138,123,90,118,197,218,108,179,243,228,80,16,16,31,62,6,6,154,126,95,110,187,200,103,182,246,230,82,3,3,21,39,14,14,144,123,90,118,197,215,108,177,240,225,80,19,19,34,67,8,8,149,126,93,110},
  133. {136,121,87,116,195,212,108,172,235,220,77,11,11,26,47,3,3,167,131,100,113,192,207,105,184,251,233,82,6,6,24,42,19,19,133,121,85,116,195,210,105,174,238,223,77,14,14,29,52,1,1,159,128,98,113,192,205,105,184,253,233,82,8,8,24,44,16,16},
  134. {31,62,6,6,154,126,95,110,187,200,103,182,246,230,82,3,3,21,39,14,14,144,123,90,118,197,215,108,177,240,225,80,19,19,34,67,8,8,149,126,93,110,187,202,103,182,248,230,82,1,1,21,36,11,11,138,123,90,118,197,218,108,179,243,228,80,16,16},
  135. {233,82,6,6,24,42,19,19,133,121,85,116,195,210,105,174,238,223,77,14,14,29,52,1,1,159,128,98,113,192,205,105,184,253,233,82,8,8,24,44,16,16,136,121,87,116,195,212,108,172,235,220,77,11,11,26,47,3,3,167,131,100,113,192,207,105,184,251},
  136. {215,108,177,240,225,80,19,19,34,67,8,8,149,126,93,110,187,202,103,182,248,230,82,1,1,21,36,11,11,138,123,90,118,197,218,108,179,243,228,80,16,16,31,62,6,6,154,126,95,110,187,200,103,182,246,230,82,3,3,21,39,14,14,144,123,90,118,197},
  137. {128,98,113,192,205,105,184,253,233,82,8,8,24,44,16,16,136,121,87,116,195,212,108,172,235,220,77,11,11,26,47,3,3,167,131,100,113,192,207,105,184,251,233,82,6,6,24,42,19,19,133,121,85,116,195,210,105,174,238,223,77,14,14,29,52,1,1,159},
  138. {36,11,11,138,123,90,118,197,218,108,179,243,228,80,16,16,31,62,6,6,154,126,95,110,187,200,103,182,246,230,82,3,3,21,39,14,14,144,123,90,118,197,215,108,177,240,225,80,19,19,34,67,8,8,149,126,93,110,187,202,103,182,248,230,82,1,1,21},
  139. {77,11,11,26,47,3,3,167,131,100,113,192,207,105,184,251,233,82,6,6,24,42,19,19,133,121,85,116,195,210,105,174,238,223,77,14,14,29,52,1,1,159,128,98,113,192,205,105,184,253,233,82,8,8,24,44,16,16,136,121,87,116,195,212,108,172,235,220},
  140. {103,182,246,230,82,3,3,21,39,14,14,144,123,90,118,197,215,108,177,240,225,80,19,19,34,67,8,8,149,126,93,110,187,202,103,182,248,230,82,1,1,21,36,11,11,138,123,90,118,197,218,108,179,243,228,80,16,16,31,62,6,6,154,126,95,110,187,200},
  141. {85,116,195,210,105,174,238,223,77,14,14,29,52,1,1,159,128,98,113,192,205,105,184,253,233,82,8,8,24,44,16,16,136,121,87,116,195,212,108,172,235,220,77,11,11,26,47,3,3,167,131,100,113,192,207,105,184,251,233,82,6,6,24,42,19,19,133,121},
  142. {8,8,149,126,93,110,187,202,103,182,248,230,82,1,1,21,36,11,11,138,123,90,118,197,218,108,179,243,228,80,16,16,31,62,6,6,154,126,95,110,187,200,103,182,246,230,82,3,3,21,39,14,14,144,123,90,118,197,215,108,177,240,225,80,19,19,34,67},
  143. {8,8,24,44,16,16,136,121,87,116,195,212,108,172,235,220,77,11,11,26,47,3,3,167,131,100,113,192,207,105,184,251,233,82,6,6,24,42,19,19,133,121,85,116,195,210,105,174,238,223,77,14,14,29,52,1,1,159,128,98,113,192,205,105,184,253,233,82},
  144. {179,243,228,80,16,16,31,62,6,6,154,126,95,110,187,200,103,182,246,230,82,3,3,21,39,14,14,144,123,90,118,197,215,108,177,240,225,80,19,19,34,67,8,8,149,126,93,110,187,202,103,182,248,230,82,1,1,21,36,11,11,138,123,90,118,197,218,108},
  145. {113,192,207,105,184,251,233,82,6,6,24,42,19,19,133,121,85,116,195,210,105,174,238,223,77,14,14,29,52,1,1,159,128,98,113,192,205,105,184,253,233,82,8,8,24,44,16,16,136,121,87,116,195,212,108,172,235,220,77,11,11,26,47,3,3,167,131,100},
  146. {14,144,123,90,118,197,215,108,177,240,225,80,19,19,34,67,8,8,149,126,93,110,187,202,103,182,248,230,82,1,1,21,36,11,11,138,123,90,118,197,218,108,179,243,228,80,16,16,31,62,6,6,154,126,95,110,187,200,103,182,246,230,82,3,3,21,39,14},
  147. {14,29,52,1,1,159,128,98,113,192,205,105,184,253,233,82,8,8,24,44,16,16,136,121,87,116,195,212,108,172,235,220,77,11,11,26,47,3,3,167,131,100,113,192,207,105,184,251,233,82,6,6,24,42,19,19,133,121,85,116,195,210,105,174,238,223,77,14},
  148. {248,230,82,1,1,21,36,11,11,138,123,90,118,197,218,108,179,243,228,80,16,16,31,62,6,6,154,126,95,110,187,200,103,182,246,230,82,3,3,21,39,14,14,144,123,90,118,197,215,108,177,240,225,80,19,19,34,67,8,8,149,126,93,110,187,202,103,182},
  149. {195,212,108,172,235,220,77,11,11,26,47,3,3,167,131,100,113,192,207,105,184,251,233,82,6,6,24,42,19,19,133,121,85,116,195,210,105,174,238,223,77,14,14,29,52,1,1,159,128,98,113,192,205,105,184,253,233,82,8,8,24,44,16,16,136,121,87,116},
  150. {154,126,95,110,187,200,103,182,246,230,82,3,3,21,39,14,14,144,123,90,118,197,215,108,177,240,225,80,19,19,34,67,8,8,149,126,93,110,187,202,103,182,248,230,82,1,1,21,36,11,11,138,123,90,118,197,218,108,179,243,228,80,16,16,31,62,6,6},
  151. {24,42,19,19,133,121,85,116,195,210,105,174,238,223,77,14,14,29,52,1,1,159,128,98,113,192,205,105,184,253,233,82,8,8,24,44,16,16,136,121,87,116,195,212,108,172,235,220,77,11,11,26,47,3,3,167,131,100,113,192,207,105,184,251,233,82,6,6},
  152. {225,80,19,19,34,67,8,8,149,126,93,110,187,202,103,182,248,230,82,1,1,21,36,11,11,138,123,90,118,197,218,108,179,243,228,80,16,16,31,62,6,6,154,126,95,110,187,200,103,182,246,230,82,3,3,21,39,14,14,144,123,90,118,197,215,108,177,240},
  153. {205,105,184,253,233,82,8,8,24,44,16,16,136,121,87,116,195,212,108,172,235,220,77,11,11,26,47,3,3,167,131,100,113,192,207,105,184,251,233,82,6,6,24,42,19,19,133,121,85,116,195,210,105,174,238,223,77,14,14,29,52,1,1,159,128,98,113,192},
  154. {123,90,118,197,218,108,179,243,228,80,16,16,31,62,6,6,154,126,95,110,187,200,103,182,246,230,82,3,3,21,39,14,14,144,123,90,118,197,215,108,177,240,225,80,19,19,34,67,8,8,149,126,93,110,187,202,103,182,248,230,82,1,1,21,36,11,11,138},
  155. {47,3,3,167,131,100,113,192,207,105,184,251,233,82,6,6,24,42,19,19,133,121,85,116,195,210,105,174,238,223,77,14,14,29,52,1,1,159,128,98,113,192,205,105,184,253,233,82,8,8,24,44,16,16,136,121,87,116,195,212,108,172,235,220,77,11,11,26},
  156. {82,3,3,21,39,14,14,144,123,90,118,197,215,108,177,240,225,80,19,19,34,67,8,8,149,126,93,110,187,202,103,182,248,230,82,1,1,21,36,11,11,138,123,90,118,197,218,108,179,243,228,80,16,16,31,62,6,6,154,126,95,110,187,200,103,182,246,230},
  157. {105,174,238,223,77,14,14,29,52,1,1,159,128,98,113,192,205,105,184,253,233,82,8,8,24,44,16,16,136,121,87,116,195,212,108,172,235,220,77,11,11,26,47,3,3,167,131,100,113,192,207,105,184,251,233,82,6,6,24,42,19,19,133,121,85,116,195,210},
  158. {93,110,187,202,103,182,248,230,82,1,1,21,36,11,11,138,123,90,118,197,218,108,179,243,228,80,16,16,31,62,6,6,154,126,95,110,187,200,103,182,246,230,82,3,3,21,39,14,14,144,123,90,118,197,215,108,177,240,225,80,19,19,34,67,8,8,149,126},
  159. {16,16,136,121,87,116,195,212,108,172,235,220,77,11,11,26,47,3,3,167,131,100,113,192,207,105,184,251,233,82,6,6,24,42,19,19,133,121,85,116,195,210,105,174,238,223,77,14,14,29,52,1,1,159,128,98,113,192,205,105,184,253,233,82,8,8,24,44},
  160. {16,16,31,62,6,6,154,126,95,110,187,200,103,182,246,230,82,3,3,21,39,14,14,144,123,90,118,197,215,108,177,240,225,80,19,19,34,67,8,8,149,126,93,110,187,202,103,182,248,230,82,1,1,21,36,11,11,138,123,90,118,197,218,108,179,243,228,80},
  161. {184,251,233,82,6,6,24,42,19,19,133,121,85,116,195,210,105,174,238,223,77,14,14,29,52,1,1,159,128,98,113,192,205,105,184,253,233,82,8,8,24,44,16,16,136,121,87,116,195,212,108,172,235,220,77,11,11,26,47,3,3,167,131,100,113,192,207,105},
  162. {118,197,215,108,177,240,225,80,19,19,34,67,8,8,149,126,93,110,187,202,103,182,248,230,82,1,1,21,36,11,11,138,123,90,118,197,218,108,179,243,228,80,16,16,31,62,6,6,154,126,95,110,187,200,103,182,246,230,82,3,3,21,39,14,14,144,123,90},
  163. {1,159,128,98,113,192,205,105,184,253,233,82,8,8,24,44,16,16,136,121,87,116,195,212,108,172,235,220,77,11,11,26,47,3,3,167,131,100,113,192,207,105,184,251,233,82,6,6,24,42,19,19,133,121,85,116,195,210,105,174,238,223,77,14,14,29,52,1},
  164. {1,21,36,11,11,138,123,90,118,197,218,108,179,243,228,80,16,16,31,62,6,6,154,126,95,110,187,200,103,182,246,230,82,3,3,21,39,14,14,144,123,90,118,197,215,108,177,240,225,80,19,19,34,67,8,8,149,126,93,110,187,202,103,182,248,230,82,1},
  165. {235,220,77,11,11,26,47,3,3,167,131,100,113,192,207,105,184,251,233,82,6,6,24,42,19,19,133,121,85,116,195,210,105,174,238,223,77,14,14,29,52,1,1,159,128,98,113,192,205,105,184,253,233,82,8,8,24,44,16,16,136,121,87,116,195,212,108,172},
  166. {187,200,103,182,246,230,82,3,3,21,39,14,14,144,123,90,118,197,215,108,177,240,225,80,19,19,34,67,8,8,149,126,93,110,187,202,103,182,248,230,82,1,1,21,36,11,11,138,123,90,118,197,218,108,179,243,228,80,16,16,31,62,6,6,154,126,95,110},
  167. {133,121,85,116,195,210,105,174,238,223,77,14,14,29,52,1,1,159,128,98,113,192,205,105,184,253,233,82,8,8,24,44,16,16,136,121,87,116,195,212,108,172,235,220,77,11,11,26,47,3,3,167,131,100,113,192,207,105,184,251,233,82,6,6,24,42,19,19},
  168. {34,67,8,8,149,126,93,110,187,202,103,182,248,230,82,1,1,21,36,11,11,138,123,90,118,197,218,108,179,243,228,80,16,16,31,62,6,6,154,126,95,110,187,200,103,182,246,230,82,3,3,21,39,14,14,144,123,90,118,197,215,108,177,240,225,80,19,19},
  169. {233,82,8,8,24,44,16,16,136,121,87,116,195,212,108,172,235,220,77,11,11,26,47,3,3,167,131,100,113,192,207,105,184,251,233,82,6,6,24,42,19,19,133,121,85,116,195,210,105,174,238,223,77,14,14,29,52,1,1,159,128,98,113,192,205,105,184,253},
  170. {218,108,179,243,228,80,16,16,31,62,6,6,154,126,95,110,187,200,103,182,246,230,82,3,3,21,39,14,14,144,123,90,118,197,215,108,177,240,225,80,19,19,34,67,8,8,149,126,93,110,187,202,103,182,248,230,82,1,1,21,36,11,11,138,123,90,118,197},
  171. {131,100,113,192,207,105,184,251,233,82,6,6,24,42,19,19,133,121,85,116,195,210,105,174,238,223,77,14,14,29,52,1,1,159,128,98,113,192,205,105,184,253,233,82,8,8,24,44,16,16,136,121,87,116,195,212,108,172,235,220,77,11,11,26,47,3,3,167},
  172. {39,14,14,144,123,90,118,197,215,108,177,240,225,80,19,19,34,67,8,8,149,126,93,110,187,202,103,182,248,230,82,1,1,21,36,11,11,138,123,90,118,197,218,108,179,243,228,80,16,16,31,62,6,6,154,126,95,110,187,200,103,182,246,230,82,3,3,21},
  173. {77,14,14,29,52,1,1,159,128,98,113,192,205,105,184,253,233,82,8,8,24,44,16,16,136,121,87,116,195,212,108,172,235,220,77,11,11,26,47,3,3,167,131,100,113,192,207,105,184,251,233,82,6,6,24,42,19,19,133,121,85,116,195,210,105,174,238,223},
  174. {103,182,248,230,82,1,1,21,36,11,11,138,123,90,118,197,218,108,179,243,228,80,16,16,31,62,6,6,154,126,95,110,187,200,103,182,246,230,82,3,3,21,39,14,14,144,123,90,118,197,215,108,177,240,225,80,19,19,34,67,8,8,149,126,93,110,187,202},
  175. {87,116,195,212,108,172,235,220,77,11,11,26,47,3,3,167,131,100,113,192,207,105,184,251,233,82,6,6,24,42,19,19,133,121,85,116,195,210,105,174,238,223,77,14,14,29,52,1,1,159,128,98,113,192,205,105,184,253,233,82,8,8,24,44,16,16,136,121},
  176. {6,6,154,126,95,110,187,200,103,182,246,230,82,3,3,21,39,14,14,144,123,90,118,197,215,108,177,240,225,80,19,19,34,67,8,8,149,126,93,110,187,202,103,182,248,230,82,1,1,21,36,11,11,138,123,90,118,197,218,108,179,243,228,80,16,16,31,62},
  177. {6,6,24,42,19,19,133,121,85,116,195,210,105,174,238,223,77,14,14,29,52,1,1,159,128,98,113,192,205,105,184,253,233,82,8,8,24,44,16,16,136,121,87,116,195,212,108,172,235,220,77,11,11,26,47,3,3,167,131,100,113,192,207,105,184,251,233,82},
  178. {177,240,225,80,19,19,34,67,8,8,149,126,93,110,187,202,103,182,248,230,82,1,1,21,36,11,11,138,123,90,118,197,218,108,179,243,228,80,16,16,31,62,6,6,154,126,95,110,187,200,103,182,246,230,82,3,3,21,39,14,14,144,123,90,118,197,215,108},
  179. {113,192,205,105,184,253,233,82,8,8,24,44,16,16,136,121,87,116,195,212,108,172,235,220,77,11,11,26,47,3,3,167,131,100,113,192,207,105,184,251,233,82,6,6,24,42,19,19,133,121,85,116,195,210,105,174,238,223,77,14,14,29,52,1,1,159,128,98},
  180. {11,138,123,90,118,197,218,108,179,243,228,80,16,16,31,62,6,6,154,126,95,110,187,200,103,182,246,230,82,3,3,21,39,14,14,144,123,90,118,197,215,108,177,240,225,80,19,19,34,67,8,8,149,126,93,110,187,202,103,182,248,230,82,1,1,21,36,11},
  181. {11,26,47,3,3,167,131,100,113,192,207,105,184,251,233,82,6,6,24,42,19,19,133,121,85,116,195,210,105,174,238,223,77,14,14,29,52,1,1,159,128,98,113,192,205,105,184,253,233,82,8,8,24,44,16,16,136,121,87,116,195,212,108,172,235,220,77,11},
  182. {246,230,82,3,3,21,39,14,14,144,123,90,118,197,215,108,177,240,225,80,19,19,34,67,8,8,149,126,93,110,187,202,103,182,248,230,82,1,1,21,36,11,11,138,123,90,118,197,218,108,179,243,228,80,16,16,31,62,6,6,154,126,95,110,187,200,103,182},
  183. {195,210,105,174,238,223,77,14,14,29,52,1,1,159,128,98,113,192,205,105,184,253,233,82,8,8,24,44,16,16,136,121,87,116,195,212,108,172,235,220,77,11,11,26,47,3,3,167,131,100,113,192,207,105,184,251,233,82,6,6,24,42,19,19,133,121,85,116},
  184. {149,126,93,110,187,202,103,182,248,230,82,1,1,21,36,11,11,138,123,90,118,197,218,108,179,243,228,80,16,16,31,62,6,6,154,126,95,110,187,200,103,182,246,230,82,3,3,21,39,14,14,144,123,90,118,197,215,108,177,240,225,80,19,19,34,67,8,8},
  185. {24,44,16,16,136,121,87,116,195,212,108,172,235,220,77,11,11,26,47,3,3,167,131,100,113,192,207,105,184,251,233,82,6,6,24,42,19,19,133,121,85,116,195,210,105,174,238,223,77,14,14,29,52,1,1,159,128,98,113,192,205,105,184,253,233,82,8,8},
  186. {228,80,16,16,31,62,6,6,154,126,95,110,187,200,103,182,246,230,82,3,3,21,39,14,14,144,123,90,118,197,215,108,177,240,225,80,19,19,34,67,8,8,149,126,93,110,187,202,103,182,248,230,82,1,1,21,36,11,11,138,123,90,118,197,218,108,179,243},
  187. {207,105,184,251,233,82,6,6,24,42,19,19,133,121,85,116,195,210,105,174,238,223,77,14,14,29,52,1,1,159,128,98,113,192,205,105,184,253,233,82,8,8,24,44,16,16,136,121,87,116,195,212,108,172,235,220,77,11,11,26,47,3,3,167,131,100,113,192},
  188. {123,90,118,197,215,108,177,240,225,80,19,19,34,67,8,8,149,126,93,110,187,202,103,182,248,230,82,1,1,21,36,11,11,138,123,90,118,197,218,108,179,243,228,80,16,16,31,62,6,6,154,126,95,110,187,200,103,182,246,230,82,3,3,21,39,14,14,144},
  189. {52,1,1,159,128,98,113,192,205,105,184,253,233,82,8,8,24,44,16,16,136,121,87,116,195,212,108,172,235,220,77,11,11,26,47,3,3,167,131,100,113,192,207,105,184,251,233,82,6,6,24,42,19,19,133,121,85,116,195,210,105,174,238,223,77,14,14,29},
  190. {82,1,1,21,36,11,11,138,123,90,118,197,218,108,179,243,228,80,16,16,31,62,6,6,154,126,95,110,187,200,103,182,246,230,82,3,3,21,39,14,14,144,123,90,118,197,215,108,177,240,225,80,19,19,34,67,8,8,149,126,93,110,187,202,103,182,248,230},
  191. {108,172,235,220,77,11,11,26,47,3,3,167,131,100,113,192,207,105,184,251,233,82,6,6,24,42,19,19,133,121,85,116,195,210,105,174,238,223,77,14,14,29,52,1,1,159,128,98,113,192,205,105,184,253,233,82,8,8,24,44,16,16,136,121,87,116,195,212},
  192. {95,110,187,200,103,182,246,230,82,3,3,21,39,14,14,144,123,90,118,197,215,108,177,240,225,80,19,19,34,67,8,8,149,126,93,110,187,202,103,182,248,230,82,1,1,21,36,11,11,138,123,90,118,197,218,108,179,243,228,80,16,16,31,62,6,6,154,126},
  193. {19,19,133,121,85,116,195,210,105,174,238,223,77,14,14,29,52,1,1,159,128,98,113,192,205,105,184,253,233,82,8,8,24,44,16,16,136,121,87,116,195,212,108,172,235,220,77,11,11,26,47,3,3,167,131,100,113,192,207,105,184,251,233,82,6,6,24,42}
  194. }
  195. };
  196. static unsigned char L_NewTable[4][20][20] =
  197. {
  198. { // Yellow
  199. {254,254,239,182,133,133,243,243,228,171,122,122},
  200. {239,239,224,182,118,118,228,228,213,171,107,107},
  201. {224,224,209,167,118,118,213,213,205,152,107,107},
  202. {201,201,186,167,103,103,190,190,186,152,92,92},
  203. {148,148,58,43,28,28,137,137,47,32,9,9},
  204. {88,84,58,43,24,24,65,62,47,32,5,5},
  205. {246,246,231,175,126,126,250,250,235,179,130,130},
  206. {231,231,216,175,111,111,235,235,220,179,114,114},
  207. {216,216,205,156,111,111,220,220,209,163,114,114},
  208. {194,194,186,156,96,96,197,197,186,160,99,99},
  209. {141,141,50,35,13,13,145,145,54,39,20,20},
  210. {73,69,50,35,1,1,81,77,54,39,16,16}
  211. },
  212. { // Cyan
  213. {34,27,23,199,247,247,217,93,78},
  214. {12,9,9,195,236,236,217,122,71},
  215. {12,1,1,133,188,181,140,129,64},
  216. {173,166,144,89,56,45,42,115,151},
  217. {232,228,214,86,38,31,31,107,210},
  218. {254,254,221,75,20,5,5,104,206},
  219. {239,239,221,67,16,1,1,100,195},
  220. {192,184,148,148,159,155,144,111,137},
  221. {49,53,60,203,225,225,214,96,82}
  222. },
  223. { // Magenta
  224. {13,253,253,219,182,137,137,223,223,208,163,118,118,152,144,114,107,54,39,13},
  225. {9,242,234,219,174,129,129,201,193,186,156,58,58,69,69,92,80,54,31,9},
  226. {137,227,227,212,167,122,122,148,140,110,103,50,24,5,5,246,246,216,178,133},
  227. {129,204,197,189,159,62,62,65,65,77,73,46,16,1,1,238,231,216,171,125},
  228. {122,152,144,114,107,54,39,13,13,253,253,219,182,137,137,223,223,208,163,118},
  229. {62,69,69,92,80,54,31,9,9,242,234,219,174,129,129,201,193,186,156,58},
  230. {39,5,5,246,246,216,178,133,133,227,227,212,167,122,122,148,140,110,103,50},
  231. {31,1,1,238,231,216,171,125,125,204,197,189,159,62,62,65,65,77,73,46},
  232. {182,137,137,223,223,208,163,118,118,152,144,114,107,54,39,13,13,253,253,219},
  233. {174,129,129,201,193,186,156,58,58,69,69,92,80,54,31,9,9,242,234,219},
  234. {167,122,122,148,140,110,103,50,24,5,5,246,246,216,178,133,133,227,227,212},
  235. {159,62,62,65,65,77,73,46,16,1,1,238,231,216,171,125,125,204,197,189},
  236. {107,54,39,13,13,253,253,219,182,137,137,223,223,208,163,118,118,152,144,114},
  237. {80,54,31,9,9,242,234,219,174,129,129,201,193,186,156,58,58,69,69,92},
  238. {246,216,178,133,133,227,227,212,167,122,122,148,140,110,103,50,24,5,5,246},
  239. {231,216,171,125,125,204,197,189,159,62,62,65,65,77,73,46,16,1,1,238},
  240. {223,208,163,118,118,152,144,114,107,54,39,5,5,253,253,219,182,137,137,223},
  241. {193,186,156,58,58,69,69,92,80,54,31,1,1,242,234,219,174,129,129,201},
  242. {140,110,103,50,24,5,5,246,246,216,178,133,133,227,227,212,167,122,122,148},
  243. {65,77,73,46,16,1,1,238,231,216,171,125,125,204,197,189,159,62,62,65}
  244. },
  245. { // Black
  246. {162,162,170,202,194,186,154,154,6,78,118,114,102,26,30,90,134,134,106,38},
  247. {22,74,66,54,46,14,146,146,182,230,234,242,246,254,30,82,122,122,106,38},
  248. {34,94,142,142,106,42,166,166,178,226,222,210,162,158,2,78,110,110,98,26},
  249. {34,86,130,126,106,42,18,70,62,50,46,10,150,150,174,218,214,238,242,250},
  250. {6,78,118,114,102,26,30,90,134,134,106,38,162,162,170,202,194,186,154,154},
  251. {182,230,234,242,246,254,30,82,122,122,106,38,22,74,66,54,46,14,146,146},
  252. {178,226,222,210,162,158,2,78,110,110,98,26,34,94,142,142,106,42,166,166},
  253. {62,50,46,10,150,150,174,218,214,238,242,250,34,86,130,126,106,42,18,70},
  254. {134,134,106,38,162,162,170,202,194,186,154,154,6,78,118,114,102,26,30,90},
  255. {122,122,106,38,22,74,66,54,46,14,146,146,182,230,234,242,246,254,30,82},
  256. {110,110,98,26,34,94,142,142,106,42,166,166,178,226,222,210,162,158,2,78},
  257. {214,238,242,250,34,86,130,126,106,42,18,70,62,50,46,10,150,150,174,218},
  258. {194,186,154,154,6,78,118,114,102,26,30,90,134,134,106,38,162,162,170,202},
  259. {46,14,146,146,182,230,234,242,246,254,30,82,122,122,106,38,22,74,66,54},
  260. {106,42,166,166,178,226,222,210,162,158,2,78,110,110,98,26,34,94,142,142},
  261. {106,42,18,70,62,50,46,10,150,150,174,218,214,238,242,250,34,86,130,126},
  262. {102,26,30,90,134,134,106,38,162,162,170,202,194,186,154,154,6,78,118,114},
  263. {246,254,30,82,122,122,106,38,22,74,66,54,46,14,146,146,182,230,234,242},
  264. {162,158,2,78,110,110,98,26,34,94,142,142,106,42,166,166,178,226,222,210},
  265. {150,150,174,218,214,238,242,250,34,86,130,126,106,42,18,70,62,50,46,10}
  266. }
  267. };
  268. static unsigned char M_NewTable[14][14] =
  269. {
  270. {21,72,154,149,93,67,11,19,70,151,146,90,65,8},
  271. {77,159,200,195,144,138,62,75,156,197,192,141,136,59},
  272. {164,205,251,246,230,189,133,161,202,248,243,228,187,131},
  273. {169,210,240,235,225,184,128,167,207,238,233,223,182,126},
  274. {98,174,220,215,179,123,87,95,172,218,212,177,121,85},
  275. {36,103,108,113,118,82,31,34,100,105,110,116,80,29},
  276. {16,42,47,52,57,26,6,14,39,44,49,54,24,255},
  277. {19,70,151,146,90,65,8,21,72,154,149,93,67,11},
  278. {75,156,197,192,141,136,59,77,159,200,195,144,138,62},
  279. {161,202,248,243,228,187,131,164,205,251,246,230,189,133},
  280. {167,207,238,233,223,182,126,169,210,240,235,225,184,128},
  281. {95,172,218,212,177,121,85,98,174,220,215,179,123,87},
  282. {34,100,105,110,116,80,29,36,103,108,113,118,82,31},
  283. {14,39,44,49,54,24,1,16,42,47,52,57,26,3}
  284. };
  285. static unsigned char OHP_NewTable[8][8] =
  286. {
  287. {110,94,102,126,146,162,154,130},
  288. {38,30,22,78,218,226,234,178},
  289. {46,6,14,86,210,250,242,170},
  290. {70,54,62,118,186,202,194,138},
  291. {150,166,158,134,106,90,98,122},
  292. {222,230,238,182,34,26,18,74},
  293. {214,254,246,174,42,2,10,82},
  294. {190,206,198,142,66,50,58,114}
  295. };
  296. static unsigned char DYE_NewTable[17][17] =
  297. {
  298. {1,14,4,13,1,14,4,10,5,12,15,3,6,13,7,3,15},
  299. {12,7,16,6,12,5,12,2,14,4,8,13,9,1,17,10,6},
  300. {3,11,2,11,4,17,7,15,6,17,10,2,16,11,5,9,16},
  301. {13,5,17,7,14,8,2,9,11,1,6,14,7,3,14,2,10},
  302. {8,15,3,13,1,10,16,4,15,8,15,4,10,17,5,13,4},
  303. {1,10,9,5,15,6,11,9,3,13,2,12,8,1,11,8,17},
  304. {13,5,17,11,3,14,2,17,10,7,16,5,13,6,15,3,9},
  305. {3,12,2,6,12,7,13,5,12,4,9,14,4,16,10,6,15},
  306. {14,8,16,9,15,3,8,16,1,15,8,1,12,7,2,12,7},
  307. {10,4,10,1,6,17,10,5,11,6,11,17,5,15,8,17,1},
  308. {16,6,13,8,14,9,2,14,3,13,2,9,12,3,11,4,11},
  309. {3,14,2,16,3,7,13,7,17,5,15,4,10,16,5,15,8},
  310. {6,11,9,7,10,17,4,11,1,12,8,14,1,7,13,2,14},
  311. {17,1,15,4,12,1,14,6,16,9,3,9,17,11,5,12,7},
  312. {10,12,5,13,6,15,5,11,4,12,6,13,6,4,16,9,2},
  313. {7,3,16,2,10,3,13,2,15,8,17,2,9,14,1,8,16},
  314. {12,8,10,8,17,9,7,16,9,1,7,11,16,4,11,14,5}
  315. };
  316. static unsigned char VD_ColorAdjustTable[4][256] =
  317. {
  318. /*******************************************************/
  319. /* Start ColorAdjustTable */
  320. /*******************************************************/
  321. { /* Yellow ColorAdjustTable (256 bytes) */
  322. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
  323. 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
  324. 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
  325. 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
  326. 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
  327. 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
  328. 96, 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111,
  329. 112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,
  330. 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,
  331. 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,
  332. 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,
  333. 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,
  334. 192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,
  335. 208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,
  336. 224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,
  337. 240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255},
  338. { /* Cyan ColorAdjustTable (256 bytes) */
  339. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
  340. 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
  341. 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
  342. 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
  343. 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
  344. 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
  345. 96, 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111,
  346. 112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,
  347. 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,
  348. 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,
  349. 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,
  350. 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,
  351. 192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,
  352. 208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,
  353. 224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,
  354. 240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255},
  355. { /* Magenta ColorAdjustTable (256 bytes) */
  356. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
  357. 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
  358. 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
  359. 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
  360. 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
  361. 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
  362. 96, 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111,
  363. 112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,
  364. 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,
  365. 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,
  366. 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,
  367. 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,
  368. 192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,
  369. 208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,
  370. 224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,
  371. 240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255},
  372. { /* Black ColorAdjustTable (256 bytes) */
  373. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  374. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  375. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  376. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  377. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  378. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  379. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  380. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  381. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  382. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  383. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  384. 0, 0, 0, 0, 0, 1, 1, 2, 3, 4, 5, 6, 8, 9, 11, 13,
  385. 15, 18, 20, 23, 25, 28, 31, 34, 38, 41, 45, 48, 52, 56, 60, 64,
  386. 69, 73, 77, 82, 87, 91, 96,101,106,111,116,121,126,131,136,141,
  387. 146,151,156,161,166,170,175,180,185,189,194,198,202,206,211,214,
  388. 218,222,225,229,232,235,238,240,243,245,247,249,251,253,254,255}
  389. };
  390. static unsigned char VD_DitherTable[4][40][40] =
  391. {
  392. /****************************************************/
  393. /* Start DitherTable */
  394. /****************************************************/
  395. { /* Yellow DitherTable (144 byte ) */
  396. { 81,113,129, 93,125,141, 84,116,132, 96,128,144},
  397. { 33, 49, 97, 45, 61,109, 36, 52,100, 48, 64,112},
  398. { 1, 17, 65, 13, 29, 77, 4, 20, 68, 16, 32, 80},
  399. { 89,121,137, 85,117,133, 92,124,140, 88,120,136},
  400. { 41, 57,105, 37, 53,101, 44, 60,108, 40, 56,104},
  401. { 9, 25, 73, 5, 21, 69, 12, 28, 76, 8, 24, 72},
  402. { 83,115,131, 95,127,143, 82,114,130, 94,126,142},
  403. { 35, 51, 99, 47, 63,111, 34, 50, 98, 46, 62,110},
  404. { 3, 19, 67, 15, 31, 79, 2, 18, 66, 14, 30, 78},
  405. { 91,123,139, 87,119,135, 90,122,138, 86,118,134},
  406. { 43, 59,107, 39, 55,103, 42, 58,106, 38, 54,102},
  407. { 11, 27, 75, 7, 23, 71, 10, 26, 74, 6, 22, 70}
  408. },
  409. { /* Cyan DitherTable (1600 bytes) */
  410. { 37, 41, 45, 49, 7, 18, 22, 27, 31, 35, 38, 42, 46, 50, 3, 17, 21, 28, 32, 36, 37, 41, 45, 49, 8, 18, 22, 27, 31, 35, 38, 42, 46, 50, 4, 17, 21, 28, 32, 36},
  411. { 25, 29, 33, 40, 44, 48, 52, 10, 19, 23, 26, 30, 34, 39, 43, 47, 51, 15, 20, 24, 25, 29, 33, 40, 44, 48, 52, 9, 19, 23, 26, 30, 34, 39, 43, 47, 51, 16, 20, 24},
  412. { 1, 17, 21, 28, 32, 36, 37, 41, 45, 49, 6, 18, 22, 27, 31, 35, 38, 42, 46, 50, 2, 17, 21, 28, 32, 36, 37, 41, 45, 49, 5, 18, 22, 27, 31, 35, 38, 42, 46, 50},
  413. { 43, 47, 51, 13, 20, 24, 25, 29, 33, 40, 44, 48, 52, 11, 19, 23, 26, 30, 34, 39, 43, 47, 51, 14, 20, 24, 25, 29, 33, 40, 44, 48, 52, 12, 19, 23, 26, 30, 34, 39},
  414. { 31, 35, 38, 42, 46, 50, 4, 17, 21, 28, 32, 36, 37, 41, 45, 49, 7, 18, 22, 27, 31, 35, 38, 42, 46, 50, 3, 17, 21, 28, 32, 36, 37, 41, 45, 49, 8, 18, 22, 27},
  415. { 19, 23, 26, 30, 34, 39, 43, 47, 51, 16, 20, 24, 25, 29, 33, 40, 44, 48, 52, 10, 19, 23, 26, 30, 34, 39, 43, 47, 51, 15, 20, 24, 25, 29, 33, 40, 44, 48, 52, 9},
  416. { 45, 49, 5, 18, 22, 27, 31, 35, 38, 42, 46, 50, 1, 17, 21, 28, 32, 36, 37, 41, 45, 49, 6, 18, 22, 27, 31, 35, 38, 42, 46, 50, 2, 17, 21, 28, 32, 36, 37, 41},
  417. { 33, 40, 44, 48, 52, 12, 19, 23, 26, 30, 34, 39, 43, 47, 51, 13, 20, 24, 25, 29, 33, 40, 44, 48, 52, 11, 19, 23, 26, 30, 34, 39, 43, 47, 51, 14, 20, 24, 25, 29},
  418. { 21, 28, 32, 36, 37, 41, 45, 49, 8, 18, 22, 27, 31, 35, 38, 42, 46, 50, 4, 17, 21, 28, 32, 36, 37, 41, 45, 49, 7, 18, 22, 27, 31, 35, 38, 42, 46, 50, 3, 17},
  419. { 51, 15, 20, 24, 25, 29, 33, 40, 44, 48, 52, 9, 19, 23, 26, 30, 34, 39, 43, 47, 51, 16, 20, 24, 25, 29, 33, 40, 44, 48, 52, 10, 19, 23, 26, 30, 34, 39, 43, 47},
  420. { 38, 42, 46, 50, 2, 17, 21, 28, 32, 36, 37, 41, 45, 49, 5, 18, 22, 27, 31, 35, 38, 42, 46, 50, 1, 17, 21, 28, 32, 36, 37, 41, 45, 49, 6, 18, 22, 27, 31, 35},
  421. { 26, 30, 34, 39, 43, 47, 51, 14, 20, 24, 25, 29, 33, 40, 44, 48, 52, 12, 19, 23, 26, 30, 34, 39, 43, 47, 51, 13, 20, 24, 25, 29, 33, 40, 44, 48, 52, 11, 19, 23},
  422. { 7, 18, 22, 27, 31, 35, 38, 42, 46, 50, 3, 17, 21, 28, 32, 36, 37, 41, 45, 49, 8, 18, 22, 27, 31, 35, 38, 42, 46, 50, 4, 17, 21, 28, 32, 36, 37, 41, 45, 49},
  423. { 44, 48, 52, 10, 19, 23, 26, 30, 34, 39, 43, 47, 51, 15, 20, 24, 25, 29, 33, 40, 44, 48, 52, 9, 19, 23, 26, 30, 34, 39, 43, 47, 51, 16, 20, 24, 25, 29, 33, 40},
  424. { 32, 36, 37, 41, 45, 49, 6, 18, 22, 27, 31, 35, 38, 42, 46, 50, 2, 17, 21, 28, 32, 36, 37, 41, 45, 49, 5, 18, 22, 27, 31, 35, 38, 42, 46, 50, 1, 17, 21, 28},
  425. { 20, 24, 25, 29, 33, 40, 44, 48, 52, 11, 19, 23, 26, 30, 34, 39, 43, 47, 51, 14, 20, 24, 25, 29, 33, 40, 44, 48, 52, 12, 19, 23, 26, 30, 34, 39, 43, 47, 51, 13},
  426. { 46, 50, 4, 17, 21, 28, 32, 36, 37, 41, 45, 49, 7, 18, 22, 27, 31, 35, 38, 42, 46, 50, 3, 17, 21, 28, 32, 36, 37, 41, 45, 49, 8, 18, 22, 27, 31, 35, 38, 42},
  427. { 34, 39, 43, 47, 51, 16, 20, 24, 25, 29, 33, 40, 44, 48, 52, 10, 19, 23, 26, 30, 34, 39, 43, 47, 51, 15, 20, 24, 25, 29, 33, 40, 44, 48, 52, 9, 19, 23, 26, 30},
  428. { 22, 27, 31, 35, 38, 42, 46, 50, 1, 17, 21, 28, 32, 36, 37, 41, 45, 49, 6, 18, 22, 27, 31, 35, 38, 42, 46, 50, 2, 17, 21, 28, 32, 36, 37, 41, 45, 49, 5, 18},
  429. { 52, 12, 19, 23, 26, 30, 34, 39, 43, 47, 51, 13, 20, 24, 25, 29, 33, 40, 44, 48, 52, 11, 19, 23, 26, 30, 34, 39, 43, 47, 51, 14, 20, 24, 25, 29, 33, 40, 44, 48},
  430. { 37, 41, 45, 49, 8, 18, 22, 27, 31, 35, 38, 42, 46, 50, 4, 17, 21, 28, 32, 36, 37, 41, 45, 49, 7, 18, 22, 27, 31, 35, 38, 42, 46, 50, 3, 17, 21, 28, 32, 36},
  431. { 25, 29, 33, 40, 44, 48, 52, 9, 19, 23, 26, 30, 34, 39, 43, 47, 51, 16, 20, 24, 25, 29, 33, 40, 44, 48, 52, 10, 19, 23, 26, 30, 34, 39, 43, 47, 51, 15, 20, 24},
  432. { 2, 17, 21, 28, 32, 36, 37, 41, 45, 49, 5, 18, 22, 27, 31, 35, 38, 42, 46, 50, 1, 17, 21, 28, 32, 36, 37, 41, 45, 49, 6, 18, 22, 27, 31, 35, 38, 42, 46, 50},
  433. { 43, 47, 51, 14, 20, 24, 25, 29, 33, 40, 44, 48, 52, 12, 19, 23, 26, 30, 34, 39, 43, 47, 51, 13, 20, 24, 25, 29, 33, 40, 44, 48, 52, 11, 19, 23, 26, 30, 34, 39},
  434. { 31, 35, 38, 42, 46, 50, 3, 17, 21, 28, 32, 36, 37, 41, 45, 49, 8, 18, 22, 27, 31, 35, 38, 42, 46, 50, 4, 17, 21, 28, 32, 36, 37, 41, 45, 49, 7, 18, 22, 27},
  435. { 19, 23, 26, 30, 34, 39, 43, 47, 51, 15, 20, 24, 25, 29, 33, 40, 44, 48, 52, 9, 19, 23, 26, 30, 34, 39, 43, 47, 51, 16, 20, 24, 25, 29, 33, 40, 44, 48, 52, 10},
  436. { 45, 49, 6, 18, 22, 27, 31, 35, 38, 42, 46, 50, 2, 17, 21, 28, 32, 36, 37, 41, 45, 49, 5, 18, 22, 27, 31, 35, 38, 42, 46, 50, 1, 17, 21, 28, 32, 36, 37, 41},
  437. { 33, 40, 44, 48, 52, 11, 19, 23, 26, 30, 34, 39, 43, 47, 51, 14, 20, 24, 25, 29, 33, 40, 44, 48, 52, 12, 19, 23, 26, 30, 34, 39, 43, 47, 51, 13, 20, 24, 25, 29},
  438. { 21, 28, 32, 36, 37, 41, 45, 49, 7, 18, 22, 27, 31, 35, 38, 42, 46, 50, 3, 17, 21, 28, 32, 36, 37, 41, 45, 49, 8, 18, 22, 27, 31, 35, 38, 42, 46, 50, 4, 17},
  439. { 51, 16, 20, 24, 25, 29, 33, 40, 44, 48, 52, 10, 19, 23, 26, 30, 34, 39, 43, 47, 51, 15, 20, 24, 25, 29, 33, 40, 44, 48, 52, 9, 19, 23, 26, 30, 34, 39, 43, 47},
  440. { 38, 42, 46, 50, 1, 17, 21, 28, 32, 36, 37, 41, 45, 49, 6, 18, 22, 27, 31, 35, 38, 42, 46, 50, 2, 17, 21, 28, 32, 36, 37, 41, 45, 49, 5, 18, 22, 27, 31, 35},
  441. { 26, 30, 34, 39, 43, 47, 51, 13, 20, 24, 25, 29, 33, 40, 44, 48, 52, 11, 19, 23, 26, 30, 34, 39, 43, 47, 51, 14, 20, 24, 25, 29, 33, 40, 44, 48, 52, 12, 19, 23},
  442. { 8, 18, 22, 27, 31, 35, 38, 42, 46, 50, 4, 17, 21, 28, 32, 36, 37, 41, 45, 49, 7, 18, 22, 27, 31, 35, 38, 42, 46, 50, 3, 17, 21, 28, 32, 36, 37, 41, 45, 49},
  443. { 44, 48, 52, 9, 19, 23, 26, 30, 34, 39, 43, 47, 51, 16, 20, 24, 25, 29, 33, 40, 44, 48, 52, 10, 19, 23, 26, 30, 34, 39, 43, 47, 51, 15, 20, 24, 25, 29, 33, 40},
  444. { 32, 36, 37, 41, 45, 49, 5, 18, 22, 27, 31, 35, 38, 42, 46, 50, 1, 17, 21, 28, 32, 36, 37, 41, 45, 49, 6, 18, 22, 27, 31, 35, 38, 42, 46, 50, 2, 17, 21, 28},
  445. { 20, 24, 25, 29, 33, 40, 44, 48, 52, 12, 19, 23, 26, 30, 34, 39, 43, 47, 51, 13, 20, 24, 25, 29, 33, 40, 44, 48, 52, 11, 19, 23, 26, 30, 34, 39, 43, 47, 51, 14},
  446. { 46, 50, 3, 17, 21, 28, 32, 36, 37, 41, 45, 49, 8, 18, 22, 27, 31, 35, 38, 42, 46, 50, 4, 17, 21, 28, 32, 36, 37, 41, 45, 49, 7, 18, 22, 27, 31, 35, 38, 42},
  447. { 34, 39, 43, 47, 51, 15, 20, 24, 25, 29, 33, 40, 44, 48, 52, 9, 19, 23, 26, 30, 34, 39, 43, 47, 51, 16, 20, 24, 25, 29, 33, 40, 44, 48, 52, 10, 19, 23, 26, 30},
  448. { 22, 27, 31, 35, 38, 42, 46, 50, 2, 17, 21, 28, 32, 36, 37, 41, 45, 49, 5, 18, 22, 27, 31, 35, 38, 42, 46, 50, 1, 17, 21, 28, 32, 36, 37, 41, 45, 49, 6, 18},
  449. { 52, 11, 19, 23, 26, 30, 34, 39, 43, 47, 51, 14, 20, 24, 25, 29, 33, 40, 44, 48, 52, 12, 19, 23, 26, 30, 34, 39, 43, 47, 51, 13, 20, 24, 25, 29, 33, 40, 44, 48}
  450. },
  451. { /* Magenta DitherTable (1600 bytes) */
  452. { 49, 1, 17, 24, 28, 32, 33, 37, 41, 45, 50, 8, 18, 23, 27, 31, 34, 38, 42, 46, 49, 2, 17, 24, 28, 32, 33, 37, 41, 45, 50, 7, 18, 23, 27, 31, 34, 38, 42, 46},
  453. { 21, 25, 29, 36, 40, 44, 48, 51, 12, 19, 22, 26, 30, 35, 39, 43, 47, 52, 15, 20, 21, 25, 29, 36, 40, 44, 48, 51, 11, 19, 22, 26, 30, 35, 39, 43, 47, 52, 16, 20},
  454. { 33, 37, 41, 45, 50, 5, 18, 23, 27, 31, 34, 38, 42, 46, 49, 3, 17, 24, 28, 32, 33, 37, 41, 45, 50, 6, 18, 23, 27, 31, 34, 38, 42, 46, 49, 4, 17, 24, 28, 32},
  455. { 48, 51, 9, 19, 22, 26, 30, 35, 39, 43, 47, 52, 14, 20, 21, 25, 29, 36, 40, 44, 48, 51, 10, 19, 22, 26, 30, 35, 39, 43, 47, 52, 13, 20, 21, 25, 29, 36, 40, 44},
  456. { 18, 23, 27, 31, 34, 38, 42, 46, 49, 2, 17, 24, 28, 32, 33, 37, 41, 45, 50, 7, 18, 23, 27, 31, 34, 38, 42, 46, 49, 1, 17, 24, 28, 32, 33, 37, 41, 45, 50, 8},
  457. { 30, 35, 39, 43, 47, 52, 15, 20, 21, 25, 29, 36, 40, 44, 48, 51, 11, 19, 22, 26, 30, 35, 39, 43, 47, 52, 16, 20, 21, 25, 29, 36, 40, 44, 48, 51, 12, 19, 22, 26},
  458. { 42, 46, 49, 3, 17, 24, 28, 32, 33, 37, 41, 45, 50, 6, 18, 23, 27, 31, 34, 38, 42, 46, 49, 4, 17, 24, 28, 32, 33, 37, 41, 45, 50, 5, 18, 23, 27, 31, 34, 38},
  459. { 14, 20, 21, 25, 29, 36, 40, 44, 48, 51, 10, 19, 22, 26, 30, 35, 39, 43, 47, 52, 13, 20, 21, 25, 29, 36, 40, 44, 48, 51, 9, 19, 22, 26, 30, 35, 39, 43, 47, 52},
  460. { 28, 32, 33, 37, 41, 45, 50, 7, 18, 23, 27, 31, 34, 38, 42, 46, 49, 1, 17, 24, 28, 32, 33, 37, 41, 45, 50, 8, 18, 23, 27, 31, 34, 38, 42, 46, 49, 2, 17, 24},
  461. { 40, 44, 48, 51, 11, 19, 22, 26, 30, 35, 39, 43, 47, 52, 16, 20, 21, 25, 29, 36, 40, 44, 48, 51, 12, 19, 22, 26, 30, 35, 39, 43, 47, 52, 15, 20, 21, 25, 29, 36},
  462. { 50, 6, 18, 23, 27, 31, 34, 38, 42, 46, 49, 4, 17, 24, 28, 32, 33, 37, 41, 45, 50, 5, 18, 23, 27, 31, 34, 38, 42, 46, 49, 3, 17, 24, 28, 32, 33, 37, 41, 45},
  463. { 22, 26, 30, 35, 39, 43, 47, 52, 13, 20, 21, 25, 29, 36, 40, 44, 48, 51, 9, 19, 22, 26, 30, 35, 39, 43, 47, 52, 14, 20, 21, 25, 29, 36, 40, 44, 48, 51, 10, 19},
  464. { 34, 38, 42, 46, 49, 1, 17, 24, 28, 32, 33, 37, 41, 45, 50, 8, 18, 23, 27, 31, 34, 38, 42, 46, 49, 2, 17, 24, 28, 32, 33, 37, 41, 45, 50, 7, 18, 23, 27, 31},
  465. { 47, 52, 16, 20, 21, 25, 29, 36, 40, 44, 48, 51, 12, 19, 22, 26, 30, 35, 39, 43, 47, 52, 15, 20, 21, 25, 29, 36, 40, 44, 48, 51, 11, 19, 22, 26, 30, 35, 39, 43},
  466. { 17, 24, 28, 32, 33, 37, 41, 45, 50, 5, 18, 23, 27, 31, 34, 38, 42, 46, 49, 3, 17, 24, 28, 32, 33, 37, 41, 45, 50, 6, 18, 23, 27, 31, 34, 38, 42, 46, 49, 4},
  467. { 29, 36, 40, 44, 48, 51, 9, 19, 22, 26, 30, 35, 39, 43, 47, 52, 14, 20, 21, 25, 29, 36, 40, 44, 48, 51, 10, 19, 22, 26, 30, 35, 39, 43, 47, 52, 13, 20, 21, 25},
  468. { 41, 45, 50, 8, 18, 23, 27, 31, 34, 38, 42, 46, 49, 2, 17, 24, 28, 32, 33, 37, 41, 45, 50, 7, 18, 23, 27, 31, 34, 38, 42, 46, 49, 1, 17, 24, 28, 32, 33, 37},
  469. { 12, 19, 22, 26, 30, 35, 39, 43, 47, 52, 15, 20, 21, 25, 29, 36, 40, 44, 48, 51, 11, 19, 22, 26, 30, 35, 39, 43, 47, 52, 16, 20, 21, 25, 29, 36, 40, 44, 48, 51},
  470. { 27, 31, 34, 38, 42, 46, 49, 3, 17, 24, 28, 32, 33, 37, 41, 45, 50, 6, 18, 23, 27, 31, 34, 38, 42, 46, 49, 4, 17, 24, 28, 32, 33, 37, 41, 45, 50, 5, 18, 23},
  471. { 39, 43, 47, 52, 14, 20, 21, 25, 29, 36, 40, 44, 48, 51, 10, 19, 22, 26, 30, 35, 39, 43, 47, 52, 13, 20, 21, 25, 29, 36, 40, 44, 48, 51, 9, 19, 22, 26, 30, 35},
  472. { 49, 2, 17, 24, 28, 32, 33, 37, 41, 45, 50, 7, 18, 23, 27, 31, 34, 38, 42, 46, 49, 1, 17, 24, 28, 32, 33, 37, 41, 45, 50, 8, 18, 23, 27, 31, 34, 38, 42, 46},
  473. { 21, 25, 29, 36, 40, 44, 48, 51, 11, 19, 22, 26, 30, 35, 39, 43, 47, 52, 16, 20, 21, 25, 29, 36, 40, 44, 48, 51, 12, 19, 22, 26, 30, 35, 39, 43, 47, 52, 15, 20},
  474. { 33, 37, 41, 45, 50, 6, 18, 23, 27, 31, 34, 38, 42, 46, 49, 4, 17, 24, 28, 32, 33, 37, 41, 45, 50, 5, 18, 23, 27, 31, 34, 38, 42, 46, 49, 3, 17, 24, 28, 32},
  475. { 48, 51, 10, 19, 22, 26, 30, 35, 39, 43, 47, 52, 13, 20, 21, 25, 29, 36, 40, 44, 48, 51, 9, 19, 22, 26, 30, 35, 39, 43, 47, 52, 14, 20, 21, 25, 29, 36, 40, 44},
  476. { 18, 23, 27, 31, 34, 38, 42, 46, 49, 1, 17, 24, 28, 32, 33, 37, 41, 45, 50, 8, 18, 23, 27, 31, 34, 38, 42, 46, 49, 2, 17, 24, 28, 32, 33, 37, 41, 45, 50, 7},
  477. { 30, 35, 39, 43, 47, 52, 16, 20, 21, 25, 29, 36, 40, 44, 48, 51, 12, 19, 22, 26, 30, 35, 39, 43, 47, 52, 15, 20, 21, 25, 29, 36, 40, 44, 48, 51, 11, 19, 22, 26},
  478. { 42, 46, 49, 4, 17, 24, 28, 32, 33, 37, 41, 45, 50, 5, 18, 23, 27, 31, 34, 38, 42, 46, 49, 3, 17, 24, 28, 32, 33, 37, 41, 45, 50, 6, 18, 23, 27, 31, 34, 38},
  479. { 13, 20, 21, 25, 29, 36, 40, 44, 48, 51, 9, 19, 22, 26, 30, 35, 39, 43, 47, 52, 14, 20, 21, 25, 29, 36, 40, 44, 48, 51, 10, 19, 22, 26, 30, 35, 39, 43, 47, 52},
  480. { 28, 32, 33, 37, 41, 45, 50, 8, 18, 23, 27, 31, 34, 38, 42, 46, 49, 2, 17, 24, 28, 32, 33, 37, 41, 45, 50, 7, 18, 23, 27, 31, 34, 38, 42, 46, 49, 1, 17, 24},
  481. { 40, 44, 48, 51, 12, 19, 22, 26, 30, 35, 39, 43, 47, 52, 15, 20, 21, 25, 29, 36, 40, 44, 48, 51, 11, 19, 22, 26, 30, 35, 39, 43, 47, 52, 16, 20, 21, 25, 29, 36},
  482. { 50, 5, 18, 23, 27, 31, 34, 38, 42, 46, 49, 3, 17, 24, 28, 32, 33, 37, 41, 45, 50, 6, 18, 23, 27, 31, 34, 38, 42, 46, 49, 4, 17, 24, 28, 32, 33, 37, 41, 45},
  483. { 22, 26, 30, 35, 39, 43, 47, 52, 14, 20, 21, 25, 29, 36, 40, 44, 48, 51, 10, 19, 22, 26, 30, 35, 39, 43, 47, 52, 13, 20, 21, 25, 29, 36, 40, 44, 48, 51, 9, 19},
  484. { 34, 38, 42, 46, 49, 2, 17, 24, 28, 32, 33, 37, 41, 45, 50, 7, 18, 23, 27, 31, 34, 38, 42, 46, 49, 1, 17, 24, 28, 32, 33, 37, 41, 45, 50, 8, 18, 23, 27, 31},
  485. { 47, 52, 15, 20, 21, 25, 29, 36, 40, 44, 48, 51, 11, 19, 22, 26, 30, 35, 39, 43, 47, 52, 16, 20, 21, 25, 29, 36, 40, 44, 48, 51, 12, 19, 22, 26, 30, 35, 39, 43},
  486. { 17, 24, 28, 32, 33, 37, 41, 45, 50, 6, 18, 23, 27, 31, 34, 38, 42, 46, 49, 4, 17, 24, 28, 32, 33, 37, 41, 45, 50, 5, 18, 23, 27, 31, 34, 38, 42, 46, 49, 3},
  487. { 29, 36, 40, 44, 48, 51, 10, 19, 22, 26, 30, 35, 39, 43, 47, 52, 13, 20, 21, 25, 29, 36, 40, 44, 48, 51, 9, 19, 22, 26, 30, 35, 39, 43, 47, 52, 14, 20, 21, 25},
  488. { 41, 45, 50, 7, 18, 23, 27, 31, 34, 38, 42, 46, 49, 1, 17, 24, 28, 32, 33, 37, 41, 45, 50, 8, 18, 23, 27, 31, 34, 38, 42, 46, 49, 2, 17, 24, 28, 32, 33, 37},
  489. { 11, 19, 22, 26, 30, 35, 39, 43, 47, 52, 16, 20, 21, 25, 29, 36, 40, 44, 48, 51, 12, 19, 22, 26, 30, 35, 39, 43, 47, 52, 15, 20, 21, 25, 29, 36, 40, 44, 48, 51},
  490. { 27, 31, 34, 38, 42, 46, 49, 4, 17, 24, 28, 32, 33, 37, 41, 45, 50, 5, 18, 23, 27, 31, 34, 38, 42, 46, 49, 3, 17, 24, 28, 32, 33, 37, 41, 45, 50, 6, 18, 23},
  491. { 39, 43, 47, 52, 13, 20, 21, 25, 29, 36, 40, 44, 48, 51, 9, 19, 22, 26, 30, 35, 39, 43, 47, 52, 14, 20, 21, 25, 29, 36, 40, 44, 48, 51, 10, 19, 22, 26, 30, 35}
  492. },
  493. { /* Black DitherTable (576 bytes) */
  494. { 61, 69, 77, 21, 25, 33, 64, 72, 80, 24, 28, 36, 61, 69, 77, 21, 25, 33, 64, 72, 80, 24, 28, 36},
  495. { 37, 45, 53, 41, 49, 57, 40, 48, 56, 44, 52, 60, 37, 45, 53, 41, 49, 57, 40, 48, 56, 44, 52, 60},
  496. { 1, 17, 29, 65, 73, 81, 9, 20, 32, 68, 76, 84, 2, 17, 29, 65, 73, 81, 10, 20, 32, 68, 76, 84},
  497. { 23, 27, 35, 62, 70, 78, 22, 26, 34, 63, 71, 79, 23, 27, 35, 62, 70, 78, 22, 26, 34, 63, 71, 79},
  498. { 43, 51, 59, 38, 46, 54, 42, 50, 58, 39, 47, 55, 43, 51, 59, 38, 46, 54, 42, 50, 58, 39, 47, 55},
  499. { 67, 75, 83, 13, 18, 30, 66, 74, 82, 6, 19, 31, 67, 75, 83, 14, 18, 30, 66, 74, 82, 5, 19, 31},
  500. { 64, 72, 80, 24, 28, 36, 61, 69, 77, 21, 25, 33, 64, 72, 80, 24, 28, 36, 61, 69, 77, 21, 25, 33},
  501. { 40, 48, 56, 44, 52, 60, 37, 45, 53, 41, 49, 57, 40, 48, 56, 44, 52, 60, 37, 45, 53, 41, 49, 57},
  502. { 12, 20, 32, 68, 76, 84, 3, 17, 29, 65, 73, 81, 11, 20, 32, 68, 76, 84, 4, 17, 29, 65, 73, 81},
  503. { 22, 26, 34, 63, 71, 79, 23, 27, 35, 62, 70, 78, 22, 26, 34, 63, 71, 79, 23, 27, 35, 62, 70, 78},
  504. { 42, 50, 58, 39, 47, 55, 43, 51, 59, 38, 46, 54, 42, 50, 58, 39, 47, 55, 43, 51, 59, 38, 46, 54},
  505. { 66, 74, 82, 7, 19, 31, 67, 75, 83, 15, 18, 30, 66, 74, 82, 8, 19, 31, 67, 75, 83, 16, 18, 30},
  506. { 61, 69, 77, 21, 25, 33, 64, 72, 80, 24, 28, 36, 61, 69, 77, 21, 25, 33, 64, 72, 80, 24, 28, 36},
  507. { 37, 45, 53, 41, 49, 57, 40, 48, 56, 44, 52, 60, 37, 45, 53, 41, 49, 57, 40, 48, 56, 44, 52, 60},
  508. { 2, 17, 29, 65, 73, 81, 10, 20, 32, 68, 76, 84, 1, 17, 29, 65, 73, 81, 9, 20, 32, 68, 76, 84},
  509. { 23, 27, 35, 62, 70, 78, 22, 26, 34, 63, 71, 79, 23, 27, 35, 62, 70, 78, 22, 26, 34, 63, 71, 79},
  510. { 43, 51, 59, 38, 46, 54, 42, 50, 58, 39, 47, 55, 43, 51, 59, 38, 46, 54, 42, 50, 58, 39, 47, 55},
  511. { 67, 75, 83, 14, 18, 30, 66, 74, 82, 5, 19, 31, 67, 75, 83, 13, 18, 30, 66, 74, 82, 6, 19, 31},
  512. { 64, 72, 80, 24, 28, 36, 61, 69, 77, 21, 25, 33, 64, 72, 80, 24, 28, 36, 61, 69, 77, 21, 25, 33},
  513. { 40, 48, 56, 44, 52, 60, 37, 45, 53, 41, 49, 57, 40, 48, 56, 44, 52, 60, 37, 45, 53, 41, 49, 57},
  514. { 11, 20, 32, 68, 76, 84, 4, 17, 29, 65, 73, 81, 12, 20, 32, 68, 76, 84, 3, 17, 29, 65, 73, 81},
  515. { 22, 26, 34, 63, 71, 79, 23, 27, 35, 62, 70, 78, 22, 26, 34, 63, 71, 79, 23, 27, 35, 62, 70, 78},
  516. { 42, 50, 58, 39, 47, 55, 43, 51, 59, 38, 46, 54, 42, 50, 58, 39, 47, 55, 43, 51, 59, 38, 46, 54},
  517. { 66, 74, 82, 8, 19, 31, 67, 75, 83, 16, 18, 30, 66, 74, 82, 7, 19, 31, 67, 75, 83, 15, 18, 30}
  518. }
  519. };
  520. static short VD_ExpandValueTable[4][256] =
  521. {
  522. /********************************************/
  523. /* Start ExpandValueTable */
  524. /********************************************/
  525. { /* Yellow ExpandValueTable (256 words) */
  526. 0, 2, 3, 5, 6, 8, 9, 11, 12, 14, 15, 17, 20, 22, 25, 27,
  527. 30, 32, 35, 37, 40, 42, 45, 47, 49, 52, 54, 57, 59, 62, 64, 67,
  528. 69, 72, 74, 77, 79, 82, 84, 87, 89, 92, 94, 97, 99, 102, 104, 106,
  529. 109, 111, 115, 119, 122, 126, 130, 134, 137, 141, 145, 149, 152, 156, 160, 163,
  530. 167, 171, 175, 178, 182, 186, 190, 193, 197, 201, 205, 208, 212, 216, 220, 223,
  531. 227, 231, 234, 238, 242, 246, 250, 254, 258, 262, 266, 269, 273, 277, 281, 285,
  532. 289, 293, 297, 301, 305, 309, 313, 316, 320, 324, 328, 332, 336, 340, 344, 348,
  533. 352, 356, 360, 363, 367, 371, 375, 379, 383, 387, 391, 395, 399, 403, 407, 410,
  534. 414, 418, 422, 426, 430, 434, 438, 442, 446, 450, 454, 457, 461, 465, 469, 473,
  535. 477, 481, 487, 492, 497, 503, 508, 513, 518, 524, 529, 534, 540, 545, 550, 555,
  536. 561, 566, 571, 577, 590, 602, 614, 626, 639, 651, 659, 663, 667, 672, 676, 680,
  537. 684, 688, 690, 692, 693, 695, 697, 699, 700, 702, 704, 705, 707, 709, 710, 712,
  538. 714, 716, 717, 719, 721, 722, 724, 726, 727, 729, 731, 733, 734, 736, 738, 739,
  539. 741, 743, 745, 746, 748, 750, 751, 754, 756, 759, 762, 764, 767, 770, 772, 775,
  540. 778, 780, 783, 786, 788, 791, 794, 796, 799, 802, 804, 807, 810, 812, 815, 818,
  541. 820, 823, 826, 828, 831, 846, 867, 888, 908, 927, 946, 963, 974, 985, 997,1008},
  542. { /* Cyan ExpandValueTable (256 words) */
  543. 0, 1, 2, 3, 3, 4, 5, 6, 7, 8, 9, 9, 10, 11, 12, 13,
  544. 14, 14, 15, 17, 21, 24, 28, 32, 36, 40, 43, 47, 51, 55, 59, 62,
  545. 66, 70, 74, 78, 81, 85, 89, 93, 96, 100, 104, 108, 112, 115, 119, 123,
  546. 127, 131, 134, 138, 142, 146, 150, 153, 157, 161, 165, 169, 172, 176, 180, 184,
  547. 188, 191, 195, 199, 203, 207, 211, 215, 219, 224, 225, 226, 227, 228, 229, 230,
  548. 231, 232, 233, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
  549. 248, 249, 250, 251, 252, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
  550. 265, 266, 267, 269, 271, 273, 275, 278, 280, 282, 284, 286, 287, 288, 289, 291,
  551. 292, 293, 295, 296, 297, 298, 300, 301, 302, 304, 305, 306, 307, 309, 310, 311,
  552. 313, 314, 316, 317, 319, 320, 322, 323, 325, 326, 328, 329, 331, 332, 334, 335,
  553. 337, 338, 340, 341, 343, 344, 346, 347, 349, 351, 353, 355, 356, 358, 359, 360,
  554. 361, 362, 363, 364, 365, 366, 367, 368, 370, 371, 372, 373, 374, 375, 376, 377,
  555. 378, 379, 380, 381, 382, 383, 384, 386, 387, 388, 389, 390, 391, 392, 393, 393,
  556. 394, 395, 396, 396, 397, 398, 399, 399, 400, 401, 402, 402, 403, 404, 406, 408,
  557. 410, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 425, 426, 427,
  558. 428, 429, 430, 431, 432, 434, 437, 440, 443, 445, 448, 451, 454, 457, 461, 468},
  559. { /* Magenta ExpandValueTable (256 words) */
  560. 0, 1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 18, 22,
  561. 26, 31, 35, 39, 44, 48, 52, 56, 61, 65, 69, 74, 78, 82, 86, 91,
  562. 95, 99, 104, 108, 112, 117, 121, 125, 129, 134, 138, 142, 147, 151, 155, 160,
  563. 164, 168, 172, 177, 181, 185, 190, 194, 198, 202, 207, 211, 215, 219, 223, 225,
  564. 226, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 239, 240, 241, 242,
  565. 243, 244, 245, 246, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
  566. 260, 262, 263, 264, 265, 266, 267, 268, 271, 274, 276, 279, 282, 284, 286, 287,
  567. 289, 290, 291, 293, 294, 296, 297, 298, 300, 301, 302, 304, 305, 307, 308, 309,
  568. 311, 313, 317, 321, 322, 324, 325, 327, 328, 330, 332, 333, 335, 336, 338, 340,
  569. 341, 343, 344, 346, 347, 351, 354, 358, 360, 362, 363, 364, 365, 366, 367, 368,
  570. 369, 370, 371, 372, 373, 374, 376, 378, 383, 385, 385, 386, 387, 388, 389, 390,
  571. 390, 391, 392, 393, 394, 394, 395, 396, 397, 398, 399, 399, 400, 401, 402, 403,
  572. 403, 405, 408, 409, 410, 411, 411, 412, 413, 414, 415, 416, 416, 417, 418, 419,
  573. 420, 421, 421, 422, 423, 424, 425, 426, 427, 427, 428, 429, 430, 431, 432, 432,
  574. 433, 433, 434, 434, 435, 435, 436, 437, 439, 441, 442, 444, 446, 448, 449, 451,
  575. 452, 453, 453, 454, 454, 455, 455, 456, 457, 458, 460, 461, 463, 465, 466, 468},
  576. { /* Black ExpandValueTable (256 words) */
  577. 0, 2, 3, 5, 6, 8, 9, 11, 12, 14, 15, 20, 28, 36, 44, 52,
  578. 60, 68, 76, 84, 92, 97, 99, 102, 104, 106, 108, 111, 113, 115, 117, 120,
  579. 122, 125, 133, 142, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170,
  580. 172, 174, 176, 178, 180, 182, 184, 188, 191, 194, 197, 200, 202, 203, 205, 207,
  581. 208, 210, 211, 213, 215, 216, 218, 220, 221, 223, 225, 228, 230, 233, 235, 238,
  582. 241, 246, 251, 256, 257, 259, 260, 262, 263, 264, 265, 266, 266, 267, 267, 268,
  583. 269, 269, 270, 270, 271, 272, 272, 274, 275, 277, 278, 279, 281, 282, 283, 285,
  584. 286, 287, 289, 290, 291, 294, 296, 299, 301, 304, 305, 305, 306, 306, 307, 307,
  585. 308, 309, 309, 310, 310, 311, 312, 312, 314, 316, 317, 319, 321, 322, 324, 326,
  586. 328, 329, 331, 332, 334, 335, 336, 337, 338, 339, 341, 342, 343, 344, 345, 346,
  587. 347, 348, 349, 351, 352, 353, 354, 355, 356, 361, 362, 363, 364, 365, 367, 368,
  588. 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 382, 383, 385, 387,
  589. 388, 388, 388, 388, 389, 389, 389, 389, 389, 389, 389, 389, 390, 390, 390, 390,
  590. 390, 390, 390, 390, 391, 391, 391, 391, 391, 391, 391, 391, 392, 392, 392, 392,
  591. 392, 392, 392, 393, 393, 393, 393, 393, 394, 394, 394, 394, 394, 394, 395, 395,
  592. 395, 395, 395, 395, 396, 396, 396, 396, 397, 397, 398, 398, 399, 399, 400, 404}
  593. };
  594. typedef struct {
  595. unsigned char base;
  596. unsigned char offset;
  597. } ToneOptimaizeTable;
  598. static ToneOptimaizeTable VD_ToneOptimaizeTable[4][232] =
  599. {
  600. /***************************************************/
  601. /* Start ToneOptimaizeTabl */
  602. /***************************************************/
  603. { /* Yellow ToneOptimaizeTabl (464 bytes) */
  604. { 0, 0},
  605. { 1, 9},{ 1,10},{ 1,11},{ 1,12},{ 1,13},{ 1,14},{ 1,15},
  606. { 2, 8},{ 2, 9},{ 2,10},{ 2,11},{ 2,12},{ 2,13},{ 2,14},{ 2,15},
  607. { 3, 8},{ 3, 9},{ 3,10},{ 3,11},{ 3,12},{ 3,13},{ 3,14},{ 3,15},
  608. { 4, 8},{ 4, 9},{ 4,10},{ 4,11},{ 4,12},{ 4,13},{ 4,14},{ 4,15},
  609. { 5, 8},{ 5, 9},{ 5,10},{ 5,11},{ 5,12},{ 5,13},{ 5,14},{ 5,15},
  610. { 6, 1},{ 6, 2},{ 6, 3},{ 6, 4},{ 6, 5},{ 6, 6},{ 6, 7},{ 6, 8},{ 6, 9},{ 6,10},{ 6,11},{ 6,12},{ 6,13},{ 6,14},{ 6,15},
  611. { 7, 1},{ 7, 2},{ 7, 3},{ 7, 4},{ 7, 5},{ 7, 6},{ 7, 7},{ 7, 8},{ 7, 9},{ 7,10},{ 7,11},{ 7,12},{ 7,13},{ 7,14},{ 7,15},
  612. { 8, 1},{ 8, 2},{ 8, 3},{ 8, 4},{ 8, 5},{ 8, 6},{ 8, 7},{ 8, 8},{ 8, 9},{ 8,10},{ 8,11},{ 8,12},{ 8,13},{ 8,14},{ 8,15},
  613. { 9, 1},{ 9, 2},{ 9, 3},{ 9, 4},{ 9, 5},{ 9, 6},{ 9, 7},{ 9, 8},{ 9, 9},{ 9,10},{ 9,11},{ 9,12},{ 9,13},{ 9,14},{ 9,15},
  614. {10,10},{10,11},{10,12},{10,13},{10,14},{10,15},
  615. {11,10},{11,11},{11,12},{11,13},{11,14},{11,15},
  616. {12,10},{12,11},{12,12},{12,13},{12,14},{12,15},
  617. {13,10},{13,11},{13,12},{13,13},{13,14},{13,15},
  618. {14,11},{14,12},{14,13},{14,14},{14,15},
  619. {15,11},{15,12},{15,13},{15,14},{15,15},
  620. {16,11},{16,12},{16,13},{16,14},{16,15},
  621. {17,11},{17,12},{17,13},{17,14},{17,15},
  622. {18, 5},{18, 6},{18, 7},{18, 8},{18, 9},{18,10},{18,11},{18,12},{18,13},{18,14},{18,15},
  623. {19, 5},{19, 6},{19, 7},{19, 8},{19, 9},{19,10},{19,11},{19,12},{19,13},{19,14},{19,15},
  624. {20, 5},{20, 6},{20, 7},{20, 8},{20, 9},{20,10},{20,11},{20,12},{20,13},{20,14},{20,15},
  625. {21, 5},{21, 6},{21, 7},{21, 8},{21, 9},{21,10},{21,11},{21,12},{21,13},{21,14},{21,15},
  626. {22,12},{22,13},{22,14},{22,15},
  627. {23,12},{23,13},{23,14},{23,15},
  628. {24,12},{24,13},{24,14},{24,15},
  629. {25,12},{25,13},{25,14},{25,15},
  630. {26,12},{26,13},{26,14},{26,15},
  631. {27,12},{27,13},{27,14},{27,15},
  632. {28,12},{28,13},{28,14},{28,15},
  633. {29,12},{29,13},{29,14},{29,15},
  634. {30,13},{30,14},{30,15},
  635. {31,13},{31,14},{31,15},
  636. {32,13},{32,14},{32,15},
  637. {33,13},{33,14},{33,15}
  638. },
  639. { /* Cyan ToneOptimaizeTabl (158 bytes) */
  640. { 0, 0},
  641. { 1, 3},{ 1, 4},{ 1, 5},{ 1, 6},{ 1, 7},{ 1, 8},{ 1, 9},{ 1,10},{ 1,11},{ 1,12},{ 1,13},{ 1,14},{ 1,15},
  642. { 2, 1},{ 2, 2},{ 2, 3},{ 2, 4},{ 2, 5},{ 2, 6},{ 2, 7},{ 2, 8},{ 2, 9},{ 2,10},{ 2,11},{ 2,12},{ 2,13},{ 2,14},{ 2,15},
  643. { 3, 5},{ 3, 6},{ 3, 7},{ 3, 8},{ 3, 9},{ 3,10},{ 3,11},{ 3,12},{ 3,13},{ 3,14},{ 3,15},
  644. { 4, 7},{ 4, 8},{ 4, 9},{ 4,10},{ 4,11},{ 4,12},{ 4,13},{ 4,14},{ 4,15},
  645. { 5, 9},{ 5,10},{ 5,11},{ 5,12},{ 5,13},{ 5,14},{ 5,15},
  646. { 6, 9},{ 6,10},{ 6,11},{ 6,12},{ 6,13},{ 6,14},{ 6,15},
  647. { 7, 9},{ 7,10},{ 7,11},{ 7,12},{ 7,13},{ 7,14},{ 7,15},
  648. { 8,11},{ 8,12},{ 8,13},{ 8,14},{ 8,15},
  649. { 9,13},{ 9,14},{ 9,15},
  650. {10,15}
  651. },
  652. { /* Magenat ToneOptimaizeTabl (158 bytes) */
  653. { 0, 0},
  654. { 1, 3},{ 1, 4},{ 1, 5},{ 1, 6},{ 1, 7},{ 1, 8},{ 1, 9},{ 1,10},{ 1,11},{ 1,12},{ 1,13},{ 1,14},{ 1,15},
  655. { 2, 1},{ 2, 2},{ 2, 3},{ 2, 4},{ 2, 5},{ 2, 6},{ 2, 7},{ 2, 8},{ 2, 9},{ 2,10},{ 2,11},{ 2,12},{ 2,13},{ 2,14},{ 2,15},
  656. { 3, 5},{ 3, 6},{ 3, 7},{ 3, 8},{ 3, 9},{ 3,10},{ 3,11},{ 3,12},{ 3,13},{ 3,14},{ 3,15},
  657. { 4, 7},{ 4, 8},{ 4, 9},{ 4,10},{ 4,11},{ 4,12},{ 4,13},{ 4,14},{ 4,15},
  658. { 5, 9},{ 5,10},{ 5,11},{ 5,12},{ 5,13},{ 5,14},{ 5,15},
  659. { 6, 9},{ 6,10},{ 6,11},{ 6,12},{ 6,13},{ 6,14},{ 6,15},
  660. { 7, 9},{ 7,10},{ 7,11},{ 7,12},{ 7,13},{ 7,14},{ 7,15},
  661. { 8,11},{ 8,12},{ 8,13},{ 8,14},{ 8,15},
  662. { 9,13},{ 9,14},{ 9,15},
  663. {10,15}
  664. },
  665. { /* Black ToneOptimaizeTabl (168 bytes) */
  666. { 0, 0},
  667. { 1,10},{ 1,11},{ 1,12},{ 1,13},{ 1,14},{ 1,15},
  668. { 2, 9},{ 2,10},{ 2,11},{ 2,12},{ 2,13},{ 2,14},{ 2,15},
  669. { 3, 1},{ 3, 2},{ 3, 3},{ 3, 4},{ 3, 5},{ 3, 6},{ 3, 7},{ 3, 8},{ 3, 9},{ 3,10},{ 3,11},{ 3,12},{ 3,13},{ 3,14},{ 3,15},
  670. { 4,12},{ 4,13},{ 4,14},{ 4,15},
  671. { 5,10},{ 5,11},{ 5,12},{ 5,13},{ 5,14},{ 5,15},
  672. { 6,12},{ 6,13},{ 6,14},{ 6,15},
  673. { 7, 3},{ 7, 4},{ 7, 5},{ 7, 6},{ 7, 7},{ 7, 8},{ 7, 9},{ 7,10},{ 7,11},{ 7,12},{ 7,13},{ 7,14},{ 7,15},
  674. { 8, 6},{ 8, 7},{ 8, 8},{ 8, 9},{ 8,10},{ 8,11}, {8,12},{ 8,13},{ 8,14},{ 8,15},
  675. { 9,13},{ 9,14},{ 9,15},
  676. {10,13},{10,14},{10,15},
  677. {11,15},
  678. {12,14},{12,15},
  679. {13,13},{13,14},{13,15},
  680. {14,14},{14,15},
  681. {15,15},
  682. {16,15},
  683. {17,15},
  684. {18,15}
  685. }
  686. };