]> code.delx.au - refind/commitdiff
Support for loading fonts (as PNG files); new default font.
authorsrs5694 <srs5694@users.sourceforge.net>
Fri, 25 Jan 2013 01:26:33 +0000 (20:26 -0500)
committersrs5694 <srs5694@users.sourceforge.net>
Fri, 25 Jan 2013 01:26:33 +0000 (20:26 -0500)
13 files changed:
NEWS.txt
docs/refind/configfile.html
fonts/damaged.png [deleted file]
libeg/egemb_font.h
libeg/libeg.h
libeg/screen.c
libeg/text.c
refind.conf-sample
refind/config.c
refind/main.c
refind/menu.c
refind/screen.c
refind/screen.h

index a4b5d8b92501d8aecab89d145ab53cb613b4869c..c03d9cad7129b58f077944d2f157244f8ed30b1f 100644 (file)
--- a/NEWS.txt
+++ b/NEWS.txt
@@ -1,6 +1,15 @@
 0.6.6 (?/??/2013):
 ------------------
 
+- Added new "font" token to refind.conf, which enables specifying a font in
+  the form of a PNG file. This file must contain monospace glyphs for the
+  95 characters from ASCII 32 to 126 (space through tilde), inclusive, plus
+  a glyph to be displayed for characters outside of this range, for a total
+  of 96 glyphs.
+
+- Replaced the old font (inherited from rEFInd) with an anti-aliased
+  version of Luxi Mono Regular 14 point.
+
 - Fixed bug that caused rEFInd to ignore manual boot stanzas in files
   included via the "include" token in refind.conf.
 
index bc9cf9805f0789596c8a0908b841a987f30db041..a1dbf40ca82c5271727afe2c7d79b224b04ccca7 100644 (file)
@@ -327,7 +327,7 @@ default_selection elilo
 <tr>
    <td><tt>loader</tt></td>
    <td>filename</td>
-   <td>Sets the filename for the boot loader. You may use either Unix-style slashes (<tt>/</tt>) or Windows/EFI-style backslashes (<tt>\</tt>) to separate directory elements. In either case, the references are to files on the ESP from which rEFInd launched or to the one identified by a preceding <tt>volume</tt> token. This option should normally be the first in the body of an OS stanza; if it's not, some other options may be ignored. An exception is if you want to boot a loader from a volume other than the one on which rEFInd resides, in which case <tt>volume</tt> should precede <tt>loader</tt>.</td>
+   <td>Sets the filename for the boot loader. You may use either Unix-style slashes (<tt>/</tt>) or Windows/EFI-style backslashes (<tt>\</tt>) to separate directory elements. In either case, the references are to files on the ESP from which rEFInd launched or to the one identified by a preceding <tt>volume</tt> token. The filename is specified as a path relative to the root of the filesystem, so if the file is in a directory, you must include its complete path, as in <tt>\EFI\myloader\loader.efi</tt>. This option should normally be the first in the body of an OS stanza; if it's not, some other options may be ignored. An exception is if you want to boot a loader from a volume other than the one on which rEFInd resides, in which case <tt>volume</tt> should precede <tt>loader</tt>.</td>
 </tr>
 <tr>
    <td><tt>initrd</tt></td>
diff --git a/fonts/damaged.png b/fonts/damaged.png
deleted file mode 100644 (file)
index e3efcfb..0000000
Binary files a/fonts/damaged.png and /dev/null differ
index fa5c043a075329c1b9c7d77c5cb2e8601a682c47..57b27fc178a69bc2adc7d03870218ebc9c91e13f 100644 (file)
-static const UINT8 egemb_font_data[3587] = {
- 0xff, 0x00, 0xdd, 0x00, 0x80, 0xff, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00,
- 0xbc, 0x00, 0x00, 0xff, 0x81, 0x00, 0x04, 0xff, 0xff, 0x00, 0xff, 0xff,
- 0x81, 0x00, 0x02, 0xff, 0x00, 0xff, 0x81, 0x00, 0x00, 0xff, 0x82, 0x00,
- 0x00, 0xff, 0x8b, 0x00, 0x00, 0xff, 0x84, 0x00, 0x00, 0xff, 0x81, 0x00,
- 0x00, 0xff, 0x84, 0x00, 0x00, 0xff, 0xa1, 0x00, 0x00, 0xff, 0x80, 0x00,
- 0x80, 0xff, 0x81, 0x00, 0x01, 0xff, 0xff, 0x82, 0x00, 0x80, 0xff, 0x81,
- 0x00, 0x80, 0xff, 0x83, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x81, 0xff,
- 0x81, 0x00, 0x80, 0xff, 0x01, 0x00, 0x00, 0x82, 0xff, 0x80, 0x00, 0x80,
- 0xff, 0x81, 0x00, 0x80, 0xff, 0xaa, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00,
- 0xff, 0x80, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x82, 0xff, 0x81, 0x00,
- 0x81, 0xff, 0x00, 0x00, 0x81, 0xff, 0x80, 0x00, 0x83, 0xff, 0x01, 0x00,
- 0x00, 0x83, 0xff, 0x01, 0x00, 0x00, 0x81, 0xff, 0x00, 0x00, 0x80, 0xff,
- 0x00, 0x00, 0x80, 0xff, 0x00, 0x00, 0x82, 0xff, 0x80, 0x00, 0x81, 0xff,
- 0x00, 0x00, 0x80, 0xff, 0x00, 0x00, 0x80, 0xff, 0x00, 0x00, 0x80, 0xff,
- 0x80, 0x00, 0x80, 0xff, 0x00, 0x00, 0x83, 0xff, 0x00, 0x00, 0x80, 0xff,
- 0x01, 0x00, 0x00, 0x80, 0xff, 0x80, 0x00, 0x81, 0xff, 0x81, 0x00, 0x80,
- 0xff, 0x01, 0x00, 0x00, 0x82, 0xff, 0x81, 0x00, 0x04, 0xff, 0xff, 0x00,
- 0xff, 0x00, 0x87, 0xff, 0x00, 0x00, 0x83, 0xff, 0x00, 0x00, 0x83, 0xff,
- 0x00, 0x00, 0x82, 0xff, 0x80, 0x00, 0x82, 0xff, 0x00, 0x00, 0x80, 0xff,
- 0x00, 0x00, 0x82, 0xff, 0x80, 0x00, 0x80, 0xff, 0x80, 0x00, 0x00, 0xff,
- 0x84, 0x00, 0x80, 0xff, 0x90, 0x00, 0x00, 0xff, 0x87, 0x00, 0x01, 0xff,
- 0xff, 0x8d, 0x00, 0x01, 0xff, 0xff, 0x88, 0x00, 0x80, 0xff, 0x85, 0x00,
- 0x01, 0xff, 0xff, 0x85, 0x00, 0x00, 0xff, 0x83, 0x00, 0x00, 0xff, 0x80,
- 0x00, 0x01, 0xff, 0xff, 0x84, 0x00, 0x01, 0xff, 0xff, 0xe6, 0x00, 0x00,
- 0xff, 0x82, 0x00, 0x00, 0xff, 0x82, 0x00, 0x00, 0xff, 0x99, 0x00, 0x00,
- 0xff, 0x81, 0x00, 0x03, 0xff, 0x00, 0x00, 0xff, 0x82, 0x00, 0x02, 0xff,
- 0x00, 0xff, 0x80, 0x00, 0x80, 0xff, 0x80, 0x00, 0x02, 0xff, 0x00, 0xff,
- 0x8a, 0x00, 0x00, 0xff, 0x84, 0x00, 0x00, 0xff, 0x81, 0x00, 0x00, 0xff,
- 0x82, 0x00, 0x82, 0xff, 0x81, 0x00, 0x00, 0xff, 0x9a, 0x00, 0x03, 0xff,
- 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x81, 0x00, 0x00, 0xff, 0x81,
- 0x00, 0x00, 0xff, 0x80, 0x00, 0x03, 0xff, 0x00, 0x00, 0xff, 0x80, 0x00,
- 0x00, 0xff, 0x81, 0x00, 0x02, 0xff, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff,
- 0x83, 0x00, 0x00, 0xff, 0x82, 0x00, 0x00, 0xff, 0x80, 0x00, 0x03, 0xff,
- 0x00, 0x00, 0xff, 0x80, 0x00, 0x03, 0xff, 0x00, 0x00, 0xff, 0x80, 0x00,
- 0x00, 0xff, 0x90, 0x00, 0x01, 0xff, 0xff, 0x85, 0x00, 0x01, 0xff, 0xff,
- 0x85, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00,
- 0xff, 0x81, 0x00, 0x00, 0xff, 0x81, 0x00, 0x00, 0xff, 0x80, 0x00, 0x03,
- 0xff, 0x00, 0x00, 0xff, 0x80, 0x00, 0x06, 0xff, 0x00, 0x00, 0xff, 0x00,
- 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x80, 0x00,
- 0x00, 0xff, 0x80, 0x00, 0x02, 0xff, 0x00, 0xff, 0x80, 0x00, 0x03, 0xff,
- 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x81, 0x00, 0x00, 0xff, 0x84,
- 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x80,
- 0x00, 0x00, 0xff, 0x82, 0x00, 0x0e, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00,
- 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00,
- 0xff, 0x80, 0x00, 0x06, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x80,
- 0x00, 0x03, 0xff, 0x00, 0x00, 0xff, 0x80, 0x00, 0x11, 0xff, 0x00, 0x00,
- 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00,
- 0xff, 0x00, 0xff, 0x80, 0x00, 0x03, 0xff, 0x00, 0x00, 0xff, 0x80, 0x00,
- 0x03, 0xff, 0x00, 0x00, 0xff, 0x80, 0x00, 0x03, 0xff, 0x00, 0x00, 0xff,
- 0x80, 0x00, 0x03, 0xff, 0x00, 0x00, 0xff, 0x80, 0x00, 0x03, 0xff, 0x00,
- 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x83, 0x00,
- 0x00, 0xff, 0x85, 0x00, 0x00, 0xff, 0x82, 0x00, 0x00, 0xff, 0x8b, 0x00,
- 0x00, 0xff, 0x87, 0x00, 0x00, 0xff, 0x8e, 0x00, 0x00, 0xff, 0x87, 0x00,
- 0x00, 0xff, 0x89, 0x00, 0x00, 0xff, 0x91, 0x00, 0x00, 0xff, 0x85, 0x00,
- 0x00, 0xff, 0xb3, 0x00, 0x00, 0xff, 0xae, 0x00, 0x00, 0xff, 0x83, 0x00,
- 0x00, 0xff, 0x83, 0x00, 0x00, 0xff, 0x8a, 0x00, 0x01, 0xff, 0xff, 0x89,
- 0x00, 0x00, 0xff, 0x81, 0x00, 0x03, 0xff, 0x00, 0x00, 0xff, 0x81, 0x00,
- 0x02, 0xff, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x84, 0x00, 0x00, 0xff,
- 0x84, 0x00, 0x01, 0xff, 0xff, 0x82, 0x00, 0x00, 0xff, 0x83, 0x00, 0x00,
- 0xff, 0x83, 0x00, 0x00, 0xff, 0x83, 0x00, 0x00, 0xff, 0x83, 0x00, 0x00,
- 0xff, 0x99, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00,
- 0xff, 0x81, 0x00, 0x00, 0xff, 0x85, 0x00, 0x00, 0xff, 0x83, 0x00, 0x00,
- 0xff, 0x81, 0x00, 0x02, 0xff, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x82,
- 0x00, 0x00, 0xff, 0x87, 0x00, 0x03, 0xff, 0x00, 0x00, 0xff, 0x80, 0x00,
- 0x03, 0xff, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x80, 0x00, 0x01,
- 0xff, 0xff, 0x83, 0x00, 0x01, 0xff, 0xff, 0x82, 0x00, 0x00, 0xff, 0x89,
- 0x00, 0x00, 0xff, 0x83, 0x00, 0x0a, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00,
- 0xff, 0x00, 0x00, 0xff, 0xff, 0x80, 0x00, 0x02, 0xff, 0x00, 0xff, 0x80,
- 0x00, 0x00, 0xff, 0x80, 0x00, 0x03, 0xff, 0x00, 0x00, 0xff, 0x83, 0x00,
- 0x00, 0xff, 0x80, 0x00, 0x05, 0xff, 0x00, 0x00, 0xff, 0x00, 0xff, 0x82,
- 0x00, 0x02, 0xff, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x83, 0x00, 0x00,
- 0xff, 0x80, 0x00, 0x00, 0xff, 0x81, 0x00, 0x00, 0xff, 0x84, 0x00, 0x00,
- 0xff, 0x80, 0x00, 0x03, 0xff, 0x00, 0x00, 0xff, 0x81, 0x00, 0x00, 0xff,
- 0x82, 0x00, 0x0e, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff,
- 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x80, 0x00,
- 0x06, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x80, 0x00, 0x03, 0xff,
- 0x00, 0x00, 0xff, 0x80, 0x00, 0x03, 0xff, 0x00, 0x00, 0xff, 0x85, 0x00,
- 0x00, 0xff, 0x81, 0x00, 0x00, 0xff, 0x80, 0x00, 0x03, 0xff, 0x00, 0x00,
- 0xff, 0x80, 0x00, 0x03, 0xff, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff,
- 0x80, 0x00, 0x02, 0xff, 0x00, 0xff, 0x81, 0x00, 0x02, 0xff, 0x00, 0xff,
- 0x83, 0x00, 0x00, 0xff, 0x81, 0x00, 0x00, 0xff, 0x83, 0x00, 0x00, 0xff,
- 0x85, 0x00, 0x00, 0xff, 0x81, 0x00, 0x02, 0xff, 0x00, 0xff, 0x8f, 0x00,
- 0x80, 0xff, 0x80, 0x00, 0x03, 0xff, 0x00, 0xff, 0xff, 0x81, 0x00, 0x81,
- 0xff, 0x80, 0x00, 0x03, 0xff, 0xff, 0x00, 0xff, 0x80, 0x00, 0x80, 0xff,
- 0x80, 0x00, 0x82, 0xff, 0x80, 0x00, 0x09, 0xff, 0xff, 0x00, 0xff, 0xff,
- 0x00, 0xff, 0x00, 0xff, 0xff, 0x80, 0x00, 0x80, 0xff, 0x81, 0x00, 0x81,
- 0xff, 0x80, 0x00, 0x01, 0xff, 0x00, 0x80, 0xff, 0x81, 0x00, 0x00, 0xff,
- 0x80, 0x00, 0x80, 0xff, 0x08, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00,
- 0xff, 0xff, 0x81, 0x00, 0x80, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0x00,
- 0xff, 0xff, 0x81, 0x00, 0x0a, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
- 0xff, 0x00, 0xff, 0xff, 0x80, 0x00, 0x81, 0xff, 0x01, 0x00, 0x00, 0x82,
- 0xff, 0x07, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x80, 0xff,
- 0x00, 0x00, 0x83, 0xff, 0x00, 0x00, 0x82, 0xff, 0x04, 0x00, 0x00, 0xff,
- 0xff, 0x00, 0x80, 0xff, 0x00, 0x00, 0x80, 0xff, 0x00, 0x00, 0x82, 0xff,
- 0x81, 0x00, 0x00, 0xff, 0x83, 0x00, 0x00, 0xff, 0x83, 0x00, 0x00, 0xff,
- 0x89, 0x00, 0x03, 0xff, 0x00, 0x00, 0xff, 0x88, 0x00, 0x00, 0xff, 0x88,
- 0x00, 0x82, 0xff, 0x02, 0x00, 0x00, 0xff, 0x86, 0x00, 0x01, 0xff, 0xff,
- 0x80, 0x00, 0x00, 0xff, 0x84, 0x00, 0x00, 0xff, 0x83, 0x00, 0x00, 0xff,
- 0x83, 0x00, 0x00, 0xff, 0x82, 0x00, 0x02, 0xff, 0x00, 0xff, 0x82, 0x00,
- 0x00, 0xff, 0x99, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x80, 0x00,
- 0x00, 0xff, 0x81, 0x00, 0x00, 0xff, 0x84, 0x00, 0x00, 0xff, 0x82, 0x00,
- 0x01, 0xff, 0xff, 0x81, 0x00, 0x03, 0xff, 0x00, 0x00, 0xff, 0x80, 0x00,
- 0x80, 0xff, 0x80, 0x00, 0x81, 0xff, 0x83, 0x00, 0x00, 0xff, 0x81, 0x00,
- 0x80, 0xff, 0x80, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x80, 0x00,
- 0x01, 0xff, 0xff, 0x83, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x01, 0xff,
- 0xff, 0x82, 0x00, 0x82, 0xff, 0x81, 0x00, 0x01, 0xff, 0xff, 0x84, 0x00,
- 0x07, 0xff, 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x80, 0x00, 0x02,
- 0xff, 0x00, 0xff, 0x80, 0x00, 0x81, 0xff, 0x80, 0x00, 0x00, 0xff, 0x83,
- 0x00, 0x00, 0xff, 0x80, 0x00, 0x02, 0xff, 0x00, 0x00, 0x80, 0xff, 0x82,
- 0x00, 0x80, 0xff, 0x80, 0x00, 0x00, 0xff, 0x83, 0x00, 0x82, 0xff, 0x81,
- 0x00, 0x00, 0xff, 0x84, 0x00, 0x00, 0xff, 0x80, 0x00, 0x02, 0xff, 0x00,
- 0xff, 0x82, 0x00, 0x00, 0xff, 0x82, 0x00, 0x0e, 0xff, 0x00, 0xff, 0x00,
- 0xff, 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0xff, 0x80,
- 0x00, 0x00, 0xff, 0x80, 0x00, 0x06, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00,
- 0xff, 0x80, 0x00, 0x03, 0xff, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff,
- 0x80, 0x00, 0x80, 0xff, 0x82, 0x00, 0x00, 0xff, 0x81, 0x00, 0x00, 0xff,
- 0x80, 0x00, 0x00, 0xff, 0x80, 0x00, 0x02, 0xff, 0x00, 0xff, 0x80, 0x00,
- 0x04, 0xff, 0x00, 0xff, 0x00, 0xff, 0x81, 0x00, 0x00, 0xff, 0x82, 0x00,
- 0x02, 0xff, 0x00, 0xff, 0x82, 0x00, 0x00, 0xff, 0x82, 0x00, 0x00, 0xff,
- 0x83, 0x00, 0x00, 0xff, 0x85, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff,
- 0x80, 0x00, 0x00, 0xff, 0x8d, 0x00, 0x00, 0xff, 0x80, 0x00, 0x0a, 0xff,
- 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x80, 0x00,
- 0x0a, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff,
- 0x80, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x82, 0x00, 0x0b, 0xff,
- 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0x81,
- 0x00, 0x00, 0xff, 0x84, 0x00, 0x00, 0xff, 0x80, 0x00, 0x03, 0xff, 0x00,
- 0x00, 0xff, 0x82, 0x00, 0x00, 0xff, 0x81, 0x00, 0x0e, 0xff, 0x00, 0xff,
- 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff,
- 0x80, 0x00, 0x0e, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00,
- 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0x80, 0x00, 0x01, 0xff, 0xff, 0x81,
- 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x82,
- 0x00, 0x00, 0xff, 0x80, 0x00, 0x03, 0xff, 0x00, 0x00, 0xff, 0x80, 0x00,
- 0x03, 0xff, 0x00, 0x00, 0xff, 0x80, 0x00, 0x06, 0xff, 0x00, 0x00, 0xff,
- 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x80, 0x00, 0x06, 0xff, 0x00,
- 0x00, 0xff, 0x00, 0x00, 0xff, 0x82, 0x00, 0x00, 0xff, 0x83, 0x00, 0x00,
- 0xff, 0x83, 0x00, 0x00, 0xff, 0x8c, 0x00, 0x00, 0xff, 0x88, 0x00, 0x00,
- 0xff, 0x89, 0x00, 0x02, 0xff, 0x00, 0xff, 0x81, 0x00, 0x80, 0xff, 0x80,
- 0x00, 0x80, 0xff, 0x82, 0x00, 0x00, 0xff, 0x8b, 0x00, 0x00, 0xff, 0x83,
- 0x00, 0x00, 0xff, 0x82, 0x00, 0x04, 0xff, 0x00, 0xff, 0x00, 0x00, 0x84,
- 0xff, 0x85, 0x00, 0x82, 0xff, 0x88, 0x00, 0x00, 0xff, 0x81, 0x00, 0x00,
- 0xff, 0x80, 0x00, 0x00, 0xff, 0x81, 0x00, 0x00, 0xff, 0x83, 0x00, 0x00,
- 0xff, 0x85, 0x00, 0x03, 0xff, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff,
- 0x83, 0x00, 0x03, 0xff, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x82,
- 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x80,
- 0x00, 0x81, 0xff, 0x8c, 0x00, 0x00, 0xff, 0x8f, 0x00, 0x00, 0xff, 0x82,
- 0x00, 0x00, 0xff, 0x80, 0x00, 0x04, 0xff, 0x00, 0xff, 0x00, 0xff, 0x80,
- 0x00, 0x02, 0xff, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x80, 0x00, 0x03,
- 0xff, 0x00, 0x00, 0xff, 0x83, 0x00, 0x00, 0xff, 0x80, 0x00, 0x05, 0xff,
- 0x00, 0x00, 0xff, 0x00, 0xff, 0x82, 0x00, 0x02, 0xff, 0x00, 0xff, 0x80,
- 0x00, 0x02, 0xff, 0x00, 0x00, 0x80, 0xff, 0x01, 0x00, 0xff, 0x80, 0x00,
- 0x00, 0xff, 0x81, 0x00, 0x00, 0xff, 0x81, 0x00, 0x03, 0xff, 0x00, 0x00,
- 0xff, 0x80, 0x00, 0x80, 0xff, 0x82, 0x00, 0x00, 0xff, 0x82, 0x00, 0x0e,
- 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff,
- 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x80, 0x00, 0x80, 0xff, 0x80,
- 0x00, 0x00, 0xff, 0x80, 0x00, 0x02, 0xff, 0x00, 0x00, 0x81, 0xff, 0x84,
- 0x00, 0x00, 0xff, 0x81, 0x00, 0x00, 0xff, 0x81, 0x00, 0x00, 0xff, 0x80,
- 0x00, 0x00, 0xff, 0x80, 0x00, 0x02, 0xff, 0x00, 0xff, 0x80, 0x00, 0x04,
- 0xff, 0x00, 0xff, 0x00, 0xff, 0x81, 0x00, 0x00, 0xff, 0x83, 0x00, 0x00,
- 0xff, 0x83, 0x00, 0x00, 0xff, 0x82, 0x00, 0x00, 0xff, 0x84, 0x00, 0x00,
- 0xff, 0x84, 0x00, 0x00, 0xff, 0x96, 0x00, 0x81, 0xff, 0x02, 0x00, 0x00,
- 0xff, 0x80, 0x00, 0x03, 0xff, 0x00, 0x00, 0xff, 0x83, 0x00, 0x00, 0xff,
- 0x80, 0x00, 0x02, 0xff, 0x00, 0x00, 0x82, 0xff, 0x80, 0x00, 0x00, 0xff,
- 0x82, 0x00, 0x00, 0xff, 0x80, 0x00, 0x03, 0xff, 0x00, 0x00, 0xff, 0x80,
- 0x00, 0x00, 0xff, 0x81, 0x00, 0x00, 0xff, 0x84, 0x00, 0x00, 0xff, 0x80,
- 0x00, 0x80, 0xff, 0x83, 0x00, 0x00, 0xff, 0x81, 0x00, 0x07, 0xff, 0x00,
- 0xff, 0x00, 0xff, 0x00, 0x00, 0xff, 0x80, 0x00, 0x03, 0xff, 0x00, 0x00,
- 0xff, 0x80, 0x00, 0x03, 0xff, 0x00, 0x00, 0xff, 0x80, 0x00, 0x03, 0xff,
- 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x83,
- 0x00, 0x80, 0xff, 0x81, 0x00, 0x00, 0xff, 0x82, 0x00, 0x00, 0xff, 0x80,
- 0x00, 0x03, 0xff, 0x00, 0x00, 0xff, 0x80, 0x00, 0x07, 0xff, 0x00, 0x00,
- 0xff, 0x00, 0xff, 0x00, 0xff, 0x80, 0x00, 0x01, 0xff, 0xff, 0x82, 0x00,
- 0x03, 0xff, 0x00, 0x00, 0xff, 0x81, 0x00, 0x00, 0xff, 0x83, 0x00, 0x00,
- 0xff, 0x83, 0x00, 0x00, 0xff, 0x83, 0x00, 0x00, 0xff, 0x82, 0x00, 0x03,
- 0xff, 0x00, 0x00, 0xff, 0x82, 0x00, 0x00, 0xff, 0x95, 0x00, 0x82, 0xff,
- 0x05, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x83, 0x00, 0x00, 0xff, 0x80,
- 0x00, 0x04, 0xff, 0x00, 0xff, 0x00, 0xff, 0x88, 0x00, 0x00, 0xff, 0x83,
- 0x00, 0x00, 0xff, 0x8a, 0x00, 0x00, 0xff, 0x98, 0x00, 0x00, 0xff, 0x81,
- 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x81, 0x00, 0x00, 0xff, 0x82,
- 0x00, 0x00, 0xff, 0x86, 0x00, 0x02, 0xff, 0x00, 0x00, 0x83, 0xff, 0x82,
- 0x00, 0x03, 0xff, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x82, 0x00,
- 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x83, 0x00,
- 0x00, 0xff, 0x8d, 0x00, 0x01, 0xff, 0xff, 0x82, 0x00, 0x82, 0xff, 0x81,
- 0x00, 0x01, 0xff, 0xff, 0x82, 0x00, 0x00, 0xff, 0x81, 0x00, 0x06, 0xff,
- 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x82, 0xff, 0x02, 0x00, 0x00, 0xff,
- 0x80, 0x00, 0x03, 0xff, 0x00, 0x00, 0xff, 0x83, 0x00, 0x00, 0xff, 0x80,
- 0x00, 0x03, 0xff, 0x00, 0x00, 0xff, 0x84, 0x00, 0x00, 0xff, 0x82, 0x00,
- 0x00, 0xff, 0x80, 0x00, 0x03, 0xff, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00,
- 0xff, 0x81, 0x00, 0x00, 0xff, 0x81, 0x00, 0x03, 0xff, 0x00, 0x00, 0xff,
- 0x80, 0x00, 0x03, 0xff, 0x00, 0x00, 0xff, 0x81, 0x00, 0x06, 0xff, 0x00,
- 0x00, 0xff, 0x00, 0x00, 0xff, 0x80, 0x00, 0x0a, 0xff, 0x00, 0x00, 0xff,
- 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x80,
- 0x00, 0x00, 0xff, 0x82, 0x00, 0x00, 0xff, 0x80, 0x00, 0x06, 0xff, 0x00,
- 0x00, 0xff, 0x00, 0x00, 0xff, 0x84, 0x00, 0x00, 0xff, 0x81, 0x00, 0x00,
- 0xff, 0x81, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x80, 0x00, 0x02,
- 0xff, 0x00, 0xff, 0x80, 0x00, 0x04, 0xff, 0x00, 0xff, 0x00, 0xff, 0x80,
- 0x00, 0x02, 0xff, 0x00, 0xff, 0x82, 0x00, 0x00, 0xff, 0x82, 0x00, 0x00,
- 0xff, 0x83, 0x00, 0x00, 0xff, 0x84, 0x00, 0x00, 0xff, 0x84, 0x00, 0x00,
- 0xff, 0x95, 0x00, 0x00, 0xff, 0x80, 0x00, 0x03, 0xff, 0x00, 0x00, 0xff,
- 0x80, 0x00, 0x03, 0xff, 0x00, 0x00, 0xff, 0x83, 0x00, 0x00, 0xff, 0x80,
- 0x00, 0x03, 0xff, 0x00, 0x00, 0xff, 0x84, 0x00, 0x00, 0xff, 0x82, 0x00,
- 0x00, 0xff, 0x80, 0x00, 0x03, 0xff, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00,
- 0xff, 0x81, 0x00, 0x00, 0xff, 0x84, 0x00, 0x00, 0xff, 0x80, 0x00, 0x02,
- 0xff, 0x00, 0xff, 0x83, 0x00, 0x00, 0xff, 0x81, 0x00, 0x07, 0xff, 0x00,
- 0xff, 0x00, 0xff, 0x00, 0x00, 0xff, 0x80, 0x00, 0x03, 0xff, 0x00, 0x00,
- 0xff, 0x80, 0x00, 0x03, 0xff, 0x00, 0x00, 0xff, 0x80, 0x00, 0x03, 0xff,
- 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x86,
- 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x82, 0x00, 0x00, 0xff, 0x80,
- 0x00, 0x00, 0xff, 0x80, 0x00, 0x02, 0xff, 0x00, 0xff, 0x80, 0x00, 0x04,
- 0xff, 0x00, 0xff, 0x00, 0xff, 0x80, 0x00, 0x01, 0xff, 0xff, 0x82, 0x00,
- 0x02, 0xff, 0x00, 0xff, 0x81, 0x00, 0x00, 0xff, 0x83, 0x00, 0x00, 0xff,
- 0x84, 0x00, 0x00, 0xff, 0x84, 0x00, 0x00, 0xff, 0x80, 0x00, 0x03, 0xff,
- 0x00, 0xff, 0xff, 0x82, 0x00, 0x00, 0xff, 0x97, 0x00, 0x02, 0xff, 0x00,
- 0xff, 0x80, 0x00, 0x80, 0xff, 0x83, 0x00, 0x08, 0xff, 0x00, 0xff, 0x00,
- 0x00, 0xff, 0x00, 0x00, 0xff, 0x89, 0x00, 0x00, 0xff, 0x83, 0x00, 0x00,
- 0xff, 0x8a, 0x00, 0x00, 0xff, 0x83, 0x00, 0x01, 0xff, 0xff, 0x88, 0x00,
- 0x01, 0xff, 0xff, 0x82, 0x00, 0x00, 0xff, 0x82, 0x00, 0x00, 0xff, 0x80,
- 0x00, 0x00, 0xff, 0x81, 0x00, 0x00, 0xff, 0x81, 0x00, 0x00, 0xff, 0x80,
- 0x00, 0x03, 0xff, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x83, 0x00,
- 0x03, 0xff, 0x00, 0x00, 0xff, 0x80, 0x00, 0x03, 0xff, 0x00, 0x00, 0xff,
- 0x80, 0x00, 0x00, 0xff, 0x81, 0x00, 0x00, 0xff, 0x81, 0x00, 0x00, 0xff,
- 0x80, 0x00, 0x00, 0xff, 0x82, 0x00, 0x00, 0xff, 0x81, 0x00, 0x01, 0xff,
- 0xff, 0x83, 0x00, 0x01, 0xff, 0xff, 0x82, 0x00, 0x00, 0xff, 0x89, 0x00,
- 0x00, 0xff, 0x89, 0x00, 0x00, 0xff, 0x83, 0x00, 0x00, 0xff, 0x80, 0x00,
- 0x03, 0xff, 0x00, 0x00, 0xff, 0x80, 0x00, 0x03, 0xff, 0x00, 0x00, 0xff,
- 0x80, 0x00, 0x06, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x80, 0x00,
- 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x82, 0x00,
- 0x00, 0xff, 0x80, 0x00, 0x03, 0xff, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00,
- 0xff, 0x81, 0x00, 0x00, 0xff, 0x81, 0x00, 0x03, 0xff, 0x00, 0x00, 0xff,
- 0x80, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x80, 0x00, 0x06, 0xff,
- 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x80, 0x00, 0x0a, 0xff, 0x00, 0x00,
- 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff,
- 0x80, 0x00, 0x00, 0xff, 0x82, 0x00, 0x00, 0xff, 0x80, 0x00, 0x03, 0xff,
- 0x00, 0x00, 0xff, 0x80, 0x00, 0x07, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00,
- 0x00, 0xff, 0x81, 0x00, 0x00, 0xff, 0x81, 0x00, 0x00, 0xff, 0x80, 0x00,
- 0x00, 0xff, 0x81, 0x00, 0x00, 0xff, 0x81, 0x00, 0x07, 0xff, 0x00, 0xff,
- 0x00, 0xff, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x81, 0x00, 0x00,
- 0xff, 0x81, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00,
- 0xff, 0x85, 0x00, 0x00, 0xff, 0x83, 0x00, 0x00, 0xff, 0x95, 0x00, 0x00,
- 0xff, 0x80, 0x00, 0x03, 0xff, 0x00, 0x00, 0xff, 0x80, 0x00, 0x03, 0xff,
- 0x00, 0x00, 0xff, 0x80, 0x00, 0x03, 0xff, 0x00, 0x00, 0xff, 0x80, 0x00,
- 0x03, 0xff, 0x00, 0x00, 0xff, 0x84, 0x00, 0x00, 0xff, 0x82, 0x00, 0x00,
- 0xff, 0x80, 0x00, 0x03, 0xff, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff,
- 0x81, 0x00, 0x00, 0xff, 0x84, 0x00, 0x00, 0xff, 0x80, 0x00, 0x03, 0xff,
- 0x00, 0x00, 0xff, 0x82, 0x00, 0x00, 0xff, 0x81, 0x00, 0x07, 0xff, 0x00,
- 0xff, 0x00, 0xff, 0x00, 0x00, 0xff, 0x80, 0x00, 0x03, 0xff, 0x00, 0x00,
- 0xff, 0x80, 0x00, 0x03, 0xff, 0x00, 0x00, 0xff, 0x80, 0x00, 0x03, 0xff,
- 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x82,
- 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x80,
- 0x00, 0x06, 0xff, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0x80, 0x00, 0x02,
- 0xff, 0x00, 0xff, 0x80, 0x00, 0x0a, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00,
- 0x00, 0xff, 0x00, 0x00, 0xff, 0x82, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00,
- 0x00, 0xff, 0x80, 0x00, 0x00, 0xff, 0x81, 0x00, 0x00, 0xff, 0x83, 0x00,
- 0x00, 0xff, 0x83, 0x00, 0x00, 0xff, 0x98, 0x00, 0x00, 0xff, 0x88, 0x00,
- 0x02, 0xff, 0x00, 0xff, 0x83, 0x00, 0x00, 0xff, 0x84, 0x00, 0x00, 0xff,
- 0x81, 0x00, 0x03, 0xff, 0xff, 0x00, 0xff, 0x88, 0x00, 0x00, 0xff, 0x83,
- 0x00, 0x00, 0xff, 0x8a, 0x00, 0x00, 0xff, 0x83, 0x00, 0x00, 0xff, 0x89,
- 0x00, 0x01, 0xff, 0xff, 0x82, 0x00, 0x00, 0xff, 0x83, 0x00, 0x80, 0xff,
- 0x80, 0x00, 0x82, 0xff, 0x01, 0x00, 0x00, 0x82, 0xff, 0x80, 0x00, 0x80,
- 0xff, 0x83, 0x00, 0x80, 0xff, 0x01, 0x00, 0x00, 0x80, 0xff, 0x81, 0x00,
- 0x80, 0xff, 0x82, 0x00, 0x00, 0xff, 0x82, 0x00, 0x80, 0xff, 0x80, 0x00,
- 0x80, 0xff, 0x82, 0x00, 0x01, 0xff, 0xff, 0x82, 0x00, 0x01, 0xff, 0xff,
- 0x84, 0x00, 0x01, 0xff, 0xff, 0x85, 0x00, 0x01, 0xff, 0xff, 0x84, 0x00,
- 0x01, 0xff, 0xff, 0x81, 0x00, 0x00, 0xff, 0x80, 0x00, 0x01, 0xff, 0x00,
- 0x80, 0xff, 0x00, 0x00, 0x85, 0xff, 0x81, 0x00, 0x80, 0xff, 0x01, 0x00,
- 0x00, 0x81, 0xff, 0x80, 0x00, 0x83, 0xff, 0x01, 0x00, 0x00, 0x80, 0xff,
- 0x82, 0x00, 0x80, 0xff, 0x01, 0x00, 0x00, 0x80, 0xff, 0x00, 0x00, 0x80,
- 0xff, 0x00, 0x00, 0x82, 0xff, 0x80, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00,
- 0x80, 0xff, 0x04, 0x00, 0x00, 0xff, 0xff, 0x00, 0x82, 0xff, 0x00, 0x00,
- 0x80, 0xff, 0x00, 0x00, 0x83, 0xff, 0x02, 0x00, 0xff, 0xff, 0x80, 0x00,
- 0x80, 0xff, 0x80, 0x00, 0x80, 0xff, 0x82, 0x00, 0x80, 0xff, 0x01, 0x00,
- 0x00, 0x80, 0xff, 0x80, 0x00, 0x05, 0xff, 0x00, 0xff, 0x00, 0xff, 0xff,
- 0x81, 0x00, 0x80, 0xff, 0x81, 0x00, 0x80, 0xff, 0x82, 0x00, 0x00, 0xff,
- 0x82, 0x00, 0x06, 0xff, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0x80, 0x00,
- 0x03, 0xff, 0xff, 0x00, 0x00, 0x80, 0xff, 0x80, 0x00, 0x82, 0xff, 0x80,
- 0x00, 0x00, 0xff, 0x85, 0x00, 0x00, 0xff, 0x83, 0x00, 0x00, 0xff, 0x96,
- 0x00, 0x87, 0xff, 0x81, 0x00, 0x80, 0xff, 0x81, 0x00, 0x82, 0xff, 0x01,
- 0x00, 0x00, 0x81, 0xff, 0x01, 0x00, 0x00, 0x82, 0xff, 0x80, 0x00, 0x81,
- 0xff, 0x00, 0x00, 0x80, 0xff, 0x00, 0x00, 0x80, 0xff, 0x00, 0x00, 0x82,
- 0xff, 0x82, 0x00, 0x05, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x81, 0xff,
- 0x00, 0x00, 0x82, 0xff, 0x00, 0x00, 0x87, 0xff, 0x00, 0x00, 0x80, 0xff,
- 0x01, 0x00, 0x00, 0x80, 0xff, 0x80, 0x00, 0x81, 0xff, 0x81, 0x00, 0x81,
- 0xff, 0x01, 0x00, 0x00, 0x82, 0xff, 0x01, 0x00, 0x00, 0x81, 0xff, 0x82,
- 0x00, 0x80, 0xff, 0x80, 0x00, 0x04, 0xff, 0xff, 0x00, 0xff, 0xff, 0x80,
- 0x00, 0x00, 0xff, 0x82, 0x00, 0x0a, 0xff, 0x00, 0xff, 0x00, 0x00, 0xff,
- 0xff, 0x00, 0x00, 0xff, 0xff, 0x81, 0x00, 0x00, 0xff, 0x81, 0x00, 0x82,
- 0xff, 0x81, 0x00, 0x00, 0xff, 0x83, 0x00, 0x00, 0xff, 0x83, 0x00, 0x00,
- 0xff, 0x89, 0x00, 0x01, 0xff, 0xff, 0x96, 0x00, 0x02, 0xff, 0x00, 0xff,
- 0x83, 0x00, 0x00, 0xff, 0x99, 0x00, 0x00, 0xff, 0x81, 0x00, 0x00, 0xff,
- 0x91, 0x00, 0x01, 0xff, 0xff, 0x8f, 0x00, 0x00, 0xff, 0xd1, 0x00, 0x00,
- 0xff, 0x9f, 0x00, 0x80, 0xff, 0xf2, 0x00, 0x80, 0xff, 0xbf, 0x00, 0x00,
- 0xff, 0x85, 0x00, 0x00, 0xff, 0x83, 0x00, 0x00, 0xff, 0xc3, 0x00, 0x00,
- 0xff, 0x90, 0x00, 0x00, 0xff, 0xa3, 0x00, 0x00, 0xff, 0x87, 0x00, 0x00,
- 0xff, 0xb2, 0x00, 0x00, 0xff, 0x8a, 0x00, 0x00, 0xff, 0x83, 0x00, 0x00,
- 0xff, 0x83, 0x00, 0x00, 0xff, 0xca, 0x00, 0x00, 0xff, 0x81, 0x00, 0x00,
- 0xff, 0x91, 0x00, 0x00, 0xff, 0xff, 0x00, 0xff, 0x00, 0xc1, 0x00, 0x80,
- 0xff, 0x88, 0x00, 0x80, 0xff, 0xc0, 0x00, 0x80, 0xff, 0x8e, 0x00, 0x80,
- 0xff, 0xa3, 0x00, 0x80, 0xff, 0x85, 0x00, 0x80, 0xff, 0xaf, 0x00, 0x81,
- 0xff, 0x8a, 0x00, 0x00, 0xff, 0x88, 0x00, 0x00, 0xff, 0xff, 0x00, 0xff,
- 0x00, 0xff, 0x00, 0xc2, 0x00, 0x84, 0xff, 0xff, 0x00, 0xdb, 0x00,
+static const UINT8 egemb_luxi_mono_regular_14_data[6982] = {
+ 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00,
+ 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00,
+ 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00,
+ 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00,
+ 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00,
+ 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00,
+ 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00,
+ 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00,
+ 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00,
+ 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00,
+ 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00,
+ 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00,
+ 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00,
+ 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xd9, 0x00, 0x88, 0x00,
+ 0x01, 0x78, 0xe0, 0x81, 0x00, 0x05, 0x4a, 0xff, 0x51, 0x00, 0xea, 0xad,
+ 0x81, 0x00, 0x1a, 0x79, 0x77, 0x00, 0xc5, 0x28, 0x00, 0x07, 0x8e, 0xe9,
+ 0xf4, 0xe2, 0x88, 0x00, 0x34, 0xdd, 0xd5, 0x23, 0x00, 0x00, 0x3f, 0xaa,
+ 0x00, 0x00, 0x5c, 0xe4, 0xea, 0x62, 0x82, 0x00, 0x02, 0xc2, 0xff, 0x29,
+ 0x83, 0x00, 0x08, 0x3f, 0xe4, 0x82, 0x00, 0x00, 0x30, 0xdf, 0x91, 0x03,
+ 0x83, 0x00, 0x01, 0x65, 0xd6, 0xa6, 0x00, 0x08, 0x9d, 0x84, 0x00, 0x00,
+ 0x62, 0xd0, 0xdf, 0xa0, 0x0c, 0x80, 0x00, 0x03, 0x19, 0x67, 0xb7, 0x24,
+ 0x80, 0x00, 0x0d, 0x64, 0xc0, 0xdf, 0xea, 0xbe, 0x30, 0x00, 0x00, 0x55,
+ 0xc7, 0xe0, 0xe8, 0xb5, 0x25, 0x82, 0x00, 0x05, 0x6e, 0xff, 0x38, 0x00,
+ 0x00, 0x14, 0x82, 0xff, 0x09, 0x28, 0x00, 0x00, 0x17, 0xa4, 0xdb, 0xde,
+ 0xaa, 0x26, 0x00, 0x83, 0xff, 0x0f, 0x3c, 0x00, 0x01, 0x76, 0xdd, 0xe4,
+ 0xca, 0x40, 0x00, 0x00, 0x10, 0x9b, 0xdb, 0xde, 0x8e, 0x05, 0xa7, 0x00,
+ 0x05, 0x5d, 0xcd, 0xed, 0xe7, 0xd4, 0x5c, 0x80, 0x00, 0x04, 0x37, 0xb9,
+ 0xe2, 0xd2, 0x3c, 0x81, 0x00, 0x0b, 0x95, 0xf5, 0x08, 0x00, 0x00, 0x70,
+ 0xea, 0xff, 0xe1, 0xe7, 0xe2, 0x65, 0x80, 0x00, 0x50, 0x25, 0xb1, 0xe1,
+ 0xdf, 0xbb, 0x56, 0x93, 0xf5, 0xf7, 0xe8, 0xe1, 0xa9, 0x1c, 0x00, 0x70,
+ 0xe8, 0xff, 0xe4, 0xe0, 0xe0, 0xf4, 0x34, 0x38, 0xe0, 0xf8, 0xf4, 0xe0,
+ 0xe0, 0xe3, 0xc0, 0x00, 0x00, 0x56, 0xc3, 0xe4, 0xda, 0xad, 0x20, 0x82,
+ 0xfb, 0xf1, 0x2a, 0x00, 0xbb, 0xff, 0xe4, 0x00, 0xcb, 0xe0, 0xf0, 0xfc,
+ 0xe0, 0xe0, 0x43, 0x00, 0x04, 0xe0, 0xe0, 0xea, 0xff, 0xe1, 0xb6, 0x70,
+ 0xf4, 0xf8, 0x62, 0x0b, 0xeb, 0xf8, 0x58, 0x5b, 0xe0, 0xf7, 0xf4, 0xe0,
+ 0x35, 0x00, 0x00, 0xc2, 0xff, 0x43, 0x80, 0x00, 0x4c, 0xc1, 0xf5, 0x8e,
+ 0xf8, 0x5b, 0x00, 0x00, 0x69, 0xf7, 0xcc, 0x00, 0x00, 0x69, 0xd0, 0xdf,
+ 0xa3, 0x11, 0x00, 0x5b, 0xe2, 0xff, 0xea, 0xe4, 0xee, 0xa4, 0x0a, 0x00,
+ 0x00, 0x66, 0xcf, 0xde, 0xa0, 0x0f, 0x00, 0x5b, 0xf1, 0xfa, 0xe0, 0xef,
+ 0xd4, 0x43, 0x00, 0x00, 0x06, 0x90, 0xde, 0xe6, 0xdd, 0x88, 0x00, 0x94,
+ 0xe9, 0xe0, 0xef, 0xfd, 0xe0, 0xe0, 0xf8, 0x82, 0xf8, 0xf4, 0x7b, 0x00,
+ 0x90, 0xf7, 0xe1, 0xc0, 0xff, 0xe4, 0x23, 0x00, 0x20, 0xe6, 0xf7, 0xd8,
+ 0xf4, 0x3c, 0x80, 0x00, 0x13, 0x89, 0xfb, 0xab, 0xff, 0xf2, 0x2e, 0x00,
+ 0x5b, 0xf3, 0xea, 0xc1, 0xff, 0xec, 0x4d, 0x00, 0x51, 0xed, 0xf3, 0x2e,
+ 0xdb, 0x80, 0xe0, 0x0d, 0xe8, 0xff, 0x4f, 0x00, 0x00, 0x4c, 0xfd, 0xe4,
+ 0xe4, 0x5d, 0x00, 0x20, 0xf1, 0x11, 0x83, 0x00, 0x04, 0x04, 0xe4, 0xe4,
+ 0xf2, 0xb4, 0x82, 0x00, 0x01, 0x07, 0x3f, 0x8a, 0x00, 0x02, 0x10, 0xd4,
+ 0x88, 0x88, 0x00, 0x02, 0x84, 0xf9, 0xa0, 0x8e, 0x00, 0x03, 0xcc, 0xeb,
+ 0xff, 0x24, 0x88, 0x00, 0x04, 0x5e, 0xdf, 0xf0, 0xe0, 0x93, 0x85, 0x00,
+ 0x02, 0x7a, 0xf8, 0xac, 0x85, 0x00, 0x02, 0x64, 0xff, 0x20, 0x83, 0x00,
+ 0x06, 0x40, 0xff, 0x44, 0x00, 0x72, 0xf7, 0xb4, 0x83, 0x00, 0x04, 0xe1,
+ 0xe4, 0xee, 0xff, 0x04, 0xf2, 0x00, 0x03, 0x0a, 0x9d, 0xed, 0xc7, 0x81,
+ 0x00, 0x01, 0x4c, 0xb4, 0x81, 0x00, 0x03, 0x68, 0xf5, 0xca, 0x37, 0x89,
+ 0x00, 0x05, 0x5d, 0xcd, 0xed, 0xe7, 0xd4, 0x5c, 0x89, 0x00, 0x01, 0x78,
+ 0xe0, 0x81, 0x00, 0x05, 0x34, 0xff, 0x3a, 0x00, 0xd4, 0x97, 0x81, 0x00,
+ 0x1a, 0xbb, 0x36, 0x0c, 0xe3, 0x01, 0x00, 0x78, 0xd6, 0x56, 0xa0, 0x2c,
+ 0xd8, 0x00, 0xb5, 0x4e, 0x69, 0x97, 0x00, 0x05, 0xc7, 0x1c, 0x00, 0x07,
+ 0xf6, 0x4e, 0x62, 0xec, 0x82, 0x00, 0x02, 0xa4, 0xff, 0x0c, 0x82, 0x00,
+ 0x02, 0x3c, 0xf3, 0x44, 0x81, 0x00, 0x02, 0x0b, 0xc4, 0x9b, 0x81, 0x00,
+ 0x06, 0x30, 0x0a, 0x47, 0xb1, 0x00, 0x38, 0x01, 0xa2, 0x00, 0x10, 0x16,
+ 0xf2, 0x19, 0x00, 0x5a, 0xf1, 0x2c, 0x09, 0xae, 0xbd, 0x01, 0x23, 0xc7,
+ 0xe3, 0xb9, 0xff, 0x28, 0x80, 0x00, 0x0d, 0xd8, 0x66, 0x02, 0x09, 0xae,
+ 0xe3, 0x09, 0x00, 0x80, 0x79, 0x02, 0x10, 0xc6, 0xc8, 0x81, 0x00, 0x07,
+ 0x19, 0xe0, 0xfa, 0x38, 0x00, 0x00, 0x14, 0xee, 0x81, 0x3c, 0x09, 0x0a,
+ 0x00, 0x16, 0xe1, 0x96, 0x0c, 0x10, 0xc7, 0x48, 0x00, 0x81, 0x50, 0x11,
+ 0x5c, 0xf0, 0x1e, 0x00, 0x66, 0xd5, 0x1f, 0x01, 0x6c, 0xf2, 0x0a, 0x01,
+ 0xb8, 0xa2, 0x04, 0x17, 0xcb, 0x9e, 0xa7, 0x00, 0x14, 0x9c, 0x86, 0x0f,
+ 0x01, 0x7e, 0xfe, 0x2a, 0x00, 0x38, 0xce, 0x2c, 0x01, 0x34, 0xdc, 0x06,
+ 0x00, 0x00, 0x01, 0xdc, 0xff, 0x45, 0x80, 0x00, 0x36, 0x50, 0xff, 0x08,
+ 0x00, 0x85, 0xfc, 0x1b, 0x00, 0x24, 0xef, 0x95, 0x0c, 0x08, 0x89, 0x90,
+ 0x00, 0xa8, 0xb4, 0x00, 0x1b, 0xbd, 0xeb, 0x14, 0x00, 0x3c, 0xff, 0x20,
+ 0x00, 0x00, 0xa0, 0x34, 0x00, 0x00, 0xbc, 0x9c, 0x00, 0x00, 0x14, 0xc0,
+ 0x00, 0x6a, 0xf5, 0x4a, 0x02, 0x17, 0xd4, 0x38, 0x00, 0xd4, 0x84, 0x00,
+ 0x00, 0x24, 0xff, 0x38, 0x80, 0x00, 0x01, 0x7c, 0xe0, 0x84, 0x00, 0x0a,
+ 0x50, 0xff, 0x08, 0x00, 0x00, 0x9c, 0xbc, 0x00, 0x01, 0xb0, 0x5b, 0x80,
+ 0x00, 0x01, 0xb8, 0xa0, 0x81, 0x00, 0x42, 0x40, 0xff, 0x8a, 0x00, 0x00,
+ 0x0f, 0xfb, 0xa4, 0x00, 0xbc, 0xdc, 0x05, 0x00, 0x00, 0xb8, 0x24, 0x00,
+ 0x70, 0xe2, 0x21, 0x07, 0x95, 0xd0, 0x06, 0x00, 0x10, 0xff, 0x4c, 0x00,
+ 0x33, 0xfe, 0x71, 0x00, 0x6a, 0xe4, 0x22, 0x08, 0x99, 0xca, 0x05, 0x00,
+ 0x88, 0xd0, 0x00, 0x04, 0xa6, 0xec, 0x06, 0x00, 0x74, 0xde, 0x14, 0x00,
+ 0x4a, 0xe0, 0x00, 0x94, 0x44, 0x00, 0x78, 0xe4, 0x00, 0x00, 0xdc, 0x00,
+ 0xbc, 0xa0, 0x80, 0x00, 0x04, 0xb8, 0x20, 0x24, 0xff, 0x45, 0x80, 0x00,
+ 0x14, 0x56, 0x8e, 0x72, 0xaa, 0x00, 0x17, 0x56, 0x00, 0x06, 0xd4, 0x00,
+ 0xa9, 0xd6, 0x04, 0x00, 0x04, 0xca, 0x13, 0x08, 0xe1, 0xac, 0x80, 0x00,
+ 0x03, 0xad, 0x48, 0x00, 0xd4, 0x80, 0x00, 0x06, 0x88, 0xed, 0x0f, 0x00,
+ 0x00, 0x4c, 0xe0, 0x82, 0x00, 0x01, 0xac, 0x75, 0x86, 0x00, 0x01, 0x7c,
+ 0xb4, 0x82, 0x00, 0x02, 0x65, 0xcc, 0x01, 0x8a, 0x00, 0x02, 0x1e, 0xdf,
+ 0x27, 0x88, 0x00, 0x01, 0xbc, 0xa0, 0x8f, 0x00, 0x02, 0x38, 0xff, 0x24,
+ 0x87, 0x00, 0x05, 0x08, 0xf9, 0x85, 0x04, 0x12, 0xdf, 0x86, 0x00, 0x01,
+ 0xb0, 0xac, 0x85, 0x00, 0x02, 0x4f, 0xc8, 0x19, 0x83, 0x00, 0x06, 0x32,
+ 0xc8, 0x36, 0x00, 0x00, 0xa8, 0xb4, 0x85, 0x00, 0x02, 0x54, 0xff, 0x04,
+ 0xb9, 0x00, 0x02, 0x48, 0xff, 0x10, 0xb3, 0x00, 0x02, 0x83, 0xcf, 0x21,
+ 0x82, 0x00, 0x01, 0x4c, 0xb4, 0x82, 0x00, 0x03, 0x0c, 0x7e, 0xe6, 0x02,
+ 0x88, 0x00, 0x05, 0x9c, 0x86, 0x0f, 0x01, 0x7e, 0xfe, 0x89, 0x00, 0x01,
+ 0x78, 0xe0, 0x81, 0x00, 0x05, 0x1f, 0xff, 0x23, 0x00, 0xbf, 0x82, 0x80,
+ 0x00, 0x1b, 0x07, 0xe7, 0x04, 0x48, 0xa8, 0x00, 0x00, 0xb8, 0x87, 0x3c,
+ 0xa0, 0x07, 0x98, 0x00, 0xd5, 0x1c, 0x39, 0xb8, 0x00, 0x73, 0x74, 0x00,
+ 0x00, 0x17, 0xff, 0x1e, 0x55, 0xec, 0x82, 0x00, 0x01, 0x86, 0xed, 0x82,
+ 0x00, 0x02, 0x04, 0xdb, 0x86, 0x83, 0x00, 0x02, 0x21, 0xfd, 0x32, 0x80,
+ 0x00, 0x06, 0xc1, 0xe9, 0x71, 0x60, 0xbd, 0xff, 0x2d, 0xa2, 0x00, 0x10,
+ 0x7e, 0xa2, 0x00, 0x01, 0xd2, 0x89, 0x00, 0x00, 0x24, 0xff, 0x35, 0x13,
+ 0x28, 0x01, 0x30, 0xff, 0x29, 0x80, 0x00, 0x0e, 0xd8, 0x14, 0x00, 0x00,
+ 0x3a, 0xff, 0x36, 0x00, 0x64, 0x4b, 0x00, 0x00, 0x63, 0xfd, 0x04, 0x80,
+ 0x00, 0x07, 0xa6, 0x68, 0xf4, 0x38, 0x00, 0x00, 0x14, 0xe8, 0x83, 0x00,
+ 0x06, 0x83, 0xde, 0x02, 0x00, 0x00, 0x87, 0x3d, 0x82, 0x00, 0x12, 0x89,
+ 0x7c, 0x00, 0x00, 0xaa, 0xa0, 0x00, 0x00, 0x21, 0xff, 0x24, 0x29, 0xff,
+ 0x28, 0x00, 0x00, 0x3b, 0xfc, 0x1b, 0x93, 0x00, 0x01, 0x26, 0x7c, 0x85,
+ 0x00, 0x02, 0x42, 0x5e, 0x01, 0x83, 0x00, 0x14, 0x9c, 0x4b, 0x00, 0x00,
+ 0x1e, 0xff, 0x53, 0x00, 0xba, 0x25, 0x0a, 0x92, 0xb0, 0xe9, 0x30, 0x00,
+ 0x00, 0x28, 0xc1, 0xdf, 0x8e, 0x80, 0x00, 0x29, 0x50, 0xff, 0x08, 0x00,
+ 0x38, 0xff, 0x40, 0x00, 0x9a, 0xdd, 0x02, 0x00, 0x00, 0x4b, 0x7e, 0x00,
+ 0xa8, 0xb4, 0x00, 0x00, 0x11, 0xf7, 0x83, 0x00, 0x3c, 0xff, 0x20, 0x00,
+ 0x00, 0x82, 0x2b, 0x00, 0x00, 0xbc, 0x9c, 0x00, 0x00, 0x0f, 0x8d, 0x09,
+ 0xea, 0x7f, 0x80, 0x00, 0x09, 0x98, 0x32, 0x00, 0xd4, 0x84, 0x00, 0x00,
+ 0x24, 0xff, 0x38, 0x80, 0x00, 0x01, 0x7c, 0xe0, 0x84, 0x00, 0x0a, 0x50,
+ 0xff, 0x08, 0x00, 0x00, 0x9c, 0xbc, 0x00, 0x55, 0xb4, 0x01, 0x80, 0x00,
+ 0x01, 0xb8, 0xa0, 0x81, 0x00, 0x42, 0x40, 0xec, 0xd1, 0x00, 0x00, 0x53,
+ 0xfa, 0xa4, 0x00, 0xbc, 0xff, 0x66, 0x00, 0x00, 0xb8, 0x24, 0x0b, 0xee,
+ 0x5d, 0x00, 0x00, 0x06, 0xf0, 0x5d, 0x00, 0x10, 0xff, 0x4c, 0x00, 0x00,
+ 0xd1, 0xa4, 0x08, 0xea, 0x60, 0x00, 0x00, 0x08, 0xf3, 0x56, 0x00, 0x88,
+ 0xd0, 0x00, 0x00, 0x4f, 0xff, 0x23, 0x00, 0xb0, 0xa1, 0x00, 0x00, 0x08,
+ 0xe0, 0x00, 0x87, 0x3e, 0x00, 0x78, 0xe4, 0x00, 0x00, 0xc8, 0x00, 0xbc,
+ 0xa0, 0x80, 0x00, 0x04, 0xb8, 0x20, 0x00, 0xdb, 0x8e, 0x80, 0x00, 0x20,
+ 0x9e, 0x45, 0x55, 0xc7, 0x00, 0x5c, 0xfc, 0x07, 0x21, 0xb8, 0x00, 0x26,
+ 0xfc, 0x61, 0x00, 0x64, 0x7c, 0x00, 0x00, 0x60, 0xff, 0x33, 0x00, 0x36,
+ 0xc1, 0x01, 0x00, 0xc4, 0x00, 0x00, 0x19, 0xf6, 0x75, 0x80, 0x00, 0x01,
+ 0x4c, 0xe0, 0x82, 0x00, 0x02, 0x3b, 0xe2, 0x04, 0x85, 0x00, 0x01, 0x7c,
+ 0xb4, 0x81, 0x00, 0x03, 0x03, 0xdb, 0xef, 0x45, 0x8b, 0x00, 0x01, 0x2d,
+ 0x49, 0x88, 0x00, 0x01, 0xbc, 0xa0, 0x8f, 0x00, 0x02, 0x38, 0xff, 0x24,
+ 0x87, 0x00, 0x02, 0x22, 0xff, 0x3c, 0x89, 0x00, 0x01, 0xb0, 0xac, 0x93,
+ 0x00, 0x01, 0xa8, 0xb4, 0x85, 0x00, 0x02, 0x54, 0xff, 0x04, 0xb9, 0x00,
+ 0x02, 0x48, 0xff, 0x10, 0xb3, 0x00, 0x01, 0xb1, 0x91, 0x83, 0x00, 0x01,
+ 0x4c, 0xb4, 0x83, 0x00, 0x02, 0x2c, 0xff, 0x18, 0x88, 0x00, 0x05, 0x9c,
+ 0x4b, 0x00, 0x00, 0x1e, 0xff, 0x89, 0x00, 0x01, 0x70, 0xd7, 0x81, 0x00,
+ 0x13, 0x0a, 0xe8, 0x0d, 0x00, 0x9b, 0x64, 0x00, 0x24, 0xe4, 0xee, 0xf5,
+ 0xe4, 0xf6, 0xed, 0xe0, 0x0a, 0x91, 0xbc, 0x3e, 0xa0, 0x80, 0x00, 0x06,
+ 0xaf, 0x57, 0x75, 0x93, 0x1b, 0xc7, 0x05, 0x80, 0x00, 0x03, 0xe1, 0x55,
+ 0xc5, 0x78, 0x82, 0x00, 0x01, 0x69, 0xd0, 0x82, 0x00, 0x02, 0x4e, 0xfe,
+ 0x1f, 0x84, 0x00, 0x01, 0xb2, 0xb3, 0x80, 0x00, 0x05, 0x04, 0x24, 0x5f,
+ 0x41, 0x38, 0x0e, 0x81, 0x00, 0x01, 0x4c, 0xb4, 0x9c, 0x00, 0x06, 0x07,
+ 0xe8, 0x32, 0x00, 0x21, 0xff, 0x47, 0x80, 0x00, 0x01, 0xe3, 0x85, 0x80,
+ 0x00, 0x02, 0x30, 0xff, 0x29, 0x80, 0x00, 0x06, 0x2c, 0x02, 0x00, 0x00,
+ 0x53, 0xff, 0x23, 0x82, 0x00, 0x01, 0x77, 0xea, 0x80, 0x00, 0x08, 0x43,
+ 0xca, 0x03, 0xf4, 0x38, 0x00, 0x00, 0x14, 0xe8, 0x83, 0x00, 0x01, 0xe3,
+ 0x87, 0x86, 0x00, 0x13, 0x2d, 0xd7, 0x08, 0x00, 0x00, 0x7b, 0xf6, 0x45,
+ 0x00, 0x74, 0xdc, 0x02, 0x4e, 0xff, 0x0f, 0x00, 0x00, 0x0b, 0xff, 0x5e,
+ 0x80, 0x00, 0x02, 0xd0, 0xff, 0x38, 0x82, 0x00, 0x02, 0xd0, 0xff, 0x38,
+ 0x83, 0x00, 0x03, 0x06, 0x7b, 0xf2, 0x70, 0x85, 0x00, 0x03, 0x27, 0xda,
+ 0xbc, 0x24, 0x82, 0x00, 0x14, 0x20, 0x0d, 0x00, 0x00, 0x65, 0xf7, 0x1e,
+ 0x20, 0xb8, 0x00, 0xa7, 0x51, 0x01, 0x99, 0x49, 0x00, 0x00, 0x71, 0x7a,
+ 0x9a, 0xd7, 0x80, 0x00, 0x09, 0x50, 0xff, 0x08, 0x00, 0x4d, 0xff, 0x21,
+ 0x00, 0xef, 0x87, 0x83, 0x00, 0x01, 0xa8, 0xb4, 0x80, 0x00, 0x05, 0xae,
+ 0xc8, 0x00, 0x3c, 0xff, 0x20, 0x83, 0x00, 0x01, 0xbc, 0x9c, 0x81, 0x00,
+ 0x02, 0x47, 0xff, 0x2a, 0x83, 0x00, 0x06, 0xd4, 0x84, 0x00, 0x00, 0x24,
+ 0xff, 0x38, 0x80, 0x00, 0x01, 0x7c, 0xe0, 0x84, 0x00, 0x09, 0x50, 0xff,
+ 0x08, 0x00, 0x00, 0x9c, 0xbc, 0x12, 0xd9, 0x1c, 0x81, 0x00, 0x01, 0xb8,
+ 0xa0, 0x81, 0x00, 0x12, 0x40, 0xad, 0xfc, 0x19, 0x00, 0x9c, 0xbd, 0xa4,
+ 0x00, 0xbc, 0xb6, 0xe3, 0x08, 0x00, 0xb8, 0x24, 0x54, 0xff, 0x11, 0x80,
+ 0x00, 0x0c, 0xab, 0xba, 0x00, 0x10, 0xff, 0x4c, 0x00, 0x00, 0xcd, 0x97,
+ 0x4f, 0xff, 0x15, 0x80, 0x00, 0x10, 0xb0, 0xb4, 0x00, 0x88, 0xd0, 0x00,
+ 0x00, 0x63, 0xf1, 0x04, 0x00, 0xa0, 0xde, 0x15, 0x00, 0x00, 0x0b, 0x81,
+ 0x00, 0x01, 0x78, 0xe4, 0x81, 0x00, 0x01, 0xbc, 0xa0, 0x80, 0x00, 0x20,
+ 0xb8, 0x20, 0x00, 0x92, 0xd7, 0x00, 0x00, 0x01, 0xda, 0x08, 0x37, 0xe4,
+ 0x00, 0x8a, 0xfd, 0x30, 0x3e, 0x9b, 0x00, 0x00, 0x9b, 0xe2, 0x10, 0xcc,
+ 0x0c, 0x00, 0x00, 0x03, 0xd6, 0xb8, 0x00, 0xbc, 0x3b, 0x82, 0x00, 0x02,
+ 0x94, 0xe6, 0x0a, 0x80, 0x00, 0x01, 0x4c, 0xe0, 0x82, 0x00, 0x02, 0x01,
+ 0xcb, 0x56, 0x85, 0x00, 0x01, 0x7c, 0xb4, 0x81, 0x00, 0x03, 0x58, 0xc9,
+ 0x64, 0xbf, 0x90, 0x00, 0x0d, 0x2f, 0xa2, 0xdf, 0xef, 0xea, 0x6e, 0x00,
+ 0x00, 0xbc, 0xa0, 0x46, 0xcd, 0xe6, 0x67, 0x80, 0x00, 0x33, 0x4e, 0xc9,
+ 0xe7, 0xdb, 0xa6, 0x00, 0x00, 0x02, 0x7b, 0xd9, 0xf7, 0xe7, 0xff, 0x24,
+ 0x00, 0x01, 0x5d, 0xcd, 0xe4, 0xd4, 0x4f, 0x00, 0x00, 0xf5, 0xfa, 0xff,
+ 0xfa, 0xf8, 0xf8, 0x3e, 0x00, 0x1c, 0xae, 0xe6, 0xde, 0xcd, 0xe1, 0xbd,
+ 0x00, 0xb0, 0xac, 0x4a, 0xd2, 0xea, 0x5a, 0x00, 0x00, 0xe1, 0xe4, 0xee,
+ 0xff, 0x04, 0x80, 0x00, 0x0e, 0x2f, 0xe4, 0xe4, 0xea, 0xff, 0x2c, 0x00,
+ 0x00, 0xa8, 0xb4, 0x00, 0x6f, 0xf9, 0xf1, 0x6b, 0x80, 0x00, 0x28, 0x54,
+ 0xff, 0x04, 0x00, 0x00, 0xd0, 0xe8, 0x57, 0xe4, 0x51, 0x75, 0xec, 0x4f,
+ 0x88, 0xff, 0xac, 0x4a, 0xd2, 0xea, 0x5a, 0x00, 0x00, 0x06, 0x85, 0xdb,
+ 0xe4, 0xb7, 0x25, 0x00, 0x94, 0xff, 0xa0, 0x46, 0xcd, 0xe6, 0x67, 0x00,
+ 0x00, 0x02, 0x7b, 0xd9, 0x80, 0xff, 0x2b, 0x24, 0x80, 0xff, 0xff, 0x9c,
+ 0x4f, 0xd7, 0xe1, 0x64, 0x00, 0x18, 0xaf, 0xeb, 0xed, 0xde, 0x93, 0x00,
+ 0x2f, 0xf8, 0xfb, 0xff, 0xf9, 0xf8, 0xf1, 0x00, 0x7a, 0xf8, 0xa8, 0x00,
+ 0x00, 0xe7, 0xff, 0x20, 0x92, 0xff, 0xef, 0x64, 0x00, 0x6f, 0xf0, 0xf2,
+ 0xcf, 0xf7, 0x3f, 0x80, 0x00, 0x13, 0x89, 0xfb, 0xa2, 0xf8, 0xfc, 0x5d,
+ 0x00, 0x4f, 0xf7, 0xed, 0xa0, 0xff, 0xef, 0x64, 0x00, 0x6f, 0xf0, 0xf2,
+ 0x04, 0xe7, 0x80, 0xe4, 0x02, 0xf1, 0xff, 0x37, 0x80, 0x00, 0x01, 0x98,
+ 0xb4, 0x83, 0x00, 0x01, 0x4c, 0xb4, 0x83, 0x00, 0x02, 0x4c, 0xfb, 0x06,
+ 0x88, 0x00, 0x05, 0x20, 0x0d, 0x00, 0x00, 0x65, 0xf7, 0x89, 0x00, 0x01,
+ 0x63, 0xca, 0x8a, 0x00, 0x0a, 0x6e, 0x7f, 0x00, 0xba, 0x32, 0x00, 0x00,
+ 0x2f, 0xf1, 0xcf, 0xa0, 0x80, 0x00, 0x05, 0x2c, 0xd2, 0xc6, 0x1d, 0xa8,
+ 0x3e, 0x80, 0x00, 0x03, 0x02, 0xc8, 0xf9, 0x68, 0x83, 0x00, 0x01, 0x25,
+ 0x52, 0x82, 0x00, 0x01, 0x83, 0xd7, 0x85, 0x00, 0x02, 0x70, 0xf2, 0x01,
+ 0x80, 0x00, 0x04, 0x42, 0xd8, 0x7c, 0xa2, 0x02, 0x81, 0x00, 0x01, 0x4c,
+ 0xb4, 0x9c, 0x00, 0x06, 0x5f, 0xc1, 0x00, 0x00, 0x3e, 0xff, 0x2d, 0x80,
+ 0x00, 0x01, 0xca, 0xa1, 0x80, 0x00, 0x02, 0x30, 0xff, 0x29, 0x83, 0x00,
+ 0x03, 0x01, 0xb0, 0xd9, 0x01, 0x80, 0x00, 0x1b, 0x04, 0x43, 0xea, 0x65,
+ 0x00, 0x00, 0x06, 0xd5, 0x33, 0x00, 0xf4, 0x38, 0x00, 0x00, 0x14, 0xf9,
+ 0xe8, 0xc5, 0x6f, 0x05, 0x00, 0x07, 0xff, 0x6c, 0x97, 0xdd, 0xd1, 0x5c,
+ 0x82, 0x00, 0x01, 0xb6, 0x53, 0x80, 0x00, 0x0e, 0x07, 0xba, 0xfc, 0x97,
+ 0xe5, 0x26, 0x00, 0x36, 0xff, 0x29, 0x00, 0x00, 0x34, 0xff, 0x7a, 0x80,
+ 0x00, 0x02, 0xd0, 0xff, 0x38, 0x82, 0x00, 0x02, 0xd0, 0xff, 0x38, 0x82,
+ 0x00, 0x05, 0x3b, 0xd5, 0xc3, 0x2a, 0x00, 0x4f, 0x83, 0xf0, 0x06, 0xad,
+ 0x00, 0x08, 0x84, 0xf2, 0x79, 0x06, 0x83, 0x00, 0x1e, 0x52, 0xec, 0x4d,
+ 0x00, 0x44, 0x8b, 0x1e, 0xd4, 0x01, 0x00, 0xb7, 0x4c, 0x00, 0x00, 0xba,
+ 0x34, 0x55, 0xff, 0x20, 0x00, 0x00, 0x50, 0xff, 0x08, 0x1c, 0xca, 0x9b,
+ 0x00, 0x0d, 0xff, 0x64, 0x83, 0x00, 0x01, 0xa8, 0xb4, 0x80, 0x00, 0x07,
+ 0x8f, 0xe6, 0x00, 0x3c, 0xff, 0x20, 0x00, 0x92, 0x81, 0x00, 0x08, 0xbc,
+ 0x9c, 0x00, 0x3c, 0x56, 0x00, 0x65, 0xff, 0x0b, 0x83, 0x00, 0x06, 0xd4,
+ 0x84, 0x00, 0x00, 0x24, 0xff, 0x38, 0x80, 0x00, 0x01, 0x7c, 0xe0, 0x84,
+ 0x00, 0x08, 0x50, 0xff, 0x08, 0x00, 0x00, 0x9c, 0xbc, 0xa0, 0x65, 0x82,
+ 0x00, 0x01, 0xb8, 0xa0, 0x81, 0x00, 0x11, 0x40, 0x9c, 0xc7, 0x5e, 0x01,
+ 0xd9, 0x80, 0xa4, 0x00, 0xbc, 0x38, 0xfa, 0x71, 0x00, 0xb8, 0x24, 0x76,
+ 0xf3, 0x81, 0x00, 0x0b, 0x8e, 0xdc, 0x00, 0x10, 0xff, 0x4c, 0x00, 0x09,
+ 0xf1, 0x68, 0x73, 0xf5, 0x81, 0x00, 0x0f, 0x90, 0xd8, 0x00, 0x88, 0xd0,
+ 0x01, 0x28, 0xd8, 0x74, 0x00, 0x00, 0x26, 0xda, 0xe9, 0x59, 0x02, 0x82,
+ 0x00, 0x01, 0x78, 0xe4, 0x81, 0x00, 0x01, 0xbc, 0xa0, 0x80, 0x00, 0x17,
+ 0xb8, 0x20, 0x00, 0x49, 0xff, 0x20, 0x00, 0x2f, 0xb3, 0x00, 0x19, 0xfd,
+ 0x04, 0xb7, 0xbb, 0x5c, 0x5c, 0x7e, 0x00, 0x00, 0x1d, 0xf8, 0xce, 0x6d,
+ 0x81, 0x00, 0x03, 0x51, 0xff, 0x82, 0xb4, 0x82, 0x00, 0x02, 0x20, 0xfa,
+ 0x68, 0x81, 0x00, 0x01, 0x4c, 0xe0, 0x83, 0x00, 0x01, 0x5a, 0xc6, 0x85,
+ 0x00, 0x01, 0x7c, 0xb4, 0x80, 0x00, 0x05, 0x01, 0xd1, 0x50, 0x07, 0xe5,
+ 0x38, 0x8f, 0x00, 0x2b, 0x74, 0x9a, 0x15, 0x04, 0x8d, 0xf6, 0x01, 0x00,
+ 0xbc, 0xcd, 0xb2, 0x45, 0x84, 0xff, 0x2b, 0x00, 0x4a, 0xff, 0x57, 0x01,
+ 0x27, 0xf4, 0x00, 0x00, 0x7e, 0xe9, 0x46, 0x1a, 0x5e, 0xff, 0x24, 0x00,
+ 0x66, 0xdf, 0x22, 0x00, 0x4e, 0xfa, 0x1f, 0x00, 0x00, 0x24, 0xff, 0x38,
+ 0x81, 0x00, 0x0e, 0xc6, 0xb8, 0x09, 0x1b, 0xe1, 0x7c, 0x28, 0x00, 0xb0,
+ 0xd6, 0xb5, 0x39, 0xa5, 0xed, 0x03, 0x80, 0x00, 0x02, 0x54, 0xff, 0x04,
+ 0x83, 0x00, 0x0a, 0x30, 0xff, 0x2c, 0x00, 0x00, 0xa8, 0xb4, 0x00, 0x57,
+ 0xc5, 0x13, 0x81, 0x00, 0x3b, 0x54, 0xff, 0x04, 0x00, 0x00, 0x5e, 0xf2,
+ 0x9a, 0x9c, 0xd3, 0x96, 0xb3, 0xa1, 0x0f, 0xb9, 0xd6, 0xb5, 0x39, 0xa5,
+ 0xed, 0x03, 0x00, 0x90, 0xda, 0x1a, 0x04, 0x89, 0xe8, 0x0c, 0x0c, 0xc2,
+ 0xcd, 0xa7, 0x32, 0x73, 0xff, 0x2b, 0x00, 0x7e, 0xe6, 0x45, 0x1a, 0x5e,
+ 0xff, 0x24, 0x20, 0x40, 0xcd, 0xd0, 0xc3, 0x5d, 0xaa, 0x90, 0x00, 0xa0,
+ 0xb6, 0x0f, 0x03, 0x36, 0xec, 0x80, 0x00, 0x02, 0x48, 0xff, 0x10, 0x81,
+ 0x00, 0x09, 0xb4, 0xa8, 0x00, 0x00, 0x3c, 0xff, 0x20, 0x03, 0xe5, 0x91,
+ 0x80, 0x00, 0x14, 0x9e, 0x4a, 0x6a, 0xca, 0x00, 0x42, 0xd6, 0x0b, 0x0d,
+ 0xcd, 0x00, 0x50, 0xfd, 0x41, 0x00, 0x21, 0xcb, 0x0d, 0x03, 0xe5, 0x91,
+ 0x80, 0x00, 0x09, 0x9e, 0x4b, 0x00, 0xd8, 0x00, 0x00, 0x0d, 0xd6, 0xbc,
+ 0x03, 0x80, 0x00, 0x01, 0x7a, 0xbc, 0x83, 0x00, 0x01, 0x4c, 0xb4, 0x83,
+ 0x00, 0x01, 0x58, 0xdf, 0x8c, 0x00, 0x02, 0x52, 0xec, 0x4d, 0x89, 0x00,
+ 0x01, 0x55, 0xbc, 0x8a, 0x00, 0x04, 0x9e, 0x51, 0x01, 0xe5, 0x08, 0x80,
+ 0x00, 0x03, 0x36, 0xe7, 0xf1, 0x55, 0x82, 0x00, 0x0d, 0x43, 0xa2, 0x7b,
+ 0xdb, 0x62, 0x02, 0x9c, 0xaa, 0xfb, 0x3f, 0x0e, 0xe7, 0xeb, 0x20, 0x86,
+ 0x00, 0x01, 0xaa, 0xbc, 0x85, 0x00, 0x0a, 0x53, 0xff, 0x17, 0x00, 0x00,
+ 0x01, 0xba, 0x75, 0x0f, 0xe7, 0x33, 0x81, 0x00, 0x01, 0x4c, 0xb4, 0x9b,
+ 0x00, 0x07, 0x01, 0xd0, 0x51, 0x00, 0x00, 0x52, 0xff, 0x21, 0x80, 0x00,
+ 0x01, 0xbd, 0xb5, 0x80, 0x00, 0x02, 0x30, 0xff, 0x2a, 0x83, 0x00, 0x02,
+ 0x70, 0xf0, 0x29, 0x80, 0x00, 0x1d, 0xb6, 0xf6, 0xff, 0x98, 0x0a, 0x00,
+ 0x00, 0x79, 0x94, 0x00, 0x00, 0xf4, 0x38, 0x00, 0x00, 0x01, 0x01, 0x09,
+ 0x52, 0xeb, 0xa4, 0x00, 0x20, 0xff, 0xe4, 0x52, 0x05, 0x4b, 0xfe, 0x3d,
+ 0x80, 0x00, 0x02, 0x37, 0xdc, 0x03, 0x80, 0x00, 0x0e, 0x05, 0xad, 0xb8,
+ 0xfa, 0xd7, 0x21, 0x00, 0x04, 0xd5, 0xa4, 0x0a, 0x21, 0xbd, 0xf9, 0x87,
+ 0x80, 0x00, 0x02, 0x1e, 0x24, 0x08, 0x82, 0x00, 0x02, 0x1e, 0x24, 0x08,
+ 0x80, 0x00, 0x07, 0x10, 0x97, 0xed, 0x65, 0x02, 0x00, 0x00, 0x0b, 0x83,
+ 0x20, 0x00, 0x17, 0x80, 0x00, 0x03, 0x2c, 0xc5, 0xd3, 0x39, 0x81, 0x00,
+ 0x1f, 0x42, 0xe9, 0x30, 0x00, 0x00, 0x60, 0x74, 0x4b, 0xad, 0x00, 0x19,
+ 0xfd, 0x4c, 0x00, 0x0b, 0xe4, 0x03, 0x13, 0xfe, 0x68, 0x00, 0x00, 0x50,
+ 0xff, 0xe5, 0xff, 0xcf, 0x1a, 0x00, 0x21, 0xff, 0x52, 0x83, 0x00, 0x01,
+ 0xa8, 0xb4, 0x80, 0x00, 0x07, 0x7f, 0xf2, 0x00, 0x3c, 0xff, 0xe4, 0xe0,
+ 0xf1, 0x81, 0x00, 0x07, 0xbc, 0xf4, 0xe0, 0xeb, 0x80, 0x00, 0x79, 0xfa,
+ 0x84, 0x00, 0x06, 0xd4, 0xf1, 0xe0, 0xe0, 0xe5, 0xff, 0x38, 0x80, 0x00,
+ 0x01, 0x7c, 0xe0, 0x84, 0x00, 0x08, 0x50, 0xff, 0x08, 0x00, 0x00, 0x9c,
+ 0xd8, 0xff, 0x62, 0x82, 0x00, 0x01, 0xb8, 0xa0, 0x81, 0x00, 0x11, 0x40,
+ 0x9c, 0x81, 0xa5, 0x2e, 0xb3, 0x78, 0xa4, 0x00, 0xbc, 0x18, 0x94, 0xea,
+ 0x0d, 0xb8, 0x24, 0x8d, 0xe5, 0x81, 0x00, 0x0b, 0x7e, 0xf4, 0x00, 0x10,
+ 0xff, 0x4c, 0x0b, 0x93, 0xe0, 0x09, 0x8c, 0xe5, 0x81, 0x00, 0x07, 0x7e,
+ 0xf5, 0x00, 0x88, 0xfa, 0xe5, 0xfe, 0xa7, 0x81, 0x00, 0x04, 0x0c, 0x9a,
+ 0xfe, 0xc0, 0x1c, 0x81, 0x00, 0x01, 0x78, 0xe4, 0x81, 0x00, 0x01, 0xbc,
+ 0xa0, 0x80, 0x00, 0x11, 0xb8, 0x20, 0x00, 0x0a, 0xf8, 0x68, 0x00, 0x77,
+ 0x6a, 0x00, 0x02, 0xfa, 0x1e, 0xc9, 0x7c, 0x89, 0x79, 0x61, 0x80, 0x00,
+ 0x02, 0xa7, 0xfe, 0x12, 0x81, 0x00, 0x03, 0x01, 0xc9, 0xff, 0x30, 0x82,
+ 0x00, 0x02, 0x9f, 0xdd, 0x05, 0x81, 0x00, 0x01, 0x4c, 0xe0, 0x83, 0x00,
+ 0x02, 0x06, 0xe5, 0x37, 0x84, 0x00, 0x01, 0x7c, 0xb4, 0x80, 0x00, 0x05,
+ 0x4b, 0xd5, 0x02, 0x00, 0x72, 0xb2, 0x8f, 0x00, 0x21, 0x0d, 0x0b, 0x00,
+ 0x00, 0x4c, 0xff, 0x0c, 0x00, 0xbc, 0xd7, 0x0d, 0x00, 0x04, 0xee, 0x7e,
+ 0x00, 0xc2, 0xb7, 0x00, 0x00, 0x01, 0xbc, 0x00, 0x06, 0xf1, 0x74, 0x00,
+ 0x00, 0x38, 0xff, 0x24, 0x01, 0xe7, 0x6e, 0x80, 0x00, 0x06, 0xeb, 0x6a,
+ 0x00, 0x00, 0x24, 0xff, 0x38, 0x80, 0x00, 0x0f, 0x16, 0xff, 0x43, 0x00,
+ 0x00, 0x82, 0xbd, 0x00, 0x00, 0xb0, 0xe7, 0x14, 0x00, 0x4c, 0xff, 0x1b,
+ 0x80, 0x00, 0x02, 0x54, 0xff, 0x04, 0x83, 0x00, 0x09, 0x30, 0xff, 0x2c,
+ 0x00, 0x00, 0xa8, 0xb4, 0x5e, 0xba, 0x0d, 0x82, 0x00, 0x3b, 0x54, 0xff,
+ 0x04, 0x00, 0x00, 0x50, 0xff, 0x25, 0x6a, 0xf6, 0x0f, 0x82, 0xbc, 0x00,
+ 0xb0, 0xe7, 0x14, 0x00, 0x4c, 0xff, 0x1b, 0x0b, 0xfa, 0x6b, 0x00, 0x00,
+ 0x0c, 0xf9, 0x68, 0x00, 0xbc, 0xd6, 0x0b, 0x00, 0x02, 0xeb, 0x7e, 0x06,
+ 0xf1, 0x6f, 0x00, 0x00, 0x38, 0xff, 0x24, 0x00, 0x00, 0xbc, 0xe3, 0x14,
+ 0x00, 0x4d, 0x7e, 0x00, 0xbb, 0xc2, 0x0e, 0x00, 0x00, 0x7c, 0x80, 0x00,
+ 0x02, 0x48, 0xff, 0x10, 0x81, 0x00, 0x2d, 0xb4, 0xa8, 0x00, 0x00, 0x3c,
+ 0xff, 0x20, 0x00, 0x88, 0xeb, 0x06, 0x00, 0x0b, 0xda, 0x04, 0x40, 0xf4,
+ 0x02, 0x86, 0xfd, 0x42, 0x36, 0xa4, 0x00, 0x00, 0x95, 0xe6, 0x19, 0xc0,
+ 0x31, 0x00, 0x00, 0x88, 0xeb, 0x06, 0x00, 0x0b, 0xdc, 0x05, 0x00, 0x4e,
+ 0x00, 0x01, 0xa9, 0xe3, 0x15, 0x80, 0x00, 0x02, 0x17, 0xc5, 0x69, 0x83,
+ 0x00, 0x01, 0x4c, 0xb4, 0x83, 0x00, 0x0c, 0x17, 0xec, 0x40, 0x02, 0x00,
+ 0x00, 0x67, 0xe2, 0x9e, 0x0b, 0x00, 0x59, 0x61, 0x80, 0x00, 0x02, 0x42,
+ 0xe9, 0x30, 0x8a, 0x00, 0x01, 0x48, 0xaf, 0x8a, 0x00, 0x03, 0xce, 0x22,
+ 0x1a, 0xd2, 0x82, 0x00, 0x03, 0x69, 0xd7, 0xfe, 0x65, 0x80, 0x00, 0x0d,
+ 0x06, 0xc7, 0x36, 0xd2, 0x0f, 0xde, 0x5c, 0xe0, 0x05, 0x9a, 0xce, 0x03,
+ 0x65, 0x92, 0x87, 0x00, 0x01, 0xc3, 0xac, 0x85, 0x00, 0x02, 0x40, 0xff,
+ 0x2e, 0x80, 0x00, 0x0d, 0x04, 0x0b, 0x00, 0x0d, 0x00, 0x00, 0x4f, 0xf0,
+ 0xf0, 0xf5, 0xfc, 0xf0, 0xf0, 0xad, 0x86, 0x00, 0x00, 0xed, 0x82, 0xf0,
+ 0x00, 0x5e, 0x88, 0x00, 0x07, 0x41, 0xde, 0x03, 0x00, 0x00, 0x3e, 0xff,
+ 0x2e, 0x80, 0x00, 0x01, 0xca, 0xa0, 0x80, 0x00, 0x02, 0x30, 0xff, 0x2a,
+ 0x82, 0x00, 0x02, 0x61, 0xea, 0x38, 0x82, 0x00, 0x0b, 0x02, 0x2a, 0xbe,
+ 0xcc, 0x07, 0x20, 0xde, 0x10, 0x00, 0x00, 0xf4, 0x38, 0x83, 0x00, 0x05,
+ 0x5b, 0xff, 0x27, 0x13, 0xff, 0x96, 0x80, 0x00, 0x01, 0xc3, 0x9a, 0x80,
+ 0x00, 0x01, 0xb8, 0x70, 0x81, 0x00, 0x0e, 0x9e, 0xba, 0x02, 0x31, 0xe1,
+ 0xe5, 0x20, 0x00, 0x21, 0xb5, 0xe4, 0xbe, 0x38, 0xfc, 0x6b, 0x8d, 0x00,
+ 0x03, 0x12, 0xdc, 0xec, 0x20, 0x8d, 0x00, 0x03, 0x02, 0xa6, 0xfe, 0x57,
+ 0x80, 0x00, 0x01, 0xbe, 0x81, 0x80, 0x00, 0x1a, 0x4d, 0x8a, 0x57, 0xb1,
+ 0x00, 0x74, 0xb7, 0x4c, 0x00, 0x4d, 0xa7, 0x00, 0x00, 0xcc, 0xb1, 0x00,
+ 0x00, 0x50, 0xff, 0x08, 0x16, 0xa5, 0xe7, 0x1b, 0x09, 0xff, 0x65, 0x83,
+ 0x00, 0x01, 0xa8, 0xb4, 0x80, 0x00, 0x07, 0x93, 0xd5, 0x00, 0x3c, 0xff,
+ 0x20, 0x00, 0xd8, 0x81, 0x00, 0x15, 0xbc, 0x9c, 0x00, 0x58, 0x80, 0x00,
+ 0x61, 0xff, 0x0d, 0x00, 0x20, 0xe0, 0xf0, 0x5e, 0x00, 0xd4, 0x84, 0x00,
+ 0x00, 0x24, 0xff, 0x38, 0x80, 0x00, 0x01, 0x7c, 0xe0, 0x84, 0x00, 0x09,
+ 0x50, 0xff, 0x08, 0x00, 0x00, 0x9c, 0xbc, 0x8f, 0xf4, 0x25, 0x81, 0x00,
+ 0x01, 0xb8, 0xa0, 0x81, 0x00, 0x11, 0x40, 0x9c, 0x3b, 0xea, 0x78, 0x69,
+ 0x78, 0xa4, 0x00, 0xbc, 0x18, 0x19, 0xf6, 0x7c, 0xb8, 0x24, 0x76, 0xf4,
+ 0x81, 0x00, 0x0b, 0x8c, 0xdb, 0x00, 0x10, 0xff, 0xea, 0xdb, 0xa3, 0x19,
+ 0x00, 0x72, 0xf1, 0x81, 0x00, 0x08, 0x89, 0xe7, 0x00, 0x88, 0xd0, 0x00,
+ 0x92, 0xe8, 0x08, 0x82, 0x00, 0x03, 0x2f, 0xd8, 0xed, 0x22, 0x80, 0x00,
+ 0x01, 0x78, 0xe4, 0x81, 0x00, 0x01, 0xbc, 0xa1, 0x80, 0x00, 0x17, 0xb9,
+ 0x20, 0x00, 0x00, 0xb8, 0xb1, 0x00, 0xbf, 0x21, 0x00, 0x00, 0xde, 0x4c,
+ 0xb9, 0x51, 0xb6, 0x97, 0x43, 0x00, 0x00, 0x13, 0xce, 0xf3, 0x7a, 0x82,
+ 0x00, 0x01, 0x79, 0xe1, 0x82, 0x00, 0x02, 0x28, 0xfd, 0x5b, 0x82, 0x00,
+ 0x01, 0x4c, 0xe0, 0x84, 0x00, 0x01, 0x79, 0xa8, 0x84, 0x00, 0x01, 0x7c,
+ 0xb4, 0x80, 0x00, 0x06, 0xc4, 0x5d, 0x00, 0x00, 0x0c, 0xec, 0x2d, 0x8e,
+ 0x00, 0x09, 0x0d, 0x80, 0xcb, 0xe0, 0xeb, 0xff, 0x0c, 0x00, 0xbc, 0xa0,
+ 0x80, 0x00, 0x04, 0xd0, 0x9b, 0x00, 0xec, 0x86, 0x82, 0x00, 0x0a, 0x25,
+ 0xff, 0x42, 0x00, 0x00, 0x38, 0xff, 0x24, 0x16, 0xff, 0xea, 0x80, 0xe0,
+ 0x06, 0xee, 0x7f, 0x00, 0x00, 0x24, 0xff, 0x38, 0x80, 0x00, 0x0f, 0x11,
+ 0xff, 0x3e, 0x00, 0x00, 0x81, 0xbd, 0x00, 0x00, 0xb0, 0xac, 0x00, 0x00,
+ 0x34, 0xff, 0x24, 0x80, 0x00, 0x02, 0x54, 0xff, 0x04, 0x83, 0x00, 0x08,
+ 0x30, 0xff, 0x2c, 0x00, 0x00, 0xa8, 0xdf, 0xfd, 0x53, 0x83, 0x00, 0x17,
+ 0x54, 0xff, 0x04, 0x00, 0x00, 0x50, 0xe9, 0x00, 0x68, 0xd1, 0x00, 0x7c,
+ 0xbc, 0x00, 0xb0, 0xac, 0x00, 0x00, 0x34, 0xff, 0x24, 0x2e, 0xff, 0x43,
+ 0x80, 0x00, 0x04, 0xdd, 0x92, 0x00, 0xbc, 0xa0, 0x80, 0x00, 0x0d, 0xcf,
+ 0x9b, 0x25, 0xff, 0x40, 0x00, 0x00, 0x38, 0xff, 0x24, 0x00, 0x00, 0xbc,
+ 0x9c, 0x82, 0x00, 0x05, 0x45, 0xe6, 0xf2, 0xa5, 0x51, 0x02, 0x80, 0x00,
+ 0x02, 0x48, 0xff, 0x10, 0x81, 0x00, 0x1c, 0xb4, 0xa8, 0x00, 0x00, 0x3c,
+ 0xff, 0x20, 0x00, 0x29, 0xff, 0x4f, 0x00, 0x5c, 0x8d, 0x00, 0x16, 0xff,
+ 0x1f, 0xbe, 0xaa, 0x7f, 0x60, 0x7b, 0x00, 0x00, 0x09, 0xd2, 0xea, 0x6e,
+ 0x80, 0x00, 0x05, 0x29, 0xff, 0x4f, 0x00, 0x5c, 0x90, 0x81, 0x00, 0x02,
+ 0x71, 0xfa, 0x37, 0x80, 0x00, 0x02, 0xa8, 0xfd, 0xa4, 0x84, 0x00, 0x01,
+ 0x4c, 0xb4, 0x84, 0x00, 0x0b, 0x3f, 0xff, 0xe8, 0x23, 0x07, 0xf4, 0x43,
+ 0xa2, 0xc5, 0x13, 0xac, 0x6d, 0x80, 0x00, 0x01, 0xbe, 0x81, 0x8b, 0x00,
+ 0x01, 0x26, 0x67, 0x88, 0x00, 0x07, 0x8b, 0xe2, 0xfc, 0xe1, 0xea, 0xf4,
+ 0xe0, 0x7d, 0x80, 0x00, 0x14, 0x68, 0x74, 0x85, 0xed, 0x01, 0x00, 0x00,
+ 0x78, 0x6b, 0x4f, 0xa2, 0x00, 0xc0, 0xa6, 0xab, 0x00, 0x1e, 0xf7, 0x62,
+ 0x8c, 0x6b, 0x87, 0x00, 0x01, 0xa3, 0xc4, 0x85, 0x00, 0x02, 0x57, 0xff,
+ 0x0d, 0x86, 0x00, 0x07, 0x0b, 0x20, 0x20, 0x63, 0xbe, 0x20, 0x20, 0x17,
+ 0x86, 0x00, 0x83, 0x20, 0x00, 0x0d, 0x88, 0x00, 0x01, 0xb1, 0x6f, 0x80,
+ 0x00, 0x02, 0x21, 0xff, 0x48, 0x80, 0x00, 0x01, 0xe3, 0x84, 0x80, 0x00,
+ 0x02, 0x30, 0xff, 0x2b, 0x81, 0x00, 0x02, 0x5c, 0xea, 0x2f, 0x85, 0x00,
+ 0x04, 0x28, 0xff, 0x4c, 0x6c, 0xfb, 0x80, 0xf0, 0x02, 0xff, 0xf4, 0xb1,
+ 0x82, 0x00, 0x05, 0x21, 0xff, 0x50, 0x01, 0xf7, 0x6f, 0x80, 0x00, 0x06,
+ 0xa8, 0xb1, 0x00, 0x00, 0x35, 0xff, 0x1d, 0x80, 0x00, 0x07, 0x0b, 0xf9,
+ 0x4b, 0x00, 0x00, 0x1c, 0xfc, 0x77, 0x82, 0x00, 0x02, 0x22, 0xff, 0x48,
+ 0x8e, 0x00, 0x03, 0x21, 0xb7, 0xdd, 0x45, 0x80, 0x00, 0x00, 0x4f, 0x83,
+ 0xf0, 0x00, 0xad, 0x80, 0x00, 0x04, 0x17, 0xa6, 0xe8, 0x57, 0x01, 0x80,
+ 0x00, 0x01, 0xe8, 0x5d, 0x80, 0x00, 0x1a, 0x2b, 0xb7, 0x2d, 0xe1, 0x1f,
+ 0xa4, 0x8c, 0x4c, 0x00, 0x96, 0xec, 0xe0, 0xe0, 0xf1, 0xf4, 0x07, 0x00,
+ 0x50, 0xff, 0x08, 0x00, 0x0a, 0xfa, 0x7a, 0x00, 0xe8, 0x8d, 0x83, 0x00,
+ 0x01, 0xa8, 0xb4, 0x80, 0x00, 0x05, 0xb7, 0xb1, 0x00, 0x3c, 0xff, 0x20,
+ 0x83, 0x00, 0x01, 0xbc, 0x9c, 0x81, 0x00, 0x02, 0x40, 0xff, 0x34, 0x80,
+ 0x00, 0x09, 0xf8, 0x64, 0x00, 0xd4, 0x84, 0x00, 0x00, 0x24, 0xff, 0x38,
+ 0x80, 0x00, 0x01, 0x7c, 0xe0, 0x80, 0x00, 0x0e, 0x1f, 0x4e, 0x00, 0x00,
+ 0x50, 0xff, 0x08, 0x00, 0x00, 0x9c, 0xbc, 0x08, 0xd2, 0xca, 0x05, 0x80,
+ 0x00, 0x01, 0xb8, 0xa0, 0x80, 0x00, 0x13, 0x7a, 0x40, 0x9c, 0x05, 0xf2,
+ 0xe6, 0x20, 0x78, 0xa4, 0x00, 0xbc, 0x18, 0x00, 0x8a, 0xf0, 0xca, 0x24,
+ 0x53, 0xff, 0x12, 0x80, 0x00, 0x05, 0xa7, 0xb9, 0x00, 0x10, 0xff, 0x4c,
+ 0x81, 0x00, 0x02, 0x4c, 0xff, 0x09, 0x80, 0x00, 0x0b, 0x9f, 0xc8, 0x00,
+ 0x88, 0xd0, 0x00, 0x21, 0xfd, 0x66, 0x00, 0x00, 0x37, 0x80, 0x00, 0x02,
+ 0x1c, 0xfe, 0x6e, 0x80, 0x00, 0x01, 0x78, 0xe4, 0x81, 0x00, 0x01, 0xa9,
+ 0xad, 0x80, 0x00, 0x07, 0xc6, 0x15, 0x00, 0x00, 0x6f, 0xf4, 0x13, 0xd2,
+ 0x80, 0x00, 0x0d, 0xc0, 0x96, 0x8c, 0x25, 0xe2, 0xb4, 0x26, 0x00, 0x00,
+ 0x8a, 0x58, 0x81, 0xf0, 0x12, 0x81, 0x00, 0x01, 0x78, 0xe0, 0x82, 0x00,
+ 0x09, 0xaa, 0xd3, 0x02, 0x00, 0x17, 0x13, 0x00, 0x00, 0x4c, 0xe0, 0x84,
+ 0x00, 0x02, 0x13, 0xf2, 0x1d, 0x83, 0x00, 0x01, 0x7c, 0xb4, 0x98, 0x00,
+ 0x09, 0xa9, 0xde, 0x36, 0x03, 0x4c, 0xff, 0x0c, 0x00, 0xbc, 0xa0, 0x80,
+ 0x00, 0x04, 0xd9, 0x88, 0x00, 0xe7, 0x8b, 0x82, 0x00, 0x0a, 0x38, 0xff,
+ 0x3b, 0x00, 0x00, 0x38, 0xff, 0x24, 0x11, 0xff, 0x65, 0x84, 0x00, 0x02,
+ 0x24, 0xff, 0x38, 0x81, 0x00, 0x0e, 0xb5, 0xb2, 0x0b, 0x23, 0xe2, 0x63,
+ 0x00, 0x00, 0xb0, 0xac, 0x00, 0x00, 0x34, 0xff, 0x24, 0x80, 0x00, 0x02,
+ 0x54, 0xff, 0x04, 0x83, 0x00, 0x09, 0x30, 0xff, 0x2c, 0x00, 0x00, 0xa8,
+ 0xb4, 0x84, 0xf3, 0x2f, 0x82, 0x00, 0x17, 0x54, 0xff, 0x04, 0x00, 0x00,
+ 0x50, 0xe8, 0x00, 0x68, 0xd0, 0x00, 0x7c, 0xbc, 0x00, 0xb0, 0xac, 0x00,
+ 0x00, 0x34, 0xff, 0x24, 0x2f, 0xff, 0x43, 0x80, 0x00, 0x04, 0xdd, 0x92,
+ 0x00, 0xbc, 0xa0, 0x80, 0x00, 0x0d, 0xda, 0x88, 0x38, 0xff, 0x3f, 0x00,
+ 0x00, 0x38, 0xff, 0x24, 0x00, 0x00, 0xbc, 0x9c, 0x83, 0x00, 0x0a, 0x08,
+ 0x61, 0xb0, 0xfa, 0xd7, 0x19, 0x00, 0x00, 0x48, 0xff, 0x11, 0x81, 0x00,
+ 0x1c, 0xb4, 0xa8, 0x00, 0x00, 0x3c, 0xff, 0x20, 0x00, 0x00, 0xca, 0xad,
+ 0x00, 0xba, 0x2f, 0x00, 0x01, 0xed, 0x50, 0xc2, 0x62, 0xbd, 0x8a, 0x51,
+ 0x00, 0x00, 0x09, 0xcd, 0xf7, 0x6d, 0x81, 0x00, 0x04, 0xca, 0xad, 0x00,
+ 0xba, 0x32, 0x80, 0x00, 0x02, 0x3e, 0xfc, 0x67, 0x82, 0x00, 0x02, 0x1c,
+ 0xbf, 0x53, 0x83, 0x00, 0x01, 0x4c, 0xb4, 0x83, 0x00, 0x0c, 0x0f, 0xdb,
+ 0x35, 0x00, 0x00, 0x1d, 0xcd, 0x00, 0x02, 0x88, 0xfb, 0xe4, 0x14, 0x80,
+ 0x00, 0x01, 0xe8, 0x5d, 0x99, 0x00, 0x1e, 0x40, 0xad, 0x00, 0x8c, 0x61,
+ 0x00, 0x00, 0x03, 0x73, 0x00, 0x68, 0x74, 0x3e, 0xfd, 0x04, 0x00, 0x1e,
+ 0xc2, 0x03, 0x50, 0xa2, 0x00, 0xbe, 0x9b, 0xb9, 0x00, 0x00, 0x74, 0xe8,
+ 0xd6, 0x10, 0x87, 0x00, 0x01, 0x7e, 0xe4, 0x85, 0x00, 0x01, 0x76, 0xe4,
+ 0x8a, 0x00, 0x01, 0x4c, 0xb4, 0x83, 0x00, 0x02, 0x1e, 0x24, 0x08, 0x8a,
+ 0x00, 0x02, 0x1e, 0x24, 0x08, 0x81, 0x00, 0x02, 0x24, 0xef, 0x0e, 0x80,
+ 0x00, 0x07, 0x01, 0xd1, 0x8a, 0x00, 0x00, 0x22, 0xff, 0x35, 0x80, 0x00,
+ 0x02, 0x30, 0xff, 0x2b, 0x80, 0x00, 0x02, 0x2d, 0xf1, 0x30, 0x82, 0x00,
+ 0x07, 0x9c, 0x1e, 0x00, 0x00, 0x24, 0xff, 0x4e, 0x0e, 0x81, 0x20, 0x0d,
+ 0xf6, 0x51, 0x18, 0x00, 0x2e, 0x59, 0x00, 0x00, 0x41, 0xff, 0x2d, 0x00,
+ 0xaf, 0x9f, 0x80, 0x00, 0x05, 0xc3, 0x8b, 0x00, 0x00, 0x85, 0xd6, 0x81,
+ 0x00, 0x02, 0x18, 0xff, 0x41, 0x80, 0x00, 0x09, 0xe4, 0x84, 0x00, 0xbb,
+ 0x03, 0x00, 0x00, 0x7c, 0xe3, 0x05, 0x80, 0x00, 0x02, 0x1e, 0x24, 0x08,
+ 0x82, 0x00, 0x02, 0x1e, 0x24, 0x08, 0x81, 0x00, 0x06, 0x01, 0x58, 0xe8,
+ 0xa4, 0x16, 0x00, 0x0a, 0x83, 0x1c, 0x06, 0x15, 0x00, 0x02, 0x63, 0xed,
+ 0x99, 0x11, 0x87, 0x00, 0x1b, 0x02, 0xcf, 0x2a, 0x98, 0xdf, 0x38, 0x88,
+ 0xf3, 0x1c, 0xda, 0x11, 0x00, 0x00, 0x34, 0xff, 0x43, 0x00, 0x50, 0xff,
+ 0x08, 0x00, 0x00, 0xea, 0x8c, 0x00, 0x8b, 0xe9, 0x08, 0x82, 0x00, 0x12,
+ 0xa8, 0xb4, 0x00, 0x00, 0x18, 0xfb, 0x50, 0x00, 0x3c, 0xff, 0x20, 0x00,
+ 0x00, 0x37, 0x68, 0x00, 0x00, 0xbc, 0x9c, 0x81, 0x00, 0x02, 0x05, 0xdf,
+ 0x97, 0x80, 0x00, 0x09, 0xf8, 0x64, 0x00, 0xd4, 0x84, 0x00, 0x00, 0x24,
+ 0xff, 0x38, 0x80, 0x00, 0x01, 0x7c, 0xe0, 0x80, 0x00, 0x0e, 0x40, 0xb5,
+ 0x00, 0x00, 0x5d, 0xfb, 0x02, 0x00, 0x00, 0x9c, 0xbc, 0x00, 0x2b, 0xf8,
+ 0x86, 0x80, 0x00, 0x01, 0xb8, 0xa0, 0x80, 0x00, 0x1c, 0xd8, 0x40, 0x9c,
+ 0x00, 0xb0, 0xd7, 0x00, 0x78, 0xa4, 0x00, 0xbc, 0x18, 0x00, 0x13, 0xf2,
+ 0xff, 0x24, 0x0a, 0xed, 0x5d, 0x00, 0x00, 0x04, 0xec, 0x5c, 0x00, 0x10,
+ 0xff, 0x4c, 0x81, 0x00, 0x11, 0x19, 0xfc, 0x4b, 0x00, 0x00, 0x01, 0xde,
+ 0x7c, 0x00, 0x88, 0xd0, 0x00, 0x00, 0xa7, 0xda, 0x03, 0x00, 0xeb, 0x80,
+ 0x00, 0x02, 0x02, 0xf2, 0x58, 0x80, 0x00, 0x01, 0x78, 0xe4, 0x81, 0x00,
+ 0x0c, 0x89, 0xd6, 0x01, 0x00, 0x02, 0xdc, 0x01, 0x00, 0x00, 0x27, 0xff,
+ 0x92, 0x8f, 0x80, 0x00, 0x0d, 0xa3, 0xe1, 0x60, 0x03, 0xf7, 0xe1, 0x0a,
+ 0x00, 0x1a, 0xc6, 0x02, 0x0e, 0xec, 0x89, 0x81, 0x00, 0x01, 0x78, 0xe0,
+ 0x81, 0x00, 0x0a, 0x32, 0xff, 0x4e, 0x00, 0x00, 0x78, 0x64, 0x00, 0x00,
+ 0x4c, 0xe0, 0x85, 0x00, 0x01, 0x98, 0x89, 0x83, 0x00, 0x01, 0x7c, 0xb4,
+ 0x98, 0x00, 0x12, 0xef, 0x80, 0x00, 0x00, 0x4e, 0xff, 0x0c, 0x00, 0xbc,
+ 0xa0, 0x00, 0x00, 0x10, 0xf8, 0x5b, 0x00, 0xb8, 0xcc, 0x01, 0x81, 0x00,
+ 0x0a, 0x1c, 0xff, 0x63, 0x00, 0x00, 0x65, 0xff, 0x24, 0x00, 0xdd, 0xae,
+ 0x84, 0x00, 0x02, 0x24, 0xff, 0x38, 0x81, 0x00, 0x0e, 0x16, 0xf1, 0xe1,
+ 0xd2, 0x6c, 0x01, 0x00, 0x00, 0xb0, 0xac, 0x00, 0x00, 0x34, 0xff, 0x24,
+ 0x80, 0x00, 0x02, 0x54, 0xff, 0x04, 0x83, 0x00, 0x0a, 0x30, 0xff, 0x2c,
+ 0x00, 0x00, 0xa8, 0xb4, 0x02, 0xb3, 0xe3, 0x1a, 0x81, 0x00, 0x30, 0x54,
+ 0xff, 0x04, 0x00, 0x00, 0x50, 0xe8, 0x00, 0x68, 0xd0, 0x00, 0x7c, 0xbc,
+ 0x00, 0xb0, 0xac, 0x00, 0x00, 0x34, 0xff, 0x24, 0x0c, 0xfa, 0x69, 0x00,
+ 0x00, 0x0d, 0xf9, 0x69, 0x00, 0xbc, 0xa0, 0x00, 0x00, 0x11, 0xf9, 0x5b,
+ 0x1c, 0xff, 0x6c, 0x00, 0x00, 0x7c, 0xff, 0x24, 0x00, 0x00, 0xbc, 0x9c,
+ 0x82, 0x00, 0x0b, 0x96, 0x0b, 0x00, 0x00, 0x24, 0xfc, 0x63, 0x00, 0x00,
+ 0x47, 0xff, 0x23, 0x81, 0x00, 0x0c, 0xac, 0xb9, 0x00, 0x00, 0x75, 0xff,
+ 0x20, 0x00, 0x00, 0x6b, 0xfa, 0x2e, 0xce, 0x80, 0x00, 0x0d, 0xc2, 0xaf,
+ 0x8d, 0x26, 0xf5, 0xba, 0x28, 0x00, 0x00, 0x95, 0x78, 0x68, 0xf9, 0x30,
+ 0x80, 0x00, 0x0d, 0x6b, 0xfa, 0x2e, 0xd2, 0x01, 0x00, 0x00, 0x19, 0xe8,
+ 0xa0, 0x01, 0x00, 0x33, 0x40, 0x80, 0x00, 0x01, 0x77, 0xaa, 0x83, 0x00,
+ 0x01, 0x4c, 0xb4, 0x83, 0x00, 0x01, 0x4a, 0xdb, 0x85, 0x00, 0x01, 0x10,
+ 0x05, 0x91, 0x00, 0x02, 0x62, 0x98, 0x08, 0x88, 0x00, 0x1e, 0x7f, 0x6e,
+ 0x00, 0xcc, 0x22, 0x00, 0x00, 0x04, 0xed, 0x00, 0x68, 0x74, 0x77, 0xd2,
+ 0x00, 0x00, 0xab, 0x37, 0x00, 0x22, 0xd0, 0x09, 0xdf, 0x3c, 0xfa, 0x43,
+ 0x00, 0x29, 0xf7, 0xca, 0x07, 0x87, 0x00, 0x02, 0x2e, 0xff, 0x36, 0x84,
+ 0x00, 0x01, 0xca, 0xa2, 0x8a, 0x00, 0x01, 0x4c, 0xb4, 0x83, 0x00, 0x02,
+ 0xd0, 0xff, 0x38, 0x8a, 0x00, 0x02, 0xd0, 0xff, 0x38, 0x81, 0x00, 0x01,
+ 0x92, 0x8e, 0x82, 0x00, 0x06, 0x59, 0xf1, 0x2d, 0x0a, 0xad, 0xbd, 0x01,
+ 0x80, 0x00, 0x07, 0x30, 0xff, 0x2b, 0x00, 0x00, 0x08, 0xd9, 0xba, 0x81,
+ 0x3c, 0x08, 0x23, 0x00, 0xbc, 0x58, 0x02, 0x0f, 0xad, 0xe6, 0x11, 0x82,
+ 0x00, 0x16, 0xf4, 0x38, 0x00, 0x00, 0x4c, 0xb6, 0x04, 0x17, 0xca, 0xb7,
+ 0x01, 0x00, 0x3b, 0xf6, 0x4e, 0x01, 0x44, 0xf6, 0x23, 0x00, 0x00, 0xca,
+ 0xa6, 0x82, 0x00, 0x0d, 0xc3, 0xc1, 0x14, 0x01, 0x5a, 0xf9, 0x2f, 0x00,
+ 0xe0, 0x3b, 0x02, 0x4c, 0xf4, 0x5e, 0x81, 0x00, 0x02, 0xd0, 0xff, 0x38,
+ 0x82, 0x00, 0x02, 0xd0, 0xff, 0x38, 0x83, 0x00, 0x03, 0x11, 0x9a, 0xec,
+ 0x58, 0x85, 0x00, 0x03, 0x1d, 0xc1, 0xd5, 0x3b, 0x83, 0x00, 0x02, 0x18,
+ 0x98, 0x51, 0x81, 0x00, 0x08, 0x47, 0xdb, 0x3a, 0x03, 0x0f, 0x18, 0x00,
+ 0x28, 0xbc, 0x80, 0x00, 0x26, 0x01, 0xe4, 0x8c, 0x00, 0x50, 0xff, 0x08,
+ 0x01, 0x5a, 0xff, 0x52, 0x00, 0x19, 0xe5, 0xb7, 0x25, 0x09, 0x43, 0x82,
+ 0x00, 0xa8, 0xb4, 0x00, 0x20, 0xc8, 0xc3, 0x03, 0x00, 0x3c, 0xff, 0x20,
+ 0x00, 0x00, 0x4c, 0x90, 0x00, 0x00, 0xbc, 0x9c, 0x82, 0x00, 0x0e, 0x57,
+ 0xfb, 0x75, 0x13, 0x18, 0xfa, 0x64, 0x00, 0xd4, 0x84, 0x00, 0x00, 0x24,
+ 0xff, 0x38, 0x80, 0x00, 0x01, 0x7c, 0xe0, 0x80, 0x00, 0x05, 0x40, 0xdb,
+ 0x14, 0x01, 0xa9, 0xcd, 0x80, 0x00, 0x0a, 0x9c, 0xbc, 0x00, 0x00, 0x6c,
+ 0xfe, 0x3f, 0x00, 0x00, 0xb8, 0xa0, 0x80, 0x00, 0x1c, 0xd8, 0x40, 0x9c,
+ 0x00, 0x46, 0x5b, 0x00, 0x78, 0xa4, 0x00, 0xbc, 0x18, 0x00, 0x00, 0x80,
+ 0xff, 0x24, 0x00, 0x70, 0xe3, 0x23, 0x07, 0x8d, 0xcf, 0x06, 0x00, 0x10,
+ 0xff, 0x4c, 0x82, 0x00, 0x16, 0x9e, 0xc4, 0x05, 0x00, 0x57, 0xea, 0x16,
+ 0x00, 0x88, 0xd0, 0x00, 0x00, 0x32, 0xff, 0x53, 0x00, 0xf8, 0x62, 0x08,
+ 0x02, 0x79, 0xe8, 0x12, 0x80, 0x00, 0x01, 0x78, 0xe4, 0x81, 0x00, 0x05,
+ 0x2c, 0xff, 0x5a, 0x01, 0x64, 0x99, 0x80, 0x00, 0x03, 0x01, 0xde, 0xfc,
+ 0x46, 0x80, 0x00, 0x0e, 0x85, 0xff, 0x33, 0x00, 0xce, 0xec, 0x00, 0x00,
+ 0x97, 0x4a, 0x00, 0x00, 0x73, 0xf7, 0x1b, 0x80, 0x00, 0x01, 0x78, 0xe0,
+ 0x81, 0x00, 0x0a, 0xb6, 0xc7, 0x01, 0x00, 0x00, 0x78, 0x64, 0x00, 0x00,
+ 0x4c, 0xe0, 0x85, 0x00, 0x02, 0x29, 0xee, 0x0b, 0x82, 0x00, 0x01, 0x7c,
+ 0xb4, 0x98, 0x00, 0x2b, 0xd4, 0xb8, 0x08, 0x25, 0xd7, 0xff, 0x0c, 0x00,
+ 0xbc, 0xb3, 0x20, 0x24, 0xa4, 0xdf, 0x06, 0x00, 0x3a, 0xfe, 0x96, 0x28,
+ 0x21, 0x66, 0x08, 0x00, 0xc7, 0xae, 0x02, 0x40, 0xc8, 0xff, 0x24, 0x00,
+ 0x53, 0xff, 0x81, 0x22, 0x23, 0x65, 0x3c, 0x00, 0x00, 0x24, 0xff, 0x38,
+ 0x81, 0x00, 0x04, 0xa0, 0x97, 0x12, 0x10, 0x0c, 0x80, 0x00, 0x06, 0xb0,
+ 0xac, 0x00, 0x00, 0x34, 0xff, 0x24, 0x80, 0x00, 0x02, 0x54, 0xff, 0x04,
+ 0x83, 0x00, 0x0b, 0x30, 0xff, 0x2c, 0x00, 0x00, 0xa8, 0xb4, 0x00, 0x0e,
+ 0xd6, 0xcd, 0x0b, 0x80, 0x00, 0x30, 0x54, 0xff, 0x04, 0x00, 0x00, 0x50,
+ 0xe8, 0x00, 0x68, 0xd0, 0x00, 0x7c, 0xbc, 0x00, 0xb0, 0xac, 0x00, 0x00,
+ 0x34, 0xff, 0x24, 0x00, 0x91, 0xd8, 0x18, 0x03, 0x8b, 0xe9, 0x0d, 0x00,
+ 0xbc, 0xb3, 0x20, 0x24, 0xa6, 0xdf, 0x06, 0x00, 0xc7, 0xcd, 0x3b, 0x7c,
+ 0xbe, 0xff, 0x24, 0x00, 0x00, 0xbc, 0x9c, 0x82, 0x00, 0x1c, 0xd4, 0x6b,
+ 0x1c, 0x01, 0x32, 0xfc, 0x37, 0x00, 0x00, 0x2e, 0xff, 0x69, 0x1f, 0x68,
+ 0x0b, 0x00, 0x83, 0xed, 0x11, 0x49, 0xd8, 0xff, 0x20, 0x00, 0x00, 0x13,
+ 0xfa, 0xd7, 0x72, 0x80, 0x00, 0x1e, 0x98, 0xfc, 0x50, 0x01, 0xea, 0xf6,
+ 0x05, 0x00, 0x50, 0xbe, 0x03, 0x01, 0xae, 0xd8, 0x0b, 0x00, 0x00, 0x13,
+ 0xfa, 0xd7, 0x77, 0x00, 0x00, 0x05, 0xc3, 0xd2, 0x0e, 0x04, 0x04, 0x63,
+ 0x78, 0x80, 0x00, 0x01, 0x8a, 0xc1, 0x83, 0x00, 0x01, 0x4c, 0xb4, 0x83,
+ 0x00, 0x02, 0x5c, 0xf1, 0x01, 0x89, 0x00, 0x02, 0x18, 0x98, 0x51, 0x8b,
+ 0x00, 0x02, 0xa4, 0xff, 0x0c, 0x88, 0x00, 0x10, 0xbd, 0x2f, 0x10, 0xe0,
+ 0x01, 0x00, 0x00, 0x04, 0xf0, 0xd3, 0xc0, 0xc7, 0xec, 0x49, 0x00, 0x48,
+ 0x9a, 0x80, 0x00, 0x0b, 0x8b, 0xe5, 0x6f, 0x00, 0x59, 0xda, 0xe4, 0xc2,
+ 0x62, 0xee, 0xec, 0x21, 0x87, 0x00, 0x01, 0xa7, 0xa7, 0x83, 0x00, 0x02,
+ 0x3b, 0xfa, 0x2b, 0x8a, 0x00, 0x01, 0x22, 0x4f, 0x83, 0x00, 0x02, 0xd0,
+ 0xff, 0x2d, 0x8a, 0x00, 0x02, 0xd0, 0xff, 0x38, 0x80, 0x00, 0x02, 0x10,
+ 0xf0, 0x21, 0x83, 0x00, 0x0e, 0x66, 0xd5, 0xe1, 0xa1, 0x0c, 0x00, 0x36,
+ 0xe4, 0xe4, 0xea, 0xff, 0xe9, 0xe4, 0xe4, 0x3f, 0x83, 0xff, 0x07, 0x94,
+ 0x00, 0x8b, 0xda, 0xe7, 0xe9, 0xb2, 0x2a, 0x81, 0x00, 0x0b, 0xbd, 0xe4,
+ 0xff, 0xeb, 0x84, 0x00, 0x3a, 0xd6, 0xea, 0xe0, 0x92, 0x0e, 0x80, 0x00,
+ 0x09, 0x4b, 0xcb, 0xe6, 0xc6, 0x3a, 0x00, 0x00, 0x11, 0xfe, 0x8d, 0x82,
+ 0x00, 0x0c, 0x17, 0x9f, 0xe4, 0xe4, 0xc5, 0x43, 0x00, 0x00, 0x84, 0xcf,
+ 0xe7, 0xc1, 0x4e, 0x82, 0x00, 0x02, 0xd0, 0xff, 0x38, 0x82, 0x00, 0x02,
+ 0xd0, 0xff, 0x2d, 0x85, 0x00, 0x01, 0x3c, 0x92, 0x85, 0x00, 0x02, 0x4c,
+ 0x7c, 0x06, 0x84, 0x00, 0x02, 0x28, 0xff, 0x88, 0x82, 0x00, 0x33, 0x3e,
+ 0xbd, 0xe5, 0xd6, 0x50, 0x00, 0xc6, 0xf4, 0x7a, 0x00, 0x00, 0xaf, 0xf9,
+ 0xf8, 0x8e, 0xed, 0xff, 0xe5, 0xee, 0xe1, 0x7c, 0x01, 0x00, 0x00, 0x1a,
+ 0xa8, 0xe3, 0xef, 0xb9, 0x41, 0x96, 0xf7, 0xf8, 0xeb, 0xdf, 0x96, 0x0a,
+ 0x00, 0x7c, 0xfa, 0xff, 0xf9, 0xf8, 0xf8, 0xfb, 0x90, 0x39, 0xe4, 0xf9,
+ 0xf6, 0xe4, 0x6b, 0x81, 0x00, 0x29, 0x46, 0xbe, 0xef, 0xe7, 0xa1, 0x1e,
+ 0x84, 0xfc, 0xf3, 0x2b, 0x00, 0xbe, 0xff, 0xe7, 0x00, 0xcf, 0xe4, 0xf2,
+ 0xfd, 0xe4, 0xe4, 0x44, 0x23, 0xa9, 0xd8, 0xe8, 0xce, 0x36, 0x00, 0x00,
+ 0x72, 0xf6, 0xf9, 0x81, 0x00, 0xa9, 0xff, 0xf6, 0x7d, 0xf8, 0xfe, 0xfd,
+ 0x80, 0xf8, 0x03, 0xe0, 0xc4, 0xf6, 0x2f, 0x80, 0x00, 0x17, 0xe7, 0xf6,
+ 0x90, 0xf9, 0xc7, 0x00, 0x00, 0x0f, 0xed, 0x24, 0x00, 0x00, 0x6b, 0xd4,
+ 0xe0, 0xa3, 0x10, 0x00, 0x5d, 0xe6, 0xff, 0xed, 0xe4, 0x36, 0x80, 0x00,
+ 0x1d, 0x0e, 0xad, 0xd9, 0xba, 0xdb, 0x38, 0x00, 0x5d, 0xf3, 0xfb, 0xa1,
+ 0x00, 0x00, 0xbb, 0xf5, 0x32, 0x70, 0xc7, 0xeb, 0xe3, 0xb8, 0x2c, 0x00,
+ 0x00, 0x39, 0xe4, 0xf2, 0xfd, 0xe4, 0x96, 0x80, 0x00, 0x04, 0x5b, 0xda,
+ 0xe3, 0xa5, 0x0e, 0x81, 0x00, 0x02, 0x95, 0xf6, 0x08, 0x80, 0x00, 0x19,
+ 0x67, 0xfe, 0x09, 0x00, 0xa2, 0xcf, 0x00, 0x96, 0xfd, 0xe5, 0x08, 0x00,
+ 0xe2, 0xff, 0xef, 0x0f, 0x00, 0xe1, 0xf2, 0xfd, 0xe4, 0x5a, 0x00, 0x00,
+ 0xfc, 0xfd, 0x80, 0xf8, 0x05, 0xfc, 0x64, 0x00, 0x00, 0x4c, 0xe0, 0x86,
+ 0x00, 0x01, 0xb7, 0x6a, 0x82, 0x00, 0x01, 0x7c, 0xb4, 0x98, 0x00, 0x0d,
+ 0x3c, 0xd7, 0xeb, 0xc2, 0x79, 0xff, 0xdf, 0x00, 0xbc, 0xff, 0xff, 0xf0,
+ 0xb3, 0x1d, 0x80, 0x00, 0x1f, 0x41, 0xc5, 0xf3, 0xed, 0xb2, 0x07, 0x00,
+ 0x24, 0xc9, 0xe1, 0x97, 0x3e, 0xff, 0xe5, 0x00, 0x00, 0x48, 0xc5, 0xf2,
+ 0xec, 0xb4, 0x28, 0x00, 0xe1, 0xe8, 0xff, 0xeb, 0xe4, 0xab, 0x00, 0x00,
+ 0x92, 0x81, 0xff, 0x11, 0xdd, 0x29, 0x7a, 0xf8, 0xf7, 0x64, 0x00, 0xce,
+ 0xff, 0xe8, 0x00, 0xe1, 0xe4, 0xee, 0xff, 0xe5, 0xe4, 0x7d, 0x81, 0x00,
+ 0x4a, 0x39, 0xff, 0x27, 0x00, 0x72, 0xf7, 0xf8, 0x56, 0x00, 0x66, 0xff,
+ 0xed, 0x08, 0xe1, 0xe4, 0xee, 0xff, 0xe5, 0xe4, 0x7d, 0xc2, 0xfe, 0x5d,
+ 0x68, 0xfb, 0x48, 0x7c, 0xf9, 0x96, 0xf8, 0xf7, 0x64, 0x00, 0xce, 0xff,
+ 0xe8, 0x00, 0x06, 0x89, 0xdf, 0xe4, 0xb8, 0x26, 0x00, 0x00, 0xbc, 0xf2,
+ 0xed, 0xf0, 0xb3, 0x1d, 0x00, 0x00, 0x24, 0xc9, 0xe9, 0x8c, 0x3a, 0xff,
+ 0x24, 0x72, 0xe4, 0xf9, 0xf6, 0xe4, 0xe4, 0x21, 0x00, 0x00, 0x6e, 0xca,
+ 0xef, 0xeb, 0xd3, 0x5e, 0x80, 0x00, 0x0d, 0x01, 0xa0, 0xf6, 0xe8, 0x9d,
+ 0x07, 0x00, 0x16, 0xc3, 0xec, 0xa4, 0x46, 0xff, 0xeb, 0x80, 0x00, 0x02,
+ 0xac, 0xfc, 0x18, 0x80, 0x00, 0x17, 0x6e, 0xff, 0x14, 0x00, 0xae, 0xd5,
+ 0x00, 0x88, 0xf8, 0xee, 0x00, 0x00, 0xda, 0xff, 0xed, 0x21, 0x00, 0x00,
+ 0xac, 0xfe, 0x1c, 0x00, 0x00, 0x28, 0x83, 0xff, 0x00, 0x78, 0x80, 0x00,
+ 0x01, 0xab, 0xa1, 0x83, 0x00, 0x01, 0x4c, 0xb4, 0x83, 0x00, 0x02, 0x39,
+ 0xff, 0x12, 0x89, 0x00, 0x02, 0x28, 0xff, 0x88, 0xa1, 0x00, 0x04, 0x03,
+ 0x35, 0xa7, 0xad, 0x26, 0x9a, 0x00, 0x03, 0x1e, 0xdf, 0x7b, 0x04, 0x80,
+ 0x00, 0x02, 0x32, 0xe5, 0x69, 0x93, 0x00, 0x02, 0x10, 0xfc, 0x0e, 0x90,
+ 0x00, 0x01, 0x74, 0xad, 0xdd, 0x00, 0x02, 0x10, 0xfc, 0x0e, 0xff, 0x00,
+ 0xa8, 0x00, 0x04, 0x14, 0x82, 0xe4, 0x6e, 0x18, 0xc7, 0x00, 0x01, 0x4c,
+ 0xe0, 0x86, 0x00, 0x02, 0x46, 0xd9, 0x02, 0x81, 0x00, 0x01, 0x7c, 0xb4,
+ 0x87, 0x00, 0x85, 0xf0, 0x00, 0x62, 0xb4, 0x00, 0x07, 0x12, 0xd0, 0x46,
+ 0x00, 0x01, 0x23, 0xf1, 0x7f, 0x8e, 0x00, 0x05, 0xc7, 0x03, 0x00, 0x53,
+ 0xff, 0x0a, 0xa7, 0x00, 0x01, 0xbc, 0xa0, 0x87, 0x00, 0x02, 0x38, 0xff,
+ 0x24, 0xb8, 0x00, 0x01, 0x35, 0xbc, 0x8b, 0x00, 0x01, 0xaa, 0x91, 0x83,
+ 0x00, 0x01, 0x4c, 0xb4, 0x83, 0x00, 0x02, 0x2e, 0xff, 0x13, 0xb2, 0x00,
+ 0x01, 0x2e, 0x33, 0x9c, 0x00, 0x07, 0x1b, 0xab, 0xa4, 0x00, 0x00, 0x44,
+ 0xd5, 0x54, 0x94, 0x00, 0x01, 0x90, 0x95, 0x90, 0x00, 0x02, 0x04, 0xe1,
+ 0x3c, 0xdd, 0x00, 0x01, 0x90, 0x95, 0xff, 0x00, 0xab, 0x00, 0x03, 0x4f,
+ 0xe3, 0xe1, 0x16, 0xc6, 0x00, 0x01, 0x4c, 0xe0, 0x86, 0x00, 0x02, 0x01,
+ 0xd5, 0x4b, 0x81, 0x00, 0x01, 0x7c, 0xb4, 0x87, 0x00, 0x85, 0x20, 0x00,
+ 0x0d, 0xb4, 0x00, 0x07, 0x55, 0xfd, 0x31, 0x02, 0x0d, 0x4e, 0xf9, 0x4b,
+ 0x8e, 0x00, 0x04, 0xe8, 0x36, 0x05, 0xb6, 0xb1, 0xa8, 0x00, 0x01, 0xbc,
+ 0xa0, 0x87, 0x00, 0x02, 0x38, 0xff, 0x24, 0xb8, 0x00, 0x01, 0x8f, 0x5d,
+ 0x8b, 0x00, 0x03, 0x65, 0xde, 0x24, 0x01, 0x81, 0x00, 0x01, 0x4c, 0xb4,
+ 0x82, 0x00, 0x02, 0x09, 0x96, 0xcc, 0xd6, 0x00, 0x04, 0x07, 0x00, 0x00,
+ 0x07, 0x01, 0x95, 0x00, 0x01, 0x2c, 0x02, 0x90, 0x00, 0x02, 0x1c, 0x75,
+ 0x01, 0xdd, 0x00, 0x01, 0x2c, 0x02, 0xff, 0x00, 0xac, 0x00, 0x01, 0x09,
+ 0x19, 0xc7, 0x00, 0x04, 0x48, 0xee, 0xe0, 0xe0, 0x5b, 0x84, 0x00, 0x07,
+ 0x41, 0x50, 0x00, 0x04, 0xe0, 0xe0, 0xe8, 0xa9, 0xc7, 0x00, 0x06, 0x0c,
+ 0x9d, 0xe7, 0xf1, 0xec, 0xc9, 0x5e, 0x8f, 0x00, 0x04, 0x90, 0xe6, 0xe8,
+ 0xb0, 0x17, 0xa7, 0x00, 0x04, 0x82, 0xf8, 0xf4, 0xe0, 0x46, 0x84, 0x00,
+ 0x03, 0xcc, 0xeb, 0xff, 0xe5, 0xb6, 0x00, 0x04, 0x1d, 0xe4, 0xf9, 0xe9,
+ 0x24, 0x8a, 0x00, 0x03, 0x03, 0x83, 0xe0, 0xc7, 0x81, 0x00, 0x01, 0x28,
+ 0x5d, 0x81, 0x00, 0x03, 0x6a, 0xec, 0xb6, 0x22, 0x90, 0x00,
 };
-static EG_EMBEDDED_IMAGE egemb_font = { 672, 12, EG_EIPIXELMODE_ALPHA, EG_EICOMPMODE_RLE, egemb_font_data, 3587 };
+static EG_EMBEDDED_IMAGE egemb_font = { 768, 14, EG_EIPIXELMODE_GRAY_ALPHA, EG_EICOMPMODE_RLE, egemb_luxi_mono_regular_14_data, 6982 };
index c81aaea2aacb2bf2e8f2cc4dfa0484766637b65e..fab56acf4f46c5715521dda86c764856d027eee1 100644 (file)
@@ -118,8 +118,12 @@ VOID egFillImageArea(IN OUT EG_IMAGE *CompImage,
                      IN EG_PIXEL *Color);
 VOID egComposeImage(IN OUT EG_IMAGE *CompImage, IN EG_IMAGE *TopImage, IN UINTN PosX, IN UINTN PosY);
 
+UINTN egGetFontHeight(VOID);
+UINTN egGetFontCellWidth(VOID);
+UINTN egComputeTextWidth(IN CHAR16 *Text);
 VOID egMeasureText(IN CHAR16 *Text, OUT UINTN *Width, OUT UINTN *Height);
 VOID egRenderText(IN CHAR16 *Text, IN OUT EG_IMAGE *CompImage, IN UINTN PosX, IN UINTN PosY, IN UINT8 BGBrightness);
+VOID egLoadFont(IN CHAR16 *Filename);
 
 VOID egClearScreen(IN EG_PIXEL *Color);
 VOID egDrawImage(IN EG_IMAGE *Image, IN UINTN ScreenPosX, IN UINTN ScreenPosY);
@@ -131,7 +135,6 @@ VOID egDrawImageArea(IN EG_IMAGE *Image,
 VOID egDisplayMessage(IN CHAR16 *Text, EG_PIXEL *BGColor);
 EG_IMAGE * egCopyScreen(VOID);
 VOID egScreenShot(VOID);
-//UINT32 egGetGraphicsMode(VOID);
 BOOLEAN egSetTextMode(UINT32 RequestedMode);
 
 #endif /* __LIBEG_LIBEG_H__ */
index 378847e563e2ab6531c7ec2c5799efc343d6da44..9049d85ba224914a862264da5daa470261c895bf 100644 (file)
@@ -236,7 +236,6 @@ BOOLEAN egSetTextMode(UINT32 RequestedMode) {
    BOOLEAN       ChangedIt = FALSE;
 
    if ((RequestedMode != DONT_CHANGE_TEXT_MODE) && (RequestedMode != ST->ConOut->Mode->Mode)) {
-//      SwitchToGraphics();
       Status = refit_call2_wrapper(ST->ConOut->SetMode, ST->ConOut, RequestedMode);
       if (Status == EFI_SUCCESS) {
          ChangedIt = TRUE;
@@ -431,12 +430,13 @@ VOID egDisplayMessage(IN CHAR16 *Text, EG_PIXEL *BGColor) {
    EG_IMAGE *Box;
 
    if ((Text != NULL) && (BGColor != NULL)) {
-      BoxWidth = (StrLen(Text) + 2) * FONT_CELL_WIDTH;
+      egMeasureText(Text, &BoxWidth, &BoxHeight);
+      BoxWidth += 14;
+      BoxHeight *= 2;
       if (BoxWidth > egScreenWidth)
          BoxWidth = egScreenWidth;
-      BoxHeight = 2 * FONT_CELL_HEIGHT;
       Box = egCreateFilledImage(BoxWidth, BoxHeight, FALSE, BGColor);
-      egRenderText(Text, Box, FONT_CELL_WIDTH, FONT_CELL_HEIGHT / 2, (BGColor->r + BGColor->g + BGColor->b) / 3);
+      egRenderText(Text, Box, 7, BoxHeight / 4, (BGColor->r + BGColor->g + BGColor->b) / 3);
       egDrawImage(Box, (egScreenWidth - BoxWidth) / 2, (egScreenHeight - BoxHeight) / 2);
    } // if non-NULL inputs
 } // VOID egDisplayMessage()
index 2084356db7b549de53aaa3ab1d6815f72041a4d0..6f2f4052ce3db5724ea1027857660ce8e3754a33 100644 (file)
 //#include "../refind/screen.h"
 
 #include "egemb_font.h"
-#define FONT_CELL_WIDTH (7)
-#define FONT_CELL_HEIGHT (12)
+#define FONT_NUM_CHARS 96
 
-static EG_IMAGE *BlackFontImage = NULL;
-static EG_IMAGE *WhiteFontImage = NULL;
+static EG_IMAGE *BaseFontImage = NULL;
+static EG_IMAGE *DarkFontImage = NULL;
+static EG_IMAGE *LightFontImage = NULL;
+
+static UINTN FontCellWidth = 7;
 
 //
 // Text rendering
 //
 
+static VOID egPrepareFont() {
+   if (BaseFontImage == NULL) {
+      BaseFontImage = egPrepareEmbeddedImage(&egemb_font, TRUE);
+   }
+   if (BaseFontImage != NULL)
+      FontCellWidth = BaseFontImage->Width / FONT_NUM_CHARS;
+} // VOID egPrepareFont();
+
+UINTN egGetFontHeight(VOID) {
+   egPrepareFont();
+   return BaseFontImage->Height;
+} // UINTN egGetFontHeight()
+
+UINTN egGetFontCellWidth(VOID) {
+   return FontCellWidth;
+}
+
+UINTN egComputeTextWidth(IN CHAR16 *Text) {
+   UINTN Width = 0;
+
+   egPrepareFont();
+   if (Text != NULL)
+      Width = FontCellWidth * StrLen(Text);
+   return Width;
+} // UINTN egComputeTextWidth()
+
 VOID egMeasureText(IN CHAR16 *Text, OUT UINTN *Width, OUT UINTN *Height)
 {
+    egPrepareFont();
+
     if (Width != NULL)
-        *Width = StrLen(Text) * FONT_CELL_WIDTH;
+        *Width = StrLen(Text) * FontCellWidth;
     if (Height != NULL)
-        *Height = FONT_CELL_HEIGHT;
+        *Height = BaseFontImage->Height;
 }
 
 VOID egRenderText(IN CHAR16 *Text, IN OUT EG_IMAGE *CompImage, IN UINTN PosX, IN UINTN PosY, IN UINT8 BGBrightness)
@@ -65,33 +95,35 @@ VOID egRenderText(IN CHAR16 *Text, IN OUT EG_IMAGE *CompImage, IN UINTN PosX, IN
     UINTN           TextLength;
     UINTN           i, c;
 
+    egPrepareFont();
+
     // clip the text
     if (Text)
        TextLength = StrLen(Text);
     else
        TextLength = 0;
 
-    if (TextLength * FONT_CELL_WIDTH + PosX > CompImage->Width)
-        TextLength = (CompImage->Width - PosX) / FONT_CELL_WIDTH;
+    if (TextLength * FontCellWidth + PosX > CompImage->Width)
+        TextLength = (CompImage->Width - PosX) / FontCellWidth;
 
     if (BGBrightness < 128) {
-       if (WhiteFontImage == NULL) {
-          WhiteFontImage = egPrepareEmbeddedImage(&egemb_font, TRUE);
-          if (WhiteFontImage == NULL)
+       if (LightFontImage == NULL) {
+          LightFontImage = egCopyImage(BaseFontImage);
+          if (LightFontImage == NULL)
              return;
-          for (i = 0; i < (WhiteFontImage->Width * WhiteFontImage->Height); i++) {
-             WhiteFontImage->PixelData[i].r = 255 - WhiteFontImage->PixelData[i].r;
-             WhiteFontImage->PixelData[i].g = 255 - WhiteFontImage->PixelData[i].g;
-             WhiteFontImage->PixelData[i].b = 255 - WhiteFontImage->PixelData[i].b;
+          for (i = 0; i < (LightFontImage->Width * LightFontImage->Height); i++) {
+             LightFontImage->PixelData[i].r = 255 - LightFontImage->PixelData[i].r;
+             LightFontImage->PixelData[i].g = 255 - LightFontImage->PixelData[i].g;
+             LightFontImage->PixelData[i].b = 255 - LightFontImage->PixelData[i].b;
           } // for
        } // if
-       FontImage = WhiteFontImage;
+       FontImage = LightFontImage;
     } else {
-       if (BlackFontImage == NULL)
-          BlackFontImage = egPrepareEmbeddedImage(&egemb_font, TRUE);
-       if (BlackFontImage == NULL)
+       if (DarkFontImage == NULL)
+          DarkFontImage = egCopyImage(BaseFontImage);
+       if (DarkFontImage == NULL)
           return;
-       FontImage = BlackFontImage;
+       FontImage = DarkFontImage;
     } // if/else
 
     // render it
@@ -106,11 +138,22 @@ VOID egRenderText(IN CHAR16 *Text, IN OUT EG_IMAGE *CompImage, IN UINTN PosX, IN
             c = 95;
         else
             c -= 32;
-        egRawCompose(BufferPtr, FontPixelData + c * FONT_CELL_WIDTH,
-                     FONT_CELL_WIDTH, FONT_CELL_HEIGHT,
+        egRawCompose(BufferPtr, FontPixelData + c * FontCellWidth,
+                     FontCellWidth, FontImage->Height,
                      BufferLineOffset, FontLineOffset);
-        BufferPtr += FONT_CELL_WIDTH;
+        BufferPtr += FontCellWidth;
     }
 }
 
+// Load a font bitmap from the specified file
+VOID egLoadFont(IN CHAR16 *Filename) {
+   if (BaseFontImage)
+      egFreeImage(BaseFontImage);
+
+   BaseFontImage = egLoadImage(SelfDir, Filename, TRUE);
+   if (BaseFontImage == NULL)
+      Print(L"Note: Font image file %s is invalid! Using default font!\n");
+    egPrepareFont();
+} // BOOLEAN egLoadFont()
+
 /* EOF */
index e5380f8d4fce62c174beaa379fa367c84a819c70..b7ccc2e74e6378262470b20c55e104c707e040cc 100644 (file)
@@ -58,6 +58,17 @@ timeout 20
 #selection_big   selection-big.bmp
 #selection_small selection-small.bmp
 
+# Set the font to be used for all textual displays in graphics mode.
+# The font must be a PNG file with alpha channel transparency. It must
+# contain ASCII characters 32-126 (space through tilde), inclusive, plus
+# a glyph to be displayed in place of characters outside of this range,
+# for a total of 96 glyphs. Only monospaced fonts are supported. Fonts
+# may be of any size, although large fonts can produce display
+# irregularities.
+# The default is rEFInd's built-in font, Luxi Mono Regular 12 point.
+#
+#font myfont.png
+
 # Use text mode only. When enabled, this option forces rEFInd into text mode.
 # Passing this option a "0" value causes graphics mode to be used. Pasing
 # it no value or any non-0 value causes text mode to be used.
index 88388b5b190351d302e0719643d40faa86ac254d..63cfad6b393932ea0e0235f0fd8c29a0eed27c59 100644 (file)
@@ -511,6 +511,9 @@ VOID ReadConfig(CHAR16 *FileName)
               }
            } // for (graphics_on tokens)
 
+        } else if ((StriCmp(TokenList[0], L"font") == 0) && (TokenCount == 2)) {
+           egLoadFont(TokenList[1]);
+
         } else if (StriCmp(TokenList[0], L"scan_all_linux_kernels") == 0) {
            if ((TokenCount >= 2) && (StriCmp(TokenList[1], L"0") == 0)) {
               GlobalConfig.ScanAllLinux = FALSE;
index 3e1061ac9d1f0da354c8ec9332e87d99999bb424..d5ec6ce574d8bce02096940fcef3bad25ff75f61 100644 (file)
@@ -128,7 +128,7 @@ static VOID AboutrEFInd(VOID)
 
     if (AboutMenu.EntryCount == 0) {
         AboutMenu.TitleImage = BuiltinIcon(BUILTIN_ICON_FUNC_ABOUT);
-        AddMenuInfoLine(&AboutMenu, L"rEFInd Version 0.6.5.5");
+        AddMenuInfoLine(&AboutMenu, L"rEFInd Version 0.6.5.6");
         AddMenuInfoLine(&AboutMenu, L"");
         AddMenuInfoLine(&AboutMenu, L"Copyright (c) 2006-2010 Christoph Pfisterer");
         AddMenuInfoLine(&AboutMenu, L"Copyright (c) 2012 Roderick W. Smith");
@@ -2044,7 +2044,6 @@ efi_main (EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
 
     // further bootstrap (now with config available)
     MokProtocol = SecureBootSetup();
-//    ScanVolumes();
     LoadDrivers();
     ScanForBootloaders();
     ScanForTools();
index 071017bd65caf66f3018c5e360b679fc4cefe713..8b072c1d8a269ff205862ef770aa169b33bca27c 100644 (file)
@@ -71,8 +71,8 @@ static CHAR16 ArrowDown[2] = { ARROW_DOWN, 0 };
 
 // Text and icon spacing constants....
 #define TEXT_YMARGIN (2)
-#define TEXT_XMARGIN (8)
-#define TEXT_LINE_HEIGHT (FONT_CELL_HEIGHT + TEXT_YMARGIN * 2)
+//#define TEXT_XMARGIN (8)
+//#define TEXT_LINE_HEIGHT (FONT_CELL_HEIGHT + TEXT_YMARGIN * 2)
 #define TITLEICON_SPACING (16)
 
 #define ROW0_TILESIZE (144)
@@ -363,6 +363,7 @@ static UINTN RunGenericMenu(IN REFIT_MENU_SCREEN *Screen, IN MENU_STYLE_FUNC Sty
     INTN ShortcutEntry;
     BOOLEAN HaveTimeout = FALSE;
     UINTN TimeoutCountdown = 0;
+    INTN PreviousTime = -1, CurrentTime;
     CHAR16 TimeoutMessage[256];
     CHAR16 KeyAsString[2];
     UINTN MenuExit;
@@ -393,8 +394,12 @@ static UINTN RunGenericMenu(IN REFIT_MENU_SCREEN *Screen, IN MENU_STYLE_FUNC Sty
         }
 
         if (HaveTimeout) {
-            SPrint(TimeoutMessage, 255, L"%s in %d seconds", Screen->TimeoutText, (TimeoutCountdown + 5) / 10);
-            StyleFunc(Screen, &State, MENU_FUNCTION_PAINT_TIMEOUT, TimeoutMessage);
+            CurrentTime = (TimeoutCountdown + 5) / 10;
+            if (CurrentTime != PreviousTime) {
+               SPrint(TimeoutMessage, 255, L"%s in %d seconds", Screen->TimeoutText, CurrentTime);
+               StyleFunc(Screen, &State, MENU_FUNCTION_PAINT_TIMEOUT, TimeoutMessage);
+               PreviousTime = CurrentTime;
+            }
         }
 
         // read key press (and wait for it if applicable)
@@ -405,7 +410,7 @@ static UINTN RunGenericMenu(IN REFIT_MENU_SCREEN *Screen, IN MENU_STYLE_FUNC Sty
                 MenuExit = MENU_EXIT_TIMEOUT;
                 break;
             } else if (HaveTimeout) {
-                refit_call1_wrapper(BS->Stall, 100000);
+                refit_call1_wrapper(BS->Stall, 100000); // Pause for 100 ms
                 TimeoutCountdown--;
             } else
                 refit_call3_wrapper(BS->WaitForEvent, 1, &ST->ConIn->WaitForKey, &index);
@@ -632,17 +637,23 @@ static VOID TextMenuStyle(IN REFIT_MENU_SCREEN *Screen, IN SCROLL_STATE *State,
 // graphical generic style
 //
 
+inline static UINTN TextLineHeight(VOID) {
+   return egGetFontHeight() + TEXT_YMARGIN * 2;
+} // UINTN TextLineHeight()
+
 //
 // Display a submenu
 //
 
-// Display text with a solid background (MenuBackgroundPixel or SelectionBackgroundPixel)
+// Display text with a solid background (MenuBackgroundPixel or SelectionBackgroundPixel).
+// Indents text by one character and placed TEXT_YMARGIN pixels down from the
+// specified XPos and YPos locations.
 static VOID DrawText(IN CHAR16 *Text, IN BOOLEAN Selected, IN UINTN FieldWidth, IN UINTN XPos, IN UINTN YPos)
 {
    EG_IMAGE *TextBuffer;
    EG_PIXEL Bg;
 
-   TextBuffer = egCreateImage(FieldWidth, TEXT_LINE_HEIGHT, FALSE);
+   TextBuffer = egCreateImage(FieldWidth, TextLineHeight(), FALSE);
 
    egFillImage(TextBuffer, &MenuBackgroundPixel);
    Bg = MenuBackgroundPixel;
@@ -653,7 +664,7 @@ static VOID DrawText(IN CHAR16 *Text, IN BOOLEAN Selected, IN UINTN FieldWidth,
    }
 
    // render the text
-   egRenderText(Text, TextBuffer, TEXT_XMARGIN, TEXT_YMARGIN, (Bg.r + Bg.g + Bg.b) / 3);
+   egRenderText(Text, TextBuffer, egGetFontCellWidth(), TEXT_YMARGIN, (Bg.r + Bg.g + Bg.b) / 3);
    egDrawImageWithTransparency(TextBuffer, NULL, XPos, YPos, TextBuffer->Width, TextBuffer->Height);
 //    BltImage(TextBuffer, XPos, YPos);
 }
@@ -677,37 +688,46 @@ static UINT8 AverageBrightness(EG_IMAGE *Image) {
    return (UINT8) (Sum / (Image->Width * Image->Height * 3));
 } // UINT8 AverageBrightness()
 
-// Display text against the screen's background image
+// Display text against the screen's background image. Special case: If Text is NULL
+// or 0-length, clear the line. Does NOT indent the text or reposition it relative
+// to the specified XPos and YPos values.
 static VOID DrawTextWithTransparency(IN CHAR16 *Text, IN UINTN XPos, IN UINTN YPos)
 {
-    UINTN TextWidth, TextPosX;
-    EG_IMAGE *TextBuffer;
+    UINTN TextWidth;
+    EG_IMAGE *TextBuffer = NULL;
 
-    TextBuffer = egCropImage(GlobalConfig.ScreenBackground, XPos, YPos, LAYOUT_TEXT_WIDTH, TEXT_LINE_HEIGHT);
+    if (Text == NULL)
+       Text = L"";
 
-    // render the text
     egMeasureText(Text, &TextWidth, NULL);
-    if (TextWidth > TextBuffer->Width)
-       TextPosX = 0;
-    else
-       TextPosX = (TextBuffer->Width - TextWidth) / 2;
-    egRenderText(Text, TextBuffer, TextPosX, 0, AverageBrightness(TextBuffer));
+    if (TextWidth == 0) {
+       TextWidth = UGAWidth;
+       XPos = 0;
+    }
+
+    TextBuffer = egCropImage(GlobalConfig.ScreenBackground, XPos, YPos, TextWidth, TextLineHeight());
+    if (TextBuffer == NULL) {
+       Print(L"Error: NULL TextBuffer in DrawTextWithTransparency()\n");
+       return;
+    }
+
+    // render the text
+    egRenderText(Text, TextBuffer, 0, 0, AverageBrightness(TextBuffer));
     egDrawImageWithTransparency(TextBuffer, NULL, XPos, YPos, TextBuffer->Width, TextBuffer->Height);
+    egFreeImage(TextBuffer);
 }
 
 // Compute the size & position of the window that will hold a subscreen's information.
-static VOID ComputeSubScreenWindowSize(REFIT_MENU_SCREEN *Screen, IN SCROLL_STATE *State, UINTN *XPos, UINTN *YPos, UINTN *Width, UINTN *Height, UINTN *LineWidth) {
+static VOID ComputeSubScreenWindowSize(REFIT_MENU_SCREEN *Screen, IN SCROLL_STATE *State, UINTN *XPos, UINTN *YPos,
+                                       UINTN *Width, UINTN *Height, UINTN *LineWidth) {
    UINTN i, ItemWidth, HintTop, BannerBottomEdge, TitleWidth;
+   UINTN FontCellWidth = egGetFontCellWidth();
+   UINTN FontCellHeight = egGetFontHeight();
 
    *Width = 20;
    *Height = 5;
-   TitleWidth = StrLen(Screen->Title);
-   if ((Screen->TitleImage) && (TitleWidth > (Screen->TitleImage->Width / FONT_CELL_WIDTH))) {
-      TitleWidth -= (Screen->TitleImage->Width / FONT_CELL_WIDTH);
-   }
-   if (TitleWidth > *Width) {
-      *Width = TitleWidth;
-   }
+   TitleWidth = egComputeTextWidth(Screen->Title);
+
    for (i = 0; i < Screen->InfoLineCount; i++) {
        ItemWidth = StrLen(Screen->InfoLines[i]);
        if (*Width < ItemWidth) {
@@ -722,43 +742,44 @@ static VOID ComputeSubScreenWindowSize(REFIT_MENU_SCREEN *Screen, IN SCROLL_STAT
        }
        (*Height)++;
    }
-   *Width = TEXT_XMARGIN * 2 + *Width * FONT_CELL_WIDTH;
+   *Width = (*Width + 2) * FontCellWidth;
    *LineWidth = *Width;
    if (Screen->TitleImage)
-      *Width += (Screen->TitleImage->Width + TITLEICON_SPACING * 2 + FONT_CELL_WIDTH);
+      *Width += (Screen->TitleImage->Width + TITLEICON_SPACING * 2 + FontCellWidth);
    else
-      *Width += FONT_CELL_WIDTH;
+      *Width += FontCellWidth;
+
+   if (*Width < TitleWidth)
+      *Width = TitleWidth + 2 * FontCellWidth;
 
    // Keep it within the bounds of the screen, or 2/3 of the screen's width
    // for screens over 800 pixels wide
    if (*Width > UGAWidth)
       *Width = UGAWidth;
-   if ((*Width > (2 * UGAWidth) / 3) && (UGAWidth > 800))
-      *Width = (2 * UGAWidth) / 3;
 
    *XPos = (UGAWidth - *Width) / 2;
 
-   HintTop = UGAHeight - (FONT_CELL_HEIGHT * 3); // top of hint text
-   *Height *= TEXT_LINE_HEIGHT;
-   if (Screen->TitleImage && (*Height < (Screen->TitleImage->Height + TEXT_LINE_HEIGHT * 4)))
-      *Height = Screen->TitleImage->Height + TEXT_LINE_HEIGHT * 4;
+   HintTop = UGAHeight - (FontCellHeight * 3); // top of hint text
+   *Height *= TextLineHeight();
+   if (Screen->TitleImage && (*Height < (Screen->TitleImage->Height + TextLineHeight() * 4)))
+      *Height = Screen->TitleImage->Height + TextLineHeight() * 4;
 
    if (GlobalConfig.BannerBottomEdge >= HintTop) { // probably a full-screen image; treat it as an empty banner
       BannerBottomEdge = 0;
    } else {
       BannerBottomEdge = GlobalConfig.BannerBottomEdge;
    }
-   if (*Height > (HintTop - BannerBottomEdge - FONT_CELL_HEIGHT * 2)) {
+   if (*Height > (HintTop - BannerBottomEdge - FontCellHeight * 2)) {
       BannerBottomEdge = 0;
    }
-   if (*Height > (HintTop - BannerBottomEdge - FONT_CELL_HEIGHT * 2)) {
+   if (*Height > (HintTop - BannerBottomEdge - FontCellHeight * 2)) {
       // TODO: Implement scrolling in text screen.
-      *Height = (HintTop - BannerBottomEdge - FONT_CELL_HEIGHT * 2);
+      *Height = (HintTop - BannerBottomEdge - FontCellHeight * 2);
    }
 
    *YPos = ((UGAHeight - *Height) / 2);
    if (*YPos < BannerBottomEdge)
-      *YPos = BannerBottomEdge + FONT_CELL_HEIGHT + (HintTop - BannerBottomEdge - *Height) / 2;
+      *YPos = BannerBottomEdge + FontCellHeight + (HintTop - BannerBottomEdge - *Height) / 2;
 } // VOID ComputeSubScreenWindowSize()
 
 // Displays sub-menus
@@ -766,37 +787,48 @@ static VOID GraphicsMenuStyle(IN REFIT_MENU_SCREEN *Screen, IN SCROLL_STATE *Sta
 {
     INTN i;
     UINTN ItemWidth;
-    static UINTN LineWidth, MenuWidth, MenuHeight, EntriesPosX, EntriesPosY, TimeoutPosY;
+    static UINTN LineWidth, MenuWidth, MenuHeight, EntriesPosX, TitlePosX, EntriesPosY, TimeoutPosY, CharWidth;
     EG_IMAGE *Window;
     EG_PIXEL *BackgroundPixel = &(GlobalConfig.ScreenBackground->PixelData[0]);
 
+    CharWidth = egGetFontCellWidth();
     State->ScrollMode = SCROLL_MODE_TEXT;
     switch (Function) {
 
         case MENU_FUNCTION_INIT:
             InitScroll(State, Screen->EntryCount, 0);
             ComputeSubScreenWindowSize(Screen, State, &EntriesPosX, &EntriesPosY, &MenuWidth, &MenuHeight, &LineWidth);
-            TimeoutPosY = EntriesPosY + (Screen->EntryCount + 1) * TEXT_LINE_HEIGHT;
+            TimeoutPosY = EntriesPosY + (Screen->EntryCount + 1) * TextLineHeight();
 
             // initial painting
             SwitchToGraphicsAndClear();
             Window = egCreateFilledImage(MenuWidth, MenuHeight, FALSE, BackgroundPixel);
             egDrawImage(Window, EntriesPosX, EntriesPosY);
-            egMeasureText(Screen->Title, &ItemWidth, NULL);
-            DrawText(Screen->Title, FALSE, (StrLen(Screen->Title) + 2) * FONT_CELL_WIDTH,
-                     EntriesPosX + (MenuWidth - ItemWidth) / 2, EntriesPosY += TEXT_LINE_HEIGHT);
+            ItemWidth = egComputeTextWidth(Screen->Title);
+            if (MenuWidth > ItemWidth) {
+               TitlePosX = EntriesPosX + (MenuWidth - ItemWidth) / 2 - CharWidth;
+            } else {
+               TitlePosX = EntriesPosX;
+               if (CharWidth > 0) {
+                  i = MenuWidth / CharWidth - 2;
+                  if (i > 0)
+                     Screen->Title[i] = 0;
+               } // if
+            } // if/else
+
+            DrawText(Screen->Title, FALSE, (StrLen(Screen->Title) + 2) * CharWidth, TitlePosX, EntriesPosY += TextLineHeight());
             if (Screen->TitleImage) {
-               BltImageAlpha(Screen->TitleImage, EntriesPosX + TITLEICON_SPACING, EntriesPosY + TEXT_LINE_HEIGHT * 2,
+               BltImageAlpha(Screen->TitleImage, EntriesPosX + TITLEICON_SPACING, EntriesPosY + TextLineHeight() * 2,
                              BackgroundPixel);
                EntriesPosX += (Screen->TitleImage->Width + TITLEICON_SPACING * 2);
             }
-            EntriesPosY += (TEXT_LINE_HEIGHT * 2);
+            EntriesPosY += (TextLineHeight() * 2);
             if (Screen->InfoLineCount > 0) {
                 for (i = 0; i < (INTN)Screen->InfoLineCount; i++) {
                     DrawText(Screen->InfoLines[i], FALSE, LineWidth, EntriesPosX, EntriesPosY);
-                    EntriesPosY += TEXT_LINE_HEIGHT;
+                    EntriesPosY += TextLineHeight();
                 }
-                EntriesPosY += TEXT_LINE_HEIGHT;  // also add a blank line
+                EntriesPosY += TextLineHeight();  // also add a blank line
             }
 
             break;
@@ -808,22 +840,24 @@ static VOID GraphicsMenuStyle(IN REFIT_MENU_SCREEN *Screen, IN SCROLL_STATE *Sta
         case MENU_FUNCTION_PAINT_ALL:
             for (i = 0; i <= State->MaxIndex; i++) {
                DrawText(Screen->Entries[i]->Title, (i == State->CurrentSelection), LineWidth, EntriesPosX,
-                        EntriesPosY + i * TEXT_LINE_HEIGHT);
+                        EntriesPosY + i * TextLineHeight());
             }
             if (!(GlobalConfig.HideUIFlags & HIDEUI_FLAG_HINTS)) {
                if ((Screen->Hint1 != NULL) && (StrLen(Screen->Hint1) > 0))
-                  DrawTextWithTransparency(Screen->Hint1, (UGAWidth - LAYOUT_TEXT_WIDTH) / 2, UGAHeight - (FONT_CELL_HEIGHT * 3));
+                  DrawTextWithTransparency(Screen->Hint1, (UGAWidth - egComputeTextWidth(Screen->Hint1)) / 2,
+                                           UGAHeight - (egGetFontHeight() * 3));
                if ((Screen->Hint2 != NULL) && (StrLen(Screen->Hint2) > 0))
-                  DrawTextWithTransparency(Screen->Hint2, (UGAWidth - LAYOUT_TEXT_WIDTH) / 2, UGAHeight - (FONT_CELL_HEIGHT * 2));
+                  DrawTextWithTransparency(Screen->Hint2, (UGAWidth - egComputeTextWidth(Screen->Hint2)) / 2,
+                                           UGAHeight - (egGetFontHeight() * 2));
             } // if
             break;
 
         case MENU_FUNCTION_PAINT_SELECTION:
             // redraw selection cursor
             DrawText(Screen->Entries[State->PreviousSelection]->Title, FALSE, LineWidth,
-                     EntriesPosX, EntriesPosY + State->PreviousSelection * TEXT_LINE_HEIGHT);
+                     EntriesPosX, EntriesPosY + State->PreviousSelection * TextLineHeight());
             DrawText(Screen->Entries[State->CurrentSelection]->Title, TRUE, LineWidth,
-                     EntriesPosX, EntriesPosY + State->CurrentSelection * TEXT_LINE_HEIGHT);
+                     EntriesPosX, EntriesPosY + State->CurrentSelection * TextLineHeight());
             break;
 
         case MENU_FUNCTION_PAINT_TIMEOUT:
@@ -871,12 +905,16 @@ static VOID PaintAll(IN REFIT_MENU_SCREEN *Screen, IN SCROLL_STATE *State, UINTN
       }
    }
    if (!(GlobalConfig.HideUIFlags & HIDEUI_FLAG_LABEL))
+      DrawTextWithTransparency(L"", 0, textPosY);
       DrawTextWithTransparency(Screen->Entries[State->CurrentSelection]->Title,
-                       (UGAWidth - LAYOUT_TEXT_WIDTH) >> 1, textPosY);
+                               (UGAWidth - egComputeTextWidth(Screen->Entries[State->CurrentSelection]->Title)) >> 1,
+                               textPosY);
 
    if (!(GlobalConfig.HideUIFlags & HIDEUI_FLAG_HINTS)) {
-      DrawTextWithTransparency(Screen->Hint1, (UGAWidth - LAYOUT_TEXT_WIDTH) / 2, UGAHeight - (FONT_CELL_HEIGHT * 3));
-      DrawTextWithTransparency(Screen->Hint2, (UGAWidth - LAYOUT_TEXT_WIDTH) / 2, UGAHeight - (FONT_CELL_HEIGHT * 2));
+      DrawTextWithTransparency(Screen->Hint1, (UGAWidth - egComputeTextWidth(Screen->Hint1)) / 2,
+                               UGAHeight - (egGetFontHeight() * 3));
+      DrawTextWithTransparency(Screen->Hint2, (UGAWidth - egComputeTextWidth(Screen->Hint2)) / 2,
+                               UGAHeight - (egGetFontHeight() * 2));
    } // if
 } // static VOID PaintAll()
 
@@ -903,9 +941,12 @@ static VOID PaintSelection(IN REFIT_MENU_SCREEN *Screen, IN SCROLL_STATE *State,
       } // if/else
       DrawMainMenuEntry(Screen->Entries[State->PreviousSelection], FALSE, itemPosX[XSelectPrev], YPosPrev);
       DrawMainMenuEntry(Screen->Entries[State->CurrentSelection], TRUE, itemPosX[XSelectCur], YPosCur);
-      if (!(GlobalConfig.HideUIFlags & HIDEUI_FLAG_LABEL))
+      if (!(GlobalConfig.HideUIFlags & HIDEUI_FLAG_LABEL)) {
+         DrawTextWithTransparency(L"", 0, textPosY);
          DrawTextWithTransparency(Screen->Entries[State->CurrentSelection]->Title,
-                          (UGAWidth - LAYOUT_TEXT_WIDTH) >> 1, textPosY);
+                                  (UGAWidth - egComputeTextWidth(Screen->Entries[State->CurrentSelection]->Title)) >> 1,
+                                  textPosY);
+      }
    } else { // Current selection not visible; must redraw the menu....
       MainMenuStyle(Screen, State, MENU_FUNCTION_PAINT_ALL, NULL);
    }
@@ -1041,8 +1082,10 @@ VOID MainMenuStyle(IN REFIT_MENU_SCREEN *Screen, IN SCROLL_STATE *State, IN UINT
             break;
 
         case MENU_FUNCTION_PAINT_TIMEOUT:
-            if (!(GlobalConfig.HideUIFlags & HIDEUI_FLAG_LABEL))
-                DrawTextWithTransparency(ParamText, (UGAWidth - LAYOUT_TEXT_WIDTH) >> 1, textPosY + TEXT_LINE_HEIGHT);
+            if (!(GlobalConfig.HideUIFlags & HIDEUI_FLAG_LABEL)) {
+               DrawTextWithTransparency(L"", 0, textPosY + TextLineHeight());
+               DrawTextWithTransparency(ParamText, (UGAWidth - egComputeTextWidth(ParamText)) >> 1, textPosY + TextLineHeight());
+            }
             break;
 
     }
index cd2af67f6f3b365a43842295a8be86a5c217e12d..fd29f5c8f40d0a7b6c59925e2ed54304cf937472 100644 (file)
@@ -394,7 +394,6 @@ BOOLEAN CheckFatalError(IN EFI_STATUS Status, IN CHAR16 *where)
     if (!EFI_ERROR(Status))
         return FALSE;
 
-//    StatusToString(ErrorName, Status);
     gST->ConOut->SetAttribute (gST->ConOut, ATTR_ERROR);
     Print(L"Fatal Error: %r %s\n", Status, where);
     gST->ConOut->SetAttribute (gST->ConOut, ATTR_BASIC);
@@ -407,12 +406,9 @@ BOOLEAN CheckFatalError(IN EFI_STATUS Status, IN CHAR16 *where)
 
 BOOLEAN CheckError(IN EFI_STATUS Status, IN CHAR16 *where)
 {
-//    CHAR16 ErrorName[64];
-
     if (!EFI_ERROR(Status))
         return FALSE;
 
-//    StatusToString(ErrorName, Status);
     gST->ConOut->SetAttribute (gST->ConOut, ATTR_ERROR);
     Print(L"Error: %r %s\n", Status, where);
     gST->ConOut->SetAttribute (gST->ConOut, ATTR_BASIC);
index 2647fc79d65a2656ab82c8ef7f2a21fd1512b12f..f17e549054051e6396cd8962c19aa7a5503f500b 100644 (file)
 #define ATTR_SCROLLARROW (EFI_LIGHTGREEN | EFI_BACKGROUND_BLACK)
 
 //#define LAYOUT_TEXT_WIDTH (512)
-#define LAYOUT_TEXT_WIDTH (425)
+//#define LAYOUT_TEXT_WIDTH (425)
 #define LAYOUT_BANNER_YGAP 32
 
-#define FONT_CELL_WIDTH (7)
-#define FONT_CELL_HEIGHT (12)
+//#define FONT_CELL_WIDTH (7)
+//#define FONT_CELL_HEIGHT (12)
 
 extern UINTN ConWidth;
 extern UINTN ConHeight;