mirror of
				https://github.com/phpbb/phpbb.git
				synced 2025-10-27 13:40:28 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			843 lines
		
	
	
		
			24 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			843 lines
		
	
	
		
			24 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
| *
 | |
| * @package VC
 | |
| * @copyright (c) 2006 phpBB Group
 | |
| * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
 | |
| *
 | |
| */
 | |
| 
 | |
| /**
 | |
| * Wave3D CAPTCHA
 | |
| *
 | |
| * @author Robert Hetzler
 | |
| * @package VC
 | |
| */
 | |
| class captcha
 | |
| {
 | |
| 	var $width		= 360;
 | |
| 	var $height		= 96;
 | |
| 
 | |
| 	function execute($code, $seed)
 | |
| 	{
 | |
| 		global $starttime;
 | |
| 
 | |
| 		// seed the random generator
 | |
| 		mt_srand($seed);
 | |
| 
 | |
| 		// set height and width
 | |
| 		$img_x = $this->width;
 | |
| 		$img_y = $this->height;
 | |
| 
 | |
| 		// Generate image
 | |
| 		$img	= imagecreatetruecolor($img_x, $img_y);
 | |
| 		$x_grid = mt_rand(6, 10);
 | |
| 		$y_grid = mt_rand(6, 10);
 | |
| 
 | |
| 		// Ok, so lets cut to the chase. We could accurately represent this in 3d and
 | |
| 		// do all the appropriate linear transforms. my questions is... why bother?
 | |
| 		// The computational overhead is unnecessary when you consider the simple fact:
 | |
| 		// we're not here to accurately represent a model, but to just show off some random-ish
 | |
| 		// polygons
 | |
| 
 | |
| 		// Conceive of 3 spaces.
 | |
| 		// 1) planar-space (discrete "pixel" grid)
 | |
| 		// 2) 3-space. (planar-space with z/height aspect)
 | |
| 		// 3) image space (pixels on the screen)
 | |
| 		// resolution of the planar-space we're embedding the text code in
 | |
| 		$plane_x	= 100;
 | |
| 		$plane_y	= 30;
 | |
| 
 | |
| 		$subdivision_factor = 3;
 | |
| 
 | |
| 		// $box is the 4 points in img_space that correspond to the corners of the plane in 3-space
 | |
| 		$box = array(
 | |
| 			'upper_left'	=> array(
 | |
| 				'x' => mt_rand(5, 15),
 | |
| 				'y' => mt_rand(10, 15)
 | |
| 			),
 | |
| 			'upper_right'	=> array(
 | |
| 				'x' => mt_rand($img_x - 35, $img_x - 19),
 | |
| 				'y' => mt_rand(10, 17)
 | |
| 			),
 | |
| 			'lower_left'	=> array(
 | |
| 				'x' => mt_rand($img_x - 45, $img_x - 5),
 | |
| 				'y' => mt_rand($img_y - 15, $img_y - 0),
 | |
| 			),
 | |
| 		);
 | |
| 
 | |
| 		$box['lower_right'] = array(
 | |
| 			'x' => $box['lower_left']['x'] + $box['upper_left']['x'] - $box['upper_right']['x'],
 | |
| 			'y' => $box['lower_left']['y'] + $box['upper_left']['y'] - $box['upper_right']['y'],
 | |
| 		);
 | |
| 
 | |
| 		// TODO
 | |
| 		$background = imagecolorallocate($img, mt_rand(155, 255), mt_rand(155, 255), mt_rand(155, 255));
 | |
| 		imagefill($img, 0, 0, $background);
 | |
| 		$black = imagecolorallocate($img, 0, 0, 0);
 | |
| 
 | |
| 		$random = array();
 | |
| 		$fontcolors = array();
 | |
| 
 | |
| 		for ($i = 0; $i < 15; ++$i)
 | |
| 		{
 | |
| 			$random[$i] = imagecolorallocate($img, mt_rand(120, 255), mt_rand(120, 255), mt_rand(120, 255));
 | |
| 		}
 | |
| 
 | |
| 		$fontcolors[0] = imagecolorallocate($img, mt_rand(0, 120), mt_rand(0, 120), mt_rand(0, 120));
 | |
| 
 | |
| 		$colors = array();
 | |
| 
 | |
| 		$minr = mt_rand(20, 30);
 | |
| 		$ming = mt_rand(20, 30);
 | |
| 		$minb = mt_rand(20, 30);
 | |
| 
 | |
| 		$maxr = mt_rand(150, 230);
 | |
| 		$maxg = mt_rand(150, 230);
 | |
| 		$maxb = mt_rand(150, 230);
 | |
| 
 | |
| 		for ($i = -30; $i <= 30; ++$i)
 | |
| 		{
 | |
| 			$coeff1 = ($i + 12) / 45;
 | |
| 			$coeff2 = 1 - $coeff1;
 | |
| 			$colors[$i] = imagecolorallocate($img, ($coeff2 * $maxr) + ($coeff1 * $minr), ($coeff2 * $maxg) + ($coeff1 * $ming), ($coeff2 * $maxb) + ($coeff1 * $minb));
 | |
| 		}
 | |
| 
 | |
| 		// $img_buffer is the last row of 3-space positions (converted to img-space), cached
 | |
| 		// (using this means we don't need to recalculate all 4 positions for each new polygon,
 | |
| 		// merely the newest point that we're adding, which is then cached.
 | |
| 		$img_buffer = array(array(), array());
 | |
| 
 | |
| 		// In image-space, the x- and y-offset necessary to move one unit in the x-direction in planar-space
 | |
| 		$dxx = ($box['upper_right']['x'] - $box['upper_left']['x']) / ($subdivision_factor * $plane_x);
 | |
| 		$dxy = ($box['upper_right']['y'] - $box['upper_left']['y']) / ($subdivision_factor * $plane_x);
 | |
| 
 | |
| 		// In image-space, the x- and y-offset necessary to move one unit in the y-direction in planar-space
 | |
| 		$dyx = ($box['lower_right']['x'] - $box['upper_left']['x']) / ($subdivision_factor * $plane_y);
 | |
| 		$dyy = ($box['lower_right']['y'] - $box['upper_left']['y']) / ($subdivision_factor * $plane_y);
 | |
| 
 | |
| 		// Initial captcha-letter offset in planar-space
 | |
| 		$plane_offset_x = mt_rand(3, 8);
 | |
| 		$plane_offset_y = mt_rand( 12, 15);
 | |
| 
 | |
| 		// character map
 | |
| 		$map = $this->captcha_bitmaps();
 | |
| 
 | |
| 		// matrix
 | |
| 		$plane = array();
 | |
| 
 | |
| 		// for each character, we'll silkscreen it into our boolean pixel plane
 | |
| 		for ($c = 0, $code_num = strlen($code); $c < $code_num; ++$c)
 | |
| 		{
 | |
| 			$letter = $code[$c];
 | |
| 
 | |
| 			for ($x = $map['width'] - 1; $x >= 0; --$x)
 | |
| 			{
 | |
| 				for ($y = $map['height'] - 1; $y >= 0; --$y)
 | |
| 				{
 | |
| 					if ($map['data'][$letter][$y][$x])
 | |
| 					{
 | |
| 						$plane[$y + $plane_offset_y + (($c & 1) ? 1 : -1)][$x + $plane_offset_x] = true;
 | |
| 					}
 | |
| 				}
 | |
| 			}
 | |
| 			$plane_offset_x += 11;
 | |
| 		}
 | |
| 
 | |
| 		// calculate our first buffer, we can't actually draw polys with these yet
 | |
| 		// img_pos_prev == screen x,y location to our immediate left.
 | |
| 		// img_pos_cur == current screen x,y location
 | |
| 		// we calculate screen position of our
 | |
| 		// current cell based on the difference from the previous cell
 | |
| 		// rather than recalculating from absolute coordinates
 | |
| 		// What we cache into the $img_buffer contains the raised text coordinates.
 | |
| 		$img_pos_prev	= $img_buffer[0][0] = array($box['upper_left']['x'], $box['upper_left']['y']);
 | |
| 		$cur_height		= $prev_height = $this->wave_height(0, 0, $subdivision_factor);
 | |
| 		$full_x			= $plane_x * $subdivision_factor;
 | |
| 		$full_y			= $plane_y * $subdivision_factor;
 | |
| 
 | |
| 		for ($x = 1; $x <= $full_x; ++$x)
 | |
| 		{
 | |
| 			$cur_height		= $this->wave_height($x, 0, $subdivision_factor);
 | |
| 			$offset			= $cur_height - $prev_height;
 | |
| 			$img_pos_cur	= array($img_pos_prev[0] + $dxx, $img_pos_prev[1] + $dxy + $offset);
 | |
| 
 | |
| 			$img_buffer[0][$x]	= $img_pos_cur;
 | |
| 			$img_pos_prev		= $img_pos_cur;
 | |
| 			$prev_height		= $cur_height;
 | |
| 		}
 | |
| 
 | |
| 		for ($y = 1; $y <= $full_y; ++$y)
 | |
| 		{
 | |
| 			// swap buffers
 | |
| 			$buffer_cur		= $y & 1;
 | |
| 			$buffer_prev	= 1 - $buffer_cur;
 | |
| 
 | |
| 			$prev_height	= $this->wave_height(0, $y, $subdivision_factor);
 | |
| 			$offset			= $prev_height - $this->wave_height(0, $y - 1, $subdivision_factor);
 | |
| 			$img_pos_cur	= array($img_buffer[$buffer_prev][0][0] + $dyx, min($img_buffer[$buffer_prev][0][1] + $dyy + $offset, $img_y - 1));
 | |
| 
 | |
| 			// make sure we don't try to write off the page
 | |
| 			$img_pos_prev	= $img_pos_cur;
 | |
| 
 | |
| 			$img_buffer[$buffer_cur][0]	= $img_pos_cur;
 | |
| 
 | |
| 			for ($x = 1; $x <= $full_x; ++$x)
 | |
| 			{
 | |
| 				$cur_height		= $this->wave_height($x, $y, $subdivision_factor) + $this->grid_height($x, $y, $x_grid, $y_grid, 1);
 | |
| 
 | |
| 				// height is a z-factor, not a y-factor
 | |
| 				$offset			= $cur_height - $prev_height;
 | |
| 				$img_pos_cur	= array($img_pos_prev[0] + $dxx, $img_pos_prev[1] + $dxy + $offset);
 | |
| 
 | |
| 				// height is float, index it to an int, get closest color
 | |
| 				$color			= $colors[intval($cur_height)];
 | |
| 				$img_pos_prev	= $img_pos_cur;
 | |
| 				$prev_height	= $cur_height;
 | |
| 
 | |
| 				$y_index_old = intval(($y - 1) / $subdivision_factor);
 | |
| 				$y_index_new = intval($y / $subdivision_factor);
 | |
| 				$x_index_old = intval(($x - 1) / $subdivision_factor);
 | |
| 				$x_index_new = intval($x / $subdivision_factor);
 | |
| 
 | |
| 				if (!empty($plane[$y_index_new][$x_index_new]))
 | |
| 				{
 | |
| 					$img_pos_cur[1]	+= $this->wave_height($x, $y, $subdivision_factor, 1) - 30 - $cur_height;
 | |
| 					$color			= $colors[20];
 | |
| 				}
 | |
| 				$img_pos_cur[1] = min($img_pos_cur[1], $img_y - 1);
 | |
| 				$img_buffer[$buffer_cur][$x] = $img_pos_cur;
 | |
| 
 | |
| 				// Smooth the edges as much as possible by having not more than one low<->high traingle per square
 | |
| 				// Otherwise, just
 | |
| 				$diag_down	= (empty($plane[$y_index_old][$x_index_old]) == empty($plane[$y_index_new][$x_index_new]));
 | |
| 				$diag_up	= (empty($plane[$y_index_old][$x_index_new]) == empty($plane[$y_index_new][$x_index_old]));
 | |
| 
 | |
| 				// natural switching
 | |
| 				$mode = ($x + $y) & 1;
 | |
| 
 | |
| 				// override if it requires it
 | |
| 				if ($diag_down != $diag_up)
 | |
| 				{
 | |
| 					$mode = $diag_up;
 | |
| 				}
 | |
| 
 | |
| 				if ($mode)
 | |
| 				{
 | |
| 					//		+-/			  /
 | |
| 					// 1	|/		2	 /|
 | |
| 					//		/			/-+
 | |
| 					$poly1 = array_merge($img_buffer[$buffer_cur][$x - 1], $img_buffer[$buffer_prev][$x - 1], $img_buffer[$buffer_prev][$x]);
 | |
| 					$poly2 = array_merge($img_buffer[$buffer_cur][$x - 1], $img_buffer[$buffer_cur][$x], $img_buffer[$buffer_prev][$x]);
 | |
| 				}
 | |
| 				else
 | |
| 				{
 | |
| 					//		\			\-+
 | |
| 					// 1	|\		2	 \|
 | |
| 					//		+-\			  \
 | |
| 					$poly1 = array_merge($img_buffer[$buffer_cur][$x - 1], $img_buffer[$buffer_prev][$x - 1], $img_buffer[$buffer_cur][$x]);
 | |
| 					$poly2 = array_merge($img_buffer[$buffer_prev][$x - 1], $img_buffer[$buffer_prev][$x], $img_buffer[$buffer_cur][$x]);
 | |
| 				}
 | |
| 
 | |
| 				imagefilledpolygon($img, $poly1, 3, $color);
 | |
| 				imagefilledpolygon($img, $poly2, 3, $color);
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 		// Output image
 | |
| 		header('Content-Type: image/png');
 | |
| 		header('Cache-control: no-cache, no-store');
 | |
| 		//$mtime = explode(' ', microtime());
 | |
| 		//$totaltime = $mtime[0] + $mtime[1] - $starttime;
 | |
| 
 | |
| 		//echo $totaltime . "<br />\n";
 | |
| 		//echo memory_get_usage() - $tmp;
 | |
| 		imagepng($img);
 | |
| 		imagedestroy($img);
 | |
| 	}
 | |
| 
 | |
| 	function wave_height($x, $y, $factor = 1, $tweak = 0.7)
 | |
| 	{
 | |
| 		// stretch the wave. TODO: pretty it up
 | |
| 		$x = $x/5 + 180;
 | |
| 		$y = $y/4;
 | |
| 		return ((sin($x / (3 * $factor)) + sin($y / (3 * $factor))) * 10 * $tweak);
 | |
| 	}
 | |
| 
 | |
| 	function grid_height($x, $y, $x_grid, $y_grid, $factor = 1)
 | |
| 	{
 | |
| 		return ((!($x % ($x_grid * $factor)) || !($y % ($y_grid * $factor))) ? 3 : 0);
 | |
| 	}
 | |
| 
 | |
| 	function captcha_bitmaps()
 | |
| 	{
 | |
| 		return array(
 | |
| 			'width'		=> 9,
 | |
| 			'height'	=> 13,
 | |
| 			'data'		=> array(
 | |
| 				'A' => array(
 | |
| 					array(0,0,1,1,1,1,0,0,0),
 | |
| 					array(0,1,0,0,0,0,1,0,0),
 | |
| 					array(1,0,0,0,0,0,0,1,0),
 | |
| 					array(1,0,0,0,0,0,0,1,0),
 | |
| 					array(1,0,0,0,0,0,0,1,0),
 | |
| 					array(1,0,0,0,0,0,0,1,0),
 | |
| 					array(1,0,0,0,0,0,0,1,0),
 | |
| 					array(1,1,1,1,1,1,1,1,0),
 | |
| 					array(1,0,0,0,0,0,0,1,0),
 | |
| 					array(1,0,0,0,0,0,0,1,0),
 | |
| 					array(1,0,0,0,0,0,0,1,0),
 | |
| 					array(1,0,0,0,0,0,0,1,0),
 | |
| 					array(1,0,0,0,0,0,0,1,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 				),
 | |
| 				'B' => array(
 | |
| 					array(1,1,1,1,1,1,0,0,0),
 | |
| 					array(1,0,0,0,0,0,1,0,0),
 | |
| 					array(1,0,0,0,0,0,0,1,0),
 | |
| 					array(1,0,0,0,0,0,0,1,0),
 | |
| 					array(1,0,0,0,0,0,0,1,0),
 | |
| 					array(1,0,0,0,0,0,1,0,0),
 | |
| 					array(1,1,1,1,1,1,0,0,0),
 | |
| 					array(1,0,0,0,0,0,1,0,0),
 | |
| 					array(1,0,0,0,0,0,0,1,0),
 | |
| 					array(1,0,0,0,0,0,0,1,0),
 | |
| 					array(1,0,0,0,0,0,0,1,0),
 | |
| 					array(1,0,0,0,0,0,1,0,0),
 | |
| 					array(1,1,1,1,1,1,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 				),
 | |
| 				'C' => array(
 | |
| 					array(0,0,1,1,1,1,1,0,0),
 | |
| 					array(0,1,0,0,0,0,0,1,0),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(1,0,0,0,0,0,0,0,0),
 | |
| 					array(1,0,0,0,0,0,0,0,0),
 | |
| 					array(1,0,0,0,0,0,0,0,0),
 | |
| 					array(1,0,0,0,0,0,0,0,0),
 | |
| 					array(1,0,0,0,0,0,0,0,0),
 | |
| 					array(1,0,0,0,0,0,0,0,0),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(0,1,0,0,0,0,0,1,0),
 | |
| 					array(0,0,1,1,1,1,1,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 				),
 | |
| 				'D' => array(
 | |
| 					array(1,1,1,1,1,1,1,0,0),
 | |
| 					array(1,0,0,0,0,0,0,1,0),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(1,0,0,0,0,0,0,1,0),
 | |
| 					array(1,1,1,1,1,1,1,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 				),
 | |
| 				'E' => array(
 | |
| 					array(0,0,1,1,1,1,1,1,1),
 | |
| 					array(0,1,0,0,0,0,0,0,0),
 | |
| 					array(1,0,0,0,0,0,0,0,0),
 | |
| 					array(1,0,0,0,0,0,0,0,0),
 | |
| 					array(1,0,0,0,0,0,0,0,0),
 | |
| 					array(1,1,1,1,1,1,1,0,0),
 | |
| 					array(1,0,0,0,0,0,0,0,0),
 | |
| 					array(1,0,0,0,0,0,0,0,0),
 | |
| 					array(1,0,0,0,0,0,0,0,0),
 | |
| 					array(0,1,0,0,0,0,0,0,0),
 | |
| 					array(0,0,1,1,1,1,1,1,1),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 				),
 | |
| 				'F' => array(
 | |
| 					array(0,0,1,1,1,1,1,1,0),
 | |
| 					array(0,1,0,0,0,0,0,0,0),
 | |
| 					array(1,0,0,0,0,0,0,0,0),
 | |
| 					array(1,0,0,0,0,0,0,0,0),
 | |
| 					array(1,0,0,0,0,0,0,0,0),
 | |
| 					array(1,1,1,1,1,1,0,0,0),
 | |
| 					array(1,0,0,0,0,0,0,0,0),
 | |
| 					array(1,0,0,0,0,0,0,0,0),
 | |
| 					array(1,0,0,0,0,0,0,0,0),
 | |
| 					array(1,0,0,0,0,0,0,0,0),
 | |
| 					array(1,0,0,0,0,0,0,0,0),
 | |
| 					array(1,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 				),
 | |
| 				'G' => array(
 | |
| 					array(0,0,1,1,1,1,1,0,0),
 | |
| 					array(0,1,0,0,0,0,0,1,0),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(1,0,0,0,0,0,0,0,0),
 | |
| 					array(1,0,0,0,0,0,0,0,0),
 | |
| 					array(1,0,0,0,0,0,0,0,0),
 | |
| 					array(1,0,0,0,0,0,0,1,1),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(0,1,0,0,0,0,0,1,0),
 | |
| 					array(0,0,1,1,1,1,1,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 				),
 | |
| 				'H' => array(
 | |
| 					array(1,0,0,0,0,0,1,0,0),
 | |
| 					array(1,0,0,0,0,0,1,0,0),
 | |
| 					array(1,0,0,0,0,0,1,0,0),
 | |
| 					array(1,0,0,0,0,0,1,0,0),
 | |
| 					array(1,0,0,0,0,0,1,0,0),
 | |
| 					array(1,1,1,1,1,1,1,0,0),
 | |
| 					array(1,0,0,0,0,0,1,0,0),
 | |
| 					array(1,0,0,0,0,0,1,0,0),
 | |
| 					array(1,0,0,0,0,0,1,0,0),
 | |
| 					array(1,0,0,0,0,0,1,0,0),
 | |
| 					array(1,0,0,0,0,0,1,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 				),
 | |
| 				'I' => array(
 | |
| 					array(0,1,1,1,1,1,1,1,0),
 | |
| 					array(0,0,0,0,1,0,0,0,0),
 | |
| 					array(0,0,0,0,1,0,0,0,0),
 | |
| 					array(0,0,0,0,1,0,0,0,0),
 | |
| 					array(0,0,0,0,1,0,0,0,0),
 | |
| 					array(0,0,0,0,1,0,0,0,0),
 | |
| 					array(0,0,0,0,1,0,0,0,0),
 | |
| 					array(0,0,0,0,1,0,0,0,0),
 | |
| 					array(0,0,0,0,1,0,0,0,0),
 | |
| 					array(0,1,1,1,1,1,1,1,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 				),
 | |
| 				'J' => array(
 | |
| 					array(0,0,0,0,0,0,1,1,1),
 | |
| 					array(0,0,0,0,0,0,0,0,1),
 | |
| 					array(0,0,0,0,0,0,0,0,1),
 | |
| 					array(0,0,0,0,0,0,0,0,1),
 | |
| 					array(0,0,0,0,0,0,0,0,1),
 | |
| 					array(0,0,0,0,0,0,0,0,1),
 | |
| 					array(0,0,0,0,0,0,0,0,1),
 | |
| 					array(0,1,0,0,0,0,0,0,1),
 | |
| 					array(0,1,0,0,0,0,0,0,1),
 | |
| 					array(0,0,1,0,0,0,0,1,0),
 | |
| 					array(0,0,0,1,1,1,1,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 				),
 | |
| 				'K' => array(
 | |
| 					array(1,0,0,0,0,0,1,0,0),
 | |
| 					array(1,0,0,0,0,1,0,0,0),
 | |
| 					array(1,0,0,0,1,0,0,0,0),
 | |
| 					array(1,0,0,1,0,0,0,0,0),
 | |
| 					array(1,0,1,0,0,0,0,0,0),
 | |
| 					array(1,1,0,0,0,0,0,0,0),
 | |
| 					array(1,0,1,0,0,0,0,0,0),
 | |
| 					array(1,0,0,1,0,0,0,0,0),
 | |
| 					array(1,0,0,0,1,0,0,0,0),
 | |
| 					array(1,0,0,0,0,1,0,0,0),
 | |
| 					array(1,0,0,0,0,0,1,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 				),
 | |
| 				'L' => array(
 | |
| 					array(1,0,0,0,0,0,0,0,0),
 | |
| 					array(1,0,0,0,0,0,0,0,0),
 | |
| 					array(1,0,0,0,0,0,0,0,0),
 | |
| 					array(1,0,0,0,0,0,0,0,0),
 | |
| 					array(1,0,0,0,0,0,0,0,0),
 | |
| 					array(1,0,0,0,0,0,0,0,0),
 | |
| 					array(1,0,0,0,0,0,0,0,0),
 | |
| 					array(1,0,0,0,0,0,0,0,0),
 | |
| 					array(1,0,0,0,0,0,0,0,0),
 | |
| 					array(0,1,0,0,0,0,0,0,0),
 | |
| 					array(0,0,1,1,1,1,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 				),
 | |
| 				'M' => array(
 | |
| 					array(0,1,0,0,0,0,0,1,0),
 | |
| 					array(0,1,1,0,0,0,1,1,0),
 | |
| 					array(0,1,0,1,0,1,0,1,0),
 | |
| 					array(0,1,0,0,1,0,0,1,0),
 | |
| 					array(0,1,0,0,0,0,0,1,0),
 | |
| 					array(0,1,0,0,0,0,0,1,0),
 | |
| 					array(0,1,0,0,0,0,0,1,0),
 | |
| 					array(0,1,0,0,0,0,0,1,0),
 | |
| 					array(0,1,0,0,0,0,0,1,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 				),
 | |
| 				'N' => array(
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(1,1,0,0,0,0,0,0,1),
 | |
| 					array(1,0,1,0,0,0,0,0,1),
 | |
| 					array(1,0,0,1,0,0,0,0,1),
 | |
| 					array(1,0,0,0,1,0,0,0,1),
 | |
| 					array(1,0,0,0,0,1,0,0,1),
 | |
| 					array(1,0,0,0,0,0,1,0,1),
 | |
| 					array(1,0,0,0,0,0,0,1,1),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 				),
 | |
| 				'O' => array(
 | |
| 					array(0,0,0,1,1,1,0,0,0),
 | |
| 					array(0,0,1,0,0,0,1,0,0),
 | |
| 					array(0,1,0,0,0,0,0,1,0),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(0,1,0,0,0,0,0,1,0),
 | |
| 					array(0,0,1,0,0,0,1,0,0),
 | |
| 					array(0,0,0,1,1,1,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 				),
 | |
| 				'P' => array(
 | |
| 					array(1,1,1,1,1,1,0,0,0),
 | |
| 					array(1,0,0,0,0,0,1,0,0),
 | |
| 					array(1,0,0,0,0,0,0,1,0),
 | |
| 					array(1,0,0,0,0,0,0,1,0),
 | |
| 					array(1,0,0,0,0,0,0,1,0),
 | |
| 					array(1,0,0,0,0,0,0,1,0),
 | |
| 					array(1,0,0,0,0,0,1,0,0),
 | |
| 					array(1,1,1,1,1,1,0,0,0),
 | |
| 					array(1,0,0,0,0,0,0,0,0),
 | |
| 					array(1,0,0,0,0,0,0,0,0),
 | |
| 					array(1,0,0,0,0,0,0,0,0),
 | |
| 					array(1,0,0,0,0,0,0,0,0),
 | |
| 					array(1,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 				),
 | |
| 				'Q' => array(
 | |
| 					array(0,0,1,1,1,1,0,0,0),
 | |
| 					array(0,1,0,0,0,0,1,0,0),
 | |
| 					array(1,0,0,0,0,0,0,1,0),
 | |
| 					array(1,0,0,0,0,0,0,1,0),
 | |
| 					array(1,0,0,0,0,0,0,1,0),
 | |
| 					array(1,0,0,0,0,0,0,1,0),
 | |
| 					array(1,0,0,0,1,0,0,1,0),
 | |
| 					array(1,0,0,0,0,1,0,1,0),
 | |
| 					array(0,1,0,0,0,0,1,0,0),
 | |
| 					array(0,0,1,1,1,1,0,1,0),
 | |
| 					array(0,0,0,0,0,0,0,0,1),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 				),
 | |
| 				'R' => array(
 | |
| 					array(1,1,1,1,1,1,0,0,0),
 | |
| 					array(1,0,0,0,0,0,1,0,0),
 | |
| 					array(1,0,0,0,0,0,0,1,0),
 | |
| 					array(1,0,0,0,0,0,0,1,0),
 | |
| 					array(1,0,0,0,0,0,0,1,0),
 | |
| 					array(1,0,0,0,0,0,1,0,0),
 | |
| 					array(1,1,1,1,1,1,0,0,0),
 | |
| 					array(1,0,1,0,0,0,0,0,0),
 | |
| 					array(1,0,0,1,0,0,0,0,0),
 | |
| 					array(1,0,0,0,1,0,0,0,0),
 | |
| 					array(1,0,0,0,0,1,0,0,0),
 | |
| 					array(1,0,0,0,0,0,1,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 				),
 | |
| 				'S' => array(
 | |
| 					array(0,0,1,1,1,1,1,1,1),
 | |
| 					array(0,1,0,0,0,0,0,0,0),
 | |
| 					array(1,0,0,0,0,0,0,0,0),
 | |
| 					array(1,0,0,0,0,0,0,0,0),
 | |
| 					array(1,0,0,0,0,0,0,0,0),
 | |
| 					array(0,1,0,0,0,0,0,0,0),
 | |
| 					array(0,0,1,1,1,1,1,0,0),
 | |
| 					array(0,0,0,0,0,0,0,1,0),
 | |
| 					array(0,0,0,0,0,0,0,0,1),
 | |
| 					array(0,0,0,0,0,0,0,0,1),
 | |
| 					array(0,0,0,0,0,0,0,1,0),
 | |
| 					array(1,1,1,1,1,1,1,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 				),
 | |
| 				'T' => array(
 | |
| 					array(1,1,1,1,1,1,1,1,1),
 | |
| 					array(0,0,0,0,1,0,0,0,0),
 | |
| 					array(0,0,0,0,1,0,0,0,0),
 | |
| 					array(0,0,0,0,1,0,0,0,0),
 | |
| 					array(0,0,0,0,1,0,0,0,0),
 | |
| 					array(0,0,0,0,1,0,0,0,0),
 | |
| 					array(0,0,0,0,1,0,0,0,0),
 | |
| 					array(0,0,0,0,1,0,0,0,0),
 | |
| 					array(0,0,0,0,1,0,0,0,0),
 | |
| 					array(0,0,0,0,1,0,0,0,0),
 | |
| 					array(0,0,0,0,1,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 				),
 | |
| 				'U' => array(
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(0,1,0,0,0,0,0,1,0),
 | |
| 					array(0,0,1,1,1,1,1,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 				),
 | |
| 				'V' => array(
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(0,1,0,0,0,0,0,1,0),
 | |
| 					array(0,0,1,0,0,0,1,0,0),
 | |
| 					array(0,0,0,1,0,1,0,0,0),
 | |
| 					array(0,0,0,0,1,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 				),
 | |
| 				'W' => array(
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(1,0,0,0,1,0,0,0,1),
 | |
| 					array(1,0,0,1,0,1,0,0,1),
 | |
| 					array(1,0,1,0,0,0,1,0,1),
 | |
| 					array(1,1,0,0,0,0,0,1,1),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 				),
 | |
| 				'X' => array(
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(0,1,0,0,0,0,0,1,0),
 | |
| 					array(0,0,1,0,0,0,1,0,0),
 | |
| 					array(0,0,0,1,0,1,0,0,0),
 | |
| 					array(0,0,0,0,1,0,0,0,0),
 | |
| 					array(0,0,0,1,0,1,0,0,0),
 | |
| 					array(0,0,1,0,0,0,1,0,0),
 | |
| 					array(0,1,0,0,0,0,0,1,0),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 				),
 | |
| 				'Y' => array(
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(0,1,0,0,0,0,0,1,0),
 | |
| 					array(0,0,1,0,0,0,1,0,0),
 | |
| 					array(0,0,0,1,0,1,0,0,0),
 | |
| 					array(0,0,0,0,1,0,0,0,0),
 | |
| 					array(0,0,0,0,1,0,0,0,0),
 | |
| 					array(0,0,0,0,1,0,0,0,0),
 | |
| 					array(0,0,0,0,1,0,0,0,0),
 | |
| 					array(0,0,0,0,1,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 				),
 | |
| 				'Z' => array(
 | |
| 					array(1,1,1,1,1,1,1,1,1),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(0,0,0,0,0,0,0,1,0),
 | |
| 					array(0,0,0,0,0,0,1,0,0),
 | |
| 					array(0,0,0,0,0,1,0,0,0),
 | |
| 					array(0,0,0,0,1,0,0,0,0),
 | |
| 					array(0,0,0,1,0,0,0,0,0),
 | |
| 					array(0,0,1,0,0,0,0,0,0),
 | |
| 					array(0,1,0,0,0,0,0,0,0),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(1,1,1,1,1,1,1,1,1),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 				),
 | |
| 				'1' => array(
 | |
| 					array(0,0,0,0,1,0,0,0,0),
 | |
| 					array(0,0,0,1,1,0,0,0,0),
 | |
| 					array(0,0,1,0,1,0,0,0,0),
 | |
| 					array(0,1,0,0,1,0,0,0,0),
 | |
| 					array(0,0,0,0,1,0,0,0,0),
 | |
| 					array(0,0,0,0,1,0,0,0,0),
 | |
| 					array(0,0,0,0,1,0,0,0,0),
 | |
| 					array(0,0,0,0,1,0,0,0,0),
 | |
| 					array(0,0,0,0,1,0,0,0,0),
 | |
| 					array(0,0,0,0,1,0,0,0,0),
 | |
| 					array(0,0,0,0,1,0,0,0,0),
 | |
| 					array(0,1,1,1,1,1,1,1,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 				),
 | |
| 				'2' => array(
 | |
| 					array(0,0,0,1,1,1,0,0,0),
 | |
| 					array(0,0,1,0,0,0,1,0,0),
 | |
| 					array(0,1,0,0,0,0,0,1,0),
 | |
| 					array(0,0,0,0,0,0,0,0,1),
 | |
| 					array(0,0,0,0,0,0,0,0,1),
 | |
| 					array(0,0,0,0,0,0,0,0,1),
 | |
| 					array(0,0,0,0,0,0,0,1,0),
 | |
| 					array(0,0,0,0,0,0,1,0,0),
 | |
| 					array(0,0,0,0,0,1,0,0,0),
 | |
| 					array(0,0,0,0,1,0,0,0,0),
 | |
| 					array(0,0,0,1,0,0,0,0,0),
 | |
| 					array(0,0,1,0,0,0,0,0,0),
 | |
| 					array(0,1,1,1,1,1,1,1,1),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 				),
 | |
| 				'3' => array(
 | |
| 					array(0,0,0,1,1,1,1,0,0),
 | |
| 					array(0,0,1,0,0,0,0,1,0),
 | |
| 					array(0,1,0,0,0,0,0,0,1),
 | |
| 					array(0,0,0,0,0,0,0,0,1),
 | |
| 					array(0,0,0,0,0,0,0,0,1),
 | |
| 					array(0,0,0,0,0,0,0,1,0),
 | |
| 					array(0,0,0,0,0,1,1,0,0),
 | |
| 					array(0,0,0,0,0,0,0,1,0),
 | |
| 					array(0,0,0,0,0,0,0,0,1),
 | |
| 					array(0,0,0,0,0,0,0,0,1),
 | |
| 					array(0,1,0,0,0,0,0,0,1),
 | |
| 					array(0,0,1,0,0,0,0,1,0),
 | |
| 					array(0,0,0,1,1,1,1,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 				),
 | |
| 				'4' => array(
 | |
| 					array(0,0,0,0,0,0,0,1,0),
 | |
| 					array(0,0,0,0,0,0,1,1,0),
 | |
| 					array(0,0,0,0,0,1,0,1,0),
 | |
| 					array(0,0,0,0,1,0,0,1,0),
 | |
| 					array(0,0,0,1,0,0,0,1,0),
 | |
| 					array(0,0,1,0,0,0,0,1,0),
 | |
| 					array(0,1,1,1,1,1,1,1,1),
 | |
| 					array(0,0,0,0,0,0,0,1,0),
 | |
| 					array(0,0,0,0,0,0,0,1,0),
 | |
| 					array(0,0,0,0,0,0,0,1,0),
 | |
| 					array(0,0,0,0,0,0,0,1,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 				),
 | |
| 				'5' => array(
 | |
| 					array(1,1,1,1,1,1,1,1,1),
 | |
| 					array(1,0,0,0,0,0,0,0,0),
 | |
| 					array(1,0,0,0,0,0,0,0,0),
 | |
| 					array(1,0,0,0,0,0,0,0,0),
 | |
| 					array(0,1,0,0,0,0,0,0,0),
 | |
| 					array(0,0,1,1,1,1,1,0,0),
 | |
| 					array(0,0,0,0,0,0,0,1,0),
 | |
| 					array(0,0,0,0,0,0,0,0,1),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(0,1,0,0,0,0,0,1,0),
 | |
| 					array(0,0,1,1,1,1,1,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 				),
 | |
| 				'6' => array(
 | |
| 					array(0,0,1,1,1,1,1,0,0),
 | |
| 					array(0,1,0,0,0,0,0,1,0),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(1,0,0,0,0,0,0,0,0),
 | |
| 					array(1,0,0,0,0,0,0,0,0),
 | |
| 					array(1,0,0,1,1,1,1,0,0),
 | |
| 					array(1,0,1,0,0,0,0,1,0),
 | |
| 					array(1,1,0,0,0,0,0,0,1),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(0,1,0,0,0,0,0,1,0),
 | |
| 					array(0,0,1,1,1,1,1,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 				),
 | |
| 				'7' => array(
 | |
| 					array(1,1,1,1,1,1,1,1,1),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(0,0,0,0,0,0,0,1,0),
 | |
| 					array(0,0,0,0,0,0,1,0,0),
 | |
| 					array(0,0,0,0,0,1,0,0,0),
 | |
| 					array(0,0,0,0,1,0,0,0,0),
 | |
| 					array(0,0,0,0,1,0,0,0,0),
 | |
| 					array(0,0,0,0,1,0,0,0,0),
 | |
| 					array(0,0,0,0,1,0,0,0,0),
 | |
| 					array(0,0,0,0,1,0,0,0,0),
 | |
| 					array(0,0,0,0,1,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 				),
 | |
| 				'8' => array(
 | |
| 					array(0,0,1,1,1,1,1,0,0),
 | |
| 					array(0,1,0,0,0,0,0,1,0),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(0,1,0,0,0,0,0,1,0),
 | |
| 					array(0,0,1,1,1,1,1,0,0),
 | |
| 					array(0,1,0,0,0,0,0,1,0),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(1,0,0,0,0,0,0,0,1),
 | |
| 					array(0,1,0,0,0,0,0,1,0),
 | |
| 					array(0,0,1,1,1,1,1,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 				),
 | |
| 				'9' => array(
 | |
| 					array(0,0,0,1,1,1,1,0,0),
 | |
| 					array(0,0,1,0,0,0,0,1,0),
 | |
| 					array(0,1,0,0,0,0,0,0,1),
 | |
| 					array(0,1,0,0,0,0,0,0,1),
 | |
| 					array(0,1,0,0,0,0,0,0,1),
 | |
| 					array(0,1,0,0,0,0,0,1,1),
 | |
| 					array(0,0,1,1,1,1,1,0,1),
 | |
| 					array(0,0,0,0,0,0,0,0,1),
 | |
| 					array(0,0,0,0,0,0,0,0,1),
 | |
| 					array(0,1,0,0,0,0,0,0,1),
 | |
| 					array(0,0,1,0,0,0,0,1,0),
 | |
| 					array(0,0,0,1,1,1,1,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 					array(0,0,0,0,0,0,0,0,0),
 | |
| 				),
 | |
| 			)
 | |
| 		);
 | |
| 	}
 | |
| }
 |