//==============================================================================
//  Copyright 2011 Meta Watch Ltd. - http://www.MetaWatch.org/
// 
//  Licensed under the Meta Watch License, Version 1.0 (the "License");
//  you may not use this file except in compliance with the License.
//  You may obtain a copy of the License at
//  
//      http://www.MetaWatch.org/licenses/license-1.0.html
//
//  Unless required by applicable law or agreed to in writing, software
//  distributed under the License is distributed on an "AS IS" BASIS,
//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//  See the License for the specific language governing permissions and
//  limitations under the License.
//==============================================================================

#include <stdio.h>
#include "Fonts.h"

/*! The number of printable characters in the font tables */
#define PRINTABLE_CHARACTERS ( 94 )

const unsigned char MetaWatch5table[PRINTABLE_CHARACTERS][5];
const unsigned char MetaWatch7table[PRINTABLE_CHARACTERS][7];
const u16t MetaWatch16table[PRINTABLE_CHARACTERS][16];
const u16t MetaWatchTimeTable[TOTAL_TIME_CHARACTERS][19];
const unsigned char MetaWatchMonospaced10Table[PRINTABLE_CHARACTERS][10];

const unsigned char MetaWatch5width[PRINTABLE_CHARACTERS];
const unsigned char MetaWatch7width[PRINTABLE_CHARACTERS];
const unsigned char MetaWatch16width[PRINTABLE_CHARACTERS];
const unsigned char MetaWatchTimeWidth[TOTAL_TIME_CHARACTERS];

/*! Font Structure
 *
 * \param Type is the enumerated type of font
 * \param Height
 * \param Spacing is the horizontal spacing that should be inserted when
 * drawing characters
 */
typedef struct
{
  etFontType Type;
  unsigned char Height;
  unsigned char Spacing;
} tFont;

static tFont CurrentFont;

void SetFont(etFontType Type)
{
  switch (Type)
  {
  case MetaWatch5:
    CurrentFont.Type = Type;
    CurrentFont.Height = 5;
    CurrentFont.Spacing = 1;
    break;
  
  case MetaWatch7:
    CurrentFont.Type = Type;
    CurrentFont.Height = 7;
    CurrentFont.Spacing = 1;
    break;
  
  case MetaWatch16:
    CurrentFont.Type = Type;
    CurrentFont.Height = 16;
    CurrentFont.Spacing = 1;
    break;
    
  case MetaWatchTime:
    CurrentFont.Type = Type;
    CurrentFont.Height = 19;
    CurrentFont.Spacing = 1;
    break;

  case MetaWatchMonospaced10:
    CurrentFont.Type = Type;
    CurrentFont.Height = 10;
    CurrentFont.Spacing = 0;
    break;    

  default:
    //printf("Undefined Font Selected\r\n");
    break;
  }  
}

unsigned char MapDigitToIndex(unsigned char Digit)
{
  /* default is a space (the first printable character) */
  return (Digit < 10 ? Digit + 0x10 : 0);
}


unsigned char GetCharacterWidth(unsigned char Character)
{ 
  unsigned char index = MapCharacterToIndex(Character);
  unsigned char Width = 0;
  
  switch (CurrentFont.Type)
  {
  case MetaWatch5:    Width = MetaWatch5width[index];    break;
  case MetaWatch7:    Width = MetaWatch7width[index];    break;
  case MetaWatch16:   Width = MetaWatch16width[index];   break;
  case MetaWatchTime: Width = MetaWatchTimeWidth[index]; break;
  case MetaWatchMonospaced10: Width = 7; break;
  default : 
    break;
  }
  
  return Width;
  
}

unsigned char GetCharacterHeight(void)
{
  return CurrentFont.Height;  
}

void SetFontSpacing(unsigned char Spacing)
{
  CurrentFont.Spacing = Spacing;  
}

unsigned char GetFontSpacing(void)
{
  return CurrentFont.Spacing;  
}

unsigned char MapCharacterToIndex(unsigned char CharIn)
{
  unsigned char Result = 0;

  switch (CurrentFont.Type)
  {
  case MetaWatchTime: 
    Result = CharIn;  
    break;
    
  default : 
    // space = 0x20 and 0x7f = delete character
    if ( (CharIn >= 0x20) && (CharIn < 0x7f) )
    {
      Result = CharIn - 0x20;
    }
    break;
  }
  
  return Result;
  
}


void GetCharacterBitmap(unsigned char Character, u16t *pBitmap)
{
  unsigned char index = MapCharacterToIndex(Character);

  unsigned char row;
  for (row = 0; row < CurrentFont.Height; row++ )
  {
    switch (CurrentFont.Type)
    {
    case MetaWatch5:
      pBitmap[row] = (u16t)MetaWatch5table[index][row];  
      break;
  
    case MetaWatch7:
      pBitmap[row] = (u16t)MetaWatch7table[index][row];  
      break;
  
    case MetaWatch16:
      pBitmap[row] = MetaWatch16table[index][row];  
      break;
  
    case MetaWatchTime:
      pBitmap[row] = MetaWatchTimeTable[index][row];
      break;
      
    case MetaWatchMonospaced10:
      pBitmap[row] = MetaWatchMonospaced10Table[index][row];
      break;
    default:
      break;
    }
  
  }

}

const unsigned char MetaWatch5table[PRINTABLE_CHARACTERS][5] = 
{
  /* character 0x20 (' '): (width = 2) */
  {0x00, 0x00, 0x00, 0x00, 0x00,},
  
  /* character 0x21 ('!'): (width=1) */
  {0x01, 0x01, 0x01, 0x00, 0x01,},
  
  /* character 0x22 ('"'): (width=3) */
  {0x05, 0x05, 0x00, 0x00, 0x00,},
  
  /* character 0x23 ('#'): (width=5) */
  { 0x0A, 0x1F, 0x0A, 0x1F, 0x0A,},
  {
  /* character 0x24 ('$'): (width=3) */
  0x00, 0x00, 0x00, 0x00, 0x00,},
  {
  /* character 0x25 ('%'): (width=3) */
  0x00, 0x00, 0x00, 0x00, 0x00,},
  {
  /* character 0x26 ('&'): (width=5) */
  0x02, 0x05, 0x16, 0x09, 0x1E,},
  {
  /* character 0x27 ('''): (width=1) */
  0x01, 0x01, 0x00, 0x00, 0x00,},
  {
  /* character 0x28 ('('): (width=2) */
  0x02, 0x01, 0x01, 0x01, 0x02,},
  {
  /* character 0x29 (')'): (width=2) */
  0x01, 0x02, 0x02, 0x02, 0x01,},
  {
  /* character 0x2A ('*'): (width=5) */
  0x0A, 0x04, 0x1F, 0x04, 0x0A,},
  {
  /* character 0x2B ('+'): (width=5) */
  0x04, 0x04, 0x1F, 0x04, 0x04,},
  {
  /* character 0x2C (','): (width=1) */
  0x00, 0x00, 0x00, 0x01, 0x01,},
  {
  /* character 0x2D ('-'): (width=3) */
  0x00, 0x00, 0x07, 0x00, 0x00,},
  {
  /* character 0x2E ('.'): (width=1) */
  0x00, 0x00, 0x00, 0x00, 0x01,},
  {
  /* character 0x2F ('/'): (width=5) */
  0x10, 0x08, 0x04, 0x02, 0x01,},
  {
  /* character 0x30 ('0'): (width=4) */
  0x06, 0x09, 0x09, 0x09, 0x06,},
  {
  /* character 0x31 ('1'): (width=3) */
  0x03, 0x02, 0x02, 0x02, 0x07,},
  {
  /* character 0x32 ('2'): (width=4) */
  0x06, 0x09, 0x04, 0x02, 0x0F,},
  {
  /* character 0x33 ('3'): (width=4) */
  0x0F, 0x08, 0x06, 0x08, 0x07,},
  {
  /* character 0x34 ('4'): (width=4) */
  0x04, 0x06, 0x05, 0x0F, 0x04,},
  {
  /* character 0x35 ('5'): (width=4) */
  0x0F, 0x01, 0x0F, 0x08, 0x07,},
  {
  /* character 0x36 ('6'): (width=4) */
  0x06, 0x01, 0x07, 0x09, 0x06,},
  {
  /* character 0x37 ('7'): (width=4) */
  0x0F, 0x08, 0x04, 0x02, 0x02,},
  {
  /* character 0x38 ('8'): (width=4) */
  0x06, 0x09, 0x06, 0x09, 0x06,},
  {
  /* character 0x39 ('9'): (width=4) */
  0x06, 0x09, 0x0E, 0x08, 0x06,},
  {
  /* character 0x3A (':'): (width=1) */
  0x00, 0x01, 0x00, 0x01, 0x00,},
  {
  /* character 0x3B (';'): (width=2) */
  0x00, 0x02, 0x00, 0x02, 0x01,},
  {
  /* character 0x3C ('<'): (width=3) */
  0x04, 0x02, 0x01, 0x02, 0x04,},
  {
  /* character 0x3D ('='): (width=4) */
  0x00, 0x0F, 0x00, 0x0F, 0x00,},
  {
  /* character 0x3E ('>'): (width=3) */
  0x01, 0x02, 0x04, 0x02, 0x01,},
  {
  /* character 0x3F ('?'): (width=3) */
  0x03, 0x04, 0x02, 0x00, 0x02,},
  {
  /* character 0x40 ('@'): (width=3) */
  0x00, 0x00, 0x00, 0x00, 0x00,},
  {
  /* character 0x41 ('A'): (width=5) */
  0x04, 0x04, 0x0A, 0x0E, 0x11,},
  {
  /* character 0x42 ('B'): (width=4) */
  0x07, 0x09, 0x07, 0x09, 0x07,},
  {
  /* character 0x43 ('C'): (width=4) */
  0x06, 0x09, 0x01, 0x09, 0x06,},
  {
  /* character 0x44 ('D'): (width=4) */
  0x07, 0x09, 0x09, 0x09, 0x07,},
  {
  /* character 0x45 ('E'): (width=4) */
  0x0F, 0x01, 0x07, 0x01, 0x0F,},
  {
  /* character 0x46 ('F'): (width=4) */
  0x0F, 0x01, 0x07, 0x01, 0x01,},
  {
  /* character 0x47 ('G'): (width=4) */
  0x06, 0x01, 0x0D, 0x09, 0x06,},
  {
  /* character 0x48 ('H'): (width=4) */
  0x09, 0x09, 0x0F, 0x09, 0x09,},
  {
  /* character 0x49 ('I'): (width=3) */
  0x07, 0x02, 0x02, 0x02, 0x07,},
  {
  /* character 0x4A ('J'): (width=4) */
  0x08, 0x08, 0x08, 0x09, 0x06,},
  {
  /* character 0x4B ('K'): (width=4) */
  0x09, 0x05, 0x03, 0x05, 0x09,},
  {
  /* character 0x4C ('L'): (width=4) */
  0x01, 0x01, 0x01, 0x01, 0x0F,},
  {
  /* character 0x4D ('M'): (width=5) */
  0x11, 0x1B, 0x15, 0x11, 0x11,},
  {
  /* character 0x4E ('N'): (width=5) */
  0x11, 0x13, 0x15, 0x19, 0x11,},
  {
  /* character 0x4F ('O'): (width=4) */
  0x06, 0x09, 0x09, 0x09, 0x06,},
  {
  /* character 0x50 ('P'): (width=4) */
  0x07, 0x09, 0x07, 0x01, 0x01,},
  {
  /* character 0x51 ('Q'): (width=5) */
  0x06, 0x09, 0x09, 0x09, 0x1E,},
  {
  /* character 0x52 ('R'): (width=4) */
  0x07, 0x09, 0x07, 0x09, 0x09,},
  {
  /* character 0x53 ('S'): (width=4) */
  0x0E, 0x01, 0x06, 0x08, 0x07,},
  {
  /* character 0x54 ('T'): (width=3) */
  0x07, 0x02, 0x02, 0x02, 0x02,},
  {
  /* character 0x55 ('U'): (width=4) */
  0x09, 0x09, 0x09, 0x09, 0x06,},
  {
  /* character 0x56 ('V'): (width=5) */
  0x11, 0x0A, 0x0A, 0x04, 0x04,},
  {
  /* character 0x57 ('W'): (width=5) */
  0x15, 0x15, 0x0A, 0x0A, 0x0A,},
  {
  /* character 0x58 ('X'): (width=4) */
  0x09, 0x09, 0x06, 0x09, 0x09,},
  {
  /* character 0x59 ('Y'): (width=5) */
  0x11, 0x0A, 0x04, 0x04, 0x04,},
  {
  /* character 0x5A ('Z'): (width=4) */
  0x0F, 0x04, 0x02, 0x01, 0x0F,},
  {
  /* character 0x5B ('['): (width=2) */
  0x03, 0x01, 0x01, 0x01, 0x03,},
  {
  /* character 0x5C ('\'): (width=5) */
  0x01, 0x02, 0x04, 0x08, 0x10,},
  {
  /* character 0x5D (']'): (width=2) */
  0x03, 0x02, 0x02, 0x02, 0x03,},
  {
  /* character 0x5E ('^'): (width=5) */
  0x04, 0x0A, 0x11, 0x00, 0x00,},
  {
  /* character 0x5F ('_'): (width=4) */
  0x00, 0x00, 0x00, 0x00, 0x0F,},
  {
  /* character 0x60 ('`'): (width=1) */
  0x01, 0x01, 0x00, 0x00, 0x00,},
  {
  /* character 0x61 ('a'): (width=5) */
  0x04, 0x04, 0x0A, 0x0E, 0x11,},
  {
  /* character 0x62 ('b'): (width=4) */
  0x07, 0x09, 0x07, 0x09, 0x07,},
  {
  /* character 0x63 ('c'): (width=4) */
  0x06, 0x09, 0x01, 0x09, 0x06,},
  {
  /* character 0x64 ('d'): (width=4) */
  0x07, 0x09, 0x09, 0x09, 0x07,},
  {
  /* character 0x65 ('e'): (width=4) */
  0x0F, 0x01, 0x07, 0x01, 0x0F,},
  {
  /* character 0x66 ('f'): (width=4) */
  0x0F, 0x01, 0x07, 0x01, 0x01,},
  {
  /* character 0x67 ('g'): (width=4) */
  0x06, 0x01, 0x0D, 0x09, 0x06,},
  {
  /* character 0x68 ('h'): (width=4) */
  0x09, 0x09, 0x0F, 0x09, 0x09,},
  {
  /* character 0x69 ('i'): (width=3) */
  0x07, 0x02, 0x02, 0x02, 0x07,},
  {
  /* character 0x6A ('j'): (width=4) */
  0x08, 0x08, 0x08, 0x09, 0x06,},
  {
  /* character 0x6B ('k'): (width=4) */
  0x09, 0x05, 0x03, 0x05, 0x09,},
  {
  /* character 0x6C ('l'): (width=4) */
  0x01, 0x01, 0x01, 0x01, 0x0F,},
  {
  /* character 0x6D ('m'): (width=5) */
  0x11, 0x1B, 0x15, 0x11, 0x11,},
  {
  /* character 0x6E ('n'): (width=5) */
  0x11, 0x13, 0x15, 0x19, 0x11,},
  {
  /* character 0x6F ('o'): (width=4) */
  0x06, 0x09, 0x09, 0x09, 0x06,},
  {
  /* character 0x70 ('p'): (width=4) */
  0x07, 0x09, 0x07, 0x01, 0x01,},
  {
  /* character 0x71 ('q'): (width=5) */
  0x06, 0x09, 0x09, 0x09, 0x1E,},
  {
  /* character 0x72 ('r'): (width=4) */
  0x07, 0x09, 0x07, 0x09, 0x09,},
  {
  /* character 0x73 ('s'): (width=4) */
  0x0E, 0x01, 0x06, 0x08, 0x07,},
  {
  /* character 0x74 ('t'): (width=3) */
  0x07, 0x02, 0x02, 0x02, 0x02,},
  {
  /* character 0x75 ('u'): (width=4) */
  0x09, 0x09, 0x09, 0x09, 0x06,},
  {
  /* character 0x76 ('v'): (width=5) */
  0x11, 0x0A, 0x0A, 0x04, 0x04,},
  {
  /* character 0x77 ('w'): (width=5) */
  0x15, 0x15, 0x0A, 0x0A, 0x0A,},
  {
  /* character 0x78 ('x'): (width=4) */
  0x09, 0x09, 0x06, 0x09, 0x09,},
  {
  /* character 0x79 ('y'): (width=5) */
  0x11, 0x0A, 0x04, 0x04, 0x04,},
  {
  /* character 0x7A ('z'): (width=4) */
  0x0F, 0x04, 0x02, 0x01, 0x0F,},
  {
  /* character 0x7B ('{'): (width=3) */
  0x00, 0x00, 0x00, 0x00, 0x00,},
  {
  /* character 0x7C ('|'): (width=1) */
  0x01, 0x01, 0x01, 0x01, 0x01,},
  {
  /* character 0x7D ('}'): (width=3) */
  0x00, 0x00, 0x00, 0x00, 0x00,},
};

const unsigned char MetaWatch5width[PRINTABLE_CHARACTERS] = 
{
/*		width    char    hexcode */
/*		=====    ====    ======= */
                  2, /*  '  '    20      */
  		  1, /*   !      21      */
  		  3, /*   "      22      */
  		  5, /*   #      23      */
  		  3, /*   $      24      */
  		  3, /*   %      25      */
  		  5, /*   &      26      */
  		  1, /*   '      27      */
  		  2, /*   (      28      */
  		  2, /*   )      29      */
  		  5, /*   *      2A      */
  		  5, /*   +      2B      */
  		  1, /*   ,      2C      */
  		  3, /*   -      2D      */
  		  1, /*   .      2E      */
  		  5, /*   /      2F      */
  		  4, /*   0      30      */
  		  3, /*   1      31      */
  		  4, /*   2      32      */
  		  4, /*   3      33      */
  		  4, /*   4      34      */
  		  4, /*   5      35      */
  		  4, /*   6      36      */
  		  4, /*   7      37      */
  		  4, /*   8      38      */
  		  4, /*   9      39      */
  		  1, /*   :      3A      */
  		  2, /*   ;      3B      */
  		  3, /*   <      3C      */
  		  4, /*   =      3D      */
  		  3, /*   >      3E      */
  		  3, /*   ?      3F      */
  		  3, /*   @      40      */
  		  5, /*   A      41      */
  		  4, /*   B      42      */
  		  4, /*   C      43      */
  		  4, /*   D      44      */
  		  4, /*   E      45      */
  		  4, /*   F      46      */
  		  4, /*   G      47      */
  		  4, /*   H      48      */
  		  3, /*   I      49      */
  		  4, /*   J      4A      */
  		  4, /*   K      4B      */
  		  4, /*   L      4C      */
  		  5, /*   M      4D      */
  		  5, /*   N      4E      */
  		  4, /*   O      4F      */
  		  4, /*   P      50      */
  		  5, /*   Q      51      */
  		  4, /*   R      52      */
  		  4, /*   S      53      */
  		  3, /*   T      54      */
  		  4, /*   U      55      */
  		  5, /*   V      56      */
  		  5, /*   W      57      */
  		  4, /*   X      58      */
  		  5, /*   Y      59      */
  		  4, /*   Z      5A      */
  		  2, /*   [      5B      */
  		  5, /*   \      5C      */
  		  2, /*   ]      5D      */
  		  5, /*   ^      5E      */
  		  4, /*   _      5F      */
  		  1, /*   `      60      */
  		  5, /*   a      61      */
  		  4, /*   b      62      */
  		  4, /*   c      63      */
  		  4, /*   d      64      */
  		  4, /*   e      65      */
  		  4, /*   f      66      */
  		  4, /*   g      67      */
  		  4, /*   h      68      */
  		  3, /*   i      69      */
  		  4, /*   j      6A      */
  		  4, /*   k      6B      */
  		  4, /*   l      6C      */
  		  5, /*   m      6D      */
  		  5, /*   n      6E      */
  		  4, /*   o      6F      */
  		  4, /*   p      70      */
  		  5, /*   q      71      */
  		  4, /*   r      72      */
  		  4, /*   s      73      */
  		  3, /*   t      74      */
  		  4, /*   u      75      */
  		  5, /*   v      76      */
  		  5, /*   w      77      */
  		  4, /*   x      78      */
  		  5, /*   y      79      */
  		  4, /*   z      7A      */
  		  3, /*   {      7B      */
  		  1, /*   |      7C      */
  		  3, /*   }      7D      */
};

const unsigned char MetaWatch7table[PRINTABLE_CHARACTERS][7] = 
{

  /* character 0x20 (' '): (width = 2) */
  {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,},
  /* character 0x21 ('!'): (width=1) */
  {0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01,},
  {
  /* character 0x22 ('"'): (width=3) */
  0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00,},
  {
  /* character 0x23 ('#'): (width=7) */
  0x00, 0x28, 0x7E, 0x14, 0x3F, 0x0A, 0x00,},
  {
  /* character 0x24 ('$'): (width=5) */
  0x04, 0x1E, 0x05, 0x0E, 0x14, 0x0F, 0x04,},
  {
  /* character 0x25 ('%'): (width=7) */
  0x42, 0x25, 0x15, 0x2A, 0x54, 0x52, 0x21,},
  {
  /* character 0x26 ('&'): (width=5) */
  0x02, 0x05, 0x05, 0x02, 0x15, 0x09, 0x16,},
  {
  /* character 0x27 ('''): (width=3) */
  0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00,},
  {
  /* character 0x28 ('('): (width=3) */
  0x04, 0x02, 0x01, 0x01, 0x01, 0x02, 0x04,},
  {
  /* character 0x29 (')'): (width=3) */
  0x01, 0x02, 0x04, 0x04, 0x04, 0x02, 0x01,},
  {
  /* character 0x2A ('*'): (width=7) */
  0x08, 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x08,},
  {
  /* character 0x2B ('+'): (width=5) */
  0x00, 0x04, 0x04, 0x1F, 0x04, 0x04, 0x00,},
  {
  /* character 0x2C (','): (width=1) */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,},
  {
  /* character 0x2D ('-'): (width=4) */
  0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00,},
  {
  /* character 0x2E ('.'): (width=1) */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,},
  {
  /* character 0x2F ('/'): (width=4) */
  0x08, 0x08, 0x04, 0x06, 0x02, 0x01, 0x01,},
  {
  /* character 0x30 ('0'): (width=4) */
  0x06, 0x09, 0x09, 0x09, 0x09, 0x09, 0x06,},
  {
  /* character 0x31 ('1'): (width=2) */
  0x02, 0x03, 0x02, 0x02, 0x02, 0x02, 0x02,},
  {
  /* character 0x32 ('2'): (width=4) */
  0x06, 0x09, 0x08, 0x04, 0x02, 0x01, 0x0F,},
  {
  /* character 0x33 ('3'): (width=4) */
  0x06, 0x09, 0x08, 0x06, 0x08, 0x09, 0x06,},
  {
  /* character 0x34 ('4'): (width=5) */
  0x04, 0x04, 0x0A, 0x09, 0x1F, 0x08, 0x08,},
  {
  /* character 0x35 ('5'): (width=4) */
  0x0F, 0x01, 0x07, 0x08, 0x08, 0x09, 0x06,},
  {
  /* character 0x36 ('6'): (width=4) */
  0x06, 0x01, 0x07, 0x09, 0x09, 0x09, 0x06,},
  {
  /* character 0x37 ('7'): (width=4) */
  0x0F, 0x08, 0x04, 0x04, 0x02, 0x02, 0x02,},
  {
  /* character 0x38 ('8'): (width=4) */
  0x06, 0x09, 0x09, 0x06, 0x09, 0x09, 0x06,},
  {
  /* character 0x39 ('9'): (width=4) */
  0x06, 0x09, 0x09, 0x09, 0x0E, 0x08, 0x06,},
  {
  /* character 0x3A (':'): (width=1) */
  0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00,},
  {
  /* character 0x3B (';'): (width=1) */
  0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01,},
  {
  /* character 0x3C ('<'): (width=3) */
  0x00, 0x04, 0x02, 0x01, 0x02, 0x04, 0x00,},
  {
  /* character 0x3D ('='): (width=4) */
  0x00, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x00,},
  {
  /* character 0x3E ('>'): (width=3) */
  0x00, 0x01, 0x02, 0x04, 0x02, 0x01, 0x00,},
  {
  /* character 0x3F ('?'): (width=4) */
  0x07, 0x08, 0x04, 0x02, 0x02, 0x00, 0x02,},
  {
  /* character 0x40 ('@'): (width=7) */
  0x3C, 0x42, 0x59, 0x55, 0x39, 0x02, 0x3C,},
  {
  /* character 0x41 ('A'): (width=7) */
  0x08, 0x08, 0x14, 0x14, 0x3E, 0x22, 0x41,},
  {
  /* character 0x42 ('B'): (width=5) */
  0x0F, 0x11, 0x11, 0x0F, 0x11, 0x11, 0x0F,},
  {
  /* character 0x43 ('C'): (width=5) */
  0x0C, 0x12, 0x01, 0x01, 0x01, 0x12, 0x0C,},
  {
  /* character 0x44 ('D'): (width=5) */
  0x07, 0x09, 0x11, 0x11, 0x11, 0x09, 0x07,},
  {
  /* character 0x45 ('E'): (width=4) */
  0x0F, 0x01, 0x01, 0x07, 0x01, 0x01, 0x0F,},
  {
  /* character 0x46 ('F'): (width=4) */
  0x0F, 0x01, 0x01, 0x07, 0x01, 0x01, 0x01,},
  {
  /* character 0x47 ('G'): (width=6) */
  0x0C, 0x12, 0x01, 0x39, 0x21, 0x12, 0x0C,},
  {
  /* character 0x48 ('H'): (width=5) */
  0x11, 0x11, 0x11, 0x1F, 0x11, 0x11, 0x11,},
  {
  /* character 0x49 ('I'): (width=3) */
  0x07, 0x02, 0x02, 0x02, 0x02, 0x02, 0x07,},
  {
  /* character 0x4A ('J'): (width=5) */
  0x10, 0x10, 0x10, 0x10, 0x10, 0x11, 0x0E,},
  {
  /* character 0x4B ('K'): (width=5) */
  0x11, 0x09, 0x05, 0x03, 0x05, 0x09, 0x11,},
  {
  /* character 0x4C ('L'): (width=4) */
  0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x0F,},
  {
  /* character 0x4D ('M'): (width=7) */
  0x41, 0x63, 0x63, 0x55, 0x55, 0x49, 0x49,},
  {
  /* character 0x4E ('N'): (width=6) */
  0x21, 0x23, 0x25, 0x2D, 0x29, 0x31, 0x21,},
  {
  /* character 0x4F ('O'): (width=6) */
  0x0C, 0x12, 0x21, 0x21, 0x21, 0x12, 0x0C,},
  {
  /* character 0x50 ('P'): (width=4) */
  0x07, 0x09, 0x09, 0x07, 0x01, 0x01, 0x01,},
  {
  /* character 0x51 ('Q'): (width=7) */
  0x0C, 0x12, 0x21, 0x21, 0x21, 0x12, 0x6C,},
  {
  /* character 0x52 ('R'): (width=5) */
  0x0F, 0x11, 0x11, 0x0F, 0x09, 0x11, 0x11,},
  {
  /* character 0x53 ('S'): (width=4) */
  0x06, 0x09, 0x01, 0x06, 0x08, 0x09, 0x06,},
  {
  /* character 0x54 ('T'): (width=5) */
  0x1F, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,},
  {
  /* character 0x55 ('U'): (width=5) */
  0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0E,},
  {
  /* character 0x56 ('V'): (width=7) */
  0x41, 0x22, 0x22, 0x14, 0x14, 0x08, 0x08,},
  {
  /* character 0x57 ('W'): (width=7) */
  0x49, 0x49, 0x49, 0x55, 0x55, 0x22, 0x22,},
  {
  /* character 0x58 ('X'): (width=5) */
  0x11, 0x1B, 0x0A, 0x04, 0x0A, 0x1B, 0x11,},
  {
  /* character 0x59 ('Y'): (width=7) */
  0x41, 0x22, 0x14, 0x08, 0x08, 0x08, 0x08,},
  {
  /* character 0x5A ('Z'): (width=5) */
  0x1F, 0x10, 0x08, 0x04, 0x02, 0x01, 0x1F,},
  {
  /* character 0x5B ('['): (width=3) */
  0x07, 0x01, 0x01, 0x01, 0x01, 0x01, 0x07,},
  {
  /* character 0x5C ('\'): (width=4) */
  0x01, 0x01, 0x02, 0x06, 0x04, 0x08, 0x08,},
  {
  /* character 0x5D (']'): (width=3) */
  0x07, 0x04, 0x04, 0x04, 0x04, 0x04, 0x07,},
  {
  /* character 0x5E ('^'): (width=5) */
  0x04, 0x0A, 0x11, 0x00, 0x00, 0x00, 0x00,},
  {
  /* character 0x5F ('_'): (width=5) */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F,},
  {
  /* character 0x60 ('`'): (width=1) */
  0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,},
  {
  /* character 0x61 ('a'): (width=7) */
  0x08, 0x08, 0x14, 0x14, 0x3E, 0x22, 0x41,},
  {
  /* character 0x62 ('b'): (width=5) */
  0x0F, 0x11, 0x11, 0x0F, 0x11, 0x11, 0x0F,},
  {
  /* character 0x63 ('c'): (width=5) */
  0x0C, 0x12, 0x01, 0x01, 0x01, 0x12, 0x0C,},
  {
  /* character 0x64 ('d'): (width=5) */
  0x07, 0x09, 0x11, 0x11, 0x11, 0x09, 0x07,},
  {
  /* character 0x65 ('e'): (width=4) */
  0x0F, 0x01, 0x01, 0x07, 0x01, 0x01, 0x0F,},
  {
  /* character 0x66 ('f'): (width=4) */
  0x0F, 0x01, 0x01, 0x07, 0x01, 0x01, 0x01,},
  {
  /* character 0x67 ('g'): (width=6) */
  0x0C, 0x12, 0x01, 0x39, 0x21, 0x12, 0x0C,},
  {
  /* character 0x68 ('h'): (width=5) */
  0x11, 0x11, 0x11, 0x1F, 0x11, 0x11, 0x11,},
  {
  /* character 0x69 ('i'): (width=3) */
  0x07, 0x02, 0x02, 0x02, 0x02, 0x02, 0x07,},
  {
  /* character 0x6A ('j'): (width=5) */
  0x10, 0x10, 0x10, 0x10, 0x10, 0x11, 0x0E,},
  {
  /* character 0x6B ('k'): (width=5) */
  0x11, 0x09, 0x05, 0x03, 0x05, 0x09, 0x11,},
  {
  /* character 0x6C ('l'): (width=4) */
  0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x0F,},
  {
  /* character 0x6D ('m'): (width=7) */
  0x41, 0x63, 0x63, 0x55, 0x55, 0x49, 0x49,},
  {
  /* character 0x6E ('n'): (width=6) */
  0x21, 0x23, 0x25, 0x2D, 0x29, 0x31, 0x21,},
  {
  /* character 0x6F ('o'): (width=6) */
  0x0C, 0x12, 0x21, 0x21, 0x21, 0x12, 0x0C,},
  {
  /* character 0x70 ('p'): (width=4) */
  0x07, 0x09, 0x09, 0x07, 0x01, 0x01, 0x01,},
  {
  /* character 0x71 ('q'): (width=7) */
  0x0C, 0x12, 0x21, 0x21, 0x21, 0x12, 0x6C,},
  {
  /* character 0x72 ('r'): (width=5) */
  0x0F, 0x11, 0x11, 0x0F, 0x09, 0x11, 0x11,},
  {
  /* character 0x73 ('s'): (width=4) */
  0x06, 0x09, 0x01, 0x06, 0x08, 0x09, 0x06,},
  {
  /* character 0x74 ('t'): (width=5) */
  0x1F, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,},
  {
  /* character 0x75 ('u'): (width=5) */
  0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0E,},
  {
  /* character 0x76 ('v'): (width=7) */
  0x41, 0x22, 0x22, 0x14, 0x14, 0x08, 0x08,},
  {
  /* character 0x77 ('w'): (width=7) */
  0x49, 0x49, 0x49, 0x55, 0x55, 0x22, 0x22,},
  {
  /* character 0x78 ('x'): (width=5) */
  0x11, 0x1B, 0x0A, 0x04, 0x0A, 0x1B, 0x11,},
  {
  /* character 0x79 ('y'): (width=7) */
  0x41, 0x22, 0x14, 0x08, 0x08, 0x08, 0x08,},
  {
  /* character 0x7A ('z'): (width=5) */
  0x1F, 0x10, 0x08, 0x04, 0x02, 0x01, 0x1F,},
  {
  /* character 0x7B ('{'): (width=3) */
  0x04, 0x02, 0x01, 0x01, 0x01, 0x02, 0x04,},
  {
  /* character 0x7C ('|'): (width=1) */
  0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,},
  {
  /* character 0x7D ('}'): (width=3) */
  0x01, 0x02, 0x04, 0x04, 0x04, 0x02, 0x01,},

};

const unsigned char MetaWatch7width[PRINTABLE_CHARACTERS] = {
/*		width    char    hexcode */
/*		=====    ====    ======= */
        2, /*  '  '    20      */
  		  1, /*   !      21      */
  		  3, /*   "      22      */
  		  7, /*   #      23      */
  		  5, /*   $      24      */
  		  7, /*   %      25      */
  		  5, /*   &      26      */
  		  3, /*   '      27      */
  		  3, /*   (      28      */
  		  3, /*   )      29      */
  		  7, /*   *      2A      */
  		  5, /*   +      2B      */
  		  1, /*   ,      2C      */
  		  4, /*   -      2D      */
  		  1, /*   .      2E      */
  		  4, /*   /      2F      */
  		  4, /*   0      30      */
  		  2, /*   1      31      */
  		  4, /*   2      32      */
  		  4, /*   3      33      */
  		  5, /*   4      34      */
  		  4, /*   5      35      */
  		  4, /*   6      36      */
  		  4, /*   7      37      */
  		  4, /*   8      38      */
  		  4, /*   9      39      */
  		  1, /*   :      3A      */
  		  1, /*   ;      3B      */
  		  3, /*   <      3C      */
  		  4, /*   =      3D      */
  		  3, /*   >      3E      */
  		  4, /*   ?      3F      */
  		  7, /*   @      40      */
  		  7, /*   A      41      */
  		  5, /*   B      42      */
  		  5, /*   C      43      */
  		  5, /*   D      44      */
  		  4, /*   E      45      */
  		  4, /*   F      46      */
  		  6, /*   G      47      */
  		  5, /*   H      48      */
  		  3, /*   I      49      */
  		  5, /*   J      4A      */
  		  5, /*   K      4B      */
  		  4, /*   L      4C      */
  		  7, /*   M      4D      */
  		  6, /*   N      4E      */
  		  6, /*   O      4F      */
  		  4, /*   P      50      */
  		  7, /*   Q      51      */
  		  5, /*   R      52      */
  		  4, /*   S      53      */
  		  5, /*   T      54      */
  		  5, /*   U      55      */
  		  7, /*   V      56      */
  		  7, /*   W      57      */
  		  5, /*   X      58      */
  		  7, /*   Y      59      */
  		  5, /*   Z      5A      */
  		  3, /*   [      5B      */
  		  4, /*   \      5C      */
  		  3, /*   ]      5D      */
  		  5, /*   ^      5E      */
  		  5, /*   _      5F      */
  		  1, /*   `      60      */
  		  7, /*   a      61      */
  		  5, /*   b      62      */
  		  5, /*   c      63      */
  		  5, /*   d      64      */
  		  4, /*   e      65      */
  		  4, /*   f      66      */
  		  6, /*   g      67      */
  		  5, /*   h      68      */
  		  3, /*   i      69      */
  		  5, /*   j      6A      */
  		  5, /*   k      6B      */
  		  4, /*   l      6C      */
  		  7, /*   m      6D      */
  		  6, /*   n      6E      */
  		  6, /*   o      6F      */
  		  4, /*   p      70      */
  		  7, /*   q      71      */
  		  5, /*   r      72      */
  		  4, /*   s      73      */
  		  5, /*   t      74      */
  		  5, /*   u      75      */
  		  7, /*   v      76      */
  		  7, /*   w      77      */
  		  5, /*   x      78      */
  		  7, /*   y      79      */
  		  5, /*   z      7A      */
  		  3, /*   {      7B      */
  		  1, /*   |      7C      */
  		  3, /*   }      7D      */
};


const u16t MetaWatch16table[PRINTABLE_CHARACTERS][16] = 
{
  /* character 0x20 (' '): (width=4) */
  {0x0000, 0x0000, 0x0000, 0x0000,
  0x0000, 0x0000, 0x0000, 0x0000,
  0x0000, 0x0000, 0x0000, 0x0000,
  0x0000, 0x0000, 0x0000, 0x0000},
  
  /* character 0x21 ('!'): (width=2) */
  {0x0000, 0x0000, 0x0003, 0x0003,
  0x0003, 0x0003, 0x0003, 0x0003,
  0x0003, 0x0003, 0x0000, 0x0003,
  0x0003, 0x0000, 0x0000, 0x0000},
  /* character 0x22 ('"'): (width=5) */
  {0x0000, 0x0012, 0x001B, 0x001B,
  0x0009, 0x0000, 0x0000, 0x0000,
  0x0000, 0x0000, 0x0000, 0x0000,
  0x0000, 0x0000, 0x0000, 0x0000},
  
  /* character 0x23 ('#'): (width=12) */
  {0x0000, 0x0000, 0x0000, 0x0110,
  0x0198, 0x0FFE, 0x07FF, 0x0198,
  0x0198, 0x0FFE, 0x07FF, 0x0198,
  0x0088, 0x0000, 0x0000, 0x0000},
  
  /* character 0x24 ('$'): (width=6) */
  {0x000C, 0x000C, 0x001E, 0x003F,
  0x0033, 0x0003, 0x0007, 0x001E,
  0x0038, 0x0030, 0x0033, 0x003F,
  0x001E, 0x000C, 0x000C, 0x0000},
  
  /* character 0x25 ('%'): (width=10) */
  {0x0000, 0x020E, 0x031F, 0x039B,
  0x01DF, 0x00EE, 0x0070, 0x0038,
  0x01DC, 0x03EE, 0x0367, 0x03E3,
  0x01C1, 0x0000, 0x0000, 0x0000},
  
  /* character 0x26 ('&'): (width=10) */
  {0x0000, 0x0000, 0x001C, 0x003E,
  0x0036, 0x003E, 0x001C, 0x01BE,
  0x01F7, 0x00E3, 0x01F7, 0x03BE,
  0x031C, 0x0000, 0x0000, 0x0000},
  
  /* character 0x27 ('''): (width=2) */
  {0x0000, 0x0002, 0x0003, 0x0003,
  0x0001, 0x0000, 0x0000, 0x0000,
  0x0000, 0x0000, 0x0000, 0x0000,
  0x0000, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x28 ('('): (width=4) */
  0x0008, 0x0004, 0x0006, 0x0006,
  0x0003, 0x0003, 0x0003, 0x0003,
  0x0003, 0x0003, 0x0003, 0x0006,
  0x0006, 0x0004, 0x0008, 0x0000},
  {
  /* character 0x29 (')'): (width=4) */
  0x0001, 0x0002, 0x0006, 0x0006,
  0x000C, 0x000C, 0x000C, 0x000C,
  0x000C, 0x000C, 0x000C, 0x0006,
  0x0006, 0x0002, 0x0001, 0x0000},
  {
  /* character 0x2A ('*'): (width=8) */
  0x0000, 0x0000, 0x0018, 0x0018,
  0x00DB, 0x00FF, 0x003C, 0x00FF,
  0x00DB, 0x0018, 0x0018, 0x0000,
  0x0000, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x2B ('+'): (width=8) */
  0x0000, 0x0000, 0x0000, 0x0000,
  0x0018, 0x0018, 0x0018, 0x00FF,
  0x00FF, 0x0018, 0x0018, 0x0018,
  0x0000, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x2C (','): (width=2) */
  0x0000, 0x0000, 0x0000, 0x0000,
  0x0000, 0x0000, 0x0000, 0x0000,
  0x0000, 0x0000, 0x0000, 0x0002,
  0x0003, 0x0003, 0x0001, 0x0000},
  {
  /* character 0x2D ('-'): (width=8) */
  0x0000, 0x0000, 0x0000, 0x0000,
  0x0000, 0x0000, 0x0000, 0x00FF,
  0x00FF, 0x0000, 0x0000, 0x0000,
  0x0000, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x2E ('.'): (width=2) */
  0x0000, 0x0000, 0x0000, 0x0000,
  0x0000, 0x0000, 0x0000, 0x0000,
  0x0000, 0x0000, 0x0000, 0x0003,
  0x0003, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x2F ('/'): (width=6) */
  0x0000, 0x0000, 0x0000, 0x0030,
  0x0030, 0x0018, 0x0018, 0x000C,
  0x000C, 0x0006, 0x0006, 0x0003,
  0x0003, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x30 ('0'): (width=7) */
  0x0000, 0x0000, 0x001C, 0x003E,
  0x0036, 0x0063, 0x0063, 0x0063,
  0x0063, 0x0063, 0x0036, 0x003E,
  0x001C, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x31 ('1'): (width=3) */
  0x0000, 0x0000, 0x0006, 0x0007,
  0x0007, 0x0006, 0x0006, 0x0006,
  0x0006, 0x0006, 0x0006, 0x0006,
  0x0006, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x32 ('2'): (width=6) */
  0x0000, 0x0000, 0x001E, 0x003F,
  0x0033, 0x0030, 0x0038, 0x001C,
  0x000E, 0x0007, 0x0003, 0x003F,
  0x003F, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x33 ('3'): (width=6) */
  0x0000, 0x0000, 0x001E, 0x003F,
  0x0033, 0x0030, 0x001C, 0x003C,
  0x0030, 0x0030, 0x0033, 0x003F,
  0x001E, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x34 ('4'): (width=7) */
  0x0000, 0x0000, 0x000C, 0x000C,
  0x000C, 0x0036, 0x0036, 0x0033,
  0x007F, 0x007F, 0x0030, 0x0030,
  0x0030, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x35 ('5'): (width=6) */
  0x0000, 0x0000, 0x003F, 0x003F,
  0x0003, 0x0003, 0x001F, 0x003F,
  0x0030, 0x0030, 0x0033, 0x003F,
  0x001E, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x36 ('6'): (width=6) */
  0x0000, 0x0000, 0x000C, 0x000E,
  0x0006, 0x0003, 0x001F, 0x003F,
  0x0033, 0x0033, 0x0033, 0x001F,
  0x001E, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x37 ('7'): (width=6) */
  0x0000, 0x0000, 0x003F, 0x003F,
  0x0030, 0x0030, 0x0018, 0x0018,
  0x000C, 0x000C, 0x000C, 0x000C,
  0x000C, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x38 ('8'): (width=6) */
  0x0000, 0x0000, 0x001E, 0x003F,
  0x0033, 0x0033, 0x003F, 0x001E,
  0x0033, 0x0033, 0x0033, 0x003F,
  0x001E, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x39 ('9'): (width=6) */
  0x0000, 0x0000, 0x001E, 0x003F,
  0x0033, 0x0033, 0x0033, 0x003F,
  0x003E, 0x0030, 0x0018, 0x001C,
  0x000C, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x3A (':'): (width=2) */
  0x0000, 0x0000, 0x0000, 0x0000,
  0x0000, 0x0003, 0x0003, 0x0000,
  0x0000, 0x0003, 0x0003, 0x0000,
  0x0000, 0x0000, 0x0000, 0x0000},
  
  /* character 0x3B (';'): (width=2) */
  {0x0000, 0x0000, 0x0000, 0x0000,
  0x0000, 0x0003, 0x0003, 0x0000,
  0x0002, 0x0003, 0x0003, 0x0001,
  0x0000, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x3C ('<'): (width=8) */
  0x0000, 0x0000, 0x0000, 0x0000,
  0x00C0, 0x00F0, 0x003C, 0x000F,
  0x003C, 0x00F0, 0x00C0, 0x0000,
  0x0000, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x3D ('='): (width=7) */
  0x0000, 0x0000, 0x0000, 0x0000,
  0x0000, 0x0000, 0x007F, 0x007F,
  0x0000, 0x007F, 0x007F, 0x0000,
  0x0000, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x3E ('>'): (width=8) */
  0x0000, 0x0000, 0x0000, 0x0000,
  0x0003, 0x000F, 0x003C, 0x00F0,
  0x003C, 0x000F, 0x0003, 0x0000,
  0x0000, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x3F ('?'): (width=6) */
  0x0000, 0x0000, 0x001E, 0x003F,
  0x0033, 0x0030, 0x0018, 0x001C,
  0x000C, 0x000C, 0x0000, 0x000C,
  0x000C, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x40 ('@'): (width=11) */
  0x0000, 0x0000, 0x01F8, 0x03FE,
  0x0706, 0x06F3, 0x06FB, 0x06DB,
  0x07FB, 0x03F3, 0x0006, 0x01FE,
  0x00F8, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x41 ('A'): (width=9) */
  0x0000, 0x0000, 0x0010, 0x0010,
  0x0038, 0x0038, 0x006C, 0x006C,
  0x00C6, 0x00C6, 0x01FF, 0x0183,
  0x0183, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x42 ('B'): (width=7) */
  0x0000, 0x0000, 0x003F, 0x007F,
  0x0063, 0x0063, 0x003F, 0x007F,
  0x0063, 0x0063, 0x0063, 0x007F,
  0x003F, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x43 ('C'): (width=7) */
  0x0000, 0x0000, 0x003E, 0x007F,
  0x0063, 0x0003, 0x0003, 0x0003,
  0x0003, 0x0003, 0x0063, 0x007F,
  0x003E, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x44 ('D'): (width=7) */
  0x0000, 0x0000, 0x003F, 0x007F,
  0x0063, 0x0063, 0x0063, 0x0063,
  0x0063, 0x0063, 0x0063, 0x007F,
  0x003F, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x45 ('E'): (width=7) */
  0x0000, 0x0000, 0x007F, 0x007F,
  0x0003, 0x0003, 0x001F, 0x001F,
  0x0003, 0x0003, 0x0003, 0x007F,
  0x007F, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x46 ('F'): (width=6) */
  0x0000, 0x0000, 0x003F, 0x003F,
  0x0003, 0x0003, 0x003F, 0x003F,
  0x0003, 0x0003, 0x0003, 0x0003,
  0x0003, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x47 ('G'): (width=7) */
  0x0000, 0x0000, 0x003E, 0x007F,
  0x0063, 0x0003, 0x0003, 0x007B,
  0x007B, 0x0063, 0x0063, 0x007F,
  0x003E, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x48 ('H'): (width=7) */
  0x0000, 0x0000, 0x0063, 0x0063,
  0x0063, 0x0063, 0x007F, 0x007F,
  0x0063, 0x0063, 0x0063, 0x0063,
  0x0063, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x49 ('I'): (width=4) */
  0x0000, 0x0000, 0x000F, 0x000F,
  0x0006, 0x0006, 0x0006, 0x0006,
  0x0006, 0x0006, 0x0006, 0x000F,
  0x000F, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x4A ('J'): (width=6) */
  0x0000, 0x0000, 0x0030, 0x0030,
  0x0030, 0x0030, 0x0030, 0x0030,
  0x0030, 0x0030, 0x0033, 0x003F,
  0x001E, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x4B ('K'): (width=7) */
  0x0000, 0x0000, 0x0063, 0x0073,
  0x003B, 0x001F, 0x000F, 0x0007,
  0x000F, 0x001F, 0x003B, 0x0073,
  0x0063, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x4C ('L'): (width=6) */
  0x0000, 0x0000, 0x0003, 0x0003,
  0x0003, 0x0003, 0x0003, 0x0003,
  0x0003, 0x0003, 0x0003, 0x003F,
  0x003F, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x4D ('M'): (width=11) */
  0x0000, 0x0000, 0x0401, 0x0603,
  0x0707, 0x078F, 0x07DF, 0x06FB,
  0x0673, 0x0623, 0x0603, 0x0603,
  0x0603, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x4E ('N'): (width=9) */
  0x0000, 0x0000, 0x0181, 0x0183,
  0x0187, 0x018F, 0x019F, 0x01BB,
  0x01F3, 0x01E3, 0x01C3, 0x0183,
  0x0103, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x4F ('O'): (width=7) */
  0x0000, 0x0000, 0x003E, 0x007F,
  0x0063, 0x0063, 0x0063, 0x0063,
  0x0063, 0x0063, 0x0063, 0x007F,
  0x003E, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x50 ('P'): (width=7) */
  0x0000, 0x0000, 0x003F, 0x007F,
  0x0063, 0x0063, 0x0063, 0x007F,
  0x003F, 0x0003, 0x0003, 0x0003,
  0x0003, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x51 ('Q'): (width=8) */
  0x0000, 0x0000, 0x003E, 0x007F,
  0x0063, 0x0063, 0x0063, 0x0063,
  0x0063, 0x0063, 0x0063, 0x007F,
  0x003E, 0x00F0, 0x0060, 0x0000},
  {
  /* character 0x52 ('R'): (width=7) */
  0x0000, 0x0000, 0x003F, 0x007F,
  0x0063, 0x0063, 0x0063, 0x003F,
  0x007F, 0x0063, 0x0063, 0x0063,
  0x0063, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x53 ('S'): (width=6) */
  0x0000, 0x0000, 0x001E, 0x003F,
  0x0033, 0x0003, 0x0007, 0x001E,
  0x0038, 0x0030, 0x0033, 0x003F,
  0x001E, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x54 ('T'): (width=6) */
  0x0000, 0x0000, 0x003F, 0x003F,
  0x000C, 0x000C, 0x000C, 0x000C,
  0x000C, 0x000C, 0x000C, 0x000C,
  0x000C, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x55 ('U'): (width=7) */
  0x0000, 0x0000, 0x0063, 0x0063,
  0x0063, 0x0063, 0x0063, 0x0063,
  0x0063, 0x0063, 0x0063, 0x007F,
  0x003E, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x56 ('V'): (width=7) */
  0x0000, 0x0000, 0x0063, 0x0063,
  0x0063, 0x0036, 0x0036, 0x0036,
  0x001C, 0x001C, 0x001C, 0x0008,
  0x0008, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x57 ('W'): (width=11) */
  0x0000, 0x0000, 0x0603, 0x0623,
  0x0623, 0x0376, 0x0376, 0x0376,
  0x01DC, 0x01DC, 0x01DC, 0x0088,
  0x0088, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x58 ('X'): (width=7) */
  0x0000, 0x0000, 0x0063, 0x0063,
  0x0036, 0x0036, 0x001C, 0x001C,
  0x001C, 0x0036, 0x0036, 0x0063,
  0x0063, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x59 ('Y'): (width=8) */
  0x0000, 0x0000, 0x00C3, 0x00C3,
  0x0066, 0x0066, 0x003C, 0x003C,
  0x0018, 0x0018, 0x0018, 0x0018,
  0x0018, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x5A ('Z'): (width=7) */
  0x0000, 0x0000, 0x007F, 0x007F,
  0x0030, 0x0030, 0x0018, 0x0018,
  0x000C, 0x000E, 0x0006, 0x007F,
  0x007F, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x5B ('['): (width=4) */
  0x000F, 0x000F, 0x0003, 0x0003,
  0x0003, 0x0003, 0x0003, 0x0003,
  0x0003, 0x0003, 0x0003, 0x0003,
  0x0003, 0x000F, 0x000F, 0x0000},
  {
  /* character 0x5C ('\'): (width=6) */
  0x0000, 0x0000, 0x0000, 0x0003,
  0x0003, 0x0006, 0x0006, 0x000C,
  0x000C, 0x0018, 0x0018, 0x0030,
  0x0030, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x5D (']'): (width=4) */
  0x000F, 0x000F, 0x000C, 0x000C,
  0x000C, 0x000C, 0x000C, 0x000C,
  0x000C, 0x000C, 0x000C, 0x000C,
  0x000C, 0x000F, 0x000F, 0x0000},
  {
  /* character 0x5E ('^'): (width=7) */
  0x0000, 0x0000, 0x0000, 0x0008,
  0x0008, 0x001C, 0x001C, 0x0036,
  0x0036, 0x0063, 0x0063, 0x0000,
  0x0000, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x5F ('_'): (width=9) */
  0x0000, 0x0000, 0x0000, 0x0000,
  0x0000, 0x0000, 0x0000, 0x0000,
  0x0000, 0x0000, 0x0000, 0x0000,
  0x01FF, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x60 ('`'): (width=3) */
  0x0000, 0x0000, 0x0000, 0x0001,
  0x0003, 0x0006, 0x0004, 0x0000,
  0x0000, 0x0000, 0x0000, 0x0000,
  0x0000, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x61 ('a'): (width=6) */
  0x0000, 0x0000, 0x0000, 0x0000,
  0x0000, 0x001E, 0x003F, 0x0030,
  0x003E, 0x003F, 0x0033, 0x003F,
  0x003E, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x62 ('b'): (width=6) */
  0x0000, 0x0000, 0x0003, 0x0003,
  0x0003, 0x001F, 0x003F, 0x0033,
  0x0033, 0x0033, 0x0033, 0x003F,
  0x001F, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x63 ('c'): (width=6) */
  0x0000, 0x0000, 0x0000, 0x0000,
  0x0000, 0x001E, 0x003F, 0x0033,
  0x0003, 0x0003, 0x0033, 0x003F,
  0x001E, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x64 ('d'): (width=6) */
  0x0000, 0x0000, 0x0030, 0x0030,
  0x0030, 0x003E, 0x003F, 0x0033,
  0x0033, 0x0033, 0x0033, 0x003F,
  0x003E, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x65 ('e'): (width=6) */
  0x0000, 0x0000, 0x0000, 0x0000,
  0x0000, 0x001E, 0x003F, 0x0033,
  0x003F, 0x003F, 0x0003, 0x003F,
  0x001E, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x66 ('f'): (width=4) */
  0x0000, 0x0000, 0x000C, 0x000E,
  0x0006, 0x000F, 0x000F, 0x0006,
  0x0006, 0x0006, 0x0006, 0x0006,
  0x0006, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x67 ('g'): (width=6) */
  0x0000, 0x0000, 0x0000, 0x0000,
  0x0000, 0x003E, 0x003F, 0x0033,
  0x0033, 0x0033, 0x0033, 0x003F,
  0x003E, 0x0030, 0x003E, 0x001C},
  {
  /* character 0x68 ('h'): (width=6) */
  0x0000, 0x0000, 0x0003, 0x0003,
  0x0003, 0x001F, 0x003F, 0x0033,
  0x0033, 0x0033, 0x0033, 0x0033,
  0x0033, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x69 ('i'): (width=2) */
  0x0000, 0x0000, 0x0003, 0x0003,
  0x0000, 0x0003, 0x0003, 0x0003,
  0x0003, 0x0003, 0x0003, 0x0003,
  0x0003, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x6A ('j'): (width=5) */
  0x0000, 0x0000, 0x0018, 0x0018,
  0x0000, 0x0018, 0x0018, 0x0018,
  0x0018, 0x0018, 0x0018, 0x0018,
  0x0018, 0x0018, 0x001F, 0x000E},
  {
  /* character 0x6B ('k'): (width=6) */
  0x0000, 0x0000, 0x0003, 0x0003,
  0x0003, 0x0033, 0x003B, 0x001F,
  0x000F, 0x000F, 0x001F, 0x003B,
  0x0033, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x6C ('l'): (width=2) */
  0x0000, 0x0000, 0x0003, 0x0003,
  0x0003, 0x0003, 0x0003, 0x0003,
  0x0003, 0x0003, 0x0003, 0x0003,
  0x0003, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x6D ('m'): (width=10) */
  0x0000, 0x0000, 0x0000, 0x0000,
  0x0000, 0x01DB, 0x03FF, 0x0377,
  0x0333, 0x0333, 0x0333, 0x0333,
  0x0333, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x6E ('n'): (width=6) */
  0x0000, 0x0000, 0x0000, 0x0000,
  0x0000, 0x001B, 0x003F, 0x0037,
  0x0033, 0x0033, 0x0033, 0x0033,
  0x0033, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x6F ('o'): (width=6) */
  0x0000, 0x0000, 0x0000, 0x0000,
  0x0000, 0x001E, 0x003F, 0x0033,
  0x0033, 0x0033, 0x0033, 0x003F,
  0x001E, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x70 ('p'): (width=6) */
  0x0000, 0x0000, 0x0000, 0x0000,
  0x0000, 0x001F, 0x003F, 0x0033,
  0x0033, 0x0033, 0x0033, 0x001F,
  0x001F, 0x0003, 0x0003, 0x0003},
  {
  /* character 0x71 ('q'): (width=6) */
  0x0000, 0x0000, 0x0000, 0x0000,
  0x0000, 0x003E, 0x003F, 0x0033,
  0x0033, 0x0033, 0x0033, 0x003E,
  0x003E, 0x0030, 0x0030, 0x0030},
  {
  /* character 0x72 ('r'): (width=5) */
  0x0000, 0x0000, 0x0000, 0x0000,
  0x0000, 0x001B, 0x001F, 0x0007,
  0x0003, 0x0003, 0x0003, 0x0003,
  0x0003, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x73 ('s'): (width=5) */
  0x0000, 0x0000, 0x0000, 0x0000,
  0x0000, 0x000E, 0x001F, 0x0003,
  0x000F, 0x001E, 0x0018, 0x001F,
  0x000E, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x74 ('t'): (width=4) */
  0x0000, 0x0000, 0x0004, 0x0006,
  0x0006, 0x000F, 0x000F, 0x0006,
  0x0006, 0x0006, 0x0006, 0x000E,
  0x000C, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x75 ('u'): (width=6) */
  0x0000, 0x0000, 0x0000, 0x0000,
  0x0000, 0x0033, 0x0033, 0x0033,
  0x0033, 0x0033, 0x0033, 0x003F,
  0x003E, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x76 ('v'): (width=7) */
  0x0000, 0x0000, 0x0000, 0x0000,
  0x0000, 0x0063, 0x0063, 0x0036,
  0x0036, 0x001C, 0x001C, 0x0008,
  0x0008, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x77 ('w'): (width=11) */
  0x0000, 0x0000, 0x0000, 0x0000,
  0x0000, 0x0623, 0x0623, 0x0376,
  0x0376, 0x01DC, 0x01DC, 0x0088,
  0x0088, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x78 ('x'): (width=7) */
  0x0000, 0x0000, 0x0000, 0x0000,
  0x0000, 0x0063, 0x0077, 0x003E,
  0x001C, 0x001C, 0x003E, 0x0077,
  0x0063, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x79 ('y'): (width=6) */
  0x0000, 0x0000, 0x0000, 0x0000,
  0x0000, 0x0033, 0x0033, 0x0033,
  0x0033, 0x0033, 0x0033, 0x003F,
  0x003E, 0x0030, 0x003E, 0x001C},
  {
  /* character 0x7A ('z'): (width=6) */
  0x0000, 0x0000, 0x0000, 0x0000,
  0x0000, 0x003F, 0x003F, 0x0030,
  0x0018, 0x000C, 0x0006, 0x003F,
  0x003F, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x7B ('{'): (width=4) */
  0x0008, 0x0004, 0x0006, 0x0006,
  0x0003, 0x0003, 0x0003, 0x0003,
  0x0003, 0x0003, 0x0003, 0x0006,
  0x0006, 0x0004, 0x0008, 0x0000},
  {
  /* character 0x7C ('|'): (width=2) */
  0x0000, 0x0003, 0x0003, 0x0003,
  0x0003, 0x0003, 0x0000, 0x0000,
  0x0003, 0x0003, 0x0003, 0x0003,
  0x0003, 0x0000, 0x0000, 0x0000},
  {
  /* character 0x7D ('}'): (width=4) */
  0x0001, 0x0002, 0x0006, 0x0006,
  0x000C, 0x000C, 0x000C, 0x000C,
  0x000C, 0x000C, 0x000C, 0x0006,
  0x0006, 0x0002, 0x0001, 0x0000},
};

const unsigned char MetaWatch16width[PRINTABLE_CHARACTERS] = 
{
/*		width    char    hexcode */
/*		=====    ====    ======= */
        4, /*  '  '    20      */
  		  2, /*   !      21      */
  		  5, /*   "      22      */
  		 12, /*   #      23      */
  		  6, /*   $      24      */
  		 10, /*   %      25      */
  		 10, /*   &      26      */
  		  2, /*   '      27      */
  		  4, /*   (      28      */
  		  4, /*   )      29      */
  		  8, /*   *      2A      */
  		  8, /*   +      2B      */
  		  2, /*   ,      2C      */
  		  8, /*   -      2D      */
  		  2, /*   .      2E      */
  		  6, /*   /      2F      */
  		  7, /*   0      30      */
  		  3, /*   1      31      */
  		  6, /*   2      32      */
  		  6, /*   3      33      */
  		  7, /*   4      34      */
  		  6, /*   5      35      */
  		  6, /*   6      36      */
  		  6, /*   7      37      */
  		  6, /*   8      38      */
  		  6, /*   9      39      */
  		  2, /*   :      3A      */
  		  2, /*   ;      3B      */
  		  8, /*   <      3C      */
  		  7, /*   =      3D      */
  		  8, /*   >      3E      */
  		  6, /*   ?      3F      */
  		 11, /*   @      40      */
  		  9, /*   A      41      */
  		  7, /*   B      42      */
  		  7, /*   C      43      */
  		  7, /*   D      44      */
  		  7, /*   E      45      */
  		  6, /*   F      46      */
  		  7, /*   G      47      */
  		  7, /*   H      48      */
  		  4, /*   I      49      */
  		  6, /*   J      4A      */
  		  7, /*   K      4B      */
  		  6, /*   L      4C      */
  		 11, /*   M      4D      */
  		  9, /*   N      4E      */
  		  7, /*   O      4F      */
  		  7, /*   P      50      */
  		  8, /*   Q      51      */
  		  7, /*   R      52      */
  		  6, /*   S      53      */
  		  6, /*   T      54      */
  		  7, /*   U      55      */
  		  7, /*   V      56      */
  		 11, /*   W      57      */
  		  7, /*   X      58      */
  		  8, /*   Y      59      */
  		  7, /*   Z      5A      */
  		  4, /*   [      5B      */
  		  6, /*   \      5C      */
  		  4, /*   ]      5D      */
  		  7, /*   ^      5E      */
  		  9, /*   _      5F      */
  		  3, /*   `      60      */
  		  6, /*   a      61      */
  		  6, /*   b      62      */
  		  6, /*   c      63      */
  		  6, /*   d      64      */
  		  6, /*   e      65      */
  		  4, /*   f      66      */
  		  6, /*   g      67      */
  		  6, /*   h      68      */
  		  2, /*   i      69      */
  		  5, /*   j      6A      */
  		  6, /*   k      6B      */
  		  2, /*   l      6C      */
  		 10, /*   m      6D      */
  		  6, /*   n      6E      */
  		  6, /*   o      6F      */
  		  6, /*   p      70      */
  		  6, /*   q      71      */
  		  5, /*   r      72      */
  		  5, /*   s      73      */
  		  4, /*   t      74      */
  		  6, /*   u      75      */
  		  7, /*   v      76      */
  		 11, /*   w      77      */
  		  7, /*   x      78      */
  		  6, /*   y      79      */
  		  6, /*   z      7A      */
  		  4, /*   {      7B      */
  		  2, /*   |      7C      */
  		  4, /*   }      7D      */
};

/******************************************************************************/
const u16t MetaWatchTimeTable[TOTAL_TIME_CHARACTERS][19] = 
{
  /* character 0x30 ('0'): (width=11, offset=0) */
  {0x01FC, 0x03FE, 0x07FF, 0x07FF,
  0x078F, 0x078F, 0x078F, 0x078F,
  0x078F, 0x078F, 0x078F, 0x078F,
  0x078F, 0x078F, 0x078F, 0x07FF,
  0x07FF, 0x03FE, 0x01FC},
  {
  /* character 0x31 ('1'): (width=11, offset=38) */
  0x01C0, 0x01E0, 0x01F8, 0x01F8,
  0x01F8, 0x01F8, 0x01E0, 0x01E0,
  0x01E0, 0x01E0, 0x01E0, 0x01E0,
  0x01E0, 0x01E0, 0x01E0, 0x01E0,
  0x01E0, 0x01E0, 0x01E0},
  {
  /* character 0x32 ('2'): (width=11, offset=76) */
  0x01FC, 0x03FE, 0x07FF, 0x07FF,
  0x078F, 0x078F, 0x0780, 0x07C0,
  0x07E0, 0x03F0, 0x01F8, 0x00FC,
  0x007E, 0x003F, 0x001F, 0x07FF,
  0x07FF, 0x07FF, 0x07FF},
  {
  /* character 0x33 ('3'): (width=11, offset=114) */
  0x01FC, 0x03FE, 0x07FF, 0x07FF,
  0x078F, 0x078F, 0x0780, 0x07C0,
  0x03F0, 0x01F0, 0x03F0, 0x07C0,
  0x0780, 0x078F, 0x078F, 0x07FF,
  0x07FF, 0x03FE, 0x01FC},
  {
  /* character 0x34 ('4'): (width=11, offset=152) */
  0x003C, 0x07BC, 0x07BC, 0x079E,
  0x079E, 0x078F, 0x078F, 0x07FF,
  0x07FF, 0x07FF, 0x07FF, 0x0780,
  0x0780, 0x0780, 0x0780, 0x0780,
  0x0780, 0x0780, 0x0780},
  {
  /* character 0x35 ('5'): (width=11, offset=190) */
  0x07FF, 0x07FF, 0x07FF, 0x07FF,
  0x000F, 0x000F, 0x000F, 0x03FF,
  0x07FF, 0x07FF, 0x07FF, 0x0780,
  0x0780, 0x0780, 0x07C0, 0x07FF,
  0x03FF, 0x03FF, 0x00FF},
  {
  /* character 0x36 ('6'): (width=11, offset=228) */
  0x01F0, 0x01FC, 0x01FE, 0x01FE,
  0x001F, 0x000F, 0x000F, 0x01FF,
  0x03FF, 0x07FF, 0x07FF, 0x078F,
  0x078F, 0x078F, 0x078F, 0x07FF,
  0x07FF, 0x03FE, 0x01FC},
  {
  /* character 0x37 ('7'): (width=11, offset=266) */
  0x07FF, 0x07FF, 0x07FF, 0x07FF,
  0x0780, 0x07C0, 0x03C0, 0x03E0,
  0x01E0, 0x01F0, 0x00F0, 0x00F8,
  0x0078, 0x0078, 0x0078, 0x0078,
  0x0078, 0x0078, 0x0078},
  {
  /* character 0x38 ('8'): (width=11, offset=304) */
  0x01FC, 0x03FE, 0x07FF, 0x07FF,
  0x078F, 0x078F, 0x078F, 0x07FF,
  0x07FF, 0x03FE, 0x07FF, 0x078F,
  0x078F, 0x078F, 0x078F, 0x07FF,
  0x07FF, 0x03FE, 0x01FC},
  {
  /* character 0x39 ('9'): (width=11, offset=342) */
  0x01FC, 0x03FE, 0x07FF, 0x07FF,
  0x078F, 0x078F, 0x078F, 0x078F,
  0x07FF, 0x07FF, 0x07FE, 0x07FC,
  0x0780, 0x0780, 0x07C0, 0x03FC,
  0x03FC, 0x01FC, 0x007C},
  {
  /* character 0x3A (':'): (width=4, offset=380) */
  0x0000, 0x0000, 0x0000, 0x0000,
  0x0006, 0x000F, 0x000F, 0x0006,
  0x0000, 0x0000, 0x0000, 0x0006,
  0x000F, 0x000F, 0x0006, 0x0000,
  0x0000, 0x0000, 0x0000},
  {
  /* character 0x3B (';'): (width=11, offset=418) */
  0x0000, 0x0000, 0x0000, 0x0000,
  0x0000, 0x0000, 0x0000, 0x0000,
  0x0000, 0x0000, 0x0000, 0x0000,
  0x0000, 0x0000, 0x0000, 0x0000,
  0x0000, 0x0000, 0x0000},
};

const unsigned char MetaWatchTimeWidth[TOTAL_TIME_CHARACTERS] = 
{
/*		width    char    hexcode */
/*		=====    ====    ======= */
  		 11, /*   0      30      */
  		 11, /*   1      31      */
  		 11, /*   2      32      */
  		 11, /*   3      33      */
  		 11, /*   4      34      */
  		 11, /*   5      35      */
  		 11, /*   6      36      */
  		 11, /*   7      37      */
  		 11, /*   8      38      */
  		 11, /*   9      39      */
  		  4, /*   :      3A      */
  		 11, /*  ' '     3B      */ 
};

/******************************************************************************/

const unsigned char MetaWatchMonospaced10Table[PRINTABLE_CHARACTERS][10] =  
{
  {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
  {0x00,0x00,0x10,0x38,0x38,0x10,0x10,0x00,0x10,0x00},
  {0x00,0x00,0x6C,0x6C,0x24,0x00,0x00,0x00,0x00,0x00},
  {0x00,0x00,0x00,0x28,0x7C,0x28,0x28,0x7C,0x28,0x00},
  {0x00,0x00,0x10,0x70,0x08,0x30,0x40,0x38,0x20,0x00},
  {0x00,0x00,0x4C,0x4C,0x20,0x10,0x08,0x64,0x64,0x00},
  {0x00,0x00,0x08,0x14,0x14,0x08,0x54,0x24,0x58,0x00},
  {0x00,0x00,0x18,0x18,0x10,0x08,0x00,0x00,0x00,0x00},
  {0x00,0x00,0x10,0x08,0x08,0x08,0x08,0x08,0x10,0x00},
  {0x00,0x00,0x10,0x20,0x20,0x20,0x20,0x20,0x10,0x00},
  {0x00,0x00,0x92,0x54,0x38,0xFE,0x38,0x54,0x92,0x00},
  {0x00,0x00,0x00,0x10,0x10,0x7C,0x10,0x10,0x00,0x00},
  {0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x10,0x08},
  {0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x00},
  {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00},
  {0x00,0x00,0x00,0x40,0x20,0x10,0x08,0x04,0x00,0x00},
  {0x00,0x00,0x38,0x44,0x64,0x54,0x4C,0x44,0x38,0x00},
  {0x00,0x00,0x10,0x18,0x10,0x10,0x10,0x10,0x38,0x00},
  {0x00,0x00,0x38,0x44,0x40,0x30,0x08,0x04,0x7C,0x00},
  {0x00,0x00,0x38,0x44,0x40,0x38,0x40,0x44,0x38,0x00},
  {0x00,0x00,0x20,0x30,0x28,0x24,0x7C,0x20,0x20,0x00},
  {0x00,0x00,0x7C,0x04,0x04,0x3C,0x40,0x44,0x38,0x00},
  {0x00,0x00,0x30,0x08,0x04,0x3C,0x44,0x44,0x38,0x00},
  {0x00,0x00,0x7C,0x40,0x20,0x10,0x08,0x08,0x08,0x00},
  {0x00,0x00,0x38,0x44,0x44,0x38,0x44,0x44,0x38,0x00},
  {0x00,0x00,0x38,0x44,0x44,0x78,0x40,0x20,0x18,0x00},
  {0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x18,0x18,0x00},
  {0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x18,0x18,0x10},
  {0x00,0x00,0x20,0x10,0x08,0x04,0x08,0x10,0x20,0x00},
  {0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x7C,0x00,0x00},
  {0x00,0x00,0x08,0x10,0x20,0x40,0x20,0x10,0x08,0x00},
  {0x00,0x00,0x38,0x44,0x40,0x30,0x10,0x00,0x10,0x00},
  {0x00,0x00,0x38,0x44,0x74,0x54,0x74,0x04,0x38,0x00},
  {0x00,0x00,0x38,0x44,0x44,0x44,0x7C,0x44,0x44,0x00},
  {0x00,0x00,0x3C,0x44,0x44,0x3C,0x44,0x44,0x3C,0x00},
  {0x00,0x00,0x38,0x44,0x04,0x04,0x04,0x44,0x38,0x00},
  {0x00,0x00,0x3C,0x44,0x44,0x44,0x44,0x44,0x3C,0x00},
  {0x00,0x00,0x7C,0x04,0x04,0x3C,0x04,0x04,0x7C,0x00},
  {0x00,0x00,0x7C,0x04,0x04,0x3C,0x04,0x04,0x04,0x00},
  {0x00,0x00,0x38,0x44,0x04,0x74,0x44,0x44,0x78,0x00},
  {0x00,0x00,0x44,0x44,0x44,0x7C,0x44,0x44,0x44,0x00},
  {0x00,0x00,0x38,0x10,0x10,0x10,0x10,0x10,0x38,0x00},
  {0x00,0x00,0x40,0x40,0x40,0x40,0x44,0x44,0x38,0x00},
  {0x00,0x00,0x44,0x24,0x14,0x0C,0x14,0x24,0x44,0x00},
  {0x00,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x7C,0x00},
  {0x00,0x00,0x44,0x6C,0x54,0x44,0x44,0x44,0x44,0x00},
  {0x00,0x00,0x44,0x4C,0x54,0x64,0x44,0x44,0x44,0x00},
  {0x00,0x00,0x38,0x44,0x44,0x44,0x44,0x44,0x38,0x00},
  {0x00,0x00,0x3C,0x44,0x44,0x3C,0x04,0x04,0x04,0x00},
  {0x00,0x00,0x38,0x44,0x44,0x44,0x54,0x24,0x58,0x00},
  {0x00,0x00,0x3C,0x44,0x44,0x3C,0x24,0x44,0x44,0x00},
  {0x00,0x00,0x38,0x44,0x04,0x38,0x40,0x44,0x38,0x00},
  {0x00,0x00,0x7C,0x10,0x10,0x10,0x10,0x10,0x10,0x00},
  {0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x38,0x00},
  {0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x28,0x10,0x00},
  {0x00,0x00,0x44,0x44,0x54,0x54,0x54,0x54,0x28,0x00},
  {0x00,0x00,0x44,0x44,0x28,0x10,0x28,0x44,0x44,0x00},
  {0x00,0x00,0x44,0x44,0x44,0x28,0x10,0x10,0x10,0x00},
  {0x00,0x00,0x7C,0x40,0x20,0x10,0x08,0x04,0x7C,0x00},
  {0x00,0x00,0x38,0x08,0x08,0x08,0x08,0x08,0x38,0x00},
  {0x00,0x00,0x00,0x04,0x08,0x10,0x20,0x40,0x00,0x00},
  {0x00,0x00,0x38,0x20,0x20,0x20,0x20,0x20,0x38,0x00},
  {0x00,0x00,0x10,0x28,0x44,0x00,0x00,0x00,0x00,0x00},
  {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00},
  {0x00,0x18,0x18,0x08,0x10,0x00,0x00,0x00,0x00,0x00},
  {0x00,0x00,0x00,0x00,0x38,0x40,0x78,0x44,0x78,0x00},
  {0x00,0x00,0x04,0x04,0x3C,0x44,0x44,0x44,0x3C,0x00},
  {0x00,0x00,0x00,0x00,0x38,0x44,0x04,0x44,0x38,0x00},
  {0x00,0x00,0x40,0x40,0x78,0x44,0x44,0x44,0x78,0x00},
  {0x00,0x00,0x00,0x00,0x38,0x44,0x3C,0x04,0x38,0x00},
  {0x00,0x00,0x60,0x10,0x10,0x78,0x10,0x10,0x10,0x00},
  {0x00,0x00,0x00,0x78,0x44,0x44,0x78,0x40,0x38,0x00},
  {0x00,0x00,0x08,0x08,0x38,0x48,0x48,0x48,0x48,0x00},
  {0x00,0x00,0x10,0x00,0x10,0x10,0x10,0x10,0x10,0x00},
  {0x00,0x00,0x40,0x00,0x60,0x40,0x40,0x40,0x48,0x30},
  {0x00,0x00,0x08,0x08,0x48,0x28,0x18,0x28,0x48,0x00},
  {0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00},
  {0x00,0x00,0x00,0x00,0x2C,0x54,0x54,0x44,0x44,0x00},
  {0x00,0x00,0x00,0x00,0x38,0x48,0x48,0x48,0x48,0x00},
  {0x00,0x00,0x00,0x00,0x38,0x44,0x44,0x44,0x38,0x00},
  {0x00,0x00,0x00,0x00,0x3C,0x44,0x44,0x3C,0x04,0x04},
  {0x00,0x00,0x00,0x00,0x78,0x44,0x44,0x78,0x40,0x40},
  {0x00,0x00,0x00,0x00,0x34,0x48,0x08,0x08,0x1C,0x00},
  {0x00,0x00,0x00,0x00,0x38,0x04,0x38,0x40,0x38,0x00},
  {0x00,0x00,0x00,0x10,0x78,0x10,0x10,0x50,0x20,0x00},
  {0x00,0x00,0x00,0x00,0x48,0x48,0x48,0x68,0x50,0x00},
  {0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x28,0x10,0x00},
  {0x00,0x00,0x00,0x00,0x44,0x44,0x54,0x7C,0x28,0x00},
  {0x00,0x00,0x00,0x00,0x44,0x28,0x10,0x28,0x44,0x00},
  {0x00,0x00,0x00,0x00,0x48,0x48,0x48,0x70,0x40,0x70},
  {0x00,0x00,0x00,0x00,0x78,0x40,0x30,0x08,0x78,0x00},
  {0x00,0x00,0x30,0x08,0x08,0x0C,0x08,0x08,0x30,0x00},
  {0x00,0x00,0x10,0x10,0x10,0x00,0x10,0x10,0x10,0x00},
  {0x00,0x00,0x18,0x20,0x20,0x60,0x20,0x20,0x18,0x00},
//  {0x00,0x00,0x00,0x50,0x28,0x00,0x00,0x00,0x00,0x00},
};