phpBB
Statistics
| Revision:

root / branches / phpBB-3_0_0 / phpBB / includes / captcha / captcha_gd.php

History | View | Annotate | Download (70.3 kB)

1 5862 davidmj
<?php
2 8147 acydburn
/**
3 5862 davidmj
*
4 5862 davidmj
* @package VC
5 5862 davidmj
* @version $Id$
6 8147 acydburn
* @copyright (c) 2006 phpBB Group
7 8147 acydburn
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
8 5862 davidmj
*
9 5862 davidmj
*/
10 5862 davidmj
11 8147 acydburn
/**
12 8147 acydburn
* @ignore
13 8147 acydburn
*/
14 8147 acydburn
if (!defined('IN_PHPBB'))
15 8147 acydburn
{
16 8147 acydburn
        exit;
17 8147 acydburn
}
18 7478 kellanved
19 6304 acydburn
/**
20 7478 kellanved
* Original Author - Xore (Robert Hetzler)
21 7478 kellanved
* With contributions from Neothermic
22 6304 acydburn
*
23 6058 acydburn
* @package VC
24 5862 davidmj
*/
25 5862 davidmj
class captcha
26 5862 davidmj
{
27 6584 acydburn
        var $width = 360;
28 6584 acydburn
        var $height = 96;
29 6584 acydburn
30 9283 Kellanved
31 7478 kellanved
        /**
32 7478 kellanved
        * Create the image containing $code with a seed of $seed
33 7478 kellanved
        */
34 6705 davidmj
        function execute($code, $seed)
35 5862 davidmj
        {
36 5862 davidmj
                global $config;
37 9581 Kellanved
38 9609 Kellanved
                mt_srand($seed);
39 5862 davidmj
40 7478 kellanved
                // Create image
41 7478 kellanved
                $img = imagecreatetruecolor($this->width, $this->height);
42 5862 davidmj
43 7478 kellanved
                // Generate colours
44 7478 kellanved
                $colour = new colour_manager($img, array(
45 7478 kellanved
                        'random'        => true,
46 7478 kellanved
                        'min_value'        => 60,
47 7478 kellanved
                ), 'hsv');
48 7478 kellanved
49 7478 kellanved
                $scheme = $colour->colour_scheme('background', false);
50 7478 kellanved
                $scheme = $colour->mono_range($scheme, 10, false);
51 7478 kellanved
                shuffle($scheme);
52 8147 acydburn
53 7478 kellanved
                $bg_colours = array_splice($scheme, mt_rand(6, 12));
54 7478 kellanved
55 7478 kellanved
                // Generate code characters
56 9320 Kellanved
                $characters = $sizes = $bounding_boxes = $noise = array();
57 7486 kellanved
                $width_avail = $this->width - 15;
58 7478 kellanved
                $code_len = strlen($code);
59 9403 Kellanved
                $captcha_bitmaps = $this->captcha_bitmaps();
60 7478 kellanved
61 7478 kellanved
                for ($i = 0; $i < $code_len; ++$i)
62 5862 davidmj
                {
63 7478 kellanved
                        $characters[$i] = new char_cube3d($captcha_bitmaps, $code[$i]);
64 7478 kellanved
65 7478 kellanved
                        list($min, $max) = $characters[$i]->range();
66 7478 kellanved
                        $sizes[$i] = mt_rand($min, $max);
67 7478 kellanved
68 7478 kellanved
                        $box = $characters[$i]->dimensions($sizes[$i]);
69 7478 kellanved
                        $width_avail -= ($box[2] - $box[0]);
70 7478 kellanved
                        $bounding_boxes[$i] = $box;
71 5862 davidmj
                }
72 7478 kellanved
73 9320 Kellanved
74 7478 kellanved
                // Redistribute leftover x-space
75 7478 kellanved
                $offset = array();
76 7478 kellanved
                for ($i = 0; $i < $code_len; ++$i)
77 5862 davidmj
                {
78 7478 kellanved
                        $denom = ($code_len - $i);
79 7478 kellanved
                        $denom = max(1.3, $denom);
80 11175 git-gate
                        $offset[$i] = phpbb_mt_rand(0, (int) round((1.5 * $width_avail) / $denom));
81 7478 kellanved
                        $width_avail -= $offset[$i];
82 5862 davidmj
                }
83 5862 davidmj
84 7478 kellanved
                if ($config['captcha_gd_x_grid'])
85 7478 kellanved
                {
86 7478 kellanved
                        $grid = (int) $config['captcha_gd_x_grid'];
87 7478 kellanved
                        for ($y = 0; $y < $this->height; $y += mt_rand($grid - 2, $grid + 2))
88 7478 kellanved
                        {
89 7478 kellanved
                                $current_colour = $scheme[array_rand($scheme)];
90 7478 kellanved
                                imageline($img, mt_rand(0,4), mt_rand($y - 3, $y), mt_rand($this->width - 5, $this->width), mt_rand($y - 3, $y), $current_colour);
91 7478 kellanved
                        }
92 7478 kellanved
                }
93 5862 davidmj
94 7478 kellanved
                if ($config['captcha_gd_y_grid'])
95 5862 davidmj
                {
96 7478 kellanved
                        $grid = (int) $config['captcha_gd_y_grid'];
97 7478 kellanved
                        for ($x = 0; $x < $this->width; $x += mt_rand($grid - 2, $grid + 2))
98 7478 kellanved
                        {
99 7478 kellanved
                                $current_colour = $scheme[array_rand($scheme)];
100 7478 kellanved
                                imagedashedline($img, mt_rand($x -3, $x + 3), mt_rand(0, 4), mt_rand($x -3, $x + 3), mt_rand($this->height - 5, $this->height), $current_colour);
101 7478 kellanved
                        }
102 5862 davidmj
                }
103 9403 Kellanved
                if ($config['captcha_gd_wave'] && ($config['captcha_gd_y_grid'] || $config['captcha_gd_y_grid']))
104 7478 kellanved
                {
105 9403 Kellanved
                        $this->wave($img);
106 7478 kellanved
                }
107 9403 Kellanved
108 9403 Kellanved
109 9320 Kellanved
                if ($config['captcha_gd_3d_noise'])
110 9320 Kellanved
                {
111 9609 Kellanved
                        $xoffset = mt_rand(0,9);
112 9403 Kellanved
                        $noise_bitmaps = $this->captcha_noise_bg_bitmaps();
113 9320 Kellanved
                        for ($i = 0; $i < $code_len; ++$i)
114 9320 Kellanved
                        {
115 11088 git-gate
                                $noise[$i] = new char_cube3d($noise_bitmaps, mt_rand(1, sizeof($noise_bitmaps['data'])));
116 9320 Kellanved
117 9320 Kellanved
                                list($min, $max) = $noise[$i]->range();
118 9320 Kellanved
                                //$box = $noise[$i]->dimensions($sizes[$i]);
119 9320 Kellanved
                        }
120 9320 Kellanved
                        $xoffset = 0;
121 9320 Kellanved
                        for ($i = 0; $i < $code_len; ++$i)
122 9320 Kellanved
                        {
123 9320 Kellanved
                                $dimm = $bounding_boxes[$i];
124 9320 Kellanved
                                $xoffset += ($offset[$i] - $dimm[0]);
125 9320 Kellanved
                                $yoffset = mt_rand(-$dimm[1], $this->height - $dimm[3]);
126 9320 Kellanved
127 9320 Kellanved
                                $noise[$i]->drawchar($sizes[$i], $xoffset, $yoffset, $img, $colour->get_resource('background'), $scheme);
128 9320 Kellanved
                                $xoffset += $dimm[2];
129 9320 Kellanved
                        }
130 9320 Kellanved
                }
131 9403 Kellanved
                $xoffset = 5;
132 9403 Kellanved
                for ($i = 0; $i < $code_len; ++$i)
133 9403 Kellanved
                {
134 9403 Kellanved
                        $dimm = $bounding_boxes[$i];
135 9403 Kellanved
                        $xoffset += ($offset[$i] - $dimm[0]);
136 9403 Kellanved
                        $yoffset = mt_rand(-$dimm[1], $this->height - $dimm[3]);
137 9403 Kellanved
138 9403 Kellanved
                        $characters[$i]->drawchar($sizes[$i], $xoffset, $yoffset, $img, $colour->get_resource('background'), $scheme);
139 9403 Kellanved
                        $xoffset += $dimm[2];
140 9403 Kellanved
                }
141 9283 Kellanved
                if ($config['captcha_gd_wave'])
142 9283 Kellanved
                {
143 9283 Kellanved
                        $this->wave($img);
144 9283 Kellanved
                }
145 7478 kellanved
                if ($config['captcha_gd_foreground_noise'])
146 7478 kellanved
                {
147 7478 kellanved
                        $this->noise_line($img, 0, 0, $this->width, $this->height, $colour->get_resource('background'), $scheme, $bg_colours);
148 7478 kellanved
                }
149 7478 kellanved
                // Send image
150 7478 kellanved
                header('Content-Type: image/png');
151 7478 kellanved
                header('Cache-control: no-cache, no-store');
152 7478 kellanved
                imagepng($img);
153 7478 kellanved
                imagedestroy($img);
154 7478 kellanved
        }
155 7478 kellanved
156 7478 kellanved
        /**
157 9283 Kellanved
        * Sinus
158 9283 Kellanved
        */
159 9283 Kellanved
        function wave($img)
160 9283 Kellanved
        {
161 9283 Kellanved
                global $config;
162 9283 Kellanved
163 9403 Kellanved
                $period_x = mt_rand(12,18);
164 9403 Kellanved
                $period_y = mt_rand(7,14);
165 9283 Kellanved
                $amp_x = mt_rand(5,10);
166 9283 Kellanved
                $amp_y = mt_rand(2,4);
167 9283 Kellanved
                $socket = mt_rand(0,100);
168 9283 Kellanved
169 9283 Kellanved
                $dampen_x = mt_rand($this->width/5, $this->width/2);
170 9283 Kellanved
                $dampen_y = mt_rand($this->height/5, $this->height/2);
171 9283 Kellanved
                $direction_x = (mt_rand (0, 1));
172 9283 Kellanved
                $direction_y = (mt_rand (0, 1));
173 9283 Kellanved
174 9283 Kellanved
                for ($i = 0; $i < $this->width; $i++)
175 9283 Kellanved
                {
176 9283 Kellanved
                        $dir = ($direction_x) ? $i : ($this->width - $i);
177 9283 Kellanved
                        imagecopy($img, $img, $i-1, sin($socket+ $i/($period_x + $dir/$dampen_x)) * $amp_x, $i, 0, 1, $this->height);
178 9283 Kellanved
                }
179 9283 Kellanved
                $socket = mt_rand(0,100);
180 9283 Kellanved
                for ($i = 0; $i < $this->height; $i++)
181 9283 Kellanved
                {
182 9283 Kellanved
                        $dir = ($direction_y) ? $i : ($this->height - $i);
183 9283 Kellanved
                        imagecopy($img, $img ,sin($socket + $i/($period_y + ($dir)/$dampen_y)) * $amp_y, $i-1, 0, $i, $this->width, 1);
184 9283 Kellanved
                }
185 9283 Kellanved
                return $img;
186 9283 Kellanved
        }
187 9283 Kellanved
188 9283 Kellanved
        /**
189 7478 kellanved
        * Noise line
190 7478 kellanved
        */
191 7478 kellanved
        function noise_line($img, $min_x, $min_y, $max_x, $max_y, $bg, $font, $non_font)
192 7478 kellanved
        {
193 7478 kellanved
                imagesetthickness($img, 2);
194 7478 kellanved
195 7478 kellanved
                $x1 = $min_x;
196 7478 kellanved
                $x2 = $max_x;
197 7478 kellanved
                $y1 = $min_y;
198 7478 kellanved
                $y2 = $min_y;
199 7478 kellanved
200 7478 kellanved
                do
201 5862 davidmj
                {
202 7478 kellanved
                        $line = array_merge(
203 7478 kellanved
                                array_fill(0, mt_rand(30, 60), $non_font[array_rand($non_font)]),
204 7478 kellanved
                                array_fill(0, mt_rand(30, 60), $bg)
205 7478 kellanved
                        );
206 7478 kellanved
207 7478 kellanved
                        imagesetstyle($img, $line);
208 7478 kellanved
                        imageline($img, $x1, $y1, $x2, $y2, IMG_COLOR_STYLED);
209 7478 kellanved
210 7478 kellanved
                        $y1 += mt_rand(12, 35);
211 7478 kellanved
                        $y2 += mt_rand(12, 35);
212 7478 kellanved
                }
213 7478 kellanved
                while ($y1 < $max_y && $y2 < $max_y);
214 7478 kellanved
215 7478 kellanved
                $x1 = $min_x;
216 7478 kellanved
                $x2 = $min_x;
217 7478 kellanved
                $y1 = $min_y;
218 7478 kellanved
                $y2 = $max_y;
219 7478 kellanved
220 7478 kellanved
                do
221 7478 kellanved
                {
222 7478 kellanved
                        $line = array_merge(
223 7478 kellanved
                                array_fill(0, mt_rand(30, 60), $non_font[array_rand($non_font)]),
224 7478 kellanved
                                array_fill(0, mt_rand(30, 60), $bg)
225 7478 kellanved
                        );
226 7478 kellanved
227 7478 kellanved
                        imagesetstyle($img, $line);
228 7478 kellanved
                        imageline($img, $x1, $y1, $x2, $y2, IMG_COLOR_STYLED);
229 7478 kellanved
230 7486 kellanved
                        $x1 += mt_rand(20, 35);
231 7486 kellanved
                        $x2 += mt_rand(20, 35);
232 7478 kellanved
                }
233 7478 kellanved
                while ($x1 < $max_x && $x2 < $max_x);
234 7478 kellanved
                imagesetthickness($img, 1);
235 7478 kellanved
        }
236 7478 kellanved
237 9320 Kellanved
238 9403 Kellanved
        function captcha_noise_bg_bitmaps()
239 9403 Kellanved
        {
240 9320 Kellanved
                return array(
241 9323 Kellanved
                        'width'                => 15,
242 9320 Kellanved
                        'height'        => 5,
243 9320 Kellanved
                        'data'                => array(
244 9320 Kellanved
245 9320 Kellanved
                        1 => array(
246 9323 Kellanved
                                array(1,0,0,0,1,0,0,0,0,0,0,0,0,0,0),
247 9323 Kellanved
                                array(1,0,0,0,0,1,0,0,0,0,0,0,0,0,0),
248 9403 Kellanved
                                array(1,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
249 9403 Kellanved
                                array(1,0,0,0,0,1,0,0,0,0,0,0,1,0,0),
250 9403 Kellanved
                                array(1,0,0,0,0,0,1,0,0,0,0,1,0,0,0),
251 9320 Kellanved
                        ),
252 9320 Kellanved
                        2 => array(
253 9403 Kellanved
                                array(1,1,mt_rand(0,1),1,0,1,1,1,1,0,0,0,0,0,0),
254 9323 Kellanved
                                array(0,0,0,0,0,0,0,1,0,0,0,0,0,0,0),
255 9323 Kellanved
                                array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
256 9323 Kellanved
                                array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
257 9403 Kellanved
                                array(0,0,0,0,0,0,0,0,0,1,1,0,1,1,1),
258 9320 Kellanved
                        ),
259 9320 Kellanved
                        3 => array(
260 9323 Kellanved
                                array(1,0,0,0,0,0,0,0,0,0,0,0,0,0,1),
261 9323 Kellanved
                                array(1,0,0,0,0,0,0,0,0,0,0,0,0,1,0),
262 9403 Kellanved
                                array(0,0,0,0,1,0,0,0,0,0,0,0,0,0,1),
263 9323 Kellanved
                                array(1,0,0,0,0,0,0,0,0,0,0,0,0,1,0),
264 9323 Kellanved
                                array(1,0,0,0,0,0,0,0,0,0,0,0,0,0,1),
265 9320 Kellanved
                        ),
266 9320 Kellanved
                        4 => array(
267 9323 Kellanved
                                array(1,0,1,0,1,0,0,1,1,0,0,0,0,0,0),
268 9323 Kellanved
                                array(0,0,0,0,0,0,0,1,0,0,0,0,0,0,0),
269 9323 Kellanved
                                array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
270 9323 Kellanved
                                array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
271 9323 Kellanved
                                array(1,0,1,0,0,0,0,0,0,0,0,0,0,0,0),
272 9320 Kellanved
                        ),
273 9323 Kellanved
                        5 => array(
274 9403 Kellanved
                                array(1,1,1,1,0,0,0,1,1,1,0,0,1,0,1),
275 9323 Kellanved
                                array(0,0,0,0,0,0,0,1,0,0,0,0,0,0,0),
276 9323 Kellanved
                                array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
277 9323 Kellanved
                                array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
278 9323 Kellanved
                                array(1,0,1,0,0,0,0,0,0,0,0,0,0,0,0),
279 9323 Kellanved
                        ),
280 9323 Kellanved
                        6 => array(
281 9403 Kellanved
                                array(mt_rand(0,1),mt_rand(0,1),mt_rand(0,1),mt_rand(0,1),mt_rand(0,1),0,mt_rand(0,1),mt_rand(0,1),mt_rand(0,1),mt_rand(0,1),mt_rand(0,1),0,mt_rand(0,1),mt_rand(0,1),mt_rand(0,1)),
282 9323 Kellanved
                                array(0,0,0,0,0,0,0,mt_rand(0,1),0,0,0,0,0,0,0),
283 9323 Kellanved
                                array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
284 9323 Kellanved
                                array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
285 9323 Kellanved
                                array(mt_rand(0,1),0,mt_rand(0,1),0,0,0,0,0,0,0,0,0,0,0,0),
286 9323 Kellanved
                        ),
287 9403 Kellanved
                        7 => array(
288 9403 Kellanved
                                array(0,0,0,0,0,0,0,0,0,0,1,1,0,1,1),
289 9403 Kellanved
                                array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
290 9403 Kellanved
                                array(0,0,1,1,0,0,0,1,0,0,0,0,0,0,0),
291 9403 Kellanved
                                array(0,1,0,0,0,1,0,0,0,0,0,0,0,0,0),
292 9403 Kellanved
                                array(1,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
293 9403 Kellanved
                        ),
294 9323 Kellanved
                ));
295 9320 Kellanved
        }
296 9320 Kellanved
297 7478 kellanved
        /**
298 7478 kellanved
        * Return bitmaps
299 7478 kellanved
        */
300 7478 kellanved
        function captcha_bitmaps()
301 7478 kellanved
        {
302 9403 Kellanved
                global $config;
303 9403 Kellanved
304 9403 Kellanved
                $chars = array(
305 9403 Kellanved
                        'A'        =>        array(
306 9403 Kellanved
                                                array(
307 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
308 9403 Kellanved
                                                        array(0,0,0,1,0,1,0,0,0),
309 9403 Kellanved
                                                        array(0,0,0,1,0,1,0,0,0),
310 9403 Kellanved
                                                        array(0,0,0,1,0,1,0,0,0),
311 9403 Kellanved
                                                        array(0,0,1,0,0,0,1,0,0),
312 9403 Kellanved
                                                        array(0,0,1,0,0,0,1,0,0),
313 9403 Kellanved
                                                        array(0,0,1,0,0,0,1,0,0),
314 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
315 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
316 9403 Kellanved
                                                        array(0,1,1,1,1,1,1,1,0),
317 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
318 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
319 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
320 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
321 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
322 9403 Kellanved
                                                ),
323 9403 Kellanved
                                                array(
324 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
325 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
326 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
327 9403 Kellanved
                                                        array(0,0,0,1,0,1,0,0,0),
328 9403 Kellanved
                                                        array(0,0,1,1,0,1,1,0,0),
329 9403 Kellanved
                                                        array(0,0,1,0,0,0,1,0,0),
330 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
331 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
332 9403 Kellanved
                                                        array(0,1,1,1,1,1,1,1,0),
333 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
334 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
335 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
336 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
337 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
338 9403 Kellanved
                                                        array(1,1,1,0,0,0,1,1,1),
339 9403 Kellanved
                                                ),
340 9403 Kellanved
                                                array(
341 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
342 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
343 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
344 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
345 9403 Kellanved
                                                        array(0,0,1,1,1,1,1,0,0),
346 9403 Kellanved
                                                        array(0,1,1,0,0,0,1,1,0),
347 9403 Kellanved
                                                        array(1,1,0,0,0,0,0,1,1),
348 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
349 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,1,1),
350 9403 Kellanved
                                                        array(0,0,0,0,0,1,1,1,1),
351 9403 Kellanved
                                                        array(0,0,0,1,1,1,0,0,1),
352 9403 Kellanved
                                                        array(0,1,1,1,0,0,0,0,1),
353 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
354 9403 Kellanved
                                                        array(1,1,0,0,0,0,1,1,1),
355 9403 Kellanved
                                                        array(0,1,1,1,1,1,1,0,1),
356 9403 Kellanved
                                                ),
357 9403 Kellanved
                                        ),
358 9403 Kellanved
                'B'        =>                array(
359 9403 Kellanved
                                                array(
360 9403 Kellanved
                                                        array(1,1,1,1,1,1,1,0,0),
361 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,1,0),
362 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
363 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
364 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
365 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
366 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,1,0),
367 9403 Kellanved
                                                        array(1,1,1,1,1,1,1,0,0),
368 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,1,0),
369 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
370 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
371 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
372 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
373 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,1,0),
374 9403 Kellanved
                                                        array(1,1,1,1,1,1,1,0,0),
375 9403 Kellanved
                                                ),
376 9403 Kellanved
                                                array(
377 9403 Kellanved
                                                        array(1,1,1,1,1,1,1,0,0),
378 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
379 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,1),
380 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,1),
381 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,1),
382 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,1),
383 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
384 9403 Kellanved
                                                        array(0,1,1,1,1,1,1,0,0),
385 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
386 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,1),
387 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,1),
388 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,1),
389 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,1),
390 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
391 9403 Kellanved
                                                        array(1,1,1,1,1,1,1,0,0),
392 9403 Kellanved
                                                ),
393 9403 Kellanved
                                                array(
394 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
395 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
396 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
397 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
398 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
399 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
400 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
401 9403 Kellanved
                                                        array(0,1,1,1,1,1,1,0,0),
402 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
403 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,1),
404 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,1),
405 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,1),
406 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,1),
407 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
408 9403 Kellanved
                                                        array(0,1,1,1,1,1,1,0,0),
409 9403 Kellanved
                                                ),
410 9403 Kellanved
                                        ),
411 9403 Kellanved
                'C'        =>                array(
412 9403 Kellanved
                                                array(
413 9403 Kellanved
                                                        array(0,0,1,1,1,1,1,0,0),
414 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
415 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
416 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
417 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
418 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
419 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
420 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
421 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
422 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
423 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
424 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
425 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
426 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
427 9403 Kellanved
                                                        array(0,0,1,1,1,1,1,0,0),
428 9403 Kellanved
                                                ),
429 9403 Kellanved
                                                array(
430 9403 Kellanved
                                                        array(0,0,1,1,1,1,1,0,1),
431 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,1),
432 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
433 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
434 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
435 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
436 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
437 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
438 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
439 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
440 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
441 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
442 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
443 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,1),
444 9403 Kellanved
                                                        array(0,0,1,1,1,1,1,0,1),
445 9403 Kellanved
                                                ),
446 9403 Kellanved
                                        ),
447 9403 Kellanved
                'D'        =>                array(
448 9403 Kellanved
                                                array(
449 9403 Kellanved
                                                        array(1,1,1,1,1,1,1,0,0),
450 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,1,0),
451 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
452 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
453 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
454 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
455 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
456 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
457 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
458 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
459 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
460 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
461 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
462 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,1,0),
463 9403 Kellanved
                                                        array(1,1,1,1,1,1,1,0,0),
464 9403 Kellanved
                                                ),
465 9403 Kellanved
                                                array(
466 9403 Kellanved
                                                        array(1,1,1,1,1,1,1,0,0),
467 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
468 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,1),
469 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,1),
470 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,1),
471 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,1),
472 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,1),
473 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,1),
474 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,1),
475 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,1),
476 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,1),
477 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,1),
478 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,1),
479 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
480 9403 Kellanved
                                                        array(1,1,1,1,1,1,1,0,0),
481 9403 Kellanved
                                                ),
482 9403 Kellanved
                                                array(
483 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,1),
484 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,1),
485 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,1),
486 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,1),
487 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,1),
488 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,1),
489 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,1),
490 9403 Kellanved
                                                        array(0,0,1,1,1,1,1,0,1),
491 9403 Kellanved
                                                        array(0,1,1,0,0,0,1,1,1),
492 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,1),
493 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,1),
494 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,1),
495 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,1),
496 9403 Kellanved
                                                        array(0,1,1,0,0,0,1,1,1),
497 9403 Kellanved
                                                        array(0,0,1,1,1,1,1,0,1),
498 9403 Kellanved
                                                ),
499 9403 Kellanved
                                        ),
500 9403 Kellanved
                'E'        =>                array(
501 9403 Kellanved
                                                array(
502 9403 Kellanved
                                                        array(1,1,1,1,1,1,1,1,1),
503 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
504 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
505 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
506 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
507 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
508 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
509 9403 Kellanved
                                                        array(1,1,1,1,1,1,1,1,0),
510 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
511 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
512 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
513 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
514 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
515 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
516 9403 Kellanved
                                                        array(1,1,1,1,1,1,1,1,1),
517 9403 Kellanved
                                                ),
518 9403 Kellanved
                                                array(
519 9403 Kellanved
                                                        array(1,1,1,1,1,1,1,1,1),
520 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
521 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
522 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
523 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
524 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
525 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
526 9403 Kellanved
                                                        array(1,1,1,1,1,1,1,0,0),
527 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
528 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
529 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
530 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
531 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
532 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
533 9403 Kellanved
                                                        array(1,1,1,1,1,1,1,1,1),
534 9403 Kellanved
                                                ),
535 9403 Kellanved
                                                array(
536 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
537 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
538 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
539 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
540 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
541 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
542 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
543 9403 Kellanved
                                                        array(0,0,1,1,1,1,1,0,0),
544 9403 Kellanved
                                                        array(0,1,1,0,0,0,1,1,0),
545 9403 Kellanved
                                                        array(1,1,0,0,0,0,0,1,1),
546 9403 Kellanved
                                                        array(1,1,1,1,1,1,1,1,1),
547 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
548 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
549 9403 Kellanved
                                                        array(1,1,0,0,0,0,0,1,1),
550 9403 Kellanved
                                                        array(0,1,1,1,1,1,1,1,0),
551 9403 Kellanved
                                                ),
552 9403 Kellanved
                                        ),
553 9403 Kellanved
                'F'        =>                array(
554 9403 Kellanved
                                                array(
555 9403 Kellanved
                                                        array(1,1,1,1,1,1,1,1,1),
556 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
557 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
558 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
559 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
560 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
561 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
562 9403 Kellanved
                                                        array(1,1,1,1,1,1,1,0,0),
563 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
564 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
565 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
566 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
567 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
568 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
569 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
570 9403 Kellanved
                                                ),
571 9403 Kellanved
                                                array(
572 9403 Kellanved
                                                        array(0,1,1,1,1,1,1,1,1),
573 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,1),
574 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
575 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
576 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
577 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
578 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
579 9403 Kellanved
                                                        array(0,1,1,1,1,1,1,0,0),
580 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
581 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
582 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
583 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
584 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
585 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
586 9403 Kellanved
                                                        array(1,1,1,0,0,0,0,0,0),
587 9403 Kellanved
                                                ),
588 9403 Kellanved
                                                array(
589 9403 Kellanved
                                                        array(0,0,0,1,1,0,0,0,0),
590 9403 Kellanved
                                                        array(0,0,1,1,0,0,0,0,0),
591 9403 Kellanved
                                                        array(0,1,1,0,0,0,0,0,0),
592 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
593 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
594 9403 Kellanved
                                                        array(1,1,1,1,0,0,0,0,0),
595 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
596 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
597 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
598 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
599 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
600 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
601 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
602 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
603 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
604 9403 Kellanved
                                                ),
605 9403 Kellanved
                                        ),
606 9403 Kellanved
                'G'        =>                array(
607 9403 Kellanved
                                                array(
608 9403 Kellanved
                                                        array(0,0,1,1,1,1,1,0,0),
609 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
610 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
611 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
612 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
613 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
614 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
615 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
616 9403 Kellanved
                                                        array(1,0,0,0,0,0,1,1,1),
617 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
618 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
619 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
620 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
621 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
622 9403 Kellanved
                                                        array(0,0,1,1,1,1,1,0,0),
623 9403 Kellanved
                                                ),
624 9403 Kellanved
                                                array(
625 9403 Kellanved
                                                        array(0,0,1,1,1,1,1,0,1),
626 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,1),
627 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
628 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
629 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
630 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
631 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
632 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
633 9403 Kellanved
                                                        array(1,0,0,0,1,1,1,1,1),
634 9403 Kellanved
                                                        array(1,0,0,0,1,0,0,0,1),
635 9403 Kellanved
                                                        array(1,0,0,0,1,0,0,0,1),
636 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
637 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
638 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,1),
639 9403 Kellanved
                                                        array(0,0,1,1,1,1,1,0,1),
640 9403 Kellanved
                                                ),
641 9403 Kellanved
                                                array(
642 9403 Kellanved
                                                        array(0,0,1,1,1,1,1,0,1),
643 9403 Kellanved
                                                        array(0,1,1,0,0,0,0,1,1),
644 9403 Kellanved
                                                        array(1,1,0,0,0,0,0,1,1),
645 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
646 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
647 9403 Kellanved
                                                        array(1,1,1,0,0,0,0,0,1),
648 9403 Kellanved
                                                        array(0,0,1,1,1,1,1,1,1),
649 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,1),
650 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,1),
651 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,1),
652 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,1),
653 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,1,1),
654 9403 Kellanved
                                                        array(1,1,1,1,1,1,1,1,0),
655 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
656 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
657 9403 Kellanved
                                                ),
658 9403 Kellanved
                                        ),
659 9403 Kellanved
                'H'        =>                array(
660 9403 Kellanved
                                                array(
661 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
662 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
663 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
664 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
665 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
666 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
667 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
668 9403 Kellanved
                                                        array(1,1,1,1,1,1,1,1,1),
669 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
670 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
671 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
672 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
673 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
674 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
675 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
676 9403 Kellanved
                                                ),
677 9403 Kellanved
                                                array(
678 9403 Kellanved
                                                        array(1,1,1,0,0,0,1,1,1),
679 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
680 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
681 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
682 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
683 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
684 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
685 9403 Kellanved
                                                        array(0,1,1,1,1,1,1,1,0),
686 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
687 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
688 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
689 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
690 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
691 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
692 9403 Kellanved
                                                        array(1,1,1,0,0,0,1,1,1),
693 9403 Kellanved
                                                ),
694 9403 Kellanved
                                                array(
695 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
696 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
697 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
698 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
699 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
700 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
701 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
702 9403 Kellanved
                                                        array(1,0,0,1,1,1,0,0,0),
703 9403 Kellanved
                                                        array(1,1,1,1,0,1,1,0,0),
704 9403 Kellanved
                                                        array(1,0,0,0,0,0,1,0,0),
705 9403 Kellanved
                                                        array(1,0,0,0,0,0,1,0,0),
706 9403 Kellanved
                                                        array(1,0,0,0,0,0,1,0,0),
707 9403 Kellanved
                                                        array(1,0,0,0,0,0,1,0,0),
708 9403 Kellanved
                                                        array(1,0,0,0,0,0,1,0,0),
709 9403 Kellanved
                                                        array(1,0,0,0,0,0,1,0,0),
710 9403 Kellanved
                                                ),
711 9403 Kellanved
                                        ),
712 9403 Kellanved
                'I'        =>                array(
713 9403 Kellanved
                                                array(
714 9403 Kellanved
                                                        array(1,1,1,1,1,1,1,1,1),
715 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
716 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
717 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
718 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
719 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
720 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
721 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
722 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
723 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
724 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
725 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
726 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
727 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
728 9403 Kellanved
                                                        array(1,1,1,1,1,1,1,1,1),
729 9403 Kellanved
                                                ),
730 9403 Kellanved
                                                array(
731 9403 Kellanved
                                                        array(0,0,0,1,1,1,0,0,0),
732 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
733 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
734 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
735 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
736 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
737 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
738 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
739 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
740 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
741 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
742 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
743 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
744 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
745 9403 Kellanved
                                                        array(0,0,0,1,1,1,0,0,0),
746 9403 Kellanved
                                                ),
747 9403 Kellanved
                                                array(
748 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
749 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
750 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
751 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
752 9403 Kellanved
                                                        array(0,0,0,1,1,1,0,0,0),
753 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
754 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
755 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
756 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
757 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
758 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
759 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
760 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
761 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
762 9403 Kellanved
                                                        array(0,0,0,1,1,1,0,0,0),
763 9403 Kellanved
                                                ),
764 9403 Kellanved
                                        ),
765 9403 Kellanved
                'J'        =>                array(
766 9403 Kellanved
                                                array(
767 9403 Kellanved
                                                        array(1,1,1,1,1,1,1,1,1),
768 9403 Kellanved
                                                        array(0,0,0,0,0,1,0,0,0),
769 9403 Kellanved
                                                        array(0,0,0,0,0,1,0,0,0),
770 9403 Kellanved
                                                        array(0,0,0,0,0,1,0,0,0),
771 9403 Kellanved
                                                        array(0,0,0,0,0,1,0,0,0),
772 9403 Kellanved
                                                        array(0,0,0,0,0,1,0,0,0),
773 9403 Kellanved
                                                        array(0,0,0,0,0,1,0,0,0),
774 9403 Kellanved
                                                        array(0,0,0,0,0,1,0,0,0),
775 9403 Kellanved
                                                        array(0,0,0,0,0,1,0,0,0),
776 9403 Kellanved
                                                        array(0,0,0,0,0,1,0,0,0),
777 9403 Kellanved
                                                        array(0,0,0,0,0,1,0,0,0),
778 9403 Kellanved
                                                        array(1,0,0,0,0,1,0,0,0),
779 9403 Kellanved
                                                        array(1,0,0,0,0,1,0,0,0),
780 9403 Kellanved
                                                        array(0,1,0,0,1,0,0,0,0),
781 9403 Kellanved
                                                        array(0,0,1,1,0,0,0,0,0),
782 9403 Kellanved
                                                ),
783 9403 Kellanved
                                                array(
784 9403 Kellanved
                                                        array(1,1,1,1,1,1,1,1,1),
785 9403 Kellanved
                                                        array(0,0,0,0,0,1,0,0,0),
786 9403 Kellanved
                                                        array(0,0,0,0,0,1,0,0,0),
787 9403 Kellanved
                                                        array(0,0,0,0,0,1,0,0,0),
788 9403 Kellanved
                                                        array(0,0,0,0,0,1,0,0,0),
789 9403 Kellanved
                                                        array(0,0,0,0,0,1,0,0,0),
790 9403 Kellanved
                                                        array(0,0,0,0,0,1,0,0,0),
791 9403 Kellanved
                                                        array(0,0,0,0,0,1,0,0,0),
792 9403 Kellanved
                                                        array(0,0,0,0,0,1,0,0,0),
793 9403 Kellanved
                                                        array(0,0,0,0,0,1,0,0,0),
794 9403 Kellanved
                                                        array(0,0,0,0,0,1,0,0,0),
795 9403 Kellanved
                                                        array(1,0,0,0,0,1,0,0,0),
796 9403 Kellanved
                                                        array(1,0,0,0,0,1,0,0,0),
797 9403 Kellanved
                                                        array(1,1,0,0,1,0,0,0,0),
798 9403 Kellanved
                                                        array(1,0,1,1,0,0,0,0,0),
799 9403 Kellanved
                                                ),
800 9403 Kellanved
                                                array(
801 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
802 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
803 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
804 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
805 9403 Kellanved
                                                        array(0,0,0,0,0,1,0,0,0),
806 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
807 9403 Kellanved
                                                        array(0,0,0,0,0,1,0,0,0),
808 9403 Kellanved
                                                        array(0,0,0,0,0,1,0,0,0),
809 9403 Kellanved
                                                        array(0,0,0,0,0,1,0,0,0),
810 9403 Kellanved
                                                        array(0,0,0,0,0,1,0,0,0),
811 9403 Kellanved
                                                        array(0,0,0,0,0,1,0,0,0),
812 9403 Kellanved
                                                        array(1,0,0,0,0,1,0,0,0),
813 9403 Kellanved
                                                        array(1,0,0,0,0,1,0,0,0),
814 9403 Kellanved
                                                        array(0,1,0,0,1,0,0,0,0),
815 9403 Kellanved
                                                        array(0,0,1,1,0,0,0,0,0),
816 9403 Kellanved
                                                ),
817 9403 Kellanved
                                        ),
818 9403 Kellanved
                'K'        =>                array(
819 9403 Kellanved
                                                array(    // New 'K', supplied by NeoThermic
820 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
821 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,1,0),
822 9403 Kellanved
                                                        array(1,0,0,0,0,0,1,0,0),
823 9403 Kellanved
                                                        array(1,0,0,0,0,1,0,0,0),
824 9403 Kellanved
                                                        array(1,0,0,0,1,0,0,0,0),
825 9403 Kellanved
                                                        array(1,0,0,1,0,0,0,0,0),
826 9403 Kellanved
                                                        array(1,0,1,0,0,0,0,0,0),
827 9403 Kellanved
                                                        array(1,1,0,0,0,0,0,0,0),
828 9403 Kellanved
                                                        array(1,0,1,0,0,0,0,0,0),
829 9403 Kellanved
                                                        array(1,0,0,1,0,0,0,0,0),
830 9403 Kellanved
                                                        array(1,0,0,0,1,0,0,0,0),
831 9403 Kellanved
                                                        array(1,0,0,0,0,1,0,0,0),
832 9403 Kellanved
                                                        array(1,0,0,0,0,0,1,0,0),
833 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,1,0),
834 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
835 9403 Kellanved
                                                ),
836 9403 Kellanved
                                                array(
837 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,1),
838 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
839 9403 Kellanved
                                                        array(0,1,0,0,0,0,1,0,0),
840 9403 Kellanved
                                                        array(0,1,0,0,0,1,0,0,0),
841 9403 Kellanved
                                                        array(0,1,0,0,1,0,0,0,0),
842 9403 Kellanved
                                                        array(0,1,0,1,0,0,0,0,0),
843 9403 Kellanved
                                                        array(0,1,1,0,0,0,0,0,0),
844 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
845 9403 Kellanved
                                                        array(0,1,1,0,0,0,0,0,0),
846 9403 Kellanved
                                                        array(0,1,0,1,0,0,0,0,0),
847 9403 Kellanved
                                                        array(0,1,0,0,1,0,0,0,0),
848 9403 Kellanved
                                                        array(0,1,0,0,0,1,0,0,0),
849 9403 Kellanved
                                                        array(0,1,0,0,0,0,1,0,0),
850 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
851 9403 Kellanved
                                                        array(1,1,1,0,0,0,1,1,1),
852 9403 Kellanved
                                                ),
853 9403 Kellanved
                                                array(
854 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
855 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
856 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
857 9403 Kellanved
                                                        array(0,1,0,0,0,1,0,0,0),
858 9403 Kellanved
                                                        array(0,1,0,0,1,0,0,0,0),
859 9403 Kellanved
                                                        array(0,1,0,1,0,0,0,0,0),
860 9403 Kellanved
                                                        array(0,1,1,0,0,0,0,0,0),
861 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
862 9403 Kellanved
                                                        array(0,1,1,0,0,0,0,0,0),
863 9403 Kellanved
                                                        array(0,1,0,1,0,0,0,0,0),
864 9403 Kellanved
                                                        array(0,1,0,0,1,0,0,0,0),
865 9403 Kellanved
                                                        array(0,1,0,0,0,1,0,0,0),
866 9403 Kellanved
                                                        array(0,1,0,0,0,0,1,0,0),
867 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
868 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
869 9403 Kellanved
                                                ),
870 9403 Kellanved
                                        ),
871 9403 Kellanved
                'L'        =>                array(
872 9403 Kellanved
                                                array(
873 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
874 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
875 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
876 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
877 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
878 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
879 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
880 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
881 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
882 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
883 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
884 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
885 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
886 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
887 9403 Kellanved
                                                        array(1,1,1,1,1,1,1,1,1),
888 9403 Kellanved
                                                ),
889 9403 Kellanved
                                                array(
890 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
891 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
892 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
893 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
894 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
895 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
896 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
897 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
898 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
899 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
900 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
901 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
902 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
903 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,1),
904 9403 Kellanved
                                                        array(1,1,1,1,1,1,1,1,1),
905 9403 Kellanved
                                                ),
906 9403 Kellanved
                                                array(
907 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
908 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
909 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
910 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
911 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
912 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
913 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
914 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
915 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
916 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
917 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
918 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
919 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
920 9403 Kellanved
                                                        array(0,1,1,0,0,0,0,0,0),
921 9403 Kellanved
                                                        array(0,0,1,1,1,0,0,0,0),
922 9403 Kellanved
                                                ),
923 9403 Kellanved
                                        ),
924 9403 Kellanved
                'M'        =>                array(
925 9403 Kellanved
                                                array(
926 9403 Kellanved
                                                        array(1,1,0,0,0,0,0,1,1),
927 9403 Kellanved
                                                        array(1,1,0,0,0,0,0,1,1),
928 9403 Kellanved
                                                        array(1,0,1,0,0,0,1,0,1),
929 9403 Kellanved
                                                        array(1,0,1,0,0,0,1,0,1),
930 9403 Kellanved
                                                        array(1,0,1,0,0,0,1,0,1),
931 9403 Kellanved
                                                        array(1,0,0,1,0,1,0,0,1),
932 9403 Kellanved
                                                        array(1,0,0,1,0,1,0,0,1),
933 9403 Kellanved
                                                        array(1,0,0,1,0,1,0,0,1),
934 9403 Kellanved
                                                        array(1,0,0,0,1,0,0,0,1),
935 9403 Kellanved
                                                        array(1,0,0,0,1,0,0,0,1),
936 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
937 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
938 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
939 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
940 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
941 9403 Kellanved
                                                ),
942 9403 Kellanved
                                                array(
943 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
944 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
945 9403 Kellanved
                                                        array(0,1,1,0,0,0,1,1,0),
946 9403 Kellanved
                                                        array(0,1,1,0,0,0,1,1,0),
947 9403 Kellanved
                                                        array(0,1,1,0,0,0,1,1,0),
948 9403 Kellanved
                                                        array(0,1,0,1,0,1,0,1,0),
949 9403 Kellanved
                                                        array(0,1,0,1,0,1,0,1,0),
950 9403 Kellanved
                                                        array(0,1,0,1,0,1,0,1,0),
951 9403 Kellanved
                                                        array(0,1,0,0,1,0,0,1,0),
952 9403 Kellanved
                                                        array(0,1,0,0,1,0,0,1,0),
953 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
954 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
955 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
956 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
957 9403 Kellanved
                                                        array(1,1,1,0,0,0,1,1,1),
958 9403 Kellanved
                                                ),
959 9403 Kellanved
                                                array(
960 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
961 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
962 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
963 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
964 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
965 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
966 9403 Kellanved
                                                        array(0,1,1,1,0,1,1,1,0),
967 9403 Kellanved
                                                        array(1,1,0,1,1,1,0,1,1),
968 9403 Kellanved
                                                        array(1,0,0,0,1,0,0,0,1),
969 9403 Kellanved
                                                        array(1,0,0,0,1,0,0,0,1),
970 9403 Kellanved
                                                        array(1,0,0,0,1,0,0,0,1),
971 9403 Kellanved
                                                        array(1,0,0,0,1,0,0,0,1),
972 9403 Kellanved
                                                        array(1,0,0,0,1,0,0,0,1),
973 9403 Kellanved
                                                        array(1,0,0,0,1,0,0,0,1),
974 9403 Kellanved
                                                        array(1,0,0,0,1,0,0,0,1),
975 9403 Kellanved
                                                ),
976 9403 Kellanved
                                        ),
977 9403 Kellanved
                'N'        =>                array(
978 9403 Kellanved
                                                array(
979 9403 Kellanved
                                                        array(1,1,0,0,0,0,0,0,1),
980 9403 Kellanved
                                                        array(1,1,0,0,0,0,0,0,1),
981 9403 Kellanved
                                                        array(1,0,1,0,0,0,0,0,1),
982 9403 Kellanved
                                                        array(1,0,1,0,0,0,0,0,1),
983 9403 Kellanved
                                                        array(1,0,0,1,0,0,0,0,1),
984 9403 Kellanved
                                                        array(1,0,0,1,0,0,0,0,1),
985 9403 Kellanved
                                                        array(1,0,0,0,1,0,0,0,1),
986 9403 Kellanved
                                                        array(1,0,0,0,1,0,0,0,1),
987 9403 Kellanved
                                                        array(1,0,0,0,1,0,0,0,1),
988 9403 Kellanved
                                                        array(1,0,0,0,0,1,0,0,1),
989 9403 Kellanved
                                                        array(1,0,0,0,0,1,0,0,1),
990 9403 Kellanved
                                                        array(1,0,0,0,0,0,1,0,1),
991 9403 Kellanved
                                                        array(1,0,0,0,0,0,1,0,1),
992 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,1,1),
993 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,1,1),
994 9403 Kellanved
                                                ),
995 9403 Kellanved
                                                array(
996 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
997 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
998 9403 Kellanved
                                                        array(0,1,1,0,0,0,0,1,0),
999 9403 Kellanved
                                                        array(0,1,1,0,0,0,0,1,0),
1000 9403 Kellanved
                                                        array(0,1,1,0,0,0,0,1,0),
1001 9403 Kellanved
                                                        array(0,1,0,1,0,0,0,1,0),
1002 9403 Kellanved
                                                        array(0,1,0,1,0,0,0,1,0),
1003 9403 Kellanved
                                                        array(0,1,0,1,0,0,0,1,0),
1004 9403 Kellanved
                                                        array(0,1,0,0,1,0,0,1,0),
1005 9403 Kellanved
                                                        array(0,1,0,0,1,1,0,1,0),
1006 9403 Kellanved
                                                        array(0,1,0,0,0,1,0,1,0),
1007 9403 Kellanved
                                                        array(0,1,0,0,0,1,1,1,0),
1008 9403 Kellanved
                                                        array(0,1,0,0,0,0,1,1,0),
1009 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1010 9403 Kellanved
                                                        array(1,1,1,0,0,0,1,1,1),
1011 9403 Kellanved
                                                ),
1012 9403 Kellanved
                                                array(
1013 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1014 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1015 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1016 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1017 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1018 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1019 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1020 9403 Kellanved
                                                        array(1,0,1,1,1,1,0,0,0),
1021 9403 Kellanved
                                                        array(1,1,1,0,0,1,1,0,0),
1022 9403 Kellanved
                                                        array(1,0,0,0,0,0,1,0,0),
1023 9403 Kellanved
                                                        array(1,0,0,0,0,0,1,0,0),
1024 9403 Kellanved
                                                        array(1,0,0,0,0,0,1,0,0),
1025 9403 Kellanved
                                                        array(1,0,0,0,0,0,1,0,0),
1026 9403 Kellanved
                                                        array(1,0,0,0,0,0,1,0,0),
1027 9403 Kellanved
                                                        array(1,0,0,0,0,0,1,0,0),
1028 9403 Kellanved
                                                ),
1029 9403 Kellanved
                                        ),
1030 9403 Kellanved
                'O'        =>                array(
1031 9403 Kellanved
                                                array(
1032 9403 Kellanved
                                                        array(0,0,1,1,1,1,1,0,0),
1033 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1034 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1035 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1036 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1037 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1038 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1039 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1040 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1041 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1042 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1043 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1044 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1045 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1046 9403 Kellanved
                                                        array(0,0,1,1,1,1,1,0,0),
1047 9403 Kellanved
                                                ),
1048 9403 Kellanved
                                                array(
1049 9403 Kellanved
                                                        array(0,0,1,1,1,1,1,0,0),
1050 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1051 9403 Kellanved
                                                        array(1,1,0,0,0,0,0,1,1),
1052 9403 Kellanved
                                                        array(1,1,0,0,0,0,0,1,1),
1053 9403 Kellanved
                                                        array(1,1,0,0,0,0,0,1,1),
1054 9403 Kellanved
                                                        array(1,1,0,0,0,0,0,1,1),
1055 9403 Kellanved
                                                        array(1,1,0,0,0,0,0,1,1),
1056 9403 Kellanved
                                                        array(1,1,0,0,0,0,0,1,1),
1057 9403 Kellanved
                                                        array(1,1,0,0,0,0,0,1,1),
1058 9403 Kellanved
                                                        array(1,1,0,0,0,0,0,1,1),
1059 9403 Kellanved
                                                        array(1,1,0,0,0,0,0,1,1),
1060 9403 Kellanved
                                                        array(1,1,0,0,0,0,0,1,1),
1061 9403 Kellanved
                                                        array(1,1,0,0,0,0,0,1,1),
1062 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1063 9403 Kellanved
                                                        array(0,0,1,1,1,1,1,0,0),
1064 9403 Kellanved
                                                ),
1065 9403 Kellanved
                                                array(
1066 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1067 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1068 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1069 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1070 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1071 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1072 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1073 9403 Kellanved
                                                        array(0,1,1,1,1,1,0,0,0),
1074 9403 Kellanved
                                                        array(1,1,1,0,0,1,1,0,0),
1075 9403 Kellanved
                                                        array(1,0,0,0,0,0,1,0,0),
1076 9403 Kellanved
                                                        array(1,0,0,0,0,0,1,0,0),
1077 9403 Kellanved
                                                        array(1,0,0,0,0,0,1,0,0),
1078 9403 Kellanved
                                                        array(1,0,0,0,0,0,1,0,0),
1079 9403 Kellanved
                                                        array(1,1,0,0,0,1,1,0,0),
1080 9403 Kellanved
                                                        array(0,1,1,1,1,1,0,0,0),
1081 9403 Kellanved
                                                ),
1082 9403 Kellanved
                                        ),
1083 9403 Kellanved
                'P'        =>                array(
1084 9403 Kellanved
                                                array(
1085 9403 Kellanved
                                                        array(1,1,1,1,1,1,1,0,0),
1086 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,1,0),
1087 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1088 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1089 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1090 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1091 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,1,0),
1092 9403 Kellanved
                                                        array(1,1,1,1,1,1,1,0,0),
1093 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
1094 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
1095 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
1096 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
1097 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
1098 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
1099 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
1100 9403 Kellanved
                                                ),
1101 9403 Kellanved
                                                array(
1102 9403 Kellanved
                                                        array(1,1,1,1,1,1,1,0,0),
1103 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1104 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,1),
1105 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,1),
1106 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,1),
1107 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,1),
1108 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1109 9403 Kellanved
                                                        array(1,1,1,1,1,1,1,0,0),
1110 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
1111 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
1112 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
1113 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
1114 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
1115 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
1116 9403 Kellanved
                                                        array(1,1,1,0,0,0,0,0,0),
1117 9403 Kellanved
                                                ),
1118 9403 Kellanved
                                                array(
1119 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1120 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1121 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
1122 9403 Kellanved
                                                        array(1,0,1,1,0,0,0,0,0),
1123 9403 Kellanved
                                                        array(1,1,0,1,1,0,0,0,0),
1124 9403 Kellanved
                                                        array(1,0,0,0,1,0,0,0,0),
1125 9403 Kellanved
                                                        array(1,0,0,0,1,0,0,0,0),
1126 9403 Kellanved
                                                        array(1,0,0,1,1,0,0,0,0),
1127 9403 Kellanved
                                                        array(1,1,1,1,0,0,0,0,0),
1128 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
1129 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
1130 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
1131 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
1132 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
1133 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
1134 9403 Kellanved
                                                ),
1135 9403 Kellanved
                                        ),
1136 9403 Kellanved
                'Q'        =>                array(
1137 9403 Kellanved
                                                array(
1138 9403 Kellanved
                                                        array(0,0,1,1,1,1,1,0,0),
1139 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1140 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1141 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1142 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1143 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1144 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1145 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1146 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1147 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1148 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1149 9403 Kellanved
                                                        array(1,0,0,0,0,1,0,0,1),
1150 9403 Kellanved
                                                        array(1,0,0,0,0,0,1,0,1),
1151 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1152 9403 Kellanved
                                                        array(0,0,1,1,1,1,1,0,1),
1153 9403 Kellanved
                                                ),
1154 9403 Kellanved
                                                array(
1155 9403 Kellanved
                                                        array(0,0,1,1,1,1,1,0,0),
1156 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1157 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1158 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1159 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1160 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1161 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1162 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1163 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1164 9403 Kellanved
                                                        array(1,0,0,0,1,0,0,0,1),
1165 9403 Kellanved
                                                        array(1,1,0,0,1,1,0,1,1),
1166 9403 Kellanved
                                                        array(0,1,1,1,1,1,1,1,0),
1167 9403 Kellanved
                                                        array(0,0,0,0,0,0,1,1,0),
1168 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,1,1),
1169 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,1),
1170 9403 Kellanved
                                                ),
1171 9403 Kellanved
                                                array(
1172 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1173 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1174 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1175 9403 Kellanved
                                                        array(0,0,0,0,0,1,1,1,1),
1176 9403 Kellanved
                                                        array(0,0,0,0,1,1,0,0,1),
1177 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,1),
1178 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,1),
1179 9403 Kellanved
                                                        array(0,0,0,0,1,1,0,1,1),
1180 9403 Kellanved
                                                        array(0,0,0,0,0,1,1,0,1),
1181 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,1),
1182 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,1),
1183 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,1),
1184 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,1),
1185 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,1),
1186 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,1),
1187 9403 Kellanved
                                                ),
1188 9403 Kellanved
                                        ),
1189 9403 Kellanved
                'R'        =>                array(
1190 9403 Kellanved
                                                array(
1191 9403 Kellanved
                                                        array(1,1,1,1,1,1,1,0,0),
1192 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,1,0),
1193 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1194 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1195 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1196 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1197 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,1,0),
1198 9403 Kellanved
                                                        array(1,1,1,1,1,1,1,0,0),
1199 9403 Kellanved
                                                        array(1,1,1,0,0,0,0,0,0),
1200 9403 Kellanved
                                                        array(1,0,0,1,0,0,0,0,0),
1201 9403 Kellanved
                                                        array(1,0,0,0,1,0,0,0,0),
1202 9403 Kellanved
                                                        array(1,0,0,0,0,1,0,0,0),
1203 9403 Kellanved
                                                        array(1,0,0,0,0,0,1,0,0),
1204 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,1,0),
1205 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1206 9403 Kellanved
                                                ),
1207 9403 Kellanved
                                                array(
1208 9403 Kellanved
                                                        array(1,1,1,1,1,1,1,0,0),
1209 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1210 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,1),
1211 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,1),
1212 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,1),
1213 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,1),
1214 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1215 9403 Kellanved
                                                        array(1,1,1,1,1,1,1,0,0),
1216 9403 Kellanved
                                                        array(0,1,1,0,0,0,0,0,0),
1217 9403 Kellanved
                                                        array(0,1,1,1,0,0,0,0,0),
1218 9403 Kellanved
                                                        array(0,1,0,1,1,0,0,0,0),
1219 9403 Kellanved
                                                        array(0,1,0,0,1,1,0,0,0),
1220 9403 Kellanved
                                                        array(0,1,0,0,0,1,1,0,0),
1221 9403 Kellanved
                                                        array(0,1,0,0,0,0,1,1,0),
1222 9403 Kellanved
                                                        array(1,1,1,0,0,0,1,1,1),
1223 9403 Kellanved
                                                ),
1224 9403 Kellanved
                                                array(
1225 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1226 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1227 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1228 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1229 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1230 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1231 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
1232 9403 Kellanved
                                                        array(1,1,1,1,1,0,0,0,0),
1233 9403 Kellanved
                                                        array(1,1,0,0,1,1,0,0,0),
1234 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
1235 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
1236 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
1237 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
1238 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
1239 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
1240 9403 Kellanved
                                                ),
1241 9403 Kellanved
                                        ),
1242 9403 Kellanved
                'S'        =>                array(
1243 9403 Kellanved
                                                array(
1244 9403 Kellanved
                                                        array(0,0,1,1,1,1,1,0,0),
1245 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1246 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1247 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
1248 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
1249 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
1250 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
1251 9403 Kellanved
                                                        array(0,0,1,1,1,1,1,0,0),
1252 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,1,0),
1253 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,1),
1254 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,1),
1255 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,1),
1256 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1257 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1258 9403 Kellanved
                                                        array(0,0,1,1,1,1,1,0,0),
1259 9403 Kellanved
                                                ),
1260 9403 Kellanved
                                                array(
1261 9403 Kellanved
                                                        array(0,0,1,1,1,1,1,0,1),
1262 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,1),
1263 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1264 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1265 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
1266 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
1267 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
1268 9403 Kellanved
                                                        array(0,0,1,1,1,1,1,0,0),
1269 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,1,0),
1270 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,1),
1271 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1272 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1273 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1274 9403 Kellanved
                                                        array(1,1,0,0,0,0,0,1,0),
1275 9403 Kellanved
                                                        array(1,0,1,1,1,1,1,0,0),
1276 9403 Kellanved
                                                ),
1277 9403 Kellanved
                                                array(
1278 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1279 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1280 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1281 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1282 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1283 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1284 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1285 9403 Kellanved
                                                        array(0,1,1,1,1,0,0,0,0),
1286 9403 Kellanved
                                                        array(1,0,0,0,0,1,0,0,0),
1287 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
1288 9403 Kellanved
                                                        array(1,1,0,0,0,0,0,0,0),
1289 9403 Kellanved
                                                        array(0,1,1,1,1,0,0,0,0),
1290 9403 Kellanved
                                                        array(0,0,0,0,0,1,0,0,0),
1291 9403 Kellanved
                                                        array(1,0,0,0,1,1,0,0,0),
1292 9403 Kellanved
                                                        array(0,1,1,1,1,0,0,0,0),
1293 9403 Kellanved
                                                ),
1294 9403 Kellanved
                                        ),
1295 9403 Kellanved
                'T'        =>                array(
1296 9403 Kellanved
                                                array(
1297 9403 Kellanved
                                                        array(1,1,1,1,1,1,1,1,1),
1298 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1299 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1300 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1301 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1302 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1303 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1304 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1305 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1306 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1307 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1308 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1309 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1310 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1311 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1312 9403 Kellanved
                                                ),
1313 9403 Kellanved
                                                array(
1314 9403 Kellanved
                                                        array(1,1,1,1,1,1,1,1,1),
1315 9403 Kellanved
                                                        array(1,0,0,0,1,0,0,0,1),
1316 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1317 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1318 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1319 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1320 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1321 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1322 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1323 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1324 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1325 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1326 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1327 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1328 9403 Kellanved
                                                        array(0,0,0,1,1,1,0,0,0),
1329 9403 Kellanved
                                                ),
1330 9403 Kellanved
                                                array(
1331 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1332 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1333 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1334 9403 Kellanved
                                                        array(0,0,1,1,1,1,1,1,0),
1335 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1336 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1337 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1338 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1339 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1340 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1341 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1342 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1343 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1344 9403 Kellanved
                                                        array(0,0,0,0,1,1,0,0,0),
1345 9403 Kellanved
                                                        array(0,0,0,0,0,1,1,1,0),
1346 9403 Kellanved
                                                ),
1347 9403 Kellanved
                                        ),
1348 9403 Kellanved
                'U'        =>                array(
1349 9403 Kellanved
                                                array(
1350 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1351 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1352 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1353 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1354 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1355 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1356 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1357 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1358 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1359 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1360 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1361 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1362 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1363 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1364 9403 Kellanved
                                                        array(0,0,1,1,1,1,1,0,0),
1365 9403 Kellanved
                                                ),
1366 9403 Kellanved
                                                array(
1367 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
1368 9403 Kellanved
                                                        array(1,1,1,0,0,0,1,1,1),
1369 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1370 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1371 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1372 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1373 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1374 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1375 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1376 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1377 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1378 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1379 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1380 9403 Kellanved
                                                        array(0,1,1,0,0,0,1,1,0),
1381 9403 Kellanved
                                                        array(0,0,1,1,1,1,1,0,0),
1382 9403 Kellanved
                                                ),
1383 9403 Kellanved
                                                array(
1384 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1385 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1386 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1387 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1388 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1389 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1390 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1391 9403 Kellanved
                                                        array(0,0,1,0,0,0,0,0,1),
1392 9403 Kellanved
                                                        array(0,0,1,0,0,0,0,0,1),
1393 9403 Kellanved
                                                        array(0,0,1,0,0,0,0,0,1),
1394 9403 Kellanved
                                                        array(0,0,1,0,0,0,0,0,1),
1395 9403 Kellanved
                                                        array(0,0,1,0,0,0,0,0,1),
1396 9403 Kellanved
                                                        array(0,0,1,0,0,0,0,1,1),
1397 9403 Kellanved
                                                        array(0,0,1,1,0,0,1,1,1),
1398 9403 Kellanved
                                                        array(0,0,0,1,1,1,1,0,1),
1399 9403 Kellanved
                                                ),
1400 9403 Kellanved
                                        ),
1401 9403 Kellanved
                'V'        =>                array(
1402 9403 Kellanved
                                                array(
1403 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1404 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1405 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1406 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1407 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1408 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1409 9403 Kellanved
                                                        array(0,0,1,0,0,0,1,0,0),
1410 9403 Kellanved
                                                        array(0,0,1,0,0,0,1,0,0),
1411 9403 Kellanved
                                                        array(0,0,1,0,0,0,1,0,0),
1412 9403 Kellanved
                                                        array(0,0,1,0,0,0,1,0,0),
1413 9403 Kellanved
                                                        array(0,0,0,1,0,1,0,0,0),
1414 9403 Kellanved
                                                        array(0,0,0,1,0,1,0,0,0),
1415 9403 Kellanved
                                                        array(0,0,0,1,0,1,0,0,0),
1416 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1417 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1418 9403 Kellanved
                                                ),
1419 9403 Kellanved
                                                array(
1420 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1421 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1422 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1423 9403 Kellanved
                                                        array(1,1,1,0,0,0,1,1,1),
1424 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1425 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1426 9403 Kellanved
                                                        array(0,0,1,0,0,0,1,0,0),
1427 9403 Kellanved
                                                        array(0,0,1,0,0,0,1,0,0),
1428 9403 Kellanved
                                                        array(0,0,1,0,0,0,1,0,0),
1429 9403 Kellanved
                                                        array(0,0,1,0,0,0,1,0,0),
1430 9403 Kellanved
                                                        array(0,0,0,1,0,1,0,0,0),
1431 9403 Kellanved
                                                        array(0,0,0,1,0,1,0,0,0),
1432 9403 Kellanved
                                                        array(0,0,0,1,0,1,0,0,0),
1433 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1434 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1435 9403 Kellanved
                                                ),
1436 9403 Kellanved
                                                array(
1437 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1438 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1439 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1440 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1441 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1442 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1443 9403 Kellanved
                                                        array(0,0,1,0,0,0,1,0,0),
1444 9403 Kellanved
                                                        array(0,0,1,0,0,0,1,0,0),
1445 9403 Kellanved
                                                        array(0,0,1,0,0,0,1,0,0),
1446 9403 Kellanved
                                                        array(0,0,1,0,0,0,1,0,0),
1447 9403 Kellanved
                                                        array(0,0,0,1,0,1,0,0,0),
1448 9403 Kellanved
                                                        array(0,0,0,1,0,1,0,0,0),
1449 9403 Kellanved
                                                        array(0,0,0,1,0,1,0,0,0),
1450 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1451 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1452 9403 Kellanved
                                                ),
1453 9403 Kellanved
                                        ),
1454 9403 Kellanved
                'W'        =>                array(
1455 9403 Kellanved
                                                array(
1456 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1457 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1458 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1459 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1460 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1461 9403 Kellanved
                                                        array(1,0,0,0,1,0,0,0,1),
1462 9403 Kellanved
                                                        array(1,0,0,0,1,0,0,0,1),
1463 9403 Kellanved
                                                        array(1,0,0,1,0,1,0,0,1),
1464 9403 Kellanved
                                                        array(1,0,0,1,0,1,0,0,1),
1465 9403 Kellanved
                                                        array(1,0,0,1,0,1,0,0,1),
1466 9403 Kellanved
                                                        array(1,0,1,0,0,0,1,0,1),
1467 9403 Kellanved
                                                        array(1,0,1,0,0,0,1,0,1),
1468 9403 Kellanved
                                                        array(1,0,1,0,0,0,1,0,1),
1469 9403 Kellanved
                                                        array(1,1,0,0,0,0,0,1,1),
1470 9403 Kellanved
                                                        array(1,1,0,0,0,0,0,1,1),
1471 9403 Kellanved
                                                ),
1472 9403 Kellanved
                                                array(
1473 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1474 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1475 9403 Kellanved
                                                        array(1,1,1,0,0,0,1,1,1),
1476 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1477 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1478 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1479 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1480 9403 Kellanved
                                                        array(0,1,0,0,1,0,0,1,0),
1481 9403 Kellanved
                                                        array(0,1,0,0,1,0,0,1,0),
1482 9403 Kellanved
                                                        array(0,1,0,1,1,1,0,1,0),
1483 9403 Kellanved
                                                        array(0,1,0,1,0,1,0,1,0),
1484 9403 Kellanved
                                                        array(0,1,1,1,0,1,1,1,0),
1485 9403 Kellanved
                                                        array(0,1,1,0,0,0,1,1,0),
1486 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1487 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1488 9403 Kellanved
                                                ),
1489 9403 Kellanved
                                                array(
1490 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1491 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1492 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1493 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1494 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1495 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1496 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1497 9403 Kellanved
                                                        array(0,1,0,0,1,0,0,1,0),
1498 9403 Kellanved
                                                        array(0,1,0,0,1,0,0,1,0),
1499 9403 Kellanved
                                                        array(0,1,0,1,1,1,0,1,0),
1500 9403 Kellanved
                                                        array(0,1,0,1,0,1,0,1,0),
1501 9403 Kellanved
                                                        array(0,1,1,1,0,1,1,1,0),
1502 9403 Kellanved
                                                        array(0,1,1,0,0,0,1,1,0),
1503 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1504 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1505 9403 Kellanved
                                                ),
1506 9403 Kellanved
                                        ),
1507 9403 Kellanved
                'X'        =>                array(
1508 9403 Kellanved
                                                array(
1509 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1510 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1511 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1512 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1513 9403 Kellanved
                                                        array(0,0,1,0,0,0,1,0,0),
1514 9403 Kellanved
                                                        array(0,0,0,1,0,1,0,0,0),
1515 9403 Kellanved
                                                        array(0,0,0,1,0,1,0,0,0),
1516 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1517 9403 Kellanved
                                                        array(0,0,0,1,0,1,0,0,0),
1518 9403 Kellanved
                                                        array(0,0,0,1,0,1,0,0,0),
1519 9403 Kellanved
                                                        array(0,0,1,0,0,0,1,0,0),
1520 9403 Kellanved
                                                        array(0,1,0,0,0,0,1,0,0),
1521 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1522 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1523 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1524 9403 Kellanved
                                                ),
1525 9403 Kellanved
                                                array(
1526 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1527 9403 Kellanved
                                                        array(1,1,1,0,0,0,1,1,1),
1528 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1529 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1530 9403 Kellanved
                                                        array(0,0,1,0,0,0,1,0,0),
1531 9403 Kellanved
                                                        array(0,0,0,1,0,1,0,0,0),
1532 9403 Kellanved
                                                        array(0,0,0,1,0,1,0,0,0),
1533 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1534 9403 Kellanved
                                                        array(0,0,0,1,0,1,0,0,0),
1535 9403 Kellanved
                                                        array(0,0,0,1,0,1,0,0,0),
1536 9403 Kellanved
                                                        array(0,0,1,0,0,0,1,0,0),
1537 9403 Kellanved
                                                        array(0,1,0,0,0,0,1,0,0),
1538 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1539 9403 Kellanved
                                                        array(1,1,1,0,0,0,1,1,1),
1540 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1541 9403 Kellanved
                                                ),
1542 9403 Kellanved
                                                array(
1543 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1544 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1545 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1546 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1547 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1548 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1549 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1550 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1551 9403 Kellanved
                                                        array(0,1,1,0,0,0,1,1,0),
1552 9403 Kellanved
                                                        array(0,0,1,1,0,1,1,0,0),
1553 9403 Kellanved
                                                        array(0,0,0,1,1,1,0,0,0),
1554 9403 Kellanved
                                                        array(0,0,0,1,1,1,0,0,0),
1555 9403 Kellanved
                                                        array(0,0,1,1,0,1,1,0,0),
1556 9403 Kellanved
                                                        array(0,1,1,0,0,0,1,1,0),
1557 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1558 9403 Kellanved
                                                ),
1559 9403 Kellanved
                                        ),
1560 9403 Kellanved
                'Y'        =>                array(
1561 9403 Kellanved
                                                array(
1562 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1563 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1564 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1565 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1566 9403 Kellanved
                                                        array(0,0,1,0,0,0,1,0,0),
1567 9403 Kellanved
                                                        array(0,0,1,0,0,0,1,0,0),
1568 9403 Kellanved
                                                        array(0,0,0,1,0,1,0,0,0),
1569 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1570 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1571 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1572 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1573 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1574 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1575 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1576 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1577 9403 Kellanved
                                                ),
1578 9403 Kellanved
                                                array(
1579 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1580 9403 Kellanved
                                                        array(1,1,1,0,0,0,1,1,1),
1581 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1582 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,1,0),
1583 9403 Kellanved
                                                        array(0,0,1,0,0,0,1,0,0),
1584 9403 Kellanved
                                                        array(0,0,1,0,0,0,1,0,0),
1585 9403 Kellanved
                                                        array(0,0,0,1,0,1,0,0,0),
1586 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1587 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1588 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1589 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1590 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1591 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1592 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1593 9403 Kellanved
                                                        array(0,0,0,1,1,1,0,0,0),
1594 9403 Kellanved
                                                ),
1595 9403 Kellanved
                                                array(
1596 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1597 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1598 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1599 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1600 9403 Kellanved
                                                        array(0,0,0,1,0,0,0,0,1),
1601 9403 Kellanved
                                                        array(0,0,0,1,1,0,0,0,1),
1602 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,1,1),
1603 9403 Kellanved
                                                        array(0,0,0,0,1,1,0,1,0),
1604 9403 Kellanved
                                                        array(0,0,0,0,0,1,1,1,0),
1605 9403 Kellanved
                                                        array(0,0,0,0,0,0,1,0,0),
1606 9403 Kellanved
                                                        array(0,0,0,0,0,1,1,0,0),
1607 9403 Kellanved
                                                        array(0,0,0,0,0,1,0,0,0),
1608 9403 Kellanved
                                                        array(0,0,0,0,1,1,0,0,0),
1609 9403 Kellanved
                                                        array(0,0,1,1,1,0,0,0,0),
1610 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1611 9403 Kellanved
                                                ),
1612 9403 Kellanved
                                        ),
1613 9403 Kellanved
                'Z'        =>                array(
1614 9403 Kellanved
                                                array(
1615 9403 Kellanved
                                                        array(1,1,1,1,1,1,1,1,1),
1616 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1617 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,1),
1618 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,1,0),
1619 9403 Kellanved
                                                        array(0,0,0,0,0,0,1,0,0),
1620 9403 Kellanved
                                                        array(0,0,0,0,0,1,0,0,0),
1621 9403 Kellanved
                                                        array(0,0,0,0,0,1,0,0,0),
1622 9403 Kellanved
                                                        array(0,0,0,0,1,0,0,0,0),
1623 9403 Kellanved
                                                        array(0,0,0,1,0,0,0,0,0),
1624 9403 Kellanved
                                                        array(0,0,0,1,0,0,0,0,0),
1625 9403 Kellanved
                                                        array(0,0,1,0,0,0,0,0,0),
1626 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
1627 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
1628 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,1),
1629 9403 Kellanved
                                                        array(1,1,1,1,1,1,1,1,1),
1630 9403 Kellanved
                                                ),
1631 9403 Kellanved
                                                array(
1632 9403 Kellanved
                                                        array(1,1,1,1,1,1,1,1,1),
1633 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,1),
1634 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,1),
1635 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,1,0),
1636 9403 Kellanved
                                                        array(0,0,0,0,0,0,1,0,0),
1637 9403 Kellanved
                                                        array(0,0,0,0,0,1,0,0,0),
1638 9403 Kellanved
                                                        array(0,0,0,0,0,1,0,0,0),
1639 9403 Kellanved
                                                        array(0,0,1,1,1,1,1,0,0),
1640 9403 Kellanved
                                                        array(0,0,0,1,0,0,0,0,0),
1641 9403 Kellanved
                                                        array(0,0,0,1,0,0,0,0,0),
1642 9403 Kellanved
                                                        array(0,0,1,0,0,0,0,0,0),
1643 9403 Kellanved
                                                        array(0,1,0,0,0,0,0,0,0),
1644 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
1645 9403 Kellanved
                                                        array(1,0,0,0,0,0,0,0,0),
1646 9403 Kellanved
                                                        array(1,1,1,1,1,1,1,1,1),
1647 9403 Kellanved
                                                ),
1648 9403 Kellanved
                                                array(
1649 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1650 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1651 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1652 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1653 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1654 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1655 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1656 9403 Kellanved
                                                        array(0,0,0,0,0,0,0,0,0),
1657 9403 Kellanved
                                                        array(0,1,1,1,1,1,1,1,0),
1658 9403 Kellanved
                                                        array(0,0,0,0,0,1,1,0,0),
1659 9403 Kellanved
                                                        array(0,0,0,0,1,1,0,0,0),
1660 9403 Kellanved
                                                        array(0,0,0,1,1,0,0,0,0),
1661 9403 Kellanved
                                                        array(0,0,1,1,0,0,0,0,0),
1662 9403 Kellanved
                                                        array(0,0,1,0,0,0,0,0,0),
1663 9403 Kellanved
                                                        array(0,1,1,1,1,1,1,1,0),
1664 9403 Kellanved
                                                ),
1665 9403 Kellanved
                                        ),
1666 9403 Kellanved
                                );
1667 7478 kellanved
                return array(
1668 7478 kellanved
                        'width'                => 9,
1669 7478 kellanved
                        'height'        => 15,
1670 7478 kellanved
                        'data'                => array(
1671 7478 kellanved
1672 11088 git-gate
                        'A' =>        $chars['A'][mt_rand(0, min(sizeof($chars['A']), $config['captcha_gd_fonts']) -1)],
1673 11088 git-gate
                        'B' =>        $chars['B'][mt_rand(0, min(sizeof($chars['B']), $config['captcha_gd_fonts']) -1)],
1674 11088 git-gate
                        'C' =>        $chars['C'][mt_rand(0, min(sizeof($chars['C']), $config['captcha_gd_fonts']) -1)],
1675 11088 git-gate
                        'D' =>        $chars['D'][mt_rand(0, min(sizeof($chars['D']), $config['captcha_gd_fonts']) -1)],
1676 11088 git-gate
                        'E' =>        $chars['E'][mt_rand(0, min(sizeof($chars['E']), $config['captcha_gd_fonts']) -1)],
1677 11088 git-gate
                        'F' =>        $chars['F'][mt_rand(0, min(sizeof($chars['F']), $config['captcha_gd_fonts']) -1)],
1678 11088 git-gate
                        'G' =>        $chars['G'][mt_rand(0, min(sizeof($chars['G']), $config['captcha_gd_fonts']) -1)],
1679 11088 git-gate
                        'H' =>        $chars['H'][mt_rand(0, min(sizeof($chars['H']), $config['captcha_gd_fonts']) -1)],
1680 11088 git-gate
                        'I' =>        $chars['I'][mt_rand(0, min(sizeof($chars['I']), $config['captcha_gd_fonts']) -1)],
1681 11088 git-gate
                        'J' =>        $chars['J'][mt_rand(0, min(sizeof($chars['J']), $config['captcha_gd_fonts']) -1)],
1682 11088 git-gate
                        'K' =>        $chars['K'][mt_rand(0, min(sizeof($chars['K']), $config['captcha_gd_fonts']) -1)],
1683 11088 git-gate
                        'L' =>        $chars['L'][mt_rand(0, min(sizeof($chars['L']), $config['captcha_gd_fonts']) -1)],
1684 11088 git-gate
                        'M' =>        $chars['M'][mt_rand(0, min(sizeof($chars['M']), $config['captcha_gd_fonts']) -1)],
1685 11088 git-gate
                        'N' =>        $chars['N'][mt_rand(0, min(sizeof($chars['N']), $config['captcha_gd_fonts']) -1)],
1686 11088 git-gate
                        'O' =>        $chars['O'][mt_rand(0, min(sizeof($chars['O']), $config['captcha_gd_fonts']) -1)],
1687 11088 git-gate
                        'P' =>        $chars['P'][mt_rand(0, min(sizeof($chars['P']), $config['captcha_gd_fonts']) -1)],
1688 11088 git-gate
                        'Q' =>        $chars['Q'][mt_rand(0, min(sizeof($chars['Q']), $config['captcha_gd_fonts']) -1)],
1689 11088 git-gate
                        'R' =>        $chars['R'][mt_rand(0, min(sizeof($chars['R']), $config['captcha_gd_fonts']) -1)],
1690 11088 git-gate
                        'S' =>        $chars['S'][mt_rand(0, min(sizeof($chars['S']), $config['captcha_gd_fonts']) -1)],
1691 11088 git-gate
                        'T' =>        $chars['T'][mt_rand(0, min(sizeof($chars['T']), $config['captcha_gd_fonts']) -1)],
1692 11088 git-gate
                        'U' =>        $chars['U'][mt_rand(0, min(sizeof($chars['U']), $config['captcha_gd_fonts']) -1)],
1693 11088 git-gate
                        'V' =>        $chars['V'][mt_rand(0, min(sizeof($chars['V']), $config['captcha_gd_fonts']) -1)],
1694 11088 git-gate
                        'W' =>        $chars['W'][mt_rand(0, min(sizeof($chars['W']), $config['captcha_gd_fonts']) -1)],
1695 11088 git-gate
                        'X' =>        $chars['X'][mt_rand(0, min(sizeof($chars['X']), $config['captcha_gd_fonts']) -1)],
1696 11088 git-gate
                        'Y' =>        $chars['Y'][mt_rand(0, min(sizeof($chars['Y']), $config['captcha_gd_fonts']) -1)],
1697 11088 git-gate
                        'Z' =>        $chars['Z'][mt_rand(0, min(sizeof($chars['Z']), $config['captcha_gd_fonts']) -1)],
1698 9403 Kellanved
1699 7478 kellanved
                        '1' => array(
1700 7478 kellanved
                                array(0,0,0,1,1,0,0,0,0),
1701 7478 kellanved
                                array(0,0,1,0,1,0,0,0,0),
1702 7478 kellanved
                                array(0,1,0,0,1,0,0,0,0),
1703 7478 kellanved
                                array(0,0,0,0,1,0,0,0,0),
1704 7478 kellanved
                                array(0,0,0,0,1,0,0,0,0),
1705 7478 kellanved
                                array(0,0,0,0,1,0,0,0,0),
1706 7478 kellanved
                                array(0,0,0,0,1,0,0,0,0),
1707 7478 kellanved
                                array(0,0,0,0,1,0,0,0,0),
1708 7478 kellanved
                                array(0,0,0,0,1,0,0,0,0),
1709 7478 kellanved
                                array(0,0,0,0,1,0,0,0,0),
1710 7478 kellanved
                                array(0,0,0,0,1,0,0,0,0),
1711 7478 kellanved
                                array(0,0,0,0,1,0,0,0,0),
1712 7478 kellanved
                                array(0,0,0,0,1,0,0,0,0),
1713 7478 kellanved
                                array(0,0,0,0,1,0,0,0,0),
1714 7478 kellanved
                                array(0,1,1,1,1,1,1,1,0),
1715 7478 kellanved
                        ),
1716 7478 kellanved
                        '2' => array(    // New '2' supplied by Anon
1717 7478 kellanved
                                array(0,0,0,1,1,1,0,0,0),
1718 7478 kellanved
                                array(0,0,1,0,0,0,1,0,0),
1719 7478 kellanved
                                array(0,1,0,0,0,0,1,1,0),
1720 7478 kellanved
                                array(0,0,0,0,0,0,0,0,1),
1721 7478 kellanved
                                array(0,0,0,0,0,0,0,0,1),
1722 7478 kellanved
                                array(0,0,0,0,0,0,0,1,1),
1723 7478 kellanved
                                array(0,0,0,0,0,0,0,1,0),
1724 7478 kellanved
                                array(0,0,0,0,0,0,1,0,0),
1725 7478 kellanved
                                array(0,0,0,0,0,1,0,0,0),
1726 7478 kellanved
                                array(0,0,0,0,1,0,0,0,0),
1727 7478 kellanved
                                array(0,0,0,1,0,0,0,0,0),
1728 7478 kellanved
                                array(0,0,1,0,0,0,0,0,0),
1729 7478 kellanved
                                array(0,1,0,0,0,0,0,0,0),
1730 7478 kellanved
                                array(1,1,1,1,1,1,1,1,1),
1731 7478 kellanved
                                array(0,0,0,0,0,0,0,0,0),
1732 7478 kellanved
                        ),
1733 7478 kellanved
                        '3' => array(
1734 7478 kellanved
                                array(0,0,1,1,1,1,1,0,0),
1735 7478 kellanved
                                array(0,1,0,0,0,0,0,1,0),
1736 7478 kellanved
                                array(1,0,0,0,0,0,0,0,1),
1737 7478 kellanved
                                array(0,0,0,0,0,0,0,0,1),
1738 7478 kellanved
                                array(0,0,0,0,0,0,0,0,1),
1739 7478 kellanved
                                array(0,0,0,0,0,0,0,0,1),
1740 7478 kellanved
                                array(0,0,0,0,0,0,0,1,0),
1741 7478 kellanved
                                array(0,0,0,0,0,1,1,0,0),
1742 7478 kellanved
                                array(0,0,0,0,0,0,0,1,0),
1743 7478 kellanved
                                array(0,0,0,0,0,0,0,0,1),
1744 7478 kellanved
                                array(0,0,0,0,0,0,0,0,1),
1745 7478 kellanved
                                array(0,0,0,0,0,0,0,0,1),
1746 7478 kellanved
                                array(1,0,0,0,0,0,0,0,1),
1747 7478 kellanved
                                array(0,1,0,0,0,0,0,1,0),
1748 7478 kellanved
                                array(0,0,1,1,1,1,1,0,0),
1749 7478 kellanved
                        ),
1750 7478 kellanved
                        '4' => array(
1751 7478 kellanved
                                array(0,0,0,0,0,0,1,1,0),
1752 7478 kellanved
                                array(0,0,0,0,0,1,0,1,0),
1753 7478 kellanved
                                array(0,0,0,0,1,0,0,1,0),
1754 7478 kellanved
                                array(0,0,0,1,0,0,0,1,0),
1755 7478 kellanved
                                array(0,0,1,0,0,0,0,1,0),
1756 7478 kellanved
                                array(0,1,0,0,0,0,0,1,0),
1757 7478 kellanved
                                array(1,0,0,0,0,0,0,1,0),
1758 7478 kellanved
                                array(1,0,0,0,0,0,0,1,0),
1759 7478 kellanved
                                array(1,1,1,1,1,1,1,1,1),
1760 7478 kellanved
                                array(0,0,0,0,0,0,0,1,0),
1761 7478 kellanved
                                array(0,0,0,0,0,0,0,1,0),
1762 7478 kellanved
                                array(0,0,0,0,0,0,0,1,0),
1763 7478 kellanved
                                array(0,0,0,0,0,0,0,1,0),
1764 7478 kellanved
                                array(0,0,0,0,0,0,0,1,0),
1765 7478 kellanved
                                array(0,0,0,0,0,0,0,1,0),
1766 7478 kellanved
                        ),
1767 7478 kellanved
                        '5' => array(
1768 7478 kellanved
                                array(1,1,1,1,1,1,1,1,1),
1769 7478 kellanved
                                array(1,0,0,0,0,0,0,0,0),
1770 7478 kellanved
                                array(1,0,0,0,0,0,0,0,0),
1771 7478 kellanved
                                array(1,0,0,0,0,0,0,0,0),
1772 7478 kellanved
                                array(1,0,0,0,0,0,0,0,0),
1773 7478 kellanved
                                array(0,1,0,0,0,0,0,0,0),
1774 7478 kellanved
                                array(0,0,1,1,1,1,1,0,0),
1775 7478 kellanved
                                array(0,0,0,0,0,0,0,1,0),
1776 7478 kellanved
                                array(0,0,0,0,0,0,0,0,1),
1777 7478 kellanved
                                array(0,0,0,0,0,0,0,0,1),
1778 7478 kellanved
                                array(0,0,0,0,0,0,0,0,1),
1779 7478 kellanved
                                array(0,0,0,0,0,0,0,0,1),
1780 7478 kellanved
                                array(1,0,0,0,0,0,0,0,1),
1781 7478 kellanved
                                array(0,1,0,0,0,0,0,1,0),
1782 7478 kellanved
                                array(0,0,1,1,1,1,1,0,0),
1783 7478 kellanved
                        ),
1784 7478 kellanved
                        '6' => array(
1785 7478 kellanved
                                array(0,0,1,1,1,1,1,0,0),
1786 7478 kellanved
                                array(0,1,0,0,0,0,0,1,0),
1787 7478 kellanved
                                array(1,0,0,0,0,0,0,0,1),
1788 7478 kellanved
                                array(1,0,0,0,0,0,0,0,1),
1789 7478 kellanved
                                array(1,0,0,0,0,0,0,0,0),
1790 7478 kellanved
                                array(1,0,0,0,0,0,0,0,0),
1791 7478 kellanved
                                array(1,0,0,1,1,1,1,0,0),
1792 7478 kellanved
                                array(1,0,1,0,0,0,0,1,0),
1793 7478 kellanved
                                array(1,1,0,0,0,0,0,0,1),
1794 7478 kellanved
                                array(1,0,0,0,0,0,0,0,1),
1795 7478 kellanved
                                array(1,0,0,0,0,0,0,0,1),
1796 7478 kellanved
                                array(1,0,0,0,0,0,0,0,1),
1797 7478 kellanved
                                array(1,0,0,0,0,0,0,0,1),
1798 7478 kellanved
                                array(0,1,0,0,0,0,0,1,0),
1799 7478 kellanved
                                array(0,0,1,1,1,1,1,0,0),
1800 7478 kellanved
                        ),
1801 7478 kellanved
                        '7' => array(
1802 7478 kellanved
                                array(1,1,1,1,1,1,1,1,1),
1803 7478 kellanved
                                array(0,0,0,0,0,0,0,0,1),
1804 7478 kellanved
                                array(0,0,0,0,0,0,0,1,0),
1805 7478 kellanved
                                array(0,0,0,0,0,0,0,1,0),
1806 7478 kellanved
                                array(0,0,0,0,0,0,1,0,0),
1807 7478 kellanved
                                array(0,0,0,0,0,1,0,0,0),
1808 7478 kellanved
                                array(0,0,0,0,0,1,0,0,0),
1809 7478 kellanved
                                array(0,0,0,0,1,0,0,0,0),
1810 7478 kellanved
                                array(0,0,0,1,0,0,0,0,0),
1811 7478 kellanved
                                array(0,0,0,1,0,0,0,0,0),
1812 7478 kellanved
                                array(0,0,1,0,0,0,0,0,0),
1813 7478 kellanved
                                array(0,1,0,0,0,0,0,0,0),
1814 7478 kellanved
                                array(0,1,0,0,0,0,0,0,0),
1815 7478 kellanved
                                array(1,0,0,0,0,0,0,0,0),
1816 7478 kellanved
                                array(1,0,0,0,0,0,0,0,0),
1817 7478 kellanved
                        ),
1818 7478 kellanved
                        '8' => array(
1819 7478 kellanved
                                array(0,0,1,1,1,1,1,0,0),
1820 7478 kellanved
                                array(0,1,0,0,0,0,0,1,0),
1821 7478 kellanved
                                array(1,0,0,0,0,0,0,0,1),
1822 7478 kellanved
                                array(1,0,0,0,0,0,0,0,1),
1823 7478 kellanved
                                array(1,0,0,0,0,0,0,0,1),
1824 7478 kellanved
                                array(1,0,0,0,0,0,0,0,1),
1825 7478 kellanved
                                array(0,1,0,0,0,0,0,1,0),
1826 7478 kellanved
                                array(0,0,1,1,1,1,1,0,0),
1827 7478 kellanved
                                array(0,1,0,0,0,0,0,1,0),
1828 7478 kellanved
                                array(1,0,0,0,0,0,0,0,1),
1829 7478 kellanved
                                array(1,0,0,0,0,0,0,0,1),
1830 7478 kellanved
                                array(1,0,0,0,0,0,0,0,1),
1831 7478 kellanved
                                array(1,0,0,0,0,0,0,0,1),
1832 7478 kellanved
                                array(0,1,0,0,0,0,0,1,0),
1833 7478 kellanved
                                array(0,0,1,1,1,1,1,0,0),
1834 7478 kellanved
                        ),
1835 7478 kellanved
                        '9' => array(
1836 7478 kellanved
                                array(0,0,1,1,1,1,1,0,0),
1837 7478 kellanved
                                array(0,1,0,0,0,0,0,1,0),
1838 7478 kellanved
                                array(1,0,0,0,0,0,0,0,1),
1839 7478 kellanved
                                array(1,0,0,0,0,0,0,0,1),
1840 7478 kellanved
                                array(1,0,0,0,0,0,0,0,1),
1841 7478 kellanved
                                array(1,0,0,0,0,0,0,0,1),
1842 7478 kellanved
                                array(1,0,0,0,0,0,0,1,1),
1843 7478 kellanved
                                array(0,1,0,0,0,0,1,0,1),
1844 7478 kellanved
                                array(0,0,1,1,1,1,0,0,1),
1845 7478 kellanved
                                array(0,0,0,0,0,0,0,0,1),
1846 7478 kellanved
                                array(0,0,0,0,0,0,0,0,1),
1847 7478 kellanved
                                array(1,0,0,0,0,0,0,0,1),
1848 7478 kellanved
                                array(1,0,0,0,0,0,0,0,1),
1849 7478 kellanved
                                array(0,1,0,0,0,0,0,1,0),
1850 7478 kellanved
                                array(0,0,1,1,1,1,1,0,0),
1851 7478 kellanved
                        ),
1852 7478 kellanved
                        )
1853 7478 kellanved
                );
1854 7478 kellanved
        }
1855 7478 kellanved
}
1856 7478 kellanved
1857 7478 kellanved
/**
1858 7478 kellanved
* @package VC
1859 7478 kellanved
*/
1860 7478 kellanved
class char_cube3d
1861 7478 kellanved
{
1862 7478 kellanved
        var $bitmap;
1863 7478 kellanved
        var $bitmap_width;
1864 7478 kellanved
        var $bitmap_height;
1865 7478 kellanved
1866 7478 kellanved
        var $basis_matrix = array(array(1, 0, 0), array(0, 1, 0), array(0, 0, 1));
1867 7478 kellanved
        var $abs_x = array(1, 0);
1868 7478 kellanved
        var $abs_y = array(0, 1);
1869 7478 kellanved
        var $x = 0;
1870 7478 kellanved
        var $y = 1;
1871 7478 kellanved
        var $z = 2;
1872 7478 kellanved
        var $letter = '';
1873 7478 kellanved
1874 7478 kellanved
        /**
1875 7478 kellanved
        */
1876 7478 kellanved
        function char_cube3d(&$bitmaps, $letter)
1877 7478 kellanved
        {
1878 7478 kellanved
                $this->bitmap                        = $bitmaps['data'][$letter];
1879 7478 kellanved
                $this->bitmap_width                = $bitmaps['width'];
1880 7478 kellanved
                $this->bitmap_height        = $bitmaps['height'];
1881 7478 kellanved
1882 7478 kellanved
                $this->basis_matrix[0][0] = mt_rand(-600, 600);
1883 7478 kellanved
                $this->basis_matrix[0][1] = mt_rand(-600, 600);
1884 7478 kellanved
                $this->basis_matrix[0][2] = (mt_rand(0, 1) * 2000) - 1000;
1885 7478 kellanved
                $this->basis_matrix[1][0] = mt_rand(-1000, 1000);
1886 7478 kellanved
                $this->basis_matrix[1][1] = mt_rand(-1000, 1000);
1887 7478 kellanved
                $this->basis_matrix[1][2] = mt_rand(-1000, 1000);
1888 7478 kellanved
1889 7478 kellanved
                $this->normalize($this->basis_matrix[0]);
1890 7478 kellanved
                $this->normalize($this->basis_matrix[1]);
1891 7478 kellanved
                $this->basis_matrix[2] = $this->cross_product($this->basis_matrix[0], $this->basis_matrix[1]);
1892 7478 kellanved
                $this->normalize($this->basis_matrix[2]);
1893 7478 kellanved
1894 7478 kellanved
                // $this->basis_matrix[1] might not be (probably isn't) orthogonal to $basis_matrix[0]
1895 7478 kellanved
                $this->basis_matrix[1] = $this->cross_product($this->basis_matrix[0], $this->basis_matrix[2]);
1896 7478 kellanved
                $this->normalize($this->basis_matrix[1]);
1897 7478 kellanved
1898 7478 kellanved
                // Make sure our cube is facing into the canvas (assuming +z == in)
1899 7478 kellanved
                for ($i = 0; $i < 3; ++$i)
1900 7478 kellanved
                {
1901 7478 kellanved
                        if ($this->basis_matrix[$i][2] < 0)
1902 6267 davidmj
                        {
1903 7478 kellanved
                                $this->basis_matrix[$i][0] *= -1;
1904 7478 kellanved
                                $this->basis_matrix[$i][1] *= -1;
1905 7478 kellanved
                                $this->basis_matrix[$i][2] *= -1;
1906 5985 davidmj
                        }
1907 5985 davidmj
                }
1908 6133 davidmj
1909 7478 kellanved
                // Force our "z" basis vector to be the one with greatest absolute z value
1910 7478 kellanved
                $this->x = 0;
1911 7478 kellanved
                $this->y = 1;
1912 7478 kellanved
                $this->z = 2;
1913 7478 kellanved
1914 7478 kellanved
                // Swap "y" with "z"
1915 7478 kellanved
                if ($this->basis_matrix[1][2] > $this->basis_matrix[2][2])
1916 5862 davidmj
                {
1917 7478 kellanved
                        $this->z = 1;
1918 7478 kellanved
                        $this->y = 2;
1919 7478 kellanved
                }
1920 7478 kellanved
1921 7478 kellanved
                // Swap "x" with "z"
1922 7478 kellanved
                if ($this->basis_matrix[0][2] > $this->basis_matrix[$this->z][2])
1923 7478 kellanved
                {
1924 7478 kellanved
                        $this->x = $this->z;
1925 7478 kellanved
                        $this->z = 0;
1926 7478 kellanved
                }
1927 7478 kellanved
1928 7478 kellanved
                // Still need to determine which of $x,$y are which.
1929 7478 kellanved
                // wrong orientation if y's y-component is less than it's x-component
1930 7478 kellanved
                // likewise if x's x-component is less than it's y-component
1931 7478 kellanved
                // if they disagree, go with the one with the greater weight difference.
1932 7478 kellanved
                // rotate if positive
1933 7478 kellanved
                $weight = (abs($this->basis_matrix[$this->x][1]) - abs($this->basis_matrix[$this->x][0])) + (abs($this->basis_matrix[$this->y][0]) - abs($this->basis_matrix[$this->y][1]));
1934 7478 kellanved
1935 7478 kellanved
                // Swap "x" with "y"
1936 7478 kellanved
                if ($weight > 0)
1937 7478 kellanved
                {
1938 7478 kellanved
                        list($this->x, $this->y) = array($this->y, $this->x);
1939 7478 kellanved
                }
1940 7478 kellanved
1941 7478 kellanved
                $this->abs_x = array($this->basis_matrix[$this->x][0], $this->basis_matrix[$this->x][1]);
1942 7478 kellanved
                $this->abs_y = array($this->basis_matrix[$this->y][0], $this->basis_matrix[$this->y][1]);
1943 7478 kellanved
1944 7478 kellanved
                if ($this->abs_x[0] < 0)
1945 7478 kellanved
                {
1946 7478 kellanved
                        $this->abs_x[0] *= -1;
1947 7478 kellanved
                        $this->abs_x[1] *= -1;
1948 7478 kellanved
                }
1949 7478 kellanved
1950 7478 kellanved
                if ($this->abs_y[1] > 0)
1951 7478 kellanved
                {
1952 7478 kellanved
                        $this->abs_y[0] *= -1;
1953 7478 kellanved
                        $this->abs_y[1] *= -1;
1954 7478 kellanved
                }
1955 7478 kellanved
1956 7478 kellanved
                $this->letter = $letter;
1957 7478 kellanved
        }
1958 7478 kellanved
1959 7478 kellanved
        /**
1960 7478 kellanved
        * Draw a character
1961 7478 kellanved
        */
1962 7478 kellanved
        function drawchar($scale, $xoff, $yoff, $img, $background, $colours)
1963 7478 kellanved
        {
1964 7478 kellanved
                $width        = $this->bitmap_width;
1965 7478 kellanved
                $height        = $this->bitmap_height;
1966 7478 kellanved
                $bitmap        = $this->bitmap;
1967 7478 kellanved
1968 7478 kellanved
                $colour1 = $colours[array_rand($colours)];
1969 7478 kellanved
                $colour2 = $colours[array_rand($colours)];
1970 7478 kellanved
1971 7478 kellanved
                $swapx = ($this->basis_matrix[$this->x][0] > 0);
1972 7478 kellanved
                $swapy = ($this->basis_matrix[$this->y][1] < 0);
1973 7478 kellanved
1974 7478 kellanved
                for ($y = 0; $y < $height; ++$y)
1975 7478 kellanved
                {
1976 7478 kellanved
                        for ($x = 0; $x < $width; ++$x)
1977 5862 davidmj
                        {
1978 7478 kellanved
                                $xp = ($swapx) ? ($width - $x - 1) : $x;
1979 7478 kellanved
                                $yp = ($swapy) ? ($height - $y - 1) : $y;
1980 7478 kellanved
1981 7478 kellanved
                                if ($bitmap[$height - $yp - 1][$xp])
1982 7478 kellanved
                                {
1983 7478 kellanved
                                        $dx = $this->scale($this->abs_x, ($xp - ($swapx ? ($width / 2) : ($width / 2) - 1)) * $scale);
1984 7478 kellanved
                                        $dy = $this->scale($this->abs_y, ($yp - ($swapy ? ($height / 2) : ($height / 2) - 1)) * $scale);
1985 7478 kellanved
                                        $xo = $xoff + $dx[0] + $dy[0];
1986 7478 kellanved
                                        $yo = $yoff + $dx[1] + $dy[1];
1987 7478 kellanved
1988 7478 kellanved
                                        $origin = array(0, 0, 0);
1989 7478 kellanved
                                        $xvec = $this->scale($this->basis_matrix[$this->x], $scale);
1990 7478 kellanved
                                        $yvec = $this->scale($this->basis_matrix[$this->y], $scale);
1991 7478 kellanved
                                        $face_corner = $this->sum2($xvec, $yvec);
1992 7478 kellanved
1993 7478 kellanved
                                        $zvec = $this->scale($this->basis_matrix[$this->z], $scale);
1994 7478 kellanved
                                        $x_corner = $this->sum2($xvec, $zvec);
1995 7478 kellanved
                                        $y_corner = $this->sum2($yvec, $zvec);
1996 7478 kellanved
1997 7478 kellanved
                                        imagefilledpolygon($img, $this->gen_poly($xo, $yo, $origin, $xvec, $x_corner,$zvec), 4, $colour1);
1998 7478 kellanved
                                        imagefilledpolygon($img, $this->gen_poly($xo, $yo, $origin, $yvec, $y_corner,$zvec), 4, $colour2);
1999 7478 kellanved
2000 7478 kellanved
                                        $face = $this->gen_poly($xo, $yo, $origin, $xvec, $face_corner, $yvec);
2001 7478 kellanved
2002 7478 kellanved
                                        imagefilledpolygon($img, $face, 4, $background);
2003 7478 kellanved
                                        imagepolygon($img, $face, 4, $colour1);
2004 7478 kellanved
                                }
2005 5862 davidmj
                        }
2006 5862 davidmj
                }
2007 7478 kellanved
        }
2008 7478 kellanved
2009 7478 kellanved
        /*
2010 7478 kellanved
        * return a roughly acceptable range of sizes for rendering with this texttype
2011 7478 kellanved
        */
2012 7478 kellanved
        function range()
2013 7478 kellanved
        {
2014 7478 kellanved
                return array(3, 4);
2015 7478 kellanved
        }
2016 7478 kellanved
2017 7478 kellanved
        /**
2018 7478 kellanved
        * Vector length
2019 7478 kellanved
        */
2020 7478 kellanved
        function vectorlen($vector)
2021 7478 kellanved
        {
2022 7478 kellanved
                return sqrt(pow($vector[0], 2) + pow($vector[1], 2) + pow($vector[2], 2));
2023 7478 kellanved
        }
2024 7478 kellanved
2025 7478 kellanved
        /**
2026 7478 kellanved
        * Normalize
2027 7478 kellanved
        */
2028 7478 kellanved
        function normalize(&$vector, $length = 1)
2029 7478 kellanved
        {
2030 7478 kellanved
                $length = (( $length < 1) ? 1 : $length);
2031 7478 kellanved
                $length /= $this->vectorlen($vector);
2032 7478 kellanved
                $vector[0] *= $length;
2033 7478 kellanved
                $vector[1] *= $length;
2034 7478 kellanved
                $vector[2] *= $length;
2035 7478 kellanved
        }
2036 7478 kellanved
2037 7478 kellanved
        /**
2038 7478 kellanved
        */
2039 7478 kellanved
        function cross_product($vector1, $vector2)
2040 7478 kellanved
        {
2041 7478 kellanved
                $retval = array(0, 0, 0);
2042 7478 kellanved
                $retval[0] =  (($vector1[1] * $vector2[2]) - ($vector1[2] * $vector2[1]));
2043 7478 kellanved
                $retval[1] = -(($vector1[0] * $vector2[2]) - ($vector1[2] * $vector2[0]));
2044 7478 kellanved
                $retval[2] =  (($vector1[0] * $vector2[1]) - ($vector1[1] * $vector2[0]));
2045 7478 kellanved
2046 7478 kellanved
                return $retval;
2047 7478 kellanved
        }
2048 7478 kellanved
2049 7478 kellanved
        /**
2050 7478 kellanved
        */
2051 7478 kellanved
        function sum($vector1, $vector2)
2052 7478 kellanved
        {
2053 7478 kellanved
                return array($vector1[0] + $vector2[0], $vector1[1] + $vector2[1], $vector1[2] + $vector2[2]);
2054 7478 kellanved
        }
2055 7478 kellanved
2056 7478 kellanved
        /**
2057 7478 kellanved
        */
2058 7478 kellanved
        function sum2($vector1, $vector2)
2059 7478 kellanved
        {
2060 7478 kellanved
                return array($vector1[0] + $vector2[0], $vector1[1] + $vector2[1]);
2061 7478 kellanved
        }
2062 7478 kellanved
2063 7478 kellanved
        /**
2064 7478 kellanved
        */
2065 7478 kellanved
        function scale($vector, $length)
2066 7478 kellanved
        {
2067 7478 kellanved
                if (sizeof($vector) == 2)
2068 5862 davidmj
                {
2069 7478 kellanved
                        return array($vector[0] * $length, $vector[1] * $length);
2070 7478 kellanved
                }
2071 7478 kellanved
2072 7478 kellanved
                return array($vector[0] * $length, $vector[1] * $length, $vector[2] * $length);
2073 7478 kellanved
        }
2074 7478 kellanved
2075 7478 kellanved
        /**
2076 7478 kellanved
        */
2077 7478 kellanved
        function gen_poly($xoff, $yoff, &$vec1, &$vec2, &$vec3, &$vec4)
2078 7478 kellanved
        {
2079 7478 kellanved
                $poly = array();
2080 7478 kellanved
                $poly[0] = $xoff + $vec1[0];
2081 7478 kellanved
                $poly[1] = $yoff + $vec1[1];
2082 7478 kellanved
                $poly[2] = $xoff + $vec2[0];
2083 7478 kellanved
                $poly[3] = $yoff + $vec2[1];
2084 7478 kellanved
                $poly[4] = $xoff + $vec3[0];
2085 7478 kellanved
                $poly[5] = $yoff + $vec3[1];
2086 7478 kellanved
                $poly[6] = $xoff + $vec4[0];
2087 7478 kellanved
                $poly[7] = $yoff + $vec4[1];
2088 7478 kellanved
2089 7478 kellanved
                return $poly;
2090 7478 kellanved
        }
2091 7478 kellanved
2092 7478 kellanved
        /**
2093 7478 kellanved
        * dimensions
2094 7478 kellanved
        */
2095 7478 kellanved
        function dimensions($size)
2096 7478 kellanved
        {
2097 7478 kellanved
                $xn = $this->scale($this->basis_matrix[$this->x], -($this->bitmap_width / 2) * $size);
2098 7478 kellanved
                $xp = $this->scale($this->basis_matrix[$this->x], ($this->bitmap_width / 2) * $size);
2099 7478 kellanved
                $yn = $this->scale($this->basis_matrix[$this->y], -($this->bitmap_height / 2) * $size);
2100 7478 kellanved
                $yp = $this->scale($this->basis_matrix[$this->y], ($this->bitmap_height / 2) * $size);
2101 7478 kellanved
2102 7478 kellanved
                $p = array();
2103 7478 kellanved
                $p[0] = $this->sum2($xn, $yn);
2104 7478 kellanved
                $p[1] = $this->sum2($xp, $yn);
2105 7478 kellanved
                $p[2] = $this->sum2($xp, $yp);
2106 7478 kellanved
                $p[3] = $this->sum2($xn, $yp);
2107 7478 kellanved
2108 7478 kellanved
                $min_x = $max_x = $p[0][0];
2109 7478 kellanved
                $min_y = $max_y = $p[0][1];
2110 7478 kellanved
2111 7478 kellanved
                for ($i = 1; $i < 4; ++$i)
2112 7478 kellanved
                {
2113 7478 kellanved
                        $min_x = ($min_x > $p[$i][0]) ? $p[$i][0] : $min_x;
2114 7478 kellanved
                        $min_y = ($min_y > $p[$i][1]) ? $p[$i][1] : $min_y;
2115 7478 kellanved
                        $max_x = ($max_x < $p[$i][0]) ? $p[$i][0] : $max_x;
2116 7478 kellanved
                        $max_y = ($max_y < $p[$i][1]) ? $p[$i][1] : $max_y;
2117 7478 kellanved
                }
2118 7478 kellanved
2119 7478 kellanved
                return array($min_x, $min_y, $max_x, $max_y);
2120 7478 kellanved
        }
2121 7478 kellanved
}
2122 7478 kellanved
2123 7478 kellanved
/**
2124 7478 kellanved
* @package VC
2125 7478 kellanved
*/
2126 7478 kellanved
class colour_manager
2127 7478 kellanved
{
2128 7478 kellanved
        var $img;
2129 7478 kellanved
        var $mode;
2130 7478 kellanved
        var $colours;
2131 7478 kellanved
        var $named_colours;
2132 7478 kellanved
2133 7478 kellanved
        /**
2134 7478 kellanved
        * Create the colour manager, link it to the image resource
2135 7478 kellanved
        */
2136 7478 kellanved
        function colour_manager($img, $background = false, $mode = 'ahsv')
2137 7478 kellanved
        {
2138 7478 kellanved
                $this->img = $img;
2139 7478 kellanved
                $this->mode = $mode;
2140 7478 kellanved
                $this->colours = array();
2141 7478 kellanved
                $this->named_colours = array();
2142 7478 kellanved
2143 7478 kellanved
                if ($background !== false)
2144 7478 kellanved
                {
2145 7478 kellanved
                        $bg = $this->allocate_named('background', $background);
2146 7478 kellanved
                        imagefill($this->img, 0, 0, $bg);
2147 7478 kellanved
                }
2148 7478 kellanved
        }
2149 7478 kellanved
2150 7478 kellanved
        /**
2151 7478 kellanved
        * Lookup a named colour resource
2152 7478 kellanved
        */
2153 7478 kellanved
        function get_resource($named_colour)
2154 7478 kellanved
        {
2155 7478 kellanved
                if (isset($this->named_colours[$named_colour]))
2156 7478 kellanved
                {
2157 7478 kellanved
                        return $this->named_colours[$named_colour];
2158 7478 kellanved
                }
2159 7478 kellanved
2160 7478 kellanved
                if (isset($this->named_rgb[$named_colour]))
2161 7478 kellanved
                {
2162 7478 kellanved
                        return $this->allocate_named($named_colour, $this->named_rgb[$named_colour], 'rgb');
2163 7478 kellanved
                }
2164 7478 kellanved
2165 7478 kellanved
                return false;
2166 7478 kellanved
        }
2167 7478 kellanved
2168 7478 kellanved
        /**
2169 7478 kellanved
        * Assign a name to a colour resource
2170 7478 kellanved
        */
2171 7478 kellanved
        function name_colour($name, $resource)
2172 7478 kellanved
        {
2173 7478 kellanved
                $this->named_colours[$name] = $resource;
2174 7478 kellanved
        }
2175 7478 kellanved
2176 7478 kellanved
        /**
2177 7478 kellanved
        * names and allocates a colour resource
2178 7478 kellanved
        */
2179 7478 kellanved
        function allocate_named($name, $colour, $mode = false)
2180 7478 kellanved
        {
2181 7478 kellanved
                $resource = $this->allocate($colour, $mode);
2182 7478 kellanved
2183 7478 kellanved
                if ($resource !== false)
2184 7478 kellanved
                {
2185 7478 kellanved
                        $this->name_colour($name, $resource);
2186 7478 kellanved
                }
2187 7478 kellanved
                return $resource;
2188 7478 kellanved
        }
2189 7478 kellanved
2190 7478 kellanved
        /**
2191 7478 kellanved
        * allocates a specified colour into the image
2192 7478 kellanved
        */
2193 7478 kellanved
        function allocate($colour, $mode = false)
2194 7478 kellanved
        {
2195 7478 kellanved
                if ($mode === false)
2196 7478 kellanved
                {
2197 7478 kellanved
                        $mode = $this->mode;
2198 7478 kellanved
                }
2199 7486 kellanved
2200 7478 kellanved
                if (!is_array($colour))
2201 7478 kellanved
                {
2202 7478 kellanved
                        if (isset($this->named_rgb[$colour]))
2203 5862 davidmj
                        {
2204 7478 kellanved
                                return $this->allocate_named($colour, $this->named_rgb[$colour], 'rgb');
2205 5862 davidmj
                        }
2206 6584 acydburn
2207 7478 kellanved
                        if (!is_int($colour))
2208 5862 davidmj
                        {
2209 7478 kellanved
                                return false;
2210 5862 davidmj
                        }
2211 7478 kellanved
2212 7478 kellanved
                        $mode = 'rgb';
2213 7478 kellanved
                        $colour = array(255 & ($colour >> 16), 255 & ($colour >>  8), 255 & $colour);
2214 5862 davidmj
                }
2215 5862 davidmj
2216 7478 kellanved
                if (isset($colour['mode']))
2217 7478 kellanved
                {
2218 7478 kellanved
                        $mode = $colour['mode'];
2219 7478 kellanved
                        unset($colour['mode']);
2220 7478 kellanved
                }
2221 5862 davidmj
2222 7478 kellanved
                if (isset($colour['random']))
2223 5862 davidmj
                {
2224 7478 kellanved
                        unset($colour['random']);
2225 7478 kellanved
                        // everything else is params
2226 7478 kellanved
                        return $this->random_colour($colour, $mode);
2227 7478 kellanved
                }
2228 8147 acydburn
2229 7486 kellanved
                $rgb                = colour_manager::model_convert($colour, $mode, 'rgb');
2230 7478 kellanved
                $store                = ($this->mode == 'rgb') ? $rgb : colour_manager::model_convert($colour, $mode, $this->mode);
2231 7478 kellanved
                $resource        = imagecolorallocate($this->img, $rgb[0], $rgb[1], $rgb[2]);
2232 7478 kellanved
                $this->colours[$resource] = $store;
2233 5862 davidmj
2234 7478 kellanved
                return $resource;
2235 7478 kellanved
        }
2236 7478 kellanved
2237 7478 kellanved
        /**
2238 7478 kellanved
        * randomly generates a colour, with optional params
2239 7478 kellanved
        */
2240 7478 kellanved
        function random_colour($params = array(), $mode = false)
2241 7478 kellanved
        {
2242 7478 kellanved
                if ($mode === false)
2243 7478 kellanved
                {
2244 7478 kellanved
                        $mode = $this->mode;
2245 5862 davidmj
                }
2246 5862 davidmj
2247 7478 kellanved
                switch ($mode)
2248 7478 kellanved
                {
2249 7478 kellanved
                        case 'rgb':
2250 7478 kellanved
                                // @TODO random rgb generation. do we intend to do this, or is it just too tedious?
2251 7478 kellanved
                        break;
2252 7478 kellanved
2253 7478 kellanved
                        case 'ahsv':
2254 7478 kellanved
                        case 'hsv':
2255 7478 kellanved
                        default:
2256 7478 kellanved
2257 7478 kellanved
                                $default_params = array(
2258 7478 kellanved
                                        'hue_bias'                        => false,        // degree / 'r'/'g'/'b'/'c'/'m'/'y'   /'o'
2259 7478 kellanved
                                        'hue_range'                        => false,        // if hue bias, then difference range +/- from bias
2260 7478 kellanved
                                        'min_saturation'        => 30,                // 0 - 100
2261 7486 kellanved
                                        'max_saturation'        => 80,                // 0 - 100
2262 7478 kellanved
                                        'min_value'                        => 30,                // 0 - 100
2263 7486 kellanved
                                        'max_value'                        => 80,                // 0 - 100
2264 7478 kellanved
                                );
2265 7478 kellanved
2266 7478 kellanved
                                $alt = ($mode == 'ahsv') ? true : false;
2267 7478 kellanved
                                $params = array_merge($default_params, $params);
2268 7478 kellanved
2269 7478 kellanved
                                $min_hue                = 0;
2270 7478 kellanved
                                $max_hue                = 359;
2271 7478 kellanved
                                $min_saturation        = max(0, $params['min_saturation']);
2272 7478 kellanved
                                $max_saturation        = min(100, $params['max_saturation']);
2273 7478 kellanved
                                $min_value                = max(0, $params['min_value']);
2274 7478 kellanved
                                $max_value                = min(100, $params['max_value']);
2275 7478 kellanved
2276 7478 kellanved
                                if ($params['hue_bias'] !== false)
2277 7478 kellanved
                                {
2278 7478 kellanved
                                        if (is_numeric($params['hue_bias']))
2279 7478 kellanved
                                        {
2280 7478 kellanved
                                                $h = intval($params['hue_bias']) % 360;
2281 7478 kellanved
                                        }
2282 7478 kellanved
                                        else
2283 7478 kellanved
                                        {
2284 7478 kellanved
                                                switch ($params['hue_bias'])
2285 7478 kellanved
                                                {
2286 7478 kellanved
                                                        case 'o':
2287 7478 kellanved
                                                                $h = $alt ?  60 :  30;
2288 7478 kellanved
                                                        break;
2289 7478 kellanved
2290 7478 kellanved
                                                        case 'y':
2291 7478 kellanved
                                                                $h = $alt ? 120 :  60;
2292 7478 kellanved
                                                        break;
2293 7478 kellanved
2294 7478 kellanved
                                                        case 'g':
2295 7478 kellanved
                                                                $h = $alt ? 180 : 120;
2296 7478 kellanved
                                                        break;
2297 7478 kellanved
2298 7478 kellanved
                                                        case 'c':
2299 7478 kellanved
                                                                $h = $alt ? 210 : 180;
2300 7478 kellanved
                                                        break;
2301 7478 kellanved
2302 7478 kellanved
                                                        case 'b':
2303 7478 kellanved
                                                                $h = 240;
2304 7478 kellanved
                                                        break;
2305 7478 kellanved
2306 7478 kellanved
                                                        case 'm':
2307 7478 kellanved
                                                                $h = 300;
2308 7478 kellanved
                                                        break;
2309 7478 kellanved
2310 7478 kellanved
                                                        case 'r':
2311 7478 kellanved
                                                        default:
2312 7478 kellanved
                                                                $h = 0;
2313 7478 kellanved
                                                        break;
2314 7478 kellanved
                                                }
2315 7478 kellanved
                                        }
2316 7478 kellanved
2317 7478 kellanved
                                        $min_hue = $h + 360;
2318 7478 kellanved
                                        $max_hue = $h + 360;
2319 7478 kellanved
2320 7478 kellanved
                                        if ($params['hue_range'])
2321 7478 kellanved
                                        {
2322 7478 kellanved
                                                $min_hue -= min(180, $params['hue_range']);
2323 7478 kellanved
                                                $max_hue += min(180, $params['hue_range']);
2324 7478 kellanved
                                        }
2325 7478 kellanved
                                }
2326 7478 kellanved
2327 7478 kellanved
                                $h = mt_rand($min_hue, $max_hue);
2328 7478 kellanved
                                $s = mt_rand($min_saturation, $max_saturation);
2329 7478 kellanved
                                $v = mt_rand($min_value, $max_value);
2330 7478 kellanved
2331 7478 kellanved
                                return $this->allocate(array($h, $s, $v), $mode);
2332 7478 kellanved
2333 7478 kellanved
                        break;
2334 7478 kellanved
                }
2335 5862 davidmj
        }
2336 5862 davidmj
2337 7478 kellanved
        /**
2338 7478 kellanved
        */
2339 7478 kellanved
        function colour_scheme($resource, $include_original = true)
2340 5862 davidmj
        {
2341 7486 kellanved
                $mode = 'hsv';
2342 7478 kellanved
2343 7478 kellanved
                if (($pre = $this->get_resource($resource)) !== false)
2344 6267 davidmj
                {
2345 7478 kellanved
                        $resource = $pre;
2346 7478 kellanved
                }
2347 6912 acydburn
2348 7478 kellanved
                $colour = colour_manager::model_convert($this->colours[$resource], $this->mode, $mode);
2349 7478 kellanved
                $results = ($include_original) ? array($resource) : array();
2350 7478 kellanved
                $colour2 = $colour3 = $colour4 = $colour;
2351 8147 acydburn
                $colour2[0] += 150;
2352 7486 kellanved
                $colour3[0] += 180;
2353 7486 kellanved
                $colour4[0] += 210;
2354 7478 kellanved
2355 7486 kellanved
2356 7478 kellanved
                $results[] = $this->allocate($colour2, $mode);
2357 7478 kellanved
                $results[] = $this->allocate($colour3, $mode);
2358 7478 kellanved
                $results[] = $this->allocate($colour4, $mode);
2359 7478 kellanved
2360 7478 kellanved
                return $results;
2361 7478 kellanved
        }
2362 7478 kellanved
2363 7478 kellanved
        /**
2364 7478 kellanved
        */
2365 7478 kellanved
        function mono_range($resource, $count = 5, $include_original = true)
2366 7478 kellanved
        {
2367 7478 kellanved
                if (is_array($resource))
2368 7478 kellanved
                {
2369 7478 kellanved
                        $results = array();
2370 7478 kellanved
                        for ($i = 0, $size = sizeof($resource); $i < $size; ++$i)
2371 6912 acydburn
                        {
2372 7478 kellanved
                                $results = array_merge($results, $this->mono_range($resource[$i], $count, $include_original));
2373 6912 acydburn
                        }
2374 7478 kellanved
                        return $results;
2375 7478 kellanved
                }
2376 6912 acydburn
2377 7478 kellanved
                $mode = (in_array($this->mode, array('hsv', 'ahsv'), true) ? $this->mode : 'ahsv');
2378 7478 kellanved
                if (($pre = $this->get_resource($resource)) !== false)
2379 7478 kellanved
                {
2380 7478 kellanved
                        $resource = $pre;
2381 7478 kellanved
                }
2382 7478 kellanved
2383 7478 kellanved
                $colour = colour_manager::model_convert($this->colours[$resource], $this->mode, $mode);
2384 7478 kellanved
2385 7478 kellanved
                $results = array();
2386 7478 kellanved
                if ($include_original)
2387 7478 kellanved
                {
2388 7478 kellanved
                        $results[] = $resource;
2389 7478 kellanved
                        $count--;
2390 7478 kellanved
                }
2391 7478 kellanved
2392 7486 kellanved
                // This is a hard problem. I chicken out and try to maintain readability at the cost of less randomness.
2393 7486 kellanved
2394 7486 kellanved
                while ($count > 0)
2395 7478 kellanved
                {
2396 7486 kellanved
                        $colour[1] = ($colour[1] + mt_rand(40,60)) % 99;
2397 7486 kellanved
                        $colour[2] = ($colour[2] + mt_rand(40,60));
2398 7486 kellanved
                        $results[] = $this->allocate($colour, $mode);
2399 7486 kellanved
                        $count--;
2400 6267 davidmj
                }
2401 7478 kellanved
                return $results;
2402 6267 davidmj
        }
2403 7478 kellanved
2404 7478 kellanved
        /**
2405 7478 kellanved
        * Convert from one colour model to another
2406 7478 kellanved
        */
2407 7478 kellanved
        function model_convert($colour, $from_model, $to_model)
2408 7478 kellanved
        {
2409 7478 kellanved
                if ($from_model == $to_model)
2410 7478 kellanved
                {
2411 7478 kellanved
                        return $colour;
2412 7478 kellanved
                }
2413 7478 kellanved
2414 7478 kellanved
                switch ($to_model)
2415 7478 kellanved
                {
2416 7478 kellanved
                        case 'hsv':
2417 7478 kellanved
2418 7478 kellanved
                                switch ($from_model)
2419 7478 kellanved
                                {
2420 7478 kellanved
                                        case 'ahsv':
2421 7478 kellanved
                                                return colour_manager::ah2h($colour);
2422 7478 kellanved
                                        break;
2423 7478 kellanved
2424 7478 kellanved
                                        case 'rgb':
2425 7478 kellanved
                                                return colour_manager::rgb2hsv($colour);
2426 7478 kellanved
                                        break;
2427 7478 kellanved
                                }
2428 7478 kellanved
                        break;
2429 7478 kellanved
2430 7478 kellanved
                        case 'ahsv':
2431 7478 kellanved
2432 7478 kellanved
                                switch ($from_model)
2433 7478 kellanved
                                {
2434 7478 kellanved
                                        case 'hsv':
2435 7478 kellanved
                                                return colour_manager::h2ah($colour);
2436 7478 kellanved
                                        break;
2437 7478 kellanved
2438 7478 kellanved
                                        case 'rgb':
2439 7478 kellanved
                                                return colour_manager::h2ah(colour_manager::rgb2hsv($colour));
2440 7478 kellanved
                                        break;
2441 7478 kellanved
                                }
2442 7478 kellanved
                        break;
2443 7478 kellanved
2444 7478 kellanved
                        case 'rgb':
2445 7478 kellanved
                                switch ($from_model)
2446 7478 kellanved
                                {
2447 7478 kellanved
                                        case 'hsv':
2448 7478 kellanved
                                                return colour_manager::hsv2rgb($colour);
2449 7478 kellanved
                                        break;
2450 7478 kellanved
2451 7478 kellanved
                                        case 'ahsv':
2452 7478 kellanved
                                                return colour_manager::hsv2rgb(colour_manager::ah2h($colour));
2453 7478 kellanved
                                        break;
2454 7478 kellanved
                                }
2455 7478 kellanved
                        break;
2456 7478 kellanved
                }
2457 7478 kellanved
                return false;
2458 7478 kellanved
        }
2459 7478 kellanved
2460 7478 kellanved
        /**
2461 7478 kellanved
        * Slightly altered from wikipedia's algorithm
2462 7478 kellanved
        */
2463 7478 kellanved
        function hsv2rgb($hsv)
2464 7478 kellanved
        {
2465 7478 kellanved
                colour_manager::normalize_hue($hsv[0]);
2466 7478 kellanved
2467 7478 kellanved
                $h = $hsv[0];
2468 7478 kellanved
                $s = min(1, max(0, $hsv[1] / 100));
2469 7478 kellanved
                $v = min(1, max(0, $hsv[2] / 100));
2470 8147 acydburn
2471 7478 kellanved
                // calculate hue sector
2472 7478 kellanved
                $hi = floor($hsv[0] / 60);
2473 7478 kellanved
2474 7478 kellanved
                // calculate opposite colour
2475 7478 kellanved
                $p = $v * (1 - $s);
2476 7478 kellanved
2477 7478 kellanved
                // calculate distance between hex vertices
2478 7478 kellanved
                $f = ($h / 60) - $hi;
2479 7478 kellanved
2480 7478 kellanved
                // coming in or going out?
2481 7478 kellanved
                if (!($hi & 1))
2482 7478 kellanved
                {
2483 7478 kellanved
                        $f = 1 - $f;
2484 7478 kellanved
                }
2485 7478 kellanved
2486 7478 kellanved
                // calculate adjacent colour
2487 7478 kellanved
                $q = $v * (1 - ($f * $s));
2488 8147 acydburn
2489 7478 kellanved
                switch ($hi)
2490 7478 kellanved
                {
2491 7478 kellanved
                        case 0:
2492 7478 kellanved
                                $rgb = array($v, $q, $p);
2493 7478 kellanved
                        break;
2494 7478 kellanved
2495 7478 kellanved
                        case 1:
2496 7478 kellanved
                                $rgb = array($q, $v, $p);
2497 7478 kellanved
                        break;
2498 7478 kellanved
2499 7478 kellanved
                        case 2:
2500 7478 kellanved
                                $rgb = array($p, $v, $q);
2501 7478 kellanved
                        break;
2502 7478 kellanved
2503 7478 kellanved
                        case 3:
2504 7478 kellanved
                                $rgb = array($p, $q, $v);
2505 7478 kellanved
                        break;
2506 7478 kellanved
2507 7478 kellanved
                        case 4:
2508 7478 kellanved
                                $rgb = array($q, $p, $v);
2509 7478 kellanved
                        break;
2510 7478 kellanved
2511 7478 kellanved
                        case 5:
2512 7478 kellanved
                                $rgb = array($v, $p, $q);
2513 7478 kellanved
                        break;
2514 7478 kellanved
2515 7478 kellanved
                        default:
2516 7478 kellanved
                                return array(0, 0, 0);
2517 7478 kellanved
                        break;
2518 7478 kellanved
                }
2519 8147 acydburn
2520 7478 kellanved
                return array(255 * $rgb[0], 255 * $rgb[1], 255 * $rgb[2]);
2521 7478 kellanved
        }
2522 7478 kellanved
2523 7478 kellanved
        /**
2524 7478 kellanved
        * (more than) Slightly altered from wikipedia's algorithm
2525 7478 kellanved
        */
2526 7478 kellanved
        function rgb2hsv($rgb)
2527 7478 kellanved
        {
2528 7478 kellanved
                $r = min(255, max(0, $rgb[0]));
2529 7478 kellanved
                $g = min(255, max(0, $rgb[1]));
2530 7478 kellanved
                $b = min(255, max(0, $rgb[2]));
2531 7478 kellanved
                $max = max($r, $g, $b);
2532 7478 kellanved
                $min = min($r, $g, $b);
2533 7478 kellanved
2534 7478 kellanved
                $v = $max / 255;
2535 7478 kellanved
                $s = (!$max) ? 0 : 1 - ($min / $max);
2536 7478 kellanved
2537 7478 kellanved
                // if max - min is 0, we want hue to be 0 anyway.
2538 7478 kellanved
                $h = $max - $min;
2539 7478 kellanved
2540 7478 kellanved
                if ($h)
2541 7478 kellanved
                {
2542 7478 kellanved
                        switch ($max)
2543 7478 kellanved
                        {
2544 7478 kellanved
                                case $g:
2545 7478 kellanved
                                        $h = 120 + (60 * ($b - $r) / $h);
2546 7478 kellanved
                                break;
2547 7478 kellanved
2548 7478 kellanved
                                case $b:
2549 7478 kellanved
                                        $h = 240 + (60 * ($r - $g) / $h);
2550 7478 kellanved
                                break;
2551 7478 kellanved
2552 7478 kellanved
                                case $r:
2553 7478 kellanved
                                        $h = 360 + (60 * ($g - $b) / $h);
2554 7478 kellanved
                                break;
2555 7478 kellanved
                        }
2556 7478 kellanved
                }
2557 7478 kellanved
                colour_manager::normalize_hue($h);
2558 7478 kellanved
2559 7478 kellanved
                return array($h, $s * 100, $v * 100);
2560 7478 kellanved
        }
2561 7478 kellanved
2562 7478 kellanved
        /**
2563 7478 kellanved
        */
2564 7478 kellanved
        function normalize_hue(&$hue)
2565 7478 kellanved
        {
2566 7478 kellanved
                $hue %= 360;
2567 7478 kellanved
2568 7478 kellanved
                if ($hue < 0)
2569 7478 kellanved
                {
2570 7478 kellanved
                        $hue += 360;
2571 7478 kellanved
                }
2572 7478 kellanved
        }
2573 7478 kellanved
2574 7478 kellanved
        /**
2575 7478 kellanved
        * Alternate hue to hue
2576 7478 kellanved
        */
2577 7478 kellanved
        function ah2h($ahue)
2578 7478 kellanved
        {
2579 7478 kellanved
                if (is_array($ahue))
2580 7478 kellanved
                {
2581 7478 kellanved
                        $ahue[0] = colour_manager::ah2h($ahue[0]);
2582 7478 kellanved
                        return $ahue;
2583 7478 kellanved
                }
2584 7478 kellanved
                colour_manager::normalize_hue($ahue);
2585 7478 kellanved
2586 7478 kellanved
                // blue through red is already ok
2587 7478 kellanved
                if ($ahue >= 240)
2588 7478 kellanved
                {
2589 7478 kellanved
                        return $ahue;
2590 7478 kellanved
                }
2591 7478 kellanved
2592 7478 kellanved
                // ahue green is at 180
2593 7478 kellanved
                if ($ahue >= 180)
2594 7478 kellanved
                {
2595 7478 kellanved
                        // return (240 - (2 * (240 - $ahue)));
2596 7478 kellanved
                        return (2 * $ahue) - 240; // equivalent
2597 7478 kellanved
                }
2598 7478 kellanved
2599 7478 kellanved
                // ahue yellow is at 120   (RYB rather than RGB)
2600 7478 kellanved
                if ($ahue >= 120)
2601 7478 kellanved
                {
2602 7478 kellanved
                        return $ahue - 60;
2603 7478 kellanved
                }
2604 7478 kellanved
2605 7478 kellanved
                return $ahue / 2;
2606 7478 kellanved
        }
2607 7478 kellanved
2608 7478 kellanved
        /**
2609 7478 kellanved
        * hue to Alternate hue
2610 7478 kellanved
        */
2611 7478 kellanved
        function h2ah($hue)
2612 7478 kellanved
        {
2613 7478 kellanved
                if (is_array($hue))
2614 7478 kellanved
                {
2615 7478 kellanved
                        $hue[0] = colour_manager::h2ah($hue[0]);
2616 7478 kellanved
                        return $hue;
2617 7478 kellanved
                }
2618 7478 kellanved
                colour_manager::normalize_hue($hue);
2619 7478 kellanved
2620 7478 kellanved
                // blue through red is already ok
2621 7478 kellanved
                if ($hue >= 240)
2622 7478 kellanved
                {
2623 7478 kellanved
                        return $hue;
2624 7478 kellanved
                }
2625 7478 kellanved
                else if ($hue <= 60)
2626 7478 kellanved
                {
2627 7478 kellanved
                        return $hue * 2;
2628 7478 kellanved
                }
2629 7478 kellanved
                else if ($hue <= 120)
2630 7478 kellanved
                {
2631 7478 kellanved
                        return $hue + 60;
2632 7478 kellanved
                }
2633 7478 kellanved
                else
2634 7478 kellanved
                {
2635 7478 kellanved
                        return ($hue + 240) / 2;
2636 7478 kellanved
                }
2637 7478 kellanved
        }
2638 6267 davidmj
}
2639 6267 davidmj
2640 5862 davidmj
?>