/* Copyright 2020 Ramon Imbao
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

#include "pattern.h"
#include "progmem.h"

// I tried doing this with 32x8 but I can't align it perfectly
const char PROGMEM pattern_a[32][96] = {
    { 255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127 },
    { 127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63 },
    {  63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31 },
    {  31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15 },
    {  15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7 },
    {   7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3 },
    {   3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1 },
    {   1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128 },
    { 128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192 },
    { 192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224 },
    { 224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240 },
    { 240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248 },
    { 248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252 },
    { 252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254 },
    { 254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255 },
    { 255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255 },
    { 255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0 },
    {   0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0 },
    {   0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1 },
    {   1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3 },
    {   3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7 },
    {   7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15 },
    {  15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31 },
    {  31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63 },
    {  63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127 },
    { 127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254 },
    { 254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252 },
    { 252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248 },
    { 248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240 },
    { 240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224 },
    { 224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192 },
    { 192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255,192,224,240,248,252,254,127, 63, 31, 15,  7,  3,  1,  0,  0,255,255,254,252,248,240,224,192,128,  1,  3,  7, 15, 31, 63,127,255 },
};
const char PROGMEM pattern_b[32][96] = {
    {  63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192 },
    { 192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224 },
    { 224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240 },
    { 240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248 },
    { 248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252 },
    { 252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254 },
    { 254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255 },
    { 255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255 },
    { 255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127 },
    { 127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63 },
    {  63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31 },
    {  31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15 },
    {  15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7 },
    {   7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3 },
    {   3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1 },
    {   1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128 },
    { 128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127 },
    { 127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254 },
    { 254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252 },
    { 252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248 },
    { 248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240 },
    { 240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224 },
    { 224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192 },
    { 192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128 },
    { 128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0 },
    {   0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0 },
    {   0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1 },
    {   1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3 },
    {   3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7 },
    {   7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15 },
    {  15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31 },
    {  31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63, 31, 15,  7,  3,  1,  0,  0,128,192,224,240,248,252,254,127,128,  1,  3,  7, 15, 31, 63,127,255,255,254,252,248,240,224,192, 63 },
};