RAYCAST.C 164 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230
  1. /*
  2. * Raycaster, based on lodev engine tutorial
  3. */
  4. #define word char
  5. #include "LIB/MATH.C"
  6. #include "LIB/STDLIB.C"
  7. #include "LIB/SYS.C"
  8. #include "LIB/GFX.C"
  9. #include "LIB/FP.C"
  10. // Note: these are also hardcoded in the render assembly, so update there as well!
  11. #define FB_ADDR 0xD00000
  12. #define screenWidth 320
  13. #define screenHeight 240
  14. #define texWidth 64
  15. #define texHeight 64
  16. // Map
  17. #define mapWidth 24
  18. #define mapHeight 24
  19. // Input
  20. #define BTN_LEFT 256
  21. #define BTN_RIGHT 257
  22. #define BTN_UP 258
  23. #define BTN_DOWN 259
  24. // Colors
  25. #define COLOR_RED 224
  26. #define COLOR_DARK_RED 96
  27. #define COLOR_GREEN 28
  28. #define COLOR_DARK_GREEN 12
  29. #define COLOR_BLUE 3
  30. #define COLOR_DARK_BLUE 2
  31. #define COLOR_WHITE 0xFF
  32. #define COLOR_GREY 0xB6
  33. #define COLOR_YELLOW 0xFC
  34. #define COLOR_DARK_YELLOW 0x90
  35. // Framebuffer. fb[Y][X] (bottom right is [239][319])
  36. char (*fb)[screenWidth] = (char (*)[screenWidth]) FB_ADDR;
  37. word quitGame = 0;
  38. word LUTdirX[360] = {
  39. -65526, -65496, -65446, -65376, -65287, -65177, -65048, -64898, -64729, -64540, -64332, -64104,
  40. -63856, -63589, -63303, -62997, -62672, -62328, -61966, -61584, -61183, -60764, -60326, -59870,
  41. -59396, -58903, -58393, -57865, -57319, -56756, -56175, -55578, -54963, -54332, -53684, -53020,
  42. -52339, -51643, -50931, -50203, -49461, -48703, -47930, -47143, -46341, -45525, -44695, -43852,
  43. -42995, -42126, -41243, -40348, -39441, -38521, -37590, -36647, -35693, -34729, -33754, -32768,
  44. -31772, -30767, -29753, -28729, -27697, -26656, -25607, -24550, -23486, -22415, -21336, -20252,
  45. -19161, -18064, -16962, -15855, -14742, -13626, -12505, -11380, -10252, -9121, -7987, -6850,
  46. -5712, -4572, -3430, -2287, -1144, 0, 1144, 2287, 3430, 4572, 5712, 6850,
  47. 7987, 9121, 10252, 11380, 12505, 13626, 14742, 15855, 16962, 18064, 19161, 20252,
  48. 21336, 22415, 23486, 24550, 25607, 26656, 27697, 28729, 29753, 30767, 31772, 32768,
  49. 33754, 34729, 35693, 36647, 37590, 38521, 39441, 40348, 41243, 42126, 42995, 43852,
  50. 44695, 45525, 46341, 47143, 47930, 48703, 49461, 50203, 50931, 51643, 52339, 53020,
  51. 53684, 54332, 54963, 55578, 56175, 56756, 57319, 57865, 58393, 58903, 59396, 59870,
  52. 60326, 60764, 61183, 61584, 61966, 62328, 62672, 62997, 63303, 63589, 63856, 64104,
  53. 64332, 64540, 64729, 64898, 65048, 65177, 65287, 65376, 65446, 65496, 65526, 65536,
  54. 65526, 65496, 65446, 65376, 65287, 65177, 65048, 64898, 64729, 64540, 64332, 64104,
  55. 63856, 63589, 63303, 62997, 62672, 62328, 61966, 61584, 61183, 60764, 60326, 59870,
  56. 59396, 58903, 58393, 57865, 57319, 56756, 56175, 55578, 54963, 54332, 53684, 53020,
  57. 52339, 51643, 50931, 50203, 49461, 48703, 47930, 47143, 46341, 45525, 44695, 43852,
  58. 42995, 42126, 41243, 40348, 39441, 38521, 37590, 36647, 35693, 34729, 33754, 32768,
  59. 31772, 30767, 29753, 28729, 27697, 26656, 25607, 24550, 23486, 22415, 21336, 20252,
  60. 19161, 18064, 16962, 15855, 14742, 13626, 12505, 11380, 10252, 9121, 7987, 6850,
  61. 5712, 4572, 3430, 2287, 1144, 0, -1144, -2287, -3430, -4572, -5712, -6850,
  62. -7987, -9121, -10252, -11380, -12505, -13626, -14742, -15855, -16962, -18064, -19161, -20252,
  63. -21336, -22415, -23486, -24550, -25607, -26656, -27697, -28729, -29753, -30767, -31772, -32768,
  64. -33754, -34729, -35693, -36647, -37590, -38521, -39441, -40348, -41243, -42126, -42995, -43852,
  65. -44695, -45525, -46341, -47143, -47930, -48703, -49461, -50203, -50931, -51643, -52339, -53020,
  66. -53684, -54332, -54963, -55578, -56175, -56756, -57319, -57865, -58393, -58903, -59396, -59870,
  67. -60326, -60764, -61183, -61584, -61966, -62328, -62672, -62997, -63303, -63589, -63856, -64104,
  68. -64332, -64540, -64729, -64898, -65048, -65177, -65287, -65376, -65446, -65496, -65526, -65536
  69. };
  70. word LUTdirY[360] = {
  71. 1144, 2287, 3430, 4572, 5712, 6850, 7987, 9121, 10252, 11380, 12505, 13626,
  72. 14742, 15855, 16962, 18064, 19161, 20252, 21336, 22415, 23486, 24550, 25607, 26656,
  73. 27697, 28729, 29753, 30767, 31772, 32768, 33754, 34729, 35693, 36647, 37590, 38521,
  74. 39441, 40348, 41243, 42126, 42995, 43852, 44695, 45525, 46341, 47143, 47930, 48703,
  75. 49461, 50203, 50931, 51643, 52339, 53020, 53684, 54332, 54963, 55578, 56175, 56756,
  76. 57319, 57865, 58393, 58903, 59396, 59870, 60326, 60764, 61183, 61584, 61966, 62328,
  77. 62672, 62997, 63303, 63589, 63856, 64104, 64332, 64540, 64729, 64898, 65048, 65177,
  78. 65287, 65376, 65446, 65496, 65526, 65536, 65526, 65496, 65446, 65376, 65287, 65177,
  79. 65048, 64898, 64729, 64540, 64332, 64104, 63856, 63589, 63303, 62997, 62672, 62328,
  80. 61966, 61584, 61183, 60764, 60326, 59870, 59396, 58903, 58393, 57865, 57319, 56756,
  81. 56175, 55578, 54963, 54332, 53684, 53020, 52339, 51643, 50931, 50203, 49461, 48703,
  82. 47930, 47143, 46341, 45525, 44695, 43852, 42995, 42126, 41243, 40348, 39441, 38521,
  83. 37590, 36647, 35693, 34729, 33754, 32768, 31772, 30767, 29753, 28729, 27697, 26656,
  84. 25607, 24550, 23486, 22415, 21336, 20252, 19161, 18064, 16962, 15855, 14742, 13626,
  85. 12505, 11380, 10252, 9121, 7987, 6850, 5712, 4572, 3430, 2287, 1144, 0,
  86. -1144, -2287, -3430, -4572, -5712, -6850, -7987, -9121, -10252, -11380, -12505, -13626,
  87. -14742, -15855, -16962, -18064, -19161, -20252, -21336, -22415, -23486, -24550, -25607, -26656,
  88. -27697, -28729, -29753, -30767, -31772, -32768, -33754, -34729, -35693, -36647, -37590, -38521,
  89. -39441, -40348, -41243, -42126, -42995, -43852, -44695, -45525, -46341, -47143, -47930, -48703,
  90. -49461, -50203, -50931, -51643, -52339, -53020, -53684, -54332, -54963, -55578, -56175, -56756,
  91. -57319, -57865, -58393, -58903, -59396, -59870, -60326, -60764, -61183, -61584, -61966, -62328,
  92. -62672, -62997, -63303, -63589, -63856, -64104, -64332, -64540, -64729, -64898, -65048, -65177,
  93. -65287, -65376, -65446, -65496, -65526, -65536, -65526, -65496, -65446, -65376, -65287, -65177,
  94. -65048, -64898, -64729, -64540, -64332, -64104, -63856, -63589, -63303, -62997, -62672, -62328,
  95. -61966, -61584, -61183, -60764, -60326, -59870, -59396, -58903, -58393, -57865, -57319, -56756,
  96. -56175, -55578, -54963, -54332, -53684, -53020, -52339, -51643, -50931, -50203, -49461, -48703,
  97. -47930, -47143, -46341, -45525, -44695, -43852, -42995, -42126, -41243, -40348, -39441, -38521,
  98. -37590, -36647, -35693, -34729, -33754, -32768, -31772, -30767, -29753, -28729, -27697, -26656,
  99. -25607, -24550, -23486, -22415, -21336, -20252, -19161, -18064, -16962, -15855, -14742, -13626,
  100. -12505, -11380, -10252, -9121, -7987, -6850, -5712, -4572, -3430, -2287, -1144, 0
  101. };
  102. word LUTplaneX[360] = {
  103. 755, 1510, 2264, 3017, 3770, 4521, 5271, 6020, 6766, 7511, 8253, 8993,
  104. 9730, 10464, 11195, 11922, 12646, 13366, 14082, 14794, 15501, 16203, 16901, 17593,
  105. 18280, 18961, 19637, 20306, 20970, 21627, 22277, 22921, 23558, 24187, 24809, 25424,
  106. 26031, 26630, 27220, 27803, 28377, 28942, 29499, 30047, 30585, 31114, 31634, 32144,
  107. 32644, 33134, 33614, 34084, 34544, 34993, 35431, 35859, 36276, 36681, 37076, 37459,
  108. 37831, 38191, 38539, 38876, 39201, 39514, 39815, 40104, 40381, 40645, 40897, 41137,
  109. 41364, 41578, 41780, 41969, 42145, 42309, 42459, 42597, 42721, 42833, 42931, 43017,
  110. 43089, 43148, 43194, 43227, 43247, 43254, 43247, 43227, 43194, 43148, 43089, 43017,
  111. 42931, 42833, 42721, 42597, 42459, 42309, 42145, 41969, 41780, 41578, 41364, 41137,
  112. 40897, 40645, 40381, 40104, 39815, 39514, 39201, 38876, 38539, 38191, 37831, 37459,
  113. 37076, 36681, 36276, 35859, 35431, 34993, 34544, 34084, 33614, 33134, 32644, 32144,
  114. 31634, 31114, 30585, 30047, 29499, 28942, 28377, 27803, 27220, 26630, 26031, 25424,
  115. 24809, 24187, 23558, 22921, 22277, 21627, 20970, 20306, 19637, 18961, 18280, 17593,
  116. 16901, 16203, 15501, 14794, 14082, 13366, 12646, 11922, 11195, 10464, 9730, 8993,
  117. 8253, 7511, 6766, 6020, 5271, 4521, 3770, 3017, 2264, 1510, 755, 0,
  118. -755, -1510, -2264, -3017, -3770, -4521, -5271, -6020, -6766, -7511, -8253, -8993,
  119. -9730, -10464, -11195, -11922, -12646, -13366, -14082, -14794, -15501, -16203, -16901, -17593,
  120. -18280, -18961, -19637, -20306, -20970, -21627, -22277, -22921, -23558, -24187, -24809, -25424,
  121. -26031, -26630, -27220, -27803, -28377, -28942, -29499, -30047, -30585, -31114, -31634, -32144,
  122. -32644, -33134, -33614, -34084, -34544, -34993, -35431, -35859, -36276, -36681, -37076, -37459,
  123. -37831, -38191, -38539, -38876, -39201, -39514, -39815, -40104, -40381, -40645, -40897, -41137,
  124. -41364, -41578, -41780, -41969, -42145, -42309, -42459, -42597, -42721, -42833, -42931, -43017,
  125. -43089, -43148, -43194, -43227, -43247, -43254, -43247, -43227, -43194, -43148, -43089, -43017,
  126. -42931, -42833, -42721, -42597, -42459, -42309, -42145, -41969, -41780, -41578, -41364, -41137,
  127. -40897, -40645, -40381, -40104, -39815, -39514, -39201, -38876, -38539, -38191, -37831, -37459,
  128. -37076, -36681, -36276, -35859, -35431, -34993, -34544, -34084, -33614, -33134, -32644, -32144,
  129. -31634, -31114, -30585, -30047, -29499, -28942, -28377, -27803, -27220, -26630, -26031, -25424,
  130. -24809, -24187, -23558, -22921, -22277, -21627, -20970, -20306, -19637, -18961, -18280, -17593,
  131. -16901, -16203, -15501, -14794, -14082, -13366, -12646, -11922, -11195, -10464, -9730, -8993,
  132. -8253, -7511, -6766, -6020, -5271, -4521, -3770, -3017, -2264, -1510, -755, 0
  133. };
  134. word LUTplaneY[360] = {
  135. 43247, 43227, 43194, 43148, 43089, 43017, 42931, 42833, 42721, 42597, 42459, 42309,
  136. 42145, 41969, 41780, 41578, 41364, 41137, 40897, 40645, 40381, 40104, 39815, 39514,
  137. 39201, 38876, 38539, 38191, 37831, 37459, 37076, 36681, 36276, 35859, 35431, 34993,
  138. 34544, 34084, 33614, 33134, 32644, 32144, 31634, 31114, 30585, 30047, 29499, 28942,
  139. 28377, 27803, 27220, 26630, 26031, 25424, 24809, 24187, 23558, 22921, 22277, 21627,
  140. 20970, 20306, 19637, 18961, 18280, 17593, 16901, 16203, 15501, 14794, 14082, 13366,
  141. 12646, 11922, 11195, 10464, 9730, 8993, 8253, 7511, 6766, 6020, 5271, 4521,
  142. 3770, 3017, 2264, 1510, 755, 0, -755, -1510, -2264, -3017, -3770, -4521,
  143. -5271, -6020, -6766, -7511, -8253, -8993, -9730, -10464, -11195, -11922, -12646, -13366,
  144. -14082, -14794, -15501, -16203, -16901, -17593, -18280, -18961, -19637, -20306, -20970, -21627,
  145. -22277, -22921, -23558, -24187, -24809, -25424, -26031, -26630, -27220, -27803, -28377, -28942,
  146. -29499, -30047, -30585, -31114, -31634, -32144, -32644, -33134, -33614, -34084, -34544, -34993,
  147. -35431, -35859, -36276, -36681, -37076, -37459, -37831, -38191, -38539, -38876, -39201, -39514,
  148. -39815, -40104, -40381, -40645, -40897, -41137, -41364, -41578, -41780, -41969, -42145, -42309,
  149. -42459, -42597, -42721, -42833, -42931, -43017, -43089, -43148, -43194, -43227, -43247, -43254,
  150. -43247, -43227, -43194, -43148, -43089, -43017, -42931, -42833, -42721, -42597, -42459, -42309,
  151. -42145, -41969, -41780, -41578, -41364, -41137, -40897, -40645, -40381, -40104, -39815, -39514,
  152. -39201, -38876, -38539, -38191, -37831, -37459, -37076, -36681, -36276, -35859, -35431, -34993,
  153. -34544, -34084, -33614, -33134, -32644, -32144, -31634, -31114, -30585, -30047, -29499, -28942,
  154. -28377, -27803, -27220, -26630, -26031, -25424, -24809, -24187, -23558, -22921, -22277, -21627,
  155. -20970, -20306, -19637, -18961, -18280, -17593, -16901, -16203, -15501, -14794, -14082, -13366,
  156. -12646, -11922, -11195, -10464, -9730, -8993, -8253, -7511, -6766, -6020, -5271, -4521,
  157. -3770, -3017, -2264, -1510, -755, 0, 755, 1510, 2264, 3017, 3770, 4521,
  158. 5271, 6020, 6766, 7511, 8253, 8993, 9730, 10464, 11195, 11922, 12646, 13366,
  159. 14082, 14794, 15501, 16203, 16901, 17593, 18280, 18961, 19637, 20306, 20970, 21627,
  160. 22277, 22921, 23558, 24187, 24809, 25424, 26031, 26630, 27220, 27803, 28377, 28942,
  161. 29499, 30047, 30585, 31114, 31634, 32144, 32644, 33134, 33614, 34084, 34544, 34993,
  162. 35431, 35859, 36276, 36681, 37076, 37459, 37831, 38191, 38539, 38876, 39201, 39514,
  163. 39815, 40104, 40381, 40645, 40897, 41137, 41364, 41578, 41780, 41969, 42145, 42309,
  164. 42459, 42597, 42721, 42833, 42931, 43017, 43089, 43148, 43194, 43227, 43247, 43254
  165. };
  166. word texture[8][texWidth*texHeight]=
  167. {
  168. // eagle
  169. {
  170. 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  171. 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  172. 73, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 160, 73, 73, 73, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 160, 73, 73, 73, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 160, 160, 160, 160, 160, 160, 160, 160, 73,
  173. 73, 252, 160, 160, 160, 192, 128, 160, 192, 128, 160, 160, 96, 37, 73, 73, 192, 160, 128, 160, 128, 160, 128, 160, 96, 160, 128, 160, 128, 160, 96, 160, 96, 160, 160, 160, 96, 37, 73, 73, 192, 160, 160, 160, 160, 160, 160, 160, 96, 160, 96, 160, 160, 160, 128, 160, 160, 96, 160, 128, 160, 160, 252, 37,
  174. 216, 212, 144, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 212, 212, 108,
  175. 173, 144, 72, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 108, 209, 72,
  176. 73, 72, 160, 109, 109, 109, 109, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 109, 109, 109, 109, 64, 173, 37,
  177. 73, 160, 96, 146, 109, 228, 160, 64, 64, 73, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 160, 160, 224, 192, 109, 64, 64, 64, 109, 182, 109, 64, 64, 37,
  178. 73, 160, 160, 182, 109, 160, 182, 146, 109, 64, 109, 182, 182, 218, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 109, 64, 109, 109, 146, 228, 109, 109, 64, 64, 37,
  179. 73, 96, 96, 182, 146, 64, 146, 182, 146, 109, 146, 146, 182, 182, 146, 109, 182, 218, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 146, 97, 109, 182, 182, 182, 182, 182, 109, 182, 218, 160, 109, 109, 64, 64, 37,
  180. 73, 73, 37, 218, 182, 64, 146, 182, 182, 146, 109, 109, 146, 146, 73, 65, 109, 182, 218, 218, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 146, 109, 97, 65, 146, 182, 182, 146, 146, 182, 218, 109, 64, 109, 146, 36, 36, 37,
  181. 73, 73, 73, 218, 182, 73, 109, 146, 182, 182, 146, 109, 109, 146, 65, 65, 65, 65, 109, 182, 218, 182, 182, 182, 182, 182, 182, 182, 65, 109, 73, 65, 65, 65, 65, 168, 204, 236, 182, 182, 182, 182, 182, 182, 146, 109, 97, 65, 65, 65, 146, 146, 146, 146, 182, 218, 182, 109, 73, 146, 182, 36, 37, 37,
  182. 192, 192, 192, 182, 218, 64, 109, 146, 182, 182, 182, 146, 109, 109, 73, 65, 65, 65, 65, 65, 109, 182, 182, 182, 182, 182, 182, 182, 65, 65, 65, 65, 65, 109, 65, 168, 168, 204, 240, 182, 182, 182, 146, 109, 97, 65, 65, 65, 65, 73, 146, 146, 146, 182, 182, 182, 182, 109, 64, 146, 182, 64, 64, 192,
  183. 160, 128, 128, 182, 218, 96, 146, 146, 146, 182, 182, 109, 65, 109, 109, 73, 65, 65, 65, 65, 65, 65, 65, 109, 146, 182, 182, 182, 109, 65, 65, 65, 65, 65, 65, 168, 146, 182, 182, 146, 109, 97, 97, 65, 65, 65, 65, 65, 73, 109, 109, 65, 109, 182, 182, 182, 146, 109, 64, 182, 182, 64, 64, 160,
  184. 128, 160, 128, 182, 218, 160, 182, 146, 146, 146, 109, 97, 97, 73, 109, 109, 73, 65, 65, 65, 65, 130, 65, 65, 65, 109, 146, 182, 182, 65, 65, 65, 65, 65, 65, 146, 182, 146, 109, 97, 97, 65, 130, 65, 65, 65, 65, 73, 109, 73, 97, 97, 97, 109, 182, 146, 109, 146, 96, 182, 182, 64, 64, 128,
  185. 96, 160, 160, 182, 182, 128, 182, 146, 146, 146, 65, 97, 97, 97, 65, 73, 109, 73, 73, 65, 65, 97, 65, 65, 65, 65, 65, 182, 182, 65, 65, 65, 65, 65, 65, 182, 182, 65, 97, 97, 65, 65, 97, 65, 65, 73, 73, 109, 73, 65, 97, 97, 97, 97, 146, 146, 109, 146, 96, 182, 182, 64, 64, 96,
  186. 160, 128, 128, 182, 182, 128, 182, 182, 146, 146, 65, 65, 97, 97, 97, 97, 65, 73, 73, 73, 65, 65, 65, 65, 65, 65, 73, 182, 182, 65, 65, 65, 65, 65, 65, 182, 182, 73, 65, 65, 65, 65, 65, 65, 73, 73, 73, 65, 65, 65, 97, 97, 97, 97, 146, 109, 146, 146, 96, 182, 182, 64, 64, 96,
  187. 96, 160, 96, 182, 182, 96, 218, 182, 182, 146, 73, 65, 65, 97, 97, 97, 97, 65, 65, 65, 65, 65, 65, 65, 65, 146, 182, 182, 109, 65, 65, 65, 65, 65, 65, 109, 182, 182, 146, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 97, 97, 97, 97, 73, 146, 109, 146, 146, 96, 182, 182, 64, 64, 128,
  188. 96, 160, 96, 182, 182, 96, 218, 182, 182, 146, 109, 73, 65, 65, 97, 97, 97, 97, 65, 97, 65, 65, 65, 65, 146, 65, 109, 182, 65, 65, 65, 65, 65, 65, 65, 65, 182, 109, 65, 146, 65, 65, 65, 65, 65, 65, 65, 65, 97, 97, 97, 97, 73, 109, 109, 146, 146, 182, 96, 182, 182, 64, 64, 96,
  189. 64, 64, 64, 182, 182, 96, 218, 218, 109, 65, 109, 73, 73, 73, 65, 97, 97, 97, 65, 130, 65, 65, 65, 65, 65, 65, 65, 182, 182, 65, 65, 65, 65, 65, 65, 182, 182, 65, 65, 65, 65, 65, 65, 65, 97, 65, 65, 97, 97, 97, 73, 109, 109, 73, 73, 109, 146, 182, 96, 182, 182, 64, 64, 64,
  190. 37, 37, 37, 182, 182, 96, 182, 218, 65, 65, 65, 73, 73, 73, 73, 73, 97, 97, 97, 65, 130, 65, 65, 65, 65, 65, 65, 109, 109, 65, 65, 65, 65, 65, 65, 109, 109, 65, 65, 65, 65, 65, 65, 97, 65, 65, 97, 97, 73, 146, 109, 109, 73, 65, 65, 65, 146, 182, 96, 182, 182, 36, 36, 37,
  191. 73, 73, 73, 182, 182, 96, 182, 218, 97, 65, 65, 65, 65, 65, 73, 73, 73, 73, 109, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 73, 109, 146, 109, 73, 65, 65, 65, 65, 65, 65, 182, 182, 96, 182, 182, 36, 37, 37,
  192. 73, 192, 192, 182, 182, 96, 182, 182, 97, 97, 65, 65, 65, 65, 65, 65, 65, 65, 65, 130, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 130, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 182, 182, 96, 182, 182, 64, 64, 37,
  193. 73, 192, 128, 218, 218, 128, 218, 182, 65, 97, 65, 65, 65, 65, 65, 65, 65, 65, 65, 130, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 130, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 146, 182, 96, 182, 182, 64, 64, 37,
  194. 73, 192, 160, 182, 182, 128, 182, 146, 109, 65, 97, 65, 65, 65, 65, 65, 65, 65, 65, 97, 65, 65, 65, 65, 65, 65, 65, 65, 73, 73, 109, 109, 109, 109, 73, 73, 65, 65, 65, 65, 65, 65, 65, 65, 130, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 109, 146, 182, 96, 182, 182, 64, 64, 37,
  195. 73, 160, 96, 182, 182, 96, 182, 146, 146, 109, 73, 65, 65, 65, 65, 65, 65, 65, 65, 65, 97, 65, 65, 65, 65, 65, 65, 65, 109, 97, 130, 97, 97, 130, 97, 109, 65, 65, 65, 65, 65, 65, 65, 130, 65, 65, 65, 65, 65, 65, 65, 65, 65, 73, 109, 146, 146, 182, 128, 182, 182, 64, 64, 37,
  196. 73, 160, 160, 182, 182, 96, 182, 65, 65, 73, 109, 109, 109, 109, 109, 73, 73, 73, 37, 65, 65, 65, 130, 65, 65, 65, 65, 65, 109, 130, 97, 97, 97, 97, 130, 109, 65, 65, 65, 65, 65, 130, 65, 65, 65, 73, 73, 73, 73, 73, 73, 73, 73, 109, 73, 97, 97, 182, 128, 182, 182, 64, 64, 37,
  197. 73, 160, 96, 182, 182, 96, 182, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 130, 97, 65, 65, 65, 73, 97, 97, 97, 97, 97, 97, 73, 65, 65, 65, 97, 130, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 97, 97, 218, 128, 218, 218, 64, 64, 37,
  198. 73, 160, 160, 182, 182, 96, 182, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 109, 130, 97, 97, 97, 97, 130, 109, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 97, 97, 182, 128, 182, 182, 64, 64, 37,
  199. 73, 160, 128, 146, 146, 64, 146, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 73, 97, 130, 73, 97, 130, 97, 73, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 97, 97, 97, 182, 128, 182, 182, 64, 64, 37,
  200. 73, 73, 73, 182, 182, 64, 182, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 73, 65, 65, 65, 65, 73, 65, 65, 65, 109, 73, 97, 73, 97, 97, 73, 109, 65, 65, 65, 73, 65, 65, 65, 65, 73, 65, 65, 65, 65, 65, 65, 65, 65, 65, 97, 97, 65, 182, 96, 182, 182, 36, 36, 37,
  201. 73, 73, 73, 182, 182, 96, 182, 109, 65, 65, 65, 65, 65, 65, 65, 65, 73, 109, 65, 65, 65, 65, 65, 73, 65, 65, 65, 65, 73, 109, 109, 73, 73, 109, 109, 73, 65, 65, 65, 65, 73, 65, 65, 65, 65, 65, 109, 73, 65, 65, 65, 65, 65, 65, 97, 65, 109, 182, 96, 182, 182, 36, 37, 37,
  202. 160, 160, 160, 182, 182, 96, 182, 146, 109, 65, 65, 65, 65, 73, 109, 109, 65, 65, 65, 65, 65, 65, 109, 65, 65, 65, 65, 65, 65, 65, 73, 109, 109, 73, 65, 65, 65, 65, 65, 65, 65, 109, 65, 65, 65, 65, 65, 65, 109, 109, 73, 65, 65, 65, 65, 109, 146, 182, 96, 182, 182, 64, 64, 160,
  203. 160, 160, 160, 182, 182, 96, 182, 182, 182, 146, 146, 146, 146, 109, 65, 65, 65, 65, 65, 65, 65, 109, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 109, 65, 65, 65, 65, 65, 65, 65, 109, 146, 146, 146, 146, 182, 182, 182, 96, 182, 182, 64, 64, 160,
  204. 160, 96, 128, 182, 182, 96, 182, 182, 146, 146, 109, 65, 65, 65, 65, 65, 65, 65, 65, 65, 109, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 109, 65, 65, 65, 65, 65, 65, 65, 65, 65, 109, 146, 146, 146, 146, 64, 146, 146, 64, 64, 96,
  205. 128, 96, 160, 182, 182, 96, 182, 182, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 109, 65, 65, 65, 65, 109, 65, 109, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 109, 65, 109, 65, 65, 65, 65, 109, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 146, 146, 64, 146, 146, 64, 64, 96,
  206. 160, 128, 96, 182, 182, 96, 182, 182, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 109, 65, 65, 65, 65, 109, 146, 109, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 109, 146, 109, 65, 65, 65, 65, 109, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 146, 146, 64, 146, 146, 64, 64, 128,
  207. 160, 128, 96, 182, 182, 96, 182, 182, 109, 65, 65, 65, 65, 65, 65, 65, 65, 109, 65, 65, 65, 65, 65, 146, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 146, 65, 65, 65, 65, 65, 109, 65, 65, 65, 65, 65, 65, 65, 65, 109, 146, 146, 96, 146, 146, 64, 64, 96,
  208. 96, 96, 128, 182, 182, 96, 182, 182, 146, 65, 65, 65, 65, 65, 65, 65, 109, 65, 65, 65, 65, 65, 146, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 146, 65, 65, 65, 65, 65, 109, 65, 65, 65, 65, 65, 65, 65, 146, 182, 182, 96, 182, 182, 64, 64, 96,
  209. 64, 64, 64, 182, 182, 128, 182, 182, 182, 109, 65, 65, 65, 65, 65, 109, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 109, 65, 65, 65, 65, 65, 109, 182, 182, 182, 96, 182, 182, 64, 64, 64,
  210. 37, 37, 37, 182, 182, 128, 182, 182, 182, 182, 109, 65, 65, 65, 109, 65, 65, 65, 65, 65, 65, 146, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 146, 65, 65, 65, 65, 65, 65, 109, 65, 65, 65, 109, 182, 182, 182, 182, 96, 182, 182, 36, 36, 37,
  211. 73, 73, 73, 218, 218, 160, 218, 218, 218, 182, 182, 146, 146, 146, 146, 65, 65, 65, 65, 65, 146, 182, 130, 65, 65, 65, 65, 65, 65, 109, 65, 65, 65, 65, 109, 65, 65, 65, 65, 65, 65, 130, 182, 146, 65, 65, 65, 65, 65, 146, 146, 146, 146, 182, 182, 182, 182, 182, 96, 182, 182, 36, 37, 37,
  212. 73, 192, 192, 182, 182, 128, 182, 182, 182, 182, 182, 182, 182, 182, 146, 146, 65, 65, 65, 146, 182, 182, 182, 109, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 109, 182, 182, 182, 146, 65, 65, 65, 146, 146, 182, 182, 182, 182, 182, 182, 182, 182, 128, 182, 182, 64, 64, 37,
  213. 73, 192, 160, 182, 182, 128, 182, 182, 182, 182, 182, 182, 182, 109, 168, 168, 109, 182, 182, 182, 182, 109, 168, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 168, 109, 182, 182, 182, 182, 109, 168, 168, 109, 182, 182, 182, 182, 182, 182, 182, 128, 182, 182, 64, 64, 37,
  214. 73, 192, 160, 182, 182, 128, 182, 182, 182, 182, 182, 182, 182, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 104, 104, 65, 65, 109, 182, 65, 65, 65, 65, 65, 65, 182, 109, 65, 65, 104, 104, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 182, 182, 182, 182, 218, 218, 218, 128, 218, 218, 64, 64, 37,
  215. 73, 192, 128, 182, 182, 128, 182, 182, 182, 182, 182, 182, 182, 182, 109, 109, 104, 168, 168, 168, 168, 104, 104, 109, 182, 182, 182, 182, 65, 65, 65, 65, 65, 65, 65, 65, 182, 182, 182, 182, 109, 104, 104, 168, 168, 168, 168, 104, 109, 109, 182, 182, 182, 182, 182, 182, 182, 182, 128, 182, 182, 64, 64, 37,
  216. 73, 192, 160, 182, 182, 96, 182, 182, 182, 182, 182, 182, 182, 146, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 182, 182, 182, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 182, 182, 182, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 146, 182, 182, 182, 182, 182, 182, 182, 128, 182, 182, 64, 64, 37,
  217. 73, 192, 160, 182, 182, 96, 182, 182, 182, 182, 182, 182, 182, 168, 104, 104, 146, 168, 168, 104, 182, 146, 104, 168, 182, 109, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 109, 182, 168, 104, 146, 182, 104, 168, 168, 146, 104, 104, 168, 182, 182, 182, 182, 182, 182, 182, 96, 182, 182, 64, 64, 37,
  218. 73, 160, 160, 182, 182, 96, 182, 182, 182, 182, 182, 182, 182, 104, 109, 146, 182, 168, 104, 182, 182, 182, 182, 109, 73, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 73, 109, 182, 182, 182, 182, 104, 168, 182, 146, 109, 104, 182, 182, 182, 182, 182, 182, 182, 96, 182, 182, 64, 64, 37,
  219. 73, 160, 96, 182, 182, 96, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 168, 104, 182, 182, 109, 73, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 73, 109, 182, 182, 104, 168, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 96, 182, 182, 64, 64, 37,
  220. 73, 73, 37, 182, 182, 96, 146, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 146, 168, 182, 65, 65, 65, 65, 65, 65, 65, 65, 65, 109, 65, 65, 65, 65, 109, 65, 65, 65, 65, 65, 65, 65, 65, 65, 182, 168, 146, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 146, 96, 182, 182, 36, 36, 37,
  221. 73, 73, 73, 182, 182, 96, 109, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 109, 73, 65, 65, 65, 65, 65, 109, 182, 65, 65, 65, 65, 65, 65, 182, 109, 65, 65, 65, 65, 65, 73, 109, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 109, 96, 182, 182, 36, 37, 37,
  222. 192, 192, 192, 182, 182, 109, 96, 109, 146, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 109, 73, 65, 65, 109, 182, 109, 65, 65, 65, 65, 65, 65, 109, 182, 109, 65, 65, 73, 109, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 146, 109, 96, 109, 182, 182, 64, 64, 160,
  223. 96, 160, 64, 109, 182, 182, 109, 96, 96, 96, 109, 146, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 65, 65, 65, 65, 65, 65, 65, 65, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 146, 146, 96, 96, 96, 109, 146, 182, 109, 64, 64, 96,
  224. 160, 96, 96, 64, 109, 182, 182, 182, 146, 109, 96, 96, 96, 96, 109, 146, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 109, 65, 65, 65, 65, 65, 65, 109, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 146, 109, 96, 96, 96, 96, 146, 146, 182, 182, 182, 109, 64, 64, 64, 64,
  225. 160, 96, 64, 64, 64, 73, 109, 182, 182, 182, 182, 182, 146, 109, 96, 96, 96, 109, 146, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 109, 65, 65, 65, 65, 109, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 146, 109, 96, 96, 96, 109, 146, 182, 182, 182, 182, 182, 109, 73, 64, 64, 64, 96, 128,
  226. 96, 128, 64, 64, 64, 64, 64, 73, 109, 182, 182, 182, 182, 182, 182, 146, 109, 96, 96, 96, 109, 146, 182, 182, 182, 182, 182, 182, 182, 182, 109, 65, 65, 109, 182, 182, 182, 182, 182, 182, 182, 182, 146, 109, 96, 96, 96, 109, 146, 182, 182, 182, 182, 182, 109, 73, 64, 64, 64, 64, 64, 96, 96, 160,
  227. 96, 160, 96, 160, 96, 64, 96, 64, 64, 64, 64, 73, 109, 182, 182, 182, 182, 182, 146, 109, 96, 96, 96, 109, 146, 182, 182, 182, 182, 182, 182, 109, 109, 182, 182, 182, 182, 182, 182, 146, 109, 96, 96, 96, 109, 146, 182, 182, 182, 182, 182, 109, 73, 64, 64, 64, 64, 64, 64, 96, 64, 160, 96, 160,
  228. 96, 160, 96, 96, 96, 128, 128, 96, 64, 64, 64, 64, 64, 64, 73, 109, 182, 182, 182, 182, 182, 146, 109, 96, 96, 96, 96, 109, 146, 182, 182, 182, 182, 182, 182, 146, 109, 96, 96, 96, 96, 109, 146, 182, 182, 182, 182, 182, 109, 73, 64, 64, 64, 64, 64, 64, 64, 96, 160, 96, 64, 96, 160, 64,
  229. 96, 128, 64, 160, 96, 96, 128, 96, 96, 96, 160, 64, 64, 64, 64, 64, 64, 64, 73, 109, 182, 182, 182, 182, 182, 146, 109, 96, 96, 96, 109, 146, 146, 109, 96, 96, 96, 109, 146, 182, 182, 182, 182, 182, 109, 73, 64, 37, 37, 37, 64, 64, 64, 64, 160, 64, 160, 96, 160, 96, 160, 96, 160, 96,
  230. 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 36, 36, 37, 73, 109, 182, 182, 182, 182, 182, 146, 109, 96, 96, 96, 96, 109, 146, 182, 182, 182, 182, 109, 73, 64, 64, 64, 64, 64, 36, 37, 37, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
  231. 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 36, 36, 36, 36, 36, 37, 73, 109, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 109, 73, 36, 36, 36, 36, 36, 37, 36, 36, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 36, 36, 36, 36, 36, 37, 37,
  232. 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 37, 37, 37, 37, 37, 37, 36, 36, 36, 36, 36, 73, 109, 182, 182, 109, 73, 37, 36, 36, 36, 36, 36, 37, 37, 37, 37, 37, 37, 37, 37, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  233. 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 37, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 37, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  234. },
  235. //redbrick
  236. {
  237. 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  238. 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  239. 73, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 160, 73, 73, 73, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 160, 73, 73, 73, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 160, 160, 160, 160, 160, 160, 160, 160, 73,
  240. 73, 192, 160, 160, 160, 192, 128, 160, 192, 128, 160, 160, 96, 37, 73, 73, 192, 160, 128, 160, 128, 160, 128, 160, 96, 160, 128, 160, 128, 160, 96, 160, 96, 160, 160, 160, 96, 37, 73, 73, 192, 160, 160, 160, 160, 160, 160, 160, 96, 160, 96, 160, 160, 160, 128, 160, 160, 96, 160, 128, 160, 160, 96, 37,
  241. 73, 192, 160, 96, 160, 128, 160, 128, 96, 160, 128, 96, 96, 37, 73, 73, 192, 160, 128, 128, 160, 128, 96, 160, 160, 96, 128, 160, 160, 96, 128, 160, 96, 160, 128, 96, 64, 37, 73, 73, 192, 160, 160, 96, 96, 160, 128, 96, 128, 160, 96, 128, 160, 160, 128, 160, 96, 128, 160, 64, 160, 96, 96, 37,
  242. 73, 192, 96, 160, 160, 96, 128, 160, 160, 96, 160, 64, 64, 37, 73, 73, 192, 128, 160, 160, 128, 160, 96, 160, 128, 160, 96, 160, 96, 128, 96, 160, 96, 128, 96, 96, 64, 37, 73, 73, 192, 96, 160, 96, 128, 160, 96, 160, 96, 160, 96, 160, 128, 160, 96, 160, 128, 96, 160, 96, 160, 96, 64, 37,
  243. 73, 160, 160, 96, 128, 128, 96, 160, 96, 128, 160, 96, 64, 37, 73, 73, 160, 160, 128, 160, 128, 128, 128, 160, 96, 128, 96, 160, 128, 96, 128, 96, 128, 96, 160, 96, 64, 37, 73, 73, 160, 96, 160, 96, 160, 128, 96, 160, 96, 96, 160, 160, 96, 160, 128, 160, 160, 96, 160, 64, 160, 128, 64, 37,
  244. 73, 160, 96, 160, 160, 96, 160, 128, 96, 128, 96, 64, 64, 37, 73, 73, 160, 160, 128, 160, 96, 160, 96, 160, 96, 160, 96, 128, 128, 96, 96, 160, 96, 128, 96, 96, 64, 37, 73, 73, 160, 128, 160, 96, 128, 160, 96, 128, 96, 128, 96, 160, 128, 160, 96, 160, 96, 128, 160, 96, 160, 96, 64, 37,
  245. 73, 160, 160, 96, 128, 64, 96, 96, 64, 96, 128, 96, 64, 37, 73, 73, 128, 128, 96, 96, 64, 128, 96, 96, 128, 96, 64, 96, 128, 96, 128, 96, 64, 128, 96, 96, 64, 37, 73, 73, 160, 96, 96, 64, 96, 96, 64, 128, 64, 96, 64, 128, 64, 96, 64, 128, 96, 64, 96, 128, 96, 128, 64, 37,
  246. 73, 96, 96, 96, 96, 64, 64, 64, 64, 64, 64, 64, 64, 37, 73, 73, 96, 96, 96, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 37, 73, 73, 128, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 37,
  247. 73, 73, 37, 37, 37, 37, 37, 37, 37, 37, 36, 36, 36, 37, 73, 73, 73, 37, 37, 37, 37, 37, 36, 36, 36, 36, 36, 37, 37, 36, 36, 36, 36, 37, 37, 37, 37, 37, 73, 73, 73, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 36, 36, 36, 36, 36, 37, 37, 37, 37, 37, 37, 37,
  248. 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  249. 192, 192, 192, 192, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 73, 73, 73, 192, 192, 192, 192, 192, 192, 192, 192, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 73, 73, 73, 192, 192, 192, 192, 192, 192, 192, 192,
  250. 160, 128, 128, 160, 128, 96, 160, 96, 128, 128, 160, 96, 160, 128, 160, 64, 73, 73, 73, 192, 96, 160, 160, 96, 160, 96, 128, 160, 128, 128, 160, 128, 160, 128, 96, 128, 160, 128, 160, 128, 160, 96, 160, 96, 160, 128, 128, 160, 160, 128, 160, 160, 64, 73, 73, 73, 192, 160, 96, 160, 128, 160, 128, 160,
  251. 128, 160, 128, 160, 96, 128, 128, 96, 160, 128, 96, 128, 160, 160, 96, 64, 37, 73, 73, 192, 160, 96, 160, 96, 160, 160, 128, 160, 96, 160, 96, 96, 128, 160, 96, 160, 96, 160, 96, 160, 160, 128, 96, 160, 128, 160, 96, 128, 160, 96, 160, 96, 64, 73, 73, 73, 160, 160, 96, 160, 128, 96, 160, 128,
  252. 96, 160, 160, 128, 128, 96, 160, 96, 128, 128, 128, 96, 160, 128, 96, 64, 37, 73, 73, 192, 96, 160, 128, 128, 128, 128, 96, 128, 128, 96, 160, 128, 96, 160, 128, 96, 96, 96, 128, 128, 160, 64, 128, 96, 160, 96, 160, 96, 160, 160, 96, 96, 64, 37, 73, 73, 160, 96, 160, 160, 160, 96, 160, 96,
  253. 160, 128, 128, 160, 128, 96, 96, 128, 96, 160, 128, 96, 160, 96, 96, 64, 37, 73, 73, 192, 96, 160, 160, 96, 160, 96, 128, 160, 96, 96, 160, 96, 128, 160, 96, 128, 96, 160, 96, 160, 128, 64, 160, 96, 160, 96, 128, 96, 160, 96, 160, 96, 64, 37, 73, 73, 160, 160, 96, 160, 96, 160, 128, 96,
  254. 96, 160, 96, 160, 96, 128, 96, 128, 96, 160, 96, 128, 160, 160, 96, 64, 37, 73, 73, 192, 160, 64, 160, 96, 160, 128, 96, 128, 64, 128, 96, 96, 160, 128, 96, 64, 96, 160, 96, 128, 64, 128, 160, 96, 128, 160, 96, 128, 160, 96, 160, 96, 64, 36, 73, 73, 160, 96, 160, 160, 64, 160, 96, 128,
  255. 96, 160, 96, 96, 64, 96, 96, 128, 96, 128, 96, 64, 128, 96, 96, 64, 37, 73, 73, 160, 160, 96, 128, 64, 96, 128, 96, 128, 96, 96, 128, 64, 96, 128, 96, 128, 96, 128, 96, 128, 128, 64, 128, 96, 96, 128, 64, 96, 128, 96, 128, 96, 64, 36, 73, 73, 160, 160, 96, 96, 64, 96, 128, 96,
  256. 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 73, 73, 73, 160, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 36, 73, 73, 160, 96, 64, 96, 64, 64, 96, 64,
  257. 37, 37, 37, 36, 37, 37, 37, 36, 36, 36, 37, 37, 37, 36, 36, 37, 73, 73, 73, 73, 73, 37, 37, 37, 37, 37, 37, 37, 37, 37, 73, 73, 37, 37, 37, 37, 36, 36, 36, 36, 36, 37, 37, 37, 36, 36, 36, 36, 37, 37, 37, 37, 37, 73, 73, 73, 73, 37, 37, 37, 37, 37, 37, 37,
  258. 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  259. 73, 192, 192, 192, 192, 192, 192, 192, 192, 192, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 73, 73, 73, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 73,
  260. 73, 192, 128, 160, 160, 96, 160, 96, 160, 96, 160, 128, 160, 128, 160, 160, 128, 160, 128, 160, 128, 160, 160, 96, 160, 160, 96, 64, 73, 73, 73, 192, 160, 96, 192, 160, 160, 128, 160, 160, 128, 160, 128, 160, 96, 96, 160, 128, 96, 128, 160, 96, 128, 160, 128, 128, 160, 96, 128, 160, 64, 160, 64, 37,
  261. 73, 192, 160, 128, 160, 128, 160, 96, 96, 128, 160, 160, 128, 128, 128, 160, 128, 96, 160, 96, 160, 128, 96, 128, 160, 96, 160, 64, 37, 73, 109, 192, 160, 128, 160, 96, 160, 96, 128, 96, 128, 128, 96, 160, 96, 128, 160, 96, 160, 96, 160, 96, 160, 128, 160, 96, 160, 128, 96, 160, 96, 96, 64, 37,
  262. 73, 160, 96, 160, 160, 96, 128, 64, 160, 96, 160, 96, 160, 128, 128, 160, 96, 128, 160, 96, 128, 160, 128, 96, 96, 160, 96, 64, 37, 73, 109, 192, 160, 96, 160, 96, 160, 96, 160, 96, 128, 160, 96, 160, 96, 160, 128, 96, 160, 96, 96, 160, 128, 96, 128, 128, 160, 160, 96, 160, 64, 96, 64, 37,
  263. 73, 160, 160, 128, 160, 64, 160, 64, 96, 128, 160, 128, 96, 96, 160, 96, 128, 96, 96, 160, 96, 160, 128, 96, 160, 96, 64, 64, 37, 73, 109, 192, 96, 160, 96, 128, 128, 96, 128, 128, 96, 160, 96, 128, 96, 128, 160, 96, 128, 96, 128, 96, 160, 128, 160, 96, 160, 96, 128, 160, 96, 96, 64, 37,
  264. 73, 160, 96, 96, 160, 64, 128, 96, 160, 96, 160, 64, 160, 96, 160, 128, 96, 128, 160, 128, 96, 160, 96, 128, 96, 96, 160, 64, 37, 73, 73, 192, 160, 96, 160, 96, 160, 128, 160, 128, 96, 160, 96, 160, 64, 96, 96, 64, 160, 64, 160, 64, 160, 64, 160, 160, 128, 96, 64, 96, 128, 96, 64, 37,
  265. 73, 160, 160, 96, 96, 96, 96, 64, 96, 64, 96, 96, 128, 96, 128, 96, 96, 128, 96, 96, 96, 96, 128, 96, 128, 96, 96, 64, 37, 73, 73, 160, 160, 96, 128, 96, 128, 64, 96, 96, 96, 96, 96, 128, 96, 128, 64, 160, 64, 96, 160, 64, 96, 128, 64, 160, 64, 160, 64, 160, 96, 96, 64, 37,
  266. 73, 160, 128, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 37, 73, 73, 160, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 96, 64, 64, 37,
  267. 73, 73, 73, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 73, 73, 73, 37, 37, 37, 37, 37, 37, 73, 73, 73, 37, 37, 37, 37, 37, 37, 37, 37, 36, 36, 36, 36, 36, 37, 73, 73, 73, 37, 36, 36, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
  268. 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  269. 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 73, 73, 73, 192, 192, 192, 192, 192, 192, 192, 192, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 73, 73, 73, 160, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
  270. 160, 160, 160, 160, 128, 160, 160, 160, 160, 160, 64, 73, 73, 73, 192, 160, 96, 160, 96, 160, 160, 96, 160, 128, 160, 160, 96, 160, 128, 96, 160, 160, 96, 160, 160, 96, 160, 96, 160, 64, 73, 73, 73, 192, 160, 96, 160, 96, 160, 160, 96, 160, 96, 128, 96, 160, 96, 160, 128, 160, 96, 160, 96, 160,
  271. 160, 96, 128, 160, 128, 160, 96, 160, 128, 96, 64, 37, 73, 73, 192, 96, 160, 96, 128, 160, 96, 160, 128, 96, 160, 128, 128, 96, 128, 128, 160, 128, 96, 160, 96, 128, 160, 96, 160, 64, 73, 73, 73, 192, 160, 64, 160, 96, 160, 128, 96, 160, 128, 160, 96, 128, 128, 128, 96, 128, 96, 128, 128, 96,
  272. 128, 96, 160, 128, 96, 160, 96, 128, 160, 96, 64, 37, 73, 73, 192, 96, 160, 160, 96, 128, 160, 96, 160, 96, 160, 128, 160, 64, 160, 64, 128, 128, 160, 128, 96, 128, 160, 96, 160, 64, 73, 73, 109, 192, 160, 96, 160, 96, 160, 128, 160, 128, 160, 160, 96, 160, 96, 128, 128, 160, 128, 96, 160, 96,
  273. 160, 128, 96, 160, 128, 160, 128, 96, 128, 96, 64, 73, 73, 73, 192, 128, 96, 160, 96, 160, 96, 64, 128, 128, 128, 128, 96, 128, 160, 96, 160, 128, 96, 128, 128, 96, 128, 160, 96, 64, 73, 73, 109, 192, 96, 160, 160, 96, 160, 96, 160, 160, 96, 96, 160, 96, 160, 128, 128, 128, 128, 96, 96, 128,
  274. 160, 128, 96, 160, 96, 160, 96, 128, 160, 96, 64, 73, 73, 73, 192, 96, 160, 96, 64, 128, 160, 96, 128, 128, 160, 128, 160, 96, 128, 64, 96, 128, 96, 160, 128, 96, 160, 96, 160, 64, 73, 73, 73, 160, 160, 96, 160, 160, 96, 160, 128, 128, 96, 160, 96, 160, 96, 128, 128, 160, 96, 128, 160, 96,
  275. 96, 96, 128, 128, 96, 96, 128, 96, 96, 96, 64, 73, 73, 73, 128, 96, 160, 160, 64, 160, 96, 96, 160, 96, 160, 96, 160, 64, 128, 96, 160, 128, 96, 128, 96, 128, 160, 96, 96, 64, 37, 73, 73, 160, 160, 64, 160, 96, 160, 160, 128, 160, 128, 160, 96, 160, 96, 128, 96, 128, 96, 160, 160, 96,
  276. 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 37, 73, 73, 160, 96, 96, 96, 96, 96, 96, 96, 96, 96, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 37, 73, 73, 160, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 64, 64, 64, 64, 64,
  277. 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 73, 73, 73, 37, 36, 36, 36, 36, 37, 37, 73, 73, 73, 37, 36, 36, 36, 36, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 73, 73, 73, 73, 37, 37, 37, 37, 73, 73, 73, 73, 37, 37, 36, 36, 36, 37, 37, 37, 37, 37, 37, 37,
  278. 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  279. 73, 192, 192, 192, 192, 192, 192, 192, 192, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 73, 73, 73, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 73,
  280. 73, 192, 160, 128, 128, 160, 96, 160, 160, 96, 128, 160, 96, 160, 96, 128, 160, 96, 160, 96, 160, 128, 160, 96, 160, 96, 160, 160, 96, 96, 160, 64, 73, 73, 73, 192, 160, 160, 96, 160, 96, 160, 64, 160, 96, 160, 64, 160, 128, 64, 128, 128, 96, 160, 128, 96, 160, 96, 128, 96, 128, 160, 64, 37,
  281. 73, 192, 160, 96, 160, 128, 96, 160, 128, 128, 96, 160, 96, 128, 64, 160, 128, 96, 160, 64, 128, 128, 128, 96, 160, 96, 160, 96, 160, 96, 128, 64, 37, 73, 73, 192, 128, 160, 96, 128, 96, 96, 64, 128, 64, 128, 96, 160, 64, 160, 96, 160, 96, 128, 96, 160, 128, 96, 128, 160, 96, 128, 64, 37,
  282. 73, 192, 128, 96, 160, 96, 128, 96, 96, 160, 96, 160, 128, 96, 128, 160, 96, 128, 128, 128, 64, 96, 160, 64, 128, 64, 128, 96, 128, 128, 96, 64, 37, 73, 73, 192, 128, 160, 96, 96, 128, 160, 96, 64, 160, 96, 64, 128, 160, 64, 160, 96, 96, 160, 96, 160, 96, 160, 96, 128, 96, 160, 64, 37,
  283. 73, 192, 160, 128, 160, 128, 96, 160, 128, 96, 128, 160, 96, 160, 64, 128, 160, 96, 160, 64, 128, 160, 64, 128, 160, 96, 160, 160, 160, 96, 96, 64, 37, 73, 73, 192, 160, 96, 160, 128, 96, 160, 64, 160, 96, 128, 96, 96, 64, 128, 96, 160, 96, 128, 128, 128, 128, 96, 96, 160, 128, 160, 64, 37,
  284. 73, 192, 160, 96, 128, 160, 96, 160, 96, 160, 96, 160, 96, 160, 96, 160, 96, 96, 160, 64, 128, 96, 160, 96, 128, 96, 128, 96, 128, 96, 160, 64, 36, 73, 73, 192, 160, 96, 96, 160, 96, 96, 64, 160, 64, 160, 64, 128, 64, 160, 96, 128, 96, 160, 96, 96, 160, 96, 128, 128, 96, 96, 64, 37,
  285. 73, 160, 160, 96, 160, 96, 128, 96, 128, 128, 96, 160, 128, 128, 128, 160, 128, 96, 128, 96, 64, 96, 160, 64, 160, 96, 128, 96, 160, 96, 160, 64, 36, 73, 73, 160, 96, 160, 96, 128, 96, 160, 64, 96, 160, 96, 64, 128, 96, 128, 96, 160, 96, 160, 96, 160, 96, 128, 96, 160, 96, 160, 64, 37,
  286. 73, 160, 96, 96, 96, 96, 96, 96, 96, 96, 96, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 37, 73, 73, 160, 96, 96, 96, 96, 96, 96, 96, 96, 96, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 37,
  287. 73, 73, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 73, 73, 73, 37, 36, 36, 36, 36, 37, 37, 37, 36, 36, 36, 36, 37, 37, 36, 36, 37, 37, 73, 73, 73, 37, 37, 37, 37, 37, 37, 36, 36, 36, 37, 37, 73, 37, 37, 36, 37, 37, 37, 37, 36, 36, 36, 37, 37, 37, 37, 37, 37,
  288. 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 36, 36, 37, 73, 73, 73, 73, 73,
  289. 192, 192, 192, 192, 192, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 73, 73, 73, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 73, 73, 73, 192, 192, 192, 192, 192, 192, 160, 160, 160, 160, 160, 160, 160, 160,
  290. 96, 160, 64, 160, 160, 96, 128, 96, 160, 96, 160, 96, 160, 96, 160, 96, 160, 64, 37, 73, 73, 192, 160, 160, 160, 160, 96, 160, 64, 160, 96, 160, 96, 160, 96, 160, 128, 160, 96, 160, 96, 160, 64, 160, 96, 96, 64, 73, 73, 73, 192, 160, 96, 128, 160, 64, 160, 96, 160, 96, 160, 96, 160, 96,
  291. 160, 96, 96, 160, 96, 160, 96, 128, 96, 96, 160, 64, 96, 96, 128, 96, 128, 64, 37, 73, 73, 192, 96, 160, 96, 160, 96, 96, 64, 96, 128, 96, 160, 128, 96, 128, 128, 96, 96, 128, 96, 128, 64, 160, 96, 160, 64, 37, 73, 73, 192, 96, 160, 64, 160, 96, 160, 96, 128, 160, 96, 160, 128, 64,
  292. 160, 96, 64, 96, 160, 96, 128, 96, 96, 160, 96, 64, 160, 128, 96, 128, 96, 64, 37, 73, 73, 192, 96, 96, 96, 160, 96, 96, 96, 160, 64, 160, 64, 160, 160, 96, 160, 96, 160, 96, 128, 64, 128, 128, 96, 96, 64, 37, 73, 73, 192, 96, 160, 96, 96, 160, 160, 128, 96, 128, 96, 96, 96, 128,
  293. 96, 128, 64, 128, 96, 96, 160, 96, 160, 96, 160, 64, 96, 96, 96, 160, 96, 64, 37, 73, 73, 192, 160, 64, 96, 160, 96, 160, 64, 160, 96, 128, 96, 160, 96, 128, 96, 96, 160, 96, 160, 128, 64, 96, 128, 96, 64, 37, 73, 73, 192, 160, 96, 64, 160, 128, 96, 96, 160, 96, 160, 96, 96, 160,
  294. 96, 160, 96, 160, 96, 160, 96, 128, 160, 96, 160, 96, 64, 128, 160, 96, 128, 64, 37, 73, 73, 192, 64, 160, 160, 96, 160, 96, 96, 128, 64, 96, 64, 160, 96, 160, 96, 96, 96, 96, 128, 96, 64, 128, 96, 96, 64, 37, 73, 73, 192, 96, 160, 128, 160, 96, 160, 128, 96, 96, 64, 160, 96, 160,
  295. 96, 160, 96, 96, 96, 128, 128, 96, 128, 96, 96, 64, 160, 96, 160, 96, 128, 64, 37, 73, 73, 192, 64, 160, 96, 160, 96, 96, 96, 128, 64, 128, 96, 128, 64, 160, 96, 96, 160, 128, 96, 160, 64, 160, 64, 128, 64, 37, 73, 73, 192, 96, 160, 64, 96, 64, 160, 96, 160, 96, 64, 96, 160, 64,
  296. 96, 128, 64, 160, 96, 96, 128, 96, 96, 96, 160, 64, 160, 96, 96, 128, 96, 64, 37, 73, 73, 160, 160, 64, 96, 160, 96, 160, 64, 128, 96, 160, 96, 160, 96, 96, 160, 96, 96, 160, 96, 128, 96, 128, 96, 128, 64, 37, 73, 73, 160, 96, 96, 64, 160, 64, 160, 96, 160, 96, 160, 96, 160, 96,
  297. 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 37, 73, 73, 160, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 36, 73, 73, 160, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
  298. 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 73, 73, 73, 73, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 36, 36, 36, 36, 36, 37, 36, 36, 36, 73, 73, 73, 37, 37, 37, 37, 37, 37, 36, 36, 36, 36, 36, 37, 37,
  299. 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  300. 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  301. },
  302. // purplestone
  303. {
  304. 97, 97, 97, 65, 65, 65, 65, 65, 65, 97, 130, 65, 97, 65, 65, 65, 65, 65, 65, 65, 97, 97, 97, 97, 97, 97, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 97, 130, 130, 97, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
  305. 104, 130, 130, 97, 65, 65, 65, 65, 97, 130, 97, 97, 65, 65, 65, 65, 65, 65, 65, 97, 130, 130, 104, 104, 104, 104, 97, 65, 65, 65, 65, 65, 65, 65, 65, 65, 97, 130, 130, 130, 130, 97, 130, 97, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 97, 130, 130, 104, 104, 104, 104, 104,
  306. 104, 104, 130, 130, 130, 97, 65, 65, 97, 97, 65, 97, 97, 97, 65, 65, 65, 65, 65, 130, 130, 104, 104, 104, 104, 104, 104, 65, 65, 65, 65, 65, 65, 65, 65, 65, 97, 130, 130, 130, 97, 130, 97, 97, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 97, 130, 130, 104, 104, 104, 104, 104, 104,
  307. 104, 104, 104, 130, 97, 65, 65, 65, 65, 65, 97, 97, 65, 65, 65, 65, 65, 65, 65, 130, 130, 104, 104, 130, 97, 97, 104, 97, 65, 65, 65, 65, 65, 65, 65, 65, 97, 130, 97, 130, 97, 97, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 97, 130, 104, 104, 104, 104, 72, 72, 65,
  308. 130, 104, 72, 97, 130, 97, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 97, 130, 130, 97, 65, 97, 130, 104, 97, 65, 65, 104, 104, 104, 130, 97, 65, 65, 97, 130, 97, 65, 65, 104, 104, 104, 104, 104, 104, 72, 72, 72, 72, 65, 65, 65, 97, 130, 104, 104, 104, 68, 65, 72, 97,
  309. 130, 104, 72, 130, 130, 97, 97, 65, 97, 97, 130, 130, 130, 130, 130, 97, 97, 65, 65, 65, 97, 130, 97, 130, 130, 97, 72, 65, 65, 104, 104, 104, 104, 104, 130, 97, 65, 65, 97, 72, 72, 104, 104, 104, 104, 104, 104, 104, 104, 104, 72, 104, 72, 65, 65, 97, 130, 97, 104, 104, 68, 97, 72, 130,
  310. 97, 130, 104, 97, 130, 97, 130, 97, 130, 130, 130, 130, 104, 97, 97, 130, 130, 97, 97, 65, 65, 97, 65, 130, 97, 97, 68, 65, 104, 104, 104, 72, 72, 104, 130, 97, 65, 68, 72, 104, 104, 104, 104, 104, 104, 104, 72, 72, 68, 72, 68, 68, 104, 72, 65, 65, 97, 130, 104, 104, 68, 130, 72, 97,
  311. 130, 130, 104, 130, 97, 97, 97, 130, 104, 104, 130, 104, 104, 97, 65, 97, 97, 97, 130, 97, 65, 65, 65, 65, 97, 65, 72, 65, 104, 104, 72, 65, 65, 72, 97, 65, 68, 72, 104, 104, 104, 104, 104, 104, 104, 72, 72, 72, 65, 72, 65, 65, 104, 68, 72, 65, 65, 130, 104, 104, 68, 130, 72, 65,
  312. 97, 130, 104, 97, 65, 97, 130, 104, 104, 104, 104, 104, 72, 97, 65, 65, 65, 65, 97, 97, 65, 97, 65, 65, 97, 97, 104, 97, 104, 104, 65, 130, 97, 72, 130, 97, 68, 104, 104, 104, 137, 137, 104, 104, 104, 72, 65, 72, 65, 72, 97, 97, 72, 65, 72, 65, 65, 97, 104, 72, 68, 97, 72, 65,
  313. 65, 97, 104, 65, 97, 130, 130, 104, 104, 104, 104, 104, 72, 97, 65, 65, 97, 65, 65, 65, 65, 65, 97, 97, 97, 97, 72, 65, 104, 104, 97, 130, 130, 68, 97, 68, 104, 72, 72, 137, 137, 104, 104, 104, 104, 68, 65, 68, 65, 72, 130, 130, 72, 97, 72, 65, 65, 65, 104, 72, 68, 130, 72, 65,
  314. 65, 65, 68, 97, 97, 130, 130, 104, 104, 104, 104, 72, 72, 97, 65, 97, 97, 104, 104, 104, 72, 72, 65, 65, 65, 97, 72, 65, 72, 65, 130, 97, 97, 68, 65, 68, 72, 104, 97, 137, 104, 104, 104, 104, 72, 68, 65, 65, 65, 130, 130, 72, 72, 97, 72, 68, 65, 65, 65, 72, 68, 97, 65, 65,
  315. 65, 65, 68, 97, 130, 130, 130, 104, 104, 104, 72, 72, 72, 97, 65, 97, 104, 104, 104, 104, 104, 104, 97, 65, 65, 65, 65, 65, 72, 97, 130, 65, 97, 68, 65, 68, 72, 72, 97, 137, 104, 104, 104, 72, 72, 72, 68, 130, 65, 130, 72, 72, 72, 72, 72, 68, 97, 65, 65, 72, 68, 65, 65, 65,
  316. 65, 65, 68, 97, 130, 130, 130, 97, 104, 72, 68, 97, 68, 65, 97, 65, 104, 104, 104, 97, 104, 104, 130, 97, 65, 65, 65, 65, 68, 65, 65, 65, 65, 65, 65, 65, 72, 72, 130, 104, 104, 104, 72, 65, 97, 72, 72, 68, 130, 130, 72, 72, 72, 72, 72, 68, 97, 97, 65, 72, 68, 65, 65, 65,
  317. 65, 65, 68, 97, 130, 130, 104, 104, 104, 104, 68, 65, 68, 65, 65, 104, 104, 104, 97, 97, 130, 104, 130, 97, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 72, 72, 130, 104, 104, 72, 65, 97, 130, 97, 72, 68, 104, 104, 72, 68, 68, 130, 72, 68, 97, 130, 65, 65, 65, 65, 65, 65,
  318. 65, 65, 65, 97, 130, 104, 104, 104, 97, 97, 97, 97, 68, 65, 65, 104, 104, 104, 65, 130, 97, 104, 130, 97, 65, 65, 65, 65, 65, 65, 97, 130, 130, 97, 65, 65, 72, 72, 130, 104, 65, 72, 97, 130, 130, 130, 104, 104, 104, 72, 68, 97, 97, 97, 72, 68, 97, 130, 97, 65, 65, 65, 65, 65,
  319. 65, 65, 65, 97, 130, 104, 104, 97, 130, 130, 130, 130, 68, 65, 65, 104, 104, 104, 65, 130, 65, 72, 97, 65, 65, 65, 72, 72, 72, 65, 97, 97, 97, 97, 65, 65, 72, 65, 130, 104, 130, 72, 65, 72, 72, 104, 104, 104, 72, 68, 97, 130, 97, 65, 97, 72, 68, 97, 97, 65, 65, 65, 65, 65,
  320. 65, 65, 65, 97, 130, 104, 97, 130, 130, 130, 97, 97, 68, 65, 65, 104, 130, 72, 65, 97, 65, 72, 65, 65, 65, 104, 104, 104, 104, 104, 72, 65, 97, 65, 65, 65, 72, 65, 130, 104, 130, 72, 72, 104, 104, 104, 104, 104, 104, 72, 68, 97, 97, 65, 130, 72, 72, 68, 97, 65, 65, 65, 65, 65,
  321. 65, 65, 65, 97, 97, 104, 97, 130, 130, 65, 65, 65, 68, 65, 65, 104, 130, 72, 65, 97, 65, 68, 65, 65, 104, 137, 137, 137, 137, 104, 104, 65, 65, 97, 65, 65, 68, 97, 130, 65, 130, 72, 104, 104, 104, 104, 72, 72, 72, 72, 68, 97, 130, 97, 97, 97, 72, 68, 68, 65, 65, 65, 65, 65,
  322. 65, 65, 65, 97, 97, 104, 97, 130, 65, 97, 130, 65, 68, 65, 65, 130, 130, 97, 130, 97, 65, 65, 65, 130, 137, 104, 104, 104, 104, 104, 104, 72, 65, 65, 65, 65, 68, 97, 97, 65, 65, 72, 104, 104, 72, 72, 68, 72, 68, 72, 68, 97, 97, 65, 65, 130, 97, 68, 65, 65, 65, 65, 65, 65,
  323. 65, 65, 65, 65, 97, 97, 130, 97, 65, 130, 97, 65, 68, 65, 65, 97, 130, 130, 97, 65, 65, 65, 65, 130, 104, 97, 162, 130, 130, 130, 104, 72, 72, 68, 65, 65, 68, 97, 130, 65, 72, 72, 104, 72, 72, 68, 65, 72, 65, 72, 68, 97, 65, 97, 65, 130, 97, 68, 65, 65, 65, 65, 65, 97,
  324. 97, 97, 97, 65, 65, 97, 130, 65, 65, 97, 97, 130, 97, 65, 97, 130, 97, 97, 65, 65, 65, 65, 130, 104, 162, 162, 130, 130, 130, 72, 130, 72, 72, 72, 65, 65, 68, 97, 97, 65, 65, 72, 104, 72, 68, 65, 97, 65, 97, 72, 68, 97, 65, 97, 65, 97, 97, 72, 65, 65, 97, 97, 97, 97,
  325. 104, 130, 130, 97, 65, 97, 97, 65, 97, 65, 65, 97, 130, 97, 65, 65, 65, 65, 65, 65, 97, 130, 104, 104, 130, 130, 130, 104, 72, 72, 68, 72, 68, 68, 68, 65, 72, 97, 65, 65, 65, 72, 130, 72, 68, 97, 97, 65, 65, 68, 65, 65, 97, 65, 65, 97, 65, 72, 65, 97, 130, 104, 104, 104,
  326. 104, 104, 104, 130, 97, 65, 65, 65, 65, 97, 130, 65, 65, 65, 65, 65, 65, 65, 97, 97, 130, 104, 104, 104, 104, 104, 104, 104, 68, 65, 97, 68, 65, 68, 68, 72, 72, 72, 65, 65, 97, 72, 130, 72, 68, 65, 65, 65, 97, 97, 65, 97, 65, 65, 65, 65, 72, 72, 130, 130, 104, 104, 104, 104,
  327. 104, 104, 104, 72, 97, 65, 65, 97, 130, 130, 130, 97, 65, 65, 65, 104, 104, 68, 65, 97, 130, 104, 104, 97, 130, 104, 72, 72, 65, 97, 130, 65, 68, 68, 72, 104, 104, 104, 65, 65, 97, 97, 130, 68, 97, 65, 65, 65, 65, 130, 97, 65, 65, 65, 65, 65, 72, 104, 104, 104, 104, 104, 104, 104,
  328. 104, 72, 72, 72, 97, 130, 97, 97, 130, 130, 130, 97, 65, 65, 72, 104, 72, 72, 65, 97, 130, 104, 104, 97, 130, 104, 72, 68, 65, 130, 65, 68, 68, 72, 72, 72, 72, 72, 72, 97, 97, 97, 130, 68, 130, 97, 97, 130, 130, 97, 130, 97, 65, 65, 65, 65, 104, 104, 104, 104, 130, 130, 130, 104,
  329. 65, 65, 72, 68, 68, 97, 97, 130, 130, 130, 97, 65, 65, 65, 104, 97, 65, 72, 65, 97, 130, 104, 104, 104, 104, 72, 68, 68, 97, 130, 72, 72, 72, 68, 68, 72, 72, 72, 72, 72, 68, 130, 97, 97, 97, 130, 130, 97, 97, 65, 97, 65, 65, 65, 65, 97, 104, 104, 104, 130, 130, 97, 97, 97,
  330. 65, 65, 65, 72, 72, 97, 65, 97, 97, 97, 65, 72, 104, 104, 104, 65, 97, 68, 68, 97, 130, 104, 104, 97, 65, 65, 97, 97, 130, 130, 72, 72, 68, 72, 65, 65, 97, 72, 72, 72, 68, 68, 97, 130, 97, 97, 130, 97, 65, 65, 65, 65, 65, 65, 97, 130, 104, 104, 130, 130, 130, 65, 97, 65,
  331. 130, 130, 130, 72, 72, 65, 130, 97, 65, 65, 72, 72, 72, 104, 65, 65, 65, 68, 65, 97, 130, 130, 104, 97, 65, 97, 104, 104, 104, 72, 68, 68, 72, 72, 72, 130, 130, 72, 97, 72, 72, 68, 68, 97, 65, 65, 97, 65, 65, 65, 65, 65, 65, 65, 130, 104, 104, 104, 104, 104, 104, 104, 65, 65,
  332. 65, 97, 97, 104, 104, 65, 97, 65, 65, 65, 72, 97, 97, 104, 97, 97, 130, 97, 65, 65, 97, 130, 104, 130, 130, 130, 130, 130, 130, 72, 68, 97, 97, 72, 72, 130, 130, 72, 97, 72, 72, 72, 68, 65, 65, 65, 65, 65, 104, 104, 104, 65, 65, 97, 130, 104, 104, 104, 104, 104, 104, 104, 104, 97,
  333. 65, 97, 130, 104, 104, 130, 65, 65, 65, 65, 65, 65, 97, 72, 130, 130, 97, 65, 65, 65, 65, 130, 130, 130, 130, 130, 130, 130, 130, 72, 68, 65, 130, 130, 68, 65, 97, 72, 97, 72, 72, 72, 68, 65, 65, 65, 65, 104, 104, 104, 65, 65, 97, 130, 130, 104, 104, 130, 162, 162, 104, 104, 104, 130,
  334. 97, 130, 97, 104, 104, 97, 65, 97, 65, 65, 65, 97, 97, 68, 72, 72, 72, 68, 65, 65, 65, 130, 130, 130, 130, 130, 130, 97, 104, 72, 68, 97, 130, 130, 68, 65, 65, 72, 65, 72, 72, 72, 68, 97, 65, 72, 65, 104, 104, 130, 130, 130, 130, 130, 130, 104, 130, 162, 130, 130, 130, 130, 104, 104,
  335. 97, 130, 97, 72, 72, 130, 97, 130, 97, 65, 97, 130, 130, 130, 130, 130, 97, 72, 68, 68, 97, 130, 130, 130, 104, 104, 104, 72, 68, 72, 97, 130, 97, 97, 68, 65, 97, 97, 97, 72, 72, 72, 68, 97, 65, 65, 65, 104, 130, 130, 130, 97, 97, 130, 130, 104, 130, 162, 97, 97, 130, 130, 104, 104,
  336. 65, 130, 97, 72, 72, 130, 65, 97, 65, 65, 130, 162, 162, 130, 104, 104, 104, 130, 72, 65, 130, 130, 130, 104, 104, 104, 72, 72, 72, 97, 130, 130, 97, 130, 65, 97, 130, 130, 130, 72, 72, 72, 68, 97, 65, 65, 65, 72, 97, 130, 130, 97, 65, 130, 130, 104, 130, 130, 97, 65, 130, 130, 72, 72,
  337. 65, 97, 130, 72, 72, 97, 97, 97, 65, 97, 130, 162, 130, 104, 104, 104, 104, 104, 97, 65, 130, 130, 130, 104, 104, 68, 65, 72, 72, 72, 130, 130, 65, 97, 97, 97, 130, 130, 130, 72, 72, 72, 68, 97, 65, 65, 65, 72, 97, 97, 97, 65, 97, 130, 130, 104, 130, 130, 97, 65, 97, 72, 72, 72,
  338. 65, 97, 130, 104, 104, 97, 130, 130, 65, 130, 130, 130, 104, 104, 72, 72, 97, 72, 130, 65, 130, 130, 97, 104, 72, 65, 65, 65, 72, 72, 130, 97, 65, 65, 97, 130, 130, 97, 65, 72, 68, 72, 68, 97, 65, 65, 65, 72, 65, 65, 97, 65, 65, 97, 130, 104, 97, 130, 97, 65, 97, 72, 72, 72,
  339. 130, 65, 130, 104, 72, 97, 130, 97, 65, 130, 130, 130, 97, 104, 72, 72, 130, 72, 97, 65, 130, 130, 65, 72, 65, 65, 97, 65, 72, 68, 97, 65, 65, 65, 97, 130, 130, 97, 65, 72, 68, 65, 97, 65, 65, 65, 65, 72, 65, 65, 65, 65, 65, 65, 97, 104, 97, 130, 97, 65, 65, 65, 72, 72,
  340. 65, 65, 130, 72, 72, 97, 97, 65, 65, 97, 130, 130, 97, 72, 72, 72, 97, 72, 65, 65, 97, 130, 97, 72, 65, 97, 97, 65, 68, 68, 65, 65, 65, 65, 65, 97, 130, 65, 65, 72, 68, 65, 97, 65, 65, 65, 65, 72, 65, 65, 65, 65, 65, 65, 65, 72, 65, 97, 97, 97, 65, 65, 104, 104,
  341. 65, 65, 97, 72, 97, 65, 65, 65, 65, 97, 130, 130, 130, 72, 72, 72, 65, 72, 65, 65, 65, 97, 97, 104, 65, 65, 65, 65, 68, 68, 65, 65, 97, 65, 65, 130, 65, 65, 97, 97, 68, 97, 130, 97, 97, 97, 97, 72, 65, 65, 65, 65, 65, 65, 65, 72, 65, 65, 97, 97, 97, 97, 104, 104,
  342. 65, 65, 130, 97, 65, 65, 65, 65, 65, 65, 97, 97, 130, 97, 72, 65, 65, 72, 65, 65, 65, 65, 65, 72, 65, 97, 65, 65, 68, 68, 65, 65, 65, 65, 65, 65, 97, 97, 65, 97, 68, 65, 97, 97, 130, 130, 130, 72, 65, 65, 97, 97, 97, 97, 65, 72, 65, 65, 65, 65, 65, 65, 104, 104,
  343. 65, 65, 97, 65, 65, 65, 65, 65, 65, 65, 65, 97, 97, 65, 72, 65, 65, 65, 65, 65, 65, 65, 65, 68, 65, 65, 65, 130, 97, 68, 65, 65, 65, 65, 65, 97, 130, 130, 65, 97, 65, 68, 65, 97, 130, 130, 97, 72, 65, 97, 130, 130, 130, 130, 97, 65, 65, 65, 65, 65, 65, 65, 104, 104,
  344. 65, 65, 65, 97, 97, 97, 97, 65, 97, 65, 65, 65, 97, 130, 130, 130, 130, 97, 65, 65, 65, 65, 65, 68, 65, 65, 65, 97, 65, 68, 65, 65, 65, 65, 97, 130, 130, 97, 65, 65, 65, 68, 65, 130, 97, 65, 65, 72, 72, 104, 104, 130, 130, 130, 130, 97, 97, 65, 65, 65, 65, 65, 72, 72,
  345. 65, 65, 97, 130, 104, 104, 130, 97, 130, 97, 65, 97, 130, 130, 130, 130, 130, 130, 130, 65, 97, 65, 65, 68, 65, 65, 65, 65, 65, 68, 65, 65, 65, 65, 97, 130, 97, 65, 65, 97, 65, 65, 65, 65, 65, 130, 72, 104, 104, 104, 104, 104, 104, 130, 97, 97, 130, 97, 65, 65, 65, 65, 72, 72,
  346. 65, 65, 97, 104, 104, 104, 72, 97, 97, 65, 97, 97, 130, 130, 104, 104, 72, 72, 97, 97, 130, 97, 65, 68, 65, 65, 65, 65, 65, 68, 65, 65, 97, 97, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 97, 130, 104, 104, 104, 72, 65, 72, 97, 130, 97, 130, 130, 97, 65, 65, 65, 68, 68,
  347. 65, 65, 130, 104, 97, 97, 72, 65, 65, 97, 130, 130, 130, 104, 104, 104, 72, 72, 65, 65, 97, 65, 65, 68, 65, 65, 65, 65, 65, 72, 65, 65, 65, 65, 65, 97, 65, 65, 65, 65, 65, 65, 65, 65, 97, 130, 130, 104, 104, 72, 72, 65, 72, 97, 130, 130, 130, 97, 130, 97, 65, 65, 68, 68,
  348. 65, 65, 130, 72, 97, 130, 72, 130, 97, 130, 130, 104, 104, 104, 104, 104, 72, 72, 65, 65, 65, 65, 65, 72, 65, 72, 72, 72, 72, 104, 130, 130, 65, 65, 65, 97, 97, 97, 65, 65, 65, 65, 65, 65, 97, 130, 130, 72, 130, 72, 65, 65, 65, 65, 97, 130, 97, 65, 97, 65, 97, 65, 68, 65,
  349. 65, 65, 97, 72, 97, 65, 72, 97, 97, 130, 130, 104, 130, 104, 65, 65, 72, 68, 65, 97, 65, 65, 65, 72, 72, 104, 104, 104, 104, 104, 130, 130, 130, 65, 65, 97, 130, 130, 97, 97, 65, 65, 65, 97, 130, 104, 130, 72, 130, 72, 65, 65, 65, 97, 130, 130, 97, 65, 65, 97, 130, 97, 68, 65,
  350. 65, 65, 65, 72, 97, 130, 130, 97, 130, 130, 97, 72, 65, 130, 65, 65, 65, 68, 97, 130, 97, 65, 65, 72, 104, 137, 104, 104, 104, 104, 130, 162, 130, 104, 72, 97, 130, 130, 97, 130, 97, 65, 97, 130, 104, 104, 130, 72, 97, 65, 65, 65, 65, 72, 104, 130, 130, 97, 97, 97, 130, 97, 68, 65,
  351. 65, 65, 65, 72, 97, 130, 130, 97, 130, 130, 97, 65, 130, 65, 65, 97, 130, 130, 68, 130, 97, 65, 65, 104, 137, 104, 104, 104, 104, 104, 97, 130, 130, 104, 104, 72, 130, 97, 130, 97, 97, 65, 97, 104, 104, 104, 130, 72, 97, 65, 65, 72, 72, 104, 104, 104, 130, 97, 130, 97, 97, 97, 65, 65,
  352. 65, 65, 65, 68, 97, 97, 97, 65, 97, 130, 97, 65, 65, 65, 97, 97, 130, 97, 68, 97, 65, 65, 65, 104, 104, 104, 104, 104, 104, 104, 104, 130, 130, 130, 104, 104, 97, 130, 97, 130, 97, 97, 104, 104, 104, 104, 104, 104, 65, 72, 72, 104, 104, 104, 104, 104, 97, 97, 130, 97, 97, 130, 97, 68,
  353. 65, 65, 65, 68, 65, 65, 65, 65, 65, 97, 65, 65, 65, 97, 65, 97, 97, 68, 97, 130, 97, 65, 104, 104, 104, 72, 104, 72, 104, 104, 104, 104, 130, 130, 130, 104, 72, 97, 97, 97, 97, 130, 104, 104, 104, 104, 104, 104, 104, 130, 130, 104, 104, 104, 104, 72, 65, 65, 97, 97, 97, 130, 97, 68,
  354. 65, 65, 65, 68, 65, 65, 65, 65, 65, 65, 97, 97, 65, 65, 65, 65, 65, 68, 65, 97, 65, 65, 130, 104, 72, 104, 104, 72, 72, 104, 104, 104, 97, 130, 130, 104, 72, 65, 65, 65, 97, 104, 104, 104, 104, 65, 65, 65, 65, 97, 97, 104, 72, 65, 104, 72, 65, 97, 130, 130, 97, 130, 97, 68,
  355. 65, 65, 65, 68, 65, 65, 65, 65, 65, 65, 65, 65, 65, 97, 97, 65, 65, 68, 65, 65, 72, 104, 104, 104, 104, 104, 72, 104, 72, 72, 72, 72, 104, 104, 130, 104, 72, 65, 65, 65, 65, 104, 104, 97, 72, 65, 65, 65, 97, 130, 130, 104, 72, 97, 104, 72, 97, 130, 130, 97, 65, 97, 65, 65,
  356. 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 68, 68, 72, 104, 72, 72, 72, 104, 72, 104, 104, 72, 72, 72, 72, 72, 104, 104, 104, 104, 72, 65, 65, 65, 72, 130, 97, 72, 65, 72, 104, 104, 72, 68, 104, 130, 130, 97, 72, 130, 130, 72, 104, 72, 65, 65, 68,
  357. 65, 65, 65, 68, 65, 65, 65, 65, 97, 97, 130, 130, 130, 130, 130, 97, 65, 68, 72, 104, 72, 72, 68, 68, 72, 72, 104, 72, 72, 65, 65, 65, 97, 97, 72, 72, 104, 104, 72, 68, 65, 72, 97, 130, 72, 97, 104, 72, 72, 72, 68, 104, 130, 97, 97, 72, 97, 72, 104, 104, 104, 72, 65, 68,
  358. 65, 65, 65, 65, 65, 65, 97, 130, 130, 130, 104, 104, 104, 104, 104, 130, 97, 65, 72, 104, 72, 68, 65, 68, 68, 65, 72, 72, 68, 65, 130, 97, 97, 65, 72, 72, 72, 72, 72, 72, 65, 68, 65, 97, 72, 130, 97, 72, 65, 72, 68, 104, 97, 65, 65, 68, 130, 97, 97, 72, 72, 72, 65, 65,
  359. 65, 65, 65, 65, 65, 97, 130, 130, 130, 104, 104, 72, 72, 72, 72, 104, 130, 65, 72, 104, 68, 65, 65, 68, 68, 65, 72, 72, 68, 97, 130, 130, 130, 130, 68, 68, 68, 68, 72, 72, 65, 68, 65, 65, 68, 130, 97, 72, 65, 68, 68, 65, 65, 97, 65, 68, 97, 65, 97, 72, 72, 72, 65, 65,
  360. 65, 65, 65, 65, 65, 97, 130, 130, 130, 104, 65, 97, 97, 97, 72, 72, 97, 65, 72, 104, 68, 65, 65, 65, 68, 65, 65, 65, 68, 65, 97, 130, 130, 130, 68, 68, 68, 65, 72, 68, 65, 65, 65, 65, 68, 97, 97, 68, 65, 72, 72, 65, 65, 130, 65, 68, 65, 65, 65, 72, 72, 72, 65, 65,
  361. 65, 65, 65, 65, 65, 97, 130, 130, 65, 72, 97, 130, 97, 130, 97, 72, 97, 65, 68, 130, 130, 65, 65, 130, 68, 65, 130, 65, 68, 65, 97, 130, 97, 97, 68, 68, 65, 65, 68, 68, 65, 65, 65, 65, 68, 65, 65, 68, 65, 72, 72, 68, 65, 65, 65, 68, 65, 97, 65, 65, 104, 72, 72, 65,
  362. 65, 65, 65, 65, 65, 97, 130, 72, 72, 68, 72, 72, 130, 97, 130, 72, 97, 97, 68, 65, 130, 130, 65, 65, 68, 65, 65, 65, 68, 97, 65, 97, 65, 65, 65, 68, 65, 97, 68, 68, 65, 97, 65, 65, 68, 65, 65, 65, 65, 104, 97, 104, 68, 65, 65, 68, 97, 65, 65, 104, 137, 104, 104, 72,
  363. 65, 65, 65, 65, 72, 104, 104, 104, 97, 130, 97, 97, 97, 97, 97, 72, 97, 130, 68, 65, 65, 65, 65, 65, 68, 68, 68, 68, 68, 97, 97, 65, 65, 65, 65, 68, 97, 65, 68, 68, 65, 65, 65, 65, 68, 97, 97, 65, 130, 72, 130, 97, 68, 68, 65, 68, 65, 65, 104, 137, 104, 104, 104, 130,
  364. 68, 65, 65, 97, 104, 104, 104, 104, 104, 97, 97, 130, 130, 68, 68, 68, 68, 68, 68, 65, 65, 130, 65, 68, 72, 72, 72, 72, 72, 72, 68, 68, 68, 68, 68, 68, 68, 65, 68, 68, 65, 97, 65, 97, 130, 130, 130, 97, 65, 68, 68, 68, 68, 68, 68, 68, 68, 68, 104, 137, 104, 97, 68, 68,
  365. 68, 68, 68, 130, 104, 65, 97, 130, 72, 130, 65, 97, 68, 72, 72, 72, 72, 72, 72, 72, 72, 68, 68, 68, 104, 130, 104, 104, 104, 104, 72, 72, 72, 72, 72, 72, 68, 68, 68, 68, 97, 130, 97, 97, 130, 130, 130, 72, 72, 72, 72, 72, 72, 72, 104, 104, 104, 104, 137, 104, 72, 130, 97, 68,
  366. 68, 68, 68, 68, 104, 97, 130, 65, 72, 68, 68, 68, 72, 104, 104, 104, 104, 104, 104, 104, 72, 72, 72, 72, 72, 104, 104, 104, 137, 104, 104, 104, 104, 104, 104, 104, 104, 72, 72, 72, 72, 72, 72, 68, 68, 68, 68, 72, 72, 72, 72, 104, 104, 104, 104, 104, 104, 104, 104, 72, 68, 68, 68, 68,
  367. 109, 73, 73, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 73, 73, 109, 109, 73, 73, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 73, 73, 73, 73, 73, 73, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 73, 73, 109,
  368. },
  369. // greystone
  370. {
  371. 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73,
  372. 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 218, 219, 219, 219, 218, 219, 218, 219, 219, 219, 218, 219, 218, 219, 219, 219, 36, 73, 146, 182, 182, 218, 182, 218, 218, 182, 218, 182, 182, 182, 146, 73, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  373. 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 219, 218, 182, 218, 182, 218, 218, 218, 182, 218, 218, 182, 218, 218, 182, 146, 36, 73, 146, 182, 182, 146, 182, 146, 146, 146, 146, 146, 146, 182, 73, 73, 36, 73, 109, 146, 146, 146, 146, 146, 146, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  374. 146, 146, 146, 146, 146, 146, 146, 146, 36, 73, 73, 219, 182, 182, 182, 218, 182, 182, 182, 182, 182, 182, 182, 182, 218, 146, 109, 36, 73, 182, 218, 182, 146, 182, 146, 182, 146, 182, 146, 182, 146, 73, 73, 36, 73, 146, 218, 219, 219, 219, 218, 219, 182, 182, 182, 146, 146, 146, 146, 146, 146, 146, 146, 146,
  375. 218, 218, 218, 218, 182, 182, 146, 146, 36, 73, 73, 219, 218, 182, 182, 146, 182, 146, 182, 182, 182, 182, 146, 182, 182, 109, 73, 36, 73, 146, 182, 146, 146, 146, 182, 182, 182, 182, 146, 146, 109, 73, 73, 36, 73, 146, 219, 219, 182, 182, 182, 218, 219, 219, 219, 218, 219, 218, 182, 218, 218, 218, 182, 218,
  376. 182, 182, 182, 182, 146, 182, 109, 109, 36, 73, 73, 255, 182, 146, 182, 182, 182, 182, 146, 182, 146, 182, 146, 182, 182, 109, 73, 36, 73, 73, 182, 146, 182, 182, 146, 146, 146, 146, 182, 109, 73, 73, 73, 36, 73, 146, 218, 182, 182, 146, 182, 146, 182, 182, 146, 146, 146, 182, 146, 182, 146, 182, 146, 146,
  377. 182, 146, 146, 146, 182, 146, 109, 109, 36, 73, 73, 255, 218, 182, 146, 182, 146, 182, 146, 146, 146, 146, 146, 146, 182, 146, 73, 36, 73, 73, 109, 146, 146, 182, 146, 182, 182, 146, 182, 109, 73, 73, 73, 36, 73, 146, 219, 182, 146, 182, 146, 146, 146, 146, 146, 182, 146, 146, 146, 146, 182, 146, 146, 146,
  378. 182, 182, 146, 182, 146, 146, 109, 73, 36, 73, 73, 255, 182, 146, 146, 146, 182, 182, 146, 146, 109, 146, 146, 182, 146, 109, 73, 36, 73, 73, 73, 146, 182, 182, 146, 146, 146, 146, 182, 109, 73, 73, 73, 36, 73, 146, 219, 182, 182, 146, 146, 109, 182, 146, 109, 146, 182, 146, 182, 182, 146, 109, 182, 146,
  379. 146, 182, 182, 146, 146, 109, 73, 73, 36, 36, 73, 182, 182, 182, 146, 182, 146, 182, 146, 146, 146, 146, 146, 146, 182, 109, 73, 36, 36, 73, 73, 73, 109, 73, 73, 73, 73, 73, 73, 73, 73, 36, 36, 73, 73, 109, 219, 219, 146, 182, 146, 146, 146, 109, 146, 146, 182, 146, 146, 109, 182, 182, 109, 146,
  380. 146, 146, 146, 146, 109, 73, 73, 73, 36, 73, 73, 182, 255, 182, 146, 182, 146, 146, 146, 146, 146, 146, 146, 182, 146, 73, 109, 36, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 36, 73, 36, 36, 36, 73, 73, 73, 182, 182, 146, 146, 146, 146, 146, 146, 146, 146, 146, 182, 146, 182, 182, 146, 182, 146,
  381. 109, 109, 109, 109, 73, 73, 73, 73, 36, 36, 73, 146, 218, 146, 182, 146, 146, 109, 146, 146, 182, 146, 182, 146, 182, 109, 73, 73, 36, 73, 73, 73, 36, 36, 36, 36, 36, 36, 36, 73, 36, 73, 36, 73, 73, 73, 182, 182, 146, 182, 146, 182, 146, 146, 146, 109, 109, 109, 109, 109, 109, 109, 109, 109,
  382. 73, 73, 73, 73, 73, 36, 36, 36, 36, 73, 73, 109, 219, 182, 146, 146, 109, 109, 109, 182, 146, 146, 146, 109, 146, 109, 109, 73, 36, 73, 73, 73, 73, 73, 109, 109, 146, 182, 146, 182, 182, 146, 109, 73, 73, 73, 182, 146, 109, 109, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  383. 36, 36, 36, 36, 36, 73, 36, 73, 36, 73, 73, 73, 219, 182, 146, 146, 146, 146, 146, 146, 146, 182, 109, 146, 182, 146, 73, 73, 36, 73, 73, 109, 182, 182, 218, 219, 255, 218, 218, 218, 146, 109, 73, 36, 73, 73, 146, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 36, 73, 36, 73, 36,
  384. 36, 73, 36, 73, 36, 36, 73, 36, 73, 73, 73, 73, 182, 218, 146, 182, 146, 109, 146, 182, 146, 146, 146, 146, 146, 109, 73, 73, 36, 36, 73, 182, 182, 219, 218, 182, 146, 182, 146, 182, 146, 109, 73, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 36, 36, 36, 36, 36, 36, 36, 36, 36,
  385. 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 146, 182, 182, 146, 182, 146, 146, 109, 146, 109, 146, 182, 146, 73, 73, 73, 36, 73, 73, 182, 219, 182, 182, 146, 146, 146, 146, 146, 146, 73, 73, 36, 73, 36, 36, 73, 36, 36, 73, 36, 36, 73, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  386. 73, 73, 73, 73, 73, 73, 73, 73, 36, 73, 73, 73, 109, 182, 146, 182, 146, 146, 182, 146, 182, 146, 182, 146, 182, 73, 109, 73, 36, 36, 73, 182, 255, 182, 146, 146, 182, 146, 182, 146, 182, 73, 73, 36, 73, 73, 73, 73, 73, 73, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  387. 146, 146, 146, 146, 146, 146, 146, 146, 146, 36, 36, 73, 73, 182, 182, 146, 146, 146, 146, 146, 109, 146, 146, 146, 146, 109, 73, 73, 36, 36, 73, 182, 255, 146, 146, 182, 182, 146, 182, 146, 146, 73, 73, 36, 73, 109, 182, 219, 218, 73, 73, 73, 109, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
  388. 218, 182, 218, 218, 182, 218, 182, 182, 109, 73, 36, 73, 73, 146, 182, 146, 182, 146, 109, 146, 146, 146, 182, 146, 109, 146, 109, 73, 36, 36, 73, 182, 182, 182, 182, 146, 146, 182, 146, 182, 146, 73, 73, 36, 73, 182, 218, 182, 182, 36, 73, 109, 182, 218, 219, 219, 219, 218, 219, 219, 219, 218, 219, 218,
  389. 182, 146, 146, 182, 146, 182, 182, 109, 109, 73, 36, 73, 73, 109, 146, 182, 146, 182, 182, 146, 182, 109, 146, 109, 73, 109, 73, 73, 36, 36, 73, 182, 182, 182, 146, 109, 109, 109, 109, 73, 73, 73, 73, 36, 73, 218, 182, 182, 146, 36, 73, 146, 218, 218, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
  390. 182, 146, 146, 146, 182, 146, 146, 109, 109, 73, 36, 73, 73, 73, 146, 146, 109, 109, 109, 109, 73, 73, 109, 73, 109, 73, 73, 36, 36, 36, 73, 146, 146, 109, 146, 109, 73, 73, 73, 73, 73, 73, 73, 36, 109, 219, 182, 146, 146, 36, 73, 146, 219, 182, 182, 146, 182, 146, 182, 146, 146, 146, 146, 146,
  391. 182, 146, 146, 182, 146, 182, 182, 109, 73, 73, 36, 73, 73, 73, 109, 73, 73, 73, 73, 73, 73, 73, 73, 36, 36, 36, 36, 36, 36, 36, 36, 146, 109, 73, 73, 73, 36, 36, 36, 36, 36, 36, 36, 36, 109, 219, 182, 182, 146, 36, 73, 146, 218, 182, 146, 146, 146, 146, 146, 146, 109, 146, 146, 146,
  392. 182, 146, 182, 146, 182, 146, 146, 109, 73, 73, 36, 73, 73, 73, 36, 73, 36, 73, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 73, 73, 73, 73, 36, 36, 36, 36, 36, 73, 36, 36, 73, 36, 146, 219, 182, 182, 146, 36, 73, 146, 182, 146, 182, 146, 182, 146, 182, 146, 146, 146, 146, 146,
  393. 146, 182, 109, 109, 146, 146, 182, 109, 73, 73, 36, 73, 73, 73, 73, 73, 36, 36, 36, 36, 36, 36, 36, 36, 73, 73, 73, 73, 73, 73, 73, 146, 146, 146, 182, 182, 146, 146, 146, 109, 73, 36, 73, 109, 182, 219, 182, 146, 109, 36, 73, 146, 182, 182, 146, 146, 146, 146, 146, 146, 109, 109, 146, 146,
  394. 146, 146, 146, 109, 146, 182, 146, 109, 73, 73, 36, 73, 146, 219, 219, 219, 218, 182, 182, 182, 146, 109, 73, 73, 109, 109, 182, 182, 182, 182, 182, 219, 219, 219, 218, 219, 219, 219, 182, 146, 109, 36, 73, 109, 219, 182, 146, 182, 109, 36, 73, 146, 182, 182, 146, 146, 182, 146, 182, 146, 109, 109, 146, 146,
  395. 146, 146, 182, 182, 146, 146, 146, 109, 73, 73, 36, 73, 218, 182, 182, 146, 146, 146, 182, 146, 146, 73, 73, 73, 109, 218, 255, 219, 219, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 109, 73, 36, 73, 146, 219, 182, 146, 146, 109, 36, 73, 109, 182, 146, 182, 146, 146, 146, 146, 146, 182, 146, 182, 146,
  396. 146, 182, 146, 146, 182, 146, 109, 73, 73, 73, 36, 73, 219, 146, 146, 146, 182, 182, 146, 146, 182, 36, 73, 73, 146, 219, 182, 146, 182, 146, 182, 146, 146, 182, 146, 182, 146, 146, 146, 109, 73, 36, 73, 146, 255, 182, 146, 182, 73, 36, 73, 73, 146, 109, 109, 73, 73, 73, 109, 109, 109, 109, 146, 146,
  397. 109, 109, 109, 109, 109, 73, 73, 73, 73, 73, 36, 73, 218, 182, 182, 182, 146, 182, 146, 182, 109, 36, 73, 73, 146, 255, 182, 146, 182, 146, 109, 182, 182, 146, 146, 146, 182, 146, 182, 73, 73, 36, 73, 146, 255, 182, 182, 146, 73, 36, 73, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  398. 73, 73, 73, 73, 73, 73, 36, 36, 36, 36, 36, 73, 219, 146, 182, 146, 182, 182, 146, 109, 109, 36, 73, 73, 146, 255, 146, 182, 146, 146, 182, 146, 146, 109, 146, 182, 146, 146, 146, 73, 73, 36, 73, 146, 255, 146, 182, 146, 73, 36, 73, 73, 36, 36, 36, 36, 36, 36, 36, 36, 36, 73, 73, 73,
  399. 36, 36, 36, 36, 36, 36, 36, 73, 36, 73, 73, 73, 219, 182, 146, 146, 182, 146, 182, 109, 109, 36, 73, 73, 146, 255, 146, 146, 182, 146, 146, 109, 146, 109, 146, 146, 146, 182, 146, 73, 73, 36, 73, 146, 255, 182, 182, 146, 73, 36, 73, 73, 73, 73, 73, 73, 73, 73, 36, 73, 36, 36, 36, 36,
  400. 73, 109, 109, 109, 146, 146, 146, 146, 146, 146, 73, 36, 219, 182, 109, 146, 146, 182, 146, 146, 109, 73, 36, 73, 146, 255, 182, 146, 146, 146, 109, 146, 109, 146, 182, 109, 146, 146, 182, 73, 73, 36, 73, 146, 255, 146, 182, 182, 73, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  401. 109, 146, 182, 219, 218, 219, 218, 218, 182, 182, 109, 36, 219, 182, 182, 146, 109, 146, 182, 146, 109, 73, 36, 73, 146, 219, 182, 146, 146, 182, 146, 182, 109, 109, 146, 109, 146, 182, 146, 73, 73, 36, 73, 146, 218, 146, 146, 182, 73, 36, 73, 182, 219, 218, 182, 146, 109, 73, 73, 73, 73, 73, 73, 73,
  402. 109, 182, 218, 182, 182, 182, 182, 182, 146, 182, 73, 36, 255, 146, 146, 182, 109, 146, 182, 146, 109, 73, 36, 73, 109, 218, 182, 182, 146, 146, 109, 146, 109, 109, 182, 146, 182, 146, 146, 73, 73, 36, 73, 146, 219, 182, 146, 146, 73, 36, 73, 219, 146, 146, 182, 219, 219, 218, 219, 219, 219, 146, 73, 73,
  403. 109, 219, 182, 182, 182, 146, 182, 146, 182, 146, 109, 36, 255, 146, 182, 146, 182, 182, 146, 182, 109, 73, 36, 73, 73, 182, 219, 182, 182, 146, 146, 182, 146, 182, 109, 109, 146, 182, 109, 73, 73, 36, 73, 146, 218, 146, 182, 146, 73, 36, 73, 219, 146, 146, 182, 182, 146, 146, 182, 146, 146, 146, 73, 73,
  404. 109, 218, 182, 146, 146, 182, 146, 182, 146, 182, 109, 36, 255, 146, 146, 146, 182, 146, 182, 146, 109, 73, 36, 36, 73, 182, 255, 182, 182, 146, 146, 146, 109, 146, 109, 109, 182, 146, 109, 73, 73, 36, 73, 146, 218, 182, 182, 146, 73, 36, 73, 219, 182, 182, 146, 146, 182, 182, 146, 182, 146, 109, 73, 73,
  405. 109, 219, 182, 146, 182, 146, 182, 182, 109, 182, 73, 36, 219, 182, 182, 182, 146, 146, 146, 182, 109, 73, 36, 73, 73, 146, 255, 182, 182, 146, 182, 146, 146, 146, 146, 182, 146, 182, 109, 73, 36, 73, 73, 146, 218, 146, 146, 182, 73, 36, 73, 182, 182, 146, 182, 182, 146, 146, 182, 146, 182, 109, 73, 73,
  406. 109, 219, 182, 182, 146, 146, 146, 146, 182, 146, 73, 36, 219, 182, 109, 146, 109, 182, 182, 146, 109, 73, 36, 36, 73, 109, 218, 182, 182, 146, 109, 146, 146, 146, 146, 146, 146, 146, 109, 73, 36, 36, 73, 146, 218, 146, 182, 73, 73, 36, 73, 182, 182, 146, 182, 146, 182, 146, 146, 182, 146, 73, 73, 73,
  407. 109, 218, 182, 146, 182, 182, 146, 182, 146, 182, 73, 36, 182, 219, 146, 146, 182, 146, 146, 146, 109, 73, 36, 36, 73, 73, 182, 219, 182, 146, 182, 146, 182, 146, 182, 146, 146, 109, 73, 73, 36, 73, 73, 109, 182, 109, 73, 73, 73, 73, 73, 182, 182, 146, 182, 146, 146, 182, 146, 146, 182, 73, 73, 73,
  408. 109, 219, 182, 182, 146, 146, 182, 146, 182, 146, 73, 36, 182, 219, 109, 182, 146, 146, 146, 182, 109, 73, 36, 36, 73, 73, 146, 182, 182, 146, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 36, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  409. 109, 219, 182, 146, 182, 182, 146, 182, 109, 182, 73, 36, 146, 218, 146, 109, 182, 182, 146, 146, 109, 73, 36, 36, 73, 73, 73, 146, 146, 109, 73, 73, 73, 36, 36, 36, 36, 36, 36, 36, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 73,
  410. 109, 218, 182, 146, 146, 146, 182, 146, 182, 146, 73, 36, 109, 219, 182, 146, 182, 146, 146, 182, 109, 73, 36, 36, 36, 73, 73, 73, 36, 73, 36, 36, 36, 36, 73, 36, 73, 36, 36, 73, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  411. 109, 219, 182, 182, 182, 146, 146, 182, 146, 182, 73, 36, 73, 255, 146, 146, 146, 146, 182, 146, 109, 73, 36, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 73, 73,
  412. 109, 219, 182, 146, 146, 182, 146, 182, 146, 109, 73, 36, 73, 255, 182, 146, 146, 109, 146, 182, 109, 73, 36, 36, 36, 73, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 146, 146, 146, 146, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 109, 73, 73,
  413. 109, 182, 182, 182, 182, 146, 182, 146, 182, 73, 36, 36, 73, 255, 146, 146, 182, 146, 146, 146, 109, 73, 73, 36, 36, 73, 109, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 218, 219, 219, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 218, 219, 218, 218, 146, 109, 36, 73,
  414. 109, 218, 182, 146, 182, 146, 182, 182, 146, 73, 36, 73, 73, 255, 146, 182, 109, 146, 146, 182, 109, 73, 73, 36, 36, 36, 109, 182, 182, 255, 255, 255, 255, 255, 219, 219, 255, 255, 219, 255, 255, 255, 255, 255, 219, 219, 218, 218, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 109, 73, 36, 73,
  415. 109, 182, 182, 182, 146, 182, 146, 146, 146, 73, 36, 73, 73, 219, 182, 182, 146, 182, 146, 146, 109, 73, 73, 36, 36, 36, 109, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 146, 146, 146, 146, 182, 146, 182, 146, 146, 146, 182, 146, 182, 146, 182, 109, 73, 73, 73,
  416. 73, 182, 146, 146, 182, 146, 109, 109, 109, 73, 36, 73, 73, 218, 146, 146, 182, 146, 182, 146, 109, 73, 73, 36, 36, 36, 109, 182, 219, 182, 146, 146, 146, 146, 146, 146, 182, 146, 182, 182, 146, 146, 146, 182, 182, 182, 146, 109, 146, 146, 182, 182, 146, 146, 182, 146, 182, 182, 146, 146, 109, 73, 36, 73,
  417. 73, 182, 182, 182, 146, 146, 73, 73, 73, 36, 36, 73, 73, 182, 182, 146, 146, 182, 146, 146, 109, 73, 73, 36, 36, 36, 73, 182, 219, 182, 146, 146, 146, 182, 146, 146, 146, 146, 182, 146, 146, 146, 182, 182, 146, 146, 146, 146, 146, 146, 109, 146, 146, 146, 146, 182, 146, 182, 146, 182, 109, 73, 73, 73,
  418. 73, 109, 109, 109, 73, 73, 73, 73, 73, 36, 73, 73, 73, 146, 146, 182, 146, 146, 146, 109, 109, 73, 73, 36, 36, 36, 36, 182, 219, 218, 182, 182, 146, 146, 146, 146, 109, 146, 146, 182, 146, 146, 146, 182, 146, 109, 146, 146, 182, 146, 146, 182, 146, 109, 109, 146, 109, 146, 146, 146, 109, 73, 36, 73,
  419. 73, 73, 36, 36, 36, 73, 73, 73, 73, 36, 73, 73, 73, 109, 109, 109, 109, 109, 109, 109, 73, 73, 73, 36, 36, 36, 73, 182, 218, 218, 146, 146, 182, 146, 182, 146, 146, 182, 146, 109, 109, 146, 146, 146, 182, 146, 182, 146, 146, 182, 146, 146, 109, 146, 146, 146, 182, 146, 109, 146, 109, 73, 36, 73,
  420. 73, 73, 73, 73, 73, 36, 36, 36, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 36, 36, 36, 36, 146, 218, 182, 182, 146, 146, 182, 146, 182, 109, 146, 146, 146, 109, 146, 146, 146, 109, 182, 146, 146, 109, 146, 146, 146, 146, 182, 146, 109, 146, 146, 146, 109, 109, 73, 36, 73,
  421. 73, 73, 73, 73, 73, 73, 73, 73, 36, 36, 73, 73, 73, 73, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 73, 146, 146, 109, 109, 109, 109, 109, 109, 109, 182, 146, 182, 182, 146, 146, 109, 146, 146, 146, 109, 146, 146, 182, 146, 182, 146, 146, 182, 146, 146, 146, 146, 146, 109, 73, 36, 73,
  422. 73, 109, 182, 182, 182, 182, 146, 146, 109, 73, 73, 73, 73, 73, 36, 36, 73, 36, 36, 73, 36, 36, 73, 36, 73, 36, 73, 73, 73, 73, 73, 36, 73, 36, 73, 36, 73, 109, 109, 109, 146, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 73, 36, 73,
  423. 73, 182, 182, 218, 219, 218, 219, 219, 182, 182, 182, 146, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 36, 73, 73,
  424. 73, 182, 218, 182, 182, 146, 182, 218, 219, 219, 219, 182, 182, 182, 182, 182, 182, 182, 182, 146, 146, 146, 146, 109, 109, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 73, 73,
  425. 73, 182, 219, 182, 182, 182, 182, 182, 146, 182, 182, 219, 219, 219, 218, 219, 218, 219, 218, 219, 219, 219, 219, 182, 218, 182, 182, 182, 182, 182, 182, 182, 146, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 36, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 36, 73, 73, 73, 73, 73,
  426. 73, 182, 219, 182, 146, 182, 109, 109, 182, 146, 146, 109, 182, 146, 182, 146, 182, 146, 182, 182, 146, 182, 146, 182, 182, 182, 182, 218, 219, 218, 218, 182, 146, 73, 73, 73, 73, 73, 73, 73, 73, 73, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  427. 73, 182, 182, 182, 182, 182, 146, 182, 146, 146, 146, 146, 182, 146, 146, 182, 109, 109, 146, 182, 109, 146, 146, 146, 182, 146, 182, 146, 182, 182, 182, 109, 109, 36, 73, 73, 73, 182, 218, 219, 146, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  428. 73, 182, 182, 182, 146, 182, 109, 109, 146, 182, 146, 182, 182, 146, 146, 109, 182, 109, 146, 109, 146, 146, 182, 146, 182, 146, 182, 146, 182, 182, 146, 109, 73, 36, 73, 73, 73, 219, 182, 182, 219, 219, 219, 218, 182, 73, 73, 73, 182, 219, 219, 218, 219, 219, 219, 218, 218, 182, 182, 146, 109, 73, 73, 73,
  429. 73, 182, 146, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 73, 73, 73, 36, 73, 73, 218, 182, 182, 182, 182, 182, 182, 182, 109, 73, 109, 219, 146, 182, 182, 146, 182, 146, 182, 146, 182, 146, 182, 218, 146, 36, 73,
  430. 73, 146, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 36, 36, 73, 182, 182, 182, 182, 146, 109, 146, 146, 109, 73, 182, 182, 146, 182, 146, 182, 182, 182, 146, 182, 146, 182, 146, 182, 73, 36, 73,
  431. 73, 73, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 73, 73, 73, 73, 73, 109, 109, 109, 109, 109, 73, 219, 146, 146, 146, 182, 182, 146, 146, 182, 146, 146, 182, 146, 146, 73, 36, 73,
  432. 73, 73, 73, 73, 73, 36, 73, 36, 36, 73, 36, 36, 73, 36, 36, 73, 36, 73, 36, 36, 73, 36, 36, 73, 36, 36, 73, 36, 36, 73, 36, 36, 73, 36, 73, 36, 73, 73, 73, 73, 73, 36, 36, 36, 36, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 36, 73,
  433. 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 73,
  434. 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  435. },
  436. // bluestone
  437. {
  438. 73, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 73, 73, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 73, 73, 1, 1, 1, 1, 1, 1, 1, 1, 1, 37,
  439. 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 36, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 36, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 36,
  440. 0, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0,
  441. 0, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 0, 36, 2, 2, 2, 2, 1, 2, 2, 2, 1, 0,
  442. 0, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 2, 2, 2, 2, 2, 2, 2, 1, 1, 0,
  443. 0, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 2, 2, 2, 2, 2, 1, 1, 1, 1, 0,
  444. 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 36, 2, 2, 2, 2, 2, 2, 1, 36, 36, 2, 2, 2, 2, 1, 2, 2, 1, 1, 0,
  445. 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 36, 2, 2, 2, 2, 2, 1, 1, 0, 36, 2, 2, 2, 2, 1, 2, 2, 2, 1, 0,
  446. 0, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 0, 36, 2, 2, 2, 2, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0,
  447. 0, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 1, 1, 1, 1, 0, 36, 2, 1, 1, 2, 2, 2, 2, 1, 1, 0,
  448. 0, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 0, 36, 2, 2, 2, 1, 2, 1, 1, 0, 36, 2, 1, 2, 2, 1, 2, 2, 1, 1, 0,
  449. 0, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 0, 36, 2, 1, 2, 2, 1, 1, 1, 0, 36, 2, 2, 1, 1, 1, 1, 1, 1, 1, 0,
  450. 0, 2, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 1, 1, 1, 0, 36, 2, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  451. 0, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 3, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 1, 1, 1, 0, 36, 2, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  452. 0, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 0, 36, 2, 1, 2, 2, 1, 1, 1, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  453. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 1, 1, 0, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
  454. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 1, 1, 0, 36, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2,
  455. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 0, 2, 2, 2, 2, 2, 1, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 1, 0, 2, 2, 2, 2, 2,
  456. 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 0, 2, 2, 2, 2, 2, 1, 1, 0, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 1, 0, 2, 2, 2, 2, 2,
  457. 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 0, 2, 2, 2, 2, 2, 2, 1, 0, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 1, 1, 0, 2, 2, 2, 2, 2,
  458. 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 0, 2, 2, 2, 1, 2, 2, 1, 0, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 1, 1, 1, 1, 1, 1, 0, 36, 2, 1, 1, 1, 0, 2, 2, 2, 2, 2,
  459. 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 0, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 2, 2, 2, 2, 2,
  460. 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 0, 2, 2, 2, 1, 1, 1, 1, 0, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 2, 2, 2, 2, 2, 2, 2, 2, 36, 36, 2, 2, 2, 2, 2,
  461. 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 0, 2, 2, 2, 2, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 36, 36, 2, 2, 2, 2, 2, 2, 2, 2, 0, 36, 2, 2, 2, 2, 2,
  462. 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 0, 2, 2, 1, 2, 2, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 0, 36, 2, 2, 2, 2, 2,
  463. 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 0, 2, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 3, 3, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 1, 0, 36, 2, 2, 2, 2, 2,
  464. 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 0, 2, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 3, 2, 3, 2, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 1, 0, 36, 2, 2, 2, 2, 2,
  465. 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 1, 0, 36, 2, 2, 2, 2, 2,
  466. 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 0, 36, 36, 36, 36, 36, 36, 36, 36, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 1, 1, 0, 36, 2, 2, 2, 2, 2,
  467. 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 36, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 1, 0, 36, 2, 2, 2, 2, 2,
  468. 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 1, 0, 36, 2, 2, 2, 2, 1,
  469. 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 1, 0, 36, 2, 2, 2, 2, 2,
  470. 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 1, 1, 0, 36, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 1, 0, 36, 2, 2, 2, 1, 1,
  471. 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 1, 0, 36, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 1, 0, 36, 2, 2, 1, 1, 1,
  472. 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 1, 1, 1, 0, 36, 2, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2,
  473. 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 1, 1, 0, 36, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 1, 2, 1, 1, 0, 36, 2, 2, 2, 2, 2,
  474. 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 1, 2, 1, 0, 36, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 1, 2, 2, 1, 1, 0, 36, 2, 2, 2, 2, 1,
  475. 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 1, 1, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 2, 2, 2, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 1,
  476. 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 1, 0, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 2, 2, 2, 2, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 1,
  477. 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 36, 36, 2, 2, 2, 2, 2, 1, 1, 1, 0, 36, 2, 2, 2, 1, 2,
  478. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 2, 2, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 0, 36, 2, 2, 2, 2, 2, 2, 1, 1, 0, 36, 0, 0, 0, 0, 0,
  479. 36, 36, 36, 36, 36, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 36, 36, 2, 2, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 0, 36, 2, 2, 2, 2, 2, 2, 1, 1, 0, 36, 2, 2, 2, 2, 0,
  480. 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 36, 36, 2, 2, 2, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 0, 36, 2, 2, 2, 1, 1, 1, 1, 1, 0, 36, 2, 2, 1, 1, 0,
  481. 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 36, 2, 2, 2, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 0, 36, 2, 2, 2, 1, 1, 1, 1, 1, 0, 36, 2, 1, 1, 1, 0,
  482. 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 36, 2, 2, 2, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 0, 36, 2, 2, 1, 1, 1, 1, 1, 1, 0, 36, 2, 1, 1, 1, 0,
  483. 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 36, 0, 0, 0, 0, 0, 0, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 1, 1, 1, 0,
  484. 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 36, 36, 36, 36, 36, 36, 36, 36, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 2, 1, 1, 1, 0,
  485. 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 36, 2, 2, 2, 2, 2, 2, 36, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 0, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 0,
  486. 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 0, 36, 2, 1, 2, 2, 2, 2, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0,
  487. 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 0, 36, 2, 2, 2, 2, 2, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0,
  488. 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 0, 36, 2, 2, 1, 2, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0,
  489. 36, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 1, 1, 2, 2, 0, 36, 2, 2, 2, 2, 1, 2, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 0,
  490. 36, 2, 2, 2, 2, 3, 75, 3, 2, 2, 2, 2, 2, 1, 2, 0, 36, 2, 2, 2, 1, 2, 1, 0, 36, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 0,
  491. 36, 2, 2, 2, 2, 2, 3, 2, 2, 1, 2, 2, 1, 1, 1, 0, 36, 2, 2, 2, 2, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 0,
  492. 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 1, 0, 36, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 0,
  493. 36, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 0,
  494. 36, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 0, 36, 2, 2, 2, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 0,
  495. 36, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 0, 36, 2, 2, 2, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 0,
  496. 36, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 0, 36, 2, 2, 2, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 0,
  497. 36, 2, 2, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 1, 1, 0, 36, 2, 2, 1, 1, 1, 1, 0, 36, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 0,
  498. 36, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 36, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  499. 36, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 36, 36, 2, 2, 1, 1, 1, 1, 36, 36, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 36, 36, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  500. 73, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 73, 73, 2, 2, 1, 1, 1, 1, 73, 73, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 73, 73, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 36,
  501. 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  502. },
  503. // mossy
  504. {
  505. 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
  506. 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 219, 212, 212, 212, 212, 212, 219, 219, 219, 219, 219, 219, 180, 180, 180, 219, 36, 73, 146, 182, 219, 219, 219, 219, 219, 212, 212, 212, 109, 146, 146, 73, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  507. 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 219, 218, 180, 180, 180, 180, 146, 182, 212, 212, 218, 182, 182, 212, 212, 146, 36, 73, 146, 182, 182, 146, 212, 109, 212, 144, 144, 144, 108, 73, 73, 73, 36, 73, 109, 144, 144, 144, 144, 109, 109, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  508. 146, 146, 146, 146, 146, 146, 146, 146, 36, 73, 73, 219, 218, 180, 180, 180, 108, 146, 212, 212, 144, 182, 182, 182, 144, 180, 109, 36, 73, 182, 219, 182, 146, 109, 212, 109, 108, 144, 108, 73, 109, 73, 73, 36, 73, 144, 212, 216, 144, 108, 146, 182, 182, 212, 212, 212, 109, 109, 212, 212, 146, 146, 146, 146,
  509. 218, 182, 180, 182, 182, 182, 146, 146, 36, 73, 73, 219, 218, 144, 144, 144, 108, 146, 212, 144, 182, 182, 146, 146, 146, 144, 73, 36, 73, 146, 182, 146, 146, 146, 182, 182, 109, 144, 108, 73, 109, 73, 73, 36, 73, 144, 216, 180, 108, 109, 109, 182, 219, 212, 216, 216, 73, 109, 212, 212, 144, 109, 218, 218,
  510. 182, 182, 180, 180, 73, 109, 109, 109, 36, 73, 73, 219, 182, 144, 144, 108, 109, 109, 146, 182, 146, 144, 146, 109, 146, 144, 73, 36, 73, 73, 182, 212, 144, 182, 146, 146, 109, 72, 73, 109, 73, 73, 73, 36, 73, 144, 216, 108, 109, 146, 182, 216, 212, 109, 144, 144, 73, 109, 144, 144, 108, 73, 146, 146,
  511. 182, 146, 108, 73, 146, 146, 146, 109, 36, 73, 73, 219, 218, 144, 108, 108, 109, 182, 146, 146, 146, 144, 146, 146, 109, 146, 73, 36, 73, 73, 109, 144, 144, 180, 146, 182, 182, 109, 109, 109, 73, 73, 73, 36, 73, 144, 144, 108, 109, 109, 212, 212, 212, 109, 108, 144, 73, 109, 109, 73, 73, 109, 180, 109,
  512. 182, 182, 109, 146, 182, 146, 109, 73, 36, 73, 73, 219, 218, 146, 109, 109, 146, 182, 146, 218, 109, 144, 146, 182, 146, 146, 73, 36, 73, 73, 109, 146, 182, 146, 182, 146, 146, 146, 182, 109, 73, 73, 73, 37, 73, 144, 108, 109, 146, 146, 109, 212, 109, 109, 108, 108, 73, 109, 109, 146, 109, 109, 144, 109,
  513. 146, 182, 182, 109, 109, 146, 73, 73, 36, 37, 73, 219, 182, 182, 146, 109, 146, 212, 146, 146, 146, 146, 146, 146, 182, 146, 73, 36, 36, 73, 73, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 36, 73, 73, 109, 109, 146, 109, 182, 182, 109, 146, 182, 109, 73, 109, 146, 146, 146, 146, 182, 109, 109,
  514. 146, 146, 146, 146, 109, 73, 73, 73, 36, 37, 73, 219, 219, 182, 109, 146, 109, 212, 180, 109, 146, 146, 146, 182, 146, 146, 73, 37, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 36, 36, 73, 73, 73, 109, 182, 182, 146, 144, 109, 146, 109, 109, 146, 109, 109, 146, 146, 146, 146, 146, 182, 146,
  515. 109, 109, 109, 109, 73, 73, 73, 73, 36, 37, 73, 219, 219, 146, 109, 146, 146, 212, 144, 109, 182, 146, 182, 146, 182, 146, 73, 37, 36, 73, 73, 73, 37, 37, 36, 36, 36, 36, 36, 37, 37, 73, 73, 73, 73, 109, 182, 109, 144, 73, 146, 182, 216, 109, 146, 109, 146, 109, 146, 109, 109, 146, 109, 109,
  516. 73, 73, 73, 73, 73, 36, 36, 36, 36, 37, 73, 182, 219, 182, 146, 109, 212, 180, 144, 109, 146, 146, 146, 109, 146, 109, 109, 73, 36, 73, 73, 73, 73, 73, 109, 182, 182, 182, 182, 219, 219, 108, 73, 73, 73, 109, 182, 146, 109, 109, 109, 109, 144, 73, 73, 73, 109, 73, 73, 73, 73, 73, 73, 73,
  517. 36, 36, 36, 36, 36, 37, 37, 37, 37, 73, 73, 146, 219, 218, 146, 109, 146, 144, 109, 146, 146, 182, 109, 146, 144, 146, 73, 73, 36, 73, 73, 109, 182, 252, 252, 219, 219, 219, 218, 218, 219, 212, 108, 73, 73, 73, 146, 109, 109, 109, 73, 73, 72, 73, 73, 73, 73, 73, 73, 37, 37, 37, 37, 37,
  518. 37, 37, 37, 37, 37, 37, 37, 37, 37, 73, 73, 109, 182, 218, 146, 182, 146, 146, 146, 182, 146, 146, 146, 146, 109, 109, 73, 73, 36, 37, 73, 182, 252, 212, 144, 146, 146, 182, 146, 182, 144, 109, 72, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 37, 36, 36, 36, 36, 36, 36, 36,
  519. 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 146, 218, 182, 146, 182, 146, 109, 146, 146, 109, 146, 182, 144, 73, 73, 73, 36, 37, 73, 182, 212, 144, 109, 182, 146, 216, 216, 146, 144, 73, 108, 73, 73, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  520. 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 182, 146, 182, 146, 212, 144, 109, 182, 146, 182, 146, 108, 73, 109, 73, 36, 37, 73, 182, 216, 144, 109, 146, 212, 216, 109, 146, 144, 73, 72, 73, 73, 73, 73, 73, 73, 73, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  521. 146, 146, 146, 146, 146, 146, 146, 146, 146, 37, 36, 73, 73, 182, 182, 144, 146, 144, 144, 182, 109, 146, 146, 146, 109, 109, 73, 73, 36, 36, 73, 216, 216, 109, 109, 182, 216, 216, 109, 146, 108, 73, 73, 73, 73, 216, 180, 180, 109, 73, 73, 73, 109, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
  522. 218, 212, 180, 219, 219, 212, 144, 109, 109, 73, 36, 73, 73, 146, 182, 108, 109, 146, 109, 146, 109, 109, 182, 146, 109, 146, 109, 73, 36, 36, 73, 216, 109, 146, 109, 146, 144, 108, 109, 182, 146, 73, 73, 73, 73, 180, 180, 144, 109, 37, 73, 109, 182, 212, 212, 212, 219, 180, 182, 182, 212, 212, 212, 219,
  523. 212, 180, 144, 180, 180, 144, 108, 73, 109, 73, 36, 73, 73, 109, 146, 109, 109, 146, 146, 109, 146, 73, 146, 109, 73, 109, 73, 73, 36, 36, 73, 109, 146, 109, 146, 216, 109, 109, 109, 73, 73, 73, 73, 36, 73, 144, 144, 73, 109, 36, 73, 146, 212, 212, 212, 109, 216, 144, 109, 182, 212, 144, 144, 109,
  524. 180, 144, 182, 180, 144, 144, 108, 73, 109, 73, 36, 73, 73, 73, 146, 146, 109, 146, 109, 109, 109, 109, 109, 73, 109, 73, 73, 37, 36, 36, 37, 182, 146, 109, 146, 109, 73, 73, 73, 73, 73, 73, 73, 36, 109, 144, 144, 109, 73, 36, 73, 146, 212, 212, 109, 146, 144, 144, 109, 146, 212, 144, 144, 109,
  525. 144, 182, 146, 180, 144, 108, 108, 73, 73, 73, 36, 73, 73, 73, 109, 73, 73, 73, 73, 73, 73, 73, 73, 37, 36, 36, 36, 36, 36, 36, 37, 146, 109, 73, 73, 73, 36, 36, 36, 36, 36, 36, 36, 36, 109, 146, 144, 146, 73, 36, 73, 146, 182, 109, 146, 146, 144, 109, 109, 182, 212, 144, 144, 146,
  526. 182, 146, 182, 180, 108, 73, 73, 146, 73, 73, 36, 73, 73, 73, 37, 37, 37, 37, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 37, 73, 73, 73, 36, 36, 36, 36, 37, 37, 37, 37, 37, 37, 146, 182, 146, 182, 73, 36, 73, 146, 182, 146, 182, 146, 182, 109, 182, 109, 182, 144, 108, 109,
  527. 146, 182, 109, 109, 73, 109, 146, 109, 73, 73, 36, 73, 73, 73, 73, 73, 36, 36, 36, 36, 36, 36, 36, 36, 73, 73, 73, 73, 73, 73, 73, 146, 146, 146, 144, 144, 144, 144, 144, 109, 73, 37, 73, 109, 182, 219, 182, 182, 109, 36, 73, 146, 146, 182, 216, 146, 146, 182, 146, 182, 182, 109, 109, 146,
  528. 146, 212, 144, 109, 146, 146, 146, 109, 73, 73, 36, 73, 146, 212, 212, 180, 144, 146, 182, 182, 182, 109, 73, 73, 109, 144, 212, 212, 212, 180, 218, 219, 219, 219, 212, 212, 212, 212, 180, 144, 144, 36, 73, 109, 219, 182, 219, 182, 109, 36, 73, 109, 146, 182, 146, 146, 182, 146, 216, 146, 109, 182, 146, 182,
  529. 146, 144, 144, 182, 146, 146, 146, 109, 73, 73, 36, 73, 212, 180, 180, 144, 109, 109, 109, 109, 109, 73, 73, 73, 144, 212, 180, 109, 146, 182, 182, 146, 182, 146, 144, 109, 144, 144, 144, 144, 108, 36, 73, 146, 219, 182, 182, 182, 216, 36, 73, 216, 182, 146, 182, 146, 216, 216, 109, 182, 146, 146, 182, 146,
  530. 146, 144, 146, 146, 146, 146, 109, 73, 73, 73, 36, 73, 180, 144, 144, 109, 109, 109, 109, 109, 109, 36, 73, 73, 146, 219, 146, 146, 144, 146, 212, 182, 146, 146, 109, 182, 144, 109, 144, 108, 72, 36, 73, 146, 216, 146, 146, 182, 144, 36, 73, 144, 72, 109, 109, 216, 180, 144, 108, 72, 109, 109, 73, 109,
  531. 109, 109, 109, 109, 109, 73, 73, 73, 73, 73, 36, 73, 180, 144, 109, 109, 146, 144, 144, 108, 109, 36, 73, 73, 146, 219, 216, 182, 146, 212, 144, 146, 212, 212, 182, 146, 144, 182, 144, 109, 72, 36, 73, 146, 180, 109, 146, 182, 108, 36, 73, 72, 73, 73, 73, 72, 72, 72, 72, 73, 73, 73, 73, 73,
  532. 73, 73, 73, 73, 73, 73, 36, 36, 36, 36, 37, 73, 180, 144, 109, 146, 146, 109, 144, 108, 109, 36, 73, 73, 146, 219, 212, 182, 212, 144, 109, 146, 212, 144, 146, 182, 146, 146, 109, 109, 72, 36, 73, 146, 109, 146, 182, 219, 72, 36, 73, 37, 37, 36, 36, 36, 36, 36, 36, 36, 36, 73, 73, 73,
  533. 36, 36, 36, 36, 36, 36, 37, 37, 37, 73, 73, 73, 219, 109, 146, 182, 144, 146, 144, 108, 109, 36, 73, 73, 146, 219, 180, 146, 212, 108, 109, 182, 146, 182, 146, 109, 180, 144, 109, 109, 72, 36, 73, 216, 219, 182, 219, 182, 73, 36, 73, 73, 73, 73, 73, 37, 37, 37, 36, 36, 36, 36, 36, 36,
  534. 73, 109, 109, 109, 146, 146, 146, 146, 146, 146, 73, 36, 219, 146, 146, 182, 144, 146, 109, 109, 109, 72, 36, 73, 146, 219, 180, 182, 144, 108, 109, 146, 109, 146, 182, 146, 180, 144, 109, 73, 72, 36, 73, 180, 219, 182, 182, 182, 73, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  535. 109, 146, 182, 180, 180, 146, 182, 182, 182, 182, 109, 36, 219, 182, 218, 146, 108, 182, 146, 109, 109, 72, 36, 73, 146, 219, 182, 212, 144, 108, 109, 146, 182, 182, 146, 182, 180, 144, 146, 73, 72, 36, 108, 144, 219, 182, 182, 180, 73, 36, 73, 108, 144, 144, 144, 180, 180, 144, 144, 73, 73, 73, 73, 73,
  536. 109, 182, 180, 180, 144, 109, 182, 182, 182, 182, 73, 36, 219, 182, 146, 182, 109, 146, 109, 146, 109, 72, 36, 73, 109, 146, 212, 144, 108, 109, 109, 182, 146, 146, 109, 146, 180, 144, 109, 73, 72, 36, 73, 144, 219, 219, 180, 144, 73, 36, 73, 109, 144, 108, 144, 144, 144, 180, 180, 180, 144, 146, 73, 73,
  537. 109, 180, 144, 144, 109, 146, 182, 180, 180, 109, 109, 36, 219, 218, 182, 146, 182, 144, 146, 182, 109, 72, 36, 73, 73, 146, 144, 108, 109, 109, 146, 146, 182, 109, 146, 109, 180, 144, 109, 73, 73, 36, 73, 144, 219, 182, 180, 108, 73, 36, 73, 146, 109, 109, 144, 144, 144, 144, 108, 108, 108, 109, 73, 73,
  538. 109, 180, 144, 109, 109, 182, 109, 180, 144, 109, 109, 36, 219, 146, 146, 146, 182, 146, 146, 109, 109, 72, 36, 37, 73, 182, 219, 182, 212, 212, 144, 146, 109, 109, 109, 109, 180, 144, 109, 73, 37, 36, 108, 146, 218, 182, 180, 72, 73, 36, 73, 219, 182, 182, 144, 108, 109, 109, 72, 109, 109, 109, 73, 73,
  539. 109, 109, 146, 182, 146, 109, 146, 180, 108, 109, 73, 36, 219, 182, 182, 182, 146, 182, 182, 109, 109, 72, 36, 37, 73, 146, 219, 182, 212, 144, 108, 109, 146, 146, 146, 182, 144, 144, 109, 73, 36, 36, 144, 146, 218, 182, 144, 108, 72, 36, 73, 218, 182, 146, 144, 108, 146, 109, 146, 109, 146, 109, 73, 73,
  540. 109, 182, 182, 146, 182, 182, 180, 144, 108, 109, 73, 36, 219, 182, 109, 146, 212, 180, 109, 146, 109, 72, 36, 36, 73, 109, 218, 182, 144, 108, 109, 109, 146, 182, 146, 180, 144, 109, 109, 73, 36, 36, 73, 146, 218, 146, 108, 72, 72, 36, 73, 182, 182, 182, 144, 108, 109, 146, 146, 146, 182, 73, 73, 73,
  541. 109, 219, 146, 182, 146, 146, 144, 108, 108, 109, 73, 36, 182, 219, 146, 146, 180, 144, 146, 182, 109, 72, 72, 36, 73, 73, 182, 219, 108, 109, 109, 146, 182, 146, 144, 109, 109, 109, 109, 73, 36, 73, 73, 109, 182, 109, 108, 72, 72, 73, 73, 182, 182, 146, 144, 144, 109, 146, 109, 109, 146, 73, 73, 73,
  542. 109, 219, 182, 182, 146, 146, 108, 108, 109, 109, 73, 36, 182, 219, 109, 182, 146, 146, 146, 146, 109, 72, 72, 36, 73, 73, 146, 182, 146, 109, 109, 109, 109, 109, 109, 109, 109, 109, 73, 73, 36, 73, 73, 73, 73, 73, 72, 72, 73, 73, 73, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  543. 109, 219, 182, 146, 180, 144, 146, 109, 146, 146, 73, 36, 146, 219, 182, 109, 182, 182, 109, 146, 109, 73, 72, 36, 73, 73, 73, 146, 146, 109, 109, 73, 73, 73, 36, 72, 73, 73, 73, 36, 36, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 73,
  544. 109, 219, 182, 182, 146, 146, 146, 180, 144, 109, 73, 36, 109, 219, 146, 146, 182, 146, 109, 146, 109, 73, 72, 36, 37, 73, 73, 73, 37, 37, 37, 36, 36, 37, 37, 37, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  545. 109, 219, 180, 180, 146, 146, 180, 144, 144, 109, 73, 36, 73, 219, 182, 182, 146, 146, 146, 182, 109, 73, 72, 36, 37, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 144, 144, 144, 144, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 73, 73,
  546. 109, 180, 180, 144, 182, 146, 144, 108, 108, 109, 73, 36, 73, 219, 146, 146, 144, 109, 146, 109, 109, 73, 72, 36, 37, 73, 109, 144, 144, 144, 144, 144, 144, 144, 144, 109, 109, 146, 146, 146, 182, 182, 182, 182, 182, 182, 182, 212, 212, 212, 180, 144, 182, 182, 216, 180, 182, 212, 180, 144, 182, 109, 73, 73,
  547. 109, 180, 144, 109, 146, 146, 146, 108, 108, 109, 36, 37, 73, 219, 182, 146, 144, 109, 182, 146, 109, 73, 72, 36, 36, 73, 108, 212, 212, 212, 212, 212, 212, 212, 212, 144, 182, 182, 182, 182, 146, 182, 182, 182, 182, 182, 212, 180, 144, 144, 144, 182, 182, 216, 180, 182, 182, 180, 180, 180, 144, 109, 37, 73,
  548. 109, 180, 144, 109, 182, 146, 146, 146, 146, 73, 36, 37, 73, 219, 146, 182, 109, 109, 146, 146, 109, 73, 72, 36, 36, 73, 108, 212, 180, 180, 180, 180, 180, 180, 180, 144, 182, 182, 182, 182, 182, 212, 144, 146, 182, 146, 180, 144, 182, 146, 212, 212, 180, 109, 146, 182, 180, 144, 180, 144, 109, 73, 37, 73,
  549. 109, 180, 144, 146, 146, 182, 146, 182, 146, 73, 36, 73, 73, 219, 182, 182, 182, 182, 146, 182, 109, 73, 72, 36, 36, 73, 37, 180, 180, 144, 144, 144, 144, 144, 144, 144, 108, 146, 182, 182, 182, 144, 144, 182, 182, 146, 182, 146, 182, 212, 180, 180, 109, 146, 146, 182, 109, 109, 180, 109, 109, 73, 37, 73,
  550. 73, 144, 109, 146, 182, 146, 182, 146, 109, 73, 36, 73, 73, 218, 146, 146, 182, 146, 146, 146, 109, 73, 73, 36, 36, 73, 37, 146, 146, 146, 144, 144, 144, 144, 144, 108, 108, 109, 182, 182, 182, 146, 109, 146, 182, 146, 146, 182, 212, 109, 109, 109, 146, 182, 182, 146, 146, 146, 180, 109, 109, 73, 37, 73,
  551. 73, 146, 146, 146, 146, 109, 109, 73, 73, 36, 37, 73, 73, 182, 182, 146, 146, 182, 146, 109, 109, 73, 73, 36, 36, 73, 37, 182, 219, 182, 144, 108, 108, 108, 108, 109, 109, 146, 182, 182, 146, 182, 146, 146, 146, 212, 212, 146, 146, 109, 109, 146, 146, 216, 180, 182, 182, 146, 180, 109, 109, 73, 37, 73,
  552. 73, 109, 109, 109, 109, 73, 73, 73, 73, 36, 37, 73, 73, 146, 146, 182, 146, 146, 146, 109, 109, 73, 73, 36, 36, 73, 37, 182, 219, 218, 144, 109, 109, 109, 109, 109, 146, 146, 144, 182, 182, 182, 146, 182, 212, 182, 146, 146, 182, 146, 146, 146, 182, 180, 144, 182, 146, 146, 109, 109, 109, 73, 36, 73,
  553. 73, 73, 36, 73, 73, 73, 73, 73, 73, 36, 73, 73, 73, 109, 109, 109, 109, 109, 109, 109, 73, 73, 73, 36, 36, 73, 37, 182, 219, 218, 109, 109, 146, 146, 180, 180, 144, 182, 146, 146, 182, 146, 182, 182, 182, 146, 180, 182, 180, 182, 146, 182, 180, 144, 146, 182, 182, 146, 180, 180, 109, 73, 36, 73,
  554. 73, 73, 73, 37, 37, 36, 36, 37, 36, 37, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 36, 36, 37, 37, 146, 218, 182, 146, 182, 146, 182, 180, 180, 108, 146, 182, 146, 182, 146, 146, 146, 216, 180, 108, 146, 182, 182, 146, 182, 146, 146, 182, 146, 146, 146, 182, 109, 109, 73, 36, 73,
  555. 73, 73, 73, 73, 73, 73, 37, 37, 37, 37, 73, 73, 73, 73, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 37, 146, 146, 109, 109, 109, 109, 109, 144, 108, 108, 146, 182, 109, 109, 146, 182, 216, 180, 108, 182, 146, 182, 146, 146, 146, 182, 109, 146, 146, 212, 146, 146, 146, 109, 73, 36, 73,
  556. 73, 109, 182, 212, 212, 212, 144, 146, 109, 73, 73, 73, 73, 73, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 73, 73, 73, 73, 37, 37, 37, 37, 37, 37, 73, 109, 109, 109, 146, 180, 182, 108, 108, 109, 109, 109, 109, 109, 146, 146, 146, 109, 109, 182, 109, 109, 109, 109, 109, 73, 36, 73,
  557. 73, 182, 212, 216, 212, 212, 212, 212, 180, 144, 182, 146, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 36, 37, 73,
  558. 73, 182, 212, 216, 180, 146, 146, 146, 146, 182, 182, 180, 216, 216, 212, 212, 212, 180, 180, 180, 180, 180, 144, 109, 109, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 37, 37, 37, 37, 36, 36, 37, 37, 37, 37, 37, 37, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 37, 73, 73,
  559. 73, 182, 182, 146, 180, 146, 182, 182, 182, 182, 182, 182, 182, 146, 146, 144, 144, 144, 144, 144, 144, 144, 144, 144, 146, 146, 182, 182, 182, 182, 182, 182, 146, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 73, 73, 73, 73,
  560. 73, 182, 182, 182, 146, 182, 182, 182, 182, 146, 182, 182, 182, 182, 182, 182, 146, 146, 146, 146, 146, 144, 144, 144, 146, 146, 182, 219, 216, 216, 146, 182, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  561. 73, 182, 182, 218, 182, 182, 182, 216, 180, 144, 182, 182, 218, 182, 218, 182, 182, 212, 144, 146, 146, 146, 146, 146, 146, 182, 182, 146, 216, 144, 146, 109, 109, 36, 73, 73, 73, 144, 180, 180, 180, 109, 73, 73, 73, 73, 73, 73, 108, 180, 144, 144, 108, 108, 72, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  562. 73, 182, 182, 182, 182, 146, 109, 180, 144, 72, 182, 182, 182, 218, 182, 182, 182, 218, 182, 182, 182, 182, 182, 218, 182, 109, 182, 218, 182, 146, 146, 109, 73, 36, 73, 73, 73, 180, 144, 144, 144, 109, 219, 219, 182, 73, 73, 144, 212, 212, 212, 144, 109, 212, 182, 182, 218, 212, 182, 146, 109, 73, 73, 73,
  563. 73, 182, 146, 109, 109, 109, 109, 144, 72, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 146, 182, 146, 109, 109, 109, 109, 109, 109, 109, 73, 73, 73, 36, 73, 73, 109, 144, 144, 108, 109, 182, 182, 182, 109, 73, 146, 109, 109, 109, 109, 109, 182, 182, 146, 212, 144, 109, 182, 219, 146, 36, 73,
  564. 73, 146, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 36, 37, 73, 182, 144, 108, 109, 146, 109, 146, 146, 109, 73, 146, 146, 182, 146, 182, 212, 212, 182, 182, 144, 144, 109, 146, 182, 73, 36, 73,
  565. 73, 73, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 37, 73, 73, 72, 72, 73, 109, 109, 109, 109, 109, 73, 109, 109, 146, 182, 212, 212, 144, 109, 182, 144, 109, 109, 146, 146, 73, 36, 73,
  566. 73, 73, 73, 73, 73, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 73, 73, 72, 72, 73, 36, 36, 36, 36, 36, 73, 73, 73, 73, 108, 72, 73, 73, 73, 108, 72, 73, 73, 73, 73, 73, 36, 73,
  567. 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 73,
  568. 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  569. },
  570. // wood
  571. {
  572. 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
  573. 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104,
  574. 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
  575. 72, 72, 72, 72, 72, 72, 72, 68, 72, 36, 68, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 68, 72, 36, 68, 72, 72, 72, 72, 68, 72, 36, 68, 72, 72, 72, 72, 72, 72, 68, 72, 36, 68, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 68, 72, 36, 68, 72, 72,
  576. 72, 72, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 104, 72, 72, 72, 72, 104, 104, 72, 104, 72, 104, 72, 72, 72, 141, 36, 72, 141, 104, 72, 104, 72, 141, 36, 72, 141, 104, 72, 72, 72, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 104, 72, 104, 104, 72, 141, 36, 72, 141, 104,
  577. 72, 72, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 104, 72, 72, 72, 72, 104, 104, 72, 104, 72, 104, 72, 72, 72, 141, 36, 72, 141, 104, 72, 104, 72, 141, 36, 72, 141, 104, 104, 72, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 104, 72, 104, 104, 72, 141, 36, 72, 141, 104,
  578. 72, 72, 104, 104, 104, 104, 72, 72, 141, 36, 72, 141, 104, 72, 72, 72, 72, 104, 104, 72, 104, 72, 104, 72, 72, 72, 141, 36, 72, 141, 104, 72, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 104, 72, 104, 104, 72, 141, 36, 72, 141, 104,
  579. 72, 72, 72, 104, 104, 104, 72, 72, 141, 36, 72, 141, 104, 72, 72, 72, 104, 104, 104, 72, 104, 72, 104, 72, 72, 72, 141, 36, 72, 141, 104, 72, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 104, 72, 104, 104, 72, 141, 36, 72, 141, 104,
  580. 104, 72, 72, 104, 104, 104, 72, 72, 141, 36, 72, 141, 104, 104, 72, 72, 104, 104, 104, 72, 104, 72, 104, 72, 72, 72, 141, 36, 72, 141, 104, 72, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 104, 72, 104, 104, 72, 141, 36, 72, 141, 72,
  581. 104, 72, 72, 72, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 72, 104, 104, 104, 104, 72, 104, 72, 104, 72, 72, 72, 141, 36, 72, 141, 104, 72, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 104, 72, 104, 104, 72, 141, 36, 72, 141, 72,
  582. 104, 72, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 104, 104, 72, 104, 72, 104, 72, 72, 72, 141, 36, 72, 141, 104, 72, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 104, 72, 104, 104, 72, 141, 36, 72, 141, 72,
  583. 104, 72, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 104, 72, 72, 104, 72, 104, 72, 72, 72, 141, 36, 72, 141, 72, 72, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 104, 72, 104, 104, 72, 141, 36, 72, 141, 72,
  584. 104, 104, 72, 72, 72, 72, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 104, 72, 72, 104, 72, 104, 72, 72, 72, 141, 36, 72, 141, 72, 104, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 104, 72, 72, 104, 72, 141, 36, 72, 141, 72,
  585. 104, 104, 72, 72, 72, 72, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 104, 72, 72, 104, 72, 104, 72, 72, 72, 141, 36, 72, 141, 72, 104, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 104, 72, 72, 104, 72, 141, 36, 72, 141, 72,
  586. 104, 104, 104, 72, 72, 104, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 104, 72, 72, 104, 72, 104, 72, 72, 72, 141, 36, 72, 141, 72, 104, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 104, 72, 72, 104, 72, 141, 36, 72, 141, 72,
  587. 72, 104, 104, 104, 72, 104, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 104, 72, 72, 104, 72, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 104, 72, 72, 104, 72, 141, 36, 72, 141, 72,
  588. 72, 104, 104, 104, 104, 104, 72, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 104, 72, 72, 104, 72, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 104, 104, 72, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 104, 104, 72, 104, 72, 141, 36, 72, 141, 72,
  589. 72, 104, 104, 104, 104, 104, 72, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 104, 72, 72, 104, 72, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 141, 36, 72, 141, 72, 72, 104, 72, 72, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 104, 104, 72, 104, 72, 141, 36, 72, 141, 72,
  590. 72, 104, 104, 104, 104, 104, 72, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 72, 72, 104, 72, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 141, 36, 72, 141, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 104, 104, 72, 104, 72, 141, 36, 72, 141, 104,
  591. 72, 72, 104, 104, 104, 104, 72, 72, 141, 36, 72, 141, 72, 104, 104, 104, 104, 72, 72, 72, 104, 72, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 141, 36, 72, 141, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 104, 104, 72, 104, 72, 141, 36, 72, 141, 104,
  592. 72, 72, 104, 104, 104, 72, 72, 72, 141, 36, 72, 141, 72, 104, 104, 104, 104, 72, 72, 72, 104, 72, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 72, 72, 141, 36, 72, 141, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 104, 104, 72, 104, 72, 141, 36, 72, 141, 104,
  593. 72, 72, 72, 104, 104, 72, 72, 72, 141, 36, 72, 141, 72, 104, 104, 104, 104, 72, 72, 72, 104, 72, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 72, 72, 141, 36, 72, 141, 104, 72, 72, 72, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 104, 104, 72, 104, 72, 141, 36, 72, 141, 104,
  594. 72, 72, 72, 104, 72, 72, 72, 72, 141, 36, 72, 141, 72, 104, 104, 104, 104, 72, 72, 104, 104, 72, 104, 72, 72, 72, 141, 36, 72, 141, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 72, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 104, 104, 72, 72, 72, 141, 36, 72, 141, 104,
  595. 72, 72, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 72, 72, 104, 104, 104, 72, 72, 104, 104, 72, 104, 72, 72, 72, 141, 36, 72, 141, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 104, 104, 72, 72, 72, 141, 36, 72, 141, 104,
  596. 72, 72, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 72, 72, 104, 104, 72, 72, 72, 104, 104, 72, 104, 72, 72, 72, 141, 36, 72, 141, 72, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 104, 104, 72, 72, 72, 141, 36, 72, 141, 104,
  597. 104, 72, 72, 72, 72, 72, 104, 72, 141, 36, 72, 141, 72, 72, 72, 72, 72, 72, 72, 104, 72, 72, 104, 72, 72, 72, 141, 36, 72, 141, 72, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 104, 104, 104, 72, 72, 141, 36, 72, 141, 72,
  598. 104, 72, 72, 72, 72, 72, 104, 72, 141, 36, 72, 141, 72, 72, 72, 72, 72, 72, 72, 104, 72, 72, 104, 72, 72, 72, 141, 36, 72, 141, 72, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 72, 104, 104, 72, 72, 141, 36, 72, 141, 72,
  599. 104, 72, 72, 72, 72, 72, 104, 72, 141, 36, 72, 141, 72, 72, 72, 72, 72, 72, 72, 104, 72, 72, 104, 72, 72, 72, 141, 36, 72, 141, 72, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 72, 104, 104, 72, 72, 141, 36, 72, 141, 72,
  600. 104, 72, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 72, 72, 72, 72, 72, 72, 104, 104, 72, 72, 104, 72, 72, 72, 141, 36, 72, 141, 72, 72, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 72, 104, 104, 72, 72, 141, 36, 72, 141, 72,
  601. 72, 104, 72, 72, 72, 104, 72, 72, 141, 36, 72, 141, 72, 72, 72, 72, 72, 72, 104, 104, 72, 72, 104, 72, 72, 72, 141, 36, 72, 141, 72, 72, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 72, 104, 104, 104, 72, 141, 36, 72, 141, 72,
  602. 72, 104, 72, 72, 72, 104, 72, 72, 141, 36, 72, 141, 72, 72, 72, 72, 72, 72, 104, 104, 72, 72, 104, 72, 72, 72, 141, 36, 72, 141, 72, 72, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 72, 104, 104, 104, 72, 141, 36, 72, 141, 72,
  603. 72, 104, 72, 72, 104, 104, 72, 72, 141, 36, 72, 141, 72, 72, 72, 72, 72, 72, 104, 104, 72, 72, 104, 72, 72, 72, 141, 36, 72, 141, 72, 104, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 72, 104, 104, 104, 72, 141, 36, 72, 141, 72,
  604. 72, 72, 104, 72, 104, 72, 72, 72, 141, 36, 72, 141, 104, 72, 72, 72, 72, 72, 104, 104, 72, 72, 104, 72, 72, 72, 141, 36, 72, 141, 72, 104, 104, 72, 141, 36, 72, 141, 72, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 72, 104, 104, 104, 72, 141, 36, 72, 141, 72,
  605. 72, 72, 104, 72, 104, 72, 72, 72, 141, 36, 72, 141, 104, 72, 72, 72, 72, 104, 104, 104, 72, 72, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 104, 104, 72, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 72, 104, 104, 104, 72, 141, 36, 72, 141, 72,
  606. 72, 72, 104, 104, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 72, 72, 72, 104, 104, 104, 72, 104, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 141, 36, 72, 141, 72, 72, 104, 104, 72, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 72, 104, 104, 104, 72, 141, 36, 72, 141, 72,
  607. 72, 72, 72, 104, 72, 72, 72, 72, 141, 36, 72, 141, 104, 104, 72, 72, 72, 104, 104, 72, 72, 104, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 141, 36, 72, 141, 72, 72, 104, 72, 72, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 72, 72, 104, 104, 72, 141, 36, 72, 141, 72,
  608. 72, 72, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 104, 104, 104, 72, 72, 104, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 141, 36, 72, 141, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 72, 72, 72, 104, 104, 72, 141, 36, 72, 141, 104,
  609. 72, 72, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 104, 104, 72, 72, 104, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 141, 36, 72, 141, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 104, 72, 72, 104, 104, 72, 141, 36, 72, 141, 104,
  610. 72, 72, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 104, 104, 72, 72, 104, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 141, 36, 72, 141, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 104, 72, 72, 104, 104, 72, 141, 36, 72, 141, 104,
  611. 72, 72, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 104, 104, 72, 72, 104, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 141, 36, 72, 141, 104, 72, 72, 72, 72, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 104, 72, 72, 104, 104, 72, 141, 36, 72, 141, 104,
  612. 72, 72, 72, 72, 72, 72, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 104, 104, 72, 72, 104, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 72, 72, 141, 36, 72, 141, 104, 72, 72, 72, 72, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 104, 72, 72, 104, 104, 72, 141, 36, 72, 141, 72,
  613. 104, 72, 72, 72, 72, 72, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 104, 72, 72, 72, 104, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 72, 72, 141, 36, 72, 141, 104, 104, 72, 72, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 104, 72, 72, 104, 104, 72, 141, 36, 72, 141, 72,
  614. 104, 72, 72, 72, 72, 72, 104, 72, 141, 36, 72, 141, 72, 104, 104, 104, 104, 104, 72, 72, 72, 104, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 72, 72, 141, 36, 72, 141, 104, 104, 72, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 104, 72, 72, 72, 104, 72, 141, 36, 72, 141, 72,
  615. 104, 104, 72, 72, 72, 104, 104, 72, 141, 36, 72, 141, 72, 104, 104, 104, 104, 104, 72, 72, 72, 104, 72, 72, 72, 72, 141, 36, 72, 141, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 104, 104, 72, 72, 72, 104, 72, 141, 36, 72, 141, 72,
  616. 104, 104, 72, 72, 72, 104, 104, 72, 141, 36, 72, 141, 72, 104, 104, 104, 104, 104, 72, 72, 104, 104, 72, 72, 72, 72, 141, 36, 72, 141, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 72, 104, 72, 72, 72, 104, 72, 141, 36, 72, 141, 72,
  617. 104, 104, 104, 72, 104, 104, 72, 72, 141, 36, 72, 141, 72, 72, 104, 104, 104, 72, 72, 72, 104, 104, 72, 72, 72, 72, 141, 36, 72, 141, 72, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 72, 104, 104, 72, 72, 104, 72, 141, 36, 72, 141, 72,
  618. 72, 104, 104, 104, 104, 104, 72, 72, 141, 36, 72, 141, 72, 72, 72, 104, 104, 72, 72, 72, 104, 104, 72, 72, 72, 72, 141, 36, 72, 141, 72, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 72, 104, 104, 72, 72, 72, 72, 141, 36, 72, 141, 72,
  619. 72, 104, 104, 104, 104, 104, 72, 72, 141, 36, 72, 141, 72, 72, 72, 72, 72, 72, 72, 72, 104, 104, 72, 72, 72, 72, 141, 36, 72, 141, 72, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 72, 104, 104, 72, 72, 72, 72, 141, 36, 72, 141, 72,
  620. 72, 104, 104, 104, 104, 104, 72, 72, 141, 36, 72, 141, 72, 72, 72, 72, 72, 72, 72, 72, 104, 104, 72, 72, 72, 72, 141, 36, 72, 141, 72, 72, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 72, 104, 104, 72, 72, 72, 72, 141, 36, 72, 141, 72,
  621. 72, 104, 104, 104, 104, 104, 72, 72, 141, 36, 72, 141, 72, 72, 72, 72, 72, 72, 72, 104, 104, 104, 72, 72, 72, 72, 141, 36, 72, 141, 72, 72, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 72, 104, 104, 104, 72, 72, 72, 141, 36, 72, 141, 72,
  622. 72, 72, 104, 104, 104, 104, 72, 72, 141, 36, 72, 141, 104, 72, 72, 72, 72, 72, 72, 104, 104, 104, 72, 72, 72, 72, 141, 36, 72, 141, 72, 104, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 72, 104, 104, 104, 72, 72, 72, 141, 36, 72, 141, 72,
  623. 72, 72, 104, 104, 104, 104, 72, 72, 141, 36, 72, 141, 104, 72, 72, 72, 72, 72, 72, 104, 104, 72, 72, 72, 72, 72, 141, 36, 72, 141, 72, 104, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 72, 72, 72, 104, 104, 104, 72, 72, 72, 141, 36, 72, 141, 72,
  624. 72, 72, 104, 104, 104, 104, 72, 72, 141, 36, 72, 141, 104, 72, 72, 72, 72, 72, 72, 104, 104, 72, 72, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 141, 36, 72, 141, 104, 104, 104, 104, 72, 72, 141, 36, 72, 141, 72, 104, 72, 72, 72, 104, 104, 104, 104, 72, 72, 141, 36, 72, 141, 72,
  625. 72, 72, 72, 104, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 72, 72, 72, 72, 104, 104, 104, 72, 72, 104, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 104, 104, 72, 72, 141, 36, 72, 141, 72, 104, 72, 72, 72, 72, 104, 104, 104, 72, 72, 141, 36, 72, 141, 104,
  626. 72, 72, 72, 104, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 72, 72, 72, 72, 104, 104, 104, 72, 72, 104, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 104, 104, 72, 72, 141, 36, 72, 141, 72, 104, 72, 72, 72, 72, 104, 104, 104, 72, 72, 141, 36, 72, 141, 104,
  627. 72, 72, 72, 104, 104, 72, 72, 72, 141, 36, 72, 141, 104, 104, 72, 72, 72, 72, 104, 104, 72, 72, 72, 104, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 141, 36, 72, 141, 72, 104, 104, 72, 72, 72, 141, 36, 72, 141, 72, 104, 72, 72, 72, 72, 104, 104, 104, 72, 72, 141, 36, 72, 141, 104,
  628. 72, 72, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 72, 72, 104, 104, 72, 72, 72, 104, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 141, 36, 72, 141, 72, 72, 104, 72, 72, 72, 141, 36, 72, 141, 72, 104, 72, 72, 72, 72, 72, 104, 104, 72, 72, 141, 36, 72, 141, 104,
  629. 72, 72, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 72, 104, 104, 104, 72, 104, 104, 104, 72, 72, 72, 104, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 141, 36, 72, 141, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 72, 104, 104, 72, 72, 72, 72, 104, 104, 104, 72, 141, 36, 72, 141, 104,
  630. 72, 72, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 72, 104, 104, 104, 104, 104, 104, 104, 72, 72, 72, 104, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 141, 36, 72, 141, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 72, 104, 104, 72, 72, 72, 72, 104, 104, 104, 72, 141, 36, 72, 141, 104,
  631. 104, 72, 72, 72, 72, 72, 104, 72, 141, 36, 72, 141, 72, 72, 104, 104, 104, 104, 104, 72, 72, 72, 104, 104, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 141, 36, 72, 141, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 72, 104, 104, 72, 72, 72, 72, 72, 104, 104, 72, 141, 36, 72, 141, 104,
  632. 104, 72, 72, 72, 72, 72, 104, 72, 141, 36, 72, 141, 72, 72, 104, 104, 104, 104, 104, 72, 72, 72, 104, 104, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 141, 36, 72, 141, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 72, 104, 104, 72, 72, 72, 72, 72, 104, 104, 72, 141, 36, 72, 141, 104,
  633. 104, 72, 72, 72, 72, 72, 104, 72, 141, 36, 72, 141, 72, 72, 72, 104, 104, 104, 72, 72, 72, 72, 104, 104, 72, 72, 141, 36, 72, 141, 104, 104, 104, 72, 141, 36, 72, 141, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 72, 72, 104, 72, 72, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 104,
  634. 104, 104, 72, 72, 72, 72, 104, 72, 141, 36, 72, 141, 72, 72, 72, 72, 104, 72, 72, 72, 72, 104, 104, 104, 104, 72, 141, 36, 72, 141, 104, 104, 72, 72, 141, 36, 72, 141, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 104, 72, 104, 104, 72, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 104,
  635. 104, 104, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 104, 72, 72, 72, 72, 72, 72, 72, 104, 104, 104, 104, 104, 72, 141, 36, 72, 141, 104, 72, 72, 72, 141, 36, 72, 141, 104, 72, 72, 72, 104, 72, 141, 36, 72, 141, 104, 72, 104, 104, 72, 72, 72, 72, 72, 72, 72, 141, 36, 72, 141, 104,
  636. },
  637. //colorstone
  638. {
  639. 109, 109, 109, 72, 72, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 72, 68, 72, 104, 104, 104, 104, 72, 72, 72, 73, 109, 109, 109, 109, 109, 109, 109, 37, 37, 37, 37, 37, 37, 37, 73, 109, 109, 73, 109, 73, 73, 73, 73, 73, 73, 73, 109, 109, 109, 109, 109,
  640. 109, 109, 109, 73, 72, 72, 104, 104, 104, 104, 104, 104, 104, 104, 104, 72, 104, 104, 104, 104, 104, 104, 72, 68, 72, 104, 104, 104, 72, 72, 72, 73, 109, 109, 109, 109, 109, 109, 109, 109, 73, 37, 37, 37, 37, 37, 73, 109, 109, 73, 109, 73, 73, 73, 73, 73, 109, 109, 109, 109, 109, 109, 109, 109,
  641. 109, 109, 109, 109, 73, 72, 72, 104, 104, 104, 104, 104, 104, 104, 104, 104, 72, 72, 104, 104, 104, 104, 72, 68, 72, 104, 72, 72, 72, 73, 73, 109, 109, 73, 104, 104, 104, 104, 73, 109, 109, 73, 37, 37, 37, 73, 109, 109, 73, 109, 73, 73, 73, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109,
  642. 73, 109, 109, 109, 109, 73, 72, 104, 104, 104, 104, 104, 104, 104, 104, 104, 72, 72, 104, 104, 104, 104, 72, 68, 72, 72, 72, 72, 73, 109, 109, 73, 104, 104, 72, 72, 68, 72, 68, 72, 109, 109, 73, 73, 73, 109, 109, 73, 109, 109, 109, 109, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  643. 73, 73, 109, 109, 109, 109, 72, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 72, 72, 68, 72, 72, 73, 109, 109, 109, 73, 104, 72, 72, 72, 72, 68, 72, 68, 72, 73, 109, 109, 109, 109, 109, 73, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109,
  644. 73, 73, 73, 109, 109, 109, 72, 72, 104, 104, 104, 104, 104, 72, 104, 104, 104, 104, 104, 104, 72, 68, 68, 72, 73, 109, 109, 109, 109, 104, 104, 72, 72, 72, 72, 72, 68, 72, 68, 68, 68, 109, 146, 182, 109, 73, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  645. 73, 73, 73, 73, 109, 109, 73, 72, 72, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 72, 68, 68, 73, 73, 109, 109, 109, 73, 104, 72, 72, 72, 72, 72, 72, 72, 68, 68, 72, 68, 68, 109, 182, 109, 73, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  646. 73, 73, 73, 73, 73, 109, 109, 73, 72, 72, 104, 104, 104, 104, 104, 104, 104, 72, 72, 68, 72, 73, 109, 109, 109, 109, 104, 104, 72, 72, 72, 72, 72, 72, 72, 72, 68, 68, 72, 68, 68, 109, 146, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  647. 73, 73, 73, 73, 73, 73, 109, 109, 73, 72, 72, 104, 104, 104, 104, 72, 72, 68, 68, 73, 109, 109, 109, 109, 73, 104, 72, 72, 72, 72, 72, 72, 72, 68, 72, 72, 68, 68, 72, 68, 68, 109, 146, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  648. 73, 73, 73, 73, 73, 73, 109, 109, 109, 73, 72, 72, 72, 72, 72, 68, 68, 73, 109, 109, 109, 109, 109, 104, 104, 72, 72, 72, 72, 72, 72, 72, 72, 68, 72, 72, 68, 68, 68, 68, 68, 109, 146, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  649. 73, 73, 73, 73, 73, 73, 109, 109, 109, 109, 73, 68, 68, 68, 68, 73, 73, 109, 109, 109, 109, 73, 104, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 68, 68, 68, 73, 109, 146, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  650. 73, 73, 73, 73, 73, 73, 109, 109, 109, 109, 109, 73, 73, 73, 73, 73, 109, 109, 109, 109, 104, 104, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 68, 72, 72, 72, 68, 68, 68, 73, 109, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  651. 73, 73, 73, 73, 73, 73, 109, 109, 109, 73, 73, 73, 109, 109, 146, 146, 146, 109, 109, 104, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 68, 72, 72, 72, 68, 68, 68, 73, 109, 146, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  652. 73, 73, 73, 73, 73, 109, 109, 109, 73, 73, 73, 73, 73, 109, 146, 146, 146, 109, 104, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 68, 72, 72, 72, 68, 68, 68, 109, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  653. 73, 73, 73, 73, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 109, 146, 109, 104, 72, 72, 104, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 68, 72, 72, 72, 68, 68, 73, 109, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  654. 73, 73, 73, 109, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 109, 73, 104, 72, 104, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 68, 68, 72, 72, 72, 68, 68, 73, 109, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  655. 73, 73, 109, 109, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 104, 72, 104, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 68, 68, 72, 72, 68, 68, 68, 73, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  656. 73, 109, 109, 73, 73, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 104, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 68, 68, 72, 72, 68, 68, 68, 109, 104, 104, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  657. 109, 109, 73, 72, 72, 73, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 109, 104, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 68, 68, 72, 68, 68, 68, 109, 104, 104, 104, 73, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  658. 109, 73, 72, 104, 72, 72, 73, 109, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 68, 68, 68, 68, 68, 68, 109, 104, 104, 104, 104, 72, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 37, 73, 73, 109,
  659. 73, 72, 104, 72, 72, 72, 68, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 109, 73, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 68, 68, 68, 68, 68, 73, 109, 109, 72, 72, 72, 72, 72, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 73, 73, 73, 73, 109, 109,
  660. 72, 104, 72, 72, 72, 72, 68, 73, 109, 109, 73, 73, 73, 73, 73, 73, 73, 109, 109, 68, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 68, 68, 68, 68, 73, 109, 109, 109, 109, 109, 109, 109, 109, 146, 146, 109, 109, 73, 73, 37, 37, 37, 37, 37, 37, 37, 73, 73, 73, 73, 73, 109, 109, 73,
  661. 104, 72, 72, 72, 72, 72, 68, 68, 109, 109, 73, 73, 73, 73, 73, 73, 73, 109, 109, 73, 72, 72, 72, 72, 72, 72, 72, 72, 72, 68, 68, 68, 73, 109, 109, 73, 73, 73, 73, 73, 73, 73, 109, 146, 146, 146, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 73, 72,
  662. 72, 72, 72, 72, 72, 72, 68, 72, 109, 109, 109, 73, 73, 73, 73, 73, 73, 109, 109, 109, 68, 72, 72, 72, 72, 72, 72, 72, 68, 68, 73, 73, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 146, 146, 146, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 73, 72, 104,
  663. 72, 72, 72, 72, 72, 72, 68, 72, 73, 109, 109, 109, 73, 73, 73, 73, 73, 109, 109, 109, 73, 68, 68, 72, 72, 72, 68, 68, 68, 73, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 146, 146, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 109, 72, 104, 72,
  664. 72, 72, 72, 72, 72, 72, 68, 72, 68, 109, 109, 109, 73, 73, 73, 73, 73, 109, 109, 109, 109, 68, 68, 68, 68, 68, 68, 68, 73, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 109, 73, 73, 109, 109, 73, 73, 73, 73, 73, 73, 109, 109, 109, 73, 104, 72, 72,
  665. 72, 72, 72, 72, 72, 72, 68, 72, 68, 73, 109, 109, 109, 73, 73, 73, 109, 109, 109, 109, 109, 73, 68, 68, 68, 68, 73, 73, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 109, 73, 73, 73, 109, 109, 73, 73, 73, 73, 109, 109, 109, 73, 72, 72, 72, 72,
  666. 72, 72, 72, 72, 72, 72, 68, 72, 68, 73, 109, 146, 109, 109, 109, 109, 109, 73, 104, 104, 73, 109, 73, 73, 73, 109, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 73, 109, 109, 73, 73, 73, 73, 73, 109, 109, 109, 146, 146, 109, 109, 73, 72, 72, 72, 72, 72,
  667. 72, 72, 72, 72, 72, 72, 68, 72, 68, 73, 109, 109, 146, 109, 109, 109, 104, 104, 104, 104, 104, 104, 109, 109, 109, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 73, 73, 73, 73, 37, 73, 109, 109, 73, 73, 73, 73, 73, 109, 109, 146, 146, 109, 109, 109, 72, 72, 72, 72, 72, 72,
  668. 72, 72, 72, 72, 72, 68, 68, 72, 68, 73, 109, 109, 109, 109, 109, 104, 104, 104, 104, 104, 104, 104, 72, 109, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 73, 73, 73, 73, 73, 109, 109, 73, 73, 73, 73, 73, 73, 73, 109, 109, 109, 109, 109, 73, 72, 72, 72, 72, 72, 72,
  669. 72, 72, 72, 72, 72, 68, 68, 72, 68, 73, 109, 146, 109, 109, 109, 109, 104, 104, 104, 104, 104, 104, 72, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 73, 73, 73, 37, 73, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 73, 109, 72, 72, 72, 72, 72, 72,
  670. 72, 72, 72, 72, 72, 68, 68, 68, 68, 73, 109, 109, 109, 73, 109, 109, 109, 104, 104, 104, 72, 72, 72, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 73, 73, 73, 37, 109, 73, 104, 104, 104, 104, 104, 104, 104, 104, 104, 72, 104, 104, 109, 109, 72, 72, 72, 72, 72, 72,
  671. 72, 72, 72, 72, 68, 68, 72, 68, 73, 109, 109, 109, 73, 109, 73, 109, 109, 109, 72, 72, 72, 72, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 73, 73, 37, 73, 109, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 72, 104, 104, 104, 109, 72, 72, 72, 72, 72, 72,
  672. 72, 72, 72, 72, 68, 68, 68, 73, 109, 109, 109, 73, 109, 73, 73, 73, 109, 109, 109, 109, 73, 73, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 73, 73, 37, 73, 109, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 72, 104, 104, 72, 109, 72, 72, 72, 72, 72, 72,
  673. 72, 72, 72, 72, 68, 68, 73, 109, 109, 109, 73, 109, 73, 73, 73, 73, 73, 109, 109, 146, 109, 146, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 73, 73, 37, 109, 73, 137, 104, 104, 104, 104, 72, 104, 104, 104, 104, 72, 104, 104, 72, 109, 72, 72, 72, 72, 72, 72,
  674. 72, 72, 72, 68, 68, 73, 109, 109, 109, 109, 73, 109, 73, 73, 73, 73, 73, 73, 109, 109, 146, 146, 146, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 37, 73, 37, 109, 109, 73, 137, 104, 104, 104, 104, 104, 104, 104, 104, 104, 72, 104, 104, 72, 109, 68, 72, 72, 72, 72, 72,
  675. 72, 72, 72, 68, 73, 109, 109, 109, 109, 73, 109, 73, 73, 73, 73, 73, 73, 73, 73, 109, 146, 146, 146, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 37, 73, 73, 109, 109, 104, 137, 104, 104, 104, 104, 104, 104, 104, 104, 104, 72, 104, 104, 72, 109, 73, 68, 72, 72, 72, 72,
  676. 72, 72, 68, 73, 109, 109, 109, 109, 109, 73, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 146, 146, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 37, 37, 73, 109, 109, 104, 137, 104, 104, 104, 104, 104, 104, 104, 104, 104, 72, 104, 104, 72, 109, 109, 73, 68, 72, 72, 72,
  677. 72, 68, 73, 109, 109, 109, 109, 109, 73, 109, 73, 73, 109, 73, 73, 73, 73, 73, 73, 73, 73, 109, 146, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 37, 37, 109, 109, 73, 104, 137, 104, 104, 104, 104, 104, 104, 104, 104, 72, 72, 104, 104, 72, 109, 109, 109, 73, 68, 72, 72,
  678. 68, 73, 109, 109, 109, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 146, 146, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 37, 73, 109, 109, 104, 104, 137, 104, 104, 104, 104, 104, 104, 104, 104, 72, 104, 104, 104, 72, 109, 109, 109, 109, 73, 68, 68,
  679. 73, 109, 109, 146, 146, 109, 109, 73, 73, 73, 73, 73, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 109, 37, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 37, 73, 109, 109, 104, 104, 137, 104, 104, 104, 104, 104, 104, 104, 104, 72, 104, 104, 104, 72, 109, 109, 109, 109, 109, 73, 73,
  680. 109, 109, 146, 146, 146, 109, 73, 73, 73, 73, 73, 73, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 73, 37, 37, 37, 73, 73, 73, 73, 73, 73, 73, 37, 37, 73, 109, 73, 104, 104, 137, 104, 104, 104, 104, 104, 104, 104, 72, 104, 104, 104, 104, 72, 109, 37, 37, 73, 73, 109, 109,
  681. 109, 109, 146, 146, 109, 73, 73, 73, 73, 109, 109, 73, 73, 73, 73, 109, 73, 73, 73, 73, 73, 73, 73, 73, 109, 73, 73, 37, 37, 73, 73, 73, 73, 73, 73, 73, 37, 73, 109, 109, 104, 104, 104, 104, 137, 104, 104, 104, 104, 104, 104, 72, 104, 104, 104, 104, 72, 109, 37, 37, 37, 37, 73, 73,
  682. 37, 73, 146, 146, 109, 73, 73, 73, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 73, 37, 37, 73, 73, 73, 73, 73, 37, 73, 109, 109, 104, 104, 104, 104, 137, 104, 104, 104, 104, 104, 72, 104, 104, 104, 104, 104, 72, 109, 37, 37, 37, 37, 36, 37,
  683. 37, 36, 73, 109, 73, 73, 73, 73, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 73, 37, 37, 37, 73, 73, 73, 73, 37, 109, 109, 109, 72, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 72, 104, 104, 72, 109, 37, 37, 37, 37, 36, 37,
  684. 37, 36, 73, 109, 73, 73, 73, 73, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 146, 146, 73, 37, 37, 37, 73, 73, 37, 73, 109, 109, 109, 109, 72, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 72, 109, 37, 37, 37, 37, 36, 37,
  685. 36, 73, 109, 109, 73, 73, 73, 73, 73, 73, 73, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 146, 146, 109, 73, 37, 37, 73, 73, 37, 73, 109, 109, 109, 109, 109, 72, 104, 104, 104, 104, 104, 104, 104, 104, 72, 72, 104, 104, 72, 72, 109, 37, 37, 37, 36, 37, 37,
  686. 73, 109, 109, 109, 73, 73, 73, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 73, 73, 73, 73, 73, 109, 73, 72, 73, 109, 73, 37, 37, 37, 37, 109, 109, 109, 73, 73, 109, 109, 72, 72, 104, 104, 104, 104, 104, 104, 72, 72, 104, 72, 72, 73, 109, 37, 37, 37, 36, 37, 37,
  687. 109, 109, 109, 109, 109, 73, 73, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 73, 73, 73, 73, 109, 73, 72, 72, 68, 73, 109, 109, 73, 73, 109, 109, 109, 73, 37, 37, 73, 109, 109, 109, 72, 104, 104, 104, 104, 104, 104, 104, 72, 72, 73, 109, 109, 36, 36, 36, 36, 36, 36,
  688. 109, 109, 109, 109, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 73, 73, 73, 109, 73, 72, 72, 72, 68, 72, 68, 73, 109, 109, 109, 109, 73, 37, 37, 37, 37, 73, 109, 109, 109, 72, 72, 104, 104, 104, 104, 72, 72, 73, 109, 109, 109, 109, 73, 73, 73, 73, 73,
  689. 109, 109, 109, 146, 146, 146, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 73, 73, 109, 73, 72, 72, 72, 72, 68, 72, 68, 72, 73, 109, 109, 73, 73, 37, 37, 37, 37, 37, 73, 109, 109, 109, 73, 72, 72, 72, 72, 72, 73, 109, 73, 73, 73, 73, 73, 73, 109, 109, 109,
  690. 109, 73, 104, 104, 73, 146, 146, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 37, 73, 73, 109, 73, 72, 72, 72, 72, 72, 68, 72, 68, 72, 68, 109, 109, 73, 36, 37, 37, 37, 36, 36, 37, 73, 109, 109, 109, 73, 72, 72, 73, 73, 109, 109, 73, 73, 73, 73, 73, 73, 73, 109, 109,
  691. 104, 104, 104, 104, 104, 104, 73, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 73, 72, 72, 72, 72, 72, 72, 68, 72, 68, 72, 68, 109, 73, 37, 37, 36, 37, 37, 36, 36, 37, 37, 73, 109, 109, 109, 73, 73, 73, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109,
  692. 104, 104, 104, 104, 104, 104, 104, 104, 73, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 73, 73, 72, 72, 72, 72, 72, 68, 72, 68, 72, 68, 68, 73, 109, 73, 37, 37, 37, 36, 36, 37, 37, 37, 37, 37, 73, 109, 109, 109, 109, 109, 146, 109, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109,
  693. 104, 72, 104, 104, 104, 104, 104, 104, 104, 72, 109, 73, 73, 73, 73, 73, 73, 73, 109, 73, 72, 104, 72, 72, 72, 72, 72, 72, 72, 68, 68, 68, 73, 109, 73, 37, 37, 37, 37, 37, 36, 36, 37, 36, 37, 37, 37, 73, 109, 109, 109, 146, 146, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 104,
  694. 104, 104, 104, 104, 104, 104, 104, 72, 104, 72, 104, 104, 73, 73, 73, 73, 73, 109, 73, 72, 104, 72, 72, 72, 72, 72, 72, 68, 72, 68, 68, 68, 73, 73, 73, 37, 37, 37, 37, 37, 36, 36, 36, 36, 37, 37, 37, 37, 73, 109, 109, 146, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 104,
  695. 104, 104, 72, 72, 104, 104, 104, 72, 104, 72, 104, 104, 72, 73, 73, 73, 109, 73, 72, 72, 104, 72, 72, 72, 72, 72, 72, 68, 72, 68, 68, 73, 109, 73, 37, 37, 36, 36, 37, 37, 37, 36, 36, 36, 36, 37, 37, 37, 37, 73, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 104, 104,
  696. 104, 104, 72, 72, 104, 104, 104, 72, 104, 72, 72, 72, 72, 73, 73, 109, 73, 72, 72, 72, 104, 72, 72, 72, 72, 72, 72, 68, 72, 68, 73, 109, 73, 73, 37, 37, 36, 36, 36, 37, 37, 36, 36, 36, 36, 36, 37, 37, 37, 37, 73, 109, 109, 73, 73, 73, 73, 73, 73, 73, 73, 109, 104, 104,
  697. 104, 104, 104, 104, 104, 104, 72, 72, 72, 68, 72, 72, 73, 109, 109, 73, 72, 72, 72, 72, 104, 72, 72, 72, 72, 72, 72, 68, 68, 68, 73, 109, 73, 73, 37, 37, 36, 36, 37, 36, 37, 37, 36, 36, 36, 36, 36, 37, 37, 37, 37, 73, 109, 109, 73, 73, 73, 73, 73, 73, 73, 104, 104, 104,
  698. 104, 104, 104, 104, 104, 104, 72, 72, 72, 68, 72, 73, 109, 109, 109, 73, 72, 72, 72, 72, 104, 72, 72, 72, 72, 72, 72, 68, 68, 73, 109, 73, 37, 73, 37, 37, 37, 37, 37, 37, 37, 37, 36, 36, 36, 36, 36, 36, 37, 37, 37, 37, 73, 109, 73, 73, 73, 73, 73, 73, 73, 104, 104, 104,
  699. 104, 104, 104, 104, 104, 104, 72, 72, 68, 68, 73, 109, 109, 109, 109, 73, 72, 72, 72, 72, 104, 72, 72, 72, 72, 72, 72, 68, 73, 109, 73, 73, 37, 73, 37, 37, 37, 37, 37, 37, 37, 37, 36, 36, 36, 36, 36, 36, 36, 37, 37, 37, 37, 36, 109, 73, 73, 73, 73, 73, 104, 104, 104, 104,
  700. 104, 104, 104, 104, 104, 104, 72, 68, 68, 73, 109, 73, 73, 73, 109, 109, 73, 72, 72, 72, 104, 72, 72, 72, 72, 72, 72, 68, 73, 109, 73, 37, 37, 73, 37, 37, 37, 37, 36, 36, 37, 37, 37, 36, 36, 36, 36, 36, 36, 36, 37, 37, 37, 36, 73, 109, 73, 73, 73, 109, 104, 104, 104, 104,
  701. 104, 104, 104, 104, 104, 72, 72, 68, 73, 109, 73, 73, 73, 73, 73, 109, 73, 72, 72, 72, 104, 72, 72, 72, 72, 72, 68, 73, 109, 73, 37, 37, 37, 73, 37, 37, 37, 37, 36, 36, 37, 37, 37, 36, 36, 36, 36, 37, 36, 36, 36, 37, 37, 36, 73, 109, 73, 73, 109, 104, 104, 104, 104, 104,
  702. 104, 104, 104, 104, 72, 68, 68, 73, 109, 109, 73, 73, 73, 73, 73, 73, 109, 72, 72, 72, 72, 72, 72, 72, 72, 68, 73, 73, 109, 37, 37, 37, 37, 73, 37, 37, 36, 37, 37, 37, 37, 37, 37, 36, 36, 36, 36, 37, 36, 36, 36, 36, 37, 36, 73, 109, 109, 109, 109, 104, 104, 104, 104, 104,
  703. },
  704. }
  705. ;
  706. word worldMap[mapWidth][mapHeight]=
  707. {
  708. {4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,7,7,7,7,7,7,7},
  709. {4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,7},
  710. {4,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7},
  711. {4,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7},
  712. {4,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,7},
  713. {4,0,4,0,0,0,0,2,2,2,2,2,2,2,2,2,7,7,0,7,7,7,7,7},
  714. {4,0,5,0,0,0,0,2,0,1,0,1,0,1,0,2,7,0,0,0,7,7,7,1},
  715. {4,0,6,0,0,0,0,2,0,0,0,0,0,0,0,2,7,0,0,0,0,0,0,8},
  716. {4,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,1},
  717. {4,0,8,0,0,0,0,5,0,0,0,0,0,0,0,5,7,0,0,0,0,0,0,8},
  718. {4,0,0,0,0,0,0,5,0,0,0,0,0,0,0,5,7,0,0,0,7,7,7,1},
  719. {4,0,0,0,0,0,0,5,5,5,5,0,5,5,5,5,7,7,7,7,7,7,7,1},
  720. {6,6,6,6,6,6,6,6,6,6,6,0,6,6,6,6,6,6,6,6,6,6,6,6},
  721. {8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4},
  722. {6,6,6,6,6,6,0,6,6,6,6,0,6,6,6,6,6,6,6,6,6,6,6,6},
  723. {4,4,4,4,4,4,0,4,4,4,6,0,6,2,2,2,2,2,2,2,3,3,3,3},
  724. {4,0,0,0,0,0,0,0,0,4,6,0,6,2,0,0,0,0,0,2,0,0,0,2},
  725. {4,0,0,0,0,0,0,0,0,0,0,0,6,2,0,0,5,0,0,2,0,0,0,2},
  726. {4,0,0,0,0,0,0,0,0,4,6,0,6,2,0,0,0,0,0,2,2,0,2,2},
  727. {4,0,6,0,6,0,0,0,0,4,6,0,0,0,0,0,5,0,0,0,0,0,0,2},
  728. {4,0,0,5,0,0,0,0,0,4,6,0,6,2,0,0,0,0,0,2,2,0,2,2},
  729. {4,0,6,0,6,0,0,0,0,4,6,0,6,2,0,0,5,0,0,2,0,0,0,2},
  730. {4,0,0,0,0,0,0,0,0,4,6,0,6,2,0,0,0,0,0,2,0,0,0,2},
  731. {4,4,4,4,4,4,4,4,4,4,1,1,1,2,2,2,2,2,2,3,3,3,3,3}
  732. };
  733. // Global variables, so render function can access it
  734. word drawStart = 0;
  735. word drawEnd = 0;
  736. word texNum = 0;
  737. // Render vertical line in pixel plane with textures
  738. // INPUT:
  739. // r1 first pixel addr VRAM addr of first pixel in line (top pixel)
  740. // r2 (a2r) drawStart Starting pixel of wall
  741. // r3 (a2r) drawEnd Ending pixel of wall
  742. // r4 texPos Starting texture coordinate
  743. // r5 step How much to increase the texture coordinate per screen pixel
  744. // r6 texX X coordinate on the texture
  745. // r7 x X position of line to render
  746. // r8 current FB pos Current framebuffer position in VRAM (top to bottom)
  747. // r9 end loop FB pos Last framebuffer position in VRAM of current loop
  748. // r10 texY Y coordinate on the texture
  749. // r11 gp Used as temp reg in calculations
  750. // r12 texture[texNum] Texture array of texture to draw
  751. // r13 color Pixel color
  752. // r14 ceil or floor col Ceiling or floor color
  753. // side TODO North South or East West wall side
  754. void RAYFX_drawTextureVertLine(fixed_point_t texPos, fixed_point_t step, word texX, word x)
  755. {
  756. // reg 4 5 6 7 (args) and 2 3 (retval) are safe
  757. asm(
  758. "; backup registers\n"
  759. "push r1\n"
  760. "push r8\n"
  761. "push r9\n"
  762. "push r10\n"
  763. "push r11\n"
  764. "push r12\n"
  765. "push r13\n"
  766. "push r14\n"
  767. "push r15\n"
  768. );
  769. // setup registers
  770. asm(
  771. "addr2reg drawStart r2 ; r2 = drawStart addr\n"
  772. "read 0 r2 r2 ; r2 = drawStart value\n"
  773. "addr2reg drawEnd r3 ; r2 = drawEnd addr\n"
  774. "read 0 r3 r3 ; r2 = drawEnd value\n"
  775. "load32 0xD00000 r1 ; r1 = framebuffer addr\n"
  776. "add r1 r7 r1 ; r1 = first pixel in line (fb+x)\n"
  777. "or r0 r1 r8 ; r8 = current pixel\n"
  778. "multu r2 320 r9 ; r9 = drawStart VRAM offset\n"
  779. "add r9 r1 r9 ; r9 = last FB pos of before wall\n"
  780. "addr2reg texNum r12 ; r12 = texNum addr\n"
  781. "read 0 r12 r12 ; r12 = texNum value\n"
  782. "multu r12 4096 r12 ; r12 = texture offset (64*64 per texture)\n"
  783. "addr2reg texture r11 ; r11 = texture array\n"
  784. "add r12 r11 r12 ; r12 = texture[texNum]\n"
  785. "load32 151 r14 ; r14 = ceiling color\n"
  786. "; draw until start\n"
  787. "RAYFX_drawVlineLoopCeiling:\n"
  788. " write 0 r8 r14 ; write ceiling pixel\n"
  789. " add r8 320 r8 ; go to next line pixel\n"
  790. " bge r8 r9 2 ; keep looping until reached wall\n"
  791. " jump RAYFX_drawVlineLoopCeiling\n"
  792. "multu r3 320 r9 ; r9 = drawEnd VRAM offset\n"
  793. "add r9 r1 r9 ; r9 = last FB pos of wall\n"
  794. "; draw until floor\n"
  795. "RAYFX_drawVlineLoopWall:\n"
  796. " shiftrs r4 16 r11 ; r11 = texY = FPtoInt(texPos)\n"
  797. " and r11 63 r11 ; r11 = r11 & (texHeight-1)\n"
  798. " add r4 r5 r4 ; texPos += step\n"
  799. " multu r11 64 r11 ; r11 = texHeight * texY \n"
  800. " add r11 r6 r11 ; r11 += texX\n"
  801. " add r11 r12 r13 ; r13 = addr of color in texture array\n"
  802. " read 0 r13 r13 ; r13 = pixel color\n"
  803. " write 0 r8 r13 ; write texture pixel\n"
  804. " add r8 320 r8 ; go to next line pixel\n"
  805. " bge r8 r9 2 ; keep looping until reached floor\n"
  806. " jump RAYFX_drawVlineLoopWall\n"
  807. "load 239 r9 ; r9 = last y position\n"
  808. "multu r9 320 r9 ; r9 = screen end VRAM offset\n"
  809. "add r9 r1 r9 ; r9 = last FB pos of line\n"
  810. "load32 182 r14 ; r14 = floor color\n"
  811. "; draw until end of screen\n"
  812. "RAYFX_drawVlineLoopFloor:\n"
  813. " write 0 r8 r14 ; write floor pixel\n"
  814. " add r8 320 r8 ; go to next line pixel\n"
  815. " bgt r8 r9 2 ; keep looping until reached end of screen\n"
  816. " jump RAYFX_drawVlineLoopFloor\n"
  817. );
  818. asm(
  819. "; restore registers\n"
  820. "pop r15\n"
  821. "pop r14\n"
  822. "pop r13\n"
  823. "pop r12\n"
  824. "pop r11\n"
  825. "pop r10\n"
  826. "pop r9\n"
  827. "pop r8\n"
  828. "pop r1\n"
  829. );
  830. }
  831. // TO ASSEMBLY:
  832. /*
  833. word y;
  834. for(y = 0; y < screenHeight; y++)
  835. {
  836. if (y < drawStart)
  837. {
  838. fb[y][x] = 0;
  839. }
  840. else if (y >= drawEnd)
  841. {
  842. fb[y][x] = COLOR_GREY;
  843. }
  844. else
  845. {
  846. // Cast the texture coordinate to integer, and mask with (texHeight - 1) in case of overflow
  847. word texY = FP_FPtoInt(texPos) & (texHeight - 1);
  848. texPos += step;
  849. word color = texture[texNum][texHeight * texY + texX];
  850. //make color darker for y-sides: R, G and B byte each divided through two with a "shift" and an "and"
  851. //if(side == 1) color = (color >> 1) & 109;
  852. fb[y][x] = color;
  853. }
  854. }
  855. */
  856. int main()
  857. {
  858. // clear screen from text
  859. GFX_clearWindowtileTable();
  860. GFX_clearWindowpaletteTable();
  861. GFX_clearBGtileTable();
  862. GFX_clearBGpaletteTable();
  863. //generate some textures
  864. /*
  865. word x;
  866. word y;
  867. for(x = 0; x < texWidth; x++)
  868. {
  869. for(y = 0; y < texHeight; y++)
  870. {
  871. texture[0][texWidth * y + x] = x;
  872. texture[1][texWidth * y + x] = y;
  873. texture[2][texWidth * y + x] = x+y;
  874. texture[3][texWidth * y + x] = x-y;
  875. texture[4][texWidth * y + x] = x*y;
  876. texture[5][texWidth * y + x] = x^y;
  877. texture[6][texWidth * y + x] = x|y;
  878. texture[7][texWidth * y + x] = x&y;
  879. }
  880. }
  881. */
  882. //x and y start position
  883. fixed_point_t posX = FP_intToFP(15);
  884. fixed_point_t posY = FP_StringToFP("11.5");
  885. //initial direction vector
  886. fixed_point_t dirX = LUTdirX[0];
  887. fixed_point_t dirY = LUTdirY[0];
  888. //the 2d raycaster version of camera plane
  889. fixed_point_t planeX = LUTplaneX[0];
  890. fixed_point_t planeY = LUTplaneY[0];
  891. // rotation angle (loops at 360)
  892. word rotationAngle = 0;
  893. word rotationSpeed = 5; // degrees per frame
  894. fixed_point_t moveSpeed = FP_StringToFP("0.15");
  895. while(!quitGame)
  896. {
  897. word x;
  898. for(x = 0; x < screenWidth; x++)
  899. {
  900. //calculate ray position and direction
  901. fixed_point_t cameraX = FP_Div(FP_intToFP(x<<1), FP_intToFP(screenWidth)) - FP_intToFP(1); //x-coordinate in camera space
  902. fixed_point_t rayDirX = dirX + FP_Mult(planeX, cameraX);
  903. fixed_point_t rayDirY = dirY + FP_Mult(planeY, cameraX);
  904. //which box of the map we are in
  905. word mapX = FP_FPtoInt(posX);
  906. word mapY = FP_FPtoInt(posY);
  907. //length of ray from current position to next x or y-side
  908. fixed_point_t sideDistX;
  909. fixed_point_t sideDistY;
  910. //length of ray from one x or y-side to next x or y-side
  911. //these are derived as:
  912. //deltaDistX = sqrt(1 + (rayDirY * rayDirY) / (rayDirX * rayDirX))
  913. //deltaDistY = sqrt(1 + (rayDirX * rayDirX) / (rayDirY * rayDirY))
  914. //which can be simplified to abs(|rayDir| / rayDirX) and abs(|rayDir| / rayDirY)
  915. //where |rayDir| is the length of the vector (rayDirX, rayDirY). Its length,
  916. //unlike (dirX, dirY) is not 1, however this does not matter, only the
  917. //ratio between deltaDistX and deltaDistY matters, due to the way the DDA
  918. //stepping further below works. So the values can be computed as below.
  919. // Division through zero is prevented by setting the result to a very high value
  920. fixed_point_t deltaDistX = (rayDirX == 0) ? 1<<30 : MATH_abs( FP_Div(FP_intToFP(1), rayDirX));
  921. fixed_point_t deltaDistY = (rayDirY == 0) ? 1<<30 : MATH_abs( FP_Div(FP_intToFP(1), rayDirY));
  922. fixed_point_t perpWallDist;
  923. //what direction to step in x or y-direction (either +1 or -1)
  924. word stepX;
  925. word stepY;
  926. word hit = 0; //was there a wall hit?
  927. word side; //was a NorthSouth or a EastWest wall hit?
  928. //calculate step and initial sideDist
  929. if(rayDirX < 0)
  930. {
  931. stepX = -1;
  932. sideDistX = FP_Mult((posX - FP_intToFP(mapX)), deltaDistX);
  933. }
  934. else
  935. {
  936. stepX = 1;
  937. sideDistX = FP_Mult((FP_intToFP(mapX + 1) - posX), deltaDistX);
  938. }
  939. if(rayDirY < 0)
  940. {
  941. stepY = -1;
  942. sideDistY = FP_Mult((posY - FP_intToFP(mapY)), deltaDistY);
  943. }
  944. else
  945. {
  946. stepY = 1;
  947. sideDistY = FP_Mult((FP_intToFP(mapY + 1) - posY), deltaDistY);
  948. }
  949. //perform DDA
  950. while(hit == 0)
  951. {
  952. //jump to next map square, either in x-direction, or in y-direction
  953. if(sideDistX < sideDistY)
  954. {
  955. sideDistX += deltaDistX;
  956. mapX += stepX;
  957. side = 0;
  958. }
  959. else
  960. {
  961. sideDistY += deltaDistY;
  962. mapY += stepY;
  963. side = 1;
  964. }
  965. //Check if ray has hit a wall
  966. if(worldMap[mapX][mapY] > 0) hit = 1;
  967. }
  968. //Calculate distance projected on camera direction. This is the shortest distance from the point where the wall is
  969. //hit to the camera plane. Euclidean to center camera point would give fisheye effect!
  970. //This can be computed as (mapX - posX + (1 - stepX) / 2) / rayDirX for side == 0, or same formula with Y
  971. //for size == 1, but can be simplified to the code below thanks to how sideDist and deltaDist are computed:
  972. //because they were left scaled to |rayDir|. sideDist is the entire length of the ray above after the multiple
  973. //steps, but we subtract deltaDist once because one step more into the wall was taken above.
  974. if(side == 0) perpWallDist = (sideDistX - deltaDistX);
  975. else perpWallDist = (sideDistY - deltaDistY);
  976. //Calculate height of line to draw on screen
  977. word lineHeight = FP_FPtoInt(FP_Div(FP_intToFP(screenHeight), perpWallDist));
  978. //calculate lowest and highest pixel to fill in current stripe
  979. drawStart = - (lineHeight >> 1) + (screenHeight >> 1);
  980. if(drawStart < 0) drawStart = 0;
  981. drawEnd = (lineHeight >> 1) + (screenHeight >> 1);
  982. if(drawEnd >= screenHeight) drawEnd = screenHeight - 1;
  983. /*
  984. //choose wall color
  985. //give x and y sides different brightness
  986. char color;
  987. switch(worldMap[mapX][mapY])
  988. {
  989. case 1: color = (side == 1) ? COLOR_DARK_RED : COLOR_RED; break;
  990. case 2: color = (side == 1) ? COLOR_DARK_GREEN : COLOR_GREEN; break;
  991. case 3: color = (side == 1) ? COLOR_DARK_BLUE : COLOR_BLUE; break;
  992. case 4: color = (side == 1) ? COLOR_GREY : COLOR_WHITE; break;
  993. default: color = (side == 1) ? COLOR_DARK_YELLOW : COLOR_YELLOW; break;
  994. }
  995. //draw the pixels of the stripe as a vertical line
  996. // Safity checks beforehand
  997. // Currently skips first line of frame as it does not render properly
  998. if (x != 0 && drawStart >= 0 && drawEnd >= drawStart && drawEnd < screenHeight)
  999. {
  1000. RAYFX_drawVertLine(x, drawStart, drawEnd, color);
  1001. }
  1002. */
  1003. //texturing calculations
  1004. texNum = worldMap[mapX][mapY] - 1; //1 subtracted from it so that texture 0 can be used!
  1005. //calculate value of wallX
  1006. fixed_point_t wallX; //where exactly the wall was hit
  1007. if(side == 0) wallX = posY + FP_Mult(perpWallDist, rayDirY);
  1008. else wallX = posX + FP_Mult(perpWallDist, rayDirX);
  1009. word floormask = 0xFFFF;
  1010. wallX &= floormask; // wallX-=floor(wallX)
  1011. //x coordinate on the texture
  1012. word texX = FP_FPtoInt(FP_Mult(wallX, FP_intToFP(texWidth)));
  1013. if(side == 0 && rayDirX > 0) texX = texWidth - texX - 1;
  1014. if(side == 1 && rayDirY < 0) texX = texWidth - texX - 1;
  1015. // TODO: an integer-only bresenham or DDA like algorithm could make the texture coordinate stepping faster
  1016. // How much to increase the texture coordinate per screen pixel
  1017. fixed_point_t step = FP_Div(FP_intToFP(texHeight), FP_intToFP(lineHeight));
  1018. // Starting texture coordinate
  1019. fixed_point_t texPos = FP_Mult(FP_intToFP(drawStart - (screenHeight >> 1) + (lineHeight >> 1)), step);
  1020. // TMP fix for first line not rendering correctly
  1021. if (x > 0)
  1022. {
  1023. RAYFX_drawTextureVertLine(texPos, step, texX, x); // TODO side
  1024. }
  1025. }
  1026. // check which button is held
  1027. if (BDOS_USBkeyHeld(BTN_LEFT))
  1028. {
  1029. //both camera direction and camera plane must be rotated
  1030. rotationAngle -= rotationSpeed;
  1031. if (rotationAngle < 0)
  1032. {
  1033. rotationAngle += 360;
  1034. }
  1035. dirX = LUTdirX[rotationAngle];
  1036. dirY = LUTdirY[rotationAngle];
  1037. planeX = LUTplaneX[rotationAngle];
  1038. planeY = LUTplaneY[rotationAngle];
  1039. }
  1040. else if (BDOS_USBkeyHeld(BTN_RIGHT))
  1041. {
  1042. //both camera direction and camera plane must be rotated
  1043. rotationAngle += rotationSpeed;
  1044. if (rotationAngle >= 360)
  1045. {
  1046. rotationAngle -= 360;
  1047. }
  1048. dirX = LUTdirX[rotationAngle];
  1049. dirY = LUTdirY[rotationAngle];
  1050. planeX = LUTplaneX[rotationAngle];
  1051. planeY = LUTplaneY[rotationAngle];
  1052. }
  1053. if (BDOS_USBkeyHeld(BTN_UP))
  1054. {
  1055. word worldMapX = FP_FPtoInt(posX + FP_Mult(dirX, moveSpeed));
  1056. word worldMapY = FP_FPtoInt(posY);
  1057. if(worldMap[worldMapX][worldMapY] == 0)
  1058. {
  1059. posX += FP_Mult(dirX, moveSpeed);
  1060. }
  1061. worldMapX = FP_FPtoInt(posX);
  1062. worldMapY = FP_FPtoInt(posY + FP_Mult(dirY, moveSpeed));
  1063. if(worldMap[worldMapX][worldMapY] == 0)
  1064. {
  1065. posY += FP_Mult(dirY, moveSpeed);
  1066. }
  1067. }
  1068. else if (BDOS_USBkeyHeld(BTN_DOWN))
  1069. {
  1070. word worldMapX = FP_FPtoInt(posX - FP_Mult(dirX, moveSpeed));
  1071. word worldMapY = FP_FPtoInt(posY);
  1072. if(worldMap[worldMapX][worldMapY] == 0)
  1073. {
  1074. posX -= FP_Mult(dirX, moveSpeed);
  1075. }
  1076. worldMapX = FP_FPtoInt(posX);
  1077. worldMapY = FP_FPtoInt(posY - FP_Mult(dirY, moveSpeed));
  1078. if(worldMap[worldMapX][worldMapY] == 0)
  1079. {
  1080. posY -= FP_Mult(dirY, moveSpeed);
  1081. }
  1082. }
  1083. if (HID_FifoAvailable())
  1084. {
  1085. word c = HID_FifoRead();
  1086. if (c == 27) // escape
  1087. {
  1088. GFX_clearPXframebuffer();
  1089. return 'q';
  1090. }
  1091. }
  1092. }
  1093. return 'q';
  1094. }
  1095. void interrupt()
  1096. {
  1097. // handle all interrupts
  1098. word i = getIntID();
  1099. switch(i)
  1100. {
  1101. case INTID_TIMER1:
  1102. timer1Value = 1; // notify ending of timer1
  1103. break;
  1104. case INTID_TIMER2:
  1105. break;
  1106. case INTID_UART0:
  1107. break;
  1108. case INTID_GPU:
  1109. break;
  1110. case INTID_TIMER3:
  1111. break;
  1112. case INTID_PS2:
  1113. break;
  1114. case INTID_UART1:
  1115. break;
  1116. case INTID_UART2:
  1117. break;
  1118. }
  1119. }