bcrg 1.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
bcrg/__init__.py ADDED
@@ -0,0 +1,41 @@
1
+ from pathlib import Path
2
+
3
+ from lupa import LuaRuntime
4
+
5
+ _LIB_ROOT = Path(__file__).parent.as_posix()
6
+
7
+
8
+ class LuaReticleLoader:
9
+ def __init__(self, filename: str = 'main.lua'):
10
+ self._make_reticle = None
11
+ self._get_buffer = None
12
+ self._lua = LuaRuntime(unpack_returned_tuples=True)
13
+ self._load(filename)
14
+
15
+ @staticmethod
16
+ def _unpack_lua_table(table):
17
+ return [int(table[i]) for i in range(1, len(table) + 1)]
18
+
19
+ def _load(self, filename: str) -> None:
20
+ # Set the Lua package path
21
+ self._lua.execute(f"""
22
+ package.path = package.path .. ";./?.lua;{_LIB_ROOT}/?.lua"
23
+ """)
24
+
25
+ # Load the Lua script
26
+ with open(filename, 'r') as lua_file:
27
+ lua_code = lua_file.read()
28
+ self._lua.execute(lua_code)
29
+ # Get the function from Lua
30
+ self._get_buffer = self._lua.globals().get_buffer
31
+ self._make_reticle = self._lua.globals().make_reticle
32
+
33
+ def make_bmp(self, width, height, click_x, click_y, zoom, adjustment) -> bytes:
34
+ if self._make_reticle is not None:
35
+ table = self._make_reticle(width, height, click_x, click_y, zoom, adjustment)
36
+ return bytes(self._unpack_lua_table(table))
37
+
38
+ def make_buf(self, width, height, click_x, click_y, zoom, adjustment) -> bytes:
39
+ if self._make_reticle is not None:
40
+ table = self._make_reticle(width, height, click_x, click_y, zoom, adjustment)
41
+ return bytes(self._unpack_lua_table(table))
bcrg/__main__.py ADDED
@@ -0,0 +1,113 @@
1
+ import argparse
2
+ import io
3
+ import os
4
+ import sys
5
+ import zipfile
6
+ from pathlib import Path
7
+
8
+ from bcrg import LuaReticleLoader
9
+
10
+
11
+ def store_to_zip(file_data_dict, output_filename):
12
+ with io.BytesIO() as byte_stream:
13
+ with zipfile.ZipFile(byte_stream, 'w', zipfile.ZIP_DEFLATED) as zipf:
14
+ for filename, data in file_data_dict.items():
15
+ zipf.writestr(filename, data)
16
+
17
+ # Write the in-memory ZIP archive to a file
18
+ with open(output_filename, 'wb') as f:
19
+ f.write(byte_stream.getvalue())
20
+
21
+
22
+ def store_to_dir(file_data_dict, output_dirname):
23
+ os.makedirs(output_dirname, exist_ok=True)
24
+
25
+ for name, data in file_data_dict.items():
26
+ # Save the bytearray to a BMP file
27
+ with open(Path(output_dirname, name), "wb") as bmp_file:
28
+ bmp_file.write(data)
29
+
30
+
31
+ def main():
32
+
33
+ def is_dir(string):
34
+ if Path(string).is_dir():
35
+ return string
36
+ else:
37
+ parser.error(f"'{string}' is not a valid output path")
38
+
39
+ def is_ext_exp(extensions):
40
+ def check_extension(filename):
41
+ if Path(filename).is_dir():
42
+ parser.error(f"Expected file, but '{filename}' is dir")
43
+ if not Path(filename).is_file():
44
+ parser.error(f"File not found '{filename}'")
45
+
46
+ ext = Path(filename).suffix.lower()
47
+
48
+ if ext not in extensions:
49
+ parser.error(f"File doesn't have one of the expected extensions: {', '.join(extensions)}")
50
+ return filename
51
+
52
+ return check_extension
53
+
54
+ parser = argparse.ArgumentParser(prog="bcr", exit_on_error=False)
55
+ # parser.add_argument("file", action='store', type=argparse.FileType('r'),
56
+ parser.add_argument("file", action='store', type=is_ext_exp({'.lua'}),
57
+ help="Reticle template file in .lua format")
58
+ parser.add_argument('-o', '--output', action='store', type=is_dir, default="./",
59
+ help="Output directory path, defaults to ./")
60
+ parser.add_argument('-W', '--width', action='store', default=640,
61
+ help="Canvas width (px)", type=int, metavar="<int>")
62
+ parser.add_argument('-H', '--height', action='store', default=640,
63
+ help="Canvas height (px)", type=int, metavar="<int>")
64
+ parser.add_argument('-cx', '--click-x', action='store',
65
+ help="Horizontal click size (cm/100m)", type=float, metavar="<float>")
66
+ parser.add_argument('-cy', '--click-y', action='store',
67
+ help="Vertical click size (cm/100m)", type=float, metavar="<float>")
68
+ parser.add_argument('-z', '--zoom', nargs="*", default=[1, 2, 3, 4, 6],
69
+ help="Zoom value (int)", type=int, metavar="<int>")
70
+ parser.add_argument('-Z', '--zip', action="store_true", default=False,
71
+ help="Store as .zip")
72
+
73
+ if len(sys.argv) == 1:
74
+ parser.print_help(sys.stderr)
75
+ sys.exit(1)
76
+
77
+ args = parser.parse_args()
78
+
79
+ cx, cy = args.click_x, args.click_y
80
+ if not cx and not cy:
81
+ cx, cy = 0.5, 0.5
82
+ elif not cx:
83
+ cx = cy
84
+ elif not cy:
85
+ cy = cx
86
+
87
+ loader = LuaReticleLoader(args.file)
88
+
89
+ stem = Path(args.file).stem
90
+ out_dir = f"{stem}_{cx}x{cy}"
91
+
92
+ zip_arr = {}
93
+
94
+ try:
95
+ for z in args.zoom:
96
+ bmp_bytearray = loader.make_bmp(
97
+ args.width, args.height, cx, cy, z, None
98
+ )
99
+ out_file_name = f"{z}.bmp"
100
+
101
+ zip_arr[out_file_name] = bmp_bytearray
102
+
103
+ if args.zip:
104
+ store_to_zip(zip_arr, f"{out_dir}.zip")
105
+ else:
106
+ store_to_dir(zip_arr, Path(args.output, out_dir))
107
+ except Exception as e:
108
+ print(e)
109
+ sys.exit(1)
110
+
111
+
112
+ if __name__ == '__main__':
113
+ main()
bcrg/font.lua ADDED
@@ -0,0 +1,203 @@
1
+ font_petme128_8x8 = {
2
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 32=
3
+ 0x00, 0x00, 0x00, 0x4f, 0x4f, 0x00, 0x00, 0x00, -- 33=!
4
+ 0x00, 0x07, 0x07, 0x00, 0x00, 0x07, 0x07, 0x00, -- 34="
5
+ 0x14, 0x7f, 0x7f, 0x14, 0x14, 0x7f, 0x7f, 0x14, -- 35=#
6
+ 0x00, 0x24, 0x2e, 0x6b, 0x6b, 0x3a, 0x12, 0x00, -- 36=$
7
+ 0x00, 0x63, 0x33, 0x18, 0x0c, 0x66, 0x63, 0x00, -- 37=%
8
+ 0x00, 0x32, 0x7f, 0x4d, 0x4d, 0x77, 0x72, 0x50, -- 38=&
9
+ 0x00, 0x00, 0x00, 0x04, 0x06, 0x03, 0x01, 0x00, -- 39='
10
+ 0x00, 0x00, 0x1c, 0x3e, 0x63, 0x41, 0x00, 0x00, -- 40=(
11
+ 0x00, 0x00, 0x41, 0x63, 0x3e, 0x1c, 0x00, 0x00, -- 41=)
12
+ 0x08, 0x2a, 0x3e, 0x1c, 0x1c, 0x3e, 0x2a, 0x08, -- 42=*
13
+ 0x00, 0x08, 0x08, 0x3e, 0x3e, 0x08, 0x08, 0x00, -- 43=+
14
+ 0x00, 0x00, 0x80, 0xe0, 0x60, 0x00, 0x00, 0x00, -- 44=,
15
+ 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, -- 45=-
16
+ 0x00, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x00, -- 46=.
17
+ 0x00, 0x40, 0x60, 0x30, 0x18, 0x0c, 0x06, 0x02, -- 47=/
18
+ 0x00, 0x3e, 0x7f, 0x49, 0x45, 0x7f, 0x3e, 0x00, -- 48=0
19
+ 0x00, 0x40, 0x44, 0x7f, 0x7f, 0x40, 0x40, 0x00, -- 49=1
20
+ 0x00, 0x62, 0x73, 0x51, 0x49, 0x4f, 0x46, 0x00, -- 50=2
21
+ 0x00, 0x22, 0x63, 0x49, 0x49, 0x7f, 0x36, 0x00, -- 51=3
22
+ 0x00, 0x18, 0x18, 0x14, 0x16, 0x7f, 0x7f, 0x10, -- 52=4
23
+ 0x00, 0x27, 0x67, 0x45, 0x45, 0x7d, 0x39, 0x00, -- 53=5
24
+ 0x00, 0x3e, 0x7f, 0x49, 0x49, 0x7b, 0x32, 0x00, -- 54=6
25
+ 0x00, 0x03, 0x03, 0x79, 0x7d, 0x07, 0x03, 0x00, -- 55=7
26
+ 0x00, 0x36, 0x7f, 0x49, 0x49, 0x7f, 0x36, 0x00, -- 56=8
27
+ 0x00, 0x26, 0x6f, 0x49, 0x49, 0x7f, 0x3e, 0x00, -- 57=9
28
+ 0x00, 0x00, 0x00, 0x24, 0x24, 0x00, 0x00, 0x00, -- 58=:
29
+ 0x00, 0x00, 0x80, 0xe4, 0x64, 0x00, 0x00, 0x00, -- 59=;
30
+ 0x00, 0x08, 0x1c, 0x36, 0x63, 0x41, 0x41, 0x00, -- 60=<
31
+ 0x00, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, -- 61==
32
+ 0x00, 0x41, 0x41, 0x63, 0x36, 0x1c, 0x08, 0x00, -- 62=>
33
+ 0x00, 0x02, 0x03, 0x51, 0x59, 0x0f, 0x06, 0x00, -- 63=?
34
+ 0x00, 0x3e, 0x7f, 0x41, 0x4d, 0x4f, 0x2e, 0x00, -- 64=@
35
+ 0x00, 0x7c, 0x7e, 0x0b, 0x0b, 0x7e, 0x7c, 0x00, -- 65=A
36
+ 0x00, 0x7f, 0x7f, 0x49, 0x49, 0x7f, 0x36, 0x00, -- 66=B
37
+ 0x00, 0x3e, 0x7f, 0x41, 0x41, 0x63, 0x22, 0x00, -- 67=C
38
+ 0x00, 0x7f, 0x7f, 0x41, 0x63, 0x3e, 0x1c, 0x00, -- 68=D
39
+ 0x00, 0x7f, 0x7f, 0x49, 0x49, 0x41, 0x41, 0x00, -- 69=E
40
+ 0x00, 0x7f, 0x7f, 0x09, 0x09, 0x01, 0x01, 0x00, -- 70=F
41
+ 0x00, 0x3e, 0x7f, 0x41, 0x49, 0x7b, 0x3a, 0x00, -- 71=G
42
+ 0x00, 0x7f, 0x7f, 0x08, 0x08, 0x7f, 0x7f, 0x00, -- 72=H
43
+ 0x00, 0x00, 0x41, 0x7f, 0x7f, 0x41, 0x00, 0x00, -- 73=I
44
+ 0x00, 0x20, 0x60, 0x41, 0x7f, 0x3f, 0x01, 0x00, -- 74=J
45
+ 0x00, 0x7f, 0x7f, 0x1c, 0x36, 0x63, 0x41, 0x00, -- 75=K
46
+ 0x00, 0x7f, 0x7f, 0x40, 0x40, 0x40, 0x40, 0x00, -- 76=L
47
+ 0x00, 0x7f, 0x7f, 0x06, 0x0c, 0x06, 0x7f, 0x7f, -- 77=M
48
+ 0x00, 0x7f, 0x7f, 0x0e, 0x1c, 0x7f, 0x7f, 0x00, -- 78=N
49
+ 0x00, 0x3e, 0x7f, 0x41, 0x41, 0x7f, 0x3e, 0x00, -- 79=O
50
+ 0x00, 0x7f, 0x7f, 0x09, 0x09, 0x0f, 0x06, 0x00, -- 80=P
51
+ 0x00, 0x1e, 0x3f, 0x21, 0x61, 0x7f, 0x5e, 0x00, -- 81=Q
52
+ 0x00, 0x7f, 0x7f, 0x19, 0x39, 0x6f, 0x46, 0x00, -- 82=R
53
+ 0x00, 0x26, 0x6f, 0x49, 0x49, 0x7b, 0x32, 0x00, -- 83=S
54
+ 0x00, 0x01, 0x01, 0x7f, 0x7f, 0x01, 0x01, 0x00, -- 84=T
55
+ 0x00, 0x3f, 0x7f, 0x40, 0x40, 0x7f, 0x3f, 0x00, -- 85=U
56
+ 0x00, 0x1f, 0x3f, 0x60, 0x60, 0x3f, 0x1f, 0x00, -- 86=V
57
+ 0x00, 0x7f, 0x7f, 0x30, 0x18, 0x30, 0x7f, 0x7f, -- 87=W
58
+ 0x00, 0x63, 0x77, 0x1c, 0x1c, 0x77, 0x63, 0x00, -- 88=X
59
+ 0x00, 0x07, 0x0f, 0x78, 0x78, 0x0f, 0x07, 0x00, -- 89=Y
60
+ 0x00, 0x61, 0x71, 0x59, 0x4d, 0x47, 0x43, 0x00, -- 90=Z
61
+ 0x00, 0x00, 0x7f, 0x7f, 0x41, 0x41, 0x00, 0x00, -- 91=[
62
+ 0x00, 0x02, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x40, -- 92='\'
63
+ 0x00, 0x00, 0x41, 0x41, 0x7f, 0x7f, 0x00, 0x00, -- 93=]
64
+ 0x00, 0x08, 0x0c, 0x06, 0x06, 0x0c, 0x08, 0x00, -- 94=^
65
+ 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, -- 95=_
66
+ 0x00, 0x00, 0x01, 0x03, 0x06, 0x04, 0x00, 0x00, -- 96=`
67
+ 0x00, 0x20, 0x74, 0x54, 0x54, 0x7c, 0x78, 0x00, -- 97=a
68
+ 0x00, 0x7f, 0x7f, 0x44, 0x44, 0x7c, 0x38, 0x00, -- 98=b
69
+ 0x00, 0x38, 0x7c, 0x44, 0x44, 0x6c, 0x28, 0x00, -- 99=c
70
+ 0x00, 0x38, 0x7c, 0x44, 0x44, 0x7f, 0x7f, 0x00, -- 100=d
71
+ 0x00, 0x38, 0x7c, 0x54, 0x54, 0x5c, 0x58, 0x00, -- 101=e
72
+ 0x00, 0x08, 0x7e, 0x7f, 0x09, 0x03, 0x02, 0x00, -- 102=f
73
+ 0x00, 0x98, 0xbc, 0xa4, 0xa4, 0xfc, 0x7c, 0x00, -- 103=g
74
+ 0x00, 0x7f, 0x7f, 0x04, 0x04, 0x7c, 0x78, 0x00, -- 104=h
75
+ 0x00, 0x00, 0x00, 0x7d, 0x7d, 0x00, 0x00, 0x00, -- 105=i
76
+ 0x00, 0x40, 0xc0, 0x80, 0x80, 0xfd, 0x7d, 0x00, -- 106=j
77
+ 0x00, 0x7f, 0x7f, 0x30, 0x38, 0x6c, 0x44, 0x00, -- 107=k
78
+ 0x00, 0x00, 0x41, 0x7f, 0x7f, 0x40, 0x00, 0x00, -- 108=l
79
+ 0x00, 0x7c, 0x7c, 0x18, 0x30, 0x18, 0x7c, 0x7c, -- 109=m
80
+ 0x00, 0x7c, 0x7c, 0x04, 0x04, 0x7c, 0x78, 0x00, -- 110=n
81
+ 0x00, 0x38, 0x7c, 0x44, 0x44, 0x7c, 0x38, 0x00, -- 111=o
82
+ 0x00, 0xfc, 0xfc, 0x24, 0x24, 0x3c, 0x18, 0x00, -- 112=p
83
+ 0x00, 0x18, 0x3c, 0x24, 0x24, 0xfc, 0xfc, 0x00, -- 113=q
84
+ 0x00, 0x7c, 0x7c, 0x04, 0x04, 0x0c, 0x08, 0x00, -- 114=r
85
+ 0x00, 0x48, 0x5c, 0x54, 0x54, 0x74, 0x20, 0x00, -- 115=s
86
+ 0x04, 0x04, 0x3f, 0x7f, 0x44, 0x64, 0x20, 0x00, -- 116=t
87
+ 0x00, 0x3c, 0x7c, 0x40, 0x40, 0x7c, 0x3c, 0x00, -- 117=u
88
+ 0x00, 0x1c, 0x3c, 0x60, 0x60, 0x3c, 0x1c, 0x00, -- 118=v
89
+ 0x00, 0x1c, 0x7c, 0x30, 0x18, 0x30, 0x7c, 0x1c, -- 119=w
90
+ 0x00, 0x44, 0x6c, 0x38, 0x38, 0x6c, 0x44, 0x00, -- 120=x
91
+ 0x00, 0x9c, 0xbc, 0xa0, 0xa0, 0xfc, 0x7c, 0x00, -- 121=y
92
+ 0x00, 0x44, 0x64, 0x74, 0x5c, 0x4c, 0x44, 0x00, -- 122=z
93
+ 0x00, 0x08, 0x08, 0x3e, 0x77, 0x41, 0x41, 0x00, -- 123=(
94
+ 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, -- 124=|
95
+ 0x00, 0x41, 0x41, 0x77, 0x3e, 0x08, 0x08, 0x00, -- 125=)
96
+ 0x00, 0x02, 0x03, 0x01, 0x03, 0x02, 0x03, 0x01, -- 126=~
97
+ 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, -- 127
98
+ }
99
+
100
+
101
+ font_128_6x6 = {
102
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 32=
103
+ 0x00, 0x4f, 0x4f, 0x00, 0x00, 0x00, -- 33=!
104
+ 0x07, 0x00, 0x00, 0x07, 0x07, 0x00, -- 34="
105
+ 0x7f, 0x14, 0x14, 0x7f, 0x7f, 0x14, -- 35=#
106
+ 0x2e, 0x6b, 0x6b, 0x3a, 0x12, 0x00, -- 36=$
107
+ 0x33, 0x18, 0x0c, 0x66, 0x63, 0x00, -- 37=%
108
+ 0x7f, 0x4d, 0x4d, 0x77, 0x72, 0x50, -- 38=&
109
+ 0x00, 0x04, 0x06, 0x03, 0x01, 0x00, -- 39='
110
+ 0x1c, 0x3e, 0x63, 0x41, 0x00, 0x00, -- 40=(
111
+ 0x41, 0x63, 0x3e, 0x1c, 0x00, 0x00, -- 41=)
112
+ 0x3e, 0x1c, 0x1c, 0x3e, 0x2a, 0x08, -- 42=*
113
+ 0x08, 0x3e, 0x3e, 0x08, 0x08, 0x00, -- 43=+
114
+ 0x80, 0xe0, 0x60, 0x00, 0x00, 0x00, -- 44=,
115
+ 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, -- 45=-
116
+ 0x00, 0x60, 0x60, 0x00, 0x00, 0x00, -- 46=.
117
+ 0x60, 0x30, 0x18, 0x0c, 0x06, 0x02, -- 47=/
118
+
119
+ 0x3f, 0x21, 0x21, 0x21, 0x3f, 0x00, -- 48=0
120
+ 0x00, 0x01, 0x3f, 0x00, 0x00, 0x00, -- 49=1
121
+ 0x33, 0x31, 0x29, 0x25, 0x33, 0x00, -- 50=2
122
+ 0x33, 0x21, 0x25, 0x25, 0x3b, 0x00, -- 51=3
123
+ 0x1f, 0x10, 0x10, 0x10, 0x3f, 0x00, -- 52=4
124
+ --0x18, 0x14, 0x12, 0x3f, 0x10, 0x00, -- 52=4
125
+ --0x27, 0x25, 0x25, 0x25, 0x1d, 0x00, -- 53=5
126
+ 0x27, 0x25, 0x25, 0x25, 0x3d, 0x00, -- 53=5
127
+ --0x1e, 0x25, 0x25, 0x25, 0x19, 0x00, -- 54=6
128
+ 0x3c, 0x2a, 0x29, 0x29, 0x38, 0x00, -- 54=6
129
+ 0x03, 0x01, 0x31, 0x0d, 0x03, 0x00, -- 55=7
130
+ 0x3b, 0x25, 0x25, 0x25, 0x3b, 0x00, -- 56=8
131
+ 0x07, 0x25, 0x25, 0x15, 0x0f, 0x00, -- 57=9
132
+
133
+ 0x00, 0x24, 0x24, 0x00, 0x00, 0x00, -- 58=:
134
+ 0x80, 0xe4, 0x64, 0x00, 0x00, 0x00, -- 59=;
135
+ 0x1c, 0x36, 0x63, 0x41, 0x41, 0x00, -- 60=<
136
+ 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, -- 61==
137
+ 0x41, 0x63, 0x36, 0x1c, 0x08, 0x00, -- 62=>
138
+ 0x03, 0x51, 0x59, 0x0f, 0x06, 0x00, -- 63=?
139
+ 0x7f, 0x41, 0x4d, 0x4f, 0x2e, 0x00, -- 64=@
140
+ 0x7e, 0x0b, 0x0b, 0x7e, 0x7c, 0x00, -- 65=A
141
+ 0x7f, 0x49, 0x49, 0x7f, 0x36, 0x00, -- 66=B
142
+ 0x7f, 0x41, 0x41, 0x63, 0x22, 0x00, -- 67=C
143
+ 0x7f, 0x41, 0x63, 0x3e, 0x1c, 0x00, -- 68=D
144
+ 0x7f, 0x49, 0x49, 0x41, 0x41, 0x00, -- 69=E
145
+ 0x7f, 0x09, 0x09, 0x01, 0x01, 0x00, -- 70=F
146
+ 0x7f, 0x41, 0x49, 0x7b, 0x3a, 0x00, -- 71=G
147
+ 0x7f, 0x08, 0x08, 0x7f, 0x7f, 0x00, -- 72=H
148
+ 0x41, 0x7f, 0x7f, 0x41, 0x00, 0x00, -- 73=I
149
+ 0x60, 0x41, 0x7f, 0x3f, 0x01, 0x00, -- 74=J
150
+ 0x7f, 0x1c, 0x36, 0x63, 0x41, 0x00, -- 75=K
151
+ 0x7f, 0x40, 0x40, 0x40, 0x40, 0x00, -- 76=L
152
+ 0x7f, 0x06, 0x0c, 0x06, 0x7f, 0x7f, -- 77=M
153
+ 0x7f, 0x0e, 0x1c, 0x7f, 0x7f, 0x00, -- 78=N
154
+ 0x7f, 0x41, 0x41, 0x7f, 0x3e, 0x00, -- 79=O
155
+ 0x7f, 0x09, 0x09, 0x0f, 0x06, 0x00, -- 80=P
156
+ 0x3f, 0x21, 0x61, 0x7f, 0x5e, 0x00, -- 81=Q
157
+ 0x7f, 0x19, 0x39, 0x6f, 0x46, 0x00, -- 82=R
158
+ 0x6f, 0x49, 0x49, 0x7b, 0x32, 0x00, -- 83=S
159
+ 0x01, 0x7f, 0x7f, 0x01, 0x01, 0x00, -- 84=T
160
+ 0x7f, 0x40, 0x40, 0x7f, 0x3f, 0x00, -- 85=U
161
+ 0x3f, 0x60, 0x60, 0x3f, 0x1f, 0x00, -- 86=V
162
+ 0x7f, 0x30, 0x18, 0x30, 0x7f, 0x7f, -- 87=W
163
+ 0x77, 0x1c, 0x1c, 0x77, 0x63, 0x00, -- 88=X
164
+ 0x0f, 0x78, 0x78, 0x0f, 0x07, 0x00, -- 89=Y
165
+ 0x71, 0x59, 0x4d, 0x47, 0x43, 0x00, -- 90=Z
166
+ 0x7f, 0x7f, 0x41, 0x41, 0x00, 0x00, -- 91=[
167
+ 0x06, 0x0c, 0x18, 0x30, 0x60, 0x40, -- 92='\'
168
+ 0x41, 0x41, 0x7f, 0x7f, 0x00, 0x00, -- 93=]
169
+ 0x0c, 0x06, 0x06, 0x0c, 0x08, 0x00, -- 94=^
170
+ 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, -- 95=_
171
+ 0x01, 0x03, 0x06, 0x04, 0x00, 0x00, -- 96=`
172
+ 0x74, 0x54, 0x54, 0x7c, 0x78, 0x00, -- 97=a
173
+ 0x7f, 0x44, 0x44, 0x7c, 0x38, 0x00, -- 98=b
174
+ 0x7c, 0x44, 0x44, 0x6c, 0x28, 0x00, -- 99=c
175
+ 0x7c, 0x44, 0x44, 0x7f, 0x7f, 0x00, -- 100=d
176
+ 0x7c, 0x54, 0x54, 0x5c, 0x58, 0x00, -- 101=e
177
+ 0x7e, 0x7f, 0x09, 0x03, 0x02, 0x00, -- 102=f
178
+ 0xbc, 0xa4, 0xa4, 0xfc, 0x7c, 0x00, -- 103=g
179
+ 0x7f, 0x04, 0x04, 0x7c, 0x78, 0x00, -- 104=h
180
+ 0x00, 0x7d, 0x7d, 0x00, 0x00, 0x00, -- 105=i
181
+ 0xc0, 0x80, 0x80, 0xfd, 0x7d, 0x00, -- 106=j
182
+ 0x7f, 0x30, 0x38, 0x6c, 0x44, 0x00, -- 107=k
183
+ 0x41, 0x7f, 0x7f, 0x40, 0x00, 0x00, -- 108=l
184
+ 0x7c, 0x18, 0x30, 0x18, 0x7c, 0x7c, -- 109=m
185
+ 0x7c, 0x04, 0x04, 0x7c, 0x78, 0x00, -- 110=n
186
+ 0x7c, 0x44, 0x44, 0x7c, 0x38, 0x00, -- 111=o
187
+ 0xfc, 0x24, 0x24, 0x3c, 0x18, 0x00, -- 112=p
188
+ 0x3c, 0x24, 0x24, 0xfc, 0xfc, 0x00, -- 113=q
189
+ 0x7c, 0x04, 0x04, 0x0c, 0x08, 0x00, -- 114=r
190
+ 0x5c, 0x54, 0x54, 0x74, 0x20, 0x00, -- 115=s
191
+ 0x3f, 0x7f, 0x44, 0x64, 0x20, 0x00, -- 116=t
192
+ 0x7c, 0x40, 0x40, 0x7c, 0x3c, 0x00, -- 117=u
193
+ 0x3c, 0x60, 0x60, 0x3c, 0x1c, 0x00, -- 118=v
194
+ 0x7c, 0x30, 0x18, 0x30, 0x7c, 0x1c, -- 119=w
195
+ 0x6c, 0x38, 0x38, 0x6c, 0x44, 0x00, -- 120=x
196
+ 0xbc, 0xa0, 0xa0, 0xfc, 0x7c, 0x00, -- 121=y
197
+ 0x64, 0x74, 0x5c, 0x4c, 0x44, 0x00, -- 122=z
198
+ 0x08, 0x3e, 0x77, 0x41, 0x41, 0x00, -- 123=(
199
+ 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, -- 124=|
200
+ 0x41, 0x77, 0x3e, 0x08, 0x08, 0x00, -- 125=)
201
+ 0x03, 0x01, 0x03, 0x02, 0x03, 0x01, -- 126=~
202
+ 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, -- 127
203
+ }