//Roo Run
//  Version 1.0, May 22nd, 2017
//  By Jonathan Holmes (crait)
//
//  Website: http://www.crait.net/
//  Twitter: @crait
//
//  The zoo had to close and now all the animals are trying to escape!
//  Help the kangaroo run away from the animal control who's trying to
//  catch him. Push A and B back and forth as fast as you can to run
//  faster. This game was created for the first Arduboy Game Jam.
//
//  1.0 - May 22, 2017
//    Initial release

#include <Arduboy2.h>
Arduboy2 arduboy;
#include <ArduboyPlaytune.h>
ArduboyPlaytune tunes(arduboy.audio.enabled);

#define SAVELOCATION (EEPROM_STORAGE_SPACE_START + 460)
byte gamestate = 0;
boolean casting = true;
int sign = 1;



unsigned int distance = 0;
byte health = 20;
unsigned int score = 0;
unsigned int highscore = 0;
bool dectype = false;
bool moving = true;
byte movingspeed = 2;
byte gameovertimer = 100;
bool buttontype = false;

const unsigned char gameover[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x3a, 0xe6, 
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, 
0x01, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0xff, 0x06, 0x3c, 0x08, 0x0c, 0x07, 0x04, 
0x04, 0x04, 0x04, 0x0c, 0x1b, 0x78, 0xc0, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 
0xc0, 0x40, 0xc0, 0x98, 0x90, 0x00, 0x01, 0x07, 
0x04, 0x08, 0x18, 0x30, 0x60, 0xff, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xbc, 0xc7, 
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0xff, 0xc0, 0x00, 0x40, 0x40, 0x40, 0xc0, 
0x80, 0x81, 0x01, 0x01, 0x01, 0x00, 0x30, 0xf8, 
0xf8, 0x84, 0x00, 0x60, 0xe0, 0xe1, 0xe3, 0xee, 
0xf8, 0xe8, 0x18, 0x10, 0x30, 0x70, 0x50, 0xd0, 
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0xff, 0x12, 0x12, 0x33, 0x21, 0x21, 0x61, 
0x41, 0x41, 0x81, 0x81, 0xff, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x24, 0x04, 
0x0c, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 
0x00, 0x00, 0x00, 0xc0, 0x70, 0x1f, 0x07, 0x07, 
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0xff, 0x01, 0x03, 0x86, 0x06, 0x06, 0x0e, 
0x0e, 0x0f, 0x0f, 0x0e, 0xfe, 0x0e, 0x06, 0x07, 
0x07, 0x07, 0x0f, 0x0c, 0x08, 0xfd, 0xff, 0x27, 
0x01, 0x00, 0x10, 0x10, 0x30, 0x00, 0x00, 0x00, 
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xe8, 0xe8, 
0xd8, 0xb8, 0xe8, 0x48, 0xd8, 0xb8, 0x30, 0x70, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 
0x00, 0x00, 0xc0, 0xff, 0x00, 0x00, 0x00, 0x80, 
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0xff, 0x18, 0x04, 0x02, 0x00, 0x00, 0x00, 
0x00, 0x04, 0x00, 0x10, 0xff, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x03, 0x06, 
0x0c, 0x0c, 0x0c, 0x1c, 0x32, 0x61, 0x80, 0x00, 
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x81, 0x03, 
0x03, 0x43, 0x41, 0x63, 0x73, 0xf3, 0xf9, 0x7c, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 
0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x07, 
0x0f, 0x1c, 0x1c, 0x18, 0x18, 0x38, 0x30, 0x10, 
0x10, 0x1f, 0x10, 0x10, 0x10, 0x10, 0x10, 0x30, 
0x20, 0x20, 0x20, 0x20, 0x3f, 0x20, 0x20, 0x20, 
0x60, 0x40, 0x40, 0x40, 0x40, 0x7f, 0x42, 0x42, 
0x42, 0x40, 0x40, 0x40, 0xa0, 0x60, 0x3f, 0x00, 
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0xff, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 
0x08, 0x0c, 0x0c, 0x0c, 0xff, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x01, 0x01, 
0x01, 0x01, 0x40, 0x60, 0x20, 0x30, 0x33, 0x33, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 
0x00, 0x00, 0x0f, 0x18, 0x10, 0x20, 0x20, 0x20, 
0xe0, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 
0x20, 0xf0, 0x10, 0x10, 0x18, 0x08, 0x08, 0x08, 
0x08, 0x08, 0x08, 0x08, 0xf8, 0x08, 0x08, 0x08, 
0x08, 0x08, 0x08, 0x08, 0x18, 0xf0, 0x10, 0x10, 
0x10, 0x1e, 0x7d, 0xdb, 0xf9, 0xf3, 0x32, 0x7e, 
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0xff, 0x10, 0x30, 0x20, 0x20, 0x20, 0x20, 
0x20, 0x20, 0x20, 0x20, 0xff, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x18, 0x38, 
0x38, 0x38, 0x28, 0x08, 0x18, 0x10, 0x00, 0x10, 

};


const unsigned char buttons[2][26] PROGMEM = {
  {
    0xff, 0x01, 0x79, 0x15, 0x79, 0x01, 0xff, 0xfe, 
    0x82, 0xaa, 0xd6, 0xfe, 0x00, 0x01, 0x01, 0x01, 
    0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 
  },
  {
    0x00, 0xfe, 0x86, 0xea, 0x86, 0xfe, 0xff, 0x01, 
    0x7d, 0x55, 0x29, 0x01, 0xff, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 
    0x01, 0x01, 
  }
};

const unsigned char whitedude[6][135] PROGMEM = {
{
0x00, 0xc0, 0x40, 0x70, 0x10, 0x98, 0x48, 0xac, 
0x44, 0xa4, 0x54, 0xa4, 0x54, 0xa4, 0x54, 0xa4, 
0x54, 0xa4, 0x0c, 0xc8, 0xc8, 0xd8, 0x10, 0xb0, 
0x20, 0xa0, 0x40, 0x1e, 0x13, 0x10, 0x1a, 0x09, 
0x0a, 0x09, 0x0a, 0x09, 0x0a, 0x09, 0x08, 0x8d, 
0xe0, 0xf9, 0xf8, 0xfd, 0xfc, 0xfe, 0xff, 0x0f, 
0xc7, 0x30, 0x0c, 0x03, 0x01, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x03, 0x73, 0xff, 0xff, 0xff, 0xff, 
0xbf, 0x19, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xe0, 0xef, 
0xff, 0x7f, 0x7f, 0x1f, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x3f, 0x3f, 
0x3f, 0x37, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
},
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 
0x38, 0x8c, 0x47, 0xa9, 0x55, 0xa8, 0x52, 0xa5, 
0x5b, 0x26, 0x1c, 0xb0, 0x80, 0x80, 0x80, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0xff, 0x80, 0x14, 0xaa, 0x55, 0x2a, 0x95, 
0xca, 0xe5, 0xf2, 0xf9, 0xf8, 0xfc, 0xff, 0xef, 
0x0f, 0x83, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x78, 0x42, 
0x41, 0x78, 0x03, 0x0f, 0xff, 0xff, 0xff, 0xff, 
0xff, 0xc7, 0x07, 0x07, 0x03, 0x01, 0x01, 0x0c, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 
0x7c, 0x1c, 0x18, 0x18, 0x38, 0x38, 0x78, 0x79, 
0x7f, 0x3f, 0x0f, 0x07, 0x1f, 0xff, 0xfe, 0xf0, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x01, 0x07, 0x3f, 0x38, 0x30, 0x30, 0x00, 
},
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x60, 
0xb0, 0x58, 0xa8, 0x48, 0xa8, 0x4c, 0xa6, 0x52, 
0xaa, 0x52, 0xaa, 0x12, 0xaa, 0x92, 0xaa, 0x82, 
0x3a, 0x02, 0xfe, 0x00, 0x00, 0xc0, 0x78, 0x8e, 
0x53, 0xa9, 0xd4, 0x6a, 0x25, 0x2a, 0x25, 0x2a, 
0x35, 0x02, 0xf1, 0xfa, 0xf9, 0xf8, 0xfc, 0xff, 
0xcf, 0x07, 0x03, 0xf8, 0x00, 0x0f, 0x00, 0x00, 
0x03, 0x02, 0x02, 0x03, 0x01, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x70, 0xff, 0xff, 0xff, 
0xff, 0xdf, 0x07, 0x06, 0x06, 0x06, 0x76, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 
0xf8, 0x38, 0x18, 0x18, 0x38, 0x30, 0x38, 0x38, 
0x3f, 0x3f, 0x3f, 0x0f, 0x9f, 0xff, 0xf8, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 
0x3f, 0x3f, 0x20, 0x20, 0x00, 0x00, 0x00, 
},
{
0x00, 0xc0, 0x60, 0x20, 0xb0, 0x50, 0x98, 0x48, 
0xac, 0x44, 0xa4, 0x56, 0xa2, 0x52, 0xaa, 0x52, 
0xa2, 0x16, 0xc4, 0xe4, 0xe4, 0xec, 0x08, 0x28, 
0xc8, 0x18, 0xe0, 0x0f, 0x09, 0x0c, 0x06, 0x02, 
0x02, 0x02, 0x02, 0x02, 0x02, 0x42, 0xe2, 0xf2, 
0xf8, 0xfc, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0x03, 
0x63, 0x18, 0x03, 0x01, 0x02, 0x01, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x01, 0x07, 0x7f, 0xff, 0xff, 0xff, 0xef, 
0x8f, 0x0c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x3c, 0x3e, 0x0e, 0x0c, 0x0c, 0xee, 0xfe, 0x3f, 
0x1f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x3f, 
0x3f, 0x31, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
},
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 
0x30, 0x18, 0x48, 0xac, 0xc4, 0x46, 0xd2, 0x8a, 
0x1a, 0x8a, 0xda, 0xc2, 0xd6, 0x04, 0x4c, 0x98, 
0x30, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0xc1, 0xe1, 0xf1, 0xf9, 0x39, 0x38, 
0xf8, 0xf8, 0xfc, 0xfc, 0xff, 0xff, 0x87, 0x17, 
0x20, 0x15, 0xaa, 0x20, 0x0f, 0xf8, 0x00, 0x00, 
0x00, 0x00, 0x04, 0x04, 0x00, 0x07, 0x0f, 0x0f, 
0x06, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xdf, 0x87, 
0x0f, 0x0f, 0x0e, 0x06, 0x07, 0x07, 0x03, 0x00, 
0x03, 0x00, 0x00, 0x00, 0x18, 0x1e, 0x0f, 0x07, 
0x07, 0x0e, 0x0e, 0x1e, 0x1e, 0x1c, 0x3f, 0x3f, 
0x0f, 0x0f, 0xff, 0xfe, 0xe0, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x3f, 
0x3c, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 
},
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x58, 0x4c, 
0x44, 0x54, 0xc4, 0x94, 0xa4, 0x54, 0x24, 0x4c, 
0x08, 0xc8, 0xc8, 0xd8, 0x10, 0x50, 0xb0, 0x60, 
0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf1, 
0xf9, 0xfc, 0xfc, 0xfe, 0xff, 0xe7, 0x07, 0x20, 
0x1d, 0x1a, 0x0a, 0x04, 0x09, 0x0f, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x11, 
0x03, 0x0f, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x0f, 
0x0f, 0x0f, 0x0e, 0x0f, 0x07, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x3e, 
0x1e, 0x0e, 0x0e, 0x0c, 0x0c, 0x1c, 0x1f, 0x1f, 
0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x07, 0x3f, 0x3c, 0x30, 
0x30, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 
}
};

const unsigned char blackdude[6][135] PROGMEM = {
{
0x00, 0x00, 0x80, 0x80, 0xe0, 0x60, 0xb0, 0x50, 
0xb8, 0x58, 0xa8, 0x58, 0xa8, 0x58, 0xa8, 0x58, 
0xa8, 0x58, 0xf0, 0x30, 0x30, 0x20, 0xe0, 0x40, 
0xc0, 0x40, 0x80, 0x00, 0x0c, 0x0f, 0x05, 0x06, 
0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0xc7, 0x72, 
0x1f, 0x06, 0x07, 0x02, 0x03, 0x01, 0x00, 0xf0, 
0x38, 0xcf, 0x33, 0x0c, 0x06, 0x01, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x07, 0xfc, 0x8c, 0x00, 0x00, 0x00, 0x00, 
0x40, 0xe6, 0x3f, 0x06, 0x01, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x80, 0xc0, 0x40, 0x60, 0x30, 0x1f, 0x10, 
0x00, 0x80, 0x80, 0xe0, 0x3f, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x07, 0x3c, 0x00, 0x00, 
0x00, 0x08, 0x0e, 0x3b, 0x01, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
},
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0xc0, 0x70, 0xb8, 0x56, 0xaa, 0x57, 0xad, 0x5a, 
0xa4, 0xd8, 0xe0, 0x40, 0x40, 0x40, 0x40, 0xc0, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x7f, 0xeb, 0x55, 0xaa, 0xd5, 0x6a, 
0x35, 0x1a, 0x0d, 0x06, 0x07, 0x03, 0x00, 0x10, 
0xf0, 0x7c, 0x37, 0x20, 0xe0, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x3d, 
0x3e, 0x07, 0x1c, 0xf0, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x38, 0xe8, 0x88, 0x0c, 0x06, 0x0e, 0x13, 
0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x8e, 
0x82, 0xe2, 0x26, 0x64, 0x44, 0xc4, 0x87, 0x86, 
0x80, 0xc0, 0x70, 0x38, 0xe0, 0x00, 0x01, 0x0f, 
0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 
0x0e, 0x38, 0x00, 0x07, 0x0c, 0x08, 0x38, 
},
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 
0x40, 0xa0, 0x50, 0xb0, 0x50, 0xb0, 0x58, 0xac, 
0x54, 0xac, 0x54, 0xec, 0x54, 0x6c, 0x54, 0x7c, 
0xc4, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x80, 0x70, 
0xac, 0x56, 0x2b, 0x15, 0x1a, 0x15, 0x1a, 0x15, 
0x0a, 0xfd, 0x0e, 0x05, 0x06, 0x07, 0x03, 0x00, 
0x30, 0xf8, 0xfc, 0x07, 0xff, 0x00, 0x00, 0x00, 
0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0xf8, 0x8f, 0x00, 0x00, 0x00, 
0x00, 0x20, 0xf8, 0x89, 0x09, 0xf9, 0x89, 0xff, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x1c, 
0x04, 0xc4, 0x64, 0x64, 0x44, 0x4c, 0x44, 0x47, 
0x40, 0x40, 0x40, 0xf0, 0x60, 0x00, 0x07, 0xfc, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x3c, 
0x00, 0x00, 0x1f, 0x10, 0x30, 0x00, 0x00, 
},
{
0x00, 0x00, 0x80, 0xc0, 0x40, 0xa0, 0x60, 0xb0, 
0x50, 0xb8, 0x58, 0xa8, 0x5c, 0xac, 0x54, 0xac, 
0x5c, 0xe8, 0x38, 0x18, 0x18, 0x10, 0xf0, 0xd0, 
0x30, 0xe0, 0x00, 0x00, 0x06, 0x03, 0x01, 0x01, 
0x01, 0x01, 0x01, 0x01, 0xe1, 0xb1, 0x19, 0x0d, 
0x07, 0x03, 0x01, 0x01, 0x01, 0x00, 0x00, 0xfc, 
0x9c, 0x67, 0x1c, 0x06, 0x01, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x03, 0x0e, 0xf8, 0x80, 0x00, 0x00, 0x00, 0x10, 
0x70, 0xd3, 0x13, 0x1f, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 
0x43, 0x41, 0x71, 0x93, 0xf3, 0x11, 0x01, 0xc0, 
0x60, 0x30, 0x10, 0x10, 0x1f, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x0f, 0x00, 
0x00, 0x0e, 0x1b, 0x10, 0x30, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
},
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0xc0, 0xe0, 0xb0, 0x50, 0x38, 0x38, 0x2c, 0x74, 
0xe4, 0x74, 0x24, 0x3c, 0x28, 0xf8, 0xb0, 0x60, 
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0xe0, 0x30, 0x18, 0x0c, 0x04, 0xc4, 0xc4, 
0x04, 0x06, 0x02, 0x03, 0x00, 0x00, 0x78, 0xe8, 
0xdf, 0xea, 0x55, 0xdf, 0xf0, 0x00, 0x00, 0x00, 
0x00, 0x0e, 0x8a, 0x8a, 0x8f, 0x98, 0x90, 0x10, 
0x19, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x20, 0x78, 
0xd0, 0x10, 0x11, 0x19, 0x08, 0x08, 0x0c, 0x07, 
0x00, 0x00, 0x00, 0x3c, 0x27, 0x21, 0x30, 0x18, 
0x18, 0x11, 0x31, 0x21, 0x21, 0x63, 0x40, 0x40, 
0x70, 0xf0, 0x00, 0x01, 0x1f, 0xf0, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x38, 0x00, 
0x03, 0x0e, 0x08, 0x38, 0x00, 0x00, 0x00, 
},
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x30, 
0x38, 0x28, 0x38, 0x68, 0x58, 0xa8, 0xd8, 0xb0, 
0xf0, 0x30, 0x30, 0x20, 0xe0, 0xa0, 0x40, 0x80, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0xc0, 0x60, 0x30, 0x18, 0x0c, 
0x06, 0x03, 0x03, 0x01, 0x00, 0x18, 0xf8, 0xdf, 
0xa2, 0xa5, 0x95, 0x0b, 0x06, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x5b, 0x2e, 
0x3c, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x70, 0xd0, 
0x10, 0x10, 0x11, 0x10, 0x18, 0x0f, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x43, 0x41, 
0x61, 0x31, 0x11, 0x13, 0x33, 0x23, 0x20, 0xe0, 
0x00, 0x00, 0x07, 0xfc, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x01, 0x0f, 0x38, 0x00, 0x03, 0x0e, 
0x08, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00, 
}
};

const unsigned char whitedec[3][168] PROGMEM = {
  {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0xfe, 0x03, 0xfd, 0x06, 0xfb, 0x0d, 0x06,
    0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0xc0, 0x7f, 0x00, 0x7f, 0x00, 0x7f, 0xc0, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
    0xff, 0x04, 0x7b, 0x7f, 0x7b, 0x04, 0xff, 0x80,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
    0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

  },
  {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0xc0, 0x80,
    0xe0, 0xa0, 0x60, 0xc0, 0xc0, 0x40, 0xc0, 0x00,
    0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x7c, 0xc4, 0x17, 0xd5, 0xd3, 0xd0, 0xd1,
    0xd2, 0xd3, 0xd0, 0xd1, 0xd0, 0x17, 0xd3, 0xd1,
    0xd1, 0xd0, 0xd3, 0xd2, 0x16, 0xc4, 0x7c, 0x00,
    0x00, 0x00, 0xff, 0x00, 0xdd, 0xdd, 0xdd, 0xdd,
    0xdd, 0xc1, 0xdd, 0xdd, 0xdd, 0xdc, 0x1d, 0xdd,
    0xdd, 0xdd, 0xc1, 0xdd, 0x00, 0xff, 0x00, 0x00,
    0x00, 0x00, 0x03, 0x02, 0x02, 0x02, 0x02, 0x02,
    0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
    0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x00, 0x00,

  },
  {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0xe0, 0x3c, 0x44, 0x9c, 0x3f,
    0xe5, 0x11, 0x67, 0x0e, 0x43, 0x89, 0x0f, 0x34,
    0x3c, 0xd0, 0xf0, 0x40, 0xc0, 0x00, 0x00, 0x00,
    0x00, 0x7c, 0xc4, 0x15, 0xd7, 0xd0, 0xd0, 0xd0,
    0xd0, 0x10, 0xd0, 0xd1, 0xd0, 0xd4, 0xd2, 0xd0,
    0xd1, 0xd0, 0xd0, 0xd3, 0x17, 0xc4, 0x7c, 0x00,
    0x00, 0x00, 0xff, 0x00, 0xdd, 0xc1, 0xdd, 0xdd,
    0xdd, 0x1c, 0xdd, 0xdd, 0xdd, 0xc1, 0xdd, 0xdd,
    0xdd, 0xdd, 0xc1, 0xdd, 0x00, 0xff, 0x00, 0x00,
    0x00, 0x00, 0x03, 0x02, 0x02, 0x02, 0x02, 0x02,
    0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
    0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x00, 0x00,

  }
};
const unsigned char blackdec[3][168] PROGMEM = {
  {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0xfc, 0x02, 0xf9, 0x04, 0x02, 0x01,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x80, 0xff, 0x80, 0xff, 0x80, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0xfb, 0x84, 0x80, 0x84, 0xfb, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

  },
  {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00,
    0x00, 0x40, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x38, 0xe8, 0x2a, 0x2c, 0x2f, 0x2e,
    0x2d, 0x2c, 0x2f, 0x2e, 0x2f, 0xe8, 0x2c, 0x2e,
    0x2e, 0x2f, 0x2c, 0x2c, 0xe8, 0x38, 0x00, 0x00,
    0x00, 0x00, 0x00, 0xff, 0x22, 0x22, 0x22, 0x22,
    0x22, 0x3e, 0x22, 0x22, 0x22, 0x23, 0xe2, 0x22,
    0x22, 0x22, 0x3e, 0x22, 0xff, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01,
    0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
    0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,

  },
  {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0xc0, 0xb8, 0x60, 0xc0,
    0x1a, 0xee, 0x98, 0xf0, 0xbc, 0x76, 0xf0, 0xc8,
    0xc0, 0x20, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x38, 0xea, 0x28, 0x2f, 0x2f, 0x2f,
    0x2f, 0xef, 0x2f, 0x2e, 0x2f, 0x2b, 0x2d, 0x2f,
    0x2e, 0x2f, 0x2f, 0x2c, 0xe8, 0x38, 0x00, 0x00,
    0x00, 0x00, 0x00, 0xff, 0x22, 0x3e, 0x22, 0x22,
    0x22, 0xe3, 0x22, 0x22, 0x22, 0x3e, 0x22, 0x22,
    0x22, 0x22, 0x3e, 0x22, 0xff, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01,
    0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
    0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,

  }
};

const unsigned char whitehead[] PROGMEM = {
  0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x60, 0x9e,
  0xc9, 0xe1, 0x5e, 0x50, 0xa0, 0x40, 0x40, 0x80,
  0x00, 0x00, 0x00, 0x3c, 0x42, 0x5a, 0x5d, 0x4e,
  0x47, 0x43, 0x37, 0x0b, 0x0a, 0x0b, 0x0b, 0x17,
  0x17, 0x16, 0x09, 0x06, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};

const unsigned char blackhead[] PROGMEM = {
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x60,
  0x36, 0x1e, 0xa0, 0xa0, 0x40, 0x80, 0x80, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x3c, 0x24, 0x22, 0x31,
  0x38, 0x3c, 0x08, 0x04, 0x05, 0x04, 0x04, 0x08,
  0x08, 0x09, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};

const unsigned char whitenet[] PROGMEM = {
  0x00, 0x00, 0x00, 0x00, 0x18, 0x64, 0x92, 0x29,
  0x55, 0x29, 0x55, 0xa9, 0xd5, 0x4a, 0x54, 0xc8,
  0x10, 0xe0, 0x40, 0xa0, 0x50, 0x68, 0xa8, 0xb4,
  0x5a, 0x2b, 0x2c, 0x16, 0x15, 0x14, 0x14, 0x0a,
  0x0b, 0x05, 0x04, 0x03, 0x00, 0x00, 0x01, 0x01,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};

const unsigned char blacknet[] PROGMEM = {
  0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x6c, 0xd6,
  0xaa, 0xd6, 0xaa, 0x56, 0x2a, 0xb4, 0xa8, 0x30,
  0xe0, 0x00, 0x00, 0x40, 0xa0, 0x90, 0x50, 0x48,
  0x24, 0x14, 0x13, 0x09, 0x0a, 0x0b, 0x0b, 0x05,
  0x04, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};

const unsigned char whitetrash[] PROGMEM = {
  0xf8, 0x8c, 0x34, 0xb4, 0xb6, 0xb3, 0xb5, 0xb5,
  0xb5, 0xb5, 0xb5, 0xb3, 0xb6, 0xb4, 0x34, 0x8c,
  0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x3f, 0xe0, 0x1f, 0xf0, 0x0f,
  0xff, 0x00, 0xff, 0x00, 0xff, 0x0f, 0xf0, 0x1f,
  0xe0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x18,
  0x17, 0x14, 0x17, 0x14, 0x17, 0x14, 0x17, 0x14,
  0x17, 0x18, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};

const unsigned char blacktrash[] PROGMEM = {
  0x00, 0x70, 0xc8, 0x48, 0x48, 0x4c, 0x4a, 0x4a,
  0x4a, 0x4a, 0x4a, 0x4c, 0x48, 0x48, 0xc8, 0x70,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x0f, 0xf0,
  0x00, 0xff, 0x00, 0xff, 0x00, 0xf0, 0x0f, 0xe0,
  0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07,
  0x08, 0x0b, 0x08, 0x0b, 0x08, 0x0b, 0x08, 0x0b,
  0x08, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};

const unsigned char whitespill[] PROGMEM = {
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
  0xd0, 0x30, 0x60, 0xc0, 0xe0, 0xa0, 0x60, 0xc0,
  0x40, 0x40, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x02, 0xba,
  0xaa, 0xaa, 0xaa, 0xaa, 0xa9, 0xb5, 0xb5, 0xb5,
  0xff, 0x00, 0x01, 0x41, 0x09, 0x91, 0x33, 0x67,
  0xce, 0x14, 0xe2, 0x01, 0x01, 0x03, 0x26, 0x4c,
  0x98, 0x30, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x07,
  0x08, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x12, 0x14,
  0x14, 0x00, 0x0e, 0x12, 0x12, 0x12, 0x32, 0x52,
  0x52, 0x52, 0x52, 0x52, 0x32, 0x12, 0x12, 0x12,
  0x0e, 0x00, 0x16, 0x10, 0x18, 0x0f,
};

const unsigned char blackspill[] PROGMEM = {
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
  0x20, 0xc0, 0x80, 0x00, 0x00, 0x40, 0x80, 0x00,
  0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, 0xfd, 0x45,
  0x55, 0x55, 0x55, 0x55, 0x56, 0x4a, 0x4a, 0x4a,
  0x00, 0xff, 0xfe, 0xbe, 0xf6, 0x6e, 0xcc, 0x98,
  0x31, 0xeb, 0x1d, 0xfe, 0xfe, 0xfc, 0xd8, 0xb0,
  0x60, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x18,
  0x17, 0x15, 0x15, 0x15, 0x15, 0x35, 0x2d, 0x2b,
  0x2b, 0x3f, 0x31, 0x2d, 0x2d, 0x6d, 0xcd, 0xad,
  0xad, 0xad, 0xad, 0xad, 0xcd, 0x6d, 0x2d, 0x2d,
  0x31, 0x1f, 0x09, 0x0f, 0x07, 0x00,
};


const unsigned char whiteroo[] PROGMEM = {
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0,
  0x40, 0x60, 0x20, 0xb0, 0x90, 0x90, 0xd0, 0xd0,
  0x90, 0x30, 0x20, 0xa0, 0x20, 0xb7, 0xdd, 0xe9,
  0x73, 0xb6, 0xac, 0xa8, 0x98, 0xf0, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0,
  0x90, 0x30, 0x60, 0x40, 0x60, 0x30, 0x18, 0x8c,
  0xc6, 0x43, 0xe1, 0xe4, 0x62, 0x23, 0x47, 0x4f,
  0x6f, 0x3d, 0xb3, 0x96, 0xc9, 0x63, 0x73, 0x56,
  0xe5, 0x31, 0x98, 0xe6, 0x3f, 0x01, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x02, 0x02,
  0x02, 0x03, 0x01, 0x01, 0x00, 0xf0, 0x9f, 0x80,
  0xc0, 0x7e, 0x02, 0x03, 0x01, 0x01, 0x01, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00,
};

const unsigned char blackroo[] PROGMEM = {
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x80, 0x80, 0xc0, 0x40, 0x60, 0x60, 0x20, 0x20,
  0x60, 0xc0, 0xc0, 0x40, 0xc0, 0x40, 0x22, 0x16,
  0x8c, 0x48, 0x50, 0x50, 0x60, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x60, 0xc0, 0x80, 0x80, 0x80, 0xc0, 0xe0, 0x70,
  0x38, 0x3c, 0x1e, 0x1b, 0x9d, 0xdc, 0xb8, 0xb0,
  0x90, 0xc2, 0x4c, 0x69, 0x36, 0x1c, 0x0c, 0x29,
  0x1a, 0xce, 0x67, 0x19, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x7f,
  0x3f, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00,
};

const unsigned char whitejump[] PROGMEM = {
  0xc0, 0x40, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x80, 0x80, 0xc0, 0x40, 0x60, 0x30, 0x10,
  0x98, 0xc8, 0xec, 0xa4, 0x64, 0xc4, 0xcc, 0x98,
  0x90, 0xb0, 0xa0, 0xa0, 0x20, 0xb0, 0xdf, 0xe9,
  0x71, 0xb7, 0xac, 0xa8, 0x98, 0xf0, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x03, 0x06, 0x0c, 0x19,
  0x13, 0x32, 0x26, 0x24, 0x24, 0x24, 0x24, 0x26,
  0x32, 0x12, 0x13, 0x11, 0x11, 0x11, 0x18, 0x08,
  0x0a, 0x08, 0x09, 0x1b, 0x37, 0xef, 0x85, 0x19,
  0x2b, 0x16, 0x80, 0xf0, 0xf9, 0x5b, 0x49, 0x80,
  0xe1, 0x39, 0x0c, 0x06, 0x03, 0x01, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x1e, 0x13, 0x10, 0x30, 0x62, 0xc7, 0x8c,
  0x99, 0xf1, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00,
};

const unsigned char blackjump[] PROGMEM = {
  0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xe0,
  0x60, 0x30, 0x10, 0x58, 0x98, 0x38, 0x30, 0x60,
  0x60, 0x40, 0x40, 0x40, 0xc0, 0x40, 0x20, 0x16,
  0x8e, 0x48, 0x50, 0x50, 0x60, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x06,
  0x0c, 0x0c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
  0x0c, 0x0c, 0x0c, 0x0e, 0x0e, 0x0e, 0x07, 0x07,
  0x05, 0x07, 0x06, 0x04, 0x08, 0x10, 0x7a, 0xe6,
  0xd4, 0xe9, 0x7f, 0x0f, 0x06, 0xa4, 0xb6, 0x7f,
  0x1e, 0x06, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x0c, 0x0f, 0x0f, 0x1d, 0x38, 0x70,
  0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00,
};


const unsigned char scoreboard[] PROGMEM = {
  0xff, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
  0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
  0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
  0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
  0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xff, 0x0f,
  0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
  0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
  0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
  0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
  0x08, 0x08, 0x08, 0x08, 0x08, 0x0f,
};

const unsigned char wall[] PROGMEM = {
  0x11, 0x90, 0x90, 0x91, 0x01, 0x80, 0xff, 0x0c,
  0x0c, 0x0c, 0x0c, 0x08, 0x08, 0xff, 0x8f, 0x0c,
  0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c,
  0x08, 0xff, 0xcf, 0x0c, 0x0c, 0x0c, 0x0c, 0x08,
  0x08, 0xff, 0x91, 0x91, 0x91, 0x81, 0xff, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0xff, 0x88, 0x88, 0x88, 0x08, 0x00, 0x08,
  0xff, 0x60, 0x60, 0x60, 0x60, 0x40, 0x40, 0xff,
  0x7f, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x40,
  0x40, 0x40, 0x40, 0xff, 0x7f, 0x60, 0x60, 0x60,
  0x60, 0x40, 0x40, 0xff, 0x88, 0x88, 0x08, 0x08,
  0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0xff, 0x04, 0x20, 0x24, 0x04,
  0x20, 0x04, 0xff, 0x80, 0x80, 0x80, 0x80, 0x00,
  0x00, 0xff, 0xfe, 0x80, 0x80, 0x80, 0x80, 0x80,
  0x80, 0x80, 0x80, 0x80, 0x00, 0xff, 0xff, 0x80,
  0x80, 0x80, 0x80, 0x80, 0x00, 0xff, 0x20, 0x24,
  0x04, 0x04, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x89, 0x89,
  0x88, 0x89, 0x89, 0xe8, 0x89, 0x89, 0x89, 0x8f,
  0x89, 0x89, 0x89, 0xf9, 0x89, 0x89, 0x89, 0x8d,
  0x89, 0x81, 0x89, 0x89, 0x89, 0x89, 0xf9, 0x89,
  0x8f, 0x89, 0x89, 0x89, 0x89, 0x89, 0x81, 0x89,
  0x88, 0x89, 0xb9, 0x88, 0xff, 0x40, 0x40, 0x40,
  0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0xff,
  0x24, 0x24, 0x24, 0x27, 0x24, 0x24, 0x3c, 0x24,
  0x24, 0x24, 0x26, 0x24, 0x2c, 0x24, 0x24, 0x27,
  0x24, 0x24, 0x3c, 0x24, 0x24, 0x25, 0x24, 0x24,
  0x24, 0x2c, 0x24, 0x24, 0x27, 0x24, 0x24, 0x3c,
  0x24, 0x24, 0x27, 0x24, 0x24, 0x24, 0x7f, 0x40,
  0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
  0x40, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00,
};


const unsigned char title[] PROGMEM = {
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x1f, 0xe0, 0x07, 0x7f, 0xfe, 0xfc,
  0xf9, 0xf9, 0xe2, 0xe2, 0xec, 0xc8, 0xd0, 0x90,
  0xa0, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x80, 0x40, 0x20, 0x90, 0xc8, 0xe8,
  0xe4, 0xf4, 0xf2, 0xf9, 0xf2, 0x84, 0x28, 0xd0,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x01, 0x06, 0x08, 0x30, 0x47,
  0x9f, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xfe, 0xfc, 0xf9, 0xf2, 0xc4, 0x98, 0x20,
  0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x80, 0x40, 0x60, 0x10, 0xc8, 0xe4,
  0xf2, 0xf9, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xff, 0x7f, 0x1f, 0xcf, 0xe1, 0xdc, 0xc3,
  0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0xc0, 0xc0,
  0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
  0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0,
  0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
  0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0,
  0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
  0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x01, 0x06, 0x08, 0x33, 0xc7, 0x1f, 0x7f,
  0xef, 0xff, 0xff, 0x9f, 0xb7, 0xef, 0xff, 0xff,
  0xfe, 0xf8, 0xf3, 0xe4, 0xe8, 0xe8, 0xe4, 0xf4,
  0xf2, 0xf9, 0xfc, 0xfe, 0xff, 0xff, 0x7f, 0xff,
  0x7f, 0x3f, 0xbf, 0xff, 0x1f, 0xcf, 0x23, 0x1b,
  0x09, 0x64, 0x66, 0x67, 0x66, 0x66, 0x66, 0x66,
  0x66, 0x66, 0x66, 0x00, 0x00, 0xfc, 0xff, 0xff,
  0xff, 0xe7, 0xe1, 0xe1, 0xe1, 0xff, 0xff, 0xff,
  0xff, 0x03, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff,
  0xff, 0x07, 0x03, 0x03, 0x03, 0xff, 0xff, 0xff,
  0xff, 0x07, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff,
  0xff, 0x07, 0x03, 0x03, 0x03, 0xff, 0xff, 0xff,
  0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x2c, 0x04, 0x20, 0x18, 0x00, 0x20, 0x00, 0x00,
  0x08, 0x20, 0xa0, 0x10, 0x00, 0x08, 0x10, 0x80,
  0x42, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x88, 0x70,
  0x03, 0xff, 0xff, 0x7f, 0x7f, 0x7f, 0xfd, 0xbf,
  0xff, 0x3f, 0xff, 0x7f, 0xbb, 0x8f, 0xbf, 0x7f,
  0x3b, 0x5f, 0xff, 0xf3, 0xfc, 0xf0, 0xfe, 0x3e,
  0x1f, 0xc3, 0x3b, 0x08, 0x04, 0x03, 0x20, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, 0x06,
  0xe6, 0xe6, 0x06, 0x00, 0xf8, 0xff, 0xff, 0xff,
  0x0f, 0x01, 0x03, 0x1f, 0xff, 0xff, 0xff, 0xf9,
  0x01, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff,
  0xff, 0xe0, 0xe0, 0xe0, 0xf8, 0xff, 0xff, 0xff,
  0x0f, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff,
  0xff, 0xe0, 0xe0, 0xe0, 0xf8, 0xff, 0xff, 0xff,
  0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x64, 0xc0, 0x20, 0x00, 0x00, 0x50, 0x00, 0x88,
  0x02, 0x01, 0x20, 0x50, 0x20, 0x00, 0x00, 0x00,
  0x80, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x08, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x07, 0x70,
  0xff, 0xff, 0xfe, 0xf0, 0xc0, 0xe8, 0xf8, 0xff,
  0xff, 0x7f, 0xbf, 0xfd, 0xff, 0xde, 0xff, 0xa0,
  0x7c, 0xf8, 0xf0, 0x80, 0x80, 0xc0, 0xe0, 0x05,
  0xf0, 0xbf, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0x30,
  0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xf0, 0x70, 0x70,
  0x70, 0xf0, 0xf0, 0xf0, 0xf1, 0xf1, 0x01, 0x01,
  0x00, 0x00, 0xf0, 0xf0, 0xf1, 0xf1, 0x01, 0x01,
  0x00, 0x00, 0xf0, 0xf0, 0xf1, 0xf1, 0x01, 0x01,
  0x01, 0x01, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1,
  0xf0, 0xf0, 0xf0, 0xf0, 0xf1, 0xf1, 0x01, 0x01,
  0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x74, 0xf4, 0xf4, 0xe4, 0xe8, 0xe8, 0xe8, 0xc8,
  0xe8, 0xe8, 0xc8, 0xca, 0xe8, 0xe9, 0xc8, 0xd0,
  0xd0, 0xd1, 0xd0, 0x91, 0xd0, 0xd1, 0xd2, 0xd0,
  0x12, 0xd0, 0x50, 0x90, 0x5f, 0x80, 0xf0, 0xff,
  0xbf, 0x7f, 0xeb, 0xcf, 0x9f, 0xff, 0x9f, 0xf7,
  0x71, 0xbd, 0xbf, 0x7f, 0x7f, 0x6f, 0x7f, 0x7d,
  0xbc, 0xf2, 0xe7, 0x1f, 0x07, 0xe3, 0x18, 0x06,
  0x11, 0x19, 0x99, 0x99, 0x99, 0x99, 0x99, 0x00,
  0x00, 0xff, 0xff, 0xff, 0xff, 0x79, 0xf8, 0xf8,
  0xf8, 0xff, 0xff, 0x7f, 0x7f, 0x00, 0x00, 0x00,
  0x00, 0xfe, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00,
  0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00,
  0x00, 0xfe, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00,
  0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
  0x9f, 0x69, 0xb6, 0x69, 0x5e, 0x37, 0x87, 0x5f,
  0x87, 0xef, 0x57, 0x3f, 0x8b, 0x37, 0x4b, 0x07,
  0x15, 0x0f, 0xc5, 0xab, 0xd5, 0x4e, 0x75, 0xa6,
  0x60, 0x5a, 0x8c, 0xf2, 0xad, 0xf4, 0x50, 0x7f,
  0xbf, 0xfe, 0xf5, 0xcf, 0xbb, 0xff, 0x7f, 0xff,
  0xfe, 0xf8, 0xe0, 0xc0, 0xc0, 0xc0, 0xc0, 0x60,
  0xf8, 0x9c, 0x0f, 0xc0, 0x3e, 0x01, 0x00, 0x00,
  0x80, 0x00, 0x01, 0x01, 0x39, 0x39, 0x01, 0x00,
  0x7e, 0x7f, 0x7f, 0x7f, 0x03, 0x00, 0x00, 0x07,
  0x7f, 0x7f, 0x7f, 0x7e, 0x00, 0x00, 0x00, 0x00,
  0x7c, 0x7f, 0x7f, 0x7f, 0x7f, 0x78, 0x78, 0x78,
  0x7e, 0x7f, 0x7f, 0x7f, 0x03, 0x00, 0x00, 0x00,
  0x7c, 0x7f, 0x7f, 0x7f, 0x07, 0x00, 0x00, 0x00,
  0x7e, 0x7f, 0x7f, 0x7f, 0x03, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
  0x00, 0x20, 0x00, 0x08, 0x01, 0x00, 0x00, 0x01,
  0x2b, 0xd5, 0x09, 0xea, 0x57, 0x68, 0x1b, 0x2d,
  0x8a, 0x37, 0x11, 0x00, 0x12, 0x04, 0x90, 0xc0,
  0xe8, 0x5a, 0xb6, 0xea, 0xbf, 0xe5, 0xfa, 0xf7,
  0xd8, 0xff, 0xf4, 0xeb, 0xbe, 0xff, 0xf7, 0xfd,
  0xeb, 0xfe, 0xff, 0xff, 0xfe, 0x57, 0x01, 0x07,
  0x01, 0x03, 0x04, 0x35, 0x02, 0x03, 0x15, 0x6b,
  0xbf, 0xff, 0x40, 0x0f, 0xf0, 0x00, 0x00, 0x80,
  0x40, 0x20, 0xd0, 0x80, 0x20, 0x20, 0x60, 0x08,
  0xb0, 0x40, 0x44, 0x4a, 0x14, 0x80, 0x22, 0x08,
  0x10, 0x00, 0x20, 0x08, 0x24, 0x02, 0x28, 0x04,
  0x22, 0x00, 0x10, 0x00, 0x08, 0x02, 0x00, 0x00,
  0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00,
  0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x62,
  0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00,
  0x08, 0x00, 0x00, 0x01, 0x24, 0x05, 0x10, 0x00,
};

const unsigned char me[] PROGMEM = {
  0x45, 0x8a, 0x15, 0xaa, 0x15, 0xaa, 0xd5, 0x6a,
  0x34, 0x28, 0x21, 0x32, 0x1d, 0x0a, 0x0c, 0x06,
  0x03, 0x02, 0x07, 0x02, 0x23, 0x41, 0xa0, 0x41,
  0x80, 0x40, 0x81, 0x40, 0x20, 0x80, 0x40, 0x80,
  0x40, 0x20, 0x08, 0xc7, 0x7d, 0xa2, 0x55, 0xa2,
  0x51, 0xa8, 0x15, 0x88, 0x44, 0xa2, 0x51, 0xaa,
  0x54, 0xa8, 0x51, 0x82, 0x05, 0xff, 0x00, 0x00,
  0x41, 0x80, 0x80, 0x00, 0x80, 0xe0, 0xf0, 0xf0,
  0xf0, 0xf0, 0xe0, 0x60, 0x60, 0x60, 0x68, 0xed,
  0xe4, 0xe3, 0xe0, 0xe0, 0x61, 0x72, 0xe1, 0x02,
  0xe1, 0x32, 0x1a, 0xaf, 0x11, 0x88, 0x54, 0x8a,
  0x45, 0x2a, 0x05, 0x92, 0x45, 0xa2, 0x41, 0xa0,
  0x55, 0xaa, 0x55, 0xaa, 0x55, 0xbf, 0xe0, 0x00,
  0x00, 0x00, 0x00, 0x3c, 0xfe, 0xff, 0xff, 0xff,
  0x1d, 0xec, 0x36, 0x37, 0xf7, 0xf7, 0xee, 0x1f,
  0xff, 0x3f, 0xdf, 0x2e, 0x37, 0xf6, 0xee, 0x1c,
  0x03, 0x7e, 0x55, 0xca, 0xc5, 0xa2, 0x51, 0xa8,
  0x54, 0xaa, 0x55, 0x2a, 0x15, 0x8a, 0x45, 0x22,
  0x51, 0xa2, 0x54, 0xa0, 0x55, 0xfe, 0xc3, 0xbc,
  0x66, 0x40, 0x00, 0x38, 0xdf, 0x7f, 0xbf, 0xff,
  0xff, 0xfe, 0x7d, 0x7d, 0x7d, 0xfd, 0xfe, 0x3f,
  0x7f, 0xff, 0xf0, 0x6d, 0x1d, 0xbd, 0xfe, 0xff,
  0xe0, 0x83, 0x3f, 0xc0, 0x7f, 0xa2, 0x55, 0xa2,
  0x51, 0x28, 0x04, 0xa2, 0x51, 0xa8, 0x54, 0xaa,
  0x11, 0xa2, 0x15, 0xa2, 0xc5, 0x6a, 0x45, 0x63,
  0x41, 0x6b, 0x5e, 0x78, 0x71, 0xa6, 0x4b, 0x8d,
  0x97, 0x9c, 0x38, 0x31, 0x23, 0x06, 0x46, 0x4d,
  0x4d, 0x6d, 0x72, 0x7f, 0x6f, 0x1f, 0x37, 0x0f,
  0x1d, 0xcb, 0xe0, 0x7f, 0x55, 0x6a, 0x45, 0x40,
  0xc0, 0x8a, 0xc5, 0x6a, 0xb5, 0xda, 0xed, 0xca,
  0x3d, 0xce, 0xf3, 0xfd, 0xfe, 0xf8, 0x87, 0x7f,
  0xff, 0xff, 0xff, 0xff, 0xc0, 0xbf, 0xbe, 0xbd,
  0xdb, 0x57, 0xa7, 0xcf, 0xb7, 0x8b, 0xfa, 0xf6,
  0x76, 0xa6, 0xca, 0x76, 0xea, 0x9c, 0x5f, 0xdf,
  0xc0, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x0f,
  0xb6, 0xb9, 0xfb, 0xf8, 0xf3, 0xf7, 0xff, 0xf8
};


#define NOISEMENUCLICK 130
#define INSERTCOIN 70
#define GETCOINS 500

void sound(int pitch, long duration) {
  if (arduboy.audio.enabled()) {
    tunes.tone(pitch, duration);
  }
}

void continuestate(byte tostate) {
  if (arduboy.justPressed(A_BUTTON)) {
    sound(NOISEMENUCLICK, 100);
    gamestate = tostate;
  }
}

void resetvariables() {
  distance = 0;
  health = 20;
  score = 0;
  moving = true;
  movingspeed = 2;
  gameovertimer = 100;
}

void setup() {
  arduboy.begin();
  arduboy.setFrameRate(60);
  arduboy.display();

  tunes.initChannel(PIN_SPEAKER_1);
#ifndef AB_DEVKIT
  tunes.initChannel(PIN_SPEAKER_2);
#else
  tunes.initChannel(PIN_SPEAKER_1);
  tunes.toneMutesScore(true);
#endif

  EEPROM.get(SAVELOCATION, highscore);
  if (highscore > 65000) {
    highscore = 0;
  }

  Serial.begin(9600);
  arduboy.clear();
}

void loop() {
  if (!(arduboy.nextFrame())) {
    return;
  }

  arduboy.pollButtons();

  arduboy.clear();
  int loc = 0;
  switch (gamestate) {
    case 0: //Credits Screen
      arduboy.drawBitmap(8, 8, me, 48, 48, WHITE);
      arduboy.setCursor(75, 8);
      arduboy.print(F("Jonathan"));
      arduboy.setCursor(87, 18);
      arduboy.print(F("Holmes"));
      arduboy.setCursor(86, 38);
      arduboy.print(F("@crait"));
      arduboy.setCursor(68, 49);
      arduboy.print(F("crait.net"));
      continuestate(1);
      break;
    case 1: //Title Screen
      resetvariables();
      arduboy.setCursor(0, 0);
      arduboy.drawBitmap(0, 0, title, 128, 64, WHITE);
      continuestate(2);
      break;
    case 2: //Title Screen
      resetvariables();
      arduboy.setCursor(42, 20);
      arduboy.print(F("Hi-Score:"));
      arduboy.setCursor(55, 30);
      arduboy.print(highscore);
      continuestate(3);
      break;
    case 3: //Game
      if (moving) {
        distance += movingspeed;
        if((arduboy.justPressed(A_BUTTON) && buttontype) || (arduboy.justPressed(B_BUTTON) && !buttontype)) {
          buttontype = !buttontype;
          if (health <= 40) {
            health++;
          }
        }
        if (distance % 10 == 0) {
          score++;
          health--;
        }
        if (distance % 1000 == 999) {
          movingspeed++;
        }
      }

      if(health <= 0) {
        gamestate = 4;
        if(score > highscore) {
          highscore = score;
          EEPROM.update(SAVELOCATION, highscore);
        }
      }

      arduboy.drawLine((200 - (distance + 18) % 200) - 64, 38, (264 - ((distance + 18) % 200) * 2) - 64, 100, WHITE);
      arduboy.drawLine((200 - (distance + 43) % 200) - 64, 38, (264 - ((distance + 43) % 200) * 2) - 64, 100, WHITE);
      arduboy.drawLine((200 - (distance + 68) % 200) - 64, 38, (264 - ((distance + 68) % 200) * 2) - 64, 100, WHITE);
      arduboy.drawLine((200 - (distance + 93) % 200) - 64, 38, (264 - ((distance + 93) % 200) * 2) - 64, 100, WHITE);
      arduboy.drawLine((200 - (distance + 118) % 200) - 64, 38, (264 - ((distance + 118) % 200) * 2) - 64, 100, WHITE);
      arduboy.drawLine((200 - (distance + 143) % 200) - 64, 38, (264 - ((distance + 143) % 200) * 2) - 64, 100, WHITE);
      arduboy.drawLine((200 - (distance + 168) % 200) - 64, 38, (264 - ((distance + 168) % 200) * 2) - 64, 100, WHITE);
      arduboy.drawLine((200 - (distance + 193) % 200) - 64, 38, (264 - ((distance + 193) % 200) * 2) - 64, 100, WHITE);


      arduboy.drawBitmap(0 - distance % 50, 0, wall, 50, 42, WHITE);
      arduboy.drawBitmap(50 - distance % 50, 0, wall, 50, 42, WHITE);
      arduboy.drawBitmap(100 - distance % 50, 0, wall, 50, 42, WHITE);
      arduboy.drawBitmap(150 - distance % 50, 0, wall, 50, 42, WHITE);

      loc = finddepth((168 - (distance) % 168) - 60, 38, (224 - ((distance) % 168) * 2) - 60, 100, 7);
      if (loc < -20) {
        dectype = random(2);
      }

      arduboy.drawBitmap(loc, -4, whitedec[dectype], 24, 50, WHITE);
      arduboy.drawBitmap(loc, -4, blackdec[dectype], 24, 50, BLACK);


      arduboy.drawBitmap(0, 15, blackdude[arduboy.frameCount / 10 % 6], 27, 38, BLACK);
      arduboy.drawBitmap(0, 15, whitedude[arduboy.frameCount / 10 % 6], 27, 38, WHITE);


      arduboy.fillRect(77, 2, 39, 12, BLACK);
      arduboy.drawBitmap(77, 2, scoreboard, 39, 12, WHITE);

      arduboy.drawBitmap(108, 0, whitehead, 18, 18, WHITE);
      arduboy.drawBitmap(108, 0, blackhead, 18, 18, BLACK);

      arduboy.drawBitmap(108 - health, 0, whitenet, 18, 18, WHITE);
      arduboy.drawBitmap(108 - health, 0, blacknet, 18, 18, BLACK);

      if (arduboy.frameCount % 60 < 10) {
        arduboy.drawBitmap(-5 + 3 * health, 32, blackroo, 52, 24, BLACK);
        arduboy.drawBitmap(-5 + 3 * health, 32, whiteroo, 52, 24, WHITE);
      } else {
        arduboy.drawBitmap(-10 + 3 * health, 30, blackjump, 52, 24, BLACK);
        arduboy.drawBitmap(-10 + 3 * health, 30, whitejump, 52, 24, WHITE);
      }


      loc = finddepth((168 - (distance) % 168) - 60, 38, (224 - ((distance) % 168) * 2) - 60, 100, 18);
      //arduboy.fillRect(loc, 38 - 10 + 18, 24, 10, WHITE);

      arduboy.fillRect(113, 53, 13, 9, BLACK);
      arduboy.drawBitmap(113, 53, buttons[buttontype], 13, 9, WHITE);

      arduboy.fillRect(2, 2, 39, 12, BLACK);
      arduboy.drawBitmap(2, 2, scoreboard, 39, 12, WHITE);
      arduboy.setCursor(4, 4);
      arduboy.print(score);
      break;
    case 4: //Game Over
      arduboy.drawBitmap(0, 0, gameover, 128, 64, WHITE);
      arduboy.print(F("Game Over\n"));
      if(highscore == score) {
        arduboy.print(F("\nNew\nHi-Score!\n\n"));
        arduboy.print(highscore);
      } else {
        arduboy.print(F("\nScore\n\n"));
        arduboy.print(score);
      }
      if(gameovertimer > 0) {
        gameovertimer--;
      } else {
        continuestate(0);
      }
      break;
  }

  if (casting) {
    Serial.write(arduboy.getBuffer(), 128 * 64 / 8);
  }
  arduboy.display();
}

int16_t finddepth(int16_t x0, int16_t y0, int16_t x1, int16_t y1, uint8_t depth)
{
  bool steep = abs(y1 - y0) > abs(x1 - x0);
  if (steep) {
    arduboy.swap(x0, y0);
    arduboy.swap(x1, y1);
  }

  if (x0 > x1) {
    arduboy.swap(x0, x1);
    arduboy.swap(y0, y1);
  }

  int16_t dx, dy;
  dx = x1 - x0;
  dy = abs(y1 - y0);

  int16_t err = dx / 2;
  int8_t ystep;

  if (y0 < y1)
  {
    ystep = 1;
  }
  else
  {
    ystep = -1;
  }

  for (int16_t steps = 0; x0 + steps <= x1; steps++)
  {
    if (steep)
    {
      if (steps >= depth) {
        return y0;
      }
      //arduboy.drawPixel(y0, x0 + steps, WHITE);
    }
    else
    {
      if (steps >= depth) {
        return x0;
      }
      //arduboy.drawPixel(x0 + steps, y0, WHITE);
    }

    err -= dy;
    if (err < 0)
    {
      y0 += ystep;
      err += dx;
    }
  }

  return 0;
}
