aboutsummaryrefslogtreecommitdiffstats
path: root/font_6x8_bold.h
blob: e0175fb210c6df3dc5305b61ed7f10477eac8f0e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
pre { line-height: 125%; margin: 0; }
td.linenos pre { color: #000000; background-color: #f0f0f0; padding: 0 5px 0 5px; }
span.linenos { color: #000000; background-color: #f0f0f0; padding: 0 5px 0 5px; }
td.linenos pre.special { color: #000000; background-color: #ffffc0; padding: 0 5px 0 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding: 0 5px 0 5px; }
.highlight .hll { background-color: #ffffcc }
.highlight .c { color: #888888 } /* Comment */
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
.highlight .k { color: #008800; font-weight: bold } /* Keyword */
.highlight .ch { color: #888888 } /* Comment.Hashbang */
.highlight .cm { color: #888888 } /* Comment.Multiline */
.highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */
.highlight .cpf { color: #888888 } /* Comment.PreprocFile */
.highlight .c1 { color: #888888 } /* Comment.Single */
.highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */
.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gr { color: #aa0000 } /* Generic.Error */
.highlight .gh { color: #333333 } /* Generic.Heading */
.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #555555 } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #666666 } /* Generic.Subheading */
.highlight .gt { color: #aa0000 } /* Generic.Traceback */
.highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #008800 } /* Keyword.Pseudo */
.highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */
.highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */
.highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */
.highlight .na { color: #336699 } /* Name.Attribute */
.highlight .nb { color: #003388 } /* Name.Builtin */
.highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */
.highlight .no { color: #003366; font-weight: bold } /* Name.Constant */
.highlight .nd { color: #555555 } /* Name.Decorator */
.highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */
.highlight .nl { color: #336699; font-style: italic } /* Name.Label */
.highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */
.highlight .py { color: #336699; font-weight: bold } /* Name.Property */
.highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */
.highlight .nv { color: #336699 } /* Name.Variable */
.highlight .ow { color: #008800 } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */
.highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */
.highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */
.highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */
.highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */
.highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */
.highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */
.highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */
.highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */
.highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */
.highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */
.highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */
.highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */
.highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */
.highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */
.highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */
.highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */
.highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */
.highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */
.highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */
.highlight .vc { color: #336699 } /* Name.Variable.Class */
.highlight .vg { color: #dd7700 } /* Name.Variable.Global */
.highlight .vi { color: #3333bb } /* Name.Variable.Instance */
.highlight .vm { color: #336699 } /* Name.Variable.Magic */
.highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
/* $Id: plugin_seti.c,v 1.7 2005/05/08 04:32:45 reinelt Exp $
 *
 * plugin for seti@home status reporting
 *
 * Copyright (C) 2004 Michael Reinelt <reinelt@eunet.at>
 * Copyright (C) 2004 The LCD4Linux Team <lcd4linux-devel@users.sourceforge.net>
 *
 * based on the old seti client which is 
 * Copyright (C) 2001 Axel Ehnert <axel@ehnert.net>
 *
 *
 * This file is part of LCD4Linux.
 *
 * LCD4Linux is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2, or (at your option)
 * any later version.
 *
 * LCD4Linux is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 *
 *
 * $Log: plugin_seti.c,v $
 * Revision 1.7  2005/05/08 04:32:45  reinelt
 * CodingStyle added and applied
 *
 * Revision 1.6  2005/01/18 06:30:23  reinelt
 * added (C) to all copyright statements
 *
 * Revision 1.5  2004/06/26 12:05:00  reinelt
 *
 * uh-oh... the last CVS log message messed up things a lot...
 *
 * Revision 1.4  2004/06/26 09:27:21  reinelt
 *
 * added '-W' to CFLAGS
 * changed all C++ comments to C ones
 * cleaned up a lot of signed/unsigned mistakes
 *
 * Revision 1.3  2004/06/17 06:23:43  reinelt
 *
 * hash handling rewritten to solve performance issues
 *
 * Revision 1.2  2004/03/13 19:06:01  reinelt
 * ChangeLog and Status update; small glitch in plugin_seti fixed.
 *
 * Revision 1.1  2004/03/13 06:49:20  reinelt
 * seti@home plugin ported to NextGeneration
 *
 */

/* 
 * exported functions:
 *
 * int plugin_init_seti (void)
 *  adds functions to access /seti/state.sah
 *
 */


#include "config.h"

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <errno.h>

#include "debug.h"
#include "plugin.h"
#include "hash.h"
#include "cfg.h"

#define SECTION   "Plugin:Seti"
#define DIRKEY    "Directory"
#define STATEFILE "state.sah"

static HASH SETI;
static int fatal = 0;

static int parse_seti(void)
{
    static char fn[256] = "";
    FILE *stream;
    int age;

    /* if a fatal error occured, do nothing */
    if (fatal != 0)
	return -1;

    /* reread every 100 msec only */
    age = hash_age(&SETI, NULL);
    if (age > 0 && age <= 100)
	return 0;

    if (fn[0] == '\0') {
	char *dir = cfg_get(SECTION, DIRKEY, NULL);
	if (dir == NULL || *dir == '\0') {
	    error("no '%s.%s' entry from %s\n", SECTION, DIRKEY, cfg_source());
	    fatal = 1;
	    return -1;
	}
	if (strlen(dir) > sizeof(fn) - sizeof(STATEFILE) - 2) {
	    error("entry '%s.%s' too long from %s!\n", SECTION, DIRKEY, cfg_source());
	    fatal = 1;
	    free(dir);
	    return -1;
	}
	strcpy(fn, dir);
	if (fn[strlen(fn) - 1] != '/')
	    strcat(fn, "/");
	strcat(fn, STATEFILE);
	free(dir);
    }

    stream = fopen(fn, "r");
    if (stream == NULL) {
	error("fopen(%s) failed: %s", fn, strerror(errno));
	return -1;
    }

    while (!feof(stream)) {
	char buffer[256];
	char *c, *key, *val;
	fgets(buffer, sizeof(buffer), stream);
	c = strchr(buffer, '=');
	if (c == NULL)
	    continue;
	key = buffer;
	val = c + 1;
	/* strip leading blanks from key */
	while (isspace(*key))
	    *key++ = '\0';
	/* strip trailing blanks from key */
	do
	    *c = '\0';
	while (isspace(*--c));
	/* strip leading blanks from value */
	while (isspace(*val))
	    *val++ = '\0';
	/* strip trailing blanks from value */
	for (c = val; *c != '\0'; c++);
	while (isspace(*--c))
	    *c = '\0';
	/* add entry to hash table */
	hash_put(&SETI, key, val);
    }

    fclose(stream);

    return 0;
}


static void my_seti(RESULT * result, RESULT * arg1)
{
    char *key, *val;

    if (parse_seti() < 0) {
	SetResult(&result, R_STRING, "");
	return;
    }

    key = R2S(arg1);
    val = hash_get(&SETI, key, NULL);
    if (val == NULL)
	val = "";

    SetResult(&result, R_STRING, val);
}


int plugin_init_seti(void)
{
    hash_create(&SETI);
    AddFunction("seti", 1, my_seti);
    return 0;
}


void plugin_exit_seti(void)
{
    hash_destroy(&SETI);
}
'>892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912
/* $Id: font_6x8_bold.h,v 1.3 2006/08/14 19:24:22 harbaum Exp $
 *
 * 6x8 bold font
 *
 * Copyright (C) 2006 Till Harbaum <till@harbaum.org>
 * Copyright (C) 2006 The LCD4Linux Team <lcd4linux-devel@users.sourceforge.net>
 *
 * This file is part of LCD4Linux.
 *
 * LCD4Linux is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2, or (at your option)
 * any later version.
 *
 * LCD4Linux is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 *
 *
 * $Log: font_6x8_bold.h,v $
 * Revision 1.3  2006/08/14 19:24:22  harbaum
 * Umlaut support, added KVV HTTP-User-Agent
 *
 * Revision 1.2  2006/08/13 18:14:03  harbaum
 * Added KVV plugin
 *
 * Revision 1.1  2006/08/09 17:25:34  harbaum
 * Better bar color support and new bold font
 *
 */

#define ______ 0x00
#define _____O 0x01
#define ____O_ 0x02
#define ____OO 0x03
#define ___O__ 0x04
#define ___O_O 0x05
#define ___OO_ 0x06
#define ___OOO 0x07
#define __O___ 0x08
#define __O__O 0x09
#define __O_O_ 0x0a
#define __O_OO 0x0b
#define __OO__ 0x0c
#define __OO_O 0x0d
#define __OOO_ 0x0e
#define __OOOO 0x0f
#define _O____ 0x10
#define _O___O 0x11
#define _O__O_ 0x12
#define _O__OO 0x13
#define _O_O__ 0x14
#define _O_O_O 0x15
#define _O_OO_ 0x16
#define _O_OOO 0x17
#define _OO___ 0x18
#define _OO__O 0x19
#define _OO_O_ 0x1a
#define _OO_OO 0x1b
#define _OOO__ 0x1c
#define _OOO_O 0x1d
#define _OOOO_ 0x1e
#define _OOOOO 0x1f
#define O_____ 0x20
#define O____O 0x21
#define O___O_ 0x22
#define O___OO 0x23
#define O__O__ 0x24
#define O__O_O 0x25
#define O__OO_ 0x26
#define O__OOO 0x27
#define O_O___ 0x28
#define O_O__O 0x29
#define O_O_O_ 0x2a
#define O_O_OO 0x2b
#define O_OO__ 0x2c
#define O_OO_O 0x2d
#define O_OOO_ 0x2e
#define O_OOOO 0x2f
#define OO____ 0x30
#define OO___O 0x31
#define OO__O_ 0x32
#define OO__OO 0x33
#define OO_O__ 0x34
#define OO_O_O 0x35
#define OO_OO_ 0x36
#define OO_OOO 0x37
#define OOO___ 0x38
#define OOO__O 0x39
#define OOO_O_ 0x3a
#define OOO_OO 0x3b
#define OOOO__ 0x3c
#define OOOO_O 0x3d
#define OOOOO_ 0x3e
#define OOOOOO 0x3f

unsigned char Font_6x8_bold[256][8] = {
    [0x20] {______,
	    ______,
	    ______,
	    ______,
	    ______,
	    ______,
	    ______,
	    ______},
    [0x21] {__OO__,
	    __OO__,
	    __OO__,
	    __OO__,
	    ______,
	    ______,
	    __OO__,
	    ______},
    [0x22] {_OO_OO,
	    _OO_OO,
	    _OO_OO,
	    ______,
	    ______,
	    ______,
	    ______,
	    ______},
    [0x23] {__O_O_,
	    __O_O_,
	    _OOOOO,
	    __O_O_,
	    _OOOOO,
	    __O_O_,
	    __O_O_,
	    ______},
    [0x24] {___O__,
	    __OOOO,
	    _O_O__,
	    __OOO_,
	    ___O_O,
	    _OOOO_,
	    ___O__,
	    ______},
    [0x25] {_OO___,
	    _OO_OO,
	    ___OO_,
	    __OO__,
	    _OO___,
	    OO__OO,
	    ____OO,
	    ______},
    [0x26] {__OO__,
	    _OO_OO,
	    _OO_OO,
	    __OO__,
	    _OOO_O,
	    _OO_OO,
	    __OO_O,
	    ______},
    [0x27] {__OO__,
	    __OO__,
	    _OO___,
	    ______,
	    ______,
	    ______,
	    ______,
	    ______},
    [0x28] {___OO_,
	    __OO__,
	    _OO___,
	    _OO___,
	    _OO___,
	    __OO__,
	    ___OO_,
	    ______},
    [0x29] {_OO___,
	    __OO__,
	    ___OO_,
	    ___OO_,
	    ___OO_,
	    __OO__,
	    _OO___,
	    ______},
    [0x2a] {______,
	    ___O__,
	    _O_O_O,
	    __OOO_,
	    _O_O_O,
	    ___O__,
	    ______,
	    ______},
    [0x2b] {______,
	    __OO__,
	    __OO__,
	    _OOOO_,
	    __OO__,
	    __OO__,
	    ______,
	    ______},
    [0x2c] {______,
	    ______,
	    ______,
	    ______,
	    ___OO_,
	    ___OO_,
	    __OO__,
	    ______},
    [0x2d] {______,
	    ______,
	    ______,
	    _OOOOO,
	    ______,
	    ______,
	    ______,
	    ______},
    [0x2e] {______,
	    ______,
	    ______,
	    ______,
	    ______,
	    __OO__,
	    __OO__,
	    ______},
    [0x2f] {______,
	    ____OO,
	    ___OO_,
	    __OO__,
	    _OO___,
	    OO____,
	    ______,
	    ______},
    [0x30] {__OOO_,
	    _OO_OO,
	    _OO_OO,
	    _OO_OO,
	    _OO_OO,
	    _OO_OO,
	    __OOO_,
	    ______},
    [0x31] {___OO_,
	    __OOO_,
	    ___OO_,
	    ___OO_,
	    ___OO_,
	    ___OO_,
	    __OOOO,
	    ______},
    [0x32] {__OOO_,
	    _OO_OO,
	    ____OO,
	    ___OO_,
	    __OO__,
	    _OO___,
	    _OOOOO,
	    ______},
    [0x33] {_OOOOO,
	    ____OO,
	    ___OO_,
	    ____OO,
	    ____OO,
	    _OO_OO,
	    __OOO_,
	    ______},
    [0x34] {____OO,
	    ___OO_,
	    __OO__,
	    _OO_OO,
	    _OOOOO,
	    ____OO,
	    ____OO,
	    ______},
    [0x35] {_OOOOO,
	    _OO___,
	    _OO___,
	    _OOOO_,
	    ____OO,
	    _OO_OO,
	    __OOO_,
	    ______},
    [0x36] {___OO_,
	    __OO__,
	    _OO___,
	    _OOOO_,
	    _OO_OO,
	    _OO_OO,
	    __OOO_,
	    ______},
    [0x37] {_OOOOO,
	    ____OO,
	    ___OO_,
	    __OO__,
	    __OO__,
	    __OO__,
	    __OO__,
	    ______},
    [0x38] {__OOO_,
	    _OO_OO,
	    _OO_OO,
	    __OOO_,
	    _OO_OO,
	    _OO_OO,
	    __OOO_,
	    ______},
    [0x39] {__OOO_,
	    _OO_OO,
	    _OO_OO,
	    __OOOO,
	    ____OO,
	    ___OO_,
	    _OOO__,
	    ______},
    [0x3a] {______,
	    __OO__,
	    __OO__,
	    ______,
	    __OO__,
	    __OO__,
	    ______,
	    ______},
    [0x3b] {______,
	    __OO__,
	    __OO__,
	    ______,
	    __OO__,
	    __OO__,
	    _OO___,
	    ______},
    [0x3c] {____OO,
	    ___OO_,
	    __OO__,
	    _OO___,
	    __OO__,
	    ___OO_,
	    ____OO,
	    ______},
    [0x3d] {______,
	    ______,
	    _OOOOO,
	    ______,
	    _OOOOO,
	    ______,
	    ______,
	    ______},
    [0x3e] {_OO___,
	    __OO__,
	    ___OO_,
	    ____OO,
	    ___OO_,
	    __OO__,
	    _OO___,
	    ______},
    [0x3f] {__OOO_,
	    _OO_OO,
	    ____OO,
	    ___OO_,
	    __OO__,
	    ______,
	    __OO__,
	    ______},
    [0x40] {__OOO_,
	    _OO_OO,
	    ____OO,
	    __O_OO,
	    _OO_OO,
	    _OO_OO,
	    __OOO_,
	    ______},
    [0x41] {__OOO_,
	    _OO_OO,
	    _OO_OO,
	    _OO_OO,
	    _OOOOO,
	    _OO_OO,
	    _OO_OO,
	    ______},
    [0x42] {_OOOO_,
	    _OO_OO,
	    _OO_OO,
	    _OOOO_,
	    _OO_OO,
	    _OO_OO,
	    _OOOO_,
	    ______},
    [0x43] {__OOO_,
	    _OO_OO,
	    _OO___,
	    _OO___,
	    _OO___,
	    _OO_OO,
	    __OOO_,
	    ______},
    [0x44] {_OOO__,
	    _OOOO_,
	    _OO_OO,
	    _OO_OO,
	    _OO_OO,
	    _OOOO_,
	    _OOO__,
	    ______},
    [0x45] {_OOOOO,
	    _OO___,
	    _OO___,
	    _OOOO_,
	    _OO___,
	    _OO___,
	    _OOOOO,
	    ______},
    [0x46] {_OOOOO,
	    _OO___,
	    _OO___,
	    _OOOO_,
	    _OO___,
	    _OO___,
	    _OO___,
	    ______},
    [0x47] {__OOO_,
	    _OO_OO,
	    _OO___,
	    _OO_OO,
	    _OO_OO,
	    _OO_OO,
	    __OOOO,
	    ______},
    [0x48] {_OO_OO,
	    _OO_OO,
	    _OO_OO,
	    _OOOOO,
	    _OO_OO,
	    _OO_OO,
	    _OO_OO,
	    ______},
    [0x49] {_OOOO_,
	    __OO__,
	    __OO__,
	    __OO__,
	    __OO__,
	    __OO__,
	    _OOOO_,
	    ______},
    [0x4a] {___OOO,
	    ____OO,
	    ____OO,
	    ____OO,
	    ____OO,
	    _OO_OO,
	    __OOO_,
	    ______},
    [0x4b] {_OO_OO,
	    _OO_OO,
	    _OOOO_,
	    _OOO__,
	    _OOOO_,
	    _OO_OO,
	    _OO_OO,
	    ______},
    [0x4c] {_OO___,
	    _OO___,
	    _OO___,
	    _OO___,
	    _OO___,
	    _OO___,
	    _OOOOO,
	    ______},
    [0x4d] {_O___O,
	    _OO_OO,
	    _OOOOO,
	    _OOOOO,
	    _OO_OO,
	    _OO_OO,
	    _OO_OO,
	    ______},
    [0x4e] {_O__OO,
	    _OO_OO,
	    _OO_OO,
	    _OOOOO,
	    _OO_OO,
	    _OO_OO,
	    _OO__O,
	    ______},
    [0x4f] {__OOO_,
	    _OO_OO,
	    _OO_OO,
	    _OO_OO,
	    _OO_OO,
	    _OO_OO,
	    __OOO_,
	    ______},
    [0x50] {_OOOO_,
	    _OO_OO,
	    _OO_OO,
	    _OOOO_,
	    _OO___,
	    _OO___,
	    _OO___,
	    ______},
    [0x51] {__OOO_,
	    _OO_OO,
	    _OO_OO,
	    _OO_OO,
	    _OO_O_,
	    _OO_OO,
	    __OO_O,
	    ______},
    [0x52] {_OOOO_,
	    _OO_OO,
	    _OO_OO,
	    _OOOO_,
	    _OOOO_,
	    _OO_OO,
	    _OO_OO,
	    ______},
    [0x53] {__OOOO,
	    _OO___,
	    _OO___,
	    __OOO_,
	    ____OO,
	    ____OO,
	    _OOOO_,
	    ______},
    [0x54] {OOOOOO,
	    __OO__,
	    __OO__,
	    __OO__,
	    __OO__,
	    __OO__,
	    __OO__,
	    ______},
    [0x55] {_OO_OO,
	    _OO_OO,
	    _OO_OO,
	    _OO_OO,
	    _OO_OO,
	    _OO_OO,
	    __OOO_,
	    ______},
    [0x56] {_OO_OO,
	    _OO_OO,
	    _OO_OO,
	    _OO_OO,
	    _OO_OO,
	    __OOO_,
	    ___O__,
	    ______},
    [0x57] {_OO_OO,
	    _OO_OO,
	    _OO_OO,
	    _OOOOO,
	    _OOOOO,
	    _OO_OO,
	    _O___O,
	    ______},
    [0x58] {_OO_OO,
	    _OO_OO,
	    _OO_OO,
	    __OOO_,
	    _OO_OO,
	    _OO_OO,
	    _OO_OO,
	    ______},
    [0x59] {_OO_OO,
	    _OO_OO,
	    _OO_OO,
	    __O_OO,
	    ___OOO,
	    ___OO_,
	    _OOO__,
	    ______},
    [0x5a] {_OOOOO,
	    ____OO,
	    ___OO_,
	    __OOO_,
	    __OO__,
	    _OO___,
	    _OOOOO,
	    ______},
    [0x5b] {_OOOO_,
	    _OO___,
	    _OO___,
	    _OO___,
	    _OO___,
	    _OO___,
	    _OOOO_,
	    ______},
    [0x5c] {_O___O,
	    __O_O_,
	    _OOOOO,
	    ___O__,
	    _OOOOO,
	    ___O__,
	    ___O__,
	    ______},
    [0x5d] {__OOOO,
	    ____OO,
	    ____OO,
	    ____OO,
	    ____OO,
	    ____OO,
	    __OOOO,
	    ______},
    [0x5e] {___O__,
	    __OOO_,
	    _OO_OO,
	    ______,
	    ______,
	    ______,
	    ______,
	    ______},
    [0x5f] {______,
	    ______,
	    ______,
	    ______,
	    ______,
	    ______,
	    _OOOOO,
	    ______},
    [0x60] {_OO___,
	    __OO__,
	    ___OO_,
	    ______,
	    ______,
	    ______,
	    ______,
	    ______},
    [0x61] {______,
	    ______,
	    __OOO_,
	    ____OO,
	    __OOOO,
	    _OO_OO,
	    __OOOO,
	    ______},
    [0x62] {_OO___,
	    _OO___,
	    _OOOO_,
	    _OO_OO,
	    _OO_OO,
	    _OO_OO,
	    _OOOO_,
	    ______},
    [0x63] {______,
	    ______,
	    __OOO_,
	    _OO_OO,
	    _OO___,
	    _OO_OO,
	    __OOO_,
	    ______},
    [0x64] {____OO,
	    ____OO,
	    __OOOO,
	    _OO_OO,
	    _OO_OO,
	    _OO_OO,
	    __OOOO,
	    ______},
    [0x65] {______,
	    ______,
	    __OOO_,
	    _OO_OO,
	    _OOOOO,
	    _OO___,
	    __OOO_,
	    ______},
    [0x66] {___OOO,
	    __OO__,
	    __OO__,
	    _OOOO_,
	    __OO__,
	    __OO__,
	    __OO__,
	    ______},
    [0x67] {______,
	    ______,
	    __OOOO,
	    _OO_OO,
	    _OO_OO,
	    __OOOO,
	    ____OO,
	    __OOO_},
    [0x68] {_OO___,
	    _OO___,
	    _OOOO_,
	    _OO_OO,
	    _OO_OO,
	    _OO_OO,
	    _OO_OO,
	    ______},
    [0x69] {__OO__,
	    ______,
	    _OOO__,
	    __OO__,
	    __OO__,
	    __OO__,
	    _OOOO_,
	    ______},
    [0x6a] {____OO,
	    ______,
	    ___OOO,
	    ____OO,
	    ____OO,
	    _OO_OO,
	    __OOO_,
	    ______},
    [0x6b] {_OO___,
	    _OO___,
	    _OO_OO,
	    _OO_OO,
	    _OOOO_,
	    _OO_OO,
	    _OO_OO,
	    ______},
    [0x6c] {_OOO__,
	    __OO__,
	    __OO__,
	    __OO__,
	    __OO__,
	    __OO__,
	    _OOOO_,
	    ______},
    [0x6d] {______,
	    ______,
	    _OO_O_,
	    _OOOOO,
	    _OOOOO,
	    _OO_OO,
	    _OO_OO,
	    ______},
    [0x6e] {______,
	    ______,
	    _OOOO_,
	    _OO_OO,
	    _OO_OO,
	    _OO_OO,
	    _OO_OO,
	    ______},
    [0x6f] {______,
	    ______,
	    __OOO_,
	    _OO_OO,
	    _OO_OO,
	    _OO_OO,
	    __OOO_,
	    ______},
    [0x70] {______,
	    ______,
	    _OOOO_,
	    _OO_OO,
	    _OO_OO,
	    _OOOO_,
	    _OO___,
	    _OO___},
    [0x71] {______,
	    ______,
	    __OOOO,
	    _OO_OO,
	    _OO_OO,
	    __OOOO,
	    ____OO,
	    ____OO},
    [0x72] {______,
	    ______,
	    _OO_OO,
	    _OOOO_,
	    _OO___,
	    _OO___,
	    _OO___,
	    ______},
    [0x73] {______,
	    ______,
	    __OOOO,
	    _OO___,
	    __OOO_,
	    ____OO,
	    _OOOO_,
	    ______},
    [0x74] {__OO__,
	    __OO__,
	    _OOOO_,
	    __OO__,
	    __OO__,
	    __OO__,
	    ___OO_,
	    ______},
    [0x75] {______,
	    ______,
	    _OO_OO,
	    _OO_OO,
	    _OO_OO,
	    _OO_OO,
	    __OOOO,
	    ______},
    [0x76] {______,
	    ______,
	    _OO_OO,
	    _OO_OO,
	    _OO_OO,
	    __OOO_,
	    ___O__,
	    ______},
    [0x77] {______,
	    ______,
	    _OO_OO,
	    _OO_OO,
	    _OOOOO,
	    _OO_OO,
	    _O___O,
	    ______},
    [0x78] {______,
	    ______,
	    _OO_OO,
	    _OO_OO,
	    __OOO_,
	    _OO_OO,
	    _OO_OO,
	    ______},
    [0x79] {______,
	    ______,
	    _OO_OO,
	    _OO_OO,
	    __OOOO,
	    ____OO,
	    __OOO_,
	    ______},
    [0x7a] {______,
	    ______,
	    _OOOOO,
	    ___OO_,
	    __OO__,
	    _OO___,
	    _OOOOO,
	    ______},
    [0x7b] {___OO_,
	    __OO__,
	    __OO__,
	    _OO___,
	    __OO__,
	    __OO__,
	    ___OO_,
	    ______},
    [0x7c] {__OO__,
	    __OO__,
	    __OO__,
	    __OO__,
	    __OO__,
	    __OO__,
	    __OO__,
	    ______},
    [0x7d] {__OO__,
	    ___OO_,
	    ___OO_,
	    ____OO,
	    ___OO_,
	    ___OO_,
	    __OO__,
	    ______},
    [0x7e] {______,
	    __OO__,
	    ___OO_,
	    _OOOOO,
	    ___OO_,
	    __OO__,
	    ______,
	    ______},

    [0x7f] {______,
	    ___OO_,
	    __OO__,
	    _OOOOO,
	    __OO__,
	    ___OO_,
	    ______,
	    ______},
    [0xb0] {_OOOOO,
	    _OO_OO,
	    _OOOOO,
	    ______,
	    ______,
	    ______,
	    ______,
	    ______},
    [0xe1] {_OO_OO,
	    ______,
	    __OOO_,
	    ____OO,
	    __OOOO,
	    _OO_OO,
	    __OOOO,
	    ______},
    [0xe2] {__OOO_,
	    _OO_OO,
	    _OOOO_,
	    _OO_OO,
	    _OO_OO,
	    _OOOO_,
	    _OO___,
	    ______},
    [0xef] {_OO_OO,
	    ______,
	    __OOO_,
	    _OO_OO,
	    _OO_OO,
	    _OO_OO,
	    __OOO_,
	    ______},
    [0xf5] {_OO_OO,
	    ______,
	    _OO_OO,
	    _OO_OO,
	    _OO_OO,
	    _OO_OO,
	    __OOOO,
	    ______},
};