某高校教务系统登录验证码的识别 (2)

接上篇某高校教务系统登陆验证码识别,由于上次的验证码识别率太低,不能用于实际应用。识别率低的原因在于对于字符的切割,因为字符粘连在一起,所以难以切割,一旦一个切割错误,就会导致后面字符的错误。

区别于传统的验证码识别方法,我自己针对该验证码的特性,想出了另外一种方法,这种方法不需要切割字符,也不需要去噪,将干扰线去除等,而且识别率非常高,有90%以上

我们先来观察验证码的特性

从图片可以看出,验证码上的每个字符都没有经过旋转,而且出现的高度,宽度是特定的。例如字符A,它的在图片中的高度,宽度是不变的,会变的只是它的位置。

于是我就想到,取出A的有效点坐标。什么是有效点坐标呢?

我先将图片二值化,然后把,一个完整的字符的二值化数组取出来,举例,下面我们来看看E的二值码

000000
000000
000000
000000
000000
000000
111111
110000
110000
110000
111111
110000
110000
110000
110000
111111
000000
000000
000000

我们可以看出这是个E,而值为1的点,我就称之为有效点,

以最上边的0为坐标原点,我可以得出每个有效点的坐标,将之存在数组中,如下

array(array(6,0),array(6,1),array(6,2),array(6,3),array(6,4),array(6,5),array(7,0),array(7,1),array(8,0),array(8,1),array(9,0),array(9,1),
array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(10,5),array(11,0),array(11,1),array(12,0),array(12,1),array(13,0),array(13,1),
array(14,0),array(14,1),array(15,0),array(15,1),array(15,2),array(15,3),array(15,4),array(15,5),),

由此可见,上面的数组,就包含了E的所有坐标信息

那么现在,假设我从整张验证码的二值码的第一行开始扫描

0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000100000000000000000000000000000000
0000000000001000000000000000000000000000000000
0000001100011001111110111111001100000000000000
0000001100111001100000000111001100000000000000
0000001101011001100000000111001100000000000000
0000001110011001100000001110001111100000000000
0000001100011001111111111110001111110000000000
0000001100011001100000011101111111110000000000
0000011100011001100000011100001100110000000000
0000101100011001100000011100001100110000000000
0000101110111001100000011100001111110000000000
0001000111110001111110011000001111100000000000
0010000000000000000000000000001111000000000000
0100000000000000000000001111110000000000000000
0000000000000000011111110000000000000000000000
0000000000000011100000000000000000000000000000

我扫描第一行,如果第一行的某个0,其坐标,刚好可以成为上述E的坐标原点(判断的依据当然是,改点坐标加上E数组坐标,是不是都等到值为1的点),那么我们就可以确定E出现了,于是就匹配到了E


这种做法,就类似,你拿着一张只画有E的图片,贴在验证码图片上,从最左边开始移动,看验证码图片上是不是有跟这张E图片完全重合的地方,如果是,我们就几乎可以确定E出现了

由于不同字母,数字的坐标构成不可能完全相同,通过这种方式,我们就可以准确匹配出他们来

需要注意的问题是,有些较小个(体型较小,如c,t)的字符,可能在移动过程中,可以被较大的字符(如B,T,)等包含,解决的方法是,先匹配大字符,如果没有,再匹配小字符,这样就可以保证准确性(这个的实现,就是调整字符在key数组中的先后顺序,在完整代码中我们就可以看到)

由于只需要扫描第一行,而且一旦扫描到某个字符,我们就可以跳过这个字符长度的0,再继续扫描,所以这个算法的效率极高

下面贴出完整代码

<?php
include('snoopy.class.php');
class valite
{
	protected $ImagePath = "ValidateCode.png";
	protected $DataArray;
	protected $ImageSize;
	protected $data = "";
	protected $keys;
	protected $keysLen;
	private $snoopy;//snoopy对象
	private $url = 'http://202.116.0.176/ValidateCode.aspx';//验证码地址
	
	//设置验证码图像路径
	public function setImage($Image){
		$this->ImagePath = $Image;
	}
	
	//获取验证码
	public function getData(){
		$this->getHec();
		$this->run();
		if(strlen($this->data)==4){
			return $this->data;
		}else{
			return false;	
		}
		//	return if$this->data;
	}
	
	//获取验证码图片二值化数组
	public function getResult(){
		return $this->DataArray;
	}
	
	/*******************************************************************************************************************/
	/**
	* 获取验证码图片,并且展示一个手动填写的表单
	*/
	public function getValidateCode(){
		$this->snoopy = new Snoopy();
		$this->snoopy->fetch($this->url);					
		file_put_contents($this->ImagePath,$this->snoopy->results);
		foreach($this->keys as $key => $value){
			$arr = explode(20,$value);
			$str = "";
			foreach($arr as $a => $b){
				$str .= substr($b,6); 
			}
			//echo '"'.$key.'"=>"'.$str."\",<br>";	
		}
		echo '<html><body><form action="index.php" method="post"><img src="'.$this->ImagePath.'"><input type="text" name="code"><input type="submit" value="submit"></form></body></html>';				
	}
	/****************************************************************************************************************/
	
	
	//将图像转换为二进制数组,干扰点被当成字符点
	public function getHec()
	{
		$res = imagecreatefrompng($this->ImagePath);
		$size = getimagesize($this->ImagePath);		
		$data = array();
		for($i=0; $i < $size[1]; $i++)//
		{
			for($j=0; $j < $size[0]; $j++)
			{
				$rgb = imagecolorat($res,$j,$i);
				$rgbarray = imagecolorsforindex($res, $rgb);
				if($rgbarray['red'] == 211 && $rgbarray['green'] == 211 && $rgbarray['blue'] == 211){//背景点
					$data[$i][$j] = 0;	
				}else if($rgbarray['red'] == 105 && $rgbarray['green'] == 105 && $rgbarray['blue'] == 105){//干扰线
					$data[$i][$j] = 1;
				}else{
					$data[$i][$j] = 1;	
				}
			}
		}									
		
		$this->ImageSize = $size;
		$this->DataArray = $data;			
	}
				
	
	//查找并且匹配验证码字符
	public function run(){
		for($j=0;$j<$this->ImageSize[0];$j++){//宽				
			foreach($this->keys as $keyname => $keycon){
				for($k=0;$k<count($keycon);$k++){
					if($this->DataArray[$keycon[$k][0]][$j+$keycon[$k][1]]!=1) break;
				}
				if($k==count($keycon)){
					//echo "匹配出了".$keyname;
					$this->data .= $keyname;					
					$j += $this->keysLen[$keyname]-1;
					//echo $this->keysLen[$keyname]."<br>";
					break;}
			}													
		}		
	}					
	
	//根据二进制数组,生成单独字符的坐标数组,即用于生成$this->key	
	public function match(){
		$str = file_get_contents("key.txt");
		$new = array();
		$arr = explode("\n",$str);
		for($i=0;$i<count($arr);$i++){
			for($j=0;$j<strlen($arr[$i]);$j++){
				if($arr[$i]{$j}==1){
					$new[] = array($i,$j);	
				}
			}
		}
		$str ="array(";
		foreach($new as $key => $value){
			$str .= "array(".$value[0].','.$value[1]."),"; 	
		}
		$str .= "),";
		echo $str;
	}
	
	//生成坐标数组的长度,即用于生成$this->keysLen
	public function check(){
		foreach($this->keys as $key => $value){
			$min = 0;$max=0;
			foreach($value as $k => $v){
				if($min	> $v[1]) $min = $v[1];
				if($max < $v[1]) $max = $v[1];
			}
			echo '"'.$key."\"=>".($max-$min+1).",";
		}
	}
	
	//画出二进制图像
	public function Draw(){
		$this->getHec();
		for($i=0; $i<$this->ImageSize[1]; ++$i)
		{
	        for($j=0; $j<$this->ImageSize[0]; ++$j)
		    {
			    echo $this->DataArray[$i][$j];
	        }	
			echo "<br>";
		}
	}		
	
	public function __construct()
	{
		$this->keysLen = array("W"=>13,"y"=>7,"p"=>6,"D"=>7,"B"=>7,"U"=>7,"b"=>6,"a"=>6,"C"=>8,"A"=>9,"Z"=>7,"m"=>10,"2"=>6,"6"=>6,"w"=>11,"7"=>6,"N"=>7,"H"=>7,"v"=>7,"K"=>8,"G"=>8,"Y"=>8,"8"=>6,"9"=>6,"3"=>6,"g"=>6,"d"=>6,"t"=>4,"e"=>6,"V"=>9,"x"=>8,"q"=>6,"T"=>8,"5"=>6,"k"=>6,"R"=>8,"4"=>6,"S"=>7,"M"=>9,"E"=>6,"s"=>6,"X"=>9,"Q"=>8,"f"=>4,"P"=>7,"F"=>6,"z"=>5,"u"=>6,"h"=>6,"c"=>6,"n"=>6,"L"=>6,"r"=>4);
		$this->keys = array(	
			'W' => array(array(6,0),array(6,1),array(6,2),array(6,5),array(6,6),array(6,7),array(6,10),array(6,11),array(6,12),array(7,0),array(7,1),array(7,2),array(7,4),array(7,5),array(7,6),array(7,7),array(7,8),array(7,10),array(7,11),array(7,12),array(8,0),array(8,1),array(8,2),array(8,4),array(8,5),array(8,6),array(8,7),array(8,8),array(8,10),array(8,11),array(8,12),array(9,0),array(9,1),array(9,2),array(9,4),array(9,5),array(9,6),array(9,7),array(9,8),array(9,10),array(9,11),array(9,12),array(10,1),array(10,2),array(10,4),array(10,5),array(10,7),array(10,8),array(10,10),array(10,11),array(11,1),array(11,2),array(11,3),array(11,4),array(11,5),array(11,7),array(11,8),array(11,9),array(11,10),array(11,11),array(12,1),array(12,2),array(12,3),array(12,4),array(12,5),array(12,7),array(12,8),array(12,9),array(12,10),array(12,11),array(13,1),array(13,2),array(13,3),array(13,4),array(13,5),array(13,7),array(13,8),array(13,9),array(13,10),array(13,11),array(14,1),array(14,2),array(14,3),array(14,4),array(14,8),array(14,9),array(14,10),array(14,11),array(15,2),array(15,3),array(15,4),array(15,8),array(15,9),array(15,10),),
			'y' => array(array(9,0),array(9,1),array(9,2),array(9,4),array(9,5),array(9,6),array(10,0),array(10,1),array(10,2),array(10,4),array(10,5),array(10,6),array(11,0),array(11,1),array(11,2),array(11,4),array(11,5),array(11,6),array(12,1),array(12,2),array(12,3),array(12,4),array(12,5),array(13,1),array(13,2),array(13,3),array(13,4),array(13,5),array(14,1),array(14,2),array(14,3),array(14,4),array(14,5),array(15,2),array(15,3),array(15,4),array(15,5),array(16,2),array(16,3),array(16,4),array(17,1),array(17,2),array(17,3),array(17,4),array(18,0),array(18,1),array(18,2),array(18,3),),
			'p' => array(array(9,0),array(9,1),array(9,2),array(9,3),array(9,4),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(10,5),array(11,0),array(11,1),array(11,4),array(11,5),array(12,0),array(12,1),array(12,4),array(12,5),array(13,0),array(13,1),array(13,4),array(13,5),array(14,0),array(14,1),array(14,2),array(14,3),array(14,4),array(14,5),array(15,0),array(15,1),array(15,2),array(15,3),array(15,4),array(16,0),array(16,1),array(17,0),array(17,1),array(18,0),array(18,1),),			
			'D' => array(array(6,0),array(6,1),array(6,2),array(6,3),array(6,4),array(6,5),array(7,0),array(7,1),array(7,4),array(7,5),array(7,6),array(8,0),array(8,1),array(8,4),array(8,5),array(8,6),array(9,0),array(9,1),array(9,5),array(9,6),array(10,0),array(10,1),array(10,5),array(10,6),array(11,0),array(11,1),array(11,5),array(11,6),array(12,0),array(12,1),array(12,5),array(12,6),array(13,0),array(13,1),array(13,4),array(13,5),array(13,6),array(14,0),array(14,1),array(14,4),array(14,5),array(14,6),array(15,0),array(15,1),array(15,2),array(15,3),array(15,4),array(15,5),),		
			'B' => array(array(6,0),array(6,1),array(6,2),array(6,3),array(6,4),array(6,5),array(6,6),array(7,0),array(7,1),array(7,4),array(7,5),array(7,6),array(8,0),array(8,1),array(8,5),array(8,6),array(9,0),array(9,1),array(9,4),array(9,5),array(9,6),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(10,5),array(10,6),array(11,0),array(11,1),array(11,4),array(11,5),array(11,6),array(12,0),array(12,1),array(12,5),array(12,6),array(13,0),array(13,1),array(13,5),array(13,6),array(14,0),array(14,1),array(14,4),array(14,5),array(14,6),array(15,0),array(15,1),array(15,2),array(15,3),array(15,4),array(15,5),),	
			'U' => array(array(6,0),array(6,1),array(6,5),array(6,6),array(7,0),array(7,1),array(7,5),array(7,6),array(8,0),array(8,1),array(8,5),array(8,6),array(9,0),array(9,1),array(9,5),array(9,6),array(10,0),array(10,1),array(10,5),array(10,6),array(11,0),array(11,1),array(11,5),array(11,6),array(12,0),array(12,1),array(12,5),array(12,6),array(13,0),array(13,1),array(13,5),array(13,6),array(14,0),array(14,1),array(14,2),array(14,4),array(14,5),array(14,6),array(15,1),array(15,2),array(15,3),array(15,4),array(15,5),),
			'b' => array(array(6,0),array(6,1),array(7,0),array(7,1),array(8,0),array(8,1),array(9,0),array(9,1),array(9,2),array(9,3),array(9,4),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(10,5),array(11,0),array(11,1),array(11,4),array(11,5),array(12,0),array(12,1),array(12,4),array(12,5),array(13,0),array(13,1),array(13,4),array(13,5),array(14,0),array(14,1),array(14,2),array(14,3),array(14,4),array(14,5),array(15,0),array(15,1),array(15,2),array(15,3),array(15,4),),
			'a' => array(array(9,0),array(9,1),array(9,2),array(9,3),array(9,4),array(9,5),array(10,0),array(10,1),array(10,3),array(10,4),array(10,5),array(11,1),array(11,2),array(11,3),array(11,4),array(11,5),array(12,0),array(12,1),array(12,2),array(12,3),array(12,4),array(12,5),array(13,0),array(13,1),array(13,4),array(13,5),array(14,0),array(14,1),array(14,2),array(14,3),array(14,4),array(14,5),array(15,0),array(15,1),array(15,2),array(15,3),array(15,4),array(15,5),),
			'C' => array(array(6,2),array(6,3),array(6,4),array(6,5),array(6,6),array(7,1),array(7,2),array(7,3),array(7,5),array(7,6),array(7,7),array(8,0),array(8,1),array(8,2),array(9,0),array(9,1),array(10,0),array(10,1),array(11,0),array(11,1),array(12,0),array(12,1),array(13,0),array(13,1),array(13,2),array(14,0),array(14,1),array(14,2),array(14,3),array(14,5),array(14,6),array(14,7),array(15,1),array(15,2),array(15,3),array(15,4),array(15,5),array(15,6),),
			'A' => array(array(6,3),array(6,4),array(6,5),array(7,2),array(7,3),array(7,4),array(7,5),array(7,6),array(8,2),array(8,3),array(8,4),array(8,5),array(8,6),array(9,2),array(9,3),array(9,4),array(9,5),array(9,6),array(10,1),array(10,2),array(10,3),array(10,5),array(10,6),array(10,7),array(11,1),array(11,2),array(11,3),array(11,5),array(11,6),array(11,7),array(12,1),array(12,2),array(12,3),array(12,5),array(12,6),array(12,7),array(13,0),array(13,1),array(13,2),array(13,3),array(13,4),array(13,5),array(13,6),array(13,7),array(13,8),array(14,0),array(14,1),array(14,2),array(14,6),array(14,7),array(14,8),array(15,0),array(15,1),array(15,2),array(15,6),array(15,7),array(15,8),),
			'Z' => array(array(6,0),array(6,1),array(6,2),array(6,3),array(6,4),array(6,5),array(6,6),array(7,4),array(7,5),array(7,6),array(8,4),array(8,5),array(8,6),array(9,3),array(9,4),array(9,5),array(10,2),array(10,3),array(10,4),array(11,2),array(11,3),array(11,4),array(12,1),array(12,2),array(12,3),array(13,0),array(13,1),array(13,2),array(13,3),array(14,0),array(14,1),array(14,2),array(15,0),array(15,1),array(15,2),array(15,3),array(15,4),array(15,5),array(15,6),),
			'm' => array(array(9,0),array(9,1),array(9,2),array(9,3),array(9,4),array(9,5),array(9,6),array(9,7),array(9,8),array(9,9),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(10,5),array(10,6),array(10,7),array(10,8),array(10,9),array(11,0),array(11,1),array(11,4),array(11,5),array(11,8),array(11,9),array(12,0),array(12,1),array(12,4),array(12,5),array(12,8),array(12,9),array(13,0),array(13,1),array(13,4),array(13,5),array(13,8),array(13,9),array(14,0),array(14,1),array(14,4),array(14,5),array(14,8),array(14,9),array(15,0),array(15,1),array(15,4),array(15,5),array(15,8),array(15,9),),
			'2' => array(array(6,0),array(7,0),array(13,0),array(14,0),array(15,0),array(6,1),array(7,1),array(12,1),array(13,1),array(14,1),array(15,1),array(6,2),array(7,2),array(11,2),array(12,2),array(13,2),array(14,2),array(15,2),array(6,3),array(7,3),array(9,3),array(10,3),array(11,3),array(12,3),array(13,3),array(15,3),array(6,4),array(7,4),array(8,4),array(9,4),array(10,4),array(11,4),array(12,4),array(15,4),array(7,5),array(8,5),array(9,5),array(10,5),array(15,5)),	
			'6' => array(array(6,1),array(6,2),array(6,3),array(6,4),array(6,5),array(7,0),array(7,1),array(7,2),array(7,3),array(7,4),array(7,5),array(8,0),array(8,1),array(9,0),array(9,1),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(11,0),array(11,1),array(11,2),array(11,3),array(11,4),array(11,5),array(12,0),array(12,1),array(12,4),array(12,5),array(13,0),array(13,1),array(13,4),array(13,5),array(14,0),array(14,1),array(14,2),array(14,3),array(14,4),array(14,5),array(15,1),array(15,2),array(15,3),array(15,4),),
			's' => array(array(9,0),array(9,1),array(9,2),array(9,3),array(9,4),array(9,5),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(10,5),array(11,0),array(11,1),array(11,2),array(11,3),array(11,4),array(12,0),array(12,1),array(12,2),array(12,3),array(12,4),array(12,5),array(13,2),array(13,3),array(13,4),array(13,5),array(14,0),array(14,1),array(14,2),array(14,3),array(14,4),array(14,5),array(15,0),array(15,1),array(15,2),array(15,3),array(15,4),array(15,5),),
			'w' => array(array(9,0),array(9,1),array(9,2),array(9,4),array(9,5),array(9,6),array(9,9),array(9,10),array(10,0),array(10,1),array(10,2),array(10,4),array(10,5),array(10,6),array(10,8),array(10,9),array(10,10),array(11,0),array(11,1),array(11,2),array(11,4),array(11,5),array(11,6),array(11,8),array(11,9),array(11,10),array(12,1),array(12,2),array(12,3),array(12,4),array(12,5),array(12,6),array(12,7),array(12,8),array(12,9),array(13,1),array(13,2),array(13,3),array(13,4),array(13,6),array(13,7),array(13,8),array(13,9),array(14,1),array(14,2),array(14,3),array(14,4),array(14,6),array(14,7),array(14,8),array(14,9),array(15,2),array(15,3),array(15,4),array(15,6),array(15,7),array(15,8),),
			'7' => array(array(6,0),array(6,1),array(11,1),array(12,1),array(13,1),array(14,1),array(6,2),array(9,2),array(10,2),array(11,2),array(12,2),array(13,2),array(14,2),array(15,2),array(6,3),array(7,3),array(8,3),array(9,3),array(10,3),array(11,3),array(12,3),array(13,3),array(14,3),array(6,4),array(7,4),array(8,4),array(9,4),array(10,4),array(6,5),array(7,5),array(8,5),array(15,1),),	
			'N' => array(array(6,0),array(6,1),array(6,2),array(6,5),array(6,6),array(7,0),array(7,1),array(7,2),array(7,5),array(7,6),array(8,0),array(8,1),array(8,2),array(8,3),array(8,5),array(8,6),array(9,0),array(9,1),array(9,2),array(9,3),array(9,5),array(9,6),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(10,5),array(10,6),array(11,0),array(11,1),array(11,2),array(11,3),array(11,4),array(11,5),array(11,6),array(12,0),array(12,1),array(12,3),array(12,4),array(12,5),array(12,6),array(13,0),array(13,1),array(13,4),array(13,5),array(13,6),array(14,0),array(14,1),array(14,4),array(14,5),array(14,6),array(15,0),array(15,1),array(15,5),array(15,6),),		
			'H' => array(array(6,0),array(6,1),array(6,5),array(6,6),array(7,0),array(7,1),array(7,5),array(7,6),array(8,0),array(8,1),array(8,5),array(8,6),array(9,0),array(9,1),array(9,5),array(9,6),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(10,5),array(10,6),array(11,0),array(11,1),array(11,5),array(11,6),array(12,0),array(12,1),array(12,5),array(12,6),array(13,0),array(13,1),array(13,5),array(13,6),array(14,0),array(14,1),array(14,5),array(14,6),array(15,0),array(15,1),array(15,5),array(15,6),),
			'v' => array(array(9,0),array(9,1),array(9,5),array(9,6),array(10,0),array(10,1),array(10,2),array(10,4),array(10,5),array(10,6),array(11,0),array(11,1),array(11,2),array(11,4),array(11,5),array(11,6),array(12,1),array(12,2),array(12,3),array(12,4),array(12,5),array(13,1),array(13,2),array(13,3),array(13,4),array(13,5),array(14,2),array(14,3),array(14,4),array(15,2),array(15,3),array(15,4),),
			'K' => array(array(6,0),array(6,1),array(6,5),array(6,6),array(6,7),array(7,0),array(7,1),array(7,4),array(7,5),array(7,6),array(8,0),array(8,1),array(8,3),array(8,4),array(8,5),array(9,0),array(9,1),array(9,2),array(9,3),array(9,4),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(10,5),array(11,0),array(11,1),array(11,2),array(11,3),array(11,4),array(11,5),array(12,0),array(12,1),array(12,2),array(12,4),array(12,5),array(13,0),array(13,1),array(13,4),array(13,5),array(13,6),array(14,0),array(14,1),array(14,4),array(14,5),array(14,6),array(15,0),array(15,1),array(15,5),array(15,6),array(15,7),),
			'G' => array(array(6,2),array(6,3),array(6,4),array(6,5),array(6,6),array(7,1),array(7,2),array(7,3),array(7,5),array(7,6),array(7,7),array(8,0),array(8,1),array(8,2),array(9,0),array(9,1),array(10,0),array(10,1),array(11,0),array(11,1),array(11,4),array(11,5),array(11,6),array(11,7),array(12,0),array(12,1),array(12,2),array(12,6),array(12,7),array(13,0),array(13,1),array(13,2),array(13,6),array(13,7),array(14,1),array(14,2),array(14,3),array(14,5),array(14,6),array(14,7),array(15,2),array(15,3),array(15,4),array(15,5),array(15,6),array(15,7),),					
			'Y' => array(array(6,0),array(6,1),array(6,6),array(6,7),array(7,0),array(7,1),array(7,2),array(7,5),array(7,6),array(7,7),array(8,1),array(8,2),array(8,3),array(8,4),array(8,5),array(8,6),array(9,1),array(9,2),array(9,3),array(9,4),array(9,5),array(9,6),array(10,2),array(10,3),array(10,4),array(10,5),array(11,2),array(11,3),array(11,4),array(11,5),array(12,3),array(12,4),array(13,3),array(13,4),array(14,3),array(14,4),array(15,3),array(15,4),),	
			'8' =>array(array(6,0),array(6,1),array(6,2),array(6,3),array(6,4),array(6,5),array(7,0),array(7,1),array(7,2),array(7,3),array(7,4),array(7,5),array(8,0),array(8,1),array(8,4),array(8,5),array(9,0),array(9,1),array(9,2),array(9,3),array(9,4),array(9,5),array(10,1),array(10,2),array(10,3),array(10,4),array(11,0),array(11,1),array(11,2),array(11,3),array(11,4),array(11,5),array(12,0),array(12,1),array(12,4),array(12,5),array(13,0),array(13,1),array(13,4),array(13,5),array(14,0),array(14,1),array(14,2),array(14,3),array(14,4),array(14,5),array(15,1),array(15,2),array(15,3),array(15,4),),
			'9' => array(array(6,1),array(6,2),array(6,3),array(6,4),array(7,0),array(7,1),array(7,2),array(7,3),array(7,4),array(7,5),array(8,0),array(8,1),array(8,4),array(8,5),array(9,0),array(9,1),array(9,4),array(9,5),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(10,5),array(11,1),array(11,2),array(11,3),array(11,4),array(11,5),array(12,4),array(12,5),array(13,4),array(13,5),array(14,0),array(14,1),array(14,2),array(14,3),array(14,4),array(14,5),array(15,0),array(15,1),array(15,2),array(15,3),array(15,4),),			
			'3' => array(array(6,0),array(6,1),array(6,2),array(6,3),array(6,4),array(7,0),array(7,1),array(7,2),array(7,3),array(7,4),array(7,5),array(8,4),array(8,5),array(9,3),array(9,4),array(9,5),array(10,2),array(10,3),array(10,4),array(11,3),array(11,4),array(11,5),array(12,4),array(12,5),array(13,4),array(13,5),array(14,0),array(14,1),array(14,2),array(14,3),array(14,4),array(14,5),array(15,0),array(15,1),array(15,2),array(15,3),array(15,4),),
			'g' => array(array(9,1),array(9,2),array(9,3),array(9,4),array(9,5),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(10,5),array(11,0),array(11,1),array(11,4),array(11,5),array(12,0),array(12,1),array(12,4),array(12,5),array(13,0),array(13,1),array(13,4),array(13,5),array(14,0),array(14,1),array(14,2),array(14,3),array(14,4),array(14,5),array(15,1),array(15,2),array(15,3),array(15,4),array(15,5),array(16,4),array(16,5),array(17,0),array(17,1),array(17,3),array(17,4),array(17,5),array(18,0),array(18,1),array(18,2),array(18,3),array(18,4),array(18,5),),	
			'd' => array(array(6,4),array(6,5),array(7,4),array(7,5),array(8,4),array(8,5),array(9,1),array(9,2),array(9,3),array(9,4),array(9,5),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(10,5),array(11,0),array(11,1),array(11,4),array(11,5),array(12,0),array(12,1),array(12,4),array(12,5),array(13,0),array(13,1),array(13,4),array(13,5),array(14,0),array(14,1),array(14,2),array(14,3),array(14,4),array(14,5),array(15,1),array(15,2),array(15,3),array(15,4),array(15,5),),	
			't' => array(array(7,1),array(7,2),array(8,1),array(8,2),array(9,0),array(9,1),array(9,2),array(9,3),array(10,1),array(10,2),array(11,1),array(11,2),array(12,1),array(12,2),array(13,1),array(13,2),array(14,1),array(14,2),array(15,1),array(15,2),array(15,3),),
			'e' => array(array(9,1),array(9,2),array(9,3),array(9,4),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(10,5),array(11,0),array(11,1),array(11,4),array(11,5),array(12,0),array(12,1),array(12,2),array(12,3),array(12,4),array(12,5),array(13,0),array(13,1),array(14,0),array(14,1),array(14,2),array(14,3),array(14,4),array(14,5),array(15,1),array(15,2),array(15,3),array(15,4),array(15,5),),
			'V' => array(array(6,0),array(6,1),array(6,2),array(6,6),array(6,7),array(6,8),array(7,0),array(7,1),array(7,2),array(7,6),array(7,7),array(7,8),array(8,0),array(8,1),array(8,2),array(8,6),array(8,7),array(8,8),array(9,1),array(9,2),array(9,3),array(9,5),array(9,6),array(9,7),array(10,1),array(10,2),array(10,3),array(10,5),array(10,6),array(10,7),array(11,1),array(11,2),array(11,3),array(11,5),array(11,6),array(11,7),array(12,2),array(12,3),array(12,4),array(12,5),array(12,6),array(13,2),array(13,3),array(13,4),array(13,5),array(13,6),array(14,2),array(14,3),array(14,4),array(14,5),array(14,6),array(15,3),array(15,4),array(15,5),),
			'x' => array(array(9,0),array(9,1),array(9,2),array(9,5),array(9,6),array(9,7),array(10,1),array(10,2),array(10,3),array(10,4),array(10,5),array(10,6),array(11,2),array(11,3),array(11,4),array(11,5),array(12,2),array(12,3),array(12,4),array(12,5),array(13,2),array(13,3),array(13,4),array(13,5),array(14,1),array(14,2),array(14,3),array(14,4),array(14,5),array(14,6),array(15,0),array(15,1),array(15,2),array(15,5),array(15,6),array(15,7),),
			'q' => array(array(9,1),array(9,2),array(9,3),array(9,4),array(9,5),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(10,5),array(11,0),array(11,1),array(11,4),array(11,5),array(12,0),array(12,1),array(12,4),array(12,5),array(13,0),array(13,1),array(13,4),array(13,5),array(14,0),array(14,1),array(14,2),array(14,3),array(14,4),array(14,5),array(15,1),array(15,2),array(15,3),array(15,4),array(15,5),array(16,4),array(16,5),array(17,4),array(17,5),array(18,4),array(18,5),),			
			'T' => array(array(6,0),array(6,1),array(6,2),array(6,3),array(6,4),array(6,5),array(6,6),array(6,7),array(7,3),array(7,4),array(8,3),array(8,4),array(9,3),array(9,4),array(10,3),array(10,4),array(11,3),array(11,4),array(12,3),array(12,4),array(13,3),array(13,4),array(14,3),array(14,4),array(15,3),array(15,4),),
			'5' => array(array(6,0),array(6,1),array(6,2),array(6,3),array(6,4),array(6,5),array(7,0),array(7,1),array(7,2),array(8,0),array(8,1),array(8,2),array(9,0),array(9,1),array(9,2),array(9,3),array(9,4),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(10,5),array(11,4),array(11,5),array(12,4),array(12,5),array(13,4),array(13,5),array(14,0),array(14,1),array(14,2),array(14,3),array(14,4),array(14,5),array(15,0),array(15,1),array(15,2),array(15,3),array(15,4),),
			'k' => array(array(6,0),array(6,1),array(7,0),array(7,1),array(8,0),array(8,1),array(9,0),array(9,1),array(9,3),array(9,4),array(9,5),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(11,0),array(11,1),array(11,2),array(11,3),array(12,0),array(12,1),array(12,2),array(12,3),array(12,4),array(13,0),array(13,1),array(13,2),array(13,3),array(13,4),array(14,0),array(14,1),array(14,3),array(14,4),array(14,5),array(15,0),array(15,1),array(15,4),array(15,5),),			
			'R' => array(array(6,0),array(6,1),array(6,2),array(6,3),array(6,4),array(6,5),array(6,6),array(7,0),array(7,1),array(7,4),array(7,5),array(7,6),array(8,0),array(8,1),array(8,5),array(8,6),array(9,0),array(9,1),array(9,5),array(9,6),array(10,0),array(10,1),array(10,4),array(10,5),array(10,6),array(11,0),array(11,1),array(11,2),array(11,3),array(11,4),array(11,5),array(12,0),array(12,1),array(12,3),array(12,4),array(12,5),array(13,0),array(13,1),array(13,4),array(13,5),array(13,6),array(14,0),array(14,1),array(14,5),array(14,6),array(14,7),array(15,0),array(15,1),array(15,5),array(15,6),array(15,7),),					
			'4' => array(array(6,3),array(6,4),array(7,2),array(7,3),array(7,4),array(8,2),array(8,3),array(8,4),array(9,1),array(9,2),array(9,3),array(9,4),array(10,1),array(10,2),array(10,3),array(10,4),array(11,0),array(11,1),array(11,3),array(11,4),array(12,0),array(12,1),array(12,3),array(12,4),array(13,0),array(13,1),array(13,2),array(13,3),array(13,4),array(13,5),array(14,3),array(14,4),array(15,3),array(15,4),),				
			'S' => array(array(6,1),array(6,2),array(6,3),array(6,4),array(6,5),array(6,6),array(7,0),array(7,1),array(7,2),array(7,4),array(7,5),array(7,6),array(8,0),array(8,1),array(8,2),array(9,0),array(9,1),array(9,2),array(9,3),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(10,5),array(11,1),array(11,2),array(11,3),array(11,4),array(11,5),array(11,6),array(12,3),array(12,4),array(12,5),array(12,6),array(13,4),array(13,5),array(13,6),array(14,0),array(14,1),array(14,2),array(14,4),array(14,5),array(14,6),array(15,0),array(15,1),array(15,2),array(15,3),array(15,4),array(15,5),),				
			'M' => array(array(6,0),array(6,1),array(6,2),array(6,6),array(6,7),array(6,8),array(7,0),array(7,1),array(7,2),array(7,3),array(7,5),array(7,6),array(7,7),array(7,8),array(8,0),array(8,1),array(8,2),array(8,3),array(8,5),array(8,6),array(8,7),array(8,8),array(9,0),array(9,1),array(9,2),array(9,3),array(9,5),array(9,6),array(9,7),array(9,8),array(10,0),array(10,1),array(10,2),array(10,3),array(10,5),array(10,6),array(10,7),array(10,8),array(11,0),array(11,1),array(11,2),array(11,3),array(11,4),array(11,5),array(11,6),array(11,7),array(11,8),array(12,0),array(12,1),array(12,2),array(12,3),array(12,4),array(12,5),array(12,6),array(12,7),array(12,8),array(13,0),array(13,1),array(13,3),array(13,4),array(13,5),array(13,7),array(13,8),array(14,0),array(14,1),array(14,3),array(14,4),array(14,5),array(14,7),array(14,8),array(15,0),array(15,1),array(15,3),array(15,4),array(15,5),array(15,7),array(15,8),),
			'E' => array(array(6,0),array(6,1),array(6,2),array(6,3),array(6,4),array(6,5),array(7,0),array(7,1),array(8,0),array(8,1),array(9,0),array(9,1),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(10,5),array(11,0),array(11,1),array(12,0),array(12,1),array(13,0),array(13,1),array(14,0),array(14,1),array(15,0),array(15,1),array(15,2),array(15,3),array(15,4),array(15,5),),			
			'X' => array(array(6,0),array(6,1),array(6,2),array(6,6),array(6,7),array(6,8),array(7,1),array(7,2),array(7,3),array(7,5),array(7,6),array(7,7),array(8,1),array(8,2),array(8,3),array(8,4),array(8,5),array(8,6),array(8,7),array(9,2),array(9,3),array(9,4),array(9,5),array(9,6),array(10,3),array(10,4),array(10,5),array(11,3),array(11,4),array(11,5),array(12,2),array(12,3),array(12,4),array(12,5),array(12,6),array(13,1),array(13,2),array(13,3),array(13,4),array(13,5),array(13,6),array(13,7),array(14,1),array(14,2),array(14,3),array(14,5),array(14,6),array(14,7),array(15,0),array(15,1),array(15,2),array(15,6),array(15,7),array(15,8),),
			'Q' => array(array(6,1),array(6,2),array(6,3),array(6,4),array(6,5),array(6,6),array(7,0),array(7,1),array(7,2),array(7,3),array(7,4),array(7,5),array(7,6),array(8,0),array(8,1),array(8,2),array(8,5),array(8,6),array(8,7),array(9,0),array(9,1),array(9,6),array(9,7),array(10,0),array(10,1),array(10,6),array(10,7),array(11,0),array(11,1),array(11,6),array(11,7),array(12,0),array(12,1),array(12,2),array(12,6),array(12,7),array(13,0),array(13,1),array(13,2),array(13,4),array(13,5),array(13,6),array(13,7),array(14,0),array(14,1),array(14,2),array(14,3),array(14,4),array(14,5),array(14,6),array(14,7),array(15,1),array(15,2),array(15,3),array(15,4),array(15,5),array(15,6),array(15,7),array(16,6),array(16,7),),
			'f' => array(array(6,1),array(6,2),array(6,3),array(7,1),array(7,2),array(8,1),array(8,2),array(9,0),array(9,1),array(9,2),array(9,3),array(10,1),array(10,2),array(11,1),array(11,2),array(12,1),array(12,2),array(13,1),array(13,2),array(14,1),array(14,2),array(15,1),array(15,2),),			
			'P' =>array(array(6,0),array(6,1),array(6,2),array(6,3),array(6,4),array(6,5),array(6,6),array(7,0),array(7,1),array(7,4),array(7,5),array(7,6),array(8,0),array(8,1),array(8,5),array(8,6),array(9,0),array(9,1),array(9,5),array(9,6),array(10,0),array(10,1),array(10,4),array(10,5),array(10,6),array(11,0),array(11,1),array(11,2),array(11,3),array(11,4),array(11,5),array(12,0),array(12,1),array(13,0),array(13,1),array(14,0),array(14,1),array(15,0),array(15,1),),					
			'F' => array(array(6,0),array(6,1),array(6,2),array(6,3),array(6,4),array(6,5),array(7,0),array(7,1),array(8,0),array(8,1),array(9,0),array(9,1),array(10,0),array(10,1),array(11,0),array(11,1),array(11,2),array(11,3),array(11,4),array(11,5),array(12,0),array(12,1),array(13,0),array(13,1),array(14,0),array(14,1),array(15,0),array(15,1),),
			'z' => array(array(9,0),array(9,1),array(9,2),array(9,3),array(9,4),array(10,2),array(10,3),array(10,4),array(11,2),array(11,3),array(11,4),array(12,1),array(12,2),array(12,3),array(13,0),array(13,1),array(13,2),array(14,0),array(14,1),array(14,2),array(15,0),array(15,1),array(15,2),array(15,3),array(15,4),),
			'u' => array(array(9,0),array(9,1),array(9,4),array(9,5),array(10,0),array(10,1),array(10,4),array(10,5),array(11,0),array(11,1),array(11,4),array(11,5),array(12,0),array(12,1),array(12,4),array(12,5),array(13,0),array(13,1),array(13,4),array(13,5),array(14,0),array(14,1),array(14,2),array(14,3),array(14,4),array(14,5),array(15,0),array(15,1),array(15,2),array(15,3),array(15,4),array(15,5),),
			'h' => array(array(6,0),array(6,1),array(7,0),array(7,1),array(8,0),array(8,1),array(9,0),array(9,1),array(9,2),array(9,3),array(9,4),array(9,5),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(10,5),array(11,0),array(11,1),array(11,4),array(11,5),array(12,0),array(12,1),array(12,4),array(12,5),array(13,0),array(13,1),array(13,4),array(13,5),array(14,0),array(14,1),array(14,4),array(14,5),array(15,0),array(15,1),array(15,4),array(15,5),),
			'c' => array(array(9,1),array(9,2),array(9,3),array(9,4),array(9,5),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(10,5),array(11,0),array(11,1),array(12,0),array(12,1),array(13,0),array(13,1),array(14,0),array(14,1),array(14,2),array(14,3),array(14,4),array(14,5),array(15,1),array(15,2),array(15,3),array(15,4),array(15,5),),		
			't' => array(array(7,1),array(7,2),array(8,1),array(8,2),array(9,0),array(9,1),array(9,2),array(9,3),array(10,1),array(10,2),array(11,1),array(11,2),array(12,1),array(12,2),array(13,1),array(13,2),array(14,1),array(14,2),array(15,1),array(15,2),array(15,3),),	
			'n' => array(array(9,0),array(9,1),array(9,2),array(9,3),array(9,4),array(9,5),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(10,5),array(11,0),array(11,1),array(11,4),array(11,5),array(12,0),array(12,1),array(12,4),array(12,5),array(13,0),array(13,1),array(13,4),array(13,5),array(14,0),array(14,1),array(14,4),array(14,5),array(15,0),array(15,1),array(15,4),array(15,5),),
			'L' => array(array(6,0),array(6,1),array(7,0),array(7,1),array(8,0),array(8,1),array(9,0),array(9,1),array(10,0),array(10,1),array(11,0),array(11,1),array(12,0),array(12,1),array(13,0),array(13,1),array(14,0),array(14,1),array(15,0),array(15,1),array(15,2),array(15,3),array(15,4),array(15,5),),
			'r' => array(array(9,0),array(9,1),array(9,2),array(9,3),array(10,0),array(10,1),array(10,2),array(10,3),array(11,0),array(11,1),array(12,0),array(12,1),array(13,0),array(13,1),array(14,0),array(14,1),array(15,0),array(15,1),),
			
		);
	}	
}
?>

使用代码

<?php
include('valite.class.php');

$test = new valite();

$test->getValidateCode();

$test->Draw();
var_dump($test->getData());

结果图示例


该算法的准确率极高,唯一的麻烦是,获取字模的过程(也就是坐标数组的过程)比较繁杂,我提供了match()方法了实现这个过程,但是还是需要先手动把某个字符的二值化码保存在key.txt文件里面。

check()方法是用于生成所有字符长度


下面贴两套key

准确

$this->keysLen = array("2"=>6,"8"=>6,"3"=>6,"4"=>6,"5"=>6,"6"=>6,"7"=>6,"9"=>6,"A"=>9,"B"=>7,"G"=>8,"C"=>8,"D"=>7,"E"=>6,"H"=>7,"K"=>7,"M"=>9,"N"=>7,"L"=>6,"R"=>8,"P"=>7,"F"=>6,"Q"=>8,"S"=>7,"T"=>8,"X"=>7,"U"=>7,"V"=>9,"W"=>13,"Y"=>8,"Z"=>7,"a"=>6,"b"=>6,"c"=>6,"d"=>6,"h"=>6,"e"=>6,"g"=>6,"f"=>5,"k"=>6,"m"=>10,"n"=>6,"p"=>6,"q"=>6,"t"=>4,"s"=>6,"u"=>6,"r"=>4,"w"=>11,"y"=>7,"v"=>7,"x"=>6,"z"=>5,);
		$this->keys = array(	
			'2' => array(array(6,1),array(6,2),array(6,3),array(6,4),array(7,0),array(7,1),array(7,4),array(7,5),array(8,4),array(8,5),array(9,4),array(9,5),array(10,3),array(10,4),array(11,2),array(11,3),array(11,4),array(12,2),array(12,3),array(13,1),array(13,2),array(14,0),array(14,1),array(15,0),array(15,1),array(15,2),array(15,3),array(15,4),array(15,5),),	
			'8' => array(array(6,1),array(6,2),array(6,3),array(6,4),array(7,0),array(7,1),array(7,4),array(7,5),array(8,0),array(8,1),array(8,4),array(8,5),array(9,0),array(9,1),array(9,4),array(9,5),array(10,1),array(10,2),array(10,3),array(10,4),array(11,0),array(11,1),array(11,4),array(11,5),array(12,0),array(12,1),array(12,4),array(12,5),array(13,0),array(13,1),array(13,4),array(13,5),array(14,0),array(14,1),array(14,4),array(14,5),array(15,1),array(15,2),array(15,3),array(15,4),),
			'3' => array(array(6,1),array(6,2),array(6,3),array(6,4),array(7,0),array(7,1),array(7,4),array(7,5),array(8,4),array(8,5),array(9,4),array(9,5),array(10,2),array(10,3),array(10,4),array(11,4),array(11,5),array(12,4),array(12,5),array(13,4),array(13,5),array(14,0),array(14,1),array(14,4),array(14,5),array(15,1),array(15,2),array(15,3),array(15,4),),
			'4' => array(array(6,3),array(6,4),array(7,3),array(7,4),array(8,2),array(8,3),array(8,4),array(9,2),array(9,3),array(9,4),array(10,1),array(10,3),array(10,4),array(11,1),array(11,3),array(11,4),array(12,0),array(12,3),array(12,4),array(13,0),array(13,1),array(13,2),array(13,3),array(13,4),array(13,5),array(14,3),array(14,4),array(15,3),array(15,4),),
			'5' => array(array(6,1),array(6,2),array(6,3),array(6,4),array(6,5),array(7,1),array(7,2),array(8,0),array(8,1),array(9,0),array(9,1),array(9,2),array(9,3),array(9,4),array(10,0),array(10,1),array(10,4),array(10,5),array(11,4),array(11,5),array(12,4),array(12,5),array(13,4),array(13,5),array(14,0),array(14,1),array(14,4),array(14,5),array(15,1),array(15,2),array(15,3),array(15,4),),
			'6' => array(array(6,2),array(6,3),array(6,4),array(7,1),array(7,4),array(7,5),array(8,0),array(8,1),array(9,0),array(9,1),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(11,0),array(11,1),array(11,4),array(11,5),array(12,0),array(12,1),array(12,4),array(12,5),array(13,0),array(13,1),array(13,4),array(13,5),array(14,0),array(14,1),array(14,4),array(14,5),array(15,1),array(15,2),array(15,3),array(15,4),),
			'7' => array(array(6,0),array(6,1),array(6,2),array(6,3),array(6,4),array(6,5),array(7,4),array(7,5),array(8,3),array(8,4),array(9,3),array(9,4),array(10,2),array(10,3),array(11,2),array(11,3),array(12,2),array(12,3),array(13,1),array(13,2),array(14,1),array(14,2),array(15,1),array(15,2),),			
			'9' => array(array(6,1),array(6,2),array(6,3),array(6,4),array(7,0),array(7,1),array(7,4),array(7,5),array(8,0),array(8,1),array(8,4),array(8,5),array(9,0),array(9,1),array(9,4),array(9,5),array(10,0),array(10,1),array(10,4),array(10,5),array(11,1),array(11,2),array(11,3),array(11,4),array(11,5),array(12,4),array(12,5),array(13,4),array(13,5),array(14,0),array(14,1),array(14,4),array(15,1),array(15,2),array(15,3),),					
			'A' => array(array(6,3),array(6,4),array(6,5),array(7,3),array(7,4),array(7,5),array(8,2),array(8,3),array(8,5),array(8,6),array(9,2),array(9,3),array(9,5),array(9,6),array(10,2),array(10,3),array(10,5),array(10,6),array(11,1),array(11,2),array(11,6),array(11,7),array(12,1),array(12,2),array(12,6),array(12,7),array(13,1),array(13,2),array(13,3),array(13,4),array(13,5),array(13,6),array(13,7),array(14,0),array(14,1),array(14,7),array(14,8),array(15,0),array(15,1),array(15,7),array(15,8),),
			'B' => array(array(6,0),array(6,1),array(6,2),array(6,3),array(6,4),array(6,5),array(7,0),array(7,1),array(7,5),array(7,6),array(8,0),array(8,1),array(8,5),array(8,6),array(9,0),array(9,1),array(9,5),array(9,6),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(10,5),array(11,0),array(11,1),array(11,5),array(11,6),array(12,0),array(12,1),array(12,5),array(12,6),array(13,0),array(13,1),array(13,5),array(13,6),array(14,0),array(14,1),array(14,5),array(14,6),array(15,0),array(15,1),array(15,2),array(15,3),array(15,4),array(15,5),),
			'G' => array(array(6,2),array(6,3),array(6,4),array(6,5),array(6,6),array(7,1),array(7,2),array(7,6),array(7,7),array(8,0),array(8,1),array(9,0),array(9,1),array(10,0),array(10,1),array(11,0),array(11,1),array(11,4),array(11,5),array(11,6),array(11,7),array(12,0),array(12,1),array(12,6),array(12,7),array(13,0),array(13,1),array(13,6),array(13,7),array(14,1),array(14,2),array(14,6),array(14,7),array(15,2),array(15,3),array(15,4),array(15,5),array(15,6),),
			'C' => array(array(6,2),array(6,3),array(6,4),array(6,5),array(6,6),array(7,1),array(7,2),array(7,6),array(7,7),array(8,0),array(8,1),array(9,0),array(9,1),array(10,0),array(10,1),array(11,0),array(11,1),array(12,0),array(12,1),array(13,0),array(13,1),array(14,1),array(14,2),array(14,6),array(14,7),array(15,2),array(15,3),array(15,4),array(15,5),array(15,6),),
			'D' =>array(array(6,0),array(6,1),array(6,2),array(6,3),array(6,4),array(7,0),array(7,1),array(7,4),array(7,5),array(8,0),array(8,1),array(8,5),array(8,6),array(9,0),array(9,1),array(9,5),array(9,6),array(10,0),array(10,1),array(10,5),array(10,6),array(11,0),array(11,1),array(11,5),array(11,6),array(12,0),array(12,1),array(12,5),array(12,6),array(13,0),array(13,1),array(13,5),array(13,6),array(14,0),array(14,1),array(14,4),array(14,5),array(15,0),array(15,1),array(15,2),array(15,3),array(15,4),),
			'E' => array(array(6,0),array(6,1),array(6,2),array(6,3),array(6,4),array(6,5),array(7,0),array(7,1),array(8,0),array(8,1),array(9,0),array(9,1),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(10,5),array(11,0),array(11,1),array(12,0),array(12,1),array(13,0),array(13,1),array(14,0),array(14,1),array(15,0),array(15,1),array(15,2),array(15,3),array(15,4),array(15,5),),						
			'H' => array(array(6,0),array(6,1),array(6,5),array(6,6),array(7,0),array(7,1),array(7,5),array(7,6),array(8,0),array(8,1),array(8,5),array(8,6),array(9,0),array(9,1),array(9,5),array(9,6),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(10,5),array(10,6),array(11,0),array(11,1),array(11,5),array(11,6),array(12,0),array(12,1),array(12,5),array(12,6),array(13,0),array(13,1),array(13,5),array(13,6),array(14,0),array(14,1),array(14,5),array(14,6),array(15,0),array(15,1),array(15,5),array(15,6),),
			'K' => array(array(6,0),array(6,1),array(6,5),array(6,6),array(7,0),array(7,1),array(7,4),array(7,5),array(8,0),array(8,1),array(8,3),array(8,4),array(9,0),array(9,1),array(9,3),array(9,4),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(11,0),array(11,1),array(11,2),array(11,4),array(11,5),array(12,0),array(12,1),array(12,4),array(12,5),array(13,0),array(13,1),array(13,4),array(13,5),array(14,0),array(14,1),array(14,5),array(14,6),array(15,0),array(15,1),array(15,5),array(15,6),),	
			'M' => array(array(6,0),array(6,1),array(6,2),array(6,6),array(6,7),array(6,8),array(7,0),array(7,1),array(7,2),array(7,6),array(7,7),array(7,8),array(8,0),array(8,1),array(8,2),array(8,3),array(8,5),array(8,6),array(8,7),array(8,8),array(9,0),array(9,1),array(9,2),array(9,3),array(9,5),array(9,6),array(9,7),array(9,8),array(10,0),array(10,1),array(10,3),array(10,5),array(10,7),array(10,8),array(11,0),array(11,1),array(11,3),array(11,4),array(11,5),array(11,7),array(11,8),array(12,0),array(12,1),array(12,3),array(12,5),array(12,7),array(12,8),array(13,0),array(13,1),array(13,3),array(13,4),array(13,5),array(13,7),array(13,8),array(14,0),array(14,1),array(14,3),array(14,4),array(14,5),array(14,7),array(14,8),array(15,0),array(15,1),array(15,4),array(15,7),array(15,8),),
			'N' => array(array(6,0),array(6,1),array(6,5),array(6,6),array(7,0),array(7,1),array(7,2),array(7,5),array(7,6),array(8,0),array(8,1),array(8,2),array(8,5),array(8,6),array(9,0),array(9,1),array(9,2),array(9,3),array(9,5),array(9,6),array(10,0),array(10,1),array(10,3),array(10,5),array(10,6),array(11,0),array(11,1),array(11,3),array(11,4),array(11,5),array(11,6),array(12,0),array(12,1),array(12,4),array(12,5),array(12,6),array(13,0),array(13,1),array(13,4),array(13,5),array(13,6),array(14,0),array(14,1),array(14,5),array(14,6),array(15,0),array(15,1),array(15,5),array(15,6),),
			'L' => array(array(6,0),array(6,1),array(7,0),array(7,1),array(8,0),array(8,1),array(9,0),array(9,1),array(10,0),array(10,1),array(11,0),array(11,1),array(12,0),array(12,1),array(13,0),array(13,1),array(14,0),array(14,1),array(15,0),array(15,1),array(15,2),array(15,3),array(15,4),array(15,5),),
			'R' => array(array(6,0),array(6,1),array(6,2),array(6,3),array(6,4),array(6,5),array(7,0),array(7,1),array(7,5),array(7,6),array(8,0),array(8,1),array(8,5),array(8,6),array(9,0),array(9,1),array(9,5),array(9,6),array(10,0),array(10,1),array(10,5),array(10,6),array(11,0),array(11,1),array(11,2),array(11,3),array(11,4),array(11,5),array(12,0),array(12,1),array(12,4),array(12,5),array(13,0),array(13,1),array(13,5),array(13,6),array(14,0),array(14,1),array(14,5),array(14,6),array(15,0),array(15,1),array(15,6),array(15,7),),
			'P' => array(array(6,0),array(6,1),array(6,2),array(6,3),array(6,4),array(6,5),array(7,0),array(7,1),array(7,5),array(7,6),array(8,0),array(8,1),array(8,5),array(8,6),array(9,0),array(9,1),array(9,5),array(9,6),array(10,0),array(10,1),array(10,5),array(10,6),array(11,0),array(11,1),array(11,2),array(11,3),array(11,4),array(11,5),array(12,0),array(12,1),array(13,0),array(13,1),array(14,0),array(14,1),array(15,0),array(15,1),),
			'F' => array(array(6,0),array(6,1),array(6,2),array(6,3),array(6,4),array(6,5),array(7,0),array(7,1),array(8,0),array(8,1),array(9,0),array(9,1),array(10,0),array(10,1),array(11,0),array(11,1),array(11,2),array(11,3),array(11,4),array(11,5),array(12,0),array(12,1),array(13,0),array(13,1),array(14,0),array(14,1),array(15,0),array(15,1),),	
			'Q' => array(array(6,2),array(6,3),array(6,4),array(6,5),array(7,1),array(7,2),array(7,5),array(7,6),array(8,0),array(8,1),array(8,6),array(8,7),array(9,0),array(9,1),array(9,6),array(9,7),array(10,0),array(10,1),array(10,6),array(10,7),array(11,0),array(11,1),array(11,6),array(11,7),array(12,0),array(12,1),array(12,6),array(12,7),array(13,0),array(13,1),array(13,4),array(13,6),array(13,7),array(14,1),array(14,2),array(14,5),array(14,6),array(15,2),array(15,3),array(15,4),array(15,5),array(15,6),array(16,7),),
			'S' => array(array(6,1),array(6,2),array(6,3),array(6,4),array(6,5),array(7,0),array(7,1),array(7,5),array(7,6),array(8,0),array(8,1),array(9,0),array(9,1),array(9,2),array(10,1),array(10,2),array(10,3),array(10,4),array(11,2),array(11,3),array(11,4),array(11,5),array(12,4),array(12,5),array(12,6),array(13,5),array(13,6),array(14,0),array(14,1),array(14,5),array(14,6),array(15,1),array(15,2),array(15,3),array(15,4),array(15,5),),
			'T' => array(array(6,0),array(6,1),array(6,2),array(6,3),array(6,4),array(6,5),array(6,6),array(6,7),array(7,3),array(7,4),array(8,3),array(8,4),array(9,3),array(9,4),array(10,3),array(10,4),array(11,3),array(11,4),array(12,3),array(12,4),array(13,3),array(13,4),array(14,3),array(14,4),array(15,3),array(15,4),),
			'X' => array(array(6,0),array(6,1),array(6,5),array(6,6),array(7,0),array(7,1),array(7,5),array(7,6),array(8,1),array(8,2),array(8,4),array(8,5),array(9,2),array(9,3),array(9,4),array(10,2),array(10,3),array(10,4),array(11,2),array(11,3),array(11,4),array(12,2),array(12,3),array(12,4),array(13,1),array(13,2),array(13,4),array(13,5),array(14,0),array(14,1),array(14,5),array(14,6),array(15,0),array(15,1),array(15,5),array(15,6),),		
			'U' => array(array(6,0),array(6,1),array(6,5),array(6,6),array(7,0),array(7,1),array(7,5),array(7,6),array(8,0),array(8,1),array(8,5),array(8,6),array(9,0),array(9,1),array(9,5),array(9,6),array(10,0),array(10,1),array(10,5),array(10,6),array(11,0),array(11,1),array(11,5),array(11,6),array(12,0),array(12,1),array(12,5),array(12,6),array(13,0),array(13,1),array(13,5),array(13,6),array(14,0),array(14,1),array(14,5),array(14,6),array(15,1),array(15,2),array(15,3),array(15,4),array(15,5),),
			'V' => array(array(6,0),array(6,1),array(6,7),array(6,8),array(7,0),array(7,1),array(7,7),array(7,8),array(8,1),array(8,2),array(8,6),array(8,7),array(9,1),array(9,2),array(9,6),array(9,7),array(10,1),array(10,2),array(10,6),array(10,7),array(11,2),array(11,3),array(11,5),array(11,6),array(12,2),array(12,3),array(12,5),array(12,6),array(13,2),array(13,3),array(13,5),array(13,6),array(14,3),array(14,4),array(14,5),array(15,3),array(15,4),array(15,5),),
			'W' => array(array(6,0),array(6,1),array(6,5),array(6,6),array(6,7),array(6,11),array(6,12),array(7,0),array(7,1),array(7,5),array(7,6),array(7,7),array(7,11),array(7,12),array(8,1),array(8,2),array(8,5),array(8,6),array(8,7),array(8,10),array(8,11),array(9,1),array(9,2),array(9,4),array(9,5),array(9,7),array(9,8),array(9,10),array(9,11),array(10,1),array(10,2),array(10,4),array(10,5),array(10,7),array(10,8),array(10,10),array(10,11),array(11,1),array(11,2),array(11,4),array(11,5),array(11,7),array(11,8),array(11,10),array(11,11),array(12,1),array(12,2),array(12,4),array(12,5),array(12,7),array(12,8),array(12,10),array(12,11),array(13,2),array(13,3),array(13,4),array(13,8),array(13,9),array(13,10),array(14,2),array(14,3),array(14,4),array(14,8),array(14,9),array(14,10),array(15,2),array(15,3),array(15,4),array(15,8),array(15,9),array(15,10),),
			'Y' => array(array(6,0),array(6,1),array(6,6),array(6,7),array(7,0),array(7,1),array(7,6),array(7,7),array(8,1),array(8,2),array(8,5),array(8,6),array(9,2),array(9,3),array(9,4),array(9,5),array(10,2),array(10,3),array(10,4),array(10,5),array(11,3),array(11,4),array(12,3),array(12,4),array(13,3),array(13,4),array(14,3),array(14,4),array(15,3),array(15,4),),
			'Z' => array(array(6,0),array(6,1),array(6,2),array(6,3),array(6,4),array(6,5),array(6,6),array(7,5),array(7,6),array(8,4),array(8,5),array(9,3),array(9,4),array(10,3),array(10,4),array(11,2),array(11,3),array(12,2),array(12,3),array(13,1),array(13,2),array(14,0),array(14,1),array(15,0),array(15,1),array(15,2),array(15,3),array(15,4),array(15,5),array(15,6),),
			'a' => array(array(9,1),array(9,2),array(9,3),array(9,4),array(10,0),array(10,4),array(10,5),array(11,2),array(11,3),array(11,4),array(11,5),array(12,1),array(12,2),array(12,4),array(12,5),array(13,0),array(13,1),array(13,4),array(13,5),array(14,0),array(14,1),array(14,4),array(14,5),array(15,1),array(15,2),array(15,3),array(15,4),array(15,5),),
			'b' => array(array(6,0),array(6,1),array(7,0),array(7,1),array(8,0),array(8,1),array(9,0),array(9,1),array(9,3),array(9,4),array(10,0),array(10,1),array(10,2),array(10,4),array(10,5),array(11,0),array(11,1),array(11,4),array(11,5),array(12,0),array(12,1),array(12,4),array(12,5),array(13,0),array(13,1),array(13,4),array(13,5),array(14,0),array(14,1),array(14,2),array(14,4),array(14,5),array(15,0),array(15,1),array(15,3),array(15,4),),		
			'd' => array(array(6,4),array(6,5),array(7,4),array(7,5),array(8,4),array(8,5),array(9,1),array(9,2),array(9,4),array(9,5),array(10,0),array(10,1),array(10,3),array(10,4),array(10,5),array(11,0),array(11,1),array(11,4),array(11,5),array(12,0),array(12,1),array(12,4),array(12,5),array(13,0),array(13,1),array(13,4),array(13,5),array(14,0),array(14,1),array(14,3),array(14,4),array(14,5),array(15,1),array(15,2),array(15,4),array(15,5),),
			'h' => array(array(6,0),array(6,1),array(7,0),array(7,1),array(8,0),array(8,1),array(9,0),array(9,1),array(9,3),array(9,4),array(10,0),array(10,1),array(10,2),array(10,4),array(10,5),array(11,0),array(11,1),array(11,4),array(11,5),array(12,0),array(12,1),array(12,4),array(12,5),array(13,0),array(13,1),array(13,4),array(13,5),array(14,0),array(14,1),array(14,4),array(14,5),array(15,0),array(15,1),array(15,4),array(15,5),),			
			'g' => array(array(9,1),array(9,2),array(9,4),array(9,5),array(10,0),array(10,1),array(10,3),array(10,4),array(10,5),array(11,0),array(11,1),array(11,4),array(11,5),array(12,0),array(12,1),array(12,4),array(12,5),array(13,0),array(13,1),array(13,4),array(13,5),array(14,0),array(14,1),array(14,3),array(14,4),array(14,5),array(15,1),array(15,2),array(15,4),array(15,5),array(16,4),array(16,5),array(17,0),array(17,4),array(17,5),array(18,1),array(18,2),array(18,3),array(18,4),),	
			'f' => array(array(6,2),array(6,3),array(6,4),array(7,1),array(7,2),array(8,1),array(8,2),array(9,0),array(9,1),array(9,2),array(9,3),array(10,1),array(10,2),array(11,1),array(11,2),array(12,1),array(12,2),array(13,1),array(13,2),array(14,1),array(14,2),array(15,1),array(15,2),),
			'k' => array(array(6,0),array(6,1),array(7,0),array(7,1),array(8,0),array(8,1),array(9,0),array(9,1),array(9,4),array(9,5),array(10,0),array(10,1),array(10,3),array(10,4),array(11,0),array(11,1),array(11,2),array(11,3),array(12,0),array(12,1),array(12,2),array(12,3),array(13,0),array(13,1),array(13,3),array(13,4),array(14,0),array(14,1),array(14,3),array(14,4),array(15,0),array(15,1),array(15,4),array(15,5),),		
			'm' => array(array(9,0),array(9,1),array(9,3),array(9,4),array(9,5),array(9,7),array(9,8),array(10,0),array(10,1),array(10,2),array(10,4),array(10,5),array(10,6),array(10,8),array(10,9),array(11,0),array(11,1),array(11,4),array(11,5),array(11,8),array(11,9),array(12,0),array(12,1),array(12,4),array(12,5),array(12,8),array(12,9),array(13,0),array(13,1),array(13,4),array(13,5),array(13,8),array(13,9),array(14,0),array(14,1),array(14,4),array(14,5),array(14,8),array(14,9),array(15,0),array(15,1),array(15,4),array(15,5),array(15,8),array(15,9),),
			'n' => array(array(9,0),array(9,1),array(9,3),array(9,4),array(10,0),array(10,1),array(10,2),array(10,4),array(10,5),array(11,0),array(11,1),array(11,4),array(11,5),array(12,0),array(12,1),array(12,4),array(12,5),array(13,0),array(13,1),array(13,4),array(13,5),array(14,0),array(14,1),array(14,4),array(14,5),array(15,0),array(15,1),array(15,4),array(15,5),),
			'p' => array(array(9,0),array(9,1),array(9,3),array(9,4),array(10,0),array(10,1),array(10,2),array(10,4),array(10,5),array(11,0),array(11,1),array(11,4),array(11,5),array(12,0),array(12,1),array(12,4),array(12,5),array(13,0),array(13,1),array(13,4),array(13,5),array(14,0),array(14,1),array(14,2),array(14,4),array(14,5),array(15,0),array(15,1),array(15,3),array(15,4),array(16,0),array(16,1),array(17,0),array(17,1),array(18,0),array(18,1),),
			'q' => array(array(9,1),array(9,2),array(9,4),array(9,5),array(10,0),array(10,1),array(10,3),array(10,4),array(10,5),array(11,0),array(11,1),array(11,4),array(11,5),array(12,0),array(12,1),array(12,4),array(12,5),array(13,0),array(13,1),array(13,4),array(13,5),array(14,0),array(14,1),array(14,3),array(14,4),array(14,5),array(15,1),array(15,2),array(15,4),array(15,5),array(16,4),array(16,5),array(17,4),array(17,5),array(18,4),array(18,5),),
			't' => array(array(7,1),array(7,2),array(8,1),array(8,2),array(9,0),array(9,1),array(9,2),array(9,3),array(10,1),array(10,2),array(11,1),array(11,2),array(12,1),array(12,2),array(13,1),array(13,2),array(14,1),array(14,2),array(15,1),array(15,2),array(15,3),),
			's' => array(array(9,1),array(9,2),array(9,3),array(9,4),array(10,0),array(10,1),array(10,4),array(10,5),array(11,0),array(11,1),array(11,2),array(12,1),array(12,2),array(12,3),array(12,4),array(13,3),array(13,4),array(13,5),array(14,0),array(14,1),array(14,4),array(14,5),array(15,1),array(15,2),array(15,3),array(15,4),),
			'u' => array(array(9,0),array(9,1),array(9,4),array(9,5),array(10,0),array(10,1),array(10,4),array(10,5),array(11,0),array(11,1),array(11,4),array(11,5),array(12,0),array(12,1),array(12,4),array(12,5),array(13,0),array(13,1),array(13,4),array(13,5),array(14,0),array(14,1),array(14,3),array(14,4),array(14,5),array(15,1),array(15,2),array(15,4),array(15,5),),
			'r' => array(array(9,0),array(9,1),array(9,2),array(9,3),array(10,0),array(10,1),array(11,0),array(11,1),array(12,0),array(12,1),array(13,0),array(13,1),array(14,0),array(14,1),array(15,0),array(15,1),),
			'w' => array(array(9,0),array(9,1),array(9,5),array(9,9),array(9,10),array(10,0),array(10,1),array(10,4),array(10,5),array(10,6),array(10,9),array(10,10),array(11,1),array(11,2),array(11,4),array(11,5),array(11,6),array(11,8),array(11,9),array(12,1),array(12,2),array(12,4),array(12,6),array(12,8),array(12,9),array(13,1),array(13,2),array(13,3),array(13,4),array(13,6),array(13,7),array(13,8),array(13,9),array(14,2),array(14,3),array(14,4),array(14,6),array(14,7),array(14,8),array(15,2),array(15,3),array(15,7),array(15,8),),			
			'y' => array(array(9,0),array(9,1),array(9,5),array(9,6),array(10,0),array(10,1),array(10,5),array(10,6),array(11,1),array(11,2),array(11,4),array(11,5),array(12,1),array(12,2),array(12,4),array(12,5),array(13,1),array(13,2),array(13,4),array(13,5),array(14,2),array(14,3),array(14,4),array(15,2),array(15,3),array(15,4),array(16,2),array(16,3),array(16,4),array(17,2),array(17,3),array(18,0),array(18,1),array(18,2),array(18,3),),
			'v' => array(array(9,0),array(9,1),array(9,5),array(9,6),array(10,0),array(10,1),array(10,5),array(10,6),array(11,1),array(11,2),array(11,4),array(11,5),array(12,1),array(12,2),array(12,4),array(12,5),array(13,1),array(13,2),array(13,4),array(13,5),array(14,2),array(14,3),array(14,4),array(15,2),array(15,3),array(15,4),),
			'x' => array(array(9,0),array(9,1),array(9,4),array(9,5),array(10,0),array(10,1),array(10,4),array(10,5),array(11,1),array(11,2),array(11,3),array(11,4),array(12,2),array(12,3),array(13,1),array(13,2),array(13,3),array(13,4),array(14,0),array(14,1),array(14,4),array(14,5),array(15,0),array(15,1),array(15,4),array(15,5),),
			'z' => array(array(9,0),array(9,1),array(9,2),array(9,3),array(9,4),array(10,3),array(10,4),array(11,2),array(11,3),array(12,1),array(12,2),array(13,1),array(13,2),array(14,0),array(14,1),array(15,0),array(15,1),array(15,2),array(15,3),array(15,4),),
			'e' => array(array(9,1),array(9,2),array(9,3),array(9,4),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(10,5),array(11,0),array(11,1),array(11,4),array(11,5),array(12,0),array(12,1),array(12,2),array(12,3),array(12,4),array(12,5),array(13,0),array(13,1),array(14,0),array(14,1),array(14,2),array(14,3),array(14,4),array(14,5),array(15,1),array(15,2),array(15,3),array(15,4),array(15,5),),
			'c' => array(array(9,1),array(9,2),array(9,3),array(9,4),array(10,0),array(10,1),array(10,4),array(10,5),array(11,0),array(11,1),array(12,0),array(12,1),array(13,0),array(13,1),array(14,0),array(14,1),array(14,4),array(14,5),array(15,1),array(15,2),array(15,3),array(15,4),),
		);		

模糊

$this->keys = array(	
			'W' => array(array(6,0),array(6,1),array(6,2),array(6,5),array(6,6),array(6,7),array(6,10),array(6,11),array(6,12),array(7,0),array(7,1),array(7,2),array(7,4),array(7,5),array(7,6),array(7,7),array(7,8),array(7,10),array(7,11),array(7,12),array(8,0),array(8,1),array(8,2),array(8,4),array(8,5),array(8,6),array(8,7),array(8,8),array(8,10),array(8,11),array(8,12),array(9,0),array(9,1),array(9,2),array(9,4),array(9,5),array(9,6),array(9,7),array(9,8),array(9,10),array(9,11),array(9,12),array(10,1),array(10,2),array(10,4),array(10,5),array(10,7),array(10,8),array(10,10),array(10,11),array(11,1),array(11,2),array(11,3),array(11,4),array(11,5),array(11,7),array(11,8),array(11,9),array(11,10),array(11,11),array(12,1),array(12,2),array(12,3),array(12,4),array(12,5),array(12,7),array(12,8),array(12,9),array(12,10),array(12,11),array(13,1),array(13,2),array(13,3),array(13,4),array(13,5),array(13,7),array(13,8),array(13,9),array(13,10),array(13,11),array(14,1),array(14,2),array(14,3),array(14,4),array(14,8),array(14,9),array(14,10),array(14,11),array(15,2),array(15,3),array(15,4),array(15,8),array(15,9),array(15,10),),
			'y' => array(array(9,0),array(9,1),array(9,2),array(9,4),array(9,5),array(9,6),array(10,0),array(10,1),array(10,2),array(10,4),array(10,5),array(10,6),array(11,0),array(11,1),array(11,2),array(11,4),array(11,5),array(11,6),array(12,1),array(12,2),array(12,3),array(12,4),array(12,5),array(13,1),array(13,2),array(13,3),array(13,4),array(13,5),array(14,1),array(14,2),array(14,3),array(14,4),array(14,5),array(15,2),array(15,3),array(15,4),array(15,5),array(16,2),array(16,3),array(16,4),array(17,1),array(17,2),array(17,3),array(17,4),array(18,0),array(18,1),array(18,2),array(18,3),),
			'p' => array(array(9,0),array(9,1),array(9,2),array(9,3),array(9,4),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(10,5),array(11,0),array(11,1),array(11,4),array(11,5),array(12,0),array(12,1),array(12,4),array(12,5),array(13,0),array(13,1),array(13,4),array(13,5),array(14,0),array(14,1),array(14,2),array(14,3),array(14,4),array(14,5),array(15,0),array(15,1),array(15,2),array(15,3),array(15,4),array(16,0),array(16,1),array(17,0),array(17,1),array(18,0),array(18,1),),			
			'D' => array(array(6,0),array(6,1),array(6,2),array(6,3),array(6,4),array(6,5),array(7,0),array(7,1),array(7,4),array(7,5),array(7,6),array(8,0),array(8,1),array(8,4),array(8,5),array(8,6),array(9,0),array(9,1),array(9,5),array(9,6),array(10,0),array(10,1),array(10,5),array(10,6),array(11,0),array(11,1),array(11,5),array(11,6),array(12,0),array(12,1),array(12,5),array(12,6),array(13,0),array(13,1),array(13,4),array(13,5),array(13,6),array(14,0),array(14,1),array(14,4),array(14,5),array(14,6),array(15,0),array(15,1),array(15,2),array(15,3),array(15,4),array(15,5),),		
			'B' => array(array(6,0),array(6,1),array(6,2),array(6,3),array(6,4),array(6,5),array(6,6),array(7,0),array(7,1),array(7,4),array(7,5),array(7,6),array(8,0),array(8,1),array(8,5),array(8,6),array(9,0),array(9,1),array(9,4),array(9,5),array(9,6),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(10,5),array(10,6),array(11,0),array(11,1),array(11,4),array(11,5),array(11,6),array(12,0),array(12,1),array(12,5),array(12,6),array(13,0),array(13,1),array(13,5),array(13,6),array(14,0),array(14,1),array(14,4),array(14,5),array(14,6),array(15,0),array(15,1),array(15,2),array(15,3),array(15,4),array(15,5),),	
			'U' => array(array(6,0),array(6,1),array(6,5),array(6,6),array(7,0),array(7,1),array(7,5),array(7,6),array(8,0),array(8,1),array(8,5),array(8,6),array(9,0),array(9,1),array(9,5),array(9,6),array(10,0),array(10,1),array(10,5),array(10,6),array(11,0),array(11,1),array(11,5),array(11,6),array(12,0),array(12,1),array(12,5),array(12,6),array(13,0),array(13,1),array(13,5),array(13,6),array(14,0),array(14,1),array(14,2),array(14,4),array(14,5),array(14,6),array(15,1),array(15,2),array(15,3),array(15,4),array(15,5),),
			'b' => array(array(6,0),array(6,1),array(7,0),array(7,1),array(8,0),array(8,1),array(9,0),array(9,1),array(9,2),array(9,3),array(9,4),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(10,5),array(11,0),array(11,1),array(11,4),array(11,5),array(12,0),array(12,1),array(12,4),array(12,5),array(13,0),array(13,1),array(13,4),array(13,5),array(14,0),array(14,1),array(14,2),array(14,3),array(14,4),array(14,5),array(15,0),array(15,1),array(15,2),array(15,3),array(15,4),),
			'a' => array(array(9,0),array(9,1),array(9,2),array(9,3),array(9,4),array(9,5),array(10,0),array(10,1),array(10,3),array(10,4),array(10,5),array(11,1),array(11,2),array(11,3),array(11,4),array(11,5),array(12,0),array(12,1),array(12,2),array(12,3),array(12,4),array(12,5),array(13,0),array(13,1),array(13,4),array(13,5),array(14,0),array(14,1),array(14,2),array(14,3),array(14,4),array(14,5),array(15,0),array(15,1),array(15,2),array(15,3),array(15,4),array(15,5),),
			'C' => array(array(6,2),array(6,3),array(6,4),array(6,5),array(6,6),array(7,1),array(7,2),array(7,3),array(7,5),array(7,6),array(7,7),array(8,0),array(8,1),array(8,2),array(9,0),array(9,1),array(10,0),array(10,1),array(11,0),array(11,1),array(12,0),array(12,1),array(13,0),array(13,1),array(13,2),array(14,0),array(14,1),array(14,2),array(14,3),array(14,5),array(14,6),array(14,7),array(15,1),array(15,2),array(15,3),array(15,4),array(15,5),array(15,6),),
			'A' => array(array(6,3),array(6,4),array(6,5),array(7,2),array(7,3),array(7,4),array(7,5),array(7,6),array(8,2),array(8,3),array(8,4),array(8,5),array(8,6),array(9,2),array(9,3),array(9,4),array(9,5),array(9,6),array(10,1),array(10,2),array(10,3),array(10,5),array(10,6),array(10,7),array(11,1),array(11,2),array(11,3),array(11,5),array(11,6),array(11,7),array(12,1),array(12,2),array(12,3),array(12,5),array(12,6),array(12,7),array(13,0),array(13,1),array(13,2),array(13,3),array(13,4),array(13,5),array(13,6),array(13,7),array(13,8),array(14,0),array(14,1),array(14,2),array(14,6),array(14,7),array(14,8),array(15,0),array(15,1),array(15,2),array(15,6),array(15,7),array(15,8),),
			'Z' => array(array(6,0),array(6,1),array(6,2),array(6,3),array(6,4),array(6,5),array(6,6),array(7,4),array(7,5),array(7,6),array(8,4),array(8,5),array(8,6),array(9,3),array(9,4),array(9,5),array(10,2),array(10,3),array(10,4),array(11,2),array(11,3),array(11,4),array(12,1),array(12,2),array(12,3),array(13,0),array(13,1),array(13,2),array(13,3),array(14,0),array(14,1),array(14,2),array(15,0),array(15,1),array(15,2),array(15,3),array(15,4),array(15,5),array(15,6),),
			'm' => array(array(9,0),array(9,1),array(9,2),array(9,3),array(9,4),array(9,5),array(9,6),array(9,7),array(9,8),array(9,9),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(10,5),array(10,6),array(10,7),array(10,8),array(10,9),array(11,0),array(11,1),array(11,4),array(11,5),array(11,8),array(11,9),array(12,0),array(12,1),array(12,4),array(12,5),array(12,8),array(12,9),array(13,0),array(13,1),array(13,4),array(13,5),array(13,8),array(13,9),array(14,0),array(14,1),array(14,4),array(14,5),array(14,8),array(14,9),array(15,0),array(15,1),array(15,4),array(15,5),array(15,8),array(15,9),),
			'2' => array(array(6,0),array(7,0),array(13,0),array(14,0),array(15,0),array(6,1),array(7,1),array(12,1),array(13,1),array(14,1),array(15,1),array(6,2),array(7,2),array(11,2),array(12,2),array(13,2),array(14,2),array(15,2),array(6,3),array(7,3),array(9,3),array(10,3),array(11,3),array(12,3),array(13,3),array(15,3),array(6,4),array(7,4),array(8,4),array(9,4),array(10,4),array(11,4),array(12,4),array(15,4),array(7,5),array(8,5),array(9,5),array(10,5),array(15,5)),	
			'6' => array(array(6,1),array(6,2),array(6,3),array(6,4),array(6,5),array(7,0),array(7,1),array(7,2),array(7,3),array(7,4),array(7,5),array(8,0),array(8,1),array(9,0),array(9,1),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(11,0),array(11,1),array(11,2),array(11,3),array(11,4),array(11,5),array(12,0),array(12,1),array(12,4),array(12,5),array(13,0),array(13,1),array(13,4),array(13,5),array(14,0),array(14,1),array(14,2),array(14,3),array(14,4),array(14,5),array(15,1),array(15,2),array(15,3),array(15,4),),
			's' => array(array(9,0),array(9,1),array(9,2),array(9,3),array(9,4),array(9,5),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(10,5),array(11,0),array(11,1),array(11,2),array(11,3),array(11,4),array(12,0),array(12,1),array(12,2),array(12,3),array(12,4),array(12,5),array(13,2),array(13,3),array(13,4),array(13,5),array(14,0),array(14,1),array(14,2),array(14,3),array(14,4),array(14,5),array(15,0),array(15,1),array(15,2),array(15,3),array(15,4),array(15,5),),
			'w' => array(array(9,0),array(9,1),array(9,2),array(9,4),array(9,5),array(9,6),array(9,9),array(9,10),array(10,0),array(10,1),array(10,2),array(10,4),array(10,5),array(10,6),array(10,8),array(10,9),array(10,10),array(11,0),array(11,1),array(11,2),array(11,4),array(11,5),array(11,6),array(11,8),array(11,9),array(11,10),array(12,1),array(12,2),array(12,3),array(12,4),array(12,5),array(12,6),array(12,7),array(12,8),array(12,9),array(13,1),array(13,2),array(13,3),array(13,4),array(13,6),array(13,7),array(13,8),array(13,9),array(14,1),array(14,2),array(14,3),array(14,4),array(14,6),array(14,7),array(14,8),array(14,9),array(15,2),array(15,3),array(15,4),array(15,6),array(15,7),array(15,8),),
			'7' => array(array(6,0),array(6,1),array(11,1),array(12,1),array(13,1),array(14,1),array(6,2),array(9,2),array(10,2),array(11,2),array(12,2),array(13,2),array(14,2),array(15,2),array(6,3),array(7,3),array(8,3),array(9,3),array(10,3),array(11,3),array(12,3),array(13,3),array(14,3),array(6,4),array(7,4),array(8,4),array(9,4),array(10,4),array(6,5),array(7,5),array(8,5),array(15,1),),	
			'N' => array(array(6,0),array(6,1),array(6,2),array(6,5),array(6,6),array(7,0),array(7,1),array(7,2),array(7,5),array(7,6),array(8,0),array(8,1),array(8,2),array(8,3),array(8,5),array(8,6),array(9,0),array(9,1),array(9,2),array(9,3),array(9,5),array(9,6),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(10,5),array(10,6),array(11,0),array(11,1),array(11,2),array(11,3),array(11,4),array(11,5),array(11,6),array(12,0),array(12,1),array(12,3),array(12,4),array(12,5),array(12,6),array(13,0),array(13,1),array(13,4),array(13,5),array(13,6),array(14,0),array(14,1),array(14,4),array(14,5),array(14,6),array(15,0),array(15,1),array(15,5),array(15,6),),		
			'H' => array(array(6,0),array(6,1),array(6,5),array(6,6),array(7,0),array(7,1),array(7,5),array(7,6),array(8,0),array(8,1),array(8,5),array(8,6),array(9,0),array(9,1),array(9,5),array(9,6),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(10,5),array(10,6),array(11,0),array(11,1),array(11,5),array(11,6),array(12,0),array(12,1),array(12,5),array(12,6),array(13,0),array(13,1),array(13,5),array(13,6),array(14,0),array(14,1),array(14,5),array(14,6),array(15,0),array(15,1),array(15,5),array(15,6),),
			'v' => array(array(9,0),array(9,1),array(9,5),array(9,6),array(10,0),array(10,1),array(10,2),array(10,4),array(10,5),array(10,6),array(11,0),array(11,1),array(11,2),array(11,4),array(11,5),array(11,6),array(12,1),array(12,2),array(12,3),array(12,4),array(12,5),array(13,1),array(13,2),array(13,3),array(13,4),array(13,5),array(14,2),array(14,3),array(14,4),array(15,2),array(15,3),array(15,4),),
			'K' => array(array(6,0),array(6,1),array(6,5),array(6,6),array(6,7),array(7,0),array(7,1),array(7,4),array(7,5),array(7,6),array(8,0),array(8,1),array(8,3),array(8,4),array(8,5),array(9,0),array(9,1),array(9,2),array(9,3),array(9,4),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(10,5),array(11,0),array(11,1),array(11,2),array(11,3),array(11,4),array(11,5),array(12,0),array(12,1),array(12,2),array(12,4),array(12,5),array(13,0),array(13,1),array(13,4),array(13,5),array(13,6),array(14,0),array(14,1),array(14,4),array(14,5),array(14,6),array(15,0),array(15,1),array(15,5),array(15,6),array(15,7),),
			'G' => array(array(6,2),array(6,3),array(6,4),array(6,5),array(6,6),array(7,1),array(7,2),array(7,3),array(7,5),array(7,6),array(7,7),array(8,0),array(8,1),array(8,2),array(9,0),array(9,1),array(10,0),array(10,1),array(11,0),array(11,1),array(11,4),array(11,5),array(11,6),array(11,7),array(12,0),array(12,1),array(12,2),array(12,6),array(12,7),array(13,0),array(13,1),array(13,2),array(13,6),array(13,7),array(14,1),array(14,2),array(14,3),array(14,5),array(14,6),array(14,7),array(15,2),array(15,3),array(15,4),array(15,5),array(15,6),array(15,7),),					
			'Y' => array(array(6,0),array(6,1),array(6,6),array(6,7),array(7,0),array(7,1),array(7,2),array(7,5),array(7,6),array(7,7),array(8,1),array(8,2),array(8,3),array(8,4),array(8,5),array(8,6),array(9,1),array(9,2),array(9,3),array(9,4),array(9,5),array(9,6),array(10,2),array(10,3),array(10,4),array(10,5),array(11,2),array(11,3),array(11,4),array(11,5),array(12,3),array(12,4),array(13,3),array(13,4),array(14,3),array(14,4),array(15,3),array(15,4),),	
			'8' =>array(array(6,0),array(6,1),array(6,2),array(6,3),array(6,4),array(6,5),array(7,0),array(7,1),array(7,2),array(7,3),array(7,4),array(7,5),array(8,0),array(8,1),array(8,4),array(8,5),array(9,0),array(9,1),array(9,2),array(9,3),array(9,4),array(9,5),array(10,1),array(10,2),array(10,3),array(10,4),array(11,0),array(11,1),array(11,2),array(11,3),array(11,4),array(11,5),array(12,0),array(12,1),array(12,4),array(12,5),array(13,0),array(13,1),array(13,4),array(13,5),array(14,0),array(14,1),array(14,2),array(14,3),array(14,4),array(14,5),array(15,1),array(15,2),array(15,3),array(15,4),),
			'9' => array(array(6,1),array(6,2),array(6,3),array(6,4),array(7,0),array(7,1),array(7,2),array(7,3),array(7,4),array(7,5),array(8,0),array(8,1),array(8,4),array(8,5),array(9,0),array(9,1),array(9,4),array(9,5),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(10,5),array(11,1),array(11,2),array(11,3),array(11,4),array(11,5),array(12,4),array(12,5),array(13,4),array(13,5),array(14,0),array(14,1),array(14,2),array(14,3),array(14,4),array(14,5),array(15,0),array(15,1),array(15,2),array(15,3),array(15,4),),			
			'3' => array(array(6,0),array(6,1),array(6,2),array(6,3),array(6,4),array(7,0),array(7,1),array(7,2),array(7,3),array(7,4),array(7,5),array(8,4),array(8,5),array(9,3),array(9,4),array(9,5),array(10,2),array(10,3),array(10,4),array(11,3),array(11,4),array(11,5),array(12,4),array(12,5),array(13,4),array(13,5),array(14,0),array(14,1),array(14,2),array(14,3),array(14,4),array(14,5),array(15,0),array(15,1),array(15,2),array(15,3),array(15,4),),
			'g' => array(array(9,1),array(9,2),array(9,3),array(9,4),array(9,5),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(10,5),array(11,0),array(11,1),array(11,4),array(11,5),array(12,0),array(12,1),array(12,4),array(12,5),array(13,0),array(13,1),array(13,4),array(13,5),array(14,0),array(14,1),array(14,2),array(14,3),array(14,4),array(14,5),array(15,1),array(15,2),array(15,3),array(15,4),array(15,5),array(16,4),array(16,5),array(17,0),array(17,1),array(17,3),array(17,4),array(17,5),array(18,0),array(18,1),array(18,2),array(18,3),array(18,4),array(18,5),),	
			'd' => array(array(6,4),array(6,5),array(7,4),array(7,5),array(8,4),array(8,5),array(9,1),array(9,2),array(9,3),array(9,4),array(9,5),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(10,5),array(11,0),array(11,1),array(11,4),array(11,5),array(12,0),array(12,1),array(12,4),array(12,5),array(13,0),array(13,1),array(13,4),array(13,5),array(14,0),array(14,1),array(14,2),array(14,3),array(14,4),array(14,5),array(15,1),array(15,2),array(15,3),array(15,4),array(15,5),),	
			't' => array(array(7,1),array(7,2),array(8,1),array(8,2),array(9,0),array(9,1),array(9,2),array(9,3),array(10,1),array(10,2),array(11,1),array(11,2),array(12,1),array(12,2),array(13,1),array(13,2),array(14,1),array(14,2),array(15,1),array(15,2),array(15,3),),
			'e' => array(array(9,1),array(9,2),array(9,3),array(9,4),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(10,5),array(11,0),array(11,1),array(11,4),array(11,5),array(12,0),array(12,1),array(12,2),array(12,3),array(12,4),array(12,5),array(13,0),array(13,1),array(14,0),array(14,1),array(14,2),array(14,3),array(14,4),array(14,5),array(15,1),array(15,2),array(15,3),array(15,4),array(15,5),),
			'V' => array(array(6,0),array(6,1),array(6,2),array(6,6),array(6,7),array(6,8),array(7,0),array(7,1),array(7,2),array(7,6),array(7,7),array(7,8),array(8,0),array(8,1),array(8,2),array(8,6),array(8,7),array(8,8),array(9,1),array(9,2),array(9,3),array(9,5),array(9,6),array(9,7),array(10,1),array(10,2),array(10,3),array(10,5),array(10,6),array(10,7),array(11,1),array(11,2),array(11,3),array(11,5),array(11,6),array(11,7),array(12,2),array(12,3),array(12,4),array(12,5),array(12,6),array(13,2),array(13,3),array(13,4),array(13,5),array(13,6),array(14,2),array(14,3),array(14,4),array(14,5),array(14,6),array(15,3),array(15,4),array(15,5),),
			'x' => array(array(9,0),array(9,1),array(9,2),array(9,5),array(9,6),array(9,7),array(10,1),array(10,2),array(10,3),array(10,4),array(10,5),array(10,6),array(11,2),array(11,3),array(11,4),array(11,5),array(12,2),array(12,3),array(12,4),array(12,5),array(13,2),array(13,3),array(13,4),array(13,5),array(14,1),array(14,2),array(14,3),array(14,4),array(14,5),array(14,6),array(15,0),array(15,1),array(15,2),array(15,5),array(15,6),array(15,7),),
			'q' => array(array(9,1),array(9,2),array(9,3),array(9,4),array(9,5),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(10,5),array(11,0),array(11,1),array(11,4),array(11,5),array(12,0),array(12,1),array(12,4),array(12,5),array(13,0),array(13,1),array(13,4),array(13,5),array(14,0),array(14,1),array(14,2),array(14,3),array(14,4),array(14,5),array(15,1),array(15,2),array(15,3),array(15,4),array(15,5),array(16,4),array(16,5),array(17,4),array(17,5),array(18,4),array(18,5),),			
			'T' => array(array(6,0),array(6,1),array(6,2),array(6,3),array(6,4),array(6,5),array(6,6),array(6,7),array(7,3),array(7,4),array(8,3),array(8,4),array(9,3),array(9,4),array(10,3),array(10,4),array(11,3),array(11,4),array(12,3),array(12,4),array(13,3),array(13,4),array(14,3),array(14,4),array(15,3),array(15,4),),
			'5' => array(array(6,0),array(6,1),array(6,2),array(6,3),array(6,4),array(6,5),array(7,0),array(7,1),array(7,2),array(8,0),array(8,1),array(8,2),array(9,0),array(9,1),array(9,2),array(9,3),array(9,4),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(10,5),array(11,4),array(11,5),array(12,4),array(12,5),array(13,4),array(13,5),array(14,0),array(14,1),array(14,2),array(14,3),array(14,4),array(14,5),array(15,0),array(15,1),array(15,2),array(15,3),array(15,4),),
			'k' => array(array(6,0),array(6,1),array(7,0),array(7,1),array(8,0),array(8,1),array(9,0),array(9,1),array(9,3),array(9,4),array(9,5),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(11,0),array(11,1),array(11,2),array(11,3),array(12,0),array(12,1),array(12,2),array(12,3),array(12,4),array(13,0),array(13,1),array(13,2),array(13,3),array(13,4),array(14,0),array(14,1),array(14,3),array(14,4),array(14,5),array(15,0),array(15,1),array(15,4),array(15,5),),			
			'R' => array(array(6,0),array(6,1),array(6,2),array(6,3),array(6,4),array(6,5),array(6,6),array(7,0),array(7,1),array(7,4),array(7,5),array(7,6),array(8,0),array(8,1),array(8,5),array(8,6),array(9,0),array(9,1),array(9,5),array(9,6),array(10,0),array(10,1),array(10,4),array(10,5),array(10,6),array(11,0),array(11,1),array(11,2),array(11,3),array(11,4),array(11,5),array(12,0),array(12,1),array(12,3),array(12,4),array(12,5),array(13,0),array(13,1),array(13,4),array(13,5),array(13,6),array(14,0),array(14,1),array(14,5),array(14,6),array(14,7),array(15,0),array(15,1),array(15,5),array(15,6),array(15,7),),					
			'4' => array(array(6,3),array(6,4),array(7,2),array(7,3),array(7,4),array(8,2),array(8,3),array(8,4),array(9,1),array(9,2),array(9,3),array(9,4),array(10,1),array(10,2),array(10,3),array(10,4),array(11,0),array(11,1),array(11,3),array(11,4),array(12,0),array(12,1),array(12,3),array(12,4),array(13,0),array(13,1),array(13,2),array(13,3),array(13,4),array(13,5),array(14,3),array(14,4),array(15,3),array(15,4),),				
			'S' => array(array(6,1),array(6,2),array(6,3),array(6,4),array(6,5),array(6,6),array(7,0),array(7,1),array(7,2),array(7,4),array(7,5),array(7,6),array(8,0),array(8,1),array(8,2),array(9,0),array(9,1),array(9,2),array(9,3),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(10,5),array(11,1),array(11,2),array(11,3),array(11,4),array(11,5),array(11,6),array(12,3),array(12,4),array(12,5),array(12,6),array(13,4),array(13,5),array(13,6),array(14,0),array(14,1),array(14,2),array(14,4),array(14,5),array(14,6),array(15,0),array(15,1),array(15,2),array(15,3),array(15,4),array(15,5),),				
			'M' => array(array(6,0),array(6,1),array(6,2),array(6,6),array(6,7),array(6,8),array(7,0),array(7,1),array(7,2),array(7,3),array(7,5),array(7,6),array(7,7),array(7,8),array(8,0),array(8,1),array(8,2),array(8,3),array(8,5),array(8,6),array(8,7),array(8,8),array(9,0),array(9,1),array(9,2),array(9,3),array(9,5),array(9,6),array(9,7),array(9,8),array(10,0),array(10,1),array(10,2),array(10,3),array(10,5),array(10,6),array(10,7),array(10,8),array(11,0),array(11,1),array(11,2),array(11,3),array(11,4),array(11,5),array(11,6),array(11,7),array(11,8),array(12,0),array(12,1),array(12,2),array(12,3),array(12,4),array(12,5),array(12,6),array(12,7),array(12,8),array(13,0),array(13,1),array(13,3),array(13,4),array(13,5),array(13,7),array(13,8),array(14,0),array(14,1),array(14,3),array(14,4),array(14,5),array(14,7),array(14,8),array(15,0),array(15,1),array(15,3),array(15,4),array(15,5),array(15,7),array(15,8),),
			'E' => array(array(6,0),array(6,1),array(6,2),array(6,3),array(6,4),array(6,5),array(7,0),array(7,1),array(8,0),array(8,1),array(9,0),array(9,1),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(10,5),array(11,0),array(11,1),array(12,0),array(12,1),array(13,0),array(13,1),array(14,0),array(14,1),array(15,0),array(15,1),array(15,2),array(15,3),array(15,4),array(15,5),),			
			'X' => array(array(6,0),array(6,1),array(6,2),array(6,6),array(6,7),array(6,8),array(7,1),array(7,2),array(7,3),array(7,5),array(7,6),array(7,7),array(8,1),array(8,2),array(8,3),array(8,4),array(8,5),array(8,6),array(8,7),array(9,2),array(9,3),array(9,4),array(9,5),array(9,6),array(10,3),array(10,4),array(10,5),array(11,3),array(11,4),array(11,5),array(12,2),array(12,3),array(12,4),array(12,5),array(12,6),array(13,1),array(13,2),array(13,3),array(13,4),array(13,5),array(13,6),array(13,7),array(14,1),array(14,2),array(14,3),array(14,5),array(14,6),array(14,7),array(15,0),array(15,1),array(15,2),array(15,6),array(15,7),array(15,8),),			
			'Q' => array(array(6,1),array(6,2),array(6,3),array(6,4),array(6,5),array(6,6),array(7,0),array(7,1),array(7,2),array(7,3),array(7,4),array(7,5),array(7,6),array(8,0),array(8,1),array(8,2),array(8,5),array(8,6),array(8,7),array(9,0),array(9,1),array(9,6),array(9,7),array(10,0),array(10,1),array(10,6),array(10,7),array(11,0),array(11,1),array(11,6),array(11,7),array(12,0),array(12,1),array(12,2),array(12,6),array(12,7),array(13,0),array(13,1),array(13,2),array(13,4),array(13,5),array(13,6),array(13,7),array(14,0),array(14,1),array(14,2),array(14,3),array(14,4),array(14,5),array(14,6),array(14,7),array(15,1),array(15,2),array(15,3),array(15,4),array(15,5),array(15,6),array(15,7),array(16,6),array(16,7),),
			'f' => array(array(6,1),array(6,2),array(6,3),array(7,1),array(7,2),array(8,1),array(8,2),array(9,0),array(9,1),array(9,2),array(9,3),array(10,1),array(10,2),array(11,1),array(11,2),array(12,1),array(12,2),array(13,1),array(13,2),array(14,1),array(14,2),array(15,1),array(15,2),),			
			'P' =>array(array(6,0),array(6,1),array(6,2),array(6,3),array(6,4),array(6,5),array(6,6),array(7,0),array(7,1),array(7,4),array(7,5),array(7,6),array(8,0),array(8,1),array(8,5),array(8,6),array(9,0),array(9,1),array(9,5),array(9,6),array(10,0),array(10,1),array(10,4),array(10,5),array(10,6),array(11,0),array(11,1),array(11,2),array(11,3),array(11,4),array(11,5),array(12,0),array(12,1),array(13,0),array(13,1),array(14,0),array(14,1),array(15,0),array(15,1),),					
			'F' => array(array(6,0),array(6,1),array(6,2),array(6,3),array(6,4),array(6,5),array(7,0),array(7,1),array(8,0),array(8,1),array(9,0),array(9,1),array(10,0),array(10,1),array(11,0),array(11,1),array(11,2),array(11,3),array(11,4),array(11,5),array(12,0),array(12,1),array(13,0),array(13,1),array(14,0),array(14,1),array(15,0),array(15,1),),
			'z' => array(array(9,0),array(9,1),array(9,2),array(9,3),array(9,4),array(10,2),array(10,3),array(10,4),array(11,2),array(11,3),array(11,4),array(12,1),array(12,2),array(12,3),array(13,0),array(13,1),array(13,2),array(14,0),array(14,1),array(14,2),array(15,0),array(15,1),array(15,2),array(15,3),array(15,4),),
			'u' => array(array(9,0),array(9,1),array(9,4),array(9,5),array(10,0),array(10,1),array(10,4),array(10,5),array(11,0),array(11,1),array(11,4),array(11,5),array(12,0),array(12,1),array(12,4),array(12,5),array(13,0),array(13,1),array(13,4),array(13,5),array(14,0),array(14,1),array(14,2),array(14,3),array(14,4),array(14,5),array(15,0),array(15,1),array(15,2),array(15,3),array(15,4),array(15,5),),
			'h' => array(array(6,0),array(6,1),array(7,0),array(7,1),array(8,0),array(8,1),array(9,0),array(9,1),array(9,2),array(9,3),array(9,4),array(9,5),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(10,5),array(11,0),array(11,1),array(11,4),array(11,5),array(12,0),array(12,1),array(12,4),array(12,5),array(13,0),array(13,1),array(13,4),array(13,5),array(14,0),array(14,1),array(14,4),array(14,5),array(15,0),array(15,1),array(15,4),array(15,5),),
			'c' => array(array(9,1),array(9,2),array(9,3),array(9,4),array(9,5),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(10,5),array(11,0),array(11,1),array(12,0),array(12,1),array(13,0),array(13,1),array(14,0),array(14,1),array(14,2),array(14,3),array(14,4),array(14,5),array(15,1),array(15,2),array(15,3),array(15,4),array(15,5),),		
			't' => array(array(7,1),array(7,2),array(8,1),array(8,2),array(9,0),array(9,1),array(9,2),array(9,3),array(10,1),array(10,2),array(11,1),array(11,2),array(12,1),array(12,2),array(13,1),array(13,2),array(14,1),array(14,2),array(15,1),array(15,2),array(15,3),),	
			'n' => array(array(9,0),array(9,1),array(9,2),array(9,3),array(9,4),array(9,5),array(10,0),array(10,1),array(10,2),array(10,3),array(10,4),array(10,5),array(11,0),array(11,1),array(11,4),array(11,5),array(12,0),array(12,1),array(12,4),array(12,5),array(13,0),array(13,1),array(13,4),array(13,5),array(14,0),array(14,1),array(14,4),array(14,5),array(15,0),array(15,1),array(15,4),array(15,5),),
			'L' => array(array(6,0),array(6,1),array(7,0),array(7,1),array(8,0),array(8,1),array(9,0),array(9,1),array(10,0),array(10,1),array(11,0),array(11,1),array(12,0),array(12,1),array(13,0),array(13,1),array(14,0),array(14,1),array(15,0),array(15,1),array(15,2),array(15,3),array(15,4),array(15,5),),
			'r' => array(array(9,0),array(9,1),array(9,2),array(9,3),array(10,0),array(10,1),array(10,2),array(10,3),array(11,0),array(11,1),array(12,0),array(12,1),array(13,0),array(13,1),array(14,0),array(14,1),array(15,0),array(15,1),),
			


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值