#!/usr/bin/perl 
# Copyright (c) 1998,  Evgueni Baldin 
# Thanks John Neystadt <http://www.neystadt.org/john/> for evrything
# I mean that he envented algorithms, I am only use them
$Version=1.001;
$Number_of_strings_wich_you_should_read_in_detect_buffer=100;
$name=$0;
if ($name=~/sort/){rus_sort();}
elsif ($name=~/2/){rus_convert();}
elsif ($name=~/cyrdoc/){
        cyrdoc();
}
# help and install programm
sub cyrdoc {
    my (@first,@second,@prefix);
    my ($first,$second,$prefix,$linkname);
    if ($#ARGV>-1) {
        if (($ARGV[0] eq "-h")||($ARGV[0] eq "--help")) {
            if ($#ARGV>0) {
                $dist=$ARGV[1];
            }
            else {$dist="vol"}
            help_big($dist);
        }
        elsif (($ARGV[0] eq "-i")||($ARGV[0] eq "--install")) {
            printf "Cyrdoc now make links. \n";
            # convert links
            #@first  = qw (alt koi8 koi dos iso win mac rus);
            @first  = qw (alt koi8 koi iso dos win rus);
            #@second  = qw (alt koi8 koi dos iso win vol mac);
            @second  = qw (alt koi8 koi dos win vol iso);
            #@prefix = qw (' ' f filtr p pipe);
            @prefix = qw ( pipe );
            foreach $first (@first) {
                foreach $second (@second) {
                    if (!(($first eq $second)||
                        (($first eq "koi")&&($second eq "koi8"))||
                        (($first eq "koi8")&&($second eq "koi"))||
                        (($first eq "alt")&&($second eq "dos"))||
                        (($first eq "dos")&&($second eq "alt"))
                       ))
                    {
                        $linkname=$first."2".$second;
                        symlink($name,$linkname);
                    }
                    foreach $prefix (@prefix) {
                        if (!(($first eq $second)||
                            (($first eq "koi")&&($second eq "koi8"))||
                            (($first eq "koi8")&&($second eq "koi"))||
                            (($first eq "alt")&&($second eq "dos"))||
                            (($first eq "dos")&&($second eq "alt"))
                           ))
                        {
                            $linkname=$first."2".$second."_".$prefix;
                            symlink($name,$linkname)||print "Couldn't make link $linkname to $name $!\n";
                        }
                    }
                }
            }
            # sort links
            #@first  = qw (alt koi8 koi dos iso win mac rus);
            @first  = qw (alt koi8 koi dos win rus);
            #@prefix = qw (' ' f filtr p pipe);
            @prefix = qw ( pipe );
            foreach $first (@first) {
                $linkname="sort_".$first;
                symlink($name,$linkname);
                foreach $prefix (@prefix) {
                    $linkname="sort_".$first."_".$prefix;
                    symlink($name,$linkname);
                }
            }
        }
        elsif (($ARGV[0] eq "-v")||($ARGV[0] eq "--version")) {
            version();
        }
        else {small_help();}
    }
    else {small_help();}
}

sub small_help {
    print "Usage cyrdoc {-h [koi,koi8,alt,dos,win], -i or -v}\n";
    print "-h --help [ ,koi,koi8,alt,dos,win] -print help in vol, koi, alt \nor win codeset (default volapuk)\n";
    print "-i --install - make default links to cyrdoc\n";
    print "-v --version - display version\n";
}

sub help_big {
    my ($dist)=@_;
    my($src);
    init_codepage();
    $Help_Buffer_BIG=
    "            ᥬ ਢ!  ਢ ணࠬ Cyrdoc.\n"
    ."  ணࠬ ।祭   ࠡ   ᪨  ⥪⠬.    ⮨\n"
    ."  ⥩: 1)  ४஢騪-    ४஢  ⥪⮢    \n"
    ."஢ ( ⭮)     2) ஢ -  ஢ ப\n"
    ." ᪮ 몥 (⠢ 䠢⭮ ᯨ᪠).\n"
    ."  ᪥ ணࠬ  箬 -i  ᮧ   ⨯ 1) alt2koi\n"
    ."⨯ (  ஢)2(   ஢) -  ᯮ짮:  alt2koi  (\n"
    ."᫨   - win2koi8) { ४㥬 䠩} - 뢮  १  \n"
    ."<STDIN>. : ᫨  ⢥ ࢨ筮  ஢  㪠  rus  (ਬ\n"
    ."rus2koi -  ணࠬ ᠬ ⠥ ।  ࠭ (ন-\n"
    ." win, alt  koi ஢). 2) alt2koi_pipe -       (1),   \n"
    ."䨪ᮬ _pipe - ⠥  <STDIN>  ७ࠢ  <STDOUT> - ࠡ⠥ \n"
    ."䨫. ணࠬ  ⠪  䨪 _p, _f  _filtr 3) sort_koi - -\n" 
    ."஢ ப  䠢 ⠥  䠩 㪠  ⢥  ࠬ஢ \n"
    ."७ࠢ  <STDOUT>  sort_{  ஢  ⥪}.   :  ᫨  \n" 
    ."⢥ ஢ ⥪ 㪠 rus,    sort_rus,  ணࠬ\n"
    ."ᠬ ⠥ ।  ࠭. 4) sort_koi_pipe  ,  \n"
    ."3,  ࠡ⠥  䨫. ணࠬ  ⠪  䨪 _p, _f  _filtr.\n"
    ."  ஢: rus - ணࠬ ᠬ 뢠, koi8    koi,  alt\n" 
    ." dos, win, iso  mac.\n"
    ." P.S. ᫨  ஡ ,   -   ᫨,   \n" 
    ."쬠 <E.M.Baldin\@inp.nsk.su>\n"
    ." P.P.S  ᪠ cyrdoc -h alt  koi  win.\n" 
    ;
    
    $Help_Buffer_BIG=cstocs("DOS",$dist,$Help_Buffer_BIG);print $Help_Buffer_BIG;
}
sub version {
    printf "Cyrdoc %5.3f \n",$Version;
    print  "Copyright (C) 1998,  Evgueni Baldin <E.M.Baldin\@inp.nsk.su>\n";
    print  "  Thanks John Neystadt <http://www.neystadt.org/john/> for his \n";
    print  "cyrillic perl module\n";
    print  "This is free software. There is NO warranty of any kind.\n";
}


# tranfer one code page to another
# look on the name of executebles (alt,dos,koi,koi8,win,vol)
# alt2win => convert from alt 2 win
# if at the and we have _f _filtr _p or _pipe - then we read from STDIN
# else we read from file
# rus2dos - detect codepage and convert to dos (detect only win,dos and koi8)

sub rus_convert {
    $name=~s/.*\///g;
    @array=split(/2/,$name);
    @array_pipe=split(/_/,$array[1]);
    if (($array_pipe[1] eq "f") || ($array_pipe[1] eq "p") || ($array_pipe[1] eq "filtr") || ($array_pipe[1] eq "pipe")) {
        $src=$array[0];
        $dist=$array_pipe[0];
        if ($src eq "alt") {$src="dos"};
        if ($dist eq "alt") {$dist="dos"};
        $src = uc ($src); $src .= '8' if $src eq 'KOI';
	$dist = uc ($dist); $dist .= '8' if $dist eq 'KOI';
        init_codepage();
        if (($src eq "RUS")||($src eq "rus")) {
            $Buffer_BIG="";$i=0;
            while (($string=<STDIN>)
                   &&($i<$Number_of_strings_wich_you_should_read_in_detect_buffer))
            {$Buffer_BIG.=$string;$i++;}
            $src=Detect ($Buffer_BIG);

            $Buffer_BIG=cstocs_small($src,$dist,$Buffer_BIG);print $Buffer_BIG;
            if ($i==$Number_of_strings_wich_you_should_read_in_detect_buffer){
                while (<STDIN>) {$_=cstocs_small($src,$dist,$_);print $_;}
            }
        }
        else {while (<STDIN>) {$_=cstocs_small($src,$dist,$_);print $_;}}
    }
    else {
        $src=$array[0];
        $dist=$array[1];
        if ($src eq "alt") {$src="dos"};
        if ($dist eq "alt") {$dist="dos"};
        $src = uc ($src); $src .= '8' if $src eq 'KOI';
        $dist = uc ($dist); $dist .= '8' if $dist eq 'KOI';
        if ($#ARGV>-1)
        {
            init_codepage();
            if (($src eq "RUS")||($src eq "rus")) {
                $Buffer_BIG="";$i=0;
                while (($string=<>)
                       &&($i<$Number_of_strings_wich_you_should_read_in_detect_buffer))
                {$Buffer_BIG.=$string;$i++;}
                $src=Detect ($Buffer_BIG);
                $Buffer_BIG=cstocs_small($src,$dist,$Buffer_BIG);
                print $Buffer_BIG;
                if ($i==$Number_of_strings_wich_you_should_read_in_detect_buffer){
                    while (<>) {$_=cstocs_small($src,$dist,$_);print $_;}
                }
            }
            else {while (<>) {$_=cstocs_small($src,$dist,$_);print $_;}}
        }
        else {print "usage: $0 \"Input_files\"  \n";}
    }
}
# sort lines in russian language in right order
# look on the name of executebles (alt,dos,koi,koi8,win,mac,iso)
# sort_win => sort russian words in win codepage
# if at the and we have _f _filtr _p or _pipe - then we read from STDIN
# else we read from file
# sort_dos - detect codepage and sort (detect only win,dos and koi8)

sub rus_sort {
    $name=~s/.*\///g;
    @array=split(/_/,$name);
    @Sort_Array=qw ();
    if ((defined $array[2])&&(($array[2] eq "f") || ($array[2] eq "p") || ($array[2] eq "filtr") || ($array[2] eq "pipe"))) {
        $src=$array[1];
        init_codepage();
        if (($src eq "RUS")||($src eq "rus")) {
            $Buffer_BIG="";$i=0;
            while ((defined($string=<STDIN>))
                   &&($i<$Number_of_strings_wich_you_should_read_in_detect_buffer))
            {$Buffer_BIG.=$string;$Sort_Array[$i]=$string;$i++;}
            $src=Detect ($Buffer_BIG);
            while (defined($string=<STDIN>)) {$Sort_Array[$i]=$string;$i++;}
        }
        else {$i=0;while (defined($string=<STDIN>)) {$Sort_Array[$i]=$string;$i++;}}
    }
    else {
        $src=$array[1];
        if ($#ARGV>-1)
        {
            init_codepage();
            if (($src eq "RUS")||($src eq "rus")) {
                $Buffer_BIG="";$i=0;
                while (defined($string=<>)
                       &&($i<$Number_of_strings_wich_you_should_read_in_detect_buffer))
                {$Buffer_BIG.=$string;$Sort_Array[$i]=$string;$i++;}
                $src=Detect ($Buffer_BIG);
                while (defined($string=<>)) {$Sort_Array[$i]=$string;$i++;}
            }
            else {$i=0;while (defined($string=<>)) {$Sort_Array[$i]=$string;$i++;}}
        }
        else {print "usage: $0 \"Input_files\"  \n";}
    }
    $src = lc ($src);
    if (($src eq "dos")||($src eq "alt")){
        @Sort_Array = sort by_cyrillic_dos_charset (@Sort_Array);}
    elsif (($src eq "koi")||($src eq "koi8")){      
        @Sort_Array = sort by_cyrillic_koi_charset (@Sort_Array);}
    elsif ($src eq "win"){
        @Sort_Array = sort by_cyrillic_win_charset (@Sort_Array);}
    elsif ($src eq "iso"){
        @Sort_Array = sort by_cyrillic_iso_charset (@Sort_Array);}
    elsif ($src eq "mac"){
        @Sort_Array = sort by_cyrillic_mac_charset (@Sort_Array);}
    $i=0;while (defined ($Sort_Array[$i])) {print $Sort_Array[$i];$i++;}
}
#
sub by_cyrillic_dos_charset {
    my ($codepage)="DOS"; #ALT,DOS,KOI.KOI8,WIN,ISO,MAC
    return (by_cyrillic_charset($codepage));
}
sub by_cyrillic_koi_charset {
    my ($codepage)="KOI"; #ALT,DOS,KOI.KOI8,WIN,ISO,MAC
    return (by_cyrillic_charset($codepage));
}
sub by_cyrillic_win_charset {
    my ($codepage)="WIN"; #ALT,DOS,KOI.KOI8,WIN,ISO,MAC
    return (by_cyrillic_charset($codepage));
}
sub by_cyrillic_iso_charset {
    my ($codepage)="ISO"; #ALT,DOS,KOI.KOI8,WIN,ISO,MAC
    return (by_cyrillic_charset($codepage));
}
sub by_cyrillic_mac_charset {
    my ($codepage)="MAC"; #ALT,DOS,KOI.KOI8,WIN,ISO,MAC
    return (by_cyrillic_charset($codepage));
}

sub by_cyrillic_charset {
    my ($codepage)=@_; #ALT,DOS,KOI.KOI8,WIN,ISO,MAC
    $codepage = uc ($codepage);
    my ($i,$j)=(0,0);
    my ($index_my_a,$index_my_b,$my_a,$my_b);
    if  (($codepage eq "KOI") || ($codepage eq "KOI8")) {*cyr_tab=\$tab_KOI8;}
    elsif (($codepage eq "DOS") || ($codepage eq "ALT"))  {*cyr_tab=\$tab_DOS;}
    elsif ($codepage eq "WIN") {*cyr_tab=\$tab_WIN;}
    elsif ($codepage eq "ISO") {*cyr_tab=\$tab_ISO;}
    elsif ($codepage eq "MAC") {*cyr_tab=\$tab_MAC;}       
    @a=split(//,$a);
    @b=split(//,$b);
    while (defined($a[$i])&&defined($b[$i])) {
        $my_a=$a[$i];$my_b=$b[$i];
        if ($my_a eq $my_b) {$i++;}
        else {
            $index_my_a=index($cyr_tab,$my_a);
            $index_my_b=index($cyr_tab,$my_b);
            if (($index_my_a>=0)&&($index_my_b>=0)) {
                if ($index_my_a > $index_my_b) {  return 1;}
                else {return -1;}
            }
            elsif ($my_a gt $my_b) {return 1;}
            else {return -1;}
        }
    }
    if (defined($a[$i])) {return 1;}
    elsif (defined($b[$i])) {return -1;}
    else {return 0;} 
}


#convert buffer from one codepage to another
sub cstocs {
	my ($Src, $Dst, $Buf) = @_;
	$Src = uc ($Src); $Src .= '8' if $Src eq 'KOI';
        $Dst = uc ($Dst); $Dst .= '8' if $Dst eq 'KOI';
        eval "\$Buf=~tr/$tab{$Src}/$tab{$Dst}/";
	if ($Dst eq 'VOL') {
		$Buf =~s//YO/go; $Buf =~s//ZH/go; $Buf =~s//CH/go;
		$Buf =~s//SH/go; $Buf =~s//E\'/go; $Buf =~s//YU/go; 
		$Buf =~s//YA/go; $Buf =~s//yo/go; $Buf =~s//zh/go;  
		$Buf =~s//ch/go; $Buf =~s//sh/go; $Buf =~s//e\'/go; 
		$Buf =~s//yu/go; $Buf =~s/\377/ya/go;
	}
	$Buf;
}
sub cstocs_small {
	my ($Src, $Dst, $Buf) = @_;
        eval "\$Buf=~tr/$tab{$Src}/$tab{$Dst}/";
	if ($Dst eq 'VOL') {
		$Buf =~s//YO/go; $Buf =~s//ZH/go; $Buf =~s//CH/go;
		$Buf =~s//SH/go; $Buf =~s//E\'/go; $Buf =~s//YU/go; 
		$Buf =~s//YA/go; $Buf =~s//yo/go; $Buf =~s//zh/go;  
		$Buf =~s//ch/go; $Buf =~s//sh/go; $Buf =~s//e\'/go; 
		$Buf =~s//yu/go; $Buf =~s/\377/ya/go;
	}
	$Buf;
}

#convert buffer to Low Case
sub toLower {
	my ($s, $Code) = @_;
	$Code = uc ($Code);
	eval ("\$s =~ tr/$UCase{$Code}/$LCase{$Code}/");
	$s;
}
#convert buffer to Upper Case
sub toUpper {
	my ($s, $Code) = @_;
	$Code = uc ($Code);
	eval ("\$s =~ tr/$LCase{$Code}/$UCase{$Code}/");
	$s;
}
#Detect Charset
sub Detect {
    my (@Data) = @_;
    my ($KoiMark) = GetCodeScore ('Koi', @Data);
    my ($WinMark) = GetCodeScore ('Win', @Data);
    my ($DosMark) = GetCodeScore ('Dos', @Data);
    my ($IsoMark) = GetCodeScore ('Iso', @Data);
    if (($IsoMark > $KoiMark)&&($IsoMark > $WinMark)&&($IsoMark > $DosMark)){return 'ISO';} 
    if (($KoiMark > $WinMark)&&($KoiMark > $DosMark)){return 'KOI8';} 
    if ($WinMark > $DosMark){return 'WIN';}
    return 'DOS';
}
#Calculate probability of charset
sub GetCodeScore {
    $PairSize = 2;
    my ($Code, @Data) = @_;
    my ($Table);
    if ($Code eq 'Koi') {
        init_StatsTableKoi();
        $Table = \%StatsTableKoi;
    } elsif ($Code eq 'Win') {
        init_StatsTableWin();
        $Table = \%StatsTableWin;
    } elsif ($Code eq 'Dos') {
        init_StatsTableDos();
        $Table = \%StatsTableDos;
    } elsif ($Code eq 'Iso') {
        init_StatsTableIso();
        $Table = \%StatsTableIso;
    } else {
        die "Don't know $Code!\n";
    }
    my ($Mark, $i);
    for (@Data) {
        s/[\n\r]//go;
        $_ = toLower ($_, $Code);
        for (split (/[\.\,\-\s\:\;\?\!\'\"\(\)\d<>]+/o)) {
            for $i (0..length ()-$PairSize) {
                $Mark += ${$Table} {substr ($_, $i, $PairSize)};
            }
        }
    }
    $Mark;
}
#
#init codpage data
#
sub init_codepage {
    $UCase {'KOI'} = "\377";
    $LCase {'KOI'} = "ţ";
    $UCase {'WIN'} = "Ũ";
    $LCase {'WIN'} = "\377";
    $UCase {'DOS'} = "";
    $LCase {'DOS'} = "񦧨";
    
    $tab{"KOI8"}="\377ţ";
    $tab{"DOS"} ="񦧨";
    $tab{"ISO"} ="";
    $tab{"WIN"} ="Ũ\377";
    $tab{"VOL"} ="ABVGDEZIJKLMNOPRSTUFXCW~Y'abvgdezijklmnoprstufxcw~y'\377";
    $tab{"MAC"} ="݆";
    #             1234567890123456789012345678901234567890123456789012345678901234567890
    $tab_KOI8=" \t\377ţ";
    $tab_DOS =" \t񦧨";
    $tab_ISO =" \t";
    $tab_WIN =" \tŨ\377";
    $tab_MAC =" \t݆";
    #             1234567890123456789012345678901234567890123456789012345678901234567890
    @tab_KOI8=qw(                           \377                                      );
    @tab_DOS= qw(                                                                    );
    @tab_ISO= qw(                                                                    );
    @tab_WIN= qw(                                                                    \377);
    @tab_MAC= qw(                                                                    );
    #            1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8    9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
}
sub init_StatsTableDos {
    %StatsTableDos = (
        '' => 21815,'' => 19276,'' => 16528,'' => 15172,'' => 15161,
	'' => 14457,'' => 14151,'' => 13562,'' => 13327,'' => 11067,
	'' => 10935,'' => 10268,'' => 10059,'' => 9899,	'' => 9785,
	'' => 9712, '' => 9281, '' => 9040, '' => 8956, '' => 8956,
	'' => 8884, '' => 8786, '' => 8713, '' => 8626,	'' => 8332,
	'' => 8202, '' => 8125, '' => 7820, '' => 7815,	'' => 7582,
	'' => 7487, '' => 7418, '' => 7308, '' => 7277,	'' => 7005,
	'' => 6823, '' => 6767, '' => 6679, '' => 6609,	'' => 6596,
	'' => 6329, '' => 6066, '' => 5903, '' => 5834,	'' => 5705,
	'' => 5465, '' => 5440, '' => 5347, '' => 5253,	'' => 5193,
	'' => 5075, '' => 5064, '' => 5043, '' => 4998,	'' => 4966,
	'' => 4868, '' => 4818, '' => 4731, '' => 4693,	'' => 4656,
	'' => 4628, '' => 4563, '' => 4402, '' => 4400,	'' => 4388,
	'' => 4290, '' => 4197, '' => 4191, '' => 4078,	'' => 4049,
	'' => 3968, '' => 3853, '' => 3797, '' => 3732,	'' => 3716,
	'' => 3708, '' => 3706, '' => 3684, '' => 3632,	'' => 3612,
	'' => 3465, '' => 3459, '' => 3398, '' => 3392,	'' => 3354,
	'' => 3296, '' => 3261, '' => 3242, '' => 3209,	'' => 3182,
	'' => 3162, '' => 3090, '' => 2962, '' => 2958, '' => 2878,
	'' => 2847, '' => 2830, '' => 2808, '' => 2804,	'' => 2792,
	'' => 2724, '' => 2694, '' => 2657, '' => 2653,	'' => 2587,
	'' => 2577, '' => 2573, '' => 2500, '' => 2482,	'' => 2374,
	'' => 2366, '' => 2334, '' => 2304, '' => 2289, '' => 2263,
	'' => 2227, '' => 2209, '' => 2180, '' => 2176,	'' => 2139,
	'' => 2134, '' => 2118, '' => 2073, '' => 2066,	'' => 2064,
	'' => 2054, '' => 2041, '' => 1930, '' => 1911,	'' => 1893,
	'' => 1881, '' => 1873, '' => 1778, '' => 1769,	'' => 1744,
	'' => 1738, '' => 1695, '' => 1684, '' => 1658, '' => 1639,
	'' => 1633, '' => 1628, '' => 1570, '' => 1558,	'' => 1551,
	'' => 1530, '' => 1515, '' => 1501, '' => 1493,	'' => 1488,
	'' => 1483, '' => 1460, '' => 1459, '' => 1452, '' => 1424,
	'' => 1391, '' => 1382, '' => 1379, '' => 1342,	'' => 1336,
	'' => 1323, '' => 1322, '' => 1303, '' => 1286,	'' => 1284,
	'' => 1272, '' => 1257, '' => 1248, '' => 1245,	'' => 1224,
	'' => 1197, '' => 1192, '' => 1192, '' => 1191,	'' => 1185,
	'' => 1184, '' => 1182, '' => 1161, '' => 1153,	'' => 1150,
	'' => 1139, '' => 1126, '' => 1117, '' => 1098, '' => 1094,
	'' => 1093, '' => 1076, '' => 1070, '' => 1049, '' => 1048,
	'' => 1045, '' => 1039, '' => 1033, '' => 999,	'' => 999,
	'' => 949,  '' => 944,  '' => 938,  '' => 938,	'' => 935,
	'' => 924,  '' => 921,  '' => 911,  '' => 911,	'' => 909,
	'' => 891,  '' => 882,  '' => 878,  '' => 876,	'' => 869,
	'' => 847,  '' => 840,  '' => 838,  '' => 836,  '' => 836,
	'' => 835,  '' => 832,  '' => 803,  '' => 799,  '' => 796,
	'' => 782,  '' => 778,  '' => 767,  '' => 766,	'' => 765,
	'' => 755,  '' => 743,  '' => 743,  '' => 741,	'' => 741,
	'' => 739,  '' => 716,  '' => 711,  '' => 700,	'' => 693,
	'' => 683,  '' => 678,  '' => 677,  '' => 671,  '' => 660,
	'' => 652,  '' => 651,  '' => 646,  '' => 638,  '' => 635,
	'' => 633,  '' => 632,  '' => 629,  '' => 620,  '' => 609,
	'' => 599,  '' => 594,  '' => 591,  '' => 591,	'' => 590,
	'' => 559,  '' => 525,  '' => 522,  '' => 516,  '' => 505,
	'' => 503,  '' => 496,  '' => 496,  '' => 490,	'' => 487,
	'' => 483,  '' => 482,  '' => 474,  '' => 471,  '' => 461,
	'' => 452,  '' => 438,  '' => 434,  '' => 433,  '' => 431,
	'' => 430,  '' => 416,  '' => 414,  '' => 409,  '' => 403,
	'' => 401,  '' => 400,  '' => 400,  '' => 398,  '' => 397,
	'' => 395,  '' => 394,  '' => 390,  '' => 376,  '' => 370,
	'' => 369,  '' => 368,  '' => 365,  '' => 363,  '' => 358,
	'' => 346,  '' => 344,  '' => 337,  '' => 326,  '' => 325,
	'' => 311,  '' => 305,  '' => 301,  '' => 297,  '' => 286,
	'' => 286,  '' => 286,  '' => 285,  '' => 280,  '' => 277,
	'' => 273,  '' => 272,  '' => 272,  '' => 271,  '' => 270,
	'' => 268,  '' => 266,  '' => 260,  '' => 259,  '' => 255,
	'' => 255,  '' => 254,  '' => 254,  '' => 242,  '' => 241,
	'' => 239,  '' => 237,  '' => 231,  '' => 225,  '' => 224,
	'' => 219,  '' => 218,  '' => 216,  '' => 213,  '' => 207,
	'' => 206,  '' => 206,  '' => 205,  '' => 205,  '' => 204,
	'' => 204,  '' => 204,  '' => 201,  '' => 200,  '' => 199,
	'' => 198,  '' => 197,  '' => 197,  '' => 194,  '' => 193,
	'' => 192,  '' => 192,  '' => 191,  '' => 184,  '' => 183,
	'' => 183,  '' => 178,  '' => 176,  '' => 174,  '' => 174,
	'' => 171,  '' => 169,  '' => 166,  '' => 165,  '' => 162,
	'' => 161,  '' => 161,  '' => 157,  '' => 156,  '' => 156,
	'' => 154,  '' => 153,  '' => 152,  '' => 152,  '' => 151,
	'' => 151,  '' => 145,  '' => 141,  '' => 140,  '' => 138,
	'' => 134,  '' => 134,  '' => 129,  '__' => 128,  '' => 127,
	'' => 124,  '' => 122,  '' => 122,  '' => 120,  '' => 119,
	'' => 114,  '' => 113,  '' => 112,  '' => 112,	'' => 112,
	'' => 108,  '' => 108,  '' => 107,  '' => 104,	'' => 104,
	'' => 102,  '' => 101,  '' => 100,  '' => 97,	'' => 96,
	'' => 96,   '' => 92,   '' => 92,   '' => 92,   '' => 90,
	'' => 90,   '' => 89,   '' => 89,   '' => 89,	'' => 87,
	'' => 84,   '' => 83,   '' => 82,   '' => 81,	'' => 79,
	'' => 78,   '' => 77,   '' => 76,   'II' => 74,   '' => 70,
	'' => 70,   '' => 68,   '' => 68,   '' => 68,	'' => 67,
	'' => 64,   'XX' => 64,   '' => 63,   '' => 63,	'' => 62,
	'' => 62,   '' => 61,   '' => 60,   '' => 59,   '' => 56,
	'' => 56,   '' => 53,   '' => 52,   '' => 51,   '' => 51,
	'' => 51,   '' => 51,   '' => 51,   '' => 51,	'XI' => 50,
	'' => 50,   '' => 50,   '' => 49,   '' => 48,   '' => 47,
	'' => 46,   '' => 46,   '' => 46,   '' => 45,	'' => 45,
	'' => 41,   '' => 38,   '' => 38,   '' => 37,	'' => 37,
	'' => 36,   '' => 36,   '' => 35,   '' => 35,	'' => 34,
	'' => 34,   '' => 33,   'VI' => 33,   '' => 33,   '' => 33,
	'' => 33,   '' => 33,   '' => 33,   '' => 32,	'' => 32,
	'' => 32,   '' => 31,   '' => 31,   '' => 31,	'' => 30,
	'' => 30,   '' => 30,   'XV' => 30,   '' => 30,	'' => 29,
	'' => 29,   '' => 28,   '' => 28,   '' => 28,	'' => 27,
	'' => 27,   '' => 27,   '' => 27,   '' => 27,	'' => 26,
	'' => 26,   '' => 26,   '' => 26,   '' => 26,	'' => 25,
	'' => 25,   '' => 25,   '' => 25,   '' => 24,	'' => 24,
	'' => 24,   '' => 24,   '' => 24,   '' => 23,	'' => 22,
	'' => 22,   '' => 22,   '' => 22,   '' => 21,	'' => 20,
	'' => 20,   '' => 20,   '' => 20,   '' => 19,	'' => 19,
	'' => 19,   '' => 19,   '' => 19,   '' => 19,	'' => 19,
	'' => 19,   '' => 18,   '' => 18,   '' => 18,   '' => 18,
	'' => 18,   '' => 17,   '' => 17,   '' => 17,	'' => 17,
	'' => 17,   '' => 16,   '' => 16,   'IV' => 16,   '' => 16,
	'' => 16,   '' => 16,   '' => 16,   '' => 15,   '' => 15,
	'' => 15,   '' => 15,   '' => 15,   '' => 15,	'' => 15,
	'' => 14,   '' => 14,   '' => 14,   '' => 13,	'' => 13,
	'' => 13,   '' => 13,   'IX' => 13,   '' => 13,   'C' => 13,
	'' => 12,   '' => 12,   '' => 12,   '' => 12,   '' => 12,
	'' => 12,   '' => 12,   '' => 12,   '' => 12,	'' => 12,
	'' => 12,   '' => 11,   '' => 11,   '' => 11,   '' => 11,
	'' => 11,   '' => 11,   '' => 11,   '' => 11,   '' => 10,
	'' => 10,   '' => 10,   '' => 10,   '' => 10,	'' => 10,
	'' => 10,   '' => 10,   '' => 10,   '' => 9,	'' => 9,
	'' => 9,    '' => 9,    '' => 9,    '' => 9,	'' => 8,
	'' => 8,    '' => 8,    '' => 8,    '' => 8,	'' => 8,
	'' => 8,    '' => 8,    '' => 8,    '' => 8,	'' => 7,
	'' => 7,    '' => 7,    '' => 7,    '' => 7,    '' => 7,
	'' => 7,    '' => 7,    '' => 7,    '' => 7,	'' => 7,
	'' => 6,    '' => 6,    '' => 6,    '' => 6,    '' => 6,
	'' => 6,    '' => 6,    '' => 6,    '' => 6,    '' => 6,
	'' => 6,    '' => 6,    '' => 6,    '' => 5,	'' => 5,
	'' => 5,    '' => 5,    '' => 5,    '' => 5,	'' => 5,
	'' => 5,    '' => 5,    '' => 5,    '' => 5,    '' => 4,
	'' => 4,    '' => 4,    '' => 4,    '' => 4,    '' => 4,
	'' => 4,    '' => 4,    '' => 4,    '' => 4,    '' => 4,
	'' => 4,    '' => 4,    '' => 4,    '' => 4,	'' => 4,
	'' => 4,    '' => 4,    '' => 4,    '' => 4,	'' => 4,
	'' => 4,    '' => 3,    '' => 3,    '' => 3,	'' => 3,
	'' => 3,    '' => 3,    '' => 3,    '' => 3,	'' => 3,
	'' => 3,    '' => 3,    '' => 3,    '' => 3,	'' => 3,
	'' => 3,    '' => 3,    '' => 3,    '' => 3,    '' => 3,
	'' => 3,    '' => 3,    '' => 3,    '' => 3,    '' => 3,
	'' => 2,    'c' => 2,    '' => 2,    '' => 2,	'' => 2,
	'' => 2,    'X' => 2,    '' => 2,    '' => 2,	'' => 2,
	'' => 2,    'YI' => 2,    'b/' => 2,    '' => 2,    '' => 2,
	'' => 2,    '' => 2,    '' => 2,    '' => 2,	'c' => 2,
	'' => 2,    'c' => 2,    'I' => 2,    '' => 2,    '' => 2,
	'' => 2,    '' => 2,    '' => 2,    '' => 2,    '' => 2,
	'' => 2,    '' => 2,    'Sn' => 2,    '' => 2,    '' => 2,
	'' => 2,    'c' => 2,    '' => 2,    '' => 2,	'' => 2,
	'c' => 2,    '' => 2,    '' => 2,    '' => 2,    '' => 2,
	'' => 2,    '' => 1,    '' => 1,    '' => 1,    '' => 1,
	'I' => 1,    '' => 1,    '' => 1,    '' => 1,	'e' => 1,
	'/' => 1,    '' => 1,    '' => 1,    '' => 1,	'' => 1,
	'/a' => 1,    '/b' => 1,    '' => 1,    '' => 1,	'' => 1,
	'' => 1,    '' => 1,    '' => 1,    '' => 1,	'' => 1,
	'' => 1,    '' => 1,    '' => 1,    'IY' => 1,	'Y' => 1,
	'a/' => 1,    '' => 1,    '' => 1,    '' => 1,    '' => 1,
	'' => 1,    '' => 1,    '' => 1,    'e' => 1,	'' => 1,
	'c' => 1,    '' => 1,    '' => 1,    '' => 1,	'' => 1,
	'' => 1,    '' => 1,    '' => 1,    '' => 1,	'' => 1,
	'|' => 1,    '' => 1,    '' => 1,    'c' => 1,	'+' => 1,
	'o' => 1,    '' => 1,    '' => 1,    '' => 1,	'' => 1,
	'' => 1,    'c' => 1,    'c' => 1,    '' => 1,	'' => 1,
        '' => 1,    '' => 1,    '' => 1,    '+' => 1);
}
sub  init_StatsTableKoi {
    %StatsTableKoi = (
        '' => 21815,'' => 19276,'' => 16528,'' => 15172,'' => 15161,
	'' => 14457,'' => 14151,'' => 13562,'' => 13327,'' => 11067,
	'' => 10935,'' => 10268,'' => 10059,'' => 9899,	'' => 9785,
	'' => 9712, '' => 9281, '' => 9040, '' => 8956, '' => 8956,
	'' => 8884, '' => 8786, '' => 8713, '' => 8626,	'' => 8332,
	'' => 8202, '' => 8125, '' => 7820, '' => 7815,	'' => 7582,
	'' => 7487, '' => 7418, '' => 7308, '' => 7277,	'' => 7005,
	'' => 6823, '' => 6767, '' => 6679, '' => 6609,	'' => 6596,
	'' => 6329, '' => 6066, '' => 5903, '' => 5834,	'' => 5705,
	'' => 5465, '' => 5440, '' => 5347, '' => 5253,	'' => 5193,
	'' => 5075, '' => 5064, '' => 5043, '' => 4998,	'' => 4966,
	'' => 4868, '' => 4818, '' => 4731, '' => 4693,	'' => 4656,
	'' => 4628, '' => 4563, '' => 4402, '' => 4400,	'' => 4388,
	'' => 4290, '' => 4197, '' => 4191, '' => 4078,	'' => 4049,
	'' => 3968, '' => 3853, '' => 3797, '' => 3732,	'' => 3716,
	'' => 3708, '' => 3706, '' => 3684, '' => 3632,	'' => 3612,
	'' => 3465, '' => 3459, '' => 3398, '' => 3392,	'' => 3354,
	'' => 3296, '' => 3261, '' => 3242, '' => 3209,	'' => 3182,
	'' => 3162, '' => 3090, '' => 2962, '' => 2958, '' => 2878,
	'' => 2847, '' => 2830, '' => 2808, '' => 2804,	'' => 2792,
	'' => 2724, '' => 2694, '' => 2657, '' => 2653,	'' => 2587,
	'' => 2577, '' => 2573, '' => 2500, '' => 2482,	'' => 2374,
	'' => 2366, '' => 2334, '' => 2304, '' => 2289, '' => 2263,
	'' => 2227, '' => 2209, '' => 2180, '' => 2176,	'' => 2139,
	'' => 2134, '' => 2118, '' => 2073, '' => 2066,	'' => 2064,
	'' => 2054, '' => 2041, '' => 1930, '' => 1911,	'' => 1893,
	'' => 1881, '' => 1873, '' => 1778, '' => 1769,	'' => 1744,
	'' => 1738, '' => 1695, '' => 1684, '' => 1658, '' => 1639,
	'' => 1633, '' => 1628, '' => 1570, '' => 1558,	'' => 1551,
	'' => 1530, '' => 1515, '' => 1501, '' => 1493,	'' => 1488,
	'' => 1483, '' => 1460, '' => 1459, '' => 1452, '' => 1424,
	'' => 1391, '' => 1382, '' => 1379, '' => 1342,	'' => 1336,
	'' => 1323, '' => 1322, '' => 1303, '' => 1286,	'' => 1284,
	'' => 1272, '' => 1257, '' => 1248, '' => 1245,	'' => 1224,
	'' => 1197, '' => 1192, '' => 1192, '' => 1191,	'' => 1185,
	'' => 1184, '' => 1182, '' => 1161, '' => 1153,	'' => 1150,
	'' => 1139, '' => 1126, '' => 1117, '' => 1098, '' => 1094,
	'' => 1093, '' => 1076, '' => 1070, '' => 1049, '' => 1048,
	'' => 1045, '' => 1039, '' => 1033, '' => 999,	'' => 999,
	'' => 949,  '' => 944,  '' => 938,  '' => 938,	'' => 935,
	'' => 924,  '' => 921,  '' => 911,  '' => 911,	'' => 909,
	'' => 891,  '' => 882,  '' => 878,  '' => 876,	'' => 869,
	'' => 847,  '' => 840,  '' => 838,  '' => 836,  '' => 836,
	'' => 835,  '' => 832,  '' => 803,  '' => 799,  '' => 796,
	'' => 782,  '' => 778,  '' => 767,  '' => 766,	'' => 765,
	'' => 755,  '' => 743,  '' => 743,  '' => 741,	'' => 741,
	'' => 739,  '' => 716,  '' => 711,  '' => 700,	'' => 693,
	'' => 683,  '' => 678,  '' => 677,  '' => 671,  '' => 660,
	'' => 652,  '' => 651,  '' => 646,  '' => 638,  '' => 635,
	'' => 633,  '' => 632,  '' => 629,  '' => 620,  '' => 609,
	'' => 599,  '' => 594,  '' => 591,  '' => 591,	'' => 590,
	'' => 559,  '' => 525,  '' => 522,  '' => 516,  '' => 505,
	'' => 503,  '' => 496,  '' => 496,  '' => 490,	'' => 487,
	'' => 483,  '' => 482,  '' => 474,  '' => 471,  '' => 461,
	'' => 452,  '' => 438,  '' => 434,  '' => 433,  '' => 431,
	'' => 430,  '' => 416,  '' => 414,  '' => 409,  '' => 403,
	'' => 401,  '' => 400,  '' => 400,  '' => 398,  '' => 397,
	'' => 395,  '' => 394,  '' => 390,  '' => 376,  '' => 370,
	'' => 369,  '' => 368,  '' => 365,  '' => 363,  '' => 358,
	'' => 346,  '' => 344,  '' => 337,  '' => 326,  '' => 325,
	'' => 311,  '' => 305,  '' => 301,  '' => 297,  '' => 286,
	'' => 286,  '' => 286,  '' => 285,  '' => 280,  '' => 277,
	'' => 273,  '' => 272,  '' => 272,  '' => 271,  '' => 270,
	'' => 268,  '' => 266,  '' => 260,  '' => 259,  '' => 255,
	'' => 255,  '' => 254,  '' => 254,  '' => 242,  '' => 241,
	'' => 239,  '' => 237,  '' => 231,  '' => 225,  '' => 224,
	'' => 219,  '' => 218,  '' => 216,  '' => 213,  '' => 207,
	'' => 206,  '' => 206,  '' => 205,  '' => 205,  '' => 204,
	'' => 204,  '' => 204,  '' => 201,  '' => 200,  '' => 199,
	'' => 198,  '' => 197,  '' => 197,  '' => 194,  '' => 193,
	'' => 192,  '' => 192,  '' => 191,  '' => 184,  '' => 183,
	'' => 183,  '' => 178,  '' => 176,  '' => 174,  '' => 174,
	'' => 171,  '' => 169,  '' => 166,  '' => 165,  '' => 162,
	'' => 161,  '' => 161,  '' => 157,  '' => 156,  '' => 156,
	'' => 154,  '' => 153,  '' => 152,  '' => 152,  '' => 151,
	'' => 151,  '' => 145,  '' => 141,  '' => 140,  '' => 138,
	'' => 134,  '' => 134,  '' => 129,  '__' => 128,  '' => 127,
	'' => 124,  '' => 122,  '' => 122,  '' => 120,  '' => 119,
	'' => 114,  '' => 113,  '' => 112,  '' => 112,	'' => 112,
	'' => 108,  '' => 108,  '' => 107,  '' => 104,	'' => 104,
	'' => 102,  '' => 101,  '' => 100,  '' => 97,	'' => 96,
	'' => 96,   '' => 92,   '' => 92,   '' => 92,   '' => 90,
	'' => 90,   '' => 89,   '' => 89,   '' => 89,	'' => 87,
	'' => 84,   '' => 83,   '' => 82,   '' => 81,	'' => 79,
	'' => 78,   '' => 77,   '' => 76,   'II' => 74,   '' => 70,
	'' => 70,   '' => 68,   '' => 68,   '' => 68,	'' => 67,
	'' => 64,   'XX' => 64,   '' => 63,   '' => 63,	'' => 62,
	'' => 62,   '' => 61,   '' => 60,   '' => 59,   '' => 56,
	'' => 56,   '' => 53,   '' => 52,   '' => 51,   '' => 51,
	'' => 51,   '' => 51,   '' => 51,   '' => 51,	'XI' => 50,
	'' => 50,   '' => 50,   '' => 49,   '' => 48,   '' => 47,
	'' => 46,   '' => 46,   '' => 46,   '' => 45,	'' => 45,
	'' => 41,   '' => 38,   '' => 38,   '' => 37,	'' => 37,
	'' => 36,   '' => 36,   '' => 35,   '' => 35,	'' => 34,
	'' => 34,   '' => 33,   'VI' => 33,   '' => 33,   '' => 33,
	'' => 33,   '' => 33,   '' => 33,   '' => 32,	'' => 32,
	'' => 32,   '' => 31,   '' => 31,   '' => 31,	'' => 30,
	'' => 30,   '' => 30,   'XV' => 30,   '' => 30,	'' => 29,
	'' => 29,   '' => 28,   '' => 28,   '' => 28,	'' => 27,
	'' => 27,   '' => 27,   '' => 27,   '' => 27,	'' => 26,
	'' => 26,   '' => 26,   '' => 26,   '' => 26,	'' => 25,
	'' => 25,   '' => 25,   '' => 25,   '' => 24,	'' => 24,
	'' => 24,   '' => 24,   '' => 24,   '' => 23,	'' => 22,
	'' => 22,   '' => 22,   '' => 22,   '' => 21,	'' => 20,
	'' => 20,   '' => 20,   '' => 20,   '' => 19,	'' => 19,
	'' => 19,   '' => 19,   '' => 19,   '' => 19,	'' => 19,
	'' => 19,   '' => 18,   '' => 18,   '' => 18,   '' => 18,
	'' => 18,   '' => 17,   '' => 17,   '' => 17,	'' => 17,
	'' => 17,   '' => 16,   '' => 16,   'IV' => 16,   '' => 16,
	'' => 16,   '' => 16,   '' => 16,   '' => 15,   '' => 15,
	'' => 15,   '' => 15,   '' => 15,   '' => 15,	'' => 15,
	'' => 14,   '' => 14,   '' => 14,   '' => 13,	'' => 13,
	'' => 13,   '' => 13,   'IX' => 13,   '' => 13,   'C' => 13,
	'' => 12,   '' => 12,   '' => 12,   '' => 12,   '' => 12,
	'' => 12,   '' => 12,   '' => 12,   '' => 12,	'' => 12,
	'' => 12,   '' => 11,   '' => 11,   '' => 11,   '' => 11,
	'' => 11,   '' => 11,   '' => 11,   '' => 11,   '' => 10,
	'' => 10,   '' => 10,   '' => 10,   '' => 10,	'' => 10,
	'' => 10,   '' => 10,   '' => 10,   '' => 9,	'' => 9,
	'' => 9,    '' => 9,    '' => 9,    '' => 9,	'' => 8,
	'' => 8,    '' => 8,    '' => 8,    '' => 8,	'' => 8,
	'' => 8,    '' => 8,    '' => 8,    '' => 8,	'' => 7,
	'' => 7,    '' => 7,    '' => 7,    '' => 7,    '' => 7,
	'' => 7,    '' => 7,    '' => 7,    '' => 7,	'' => 7,
	'' => 6,    '' => 6,    '' => 6,    '' => 6,    '' => 6,
	'' => 6,    '' => 6,    '' => 6,    '' => 6,    '' => 6,
	'' => 6,    '' => 6,    '' => 6,    '' => 5,	'' => 5,
	'' => 5,    '' => 5,    '' => 5,    '' => 5,	'' => 5,
	'' => 5,    '' => 5,    '' => 5,    '' => 5,    '' => 4,
	'' => 4,    '' => 4,    '' => 4,    '' => 4,    '' => 4,
	'' => 4,    '' => 4,    '' => 4,    '' => 4,    '' => 4,
	'' => 4,    '' => 4,    '' => 4,    '' => 4,	'' => 4,
	'' => 4,    '' => 4,    '' => 4,    '' => 4,	'' => 4,
	'' => 4,    '' => 3,    '' => 3,    '' => 3,	'' => 3,
	'' => 3,    '' => 3,    '' => 3,    '' => 3,	'' => 3,
	'' => 3,    '' => 3,    '' => 3,    '' => 3,	'' => 3,
	'' => 3,    '' => 3,    '' => 3,    '' => 3,    '' => 3,
	'' => 3,    '' => 3,    '' => 3,    '' => 3,    '' => 3,
	'' => 2,    'c' => 2,    '' => 2,    '' => 2,	'' => 2,
	'' => 2,    'X' => 2,    '' => 2,    '' => 2,	'' => 2,
	'' => 2,    'YI' => 2,    'b/' => 2,    '' => 2,    '' => 2,
	'' => 2,    '' => 2,    '' => 2,    '' => 2,	'c' => 2,
	'' => 2,    'c' => 2,    'I' => 2,    '' => 2,    '' => 2,
	'' => 2,    '' => 2,    '' => 2,    '' => 2,    '' => 2,
	'' => 2,    '' => 2,    'Sn' => 2,    '' => 2,    '' => 2,
	'' => 2,    'c' => 2,    '' => 2,    '' => 2,	'' => 2,
	'c' => 2,    '' => 2,    '' => 2,    '' => 2,    '' => 2,
	'' => 2,    '' => 1,    '' => 1,    '' => 1,    '' => 1,
	'I' => 1,    '' => 1,    '' => 1,    '' => 1,	'e' => 1,
	'/' => 1,    '' => 1,    '' => 1,    '' => 1,	'' => 1,
	'/a' => 1,    '/b' => 1,    '' => 1,    '' => 1,	'' => 1,
	'' => 1,    '' => 1,    '' => 1,    '' => 1,	'' => 1,
	'' => 1,    '' => 1,    '' => 1,    'IY' => 1,	'Y' => 1,
	'a/' => 1,    '' => 1,    '' => 1,    '' => 1,    '' => 1,
	'' => 1,    '' => 1,    '' => 1,    'e' => 1,	'' => 1,
	'c' => 1,    '' => 1,    '' => 1,    '' => 1,	'' => 1,
	'' => 1,    '' => 1,    '' => 1,    '' => 1,	'' => 1,
	'|' => 1,    '' => 1,    '' => 1,    'c' => 1,	'+' => 1,
	'o' => 1,    '' => 1,    '' => 1,    '' => 1,	'' => 1,
	'' => 1,    'c' => 1,    'c' => 1,    '' => 1,	'' => 1,
	'' => 1,    '' => 1,    '' => 1,    '+' => 1);
}
sub init_StatsTableWin {
    %StatsTableWin = (
        '' => 21815,'' => 19276,'' => 16528,'' => 15172,'' => 15161,
	'' => 14457,'' => 14151,'' => 13562,'' => 13327,'' => 11067,
	'' => 10935,'' => 10268,'' => 10059,'' => 9899,	'' => 9785,
	'' => 9712, '' => 9281, '' => 9040, '' => 8956, '' => 8956,
	'' => 8884, '' => 8786, '' => 8713, '' => 8626,	'' => 8332,
	'' => 8202, '' => 8125, '' => 7820, '' => 7815,	'' => 7582,
	'' => 7487, '' => 7418, '' => 7308, '' => 7277,	'' => 7005,
	'' => 6823, '' => 6767, '' => 6679, '' => 6609,	'' => 6596,
	'' => 6329, '' => 6066, '' => 5903, '' => 5834,	'' => 5705,
	'' => 5465, '' => 5440, '' => 5347, '' => 5253,	'' => 5193,
	'' => 5075, '' => 5064, '' => 5043, '' => 4998,	'' => 4966,
	'' => 4868, '' => 4818, '' => 4731, '' => 4693,	'' => 4656,
	'' => 4628, '' => 4563, '' => 4402, '' => 4400,	'' => 4388,
	'' => 4290, '' => 4197, '' => 4191, '' => 4078,	'' => 4049,
	'' => 3968, '' => 3853, '' => 3797, '' => 3732,	'' => 3716,
	'' => 3708, '' => 3706, '' => 3684, '' => 3632,	'' => 3612,
	'' => 3465, '' => 3459, '' => 3398, '' => 3392,	'' => 3354,
	'' => 3296, '' => 3261, '' => 3242, '' => 3209,	'' => 3182,
	'' => 3162, '' => 3090, '' => 2962, '' => 2958, '' => 2878,
	'' => 2847, '' => 2830, '' => 2808, '' => 2804,	'' => 2792,
	'' => 2724, '' => 2694, '' => 2657, '' => 2653,	'' => 2587,
	'' => 2577, '' => 2573, '' => 2500, '' => 2482,	'' => 2374,
	'' => 2366, '' => 2334, '' => 2304, '' => 2289, '' => 2263,
	'' => 2227, '' => 2209, '' => 2180, '' => 2176,	'' => 2139,
	'' => 2134, '' => 2118, '' => 2073, '' => 2066,	'' => 2064,
	'' => 2054, '' => 2041, '' => 1930, '' => 1911,	'' => 1893,
	'' => 1881, '' => 1873, '' => 1778, '' => 1769,	'' => 1744,
	'' => 1738, '' => 1695, '' => 1684, '' => 1658, '' => 1639,
	'' => 1633, '' => 1628, '' => 1570, '' => 1558,	'' => 1551,
	'' => 1530, '' => 1515, '' => 1501, '' => 1493,	'' => 1488,
	'' => 1483, '' => 1460, '' => 1459, '' => 1452, '' => 1424,
	'' => 1391, '' => 1382, '' => 1379, '' => 1342,	'' => 1336,
	'' => 1323, '' => 1322, '' => 1303, '' => 1286,	'' => 1284,
	'' => 1272, '' => 1257, '' => 1248, '' => 1245,	'' => 1224,
	'' => 1197, '' => 1192, '' => 1192, '' => 1191,	'' => 1185,
	'' => 1184, '' => 1182, '' => 1161, '' => 1153,	'' => 1150,
	'' => 1139, '' => 1126, '' => 1117, '' => 1098, '' => 1094,
	'' => 1093, '' => 1076, '' => 1070, '' => 1049, '' => 1048,
	'' => 1045, '' => 1039, '' => 1033, '' => 999,	'' => 999,
	'' => 949,  '' => 944,  '' => 938,  '' => 938,	'' => 935,
	'' => 924,  '' => 921,  '' => 911,  '' => 911,	'' => 909,
	'' => 891,  '' => 882,  '' => 878,  '' => 876,	'' => 869,
	'' => 847,  '' => 840,  '' => 838,  '' => 836,  '' => 836,
	'' => 835,  '' => 832,  '' => 803,  '' => 799,  '' => 796,
	'' => 782,  '' => 778,  '' => 767,  '' => 766,	'' => 765,
	'' => 755,  '' => 743,  '' => 743,  '' => 741,	'' => 741,
	'' => 739,  '' => 716,  '' => 711,  '' => 700,	'' => 693,
	'' => 683,  '' => 678,  '' => 677,  '' => 671,  '' => 660,
	'' => 652,  '' => 651,  '' => 646,  '' => 638,  '' => 635,
	'' => 633,  '' => 632,  '' => 629,  '' => 620,  '' => 609,
	'' => 599,  '' => 594,  '' => 591,  '' => 591,	'' => 590,
	'' => 559,  '' => 525,  '' => 522,  '' => 516,  '' => 505,
	'' => 503,  '' => 496,  '' => 496,  '' => 490,	'' => 487,
	'' => 483,  '' => 482,  '' => 474,  '' => 471,  '' => 461,
	'' => 452,  '' => 438,  '' => 434,  '' => 433,  '' => 431,
	'' => 430,  '' => 416,  '' => 414,  '' => 409,  '' => 403,
	'' => 401,  '' => 400,  '' => 400,  '' => 398,  '' => 397,
	'' => 395,  '' => 394,  '' => 390,  '' => 376,  '' => 370,
	'' => 369,  '' => 368,  '' => 365,  '' => 363,  '' => 358,
	'' => 346,  '' => 344,  '' => 337,  '' => 326,  '' => 325,
	'' => 311,  '' => 305,  '' => 301,  '' => 297,  '' => 286,
	'' => 286,  '' => 286,  '' => 285,  '' => 280,  '' => 277,
	'' => 273,  '' => 272,  '' => 272,  '' => 271,  '' => 270,
	'' => 268,  '' => 266,  '' => 260,  '' => 259,  '' => 255,
	'' => 255,  '' => 254,  '' => 254,  '' => 242,  '' => 241,
	'' => 239,  '' => 237,  '' => 231,  '' => 225,  '' => 224,
	'' => 219,  '' => 218,  '' => 216,  '' => 213,  '' => 207,
	'' => 206,  '' => 206,  '' => 205,  '' => 205,  '' => 204,
	'' => 204,  '' => 204,  '' => 201,  '' => 200,  '' => 199,
	'' => 198,  '' => 197,  '' => 197,  '' => 194,  '' => 193,
	'' => 192,  '' => 192,  '' => 191,  '' => 184,  '' => 183,
	'' => 183,  '' => 178,  '' => 176,  '' => 174,  '' => 174,
	'' => 171,  '' => 169,  '' => 166,  '' => 165,  '' => 162,
	'' => 161,  '' => 161,  '' => 157,  '' => 156,  '' => 156,
	'' => 154,  '' => 153,  '' => 152,  '' => 152,  '' => 151,
	'' => 151,  '' => 145,  '' => 141,  '' => 140,  '' => 138,
	'' => 134,  '' => 134,  '' => 129,  '__' => 128,  '' => 127,
	'' => 124,  '' => 122,  '' => 122,  '' => 120,  '' => 119,
	'' => 114,  '' => 113,  '' => 112,  '' => 112,	'' => 112,
	'' => 108,  '' => 108,  '' => 107,  '' => 104,	'' => 104,
	'' => 102,  '' => 101,  '' => 100,  '' => 97,	'' => 96,
	'' => 96,   '' => 92,   '' => 92,   '' => 92,   '' => 90,
	'' => 90,   '' => 89,   '' => 89,   '' => 89,	'' => 87,
	'' => 84,   '' => 83,   '' => 82,   '' => 81,	'' => 79,
	'' => 78,   '' => 77,   '' => 76,   'II' => 74,   '' => 70,
	'' => 70,   '' => 68,   '' => 68,   '' => 68,	'' => 67,
	'' => 64,   'XX' => 64,   '' => 63,   '' => 63,	'' => 62,
	'' => 62,   '' => 61,   '' => 60,   '' => 59,   '' => 56,
	'' => 56,   '' => 53,   '' => 52,   '' => 51,   '' => 51,
	'' => 51,   '' => 51,   '' => 51,   '' => 51,	'XI' => 50,
	'' => 50,   '' => 50,   '' => 49,   '' => 48,   '' => 47,
	'' => 46,   '' => 46,   '' => 46,   '' => 45,	'' => 45,
	'' => 41,   '' => 38,   '' => 38,   '' => 37,	'' => 37,
	'' => 36,   '' => 36,   '' => 35,   '' => 35,	'' => 34,
	'' => 34,   '' => 33,   'VI' => 33,   '' => 33,   '' => 33,
	'' => 33,   '' => 33,   '' => 33,   '' => 32,	'' => 32,
	'' => 32,   '' => 31,   '' => 31,   '' => 31,	'' => 30,
	'' => 30,   '' => 30,   'XV' => 30,   '' => 30,	'' => 29,
	'' => 29,   '' => 28,   '' => 28,   '' => 28,	'' => 27,
	'' => 27,   '' => 27,   '' => 27,   '' => 27,	'' => 26,
	'' => 26,   '' => 26,   '' => 26,   '' => 26,	'' => 25,
	'' => 25,   '' => 25,   '' => 25,   '' => 24,	'' => 24,
	'' => 24,   '' => 24,   '' => 24,   '' => 23,	'' => 22,
	'' => 22,   '' => 22,   '' => 22,   '' => 21,	'' => 20,
	'' => 20,   '' => 20,   '' => 20,   '' => 19,	'' => 19,
	'' => 19,   '' => 19,   '' => 19,   '' => 19,	'' => 19,
	'' => 19,   '' => 18,   '' => 18,   '' => 18,   '' => 18,
	'' => 18,   '' => 17,   '' => 17,   '' => 17,	'' => 17,
	'' => 17,   '' => 16,   '' => 16,   'IV' => 16,   '' => 16,
	'' => 16,   '' => 16,   '' => 16,   '' => 15,   '' => 15,
	'' => 15,   '' => 15,   '' => 15,   '' => 15,	'' => 15,
	'' => 14,   '' => 14,   '' => 14,   '' => 13,	'' => 13,
	'' => 13,   '' => 13,   'IX' => 13,   '' => 13,   'C' => 13,
	'' => 12,   '' => 12,   '' => 12,   '' => 12,   '' => 12,
	'' => 12,   '' => 12,   '' => 12,   '' => 12,	'' => 12,
	'' => 12,   '' => 11,   '' => 11,   '' => 11,   '' => 11,
	'' => 11,   '' => 11,   '' => 11,   '' => 11,   '' => 10,
	'' => 10,   '' => 10,   '' => 10,   '' => 10,	'' => 10,
	'' => 10,   '' => 10,   '' => 10,   '' => 9,	'' => 9,
	'' => 9,    '' => 9,    '' => 9,    '' => 9,	'' => 8,
	'' => 8,    '' => 8,    '' => 8,    '' => 8,	'' => 8,
	'' => 8,    '' => 8,    '' => 8,    '' => 8,	'' => 7,
	'' => 7,    '' => 7,    '' => 7,    '' => 7,    '' => 7,
	'' => 7,    '' => 7,    '' => 7,    '' => 7,	'' => 7,
	'' => 6,    '' => 6,    '' => 6,    '' => 6,    '' => 6,
	'' => 6,    '' => 6,    '' => 6,    '' => 6,    '' => 6,
	'' => 6,    '' => 6,    '' => 6,    '' => 5,	'' => 5,
	'' => 5,    '' => 5,    '' => 5,    '' => 5,	'' => 5,
	'' => 5,    '' => 5,    '' => 5,    '' => 5,    '' => 4,
	'' => 4,    '' => 4,    '' => 4,    '' => 4,    '' => 4,
	'' => 4,    '' => 4,    '' => 4,    '' => 4,    '' => 4,
	'' => 4,    '' => 4,    '' => 4,    '' => 4,	'' => 4,
	'' => 4,    '' => 4,    '' => 4,    '' => 4,	'' => 4,
	'' => 4,    '' => 3,    '' => 3,    '' => 3,	'' => 3,
	'' => 3,    '' => 3,    '' => 3,    '' => 3,	'' => 3,
	'' => 3,    '' => 3,    '' => 3,    '' => 3,	'' => 3,
	'' => 3,    '' => 3,    '' => 3,    '' => 3,    '' => 3,
	'' => 3,    '' => 3,    '' => 3,    '' => 3,    '' => 3,
	'' => 2,    'c' => 2,    '' => 2,    '' => 2,	'' => 2,
	'' => 2,    'X' => 2,    '' => 2,    '' => 2,	'' => 2,
	'' => 2,    'YI' => 2,    'b/' => 2,    '' => 2,    '' => 2,
	'' => 2,    '' => 2,    '' => 2,    '' => 2,	'c' => 2,
	'' => 2,    'c' => 2,    'I' => 2,    '' => 2,    '' => 2,
	'' => 2,    '' => 2,    '' => 2,    '' => 2,    '' => 2,
	'' => 2,    '' => 2,    'Sn' => 2,    '' => 2,    '' => 2,
	'' => 2,    'c' => 2,    '' => 2,    '' => 2,	'' => 2,
	'c' => 2,    '' => 2,    '' => 2,    '' => 2,    '' => 2,
	'' => 2,    '' => 1,    '' => 1,    '' => 1,    '' => 1,
	'I' => 1,    '' => 1,    '' => 1,    '' => 1,	'e' => 1,
	'/' => 1,    '' => 1,    '' => 1,    '' => 1,	'' => 1,
	'/a' => 1,    '/b' => 1,    '' => 1,    '' => 1,	'' => 1,
	'' => 1,    '' => 1,    '' => 1,    '' => 1,	'' => 1,
	'' => 1,    '' => 1,    '' => 1,    'IY' => 1,	'Y' => 1,
	'a/' => 1,    '' => 1,    '' => 1,    '' => 1,    '' => 1,
	'' => 1,    '' => 1,    '' => 1,    'e' => 1,	'' => 1,
	'c' => 1,    '' => 1,    '' => 1,    '' => 1,	'' => 1,
	'' => 1,    '' => 1,    '' => 1,    '' => 1,	'' => 1,
	'|' => 1,    '' => 1,    '' => 1,    'c' => 1,	'+' => 1,
	'o' => 1,    '' => 1,    '' => 1,    '' => 1,	'' => 1,
	'' => 1,    'c' => 1,    'c' => 1,    '' => 1,	'' => 1,
	'' => 1,    '' => 1,    '' => 1,    '+' => 1);
}
sub init_StatsTableIso {
    %StatsTableIso = (
        '' => 21815,'' => 19276,'' => 16528,'' => 15172,'' => 15161,
	'' => 14457,'' => 14151,'' => 13562,'' => 13327,'' => 11067,
	'' => 10935,'' => 10268,'' => 10059,'' => 9899,	'' => 9785,
	'' => 9712, '' => 9281, '' => 9040, '' => 8956, '' => 8956,
	'' => 8884, '' => 8786, '' => 8713, '' => 8626,	'' => 8332,
	'' => 8202, '' => 8125, '' => 7820, '' => 7815,	'' => 7582,
	'' => 7487, '' => 7418, '' => 7308, '' => 7277,	'' => 7005,
	'' => 6823, '' => 6767, '' => 6679, '' => 6609,	'' => 6596,
	'' => 6329, '' => 6066, '' => 5903, '' => 5834,	'' => 5705,
	'' => 5465, '' => 5440, '' => 5347, '' => 5253,	'' => 5193,
	'' => 5075, '' => 5064, '' => 5043, '' => 4998,	'' => 4966,
	'' => 4868, '' => 4818, '' => 4731, '' => 4693,	'' => 4656,
	'' => 4628, '' => 4563, '' => 4402, '' => 4400,	'' => 4388,
	'' => 4290, '' => 4197, '' => 4191, '' => 4078,	'' => 4049,
	'' => 3968, '' => 3853, '' => 3797, '' => 3732,	'' => 3716,
	'' => 3708, '' => 3706, '' => 3684, '' => 3632,	'' => 3612,
	'' => 3465, '' => 3459, '' => 3398, '' => 3392,	'' => 3354,
	'' => 3296, '' => 3261, '' => 3242, '' => 3209,	'' => 3182,
	'' => 3162, '' => 3090, '' => 2962, '' => 2958, '' => 2878,
	'' => 2847, '' => 2830, '' => 2808, '' => 2804,	'' => 2792,
	'' => 2724, '' => 2694, '' => 2657, '' => 2653,	'' => 2587,
	'' => 2577, '' => 2573, '' => 2500, '' => 2482,	'' => 2374,
	'' => 2366, '' => 2334, '' => 2304, '' => 2289, '' => 2263,
	'' => 2227, '' => 2209, '' => 2180, '' => 2176,	'' => 2139,
	'' => 2134, '' => 2118, '' => 2073, '' => 2066,	'' => 2064,
	'' => 2054, '' => 2041, '' => 1930, '' => 1911,	'' => 1893,
	'' => 1881, '' => 1873, '' => 1778, '' => 1769,	'' => 1744,
	'' => 1738, '' => 1695, '' => 1684, '' => 1658, '' => 1639,
	'' => 1633, '' => 1628, '' => 1570, '' => 1558,	'' => 1551,
	'' => 1530, '' => 1515, '' => 1501, '' => 1493,	'' => 1488,
	'' => 1483, '' => 1460, '' => 1459, '' => 1452, '' => 1424,
	'' => 1391, '' => 1382, '' => 1379, '' => 1342,	'' => 1336,
	'' => 1323, '' => 1322, '' => 1303, '' => 1286,	'' => 1284,
	'' => 1272, '' => 1257, '' => 1248, '' => 1245,	'' => 1224,
	'' => 1197, '' => 1192, '' => 1192, '' => 1191,	'' => 1185,
	'' => 1184, '' => 1182, '' => 1161, '' => 1153,	'' => 1150,
	'' => 1139, '' => 1126, '' => 1117, '' => 1098, '' => 1094,
	'' => 1093, '' => 1076, '' => 1070, '' => 1049, '' => 1048,
	'' => 1045, '' => 1039, '' => 1033, '' => 999,	'' => 999,
	'' => 949,  '' => 944,  '' => 938,  '' => 938,	'' => 935,
	'' => 924,  '' => 921,  '' => 911,  '' => 911,	'' => 909,
	'' => 891,  '' => 882,  '' => 878,  '' => 876,	'' => 869,
	'' => 847,  '' => 840,  '' => 838,  '' => 836,  '' => 836,
	'' => 835,  '' => 832,  '' => 803,  '' => 799,  '' => 796,
	'' => 782,  '' => 778,  '' => 767,  '' => 766,	'' => 765,
	'' => 755,  '' => 743,  '' => 743,  '' => 741,	'' => 741,
	'' => 739,  '' => 716,  '' => 711,  '' => 700,	'' => 693,
	'' => 683,  '' => 678,  '' => 677,  '' => 671,  '' => 660,
	'' => 652,  '' => 651,  '' => 646,  '' => 638,  '' => 635,
	'' => 633,  '' => 632,  '' => 629,  '' => 620,  '' => 609,
	'' => 599,  '' => 594,  '' => 591,  '' => 591,	'' => 590,
	'' => 559,  '' => 525,  '' => 522,  '' => 516,  '' => 505,
	'' => 503,  '' => 496,  '' => 496,  '' => 490,	'' => 487,
	'' => 483,  '' => 482,  '' => 474,  '' => 471,  '' => 461,
	'' => 452,  '' => 438,  '' => 434,  '' => 433,  '' => 431,
	'' => 430,  '' => 416,  '' => 414,  '' => 409,  '' => 403,
	'' => 401,  '' => 400,  '' => 400,  '' => 398,  '' => 397,
	'' => 395,  '' => 394,  '' => 390,  '' => 376,  '' => 370,
	'' => 369,  '' => 368,  '' => 365,  '' => 363,  '' => 358,
	'' => 346,  '' => 344,  '' => 337,  '' => 326,  '' => 325,
	'' => 311,  '' => 305,  '' => 301,  '' => 297,  '' => 286,
	'' => 286,  '' => 286,  '' => 285,  '' => 280,  '' => 277,
	'' => 273,  '' => 272,  '' => 272,  '' => 271,  '' => 270,
	'' => 268,  '' => 266,  '' => 260,  '' => 259,  '' => 255,
	'' => 255,  '' => 254,  '' => 254,  '' => 242,  '' => 241,
	'' => 239,  '' => 237,  '' => 231,  '' => 225,  '' => 224,
	'' => 219,  '' => 218,  '' => 216,  '' => 213,  '' => 207,
	'' => 206,  '' => 206,  '' => 205,  '' => 205,  '' => 204,
	'' => 204,  '' => 204,  '' => 201,  '' => 200,  '' => 199,
	'' => 198,  '' => 197,  '' => 197,  '' => 194,  '' => 193,
	'' => 192,  '' => 192,  '' => 191,  '' => 184,  '' => 183,
	'' => 183,  '' => 178,  '' => 176,  '' => 174,  '' => 174,
	'' => 171,  '' => 169,  '' => 166,  '' => 165,  '' => 162,
	'' => 161,  '' => 161,  '' => 157,  '' => 156,  '' => 156,
	'' => 154,  '' => 153,  '' => 152,  '' => 152,  '' => 151,
	'' => 151,  '' => 145,  '' => 141,  '' => 140,  '' => 138,
	'' => 134,  '' => 134,  '' => 129,  '__' => 128,  '' => 127,
	'' => 124,  '' => 122,  '' => 122,  '' => 120,  '' => 119,
	'' => 114,  '' => 113,  '' => 112,  '' => 112,	'' => 112,
	'' => 108,  '' => 108,  '' => 107,  '' => 104,	'' => 104,
	'' => 102,  '' => 101,  '' => 100,  '' => 97,	'' => 96,
	'' => 96,   '' => 92,   '' => 92,   '' => 92,   '' => 90,
	'' => 90,   '' => 89,   '' => 89,   '' => 89,	'' => 87,
	'' => 84,   '' => 83,   '' => 82,   '' => 81,	'' => 79,
	'' => 78,   '' => 77,   '' => 76,   'II' => 74,   '' => 70,
	'' => 70,   '' => 68,   '' => 68,   '' => 68,	'' => 67,
	'' => 64,   'XX' => 64,   '' => 63,   '' => 63,	'' => 62,
	'' => 62,   '' => 61,   '' => 60,   '' => 59,   '' => 56,
	'' => 56,   '' => 53,   '' => 52,   '' => 51,   '' => 51,
	'' => 51,   '' => 51,   '' => 51,   '' => 51,	'XI' => 50,
	'' => 50,   '' => 50,   '' => 49,   '' => 48,   '' => 47,
	'' => 46,   '' => 46,   '' => 46,   '' => 45,	'' => 45,
	'' => 41,   '' => 38,   '' => 38,   '' => 37,	'' => 37,
	'' => 36,   '' => 36,   '' => 35,   '' => 35,	'' => 34,
	'' => 34,   '' => 33,   'VI' => 33,   '' => 33,   '' => 33,
	'' => 33,   '' => 33,   '' => 33,   '' => 32,	'' => 32,
	'' => 32,   '' => 31,   '' => 31,   '' => 31,	'' => 30,
	'' => 30,   '' => 30,   'XV' => 30,   '' => 30,	'' => 29,
	'' => 29,   '' => 28,   '' => 28,   '' => 28,	'' => 27,
	'' => 27,   '' => 27,   '' => 27,   '' => 27,	'' => 26,
	'' => 26,   '' => 26,   '' => 26,   '' => 26,	'' => 25,
	'' => 25,   '' => 25,   '' => 25,   '' => 24,	'' => 24,
	'' => 24,   '' => 24,   '' => 24,   '' => 23,	'' => 22,
	'' => 22,   '' => 22,   '' => 22,   '' => 21,	'' => 20,
	'' => 20,   '' => 20,   '' => 20,   '' => 19,	'' => 19,
	'' => 19,   '' => 19,   '' => 19,   '' => 19,	'' => 19,
	'' => 19,   '' => 18,   '' => 18,   '' => 18,   '' => 18,
	'' => 18,   '' => 17,   '' => 17,   '' => 17,	'' => 17,
	'' => 17,   '' => 16,   '' => 16,   'IV' => 16,   '' => 16,
	'' => 16,   '' => 16,   '' => 16,   '' => 15,   '' => 15,
	'' => 15,   '' => 15,   '' => 15,   '' => 15,	'' => 15,
	'' => 14,   '' => 14,   '' => 14,   '' => 13,	'' => 13,
	'' => 13,   '' => 13,   'IX' => 13,   '' => 13,   'C' => 13,
	'' => 12,   '' => 12,   '' => 12,   'ڲ' => 12,   '' => 12,
	'' => 12,   '' => 12,   '' => 12,   '' => 12,	'' => 12,
	'' => 12,   '' => 11,   '' => 11,   '' => 11,   '' => 11,
	'' => 11,   '' => 11,   '' => 11,   '' => 11,   '' => 10,
	'' => 10,   '' => 10,   '' => 10,   '' => 10,	'' => 10,
	'' => 10,   '' => 10,   '' => 10,   '' => 9,	'' => 9,
	'' => 9,    '' => 9,    '' => 9,    '' => 9,	'' => 8,
	'' => 8,    '' => 8,    '' => 8,    '' => 8,	'' => 8,
	'' => 8,    '' => 8,    '' => 8,    '' => 8,	'' => 7,
	'' => 7,    '' => 7,    '' => 7,    '' => 7,    '' => 7,
	'' => 7,    '' => 7,    '' => 7,    '' => 7,	'' => 7,
	'' => 6,    '' => 6,    '' => 6,    '' => 6,    '' => 6,
	'' => 6,    '' => 6,    '' => 6,    '' => 6,    '' => 6,
	'' => 6,    '' => 6,    '' => 6,    '' => 5,	'' => 5,
	'' => 5,    '' => 5,    '' => 5,    '' => 5,	'' => 5,
	'' => 5,    '' => 5,    '' => 5,    '' => 5,    '' => 4,
	'' => 4,    '' => 4,    '' => 4,    '' => 4,    '' => 4,
	'' => 4,    '' => 4,    '' => 4,    '' => 4,    '' => 4,
	'' => 4,    '' => 4,    '' => 4,    '' => 4,	'' => 4,
	'' => 4,    '' => 4,    'ľ' => 4,    '' => 4,	'' => 4,
	'' => 4,    '' => 3,    '' => 3,    '' => 3,	'' => 3,
	'' => 3,    '' => 3,    '' => 3,    '' => 3,	'' => 3,
	'' => 3,    '' => 3,    '' => 3,    '' => 3,	'' => 3,
	'' => 3,    '' => 3,    '' => 3,    '' => 3,    '' => 3,
	'' => 3,    '' => 3,    '' => 3,    '' => 3,    '' => 3,
	'' => 2,    'c' => 2,    '' => 2,    '' => 2,	'' => 2,
	'' => 2,    'X' => 2,    '' => 2,    '' => 2,	'' => 2,
	'' => 2,    'YI' => 2,    'b/' => 2,    '' => 2,    '' => 2,
	'' => 2,    '' => 2,    '' => 2,    '' => 2,	'c' => 2,
	'' => 2,    'c' => 2,    'I' => 2,    '' => 2,    '' => 2,
	'' => 2,    'ܷ' => 2,    '' => 2,    '' => 2,    '' => 2,
	'' => 2,    'ĸ' => 2,    'Sn' => 2,    '' => 2,    '' => 2,
	'' => 2,    'c' => 2,    '' => 2,    '' => 2,	'' => 2,
	'c' => 2,    '' => 2,    '' => 2,    '' => 2,    '' => 2,
	'ǰ' => 2,    '' => 1,    '' => 1,    '' => 1,    '' => 1,
	'I' => 1,    '' => 1,    '' => 1,    '' => 1,	'e' => 1,
	'/' => 1,    '' => 1,    '' => 1,    '' => 1,	'' => 1,
	'/a' => 1,    '/b' => 1,    '' => 1,    '' => 1,	'' => 1,
	'' => 1,    '' => 1,    '' => 1,    '' => 1,	'' => 1,
	'' => 1,    'ɰ' => 1,    '' => 1,    'IY' => 1,	'Y' => 1,
	'a/' => 1,    '' => 1,    '' => 1,    '' => 1,    '' => 1,
	'' => 1,    '' => 1,    '' => 1,    'e' => 1,	'' => 1,
	'c' => 1,    '' => 1,    '' => 1,    '' => 1,	'' => 1,
	'' => 1,    '' => 1,    '' => 1,    '' => 1,	'' => 1,
	'|' => 1,    '' => 1,    '' => 1,    'c' => 1,	'+' => 1,
	'o' => 1,    '' => 1,    '' => 1,    '' => 1,	'' => 1,
	'' => 1,    'c' => 1,    'c' => 1,    '' => 1,	'' => 1,
        '' => 1,    '' => 1,    '' => 1,    '+' => 1);
}
