Orb/Doxygen/qtools/qstring.cpp
changeset 0 42188c7ea2d9
equal deleted inserted replaced
-1:000000000000 0:42188c7ea2d9
       
     1 /****************************************************************************
       
     2 ** 
       
     3 **
       
     4 ** Implementation of the QString class and related Unicode functions
       
     5 **
       
     6 ** Created : 920722
       
     7 **
       
     8 ** Copyright (C) 1992-2000 Trolltech AS.  All rights reserved.
       
     9 **
       
    10 ** This file is part of the tools module of the Qt GUI Toolkit.
       
    11 **
       
    12 ** This file may be distributed under the terms of the Q Public License
       
    13 ** as defined by Trolltech AS of Norway and appearing in the file
       
    14 ** LICENSE.QPL included in the packaging of this file.
       
    15 **
       
    16 ** This file may be distributed and/or modified under the terms of the
       
    17 ** GNU General Public License version 2 as published by the Free Software
       
    18 ** Foundation and appearing in the file LICENSE.GPL included in the
       
    19 ** packaging of this file.
       
    20 **
       
    21 ** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
       
    22 ** licenses may use this file in accordance with the Qt Commercial License
       
    23 ** Agreement provided with the Software.
       
    24 **
       
    25 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
       
    26 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
       
    27 **
       
    28 ** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
       
    29 **   information about Qt Commercial License Agreements.
       
    30 ** See http://www.trolltech.com/qpl/ for QPL licensing information.
       
    31 ** See http://www.trolltech.com/gpl/ for GPL licensing information.
       
    32 **
       
    33 ** Contact info@trolltech.com if any conditions of this licensing are
       
    34 ** not clear to you.
       
    35 **
       
    36 **********************************************************************/
       
    37 
       
    38 // Don't define it while compiling this module, or USERS of Qt will
       
    39 // not be able to link.
       
    40 #ifdef QT_NO_CAST_ASCII
       
    41 #undef QT_NO_CAST_ASCII
       
    42 #endif
       
    43 
       
    44 #include "qstring.h"
       
    45 #include "qregexp.h"
       
    46 #include "qdatastream.h"
       
    47 #include "qtextcodec.h"
       
    48 #include "qstack.h"
       
    49 #include <stdio.h>
       
    50 #include <stdlib.h>
       
    51 #include <stdarg.h>
       
    52 #include <ctype.h>
       
    53 #include <limits.h>
       
    54 
       
    55 
       
    56 /* -------------------------------------------------------------------------
       
    57  * unicode information
       
    58  * these tables are generated from the unicode reference file
       
    59  * ftp://ftp.unicode.org/Public/3.0-Update/UnicodeData-3.0.0.html
       
    60  *
       
    61  * Lars Knoll <knoll@mpi-hd.mpg.de>
       
    62  * -------------------------------------------------------------------------
       
    63  */
       
    64 
       
    65 /* Perl script to generate (run perl -x tools/qstring.cpp)
       
    66 
       
    67 #!perl
       
    68 
       
    69 sub numberize
       
    70 {
       
    71     my(%r, $n, $id);
       
    72     for $id ( @_ ) {
       
    73 	$id="" if $id eq "EMPTY";
       
    74 	$r{$id}=$n++;
       
    75     }
       
    76     return %r;
       
    77 }
       
    78 
       
    79 
       
    80 # Code to integer mappings...
       
    81 #
       
    82 %category_code = numberize(qw{
       
    83       EMPTY
       
    84       Mn Mc Me
       
    85       Nd Nl No
       
    86       Zs Zl Zp
       
    87       Cc Cf Cs Co Cn
       
    88 
       
    89       Lu Ll Lt Lm Lo
       
    90       Pc Pd Ps Pe Pi Pf Po
       
    91       Sm Sc Sk So
       
    92 });
       
    93 %bidi_category_code = numberize(qw{
       
    94       L R EN ES ET AN CS B S WS ON LRE LRO AL RLE RLO PDF NSM BN});
       
    95 %character_decomposition_tag = numberize(qw{
       
    96       <single> <canonical> <font> <noBreak> <initial> <medial>
       
    97       <final> <isolated> <circle> <super> <sub> <vertical>
       
    98       <wide> <narrow> <small> <square> <compat> <fraction>
       
    99 });
       
   100 %mirrored_code = numberize(qw{N Y});
       
   101 
       
   102 %joining_code = numberize(qw{U D R C});
       
   103 
       
   104 # Read data into hashes...
       
   105 #
       
   106 open IN, "UnicodeData.txt";
       
   107 $position = 1;
       
   108 while (<IN>) {
       
   109     @fields = split /;/;
       
   110     $code = shift @fields;
       
   111     for $n (qw{
       
   112       name category combining_class bidi_category
       
   113       character_decomposition decimal_digit_value digit_value
       
   114       numeric_value mirrored oldname comment
       
   115       uppercase lowercase titlecase})
       
   116     {
       
   117 	$id = shift @fields;
       
   118 	$codes = "${n}_code";
       
   119 	if ( defined %$codes && defined $$codes{$id} ) {
       
   120 	    $id = $$codes{$id};
       
   121 	}
       
   122 	${$n}{$code}=$id;
       
   123     }
       
   124     $decomp = $character_decomposition{$code};
       
   125     if ( length $decomp == 0 ) {
       
   126 	$decomp = "<single>";
       
   127     }
       
   128     if (substr($decomp, 0, 1) ne '<') {
       
   129 	$decomp = "<canonical> " . $decomp;
       
   130     }
       
   131     @fields = split(" ", $decomp);
       
   132     $tag = shift @fields;
       
   133     $tag = $character_decomposition_tag{$tag};
       
   134     $decomp = join( ", 0x", @fields );
       
   135     $decomp = "0x".$decomp;
       
   136     $decomposition{$code} = $decomp;
       
   137     $decomposition_tag{$code} = $tag;
       
   138     $decomposition_pos{$code} = $position;
       
   139     $len = scalar(@fields);
       
   140     $decomposition_len{$code} = $len;
       
   141 
       
   142 #   we use canonical decompositions longer than 1 char
       
   143 #   and all arabic ligatures for the ligature table
       
   144     if(($len > 1 and $tag == 1) or ($tag > 3 and $tag < 8)) {
       
   145 #      ligature to add...
       
   146 	$start = shift @fields;
       
   147 	$ligature{$start} = $ligature{$start}." ".$code;
       
   148     }
       
   149 
       
   150 #   adjust position
       
   151     if($len != 0) {
       
   152 	$position += $len + 3;
       
   153     }
       
   154 
       
   155 
       
   156 }
       
   157 
       
   158 open IN2, "ArabicShaping.txt";
       
   159 $position = 1;
       
   160 while (<IN2>) {
       
   161     @fields = split /;/;
       
   162     $code = shift @fields;
       
   163     $dummy = shift @fields;
       
   164     $join = shift @fields;
       
   165     $join =~ s/ //g;
       
   166     $join = $joining_code{$join};
       
   167     $joining{$code}=$join;
       
   168 }
       
   169 
       
   170 # Build pages...
       
   171 #
       
   172 $rowtable_txt =
       
   173     "static const Q_UINT8 * const unicode_info[256] = {";
       
   174 for $row ( 0..255 ) {
       
   175     $nonzero=0;
       
   176     $txt = "";
       
   177     for $cell ( 0..255 ) {
       
   178 	$code = sprintf("%02X%02X",$row,$cell);
       
   179 	$info = $category{$code};
       
   180 	$info = 0 if !defined $info;
       
   181 	$txt .= "\n    " if $cell%8 == 0;
       
   182 	$txt .= "$info, ";
       
   183     }
       
   184     $therow = $row{$txt};
       
   185     if ( !defined $therow ) {
       
   186 	$size+=256;
       
   187 	$therow = "ui_".sprintf("%02X",$row);
       
   188 	$rowtext{$therow} =
       
   189 	    "static const Q_UINT8 ${therow}[] = {$txt\n};\n\n";
       
   190 	$row{$txt}=$therow;
       
   191     }
       
   192     $rowtable_txt .= "\n    " if $row%8 == 0;
       
   193     $rowtable_txt .= "$therow, ";
       
   194 }
       
   195 
       
   196 print "// START OF GENERATED DATA\n\n";
       
   197 print "#ifndef QT_NO_UNICODETABLES\n\n";
       
   198 
       
   199 # Print pages...
       
   200 #
       
   201 for $r ( sort keys %rowtext ) {
       
   202     print $rowtext{$r};
       
   203 }
       
   204 print "$rowtable_txt\n};\n";
       
   205 $size += 256*4;
       
   206 print "// $size bytes\n\n";
       
   207 
       
   208 # Build decomposition tables
       
   209 #
       
   210 $rowtable_txt =
       
   211     "static const Q_UINT16 * const decomposition_info[256] = {";
       
   212 $table_txt =
       
   213     "static const Q_UINT16 decomposition_map[] = {\n    0,\n";
       
   214 for $row ( 0..255 ) {
       
   215     $nonzero=0;
       
   216     $txt = "";
       
   217     for $cell ( 0..255 ) {
       
   218 	$code = sprintf("%02X%02X",$row,$cell);
       
   219 	$txt .= "\n   " if $cell%8 == 0;
       
   220 	if( $decomposition_tag{$code} != 0 ) {
       
   221 	    $txt .= " $decomposition_pos{$code},";
       
   222 	    $table_txt .= "    $decomposition_tag{$code},";
       
   223 	    $table_txt .= " 0x$code,";
       
   224 	    $table_txt .= " $decomposition{$code}, 0,\n";
       
   225 	    $size += 2 * $decomposition_len{$code} + 6;
       
   226 	} else {
       
   227 	    $txt .= " 0,";
       
   228 	}
       
   229     }
       
   230     $therow = $row{$txt};
       
   231     if ( !defined $therow ) {
       
   232 	$size+=512;
       
   233 	$therow = "di_".sprintf("%02X",$row);
       
   234 	$dec_rowtext{$therow} =
       
   235 	    "static const Q_UINT16 ${therow}[] = {$txt\n};\n\n";
       
   236 	$row{$txt}=$therow;
       
   237     }
       
   238     $rowtable_txt .= "\n    " if $row%8 == 0;
       
   239     $rowtable_txt .= "$therow, ";
       
   240 }
       
   241 
       
   242 # Print decomposition tables
       
   243 #
       
   244 print "$table_txt\n};\n\n";
       
   245 for $r ( sort keys %dec_rowtext ) {
       
   246     print $dec_rowtext{$r};
       
   247 }
       
   248 print "$rowtable_txt\n};\n";
       
   249 $size += 256*4;
       
   250 print "// $size bytes\n\n";
       
   251 
       
   252 
       
   253 # build ligature tables
       
   254 #
       
   255 $size = 0;
       
   256 $position = 1;
       
   257 $rowtable_txt =
       
   258     "static const Q_UINT16 * const ligature_info[256] = {";
       
   259 $table_txt =
       
   260     "static const Q_UINT16 ligature_map[] = {\n    0,\n";
       
   261 for $lig_row ( 0..255 ) {
       
   262     $nonzero=0;
       
   263     $txt = "";
       
   264     for $cell ( 0..255 ) {
       
   265 	$code = sprintf("%02X%02X",$lig_row,$cell);
       
   266 	$txt .= "\n   " if $cell%8 == 0;
       
   267 	if( defined $ligature{$code} ) {
       
   268 	    $txt .= " $position,";
       
   269 	    @ligature = split(" ", $ligature{$code});
       
   270 #           we need to sort ligatures according to their length.
       
   271 #           long ones have to come first!
       
   272 	    @ligature_sort = sort { $decomposition_len{$b} <=>  $decomposition_len{$a} } @ligature;
       
   273 #           now replace each code by it's position in
       
   274 #           the decomposition map.
       
   275 	    undef(@lig_pos);
       
   276 	    for $n (@ligature_sort) {
       
   277 		push(@lig_pos, $decomposition_pos{$n});
       
   278 	    }
       
   279 #           debug info
       
   280 	    if( 0 ) {
       
   281 		print "ligatures: $ligature{$code}\n";
       
   282 		$sort = join(" ", @ligature_sort);
       
   283 		print "sorted   : $sort\n";
       
   284 	    }
       
   285 	    $lig = join(", ", @lig_pos);
       
   286 	    $table_txt .= "    $lig, 0,\n";
       
   287 	    $size += 2 * scalar(@ligature) + 2;
       
   288 	    $position += scalar(@ligature) + 1;
       
   289 	} else {
       
   290 	    $txt .= " 0,";
       
   291 	}
       
   292     }
       
   293     $therow = $lig_row{$txt};
       
   294     if ( !defined $therow ) {
       
   295 	$size+=512;
       
   296 	$therow = "li_".sprintf("%02X",$lig_row);
       
   297 	$lig_rowtext{$therow} =
       
   298 	    "static const Q_UINT16 ${therow}[] = {$txt\n};\n\n";
       
   299 	$lig_row{$txt}=$therow;
       
   300     }
       
   301     $rowtable_txt .= "\n    " if $lig_row%8 == 0;
       
   302     $rowtable_txt .= "$therow, ";
       
   303 }
       
   304 
       
   305 # Print ligature tables
       
   306 #
       
   307 print "$table_txt\n};\n\n";
       
   308 for $r ( sort keys %lig_rowtext ) {
       
   309     print $lig_rowtext{$r};
       
   310 }
       
   311 print "$rowtable_txt\n};\n";
       
   312 $size += 256*4;
       
   313 print "// $size bytes\n\n";
       
   314 
       
   315 
       
   316 
       
   317 # Build direction/joining/mirrored pages...
       
   318 #
       
   319 $rowtable_txt =
       
   320     "static const Q_UINT8 * const direction_info[256] = {";
       
   321 for $dir_row ( 0..255 ) {
       
   322     $nonzero=0;
       
   323     $txt = "";
       
   324     for $cell ( 0..255 ) {
       
   325 	$code = sprintf("%02X%02X",$dir_row,$cell);
       
   326 	$dir = $bidi_category{$code};
       
   327 	$dir = 0 if !defined $dir;
       
   328 	$join = $joining{$code};
       
   329 	$join = 0 if !defined $join;
       
   330 	$mirr = $mirrored{$code};
       
   331 	$mirr = 0 if !defined $mirr;
       
   332 	$info = $dir + 32*$join + 128*$mirr;
       
   333 	$txt .= "\n    " if $cell%8 == 0;
       
   334 	$txt .= "$info, ";
       
   335     }
       
   336     $therow = $dir_row{$txt};
       
   337     if ( !defined $therow ) {
       
   338 	$size+=256;
       
   339 	$therow = "dir_".sprintf("%02X",$dir_row);
       
   340 	$dir_rowtext{$therow} =
       
   341 	    "static const Q_UINT8 ${therow}[] = {$txt\n};\n\n";
       
   342 	$dir_row{$txt}=$therow;
       
   343     }
       
   344     $rowtable_txt .= "\n    " if $dir_row%8 == 0;
       
   345     $rowtable_txt .= "$therow, ";
       
   346 }
       
   347 
       
   348 # Print pages...
       
   349 #
       
   350 for $r ( sort keys %dir_rowtext ) {
       
   351     print $dir_rowtext{$r};
       
   352 }
       
   353 print "$rowtable_txt\n};\n";
       
   354 $size += 256*4;
       
   355 print "// $size bytes\n\n";
       
   356 
       
   357 
       
   358 
       
   359 print "#endif\n\n";
       
   360 print "// END OF GENERATED DATA\n\n";
       
   361 
       
   362 
       
   363 __END__
       
   364 
       
   365 */
       
   366 
       
   367 
       
   368 // START OF GENERATED DATA
       
   369 
       
   370 static const Q_UINT8 ui_00[] = {
       
   371     10, 10, 10, 10, 10, 10, 10, 10,
       
   372     10, 10, 10, 10, 10, 10, 10, 10,
       
   373     10, 10, 10, 10, 10, 10, 10, 10,
       
   374     10, 10, 10, 10, 10, 10, 10, 10,
       
   375     7, 26, 26, 26, 28, 26, 26, 26,
       
   376     22, 23, 26, 27, 26, 21, 26, 26,
       
   377     4, 4, 4, 4, 4, 4, 4, 4,
       
   378     4, 4, 26, 26, 27, 27, 27, 26,
       
   379     26, 15, 15, 15, 15, 15, 15, 15,
       
   380     15, 15, 15, 15, 15, 15, 15, 15,
       
   381     15, 15, 15, 15, 15, 15, 15, 15,
       
   382     15, 15, 15, 22, 26, 23, 29, 20,
       
   383     29, 16, 16, 16, 16, 16, 16, 16,
       
   384     16, 16, 16, 16, 16, 16, 16, 16,
       
   385     16, 16, 16, 16, 16, 16, 16, 16,
       
   386     16, 16, 16, 22, 27, 23, 27, 10,
       
   387     10, 10, 10, 10, 10, 10, 10, 10,
       
   388     10, 10, 10, 10, 10, 10, 10, 10,
       
   389     10, 10, 10, 10, 10, 10, 10, 10,
       
   390     10, 10, 10, 10, 10, 10, 10, 10,
       
   391     7, 26, 28, 28, 28, 28, 30, 30,
       
   392     29, 30, 16, 24, 27, 21, 30, 29,
       
   393     30, 27, 6, 6, 29, 16, 30, 26,
       
   394     29, 6, 16, 25, 6, 6, 6, 26,
       
   395     15, 15, 15, 15, 15, 15, 15, 15,
       
   396     15, 15, 15, 15, 15, 15, 15, 15,
       
   397     15, 15, 15, 15, 15, 15, 15, 27,
       
   398     15, 15, 15, 15, 15, 15, 15, 16,
       
   399     16, 16, 16, 16, 16, 16, 16, 16,
       
   400     16, 16, 16, 16, 16, 16, 16, 16,
       
   401     16, 16, 16, 16, 16, 16, 16, 27,
       
   402     16, 16, 16, 16, 16, 16, 16, 16,
       
   403 };
       
   404 
       
   405 #ifndef QT_NO_UNICODETABLES
       
   406 
       
   407 static const Q_UINT8 ui_01[] = {
       
   408     15, 16, 15, 16, 15, 16, 15, 16,
       
   409     15, 16, 15, 16, 15, 16, 15, 16,
       
   410     15, 16, 15, 16, 15, 16, 15, 16,
       
   411     15, 16, 15, 16, 15, 16, 15, 16,
       
   412     15, 16, 15, 16, 15, 16, 15, 16,
       
   413     15, 16, 15, 16, 15, 16, 15, 16,
       
   414     15, 16, 15, 16, 15, 16, 15, 16,
       
   415     16, 15, 16, 15, 16, 15, 16, 15,
       
   416     16, 15, 16, 15, 16, 15, 16, 15,
       
   417     16, 16, 15, 16, 15, 16, 15, 16,
       
   418     15, 16, 15, 16, 15, 16, 15, 16,
       
   419     15, 16, 15, 16, 15, 16, 15, 16,
       
   420     15, 16, 15, 16, 15, 16, 15, 16,
       
   421     15, 16, 15, 16, 15, 16, 15, 16,
       
   422     15, 16, 15, 16, 15, 16, 15, 16,
       
   423     15, 15, 16, 15, 16, 15, 16, 16,
       
   424     16, 15, 15, 16, 15, 16, 15, 15,
       
   425     16, 15, 15, 15, 16, 16, 15, 15,
       
   426     15, 15, 16, 15, 15, 16, 15, 15,
       
   427     15, 16, 16, 16, 15, 15, 16, 15,
       
   428     15, 16, 15, 16, 15, 16, 15, 15,
       
   429     16, 15, 16, 16, 15, 16, 15, 15,
       
   430     16, 15, 15, 15, 16, 15, 16, 15,
       
   431     15, 16, 16, 19, 15, 16, 16, 16,
       
   432     19, 19, 19, 19, 15, 17, 16, 15,
       
   433     17, 16, 15, 17, 16, 15, 16, 15,
       
   434     16, 15, 16, 15, 16, 15, 16, 15,
       
   435     16, 15, 16, 15, 16, 16, 15, 16,
       
   436     15, 16, 15, 16, 15, 16, 15, 16,
       
   437     15, 16, 15, 16, 15, 16, 15, 16,
       
   438     16, 15, 17, 16, 15, 16, 15, 15,
       
   439     15, 16, 15, 16, 15, 16, 15, 16,
       
   440 };
       
   441 
       
   442 static const Q_UINT8 ui_02[] = {
       
   443     15, 16, 15, 16, 15, 16, 15, 16,
       
   444     15, 16, 15, 16, 15, 16, 15, 16,
       
   445     15, 16, 15, 16, 15, 16, 15, 16,
       
   446     15, 16, 15, 16, 15, 16, 15, 16,
       
   447     0, 0, 15, 16, 15, 16, 15, 16,
       
   448     15, 16, 15, 16, 15, 16, 15, 16,
       
   449     15, 16, 15, 16, 0, 0, 0, 0,
       
   450     0, 0, 0, 0, 0, 0, 0, 0,
       
   451     0, 0, 0, 0, 0, 0, 0, 0,
       
   452     0, 0, 0, 0, 0, 0, 0, 0,
       
   453     16, 16, 16, 16, 16, 16, 16, 16,
       
   454     16, 16, 16, 16, 16, 16, 16, 16,
       
   455     16, 16, 16, 16, 16, 16, 16, 16,
       
   456     16, 16, 16, 16, 16, 16, 16, 16,
       
   457     16, 16, 16, 16, 16, 16, 16, 16,
       
   458     16, 16, 16, 16, 16, 16, 16, 16,
       
   459     16, 16, 16, 16, 16, 16, 16, 16,
       
   460     16, 16, 16, 16, 16, 16, 16, 16,
       
   461     16, 16, 16, 16, 16, 16, 16, 16,
       
   462     16, 16, 16, 16, 16, 16, 16, 16,
       
   463     16, 16, 16, 16, 16, 16, 16, 16,
       
   464     16, 16, 16, 16, 16, 16, 0, 0,
       
   465     18, 18, 18, 18, 18, 18, 18, 18,
       
   466     18, 29, 29, 18, 18, 18, 18, 18,
       
   467     18, 18, 29, 29, 29, 29, 29, 29,
       
   468     29, 29, 29, 29, 29, 29, 29, 29,
       
   469     18, 18, 29, 29, 29, 29, 29, 29,
       
   470     29, 29, 29, 29, 29, 29, 29, 29,
       
   471     18, 18, 18, 18, 18, 29, 29, 29,
       
   472     29, 29, 29, 29, 29, 29, 18, 0,
       
   473     0, 0, 0, 0, 0, 0, 0, 0,
       
   474     0, 0, 0, 0, 0, 0, 0, 0,
       
   475 };
       
   476 
       
   477 static const Q_UINT8 ui_03[] = {
       
   478     1, 1, 1, 1, 1, 1, 1, 1,
       
   479     1, 1, 1, 1, 1, 1, 1, 1,
       
   480     1, 1, 1, 1, 1, 1, 1, 1,
       
   481     1, 1, 1, 1, 1, 1, 1, 1,
       
   482     1, 1, 1, 1, 1, 1, 1, 1,
       
   483     1, 1, 1, 1, 1, 1, 1, 1,
       
   484     1, 1, 1, 1, 1, 1, 1, 1,
       
   485     1, 1, 1, 1, 1, 1, 1, 1,
       
   486     1, 1, 1, 1, 1, 1, 1, 1,
       
   487     1, 1, 1, 1, 1, 1, 1, 0,
       
   488     0, 0, 0, 0, 0, 0, 0, 0,
       
   489     0, 0, 0, 0, 0, 0, 0, 0,
       
   490     1, 1, 1, 0, 0, 0, 0, 0,
       
   491     0, 0, 0, 0, 0, 0, 0, 0,
       
   492     0, 0, 0, 0, 29, 29, 0, 0,
       
   493     0, 0, 18, 0, 0, 0, 26, 0,
       
   494     0, 0, 0, 0, 29, 29, 15, 26,
       
   495     15, 15, 15, 0, 15, 0, 15, 15,
       
   496     16, 15, 15, 15, 15, 15, 15, 15,
       
   497     15, 15, 15, 15, 15, 15, 15, 15,
       
   498     15, 15, 0, 15, 15, 15, 15, 15,
       
   499     15, 15, 15, 15, 16, 16, 16, 16,
       
   500     16, 16, 16, 16, 16, 16, 16, 16,
       
   501     16, 16, 16, 16, 16, 16, 16, 16,
       
   502     16, 16, 16, 16, 16, 16, 16, 16,
       
   503     16, 16, 16, 16, 16, 16, 16, 0,
       
   504     16, 16, 15, 15, 15, 16, 16, 16,
       
   505     0, 0, 15, 16, 15, 16, 15, 16,
       
   506     15, 16, 15, 16, 15, 16, 15, 16,
       
   507     15, 16, 15, 16, 15, 16, 15, 16,
       
   508     16, 16, 16, 16, 0, 0, 0, 0,
       
   509     0, 0, 0, 0, 0, 0, 0, 0,
       
   510 };
       
   511 
       
   512 static const Q_UINT8 ui_04[] = {
       
   513     15, 15, 15, 15, 15, 15, 15, 15,
       
   514     15, 15, 15, 15, 15, 15, 15, 15,
       
   515     15, 15, 15, 15, 15, 15, 15, 15,
       
   516     15, 15, 15, 15, 15, 15, 15, 15,
       
   517     15, 15, 15, 15, 15, 15, 15, 15,
       
   518     15, 15, 15, 15, 15, 15, 15, 15,
       
   519     16, 16, 16, 16, 16, 16, 16, 16,
       
   520     16, 16, 16, 16, 16, 16, 16, 16,
       
   521     16, 16, 16, 16, 16, 16, 16, 16,
       
   522     16, 16, 16, 16, 16, 16, 16, 16,
       
   523     16, 16, 16, 16, 16, 16, 16, 16,
       
   524     16, 16, 16, 16, 16, 16, 16, 16,
       
   525     15, 16, 15, 16, 15, 16, 15, 16,
       
   526     15, 16, 15, 16, 15, 16, 15, 16,
       
   527     15, 16, 15, 16, 15, 16, 15, 16,
       
   528     15, 16, 15, 16, 15, 16, 15, 16,
       
   529     15, 16, 30, 1, 1, 1, 1, 0,
       
   530     3, 3, 0, 0, 15, 16, 15, 16,
       
   531     15, 16, 15, 16, 15, 16, 15, 16,
       
   532     15, 16, 15, 16, 15, 16, 15, 16,
       
   533     15, 16, 15, 16, 15, 16, 15, 16,
       
   534     15, 16, 15, 16, 15, 16, 15, 16,
       
   535     15, 16, 15, 16, 15, 16, 15, 16,
       
   536     15, 16, 15, 16, 15, 16, 15, 16,
       
   537     15, 15, 16, 15, 16, 0, 0, 15,
       
   538     16, 0, 0, 15, 16, 0, 0, 0,
       
   539     15, 16, 15, 16, 15, 16, 15, 16,
       
   540     15, 16, 15, 16, 15, 16, 15, 16,
       
   541     15, 16, 15, 16, 15, 16, 15, 16,
       
   542     15, 16, 15, 16, 15, 16, 15, 16,
       
   543     15, 16, 15, 16, 15, 16, 0, 0,
       
   544     15, 16, 0, 0, 0, 0, 0, 0,
       
   545 };
       
   546 
       
   547 static const Q_UINT8 ui_05[] = {
       
   548     0, 0, 0, 0, 0, 0, 0, 0,
       
   549     0, 0, 0, 0, 0, 0, 0, 0,
       
   550     0, 0, 0, 0, 0, 0, 0, 0,
       
   551     0, 0, 0, 0, 0, 0, 0, 0,
       
   552     0, 0, 0, 0, 0, 0, 0, 0,
       
   553     0, 0, 0, 0, 0, 0, 0, 0,
       
   554     0, 15, 15, 15, 15, 15, 15, 15,
       
   555     15, 15, 15, 15, 15, 15, 15, 15,
       
   556     15, 15, 15, 15, 15, 15, 15, 15,
       
   557     15, 15, 15, 15, 15, 15, 15, 15,
       
   558     15, 15, 15, 15, 15, 15, 15, 0,
       
   559     0, 18, 26, 26, 26, 26, 26, 26,
       
   560     0, 16, 16, 16, 16, 16, 16, 16,
       
   561     16, 16, 16, 16, 16, 16, 16, 16,
       
   562     16, 16, 16, 16, 16, 16, 16, 16,
       
   563     16, 16, 16, 16, 16, 16, 16, 16,
       
   564     16, 16, 16, 16, 16, 16, 16, 16,
       
   565     0, 26, 21, 0, 0, 0, 0, 0,
       
   566     0, 1, 1, 1, 1, 1, 1, 1,
       
   567     1, 1, 1, 1, 1, 1, 1, 1,
       
   568     1, 1, 0, 1, 1, 1, 1, 1,
       
   569     1, 1, 1, 1, 1, 1, 1, 1,
       
   570     1, 1, 1, 1, 1, 1, 1, 1,
       
   571     1, 1, 0, 1, 1, 1, 26, 1,
       
   572     26, 1, 1, 26, 1, 0, 0, 0,
       
   573     0, 0, 0, 0, 0, 0, 0, 0,
       
   574     19, 19, 19, 19, 19, 19, 19, 19,
       
   575     19, 19, 19, 19, 19, 19, 19, 19,
       
   576     19, 19, 19, 19, 19, 19, 19, 19,
       
   577     19, 19, 19, 0, 0, 0, 0, 0,
       
   578     19, 19, 19, 26, 26, 0, 0, 0,
       
   579     0, 0, 0, 0, 0, 0, 0, 0,
       
   580 };
       
   581 
       
   582 static const Q_UINT8 ui_06[] = {
       
   583     0, 0, 0, 0, 0, 0, 0, 0,
       
   584     0, 0, 0, 0, 26, 0, 0, 0,
       
   585     0, 0, 0, 0, 0, 0, 0, 0,
       
   586     0, 0, 0, 26, 0, 0, 0, 26,
       
   587     0, 19, 19, 19, 19, 19, 19, 19,
       
   588     19, 19, 19, 19, 19, 19, 19, 19,
       
   589     19, 19, 19, 19, 19, 19, 19, 19,
       
   590     19, 19, 19, 0, 0, 0, 0, 0,
       
   591     18, 19, 19, 19, 19, 19, 19, 19,
       
   592     19, 19, 19, 1, 1, 1, 1, 1,
       
   593     1, 1, 1, 1, 1, 1, 0, 0,
       
   594     0, 0, 0, 0, 0, 0, 0, 0,
       
   595     4, 4, 4, 4, 4, 4, 4, 4,
       
   596     4, 4, 26, 26, 26, 26, 0, 0,
       
   597     1, 19, 19, 19, 19, 19, 19, 19,
       
   598     19, 19, 19, 19, 19, 19, 19, 19,
       
   599     19, 19, 19, 19, 19, 19, 19, 19,
       
   600     19, 19, 19, 19, 19, 19, 19, 19,
       
   601     19, 19, 19, 19, 19, 19, 19, 19,
       
   602     19, 19, 19, 19, 19, 19, 19, 19,
       
   603     19, 19, 19, 19, 19, 19, 19, 19,
       
   604     19, 19, 19, 19, 19, 19, 19, 19,
       
   605     19, 19, 19, 19, 19, 19, 19, 19,
       
   606     19, 19, 19, 19, 19, 19, 19, 19,
       
   607     19, 19, 19, 19, 19, 19, 19, 19,
       
   608     19, 19, 19, 19, 19, 19, 19, 19,
       
   609     19, 19, 19, 19, 26, 19, 1, 1,
       
   610     1, 1, 1, 1, 1, 3, 3, 1,
       
   611     1, 1, 1, 1, 1, 18, 18, 1,
       
   612     1, 30, 1, 1, 1, 1, 0, 0,
       
   613     4, 4, 4, 4, 4, 4, 4, 4,
       
   614     4, 4, 19, 19, 19, 30, 30, 0,
       
   615 };
       
   616 
       
   617 static const Q_UINT8 ui_07[] = {
       
   618     26, 26, 26, 26, 26, 26, 26, 26,
       
   619     26, 26, 26, 26, 26, 26, 0, 11,
       
   620     19, 1, 19, 19, 19, 19, 19, 19,
       
   621     19, 19, 19, 19, 19, 19, 19, 19,
       
   622     19, 19, 19, 19, 19, 19, 19, 19,
       
   623     19, 19, 19, 19, 19, 0, 0, 0,
       
   624     1, 1, 1, 1, 1, 1, 1, 1,
       
   625     1, 1, 1, 1, 1, 1, 1, 1,
       
   626     1, 1, 1, 1, 1, 1, 1, 1,
       
   627     1, 1, 1, 0, 0, 0, 0, 0,
       
   628     0, 0, 0, 0, 0, 0, 0, 0,
       
   629     0, 0, 0, 0, 0, 0, 0, 0,
       
   630     0, 0, 0, 0, 0, 0, 0, 0,
       
   631     0, 0, 0, 0, 0, 0, 0, 0,
       
   632     0, 0, 0, 0, 0, 0, 0, 0,
       
   633     0, 0, 0, 0, 0, 0, 0, 0,
       
   634     19, 19, 19, 19, 19, 19, 19, 19,
       
   635     19, 19, 19, 19, 19, 19, 19, 19,
       
   636     19, 19, 19, 19, 19, 19, 19, 19,
       
   637     19, 19, 19, 19, 19, 19, 19, 19,
       
   638     19, 19, 19, 19, 19, 19, 1, 1,
       
   639     1, 1, 1, 1, 1, 1, 1, 1,
       
   640     1, 0, 0, 0, 0, 0, 0, 0,
       
   641     0, 0, 0, 0, 0, 0, 0, 0,
       
   642     0, 0, 0, 0, 0, 0, 0, 0,
       
   643     0, 0, 0, 0, 0, 0, 0, 0,
       
   644     0, 0, 0, 0, 0, 0, 0, 0,
       
   645     0, 0, 0, 0, 0, 0, 0, 0,
       
   646     0, 0, 0, 0, 0, 0, 0, 0,
       
   647     0, 0, 0, 0, 0, 0, 0, 0,
       
   648     0, 0, 0, 0, 0, 0, 0, 0,
       
   649     0, 0, 0, 0, 0, 0, 0, 0,
       
   650 };
       
   651 
       
   652 static const Q_UINT8 ui_08[] = {
       
   653     0, 0, 0, 0, 0, 0, 0, 0,
       
   654     0, 0, 0, 0, 0, 0, 0, 0,
       
   655     0, 0, 0, 0, 0, 0, 0, 0,
       
   656     0, 0, 0, 0, 0, 0, 0, 0,
       
   657     0, 0, 0, 0, 0, 0, 0, 0,
       
   658     0, 0, 0, 0, 0, 0, 0, 0,
       
   659     0, 0, 0, 0, 0, 0, 0, 0,
       
   660     0, 0, 0, 0, 0, 0, 0, 0,
       
   661     0, 0, 0, 0, 0, 0, 0, 0,
       
   662     0, 0, 0, 0, 0, 0, 0, 0,
       
   663     0, 0, 0, 0, 0, 0, 0, 0,
       
   664     0, 0, 0, 0, 0, 0, 0, 0,
       
   665     0, 0, 0, 0, 0, 0, 0, 0,
       
   666     0, 0, 0, 0, 0, 0, 0, 0,
       
   667     0, 0, 0, 0, 0, 0, 0, 0,
       
   668     0, 0, 0, 0, 0, 0, 0, 0,
       
   669     0, 0, 0, 0, 0, 0, 0, 0,
       
   670     0, 0, 0, 0, 0, 0, 0, 0,
       
   671     0, 0, 0, 0, 0, 0, 0, 0,
       
   672     0, 0, 0, 0, 0, 0, 0, 0,
       
   673     0, 0, 0, 0, 0, 0, 0, 0,
       
   674     0, 0, 0, 0, 0, 0, 0, 0,
       
   675     0, 0, 0, 0, 0, 0, 0, 0,
       
   676     0, 0, 0, 0, 0, 0, 0, 0,
       
   677     0, 0, 0, 0, 0, 0, 0, 0,
       
   678     0, 0, 0, 0, 0, 0, 0, 0,
       
   679     0, 0, 0, 0, 0, 0, 0, 0,
       
   680     0, 0, 0, 0, 0, 0, 0, 0,
       
   681     0, 0, 0, 0, 0, 0, 0, 0,
       
   682     0, 0, 0, 0, 0, 0, 0, 0,
       
   683     0, 0, 0, 0, 0, 0, 0, 0,
       
   684     0, 0, 0, 0, 0, 0, 0, 0,
       
   685 };
       
   686 
       
   687 static const Q_UINT8 ui_09[] = {
       
   688     0, 1, 1, 2, 0, 19, 19, 19,
       
   689     19, 19, 19, 19, 19, 19, 19, 19,
       
   690     19, 19, 19, 19, 19, 19, 19, 19,
       
   691     19, 19, 19, 19, 19, 19, 19, 19,
       
   692     19, 19, 19, 19, 19, 19, 19, 19,
       
   693     19, 19, 19, 19, 19, 19, 19, 19,
       
   694     19, 19, 19, 19, 19, 19, 19, 19,
       
   695     19, 19, 0, 0, 1, 19, 2, 2,
       
   696     2, 1, 1, 1, 1, 1, 1, 1,
       
   697     1, 2, 2, 2, 2, 1, 0, 0,
       
   698     19, 1, 1, 1, 1, 0, 0, 0,
       
   699     19, 19, 19, 19, 19, 19, 19, 19,
       
   700     19, 19, 1, 1, 26, 26, 4, 4,
       
   701     4, 4, 4, 4, 4, 4, 4, 4,
       
   702     26, 0, 0, 0, 0, 0, 0, 0,
       
   703     0, 0, 0, 0, 0, 0, 0, 0,
       
   704     0, 1, 2, 2, 0, 19, 19, 19,
       
   705     19, 19, 19, 19, 19, 0, 0, 19,
       
   706     19, 0, 0, 19, 19, 19, 19, 19,
       
   707     19, 19, 19, 19, 19, 19, 19, 19,
       
   708     19, 19, 19, 19, 19, 19, 19, 19,
       
   709     19, 0, 19, 19, 19, 19, 19, 19,
       
   710     19, 0, 19, 0, 0, 0, 19, 19,
       
   711     19, 19, 0, 0, 1, 0, 2, 2,
       
   712     2, 1, 1, 1, 1, 0, 0, 2,
       
   713     2, 0, 0, 2, 2, 1, 0, 0,
       
   714     0, 0, 0, 0, 0, 0, 0, 2,
       
   715     0, 0, 0, 0, 19, 19, 0, 19,
       
   716     19, 19, 1, 1, 0, 0, 4, 4,
       
   717     4, 4, 4, 4, 4, 4, 4, 4,
       
   718     19, 19, 28, 28, 6, 6, 6, 6,
       
   719     6, 6, 30, 0, 0, 0, 0, 0,
       
   720 };
       
   721 
       
   722 static const Q_UINT8 ui_0A[] = {
       
   723     0, 0, 1, 0, 0, 19, 19, 19,
       
   724     19, 19, 19, 0, 0, 0, 0, 19,
       
   725     19, 0, 0, 19, 19, 19, 19, 19,
       
   726     19, 19, 19, 19, 19, 19, 19, 19,
       
   727     19, 19, 19, 19, 19, 19, 19, 19,
       
   728     19, 0, 19, 19, 19, 19, 19, 19,
       
   729     19, 0, 19, 19, 0, 19, 19, 0,
       
   730     19, 19, 0, 0, 1, 0, 2, 2,
       
   731     2, 1, 1, 0, 0, 0, 0, 1,
       
   732     1, 0, 0, 1, 1, 1, 0, 0,
       
   733     0, 0, 0, 0, 0, 0, 0, 0,
       
   734     0, 19, 19, 19, 19, 0, 19, 0,
       
   735     0, 0, 0, 0, 0, 0, 4, 4,
       
   736     4, 4, 4, 4, 4, 4, 4, 4,
       
   737     1, 1, 19, 19, 19, 0, 0, 0,
       
   738     0, 0, 0, 0, 0, 0, 0, 0,
       
   739     0, 1, 1, 2, 0, 19, 19, 19,
       
   740     19, 19, 19, 19, 0, 19, 0, 19,
       
   741     19, 19, 0, 19, 19, 19, 19, 19,
       
   742     19, 19, 19, 19, 19, 19, 19, 19,
       
   743     19, 19, 19, 19, 19, 19, 19, 19,
       
   744     19, 0, 19, 19, 19, 19, 19, 19,
       
   745     19, 0, 19, 19, 0, 19, 19, 19,
       
   746     19, 19, 0, 0, 1, 19, 2, 2,
       
   747     2, 1, 1, 1, 1, 1, 0, 1,
       
   748     1, 2, 0, 2, 2, 1, 0, 0,
       
   749     19, 0, 0, 0, 0, 0, 0, 0,
       
   750     0, 0, 0, 0, 0, 0, 0, 0,
       
   751     19, 0, 0, 0, 0, 0, 4, 4,
       
   752     4, 4, 4, 4, 4, 4, 4, 4,
       
   753     0, 0, 0, 0, 0, 0, 0, 0,
       
   754     0, 0, 0, 0, 0, 0, 0, 0,
       
   755 };
       
   756 
       
   757 static const Q_UINT8 ui_0B[] = {
       
   758     0, 1, 2, 2, 0, 19, 19, 19,
       
   759     19, 19, 19, 19, 19, 0, 0, 19,
       
   760     19, 0, 0, 19, 19, 19, 19, 19,
       
   761     19, 19, 19, 19, 19, 19, 19, 19,
       
   762     19, 19, 19, 19, 19, 19, 19, 19,
       
   763     19, 0, 19, 19, 19, 19, 19, 19,
       
   764     19, 0, 19, 19, 0, 0, 19, 19,
       
   765     19, 19, 0, 0, 1, 19, 2, 1,
       
   766     2, 1, 1, 1, 0, 0, 0, 2,
       
   767     2, 0, 0, 2, 2, 1, 0, 0,
       
   768     0, 0, 0, 0, 0, 0, 1, 2,
       
   769     0, 0, 0, 0, 19, 19, 0, 19,
       
   770     19, 19, 0, 0, 0, 0, 4, 4,
       
   771     4, 4, 4, 4, 4, 4, 4, 4,
       
   772     30, 0, 0, 0, 0, 0, 0, 0,
       
   773     0, 0, 0, 0, 0, 0, 0, 0,
       
   774     0, 0, 1, 2, 0, 19, 19, 19,
       
   775     19, 19, 19, 0, 0, 0, 19, 19,
       
   776     19, 0, 19, 19, 19, 19, 0, 0,
       
   777     0, 19, 19, 0, 19, 0, 19, 19,
       
   778     0, 0, 0, 19, 19, 0, 0, 0,
       
   779     19, 19, 19, 0, 0, 0, 19, 19,
       
   780     19, 19, 19, 19, 19, 19, 0, 19,
       
   781     19, 19, 0, 0, 0, 0, 2, 2,
       
   782     1, 2, 2, 0, 0, 0, 2, 2,
       
   783     2, 0, 2, 2, 2, 1, 0, 0,
       
   784     0, 0, 0, 0, 0, 0, 0, 2,
       
   785     0, 0, 0, 0, 0, 0, 0, 0,
       
   786     0, 0, 0, 0, 0, 0, 0, 4,
       
   787     4, 4, 4, 4, 4, 4, 4, 4,
       
   788     6, 6, 6, 0, 0, 0, 0, 0,
       
   789     0, 0, 0, 0, 0, 0, 0, 0,
       
   790 };
       
   791 
       
   792 static const Q_UINT8 ui_0C[] = {
       
   793     0, 2, 2, 2, 0, 19, 19, 19,
       
   794     19, 19, 19, 19, 19, 0, 19, 19,
       
   795     19, 0, 19, 19, 19, 19, 19, 19,
       
   796     19, 19, 19, 19, 19, 19, 19, 19,
       
   797     19, 19, 19, 19, 19, 19, 19, 19,
       
   798     19, 0, 19, 19, 19, 19, 19, 19,
       
   799     19, 19, 19, 19, 0, 19, 19, 19,
       
   800     19, 19, 0, 0, 0, 0, 1, 1,
       
   801     1, 2, 2, 2, 2, 0, 1, 1,
       
   802     1, 0, 1, 1, 1, 1, 0, 0,
       
   803     0, 0, 0, 0, 0, 1, 1, 0,
       
   804     0, 0, 0, 0, 0, 0, 0, 0,
       
   805     19, 19, 0, 0, 0, 0, 4, 4,
       
   806     4, 4, 4, 4, 4, 4, 4, 4,
       
   807     0, 0, 0, 0, 0, 0, 0, 0,
       
   808     0, 0, 0, 0, 0, 0, 0, 0,
       
   809     0, 0, 2, 2, 0, 19, 19, 19,
       
   810     19, 19, 19, 19, 19, 0, 19, 19,
       
   811     19, 0, 19, 19, 19, 19, 19, 19,
       
   812     19, 19, 19, 19, 19, 19, 19, 19,
       
   813     19, 19, 19, 19, 19, 19, 19, 19,
       
   814     19, 0, 19, 19, 19, 19, 19, 19,
       
   815     19, 19, 19, 19, 0, 19, 19, 19,
       
   816     19, 19, 0, 0, 0, 0, 2, 1,
       
   817     2, 2, 2, 2, 2, 0, 1, 2,
       
   818     2, 0, 2, 2, 1, 1, 0, 0,
       
   819     0, 0, 0, 0, 0, 2, 2, 0,
       
   820     0, 0, 0, 0, 0, 0, 19, 0,
       
   821     19, 19, 0, 0, 0, 0, 4, 4,
       
   822     4, 4, 4, 4, 4, 4, 4, 4,
       
   823     0, 0, 0, 0, 0, 0, 0, 0,
       
   824     0, 0, 0, 0, 0, 0, 0, 0,
       
   825 };
       
   826 
       
   827 static const Q_UINT8 ui_0D[] = {
       
   828     0, 0, 2, 2, 0, 19, 19, 19,
       
   829     19, 19, 19, 19, 19, 0, 19, 19,
       
   830     19, 0, 19, 19, 19, 19, 19, 19,
       
   831     19, 19, 19, 19, 19, 19, 19, 19,
       
   832     19, 19, 19, 19, 19, 19, 19, 19,
       
   833     19, 0, 19, 19, 19, 19, 19, 19,
       
   834     19, 19, 19, 19, 19, 19, 19, 19,
       
   835     19, 19, 0, 0, 0, 0, 2, 2,
       
   836     2, 1, 1, 1, 0, 0, 2, 2,
       
   837     2, 0, 2, 2, 2, 1, 0, 0,
       
   838     0, 0, 0, 0, 0, 0, 0, 2,
       
   839     0, 0, 0, 0, 0, 0, 0, 0,
       
   840     19, 19, 0, 0, 0, 0, 4, 4,
       
   841     4, 4, 4, 4, 4, 4, 4, 4,
       
   842     0, 0, 0, 0, 0, 0, 0, 0,
       
   843     0, 0, 0, 0, 0, 0, 0, 0,
       
   844     0, 0, 2, 2, 0, 19, 19, 19,
       
   845     19, 19, 19, 19, 19, 19, 19, 19,
       
   846     19, 19, 19, 19, 19, 19, 19, 0,
       
   847     0, 0, 19, 19, 19, 19, 19, 19,
       
   848     19, 19, 19, 19, 19, 19, 19, 19,
       
   849     19, 19, 19, 19, 19, 19, 19, 19,
       
   850     19, 19, 0, 19, 19, 19, 19, 19,
       
   851     19, 19, 19, 19, 0, 19, 0, 0,
       
   852     19, 19, 19, 19, 19, 19, 19, 0,
       
   853     0, 0, 1, 0, 0, 0, 0, 2,
       
   854     2, 2, 1, 1, 1, 0, 1, 0,
       
   855     2, 2, 2, 2, 2, 2, 2, 2,
       
   856     0, 0, 0, 0, 0, 0, 0, 0,
       
   857     0, 0, 0, 0, 0, 0, 0, 0,
       
   858     0, 0, 2, 2, 26, 0, 0, 0,
       
   859     0, 0, 0, 0, 0, 0, 0, 0,
       
   860 };
       
   861 
       
   862 static const Q_UINT8 ui_0E[] = {
       
   863     0, 19, 19, 19, 19, 19, 19, 19,
       
   864     19, 19, 19, 19, 19, 19, 19, 19,
       
   865     19, 19, 19, 19, 19, 19, 19, 19,
       
   866     19, 19, 19, 19, 19, 19, 19, 19,
       
   867     19, 19, 19, 19, 19, 19, 19, 19,
       
   868     19, 19, 19, 19, 19, 19, 19, 19,
       
   869     19, 1, 19, 19, 1, 1, 1, 1,
       
   870     1, 1, 1, 0, 0, 0, 0, 28,
       
   871     19, 19, 19, 19, 19, 19, 18, 1,
       
   872     1, 1, 1, 1, 1, 1, 1, 26,
       
   873     4, 4, 4, 4, 4, 4, 4, 4,
       
   874     4, 4, 26, 26, 0, 0, 0, 0,
       
   875     0, 0, 0, 0, 0, 0, 0, 0,
       
   876     0, 0, 0, 0, 0, 0, 0, 0,
       
   877     0, 0, 0, 0, 0, 0, 0, 0,
       
   878     0, 0, 0, 0, 0, 0, 0, 0,
       
   879     0, 19, 19, 0, 19, 0, 0, 19,
       
   880     19, 0, 19, 0, 0, 19, 0, 0,
       
   881     0, 0, 0, 0, 19, 19, 19, 19,
       
   882     0, 19, 19, 19, 19, 19, 19, 19,
       
   883     0, 19, 19, 19, 0, 19, 0, 19,
       
   884     0, 0, 19, 19, 0, 19, 19, 19,
       
   885     19, 1, 19, 19, 1, 1, 1, 1,
       
   886     1, 1, 0, 1, 1, 19, 0, 0,
       
   887     19, 19, 19, 19, 19, 0, 18, 0,
       
   888     1, 1, 1, 1, 1, 1, 0, 0,
       
   889     4, 4, 4, 4, 4, 4, 4, 4,
       
   890     4, 4, 0, 0, 19, 19, 0, 0,
       
   891     0, 0, 0, 0, 0, 0, 0, 0,
       
   892     0, 0, 0, 0, 0, 0, 0, 0,
       
   893     0, 0, 0, 0, 0, 0, 0, 0,
       
   894     0, 0, 0, 0, 0, 0, 0, 0,
       
   895 };
       
   896 
       
   897 static const Q_UINT8 ui_0F[] = {
       
   898     19, 30, 30, 30, 26, 26, 26, 26,
       
   899     26, 26, 26, 26, 26, 26, 26, 26,
       
   900     26, 26, 26, 30, 30, 30, 30, 30,
       
   901     1, 1, 30, 30, 30, 30, 30, 30,
       
   902     4, 4, 4, 4, 4, 4, 4, 4,
       
   903     4, 4, 6, 6, 6, 6, 6, 6,
       
   904     6, 6, 6, 6, 30, 1, 30, 1,
       
   905     30, 1, 22, 23, 22, 23, 2, 2,
       
   906     19, 19, 19, 19, 19, 19, 19, 19,
       
   907     0, 19, 19, 19, 19, 19, 19, 19,
       
   908     19, 19, 19, 19, 19, 19, 19, 19,
       
   909     19, 19, 19, 19, 19, 19, 19, 19,
       
   910     19, 19, 19, 19, 19, 19, 19, 19,
       
   911     19, 19, 19, 0, 0, 0, 0, 0,
       
   912     0, 1, 1, 1, 1, 1, 1, 1,
       
   913     1, 1, 1, 1, 1, 1, 1, 2,
       
   914     1, 1, 1, 1, 1, 26, 1, 1,
       
   915     19, 19, 19, 19, 0, 0, 0, 0,
       
   916     1, 1, 1, 1, 1, 1, 1, 1,
       
   917     0, 1, 1, 1, 1, 1, 1, 1,
       
   918     1, 1, 1, 1, 1, 1, 1, 1,
       
   919     1, 1, 1, 1, 1, 1, 1, 1,
       
   920     1, 1, 1, 1, 1, 1, 1, 1,
       
   921     1, 1, 1, 1, 1, 0, 30, 30,
       
   922     30, 30, 30, 30, 30, 30, 1, 30,
       
   923     30, 30, 30, 30, 30, 0, 0, 30,
       
   924     0, 0, 0, 0, 0, 0, 0, 0,
       
   925     0, 0, 0, 0, 0, 0, 0, 0,
       
   926     0, 0, 0, 0, 0, 0, 0, 0,
       
   927     0, 0, 0, 0, 0, 0, 0, 0,
       
   928     0, 0, 0, 0, 0, 0, 0, 0,
       
   929     0, 0, 0, 0, 0, 0, 0, 0,
       
   930 };
       
   931 
       
   932 static const Q_UINT8 ui_10[] = {
       
   933     19, 19, 19, 19, 19, 19, 19, 19,
       
   934     19, 19, 19, 19, 19, 19, 19, 19,
       
   935     19, 19, 19, 19, 19, 19, 19, 19,
       
   936     19, 19, 19, 19, 19, 19, 19, 19,
       
   937     19, 19, 0, 19, 19, 19, 19, 19,
       
   938     0, 19, 19, 0, 2, 1, 1, 1,
       
   939     1, 2, 1, 0, 0, 0, 1, 1,
       
   940     2, 1, 0, 0, 0, 0, 0, 0,
       
   941     4, 4, 4, 4, 4, 4, 4, 4,
       
   942     4, 4, 26, 26, 26, 26, 26, 26,
       
   943     19, 19, 19, 19, 19, 19, 2, 2,
       
   944     1, 1, 0, 0, 0, 0, 0, 0,
       
   945     0, 0, 0, 0, 0, 0, 0, 0,
       
   946     0, 0, 0, 0, 0, 0, 0, 0,
       
   947     0, 0, 0, 0, 0, 0, 0, 0,
       
   948     0, 0, 0, 0, 0, 0, 0, 0,
       
   949     0, 0, 0, 0, 0, 0, 0, 0,
       
   950     0, 0, 0, 0, 0, 0, 0, 0,
       
   951     0, 0, 0, 0, 0, 0, 0, 0,
       
   952     0, 0, 0, 0, 0, 0, 0, 0,
       
   953     15, 15, 15, 15, 15, 15, 15, 15,
       
   954     15, 15, 15, 15, 15, 15, 15, 15,
       
   955     15, 15, 15, 15, 15, 15, 15, 15,
       
   956     15, 15, 15, 15, 15, 15, 15, 15,
       
   957     15, 15, 15, 15, 15, 15, 0, 0,
       
   958     0, 0, 0, 0, 0, 0, 0, 0,
       
   959     19, 19, 19, 19, 19, 19, 19, 19,
       
   960     19, 19, 19, 19, 19, 19, 19, 19,
       
   961     19, 19, 19, 19, 19, 19, 19, 19,
       
   962     19, 19, 19, 19, 19, 19, 19, 19,
       
   963     19, 19, 19, 19, 19, 19, 19, 0,
       
   964     0, 0, 0, 26, 0, 0, 0, 0,
       
   965 };
       
   966 
       
   967 static const Q_UINT8 ui_11[] = {
       
   968     19, 19, 19, 19, 19, 19, 19, 19,
       
   969     19, 19, 19, 19, 19, 19, 19, 19,
       
   970     19, 19, 19, 19, 19, 19, 19, 19,
       
   971     19, 19, 19, 19, 19, 19, 19, 19,
       
   972     19, 19, 19, 19, 19, 19, 19, 19,
       
   973     19, 19, 19, 19, 19, 19, 19, 19,
       
   974     19, 19, 19, 19, 19, 19, 19, 19,
       
   975     19, 19, 19, 19, 19, 19, 19, 19,
       
   976     19, 19, 19, 19, 19, 19, 19, 19,
       
   977     19, 19, 19, 19, 19, 19, 19, 19,
       
   978     19, 19, 19, 19, 19, 19, 19, 19,
       
   979     19, 19, 0, 0, 0, 0, 0, 19,
       
   980     19, 19, 19, 19, 19, 19, 19, 19,
       
   981     19, 19, 19, 19, 19, 19, 19, 19,
       
   982     19, 19, 19, 19, 19, 19, 19, 19,
       
   983     19, 19, 19, 19, 19, 19, 19, 19,
       
   984     19, 19, 19, 19, 19, 19, 19, 19,
       
   985     19, 19, 19, 19, 19, 19, 19, 19,
       
   986     19, 19, 19, 19, 19, 19, 19, 19,
       
   987     19, 19, 19, 19, 19, 19, 19, 19,
       
   988     19, 19, 19, 0, 0, 0, 0, 0,
       
   989     19, 19, 19, 19, 19, 19, 19, 19,
       
   990     19, 19, 19, 19, 19, 19, 19, 19,
       
   991     19, 19, 19, 19, 19, 19, 19, 19,
       
   992     19, 19, 19, 19, 19, 19, 19, 19,
       
   993     19, 19, 19, 19, 19, 19, 19, 19,
       
   994     19, 19, 19, 19, 19, 19, 19, 19,
       
   995     19, 19, 19, 19, 19, 19, 19, 19,
       
   996     19, 19, 19, 19, 19, 19, 19, 19,
       
   997     19, 19, 19, 19, 19, 19, 19, 19,
       
   998     19, 19, 19, 19, 19, 19, 19, 19,
       
   999     19, 19, 0, 0, 0, 0, 0, 0,
       
  1000 };
       
  1001 
       
  1002 static const Q_UINT8 ui_12[] = {
       
  1003     19, 19, 19, 19, 19, 19, 19, 0,
       
  1004     19, 19, 19, 19, 19, 19, 19, 19,
       
  1005     19, 19, 19, 19, 19, 19, 19, 19,
       
  1006     19, 19, 19, 19, 19, 19, 19, 19,
       
  1007     19, 19, 19, 19, 19, 19, 19, 19,
       
  1008     19, 19, 19, 19, 19, 19, 19, 19,
       
  1009     19, 19, 19, 19, 19, 19, 19, 19,
       
  1010     19, 19, 19, 19, 19, 19, 19, 19,
       
  1011     19, 19, 19, 19, 19, 19, 19, 0,
       
  1012     19, 0, 19, 19, 19, 19, 0, 0,
       
  1013     19, 19, 19, 19, 19, 19, 19, 0,
       
  1014     19, 0, 19, 19, 19, 19, 0, 0,
       
  1015     19, 19, 19, 19, 19, 19, 19, 19,
       
  1016     19, 19, 19, 19, 19, 19, 19, 19,
       
  1017     19, 19, 19, 19, 19, 19, 19, 19,
       
  1018     19, 19, 19, 19, 19, 19, 19, 19,
       
  1019     19, 19, 19, 19, 19, 19, 19, 0,
       
  1020     19, 0, 19, 19, 19, 19, 0, 0,
       
  1021     19, 19, 19, 19, 19, 19, 19, 19,
       
  1022     19, 19, 19, 19, 19, 19, 19, 19,
       
  1023     19, 19, 19, 19, 19, 19, 19, 19,
       
  1024     19, 19, 19, 19, 19, 19, 19, 0,
       
  1025     19, 0, 19, 19, 19, 19, 0, 0,
       
  1026     19, 19, 19, 19, 19, 19, 19, 0,
       
  1027     19, 0, 19, 19, 19, 19, 0, 0,
       
  1028     19, 19, 19, 19, 19, 19, 19, 0,
       
  1029     19, 19, 19, 19, 19, 19, 19, 0,
       
  1030     19, 19, 19, 19, 19, 19, 19, 19,
       
  1031     19, 19, 19, 19, 19, 19, 19, 19,
       
  1032     19, 19, 19, 19, 19, 19, 19, 0,
       
  1033     19, 19, 19, 19, 19, 19, 19, 19,
       
  1034     19, 19, 19, 19, 19, 19, 19, 19,
       
  1035 };
       
  1036 
       
  1037 static const Q_UINT8 ui_13[] = {
       
  1038     19, 19, 19, 19, 19, 19, 19, 19,
       
  1039     19, 19, 19, 19, 19, 19, 19, 0,
       
  1040     19, 0, 19, 19, 19, 19, 0, 0,
       
  1041     19, 19, 19, 19, 19, 19, 19, 0,
       
  1042     19, 19, 19, 19, 19, 19, 19, 19,
       
  1043     19, 19, 19, 19, 19, 19, 19, 19,
       
  1044     19, 19, 19, 19, 19, 19, 19, 19,
       
  1045     19, 19, 19, 19, 19, 19, 19, 19,
       
  1046     19, 19, 19, 19, 19, 19, 19, 0,
       
  1047     19, 19, 19, 19, 19, 19, 19, 19,
       
  1048     19, 19, 19, 19, 19, 19, 19, 19,
       
  1049     19, 19, 19, 0, 0, 0, 0, 0,
       
  1050     0, 26, 26, 26, 26, 26, 26, 26,
       
  1051     26, 4, 4, 4, 4, 4, 4, 4,
       
  1052     4, 4, 6, 6, 6, 6, 6, 6,
       
  1053     6, 6, 6, 6, 6, 0, 0, 0,
       
  1054     0, 0, 0, 0, 0, 0, 0, 0,
       
  1055     0, 0, 0, 0, 0, 0, 0, 0,
       
  1056     0, 0, 0, 0, 0, 0, 0, 0,
       
  1057     0, 0, 0, 0, 0, 0, 0, 0,
       
  1058     19, 19, 19, 19, 19, 19, 19, 19,
       
  1059     19, 19, 19, 19, 19, 19, 19, 19,
       
  1060     19, 19, 19, 19, 19, 19, 19, 19,
       
  1061     19, 19, 19, 19, 19, 19, 19, 19,
       
  1062     19, 19, 19, 19, 19, 19, 19, 19,
       
  1063     19, 19, 19, 19, 19, 19, 19, 19,
       
  1064     19, 19, 19, 19, 19, 19, 19, 19,
       
  1065     19, 19, 19, 19, 19, 19, 19, 19,
       
  1066     19, 19, 19, 19, 19, 19, 19, 19,
       
  1067     19, 19, 19, 19, 19, 19, 19, 19,
       
  1068     19, 19, 19, 19, 19, 0, 0, 0,
       
  1069     0, 0, 0, 0, 0, 0, 0, 0,
       
  1070 };
       
  1071 
       
  1072 static const Q_UINT8 ui_14[] = {
       
  1073     0, 19, 19, 19, 19, 19, 19, 19,
       
  1074     19, 19, 19, 19, 19, 19, 19, 19,
       
  1075     19, 19, 19, 19, 19, 19, 19, 19,
       
  1076     19, 19, 19, 19, 19, 19, 19, 19,
       
  1077     19, 19, 19, 19, 19, 19, 19, 19,
       
  1078     19, 19, 19, 19, 19, 19, 19, 19,
       
  1079     19, 19, 19, 19, 19, 19, 19, 19,
       
  1080     19, 19, 19, 19, 19, 19, 19, 19,
       
  1081     19, 19, 19, 19, 19, 19, 19, 19,
       
  1082     19, 19, 19, 19, 19, 19, 19, 19,
       
  1083     19, 19, 19, 19, 19, 19, 19, 19,
       
  1084     19, 19, 19, 19, 19, 19, 19, 19,
       
  1085     19, 19, 19, 19, 19, 19, 19, 19,
       
  1086     19, 19, 19, 19, 19, 19, 19, 19,
       
  1087     19, 19, 19, 19, 19, 19, 19, 19,
       
  1088     19, 19, 19, 19, 19, 19, 19, 19,
       
  1089     19, 19, 19, 19, 19, 19, 19, 19,
       
  1090     19, 19, 19, 19, 19, 19, 19, 19,
       
  1091     19, 19, 19, 19, 19, 19, 19, 19,
       
  1092     19, 19, 19, 19, 19, 19, 19, 19,
       
  1093     19, 19, 19, 19, 19, 19, 19, 19,
       
  1094     19, 19, 19, 19, 19, 19, 19, 19,
       
  1095     19, 19, 19, 19, 19, 19, 19, 19,
       
  1096     19, 19, 19, 19, 19, 19, 19, 19,
       
  1097     19, 19, 19, 19, 19, 19, 19, 19,
       
  1098     19, 19, 19, 19, 19, 19, 19, 19,
       
  1099     19, 19, 19, 19, 19, 19, 19, 19,
       
  1100     19, 19, 19, 19, 19, 19, 19, 19,
       
  1101     19, 19, 19, 19, 19, 19, 19, 19,
       
  1102     19, 19, 19, 19, 19, 19, 19, 19,
       
  1103     19, 19, 19, 19, 19, 19, 19, 19,
       
  1104     19, 19, 19, 19, 19, 19, 19, 19,
       
  1105 };
       
  1106 
       
  1107 static const Q_UINT8 ui_15[] = {
       
  1108     19, 19, 19, 19, 19, 19, 19, 19,
       
  1109     19, 19, 19, 19, 19, 19, 19, 19,
       
  1110     19, 19, 19, 19, 19, 19, 19, 19,
       
  1111     19, 19, 19, 19, 19, 19, 19, 19,
       
  1112     19, 19, 19, 19, 19, 19, 19, 19,
       
  1113     19, 19, 19, 19, 19, 19, 19, 19,
       
  1114     19, 19, 19, 19, 19, 19, 19, 19,
       
  1115     19, 19, 19, 19, 19, 19, 19, 19,
       
  1116     19, 19, 19, 19, 19, 19, 19, 19,
       
  1117     19, 19, 19, 19, 19, 19, 19, 19,
       
  1118     19, 19, 19, 19, 19, 19, 19, 19,
       
  1119     19, 19, 19, 19, 19, 19, 19, 19,
       
  1120     19, 19, 19, 19, 19, 19, 19, 19,
       
  1121     19, 19, 19, 19, 19, 19, 19, 19,
       
  1122     19, 19, 19, 19, 19, 19, 19, 19,
       
  1123     19, 19, 19, 19, 19, 19, 19, 19,
       
  1124     19, 19, 19, 19, 19, 19, 19, 19,
       
  1125     19, 19, 19, 19, 19, 19, 19, 19,
       
  1126     19, 19, 19, 19, 19, 19, 19, 19,
       
  1127     19, 19, 19, 19, 19, 19, 19, 19,
       
  1128     19, 19, 19, 19, 19, 19, 19, 19,
       
  1129     19, 19, 19, 19, 19, 19, 19, 19,
       
  1130     19, 19, 19, 19, 19, 19, 19, 19,
       
  1131     19, 19, 19, 19, 19, 19, 19, 19,
       
  1132     19, 19, 19, 19, 19, 19, 19, 19,
       
  1133     19, 19, 19, 19, 19, 19, 19, 19,
       
  1134     19, 19, 19, 19, 19, 19, 19, 19,
       
  1135     19, 19, 19, 19, 19, 19, 19, 19,
       
  1136     19, 19, 19, 19, 19, 19, 19, 19,
       
  1137     19, 19, 19, 19, 19, 19, 19, 19,
       
  1138     19, 19, 19, 19, 19, 19, 19, 19,
       
  1139     19, 19, 19, 19, 19, 19, 19, 19,
       
  1140 };
       
  1141 
       
  1142 static const Q_UINT8 ui_16[] = {
       
  1143     19, 19, 19, 19, 19, 19, 19, 19,
       
  1144     19, 19, 19, 19, 19, 19, 19, 19,
       
  1145     19, 19, 19, 19, 19, 19, 19, 19,
       
  1146     19, 19, 19, 19, 19, 19, 19, 19,
       
  1147     19, 19, 19, 19, 19, 19, 19, 19,
       
  1148     19, 19, 19, 19, 19, 19, 19, 19,
       
  1149     19, 19, 19, 19, 19, 19, 19, 19,
       
  1150     19, 19, 19, 19, 19, 19, 19, 19,
       
  1151     19, 19, 19, 19, 19, 19, 19, 19,
       
  1152     19, 19, 19, 19, 19, 19, 19, 19,
       
  1153     19, 19, 19, 19, 19, 19, 19, 19,
       
  1154     19, 19, 19, 19, 19, 19, 19, 19,
       
  1155     19, 19, 19, 19, 19, 19, 19, 19,
       
  1156     19, 19, 19, 19, 19, 26, 26, 19,
       
  1157     19, 19, 19, 19, 19, 19, 19, 0,
       
  1158     0, 0, 0, 0, 0, 0, 0, 0,
       
  1159     7, 19, 19, 19, 19, 19, 19, 19,
       
  1160     19, 19, 19, 19, 19, 19, 19, 19,
       
  1161     19, 19, 19, 19, 19, 19, 19, 19,
       
  1162     19, 19, 19, 22, 23, 0, 0, 0,
       
  1163     19, 19, 19, 19, 19, 19, 19, 19,
       
  1164     19, 19, 19, 19, 19, 19, 19, 19,
       
  1165     19, 19, 19, 19, 19, 19, 19, 19,
       
  1166     19, 19, 19, 19, 19, 19, 19, 19,
       
  1167     19, 19, 19, 19, 19, 19, 19, 19,
       
  1168     19, 19, 19, 19, 19, 19, 19, 19,
       
  1169     19, 19, 19, 19, 19, 19, 19, 19,
       
  1170     19, 19, 19, 19, 19, 19, 19, 19,
       
  1171     19, 19, 19, 19, 19, 19, 19, 19,
       
  1172     19, 19, 19, 26, 26, 26, 6, 6,
       
  1173     6, 0, 0, 0, 0, 0, 0, 0,
       
  1174     0, 0, 0, 0, 0, 0, 0, 0,
       
  1175 };
       
  1176 
       
  1177 static const Q_UINT8 ui_17[] = {
       
  1178     0, 0, 0, 0, 0, 0, 0, 0,
       
  1179     0, 0, 0, 0, 0, 0, 0, 0,
       
  1180     0, 0, 0, 0, 0, 0, 0, 0,
       
  1181     0, 0, 0, 0, 0, 0, 0, 0,
       
  1182     0, 0, 0, 0, 0, 0, 0, 0,
       
  1183     0, 0, 0, 0, 0, 0, 0, 0,
       
  1184     0, 0, 0, 0, 0, 0, 0, 0,
       
  1185     0, 0, 0, 0, 0, 0, 0, 0,
       
  1186     0, 0, 0, 0, 0, 0, 0, 0,
       
  1187     0, 0, 0, 0, 0, 0, 0, 0,
       
  1188     0, 0, 0, 0, 0, 0, 0, 0,
       
  1189     0, 0, 0, 0, 0, 0, 0, 0,
       
  1190     0, 0, 0, 0, 0, 0, 0, 0,
       
  1191     0, 0, 0, 0, 0, 0, 0, 0,
       
  1192     0, 0, 0, 0, 0, 0, 0, 0,
       
  1193     0, 0, 0, 0, 0, 0, 0, 0,
       
  1194     19, 19, 19, 19, 19, 19, 19, 19,
       
  1195     19, 19, 19, 19, 19, 19, 19, 19,
       
  1196     19, 19, 19, 19, 19, 19, 19, 19,
       
  1197     19, 19, 19, 19, 19, 19, 19, 19,
       
  1198     19, 19, 19, 19, 19, 19, 19, 19,
       
  1199     19, 19, 19, 19, 19, 19, 19, 19,
       
  1200     19, 19, 19, 19, 2, 2, 2, 1,
       
  1201     1, 1, 1, 1, 1, 1, 2, 2,
       
  1202     2, 2, 2, 2, 2, 2, 1, 2,
       
  1203     2, 1, 1, 1, 1, 1, 1, 1,
       
  1204     1, 1, 1, 1, 26, 26, 26, 26,
       
  1205     26, 26, 26, 28, 26, 0, 0, 0,
       
  1206     4, 4, 4, 4, 4, 4, 4, 4,
       
  1207     4, 4, 0, 0, 0, 0, 0, 0,
       
  1208     0, 0, 0, 0, 0, 0, 0, 0,
       
  1209     0, 0, 0, 0, 0, 0, 0, 0,
       
  1210 };
       
  1211 
       
  1212 static const Q_UINT8 ui_18[] = {
       
  1213     26, 26, 26, 26, 26, 26, 21, 26,
       
  1214     26, 26, 26, 11, 11, 11, 11, 0,
       
  1215     4, 4, 4, 4, 4, 4, 4, 4,
       
  1216     4, 4, 0, 0, 0, 0, 0, 0,
       
  1217     19, 19, 19, 19, 19, 19, 19, 19,
       
  1218     19, 19, 19, 19, 19, 19, 19, 19,
       
  1219     19, 19, 19, 19, 19, 19, 19, 19,
       
  1220     19, 19, 19, 19, 19, 19, 19, 19,
       
  1221     19, 19, 19, 18, 19, 19, 19, 19,
       
  1222     19, 19, 19, 19, 19, 19, 19, 19,
       
  1223     19, 19, 19, 19, 19, 19, 19, 19,
       
  1224     19, 19, 19, 19, 19, 19, 19, 19,
       
  1225     19, 19, 19, 19, 19, 19, 19, 19,
       
  1226     19, 19, 19, 19, 19, 19, 19, 19,
       
  1227     19, 19, 19, 19, 19, 19, 19, 19,
       
  1228     0, 0, 0, 0, 0, 0, 0, 0,
       
  1229     19, 19, 19, 19, 19, 19, 19, 19,
       
  1230     19, 19, 19, 19, 19, 19, 19, 19,
       
  1231     19, 19, 19, 19, 19, 19, 19, 19,
       
  1232     19, 19, 19, 19, 19, 19, 19, 19,
       
  1233     19, 19, 19, 19, 19, 19, 19, 19,
       
  1234     19, 1, 0, 0, 0, 0, 0, 0,
       
  1235     0, 0, 0, 0, 0, 0, 0, 0,
       
  1236     0, 0, 0, 0, 0, 0, 0, 0,
       
  1237     0, 0, 0, 0, 0, 0, 0, 0,
       
  1238     0, 0, 0, 0, 0, 0, 0, 0,
       
  1239     0, 0, 0, 0, 0, 0, 0, 0,
       
  1240     0, 0, 0, 0, 0, 0, 0, 0,
       
  1241     0, 0, 0, 0, 0, 0, 0, 0,
       
  1242     0, 0, 0, 0, 0, 0, 0, 0,
       
  1243     0, 0, 0, 0, 0, 0, 0, 0,
       
  1244     0, 0, 0, 0, 0, 0, 0, 0,
       
  1245 };
       
  1246 
       
  1247 static const Q_UINT8 ui_1E[] = {
       
  1248     15, 16, 15, 16, 15, 16, 15, 16,
       
  1249     15, 16, 15, 16, 15, 16, 15, 16,
       
  1250     15, 16, 15, 16, 15, 16, 15, 16,
       
  1251     15, 16, 15, 16, 15, 16, 15, 16,
       
  1252     15, 16, 15, 16, 15, 16, 15, 16,
       
  1253     15, 16, 15, 16, 15, 16, 15, 16,
       
  1254     15, 16, 15, 16, 15, 16, 15, 16,
       
  1255     15, 16, 15, 16, 15, 16, 15, 16,
       
  1256     15, 16, 15, 16, 15, 16, 15, 16,
       
  1257     15, 16, 15, 16, 15, 16, 15, 16,
       
  1258     15, 16, 15, 16, 15, 16, 15, 16,
       
  1259     15, 16, 15, 16, 15, 16, 15, 16,
       
  1260     15, 16, 15, 16, 15, 16, 15, 16,
       
  1261     15, 16, 15, 16, 15, 16, 15, 16,
       
  1262     15, 16, 15, 16, 15, 16, 15, 16,
       
  1263     15, 16, 15, 16, 15, 16, 15, 16,
       
  1264     15, 16, 15, 16, 15, 16, 15, 16,
       
  1265     15, 16, 15, 16, 15, 16, 15, 16,
       
  1266     15, 16, 15, 16, 15, 16, 16, 16,
       
  1267     16, 16, 16, 16, 0, 0, 0, 0,
       
  1268     15, 16, 15, 16, 15, 16, 15, 16,
       
  1269     15, 16, 15, 16, 15, 16, 15, 16,
       
  1270     15, 16, 15, 16, 15, 16, 15, 16,
       
  1271     15, 16, 15, 16, 15, 16, 15, 16,
       
  1272     15, 16, 15, 16, 15, 16, 15, 16,
       
  1273     15, 16, 15, 16, 15, 16, 15, 16,
       
  1274     15, 16, 15, 16, 15, 16, 15, 16,
       
  1275     15, 16, 15, 16, 15, 16, 15, 16,
       
  1276     15, 16, 15, 16, 15, 16, 15, 16,
       
  1277     15, 16, 15, 16, 15, 16, 15, 16,
       
  1278     15, 16, 15, 16, 15, 16, 15, 16,
       
  1279     15, 16, 0, 0, 0, 0, 0, 0,
       
  1280 };
       
  1281 
       
  1282 static const Q_UINT8 ui_1F[] = {
       
  1283     16, 16, 16, 16, 16, 16, 16, 16,
       
  1284     15, 15, 15, 15, 15, 15, 15, 15,
       
  1285     16, 16, 16, 16, 16, 16, 0, 0,
       
  1286     15, 15, 15, 15, 15, 15, 0, 0,
       
  1287     16, 16, 16, 16, 16, 16, 16, 16,
       
  1288     15, 15, 15, 15, 15, 15, 15, 15,
       
  1289     16, 16, 16, 16, 16, 16, 16, 16,
       
  1290     15, 15, 15, 15, 15, 15, 15, 15,
       
  1291     16, 16, 16, 16, 16, 16, 0, 0,
       
  1292     15, 15, 15, 15, 15, 15, 0, 0,
       
  1293     16, 16, 16, 16, 16, 16, 16, 16,
       
  1294     0, 15, 0, 15, 0, 15, 0, 15,
       
  1295     16, 16, 16, 16, 16, 16, 16, 16,
       
  1296     15, 15, 15, 15, 15, 15, 15, 15,
       
  1297     16, 16, 16, 16, 16, 16, 16, 16,
       
  1298     16, 16, 16, 16, 16, 16, 0, 0,
       
  1299     16, 16, 16, 16, 16, 16, 16, 16,
       
  1300     17, 17, 17, 17, 17, 17, 17, 17,
       
  1301     16, 16, 16, 16, 16, 16, 16, 16,
       
  1302     17, 17, 17, 17, 17, 17, 17, 17,
       
  1303     16, 16, 16, 16, 16, 16, 16, 16,
       
  1304     17, 17, 17, 17, 17, 17, 17, 17,
       
  1305     16, 16, 16, 16, 16, 0, 16, 16,
       
  1306     15, 15, 15, 15, 17, 29, 16, 29,
       
  1307     29, 29, 16, 16, 16, 0, 16, 16,
       
  1308     15, 15, 15, 15, 17, 29, 29, 29,
       
  1309     16, 16, 16, 16, 0, 0, 16, 16,
       
  1310     15, 15, 15, 15, 0, 29, 29, 29,
       
  1311     16, 16, 16, 16, 16, 16, 16, 16,
       
  1312     15, 15, 15, 15, 15, 29, 29, 29,
       
  1313     0, 0, 16, 16, 16, 0, 16, 16,
       
  1314     15, 15, 15, 15, 17, 29, 29, 0,
       
  1315 };
       
  1316 
       
  1317 static const Q_UINT8 ui_20[] = {
       
  1318     7, 7, 7, 7, 7, 7, 7, 7,
       
  1319     7, 7, 7, 7, 11, 11, 11, 11,
       
  1320     21, 21, 21, 21, 21, 21, 26, 26,
       
  1321     24, 25, 22, 24, 24, 25, 22, 24,
       
  1322     26, 26, 26, 26, 26, 26, 26, 26,
       
  1323     8, 9, 11, 11, 11, 11, 11, 7,
       
  1324     26, 26, 26, 26, 26, 26, 26, 26,
       
  1325     26, 24, 25, 26, 26, 26, 26, 20,
       
  1326     20, 26, 26, 26, 27, 22, 23, 0,
       
  1327     26, 26, 26, 26, 26, 26, 0, 0,
       
  1328     0, 0, 0, 0, 0, 0, 0, 0,
       
  1329     0, 0, 0, 0, 0, 0, 0, 0,
       
  1330     0, 0, 0, 0, 0, 0, 0, 0,
       
  1331     0, 0, 11, 11, 11, 11, 11, 11,
       
  1332     6, 0, 0, 0, 6, 6, 6, 6,
       
  1333     6, 6, 27, 27, 27, 22, 23, 16,
       
  1334     6, 6, 6, 6, 6, 6, 6, 6,
       
  1335     6, 6, 27, 27, 27, 22, 23, 0,
       
  1336     0, 0, 0, 0, 0, 0, 0, 0,
       
  1337     0, 0, 0, 0, 0, 0, 0, 0,
       
  1338     28, 28, 28, 28, 28, 28, 28, 28,
       
  1339     28, 28, 28, 28, 28, 28, 28, 28,
       
  1340     0, 0, 0, 0, 0, 0, 0, 0,
       
  1341     0, 0, 0, 0, 0, 0, 0, 0,
       
  1342     0, 0, 0, 0, 0, 0, 0, 0,
       
  1343     0, 0, 0, 0, 0, 0, 0, 0,
       
  1344     1, 1, 1, 1, 1, 1, 1, 1,
       
  1345     1, 1, 1, 1, 1, 3, 3, 3,
       
  1346     3, 1, 3, 3, 0, 0, 0, 0,
       
  1347     0, 0, 0, 0, 0, 0, 0, 0,
       
  1348     0, 0, 0, 0, 0, 0, 0, 0,
       
  1349     0, 0, 0, 0, 0, 0, 0, 0,
       
  1350 };
       
  1351 
       
  1352 static const Q_UINT8 ui_21[] = {
       
  1353     30, 30, 15, 30, 30, 30, 30, 15,
       
  1354     30, 30, 16, 15, 15, 15, 16, 16,
       
  1355     15, 15, 15, 16, 30, 15, 30, 30,
       
  1356     30, 15, 15, 15, 15, 15, 30, 30,
       
  1357     30, 30, 30, 30, 15, 30, 15, 30,
       
  1358     15, 30, 15, 15, 15, 15, 30, 16,
       
  1359     15, 15, 30, 15, 16, 19, 19, 19,
       
  1360     19, 16, 30, 0, 0, 0, 0, 0,
       
  1361     0, 0, 0, 0, 0, 0, 0, 0,
       
  1362     0, 0, 0, 0, 0, 0, 0, 0,
       
  1363     0, 0, 0, 6, 6, 6, 6, 6,
       
  1364     6, 6, 6, 6, 6, 6, 6, 6,
       
  1365     5, 5, 5, 5, 5, 5, 5, 5,
       
  1366     5, 5, 5, 5, 5, 5, 5, 5,
       
  1367     5, 5, 5, 5, 5, 5, 5, 5,
       
  1368     5, 5, 5, 5, 5, 5, 5, 5,
       
  1369     5, 5, 5, 5, 0, 0, 0, 0,
       
  1370     0, 0, 0, 0, 0, 0, 0, 0,
       
  1371     27, 27, 27, 27, 27, 30, 30, 30,
       
  1372     30, 30, 27, 27, 30, 30, 30, 30,
       
  1373     27, 30, 30, 27, 30, 30, 27, 30,
       
  1374     30, 30, 30, 30, 30, 30, 27, 30,
       
  1375     30, 30, 30, 30, 30, 30, 30, 30,
       
  1376     30, 30, 30, 30, 30, 30, 30, 30,
       
  1377     30, 30, 30, 30, 30, 30, 30, 30,
       
  1378     30, 30, 30, 30, 30, 30, 27, 27,
       
  1379     30, 30, 27, 30, 27, 30, 30, 30,
       
  1380     30, 30, 30, 30, 30, 30, 30, 30,
       
  1381     30, 30, 30, 30, 30, 30, 30, 30,
       
  1382     30, 30, 30, 30, 30, 30, 30, 30,
       
  1383     30, 30, 30, 30, 0, 0, 0, 0,
       
  1384     0, 0, 0, 0, 0, 0, 0, 0,
       
  1385 };
       
  1386 
       
  1387 static const Q_UINT8 ui_22[] = {
       
  1388     27, 27, 27, 27, 27, 27, 27, 27,
       
  1389     27, 27, 27, 27, 27, 27, 27, 27,
       
  1390     27, 27, 27, 27, 27, 27, 27, 27,
       
  1391     27, 27, 27, 27, 27, 27, 27, 27,
       
  1392     27, 27, 27, 27, 27, 27, 27, 27,
       
  1393     27, 27, 27, 27, 27, 27, 27, 27,
       
  1394     27, 27, 27, 27, 27, 27, 27, 27,
       
  1395     27, 27, 27, 27, 27, 27, 27, 27,
       
  1396     27, 27, 27, 27, 27, 27, 27, 27,
       
  1397     27, 27, 27, 27, 27, 27, 27, 27,
       
  1398     27, 27, 27, 27, 27, 27, 27, 27,
       
  1399     27, 27, 27, 27, 27, 27, 27, 27,
       
  1400     27, 27, 27, 27, 27, 27, 27, 27,
       
  1401     27, 27, 27, 27, 27, 27, 27, 27,
       
  1402     27, 27, 27, 27, 27, 27, 27, 27,
       
  1403     27, 27, 27, 27, 27, 27, 27, 27,
       
  1404     27, 27, 27, 27, 27, 27, 27, 27,
       
  1405     27, 27, 27, 27, 27, 27, 27, 27,
       
  1406     27, 27, 27, 27, 27, 27, 27, 27,
       
  1407     27, 27, 27, 27, 27, 27, 27, 27,
       
  1408     27, 27, 27, 27, 27, 27, 27, 27,
       
  1409     27, 27, 27, 27, 27, 27, 27, 27,
       
  1410     27, 27, 27, 27, 27, 27, 27, 27,
       
  1411     27, 27, 27, 27, 27, 27, 27, 27,
       
  1412     27, 27, 27, 27, 27, 27, 27, 27,
       
  1413     27, 27, 27, 27, 27, 27, 27, 27,
       
  1414     27, 27, 27, 27, 27, 27, 27, 27,
       
  1415     27, 27, 27, 27, 27, 27, 27, 27,
       
  1416     27, 27, 27, 27, 27, 27, 27, 27,
       
  1417     27, 27, 27, 27, 27, 27, 27, 27,
       
  1418     27, 27, 0, 0, 0, 0, 0, 0,
       
  1419     0, 0, 0, 0, 0, 0, 0, 0,
       
  1420 };
       
  1421 
       
  1422 static const Q_UINT8 ui_23[] = {
       
  1423     30, 30, 30, 30, 30, 30, 30, 30,
       
  1424     27, 27, 27, 27, 30, 30, 30, 30,
       
  1425     30, 30, 30, 30, 30, 30, 30, 30,
       
  1426     30, 30, 30, 30, 30, 30, 30, 30,
       
  1427     27, 27, 30, 30, 30, 30, 30, 30,
       
  1428     30, 22, 23, 30, 30, 30, 30, 30,
       
  1429     30, 30, 30, 30, 30, 30, 30, 30,
       
  1430     30, 30, 30, 30, 30, 30, 30, 30,
       
  1431     30, 30, 30, 30, 30, 30, 30, 30,
       
  1432     30, 30, 30, 30, 30, 30, 30, 30,
       
  1433     30, 30, 30, 30, 30, 30, 30, 30,
       
  1434     30, 30, 30, 30, 30, 30, 30, 30,
       
  1435     30, 30, 30, 30, 30, 30, 30, 30,
       
  1436     30, 30, 30, 30, 30, 30, 30, 30,
       
  1437     30, 30, 30, 30, 30, 30, 30, 30,
       
  1438     30, 30, 30, 30, 0, 30, 30, 30,
       
  1439     30, 30, 30, 30, 30, 30, 30, 30,
       
  1440     30, 30, 30, 30, 30, 30, 30, 30,
       
  1441     30, 30, 30, 30, 30, 30, 30, 30,
       
  1442     30, 30, 30, 0, 0, 0, 0, 0,
       
  1443     0, 0, 0, 0, 0, 0, 0, 0,
       
  1444     0, 0, 0, 0, 0, 0, 0, 0,
       
  1445     0, 0, 0, 0, 0, 0, 0, 0,
       
  1446     0, 0, 0, 0, 0, 0, 0, 0,
       
  1447     0, 0, 0, 0, 0, 0, 0, 0,
       
  1448     0, 0, 0, 0, 0, 0, 0, 0,
       
  1449     0, 0, 0, 0, 0, 0, 0, 0,
       
  1450     0, 0, 0, 0, 0, 0, 0, 0,
       
  1451     0, 0, 0, 0, 0, 0, 0, 0,
       
  1452     0, 0, 0, 0, 0, 0, 0, 0,
       
  1453     0, 0, 0, 0, 0, 0, 0, 0,
       
  1454     0, 0, 0, 0, 0, 0, 0, 0,
       
  1455 };
       
  1456 
       
  1457 static const Q_UINT8 ui_24[] = {
       
  1458     30, 30, 30, 30, 30, 30, 30, 30,
       
  1459     30, 30, 30, 30, 30, 30, 30, 30,
       
  1460     30, 30, 30, 30, 30, 30, 30, 30,
       
  1461     30, 30, 30, 30, 30, 30, 30, 30,
       
  1462     30, 30, 30, 30, 30, 30, 30, 0,
       
  1463     0, 0, 0, 0, 0, 0, 0, 0,
       
  1464     0, 0, 0, 0, 0, 0, 0, 0,
       
  1465     0, 0, 0, 0, 0, 0, 0, 0,
       
  1466     30, 30, 30, 30, 30, 30, 30, 30,
       
  1467     30, 30, 30, 0, 0, 0, 0, 0,
       
  1468     0, 0, 0, 0, 0, 0, 0, 0,
       
  1469     0, 0, 0, 0, 0, 0, 0, 0,
       
  1470     6, 6, 6, 6, 6, 6, 6, 6,
       
  1471     6, 6, 6, 6, 6, 6, 6, 6,
       
  1472     6, 6, 6, 6, 6, 6, 6, 6,
       
  1473     6, 6, 6, 6, 6, 6, 6, 6,
       
  1474     6, 6, 6, 6, 6, 6, 6, 6,
       
  1475     6, 6, 6, 6, 6, 6, 6, 6,
       
  1476     6, 6, 6, 6, 6, 6, 6, 6,
       
  1477     6, 6, 6, 6, 30, 30, 30, 30,
       
  1478     30, 30, 30, 30, 30, 30, 30, 30,
       
  1479     30, 30, 30, 30, 30, 30, 30, 30,
       
  1480     30, 30, 30, 30, 30, 30, 30, 30,
       
  1481     30, 30, 30, 30, 30, 30, 30, 30,
       
  1482     30, 30, 30, 30, 30, 30, 30, 30,
       
  1483     30, 30, 30, 30, 30, 30, 30, 30,
       
  1484     30, 30, 30, 30, 30, 30, 30, 30,
       
  1485     30, 30, 30, 30, 30, 30, 30, 30,
       
  1486     30, 30, 30, 30, 30, 30, 30, 30,
       
  1487     30, 30, 6, 0, 0, 0, 0, 0,
       
  1488     0, 0, 0, 0, 0, 0, 0, 0,
       
  1489     0, 0, 0, 0, 0, 0, 0, 0,
       
  1490 };
       
  1491 
       
  1492 static const Q_UINT8 ui_25[] = {
       
  1493     30, 30, 30, 30, 30, 30, 30, 30,
       
  1494     30, 30, 30, 30, 30, 30, 30, 30,
       
  1495     30, 30, 30, 30, 30, 30, 30, 30,
       
  1496     30, 30, 30, 30, 30, 30, 30, 30,
       
  1497     30, 30, 30, 30, 30, 30, 30, 30,
       
  1498     30, 30, 30, 30, 30, 30, 30, 30,
       
  1499     30, 30, 30, 30, 30, 30, 30, 30,
       
  1500     30, 30, 30, 30, 30, 30, 30, 30,
       
  1501     30, 30, 30, 30, 30, 30, 30, 30,
       
  1502     30, 30, 30, 30, 30, 30, 30, 30,
       
  1503     30, 30, 30, 30, 30, 30, 30, 30,
       
  1504     30, 30, 30, 30, 30, 30, 30, 30,
       
  1505     30, 30, 30, 30, 30, 30, 30, 30,
       
  1506     30, 30, 30, 30, 30, 30, 30, 30,
       
  1507     30, 30, 30, 30, 30, 30, 30, 30,
       
  1508     30, 30, 30, 30, 30, 30, 30, 30,
       
  1509     30, 30, 30, 30, 30, 30, 30, 30,
       
  1510     30, 30, 30, 30, 30, 30, 30, 30,
       
  1511     30, 30, 30, 30, 30, 30, 0, 0,
       
  1512     0, 0, 0, 0, 0, 0, 0, 0,
       
  1513     30, 30, 30, 30, 30, 30, 30, 30,
       
  1514     30, 30, 30, 30, 30, 30, 30, 30,
       
  1515     30, 30, 30, 30, 30, 30, 30, 27,
       
  1516     30, 30, 30, 30, 30, 30, 30, 30,
       
  1517     30, 27, 30, 30, 30, 30, 30, 30,
       
  1518     30, 30, 30, 30, 30, 30, 30, 30,
       
  1519     30, 30, 30, 30, 30, 30, 30, 30,
       
  1520     30, 30, 30, 30, 30, 30, 30, 30,
       
  1521     30, 30, 30, 30, 30, 30, 30, 30,
       
  1522     30, 30, 30, 30, 30, 30, 30, 30,
       
  1523     30, 30, 30, 30, 30, 30, 30, 30,
       
  1524     0, 0, 0, 0, 0, 0, 0, 0,
       
  1525 };
       
  1526 
       
  1527 static const Q_UINT8 ui_26[] = {
       
  1528     30, 30, 30, 30, 30, 30, 30, 30,
       
  1529     30, 30, 30, 30, 30, 30, 30, 30,
       
  1530     30, 30, 30, 30, 0, 0, 0, 0,
       
  1531     0, 30, 30, 30, 30, 30, 30, 30,
       
  1532     30, 30, 30, 30, 30, 30, 30, 30,
       
  1533     30, 30, 30, 30, 30, 30, 30, 30,
       
  1534     30, 30, 30, 30, 30, 30, 30, 30,
       
  1535     30, 30, 30, 30, 30, 30, 30, 30,
       
  1536     30, 30, 30, 30, 30, 30, 30, 30,
       
  1537     30, 30, 30, 30, 30, 30, 30, 30,
       
  1538     30, 30, 30, 30, 30, 30, 30, 30,
       
  1539     30, 30, 30, 30, 30, 30, 30, 30,
       
  1540     30, 30, 30, 30, 30, 30, 30, 30,
       
  1541     30, 30, 30, 30, 30, 30, 30, 27,
       
  1542     30, 30, 0, 0, 0, 0, 0, 0,
       
  1543     0, 0, 0, 0, 0, 0, 0, 0,
       
  1544     0, 0, 0, 0, 0, 0, 0, 0,
       
  1545     0, 0, 0, 0, 0, 0, 0, 0,
       
  1546     0, 0, 0, 0, 0, 0, 0, 0,
       
  1547     0, 0, 0, 0, 0, 0, 0, 0,
       
  1548     0, 0, 0, 0, 0, 0, 0, 0,
       
  1549     0, 0, 0, 0, 0, 0, 0, 0,
       
  1550     0, 0, 0, 0, 0, 0, 0, 0,
       
  1551     0, 0, 0, 0, 0, 0, 0, 0,
       
  1552     0, 0, 0, 0, 0, 0, 0, 0,
       
  1553     0, 0, 0, 0, 0, 0, 0, 0,
       
  1554     0, 0, 0, 0, 0, 0, 0, 0,
       
  1555     0, 0, 0, 0, 0, 0, 0, 0,
       
  1556     0, 0, 0, 0, 0, 0, 0, 0,
       
  1557     0, 0, 0, 0, 0, 0, 0, 0,
       
  1558     0, 0, 0, 0, 0, 0, 0, 0,
       
  1559     0, 0, 0, 0, 0, 0, 0, 0,
       
  1560 };
       
  1561 
       
  1562 static const Q_UINT8 ui_27[] = {
       
  1563     0, 30, 30, 30, 30, 0, 30, 30,
       
  1564     30, 30, 0, 0, 30, 30, 30, 30,
       
  1565     30, 30, 30, 30, 30, 30, 30, 30,
       
  1566     30, 30, 30, 30, 30, 30, 30, 30,
       
  1567     30, 30, 30, 30, 30, 30, 30, 30,
       
  1568     0, 30, 30, 30, 30, 30, 30, 30,
       
  1569     30, 30, 30, 30, 30, 30, 30, 30,
       
  1570     30, 30, 30, 30, 30, 30, 30, 30,
       
  1571     30, 30, 30, 30, 30, 30, 30, 30,
       
  1572     30, 30, 30, 30, 0, 30, 0, 30,
       
  1573     30, 30, 30, 0, 0, 0, 30, 0,
       
  1574     30, 30, 30, 30, 30, 30, 30, 0,
       
  1575     0, 30, 30, 30, 30, 30, 30, 30,
       
  1576     0, 0, 0, 0, 0, 0, 0, 0,
       
  1577     0, 0, 0, 0, 0, 0, 6, 6,
       
  1578     6, 6, 6, 6, 6, 6, 6, 6,
       
  1579     6, 6, 6, 6, 6, 6, 6, 6,
       
  1580     6, 6, 6, 6, 6, 6, 6, 6,
       
  1581     6, 6, 6, 6, 30, 0, 0, 0,
       
  1582     30, 30, 30, 30, 30, 30, 30, 30,
       
  1583     30, 30, 30, 30, 30, 30, 30, 30,
       
  1584     30, 30, 30, 30, 30, 30, 30, 30,
       
  1585     0, 30, 30, 30, 30, 30, 30, 30,
       
  1586     30, 30, 30, 30, 30, 30, 30, 0,
       
  1587     0, 0, 0, 0, 0, 0, 0, 0,
       
  1588     0, 0, 0, 0, 0, 0, 0, 0,
       
  1589     0, 0, 0, 0, 0, 0, 0, 0,
       
  1590     0, 0, 0, 0, 0, 0, 0, 0,
       
  1591     0, 0, 0, 0, 0, 0, 0, 0,
       
  1592     0, 0, 0, 0, 0, 0, 0, 0,
       
  1593     0, 0, 0, 0, 0, 0, 0, 0,
       
  1594     0, 0, 0, 0, 0, 0, 0, 0,
       
  1595 };
       
  1596 
       
  1597 static const Q_UINT8 ui_28[] = {
       
  1598     30, 30, 30, 30, 30, 30, 30, 30,
       
  1599     30, 30, 30, 30, 30, 30, 30, 30,
       
  1600     30, 30, 30, 30, 30, 30, 30, 30,
       
  1601     30, 30, 30, 30, 30, 30, 30, 30,
       
  1602     30, 30, 30, 30, 30, 30, 30, 30,
       
  1603     30, 30, 30, 30, 30, 30, 30, 30,
       
  1604     30, 30, 30, 30, 30, 30, 30, 30,
       
  1605     30, 30, 30, 30, 30, 30, 30, 30,
       
  1606     30, 30, 30, 30, 30, 30, 30, 30,
       
  1607     30, 30, 30, 30, 30, 30, 30, 30,
       
  1608     30, 30, 30, 30, 30, 30, 30, 30,
       
  1609     30, 30, 30, 30, 30, 30, 30, 30,
       
  1610     30, 30, 30, 30, 30, 30, 30, 30,
       
  1611     30, 30, 30, 30, 30, 30, 30, 30,
       
  1612     30, 30, 30, 30, 30, 30, 30, 30,
       
  1613     30, 30, 30, 30, 30, 30, 30, 30,
       
  1614     30, 30, 30, 30, 30, 30, 30, 30,
       
  1615     30, 30, 30, 30, 30, 30, 30, 30,
       
  1616     30, 30, 30, 30, 30, 30, 30, 30,
       
  1617     30, 30, 30, 30, 30, 30, 30, 30,
       
  1618     30, 30, 30, 30, 30, 30, 30, 30,
       
  1619     30, 30, 30, 30, 30, 30, 30, 30,
       
  1620     30, 30, 30, 30, 30, 30, 30, 30,
       
  1621     30, 30, 30, 30, 30, 30, 30, 30,
       
  1622     30, 30, 30, 30, 30, 30, 30, 30,
       
  1623     30, 30, 30, 30, 30, 30, 30, 30,
       
  1624     30, 30, 30, 30, 30, 30, 30, 30,
       
  1625     30, 30, 30, 30, 30, 30, 30, 30,
       
  1626     30, 30, 30, 30, 30, 30, 30, 30,
       
  1627     30, 30, 30, 30, 30, 30, 30, 30,
       
  1628     30, 30, 30, 30, 30, 30, 30, 30,
       
  1629     30, 30, 30, 30, 30, 30, 30, 30,
       
  1630 };
       
  1631 
       
  1632 static const Q_UINT8 ui_2E[] = {
       
  1633     0, 0, 0, 0, 0, 0, 0, 0,
       
  1634     0, 0, 0, 0, 0, 0, 0, 0,
       
  1635     0, 0, 0, 0, 0, 0, 0, 0,
       
  1636     0, 0, 0, 0, 0, 0, 0, 0,
       
  1637     0, 0, 0, 0, 0, 0, 0, 0,
       
  1638     0, 0, 0, 0, 0, 0, 0, 0,
       
  1639     0, 0, 0, 0, 0, 0, 0, 0,
       
  1640     0, 0, 0, 0, 0, 0, 0, 0,
       
  1641     0, 0, 0, 0, 0, 0, 0, 0,
       
  1642     0, 0, 0, 0, 0, 0, 0, 0,
       
  1643     0, 0, 0, 0, 0, 0, 0, 0,
       
  1644     0, 0, 0, 0, 0, 0, 0, 0,
       
  1645     0, 0, 0, 0, 0, 0, 0, 0,
       
  1646     0, 0, 0, 0, 0, 0, 0, 0,
       
  1647     0, 0, 0, 0, 0, 0, 0, 0,
       
  1648     0, 0, 0, 0, 0, 0, 0, 0,
       
  1649     30, 30, 30, 30, 30, 30, 30, 30,
       
  1650     30, 30, 30, 30, 30, 30, 30, 30,
       
  1651     30, 30, 30, 30, 30, 30, 30, 30,
       
  1652     30, 30, 0, 30, 30, 30, 30, 30,
       
  1653     30, 30, 30, 30, 30, 30, 30, 30,
       
  1654     30, 30, 30, 30, 30, 30, 30, 30,
       
  1655     30, 30, 30, 30, 30, 30, 30, 30,
       
  1656     30, 30, 30, 30, 30, 30, 30, 30,
       
  1657     30, 30, 30, 30, 30, 30, 30, 30,
       
  1658     30, 30, 30, 30, 30, 30, 30, 30,
       
  1659     30, 30, 30, 30, 30, 30, 30, 30,
       
  1660     30, 30, 30, 30, 30, 30, 30, 30,
       
  1661     30, 30, 30, 30, 30, 30, 30, 30,
       
  1662     30, 30, 30, 30, 30, 30, 30, 30,
       
  1663     30, 30, 30, 30, 0, 0, 0, 0,
       
  1664     0, 0, 0, 0, 0, 0, 0, 0,
       
  1665 };
       
  1666 
       
  1667 static const Q_UINT8 ui_2F[] = {
       
  1668     30, 30, 30, 30, 30, 30, 30, 30,
       
  1669     30, 30, 30, 30, 30, 30, 30, 30,
       
  1670     30, 30, 30, 30, 30, 30, 30, 30,
       
  1671     30, 30, 30, 30, 30, 30, 30, 30,
       
  1672     30, 30, 30, 30, 30, 30, 30, 30,
       
  1673     30, 30, 30, 30, 30, 30, 30, 30,
       
  1674     30, 30, 30, 30, 30, 30, 30, 30,
       
  1675     30, 30, 30, 30, 30, 30, 30, 30,
       
  1676     30, 30, 30, 30, 30, 30, 30, 30,
       
  1677     30, 30, 30, 30, 30, 30, 30, 30,
       
  1678     30, 30, 30, 30, 30, 30, 30, 30,
       
  1679     30, 30, 30, 30, 30, 30, 30, 30,
       
  1680     30, 30, 30, 30, 30, 30, 30, 30,
       
  1681     30, 30, 30, 30, 30, 30, 30, 30,
       
  1682     30, 30, 30, 30, 30, 30, 30, 30,
       
  1683     30, 30, 30, 30, 30, 30, 30, 30,
       
  1684     30, 30, 30, 30, 30, 30, 30, 30,
       
  1685     30, 30, 30, 30, 30, 30, 30, 30,
       
  1686     30, 30, 30, 30, 30, 30, 30, 30,
       
  1687     30, 30, 30, 30, 30, 30, 30, 30,
       
  1688     30, 30, 30, 30, 30, 30, 30, 30,
       
  1689     30, 30, 30, 30, 30, 30, 30, 30,
       
  1690     30, 30, 30, 30, 30, 30, 30, 30,
       
  1691     30, 30, 30, 30, 30, 30, 30, 30,
       
  1692     30, 30, 30, 30, 30, 30, 30, 30,
       
  1693     30, 30, 30, 30, 30, 30, 30, 30,
       
  1694     30, 30, 30, 30, 30, 30, 0, 0,
       
  1695     0, 0, 0, 0, 0, 0, 0, 0,
       
  1696     0, 0, 0, 0, 0, 0, 0, 0,
       
  1697     0, 0, 0, 0, 0, 0, 0, 0,
       
  1698     30, 30, 30, 30, 30, 30, 30, 30,
       
  1699     30, 30, 30, 30, 0, 0, 0, 0,
       
  1700 };
       
  1701 
       
  1702 static const Q_UINT8 ui_30[] = {
       
  1703     7, 26, 26, 26, 30, 18, 19, 5,
       
  1704     22, 23, 22, 23, 22, 23, 22, 23,
       
  1705     22, 23, 30, 30, 22, 23, 22, 23,
       
  1706     22, 23, 22, 23, 21, 22, 23, 23,
       
  1707     30, 5, 5, 5, 5, 5, 5, 5,
       
  1708     5, 5, 1, 1, 1, 1, 1, 1,
       
  1709     21, 18, 18, 18, 18, 18, 30, 30,
       
  1710     5, 5, 5, 0, 0, 0, 30, 30,
       
  1711     0, 19, 19, 19, 19, 19, 19, 19,
       
  1712     19, 19, 19, 19, 19, 19, 19, 19,
       
  1713     19, 19, 19, 19, 19, 19, 19, 19,
       
  1714     19, 19, 19, 19, 19, 19, 19, 19,
       
  1715     19, 19, 19, 19, 19, 19, 19, 19,
       
  1716     19, 19, 19, 19, 19, 19, 19, 19,
       
  1717     19, 19, 19, 19, 19, 19, 19, 19,
       
  1718     19, 19, 19, 19, 19, 19, 19, 19,
       
  1719     19, 19, 19, 19, 19, 19, 19, 19,
       
  1720     19, 19, 19, 19, 19, 19, 19, 19,
       
  1721     19, 19, 19, 19, 19, 0, 0, 0,
       
  1722     0, 1, 1, 29, 29, 18, 18, 0,
       
  1723     0, 19, 19, 19, 19, 19, 19, 19,
       
  1724     19, 19, 19, 19, 19, 19, 19, 19,
       
  1725     19, 19, 19, 19, 19, 19, 19, 19,
       
  1726     19, 19, 19, 19, 19, 19, 19, 19,
       
  1727     19, 19, 19, 19, 19, 19, 19, 19,
       
  1728     19, 19, 19, 19, 19, 19, 19, 19,
       
  1729     19, 19, 19, 19, 19, 19, 19, 19,
       
  1730     19, 19, 19, 19, 19, 19, 19, 19,
       
  1731     19, 19, 19, 19, 19, 19, 19, 19,
       
  1732     19, 19, 19, 19, 19, 19, 19, 19,
       
  1733     19, 19, 19, 19, 19, 19, 19, 19,
       
  1734     19, 19, 19, 20, 18, 18, 18, 0,
       
  1735 };
       
  1736 
       
  1737 static const Q_UINT8 ui_31[] = {
       
  1738     0, 0, 0, 0, 0, 19, 19, 19,
       
  1739     19, 19, 19, 19, 19, 19, 19, 19,
       
  1740     19, 19, 19, 19, 19, 19, 19, 19,
       
  1741     19, 19, 19, 19, 19, 19, 19, 19,
       
  1742     19, 19, 19, 19, 19, 19, 19, 19,
       
  1743     19, 19, 19, 19, 19, 0, 0, 0,
       
  1744     0, 19, 19, 19, 19, 19, 19, 19,
       
  1745     19, 19, 19, 19, 19, 19, 19, 19,
       
  1746     19, 19, 19, 19, 19, 19, 19, 19,
       
  1747     19, 19, 19, 19, 19, 19, 19, 19,
       
  1748     19, 19, 19, 19, 19, 19, 19, 19,
       
  1749     19, 19, 19, 19, 19, 19, 19, 19,
       
  1750     19, 19, 19, 19, 19, 19, 19, 19,
       
  1751     19, 19, 19, 19, 19, 19, 19, 19,
       
  1752     19, 19, 19, 19, 19, 19, 19, 19,
       
  1753     19, 19, 19, 19, 19, 19, 19, 19,
       
  1754     19, 19, 19, 19, 19, 19, 19, 19,
       
  1755     19, 19, 19, 19, 19, 19, 19, 0,
       
  1756     30, 30, 6, 6, 6, 6, 30, 30,
       
  1757     30, 30, 30, 30, 30, 30, 30, 30,
       
  1758     19, 19, 19, 19, 19, 19, 19, 19,
       
  1759     19, 19, 19, 19, 19, 19, 19, 19,
       
  1760     19, 19, 19, 19, 19, 19, 19, 19,
       
  1761     0, 0, 0, 0, 0, 0, 0, 0,
       
  1762     0, 0, 0, 0, 0, 0, 0, 0,
       
  1763     0, 0, 0, 0, 0, 0, 0, 0,
       
  1764     0, 0, 0, 0, 0, 0, 0, 0,
       
  1765     0, 0, 0, 0, 0, 0, 0, 0,
       
  1766     0, 0, 0, 0, 0, 0, 0, 0,
       
  1767     0, 0, 0, 0, 0, 0, 0, 0,
       
  1768     0, 0, 0, 0, 0, 0, 0, 0,
       
  1769     0, 0, 0, 0, 0, 0, 0, 0,
       
  1770 };
       
  1771 
       
  1772 static const Q_UINT8 ui_32[] = {
       
  1773     30, 30, 30, 30, 30, 30, 30, 30,
       
  1774     30, 30, 30, 30, 30, 30, 30, 30,
       
  1775     30, 30, 30, 30, 30, 30, 30, 30,
       
  1776     30, 30, 30, 30, 30, 0, 0, 0,
       
  1777     6, 6, 6, 6, 6, 6, 6, 6,
       
  1778     6, 6, 30, 30, 30, 30, 30, 30,
       
  1779     30, 30, 30, 30, 30, 30, 30, 30,
       
  1780     30, 30, 30, 30, 30, 30, 30, 30,
       
  1781     30, 30, 30, 30, 0, 0, 0, 0,
       
  1782     0, 0, 0, 0, 0, 0, 0, 0,
       
  1783     0, 0, 0, 0, 0, 0, 0, 0,
       
  1784     0, 0, 0, 0, 0, 0, 0, 0,
       
  1785     30, 30, 30, 30, 30, 30, 30, 30,
       
  1786     30, 30, 30, 30, 30, 30, 30, 30,
       
  1787     30, 30, 30, 30, 30, 30, 30, 30,
       
  1788     30, 30, 30, 30, 0, 0, 0, 30,
       
  1789     6, 6, 6, 6, 6, 6, 6, 6,
       
  1790     6, 6, 30, 30, 30, 30, 30, 30,
       
  1791     30, 30, 30, 30, 30, 30, 30, 30,
       
  1792     30, 30, 30, 30, 30, 30, 30, 30,
       
  1793     30, 30, 30, 30, 30, 30, 30, 30,
       
  1794     30, 30, 30, 30, 30, 30, 30, 30,
       
  1795     30, 0, 0, 0, 0, 0, 0, 0,
       
  1796     0, 0, 0, 0, 0, 0, 0, 0,
       
  1797     30, 30, 30, 30, 30, 30, 30, 30,
       
  1798     30, 30, 30, 30, 0, 0, 0, 0,
       
  1799     30, 30, 30, 30, 30, 30, 30, 30,
       
  1800     30, 30, 30, 30, 30, 30, 30, 30,
       
  1801     30, 30, 30, 30, 30, 30, 30, 30,
       
  1802     30, 30, 30, 30, 30, 30, 30, 30,
       
  1803     30, 30, 30, 30, 30, 30, 30, 30,
       
  1804     30, 30, 30, 30, 30, 30, 30, 0,
       
  1805 };
       
  1806 
       
  1807 static const Q_UINT8 ui_33[] = {
       
  1808     30, 30, 30, 30, 30, 30, 30, 30,
       
  1809     30, 30, 30, 30, 30, 30, 30, 30,
       
  1810     30, 30, 30, 30, 30, 30, 30, 30,
       
  1811     30, 30, 30, 30, 30, 30, 30, 30,
       
  1812     30, 30, 30, 30, 30, 30, 30, 30,
       
  1813     30, 30, 30, 30, 30, 30, 30, 30,
       
  1814     30, 30, 30, 30, 30, 30, 30, 30,
       
  1815     30, 30, 30, 30, 30, 30, 30, 30,
       
  1816     30, 30, 30, 30, 30, 30, 30, 30,
       
  1817     30, 30, 30, 30, 30, 30, 30, 30,
       
  1818     30, 30, 30, 30, 30, 30, 30, 30,
       
  1819     30, 30, 30, 30, 30, 30, 30, 30,
       
  1820     30, 30, 30, 30, 30, 30, 30, 30,
       
  1821     30, 30, 30, 30, 30, 30, 30, 30,
       
  1822     30, 30, 30, 30, 30, 30, 30, 0,
       
  1823     0, 0, 0, 30, 30, 30, 30, 30,
       
  1824     30, 30, 30, 30, 30, 30, 30, 30,
       
  1825     30, 30, 30, 30, 30, 30, 30, 30,
       
  1826     30, 30, 30, 30, 30, 30, 30, 30,
       
  1827     30, 30, 30, 30, 30, 30, 30, 30,
       
  1828     30, 30, 30, 30, 30, 30, 30, 30,
       
  1829     30, 30, 30, 30, 30, 30, 30, 30,
       
  1830     30, 30, 30, 30, 30, 30, 30, 30,
       
  1831     30, 30, 30, 30, 30, 30, 30, 30,
       
  1832     30, 30, 30, 30, 30, 30, 30, 30,
       
  1833     30, 30, 30, 30, 30, 30, 30, 30,
       
  1834     30, 30, 30, 30, 30, 30, 30, 30,
       
  1835     30, 30, 30, 30, 30, 30, 0, 0,
       
  1836     30, 30, 30, 30, 30, 30, 30, 30,
       
  1837     30, 30, 30, 30, 30, 30, 30, 30,
       
  1838     30, 30, 30, 30, 30, 30, 30, 30,
       
  1839     30, 30, 30, 30, 30, 30, 30, 0,
       
  1840 };
       
  1841 
       
  1842 static const Q_UINT8 ui_34[] = {
       
  1843     19, 0, 0, 0, 0, 0, 0, 0,
       
  1844     0, 0, 0, 0, 0, 0, 0, 0,
       
  1845     0, 0, 0, 0, 0, 0, 0, 0,
       
  1846     0, 0, 0, 0, 0, 0, 0, 0,
       
  1847     0, 0, 0, 0, 0, 0, 0, 0,
       
  1848     0, 0, 0, 0, 0, 0, 0, 0,
       
  1849     0, 0, 0, 0, 0, 0, 0, 0,
       
  1850     0, 0, 0, 0, 0, 0, 0, 0,
       
  1851     0, 0, 0, 0, 0, 0, 0, 0,
       
  1852     0, 0, 0, 0, 0, 0, 0, 0,
       
  1853     0, 0, 0, 0, 0, 0, 0, 0,
       
  1854     0, 0, 0, 0, 0, 0, 0, 0,
       
  1855     0, 0, 0, 0, 0, 0, 0, 0,
       
  1856     0, 0, 0, 0, 0, 0, 0, 0,
       
  1857     0, 0, 0, 0, 0, 0, 0, 0,
       
  1858     0, 0, 0, 0, 0, 0, 0, 0,
       
  1859     0, 0, 0, 0, 0, 0, 0, 0,
       
  1860     0, 0, 0, 0, 0, 0, 0, 0,
       
  1861     0, 0, 0, 0, 0, 0, 0, 0,
       
  1862     0, 0, 0, 0, 0, 0, 0, 0,
       
  1863     0, 0, 0, 0, 0, 0, 0, 0,
       
  1864     0, 0, 0, 0, 0, 0, 0, 0,
       
  1865     0, 0, 0, 0, 0, 0, 0, 0,
       
  1866     0, 0, 0, 0, 0, 0, 0, 0,
       
  1867     0, 0, 0, 0, 0, 0, 0, 0,
       
  1868     0, 0, 0, 0, 0, 0, 0, 0,
       
  1869     0, 0, 0, 0, 0, 0, 0, 0,
       
  1870     0, 0, 0, 0, 0, 0, 0, 0,
       
  1871     0, 0, 0, 0, 0, 0, 0, 0,
       
  1872     0, 0, 0, 0, 0, 0, 0, 0,
       
  1873     0, 0, 0, 0, 0, 0, 0, 0,
       
  1874     0, 0, 0, 0, 0, 0, 0, 0,
       
  1875 };
       
  1876 
       
  1877 static const Q_UINT8 ui_4D[] = {
       
  1878     0, 0, 0, 0, 0, 0, 0, 0,
       
  1879     0, 0, 0, 0, 0, 0, 0, 0,
       
  1880     0, 0, 0, 0, 0, 0, 0, 0,
       
  1881     0, 0, 0, 0, 0, 0, 0, 0,
       
  1882     0, 0, 0, 0, 0, 0, 0, 0,
       
  1883     0, 0, 0, 0, 0, 0, 0, 0,
       
  1884     0, 0, 0, 0, 0, 0, 0, 0,
       
  1885     0, 0, 0, 0, 0, 0, 0, 0,
       
  1886     0, 0, 0, 0, 0, 0, 0, 0,
       
  1887     0, 0, 0, 0, 0, 0, 0, 0,
       
  1888     0, 0, 0, 0, 0, 0, 0, 0,
       
  1889     0, 0, 0, 0, 0, 0, 0, 0,
       
  1890     0, 0, 0, 0, 0, 0, 0, 0,
       
  1891     0, 0, 0, 0, 0, 0, 0, 0,
       
  1892     0, 0, 0, 0, 0, 0, 0, 0,
       
  1893     0, 0, 0, 0, 0, 0, 0, 0,
       
  1894     0, 0, 0, 0, 0, 0, 0, 0,
       
  1895     0, 0, 0, 0, 0, 0, 0, 0,
       
  1896     0, 0, 0, 0, 0, 0, 0, 0,
       
  1897     0, 0, 0, 0, 0, 0, 0, 0,
       
  1898     0, 0, 0, 0, 0, 0, 0, 0,
       
  1899     0, 0, 0, 0, 0, 0, 0, 0,
       
  1900     0, 0, 0, 0, 0, 19, 0, 0,
       
  1901     0, 0, 0, 0, 0, 0, 0, 0,
       
  1902     0, 0, 0, 0, 0, 0, 0, 0,
       
  1903     0, 0, 0, 0, 0, 0, 0, 0,
       
  1904     0, 0, 0, 0, 0, 0, 0, 0,
       
  1905     0, 0, 0, 0, 0, 0, 0, 0,
       
  1906     0, 0, 0, 0, 0, 0, 0, 0,
       
  1907     0, 0, 0, 0, 0, 0, 0, 0,
       
  1908     0, 0, 0, 0, 0, 0, 0, 0,
       
  1909     0, 0, 0, 0, 0, 0, 0, 0,
       
  1910 };
       
  1911 
       
  1912 static const Q_UINT8 ui_9F[] = {
       
  1913     0, 0, 0, 0, 0, 0, 0, 0,
       
  1914     0, 0, 0, 0, 0, 0, 0, 0,
       
  1915     0, 0, 0, 0, 0, 0, 0, 0,
       
  1916     0, 0, 0, 0, 0, 0, 0, 0,
       
  1917     0, 0, 0, 0, 0, 0, 0, 0,
       
  1918     0, 0, 0, 0, 0, 0, 0, 0,
       
  1919     0, 0, 0, 0, 0, 0, 0, 0,
       
  1920     0, 0, 0, 0, 0, 0, 0, 0,
       
  1921     0, 0, 0, 0, 0, 0, 0, 0,
       
  1922     0, 0, 0, 0, 0, 0, 0, 0,
       
  1923     0, 0, 0, 0, 0, 0, 0, 0,
       
  1924     0, 0, 0, 0, 0, 0, 0, 0,
       
  1925     0, 0, 0, 0, 0, 0, 0, 0,
       
  1926     0, 0, 0, 0, 0, 0, 0, 0,
       
  1927     0, 0, 0, 0, 0, 0, 0, 0,
       
  1928     0, 0, 0, 0, 0, 0, 0, 0,
       
  1929     0, 0, 0, 0, 0, 0, 0, 0,
       
  1930     0, 0, 0, 0, 0, 0, 0, 0,
       
  1931     0, 0, 0, 0, 0, 0, 0, 0,
       
  1932     0, 0, 0, 0, 0, 0, 0, 0,
       
  1933     0, 0, 0, 0, 0, 19, 0, 0,
       
  1934     0, 0, 0, 0, 0, 0, 0, 0,
       
  1935     0, 0, 0, 0, 0, 0, 0, 0,
       
  1936     0, 0, 0, 0, 0, 0, 0, 0,
       
  1937     0, 0, 0, 0, 0, 0, 0, 0,
       
  1938     0, 0, 0, 0, 0, 0, 0, 0,
       
  1939     0, 0, 0, 0, 0, 0, 0, 0,
       
  1940     0, 0, 0, 0, 0, 0, 0, 0,
       
  1941     0, 0, 0, 0, 0, 0, 0, 0,
       
  1942     0, 0, 0, 0, 0, 0, 0, 0,
       
  1943     0, 0, 0, 0, 0, 0, 0, 0,
       
  1944     0, 0, 0, 0, 0, 0, 0, 0,
       
  1945 };
       
  1946 
       
  1947 static const Q_UINT8 ui_A4[] = {
       
  1948     19, 19, 19, 19, 19, 19, 19, 19,
       
  1949     19, 19, 19, 19, 19, 19, 19, 19,
       
  1950     19, 19, 19, 19, 19, 19, 19, 19,
       
  1951     19, 19, 19, 19, 19, 19, 19, 19,
       
  1952     19, 19, 19, 19, 19, 19, 19, 19,
       
  1953     19, 19, 19, 19, 19, 19, 19, 19,
       
  1954     19, 19, 19, 19, 19, 19, 19, 19,
       
  1955     19, 19, 19, 19, 19, 19, 19, 19,
       
  1956     19, 19, 19, 19, 19, 19, 19, 19,
       
  1957     19, 19, 19, 19, 19, 19, 19, 19,
       
  1958     19, 19, 19, 19, 19, 19, 19, 19,
       
  1959     19, 19, 19, 19, 19, 19, 19, 19,
       
  1960     19, 19, 19, 19, 19, 19, 19, 19,
       
  1961     19, 19, 19, 19, 19, 19, 19, 19,
       
  1962     19, 19, 19, 19, 19, 19, 19, 19,
       
  1963     19, 19, 19, 19, 19, 19, 19, 19,
       
  1964     19, 19, 19, 19, 19, 19, 19, 19,
       
  1965     19, 19, 19, 19, 19, 0, 0, 0,
       
  1966     30, 30, 30, 30, 30, 30, 30, 30,
       
  1967     30, 30, 30, 30, 30, 30, 30, 30,
       
  1968     30, 30, 0, 0, 30, 30, 30, 30,
       
  1969     30, 30, 30, 30, 30, 30, 30, 30,
       
  1970     30, 30, 30, 30, 0, 30, 30, 30,
       
  1971     30, 30, 30, 30, 30, 30, 30, 30,
       
  1972     30, 0, 30, 30, 30, 0, 30, 0,
       
  1973     0, 0, 0, 0, 0, 0, 0, 0,
       
  1974     0, 0, 0, 0, 0, 0, 0, 0,
       
  1975     0, 0, 0, 0, 0, 0, 0, 0,
       
  1976     0, 0, 0, 0, 0, 0, 0, 0,
       
  1977     0, 0, 0, 0, 0, 0, 0, 0,
       
  1978     0, 0, 0, 0, 0, 0, 0, 0,
       
  1979     0, 0, 0, 0, 0, 0, 0, 0,
       
  1980 };
       
  1981 
       
  1982 static const Q_UINT8 ui_D7[] = {
       
  1983     0, 0, 0, 0, 0, 0, 0, 0,
       
  1984     0, 0, 0, 0, 0, 0, 0, 0,
       
  1985     0, 0, 0, 0, 0, 0, 0, 0,
       
  1986     0, 0, 0, 0, 0, 0, 0, 0,
       
  1987     0, 0, 0, 0, 0, 0, 0, 0,
       
  1988     0, 0, 0, 0, 0, 0, 0, 0,
       
  1989     0, 0, 0, 0, 0, 0, 0, 0,
       
  1990     0, 0, 0, 0, 0, 0, 0, 0,
       
  1991     0, 0, 0, 0, 0, 0, 0, 0,
       
  1992     0, 0, 0, 0, 0, 0, 0, 0,
       
  1993     0, 0, 0, 0, 0, 0, 0, 0,
       
  1994     0, 0, 0, 0, 0, 0, 0, 0,
       
  1995     0, 0, 0, 0, 0, 0, 0, 0,
       
  1996     0, 0, 0, 0, 0, 0, 0, 0,
       
  1997     0, 0, 0, 0, 0, 0, 0, 0,
       
  1998     0, 0, 0, 0, 0, 0, 0, 0,
       
  1999     0, 0, 0, 0, 0, 0, 0, 0,
       
  2000     0, 0, 0, 0, 0, 0, 0, 0,
       
  2001     0, 0, 0, 0, 0, 0, 0, 0,
       
  2002     0, 0, 0, 0, 0, 0, 0, 0,
       
  2003     0, 0, 0, 19, 0, 0, 0, 0,
       
  2004     0, 0, 0, 0, 0, 0, 0, 0,
       
  2005     0, 0, 0, 0, 0, 0, 0, 0,
       
  2006     0, 0, 0, 0, 0, 0, 0, 0,
       
  2007     0, 0, 0, 0, 0, 0, 0, 0,
       
  2008     0, 0, 0, 0, 0, 0, 0, 0,
       
  2009     0, 0, 0, 0, 0, 0, 0, 0,
       
  2010     0, 0, 0, 0, 0, 0, 0, 0,
       
  2011     0, 0, 0, 0, 0, 0, 0, 0,
       
  2012     0, 0, 0, 0, 0, 0, 0, 0,
       
  2013     0, 0, 0, 0, 0, 0, 0, 0,
       
  2014     0, 0, 0, 0, 0, 0, 0, 0,
       
  2015 };
       
  2016 
       
  2017 static const Q_UINT8 ui_D8[] = {
       
  2018     12, 0, 0, 0, 0, 0, 0, 0,
       
  2019     0, 0, 0, 0, 0, 0, 0, 0,
       
  2020     0, 0, 0, 0, 0, 0, 0, 0,
       
  2021     0, 0, 0, 0, 0, 0, 0, 0,
       
  2022     0, 0, 0, 0, 0, 0, 0, 0,
       
  2023     0, 0, 0, 0, 0, 0, 0, 0,
       
  2024     0, 0, 0, 0, 0, 0, 0, 0,
       
  2025     0, 0, 0, 0, 0, 0, 0, 0,
       
  2026     0, 0, 0, 0, 0, 0, 0, 0,
       
  2027     0, 0, 0, 0, 0, 0, 0, 0,
       
  2028     0, 0, 0, 0, 0, 0, 0, 0,
       
  2029     0, 0, 0, 0, 0, 0, 0, 0,
       
  2030     0, 0, 0, 0, 0, 0, 0, 0,
       
  2031     0, 0, 0, 0, 0, 0, 0, 0,
       
  2032     0, 0, 0, 0, 0, 0, 0, 0,
       
  2033     0, 0, 0, 0, 0, 0, 0, 0,
       
  2034     0, 0, 0, 0, 0, 0, 0, 0,
       
  2035     0, 0, 0, 0, 0, 0, 0, 0,
       
  2036     0, 0, 0, 0, 0, 0, 0, 0,
       
  2037     0, 0, 0, 0, 0, 0, 0, 0,
       
  2038     0, 0, 0, 0, 0, 0, 0, 0,
       
  2039     0, 0, 0, 0, 0, 0, 0, 0,
       
  2040     0, 0, 0, 0, 0, 0, 0, 0,
       
  2041     0, 0, 0, 0, 0, 0, 0, 0,
       
  2042     0, 0, 0, 0, 0, 0, 0, 0,
       
  2043     0, 0, 0, 0, 0, 0, 0, 0,
       
  2044     0, 0, 0, 0, 0, 0, 0, 0,
       
  2045     0, 0, 0, 0, 0, 0, 0, 0,
       
  2046     0, 0, 0, 0, 0, 0, 0, 0,
       
  2047     0, 0, 0, 0, 0, 0, 0, 0,
       
  2048     0, 0, 0, 0, 0, 0, 0, 0,
       
  2049     0, 0, 0, 0, 0, 0, 0, 0,
       
  2050 };
       
  2051 
       
  2052 static const Q_UINT8 ui_DB[] = {
       
  2053     0, 0, 0, 0, 0, 0, 0, 0,
       
  2054     0, 0, 0, 0, 0, 0, 0, 0,
       
  2055     0, 0, 0, 0, 0, 0, 0, 0,
       
  2056     0, 0, 0, 0, 0, 0, 0, 0,
       
  2057     0, 0, 0, 0, 0, 0, 0, 0,
       
  2058     0, 0, 0, 0, 0, 0, 0, 0,
       
  2059     0, 0, 0, 0, 0, 0, 0, 0,
       
  2060     0, 0, 0, 0, 0, 0, 0, 0,
       
  2061     0, 0, 0, 0, 0, 0, 0, 0,
       
  2062     0, 0, 0, 0, 0, 0, 0, 0,
       
  2063     0, 0, 0, 0, 0, 0, 0, 0,
       
  2064     0, 0, 0, 0, 0, 0, 0, 0,
       
  2065     0, 0, 0, 0, 0, 0, 0, 0,
       
  2066     0, 0, 0, 0, 0, 0, 0, 0,
       
  2067     0, 0, 0, 0, 0, 0, 0, 0,
       
  2068     0, 0, 0, 0, 0, 0, 0, 12,
       
  2069     12, 0, 0, 0, 0, 0, 0, 0,
       
  2070     0, 0, 0, 0, 0, 0, 0, 0,
       
  2071     0, 0, 0, 0, 0, 0, 0, 0,
       
  2072     0, 0, 0, 0, 0, 0, 0, 0,
       
  2073     0, 0, 0, 0, 0, 0, 0, 0,
       
  2074     0, 0, 0, 0, 0, 0, 0, 0,
       
  2075     0, 0, 0, 0, 0, 0, 0, 0,
       
  2076     0, 0, 0, 0, 0, 0, 0, 0,
       
  2077     0, 0, 0, 0, 0, 0, 0, 0,
       
  2078     0, 0, 0, 0, 0, 0, 0, 0,
       
  2079     0, 0, 0, 0, 0, 0, 0, 0,
       
  2080     0, 0, 0, 0, 0, 0, 0, 0,
       
  2081     0, 0, 0, 0, 0, 0, 0, 0,
       
  2082     0, 0, 0, 0, 0, 0, 0, 0,
       
  2083     0, 0, 0, 0, 0, 0, 0, 0,
       
  2084     0, 0, 0, 0, 0, 0, 0, 12,
       
  2085 };
       
  2086 
       
  2087 static const Q_UINT8 ui_DF[] = {
       
  2088     0, 0, 0, 0, 0, 0, 0, 0,
       
  2089     0, 0, 0, 0, 0, 0, 0, 0,
       
  2090     0, 0, 0, 0, 0, 0, 0, 0,
       
  2091     0, 0, 0, 0, 0, 0, 0, 0,
       
  2092     0, 0, 0, 0, 0, 0, 0, 0,
       
  2093     0, 0, 0, 0, 0, 0, 0, 0,
       
  2094     0, 0, 0, 0, 0, 0, 0, 0,
       
  2095     0, 0, 0, 0, 0, 0, 0, 0,
       
  2096     0, 0, 0, 0, 0, 0, 0, 0,
       
  2097     0, 0, 0, 0, 0, 0, 0, 0,
       
  2098     0, 0, 0, 0, 0, 0, 0, 0,
       
  2099     0, 0, 0, 0, 0, 0, 0, 0,
       
  2100     0, 0, 0, 0, 0, 0, 0, 0,
       
  2101     0, 0, 0, 0, 0, 0, 0, 0,
       
  2102     0, 0, 0, 0, 0, 0, 0, 0,
       
  2103     0, 0, 0, 0, 0, 0, 0, 0,
       
  2104     0, 0, 0, 0, 0, 0, 0, 0,
       
  2105     0, 0, 0, 0, 0, 0, 0, 0,
       
  2106     0, 0, 0, 0, 0, 0, 0, 0,
       
  2107     0, 0, 0, 0, 0, 0, 0, 0,
       
  2108     0, 0, 0, 0, 0, 0, 0, 0,
       
  2109     0, 0, 0, 0, 0, 0, 0, 0,
       
  2110     0, 0, 0, 0, 0, 0, 0, 0,
       
  2111     0, 0, 0, 0, 0, 0, 0, 0,
       
  2112     0, 0, 0, 0, 0, 0, 0, 0,
       
  2113     0, 0, 0, 0, 0, 0, 0, 0,
       
  2114     0, 0, 0, 0, 0, 0, 0, 0,
       
  2115     0, 0, 0, 0, 0, 0, 0, 0,
       
  2116     0, 0, 0, 0, 0, 0, 0, 0,
       
  2117     0, 0, 0, 0, 0, 0, 0, 0,
       
  2118     0, 0, 0, 0, 0, 0, 0, 0,
       
  2119     0, 0, 0, 0, 0, 0, 0, 12,
       
  2120 };
       
  2121 
       
  2122 static const Q_UINT8 ui_E0[] = {
       
  2123     13, 0, 0, 0, 0, 0, 0, 0,
       
  2124     0, 0, 0, 0, 0, 0, 0, 0,
       
  2125     0, 0, 0, 0, 0, 0, 0, 0,
       
  2126     0, 0, 0, 0, 0, 0, 0, 0,
       
  2127     0, 0, 0, 0, 0, 0, 0, 0,
       
  2128     0, 0, 0, 0, 0, 0, 0, 0,
       
  2129     0, 0, 0, 0, 0, 0, 0, 0,
       
  2130     0, 0, 0, 0, 0, 0, 0, 0,
       
  2131     0, 0, 0, 0, 0, 0, 0, 0,
       
  2132     0, 0, 0, 0, 0, 0, 0, 0,
       
  2133     0, 0, 0, 0, 0, 0, 0, 0,
       
  2134     0, 0, 0, 0, 0, 0, 0, 0,
       
  2135     0, 0, 0, 0, 0, 0, 0, 0,
       
  2136     0, 0, 0, 0, 0, 0, 0, 0,
       
  2137     0, 0, 0, 0, 0, 0, 0, 0,
       
  2138     0, 0, 0, 0, 0, 0, 0, 0,
       
  2139     0, 0, 0, 0, 0, 0, 0, 0,
       
  2140     0, 0, 0, 0, 0, 0, 0, 0,
       
  2141     0, 0, 0, 0, 0, 0, 0, 0,
       
  2142     0, 0, 0, 0, 0, 0, 0, 0,
       
  2143     0, 0, 0, 0, 0, 0, 0, 0,
       
  2144     0, 0, 0, 0, 0, 0, 0, 0,
       
  2145     0, 0, 0, 0, 0, 0, 0, 0,
       
  2146     0, 0, 0, 0, 0, 0, 0, 0,
       
  2147     0, 0, 0, 0, 0, 0, 0, 0,
       
  2148     0, 0, 0, 0, 0, 0, 0, 0,
       
  2149     0, 0, 0, 0, 0, 0, 0, 0,
       
  2150     0, 0, 0, 0, 0, 0, 0, 0,
       
  2151     0, 0, 0, 0, 0, 0, 0, 0,
       
  2152     0, 0, 0, 0, 0, 0, 0, 0,
       
  2153     0, 0, 0, 0, 0, 0, 0, 0,
       
  2154     0, 0, 0, 0, 0, 0, 0, 0,
       
  2155 };
       
  2156 
       
  2157 static const Q_UINT8 ui_F8[] = {
       
  2158     0, 0, 0, 0, 0, 0, 0, 0,
       
  2159     0, 0, 0, 0, 0, 0, 0, 0,
       
  2160     0, 0, 0, 0, 0, 0, 0, 0,
       
  2161     0, 0, 0, 0, 0, 0, 0, 0,
       
  2162     0, 0, 0, 0, 0, 0, 0, 0,
       
  2163     0, 0, 0, 0, 0, 0, 0, 0,
       
  2164     0, 0, 0, 0, 0, 0, 0, 0,
       
  2165     0, 0, 0, 0, 0, 0, 0, 0,
       
  2166     0, 0, 0, 0, 0, 0, 0, 0,
       
  2167     0, 0, 0, 0, 0, 0, 0, 0,
       
  2168     0, 0, 0, 0, 0, 0, 0, 0,
       
  2169     0, 0, 0, 0, 0, 0, 0, 0,
       
  2170     0, 0, 0, 0, 0, 0, 0, 0,
       
  2171     0, 0, 0, 0, 0, 0, 0, 0,
       
  2172     0, 0, 0, 0, 0, 0, 0, 0,
       
  2173     0, 0, 0, 0, 0, 0, 0, 0,
       
  2174     0, 0, 0, 0, 0, 0, 0, 0,
       
  2175     0, 0, 0, 0, 0, 0, 0, 0,
       
  2176     0, 0, 0, 0, 0, 0, 0, 0,
       
  2177     0, 0, 0, 0, 0, 0, 0, 0,
       
  2178     0, 0, 0, 0, 0, 0, 0, 0,
       
  2179     0, 0, 0, 0, 0, 0, 0, 0,
       
  2180     0, 0, 0, 0, 0, 0, 0, 0,
       
  2181     0, 0, 0, 0, 0, 0, 0, 0,
       
  2182     0, 0, 0, 0, 0, 0, 0, 0,
       
  2183     0, 0, 0, 0, 0, 0, 0, 0,
       
  2184     0, 0, 0, 0, 0, 0, 0, 0,
       
  2185     0, 0, 0, 0, 0, 0, 0, 0,
       
  2186     0, 0, 0, 0, 0, 0, 0, 0,
       
  2187     0, 0, 0, 0, 0, 0, 0, 0,
       
  2188     0, 0, 0, 0, 0, 0, 0, 0,
       
  2189     0, 0, 0, 0, 0, 0, 0, 13,
       
  2190 };
       
  2191 
       
  2192 static const Q_UINT8 ui_FA[] = {
       
  2193     19, 19, 19, 19, 19, 19, 19, 19,
       
  2194     19, 19, 19, 19, 19, 19, 19, 19,
       
  2195     19, 19, 19, 19, 19, 19, 19, 19,
       
  2196     19, 19, 19, 19, 19, 19, 19, 19,
       
  2197     19, 19, 19, 19, 19, 19, 19, 19,
       
  2198     19, 19, 19, 19, 19, 19, 0, 0,
       
  2199     0, 0, 0, 0, 0, 0, 0, 0,
       
  2200     0, 0, 0, 0, 0, 0, 0, 0,
       
  2201     0, 0, 0, 0, 0, 0, 0, 0,
       
  2202     0, 0, 0, 0, 0, 0, 0, 0,
       
  2203     0, 0, 0, 0, 0, 0, 0, 0,
       
  2204     0, 0, 0, 0, 0, 0, 0, 0,
       
  2205     0, 0, 0, 0, 0, 0, 0, 0,
       
  2206     0, 0, 0, 0, 0, 0, 0, 0,
       
  2207     0, 0, 0, 0, 0, 0, 0, 0,
       
  2208     0, 0, 0, 0, 0, 0, 0, 0,
       
  2209     0, 0, 0, 0, 0, 0, 0, 0,
       
  2210     0, 0, 0, 0, 0, 0, 0, 0,
       
  2211     0, 0, 0, 0, 0, 0, 0, 0,
       
  2212     0, 0, 0, 0, 0, 0, 0, 0,
       
  2213     0, 0, 0, 0, 0, 0, 0, 0,
       
  2214     0, 0, 0, 0, 0, 0, 0, 0,
       
  2215     0, 0, 0, 0, 0, 0, 0, 0,
       
  2216     0, 0, 0, 0, 0, 0, 0, 0,
       
  2217     0, 0, 0, 0, 0, 0, 0, 0,
       
  2218     0, 0, 0, 0, 0, 0, 0, 0,
       
  2219     0, 0, 0, 0, 0, 0, 0, 0,
       
  2220     0, 0, 0, 0, 0, 0, 0, 0,
       
  2221     0, 0, 0, 0, 0, 0, 0, 0,
       
  2222     0, 0, 0, 0, 0, 0, 0, 0,
       
  2223     0, 0, 0, 0, 0, 0, 0, 0,
       
  2224     0, 0, 0, 0, 0, 0, 0, 0,
       
  2225 };
       
  2226 
       
  2227 static const Q_UINT8 ui_FB[] = {
       
  2228     16, 16, 16, 16, 16, 16, 16, 0,
       
  2229     0, 0, 0, 0, 0, 0, 0, 0,
       
  2230     0, 0, 0, 16, 16, 16, 16, 16,
       
  2231     0, 0, 0, 0, 0, 19, 1, 19,
       
  2232     19, 19, 19, 19, 19, 19, 19, 19,
       
  2233     19, 27, 19, 19, 19, 19, 19, 19,
       
  2234     19, 19, 19, 19, 19, 19, 19, 0,
       
  2235     19, 19, 19, 19, 19, 0, 19, 0,
       
  2236     19, 19, 0, 19, 19, 0, 19, 19,
       
  2237     19, 19, 19, 19, 19, 19, 19, 19,
       
  2238     19, 19, 19, 19, 19, 19, 19, 19,
       
  2239     19, 19, 19, 19, 19, 19, 19, 19,
       
  2240     19, 19, 19, 19, 19, 19, 19, 19,
       
  2241     19, 19, 19, 19, 19, 19, 19, 19,
       
  2242     19, 19, 19, 19, 19, 19, 19, 19,
       
  2243     19, 19, 19, 19, 19, 19, 19, 19,
       
  2244     19, 19, 19, 19, 19, 19, 19, 19,
       
  2245     19, 19, 19, 19, 19, 19, 19, 19,
       
  2246     19, 19, 19, 19, 19, 19, 19, 19,
       
  2247     19, 19, 19, 19, 19, 19, 19, 19,
       
  2248     19, 19, 19, 19, 19, 19, 19, 19,
       
  2249     19, 19, 19, 19, 19, 19, 19, 19,
       
  2250     19, 19, 0, 0, 0, 0, 0, 0,
       
  2251     0, 0, 0, 0, 0, 0, 0, 0,
       
  2252     0, 0, 0, 0, 0, 0, 0, 0,
       
  2253     0, 0, 0, 0, 0, 0, 0, 0,
       
  2254     0, 0, 0, 19, 19, 19, 19, 19,
       
  2255     19, 19, 19, 19, 19, 19, 19, 19,
       
  2256     19, 19, 19, 19, 19, 19, 19, 19,
       
  2257     19, 19, 19, 19, 19, 19, 19, 19,
       
  2258     19, 19, 19, 19, 19, 19, 19, 19,
       
  2259     19, 19, 19, 19, 19, 19, 19, 19,
       
  2260 };
       
  2261 
       
  2262 static const Q_UINT8 ui_FD[] = {
       
  2263     19, 19, 19, 19, 19, 19, 19, 19,
       
  2264     19, 19, 19, 19, 19, 19, 19, 19,
       
  2265     19, 19, 19, 19, 19, 19, 19, 19,
       
  2266     19, 19, 19, 19, 19, 19, 19, 19,
       
  2267     19, 19, 19, 19, 19, 19, 19, 19,
       
  2268     19, 19, 19, 19, 19, 19, 19, 19,
       
  2269     19, 19, 19, 19, 19, 19, 19, 19,
       
  2270     19, 19, 19, 19, 19, 19, 22, 23,
       
  2271     0, 0, 0, 0, 0, 0, 0, 0,
       
  2272     0, 0, 0, 0, 0, 0, 0, 0,
       
  2273     19, 19, 19, 19, 19, 19, 19, 19,
       
  2274     19, 19, 19, 19, 19, 19, 19, 19,
       
  2275     19, 19, 19, 19, 19, 19, 19, 19,
       
  2276     19, 19, 19, 19, 19, 19, 19, 19,
       
  2277     19, 19, 19, 19, 19, 19, 19, 19,
       
  2278     19, 19, 19, 19, 19, 19, 19, 19,
       
  2279     19, 19, 19, 19, 19, 19, 19, 19,
       
  2280     19, 19, 19, 19, 19, 19, 19, 19,
       
  2281     0, 0, 19, 19, 19, 19, 19, 19,
       
  2282     19, 19, 19, 19, 19, 19, 19, 19,
       
  2283     19, 19, 19, 19, 19, 19, 19, 19,
       
  2284     19, 19, 19, 19, 19, 19, 19, 19,
       
  2285     19, 19, 19, 19, 19, 19, 19, 19,
       
  2286     19, 19, 19, 19, 19, 19, 19, 19,
       
  2287     19, 19, 19, 19, 19, 19, 19, 19,
       
  2288     0, 0, 0, 0, 0, 0, 0, 0,
       
  2289     0, 0, 0, 0, 0, 0, 0, 0,
       
  2290     0, 0, 0, 0, 0, 0, 0, 0,
       
  2291     0, 0, 0, 0, 0, 0, 0, 0,
       
  2292     0, 0, 0, 0, 0, 0, 0, 0,
       
  2293     19, 19, 19, 19, 19, 19, 19, 19,
       
  2294     19, 19, 19, 19, 0, 0, 0, 0,
       
  2295 };
       
  2296 
       
  2297 static const Q_UINT8 ui_FE[] = {
       
  2298     0, 0, 0, 0, 0, 0, 0, 0,
       
  2299     0, 0, 0, 0, 0, 0, 0, 0,
       
  2300     0, 0, 0, 0, 0, 0, 0, 0,
       
  2301     0, 0, 0, 0, 0, 0, 0, 0,
       
  2302     1, 1, 1, 1, 0, 0, 0, 0,
       
  2303     0, 0, 0, 0, 0, 0, 0, 0,
       
  2304     26, 21, 21, 20, 20, 22, 23, 22,
       
  2305     23, 22, 23, 22, 23, 22, 23, 22,
       
  2306     23, 22, 23, 22, 23, 0, 0, 0,
       
  2307     0, 26, 26, 26, 26, 20, 20, 20,
       
  2308     26, 26, 26, 0, 26, 26, 26, 26,
       
  2309     21, 22, 23, 22, 23, 22, 23, 26,
       
  2310     26, 26, 27, 21, 27, 27, 27, 0,
       
  2311     26, 28, 26, 26, 0, 0, 0, 0,
       
  2312     19, 19, 19, 0, 19, 0, 19, 19,
       
  2313     19, 19, 19, 19, 19, 19, 19, 19,
       
  2314     19, 19, 19, 19, 19, 19, 19, 19,
       
  2315     19, 19, 19, 19, 19, 19, 19, 19,
       
  2316     19, 19, 19, 19, 19, 19, 19, 19,
       
  2317     19, 19, 19, 19, 19, 19, 19, 19,
       
  2318     19, 19, 19, 19, 19, 19, 19, 19,
       
  2319     19, 19, 19, 19, 19, 19, 19, 19,
       
  2320     19, 19, 19, 19, 19, 19, 19, 19,
       
  2321     19, 19, 19, 19, 19, 19, 19, 19,
       
  2322     19, 19, 19, 19, 19, 19, 19, 19,
       
  2323     19, 19, 19, 19, 19, 19, 19, 19,
       
  2324     19, 19, 19, 19, 19, 19, 19, 19,
       
  2325     19, 19, 19, 19, 19, 19, 19, 19,
       
  2326     19, 19, 19, 19, 19, 19, 19, 19,
       
  2327     19, 19, 19, 19, 19, 19, 19, 19,
       
  2328     19, 19, 19, 19, 19, 19, 19, 19,
       
  2329     19, 19, 19, 19, 19, 0, 0, 11,
       
  2330 };
       
  2331 
       
  2332 static const Q_UINT8 ui_FF[] = {
       
  2333     0, 26, 26, 26, 28, 26, 26, 26,
       
  2334     22, 23, 26, 27, 26, 21, 26, 26,
       
  2335     4, 4, 4, 4, 4, 4, 4, 4,
       
  2336     4, 4, 26, 26, 27, 27, 27, 26,
       
  2337     26, 15, 15, 15, 15, 15, 15, 15,
       
  2338     15, 15, 15, 15, 15, 15, 15, 15,
       
  2339     15, 15, 15, 15, 15, 15, 15, 15,
       
  2340     15, 15, 15, 22, 26, 23, 29, 20,
       
  2341     29, 16, 16, 16, 16, 16, 16, 16,
       
  2342     16, 16, 16, 16, 16, 16, 16, 16,
       
  2343     16, 16, 16, 16, 16, 16, 16, 16,
       
  2344     16, 16, 16, 22, 27, 23, 27, 0,
       
  2345     0, 26, 22, 23, 26, 20, 19, 19,
       
  2346     19, 19, 19, 19, 19, 19, 19, 19,
       
  2347     18, 19, 19, 19, 19, 19, 19, 19,
       
  2348     19, 19, 19, 19, 19, 19, 19, 19,
       
  2349     19, 19, 19, 19, 19, 19, 19, 19,
       
  2350     19, 19, 19, 19, 19, 19, 19, 19,
       
  2351     19, 19, 19, 19, 19, 19, 19, 19,
       
  2352     19, 19, 19, 19, 19, 19, 18, 18,
       
  2353     19, 19, 19, 19, 19, 19, 19, 19,
       
  2354     19, 19, 19, 19, 19, 19, 19, 19,
       
  2355     19, 19, 19, 19, 19, 19, 19, 19,
       
  2356     19, 19, 19, 19, 19, 19, 19, 0,
       
  2357     0, 0, 19, 19, 19, 19, 19, 19,
       
  2358     0, 0, 19, 19, 19, 19, 19, 19,
       
  2359     0, 0, 19, 19, 19, 19, 19, 19,
       
  2360     0, 0, 19, 19, 19, 0, 0, 0,
       
  2361     28, 28, 27, 29, 30, 28, 28, 0,
       
  2362     30, 27, 27, 27, 27, 30, 30, 0,
       
  2363     0, 0, 0, 0, 0, 0, 0, 0,
       
  2364     0, 11, 11, 11, 30, 30, 0, 0,
       
  2365 };
       
  2366 
       
  2367 static const Q_UINT8 * const unicode_info[256] = {
       
  2368     ui_00, ui_01, ui_02, ui_03, ui_04, ui_05, ui_06, ui_07,
       
  2369     ui_08, ui_09, ui_0A, ui_0B, ui_0C, ui_0D, ui_0E, ui_0F,
       
  2370     ui_10, ui_11, ui_12, ui_13, ui_14, ui_15, ui_16, ui_17,
       
  2371     ui_18, ui_08, ui_08, ui_08, ui_08, ui_08, ui_1E, ui_1F,
       
  2372     ui_20, ui_21, ui_22, ui_23, ui_24, ui_25, ui_26, ui_27,
       
  2373     ui_28, ui_08, ui_08, ui_08, ui_08, ui_08, ui_2E, ui_2F,
       
  2374     ui_30, ui_31, ui_32, ui_33, ui_34, ui_08, ui_08, ui_08,
       
  2375     ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08,
       
  2376     ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08,
       
  2377     ui_08, ui_08, ui_08, ui_08, ui_08, ui_4D, ui_34, ui_08,
       
  2378     ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08,
       
  2379     ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08,
       
  2380     ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08,
       
  2381     ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08,
       
  2382     ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08,
       
  2383     ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08,
       
  2384     ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08,
       
  2385     ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08,
       
  2386     ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08,
       
  2387     ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_9F,
       
  2388     ui_15, ui_15, ui_15, ui_15, ui_A4, ui_08, ui_08, ui_08,
       
  2389     ui_08, ui_08, ui_08, ui_08, ui_34, ui_08, ui_08, ui_08,
       
  2390     ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08,
       
  2391     ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08,
       
  2392     ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08,
       
  2393     ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08,
       
  2394     ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_D7,
       
  2395     ui_D8, ui_08, ui_08, ui_DB, ui_D8, ui_08, ui_08, ui_DF,
       
  2396     ui_E0, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08,
       
  2397     ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08,
       
  2398     ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08,
       
  2399     ui_F8, ui_15, ui_FA, ui_FB, ui_15, ui_FD, ui_FE, ui_FF,
       
  2400 };
       
  2401 // 15616 bytes
       
  2402 
       
  2403 static const Q_UINT16 decomposition_map [] = {
       
  2404     0,
       
  2405     3, 0x00A0, 0x0020, 0,
       
  2406     16, 0x00A8, 0x0020, 0x0308, 0,
       
  2407     9, 0x00AA, 0x0061, 0,
       
  2408     16, 0x00AF, 0x0020, 0x0304, 0,
       
  2409     9, 0x00B2, 0x0032, 0,
       
  2410     9, 0x00B3, 0x0033, 0,
       
  2411     16, 0x00B4, 0x0020, 0x0301, 0,
       
  2412     16, 0x00B5, 0x03BC, 0,
       
  2413     16, 0x00B8, 0x0020, 0x0327, 0,
       
  2414     9, 0x00B9, 0x0031, 0,
       
  2415     9, 0x00BA, 0x006F, 0,
       
  2416     17, 0x00BC, 0x0031, 0x2044, 0x0034, 0,
       
  2417     17, 0x00BD, 0x0031, 0x2044, 0x0032, 0,
       
  2418     17, 0x00BE, 0x0033, 0x2044, 0x0034, 0,
       
  2419     1, 0x00C0, 0x0041, 0x0300, 0,
       
  2420     1, 0x00C1, 0x0041, 0x0301, 0,
       
  2421     1, 0x00C2, 0x0041, 0x0302, 0,
       
  2422     1, 0x00C3, 0x0041, 0x0303, 0,
       
  2423     1, 0x00C4, 0x0041, 0x0308, 0,
       
  2424     1, 0x00C5, 0x0041, 0x030A, 0,
       
  2425     1, 0x00C7, 0x0043, 0x0327, 0,
       
  2426     1, 0x00C8, 0x0045, 0x0300, 0,
       
  2427     1, 0x00C9, 0x0045, 0x0301, 0,
       
  2428     1, 0x00CA, 0x0045, 0x0302, 0,
       
  2429     1, 0x00CB, 0x0045, 0x0308, 0,
       
  2430     1, 0x00CC, 0x0049, 0x0300, 0,
       
  2431     1, 0x00CD, 0x0049, 0x0301, 0,
       
  2432     1, 0x00CE, 0x0049, 0x0302, 0,
       
  2433     1, 0x00CF, 0x0049, 0x0308, 0,
       
  2434     1, 0x00D1, 0x004E, 0x0303, 0,
       
  2435     1, 0x00D2, 0x004F, 0x0300, 0,
       
  2436     1, 0x00D3, 0x004F, 0x0301, 0,
       
  2437     1, 0x00D4, 0x004F, 0x0302, 0,
       
  2438     1, 0x00D5, 0x004F, 0x0303, 0,
       
  2439     1, 0x00D6, 0x004F, 0x0308, 0,
       
  2440     1, 0x00D9, 0x0055, 0x0300, 0,
       
  2441     1, 0x00DA, 0x0055, 0x0301, 0,
       
  2442     1, 0x00DB, 0x0055, 0x0302, 0,
       
  2443     1, 0x00DC, 0x0055, 0x0308, 0,
       
  2444     1, 0x00DD, 0x0059, 0x0301, 0,
       
  2445     1, 0x00E0, 0x0061, 0x0300, 0,
       
  2446     1, 0x00E1, 0x0061, 0x0301, 0,
       
  2447     1, 0x00E2, 0x0061, 0x0302, 0,
       
  2448     1, 0x00E3, 0x0061, 0x0303, 0,
       
  2449     1, 0x00E4, 0x0061, 0x0308, 0,
       
  2450     1, 0x00E5, 0x0061, 0x030A, 0,
       
  2451     1, 0x00E7, 0x0063, 0x0327, 0,
       
  2452     1, 0x00E8, 0x0065, 0x0300, 0,
       
  2453     1, 0x00E9, 0x0065, 0x0301, 0,
       
  2454     1, 0x00EA, 0x0065, 0x0302, 0,
       
  2455     1, 0x00EB, 0x0065, 0x0308, 0,
       
  2456     1, 0x00EC, 0x0069, 0x0300, 0,
       
  2457     1, 0x00ED, 0x0069, 0x0301, 0,
       
  2458     1, 0x00EE, 0x0069, 0x0302, 0,
       
  2459     1, 0x00EF, 0x0069, 0x0308, 0,
       
  2460     1, 0x00F1, 0x006E, 0x0303, 0,
       
  2461     1, 0x00F2, 0x006F, 0x0300, 0,
       
  2462     1, 0x00F3, 0x006F, 0x0301, 0,
       
  2463     1, 0x00F4, 0x006F, 0x0302, 0,
       
  2464     1, 0x00F5, 0x006F, 0x0303, 0,
       
  2465     1, 0x00F6, 0x006F, 0x0308, 0,
       
  2466     1, 0x00F9, 0x0075, 0x0300, 0,
       
  2467     1, 0x00FA, 0x0075, 0x0301, 0,
       
  2468     1, 0x00FB, 0x0075, 0x0302, 0,
       
  2469     1, 0x00FC, 0x0075, 0x0308, 0,
       
  2470     1, 0x00FD, 0x0079, 0x0301, 0,
       
  2471     1, 0x00FF, 0x0079, 0x0308, 0,
       
  2472     1, 0x0100, 0x0041, 0x0304, 0,
       
  2473     1, 0x0101, 0x0061, 0x0304, 0,
       
  2474     1, 0x0102, 0x0041, 0x0306, 0,
       
  2475     1, 0x0103, 0x0061, 0x0306, 0,
       
  2476     1, 0x0104, 0x0041, 0x0328, 0,
       
  2477     1, 0x0105, 0x0061, 0x0328, 0,
       
  2478     1, 0x0106, 0x0043, 0x0301, 0,
       
  2479     1, 0x0107, 0x0063, 0x0301, 0,
       
  2480     1, 0x0108, 0x0043, 0x0302, 0,
       
  2481     1, 0x0109, 0x0063, 0x0302, 0,
       
  2482     1, 0x010A, 0x0043, 0x0307, 0,
       
  2483     1, 0x010B, 0x0063, 0x0307, 0,
       
  2484     1, 0x010C, 0x0043, 0x030C, 0,
       
  2485     1, 0x010D, 0x0063, 0x030C, 0,
       
  2486     1, 0x010E, 0x0044, 0x030C, 0,
       
  2487     1, 0x010F, 0x0064, 0x030C, 0,
       
  2488     1, 0x0112, 0x0045, 0x0304, 0,
       
  2489     1, 0x0113, 0x0065, 0x0304, 0,
       
  2490     1, 0x0114, 0x0045, 0x0306, 0,
       
  2491     1, 0x0115, 0x0065, 0x0306, 0,
       
  2492     1, 0x0116, 0x0045, 0x0307, 0,
       
  2493     1, 0x0117, 0x0065, 0x0307, 0,
       
  2494     1, 0x0118, 0x0045, 0x0328, 0,
       
  2495     1, 0x0119, 0x0065, 0x0328, 0,
       
  2496     1, 0x011A, 0x0045, 0x030C, 0,
       
  2497     1, 0x011B, 0x0065, 0x030C, 0,
       
  2498     1, 0x011C, 0x0047, 0x0302, 0,
       
  2499     1, 0x011D, 0x0067, 0x0302, 0,
       
  2500     1, 0x011E, 0x0047, 0x0306, 0,
       
  2501     1, 0x011F, 0x0067, 0x0306, 0,
       
  2502     1, 0x0120, 0x0047, 0x0307, 0,
       
  2503     1, 0x0121, 0x0067, 0x0307, 0,
       
  2504     1, 0x0122, 0x0047, 0x0327, 0,
       
  2505     1, 0x0123, 0x0067, 0x0327, 0,
       
  2506     1, 0x0124, 0x0048, 0x0302, 0,
       
  2507     1, 0x0125, 0x0068, 0x0302, 0,
       
  2508     1, 0x0128, 0x0049, 0x0303, 0,
       
  2509     1, 0x0129, 0x0069, 0x0303, 0,
       
  2510     1, 0x012A, 0x0049, 0x0304, 0,
       
  2511     1, 0x012B, 0x0069, 0x0304, 0,
       
  2512     1, 0x012C, 0x0049, 0x0306, 0,
       
  2513     1, 0x012D, 0x0069, 0x0306, 0,
       
  2514     1, 0x012E, 0x0049, 0x0328, 0,
       
  2515     1, 0x012F, 0x0069, 0x0328, 0,
       
  2516     1, 0x0130, 0x0049, 0x0307, 0,
       
  2517     16, 0x0132, 0x0049, 0x004A, 0,
       
  2518     16, 0x0133, 0x0069, 0x006A, 0,
       
  2519     1, 0x0134, 0x004A, 0x0302, 0,
       
  2520     1, 0x0135, 0x006A, 0x0302, 0,
       
  2521     1, 0x0136, 0x004B, 0x0327, 0,
       
  2522     1, 0x0137, 0x006B, 0x0327, 0,
       
  2523     1, 0x0139, 0x004C, 0x0301, 0,
       
  2524     1, 0x013A, 0x006C, 0x0301, 0,
       
  2525     1, 0x013B, 0x004C, 0x0327, 0,
       
  2526     1, 0x013C, 0x006C, 0x0327, 0,
       
  2527     1, 0x013D, 0x004C, 0x030C, 0,
       
  2528     1, 0x013E, 0x006C, 0x030C, 0,
       
  2529     16, 0x013F, 0x004C, 0x00B7, 0,
       
  2530     16, 0x0140, 0x006C, 0x00B7, 0,
       
  2531     1, 0x0143, 0x004E, 0x0301, 0,
       
  2532     1, 0x0144, 0x006E, 0x0301, 0,
       
  2533     1, 0x0145, 0x004E, 0x0327, 0,
       
  2534     1, 0x0146, 0x006E, 0x0327, 0,
       
  2535     1, 0x0147, 0x004E, 0x030C, 0,
       
  2536     1, 0x0148, 0x006E, 0x030C, 0,
       
  2537     16, 0x0149, 0x02BC, 0x006E, 0,
       
  2538     1, 0x014C, 0x004F, 0x0304, 0,
       
  2539     1, 0x014D, 0x006F, 0x0304, 0,
       
  2540     1, 0x014E, 0x004F, 0x0306, 0,
       
  2541     1, 0x014F, 0x006F, 0x0306, 0,
       
  2542     1, 0x0150, 0x004F, 0x030B, 0,
       
  2543     1, 0x0151, 0x006F, 0x030B, 0,
       
  2544     1, 0x0154, 0x0052, 0x0301, 0,
       
  2545     1, 0x0155, 0x0072, 0x0301, 0,
       
  2546     1, 0x0156, 0x0052, 0x0327, 0,
       
  2547     1, 0x0157, 0x0072, 0x0327, 0,
       
  2548     1, 0x0158, 0x0052, 0x030C, 0,
       
  2549     1, 0x0159, 0x0072, 0x030C, 0,
       
  2550     1, 0x015A, 0x0053, 0x0301, 0,
       
  2551     1, 0x015B, 0x0073, 0x0301, 0,
       
  2552     1, 0x015C, 0x0053, 0x0302, 0,
       
  2553     1, 0x015D, 0x0073, 0x0302, 0,
       
  2554     1, 0x015E, 0x0053, 0x0327, 0,
       
  2555     1, 0x015F, 0x0073, 0x0327, 0,
       
  2556     1, 0x0160, 0x0053, 0x030C, 0,
       
  2557     1, 0x0161, 0x0073, 0x030C, 0,
       
  2558     1, 0x0162, 0x0054, 0x0327, 0,
       
  2559     1, 0x0163, 0x0074, 0x0327, 0,
       
  2560     1, 0x0164, 0x0054, 0x030C, 0,
       
  2561     1, 0x0165, 0x0074, 0x030C, 0,
       
  2562     1, 0x0168, 0x0055, 0x0303, 0,
       
  2563     1, 0x0169, 0x0075, 0x0303, 0,
       
  2564     1, 0x016A, 0x0055, 0x0304, 0,
       
  2565     1, 0x016B, 0x0075, 0x0304, 0,
       
  2566     1, 0x016C, 0x0055, 0x0306, 0,
       
  2567     1, 0x016D, 0x0075, 0x0306, 0,
       
  2568     1, 0x016E, 0x0055, 0x030A, 0,
       
  2569     1, 0x016F, 0x0075, 0x030A, 0,
       
  2570     1, 0x0170, 0x0055, 0x030B, 0,
       
  2571     1, 0x0171, 0x0075, 0x030B, 0,
       
  2572     1, 0x0172, 0x0055, 0x0328, 0,
       
  2573     1, 0x0173, 0x0075, 0x0328, 0,
       
  2574     1, 0x0174, 0x0057, 0x0302, 0,
       
  2575     1, 0x0175, 0x0077, 0x0302, 0,
       
  2576     1, 0x0176, 0x0059, 0x0302, 0,
       
  2577     1, 0x0177, 0x0079, 0x0302, 0,
       
  2578     1, 0x0178, 0x0059, 0x0308, 0,
       
  2579     1, 0x0179, 0x005A, 0x0301, 0,
       
  2580     1, 0x017A, 0x007A, 0x0301, 0,
       
  2581     1, 0x017B, 0x005A, 0x0307, 0,
       
  2582     1, 0x017C, 0x007A, 0x0307, 0,
       
  2583     1, 0x017D, 0x005A, 0x030C, 0,
       
  2584     1, 0x017E, 0x007A, 0x030C, 0,
       
  2585     16, 0x017F, 0x0073, 0,
       
  2586     1, 0x01A0, 0x004F, 0x031B, 0,
       
  2587     1, 0x01A1, 0x006F, 0x031B, 0,
       
  2588     1, 0x01AF, 0x0055, 0x031B, 0,
       
  2589     1, 0x01B0, 0x0075, 0x031B, 0,
       
  2590     16, 0x01C4, 0x0044, 0x017D, 0,
       
  2591     16, 0x01C5, 0x0044, 0x017E, 0,
       
  2592     16, 0x01C6, 0x0064, 0x017E, 0,
       
  2593     16, 0x01C7, 0x004C, 0x004A, 0,
       
  2594     16, 0x01C8, 0x004C, 0x006A, 0,
       
  2595     16, 0x01C9, 0x006C, 0x006A, 0,
       
  2596     16, 0x01CA, 0x004E, 0x004A, 0,
       
  2597     16, 0x01CB, 0x004E, 0x006A, 0,
       
  2598     16, 0x01CC, 0x006E, 0x006A, 0,
       
  2599     1, 0x01CD, 0x0041, 0x030C, 0,
       
  2600     1, 0x01CE, 0x0061, 0x030C, 0,
       
  2601     1, 0x01CF, 0x0049, 0x030C, 0,
       
  2602     1, 0x01D0, 0x0069, 0x030C, 0,
       
  2603     1, 0x01D1, 0x004F, 0x030C, 0,
       
  2604     1, 0x01D2, 0x006F, 0x030C, 0,
       
  2605     1, 0x01D3, 0x0055, 0x030C, 0,
       
  2606     1, 0x01D4, 0x0075, 0x030C, 0,
       
  2607     1, 0x01D5, 0x00DC, 0x0304, 0,
       
  2608     1, 0x01D6, 0x00FC, 0x0304, 0,
       
  2609     1, 0x01D7, 0x00DC, 0x0301, 0,
       
  2610     1, 0x01D8, 0x00FC, 0x0301, 0,
       
  2611     1, 0x01D9, 0x00DC, 0x030C, 0,
       
  2612     1, 0x01DA, 0x00FC, 0x030C, 0,
       
  2613     1, 0x01DB, 0x00DC, 0x0300, 0,
       
  2614     1, 0x01DC, 0x00FC, 0x0300, 0,
       
  2615     1, 0x01DE, 0x00C4, 0x0304, 0,
       
  2616     1, 0x01DF, 0x00E4, 0x0304, 0,
       
  2617     1, 0x01E0, 0x0226, 0x0304, 0,
       
  2618     1, 0x01E1, 0x0227, 0x0304, 0,
       
  2619     1, 0x01E2, 0x00C6, 0x0304, 0,
       
  2620     1, 0x01E3, 0x00E6, 0x0304, 0,
       
  2621     1, 0x01E6, 0x0047, 0x030C, 0,
       
  2622     1, 0x01E7, 0x0067, 0x030C, 0,
       
  2623     1, 0x01E8, 0x004B, 0x030C, 0,
       
  2624     1, 0x01E9, 0x006B, 0x030C, 0,
       
  2625     1, 0x01EA, 0x004F, 0x0328, 0,
       
  2626     1, 0x01EB, 0x006F, 0x0328, 0,
       
  2627     1, 0x01EC, 0x01EA, 0x0304, 0,
       
  2628     1, 0x01ED, 0x01EB, 0x0304, 0,
       
  2629     1, 0x01EE, 0x01B7, 0x030C, 0,
       
  2630     1, 0x01EF, 0x0292, 0x030C, 0,
       
  2631     1, 0x01F0, 0x006A, 0x030C, 0,
       
  2632     16, 0x01F1, 0x0044, 0x005A, 0,
       
  2633     16, 0x01F2, 0x0044, 0x007A, 0,
       
  2634     16, 0x01F3, 0x0064, 0x007A, 0,
       
  2635     1, 0x01F4, 0x0047, 0x0301, 0,
       
  2636     1, 0x01F5, 0x0067, 0x0301, 0,
       
  2637     1, 0x01F8, 0x004E, 0x0300, 0,
       
  2638     1, 0x01F9, 0x006E, 0x0300, 0,
       
  2639     1, 0x01FA, 0x00C5, 0x0301, 0,
       
  2640     1, 0x01FB, 0x00E5, 0x0301, 0,
       
  2641     1, 0x01FC, 0x00C6, 0x0301, 0,
       
  2642     1, 0x01FD, 0x00E6, 0x0301, 0,
       
  2643     1, 0x01FE, 0x00D8, 0x0301, 0,
       
  2644     1, 0x01FF, 0x00F8, 0x0301, 0,
       
  2645     1, 0x0200, 0x0041, 0x030F, 0,
       
  2646     1, 0x0201, 0x0061, 0x030F, 0,
       
  2647     1, 0x0202, 0x0041, 0x0311, 0,
       
  2648     1, 0x0203, 0x0061, 0x0311, 0,
       
  2649     1, 0x0204, 0x0045, 0x030F, 0,
       
  2650     1, 0x0205, 0x0065, 0x030F, 0,
       
  2651     1, 0x0206, 0x0045, 0x0311, 0,
       
  2652     1, 0x0207, 0x0065, 0x0311, 0,
       
  2653     1, 0x0208, 0x0049, 0x030F, 0,
       
  2654     1, 0x0209, 0x0069, 0x030F, 0,
       
  2655     1, 0x020A, 0x0049, 0x0311, 0,
       
  2656     1, 0x020B, 0x0069, 0x0311, 0,
       
  2657     1, 0x020C, 0x004F, 0x030F, 0,
       
  2658     1, 0x020D, 0x006F, 0x030F, 0,
       
  2659     1, 0x020E, 0x004F, 0x0311, 0,
       
  2660     1, 0x020F, 0x006F, 0x0311, 0,
       
  2661     1, 0x0210, 0x0052, 0x030F, 0,
       
  2662     1, 0x0211, 0x0072, 0x030F, 0,
       
  2663     1, 0x0212, 0x0052, 0x0311, 0,
       
  2664     1, 0x0213, 0x0072, 0x0311, 0,
       
  2665     1, 0x0214, 0x0055, 0x030F, 0,
       
  2666     1, 0x0215, 0x0075, 0x030F, 0,
       
  2667     1, 0x0216, 0x0055, 0x0311, 0,
       
  2668     1, 0x0217, 0x0075, 0x0311, 0,
       
  2669     1, 0x0218, 0x0053, 0x0326, 0,
       
  2670     1, 0x0219, 0x0073, 0x0326, 0,
       
  2671     1, 0x021A, 0x0054, 0x0326, 0,
       
  2672     1, 0x021B, 0x0074, 0x0326, 0,
       
  2673     1, 0x021E, 0x0048, 0x030C, 0,
       
  2674     1, 0x021F, 0x0068, 0x030C, 0,
       
  2675     1, 0x0226, 0x0041, 0x0307, 0,
       
  2676     1, 0x0227, 0x0061, 0x0307, 0,
       
  2677     1, 0x0228, 0x0045, 0x0327, 0,
       
  2678     1, 0x0229, 0x0065, 0x0327, 0,
       
  2679     1, 0x022A, 0x00D6, 0x0304, 0,
       
  2680     1, 0x022B, 0x00F6, 0x0304, 0,
       
  2681     1, 0x022C, 0x00D5, 0x0304, 0,
       
  2682     1, 0x022D, 0x00F5, 0x0304, 0,
       
  2683     1, 0x022E, 0x004F, 0x0307, 0,
       
  2684     1, 0x022F, 0x006F, 0x0307, 0,
       
  2685     1, 0x0230, 0x022E, 0x0304, 0,
       
  2686     1, 0x0231, 0x022F, 0x0304, 0,
       
  2687     1, 0x0232, 0x0059, 0x0304, 0,
       
  2688     1, 0x0233, 0x0079, 0x0304, 0,
       
  2689     9, 0x02B0, 0x0068, 0,
       
  2690     9, 0x02B1, 0x0266, 0,
       
  2691     9, 0x02B2, 0x006A, 0,
       
  2692     9, 0x02B3, 0x0072, 0,
       
  2693     9, 0x02B4, 0x0279, 0,
       
  2694     9, 0x02B5, 0x027B, 0,
       
  2695     9, 0x02B6, 0x0281, 0,
       
  2696     9, 0x02B7, 0x0077, 0,
       
  2697     9, 0x02B8, 0x0079, 0,
       
  2698     16, 0x02D8, 0x0020, 0x0306, 0,
       
  2699     16, 0x02D9, 0x0020, 0x0307, 0,
       
  2700     16, 0x02DA, 0x0020, 0x030A, 0,
       
  2701     16, 0x02DB, 0x0020, 0x0328, 0,
       
  2702     16, 0x02DC, 0x0020, 0x0303, 0,
       
  2703     16, 0x02DD, 0x0020, 0x030B, 0,
       
  2704     9, 0x02E0, 0x0263, 0,
       
  2705     9, 0x02E1, 0x006C, 0,
       
  2706     9, 0x02E2, 0x0073, 0,
       
  2707     9, 0x02E3, 0x0078, 0,
       
  2708     9, 0x02E4, 0x0295, 0,
       
  2709     1, 0x0340, 0x0300, 0,
       
  2710     1, 0x0341, 0x0301, 0,
       
  2711     1, 0x0343, 0x0313, 0,
       
  2712     1, 0x0344, 0x0308, 0x0301, 0,
       
  2713     1, 0x0374, 0x02B9, 0,
       
  2714     16, 0x037A, 0x0020, 0x0345, 0,
       
  2715     1, 0x037E, 0x003B, 0,
       
  2716     16, 0x0384, 0x0020, 0x0301, 0,
       
  2717     1, 0x0385, 0x00A8, 0x0301, 0,
       
  2718     1, 0x0386, 0x0391, 0x0301, 0,
       
  2719     1, 0x0387, 0x00B7, 0,
       
  2720     1, 0x0388, 0x0395, 0x0301, 0,
       
  2721     1, 0x0389, 0x0397, 0x0301, 0,
       
  2722     1, 0x038A, 0x0399, 0x0301, 0,
       
  2723     1, 0x038C, 0x039F, 0x0301, 0,
       
  2724     1, 0x038E, 0x03A5, 0x0301, 0,
       
  2725     1, 0x038F, 0x03A9, 0x0301, 0,
       
  2726     1, 0x0390, 0x03CA, 0x0301, 0,
       
  2727     1, 0x03AA, 0x0399, 0x0308, 0,
       
  2728     1, 0x03AB, 0x03A5, 0x0308, 0,
       
  2729     1, 0x03AC, 0x03B1, 0x0301, 0,
       
  2730     1, 0x03AD, 0x03B5, 0x0301, 0,
       
  2731     1, 0x03AE, 0x03B7, 0x0301, 0,
       
  2732     1, 0x03AF, 0x03B9, 0x0301, 0,
       
  2733     1, 0x03B0, 0x03CB, 0x0301, 0,
       
  2734     1, 0x03CA, 0x03B9, 0x0308, 0,
       
  2735     1, 0x03CB, 0x03C5, 0x0308, 0,
       
  2736     1, 0x03CC, 0x03BF, 0x0301, 0,
       
  2737     1, 0x03CD, 0x03C5, 0x0301, 0,
       
  2738     1, 0x03CE, 0x03C9, 0x0301, 0,
       
  2739     16, 0x03D0, 0x03B2, 0,
       
  2740     16, 0x03D1, 0x03B8, 0,
       
  2741     16, 0x03D2, 0x03A5, 0,
       
  2742     1, 0x03D3, 0x03D2, 0x0301, 0,
       
  2743     1, 0x03D4, 0x03D2, 0x0308, 0,
       
  2744     16, 0x03D5, 0x03C6, 0,
       
  2745     16, 0x03D6, 0x03C0, 0,
       
  2746     16, 0x03F0, 0x03BA, 0,
       
  2747     16, 0x03F1, 0x03C1, 0,
       
  2748     16, 0x03F2, 0x03C2, 0,
       
  2749     1, 0x0400, 0x0415, 0x0300, 0,
       
  2750     1, 0x0401, 0x0415, 0x0308, 0,
       
  2751     1, 0x0403, 0x0413, 0x0301, 0,
       
  2752     1, 0x0407, 0x0406, 0x0308, 0,
       
  2753     1, 0x040C, 0x041A, 0x0301, 0,
       
  2754     1, 0x040D, 0x0418, 0x0300, 0,
       
  2755     1, 0x040E, 0x0423, 0x0306, 0,
       
  2756     1, 0x0419, 0x0418, 0x0306, 0,
       
  2757     1, 0x0439, 0x0438, 0x0306, 0,
       
  2758     1, 0x0450, 0x0435, 0x0300, 0,
       
  2759     1, 0x0451, 0x0435, 0x0308, 0,
       
  2760     1, 0x0453, 0x0433, 0x0301, 0,
       
  2761     1, 0x0457, 0x0456, 0x0308, 0,
       
  2762     1, 0x045C, 0x043A, 0x0301, 0,
       
  2763     1, 0x045D, 0x0438, 0x0300, 0,
       
  2764     1, 0x045E, 0x0443, 0x0306, 0,
       
  2765     1, 0x0476, 0x0474, 0x030F, 0,
       
  2766     1, 0x0477, 0x0475, 0x030F, 0,
       
  2767     1, 0x04C1, 0x0416, 0x0306, 0,
       
  2768     1, 0x04C2, 0x0436, 0x0306, 0,
       
  2769     1, 0x04D0, 0x0410, 0x0306, 0,
       
  2770     1, 0x04D1, 0x0430, 0x0306, 0,
       
  2771     1, 0x04D2, 0x0410, 0x0308, 0,
       
  2772     1, 0x04D3, 0x0430, 0x0308, 0,
       
  2773     1, 0x04D6, 0x0415, 0x0306, 0,
       
  2774     1, 0x04D7, 0x0435, 0x0306, 0,
       
  2775     1, 0x04DA, 0x04D8, 0x0308, 0,
       
  2776     1, 0x04DB, 0x04D9, 0x0308, 0,
       
  2777     1, 0x04DC, 0x0416, 0x0308, 0,
       
  2778     1, 0x04DD, 0x0436, 0x0308, 0,
       
  2779     1, 0x04DE, 0x0417, 0x0308, 0,
       
  2780     1, 0x04DF, 0x0437, 0x0308, 0,
       
  2781     1, 0x04E2, 0x0418, 0x0304, 0,
       
  2782     1, 0x04E3, 0x0438, 0x0304, 0,
       
  2783     1, 0x04E4, 0x0418, 0x0308, 0,
       
  2784     1, 0x04E5, 0x0438, 0x0308, 0,
       
  2785     1, 0x04E6, 0x041E, 0x0308, 0,
       
  2786     1, 0x04E7, 0x043E, 0x0308, 0,
       
  2787     1, 0x04EA, 0x04E8, 0x0308, 0,
       
  2788     1, 0x04EB, 0x04E9, 0x0308, 0,
       
  2789     1, 0x04EC, 0x042D, 0x0308, 0,
       
  2790     1, 0x04ED, 0x044D, 0x0308, 0,
       
  2791     1, 0x04EE, 0x0423, 0x0304, 0,
       
  2792     1, 0x04EF, 0x0443, 0x0304, 0,
       
  2793     1, 0x04F0, 0x0423, 0x0308, 0,
       
  2794     1, 0x04F1, 0x0443, 0x0308, 0,
       
  2795     1, 0x04F2, 0x0423, 0x030B, 0,
       
  2796     1, 0x04F3, 0x0443, 0x030B, 0,
       
  2797     1, 0x04F4, 0x0427, 0x0308, 0,
       
  2798     1, 0x04F5, 0x0447, 0x0308, 0,
       
  2799     1, 0x04F8, 0x042B, 0x0308, 0,
       
  2800     1, 0x04F9, 0x044B, 0x0308, 0,
       
  2801     16, 0x0587, 0x0565, 0x0582, 0,
       
  2802     1, 0x0622, 0x0627, 0x0653, 0,
       
  2803     1, 0x0623, 0x0627, 0x0654, 0,
       
  2804     1, 0x0624, 0x0648, 0x0654, 0,
       
  2805     1, 0x0625, 0x0627, 0x0655, 0,
       
  2806     1, 0x0626, 0x064A, 0x0654, 0,
       
  2807     16, 0x0675, 0x0627, 0x0674, 0,
       
  2808     16, 0x0676, 0x0648, 0x0674, 0,
       
  2809     16, 0x0677, 0x06C7, 0x0674, 0,
       
  2810     16, 0x0678, 0x064A, 0x0674, 0,
       
  2811     1, 0x06C0, 0x06D5, 0x0654, 0,
       
  2812     1, 0x06C2, 0x06C1, 0x0654, 0,
       
  2813     1, 0x06D3, 0x06D2, 0x0654, 0,
       
  2814     1, 0x0929, 0x0928, 0x093C, 0,
       
  2815     1, 0x0931, 0x0930, 0x093C, 0,
       
  2816     1, 0x0934, 0x0933, 0x093C, 0,
       
  2817     1, 0x0958, 0x0915, 0x093C, 0,
       
  2818     1, 0x0959, 0x0916, 0x093C, 0,
       
  2819     1, 0x095A, 0x0917, 0x093C, 0,
       
  2820     1, 0x095B, 0x091C, 0x093C, 0,
       
  2821     1, 0x095C, 0x0921, 0x093C, 0,
       
  2822     1, 0x095D, 0x0922, 0x093C, 0,
       
  2823     1, 0x095E, 0x092B, 0x093C, 0,
       
  2824     1, 0x095F, 0x092F, 0x093C, 0,
       
  2825     1, 0x09CB, 0x09C7, 0x09BE, 0,
       
  2826     1, 0x09CC, 0x09C7, 0x09D7, 0,
       
  2827     1, 0x09DC, 0x09A1, 0x09BC, 0,
       
  2828     1, 0x09DD, 0x09A2, 0x09BC, 0,
       
  2829     1, 0x09DF, 0x09AF, 0x09BC, 0,
       
  2830     1, 0x0A33, 0x0A32, 0x0A3C, 0,
       
  2831     1, 0x0A36, 0x0A38, 0x0A3C, 0,
       
  2832     1, 0x0A59, 0x0A16, 0x0A3C, 0,
       
  2833     1, 0x0A5A, 0x0A17, 0x0A3C, 0,
       
  2834     1, 0x0A5B, 0x0A1C, 0x0A3C, 0,
       
  2835     1, 0x0A5E, 0x0A2B, 0x0A3C, 0,
       
  2836     1, 0x0B48, 0x0B47, 0x0B56, 0,
       
  2837     1, 0x0B4B, 0x0B47, 0x0B3E, 0,
       
  2838     1, 0x0B4C, 0x0B47, 0x0B57, 0,
       
  2839     1, 0x0B5C, 0x0B21, 0x0B3C, 0,
       
  2840     1, 0x0B5D, 0x0B22, 0x0B3C, 0,
       
  2841     1, 0x0B94, 0x0B92, 0x0BD7, 0,
       
  2842     1, 0x0BCA, 0x0BC6, 0x0BBE, 0,
       
  2843     1, 0x0BCB, 0x0BC7, 0x0BBE, 0,
       
  2844     1, 0x0BCC, 0x0BC6, 0x0BD7, 0,
       
  2845     1, 0x0C48, 0x0C46, 0x0C56, 0,
       
  2846     1, 0x0CC0, 0x0CBF, 0x0CD5, 0,
       
  2847     1, 0x0CC7, 0x0CC6, 0x0CD5, 0,
       
  2848     1, 0x0CC8, 0x0CC6, 0x0CD6, 0,
       
  2849     1, 0x0CCA, 0x0CC6, 0x0CC2, 0,
       
  2850     1, 0x0CCB, 0x0CCA, 0x0CD5, 0,
       
  2851     1, 0x0D4A, 0x0D46, 0x0D3E, 0,
       
  2852     1, 0x0D4B, 0x0D47, 0x0D3E, 0,
       
  2853     1, 0x0D4C, 0x0D46, 0x0D57, 0,
       
  2854     1, 0x0DDA, 0x0DD9, 0x0DCA, 0,
       
  2855     1, 0x0DDC, 0x0DD9, 0x0DCF, 0,
       
  2856     1, 0x0DDD, 0x0DDC, 0x0DCA, 0,
       
  2857     1, 0x0DDE, 0x0DD9, 0x0DDF, 0,
       
  2858     16, 0x0E33, 0x0E4D, 0x0E32, 0,
       
  2859     16, 0x0EB3, 0x0ECD, 0x0EB2, 0,
       
  2860     16, 0x0EDC, 0x0EAB, 0x0E99, 0,
       
  2861     16, 0x0EDD, 0x0EAB, 0x0EA1, 0,
       
  2862     3, 0x0F0C, 0x0F0B, 0,
       
  2863     1, 0x0F43, 0x0F42, 0x0FB7, 0,
       
  2864     1, 0x0F4D, 0x0F4C, 0x0FB7, 0,
       
  2865     1, 0x0F52, 0x0F51, 0x0FB7, 0,
       
  2866     1, 0x0F57, 0x0F56, 0x0FB7, 0,
       
  2867     1, 0x0F5C, 0x0F5B, 0x0FB7, 0,
       
  2868     1, 0x0F69, 0x0F40, 0x0FB5, 0,
       
  2869     1, 0x0F73, 0x0F71, 0x0F72, 0,
       
  2870     1, 0x0F75, 0x0F71, 0x0F74, 0,
       
  2871     1, 0x0F76, 0x0FB2, 0x0F80, 0,
       
  2872     16, 0x0F77, 0x0FB2, 0x0F81, 0,
       
  2873     1, 0x0F78, 0x0FB3, 0x0F80, 0,
       
  2874     16, 0x0F79, 0x0FB3, 0x0F81, 0,
       
  2875     1, 0x0F81, 0x0F71, 0x0F80, 0,
       
  2876     1, 0x0F93, 0x0F92, 0x0FB7, 0,
       
  2877     1, 0x0F9D, 0x0F9C, 0x0FB7, 0,
       
  2878     1, 0x0FA2, 0x0FA1, 0x0FB7, 0,
       
  2879     1, 0x0FA7, 0x0FA6, 0x0FB7, 0,
       
  2880     1, 0x0FAC, 0x0FAB, 0x0FB7, 0,
       
  2881     1, 0x0FB9, 0x0F90, 0x0FB5, 0,
       
  2882     1, 0x1026, 0x1025, 0x102E, 0,
       
  2883     1, 0x1E00, 0x0041, 0x0325, 0,
       
  2884     1, 0x1E01, 0x0061, 0x0325, 0,
       
  2885     1, 0x1E02, 0x0042, 0x0307, 0,
       
  2886     1, 0x1E03, 0x0062, 0x0307, 0,
       
  2887     1, 0x1E04, 0x0042, 0x0323, 0,
       
  2888     1, 0x1E05, 0x0062, 0x0323, 0,
       
  2889     1, 0x1E06, 0x0042, 0x0331, 0,
       
  2890     1, 0x1E07, 0x0062, 0x0331, 0,
       
  2891     1, 0x1E08, 0x00C7, 0x0301, 0,
       
  2892     1, 0x1E09, 0x00E7, 0x0301, 0,
       
  2893     1, 0x1E0A, 0x0044, 0x0307, 0,
       
  2894     1, 0x1E0B, 0x0064, 0x0307, 0,
       
  2895     1, 0x1E0C, 0x0044, 0x0323, 0,
       
  2896     1, 0x1E0D, 0x0064, 0x0323, 0,
       
  2897     1, 0x1E0E, 0x0044, 0x0331, 0,
       
  2898     1, 0x1E0F, 0x0064, 0x0331, 0,
       
  2899     1, 0x1E10, 0x0044, 0x0327, 0,
       
  2900     1, 0x1E11, 0x0064, 0x0327, 0,
       
  2901     1, 0x1E12, 0x0044, 0x032D, 0,
       
  2902     1, 0x1E13, 0x0064, 0x032D, 0,
       
  2903     1, 0x1E14, 0x0112, 0x0300, 0,
       
  2904     1, 0x1E15, 0x0113, 0x0300, 0,
       
  2905     1, 0x1E16, 0x0112, 0x0301, 0,
       
  2906     1, 0x1E17, 0x0113, 0x0301, 0,
       
  2907     1, 0x1E18, 0x0045, 0x032D, 0,
       
  2908     1, 0x1E19, 0x0065, 0x032D, 0,
       
  2909     1, 0x1E1A, 0x0045, 0x0330, 0,
       
  2910     1, 0x1E1B, 0x0065, 0x0330, 0,
       
  2911     1, 0x1E1C, 0x0228, 0x0306, 0,
       
  2912     1, 0x1E1D, 0x0229, 0x0306, 0,
       
  2913     1, 0x1E1E, 0x0046, 0x0307, 0,
       
  2914     1, 0x1E1F, 0x0066, 0x0307, 0,
       
  2915     1, 0x1E20, 0x0047, 0x0304, 0,
       
  2916     1, 0x1E21, 0x0067, 0x0304, 0,
       
  2917     1, 0x1E22, 0x0048, 0x0307, 0,
       
  2918     1, 0x1E23, 0x0068, 0x0307, 0,
       
  2919     1, 0x1E24, 0x0048, 0x0323, 0,
       
  2920     1, 0x1E25, 0x0068, 0x0323, 0,
       
  2921     1, 0x1E26, 0x0048, 0x0308, 0,
       
  2922     1, 0x1E27, 0x0068, 0x0308, 0,
       
  2923     1, 0x1E28, 0x0048, 0x0327, 0,
       
  2924     1, 0x1E29, 0x0068, 0x0327, 0,
       
  2925     1, 0x1E2A, 0x0048, 0x032E, 0,
       
  2926     1, 0x1E2B, 0x0068, 0x032E, 0,
       
  2927     1, 0x1E2C, 0x0049, 0x0330, 0,
       
  2928     1, 0x1E2D, 0x0069, 0x0330, 0,
       
  2929     1, 0x1E2E, 0x00CF, 0x0301, 0,
       
  2930     1, 0x1E2F, 0x00EF, 0x0301, 0,
       
  2931     1, 0x1E30, 0x004B, 0x0301, 0,
       
  2932     1, 0x1E31, 0x006B, 0x0301, 0,
       
  2933     1, 0x1E32, 0x004B, 0x0323, 0,
       
  2934     1, 0x1E33, 0x006B, 0x0323, 0,
       
  2935     1, 0x1E34, 0x004B, 0x0331, 0,
       
  2936     1, 0x1E35, 0x006B, 0x0331, 0,
       
  2937     1, 0x1E36, 0x004C, 0x0323, 0,
       
  2938     1, 0x1E37, 0x006C, 0x0323, 0,
       
  2939     1, 0x1E38, 0x1E36, 0x0304, 0,
       
  2940     1, 0x1E39, 0x1E37, 0x0304, 0,
       
  2941     1, 0x1E3A, 0x004C, 0x0331, 0,
       
  2942     1, 0x1E3B, 0x006C, 0x0331, 0,
       
  2943     1, 0x1E3C, 0x004C, 0x032D, 0,
       
  2944     1, 0x1E3D, 0x006C, 0x032D, 0,
       
  2945     1, 0x1E3E, 0x004D, 0x0301, 0,
       
  2946     1, 0x1E3F, 0x006D, 0x0301, 0,
       
  2947     1, 0x1E40, 0x004D, 0x0307, 0,
       
  2948     1, 0x1E41, 0x006D, 0x0307, 0,
       
  2949     1, 0x1E42, 0x004D, 0x0323, 0,
       
  2950     1, 0x1E43, 0x006D, 0x0323, 0,
       
  2951     1, 0x1E44, 0x004E, 0x0307, 0,
       
  2952     1, 0x1E45, 0x006E, 0x0307, 0,
       
  2953     1, 0x1E46, 0x004E, 0x0323, 0,
       
  2954     1, 0x1E47, 0x006E, 0x0323, 0,
       
  2955     1, 0x1E48, 0x004E, 0x0331, 0,
       
  2956     1, 0x1E49, 0x006E, 0x0331, 0,
       
  2957     1, 0x1E4A, 0x004E, 0x032D, 0,
       
  2958     1, 0x1E4B, 0x006E, 0x032D, 0,
       
  2959     1, 0x1E4C, 0x00D5, 0x0301, 0,
       
  2960     1, 0x1E4D, 0x00F5, 0x0301, 0,
       
  2961     1, 0x1E4E, 0x00D5, 0x0308, 0,
       
  2962     1, 0x1E4F, 0x00F5, 0x0308, 0,
       
  2963     1, 0x1E50, 0x014C, 0x0300, 0,
       
  2964     1, 0x1E51, 0x014D, 0x0300, 0,
       
  2965     1, 0x1E52, 0x014C, 0x0301, 0,
       
  2966     1, 0x1E53, 0x014D, 0x0301, 0,
       
  2967     1, 0x1E54, 0x0050, 0x0301, 0,
       
  2968     1, 0x1E55, 0x0070, 0x0301, 0,
       
  2969     1, 0x1E56, 0x0050, 0x0307, 0,
       
  2970     1, 0x1E57, 0x0070, 0x0307, 0,
       
  2971     1, 0x1E58, 0x0052, 0x0307, 0,
       
  2972     1, 0x1E59, 0x0072, 0x0307, 0,
       
  2973     1, 0x1E5A, 0x0052, 0x0323, 0,
       
  2974     1, 0x1E5B, 0x0072, 0x0323, 0,
       
  2975     1, 0x1E5C, 0x1E5A, 0x0304, 0,
       
  2976     1, 0x1E5D, 0x1E5B, 0x0304, 0,
       
  2977     1, 0x1E5E, 0x0052, 0x0331, 0,
       
  2978     1, 0x1E5F, 0x0072, 0x0331, 0,
       
  2979     1, 0x1E60, 0x0053, 0x0307, 0,
       
  2980     1, 0x1E61, 0x0073, 0x0307, 0,
       
  2981     1, 0x1E62, 0x0053, 0x0323, 0,
       
  2982     1, 0x1E63, 0x0073, 0x0323, 0,
       
  2983     1, 0x1E64, 0x015A, 0x0307, 0,
       
  2984     1, 0x1E65, 0x015B, 0x0307, 0,
       
  2985     1, 0x1E66, 0x0160, 0x0307, 0,
       
  2986     1, 0x1E67, 0x0161, 0x0307, 0,
       
  2987     1, 0x1E68, 0x1E62, 0x0307, 0,
       
  2988     1, 0x1E69, 0x1E63, 0x0307, 0,
       
  2989     1, 0x1E6A, 0x0054, 0x0307, 0,
       
  2990     1, 0x1E6B, 0x0074, 0x0307, 0,
       
  2991     1, 0x1E6C, 0x0054, 0x0323, 0,
       
  2992     1, 0x1E6D, 0x0074, 0x0323, 0,
       
  2993     1, 0x1E6E, 0x0054, 0x0331, 0,
       
  2994     1, 0x1E6F, 0x0074, 0x0331, 0,
       
  2995     1, 0x1E70, 0x0054, 0x032D, 0,
       
  2996     1, 0x1E71, 0x0074, 0x032D, 0,
       
  2997     1, 0x1E72, 0x0055, 0x0324, 0,
       
  2998     1, 0x1E73, 0x0075, 0x0324, 0,
       
  2999     1, 0x1E74, 0x0055, 0x0330, 0,
       
  3000     1, 0x1E75, 0x0075, 0x0330, 0,
       
  3001     1, 0x1E76, 0x0055, 0x032D, 0,
       
  3002     1, 0x1E77, 0x0075, 0x032D, 0,
       
  3003     1, 0x1E78, 0x0168, 0x0301, 0,
       
  3004     1, 0x1E79, 0x0169, 0x0301, 0,
       
  3005     1, 0x1E7A, 0x016A, 0x0308, 0,
       
  3006     1, 0x1E7B, 0x016B, 0x0308, 0,
       
  3007     1, 0x1E7C, 0x0056, 0x0303, 0,
       
  3008     1, 0x1E7D, 0x0076, 0x0303, 0,
       
  3009     1, 0x1E7E, 0x0056, 0x0323, 0,
       
  3010     1, 0x1E7F, 0x0076, 0x0323, 0,
       
  3011     1, 0x1E80, 0x0057, 0x0300, 0,
       
  3012     1, 0x1E81, 0x0077, 0x0300, 0,
       
  3013     1, 0x1E82, 0x0057, 0x0301, 0,
       
  3014     1, 0x1E83, 0x0077, 0x0301, 0,
       
  3015     1, 0x1E84, 0x0057, 0x0308, 0,
       
  3016     1, 0x1E85, 0x0077, 0x0308, 0,
       
  3017     1, 0x1E86, 0x0057, 0x0307, 0,
       
  3018     1, 0x1E87, 0x0077, 0x0307, 0,
       
  3019     1, 0x1E88, 0x0057, 0x0323, 0,
       
  3020     1, 0x1E89, 0x0077, 0x0323, 0,
       
  3021     1, 0x1E8A, 0x0058, 0x0307, 0,
       
  3022     1, 0x1E8B, 0x0078, 0x0307, 0,
       
  3023     1, 0x1E8C, 0x0058, 0x0308, 0,
       
  3024     1, 0x1E8D, 0x0078, 0x0308, 0,
       
  3025     1, 0x1E8E, 0x0059, 0x0307, 0,
       
  3026     1, 0x1E8F, 0x0079, 0x0307, 0,
       
  3027     1, 0x1E90, 0x005A, 0x0302, 0,
       
  3028     1, 0x1E91, 0x007A, 0x0302, 0,
       
  3029     1, 0x1E92, 0x005A, 0x0323, 0,
       
  3030     1, 0x1E93, 0x007A, 0x0323, 0,
       
  3031     1, 0x1E94, 0x005A, 0x0331, 0,
       
  3032     1, 0x1E95, 0x007A, 0x0331, 0,
       
  3033     1, 0x1E96, 0x0068, 0x0331, 0,
       
  3034     1, 0x1E97, 0x0074, 0x0308, 0,
       
  3035     1, 0x1E98, 0x0077, 0x030A, 0,
       
  3036     1, 0x1E99, 0x0079, 0x030A, 0,
       
  3037     16, 0x1E9A, 0x0061, 0x02BE, 0,
       
  3038     1, 0x1E9B, 0x017F, 0x0307, 0,
       
  3039     1, 0x1EA0, 0x0041, 0x0323, 0,
       
  3040     1, 0x1EA1, 0x0061, 0x0323, 0,
       
  3041     1, 0x1EA2, 0x0041, 0x0309, 0,
       
  3042     1, 0x1EA3, 0x0061, 0x0309, 0,
       
  3043     1, 0x1EA4, 0x00C2, 0x0301, 0,
       
  3044     1, 0x1EA5, 0x00E2, 0x0301, 0,
       
  3045     1, 0x1EA6, 0x00C2, 0x0300, 0,
       
  3046     1, 0x1EA7, 0x00E2, 0x0300, 0,
       
  3047     1, 0x1EA8, 0x00C2, 0x0309, 0,
       
  3048     1, 0x1EA9, 0x00E2, 0x0309, 0,
       
  3049     1, 0x1EAA, 0x00C2, 0x0303, 0,
       
  3050     1, 0x1EAB, 0x00E2, 0x0303, 0,
       
  3051     1, 0x1EAC, 0x1EA0, 0x0302, 0,
       
  3052     1, 0x1EAD, 0x1EA1, 0x0302, 0,
       
  3053     1, 0x1EAE, 0x0102, 0x0301, 0,
       
  3054     1, 0x1EAF, 0x0103, 0x0301, 0,
       
  3055     1, 0x1EB0, 0x0102, 0x0300, 0,
       
  3056     1, 0x1EB1, 0x0103, 0x0300, 0,
       
  3057     1, 0x1EB2, 0x0102, 0x0309, 0,
       
  3058     1, 0x1EB3, 0x0103, 0x0309, 0,
       
  3059     1, 0x1EB4, 0x0102, 0x0303, 0,
       
  3060     1, 0x1EB5, 0x0103, 0x0303, 0,
       
  3061     1, 0x1EB6, 0x1EA0, 0x0306, 0,
       
  3062     1, 0x1EB7, 0x1EA1, 0x0306, 0,
       
  3063     1, 0x1EB8, 0x0045, 0x0323, 0,
       
  3064     1, 0x1EB9, 0x0065, 0x0323, 0,
       
  3065     1, 0x1EBA, 0x0045, 0x0309, 0,
       
  3066     1, 0x1EBB, 0x0065, 0x0309, 0,
       
  3067     1, 0x1EBC, 0x0045, 0x0303, 0,
       
  3068     1, 0x1EBD, 0x0065, 0x0303, 0,
       
  3069     1, 0x1EBE, 0x00CA, 0x0301, 0,
       
  3070     1, 0x1EBF, 0x00EA, 0x0301, 0,
       
  3071     1, 0x1EC0, 0x00CA, 0x0300, 0,
       
  3072     1, 0x1EC1, 0x00EA, 0x0300, 0,
       
  3073     1, 0x1EC2, 0x00CA, 0x0309, 0,
       
  3074     1, 0x1EC3, 0x00EA, 0x0309, 0,
       
  3075     1, 0x1EC4, 0x00CA, 0x0303, 0,
       
  3076     1, 0x1EC5, 0x00EA, 0x0303, 0,
       
  3077     1, 0x1EC6, 0x1EB8, 0x0302, 0,
       
  3078     1, 0x1EC7, 0x1EB9, 0x0302, 0,
       
  3079     1, 0x1EC8, 0x0049, 0x0309, 0,
       
  3080     1, 0x1EC9, 0x0069, 0x0309, 0,
       
  3081     1, 0x1ECA, 0x0049, 0x0323, 0,
       
  3082     1, 0x1ECB, 0x0069, 0x0323, 0,
       
  3083     1, 0x1ECC, 0x004F, 0x0323, 0,
       
  3084     1, 0x1ECD, 0x006F, 0x0323, 0,
       
  3085     1, 0x1ECE, 0x004F, 0x0309, 0,
       
  3086     1, 0x1ECF, 0x006F, 0x0309, 0,
       
  3087     1, 0x1ED0, 0x00D4, 0x0301, 0,
       
  3088     1, 0x1ED1, 0x00F4, 0x0301, 0,
       
  3089     1, 0x1ED2, 0x00D4, 0x0300, 0,
       
  3090     1, 0x1ED3, 0x00F4, 0x0300, 0,
       
  3091     1, 0x1ED4, 0x00D4, 0x0309, 0,
       
  3092     1, 0x1ED5, 0x00F4, 0x0309, 0,
       
  3093     1, 0x1ED6, 0x00D4, 0x0303, 0,
       
  3094     1, 0x1ED7, 0x00F4, 0x0303, 0,
       
  3095     1, 0x1ED8, 0x1ECC, 0x0302, 0,
       
  3096     1, 0x1ED9, 0x1ECD, 0x0302, 0,
       
  3097     1, 0x1EDA, 0x01A0, 0x0301, 0,
       
  3098     1, 0x1EDB, 0x01A1, 0x0301, 0,
       
  3099     1, 0x1EDC, 0x01A0, 0x0300, 0,
       
  3100     1, 0x1EDD, 0x01A1, 0x0300, 0,
       
  3101     1, 0x1EDE, 0x01A0, 0x0309, 0,
       
  3102     1, 0x1EDF, 0x01A1, 0x0309, 0,
       
  3103     1, 0x1EE0, 0x01A0, 0x0303, 0,
       
  3104     1, 0x1EE1, 0x01A1, 0x0303, 0,
       
  3105     1, 0x1EE2, 0x01A0, 0x0323, 0,
       
  3106     1, 0x1EE3, 0x01A1, 0x0323, 0,
       
  3107     1, 0x1EE4, 0x0055, 0x0323, 0,
       
  3108     1, 0x1EE5, 0x0075, 0x0323, 0,
       
  3109     1, 0x1EE6, 0x0055, 0x0309, 0,
       
  3110     1, 0x1EE7, 0x0075, 0x0309, 0,
       
  3111     1, 0x1EE8, 0x01AF, 0x0301, 0,
       
  3112     1, 0x1EE9, 0x01B0, 0x0301, 0,
       
  3113     1, 0x1EEA, 0x01AF, 0x0300, 0,
       
  3114     1, 0x1EEB, 0x01B0, 0x0300, 0,
       
  3115     1, 0x1EEC, 0x01AF, 0x0309, 0,
       
  3116     1, 0x1EED, 0x01B0, 0x0309, 0,
       
  3117     1, 0x1EEE, 0x01AF, 0x0303, 0,
       
  3118     1, 0x1EEF, 0x01B0, 0x0303, 0,
       
  3119     1, 0x1EF0, 0x01AF, 0x0323, 0,
       
  3120     1, 0x1EF1, 0x01B0, 0x0323, 0,
       
  3121     1, 0x1EF2, 0x0059, 0x0300, 0,
       
  3122     1, 0x1EF3, 0x0079, 0x0300, 0,
       
  3123     1, 0x1EF4, 0x0059, 0x0323, 0,
       
  3124     1, 0x1EF5, 0x0079, 0x0323, 0,
       
  3125     1, 0x1EF6, 0x0059, 0x0309, 0,
       
  3126     1, 0x1EF7, 0x0079, 0x0309, 0,
       
  3127     1, 0x1EF8, 0x0059, 0x0303, 0,
       
  3128     1, 0x1EF9, 0x0079, 0x0303, 0,
       
  3129     1, 0x1F00, 0x03B1, 0x0313, 0,
       
  3130     1, 0x1F01, 0x03B1, 0x0314, 0,
       
  3131     1, 0x1F02, 0x1F00, 0x0300, 0,
       
  3132     1, 0x1F03, 0x1F01, 0x0300, 0,
       
  3133     1, 0x1F04, 0x1F00, 0x0301, 0,
       
  3134     1, 0x1F05, 0x1F01, 0x0301, 0,
       
  3135     1, 0x1F06, 0x1F00, 0x0342, 0,
       
  3136     1, 0x1F07, 0x1F01, 0x0342, 0,
       
  3137     1, 0x1F08, 0x0391, 0x0313, 0,
       
  3138     1, 0x1F09, 0x0391, 0x0314, 0,
       
  3139     1, 0x1F0A, 0x1F08, 0x0300, 0,
       
  3140     1, 0x1F0B, 0x1F09, 0x0300, 0,
       
  3141     1, 0x1F0C, 0x1F08, 0x0301, 0,
       
  3142     1, 0x1F0D, 0x1F09, 0x0301, 0,
       
  3143     1, 0x1F0E, 0x1F08, 0x0342, 0,
       
  3144     1, 0x1F0F, 0x1F09, 0x0342, 0,
       
  3145     1, 0x1F10, 0x03B5, 0x0313, 0,
       
  3146     1, 0x1F11, 0x03B5, 0x0314, 0,
       
  3147     1, 0x1F12, 0x1F10, 0x0300, 0,
       
  3148     1, 0x1F13, 0x1F11, 0x0300, 0,
       
  3149     1, 0x1F14, 0x1F10, 0x0301, 0,
       
  3150     1, 0x1F15, 0x1F11, 0x0301, 0,
       
  3151     1, 0x1F18, 0x0395, 0x0313, 0,
       
  3152     1, 0x1F19, 0x0395, 0x0314, 0,
       
  3153     1, 0x1F1A, 0x1F18, 0x0300, 0,
       
  3154     1, 0x1F1B, 0x1F19, 0x0300, 0,
       
  3155     1, 0x1F1C, 0x1F18, 0x0301, 0,
       
  3156     1, 0x1F1D, 0x1F19, 0x0301, 0,
       
  3157     1, 0x1F20, 0x03B7, 0x0313, 0,
       
  3158     1, 0x1F21, 0x03B7, 0x0314, 0,
       
  3159     1, 0x1F22, 0x1F20, 0x0300, 0,
       
  3160     1, 0x1F23, 0x1F21, 0x0300, 0,
       
  3161     1, 0x1F24, 0x1F20, 0x0301, 0,
       
  3162     1, 0x1F25, 0x1F21, 0x0301, 0,
       
  3163     1, 0x1F26, 0x1F20, 0x0342, 0,
       
  3164     1, 0x1F27, 0x1F21, 0x0342, 0,
       
  3165     1, 0x1F28, 0x0397, 0x0313, 0,
       
  3166     1, 0x1F29, 0x0397, 0x0314, 0,
       
  3167     1, 0x1F2A, 0x1F28, 0x0300, 0,
       
  3168     1, 0x1F2B, 0x1F29, 0x0300, 0,
       
  3169     1, 0x1F2C, 0x1F28, 0x0301, 0,
       
  3170     1, 0x1F2D, 0x1F29, 0x0301, 0,
       
  3171     1, 0x1F2E, 0x1F28, 0x0342, 0,
       
  3172     1, 0x1F2F, 0x1F29, 0x0342, 0,
       
  3173     1, 0x1F30, 0x03B9, 0x0313, 0,
       
  3174     1, 0x1F31, 0x03B9, 0x0314, 0,
       
  3175     1, 0x1F32, 0x1F30, 0x0300, 0,
       
  3176     1, 0x1F33, 0x1F31, 0x0300, 0,
       
  3177     1, 0x1F34, 0x1F30, 0x0301, 0,
       
  3178     1, 0x1F35, 0x1F31, 0x0301, 0,
       
  3179     1, 0x1F36, 0x1F30, 0x0342, 0,
       
  3180     1, 0x1F37, 0x1F31, 0x0342, 0,
       
  3181     1, 0x1F38, 0x0399, 0x0313, 0,
       
  3182     1, 0x1F39, 0x0399, 0x0314, 0,
       
  3183     1, 0x1F3A, 0x1F38, 0x0300, 0,
       
  3184     1, 0x1F3B, 0x1F39, 0x0300, 0,
       
  3185     1, 0x1F3C, 0x1F38, 0x0301, 0,
       
  3186     1, 0x1F3D, 0x1F39, 0x0301, 0,
       
  3187     1, 0x1F3E, 0x1F38, 0x0342, 0,
       
  3188     1, 0x1F3F, 0x1F39, 0x0342, 0,
       
  3189     1, 0x1F40, 0x03BF, 0x0313, 0,
       
  3190     1, 0x1F41, 0x03BF, 0x0314, 0,
       
  3191     1, 0x1F42, 0x1F40, 0x0300, 0,
       
  3192     1, 0x1F43, 0x1F41, 0x0300, 0,
       
  3193     1, 0x1F44, 0x1F40, 0x0301, 0,
       
  3194     1, 0x1F45, 0x1F41, 0x0301, 0,
       
  3195     1, 0x1F48, 0x039F, 0x0313, 0,
       
  3196     1, 0x1F49, 0x039F, 0x0314, 0,
       
  3197     1, 0x1F4A, 0x1F48, 0x0300, 0,
       
  3198     1, 0x1F4B, 0x1F49, 0x0300, 0,
       
  3199     1, 0x1F4C, 0x1F48, 0x0301, 0,
       
  3200     1, 0x1F4D, 0x1F49, 0x0301, 0,
       
  3201     1, 0x1F50, 0x03C5, 0x0313, 0,
       
  3202     1, 0x1F51, 0x03C5, 0x0314, 0,
       
  3203     1, 0x1F52, 0x1F50, 0x0300, 0,
       
  3204     1, 0x1F53, 0x1F51, 0x0300, 0,
       
  3205     1, 0x1F54, 0x1F50, 0x0301, 0,
       
  3206     1, 0x1F55, 0x1F51, 0x0301, 0,
       
  3207     1, 0x1F56, 0x1F50, 0x0342, 0,
       
  3208     1, 0x1F57, 0x1F51, 0x0342, 0,
       
  3209     1, 0x1F59, 0x03A5, 0x0314, 0,
       
  3210     1, 0x1F5B, 0x1F59, 0x0300, 0,
       
  3211     1, 0x1F5D, 0x1F59, 0x0301, 0,
       
  3212     1, 0x1F5F, 0x1F59, 0x0342, 0,
       
  3213     1, 0x1F60, 0x03C9, 0x0313, 0,
       
  3214     1, 0x1F61, 0x03C9, 0x0314, 0,
       
  3215     1, 0x1F62, 0x1F60, 0x0300, 0,
       
  3216     1, 0x1F63, 0x1F61, 0x0300, 0,
       
  3217     1, 0x1F64, 0x1F60, 0x0301, 0,
       
  3218     1, 0x1F65, 0x1F61, 0x0301, 0,
       
  3219     1, 0x1F66, 0x1F60, 0x0342, 0,
       
  3220     1, 0x1F67, 0x1F61, 0x0342, 0,
       
  3221     1, 0x1F68, 0x03A9, 0x0313, 0,
       
  3222     1, 0x1F69, 0x03A9, 0x0314, 0,
       
  3223     1, 0x1F6A, 0x1F68, 0x0300, 0,
       
  3224     1, 0x1F6B, 0x1F69, 0x0300, 0,
       
  3225     1, 0x1F6C, 0x1F68, 0x0301, 0,
       
  3226     1, 0x1F6D, 0x1F69, 0x0301, 0,
       
  3227     1, 0x1F6E, 0x1F68, 0x0342, 0,
       
  3228     1, 0x1F6F, 0x1F69, 0x0342, 0,
       
  3229     1, 0x1F70, 0x03B1, 0x0300, 0,
       
  3230     1, 0x1F71, 0x03AC, 0,
       
  3231     1, 0x1F72, 0x03B5, 0x0300, 0,
       
  3232     1, 0x1F73, 0x03AD, 0,
       
  3233     1, 0x1F74, 0x03B7, 0x0300, 0,
       
  3234     1, 0x1F75, 0x03AE, 0,
       
  3235     1, 0x1F76, 0x03B9, 0x0300, 0,
       
  3236     1, 0x1F77, 0x03AF, 0,
       
  3237     1, 0x1F78, 0x03BF, 0x0300, 0,
       
  3238     1, 0x1F79, 0x03CC, 0,
       
  3239     1, 0x1F7A, 0x03C5, 0x0300, 0,
       
  3240     1, 0x1F7B, 0x03CD, 0,
       
  3241     1, 0x1F7C, 0x03C9, 0x0300, 0,
       
  3242     1, 0x1F7D, 0x03CE, 0,
       
  3243     1, 0x1F80, 0x1F00, 0x0345, 0,
       
  3244     1, 0x1F81, 0x1F01, 0x0345, 0,
       
  3245     1, 0x1F82, 0x1F02, 0x0345, 0,
       
  3246     1, 0x1F83, 0x1F03, 0x0345, 0,
       
  3247     1, 0x1F84, 0x1F04, 0x0345, 0,
       
  3248     1, 0x1F85, 0x1F05, 0x0345, 0,
       
  3249     1, 0x1F86, 0x1F06, 0x0345, 0,
       
  3250     1, 0x1F87, 0x1F07, 0x0345, 0,
       
  3251     1, 0x1F88, 0x1F08, 0x0345, 0,
       
  3252     1, 0x1F89, 0x1F09, 0x0345, 0,
       
  3253     1, 0x1F8A, 0x1F0A, 0x0345, 0,
       
  3254     1, 0x1F8B, 0x1F0B, 0x0345, 0,
       
  3255     1, 0x1F8C, 0x1F0C, 0x0345, 0,
       
  3256     1, 0x1F8D, 0x1F0D, 0x0345, 0,
       
  3257     1, 0x1F8E, 0x1F0E, 0x0345, 0,
       
  3258     1, 0x1F8F, 0x1F0F, 0x0345, 0,
       
  3259     1, 0x1F90, 0x1F20, 0x0345, 0,
       
  3260     1, 0x1F91, 0x1F21, 0x0345, 0,
       
  3261     1, 0x1F92, 0x1F22, 0x0345, 0,
       
  3262     1, 0x1F93, 0x1F23, 0x0345, 0,
       
  3263     1, 0x1F94, 0x1F24, 0x0345, 0,
       
  3264     1, 0x1F95, 0x1F25, 0x0345, 0,
       
  3265     1, 0x1F96, 0x1F26, 0x0345, 0,
       
  3266     1, 0x1F97, 0x1F27, 0x0345, 0,
       
  3267     1, 0x1F98, 0x1F28, 0x0345, 0,
       
  3268     1, 0x1F99, 0x1F29, 0x0345, 0,
       
  3269     1, 0x1F9A, 0x1F2A, 0x0345, 0,
       
  3270     1, 0x1F9B, 0x1F2B, 0x0345, 0,
       
  3271     1, 0x1F9C, 0x1F2C, 0x0345, 0,
       
  3272     1, 0x1F9D, 0x1F2D, 0x0345, 0,
       
  3273     1, 0x1F9E, 0x1F2E, 0x0345, 0,
       
  3274     1, 0x1F9F, 0x1F2F, 0x0345, 0,
       
  3275     1, 0x1FA0, 0x1F60, 0x0345, 0,
       
  3276     1, 0x1FA1, 0x1F61, 0x0345, 0,
       
  3277     1, 0x1FA2, 0x1F62, 0x0345, 0,
       
  3278     1, 0x1FA3, 0x1F63, 0x0345, 0,
       
  3279     1, 0x1FA4, 0x1F64, 0x0345, 0,
       
  3280     1, 0x1FA5, 0x1F65, 0x0345, 0,
       
  3281     1, 0x1FA6, 0x1F66, 0x0345, 0,
       
  3282     1, 0x1FA7, 0x1F67, 0x0345, 0,
       
  3283     1, 0x1FA8, 0x1F68, 0x0345, 0,
       
  3284     1, 0x1FA9, 0x1F69, 0x0345, 0,
       
  3285     1, 0x1FAA, 0x1F6A, 0x0345, 0,
       
  3286     1, 0x1FAB, 0x1F6B, 0x0345, 0,
       
  3287     1, 0x1FAC, 0x1F6C, 0x0345, 0,
       
  3288     1, 0x1FAD, 0x1F6D, 0x0345, 0,
       
  3289     1, 0x1FAE, 0x1F6E, 0x0345, 0,
       
  3290     1, 0x1FAF, 0x1F6F, 0x0345, 0,
       
  3291     1, 0x1FB0, 0x03B1, 0x0306, 0,
       
  3292     1, 0x1FB1, 0x03B1, 0x0304, 0,
       
  3293     1, 0x1FB2, 0x1F70, 0x0345, 0,
       
  3294     1, 0x1FB3, 0x03B1, 0x0345, 0,
       
  3295     1, 0x1FB4, 0x03AC, 0x0345, 0,
       
  3296     1, 0x1FB6, 0x03B1, 0x0342, 0,
       
  3297     1, 0x1FB7, 0x1FB6, 0x0345, 0,
       
  3298     1, 0x1FB8, 0x0391, 0x0306, 0,
       
  3299     1, 0x1FB9, 0x0391, 0x0304, 0,
       
  3300     1, 0x1FBA, 0x0391, 0x0300, 0,
       
  3301     1, 0x1FBB, 0x0386, 0,
       
  3302     1, 0x1FBC, 0x0391, 0x0345, 0,
       
  3303     16, 0x1FBD, 0x0020, 0x0313, 0,
       
  3304     1, 0x1FBE, 0x03B9, 0,
       
  3305     16, 0x1FBF, 0x0020, 0x0313, 0,
       
  3306     16, 0x1FC0, 0x0020, 0x0342, 0,
       
  3307     1, 0x1FC1, 0x00A8, 0x0342, 0,
       
  3308     1, 0x1FC2, 0x1F74, 0x0345, 0,
       
  3309     1, 0x1FC3, 0x03B7, 0x0345, 0,
       
  3310     1, 0x1FC4, 0x03AE, 0x0345, 0,
       
  3311     1, 0x1FC6, 0x03B7, 0x0342, 0,
       
  3312     1, 0x1FC7, 0x1FC6, 0x0345, 0,
       
  3313     1, 0x1FC8, 0x0395, 0x0300, 0,
       
  3314     1, 0x1FC9, 0x0388, 0,
       
  3315     1, 0x1FCA, 0x0397, 0x0300, 0,
       
  3316     1, 0x1FCB, 0x0389, 0,
       
  3317     1, 0x1FCC, 0x0397, 0x0345, 0,
       
  3318     1, 0x1FCD, 0x1FBF, 0x0300, 0,
       
  3319     1, 0x1FCE, 0x1FBF, 0x0301, 0,
       
  3320     1, 0x1FCF, 0x1FBF, 0x0342, 0,
       
  3321     1, 0x1FD0, 0x03B9, 0x0306, 0,
       
  3322     1, 0x1FD1, 0x03B9, 0x0304, 0,
       
  3323     1, 0x1FD2, 0x03CA, 0x0300, 0,
       
  3324     1, 0x1FD3, 0x0390, 0,
       
  3325     1, 0x1FD6, 0x03B9, 0x0342, 0,
       
  3326     1, 0x1FD7, 0x03CA, 0x0342, 0,
       
  3327     1, 0x1FD8, 0x0399, 0x0306, 0,
       
  3328     1, 0x1FD9, 0x0399, 0x0304, 0,
       
  3329     1, 0x1FDA, 0x0399, 0x0300, 0,
       
  3330     1, 0x1FDB, 0x038A, 0,
       
  3331     1, 0x1FDD, 0x1FFE, 0x0300, 0,
       
  3332     1, 0x1FDE, 0x1FFE, 0x0301, 0,
       
  3333     1, 0x1FDF, 0x1FFE, 0x0342, 0,
       
  3334     1, 0x1FE0, 0x03C5, 0x0306, 0,
       
  3335     1, 0x1FE1, 0x03C5, 0x0304, 0,
       
  3336     1, 0x1FE2, 0x03CB, 0x0300, 0,
       
  3337     1, 0x1FE3, 0x03B0, 0,
       
  3338     1, 0x1FE4, 0x03C1, 0x0313, 0,
       
  3339     1, 0x1FE5, 0x03C1, 0x0314, 0,
       
  3340     1, 0x1FE6, 0x03C5, 0x0342, 0,
       
  3341     1, 0x1FE7, 0x03CB, 0x0342, 0,
       
  3342     1, 0x1FE8, 0x03A5, 0x0306, 0,
       
  3343     1, 0x1FE9, 0x03A5, 0x0304, 0,
       
  3344     1, 0x1FEA, 0x03A5, 0x0300, 0,
       
  3345     1, 0x1FEB, 0x038E, 0,
       
  3346     1, 0x1FEC, 0x03A1, 0x0314, 0,
       
  3347     1, 0x1FED, 0x00A8, 0x0300, 0,
       
  3348     1, 0x1FEE, 0x0385, 0,
       
  3349     1, 0x1FEF, 0x0060, 0,
       
  3350     1, 0x1FF2, 0x1F7C, 0x0345, 0,
       
  3351     1, 0x1FF3, 0x03C9, 0x0345, 0,
       
  3352     1, 0x1FF4, 0x03CE, 0x0345, 0,
       
  3353     1, 0x1FF6, 0x03C9, 0x0342, 0,
       
  3354     1, 0x1FF7, 0x1FF6, 0x0345, 0,
       
  3355     1, 0x1FF8, 0x039F, 0x0300, 0,
       
  3356     1, 0x1FF9, 0x038C, 0,
       
  3357     1, 0x1FFA, 0x03A9, 0x0300, 0,
       
  3358     1, 0x1FFB, 0x038F, 0,
       
  3359     1, 0x1FFC, 0x03A9, 0x0345, 0,
       
  3360     1, 0x1FFD, 0x00B4, 0,
       
  3361     16, 0x1FFE, 0x0020, 0x0314, 0,
       
  3362     1, 0x2000, 0x2002, 0,
       
  3363     1, 0x2001, 0x2003, 0,
       
  3364     16, 0x2002, 0x0020, 0,
       
  3365     16, 0x2003, 0x0020, 0,
       
  3366     16, 0x2004, 0x0020, 0,
       
  3367     16, 0x2005, 0x0020, 0,
       
  3368     16, 0x2006, 0x0020, 0,
       
  3369     3, 0x2007, 0x0020, 0,
       
  3370     16, 0x2008, 0x0020, 0,
       
  3371     16, 0x2009, 0x0020, 0,
       
  3372     16, 0x200A, 0x0020, 0,
       
  3373     3, 0x2011, 0x2010, 0,
       
  3374     16, 0x2017, 0x0020, 0x0333, 0,
       
  3375     16, 0x2024, 0x002E, 0,
       
  3376     16, 0x2025, 0x002E, 0x002E, 0,
       
  3377     16, 0x2026, 0x002E, 0x002E, 0x002E, 0,
       
  3378     3, 0x202F, 0x0020, 0,
       
  3379     16, 0x2033, 0x2032, 0x2032, 0,
       
  3380     16, 0x2034, 0x2032, 0x2032, 0x2032, 0,
       
  3381     16, 0x2036, 0x2035, 0x2035, 0,
       
  3382     16, 0x2037, 0x2035, 0x2035, 0x2035, 0,
       
  3383     16, 0x203C, 0x0021, 0x0021, 0,
       
  3384     16, 0x203E, 0x0020, 0x0305, 0,
       
  3385     16, 0x2048, 0x003F, 0x0021, 0,
       
  3386     16, 0x2049, 0x0021, 0x003F, 0,
       
  3387     9, 0x2070, 0x0030, 0,
       
  3388     9, 0x2074, 0x0034, 0,
       
  3389     9, 0x2075, 0x0035, 0,
       
  3390     9, 0x2076, 0x0036, 0,
       
  3391     9, 0x2077, 0x0037, 0,
       
  3392     9, 0x2078, 0x0038, 0,
       
  3393     9, 0x2079, 0x0039, 0,
       
  3394     9, 0x207A, 0x002B, 0,
       
  3395     9, 0x207B, 0x2212, 0,
       
  3396     9, 0x207C, 0x003D, 0,
       
  3397     9, 0x207D, 0x0028, 0,
       
  3398     9, 0x207E, 0x0029, 0,
       
  3399     9, 0x207F, 0x006E, 0,
       
  3400     10, 0x2080, 0x0030, 0,
       
  3401     10, 0x2081, 0x0031, 0,
       
  3402     10, 0x2082, 0x0032, 0,
       
  3403     10, 0x2083, 0x0033, 0,
       
  3404     10, 0x2084, 0x0034, 0,
       
  3405     10, 0x2085, 0x0035, 0,
       
  3406     10, 0x2086, 0x0036, 0,
       
  3407     10, 0x2087, 0x0037, 0,
       
  3408     10, 0x2088, 0x0038, 0,
       
  3409     10, 0x2089, 0x0039, 0,
       
  3410     10, 0x208A, 0x002B, 0,
       
  3411     10, 0x208B, 0x2212, 0,
       
  3412     10, 0x208C, 0x003D, 0,
       
  3413     10, 0x208D, 0x0028, 0,
       
  3414     10, 0x208E, 0x0029, 0,
       
  3415     16, 0x20A8, 0x0052, 0x0073, 0,
       
  3416     16, 0x2100, 0x0061, 0x002F, 0x0063, 0,
       
  3417     16, 0x2101, 0x0061, 0x002F, 0x0073, 0,
       
  3418     2, 0x2102, 0x0043, 0,
       
  3419     16, 0x2103, 0x00B0, 0x0043, 0,
       
  3420     16, 0x2105, 0x0063, 0x002F, 0x006F, 0,
       
  3421     16, 0x2106, 0x0063, 0x002F, 0x0075, 0,
       
  3422     16, 0x2107, 0x0190, 0,
       
  3423     16, 0x2109, 0x00B0, 0x0046, 0,
       
  3424     2, 0x210A, 0x0067, 0,
       
  3425     2, 0x210B, 0x0048, 0,
       
  3426     2, 0x210C, 0x0048, 0,
       
  3427     2, 0x210D, 0x0048, 0,
       
  3428     2, 0x210E, 0x0068, 0,
       
  3429     2, 0x210F, 0x0127, 0,
       
  3430     2, 0x2110, 0x0049, 0,
       
  3431     2, 0x2111, 0x0049, 0,
       
  3432     2, 0x2112, 0x004C, 0,
       
  3433     2, 0x2113, 0x006C, 0,
       
  3434     2, 0x2115, 0x004E, 0,
       
  3435     16, 0x2116, 0x004E, 0x006F, 0,
       
  3436     2, 0x2119, 0x0050, 0,
       
  3437     2, 0x211A, 0x0051, 0,
       
  3438     2, 0x211B, 0x0052, 0,
       
  3439     2, 0x211C, 0x0052, 0,
       
  3440     2, 0x211D, 0x0052, 0,
       
  3441     9, 0x2120, 0x0053, 0x004D, 0,
       
  3442     16, 0x2121, 0x0054, 0x0045, 0x004C, 0,
       
  3443     9, 0x2122, 0x0054, 0x004D, 0,
       
  3444     2, 0x2124, 0x005A, 0,
       
  3445     1, 0x2126, 0x03A9, 0,
       
  3446     2, 0x2128, 0x005A, 0,
       
  3447     1, 0x212A, 0x004B, 0,
       
  3448     1, 0x212B, 0x00C5, 0,
       
  3449     2, 0x212C, 0x0042, 0,
       
  3450     2, 0x212D, 0x0043, 0,
       
  3451     2, 0x212F, 0x0065, 0,
       
  3452     2, 0x2130, 0x0045, 0,
       
  3453     2, 0x2131, 0x0046, 0,
       
  3454     2, 0x2133, 0x004D, 0,
       
  3455     2, 0x2134, 0x006F, 0,
       
  3456     16, 0x2135, 0x05D0, 0,
       
  3457     16, 0x2136, 0x05D1, 0,
       
  3458     16, 0x2137, 0x05D2, 0,
       
  3459     16, 0x2138, 0x05D3, 0,
       
  3460     2, 0x2139, 0x0069, 0,
       
  3461     17, 0x2153, 0x0031, 0x2044, 0x0033, 0,
       
  3462     17, 0x2154, 0x0032, 0x2044, 0x0033, 0,
       
  3463     17, 0x2155, 0x0031, 0x2044, 0x0035, 0,
       
  3464     17, 0x2156, 0x0032, 0x2044, 0x0035, 0,
       
  3465     17, 0x2157, 0x0033, 0x2044, 0x0035, 0,
       
  3466     17, 0x2158, 0x0034, 0x2044, 0x0035, 0,
       
  3467     17, 0x2159, 0x0031, 0x2044, 0x0036, 0,
       
  3468     17, 0x215A, 0x0035, 0x2044, 0x0036, 0,
       
  3469     17, 0x215B, 0x0031, 0x2044, 0x0038, 0,
       
  3470     17, 0x215C, 0x0033, 0x2044, 0x0038, 0,
       
  3471     17, 0x215D, 0x0035, 0x2044, 0x0038, 0,
       
  3472     17, 0x215E, 0x0037, 0x2044, 0x0038, 0,
       
  3473     17, 0x215F, 0x0031, 0x2044, 0,
       
  3474     16, 0x2160, 0x0049, 0,
       
  3475     16, 0x2161, 0x0049, 0x0049, 0,
       
  3476     16, 0x2162, 0x0049, 0x0049, 0x0049, 0,
       
  3477     16, 0x2163, 0x0049, 0x0056, 0,
       
  3478     16, 0x2164, 0x0056, 0,
       
  3479     16, 0x2165, 0x0056, 0x0049, 0,
       
  3480     16, 0x2166, 0x0056, 0x0049, 0x0049, 0,
       
  3481     16, 0x2167, 0x0056, 0x0049, 0x0049, 0x0049, 0,
       
  3482     16, 0x2168, 0x0049, 0x0058, 0,
       
  3483     16, 0x2169, 0x0058, 0,
       
  3484     16, 0x216A, 0x0058, 0x0049, 0,
       
  3485     16, 0x216B, 0x0058, 0x0049, 0x0049, 0,
       
  3486     16, 0x216C, 0x004C, 0,
       
  3487     16, 0x216D, 0x0043, 0,
       
  3488     16, 0x216E, 0x0044, 0,
       
  3489     16, 0x216F, 0x004D, 0,
       
  3490     16, 0x2170, 0x0069, 0,
       
  3491     16, 0x2171, 0x0069, 0x0069, 0,
       
  3492     16, 0x2172, 0x0069, 0x0069, 0x0069, 0,
       
  3493     16, 0x2173, 0x0069, 0x0076, 0,
       
  3494     16, 0x2174, 0x0076, 0,
       
  3495     16, 0x2175, 0x0076, 0x0069, 0,
       
  3496     16, 0x2176, 0x0076, 0x0069, 0x0069, 0,
       
  3497     16, 0x2177, 0x0076, 0x0069, 0x0069, 0x0069, 0,
       
  3498     16, 0x2178, 0x0069, 0x0078, 0,
       
  3499     16, 0x2179, 0x0078, 0,
       
  3500     16, 0x217A, 0x0078, 0x0069, 0,
       
  3501     16, 0x217B, 0x0078, 0x0069, 0x0069, 0,
       
  3502     16, 0x217C, 0x006C, 0,
       
  3503     16, 0x217D, 0x0063, 0,
       
  3504     16, 0x217E, 0x0064, 0,
       
  3505     16, 0x217F, 0x006D, 0,
       
  3506     1, 0x219A, 0x2190, 0x0338, 0,
       
  3507     1, 0x219B, 0x2192, 0x0338, 0,
       
  3508     1, 0x21AE, 0x2194, 0x0338, 0,
       
  3509     1, 0x21CD, 0x21D0, 0x0338, 0,
       
  3510     1, 0x21CE, 0x21D4, 0x0338, 0,
       
  3511     1, 0x21CF, 0x21D2, 0x0338, 0,
       
  3512     1, 0x2204, 0x2203, 0x0338, 0,
       
  3513     1, 0x2209, 0x2208, 0x0338, 0,
       
  3514     1, 0x220C, 0x220B, 0x0338, 0,
       
  3515     1, 0x2224, 0x2223, 0x0338, 0,
       
  3516     1, 0x2226, 0x2225, 0x0338, 0,
       
  3517     16, 0x222C, 0x222B, 0x222B, 0,
       
  3518     16, 0x222D, 0x222B, 0x222B, 0x222B, 0,
       
  3519     16, 0x222F, 0x222E, 0x222E, 0,
       
  3520     16, 0x2230, 0x222E, 0x222E, 0x222E, 0,
       
  3521     1, 0x2241, 0x223C, 0x0338, 0,
       
  3522     1, 0x2244, 0x2243, 0x0338, 0,
       
  3523     1, 0x2247, 0x2245, 0x0338, 0,
       
  3524     1, 0x2249, 0x2248, 0x0338, 0,
       
  3525     1, 0x2260, 0x003D, 0x0338, 0,
       
  3526     1, 0x2262, 0x2261, 0x0338, 0,
       
  3527     1, 0x226D, 0x224D, 0x0338, 0,
       
  3528     1, 0x226E, 0x003C, 0x0338, 0,
       
  3529     1, 0x226F, 0x003E, 0x0338, 0,
       
  3530     1, 0x2270, 0x2264, 0x0338, 0,
       
  3531     1, 0x2271, 0x2265, 0x0338, 0,
       
  3532     1, 0x2274, 0x2272, 0x0338, 0,
       
  3533     1, 0x2275, 0x2273, 0x0338, 0,
       
  3534     1, 0x2278, 0x2276, 0x0338, 0,
       
  3535     1, 0x2279, 0x2277, 0x0338, 0,
       
  3536     1, 0x2280, 0x227A, 0x0338, 0,
       
  3537     1, 0x2281, 0x227B, 0x0338, 0,
       
  3538     1, 0x2284, 0x2282, 0x0338, 0,
       
  3539     1, 0x2285, 0x2283, 0x0338, 0,
       
  3540     1, 0x2288, 0x2286, 0x0338, 0,
       
  3541     1, 0x2289, 0x2287, 0x0338, 0,
       
  3542     1, 0x22AC, 0x22A2, 0x0338, 0,
       
  3543     1, 0x22AD, 0x22A8, 0x0338, 0,
       
  3544     1, 0x22AE, 0x22A9, 0x0338, 0,
       
  3545     1, 0x22AF, 0x22AB, 0x0338, 0,
       
  3546     1, 0x22E0, 0x227C, 0x0338, 0,
       
  3547     1, 0x22E1, 0x227D, 0x0338, 0,
       
  3548     1, 0x22E2, 0x2291, 0x0338, 0,
       
  3549     1, 0x22E3, 0x2292, 0x0338, 0,
       
  3550     1, 0x22EA, 0x22B2, 0x0338, 0,
       
  3551     1, 0x22EB, 0x22B3, 0x0338, 0,
       
  3552     1, 0x22EC, 0x22B4, 0x0338, 0,
       
  3553     1, 0x22ED, 0x22B5, 0x0338, 0,
       
  3554     1, 0x2329, 0x3008, 0,
       
  3555     1, 0x232A, 0x3009, 0,
       
  3556     8, 0x2460, 0x0031, 0,
       
  3557     8, 0x2461, 0x0032, 0,
       
  3558     8, 0x2462, 0x0033, 0,
       
  3559     8, 0x2463, 0x0034, 0,
       
  3560     8, 0x2464, 0x0035, 0,
       
  3561     8, 0x2465, 0x0036, 0,
       
  3562     8, 0x2466, 0x0037, 0,
       
  3563     8, 0x2467, 0x0038, 0,
       
  3564     8, 0x2468, 0x0039, 0,
       
  3565     8, 0x2469, 0x0031, 0x0030, 0,
       
  3566     8, 0x246A, 0x0031, 0x0031, 0,
       
  3567     8, 0x246B, 0x0031, 0x0032, 0,
       
  3568     8, 0x246C, 0x0031, 0x0033, 0,
       
  3569     8, 0x246D, 0x0031, 0x0034, 0,
       
  3570     8, 0x246E, 0x0031, 0x0035, 0,
       
  3571     8, 0x246F, 0x0031, 0x0036, 0,
       
  3572     8, 0x2470, 0x0031, 0x0037, 0,
       
  3573     8, 0x2471, 0x0031, 0x0038, 0,
       
  3574     8, 0x2472, 0x0031, 0x0039, 0,
       
  3575     8, 0x2473, 0x0032, 0x0030, 0,
       
  3576     16, 0x2474, 0x0028, 0x0031, 0x0029, 0,
       
  3577     16, 0x2475, 0x0028, 0x0032, 0x0029, 0,
       
  3578     16, 0x2476, 0x0028, 0x0033, 0x0029, 0,
       
  3579     16, 0x2477, 0x0028, 0x0034, 0x0029, 0,
       
  3580     16, 0x2478, 0x0028, 0x0035, 0x0029, 0,
       
  3581     16, 0x2479, 0x0028, 0x0036, 0x0029, 0,
       
  3582     16, 0x247A, 0x0028, 0x0037, 0x0029, 0,
       
  3583     16, 0x247B, 0x0028, 0x0038, 0x0029, 0,
       
  3584     16, 0x247C, 0x0028, 0x0039, 0x0029, 0,
       
  3585     16, 0x247D, 0x0028, 0x0031, 0x0030, 0x0029, 0,
       
  3586     16, 0x247E, 0x0028, 0x0031, 0x0031, 0x0029, 0,
       
  3587     16, 0x247F, 0x0028, 0x0031, 0x0032, 0x0029, 0,
       
  3588     16, 0x2480, 0x0028, 0x0031, 0x0033, 0x0029, 0,
       
  3589     16, 0x2481, 0x0028, 0x0031, 0x0034, 0x0029, 0,
       
  3590     16, 0x2482, 0x0028, 0x0031, 0x0035, 0x0029, 0,
       
  3591     16, 0x2483, 0x0028, 0x0031, 0x0036, 0x0029, 0,
       
  3592     16, 0x2484, 0x0028, 0x0031, 0x0037, 0x0029, 0,
       
  3593     16, 0x2485, 0x0028, 0x0031, 0x0038, 0x0029, 0,
       
  3594     16, 0x2486, 0x0028, 0x0031, 0x0039, 0x0029, 0,
       
  3595     16, 0x2487, 0x0028, 0x0032, 0x0030, 0x0029, 0,
       
  3596     16, 0x2488, 0x0031, 0x002E, 0,
       
  3597     16, 0x2489, 0x0032, 0x002E, 0,
       
  3598     16, 0x248A, 0x0033, 0x002E, 0,
       
  3599     16, 0x248B, 0x0034, 0x002E, 0,
       
  3600     16, 0x248C, 0x0035, 0x002E, 0,
       
  3601     16, 0x248D, 0x0036, 0x002E, 0,
       
  3602     16, 0x248E, 0x0037, 0x002E, 0,
       
  3603     16, 0x248F, 0x0038, 0x002E, 0,
       
  3604     16, 0x2490, 0x0039, 0x002E, 0,
       
  3605     16, 0x2491, 0x0031, 0x0030, 0x002E, 0,
       
  3606     16, 0x2492, 0x0031, 0x0031, 0x002E, 0,
       
  3607     16, 0x2493, 0x0031, 0x0032, 0x002E, 0,
       
  3608     16, 0x2494, 0x0031, 0x0033, 0x002E, 0,
       
  3609     16, 0x2495, 0x0031, 0x0034, 0x002E, 0,
       
  3610     16, 0x2496, 0x0031, 0x0035, 0x002E, 0,
       
  3611     16, 0x2497, 0x0031, 0x0036, 0x002E, 0,
       
  3612     16, 0x2498, 0x0031, 0x0037, 0x002E, 0,
       
  3613     16, 0x2499, 0x0031, 0x0038, 0x002E, 0,
       
  3614     16, 0x249A, 0x0031, 0x0039, 0x002E, 0,
       
  3615     16, 0x249B, 0x0032, 0x0030, 0x002E, 0,
       
  3616     16, 0x249C, 0x0028, 0x0061, 0x0029, 0,
       
  3617     16, 0x249D, 0x0028, 0x0062, 0x0029, 0,
       
  3618     16, 0x249E, 0x0028, 0x0063, 0x0029, 0,
       
  3619     16, 0x249F, 0x0028, 0x0064, 0x0029, 0,
       
  3620     16, 0x24A0, 0x0028, 0x0065, 0x0029, 0,
       
  3621     16, 0x24A1, 0x0028, 0x0066, 0x0029, 0,
       
  3622     16, 0x24A2, 0x0028, 0x0067, 0x0029, 0,
       
  3623     16, 0x24A3, 0x0028, 0x0068, 0x0029, 0,
       
  3624     16, 0x24A4, 0x0028, 0x0069, 0x0029, 0,
       
  3625     16, 0x24A5, 0x0028, 0x006A, 0x0029, 0,
       
  3626     16, 0x24A6, 0x0028, 0x006B, 0x0029, 0,
       
  3627     16, 0x24A7, 0x0028, 0x006C, 0x0029, 0,
       
  3628     16, 0x24A8, 0x0028, 0x006D, 0x0029, 0,
       
  3629     16, 0x24A9, 0x0028, 0x006E, 0x0029, 0,
       
  3630     16, 0x24AA, 0x0028, 0x006F, 0x0029, 0,
       
  3631     16, 0x24AB, 0x0028, 0x0070, 0x0029, 0,
       
  3632     16, 0x24AC, 0x0028, 0x0071, 0x0029, 0,
       
  3633     16, 0x24AD, 0x0028, 0x0072, 0x0029, 0,
       
  3634     16, 0x24AE, 0x0028, 0x0073, 0x0029, 0,
       
  3635     16, 0x24AF, 0x0028, 0x0074, 0x0029, 0,
       
  3636     16, 0x24B0, 0x0028, 0x0075, 0x0029, 0,
       
  3637     16, 0x24B1, 0x0028, 0x0076, 0x0029, 0,
       
  3638     16, 0x24B2, 0x0028, 0x0077, 0x0029, 0,
       
  3639     16, 0x24B3, 0x0028, 0x0078, 0x0029, 0,
       
  3640     16, 0x24B4, 0x0028, 0x0079, 0x0029, 0,
       
  3641     16, 0x24B5, 0x0028, 0x007A, 0x0029, 0,
       
  3642     8, 0x24B6, 0x0041, 0,
       
  3643     8, 0x24B7, 0x0042, 0,
       
  3644     8, 0x24B8, 0x0043, 0,
       
  3645     8, 0x24B9, 0x0044, 0,
       
  3646     8, 0x24BA, 0x0045, 0,
       
  3647     8, 0x24BB, 0x0046, 0,
       
  3648     8, 0x24BC, 0x0047, 0,
       
  3649     8, 0x24BD, 0x0048, 0,
       
  3650     8, 0x24BE, 0x0049, 0,
       
  3651     8, 0x24BF, 0x004A, 0,
       
  3652     8, 0x24C0, 0x004B, 0,
       
  3653     8, 0x24C1, 0x004C, 0,
       
  3654     8, 0x24C2, 0x004D, 0,
       
  3655     8, 0x24C3, 0x004E, 0,
       
  3656     8, 0x24C4, 0x004F, 0,
       
  3657     8, 0x24C5, 0x0050, 0,
       
  3658     8, 0x24C6, 0x0051, 0,
       
  3659     8, 0x24C7, 0x0052, 0,
       
  3660     8, 0x24C8, 0x0053, 0,
       
  3661     8, 0x24C9, 0x0054, 0,
       
  3662     8, 0x24CA, 0x0055, 0,
       
  3663     8, 0x24CB, 0x0056, 0,
       
  3664     8, 0x24CC, 0x0057, 0,
       
  3665     8, 0x24CD, 0x0058, 0,
       
  3666     8, 0x24CE, 0x0059, 0,
       
  3667     8, 0x24CF, 0x005A, 0,
       
  3668     8, 0x24D0, 0x0061, 0,
       
  3669     8, 0x24D1, 0x0062, 0,
       
  3670     8, 0x24D2, 0x0063, 0,
       
  3671     8, 0x24D3, 0x0064, 0,
       
  3672     8, 0x24D4, 0x0065, 0,
       
  3673     8, 0x24D5, 0x0066, 0,
       
  3674     8, 0x24D6, 0x0067, 0,
       
  3675     8, 0x24D7, 0x0068, 0,
       
  3676     8, 0x24D8, 0x0069, 0,
       
  3677     8, 0x24D9, 0x006A, 0,
       
  3678     8, 0x24DA, 0x006B, 0,
       
  3679     8, 0x24DB, 0x006C, 0,
       
  3680     8, 0x24DC, 0x006D, 0,
       
  3681     8, 0x24DD, 0x006E, 0,
       
  3682     8, 0x24DE, 0x006F, 0,
       
  3683     8, 0x24DF, 0x0070, 0,
       
  3684     8, 0x24E0, 0x0071, 0,
       
  3685     8, 0x24E1, 0x0072, 0,
       
  3686     8, 0x24E2, 0x0073, 0,
       
  3687     8, 0x24E3, 0x0074, 0,
       
  3688     8, 0x24E4, 0x0075, 0,
       
  3689     8, 0x24E5, 0x0076, 0,
       
  3690     8, 0x24E6, 0x0077, 0,
       
  3691     8, 0x24E7, 0x0078, 0,
       
  3692     8, 0x24E8, 0x0079, 0,
       
  3693     8, 0x24E9, 0x007A, 0,
       
  3694     8, 0x24EA, 0x0030, 0,
       
  3695     16, 0x2E9F, 0x6BCD, 0,
       
  3696     16, 0x2EF3, 0x9F9F, 0,
       
  3697     16, 0x2F00, 0x4E00, 0,
       
  3698     16, 0x2F01, 0x4E28, 0,
       
  3699     16, 0x2F02, 0x4E36, 0,
       
  3700     16, 0x2F03, 0x4E3F, 0,
       
  3701     16, 0x2F04, 0x4E59, 0,
       
  3702     16, 0x2F05, 0x4E85, 0,
       
  3703     16, 0x2F06, 0x4E8C, 0,
       
  3704     16, 0x2F07, 0x4EA0, 0,
       
  3705     16, 0x2F08, 0x4EBA, 0,
       
  3706     16, 0x2F09, 0x513F, 0,
       
  3707     16, 0x2F0A, 0x5165, 0,
       
  3708     16, 0x2F0B, 0x516B, 0,
       
  3709     16, 0x2F0C, 0x5182, 0,
       
  3710     16, 0x2F0D, 0x5196, 0,
       
  3711     16, 0x2F0E, 0x51AB, 0,
       
  3712     16, 0x2F0F, 0x51E0, 0,
       
  3713     16, 0x2F10, 0x51F5, 0,
       
  3714     16, 0x2F11, 0x5200, 0,
       
  3715     16, 0x2F12, 0x529B, 0,
       
  3716     16, 0x2F13, 0x52F9, 0,
       
  3717     16, 0x2F14, 0x5315, 0,
       
  3718     16, 0x2F15, 0x531A, 0,
       
  3719     16, 0x2F16, 0x5338, 0,
       
  3720     16, 0x2F17, 0x5341, 0,
       
  3721     16, 0x2F18, 0x535C, 0,
       
  3722     16, 0x2F19, 0x5369, 0,
       
  3723     16, 0x2F1A, 0x5382, 0,
       
  3724     16, 0x2F1B, 0x53B6, 0,
       
  3725     16, 0x2F1C, 0x53C8, 0,
       
  3726     16, 0x2F1D, 0x53E3, 0,
       
  3727     16, 0x2F1E, 0x56D7, 0,
       
  3728     16, 0x2F1F, 0x571F, 0,
       
  3729     16, 0x2F20, 0x58EB, 0,
       
  3730     16, 0x2F21, 0x5902, 0,
       
  3731     16, 0x2F22, 0x590A, 0,
       
  3732     16, 0x2F23, 0x5915, 0,
       
  3733     16, 0x2F24, 0x5927, 0,
       
  3734     16, 0x2F25, 0x5973, 0,
       
  3735     16, 0x2F26, 0x5B50, 0,
       
  3736     16, 0x2F27, 0x5B80, 0,
       
  3737     16, 0x2F28, 0x5BF8, 0,
       
  3738     16, 0x2F29, 0x5C0F, 0,
       
  3739     16, 0x2F2A, 0x5C22, 0,
       
  3740     16, 0x2F2B, 0x5C38, 0,
       
  3741     16, 0x2F2C, 0x5C6E, 0,
       
  3742     16, 0x2F2D, 0x5C71, 0,
       
  3743     16, 0x2F2E, 0x5DDB, 0,
       
  3744     16, 0x2F2F, 0x5DE5, 0,
       
  3745     16, 0x2F30, 0x5DF1, 0,
       
  3746     16, 0x2F31, 0x5DFE, 0,
       
  3747     16, 0x2F32, 0x5E72, 0,
       
  3748     16, 0x2F33, 0x5E7A, 0,
       
  3749     16, 0x2F34, 0x5E7F, 0,
       
  3750     16, 0x2F35, 0x5EF4, 0,
       
  3751     16, 0x2F36, 0x5EFE, 0,
       
  3752     16, 0x2F37, 0x5F0B, 0,
       
  3753     16, 0x2F38, 0x5F13, 0,
       
  3754     16, 0x2F39, 0x5F50, 0,
       
  3755     16, 0x2F3A, 0x5F61, 0,
       
  3756     16, 0x2F3B, 0x5F73, 0,
       
  3757     16, 0x2F3C, 0x5FC3, 0,
       
  3758     16, 0x2F3D, 0x6208, 0,
       
  3759     16, 0x2F3E, 0x6236, 0,
       
  3760     16, 0x2F3F, 0x624B, 0,
       
  3761     16, 0x2F40, 0x652F, 0,
       
  3762     16, 0x2F41, 0x6534, 0,
       
  3763     16, 0x2F42, 0x6587, 0,
       
  3764     16, 0x2F43, 0x6597, 0,
       
  3765     16, 0x2F44, 0x65A4, 0,
       
  3766     16, 0x2F45, 0x65B9, 0,
       
  3767     16, 0x2F46, 0x65E0, 0,
       
  3768     16, 0x2F47, 0x65E5, 0,
       
  3769     16, 0x2F48, 0x66F0, 0,
       
  3770     16, 0x2F49, 0x6708, 0,
       
  3771     16, 0x2F4A, 0x6728, 0,
       
  3772     16, 0x2F4B, 0x6B20, 0,
       
  3773     16, 0x2F4C, 0x6B62, 0,
       
  3774     16, 0x2F4D, 0x6B79, 0,
       
  3775     16, 0x2F4E, 0x6BB3, 0,
       
  3776     16, 0x2F4F, 0x6BCB, 0,
       
  3777     16, 0x2F50, 0x6BD4, 0,
       
  3778     16, 0x2F51, 0x6BDB, 0,
       
  3779     16, 0x2F52, 0x6C0F, 0,
       
  3780     16, 0x2F53, 0x6C14, 0,
       
  3781     16, 0x2F54, 0x6C34, 0,
       
  3782     16, 0x2F55, 0x706B, 0,
       
  3783     16, 0x2F56, 0x722A, 0,
       
  3784     16, 0x2F57, 0x7236, 0,
       
  3785     16, 0x2F58, 0x723B, 0,
       
  3786     16, 0x2F59, 0x723F, 0,
       
  3787     16, 0x2F5A, 0x7247, 0,
       
  3788     16, 0x2F5B, 0x7259, 0,
       
  3789     16, 0x2F5C, 0x725B, 0,
       
  3790     16, 0x2F5D, 0x72AC, 0,
       
  3791     16, 0x2F5E, 0x7384, 0,
       
  3792     16, 0x2F5F, 0x7389, 0,
       
  3793     16, 0x2F60, 0x74DC, 0,
       
  3794     16, 0x2F61, 0x74E6, 0,
       
  3795     16, 0x2F62, 0x7518, 0,
       
  3796     16, 0x2F63, 0x751F, 0,
       
  3797     16, 0x2F64, 0x7528, 0,
       
  3798     16, 0x2F65, 0x7530, 0,
       
  3799     16, 0x2F66, 0x758B, 0,
       
  3800     16, 0x2F67, 0x7592, 0,
       
  3801     16, 0x2F68, 0x7676, 0,
       
  3802     16, 0x2F69, 0x767D, 0,
       
  3803     16, 0x2F6A, 0x76AE, 0,
       
  3804     16, 0x2F6B, 0x76BF, 0,
       
  3805     16, 0x2F6C, 0x76EE, 0,
       
  3806     16, 0x2F6D, 0x77DB, 0,
       
  3807     16, 0x2F6E, 0x77E2, 0,
       
  3808     16, 0x2F6F, 0x77F3, 0,
       
  3809     16, 0x2F70, 0x793A, 0,
       
  3810     16, 0x2F71, 0x79B8, 0,
       
  3811     16, 0x2F72, 0x79BE, 0,
       
  3812     16, 0x2F73, 0x7A74, 0,
       
  3813     16, 0x2F74, 0x7ACB, 0,
       
  3814     16, 0x2F75, 0x7AF9, 0,
       
  3815     16, 0x2F76, 0x7C73, 0,
       
  3816     16, 0x2F77, 0x7CF8, 0,
       
  3817     16, 0x2F78, 0x7F36, 0,
       
  3818     16, 0x2F79, 0x7F51, 0,
       
  3819     16, 0x2F7A, 0x7F8A, 0,
       
  3820     16, 0x2F7B, 0x7FBD, 0,
       
  3821     16, 0x2F7C, 0x8001, 0,
       
  3822     16, 0x2F7D, 0x800C, 0,
       
  3823     16, 0x2F7E, 0x8012, 0,
       
  3824     16, 0x2F7F, 0x8033, 0,
       
  3825     16, 0x2F80, 0x807F, 0,
       
  3826     16, 0x2F81, 0x8089, 0,
       
  3827     16, 0x2F82, 0x81E3, 0,
       
  3828     16, 0x2F83, 0x81EA, 0,
       
  3829     16, 0x2F84, 0x81F3, 0,
       
  3830     16, 0x2F85, 0x81FC, 0,
       
  3831     16, 0x2F86, 0x820C, 0,
       
  3832     16, 0x2F87, 0x821B, 0,
       
  3833     16, 0x2F88, 0x821F, 0,
       
  3834     16, 0x2F89, 0x826E, 0,
       
  3835     16, 0x2F8A, 0x8272, 0,
       
  3836     16, 0x2F8B, 0x8278, 0,
       
  3837     16, 0x2F8C, 0x864D, 0,
       
  3838     16, 0x2F8D, 0x866B, 0,
       
  3839     16, 0x2F8E, 0x8840, 0,
       
  3840     16, 0x2F8F, 0x884C, 0,
       
  3841     16, 0x2F90, 0x8863, 0,
       
  3842     16, 0x2F91, 0x897E, 0,
       
  3843     16, 0x2F92, 0x898B, 0,
       
  3844     16, 0x2F93, 0x89D2, 0,
       
  3845     16, 0x2F94, 0x8A00, 0,
       
  3846     16, 0x2F95, 0x8C37, 0,
       
  3847     16, 0x2F96, 0x8C46, 0,
       
  3848     16, 0x2F97, 0x8C55, 0,
       
  3849     16, 0x2F98, 0x8C78, 0,
       
  3850     16, 0x2F99, 0x8C9D, 0,
       
  3851     16, 0x2F9A, 0x8D64, 0,
       
  3852     16, 0x2F9B, 0x8D70, 0,
       
  3853     16, 0x2F9C, 0x8DB3, 0,
       
  3854     16, 0x2F9D, 0x8EAB, 0,
       
  3855     16, 0x2F9E, 0x8ECA, 0,
       
  3856     16, 0x2F9F, 0x8F9B, 0,
       
  3857     16, 0x2FA0, 0x8FB0, 0,
       
  3858     16, 0x2FA1, 0x8FB5, 0,
       
  3859     16, 0x2FA2, 0x9091, 0,
       
  3860     16, 0x2FA3, 0x9149, 0,
       
  3861     16, 0x2FA4, 0x91C6, 0,
       
  3862     16, 0x2FA5, 0x91CC, 0,
       
  3863     16, 0x2FA6, 0x91D1, 0,
       
  3864     16, 0x2FA7, 0x9577, 0,
       
  3865     16, 0x2FA8, 0x9580, 0,
       
  3866     16, 0x2FA9, 0x961C, 0,
       
  3867     16, 0x2FAA, 0x96B6, 0,
       
  3868     16, 0x2FAB, 0x96B9, 0,
       
  3869     16, 0x2FAC, 0x96E8, 0,
       
  3870     16, 0x2FAD, 0x9751, 0,
       
  3871     16, 0x2FAE, 0x975E, 0,
       
  3872     16, 0x2FAF, 0x9762, 0,
       
  3873     16, 0x2FB0, 0x9769, 0,
       
  3874     16, 0x2FB1, 0x97CB, 0,
       
  3875     16, 0x2FB2, 0x97ED, 0,
       
  3876     16, 0x2FB3, 0x97F3, 0,
       
  3877     16, 0x2FB4, 0x9801, 0,
       
  3878     16, 0x2FB5, 0x98A8, 0,
       
  3879     16, 0x2FB6, 0x98DB, 0,
       
  3880     16, 0x2FB7, 0x98DF, 0,
       
  3881     16, 0x2FB8, 0x9996, 0,
       
  3882     16, 0x2FB9, 0x9999, 0,
       
  3883     16, 0x2FBA, 0x99AC, 0,
       
  3884     16, 0x2FBB, 0x9AA8, 0,
       
  3885     16, 0x2FBC, 0x9AD8, 0,
       
  3886     16, 0x2FBD, 0x9ADF, 0,
       
  3887     16, 0x2FBE, 0x9B25, 0,
       
  3888     16, 0x2FBF, 0x9B2F, 0,
       
  3889     16, 0x2FC0, 0x9B32, 0,
       
  3890     16, 0x2FC1, 0x9B3C, 0,
       
  3891     16, 0x2FC2, 0x9B5A, 0,
       
  3892     16, 0x2FC3, 0x9CE5, 0,
       
  3893     16, 0x2FC4, 0x9E75, 0,
       
  3894     16, 0x2FC5, 0x9E7F, 0,
       
  3895     16, 0x2FC6, 0x9EA5, 0,
       
  3896     16, 0x2FC7, 0x9EBB, 0,
       
  3897     16, 0x2FC8, 0x9EC3, 0,
       
  3898     16, 0x2FC9, 0x9ECD, 0,
       
  3899     16, 0x2FCA, 0x9ED1, 0,
       
  3900     16, 0x2FCB, 0x9EF9, 0,
       
  3901     16, 0x2FCC, 0x9EFD, 0,
       
  3902     16, 0x2FCD, 0x9F0E, 0,
       
  3903     16, 0x2FCE, 0x9F13, 0,
       
  3904     16, 0x2FCF, 0x9F20, 0,
       
  3905     16, 0x2FD0, 0x9F3B, 0,
       
  3906     16, 0x2FD1, 0x9F4A, 0,
       
  3907     16, 0x2FD2, 0x9F52, 0,
       
  3908     16, 0x2FD3, 0x9F8D, 0,
       
  3909     16, 0x2FD4, 0x9F9C, 0,
       
  3910     16, 0x2FD5, 0x9FA0, 0,
       
  3911     12, 0x3000, 0x0020, 0,
       
  3912     16, 0x3036, 0x3012, 0,
       
  3913     16, 0x3038, 0x5341, 0,
       
  3914     16, 0x3039, 0x5344, 0,
       
  3915     16, 0x303A, 0x5345, 0,
       
  3916     1, 0x304C, 0x304B, 0x3099, 0,
       
  3917     1, 0x304E, 0x304D, 0x3099, 0,
       
  3918     1, 0x3050, 0x304F, 0x3099, 0,
       
  3919     1, 0x3052, 0x3051, 0x3099, 0,
       
  3920     1, 0x3054, 0x3053, 0x3099, 0,
       
  3921     1, 0x3056, 0x3055, 0x3099, 0,
       
  3922     1, 0x3058, 0x3057, 0x3099, 0,
       
  3923     1, 0x305A, 0x3059, 0x3099, 0,
       
  3924     1, 0x305C, 0x305B, 0x3099, 0,
       
  3925     1, 0x305E, 0x305D, 0x3099, 0,
       
  3926     1, 0x3060, 0x305F, 0x3099, 0,
       
  3927     1, 0x3062, 0x3061, 0x3099, 0,
       
  3928     1, 0x3065, 0x3064, 0x3099, 0,
       
  3929     1, 0x3067, 0x3066, 0x3099, 0,
       
  3930     1, 0x3069, 0x3068, 0x3099, 0,
       
  3931     1, 0x3070, 0x306F, 0x3099, 0,
       
  3932     1, 0x3071, 0x306F, 0x309A, 0,
       
  3933     1, 0x3073, 0x3072, 0x3099, 0,
       
  3934     1, 0x3074, 0x3072, 0x309A, 0,
       
  3935     1, 0x3076, 0x3075, 0x3099, 0,
       
  3936     1, 0x3077, 0x3075, 0x309A, 0,
       
  3937     1, 0x3079, 0x3078, 0x3099, 0,
       
  3938     1, 0x307A, 0x3078, 0x309A, 0,
       
  3939     1, 0x307C, 0x307B, 0x3099, 0,
       
  3940     1, 0x307D, 0x307B, 0x309A, 0,
       
  3941     1, 0x3094, 0x3046, 0x3099, 0,
       
  3942     16, 0x309B, 0x0020, 0x3099, 0,
       
  3943     16, 0x309C, 0x0020, 0x309A, 0,
       
  3944     1, 0x309E, 0x309D, 0x3099, 0,
       
  3945     1, 0x30AC, 0x30AB, 0x3099, 0,
       
  3946     1, 0x30AE, 0x30AD, 0x3099, 0,
       
  3947     1, 0x30B0, 0x30AF, 0x3099, 0,
       
  3948     1, 0x30B2, 0x30B1, 0x3099, 0,
       
  3949     1, 0x30B4, 0x30B3, 0x3099, 0,
       
  3950     1, 0x30B6, 0x30B5, 0x3099, 0,
       
  3951     1, 0x30B8, 0x30B7, 0x3099, 0,
       
  3952     1, 0x30BA, 0x30B9, 0x3099, 0,
       
  3953     1, 0x30BC, 0x30BB, 0x3099, 0,
       
  3954     1, 0x30BE, 0x30BD, 0x3099, 0,
       
  3955     1, 0x30C0, 0x30BF, 0x3099, 0,
       
  3956     1, 0x30C2, 0x30C1, 0x3099, 0,
       
  3957     1, 0x30C5, 0x30C4, 0x3099, 0,
       
  3958     1, 0x30C7, 0x30C6, 0x3099, 0,
       
  3959     1, 0x30C9, 0x30C8, 0x3099, 0,
       
  3960     1, 0x30D0, 0x30CF, 0x3099, 0,
       
  3961     1, 0x30D1, 0x30CF, 0x309A, 0,
       
  3962     1, 0x30D3, 0x30D2, 0x3099, 0,
       
  3963     1, 0x30D4, 0x30D2, 0x309A, 0,
       
  3964     1, 0x30D6, 0x30D5, 0x3099, 0,
       
  3965     1, 0x30D7, 0x30D5, 0x309A, 0,
       
  3966     1, 0x30D9, 0x30D8, 0x3099, 0,
       
  3967     1, 0x30DA, 0x30D8, 0x309A, 0,
       
  3968     1, 0x30DC, 0x30DB, 0x3099, 0,
       
  3969     1, 0x30DD, 0x30DB, 0x309A, 0,
       
  3970     1, 0x30F4, 0x30A6, 0x3099, 0,
       
  3971     1, 0x30F7, 0x30EF, 0x3099, 0,
       
  3972     1, 0x30F8, 0x30F0, 0x3099, 0,
       
  3973     1, 0x30F9, 0x30F1, 0x3099, 0,
       
  3974     1, 0x30FA, 0x30F2, 0x3099, 0,
       
  3975     1, 0x30FE, 0x30FD, 0x3099, 0,
       
  3976     16, 0x3131, 0x1100, 0,
       
  3977     16, 0x3132, 0x1101, 0,
       
  3978     16, 0x3133, 0x11AA, 0,
       
  3979     16, 0x3134, 0x1102, 0,
       
  3980     16, 0x3135, 0x11AC, 0,
       
  3981     16, 0x3136, 0x11AD, 0,
       
  3982     16, 0x3137, 0x1103, 0,
       
  3983     16, 0x3138, 0x1104, 0,
       
  3984     16, 0x3139, 0x1105, 0,
       
  3985     16, 0x313A, 0x11B0, 0,
       
  3986     16, 0x313B, 0x11B1, 0,
       
  3987     16, 0x313C, 0x11B2, 0,
       
  3988     16, 0x313D, 0x11B3, 0,
       
  3989     16, 0x313E, 0x11B4, 0,
       
  3990     16, 0x313F, 0x11B5, 0,
       
  3991     16, 0x3140, 0x111A, 0,
       
  3992     16, 0x3141, 0x1106, 0,
       
  3993     16, 0x3142, 0x1107, 0,
       
  3994     16, 0x3143, 0x1108, 0,
       
  3995     16, 0x3144, 0x1121, 0,
       
  3996     16, 0x3145, 0x1109, 0,
       
  3997     16, 0x3146, 0x110A, 0,
       
  3998     16, 0x3147, 0x110B, 0,
       
  3999     16, 0x3148, 0x110C, 0,
       
  4000     16, 0x3149, 0x110D, 0,
       
  4001     16, 0x314A, 0x110E, 0,
       
  4002     16, 0x314B, 0x110F, 0,
       
  4003     16, 0x314C, 0x1110, 0,
       
  4004     16, 0x314D, 0x1111, 0,
       
  4005     16, 0x314E, 0x1112, 0,
       
  4006     16, 0x314F, 0x1161, 0,
       
  4007     16, 0x3150, 0x1162, 0,
       
  4008     16, 0x3151, 0x1163, 0,
       
  4009     16, 0x3152, 0x1164, 0,
       
  4010     16, 0x3153, 0x1165, 0,
       
  4011     16, 0x3154, 0x1166, 0,
       
  4012     16, 0x3155, 0x1167, 0,
       
  4013     16, 0x3156, 0x1168, 0,
       
  4014     16, 0x3157, 0x1169, 0,
       
  4015     16, 0x3158, 0x116A, 0,
       
  4016     16, 0x3159, 0x116B, 0,
       
  4017     16, 0x315A, 0x116C, 0,
       
  4018     16, 0x315B, 0x116D, 0,
       
  4019     16, 0x315C, 0x116E, 0,
       
  4020     16, 0x315D, 0x116F, 0,
       
  4021     16, 0x315E, 0x1170, 0,
       
  4022     16, 0x315F, 0x1171, 0,
       
  4023     16, 0x3160, 0x1172, 0,
       
  4024     16, 0x3161, 0x1173, 0,
       
  4025     16, 0x3162, 0x1174, 0,
       
  4026     16, 0x3163, 0x1175, 0,
       
  4027     16, 0x3164, 0x1160, 0,
       
  4028     16, 0x3165, 0x1114, 0,
       
  4029     16, 0x3166, 0x1115, 0,
       
  4030     16, 0x3167, 0x11C7, 0,
       
  4031     16, 0x3168, 0x11C8, 0,
       
  4032     16, 0x3169, 0x11CC, 0,
       
  4033     16, 0x316A, 0x11CE, 0,
       
  4034     16, 0x316B, 0x11D3, 0,
       
  4035     16, 0x316C, 0x11D7, 0,
       
  4036     16, 0x316D, 0x11D9, 0,
       
  4037     16, 0x316E, 0x111C, 0,
       
  4038     16, 0x316F, 0x11DD, 0,
       
  4039     16, 0x3170, 0x11DF, 0,
       
  4040     16, 0x3171, 0x111D, 0,
       
  4041     16, 0x3172, 0x111E, 0,
       
  4042     16, 0x3173, 0x1120, 0,
       
  4043     16, 0x3174, 0x1122, 0,
       
  4044     16, 0x3175, 0x1123, 0,
       
  4045     16, 0x3176, 0x1127, 0,
       
  4046     16, 0x3177, 0x1129, 0,
       
  4047     16, 0x3178, 0x112B, 0,
       
  4048     16, 0x3179, 0x112C, 0,
       
  4049     16, 0x317A, 0x112D, 0,
       
  4050     16, 0x317B, 0x112E, 0,
       
  4051     16, 0x317C, 0x112F, 0,
       
  4052     16, 0x317D, 0x1132, 0,
       
  4053     16, 0x317E, 0x1136, 0,
       
  4054     16, 0x317F, 0x1140, 0,
       
  4055     16, 0x3180, 0x1147, 0,
       
  4056     16, 0x3181, 0x114C, 0,
       
  4057     16, 0x3182, 0x11F1, 0,
       
  4058     16, 0x3183, 0x11F2, 0,
       
  4059     16, 0x3184, 0x1157, 0,
       
  4060     16, 0x3185, 0x1158, 0,
       
  4061     16, 0x3186, 0x1159, 0,
       
  4062     16, 0x3187, 0x1184, 0,
       
  4063     16, 0x3188, 0x1185, 0,
       
  4064     16, 0x3189, 0x1188, 0,
       
  4065     16, 0x318A, 0x1191, 0,
       
  4066     16, 0x318B, 0x1192, 0,
       
  4067     16, 0x318C, 0x1194, 0,
       
  4068     16, 0x318D, 0x119E, 0,
       
  4069     16, 0x318E, 0x11A1, 0,
       
  4070     9, 0x3192, 0x4E00, 0,
       
  4071     9, 0x3193, 0x4E8C, 0,
       
  4072     9, 0x3194, 0x4E09, 0,
       
  4073     9, 0x3195, 0x56DB, 0,
       
  4074     9, 0x3196, 0x4E0A, 0,
       
  4075     9, 0x3197, 0x4E2D, 0,
       
  4076     9, 0x3198, 0x4E0B, 0,
       
  4077     9, 0x3199, 0x7532, 0,
       
  4078     9, 0x319A, 0x4E59, 0,
       
  4079     9, 0x319B, 0x4E19, 0,
       
  4080     9, 0x319C, 0x4E01, 0,
       
  4081     9, 0x319D, 0x5929, 0,
       
  4082     9, 0x319E, 0x5730, 0,
       
  4083     9, 0x319F, 0x4EBA, 0,
       
  4084     16, 0x3200, 0x0028, 0x1100, 0x0029, 0,
       
  4085     16, 0x3201, 0x0028, 0x1102, 0x0029, 0,
       
  4086     16, 0x3202, 0x0028, 0x1103, 0x0029, 0,
       
  4087     16, 0x3203, 0x0028, 0x1105, 0x0029, 0,
       
  4088     16, 0x3204, 0x0028, 0x1106, 0x0029, 0,
       
  4089     16, 0x3205, 0x0028, 0x1107, 0x0029, 0,
       
  4090     16, 0x3206, 0x0028, 0x1109, 0x0029, 0,
       
  4091     16, 0x3207, 0x0028, 0x110B, 0x0029, 0,
       
  4092     16, 0x3208, 0x0028, 0x110C, 0x0029, 0,
       
  4093     16, 0x3209, 0x0028, 0x110E, 0x0029, 0,
       
  4094     16, 0x320A, 0x0028, 0x110F, 0x0029, 0,
       
  4095     16, 0x320B, 0x0028, 0x1110, 0x0029, 0,
       
  4096     16, 0x320C, 0x0028, 0x1111, 0x0029, 0,
       
  4097     16, 0x320D, 0x0028, 0x1112, 0x0029, 0,
       
  4098     16, 0x320E, 0x0028, 0x1100, 0x1161, 0x0029, 0,
       
  4099     16, 0x320F, 0x0028, 0x1102, 0x1161, 0x0029, 0,
       
  4100     16, 0x3210, 0x0028, 0x1103, 0x1161, 0x0029, 0,
       
  4101     16, 0x3211, 0x0028, 0x1105, 0x1161, 0x0029, 0,
       
  4102     16, 0x3212, 0x0028, 0x1106, 0x1161, 0x0029, 0,
       
  4103     16, 0x3213, 0x0028, 0x1107, 0x1161, 0x0029, 0,
       
  4104     16, 0x3214, 0x0028, 0x1109, 0x1161, 0x0029, 0,
       
  4105     16, 0x3215, 0x0028, 0x110B, 0x1161, 0x0029, 0,
       
  4106     16, 0x3216, 0x0028, 0x110C, 0x1161, 0x0029, 0,
       
  4107     16, 0x3217, 0x0028, 0x110E, 0x1161, 0x0029, 0,
       
  4108     16, 0x3218, 0x0028, 0x110F, 0x1161, 0x0029, 0,
       
  4109     16, 0x3219, 0x0028, 0x1110, 0x1161, 0x0029, 0,
       
  4110     16, 0x321A, 0x0028, 0x1111, 0x1161, 0x0029, 0,
       
  4111     16, 0x321B, 0x0028, 0x1112, 0x1161, 0x0029, 0,
       
  4112     16, 0x321C, 0x0028, 0x110C, 0x116E, 0x0029, 0,
       
  4113     16, 0x3220, 0x0028, 0x4E00, 0x0029, 0,
       
  4114     16, 0x3221, 0x0028, 0x4E8C, 0x0029, 0,
       
  4115     16, 0x3222, 0x0028, 0x4E09, 0x0029, 0,
       
  4116     16, 0x3223, 0x0028, 0x56DB, 0x0029, 0,
       
  4117     16, 0x3224, 0x0028, 0x4E94, 0x0029, 0,
       
  4118     16, 0x3225, 0x0028, 0x516D, 0x0029, 0,
       
  4119     16, 0x3226, 0x0028, 0x4E03, 0x0029, 0,
       
  4120     16, 0x3227, 0x0028, 0x516B, 0x0029, 0,
       
  4121     16, 0x3228, 0x0028, 0x4E5D, 0x0029, 0,
       
  4122     16, 0x3229, 0x0028, 0x5341, 0x0029, 0,
       
  4123     16, 0x322A, 0x0028, 0x6708, 0x0029, 0,
       
  4124     16, 0x322B, 0x0028, 0x706B, 0x0029, 0,
       
  4125     16, 0x322C, 0x0028, 0x6C34, 0x0029, 0,
       
  4126     16, 0x322D, 0x0028, 0x6728, 0x0029, 0,
       
  4127     16, 0x322E, 0x0028, 0x91D1, 0x0029, 0,
       
  4128     16, 0x322F, 0x0028, 0x571F, 0x0029, 0,
       
  4129     16, 0x3230, 0x0028, 0x65E5, 0x0029, 0,
       
  4130     16, 0x3231, 0x0028, 0x682A, 0x0029, 0,
       
  4131     16, 0x3232, 0x0028, 0x6709, 0x0029, 0,
       
  4132     16, 0x3233, 0x0028, 0x793E, 0x0029, 0,
       
  4133     16, 0x3234, 0x0028, 0x540D, 0x0029, 0,
       
  4134     16, 0x3235, 0x0028, 0x7279, 0x0029, 0,
       
  4135     16, 0x3236, 0x0028, 0x8CA1, 0x0029, 0,
       
  4136     16, 0x3237, 0x0028, 0x795D, 0x0029, 0,
       
  4137     16, 0x3238, 0x0028, 0x52B4, 0x0029, 0,
       
  4138     16, 0x3239, 0x0028, 0x4EE3, 0x0029, 0,
       
  4139     16, 0x323A, 0x0028, 0x547C, 0x0029, 0,
       
  4140     16, 0x323B, 0x0028, 0x5B66, 0x0029, 0,
       
  4141     16, 0x323C, 0x0028, 0x76E3, 0x0029, 0,
       
  4142     16, 0x323D, 0x0028, 0x4F01, 0x0029, 0,
       
  4143     16, 0x323E, 0x0028, 0x8CC7, 0x0029, 0,
       
  4144     16, 0x323F, 0x0028, 0x5354, 0x0029, 0,
       
  4145     16, 0x3240, 0x0028, 0x796D, 0x0029, 0,
       
  4146     16, 0x3241, 0x0028, 0x4F11, 0x0029, 0,
       
  4147     16, 0x3242, 0x0028, 0x81EA, 0x0029, 0,
       
  4148     16, 0x3243, 0x0028, 0x81F3, 0x0029, 0,
       
  4149     8, 0x3260, 0x1100, 0,
       
  4150     8, 0x3261, 0x1102, 0,
       
  4151     8, 0x3262, 0x1103, 0,
       
  4152     8, 0x3263, 0x1105, 0,
       
  4153     8, 0x3264, 0x1106, 0,
       
  4154     8, 0x3265, 0x1107, 0,
       
  4155     8, 0x3266, 0x1109, 0,
       
  4156     8, 0x3267, 0x110B, 0,
       
  4157     8, 0x3268, 0x110C, 0,
       
  4158     8, 0x3269, 0x110E, 0,
       
  4159     8, 0x326A, 0x110F, 0,
       
  4160     8, 0x326B, 0x1110, 0,
       
  4161     8, 0x326C, 0x1111, 0,
       
  4162     8, 0x326D, 0x1112, 0,
       
  4163     8, 0x326E, 0x1100, 0x1161, 0,
       
  4164     8, 0x326F, 0x1102, 0x1161, 0,
       
  4165     8, 0x3270, 0x1103, 0x1161, 0,
       
  4166     8, 0x3271, 0x1105, 0x1161, 0,
       
  4167     8, 0x3272, 0x1106, 0x1161, 0,
       
  4168     8, 0x3273, 0x1107, 0x1161, 0,
       
  4169     8, 0x3274, 0x1109, 0x1161, 0,
       
  4170     8, 0x3275, 0x110B, 0x1161, 0,
       
  4171     8, 0x3276, 0x110C, 0x1161, 0,
       
  4172     8, 0x3277, 0x110E, 0x1161, 0,
       
  4173     8, 0x3278, 0x110F, 0x1161, 0,
       
  4174     8, 0x3279, 0x1110, 0x1161, 0,
       
  4175     8, 0x327A, 0x1111, 0x1161, 0,
       
  4176     8, 0x327B, 0x1112, 0x1161, 0,
       
  4177     8, 0x3280, 0x4E00, 0,
       
  4178     8, 0x3281, 0x4E8C, 0,
       
  4179     8, 0x3282, 0x4E09, 0,
       
  4180     8, 0x3283, 0x56DB, 0,
       
  4181     8, 0x3284, 0x4E94, 0,
       
  4182     8, 0x3285, 0x516D, 0,
       
  4183     8, 0x3286, 0x4E03, 0,
       
  4184     8, 0x3287, 0x516B, 0,
       
  4185     8, 0x3288, 0x4E5D, 0,
       
  4186     8, 0x3289, 0x5341, 0,
       
  4187     8, 0x328A, 0x6708, 0,
       
  4188     8, 0x328B, 0x706B, 0,
       
  4189     8, 0x328C, 0x6C34, 0,
       
  4190     8, 0x328D, 0x6728, 0,
       
  4191     8, 0x328E, 0x91D1, 0,
       
  4192     8, 0x328F, 0x571F, 0,
       
  4193     8, 0x3290, 0x65E5, 0,
       
  4194     8, 0x3291, 0x682A, 0,
       
  4195     8, 0x3292, 0x6709, 0,
       
  4196     8, 0x3293, 0x793E, 0,
       
  4197     8, 0x3294, 0x540D, 0,
       
  4198     8, 0x3295, 0x7279, 0,
       
  4199     8, 0x3296, 0x8CA1, 0,
       
  4200     8, 0x3297, 0x795D, 0,
       
  4201     8, 0x3298, 0x52B4, 0,
       
  4202     8, 0x3299, 0x79D8, 0,
       
  4203     8, 0x329A, 0x7537, 0,
       
  4204     8, 0x329B, 0x5973, 0,
       
  4205     8, 0x329C, 0x9069, 0,
       
  4206     8, 0x329D, 0x512A, 0,
       
  4207     8, 0x329E, 0x5370, 0,
       
  4208     8, 0x329F, 0x6CE8, 0,
       
  4209     8, 0x32A0, 0x9805, 0,
       
  4210     8, 0x32A1, 0x4F11, 0,
       
  4211     8, 0x32A2, 0x5199, 0,
       
  4212     8, 0x32A3, 0x6B63, 0,
       
  4213     8, 0x32A4, 0x4E0A, 0,
       
  4214     8, 0x32A5, 0x4E2D, 0,
       
  4215     8, 0x32A6, 0x4E0B, 0,
       
  4216     8, 0x32A7, 0x5DE6, 0,
       
  4217     8, 0x32A8, 0x53F3, 0,
       
  4218     8, 0x32A9, 0x533B, 0,
       
  4219     8, 0x32AA, 0x5B97, 0,
       
  4220     8, 0x32AB, 0x5B66, 0,
       
  4221     8, 0x32AC, 0x76E3, 0,
       
  4222     8, 0x32AD, 0x4F01, 0,
       
  4223     8, 0x32AE, 0x8CC7, 0,
       
  4224     8, 0x32AF, 0x5354, 0,
       
  4225     8, 0x32B0, 0x591C, 0,
       
  4226     16, 0x32C0, 0x0031, 0x6708, 0,
       
  4227     16, 0x32C1, 0x0032, 0x6708, 0,
       
  4228     16, 0x32C2, 0x0033, 0x6708, 0,
       
  4229     16, 0x32C3, 0x0034, 0x6708, 0,
       
  4230     16, 0x32C4, 0x0035, 0x6708, 0,
       
  4231     16, 0x32C5, 0x0036, 0x6708, 0,
       
  4232     16, 0x32C6, 0x0037, 0x6708, 0,
       
  4233     16, 0x32C7, 0x0038, 0x6708, 0,
       
  4234     16, 0x32C8, 0x0039, 0x6708, 0,
       
  4235     16, 0x32C9, 0x0031, 0x0030, 0x6708, 0,
       
  4236     16, 0x32CA, 0x0031, 0x0031, 0x6708, 0,
       
  4237     16, 0x32CB, 0x0031, 0x0032, 0x6708, 0,
       
  4238     8, 0x32D0, 0x30A2, 0,
       
  4239     8, 0x32D1, 0x30A4, 0,
       
  4240     8, 0x32D2, 0x30A6, 0,
       
  4241     8, 0x32D3, 0x30A8, 0,
       
  4242     8, 0x32D4, 0x30AA, 0,
       
  4243     8, 0x32D5, 0x30AB, 0,
       
  4244     8, 0x32D6, 0x30AD, 0,
       
  4245     8, 0x32D7, 0x30AF, 0,
       
  4246     8, 0x32D8, 0x30B1, 0,
       
  4247     8, 0x32D9, 0x30B3, 0,
       
  4248     8, 0x32DA, 0x30B5, 0,
       
  4249     8, 0x32DB, 0x30B7, 0,
       
  4250     8, 0x32DC, 0x30B9, 0,
       
  4251     8, 0x32DD, 0x30BB, 0,
       
  4252     8, 0x32DE, 0x30BD, 0,
       
  4253     8, 0x32DF, 0x30BF, 0,
       
  4254     8, 0x32E0, 0x30C1, 0,
       
  4255     8, 0x32E1, 0x30C4, 0,
       
  4256     8, 0x32E2, 0x30C6, 0,
       
  4257     8, 0x32E3, 0x30C8, 0,
       
  4258     8, 0x32E4, 0x30CA, 0,
       
  4259     8, 0x32E5, 0x30CB, 0,
       
  4260     8, 0x32E6, 0x30CC, 0,
       
  4261     8, 0x32E7, 0x30CD, 0,
       
  4262     8, 0x32E8, 0x30CE, 0,
       
  4263     8, 0x32E9, 0x30CF, 0,
       
  4264     8, 0x32EA, 0x30D2, 0,
       
  4265     8, 0x32EB, 0x30D5, 0,
       
  4266     8, 0x32EC, 0x30D8, 0,
       
  4267     8, 0x32ED, 0x30DB, 0,
       
  4268     8, 0x32EE, 0x30DE, 0,
       
  4269     8, 0x32EF, 0x30DF, 0,
       
  4270     8, 0x32F0, 0x30E0, 0,
       
  4271     8, 0x32F1, 0x30E1, 0,
       
  4272     8, 0x32F2, 0x30E2, 0,
       
  4273     8, 0x32F3, 0x30E4, 0,
       
  4274     8, 0x32F4, 0x30E6, 0,
       
  4275     8, 0x32F5, 0x30E8, 0,
       
  4276     8, 0x32F6, 0x30E9, 0,
       
  4277     8, 0x32F7, 0x30EA, 0,
       
  4278     8, 0x32F8, 0x30EB, 0,
       
  4279     8, 0x32F9, 0x30EC, 0,
       
  4280     8, 0x32FA, 0x30ED, 0,
       
  4281     8, 0x32FB, 0x30EF, 0,
       
  4282     8, 0x32FC, 0x30F0, 0,
       
  4283     8, 0x32FD, 0x30F1, 0,
       
  4284     8, 0x32FE, 0x30F2, 0,
       
  4285     15, 0x3300, 0x30A2, 0x30D1, 0x30FC, 0x30C8, 0,
       
  4286     15, 0x3301, 0x30A2, 0x30EB, 0x30D5, 0x30A1, 0,
       
  4287     15, 0x3302, 0x30A2, 0x30F3, 0x30DA, 0x30A2, 0,
       
  4288     15, 0x3303, 0x30A2, 0x30FC, 0x30EB, 0,
       
  4289     15, 0x3304, 0x30A4, 0x30CB, 0x30F3, 0x30B0, 0,
       
  4290     15, 0x3305, 0x30A4, 0x30F3, 0x30C1, 0,
       
  4291     15, 0x3306, 0x30A6, 0x30A9, 0x30F3, 0,
       
  4292     15, 0x3307, 0x30A8, 0x30B9, 0x30AF, 0x30FC, 0x30C9, 0,
       
  4293     15, 0x3308, 0x30A8, 0x30FC, 0x30AB, 0x30FC, 0,
       
  4294     15, 0x3309, 0x30AA, 0x30F3, 0x30B9, 0,
       
  4295     15, 0x330A, 0x30AA, 0x30FC, 0x30E0, 0,
       
  4296     15, 0x330B, 0x30AB, 0x30A4, 0x30EA, 0,
       
  4297     15, 0x330C, 0x30AB, 0x30E9, 0x30C3, 0x30C8, 0,
       
  4298     15, 0x330D, 0x30AB, 0x30ED, 0x30EA, 0x30FC, 0,
       
  4299     15, 0x330E, 0x30AC, 0x30ED, 0x30F3, 0,
       
  4300     15, 0x330F, 0x30AC, 0x30F3, 0x30DE, 0,
       
  4301     15, 0x3310, 0x30AE, 0x30AC, 0,
       
  4302     15, 0x3311, 0x30AE, 0x30CB, 0x30FC, 0,
       
  4303     15, 0x3312, 0x30AD, 0x30E5, 0x30EA, 0x30FC, 0,
       
  4304     15, 0x3313, 0x30AE, 0x30EB, 0x30C0, 0x30FC, 0,
       
  4305     15, 0x3314, 0x30AD, 0x30ED, 0,
       
  4306     15, 0x3315, 0x30AD, 0x30ED, 0x30B0, 0x30E9, 0x30E0, 0,
       
  4307     15, 0x3316, 0x30AD, 0x30ED, 0x30E1, 0x30FC, 0x30C8, 0x30EB, 0,
       
  4308     15, 0x3317, 0x30AD, 0x30ED, 0x30EF, 0x30C3, 0x30C8, 0,
       
  4309     15, 0x3318, 0x30B0, 0x30E9, 0x30E0, 0,
       
  4310     15, 0x3319, 0x30B0, 0x30E9, 0x30E0, 0x30C8, 0x30F3, 0,
       
  4311     15, 0x331A, 0x30AF, 0x30EB, 0x30BC, 0x30A4, 0x30ED, 0,
       
  4312     15, 0x331B, 0x30AF, 0x30ED, 0x30FC, 0x30CD, 0,
       
  4313     15, 0x331C, 0x30B1, 0x30FC, 0x30B9, 0,
       
  4314     15, 0x331D, 0x30B3, 0x30EB, 0x30CA, 0,
       
  4315     15, 0x331E, 0x30B3, 0x30FC, 0x30DD, 0,
       
  4316     15, 0x331F, 0x30B5, 0x30A4, 0x30AF, 0x30EB, 0,
       
  4317     15, 0x3320, 0x30B5, 0x30F3, 0x30C1, 0x30FC, 0x30E0, 0,
       
  4318     15, 0x3321, 0x30B7, 0x30EA, 0x30F3, 0x30B0, 0,
       
  4319     15, 0x3322, 0x30BB, 0x30F3, 0x30C1, 0,
       
  4320     15, 0x3323, 0x30BB, 0x30F3, 0x30C8, 0,
       
  4321     15, 0x3324, 0x30C0, 0x30FC, 0x30B9, 0,
       
  4322     15, 0x3325, 0x30C7, 0x30B7, 0,
       
  4323     15, 0x3326, 0x30C9, 0x30EB, 0,
       
  4324     15, 0x3327, 0x30C8, 0x30F3, 0,
       
  4325     15, 0x3328, 0x30CA, 0x30CE, 0,
       
  4326     15, 0x3329, 0x30CE, 0x30C3, 0x30C8, 0,
       
  4327     15, 0x332A, 0x30CF, 0x30A4, 0x30C4, 0,
       
  4328     15, 0x332B, 0x30D1, 0x30FC, 0x30BB, 0x30F3, 0x30C8, 0,
       
  4329     15, 0x332C, 0x30D1, 0x30FC, 0x30C4, 0,
       
  4330     15, 0x332D, 0x30D0, 0x30FC, 0x30EC, 0x30EB, 0,
       
  4331     15, 0x332E, 0x30D4, 0x30A2, 0x30B9, 0x30C8, 0x30EB, 0,
       
  4332     15, 0x332F, 0x30D4, 0x30AF, 0x30EB, 0,
       
  4333     15, 0x3330, 0x30D4, 0x30B3, 0,
       
  4334     15, 0x3331, 0x30D3, 0x30EB, 0,
       
  4335     15, 0x3332, 0x30D5, 0x30A1, 0x30E9, 0x30C3, 0x30C9, 0,
       
  4336     15, 0x3333, 0x30D5, 0x30A3, 0x30FC, 0x30C8, 0,
       
  4337     15, 0x3334, 0x30D6, 0x30C3, 0x30B7, 0x30A7, 0x30EB, 0,
       
  4338     15, 0x3335, 0x30D5, 0x30E9, 0x30F3, 0,
       
  4339     15, 0x3336, 0x30D8, 0x30AF, 0x30BF, 0x30FC, 0x30EB, 0,
       
  4340     15, 0x3337, 0x30DA, 0x30BD, 0,
       
  4341     15, 0x3338, 0x30DA, 0x30CB, 0x30D2, 0,
       
  4342     15, 0x3339, 0x30D8, 0x30EB, 0x30C4, 0,
       
  4343     15, 0x333A, 0x30DA, 0x30F3, 0x30B9, 0,
       
  4344     15, 0x333B, 0x30DA, 0x30FC, 0x30B8, 0,
       
  4345     15, 0x333C, 0x30D9, 0x30FC, 0x30BF, 0,
       
  4346     15, 0x333D, 0x30DD, 0x30A4, 0x30F3, 0x30C8, 0,
       
  4347     15, 0x333E, 0x30DC, 0x30EB, 0x30C8, 0,
       
  4348     15, 0x333F, 0x30DB, 0x30F3, 0,
       
  4349     15, 0x3340, 0x30DD, 0x30F3, 0x30C9, 0,
       
  4350     15, 0x3341, 0x30DB, 0x30FC, 0x30EB, 0,
       
  4351     15, 0x3342, 0x30DB, 0x30FC, 0x30F3, 0,
       
  4352     15, 0x3343, 0x30DE, 0x30A4, 0x30AF, 0x30ED, 0,
       
  4353     15, 0x3344, 0x30DE, 0x30A4, 0x30EB, 0,
       
  4354     15, 0x3345, 0x30DE, 0x30C3, 0x30CF, 0,
       
  4355     15, 0x3346, 0x30DE, 0x30EB, 0x30AF, 0,
       
  4356     15, 0x3347, 0x30DE, 0x30F3, 0x30B7, 0x30E7, 0x30F3, 0,
       
  4357     15, 0x3348, 0x30DF, 0x30AF, 0x30ED, 0x30F3, 0,
       
  4358     15, 0x3349, 0x30DF, 0x30EA, 0,
       
  4359     15, 0x334A, 0x30DF, 0x30EA, 0x30D0, 0x30FC, 0x30EB, 0,
       
  4360     15, 0x334B, 0x30E1, 0x30AC, 0,
       
  4361     15, 0x334C, 0x30E1, 0x30AC, 0x30C8, 0x30F3, 0,
       
  4362     15, 0x334D, 0x30E1, 0x30FC, 0x30C8, 0x30EB, 0,
       
  4363     15, 0x334E, 0x30E4, 0x30FC, 0x30C9, 0,
       
  4364     15, 0x334F, 0x30E4, 0x30FC, 0x30EB, 0,
       
  4365     15, 0x3350, 0x30E6, 0x30A2, 0x30F3, 0,
       
  4366     15, 0x3351, 0x30EA, 0x30C3, 0x30C8, 0x30EB, 0,
       
  4367     15, 0x3352, 0x30EA, 0x30E9, 0,
       
  4368     15, 0x3353, 0x30EB, 0x30D4, 0x30FC, 0,
       
  4369     15, 0x3354, 0x30EB, 0x30FC, 0x30D6, 0x30EB, 0,
       
  4370     15, 0x3355, 0x30EC, 0x30E0, 0,
       
  4371     15, 0x3356, 0x30EC, 0x30F3, 0x30C8, 0x30B2, 0x30F3, 0,
       
  4372     15, 0x3357, 0x30EF, 0x30C3, 0x30C8, 0,
       
  4373     16, 0x3358, 0x0030, 0x70B9, 0,
       
  4374     16, 0x3359, 0x0031, 0x70B9, 0,
       
  4375     16, 0x335A, 0x0032, 0x70B9, 0,
       
  4376     16, 0x335B, 0x0033, 0x70B9, 0,
       
  4377     16, 0x335C, 0x0034, 0x70B9, 0,
       
  4378     16, 0x335D, 0x0035, 0x70B9, 0,
       
  4379     16, 0x335E, 0x0036, 0x70B9, 0,
       
  4380     16, 0x335F, 0x0037, 0x70B9, 0,
       
  4381     16, 0x3360, 0x0038, 0x70B9, 0,
       
  4382     16, 0x3361, 0x0039, 0x70B9, 0,
       
  4383     16, 0x3362, 0x0031, 0x0030, 0x70B9, 0,
       
  4384     16, 0x3363, 0x0031, 0x0031, 0x70B9, 0,
       
  4385     16, 0x3364, 0x0031, 0x0032, 0x70B9, 0,
       
  4386     16, 0x3365, 0x0031, 0x0033, 0x70B9, 0,
       
  4387     16, 0x3366, 0x0031, 0x0034, 0x70B9, 0,
       
  4388     16, 0x3367, 0x0031, 0x0035, 0x70B9, 0,
       
  4389     16, 0x3368, 0x0031, 0x0036, 0x70B9, 0,
       
  4390     16, 0x3369, 0x0031, 0x0037, 0x70B9, 0,
       
  4391     16, 0x336A, 0x0031, 0x0038, 0x70B9, 0,
       
  4392     16, 0x336B, 0x0031, 0x0039, 0x70B9, 0,
       
  4393     16, 0x336C, 0x0032, 0x0030, 0x70B9, 0,
       
  4394     16, 0x336D, 0x0032, 0x0031, 0x70B9, 0,
       
  4395     16, 0x336E, 0x0032, 0x0032, 0x70B9, 0,
       
  4396     16, 0x336F, 0x0032, 0x0033, 0x70B9, 0,
       
  4397     16, 0x3370, 0x0032, 0x0034, 0x70B9, 0,
       
  4398     15, 0x3371, 0x0068, 0x0050, 0x0061, 0,
       
  4399     15, 0x3372, 0x0064, 0x0061, 0,
       
  4400     15, 0x3373, 0x0041, 0x0055, 0,
       
  4401     15, 0x3374, 0x0062, 0x0061, 0x0072, 0,
       
  4402     15, 0x3375, 0x006F, 0x0056, 0,
       
  4403     15, 0x3376, 0x0070, 0x0063, 0,
       
  4404     15, 0x337B, 0x5E73, 0x6210, 0,
       
  4405     15, 0x337C, 0x662D, 0x548C, 0,
       
  4406     15, 0x337D, 0x5927, 0x6B63, 0,
       
  4407     15, 0x337E, 0x660E, 0x6CBB, 0,
       
  4408     15, 0x337F, 0x682A, 0x5F0F, 0x4F1A, 0x793E, 0,
       
  4409     15, 0x3380, 0x0070, 0x0041, 0,
       
  4410     15, 0x3381, 0x006E, 0x0041, 0,
       
  4411     15, 0x3382, 0x03BC, 0x0041, 0,
       
  4412     15, 0x3383, 0x006D, 0x0041, 0,
       
  4413     15, 0x3384, 0x006B, 0x0041, 0,
       
  4414     15, 0x3385, 0x004B, 0x0042, 0,
       
  4415     15, 0x3386, 0x004D, 0x0042, 0,
       
  4416     15, 0x3387, 0x0047, 0x0042, 0,
       
  4417     15, 0x3388, 0x0063, 0x0061, 0x006C, 0,
       
  4418     15, 0x3389, 0x006B, 0x0063, 0x0061, 0x006C, 0,
       
  4419     15, 0x338A, 0x0070, 0x0046, 0,
       
  4420     15, 0x338B, 0x006E, 0x0046, 0,
       
  4421     15, 0x338C, 0x03BC, 0x0046, 0,
       
  4422     15, 0x338D, 0x03BC, 0x0067, 0,
       
  4423     15, 0x338E, 0x006D, 0x0067, 0,
       
  4424     15, 0x338F, 0x006B, 0x0067, 0,
       
  4425     15, 0x3390, 0x0048, 0x007A, 0,
       
  4426     15, 0x3391, 0x006B, 0x0048, 0x007A, 0,
       
  4427     15, 0x3392, 0x004D, 0x0048, 0x007A, 0,
       
  4428     15, 0x3393, 0x0047, 0x0048, 0x007A, 0,
       
  4429     15, 0x3394, 0x0054, 0x0048, 0x007A, 0,
       
  4430     15, 0x3395, 0x03BC, 0x2113, 0,
       
  4431     15, 0x3396, 0x006D, 0x2113, 0,
       
  4432     15, 0x3397, 0x0064, 0x2113, 0,
       
  4433     15, 0x3398, 0x006B, 0x2113, 0,
       
  4434     15, 0x3399, 0x0066, 0x006D, 0,
       
  4435     15, 0x339A, 0x006E, 0x006D, 0,
       
  4436     15, 0x339B, 0x03BC, 0x006D, 0,
       
  4437     15, 0x339C, 0x006D, 0x006D, 0,
       
  4438     15, 0x339D, 0x0063, 0x006D, 0,
       
  4439     15, 0x339E, 0x006B, 0x006D, 0,
       
  4440     15, 0x339F, 0x006D, 0x006D, 0x00B2, 0,
       
  4441     15, 0x33A0, 0x0063, 0x006D, 0x00B2, 0,
       
  4442     15, 0x33A1, 0x006D, 0x00B2, 0,
       
  4443     15, 0x33A2, 0x006B, 0x006D, 0x00B2, 0,
       
  4444     15, 0x33A3, 0x006D, 0x006D, 0x00B3, 0,
       
  4445     15, 0x33A4, 0x0063, 0x006D, 0x00B3, 0,
       
  4446     15, 0x33A5, 0x006D, 0x00B3, 0,
       
  4447     15, 0x33A6, 0x006B, 0x006D, 0x00B3, 0,
       
  4448     15, 0x33A7, 0x006D, 0x2215, 0x0073, 0,
       
  4449     15, 0x33A8, 0x006D, 0x2215, 0x0073, 0x00B2, 0,
       
  4450     15, 0x33A9, 0x0050, 0x0061, 0,
       
  4451     15, 0x33AA, 0x006B, 0x0050, 0x0061, 0,
       
  4452     15, 0x33AB, 0x004D, 0x0050, 0x0061, 0,
       
  4453     15, 0x33AC, 0x0047, 0x0050, 0x0061, 0,
       
  4454     15, 0x33AD, 0x0072, 0x0061, 0x0064, 0,
       
  4455     15, 0x33AE, 0x0072, 0x0061, 0x0064, 0x2215, 0x0073, 0,
       
  4456     15, 0x33AF, 0x0072, 0x0061, 0x0064, 0x2215, 0x0073, 0x00B2, 0,
       
  4457     15, 0x33B0, 0x0070, 0x0073, 0,
       
  4458     15, 0x33B1, 0x006E, 0x0073, 0,
       
  4459     15, 0x33B2, 0x03BC, 0x0073, 0,
       
  4460     15, 0x33B3, 0x006D, 0x0073, 0,
       
  4461     15, 0x33B4, 0x0070, 0x0056, 0,
       
  4462     15, 0x33B5, 0x006E, 0x0056, 0,
       
  4463     15, 0x33B6, 0x03BC, 0x0056, 0,
       
  4464     15, 0x33B7, 0x006D, 0x0056, 0,
       
  4465     15, 0x33B8, 0x006B, 0x0056, 0,
       
  4466     15, 0x33B9, 0x004D, 0x0056, 0,
       
  4467     15, 0x33BA, 0x0070, 0x0057, 0,
       
  4468     15, 0x33BB, 0x006E, 0x0057, 0,
       
  4469     15, 0x33BC, 0x03BC, 0x0057, 0,
       
  4470     15, 0x33BD, 0x006D, 0x0057, 0,
       
  4471     15, 0x33BE, 0x006B, 0x0057, 0,
       
  4472     15, 0x33BF, 0x004D, 0x0057, 0,
       
  4473     15, 0x33C0, 0x006B, 0x03A9, 0,
       
  4474     15, 0x33C1, 0x004D, 0x03A9, 0,
       
  4475     15, 0x33C2, 0x0061, 0x002E, 0x006D, 0x002E, 0,
       
  4476     15, 0x33C3, 0x0042, 0x0071, 0,
       
  4477     15, 0x33C4, 0x0063, 0x0063, 0,
       
  4478     15, 0x33C5, 0x0063, 0x0064, 0,
       
  4479     15, 0x33C6, 0x0043, 0x2215, 0x006B, 0x0067, 0,
       
  4480     15, 0x33C7, 0x0043, 0x006F, 0x002E, 0,
       
  4481     15, 0x33C8, 0x0064, 0x0042, 0,
       
  4482     15, 0x33C9, 0x0047, 0x0079, 0,
       
  4483     15, 0x33CA, 0x0068, 0x0061, 0,
       
  4484     15, 0x33CB, 0x0048, 0x0050, 0,
       
  4485     15, 0x33CC, 0x0069, 0x006E, 0,
       
  4486     15, 0x33CD, 0x004B, 0x004B, 0,
       
  4487     15, 0x33CE, 0x004B, 0x004D, 0,
       
  4488     15, 0x33CF, 0x006B, 0x0074, 0,
       
  4489     15, 0x33D0, 0x006C, 0x006D, 0,
       
  4490     15, 0x33D1, 0x006C, 0x006E, 0,
       
  4491     15, 0x33D2, 0x006C, 0x006F, 0x0067, 0,
       
  4492     15, 0x33D3, 0x006C, 0x0078, 0,
       
  4493     15, 0x33D4, 0x006D, 0x0062, 0,
       
  4494     15, 0x33D5, 0x006D, 0x0069, 0x006C, 0,
       
  4495     15, 0x33D6, 0x006D, 0x006F, 0x006C, 0,
       
  4496     15, 0x33D7, 0x0050, 0x0048, 0,
       
  4497     15, 0x33D8, 0x0070, 0x002E, 0x006D, 0x002E, 0,
       
  4498     15, 0x33D9, 0x0050, 0x0050, 0x004D, 0,
       
  4499     15, 0x33DA, 0x0050, 0x0052, 0,
       
  4500     15, 0x33DB, 0x0073, 0x0072, 0,
       
  4501     15, 0x33DC, 0x0053, 0x0076, 0,
       
  4502     15, 0x33DD, 0x0057, 0x0062, 0,
       
  4503     16, 0x33E0, 0x0031, 0x65E5, 0,
       
  4504     16, 0x33E1, 0x0032, 0x65E5, 0,
       
  4505     16, 0x33E2, 0x0033, 0x65E5, 0,
       
  4506     16, 0x33E3, 0x0034, 0x65E5, 0,
       
  4507     16, 0x33E4, 0x0035, 0x65E5, 0,
       
  4508     16, 0x33E5, 0x0036, 0x65E5, 0,
       
  4509     16, 0x33E6, 0x0037, 0x65E5, 0,
       
  4510     16, 0x33E7, 0x0038, 0x65E5, 0,
       
  4511     16, 0x33E8, 0x0039, 0x65E5, 0,
       
  4512     16, 0x33E9, 0x0031, 0x0030, 0x65E5, 0,
       
  4513     16, 0x33EA, 0x0031, 0x0031, 0x65E5, 0,
       
  4514     16, 0x33EB, 0x0031, 0x0032, 0x65E5, 0,
       
  4515     16, 0x33EC, 0x0031, 0x0033, 0x65E5, 0,
       
  4516     16, 0x33ED, 0x0031, 0x0034, 0x65E5, 0,
       
  4517     16, 0x33EE, 0x0031, 0x0035, 0x65E5, 0,
       
  4518     16, 0x33EF, 0x0031, 0x0036, 0x65E5, 0,
       
  4519     16, 0x33F0, 0x0031, 0x0037, 0x65E5, 0,
       
  4520     16, 0x33F1, 0x0031, 0x0038, 0x65E5, 0,
       
  4521     16, 0x33F2, 0x0031, 0x0039, 0x65E5, 0,
       
  4522     16, 0x33F3, 0x0032, 0x0030, 0x65E5, 0,
       
  4523     16, 0x33F4, 0x0032, 0x0031, 0x65E5, 0,
       
  4524     16, 0x33F5, 0x0032, 0x0032, 0x65E5, 0,
       
  4525     16, 0x33F6, 0x0032, 0x0033, 0x65E5, 0,
       
  4526     16, 0x33F7, 0x0032, 0x0034, 0x65E5, 0,
       
  4527     16, 0x33F8, 0x0032, 0x0035, 0x65E5, 0,
       
  4528     16, 0x33F9, 0x0032, 0x0036, 0x65E5, 0,
       
  4529     16, 0x33FA, 0x0032, 0x0037, 0x65E5, 0,
       
  4530     16, 0x33FB, 0x0032, 0x0038, 0x65E5, 0,
       
  4531     16, 0x33FC, 0x0032, 0x0039, 0x65E5, 0,
       
  4532     16, 0x33FD, 0x0033, 0x0030, 0x65E5, 0,
       
  4533     16, 0x33FE, 0x0033, 0x0031, 0x65E5, 0,
       
  4534     1, 0xF900, 0x8C48, 0,
       
  4535     1, 0xF901, 0x66F4, 0,
       
  4536     1, 0xF902, 0x8ECA, 0,
       
  4537     1, 0xF903, 0x8CC8, 0,
       
  4538     1, 0xF904, 0x6ED1, 0,
       
  4539     1, 0xF905, 0x4E32, 0,
       
  4540     1, 0xF906, 0x53E5, 0,
       
  4541     1, 0xF907, 0x9F9C, 0,
       
  4542     1, 0xF908, 0x9F9C, 0,
       
  4543     1, 0xF909, 0x5951, 0,
       
  4544     1, 0xF90A, 0x91D1, 0,
       
  4545     1, 0xF90B, 0x5587, 0,
       
  4546     1, 0xF90C, 0x5948, 0,
       
  4547     1, 0xF90D, 0x61F6, 0,
       
  4548     1, 0xF90E, 0x7669, 0,
       
  4549     1, 0xF90F, 0x7F85, 0,
       
  4550     1, 0xF910, 0x863F, 0,
       
  4551     1, 0xF911, 0x87BA, 0,
       
  4552     1, 0xF912, 0x88F8, 0,
       
  4553     1, 0xF913, 0x908F, 0,
       
  4554     1, 0xF914, 0x6A02, 0,
       
  4555     1, 0xF915, 0x6D1B, 0,
       
  4556     1, 0xF916, 0x70D9, 0,
       
  4557     1, 0xF917, 0x73DE, 0,
       
  4558     1, 0xF918, 0x843D, 0,
       
  4559     1, 0xF919, 0x916A, 0,
       
  4560     1, 0xF91A, 0x99F1, 0,
       
  4561     1, 0xF91B, 0x4E82, 0,
       
  4562     1, 0xF91C, 0x5375, 0,
       
  4563     1, 0xF91D, 0x6B04, 0,
       
  4564     1, 0xF91E, 0x721B, 0,
       
  4565     1, 0xF91F, 0x862D, 0,
       
  4566     1, 0xF920, 0x9E1E, 0,
       
  4567     1, 0xF921, 0x5D50, 0,
       
  4568     1, 0xF922, 0x6FEB, 0,
       
  4569     1, 0xF923, 0x85CD, 0,
       
  4570     1, 0xF924, 0x8964, 0,
       
  4571     1, 0xF925, 0x62C9, 0,
       
  4572     1, 0xF926, 0x81D8, 0,
       
  4573     1, 0xF927, 0x881F, 0,
       
  4574     1, 0xF928, 0x5ECA, 0,
       
  4575     1, 0xF929, 0x6717, 0,
       
  4576     1, 0xF92A, 0x6D6A, 0,
       
  4577     1, 0xF92B, 0x72FC, 0,
       
  4578     1, 0xF92C, 0x90CE, 0,
       
  4579     1, 0xF92D, 0x4F86, 0,
       
  4580     1, 0xF92E, 0x51B7, 0,
       
  4581     1, 0xF92F, 0x52DE, 0,
       
  4582     1, 0xF930, 0x64C4, 0,
       
  4583     1, 0xF931, 0x6AD3, 0,
       
  4584     1, 0xF932, 0x7210, 0,
       
  4585     1, 0xF933, 0x76E7, 0,
       
  4586     1, 0xF934, 0x8001, 0,
       
  4587     1, 0xF935, 0x8606, 0,
       
  4588     1, 0xF936, 0x865C, 0,
       
  4589     1, 0xF937, 0x8DEF, 0,
       
  4590     1, 0xF938, 0x9732, 0,
       
  4591     1, 0xF939, 0x9B6F, 0,
       
  4592     1, 0xF93A, 0x9DFA, 0,
       
  4593     1, 0xF93B, 0x788C, 0,
       
  4594     1, 0xF93C, 0x797F, 0,
       
  4595     1, 0xF93D, 0x7DA0, 0,
       
  4596     1, 0xF93E, 0x83C9, 0,
       
  4597     1, 0xF93F, 0x9304, 0,
       
  4598     1, 0xF940, 0x9E7F, 0,
       
  4599     1, 0xF941, 0x8AD6, 0,
       
  4600     1, 0xF942, 0x58DF, 0,
       
  4601     1, 0xF943, 0x5F04, 0,
       
  4602     1, 0xF944, 0x7C60, 0,
       
  4603     1, 0xF945, 0x807E, 0,
       
  4604     1, 0xF946, 0x7262, 0,
       
  4605     1, 0xF947, 0x78CA, 0,
       
  4606     1, 0xF948, 0x8CC2, 0,
       
  4607     1, 0xF949, 0x96F7, 0,
       
  4608     1, 0xF94A, 0x58D8, 0,
       
  4609     1, 0xF94B, 0x5C62, 0,
       
  4610     1, 0xF94C, 0x6A13, 0,
       
  4611     1, 0xF94D, 0x6DDA, 0,
       
  4612     1, 0xF94E, 0x6F0F, 0,
       
  4613     1, 0xF94F, 0x7D2F, 0,
       
  4614     1, 0xF950, 0x7E37, 0,
       
  4615     1, 0xF951, 0x96FB, 0,
       
  4616     1, 0xF952, 0x52D2, 0,
       
  4617     1, 0xF953, 0x808B, 0,
       
  4618     1, 0xF954, 0x51DC, 0,
       
  4619     1, 0xF955, 0x51CC, 0,
       
  4620     1, 0xF956, 0x7A1C, 0,
       
  4621     1, 0xF957, 0x7DBE, 0,
       
  4622     1, 0xF958, 0x83F1, 0,
       
  4623     1, 0xF959, 0x9675, 0,
       
  4624     1, 0xF95A, 0x8B80, 0,
       
  4625     1, 0xF95B, 0x62CF, 0,
       
  4626     1, 0xF95C, 0x6A02, 0,
       
  4627     1, 0xF95D, 0x8AFE, 0,
       
  4628     1, 0xF95E, 0x4E39, 0,
       
  4629     1, 0xF95F, 0x5BE7, 0,
       
  4630     1, 0xF960, 0x6012, 0,
       
  4631     1, 0xF961, 0x7387, 0,
       
  4632     1, 0xF962, 0x7570, 0,
       
  4633     1, 0xF963, 0x5317, 0,
       
  4634     1, 0xF964, 0x78FB, 0,
       
  4635     1, 0xF965, 0x4FBF, 0,
       
  4636     1, 0xF966, 0x5FA9, 0,
       
  4637     1, 0xF967, 0x4E0D, 0,
       
  4638     1, 0xF968, 0x6CCC, 0,
       
  4639     1, 0xF969, 0x6578, 0,
       
  4640     1, 0xF96A, 0x7D22, 0,
       
  4641     1, 0xF96B, 0x53C3, 0,
       
  4642     1, 0xF96C, 0x585E, 0,
       
  4643     1, 0xF96D, 0x7701, 0,
       
  4644     1, 0xF96E, 0x8449, 0,
       
  4645     1, 0xF96F, 0x8AAA, 0,
       
  4646     1, 0xF970, 0x6BBA, 0,
       
  4647     1, 0xF971, 0x8FB0, 0,
       
  4648     1, 0xF972, 0x6C88, 0,
       
  4649     1, 0xF973, 0x62FE, 0,
       
  4650     1, 0xF974, 0x82E5, 0,
       
  4651     1, 0xF975, 0x63A0, 0,
       
  4652     1, 0xF976, 0x7565, 0,
       
  4653     1, 0xF977, 0x4EAE, 0,
       
  4654     1, 0xF978, 0x5169, 0,
       
  4655     1, 0xF979, 0x51C9, 0,
       
  4656     1, 0xF97A, 0x6881, 0,
       
  4657     1, 0xF97B, 0x7CE7, 0,
       
  4658     1, 0xF97C, 0x826F, 0,
       
  4659     1, 0xF97D, 0x8AD2, 0,
       
  4660     1, 0xF97E, 0x91CF, 0,
       
  4661     1, 0xF97F, 0x52F5, 0,
       
  4662     1, 0xF980, 0x5442, 0,
       
  4663     1, 0xF981, 0x5973, 0,
       
  4664     1, 0xF982, 0x5EEC, 0,
       
  4665     1, 0xF983, 0x65C5, 0,
       
  4666     1, 0xF984, 0x6FFE, 0,
       
  4667     1, 0xF985, 0x792A, 0,
       
  4668     1, 0xF986, 0x95AD, 0,
       
  4669     1, 0xF987, 0x9A6A, 0,
       
  4670     1, 0xF988, 0x9E97, 0,
       
  4671     1, 0xF989, 0x9ECE, 0,
       
  4672     1, 0xF98A, 0x529B, 0,
       
  4673     1, 0xF98B, 0x66C6, 0,
       
  4674     1, 0xF98C, 0x6B77, 0,
       
  4675     1, 0xF98D, 0x8F62, 0,
       
  4676     1, 0xF98E, 0x5E74, 0,
       
  4677     1, 0xF98F, 0x6190, 0,
       
  4678     1, 0xF990, 0x6200, 0,
       
  4679     1, 0xF991, 0x649A, 0,
       
  4680     1, 0xF992, 0x6F23, 0,
       
  4681     1, 0xF993, 0x7149, 0,
       
  4682     1, 0xF994, 0x7489, 0,
       
  4683     1, 0xF995, 0x79CA, 0,
       
  4684     1, 0xF996, 0x7DF4, 0,
       
  4685     1, 0xF997, 0x806F, 0,
       
  4686     1, 0xF998, 0x8F26, 0,
       
  4687     1, 0xF999, 0x84EE, 0,
       
  4688     1, 0xF99A, 0x9023, 0,
       
  4689     1, 0xF99B, 0x934A, 0,
       
  4690     1, 0xF99C, 0x5217, 0,
       
  4691     1, 0xF99D, 0x52A3, 0,
       
  4692     1, 0xF99E, 0x54BD, 0,
       
  4693     1, 0xF99F, 0x70C8, 0,
       
  4694     1, 0xF9A0, 0x88C2, 0,
       
  4695     1, 0xF9A1, 0x8AAA, 0,
       
  4696     1, 0xF9A2, 0x5EC9, 0,
       
  4697     1, 0xF9A3, 0x5FF5, 0,
       
  4698     1, 0xF9A4, 0x637B, 0,
       
  4699     1, 0xF9A5, 0x6BAE, 0,
       
  4700     1, 0xF9A6, 0x7C3E, 0,
       
  4701     1, 0xF9A7, 0x7375, 0,
       
  4702     1, 0xF9A8, 0x4EE4, 0,
       
  4703     1, 0xF9A9, 0x56F9, 0,
       
  4704     1, 0xF9AA, 0x5BE7, 0,
       
  4705     1, 0xF9AB, 0x5DBA, 0,
       
  4706     1, 0xF9AC, 0x601C, 0,
       
  4707     1, 0xF9AD, 0x73B2, 0,
       
  4708     1, 0xF9AE, 0x7469, 0,
       
  4709     1, 0xF9AF, 0x7F9A, 0,
       
  4710     1, 0xF9B0, 0x8046, 0,
       
  4711     1, 0xF9B1, 0x9234, 0,
       
  4712     1, 0xF9B2, 0x96F6, 0,
       
  4713     1, 0xF9B3, 0x9748, 0,
       
  4714     1, 0xF9B4, 0x9818, 0,
       
  4715     1, 0xF9B5, 0x4F8B, 0,
       
  4716     1, 0xF9B6, 0x79AE, 0,
       
  4717     1, 0xF9B7, 0x91B4, 0,
       
  4718     1, 0xF9B8, 0x96B8, 0,
       
  4719     1, 0xF9B9, 0x60E1, 0,
       
  4720     1, 0xF9BA, 0x4E86, 0,
       
  4721     1, 0xF9BB, 0x50DA, 0,
       
  4722     1, 0xF9BC, 0x5BEE, 0,
       
  4723     1, 0xF9BD, 0x5C3F, 0,
       
  4724     1, 0xF9BE, 0x6599, 0,
       
  4725     1, 0xF9BF, 0x6A02, 0,
       
  4726     1, 0xF9C0, 0x71CE, 0,
       
  4727     1, 0xF9C1, 0x7642, 0,
       
  4728     1, 0xF9C2, 0x84FC, 0,
       
  4729     1, 0xF9C3, 0x907C, 0,
       
  4730     1, 0xF9C4, 0x9F8D, 0,
       
  4731     1, 0xF9C5, 0x6688, 0,
       
  4732     1, 0xF9C6, 0x962E, 0,
       
  4733     1, 0xF9C7, 0x5289, 0,
       
  4734     1, 0xF9C8, 0x677B, 0,
       
  4735     1, 0xF9C9, 0x67F3, 0,
       
  4736     1, 0xF9CA, 0x6D41, 0,
       
  4737     1, 0xF9CB, 0x6E9C, 0,
       
  4738     1, 0xF9CC, 0x7409, 0,
       
  4739     1, 0xF9CD, 0x7559, 0,
       
  4740     1, 0xF9CE, 0x786B, 0,
       
  4741     1, 0xF9CF, 0x7D10, 0,
       
  4742     1, 0xF9D0, 0x985E, 0,
       
  4743     1, 0xF9D1, 0x516D, 0,
       
  4744     1, 0xF9D2, 0x622E, 0,
       
  4745     1, 0xF9D3, 0x9678, 0,
       
  4746     1, 0xF9D4, 0x502B, 0,
       
  4747     1, 0xF9D5, 0x5D19, 0,
       
  4748     1, 0xF9D6, 0x6DEA, 0,
       
  4749     1, 0xF9D7, 0x8F2A, 0,
       
  4750     1, 0xF9D8, 0x5F8B, 0,
       
  4751     1, 0xF9D9, 0x6144, 0,
       
  4752     1, 0xF9DA, 0x6817, 0,
       
  4753     1, 0xF9DB, 0x7387, 0,
       
  4754     1, 0xF9DC, 0x9686, 0,
       
  4755     1, 0xF9DD, 0x5229, 0,
       
  4756     1, 0xF9DE, 0x540F, 0,
       
  4757     1, 0xF9DF, 0x5C65, 0,
       
  4758     1, 0xF9E0, 0x6613, 0,
       
  4759     1, 0xF9E1, 0x674E, 0,
       
  4760     1, 0xF9E2, 0x68A8, 0,
       
  4761     1, 0xF9E3, 0x6CE5, 0,
       
  4762     1, 0xF9E4, 0x7406, 0,
       
  4763     1, 0xF9E5, 0x75E2, 0,
       
  4764     1, 0xF9E6, 0x7F79, 0,
       
  4765     1, 0xF9E7, 0x88CF, 0,
       
  4766     1, 0xF9E8, 0x88E1, 0,
       
  4767     1, 0xF9E9, 0x91CC, 0,
       
  4768     1, 0xF9EA, 0x96E2, 0,
       
  4769     1, 0xF9EB, 0x533F, 0,
       
  4770     1, 0xF9EC, 0x6EBA, 0,
       
  4771     1, 0xF9ED, 0x541D, 0,
       
  4772     1, 0xF9EE, 0x71D0, 0,
       
  4773     1, 0xF9EF, 0x7498, 0,
       
  4774     1, 0xF9F0, 0x85FA, 0,
       
  4775     1, 0xF9F1, 0x96A3, 0,
       
  4776     1, 0xF9F2, 0x9C57, 0,
       
  4777     1, 0xF9F3, 0x9E9F, 0,
       
  4778     1, 0xF9F4, 0x6797, 0,
       
  4779     1, 0xF9F5, 0x6DCB, 0,
       
  4780     1, 0xF9F6, 0x81E8, 0,
       
  4781     1, 0xF9F7, 0x7ACB, 0,
       
  4782     1, 0xF9F8, 0x7B20, 0,
       
  4783     1, 0xF9F9, 0x7C92, 0,
       
  4784     1, 0xF9FA, 0x72C0, 0,
       
  4785     1, 0xF9FB, 0x7099, 0,
       
  4786     1, 0xF9FC, 0x8B58, 0,
       
  4787     1, 0xF9FD, 0x4EC0, 0,
       
  4788     1, 0xF9FE, 0x8336, 0,
       
  4789     1, 0xF9FF, 0x523A, 0,
       
  4790     1, 0xFA00, 0x5207, 0,
       
  4791     1, 0xFA01, 0x5EA6, 0,
       
  4792     1, 0xFA02, 0x62D3, 0,
       
  4793     1, 0xFA03, 0x7CD6, 0,
       
  4794     1, 0xFA04, 0x5B85, 0,
       
  4795     1, 0xFA05, 0x6D1E, 0,
       
  4796     1, 0xFA06, 0x66B4, 0,
       
  4797     1, 0xFA07, 0x8F3B, 0,
       
  4798     1, 0xFA08, 0x884C, 0,
       
  4799     1, 0xFA09, 0x964D, 0,
       
  4800     1, 0xFA0A, 0x898B, 0,
       
  4801     1, 0xFA0B, 0x5ED3, 0,
       
  4802     1, 0xFA0C, 0x5140, 0,
       
  4803     1, 0xFA0D, 0x55C0, 0,
       
  4804     1, 0xFA10, 0x585A, 0,
       
  4805     1, 0xFA12, 0x6674, 0,
       
  4806     1, 0xFA15, 0x51DE, 0,
       
  4807     1, 0xFA16, 0x732A, 0,
       
  4808     1, 0xFA17, 0x76CA, 0,
       
  4809     1, 0xFA18, 0x793C, 0,
       
  4810     1, 0xFA19, 0x795E, 0,
       
  4811     1, 0xFA1A, 0x7965, 0,
       
  4812     1, 0xFA1B, 0x798F, 0,
       
  4813     1, 0xFA1C, 0x9756, 0,
       
  4814     1, 0xFA1D, 0x7CBE, 0,
       
  4815     1, 0xFA1E, 0x7FBD, 0,
       
  4816     1, 0xFA20, 0x8612, 0,
       
  4817     1, 0xFA22, 0x8AF8, 0,
       
  4818     1, 0xFA25, 0x9038, 0,
       
  4819     1, 0xFA26, 0x90FD, 0,
       
  4820     1, 0xFA2A, 0x98EF, 0,
       
  4821     1, 0xFA2B, 0x98FC, 0,
       
  4822     1, 0xFA2C, 0x9928, 0,
       
  4823     1, 0xFA2D, 0x9DB4, 0,
       
  4824     16, 0xFB00, 0x0066, 0x0066, 0,
       
  4825     16, 0xFB01, 0x0066, 0x0069, 0,
       
  4826     16, 0xFB02, 0x0066, 0x006C, 0,
       
  4827     16, 0xFB03, 0x0066, 0x0066, 0x0069, 0,
       
  4828     16, 0xFB04, 0x0066, 0x0066, 0x006C, 0,
       
  4829     16, 0xFB05, 0x017F, 0x0074, 0,
       
  4830     16, 0xFB06, 0x0073, 0x0074, 0,
       
  4831     16, 0xFB13, 0x0574, 0x0576, 0,
       
  4832     16, 0xFB14, 0x0574, 0x0565, 0,
       
  4833     16, 0xFB15, 0x0574, 0x056B, 0,
       
  4834     16, 0xFB16, 0x057E, 0x0576, 0,
       
  4835     16, 0xFB17, 0x0574, 0x056D, 0,
       
  4836     1, 0xFB1D, 0x05D9, 0x05B4, 0,
       
  4837     1, 0xFB1F, 0x05F2, 0x05B7, 0,
       
  4838     2, 0xFB20, 0x05E2, 0,
       
  4839     2, 0xFB21, 0x05D0, 0,
       
  4840     2, 0xFB22, 0x05D3, 0,
       
  4841     2, 0xFB23, 0x05D4, 0,
       
  4842     2, 0xFB24, 0x05DB, 0,
       
  4843     2, 0xFB25, 0x05DC, 0,
       
  4844     2, 0xFB26, 0x05DD, 0,
       
  4845     2, 0xFB27, 0x05E8, 0,
       
  4846     2, 0xFB28, 0x05EA, 0,
       
  4847     2, 0xFB29, 0x002B, 0,
       
  4848     1, 0xFB2A, 0x05E9, 0x05C1, 0,
       
  4849     1, 0xFB2B, 0x05E9, 0x05C2, 0,
       
  4850     1, 0xFB2C, 0xFB49, 0x05C1, 0,
       
  4851     1, 0xFB2D, 0xFB49, 0x05C2, 0,
       
  4852     1, 0xFB2E, 0x05D0, 0x05B7, 0,
       
  4853     1, 0xFB2F, 0x05D0, 0x05B8, 0,
       
  4854     1, 0xFB30, 0x05D0, 0x05BC, 0,
       
  4855     1, 0xFB31, 0x05D1, 0x05BC, 0,
       
  4856     1, 0xFB32, 0x05D2, 0x05BC, 0,
       
  4857     1, 0xFB33, 0x05D3, 0x05BC, 0,
       
  4858     1, 0xFB34, 0x05D4, 0x05BC, 0,
       
  4859     1, 0xFB35, 0x05D5, 0x05BC, 0,
       
  4860     1, 0xFB36, 0x05D6, 0x05BC, 0,
       
  4861     1, 0xFB38, 0x05D8, 0x05BC, 0,
       
  4862     1, 0xFB39, 0x05D9, 0x05BC, 0,
       
  4863     1, 0xFB3A, 0x05DA, 0x05BC, 0,
       
  4864     1, 0xFB3B, 0x05DB, 0x05BC, 0,
       
  4865     1, 0xFB3C, 0x05DC, 0x05BC, 0,
       
  4866     1, 0xFB3E, 0x05DE, 0x05BC, 0,
       
  4867     1, 0xFB40, 0x05E0, 0x05BC, 0,
       
  4868     1, 0xFB41, 0x05E1, 0x05BC, 0,
       
  4869     1, 0xFB43, 0x05E3, 0x05BC, 0,
       
  4870     1, 0xFB44, 0x05E4, 0x05BC, 0,
       
  4871     1, 0xFB46, 0x05E6, 0x05BC, 0,
       
  4872     1, 0xFB47, 0x05E7, 0x05BC, 0,
       
  4873     1, 0xFB48, 0x05E8, 0x05BC, 0,
       
  4874     1, 0xFB49, 0x05E9, 0x05BC, 0,
       
  4875     1, 0xFB4A, 0x05EA, 0x05BC, 0,
       
  4876     1, 0xFB4B, 0x05D5, 0x05B9, 0,
       
  4877     1, 0xFB4C, 0x05D1, 0x05BF, 0,
       
  4878     1, 0xFB4D, 0x05DB, 0x05BF, 0,
       
  4879     1, 0xFB4E, 0x05E4, 0x05BF, 0,
       
  4880     16, 0xFB4F, 0x05D0, 0x05DC, 0,
       
  4881     7, 0xFB50, 0x0671, 0,
       
  4882     6, 0xFB51, 0x0671, 0,
       
  4883     7, 0xFB52, 0x067B, 0,
       
  4884     6, 0xFB53, 0x067B, 0,
       
  4885     4, 0xFB54, 0x067B, 0,
       
  4886     5, 0xFB55, 0x067B, 0,
       
  4887     7, 0xFB56, 0x067E, 0,
       
  4888     6, 0xFB57, 0x067E, 0,
       
  4889     4, 0xFB58, 0x067E, 0,
       
  4890     5, 0xFB59, 0x067E, 0,
       
  4891     7, 0xFB5A, 0x0680, 0,
       
  4892     6, 0xFB5B, 0x0680, 0,
       
  4893     4, 0xFB5C, 0x0680, 0,
       
  4894     5, 0xFB5D, 0x0680, 0,
       
  4895     7, 0xFB5E, 0x067A, 0,
       
  4896     6, 0xFB5F, 0x067A, 0,
       
  4897     4, 0xFB60, 0x067A, 0,
       
  4898     5, 0xFB61, 0x067A, 0,
       
  4899     7, 0xFB62, 0x067F, 0,
       
  4900     6, 0xFB63, 0x067F, 0,
       
  4901     4, 0xFB64, 0x067F, 0,
       
  4902     5, 0xFB65, 0x067F, 0,
       
  4903     7, 0xFB66, 0x0679, 0,
       
  4904     6, 0xFB67, 0x0679, 0,
       
  4905     4, 0xFB68, 0x0679, 0,
       
  4906     5, 0xFB69, 0x0679, 0,
       
  4907     7, 0xFB6A, 0x06A4, 0,
       
  4908     6, 0xFB6B, 0x06A4, 0,
       
  4909     4, 0xFB6C, 0x06A4, 0,
       
  4910     5, 0xFB6D, 0x06A4, 0,
       
  4911     7, 0xFB6E, 0x06A6, 0,
       
  4912     6, 0xFB6F, 0x06A6, 0,
       
  4913     4, 0xFB70, 0x06A6, 0,
       
  4914     5, 0xFB71, 0x06A6, 0,
       
  4915     7, 0xFB72, 0x0684, 0,
       
  4916     6, 0xFB73, 0x0684, 0,
       
  4917     4, 0xFB74, 0x0684, 0,
       
  4918     5, 0xFB75, 0x0684, 0,
       
  4919     7, 0xFB76, 0x0683, 0,
       
  4920     6, 0xFB77, 0x0683, 0,
       
  4921     4, 0xFB78, 0x0683, 0,
       
  4922     5, 0xFB79, 0x0683, 0,
       
  4923     7, 0xFB7A, 0x0686, 0,
       
  4924     6, 0xFB7B, 0x0686, 0,
       
  4925     4, 0xFB7C, 0x0686, 0,
       
  4926     5, 0xFB7D, 0x0686, 0,
       
  4927     7, 0xFB7E, 0x0687, 0,
       
  4928     6, 0xFB7F, 0x0687, 0,
       
  4929     4, 0xFB80, 0x0687, 0,
       
  4930     5, 0xFB81, 0x0687, 0,
       
  4931     7, 0xFB82, 0x068D, 0,
       
  4932     6, 0xFB83, 0x068D, 0,
       
  4933     7, 0xFB84, 0x068C, 0,
       
  4934     6, 0xFB85, 0x068C, 0,
       
  4935     7, 0xFB86, 0x068E, 0,
       
  4936     6, 0xFB87, 0x068E, 0,
       
  4937     7, 0xFB88, 0x0688, 0,
       
  4938     6, 0xFB89, 0x0688, 0,
       
  4939     7, 0xFB8A, 0x0698, 0,
       
  4940     6, 0xFB8B, 0x0698, 0,
       
  4941     7, 0xFB8C, 0x0691, 0,
       
  4942     6, 0xFB8D, 0x0691, 0,
       
  4943     7, 0xFB8E, 0x06A9, 0,
       
  4944     6, 0xFB8F, 0x06A9, 0,
       
  4945     4, 0xFB90, 0x06A9, 0,
       
  4946     5, 0xFB91, 0x06A9, 0,
       
  4947     7, 0xFB92, 0x06AF, 0,
       
  4948     6, 0xFB93, 0x06AF, 0,
       
  4949     4, 0xFB94, 0x06AF, 0,
       
  4950     5, 0xFB95, 0x06AF, 0,
       
  4951     7, 0xFB96, 0x06B3, 0,
       
  4952     6, 0xFB97, 0x06B3, 0,
       
  4953     4, 0xFB98, 0x06B3, 0,
       
  4954     5, 0xFB99, 0x06B3, 0,
       
  4955     7, 0xFB9A, 0x06B1, 0,
       
  4956     6, 0xFB9B, 0x06B1, 0,
       
  4957     4, 0xFB9C, 0x06B1, 0,
       
  4958     5, 0xFB9D, 0x06B1, 0,
       
  4959     7, 0xFB9E, 0x06BA, 0,
       
  4960     6, 0xFB9F, 0x06BA, 0,
       
  4961     7, 0xFBA0, 0x06BB, 0,
       
  4962     6, 0xFBA1, 0x06BB, 0,
       
  4963     4, 0xFBA2, 0x06BB, 0,
       
  4964     5, 0xFBA3, 0x06BB, 0,
       
  4965     7, 0xFBA4, 0x06C0, 0,
       
  4966     6, 0xFBA5, 0x06C0, 0,
       
  4967     7, 0xFBA6, 0x06C1, 0,
       
  4968     6, 0xFBA7, 0x06C1, 0,
       
  4969     4, 0xFBA8, 0x06C1, 0,
       
  4970     5, 0xFBA9, 0x06C1, 0,
       
  4971     7, 0xFBAA, 0x06BE, 0,
       
  4972     6, 0xFBAB, 0x06BE, 0,
       
  4973     4, 0xFBAC, 0x06BE, 0,
       
  4974     5, 0xFBAD, 0x06BE, 0,
       
  4975     7, 0xFBAE, 0x06D2, 0,
       
  4976     6, 0xFBAF, 0x06D2, 0,
       
  4977     7, 0xFBB0, 0x06D3, 0,
       
  4978     6, 0xFBB1, 0x06D3, 0,
       
  4979     7, 0xFBD3, 0x06AD, 0,
       
  4980     6, 0xFBD4, 0x06AD, 0,
       
  4981     4, 0xFBD5, 0x06AD, 0,
       
  4982     5, 0xFBD6, 0x06AD, 0,
       
  4983     7, 0xFBD7, 0x06C7, 0,
       
  4984     6, 0xFBD8, 0x06C7, 0,
       
  4985     7, 0xFBD9, 0x06C6, 0,
       
  4986     6, 0xFBDA, 0x06C6, 0,
       
  4987     7, 0xFBDB, 0x06C8, 0,
       
  4988     6, 0xFBDC, 0x06C8, 0,
       
  4989     7, 0xFBDD, 0x0677, 0,
       
  4990     7, 0xFBDE, 0x06CB, 0,
       
  4991     6, 0xFBDF, 0x06CB, 0,
       
  4992     7, 0xFBE0, 0x06C5, 0,
       
  4993     6, 0xFBE1, 0x06C5, 0,
       
  4994     7, 0xFBE2, 0x06C9, 0,
       
  4995     6, 0xFBE3, 0x06C9, 0,
       
  4996     7, 0xFBE4, 0x06D0, 0,
       
  4997     6, 0xFBE5, 0x06D0, 0,
       
  4998     4, 0xFBE6, 0x06D0, 0,
       
  4999     5, 0xFBE7, 0x06D0, 0,
       
  5000     4, 0xFBE8, 0x0649, 0,
       
  5001     5, 0xFBE9, 0x0649, 0,
       
  5002     7, 0xFBEA, 0x0626, 0x0627, 0,
       
  5003     6, 0xFBEB, 0x0626, 0x0627, 0,
       
  5004     7, 0xFBEC, 0x0626, 0x06D5, 0,
       
  5005     6, 0xFBED, 0x0626, 0x06D5, 0,
       
  5006     7, 0xFBEE, 0x0626, 0x0648, 0,
       
  5007     6, 0xFBEF, 0x0626, 0x0648, 0,
       
  5008     7, 0xFBF0, 0x0626, 0x06C7, 0,
       
  5009     6, 0xFBF1, 0x0626, 0x06C7, 0,
       
  5010     7, 0xFBF2, 0x0626, 0x06C6, 0,
       
  5011     6, 0xFBF3, 0x0626, 0x06C6, 0,
       
  5012     7, 0xFBF4, 0x0626, 0x06C8, 0,
       
  5013     6, 0xFBF5, 0x0626, 0x06C8, 0,
       
  5014     7, 0xFBF6, 0x0626, 0x06D0, 0,
       
  5015     6, 0xFBF7, 0x0626, 0x06D0, 0,
       
  5016     4, 0xFBF8, 0x0626, 0x06D0, 0,
       
  5017     7, 0xFBF9, 0x0626, 0x0649, 0,
       
  5018     6, 0xFBFA, 0x0626, 0x0649, 0,
       
  5019     4, 0xFBFB, 0x0626, 0x0649, 0,
       
  5020     7, 0xFBFC, 0x06CC, 0,
       
  5021     6, 0xFBFD, 0x06CC, 0,
       
  5022     4, 0xFBFE, 0x06CC, 0,
       
  5023     5, 0xFBFF, 0x06CC, 0,
       
  5024     7, 0xFC00, 0x0626, 0x062C, 0,
       
  5025     7, 0xFC01, 0x0626, 0x062D, 0,
       
  5026     7, 0xFC02, 0x0626, 0x0645, 0,
       
  5027     7, 0xFC03, 0x0626, 0x0649, 0,
       
  5028     7, 0xFC04, 0x0626, 0x064A, 0,
       
  5029     7, 0xFC05, 0x0628, 0x062C, 0,
       
  5030     7, 0xFC06, 0x0628, 0x062D, 0,
       
  5031     7, 0xFC07, 0x0628, 0x062E, 0,
       
  5032     7, 0xFC08, 0x0628, 0x0645, 0,
       
  5033     7, 0xFC09, 0x0628, 0x0649, 0,
       
  5034     7, 0xFC0A, 0x0628, 0x064A, 0,
       
  5035     7, 0xFC0B, 0x062A, 0x062C, 0,
       
  5036     7, 0xFC0C, 0x062A, 0x062D, 0,
       
  5037     7, 0xFC0D, 0x062A, 0x062E, 0,
       
  5038     7, 0xFC0E, 0x062A, 0x0645, 0,
       
  5039     7, 0xFC0F, 0x062A, 0x0649, 0,
       
  5040     7, 0xFC10, 0x062A, 0x064A, 0,
       
  5041     7, 0xFC11, 0x062B, 0x062C, 0,
       
  5042     7, 0xFC12, 0x062B, 0x0645, 0,
       
  5043     7, 0xFC13, 0x062B, 0x0649, 0,
       
  5044     7, 0xFC14, 0x062B, 0x064A, 0,
       
  5045     7, 0xFC15, 0x062C, 0x062D, 0,
       
  5046     7, 0xFC16, 0x062C, 0x0645, 0,
       
  5047     7, 0xFC17, 0x062D, 0x062C, 0,
       
  5048     7, 0xFC18, 0x062D, 0x0645, 0,
       
  5049     7, 0xFC19, 0x062E, 0x062C, 0,
       
  5050     7, 0xFC1A, 0x062E, 0x062D, 0,
       
  5051     7, 0xFC1B, 0x062E, 0x0645, 0,
       
  5052     7, 0xFC1C, 0x0633, 0x062C, 0,
       
  5053     7, 0xFC1D, 0x0633, 0x062D, 0,
       
  5054     7, 0xFC1E, 0x0633, 0x062E, 0,
       
  5055     7, 0xFC1F, 0x0633, 0x0645, 0,
       
  5056     7, 0xFC20, 0x0635, 0x062D, 0,
       
  5057     7, 0xFC21, 0x0635, 0x0645, 0,
       
  5058     7, 0xFC22, 0x0636, 0x062C, 0,
       
  5059     7, 0xFC23, 0x0636, 0x062D, 0,
       
  5060     7, 0xFC24, 0x0636, 0x062E, 0,
       
  5061     7, 0xFC25, 0x0636, 0x0645, 0,
       
  5062     7, 0xFC26, 0x0637, 0x062D, 0,
       
  5063     7, 0xFC27, 0x0637, 0x0645, 0,
       
  5064     7, 0xFC28, 0x0638, 0x0645, 0,
       
  5065     7, 0xFC29, 0x0639, 0x062C, 0,
       
  5066     7, 0xFC2A, 0x0639, 0x0645, 0,
       
  5067     7, 0xFC2B, 0x063A, 0x062C, 0,
       
  5068     7, 0xFC2C, 0x063A, 0x0645, 0,
       
  5069     7, 0xFC2D, 0x0641, 0x062C, 0,
       
  5070     7, 0xFC2E, 0x0641, 0x062D, 0,
       
  5071     7, 0xFC2F, 0x0641, 0x062E, 0,
       
  5072     7, 0xFC30, 0x0641, 0x0645, 0,
       
  5073     7, 0xFC31, 0x0641, 0x0649, 0,
       
  5074     7, 0xFC32, 0x0641, 0x064A, 0,
       
  5075     7, 0xFC33, 0x0642, 0x062D, 0,
       
  5076     7, 0xFC34, 0x0642, 0x0645, 0,
       
  5077     7, 0xFC35, 0x0642, 0x0649, 0,
       
  5078     7, 0xFC36, 0x0642, 0x064A, 0,
       
  5079     7, 0xFC37, 0x0643, 0x0627, 0,
       
  5080     7, 0xFC38, 0x0643, 0x062C, 0,
       
  5081     7, 0xFC39, 0x0643, 0x062D, 0,
       
  5082     7, 0xFC3A, 0x0643, 0x062E, 0,
       
  5083     7, 0xFC3B, 0x0643, 0x0644, 0,
       
  5084     7, 0xFC3C, 0x0643, 0x0645, 0,
       
  5085     7, 0xFC3D, 0x0643, 0x0649, 0,
       
  5086     7, 0xFC3E, 0x0643, 0x064A, 0,
       
  5087     7, 0xFC3F, 0x0644, 0x062C, 0,
       
  5088     7, 0xFC40, 0x0644, 0x062D, 0,
       
  5089     7, 0xFC41, 0x0644, 0x062E, 0,
       
  5090     7, 0xFC42, 0x0644, 0x0645, 0,
       
  5091     7, 0xFC43, 0x0644, 0x0649, 0,
       
  5092     7, 0xFC44, 0x0644, 0x064A, 0,
       
  5093     7, 0xFC45, 0x0645, 0x062C, 0,
       
  5094     7, 0xFC46, 0x0645, 0x062D, 0,
       
  5095     7, 0xFC47, 0x0645, 0x062E, 0,
       
  5096     7, 0xFC48, 0x0645, 0x0645, 0,
       
  5097     7, 0xFC49, 0x0645, 0x0649, 0,
       
  5098     7, 0xFC4A, 0x0645, 0x064A, 0,
       
  5099     7, 0xFC4B, 0x0646, 0x062C, 0,
       
  5100     7, 0xFC4C, 0x0646, 0x062D, 0,
       
  5101     7, 0xFC4D, 0x0646, 0x062E, 0,
       
  5102     7, 0xFC4E, 0x0646, 0x0645, 0,
       
  5103     7, 0xFC4F, 0x0646, 0x0649, 0,
       
  5104     7, 0xFC50, 0x0646, 0x064A, 0,
       
  5105     7, 0xFC51, 0x0647, 0x062C, 0,
       
  5106     7, 0xFC52, 0x0647, 0x0645, 0,
       
  5107     7, 0xFC53, 0x0647, 0x0649, 0,
       
  5108     7, 0xFC54, 0x0647, 0x064A, 0,
       
  5109     7, 0xFC55, 0x064A, 0x062C, 0,
       
  5110     7, 0xFC56, 0x064A, 0x062D, 0,
       
  5111     7, 0xFC57, 0x064A, 0x062E, 0,
       
  5112     7, 0xFC58, 0x064A, 0x0645, 0,
       
  5113     7, 0xFC59, 0x064A, 0x0649, 0,
       
  5114     7, 0xFC5A, 0x064A, 0x064A, 0,
       
  5115     7, 0xFC5B, 0x0630, 0x0670, 0,
       
  5116     7, 0xFC5C, 0x0631, 0x0670, 0,
       
  5117     7, 0xFC5D, 0x0649, 0x0670, 0,
       
  5118     7, 0xFC5E, 0x0020, 0x064C, 0x0651, 0,
       
  5119     7, 0xFC5F, 0x0020, 0x064D, 0x0651, 0,
       
  5120     7, 0xFC60, 0x0020, 0x064E, 0x0651, 0,
       
  5121     7, 0xFC61, 0x0020, 0x064F, 0x0651, 0,
       
  5122     7, 0xFC62, 0x0020, 0x0650, 0x0651, 0,
       
  5123     7, 0xFC63, 0x0020, 0x0651, 0x0670, 0,
       
  5124     6, 0xFC64, 0x0626, 0x0631, 0,
       
  5125     6, 0xFC65, 0x0626, 0x0632, 0,
       
  5126     6, 0xFC66, 0x0626, 0x0645, 0,
       
  5127     6, 0xFC67, 0x0626, 0x0646, 0,
       
  5128     6, 0xFC68, 0x0626, 0x0649, 0,
       
  5129     6, 0xFC69, 0x0626, 0x064A, 0,
       
  5130     6, 0xFC6A, 0x0628, 0x0631, 0,
       
  5131     6, 0xFC6B, 0x0628, 0x0632, 0,
       
  5132     6, 0xFC6C, 0x0628, 0x0645, 0,
       
  5133     6, 0xFC6D, 0x0628, 0x0646, 0,
       
  5134     6, 0xFC6E, 0x0628, 0x0649, 0,
       
  5135     6, 0xFC6F, 0x0628, 0x064A, 0,
       
  5136     6, 0xFC70, 0x062A, 0x0631, 0,
       
  5137     6, 0xFC71, 0x062A, 0x0632, 0,
       
  5138     6, 0xFC72, 0x062A, 0x0645, 0,
       
  5139     6, 0xFC73, 0x062A, 0x0646, 0,
       
  5140     6, 0xFC74, 0x062A, 0x0649, 0,
       
  5141     6, 0xFC75, 0x062A, 0x064A, 0,
       
  5142     6, 0xFC76, 0x062B, 0x0631, 0,
       
  5143     6, 0xFC77, 0x062B, 0x0632, 0,
       
  5144     6, 0xFC78, 0x062B, 0x0645, 0,
       
  5145     6, 0xFC79, 0x062B, 0x0646, 0,
       
  5146     6, 0xFC7A, 0x062B, 0x0649, 0,
       
  5147     6, 0xFC7B, 0x062B, 0x064A, 0,
       
  5148     6, 0xFC7C, 0x0641, 0x0649, 0,
       
  5149     6, 0xFC7D, 0x0641, 0x064A, 0,
       
  5150     6, 0xFC7E, 0x0642, 0x0649, 0,
       
  5151     6, 0xFC7F, 0x0642, 0x064A, 0,
       
  5152     6, 0xFC80, 0x0643, 0x0627, 0,
       
  5153     6, 0xFC81, 0x0643, 0x0644, 0,
       
  5154     6, 0xFC82, 0x0643, 0x0645, 0,
       
  5155     6, 0xFC83, 0x0643, 0x0649, 0,
       
  5156     6, 0xFC84, 0x0643, 0x064A, 0,
       
  5157     6, 0xFC85, 0x0644, 0x0645, 0,
       
  5158     6, 0xFC86, 0x0644, 0x0649, 0,
       
  5159     6, 0xFC87, 0x0644, 0x064A, 0,
       
  5160     6, 0xFC88, 0x0645, 0x0627, 0,
       
  5161     6, 0xFC89, 0x0645, 0x0645, 0,
       
  5162     6, 0xFC8A, 0x0646, 0x0631, 0,
       
  5163     6, 0xFC8B, 0x0646, 0x0632, 0,
       
  5164     6, 0xFC8C, 0x0646, 0x0645, 0,
       
  5165     6, 0xFC8D, 0x0646, 0x0646, 0,
       
  5166     6, 0xFC8E, 0x0646, 0x0649, 0,
       
  5167     6, 0xFC8F, 0x0646, 0x064A, 0,
       
  5168     6, 0xFC90, 0x0649, 0x0670, 0,
       
  5169     6, 0xFC91, 0x064A, 0x0631, 0,
       
  5170     6, 0xFC92, 0x064A, 0x0632, 0,
       
  5171     6, 0xFC93, 0x064A, 0x0645, 0,
       
  5172     6, 0xFC94, 0x064A, 0x0646, 0,
       
  5173     6, 0xFC95, 0x064A, 0x0649, 0,
       
  5174     6, 0xFC96, 0x064A, 0x064A, 0,
       
  5175     4, 0xFC97, 0x0626, 0x062C, 0,
       
  5176     4, 0xFC98, 0x0626, 0x062D, 0,
       
  5177     4, 0xFC99, 0x0626, 0x062E, 0,
       
  5178     4, 0xFC9A, 0x0626, 0x0645, 0,
       
  5179     4, 0xFC9B, 0x0626, 0x0647, 0,
       
  5180     4, 0xFC9C, 0x0628, 0x062C, 0,
       
  5181     4, 0xFC9D, 0x0628, 0x062D, 0,
       
  5182     4, 0xFC9E, 0x0628, 0x062E, 0,
       
  5183     4, 0xFC9F, 0x0628, 0x0645, 0,
       
  5184     4, 0xFCA0, 0x0628, 0x0647, 0,
       
  5185     4, 0xFCA1, 0x062A, 0x062C, 0,
       
  5186     4, 0xFCA2, 0x062A, 0x062D, 0,
       
  5187     4, 0xFCA3, 0x062A, 0x062E, 0,
       
  5188     4, 0xFCA4, 0x062A, 0x0645, 0,
       
  5189     4, 0xFCA5, 0x062A, 0x0647, 0,
       
  5190     4, 0xFCA6, 0x062B, 0x0645, 0,
       
  5191     4, 0xFCA7, 0x062C, 0x062D, 0,
       
  5192     4, 0xFCA8, 0x062C, 0x0645, 0,
       
  5193     4, 0xFCA9, 0x062D, 0x062C, 0,
       
  5194     4, 0xFCAA, 0x062D, 0x0645, 0,
       
  5195     4, 0xFCAB, 0x062E, 0x062C, 0,
       
  5196     4, 0xFCAC, 0x062E, 0x0645, 0,
       
  5197     4, 0xFCAD, 0x0633, 0x062C, 0,
       
  5198     4, 0xFCAE, 0x0633, 0x062D, 0,
       
  5199     4, 0xFCAF, 0x0633, 0x062E, 0,
       
  5200     4, 0xFCB0, 0x0633, 0x0645, 0,
       
  5201     4, 0xFCB1, 0x0635, 0x062D, 0,
       
  5202     4, 0xFCB2, 0x0635, 0x062E, 0,
       
  5203     4, 0xFCB3, 0x0635, 0x0645, 0,
       
  5204     4, 0xFCB4, 0x0636, 0x062C, 0,
       
  5205     4, 0xFCB5, 0x0636, 0x062D, 0,
       
  5206     4, 0xFCB6, 0x0636, 0x062E, 0,
       
  5207     4, 0xFCB7, 0x0636, 0x0645, 0,
       
  5208     4, 0xFCB8, 0x0637, 0x062D, 0,
       
  5209     4, 0xFCB9, 0x0638, 0x0645, 0,
       
  5210     4, 0xFCBA, 0x0639, 0x062C, 0,
       
  5211     4, 0xFCBB, 0x0639, 0x0645, 0,
       
  5212     4, 0xFCBC, 0x063A, 0x062C, 0,
       
  5213     4, 0xFCBD, 0x063A, 0x0645, 0,
       
  5214     4, 0xFCBE, 0x0641, 0x062C, 0,
       
  5215     4, 0xFCBF, 0x0641, 0x062D, 0,
       
  5216     4, 0xFCC0, 0x0641, 0x062E, 0,
       
  5217     4, 0xFCC1, 0x0641, 0x0645, 0,
       
  5218     4, 0xFCC2, 0x0642, 0x062D, 0,
       
  5219     4, 0xFCC3, 0x0642, 0x0645, 0,
       
  5220     4, 0xFCC4, 0x0643, 0x062C, 0,
       
  5221     4, 0xFCC5, 0x0643, 0x062D, 0,
       
  5222     4, 0xFCC6, 0x0643, 0x062E, 0,
       
  5223     4, 0xFCC7, 0x0643, 0x0644, 0,
       
  5224     4, 0xFCC8, 0x0643, 0x0645, 0,
       
  5225     4, 0xFCC9, 0x0644, 0x062C, 0,
       
  5226     4, 0xFCCA, 0x0644, 0x062D, 0,
       
  5227     4, 0xFCCB, 0x0644, 0x062E, 0,
       
  5228     4, 0xFCCC, 0x0644, 0x0645, 0,
       
  5229     4, 0xFCCD, 0x0644, 0x0647, 0,
       
  5230     4, 0xFCCE, 0x0645, 0x062C, 0,
       
  5231     4, 0xFCCF, 0x0645, 0x062D, 0,
       
  5232     4, 0xFCD0, 0x0645, 0x062E, 0,
       
  5233     4, 0xFCD1, 0x0645, 0x0645, 0,
       
  5234     4, 0xFCD2, 0x0646, 0x062C, 0,
       
  5235     4, 0xFCD3, 0x0646, 0x062D, 0,
       
  5236     4, 0xFCD4, 0x0646, 0x062E, 0,
       
  5237     4, 0xFCD5, 0x0646, 0x0645, 0,
       
  5238     4, 0xFCD6, 0x0646, 0x0647, 0,
       
  5239     4, 0xFCD7, 0x0647, 0x062C, 0,
       
  5240     4, 0xFCD8, 0x0647, 0x0645, 0,
       
  5241     4, 0xFCD9, 0x0647, 0x0670, 0,
       
  5242     4, 0xFCDA, 0x064A, 0x062C, 0,
       
  5243     4, 0xFCDB, 0x064A, 0x062D, 0,
       
  5244     4, 0xFCDC, 0x064A, 0x062E, 0,
       
  5245     4, 0xFCDD, 0x064A, 0x0645, 0,
       
  5246     4, 0xFCDE, 0x064A, 0x0647, 0,
       
  5247     5, 0xFCDF, 0x0626, 0x0645, 0,
       
  5248     5, 0xFCE0, 0x0626, 0x0647, 0,
       
  5249     5, 0xFCE1, 0x0628, 0x0645, 0,
       
  5250     5, 0xFCE2, 0x0628, 0x0647, 0,
       
  5251     5, 0xFCE3, 0x062A, 0x0645, 0,
       
  5252     5, 0xFCE4, 0x062A, 0x0647, 0,
       
  5253     5, 0xFCE5, 0x062B, 0x0645, 0,
       
  5254     5, 0xFCE6, 0x062B, 0x0647, 0,
       
  5255     5, 0xFCE7, 0x0633, 0x0645, 0,
       
  5256     5, 0xFCE8, 0x0633, 0x0647, 0,
       
  5257     5, 0xFCE9, 0x0634, 0x0645, 0,
       
  5258     5, 0xFCEA, 0x0634, 0x0647, 0,
       
  5259     5, 0xFCEB, 0x0643, 0x0644, 0,
       
  5260     5, 0xFCEC, 0x0643, 0x0645, 0,
       
  5261     5, 0xFCED, 0x0644, 0x0645, 0,
       
  5262     5, 0xFCEE, 0x0646, 0x0645, 0,
       
  5263     5, 0xFCEF, 0x0646, 0x0647, 0,
       
  5264     5, 0xFCF0, 0x064A, 0x0645, 0,
       
  5265     5, 0xFCF1, 0x064A, 0x0647, 0,
       
  5266     5, 0xFCF2, 0x0640, 0x064E, 0x0651, 0,
       
  5267     5, 0xFCF3, 0x0640, 0x064F, 0x0651, 0,
       
  5268     5, 0xFCF4, 0x0640, 0x0650, 0x0651, 0,
       
  5269     7, 0xFCF5, 0x0637, 0x0649, 0,
       
  5270     7, 0xFCF6, 0x0637, 0x064A, 0,
       
  5271     7, 0xFCF7, 0x0639, 0x0649, 0,
       
  5272     7, 0xFCF8, 0x0639, 0x064A, 0,
       
  5273     7, 0xFCF9, 0x063A, 0x0649, 0,
       
  5274     7, 0xFCFA, 0x063A, 0x064A, 0,
       
  5275     7, 0xFCFB, 0x0633, 0x0649, 0,
       
  5276     7, 0xFCFC, 0x0633, 0x064A, 0,
       
  5277     7, 0xFCFD, 0x0634, 0x0649, 0,
       
  5278     7, 0xFCFE, 0x0634, 0x064A, 0,
       
  5279     7, 0xFCFF, 0x062D, 0x0649, 0,
       
  5280     7, 0xFD00, 0x062D, 0x064A, 0,
       
  5281     7, 0xFD01, 0x062C, 0x0649, 0,
       
  5282     7, 0xFD02, 0x062C, 0x064A, 0,
       
  5283     7, 0xFD03, 0x062E, 0x0649, 0,
       
  5284     7, 0xFD04, 0x062E, 0x064A, 0,
       
  5285     7, 0xFD05, 0x0635, 0x0649, 0,
       
  5286     7, 0xFD06, 0x0635, 0x064A, 0,
       
  5287     7, 0xFD07, 0x0636, 0x0649, 0,
       
  5288     7, 0xFD08, 0x0636, 0x064A, 0,
       
  5289     7, 0xFD09, 0x0634, 0x062C, 0,
       
  5290     7, 0xFD0A, 0x0634, 0x062D, 0,
       
  5291     7, 0xFD0B, 0x0634, 0x062E, 0,
       
  5292     7, 0xFD0C, 0x0634, 0x0645, 0,
       
  5293     7, 0xFD0D, 0x0634, 0x0631, 0,
       
  5294     7, 0xFD0E, 0x0633, 0x0631, 0,
       
  5295     7, 0xFD0F, 0x0635, 0x0631, 0,
       
  5296     7, 0xFD10, 0x0636, 0x0631, 0,
       
  5297     6, 0xFD11, 0x0637, 0x0649, 0,
       
  5298     6, 0xFD12, 0x0637, 0x064A, 0,
       
  5299     6, 0xFD13, 0x0639, 0x0649, 0,
       
  5300     6, 0xFD14, 0x0639, 0x064A, 0,
       
  5301     6, 0xFD15, 0x063A, 0x0649, 0,
       
  5302     6, 0xFD16, 0x063A, 0x064A, 0,
       
  5303     6, 0xFD17, 0x0633, 0x0649, 0,
       
  5304     6, 0xFD18, 0x0633, 0x064A, 0,
       
  5305     6, 0xFD19, 0x0634, 0x0649, 0,
       
  5306     6, 0xFD1A, 0x0634, 0x064A, 0,
       
  5307     6, 0xFD1B, 0x062D, 0x0649, 0,
       
  5308     6, 0xFD1C, 0x062D, 0x064A, 0,
       
  5309     6, 0xFD1D, 0x062C, 0x0649, 0,
       
  5310     6, 0xFD1E, 0x062C, 0x064A, 0,
       
  5311     6, 0xFD1F, 0x062E, 0x0649, 0,
       
  5312     6, 0xFD20, 0x062E, 0x064A, 0,
       
  5313     6, 0xFD21, 0x0635, 0x0649, 0,
       
  5314     6, 0xFD22, 0x0635, 0x064A, 0,
       
  5315     6, 0xFD23, 0x0636, 0x0649, 0,
       
  5316     6, 0xFD24, 0x0636, 0x064A, 0,
       
  5317     6, 0xFD25, 0x0634, 0x062C, 0,
       
  5318     6, 0xFD26, 0x0634, 0x062D, 0,
       
  5319     6, 0xFD27, 0x0634, 0x062E, 0,
       
  5320     6, 0xFD28, 0x0634, 0x0645, 0,
       
  5321     6, 0xFD29, 0x0634, 0x0631, 0,
       
  5322     6, 0xFD2A, 0x0633, 0x0631, 0,
       
  5323     6, 0xFD2B, 0x0635, 0x0631, 0,
       
  5324     6, 0xFD2C, 0x0636, 0x0631, 0,
       
  5325     4, 0xFD2D, 0x0634, 0x062C, 0,
       
  5326     4, 0xFD2E, 0x0634, 0x062D, 0,
       
  5327     4, 0xFD2F, 0x0634, 0x062E, 0,
       
  5328     4, 0xFD30, 0x0634, 0x0645, 0,
       
  5329     4, 0xFD31, 0x0633, 0x0647, 0,
       
  5330     4, 0xFD32, 0x0634, 0x0647, 0,
       
  5331     4, 0xFD33, 0x0637, 0x0645, 0,
       
  5332     5, 0xFD34, 0x0633, 0x062C, 0,
       
  5333     5, 0xFD35, 0x0633, 0x062D, 0,
       
  5334     5, 0xFD36, 0x0633, 0x062E, 0,
       
  5335     5, 0xFD37, 0x0634, 0x062C, 0,
       
  5336     5, 0xFD38, 0x0634, 0x062D, 0,
       
  5337     5, 0xFD39, 0x0634, 0x062E, 0,
       
  5338     5, 0xFD3A, 0x0637, 0x0645, 0,
       
  5339     5, 0xFD3B, 0x0638, 0x0645, 0,
       
  5340     6, 0xFD3C, 0x0627, 0x064B, 0,
       
  5341     7, 0xFD3D, 0x0627, 0x064B, 0,
       
  5342     4, 0xFD50, 0x062A, 0x062C, 0x0645, 0,
       
  5343     6, 0xFD51, 0x062A, 0x062D, 0x062C, 0,
       
  5344     4, 0xFD52, 0x062A, 0x062D, 0x062C, 0,
       
  5345     4, 0xFD53, 0x062A, 0x062D, 0x0645, 0,
       
  5346     4, 0xFD54, 0x062A, 0x062E, 0x0645, 0,
       
  5347     4, 0xFD55, 0x062A, 0x0645, 0x062C, 0,
       
  5348     4, 0xFD56, 0x062A, 0x0645, 0x062D, 0,
       
  5349     4, 0xFD57, 0x062A, 0x0645, 0x062E, 0,
       
  5350     6, 0xFD58, 0x062C, 0x0645, 0x062D, 0,
       
  5351     4, 0xFD59, 0x062C, 0x0645, 0x062D, 0,
       
  5352     6, 0xFD5A, 0x062D, 0x0645, 0x064A, 0,
       
  5353     6, 0xFD5B, 0x062D, 0x0645, 0x0649, 0,
       
  5354     4, 0xFD5C, 0x0633, 0x062D, 0x062C, 0,
       
  5355     4, 0xFD5D, 0x0633, 0x062C, 0x062D, 0,
       
  5356     6, 0xFD5E, 0x0633, 0x062C, 0x0649, 0,
       
  5357     6, 0xFD5F, 0x0633, 0x0645, 0x062D, 0,
       
  5358     4, 0xFD60, 0x0633, 0x0645, 0x062D, 0,
       
  5359     4, 0xFD61, 0x0633, 0x0645, 0x062C, 0,
       
  5360     6, 0xFD62, 0x0633, 0x0645, 0x0645, 0,
       
  5361     4, 0xFD63, 0x0633, 0x0645, 0x0645, 0,
       
  5362     6, 0xFD64, 0x0635, 0x062D, 0x062D, 0,
       
  5363     4, 0xFD65, 0x0635, 0x062D, 0x062D, 0,
       
  5364     6, 0xFD66, 0x0635, 0x0645, 0x0645, 0,
       
  5365     6, 0xFD67, 0x0634, 0x062D, 0x0645, 0,
       
  5366     4, 0xFD68, 0x0634, 0x062D, 0x0645, 0,
       
  5367     6, 0xFD69, 0x0634, 0x062C, 0x064A, 0,
       
  5368     6, 0xFD6A, 0x0634, 0x0645, 0x062E, 0,
       
  5369     4, 0xFD6B, 0x0634, 0x0645, 0x062E, 0,
       
  5370     6, 0xFD6C, 0x0634, 0x0645, 0x0645, 0,
       
  5371     4, 0xFD6D, 0x0634, 0x0645, 0x0645, 0,
       
  5372     6, 0xFD6E, 0x0636, 0x062D, 0x0649, 0,
       
  5373     6, 0xFD6F, 0x0636, 0x062E, 0x0645, 0,
       
  5374     4, 0xFD70, 0x0636, 0x062E, 0x0645, 0,
       
  5375     6, 0xFD71, 0x0637, 0x0645, 0x062D, 0,
       
  5376     4, 0xFD72, 0x0637, 0x0645, 0x062D, 0,
       
  5377     4, 0xFD73, 0x0637, 0x0645, 0x0645, 0,
       
  5378     6, 0xFD74, 0x0637, 0x0645, 0x064A, 0,
       
  5379     6, 0xFD75, 0x0639, 0x062C, 0x0645, 0,
       
  5380     6, 0xFD76, 0x0639, 0x0645, 0x0645, 0,
       
  5381     4, 0xFD77, 0x0639, 0x0645, 0x0645, 0,
       
  5382     6, 0xFD78, 0x0639, 0x0645, 0x0649, 0,
       
  5383     6, 0xFD79, 0x063A, 0x0645, 0x0645, 0,
       
  5384     6, 0xFD7A, 0x063A, 0x0645, 0x064A, 0,
       
  5385     6, 0xFD7B, 0x063A, 0x0645, 0x0649, 0,
       
  5386     6, 0xFD7C, 0x0641, 0x062E, 0x0645, 0,
       
  5387     4, 0xFD7D, 0x0641, 0x062E, 0x0645, 0,
       
  5388     6, 0xFD7E, 0x0642, 0x0645, 0x062D, 0,
       
  5389     6, 0xFD7F, 0x0642, 0x0645, 0x0645, 0,
       
  5390     6, 0xFD80, 0x0644, 0x062D, 0x0645, 0,
       
  5391     6, 0xFD81, 0x0644, 0x062D, 0x064A, 0,
       
  5392     6, 0xFD82, 0x0644, 0x062D, 0x0649, 0,
       
  5393     4, 0xFD83, 0x0644, 0x062C, 0x062C, 0,
       
  5394     6, 0xFD84, 0x0644, 0x062C, 0x062C, 0,
       
  5395     6, 0xFD85, 0x0644, 0x062E, 0x0645, 0,
       
  5396     4, 0xFD86, 0x0644, 0x062E, 0x0645, 0,
       
  5397     6, 0xFD87, 0x0644, 0x0645, 0x062D, 0,
       
  5398     4, 0xFD88, 0x0644, 0x0645, 0x062D, 0,
       
  5399     4, 0xFD89, 0x0645, 0x062D, 0x062C, 0,
       
  5400     4, 0xFD8A, 0x0645, 0x062D, 0x0645, 0,
       
  5401     6, 0xFD8B, 0x0645, 0x062D, 0x064A, 0,
       
  5402     4, 0xFD8C, 0x0645, 0x062C, 0x062D, 0,
       
  5403     4, 0xFD8D, 0x0645, 0x062C, 0x0645, 0,
       
  5404     4, 0xFD8E, 0x0645, 0x062E, 0x062C, 0,
       
  5405     4, 0xFD8F, 0x0645, 0x062E, 0x0645, 0,
       
  5406     4, 0xFD92, 0x0645, 0x062C, 0x062E, 0,
       
  5407     4, 0xFD93, 0x0647, 0x0645, 0x062C, 0,
       
  5408     4, 0xFD94, 0x0647, 0x0645, 0x0645, 0,
       
  5409     4, 0xFD95, 0x0646, 0x062D, 0x0645, 0,
       
  5410     6, 0xFD96, 0x0646, 0x062D, 0x0649, 0,
       
  5411     6, 0xFD97, 0x0646, 0x062C, 0x0645, 0,
       
  5412     4, 0xFD98, 0x0646, 0x062C, 0x0645, 0,
       
  5413     6, 0xFD99, 0x0646, 0x062C, 0x0649, 0,
       
  5414     6, 0xFD9A, 0x0646, 0x0645, 0x064A, 0,
       
  5415     6, 0xFD9B, 0x0646, 0x0645, 0x0649, 0,
       
  5416     6, 0xFD9C, 0x064A, 0x0645, 0x0645, 0,
       
  5417     4, 0xFD9D, 0x064A, 0x0645, 0x0645, 0,
       
  5418     6, 0xFD9E, 0x0628, 0x062E, 0x064A, 0,
       
  5419     6, 0xFD9F, 0x062A, 0x062C, 0x064A, 0,
       
  5420     6, 0xFDA0, 0x062A, 0x062C, 0x0649, 0,
       
  5421     6, 0xFDA1, 0x062A, 0x062E, 0x064A, 0,
       
  5422     6, 0xFDA2, 0x062A, 0x062E, 0x0649, 0,
       
  5423     6, 0xFDA3, 0x062A, 0x0645, 0x064A, 0,
       
  5424     6, 0xFDA4, 0x062A, 0x0645, 0x0649, 0,
       
  5425     6, 0xFDA5, 0x062C, 0x0645, 0x064A, 0,
       
  5426     6, 0xFDA6, 0x062C, 0x062D, 0x0649, 0,
       
  5427     6, 0xFDA7, 0x062C, 0x0645, 0x0649, 0,
       
  5428     6, 0xFDA8, 0x0633, 0x062E, 0x0649, 0,
       
  5429     6, 0xFDA9, 0x0635, 0x062D, 0x064A, 0,
       
  5430     6, 0xFDAA, 0x0634, 0x062D, 0x064A, 0,
       
  5431     6, 0xFDAB, 0x0636, 0x062D, 0x064A, 0,
       
  5432     6, 0xFDAC, 0x0644, 0x062C, 0x064A, 0,
       
  5433     6, 0xFDAD, 0x0644, 0x0645, 0x064A, 0,
       
  5434     6, 0xFDAE, 0x064A, 0x062D, 0x064A, 0,
       
  5435     6, 0xFDAF, 0x064A, 0x062C, 0x064A, 0,
       
  5436     6, 0xFDB0, 0x064A, 0x0645, 0x064A, 0,
       
  5437     6, 0xFDB1, 0x0645, 0x0645, 0x064A, 0,
       
  5438     6, 0xFDB2, 0x0642, 0x0645, 0x064A, 0,
       
  5439     6, 0xFDB3, 0x0646, 0x062D, 0x064A, 0,
       
  5440     4, 0xFDB4, 0x0642, 0x0645, 0x062D, 0,
       
  5441     4, 0xFDB5, 0x0644, 0x062D, 0x0645, 0,
       
  5442     6, 0xFDB6, 0x0639, 0x0645, 0x064A, 0,
       
  5443     6, 0xFDB7, 0x0643, 0x0645, 0x064A, 0,
       
  5444     4, 0xFDB8, 0x0646, 0x062C, 0x062D, 0,
       
  5445     6, 0xFDB9, 0x0645, 0x062E, 0x064A, 0,
       
  5446     4, 0xFDBA, 0x0644, 0x062C, 0x0645, 0,
       
  5447     6, 0xFDBB, 0x0643, 0x0645, 0x0645, 0,
       
  5448     6, 0xFDBC, 0x0644, 0x062C, 0x0645, 0,
       
  5449     6, 0xFDBD, 0x0646, 0x062C, 0x062D, 0,
       
  5450     6, 0xFDBE, 0x062C, 0x062D, 0x064A, 0,
       
  5451     6, 0xFDBF, 0x062D, 0x062C, 0x064A, 0,
       
  5452     6, 0xFDC0, 0x0645, 0x062C, 0x064A, 0,
       
  5453     6, 0xFDC1, 0x0641, 0x0645, 0x064A, 0,
       
  5454     6, 0xFDC2, 0x0628, 0x062D, 0x064A, 0,
       
  5455     4, 0xFDC3, 0x0643, 0x0645, 0x0645, 0,
       
  5456     4, 0xFDC4, 0x0639, 0x062C, 0x0645, 0,
       
  5457     4, 0xFDC5, 0x0635, 0x0645, 0x0645, 0,
       
  5458     6, 0xFDC6, 0x0633, 0x062E, 0x064A, 0,
       
  5459     6, 0xFDC7, 0x0646, 0x062C, 0x064A, 0,
       
  5460     7, 0xFDF0, 0x0635, 0x0644, 0x06D2, 0,
       
  5461     7, 0xFDF1, 0x0642, 0x0644, 0x06D2, 0,
       
  5462     7, 0xFDF2, 0x0627, 0x0644, 0x0644, 0x0647, 0,
       
  5463     7, 0xFDF3, 0x0627, 0x0643, 0x0628, 0x0631, 0,
       
  5464     7, 0xFDF4, 0x0645, 0x062D, 0x0645, 0x062F, 0,
       
  5465     7, 0xFDF5, 0x0635, 0x0644, 0x0639, 0x0645, 0,
       
  5466     7, 0xFDF6, 0x0631, 0x0633, 0x0648, 0x0644, 0,
       
  5467     7, 0xFDF7, 0x0639, 0x0644, 0x064A, 0x0647, 0,
       
  5468     7, 0xFDF8, 0x0648, 0x0633, 0x0644, 0x0645, 0,
       
  5469     7, 0xFDF9, 0x0635, 0x0644, 0x0649, 0,
       
  5470     7, 0xFDFA, 0x0635, 0x0644, 0x0649, 0x0020, 0x0627, 0x0644, 0x0644, 0x0647, 0x0020, 0x0639, 0x0644, 0x064A, 0x0647, 0x0020, 0x0648, 0x0633, 0x0644, 0x0645, 0,
       
  5471     7, 0xFDFB, 0x062C, 0x0644, 0x0020, 0x062C, 0x0644, 0x0627, 0x0644, 0x0647, 0,
       
  5472     11, 0xFE30, 0x2025, 0,
       
  5473     11, 0xFE31, 0x2014, 0,
       
  5474     11, 0xFE32, 0x2013, 0,
       
  5475     11, 0xFE33, 0x005F, 0,
       
  5476     11, 0xFE34, 0x005F, 0,
       
  5477     11, 0xFE35, 0x0028, 0,
       
  5478     11, 0xFE36, 0x0029, 0,
       
  5479     11, 0xFE37, 0x007B, 0,
       
  5480     11, 0xFE38, 0x007D, 0,
       
  5481     11, 0xFE39, 0x3014, 0,
       
  5482     11, 0xFE3A, 0x3015, 0,
       
  5483     11, 0xFE3B, 0x3010, 0,
       
  5484     11, 0xFE3C, 0x3011, 0,
       
  5485     11, 0xFE3D, 0x300A, 0,
       
  5486     11, 0xFE3E, 0x300B, 0,
       
  5487     11, 0xFE3F, 0x3008, 0,
       
  5488     11, 0xFE40, 0x3009, 0,
       
  5489     11, 0xFE41, 0x300C, 0,
       
  5490     11, 0xFE42, 0x300D, 0,
       
  5491     11, 0xFE43, 0x300E, 0,
       
  5492     11, 0xFE44, 0x300F, 0,
       
  5493     16, 0xFE49, 0x203E, 0,
       
  5494     16, 0xFE4A, 0x203E, 0,
       
  5495     16, 0xFE4B, 0x203E, 0,
       
  5496     16, 0xFE4C, 0x203E, 0,
       
  5497     16, 0xFE4D, 0x005F, 0,
       
  5498     16, 0xFE4E, 0x005F, 0,
       
  5499     16, 0xFE4F, 0x005F, 0,
       
  5500     14, 0xFE50, 0x002C, 0,
       
  5501     14, 0xFE51, 0x3001, 0,
       
  5502     14, 0xFE52, 0x002E, 0,
       
  5503     14, 0xFE54, 0x003B, 0,
       
  5504     14, 0xFE55, 0x003A, 0,
       
  5505     14, 0xFE56, 0x003F, 0,
       
  5506     14, 0xFE57, 0x0021, 0,
       
  5507     14, 0xFE58, 0x2014, 0,
       
  5508     14, 0xFE59, 0x0028, 0,
       
  5509     14, 0xFE5A, 0x0029, 0,
       
  5510     14, 0xFE5B, 0x007B, 0,
       
  5511     14, 0xFE5C, 0x007D, 0,
       
  5512     14, 0xFE5D, 0x3014, 0,
       
  5513     14, 0xFE5E, 0x3015, 0,
       
  5514     14, 0xFE5F, 0x0023, 0,
       
  5515     14, 0xFE60, 0x0026, 0,
       
  5516     14, 0xFE61, 0x002A, 0,
       
  5517     14, 0xFE62, 0x002B, 0,
       
  5518     14, 0xFE63, 0x002D, 0,
       
  5519     14, 0xFE64, 0x003C, 0,
       
  5520     14, 0xFE65, 0x003E, 0,
       
  5521     14, 0xFE66, 0x003D, 0,
       
  5522     14, 0xFE68, 0x005C, 0,
       
  5523     14, 0xFE69, 0x0024, 0,
       
  5524     14, 0xFE6A, 0x0025, 0,
       
  5525     14, 0xFE6B, 0x0040, 0,
       
  5526     7, 0xFE70, 0x0020, 0x064B, 0,
       
  5527     5, 0xFE71, 0x0640, 0x064B, 0,
       
  5528     7, 0xFE72, 0x0020, 0x064C, 0,
       
  5529     7, 0xFE74, 0x0020, 0x064D, 0,
       
  5530     7, 0xFE76, 0x0020, 0x064E, 0,
       
  5531     5, 0xFE77, 0x0640, 0x064E, 0,
       
  5532     7, 0xFE78, 0x0020, 0x064F, 0,
       
  5533     5, 0xFE79, 0x0640, 0x064F, 0,
       
  5534     7, 0xFE7A, 0x0020, 0x0650, 0,
       
  5535     5, 0xFE7B, 0x0640, 0x0650, 0,
       
  5536     7, 0xFE7C, 0x0020, 0x0651, 0,
       
  5537     5, 0xFE7D, 0x0640, 0x0651, 0,
       
  5538     7, 0xFE7E, 0x0020, 0x0652, 0,
       
  5539     5, 0xFE7F, 0x0640, 0x0652, 0,
       
  5540     7, 0xFE80, 0x0621, 0,
       
  5541     7, 0xFE81, 0x0622, 0,
       
  5542     6, 0xFE82, 0x0622, 0,
       
  5543     7, 0xFE83, 0x0623, 0,
       
  5544     6, 0xFE84, 0x0623, 0,
       
  5545     7, 0xFE85, 0x0624, 0,
       
  5546     6, 0xFE86, 0x0624, 0,
       
  5547     7, 0xFE87, 0x0625, 0,
       
  5548     6, 0xFE88, 0x0625, 0,
       
  5549     7, 0xFE89, 0x0626, 0,
       
  5550     6, 0xFE8A, 0x0626, 0,
       
  5551     4, 0xFE8B, 0x0626, 0,
       
  5552     5, 0xFE8C, 0x0626, 0,
       
  5553     7, 0xFE8D, 0x0627, 0,
       
  5554     6, 0xFE8E, 0x0627, 0,
       
  5555     7, 0xFE8F, 0x0628, 0,
       
  5556     6, 0xFE90, 0x0628, 0,
       
  5557     4, 0xFE91, 0x0628, 0,
       
  5558     5, 0xFE92, 0x0628, 0,
       
  5559     7, 0xFE93, 0x0629, 0,
       
  5560     6, 0xFE94, 0x0629, 0,
       
  5561     7, 0xFE95, 0x062A, 0,
       
  5562     6, 0xFE96, 0x062A, 0,
       
  5563     4, 0xFE97, 0x062A, 0,
       
  5564     5, 0xFE98, 0x062A, 0,
       
  5565     7, 0xFE99, 0x062B, 0,
       
  5566     6, 0xFE9A, 0x062B, 0,
       
  5567     4, 0xFE9B, 0x062B, 0,
       
  5568     5, 0xFE9C, 0x062B, 0,
       
  5569     7, 0xFE9D, 0x062C, 0,
       
  5570     6, 0xFE9E, 0x062C, 0,
       
  5571     4, 0xFE9F, 0x062C, 0,
       
  5572     5, 0xFEA0, 0x062C, 0,
       
  5573     7, 0xFEA1, 0x062D, 0,
       
  5574     6, 0xFEA2, 0x062D, 0,
       
  5575     4, 0xFEA3, 0x062D, 0,
       
  5576     5, 0xFEA4, 0x062D, 0,
       
  5577     7, 0xFEA5, 0x062E, 0,
       
  5578     6, 0xFEA6, 0x062E, 0,
       
  5579     4, 0xFEA7, 0x062E, 0,
       
  5580     5, 0xFEA8, 0x062E, 0,
       
  5581     7, 0xFEA9, 0x062F, 0,
       
  5582     6, 0xFEAA, 0x062F, 0,
       
  5583     7, 0xFEAB, 0x0630, 0,
       
  5584     6, 0xFEAC, 0x0630, 0,
       
  5585     7, 0xFEAD, 0x0631, 0,
       
  5586     6, 0xFEAE, 0x0631, 0,
       
  5587     7, 0xFEAF, 0x0632, 0,
       
  5588     6, 0xFEB0, 0x0632, 0,
       
  5589     7, 0xFEB1, 0x0633, 0,
       
  5590     6, 0xFEB2, 0x0633, 0,
       
  5591     4, 0xFEB3, 0x0633, 0,
       
  5592     5, 0xFEB4, 0x0633, 0,
       
  5593     7, 0xFEB5, 0x0634, 0,
       
  5594     6, 0xFEB6, 0x0634, 0,
       
  5595     4, 0xFEB7, 0x0634, 0,
       
  5596     5, 0xFEB8, 0x0634, 0,
       
  5597     7, 0xFEB9, 0x0635, 0,
       
  5598     6, 0xFEBA, 0x0635, 0,
       
  5599     4, 0xFEBB, 0x0635, 0,
       
  5600     5, 0xFEBC, 0x0635, 0,
       
  5601     7, 0xFEBD, 0x0636, 0,
       
  5602     6, 0xFEBE, 0x0636, 0,
       
  5603     4, 0xFEBF, 0x0636, 0,
       
  5604     5, 0xFEC0, 0x0636, 0,
       
  5605     7, 0xFEC1, 0x0637, 0,
       
  5606     6, 0xFEC2, 0x0637, 0,
       
  5607     4, 0xFEC3, 0x0637, 0,
       
  5608     5, 0xFEC4, 0x0637, 0,
       
  5609     7, 0xFEC5, 0x0638, 0,
       
  5610     6, 0xFEC6, 0x0638, 0,
       
  5611     4, 0xFEC7, 0x0638, 0,
       
  5612     5, 0xFEC8, 0x0638, 0,
       
  5613     7, 0xFEC9, 0x0639, 0,
       
  5614     6, 0xFECA, 0x0639, 0,
       
  5615     4, 0xFECB, 0x0639, 0,
       
  5616     5, 0xFECC, 0x0639, 0,
       
  5617     7, 0xFECD, 0x063A, 0,
       
  5618     6, 0xFECE, 0x063A, 0,
       
  5619     4, 0xFECF, 0x063A, 0,
       
  5620     5, 0xFED0, 0x063A, 0,
       
  5621     7, 0xFED1, 0x0641, 0,
       
  5622     6, 0xFED2, 0x0641, 0,
       
  5623     4, 0xFED3, 0x0641, 0,
       
  5624     5, 0xFED4, 0x0641, 0,
       
  5625     7, 0xFED5, 0x0642, 0,
       
  5626     6, 0xFED6, 0x0642, 0,
       
  5627     4, 0xFED7, 0x0642, 0,
       
  5628     5, 0xFED8, 0x0642, 0,
       
  5629     7, 0xFED9, 0x0643, 0,
       
  5630     6, 0xFEDA, 0x0643, 0,
       
  5631     4, 0xFEDB, 0x0643, 0,
       
  5632     5, 0xFEDC, 0x0643, 0,
       
  5633     7, 0xFEDD, 0x0644, 0,
       
  5634     6, 0xFEDE, 0x0644, 0,
       
  5635     4, 0xFEDF, 0x0644, 0,
       
  5636     5, 0xFEE0, 0x0644, 0,
       
  5637     7, 0xFEE1, 0x0645, 0,
       
  5638     6, 0xFEE2, 0x0645, 0,
       
  5639     4, 0xFEE3, 0x0645, 0,
       
  5640     5, 0xFEE4, 0x0645, 0,
       
  5641     7, 0xFEE5, 0x0646, 0,
       
  5642     6, 0xFEE6, 0x0646, 0,
       
  5643     4, 0xFEE7, 0x0646, 0,
       
  5644     5, 0xFEE8, 0x0646, 0,
       
  5645     7, 0xFEE9, 0x0647, 0,
       
  5646     6, 0xFEEA, 0x0647, 0,
       
  5647     4, 0xFEEB, 0x0647, 0,
       
  5648     5, 0xFEEC, 0x0647, 0,
       
  5649     7, 0xFEED, 0x0648, 0,
       
  5650     6, 0xFEEE, 0x0648, 0,
       
  5651     7, 0xFEEF, 0x0649, 0,
       
  5652     6, 0xFEF0, 0x0649, 0,
       
  5653     7, 0xFEF1, 0x064A, 0,
       
  5654     6, 0xFEF2, 0x064A, 0,
       
  5655     4, 0xFEF3, 0x064A, 0,
       
  5656     5, 0xFEF4, 0x064A, 0,
       
  5657     7, 0xFEF5, 0x0644, 0x0622, 0,
       
  5658     6, 0xFEF6, 0x0644, 0x0622, 0,
       
  5659     7, 0xFEF7, 0x0644, 0x0623, 0,
       
  5660     6, 0xFEF8, 0x0644, 0x0623, 0,
       
  5661     7, 0xFEF9, 0x0644, 0x0625, 0,
       
  5662     6, 0xFEFA, 0x0644, 0x0625, 0,
       
  5663     7, 0xFEFB, 0x0644, 0x0627, 0,
       
  5664     6, 0xFEFC, 0x0644, 0x0627, 0,
       
  5665     12, 0xFF01, 0x0021, 0,
       
  5666     12, 0xFF02, 0x0022, 0,
       
  5667     12, 0xFF03, 0x0023, 0,
       
  5668     12, 0xFF04, 0x0024, 0,
       
  5669     12, 0xFF05, 0x0025, 0,
       
  5670     12, 0xFF06, 0x0026, 0,
       
  5671     12, 0xFF07, 0x0027, 0,
       
  5672     12, 0xFF08, 0x0028, 0,
       
  5673     12, 0xFF09, 0x0029, 0,
       
  5674     12, 0xFF0A, 0x002A, 0,
       
  5675     12, 0xFF0B, 0x002B, 0,
       
  5676     12, 0xFF0C, 0x002C, 0,
       
  5677     12, 0xFF0D, 0x002D, 0,
       
  5678     12, 0xFF0E, 0x002E, 0,
       
  5679     12, 0xFF0F, 0x002F, 0,
       
  5680     12, 0xFF10, 0x0030, 0,
       
  5681     12, 0xFF11, 0x0031, 0,
       
  5682     12, 0xFF12, 0x0032, 0,
       
  5683     12, 0xFF13, 0x0033, 0,
       
  5684     12, 0xFF14, 0x0034, 0,
       
  5685     12, 0xFF15, 0x0035, 0,
       
  5686     12, 0xFF16, 0x0036, 0,
       
  5687     12, 0xFF17, 0x0037, 0,
       
  5688     12, 0xFF18, 0x0038, 0,
       
  5689     12, 0xFF19, 0x0039, 0,
       
  5690     12, 0xFF1A, 0x003A, 0,
       
  5691     12, 0xFF1B, 0x003B, 0,
       
  5692     12, 0xFF1C, 0x003C, 0,
       
  5693     12, 0xFF1D, 0x003D, 0,
       
  5694     12, 0xFF1E, 0x003E, 0,
       
  5695     12, 0xFF1F, 0x003F, 0,
       
  5696     12, 0xFF20, 0x0040, 0,
       
  5697     12, 0xFF21, 0x0041, 0,
       
  5698     12, 0xFF22, 0x0042, 0,
       
  5699     12, 0xFF23, 0x0043, 0,
       
  5700     12, 0xFF24, 0x0044, 0,
       
  5701     12, 0xFF25, 0x0045, 0,
       
  5702     12, 0xFF26, 0x0046, 0,
       
  5703     12, 0xFF27, 0x0047, 0,
       
  5704     12, 0xFF28, 0x0048, 0,
       
  5705     12, 0xFF29, 0x0049, 0,
       
  5706     12, 0xFF2A, 0x004A, 0,
       
  5707     12, 0xFF2B, 0x004B, 0,
       
  5708     12, 0xFF2C, 0x004C, 0,
       
  5709     12, 0xFF2D, 0x004D, 0,
       
  5710     12, 0xFF2E, 0x004E, 0,
       
  5711     12, 0xFF2F, 0x004F, 0,
       
  5712     12, 0xFF30, 0x0050, 0,
       
  5713     12, 0xFF31, 0x0051, 0,
       
  5714     12, 0xFF32, 0x0052, 0,
       
  5715     12, 0xFF33, 0x0053, 0,
       
  5716     12, 0xFF34, 0x0054, 0,
       
  5717     12, 0xFF35, 0x0055, 0,
       
  5718     12, 0xFF36, 0x0056, 0,
       
  5719     12, 0xFF37, 0x0057, 0,
       
  5720     12, 0xFF38, 0x0058, 0,
       
  5721     12, 0xFF39, 0x0059, 0,
       
  5722     12, 0xFF3A, 0x005A, 0,
       
  5723     12, 0xFF3B, 0x005B, 0,
       
  5724     12, 0xFF3C, 0x005C, 0,
       
  5725     12, 0xFF3D, 0x005D, 0,
       
  5726     12, 0xFF3E, 0x005E, 0,
       
  5727     12, 0xFF3F, 0x005F, 0,
       
  5728     12, 0xFF40, 0x0060, 0,
       
  5729     12, 0xFF41, 0x0061, 0,
       
  5730     12, 0xFF42, 0x0062, 0,
       
  5731     12, 0xFF43, 0x0063, 0,
       
  5732     12, 0xFF44, 0x0064, 0,
       
  5733     12, 0xFF45, 0x0065, 0,
       
  5734     12, 0xFF46, 0x0066, 0,
       
  5735     12, 0xFF47, 0x0067, 0,
       
  5736     12, 0xFF48, 0x0068, 0,
       
  5737     12, 0xFF49, 0x0069, 0,
       
  5738     12, 0xFF4A, 0x006A, 0,
       
  5739     12, 0xFF4B, 0x006B, 0,
       
  5740     12, 0xFF4C, 0x006C, 0,
       
  5741     12, 0xFF4D, 0x006D, 0,
       
  5742     12, 0xFF4E, 0x006E, 0,
       
  5743     12, 0xFF4F, 0x006F, 0,
       
  5744     12, 0xFF50, 0x0070, 0,
       
  5745     12, 0xFF51, 0x0071, 0,
       
  5746     12, 0xFF52, 0x0072, 0,
       
  5747     12, 0xFF53, 0x0073, 0,
       
  5748     12, 0xFF54, 0x0074, 0,
       
  5749     12, 0xFF55, 0x0075, 0,
       
  5750     12, 0xFF56, 0x0076, 0,
       
  5751     12, 0xFF57, 0x0077, 0,
       
  5752     12, 0xFF58, 0x0078, 0,
       
  5753     12, 0xFF59, 0x0079, 0,
       
  5754     12, 0xFF5A, 0x007A, 0,
       
  5755     12, 0xFF5B, 0x007B, 0,
       
  5756     12, 0xFF5C, 0x007C, 0,
       
  5757     12, 0xFF5D, 0x007D, 0,
       
  5758     12, 0xFF5E, 0x007E, 0,
       
  5759     13, 0xFF61, 0x3002, 0,
       
  5760     13, 0xFF62, 0x300C, 0,
       
  5761     13, 0xFF63, 0x300D, 0,
       
  5762     13, 0xFF64, 0x3001, 0,
       
  5763     13, 0xFF65, 0x30FB, 0,
       
  5764     13, 0xFF66, 0x30F2, 0,
       
  5765     13, 0xFF67, 0x30A1, 0,
       
  5766     13, 0xFF68, 0x30A3, 0,
       
  5767     13, 0xFF69, 0x30A5, 0,
       
  5768     13, 0xFF6A, 0x30A7, 0,
       
  5769     13, 0xFF6B, 0x30A9, 0,
       
  5770     13, 0xFF6C, 0x30E3, 0,
       
  5771     13, 0xFF6D, 0x30E5, 0,
       
  5772     13, 0xFF6E, 0x30E7, 0,
       
  5773     13, 0xFF6F, 0x30C3, 0,
       
  5774     13, 0xFF70, 0x30FC, 0,
       
  5775     13, 0xFF71, 0x30A2, 0,
       
  5776     13, 0xFF72, 0x30A4, 0,
       
  5777     13, 0xFF73, 0x30A6, 0,
       
  5778     13, 0xFF74, 0x30A8, 0,
       
  5779     13, 0xFF75, 0x30AA, 0,
       
  5780     13, 0xFF76, 0x30AB, 0,
       
  5781     13, 0xFF77, 0x30AD, 0,
       
  5782     13, 0xFF78, 0x30AF, 0,
       
  5783     13, 0xFF79, 0x30B1, 0,
       
  5784     13, 0xFF7A, 0x30B3, 0,
       
  5785     13, 0xFF7B, 0x30B5, 0,
       
  5786     13, 0xFF7C, 0x30B7, 0,
       
  5787     13, 0xFF7D, 0x30B9, 0,
       
  5788     13, 0xFF7E, 0x30BB, 0,
       
  5789     13, 0xFF7F, 0x30BD, 0,
       
  5790     13, 0xFF80, 0x30BF, 0,
       
  5791     13, 0xFF81, 0x30C1, 0,
       
  5792     13, 0xFF82, 0x30C4, 0,
       
  5793     13, 0xFF83, 0x30C6, 0,
       
  5794     13, 0xFF84, 0x30C8, 0,
       
  5795     13, 0xFF85, 0x30CA, 0,
       
  5796     13, 0xFF86, 0x30CB, 0,
       
  5797     13, 0xFF87, 0x30CC, 0,
       
  5798     13, 0xFF88, 0x30CD, 0,
       
  5799     13, 0xFF89, 0x30CE, 0,
       
  5800     13, 0xFF8A, 0x30CF, 0,
       
  5801     13, 0xFF8B, 0x30D2, 0,
       
  5802     13, 0xFF8C, 0x30D5, 0,
       
  5803     13, 0xFF8D, 0x30D8, 0,
       
  5804     13, 0xFF8E, 0x30DB, 0,
       
  5805     13, 0xFF8F, 0x30DE, 0,
       
  5806     13, 0xFF90, 0x30DF, 0,
       
  5807     13, 0xFF91, 0x30E0, 0,
       
  5808     13, 0xFF92, 0x30E1, 0,
       
  5809     13, 0xFF93, 0x30E2, 0,
       
  5810     13, 0xFF94, 0x30E4, 0,
       
  5811     13, 0xFF95, 0x30E6, 0,
       
  5812     13, 0xFF96, 0x30E8, 0,
       
  5813     13, 0xFF97, 0x30E9, 0,
       
  5814     13, 0xFF98, 0x30EA, 0,
       
  5815     13, 0xFF99, 0x30EB, 0,
       
  5816     13, 0xFF9A, 0x30EC, 0,
       
  5817     13, 0xFF9B, 0x30ED, 0,
       
  5818     13, 0xFF9C, 0x30EF, 0,
       
  5819     13, 0xFF9D, 0x30F3, 0,
       
  5820     13, 0xFF9E, 0x3099, 0,
       
  5821     13, 0xFF9F, 0x309A, 0,
       
  5822     13, 0xFFA0, 0x3164, 0,
       
  5823     13, 0xFFA1, 0x3131, 0,
       
  5824     13, 0xFFA2, 0x3132, 0,
       
  5825     13, 0xFFA3, 0x3133, 0,
       
  5826     13, 0xFFA4, 0x3134, 0,
       
  5827     13, 0xFFA5, 0x3135, 0,
       
  5828     13, 0xFFA6, 0x3136, 0,
       
  5829     13, 0xFFA7, 0x3137, 0,
       
  5830     13, 0xFFA8, 0x3138, 0,
       
  5831     13, 0xFFA9, 0x3139, 0,
       
  5832     13, 0xFFAA, 0x313A, 0,
       
  5833     13, 0xFFAB, 0x313B, 0,
       
  5834     13, 0xFFAC, 0x313C, 0,
       
  5835     13, 0xFFAD, 0x313D, 0,
       
  5836     13, 0xFFAE, 0x313E, 0,
       
  5837     13, 0xFFAF, 0x313F, 0,
       
  5838     13, 0xFFB0, 0x3140, 0,
       
  5839     13, 0xFFB1, 0x3141, 0,
       
  5840     13, 0xFFB2, 0x3142, 0,
       
  5841     13, 0xFFB3, 0x3143, 0,
       
  5842     13, 0xFFB4, 0x3144, 0,
       
  5843     13, 0xFFB5, 0x3145, 0,
       
  5844     13, 0xFFB6, 0x3146, 0,
       
  5845     13, 0xFFB7, 0x3147, 0,
       
  5846     13, 0xFFB8, 0x3148, 0,
       
  5847     13, 0xFFB9, 0x3149, 0,
       
  5848     13, 0xFFBA, 0x314A, 0,
       
  5849     13, 0xFFBB, 0x314B, 0,
       
  5850     13, 0xFFBC, 0x314C, 0,
       
  5851     13, 0xFFBD, 0x314D, 0,
       
  5852     13, 0xFFBE, 0x314E, 0,
       
  5853     13, 0xFFC2, 0x314F, 0,
       
  5854     13, 0xFFC3, 0x3150, 0,
       
  5855     13, 0xFFC4, 0x3151, 0,
       
  5856     13, 0xFFC5, 0x3152, 0,
       
  5857     13, 0xFFC6, 0x3153, 0,
       
  5858     13, 0xFFC7, 0x3154, 0,
       
  5859     13, 0xFFCA, 0x3155, 0,
       
  5860     13, 0xFFCB, 0x3156, 0,
       
  5861     13, 0xFFCC, 0x3157, 0,
       
  5862     13, 0xFFCD, 0x3158, 0,
       
  5863     13, 0xFFCE, 0x3159, 0,
       
  5864     13, 0xFFCF, 0x315A, 0,
       
  5865     13, 0xFFD2, 0x315B, 0,
       
  5866     13, 0xFFD3, 0x315C, 0,
       
  5867     13, 0xFFD4, 0x315D, 0,
       
  5868     13, 0xFFD5, 0x315E, 0,
       
  5869     13, 0xFFD6, 0x315F, 0,
       
  5870     13, 0xFFD7, 0x3160, 0,
       
  5871     13, 0xFFDA, 0x3161, 0,
       
  5872     13, 0xFFDB, 0x3162, 0,
       
  5873     13, 0xFFDC, 0x3163, 0,
       
  5874     12, 0xFFE0, 0x00A2, 0,
       
  5875     12, 0xFFE1, 0x00A3, 0,
       
  5876     12, 0xFFE2, 0x00AC, 0,
       
  5877     12, 0xFFE3, 0x00AF, 0,
       
  5878     12, 0xFFE4, 0x00A6, 0,
       
  5879     12, 0xFFE5, 0x00A5, 0,
       
  5880     12, 0xFFE6, 0x20A9, 0,
       
  5881     13, 0xFFE8, 0x2502, 0,
       
  5882     13, 0xFFE9, 0x2190, 0,
       
  5883     13, 0xFFEA, 0x2191, 0,
       
  5884     13, 0xFFEB, 0x2192, 0,
       
  5885     13, 0xFFEC, 0x2193, 0,
       
  5886     13, 0xFFED, 0x25A0, 0,
       
  5887     13, 0xFFEE, 0x25CB, 0,
       
  5888 
       
  5889 };
       
  5890 
       
  5891 static const Q_UINT16 di_00[] = {
       
  5892     0, 0, 0, 0, 0, 0, 0, 0,
       
  5893     0, 0, 0, 0, 0, 0, 0, 0,
       
  5894     0, 0, 0, 0, 0, 0, 0, 0,
       
  5895     0, 0, 0, 0, 0, 0, 0, 0,
       
  5896     0, 0, 0, 0, 0, 0, 0, 0,
       
  5897     0, 0, 0, 0, 0, 0, 0, 0,
       
  5898     0, 0, 0, 0, 0, 0, 0, 0,
       
  5899     0, 0, 0, 0, 0, 0, 0, 0,
       
  5900     0, 0, 0, 0, 0, 0, 0, 0,
       
  5901     0, 0, 0, 0, 0, 0, 0, 0,
       
  5902     0, 0, 0, 0, 0, 0, 0, 0,
       
  5903     0, 0, 0, 0, 0, 0, 0, 0,
       
  5904     0, 0, 0, 0, 0, 0, 0, 0,
       
  5905     0, 0, 0, 0, 0, 0, 0, 0,
       
  5906     0, 0, 0, 0, 0, 0, 0, 0,
       
  5907     0, 0, 0, 0, 0, 0, 0, 0,
       
  5908     0, 0, 0, 0, 0, 0, 0, 0,
       
  5909     0, 0, 0, 0, 0, 0, 0, 0,
       
  5910     0, 0, 0, 0, 0, 0, 0, 0,
       
  5911     0, 0, 0, 0, 0, 0, 0, 0,
       
  5912     1, 0, 0, 0, 0, 0, 0, 0,
       
  5913     5, 0, 10, 0, 0, 0, 0, 14,
       
  5914     0, 0, 19, 23, 27, 32, 0, 0,
       
  5915     36, 41, 45, 0, 49, 55, 61, 0,
       
  5916     67, 72, 77, 82, 87, 92, 0, 97,
       
  5917     102, 107, 112, 117, 122, 127, 132, 137,
       
  5918     0, 142, 147, 152, 157, 162, 167, 0,
       
  5919     0, 172, 177, 182, 187, 192, 0, 0,
       
  5920     197, 202, 207, 212, 217, 222, 0, 227,
       
  5921     232, 237, 242, 247, 252, 257, 262, 267,
       
  5922     0, 272, 277, 282, 287, 292, 297, 0,
       
  5923     0, 302, 307, 312, 317, 322, 0, 327,
       
  5924 };
       
  5925 
       
  5926 static const Q_UINT16 di_01[] = {
       
  5927     332, 337, 342, 347, 352, 357, 362, 367,
       
  5928     372, 377, 382, 387, 392, 397, 402, 407,
       
  5929     0, 0, 412, 417, 422, 427, 432, 437,
       
  5930     442, 447, 452, 457, 462, 467, 472, 477,
       
  5931     482, 487, 492, 497, 502, 507, 0, 0,
       
  5932     512, 517, 522, 527, 532, 537, 542, 547,
       
  5933     552, 0, 557, 562, 567, 572, 577, 582,
       
  5934     0, 587, 592, 597, 602, 607, 612, 617,
       
  5935     622, 0, 0, 627, 632, 637, 642, 647,
       
  5936     652, 657, 0, 0, 662, 667, 672, 677,
       
  5937     682, 687, 0, 0, 692, 697, 702, 707,
       
  5938     712, 717, 722, 727, 732, 737, 742, 747,
       
  5939     752, 757, 762, 767, 772, 777, 0, 0,
       
  5940     782, 787, 792, 797, 802, 807, 812, 817,
       
  5941     822, 827, 832, 837, 842, 847, 852, 857,
       
  5942     862, 867, 872, 877, 882, 887, 892, 897,
       
  5943     0, 0, 0, 0, 0, 0, 0, 0,
       
  5944     0, 0, 0, 0, 0, 0, 0, 0,
       
  5945     0, 0, 0, 0, 0, 0, 0, 0,
       
  5946     0, 0, 0, 0, 0, 0, 0, 0,
       
  5947     901, 906, 0, 0, 0, 0, 0, 0,
       
  5948     0, 0, 0, 0, 0, 0, 0, 911,
       
  5949     916, 0, 0, 0, 0, 0, 0, 0,
       
  5950     0, 0, 0, 0, 0, 0, 0, 0,
       
  5951     0, 0, 0, 0, 921, 926, 931, 936,
       
  5952     941, 946, 951, 956, 961, 966, 971, 976,
       
  5953     981, 986, 991, 996, 1001, 1006, 1011, 1016,
       
  5954     1021, 1026, 1031, 1036, 1041, 0, 1046, 1051,
       
  5955     1056, 1061, 1066, 1071, 0, 0, 1076, 1081,
       
  5956     1086, 1091, 1096, 1101, 1106, 1111, 1116, 1121,
       
  5957     1126, 1131, 1136, 1141, 1146, 1151, 0, 0,
       
  5958     1156, 1161, 1166, 1171, 1176, 1181, 1186, 1191,
       
  5959 };
       
  5960 
       
  5961 static const Q_UINT16 di_02[] = {
       
  5962     1196, 1201, 1206, 1211, 1216, 1221, 1226, 1231,
       
  5963     1236, 1241, 1246, 1251, 1256, 1261, 1266, 1271,
       
  5964     1276, 1281, 1286, 1291, 1296, 1301, 1306, 1311,
       
  5965     1316, 1321, 1326, 1331, 0, 0, 1336, 1341,
       
  5966     0, 0, 0, 0, 0, 0, 1346, 1351,
       
  5967     1356, 1361, 1366, 1371, 1376, 1381, 1386, 1391,
       
  5968     1396, 1401, 1406, 1411, 0, 0, 0, 0,
       
  5969     0, 0, 0, 0, 0, 0, 0, 0,
       
  5970     0, 0, 0, 0, 0, 0, 0, 0,
       
  5971     0, 0, 0, 0, 0, 0, 0, 0,
       
  5972     0, 0, 0, 0, 0, 0, 0, 0,
       
  5973     0, 0, 0, 0, 0, 0, 0, 0,
       
  5974     0, 0, 0, 0, 0, 0, 0, 0,
       
  5975     0, 0, 0, 0, 0, 0, 0, 0,
       
  5976     0, 0, 0, 0, 0, 0, 0, 0,
       
  5977     0, 0, 0, 0, 0, 0, 0, 0,
       
  5978     0, 0, 0, 0, 0, 0, 0, 0,
       
  5979     0, 0, 0, 0, 0, 0, 0, 0,
       
  5980     0, 0, 0, 0, 0, 0, 0, 0,
       
  5981     0, 0, 0, 0, 0, 0, 0, 0,
       
  5982     0, 0, 0, 0, 0, 0, 0, 0,
       
  5983     0, 0, 0, 0, 0, 0, 0, 0,
       
  5984     1416, 1420, 1424, 1428, 1432, 1436, 1440, 1444,
       
  5985     1448, 0, 0, 0, 0, 0, 0, 0,
       
  5986     0, 0, 0, 0, 0, 0, 0, 0,
       
  5987     0, 0, 0, 0, 0, 0, 0, 0,
       
  5988     0, 0, 0, 0, 0, 0, 0, 0,
       
  5989     1452, 1457, 1462, 1467, 1472, 1477, 0, 0,
       
  5990     1482, 1486, 1490, 1494, 1498, 0, 0, 0,
       
  5991     0, 0, 0, 0, 0, 0, 0, 0,
       
  5992     0, 0, 0, 0, 0, 0, 0, 0,
       
  5993     0, 0, 0, 0, 0, 0, 0, 0,
       
  5994 };
       
  5995 
       
  5996 static const Q_UINT16 di_03[] = {
       
  5997     0, 0, 0, 0, 0, 0, 0, 0,
       
  5998     0, 0, 0, 0, 0, 0, 0, 0,
       
  5999     0, 0, 0, 0, 0, 0, 0, 0,
       
  6000     0, 0, 0, 0, 0, 0, 0, 0,
       
  6001     0, 0, 0, 0, 0, 0, 0, 0,
       
  6002     0, 0, 0, 0, 0, 0, 0, 0,
       
  6003     0, 0, 0, 0, 0, 0, 0, 0,
       
  6004     0, 0, 0, 0, 0, 0, 0, 0,
       
  6005     1502, 1506, 0, 1510, 1514, 0, 0, 0,
       
  6006     0, 0, 0, 0, 0, 0, 0, 0,
       
  6007     0, 0, 0, 0, 0, 0, 0, 0,
       
  6008     0, 0, 0, 0, 0, 0, 0, 0,
       
  6009     0, 0, 0, 0, 0, 0, 0, 0,
       
  6010     0, 0, 0, 0, 0, 0, 0, 0,
       
  6011     0, 0, 0, 0, 1519, 0, 0, 0,
       
  6012     0, 0, 1523, 0, 0, 0, 1528, 0,
       
  6013     0, 0, 0, 0, 1532, 1537, 1542, 1547,
       
  6014     1551, 1556, 1561, 0, 1566, 0, 1571, 1576,
       
  6015     1581, 0, 0, 0, 0, 0, 0, 0,
       
  6016     0, 0, 0, 0, 0, 0, 0, 0,
       
  6017     0, 0, 0, 0, 0, 0, 0, 0,
       
  6018     0, 0, 1586, 1591, 1596, 1601, 1606, 1611,
       
  6019     1616, 0, 0, 0, 0, 0, 0, 0,
       
  6020     0, 0, 0, 0, 0, 0, 0, 0,
       
  6021     0, 0, 0, 0, 0, 0, 0, 0,
       
  6022     0, 0, 1621, 1626, 1631, 1636, 1641, 0,
       
  6023     1646, 1650, 1654, 1658, 1663, 1668, 1672, 0,
       
  6024     0, 0, 0, 0, 0, 0, 0, 0,
       
  6025     0, 0, 0, 0, 0, 0, 0, 0,
       
  6026     0, 0, 0, 0, 0, 0, 0, 0,
       
  6027     1676, 1680, 1684, 0, 0, 0, 0, 0,
       
  6028     0, 0, 0, 0, 0, 0, 0, 0,
       
  6029 };
       
  6030 
       
  6031 static const Q_UINT16 di_04[] = {
       
  6032     1688, 1693, 0, 1698, 0, 0, 0, 1703,
       
  6033     0, 0, 0, 0, 1708, 1713, 1718, 0,
       
  6034     0, 0, 0, 0, 0, 0, 0, 0,
       
  6035     0, 1723, 0, 0, 0, 0, 0, 0,
       
  6036     0, 0, 0, 0, 0, 0, 0, 0,
       
  6037     0, 0, 0, 0, 0, 0, 0, 0,
       
  6038     0, 0, 0, 0, 0, 0, 0, 0,
       
  6039     0, 1728, 0, 0, 0, 0, 0, 0,
       
  6040     0, 0, 0, 0, 0, 0, 0, 0,
       
  6041     0, 0, 0, 0, 0, 0, 0, 0,
       
  6042     1733, 1738, 0, 1743, 0, 0, 0, 1748,
       
  6043     0, 0, 0, 0, 1753, 1758, 1763, 0,
       
  6044     0, 0, 0, 0, 0, 0, 0, 0,
       
  6045     0, 0, 0, 0, 0, 0, 0, 0,
       
  6046     0, 0, 0, 0, 0, 0, 1768, 1773,
       
  6047     0, 0, 0, 0, 0, 0, 0, 0,
       
  6048     0, 0, 0, 0, 0, 0, 0, 0,
       
  6049     0, 0, 0, 0, 0, 0, 0, 0,
       
  6050     0, 0, 0, 0, 0, 0, 0, 0,
       
  6051     0, 0, 0, 0, 0, 0, 0, 0,
       
  6052     0, 0, 0, 0, 0, 0, 0, 0,
       
  6053     0, 0, 0, 0, 0, 0, 0, 0,
       
  6054     0, 0, 0, 0, 0, 0, 0, 0,
       
  6055     0, 0, 0, 0, 0, 0, 0, 0,
       
  6056     0, 1778, 1783, 0, 0, 0, 0, 0,
       
  6057     0, 0, 0, 0, 0, 0, 0, 0,
       
  6058     1788, 1793, 1798, 1803, 0, 0, 1808, 1813,
       
  6059     0, 0, 1818, 1823, 1828, 1833, 1838, 1843,
       
  6060     0, 0, 1848, 1853, 1858, 1863, 1868, 1873,
       
  6061     0, 0, 1878, 1883, 1888, 1893, 1898, 1903,
       
  6062     1908, 1913, 1918, 1923, 1928, 1933, 0, 0,
       
  6063     1938, 1943, 0, 0, 0, 0, 0, 0,
       
  6064 };
       
  6065 
       
  6066 static const Q_UINT16 di_05[] = {
       
  6067     0, 0, 0, 0, 0, 0, 0, 0,
       
  6068     0, 0, 0, 0, 0, 0, 0, 0,
       
  6069     0, 0, 0, 0, 0, 0, 0, 0,
       
  6070     0, 0, 0, 0, 0, 0, 0, 0,
       
  6071     0, 0, 0, 0, 0, 0, 0, 0,
       
  6072     0, 0, 0, 0, 0, 0, 0, 0,
       
  6073     0, 0, 0, 0, 0, 0, 0, 0,
       
  6074     0, 0, 0, 0, 0, 0, 0, 0,
       
  6075     0, 0, 0, 0, 0, 0, 0, 0,
       
  6076     0, 0, 0, 0, 0, 0, 0, 0,
       
  6077     0, 0, 0, 0, 0, 0, 0, 0,
       
  6078     0, 0, 0, 0, 0, 0, 0, 0,
       
  6079     0, 0, 0, 0, 0, 0, 0, 0,
       
  6080     0, 0, 0, 0, 0, 0, 0, 0,
       
  6081     0, 0, 0, 0, 0, 0, 0, 0,
       
  6082     0, 0, 0, 0, 0, 0, 0, 0,
       
  6083     0, 0, 0, 0, 0, 0, 0, 1948,
       
  6084     0, 0, 0, 0, 0, 0, 0, 0,
       
  6085     0, 0, 0, 0, 0, 0, 0, 0,
       
  6086     0, 0, 0, 0, 0, 0, 0, 0,
       
  6087     0, 0, 0, 0, 0, 0, 0, 0,
       
  6088     0, 0, 0, 0, 0, 0, 0, 0,
       
  6089     0, 0, 0, 0, 0, 0, 0, 0,
       
  6090     0, 0, 0, 0, 0, 0, 0, 0,
       
  6091     0, 0, 0, 0, 0, 0, 0, 0,
       
  6092     0, 0, 0, 0, 0, 0, 0, 0,
       
  6093     0, 0, 0, 0, 0, 0, 0, 0,
       
  6094     0, 0, 0, 0, 0, 0, 0, 0,
       
  6095     0, 0, 0, 0, 0, 0, 0, 0,
       
  6096     0, 0, 0, 0, 0, 0, 0, 0,
       
  6097     0, 0, 0, 0, 0, 0, 0, 0,
       
  6098     0, 0, 0, 0, 0, 0, 0, 0,
       
  6099 };
       
  6100 
       
  6101 static const Q_UINT16 di_06[] = {
       
  6102     0, 0, 0, 0, 0, 0, 0, 0,
       
  6103     0, 0, 0, 0, 0, 0, 0, 0,
       
  6104     0, 0, 0, 0, 0, 0, 0, 0,
       
  6105     0, 0, 0, 0, 0, 0, 0, 0,
       
  6106     0, 0, 1953, 1958, 1963, 1968, 1973, 0,
       
  6107     0, 0, 0, 0, 0, 0, 0, 0,
       
  6108     0, 0, 0, 0, 0, 0, 0, 0,
       
  6109     0, 0, 0, 0, 0, 0, 0, 0,
       
  6110     0, 0, 0, 0, 0, 0, 0, 0,
       
  6111     0, 0, 0, 0, 0, 0, 0, 0,
       
  6112     0, 0, 0, 0, 0, 0, 0, 0,
       
  6113     0, 0, 0, 0, 0, 0, 0, 0,
       
  6114     0, 0, 0, 0, 0, 0, 0, 0,
       
  6115     0, 0, 0, 0, 0, 0, 0, 0,
       
  6116     0, 0, 0, 0, 0, 1978, 1983, 1988,
       
  6117     1993, 0, 0, 0, 0, 0, 0, 0,
       
  6118     0, 0, 0, 0, 0, 0, 0, 0,
       
  6119     0, 0, 0, 0, 0, 0, 0, 0,
       
  6120     0, 0, 0, 0, 0, 0, 0, 0,
       
  6121     0, 0, 0, 0, 0, 0, 0, 0,
       
  6122     0, 0, 0, 0, 0, 0, 0, 0,
       
  6123     0, 0, 0, 0, 0, 0, 0, 0,
       
  6124     0, 0, 0, 0, 0, 0, 0, 0,
       
  6125     0, 0, 0, 0, 0, 0, 0, 0,
       
  6126     1998, 0, 2003, 0, 0, 0, 0, 0,
       
  6127     0, 0, 0, 0, 0, 0, 0, 0,
       
  6128     0, 0, 0, 2008, 0, 0, 0, 0,
       
  6129     0, 0, 0, 0, 0, 0, 0, 0,
       
  6130     0, 0, 0, 0, 0, 0, 0, 0,
       
  6131     0, 0, 0, 0, 0, 0, 0, 0,
       
  6132     0, 0, 0, 0, 0, 0, 0, 0,
       
  6133     0, 0, 0, 0, 0, 0, 0, 0,
       
  6134 };
       
  6135 
       
  6136 static const Q_UINT16 di_07[] = {
       
  6137     0, 0, 0, 0, 0, 0, 0, 0,
       
  6138     0, 0, 0, 0, 0, 0, 0, 0,
       
  6139     0, 0, 0, 0, 0, 0, 0, 0,
       
  6140     0, 0, 0, 0, 0, 0, 0, 0,
       
  6141     0, 0, 0, 0, 0, 0, 0, 0,
       
  6142     0, 0, 0, 0, 0, 0, 0, 0,
       
  6143     0, 0, 0, 0, 0, 0, 0, 0,
       
  6144     0, 0, 0, 0, 0, 0, 0, 0,
       
  6145     0, 0, 0, 0, 0, 0, 0, 0,
       
  6146     0, 0, 0, 0, 0, 0, 0, 0,
       
  6147     0, 0, 0, 0, 0, 0, 0, 0,
       
  6148     0, 0, 0, 0, 0, 0, 0, 0,
       
  6149     0, 0, 0, 0, 0, 0, 0, 0,
       
  6150     0, 0, 0, 0, 0, 0, 0, 0,
       
  6151     0, 0, 0, 0, 0, 0, 0, 0,
       
  6152     0, 0, 0, 0, 0, 0, 0, 0,
       
  6153     0, 0, 0, 0, 0, 0, 0, 0,
       
  6154     0, 0, 0, 0, 0, 0, 0, 0,
       
  6155     0, 0, 0, 0, 0, 0, 0, 0,
       
  6156     0, 0, 0, 0, 0, 0, 0, 0,
       
  6157     0, 0, 0, 0, 0, 0, 0, 0,
       
  6158     0, 0, 0, 0, 0, 0, 0, 0,
       
  6159     0, 0, 0, 0, 0, 0, 0, 0,
       
  6160     0, 0, 0, 0, 0, 0, 0, 0,
       
  6161     0, 0, 0, 0, 0, 0, 0, 0,
       
  6162     0, 0, 0, 0, 0, 0, 0, 0,
       
  6163     0, 0, 0, 0, 0, 0, 0, 0,
       
  6164     0, 0, 0, 0, 0, 0, 0, 0,
       
  6165     0, 0, 0, 0, 0, 0, 0, 0,
       
  6166     0, 0, 0, 0, 0, 0, 0, 0,
       
  6167     0, 0, 0, 0, 0, 0, 0, 0,
       
  6168     0, 0, 0, 0, 0, 0, 0, 0,
       
  6169 };
       
  6170 
       
  6171 static const Q_UINT16 di_09[] = {
       
  6172     0, 0, 0, 0, 0, 0, 0, 0,
       
  6173     0, 0, 0, 0, 0, 0, 0, 0,
       
  6174     0, 0, 0, 0, 0, 0, 0, 0,
       
  6175     0, 0, 0, 0, 0, 0, 0, 0,
       
  6176     0, 0, 0, 0, 0, 0, 0, 0,
       
  6177     0, 2013, 0, 0, 0, 0, 0, 0,
       
  6178     0, 2018, 0, 0, 2023, 0, 0, 0,
       
  6179     0, 0, 0, 0, 0, 0, 0, 0,
       
  6180     0, 0, 0, 0, 0, 0, 0, 0,
       
  6181     0, 0, 0, 0, 0, 0, 0, 0,
       
  6182     0, 0, 0, 0, 0, 0, 0, 0,
       
  6183     2028, 2033, 2038, 2043, 2048, 2053, 2058, 2063,
       
  6184     0, 0, 0, 0, 0, 0, 0, 0,
       
  6185     0, 0, 0, 0, 0, 0, 0, 0,
       
  6186     0, 0, 0, 0, 0, 0, 0, 0,
       
  6187     0, 0, 0, 0, 0, 0, 0, 0,
       
  6188     0, 0, 0, 0, 0, 0, 0, 0,
       
  6189     0, 0, 0, 0, 0, 0, 0, 0,
       
  6190     0, 0, 0, 0, 0, 0, 0, 0,
       
  6191     0, 0, 0, 0, 0, 0, 0, 0,
       
  6192     0, 0, 0, 0, 0, 0, 0, 0,
       
  6193     0, 0, 0, 0, 0, 0, 0, 0,
       
  6194     0, 0, 0, 0, 0, 0, 0, 0,
       
  6195     0, 0, 0, 0, 0, 0, 0, 0,
       
  6196     0, 0, 0, 0, 0, 0, 0, 0,
       
  6197     0, 0, 0, 2068, 2073, 0, 0, 0,
       
  6198     0, 0, 0, 0, 0, 0, 0, 0,
       
  6199     0, 0, 0, 0, 2078, 2083, 0, 2088,
       
  6200     0, 0, 0, 0, 0, 0, 0, 0,
       
  6201     0, 0, 0, 0, 0, 0, 0, 0,
       
  6202     0, 0, 0, 0, 0, 0, 0, 0,
       
  6203     0, 0, 0, 0, 0, 0, 0, 0,
       
  6204 };
       
  6205 
       
  6206 static const Q_UINT16 di_0A[] = {
       
  6207     0, 0, 0, 0, 0, 0, 0, 0,
       
  6208     0, 0, 0, 0, 0, 0, 0, 0,
       
  6209     0, 0, 0, 0, 0, 0, 0, 0,
       
  6210     0, 0, 0, 0, 0, 0, 0, 0,
       
  6211     0, 0, 0, 0, 0, 0, 0, 0,
       
  6212     0, 0, 0, 0, 0, 0, 0, 0,
       
  6213     0, 0, 0, 2093, 0, 0, 2098, 0,
       
  6214     0, 0, 0, 0, 0, 0, 0, 0,
       
  6215     0, 0, 0, 0, 0, 0, 0, 0,
       
  6216     0, 0, 0, 0, 0, 0, 0, 0,
       
  6217     0, 0, 0, 0, 0, 0, 0, 0,
       
  6218     0, 2103, 2108, 2113, 0, 0, 2118, 0,
       
  6219     0, 0, 0, 0, 0, 0, 0, 0,
       
  6220     0, 0, 0, 0, 0, 0, 0, 0,
       
  6221     0, 0, 0, 0, 0, 0, 0, 0,
       
  6222     0, 0, 0, 0, 0, 0, 0, 0,
       
  6223     0, 0, 0, 0, 0, 0, 0, 0,
       
  6224     0, 0, 0, 0, 0, 0, 0, 0,
       
  6225     0, 0, 0, 0, 0, 0, 0, 0,
       
  6226     0, 0, 0, 0, 0, 0, 0, 0,
       
  6227     0, 0, 0, 0, 0, 0, 0, 0,
       
  6228     0, 0, 0, 0, 0, 0, 0, 0,
       
  6229     0, 0, 0, 0, 0, 0, 0, 0,
       
  6230     0, 0, 0, 0, 0, 0, 0, 0,
       
  6231     0, 0, 0, 0, 0, 0, 0, 0,
       
  6232     0, 0, 0, 0, 0, 0, 0, 0,
       
  6233     0, 0, 0, 0, 0, 0, 0, 0,
       
  6234     0, 0, 0, 0, 0, 0, 0, 0,
       
  6235     0, 0, 0, 0, 0, 0, 0, 0,
       
  6236     0, 0, 0, 0, 0, 0, 0, 0,
       
  6237     0, 0, 0, 0, 0, 0, 0, 0,
       
  6238     0, 0, 0, 0, 0, 0, 0, 0,
       
  6239 };
       
  6240 
       
  6241 static const Q_UINT16 di_0B[] = {
       
  6242     0, 0, 0, 0, 0, 0, 0, 0,
       
  6243     0, 0, 0, 0, 0, 0, 0, 0,
       
  6244     0, 0, 0, 0, 0, 0, 0, 0,
       
  6245     0, 0, 0, 0, 0, 0, 0, 0,
       
  6246     0, 0, 0, 0, 0, 0, 0, 0,
       
  6247     0, 0, 0, 0, 0, 0, 0, 0,
       
  6248     0, 0, 0, 0, 0, 0, 0, 0,
       
  6249     0, 0, 0, 0, 0, 0, 0, 0,
       
  6250     0, 0, 0, 0, 0, 0, 0, 0,
       
  6251     2123, 0, 0, 2128, 2133, 0, 0, 0,
       
  6252     0, 0, 0, 0, 0, 0, 0, 0,
       
  6253     0, 0, 0, 0, 2138, 2143, 0, 0,
       
  6254     0, 0, 0, 0, 0, 0, 0, 0,
       
  6255     0, 0, 0, 0, 0, 0, 0, 0,
       
  6256     0, 0, 0, 0, 0, 0, 0, 0,
       
  6257     0, 0, 0, 0, 0, 0, 0, 0,
       
  6258     0, 0, 0, 0, 0, 0, 0, 0,
       
  6259     0, 0, 0, 0, 0, 0, 0, 0,
       
  6260     0, 0, 0, 0, 2148, 0, 0, 0,
       
  6261     0, 0, 0, 0, 0, 0, 0, 0,
       
  6262     0, 0, 0, 0, 0, 0, 0, 0,
       
  6263     0, 0, 0, 0, 0, 0, 0, 0,
       
  6264     0, 0, 0, 0, 0, 0, 0, 0,
       
  6265     0, 0, 0, 0, 0, 0, 0, 0,
       
  6266     0, 0, 0, 0, 0, 0, 0, 0,
       
  6267     0, 0, 2153, 2158, 2163, 0, 0, 0,
       
  6268     0, 0, 0, 0, 0, 0, 0, 0,
       
  6269     0, 0, 0, 0, 0, 0, 0, 0,
       
  6270     0, 0, 0, 0, 0, 0, 0, 0,
       
  6271     0, 0, 0, 0, 0, 0, 0, 0,
       
  6272     0, 0, 0, 0, 0, 0, 0, 0,
       
  6273     0, 0, 0, 0, 0, 0, 0, 0,
       
  6274 };
       
  6275 
       
  6276 static const Q_UINT16 di_0C[] = {
       
  6277     0, 0, 0, 0, 0, 0, 0, 0,
       
  6278     0, 0, 0, 0, 0, 0, 0, 0,
       
  6279     0, 0, 0, 0, 0, 0, 0, 0,
       
  6280     0, 0, 0, 0, 0, 0, 0, 0,
       
  6281     0, 0, 0, 0, 0, 0, 0, 0,
       
  6282     0, 0, 0, 0, 0, 0, 0, 0,
       
  6283     0, 0, 0, 0, 0, 0, 0, 0,
       
  6284     0, 0, 0, 0, 0, 0, 0, 0,
       
  6285     0, 0, 0, 0, 0, 0, 0, 0,
       
  6286     2168, 0, 0, 0, 0, 0, 0, 0,
       
  6287     0, 0, 0, 0, 0, 0, 0, 0,
       
  6288     0, 0, 0, 0, 0, 0, 0, 0,
       
  6289     0, 0, 0, 0, 0, 0, 0, 0,
       
  6290     0, 0, 0, 0, 0, 0, 0, 0,
       
  6291     0, 0, 0, 0, 0, 0, 0, 0,
       
  6292     0, 0, 0, 0, 0, 0, 0, 0,
       
  6293     0, 0, 0, 0, 0, 0, 0, 0,
       
  6294     0, 0, 0, 0, 0, 0, 0, 0,
       
  6295     0, 0, 0, 0, 0, 0, 0, 0,
       
  6296     0, 0, 0, 0, 0, 0, 0, 0,
       
  6297     0, 0, 0, 0, 0, 0, 0, 0,
       
  6298     0, 0, 0, 0, 0, 0, 0, 0,
       
  6299     0, 0, 0, 0, 0, 0, 0, 0,
       
  6300     0, 0, 0, 0, 0, 0, 0, 0,
       
  6301     2173, 0, 0, 0, 0, 0, 0, 2178,
       
  6302     2183, 0, 2188, 2193, 0, 0, 0, 0,
       
  6303     0, 0, 0, 0, 0, 0, 0, 0,
       
  6304     0, 0, 0, 0, 0, 0, 0, 0,
       
  6305     0, 0, 0, 0, 0, 0, 0, 0,
       
  6306     0, 0, 0, 0, 0, 0, 0, 0,
       
  6307     0, 0, 0, 0, 0, 0, 0, 0,
       
  6308     0, 0, 0, 0, 0, 0, 0, 0,
       
  6309 };
       
  6310 
       
  6311 static const Q_UINT16 di_0D[] = {
       
  6312     0, 0, 0, 0, 0, 0, 0, 0,
       
  6313     0, 0, 0, 0, 0, 0, 0, 0,
       
  6314     0, 0, 0, 0, 0, 0, 0, 0,
       
  6315     0, 0, 0, 0, 0, 0, 0, 0,
       
  6316     0, 0, 0, 0, 0, 0, 0, 0,
       
  6317     0, 0, 0, 0, 0, 0, 0, 0,
       
  6318     0, 0, 0, 0, 0, 0, 0, 0,
       
  6319     0, 0, 0, 0, 0, 0, 0, 0,
       
  6320     0, 0, 0, 0, 0, 0, 0, 0,
       
  6321     0, 0, 2198, 2203, 2208, 0, 0, 0,
       
  6322     0, 0, 0, 0, 0, 0, 0, 0,
       
  6323     0, 0, 0, 0, 0, 0, 0, 0,
       
  6324     0, 0, 0, 0, 0, 0, 0, 0,
       
  6325     0, 0, 0, 0, 0, 0, 0, 0,
       
  6326     0, 0, 0, 0, 0, 0, 0, 0,
       
  6327     0, 0, 0, 0, 0, 0, 0, 0,
       
  6328     0, 0, 0, 0, 0, 0, 0, 0,
       
  6329     0, 0, 0, 0, 0, 0, 0, 0,
       
  6330     0, 0, 0, 0, 0, 0, 0, 0,
       
  6331     0, 0, 0, 0, 0, 0, 0, 0,
       
  6332     0, 0, 0, 0, 0, 0, 0, 0,
       
  6333     0, 0, 0, 0, 0, 0, 0, 0,
       
  6334     0, 0, 0, 0, 0, 0, 0, 0,
       
  6335     0, 0, 0, 0, 0, 0, 0, 0,
       
  6336     0, 0, 0, 0, 0, 0, 0, 0,
       
  6337     0, 0, 0, 0, 0, 0, 0, 0,
       
  6338     0, 0, 0, 0, 0, 0, 0, 0,
       
  6339     0, 0, 2213, 0, 2218, 2223, 2228, 0,
       
  6340     0, 0, 0, 0, 0, 0, 0, 0,
       
  6341     0, 0, 0, 0, 0, 0, 0, 0,
       
  6342     0, 0, 0, 0, 0, 0, 0, 0,
       
  6343     0, 0, 0, 0, 0, 0, 0, 0,
       
  6344 };
       
  6345 
       
  6346 static const Q_UINT16 di_0E[] = {
       
  6347     0, 0, 0, 0, 0, 0, 0, 0,
       
  6348     0, 0, 0, 0, 0, 0, 0, 0,
       
  6349     0, 0, 0, 0, 0, 0, 0, 0,
       
  6350     0, 0, 0, 0, 0, 0, 0, 0,
       
  6351     0, 0, 0, 0, 0, 0, 0, 0,
       
  6352     0, 0, 0, 0, 0, 0, 0, 0,
       
  6353     0, 0, 0, 2233, 0, 0, 0, 0,
       
  6354     0, 0, 0, 0, 0, 0, 0, 0,
       
  6355     0, 0, 0, 0, 0, 0, 0, 0,
       
  6356     0, 0, 0, 0, 0, 0, 0, 0,
       
  6357     0, 0, 0, 0, 0, 0, 0, 0,
       
  6358     0, 0, 0, 0, 0, 0, 0, 0,
       
  6359     0, 0, 0, 0, 0, 0, 0, 0,
       
  6360     0, 0, 0, 0, 0, 0, 0, 0,
       
  6361     0, 0, 0, 0, 0, 0, 0, 0,
       
  6362     0, 0, 0, 0, 0, 0, 0, 0,
       
  6363     0, 0, 0, 0, 0, 0, 0, 0,
       
  6364     0, 0, 0, 0, 0, 0, 0, 0,
       
  6365     0, 0, 0, 0, 0, 0, 0, 0,
       
  6366     0, 0, 0, 0, 0, 0, 0, 0,
       
  6367     0, 0, 0, 0, 0, 0, 0, 0,
       
  6368     0, 0, 0, 0, 0, 0, 0, 0,
       
  6369     0, 0, 0, 2238, 0, 0, 0, 0,
       
  6370     0, 0, 0, 0, 0, 0, 0, 0,
       
  6371     0, 0, 0, 0, 0, 0, 0, 0,
       
  6372     0, 0, 0, 0, 0, 0, 0, 0,
       
  6373     0, 0, 0, 0, 0, 0, 0, 0,
       
  6374     0, 0, 0, 0, 2243, 2248, 0, 0,
       
  6375     0, 0, 0, 0, 0, 0, 0, 0,
       
  6376     0, 0, 0, 0, 0, 0, 0, 0,
       
  6377     0, 0, 0, 0, 0, 0, 0, 0,
       
  6378     0, 0, 0, 0, 0, 0, 0, 0,
       
  6379 };
       
  6380 
       
  6381 static const Q_UINT16 di_0F[] = {
       
  6382     0, 0, 0, 0, 0, 0, 0, 0,
       
  6383     0, 0, 0, 0, 2253, 0, 0, 0,
       
  6384     0, 0, 0, 0, 0, 0, 0, 0,
       
  6385     0, 0, 0, 0, 0, 0, 0, 0,
       
  6386     0, 0, 0, 0, 0, 0, 0, 0,
       
  6387     0, 0, 0, 0, 0, 0, 0, 0,
       
  6388     0, 0, 0, 0, 0, 0, 0, 0,
       
  6389     0, 0, 0, 0, 0, 0, 0, 0,
       
  6390     0, 0, 0, 2257, 0, 0, 0, 0,
       
  6391     0, 0, 0, 0, 0, 2262, 0, 0,
       
  6392     0, 0, 2267, 0, 0, 0, 0, 2272,
       
  6393     0, 0, 0, 0, 2277, 0, 0, 0,
       
  6394     0, 0, 0, 0, 0, 0, 0, 0,
       
  6395     0, 2282, 0, 0, 0, 0, 0, 0,
       
  6396     0, 0, 0, 2287, 0, 2292, 2297, 2302,
       
  6397     2307, 2312, 0, 0, 0, 0, 0, 0,
       
  6398     0, 2317, 0, 0, 0, 0, 0, 0,
       
  6399     0, 0, 0, 0, 0, 0, 0, 0,
       
  6400     0, 0, 0, 2322, 0, 0, 0, 0,
       
  6401     0, 0, 0, 0, 0, 2327, 0, 0,
       
  6402     0, 0, 2332, 0, 0, 0, 0, 2337,
       
  6403     0, 0, 0, 0, 2342, 0, 0, 0,
       
  6404     0, 0, 0, 0, 0, 0, 0, 0,
       
  6405     0, 2347, 0, 0, 0, 0, 0, 0,
       
  6406     0, 0, 0, 0, 0, 0, 0, 0,
       
  6407     0, 0, 0, 0, 0, 0, 0, 0,
       
  6408     0, 0, 0, 0, 0, 0, 0, 0,
       
  6409     0, 0, 0, 0, 0, 0, 0, 0,
       
  6410     0, 0, 0, 0, 0, 0, 0, 0,
       
  6411     0, 0, 0, 0, 0, 0, 0, 0,
       
  6412     0, 0, 0, 0, 0, 0, 0, 0,
       
  6413     0, 0, 0, 0, 0, 0, 0, 0,
       
  6414 };
       
  6415 
       
  6416 static const Q_UINT16 di_10[] = {
       
  6417     0, 0, 0, 0, 0, 0, 0, 0,
       
  6418     0, 0, 0, 0, 0, 0, 0, 0,
       
  6419     0, 0, 0, 0, 0, 0, 0, 0,
       
  6420     0, 0, 0, 0, 0, 0, 0, 0,
       
  6421     0, 0, 0, 0, 0, 0, 2352, 0,
       
  6422     0, 0, 0, 0, 0, 0, 0, 0,
       
  6423     0, 0, 0, 0, 0, 0, 0, 0,
       
  6424     0, 0, 0, 0, 0, 0, 0, 0,
       
  6425     0, 0, 0, 0, 0, 0, 0, 0,
       
  6426     0, 0, 0, 0, 0, 0, 0, 0,
       
  6427     0, 0, 0, 0, 0, 0, 0, 0,
       
  6428     0, 0, 0, 0, 0, 0, 0, 0,
       
  6429     0, 0, 0, 0, 0, 0, 0, 0,
       
  6430     0, 0, 0, 0, 0, 0, 0, 0,
       
  6431     0, 0, 0, 0, 0, 0, 0, 0,
       
  6432     0, 0, 0, 0, 0, 0, 0, 0,
       
  6433     0, 0, 0, 0, 0, 0, 0, 0,
       
  6434     0, 0, 0, 0, 0, 0, 0, 0,
       
  6435     0, 0, 0, 0, 0, 0, 0, 0,
       
  6436     0, 0, 0, 0, 0, 0, 0, 0,
       
  6437     0, 0, 0, 0, 0, 0, 0, 0,
       
  6438     0, 0, 0, 0, 0, 0, 0, 0,
       
  6439     0, 0, 0, 0, 0, 0, 0, 0,
       
  6440     0, 0, 0, 0, 0, 0, 0, 0,
       
  6441     0, 0, 0, 0, 0, 0, 0, 0,
       
  6442     0, 0, 0, 0, 0, 0, 0, 0,
       
  6443     0, 0, 0, 0, 0, 0, 0, 0,
       
  6444     0, 0, 0, 0, 0, 0, 0, 0,
       
  6445     0, 0, 0, 0, 0, 0, 0, 0,
       
  6446     0, 0, 0, 0, 0, 0, 0, 0,
       
  6447     0, 0, 0, 0, 0, 0, 0, 0,
       
  6448     0, 0, 0, 0, 0, 0, 0, 0,
       
  6449 };
       
  6450 
       
  6451 static const Q_UINT16 di_1E[] = {
       
  6452     2357, 2362, 2367, 2372, 2377, 2382, 2387, 2392,
       
  6453     2397, 2402, 2407, 2412, 2417, 2422, 2427, 2432,
       
  6454     2437, 2442, 2447, 2452, 2457, 2462, 2467, 2472,
       
  6455     2477, 2482, 2487, 2492, 2497, 2502, 2507, 2512,
       
  6456     2517, 2522, 2527, 2532, 2537, 2542, 2547, 2552,
       
  6457     2557, 2562, 2567, 2572, 2577, 2582, 2587, 2592,
       
  6458     2597, 2602, 2607, 2612, 2617, 2622, 2627, 2632,
       
  6459     2637, 2642, 2647, 2652, 2657, 2662, 2667, 2672,
       
  6460     2677, 2682, 2687, 2692, 2697, 2702, 2707, 2712,
       
  6461     2717, 2722, 2727, 2732, 2737, 2742, 2747, 2752,
       
  6462     2757, 2762, 2767, 2772, 2777, 2782, 2787, 2792,
       
  6463     2797, 2802, 2807, 2812, 2817, 2822, 2827, 2832,
       
  6464     2837, 2842, 2847, 2852, 2857, 2862, 2867, 2872,
       
  6465     2877, 2882, 2887, 2892, 2897, 2902, 2907, 2912,
       
  6466     2917, 2922, 2927, 2932, 2937, 2942, 2947, 2952,
       
  6467     2957, 2962, 2967, 2972, 2977, 2982, 2987, 2992,
       
  6468     2997, 3002, 3007, 3012, 3017, 3022, 3027, 3032,
       
  6469     3037, 3042, 3047, 3052, 3057, 3062, 3067, 3072,
       
  6470     3077, 3082, 3087, 3092, 3097, 3102, 3107, 3112,
       
  6471     3117, 3122, 3127, 3132, 0, 0, 0, 0,
       
  6472     3137, 3142, 3147, 3152, 3157, 3162, 3167, 3172,
       
  6473     3177, 3182, 3187, 3192, 3197, 3202, 3207, 3212,
       
  6474     3217, 3222, 3227, 3232, 3237, 3242, 3247, 3252,
       
  6475     3257, 3262, 3267, 3272, 3277, 3282, 3287, 3292,
       
  6476     3297, 3302, 3307, 3312, 3317, 3322, 3327, 3332,
       
  6477     3337, 3342, 3347, 3352, 3357, 3362, 3367, 3372,
       
  6478     3377, 3382, 3387, 3392, 3397, 3402, 3407, 3412,
       
  6479     3417, 3422, 3427, 3432, 3437, 3442, 3447, 3452,
       
  6480     3457, 3462, 3467, 3472, 3477, 3482, 3487, 3492,
       
  6481     3497, 3502, 3507, 3512, 3517, 3522, 3527, 3532,
       
  6482     3537, 3542, 3547, 3552, 3557, 3562, 3567, 3572,
       
  6483     3577, 3582, 0, 0, 0, 0, 0, 0,
       
  6484 };
       
  6485 
       
  6486 static const Q_UINT16 di_1F[] = {
       
  6487     3587, 3592, 3597, 3602, 3607, 3612, 3617, 3622,
       
  6488     3627, 3632, 3637, 3642, 3647, 3652, 3657, 3662,
       
  6489     3667, 3672, 3677, 3682, 3687, 3692, 0, 0,
       
  6490     3697, 3702, 3707, 3712, 3717, 3722, 0, 0,
       
  6491     3727, 3732, 3737, 3742, 3747, 3752, 3757, 3762,
       
  6492     3767, 3772, 3777, 3782, 3787, 3792, 3797, 3802,
       
  6493     3807, 3812, 3817, 3822, 3827, 3832, 3837, 3842,
       
  6494     3847, 3852, 3857, 3862, 3867, 3872, 3877, 3882,
       
  6495     3887, 3892, 3897, 3902, 3907, 3912, 0, 0,
       
  6496     3917, 3922, 3927, 3932, 3937, 3942, 0, 0,
       
  6497     3947, 3952, 3957, 3962, 3967, 3972, 3977, 3982,
       
  6498     0, 3987, 0, 3992, 0, 3997, 0, 4002,
       
  6499     4007, 4012, 4017, 4022, 4027, 4032, 4037, 4042,
       
  6500     4047, 4052, 4057, 4062, 4067, 4072, 4077, 4082,
       
  6501     4087, 4092, 4096, 4101, 4105, 4110, 4114, 4119,
       
  6502     4123, 4128, 4132, 4137, 4141, 4146, 0, 0,
       
  6503     4150, 4155, 4160, 4165, 4170, 4175, 4180, 4185,
       
  6504     4190, 4195, 4200, 4205, 4210, 4215, 4220, 4225,
       
  6505     4230, 4235, 4240, 4245, 4250, 4255, 4260, 4265,
       
  6506     4270, 4275, 4280, 4285, 4290, 4295, 4300, 4305,
       
  6507     4310, 4315, 4320, 4325, 4330, 4335, 4340, 4345,
       
  6508     4350, 4355, 4360, 4365, 4370, 4375, 4380, 4385,
       
  6509     4390, 4395, 4400, 4405, 4410, 0, 4415, 4420,
       
  6510     4425, 4430, 4435, 4440, 4444, 4449, 4454, 4458,
       
  6511     4463, 4468, 4473, 4478, 4483, 0, 4488, 4493,
       
  6512     4498, 4503, 4507, 4512, 4516, 4521, 4526, 4531,
       
  6513     4536, 4541, 4546, 4551, 0, 0, 4555, 4560,
       
  6514     4565, 4570, 4575, 4580, 0, 4584, 4589, 4594,
       
  6515     4599, 4604, 4609, 4614, 4618, 4623, 4628, 4633,
       
  6516     4638, 4643, 4648, 4653, 4657, 4662, 4667, 4671,
       
  6517     0, 0, 4675, 4680, 4685, 0, 4690, 4695,
       
  6518     4700, 4705, 4709, 4714, 4718, 4723, 4727, 0,
       
  6519 };
       
  6520 
       
  6521 static const Q_UINT16 di_20[] = {
       
  6522     4732, 4736, 4740, 4744, 4748, 4752, 4756, 4760,
       
  6523     4764, 4768, 4772, 0, 0, 0, 0, 0,
       
  6524     0, 4776, 0, 0, 0, 0, 0, 4780,
       
  6525     0, 0, 0, 0, 0, 0, 0, 0,
       
  6526     0, 0, 0, 0, 4785, 4789, 4794, 0,
       
  6527     0, 0, 0, 0, 0, 0, 0, 4800,
       
  6528     0, 0, 0, 4804, 4809, 0, 4815, 4820,
       
  6529     0, 0, 0, 0, 4826, 0, 4831, 0,
       
  6530     0, 0, 0, 0, 0, 0, 0, 0,
       
  6531     4836, 4841, 0, 0, 0, 0, 0, 0,
       
  6532     0, 0, 0, 0, 0, 0, 0, 0,
       
  6533     0, 0, 0, 0, 0, 0, 0, 0,
       
  6534     0, 0, 0, 0, 0, 0, 0, 0,
       
  6535     0, 0, 0, 0, 0, 0, 0, 0,
       
  6536     4846, 0, 0, 0, 4850, 4854, 4858, 4862,
       
  6537     4866, 4870, 4874, 4878, 4882, 4886, 4890, 4894,
       
  6538     4898, 4902, 4906, 4910, 4914, 4918, 4922, 4926,
       
  6539     4930, 4934, 4938, 4942, 4946, 4950, 4954, 0,
       
  6540     0, 0, 0, 0, 0, 0, 0, 0,
       
  6541     0, 0, 0, 0, 0, 0, 0, 0,
       
  6542     0, 0, 0, 0, 0, 0, 0, 0,
       
  6543     4958, 0, 0, 0, 0, 0, 0, 0,
       
  6544     0, 0, 0, 0, 0, 0, 0, 0,
       
  6545     0, 0, 0, 0, 0, 0, 0, 0,
       
  6546     0, 0, 0, 0, 0, 0, 0, 0,
       
  6547     0, 0, 0, 0, 0, 0, 0, 0,
       
  6548     0, 0, 0, 0, 0, 0, 0, 0,
       
  6549     0, 0, 0, 0, 0, 0, 0, 0,
       
  6550     0, 0, 0, 0, 0, 0, 0, 0,
       
  6551     0, 0, 0, 0, 0, 0, 0, 0,
       
  6552     0, 0, 0, 0, 0, 0, 0, 0,
       
  6553     0, 0, 0, 0, 0, 0, 0, 0,
       
  6554 };
       
  6555 
       
  6556 static const Q_UINT16 di_21[] = {
       
  6557     4963, 4969, 4975, 4979, 0, 4984, 4990, 4996,
       
  6558     0, 5000, 5005, 5009, 5013, 5017, 5021, 5025,
       
  6559     5029, 5033, 5037, 5041, 0, 5045, 5049, 0,
       
  6560     0, 5054, 5058, 5062, 5066, 5070, 0, 0,
       
  6561     5074, 5079, 5085, 0, 5090, 0, 5094, 0,
       
  6562     5098, 0, 5102, 5106, 5110, 5114, 0, 5118,
       
  6563     5122, 5126, 0, 5130, 5134, 5138, 5142, 5146,
       
  6564     5150, 5154, 0, 0, 0, 0, 0, 0,
       
  6565     0, 0, 0, 0, 0, 0, 0, 0,
       
  6566     0, 0, 0, 0, 0, 0, 0, 0,
       
  6567     0, 0, 0, 5158, 5164, 5170, 5176, 5182,
       
  6568     5188, 5194, 5200, 5206, 5212, 5218, 5224, 5230,
       
  6569     5235, 5239, 5244, 5250, 5255, 5259, 5264, 5270,
       
  6570     5277, 5282, 5286, 5291, 5297, 5301, 5305, 5309,
       
  6571     5313, 5317, 5322, 5328, 5333, 5337, 5342, 5348,
       
  6572     5355, 5360, 5364, 5369, 5375, 5379, 5383, 5387,
       
  6573     0, 0, 0, 0, 0, 0, 0, 0,
       
  6574     0, 0, 0, 0, 0, 0, 0, 0,
       
  6575     0, 0, 0, 0, 0, 0, 0, 0,
       
  6576     0, 0, 5391, 5396, 0, 0, 0, 0,
       
  6577     0, 0, 0, 0, 0, 0, 0, 0,
       
  6578     0, 0, 0, 0, 0, 0, 5401, 0,
       
  6579     0, 0, 0, 0, 0, 0, 0, 0,
       
  6580     0, 0, 0, 0, 0, 0, 0, 0,
       
  6581     0, 0, 0, 0, 0, 0, 0, 0,
       
  6582     0, 0, 0, 0, 0, 5406, 5411, 5416,
       
  6583     0, 0, 0, 0, 0, 0, 0, 0,
       
  6584     0, 0, 0, 0, 0, 0, 0, 0,
       
  6585     0, 0, 0, 0, 0, 0, 0, 0,
       
  6586     0, 0, 0, 0, 0, 0, 0, 0,
       
  6587     0, 0, 0, 0, 0, 0, 0, 0,
       
  6588     0, 0, 0, 0, 0, 0, 0, 0,
       
  6589 };
       
  6590 
       
  6591 static const Q_UINT16 di_22[] = {
       
  6592     0, 0, 0, 0, 5421, 0, 0, 0,
       
  6593     0, 5426, 0, 0, 5431, 0, 0, 0,
       
  6594     0, 0, 0, 0, 0, 0, 0, 0,
       
  6595     0, 0, 0, 0, 0, 0, 0, 0,
       
  6596     0, 0, 0, 0, 5436, 0, 5441, 0,
       
  6597     0, 0, 0, 0, 5446, 5451, 0, 5457,
       
  6598     5462, 0, 0, 0, 0, 0, 0, 0,
       
  6599     0, 0, 0, 0, 0, 0, 0, 0,
       
  6600     0, 5468, 0, 0, 5473, 0, 0, 5478,
       
  6601     0, 5483, 0, 0, 0, 0, 0, 0,
       
  6602     0, 0, 0, 0, 0, 0, 0, 0,
       
  6603     0, 0, 0, 0, 0, 0, 0, 0,
       
  6604     5488, 0, 5493, 0, 0, 0, 0, 0,
       
  6605     0, 0, 0, 0, 0, 5498, 5503, 5508,
       
  6606     5513, 5518, 0, 0, 5523, 5528, 0, 0,
       
  6607     5533, 5538, 0, 0, 0, 0, 0, 0,
       
  6608     5543, 5548, 0, 0, 5553, 5558, 0, 0,
       
  6609     5563, 5568, 0, 0, 0, 0, 0, 0,
       
  6610     0, 0, 0, 0, 0, 0, 0, 0,
       
  6611     0, 0, 0, 0, 0, 0, 0, 0,
       
  6612     0, 0, 0, 0, 0, 0, 0, 0,
       
  6613     0, 0, 0, 0, 5573, 5578, 5583, 5588,
       
  6614     0, 0, 0, 0, 0, 0, 0, 0,
       
  6615     0, 0, 0, 0, 0, 0, 0, 0,
       
  6616     0, 0, 0, 0, 0, 0, 0, 0,
       
  6617     0, 0, 0, 0, 0, 0, 0, 0,
       
  6618     0, 0, 0, 0, 0, 0, 0, 0,
       
  6619     0, 0, 0, 0, 0, 0, 0, 0,
       
  6620     5593, 5598, 5603, 5608, 0, 0, 0, 0,
       
  6621     0, 0, 5613, 5618, 5623, 5628, 0, 0,
       
  6622     0, 0, 0, 0, 0, 0, 0, 0,
       
  6623     0, 0, 0, 0, 0, 0, 0, 0,
       
  6624 };
       
  6625 
       
  6626 static const Q_UINT16 di_23[] = {
       
  6627     0, 0, 0, 0, 0, 0, 0, 0,
       
  6628     0, 0, 0, 0, 0, 0, 0, 0,
       
  6629     0, 0, 0, 0, 0, 0, 0, 0,
       
  6630     0, 0, 0, 0, 0, 0, 0, 0,
       
  6631     0, 0, 0, 0, 0, 0, 0, 0,
       
  6632     0, 5633, 5637, 0, 0, 0, 0, 0,
       
  6633     0, 0, 0, 0, 0, 0, 0, 0,
       
  6634     0, 0, 0, 0, 0, 0, 0, 0,
       
  6635     0, 0, 0, 0, 0, 0, 0, 0,
       
  6636     0, 0, 0, 0, 0, 0, 0, 0,
       
  6637     0, 0, 0, 0, 0, 0, 0, 0,
       
  6638     0, 0, 0, 0, 0, 0, 0, 0,
       
  6639     0, 0, 0, 0, 0, 0, 0, 0,
       
  6640     0, 0, 0, 0, 0, 0, 0, 0,
       
  6641     0, 0, 0, 0, 0, 0, 0, 0,
       
  6642     0, 0, 0, 0, 0, 0, 0, 0,
       
  6643     0, 0, 0, 0, 0, 0, 0, 0,
       
  6644     0, 0, 0, 0, 0, 0, 0, 0,
       
  6645     0, 0, 0, 0, 0, 0, 0, 0,
       
  6646     0, 0, 0, 0, 0, 0, 0, 0,
       
  6647     0, 0, 0, 0, 0, 0, 0, 0,
       
  6648     0, 0, 0, 0, 0, 0, 0, 0,
       
  6649     0, 0, 0, 0, 0, 0, 0, 0,
       
  6650     0, 0, 0, 0, 0, 0, 0, 0,
       
  6651     0, 0, 0, 0, 0, 0, 0, 0,
       
  6652     0, 0, 0, 0, 0, 0, 0, 0,
       
  6653     0, 0, 0, 0, 0, 0, 0, 0,
       
  6654     0, 0, 0, 0, 0, 0, 0, 0,
       
  6655     0, 0, 0, 0, 0, 0, 0, 0,
       
  6656     0, 0, 0, 0, 0, 0, 0, 0,
       
  6657     0, 0, 0, 0, 0, 0, 0, 0,
       
  6658     0, 0, 0, 0, 0, 0, 0, 0,
       
  6659 };
       
  6660 
       
  6661 static const Q_UINT16 di_24[] = {
       
  6662     0, 0, 0, 0, 0, 0, 0, 0,
       
  6663     0, 0, 0, 0, 0, 0, 0, 0,
       
  6664     0, 0, 0, 0, 0, 0, 0, 0,
       
  6665     0, 0, 0, 0, 0, 0, 0, 0,
       
  6666     0, 0, 0, 0, 0, 0, 0, 0,
       
  6667     0, 0, 0, 0, 0, 0, 0, 0,
       
  6668     0, 0, 0, 0, 0, 0, 0, 0,
       
  6669     0, 0, 0, 0, 0, 0, 0, 0,
       
  6670     0, 0, 0, 0, 0, 0, 0, 0,
       
  6671     0, 0, 0, 0, 0, 0, 0, 0,
       
  6672     0, 0, 0, 0, 0, 0, 0, 0,
       
  6673     0, 0, 0, 0, 0, 0, 0, 0,
       
  6674     5641, 5645, 5649, 5653, 5657, 5661, 5665, 5669,
       
  6675     5673, 5677, 5682, 5687, 5692, 5697, 5702, 5707,
       
  6676     5712, 5717, 5722, 5727, 5732, 5738, 5744, 5750,
       
  6677     5756, 5762, 5768, 5774, 5780, 5786, 5793, 5800,
       
  6678     5807, 5814, 5821, 5828, 5835, 5842, 5849, 5856,
       
  6679     5863, 5868, 5873, 5878, 5883, 5888, 5893, 5898,
       
  6680     5903, 5908, 5914, 5920, 5926, 5932, 5938, 5944,
       
  6681     5950, 5956, 5962, 5968, 5974, 5980, 5986, 5992,
       
  6682     5998, 6004, 6010, 6016, 6022, 6028, 6034, 6040,
       
  6683     6046, 6052, 6058, 6064, 6070, 6076, 6082, 6088,
       
  6684     6094, 6100, 6106, 6112, 6118, 6124, 6130, 6134,
       
  6685     6138, 6142, 6146, 6150, 6154, 6158, 6162, 6166,
       
  6686     6170, 6174, 6178, 6182, 6186, 6190, 6194, 6198,
       
  6687     6202, 6206, 6210, 6214, 6218, 6222, 6226, 6230,
       
  6688     6234, 6238, 6242, 6246, 6250, 6254, 6258, 6262,
       
  6689     6266, 6270, 6274, 6278, 6282, 6286, 6290, 6294,
       
  6690     6298, 6302, 6306, 6310, 6314, 6318, 6322, 6326,
       
  6691     6330, 6334, 6338, 0, 0, 0, 0, 0,
       
  6692     0, 0, 0, 0, 0, 0, 0, 0,
       
  6693     0, 0, 0, 0, 0, 0, 0, 0,
       
  6694 };
       
  6695 
       
  6696 static const Q_UINT16 di_2E[] = {
       
  6697     0, 0, 0, 0, 0, 0, 0, 0,
       
  6698     0, 0, 0, 0, 0, 0, 0, 0,
       
  6699     0, 0, 0, 0, 0, 0, 0, 0,
       
  6700     0, 0, 0, 0, 0, 0, 0, 0,
       
  6701     0, 0, 0, 0, 0, 0, 0, 0,
       
  6702     0, 0, 0, 0, 0, 0, 0, 0,
       
  6703     0, 0, 0, 0, 0, 0, 0, 0,
       
  6704     0, 0, 0, 0, 0, 0, 0, 0,
       
  6705     0, 0, 0, 0, 0, 0, 0, 0,
       
  6706     0, 0, 0, 0, 0, 0, 0, 0,
       
  6707     0, 0, 0, 0, 0, 0, 0, 0,
       
  6708     0, 0, 0, 0, 0, 0, 0, 0,
       
  6709     0, 0, 0, 0, 0, 0, 0, 0,
       
  6710     0, 0, 0, 0, 0, 0, 0, 0,
       
  6711     0, 0, 0, 0, 0, 0, 0, 0,
       
  6712     0, 0, 0, 0, 0, 0, 0, 0,
       
  6713     0, 0, 0, 0, 0, 0, 0, 0,
       
  6714     0, 0, 0, 0, 0, 0, 0, 0,
       
  6715     0, 0, 0, 0, 0, 0, 0, 0,
       
  6716     0, 0, 0, 0, 0, 0, 0, 6342,
       
  6717     0, 0, 0, 0, 0, 0, 0, 0,
       
  6718     0, 0, 0, 0, 0, 0, 0, 0,
       
  6719     0, 0, 0, 0, 0, 0, 0, 0,
       
  6720     0, 0, 0, 0, 0, 0, 0, 0,
       
  6721     0, 0, 0, 0, 0, 0, 0, 0,
       
  6722     0, 0, 0, 0, 0, 0, 0, 0,
       
  6723     0, 0, 0, 0, 0, 0, 0, 0,
       
  6724     0, 0, 0, 0, 0, 0, 0, 0,
       
  6725     0, 0, 0, 0, 0, 0, 0, 0,
       
  6726     0, 0, 0, 0, 0, 0, 0, 0,
       
  6727     0, 0, 0, 6346, 0, 0, 0, 0,
       
  6728     0, 0, 0, 0, 0, 0, 0, 0,
       
  6729 };
       
  6730 
       
  6731 static const Q_UINT16 di_2F[] = {
       
  6732     6350, 6354, 6358, 6362, 6366, 6370, 6374, 6378,
       
  6733     6382, 6386, 6390, 6394, 6398, 6402, 6406, 6410,
       
  6734     6414, 6418, 6422, 6426, 6430, 6434, 6438, 6442,
       
  6735     6446, 6450, 6454, 6458, 6462, 6466, 6470, 6474,
       
  6736     6478, 6482, 6486, 6490, 6494, 6498, 6502, 6506,
       
  6737     6510, 6514, 6518, 6522, 6526, 6530, 6534, 6538,
       
  6738     6542, 6546, 6550, 6554, 6558, 6562, 6566, 6570,
       
  6739     6574, 6578, 6582, 6586, 6590, 6594, 6598, 6602,
       
  6740     6606, 6610, 6614, 6618, 6622, 6626, 6630, 6634,
       
  6741     6638, 6642, 6646, 6650, 6654, 6658, 6662, 6666,
       
  6742     6670, 6674, 6678, 6682, 6686, 6690, 6694, 6698,
       
  6743     6702, 6706, 6710, 6714, 6718, 6722, 6726, 6730,
       
  6744     6734, 6738, 6742, 6746, 6750, 6754, 6758, 6762,
       
  6745     6766, 6770, 6774, 6778, 6782, 6786, 6790, 6794,
       
  6746     6798, 6802, 6806, 6810, 6814, 6818, 6822, 6826,
       
  6747     6830, 6834, 6838, 6842, 6846, 6850, 6854, 6858,
       
  6748     6862, 6866, 6870, 6874, 6878, 6882, 6886, 6890,
       
  6749     6894, 6898, 6902, 6906, 6910, 6914, 6918, 6922,
       
  6750     6926, 6930, 6934, 6938, 6942, 6946, 6950, 6954,
       
  6751     6958, 6962, 6966, 6970, 6974, 6978, 6982, 6986,
       
  6752     6990, 6994, 6998, 7002, 7006, 7010, 7014, 7018,
       
  6753     7022, 7026, 7030, 7034, 7038, 7042, 7046, 7050,
       
  6754     7054, 7058, 7062, 7066, 7070, 7074, 7078, 7082,
       
  6755     7086, 7090, 7094, 7098, 7102, 7106, 7110, 7114,
       
  6756     7118, 7122, 7126, 7130, 7134, 7138, 7142, 7146,
       
  6757     7150, 7154, 7158, 7162, 7166, 7170, 7174, 7178,
       
  6758     7182, 7186, 7190, 7194, 7198, 7202, 0, 0,
       
  6759     0, 0, 0, 0, 0, 0, 0, 0,
       
  6760     0, 0, 0, 0, 0, 0, 0, 0,
       
  6761     0, 0, 0, 0, 0, 0, 0, 0,
       
  6762     0, 0, 0, 0, 0, 0, 0, 0,
       
  6763     0, 0, 0, 0, 0, 0, 0, 0,
       
  6764 };
       
  6765 
       
  6766 static const Q_UINT16 di_30[] = {
       
  6767     7206, 0, 0, 0, 0, 0, 0, 0,
       
  6768     0, 0, 0, 0, 0, 0, 0, 0,
       
  6769     0, 0, 0, 0, 0, 0, 0, 0,
       
  6770     0, 0, 0, 0, 0, 0, 0, 0,
       
  6771     0, 0, 0, 0, 0, 0, 0, 0,
       
  6772     0, 0, 0, 0, 0, 0, 0, 0,
       
  6773     0, 0, 0, 0, 0, 0, 7210, 0,
       
  6774     7214, 7218, 7222, 0, 0, 0, 0, 0,
       
  6775     0, 0, 0, 0, 0, 0, 0, 0,
       
  6776     0, 0, 0, 0, 7226, 0, 7231, 0,
       
  6777     7236, 0, 7241, 0, 7246, 0, 7251, 0,
       
  6778     7256, 0, 7261, 0, 7266, 0, 7271, 0,
       
  6779     7276, 0, 7281, 0, 0, 7286, 0, 7291,
       
  6780     0, 7296, 0, 0, 0, 0, 0, 0,
       
  6781     7301, 7306, 0, 7311, 7316, 0, 7321, 7326,
       
  6782     0, 7331, 7336, 0, 7341, 7346, 0, 0,
       
  6783     0, 0, 0, 0, 0, 0, 0, 0,
       
  6784     0, 0, 0, 0, 0, 0, 0, 0,
       
  6785     0, 0, 0, 0, 7351, 0, 0, 0,
       
  6786     0, 0, 0, 7356, 7361, 0, 7366, 0,
       
  6787     0, 0, 0, 0, 0, 0, 0, 0,
       
  6788     0, 0, 0, 0, 7371, 0, 7376, 0,
       
  6789     7381, 0, 7386, 0, 7391, 0, 7396, 0,
       
  6790     7401, 0, 7406, 0, 7411, 0, 7416, 0,
       
  6791     7421, 0, 7426, 0, 0, 7431, 0, 7436,
       
  6792     0, 7441, 0, 0, 0, 0, 0, 0,
       
  6793     7446, 7451, 0, 7456, 7461, 0, 7466, 7471,
       
  6794     0, 7476, 7481, 0, 7486, 7491, 0, 0,
       
  6795     0, 0, 0, 0, 0, 0, 0, 0,
       
  6796     0, 0, 0, 0, 0, 0, 0, 0,
       
  6797     0, 0, 0, 0, 7496, 0, 0, 7501,
       
  6798     7506, 7511, 7516, 0, 0, 0, 7521, 0,
       
  6799 };
       
  6800 
       
  6801 static const Q_UINT16 di_31[] = {
       
  6802     0, 0, 0, 0, 0, 0, 0, 0,
       
  6803     0, 0, 0, 0, 0, 0, 0, 0,
       
  6804     0, 0, 0, 0, 0, 0, 0, 0,
       
  6805     0, 0, 0, 0, 0, 0, 0, 0,
       
  6806     0, 0, 0, 0, 0, 0, 0, 0,
       
  6807     0, 0, 0, 0, 0, 0, 0, 0,
       
  6808     0, 7526, 7530, 7534, 7538, 7542, 7546, 7550,
       
  6809     7554, 7558, 7562, 7566, 7570, 7574, 7578, 7582,
       
  6810     7586, 7590, 7594, 7598, 7602, 7606, 7610, 7614,
       
  6811     7618, 7622, 7626, 7630, 7634, 7638, 7642, 7646,
       
  6812     7650, 7654, 7658, 7662, 7666, 7670, 7674, 7678,
       
  6813     7682, 7686, 7690, 7694, 7698, 7702, 7706, 7710,
       
  6814     7714, 7718, 7722, 7726, 7730, 7734, 7738, 7742,
       
  6815     7746, 7750, 7754, 7758, 7762, 7766, 7770, 7774,
       
  6816     7778, 7782, 7786, 7790, 7794, 7798, 7802, 7806,
       
  6817     7810, 7814, 7818, 7822, 7826, 7830, 7834, 7838,
       
  6818     7842, 7846, 7850, 7854, 7858, 7862, 7866, 7870,
       
  6819     7874, 7878, 7882, 7886, 7890, 7894, 7898, 0,
       
  6820     0, 0, 7902, 7906, 7910, 7914, 7918, 7922,
       
  6821     7926, 7930, 7934, 7938, 7942, 7946, 7950, 7954,
       
  6822     0, 0, 0, 0, 0, 0, 0, 0,
       
  6823     0, 0, 0, 0, 0, 0, 0, 0,
       
  6824     0, 0, 0, 0, 0, 0, 0, 0,
       
  6825     0, 0, 0, 0, 0, 0, 0, 0,
       
  6826     0, 0, 0, 0, 0, 0, 0, 0,
       
  6827     0, 0, 0, 0, 0, 0, 0, 0,
       
  6828     0, 0, 0, 0, 0, 0, 0, 0,
       
  6829     0, 0, 0, 0, 0, 0, 0, 0,
       
  6830     0, 0, 0, 0, 0, 0, 0, 0,
       
  6831     0, 0, 0, 0, 0, 0, 0, 0,
       
  6832     0, 0, 0, 0, 0, 0, 0, 0,
       
  6833     0, 0, 0, 0, 0, 0, 0, 0,
       
  6834 };
       
  6835 
       
  6836 static const Q_UINT16 di_32[] = {
       
  6837     7958, 7964, 7970, 7976, 7982, 7988, 7994, 8000,
       
  6838     8006, 8012, 8018, 8024, 8030, 8036, 8042, 8049,
       
  6839     8056, 8063, 8070, 8077, 8084, 8091, 8098, 8105,
       
  6840     8112, 8119, 8126, 8133, 8140, 0, 0, 0,
       
  6841     8147, 8153, 8159, 8165, 8171, 8177, 8183, 8189,
       
  6842     8195, 8201, 8207, 8213, 8219, 8225, 8231, 8237,
       
  6843     8243, 8249, 8255, 8261, 8267, 8273, 8279, 8285,
       
  6844     8291, 8297, 8303, 8309, 8315, 8321, 8327, 8333,
       
  6845     8339, 8345, 8351, 8357, 0, 0, 0, 0,
       
  6846     0, 0, 0, 0, 0, 0, 0, 0,
       
  6847     0, 0, 0, 0, 0, 0, 0, 0,
       
  6848     0, 0, 0, 0, 0, 0, 0, 0,
       
  6849     8363, 8367, 8371, 8375, 8379, 8383, 8387, 8391,
       
  6850     8395, 8399, 8403, 8407, 8411, 8415, 8419, 8424,
       
  6851     8429, 8434, 8439, 8444, 8449, 8454, 8459, 8464,
       
  6852     8469, 8474, 8479, 8484, 0, 0, 0, 0,
       
  6853     8489, 8493, 8497, 8501, 8505, 8509, 8513, 8517,
       
  6854     8521, 8525, 8529, 8533, 8537, 8541, 8545, 8549,
       
  6855     8553, 8557, 8561, 8565, 8569, 8573, 8577, 8581,
       
  6856     8585, 8589, 8593, 8597, 8601, 8605, 8609, 8613,
       
  6857     8617, 8621, 8625, 8629, 8633, 8637, 8641, 8645,
       
  6858     8649, 8653, 8657, 8661, 8665, 8669, 8673, 8677,
       
  6859     8681, 0, 0, 0, 0, 0, 0, 0,
       
  6860     0, 0, 0, 0, 0, 0, 0, 0,
       
  6861     8685, 8690, 8695, 8700, 8705, 8710, 8715, 8720,
       
  6862     8725, 8730, 8736, 8742, 0, 0, 0, 0,
       
  6863     8748, 8752, 8756, 8760, 8764, 8768, 8772, 8776,
       
  6864     8780, 8784, 8788, 8792, 8796, 8800, 8804, 8808,
       
  6865     8812, 8816, 8820, 8824, 8828, 8832, 8836, 8840,
       
  6866     8844, 8848, 8852, 8856, 8860, 8864, 8868, 8872,
       
  6867     8876, 8880, 8884, 8888, 8892, 8896, 8900, 8904,
       
  6868     8908, 8912, 8916, 8920, 8924, 8928, 8932, 0,
       
  6869 };
       
  6870 
       
  6871 static const Q_UINT16 di_33[] = {
       
  6872     8936, 8943, 8950, 8957, 8963, 8970, 8976, 8982,
       
  6873     8990, 8997, 9003, 9009, 9015, 9022, 9029, 9035,
       
  6874     9041, 9046, 9052, 9059, 9066, 9071, 9079, 9088,
       
  6875     9096, 9102, 9110, 9118, 9125, 9131, 9137, 9143,
       
  6876     9150, 9158, 9165, 9171, 9177, 9183, 9188, 9193,
       
  6877     9198, 9203, 9209, 9215, 9223, 9229, 9236, 9244,
       
  6878     9250, 9255, 9260, 9268, 9275, 9283, 9289, 9297,
       
  6879     9302, 9308, 9314, 9320, 9326, 9332, 9339, 9345,
       
  6880     9350, 9356, 9362, 9368, 9375, 9381, 9387, 9393,
       
  6881     9401, 9408, 9413, 9421, 9426, 9433, 9440, 9446,
       
  6882     9452, 9458, 9465, 9470, 9476, 9483, 9488, 9496,
       
  6883     9502, 9507, 9512, 9517, 9522, 9527, 9532, 9537,
       
  6884     9542, 9547, 9552, 9558, 9564, 9570, 9576, 9582,
       
  6885     9588, 9594, 9600, 9606, 9612, 9618, 9624, 9630,
       
  6886     9636, 9642, 9648, 9653, 9658, 9664, 9669, 0,
       
  6887     0, 0, 0, 9674, 9679, 9684, 9689, 9694,
       
  6888     9701, 9706, 9711, 9716, 9721, 9726, 9731, 9736,
       
  6889     9741, 9747, 9754, 9759, 9764, 9769, 9774, 9779,
       
  6890     9784, 9789, 9795, 9801, 9807, 9813, 9818, 9823,
       
  6891     9828, 9833, 9838, 9843, 9848, 9853, 9858, 9863,
       
  6892     9869, 9875, 9880, 9886, 9892, 9898, 9903, 9909,
       
  6893     9915, 9922, 9927, 9933, 9939, 9945, 9951, 9959,
       
  6894     9968, 9973, 9978, 9983, 9988, 9993, 9998, 10003,
       
  6895     10008, 10013, 10018, 10023, 10028, 10033, 10038, 10043,
       
  6896     10048, 10053, 10058, 10065, 10070, 10075, 10080, 10087,
       
  6897     10093, 10098, 10103, 10108, 10113, 10118, 10123, 10128,
       
  6898     10133, 10138, 10143, 10149, 10154, 10159, 10165, 10171,
       
  6899     10176, 10183, 10189, 10194, 10199, 10204, 0, 0,
       
  6900     10209, 10214, 10219, 10224, 10229, 10234, 10239, 10244,
       
  6901     10249, 10254, 10260, 10266, 10272, 10278, 10284, 10290,
       
  6902     10296, 10302, 10308, 10314, 10320, 10326, 10332, 10338,
       
  6903     10344, 10350, 10356, 10362, 10368, 10374, 10380, 0,
       
  6904 };
       
  6905 
       
  6906 static const Q_UINT16 di_F9[] = {
       
  6907     10386, 10390, 10394, 10398, 10402, 10406, 10410, 10414,
       
  6908     10418, 10422, 10426, 10430, 10434, 10438, 10442, 10446,
       
  6909     10450, 10454, 10458, 10462, 10466, 10470, 10474, 10478,
       
  6910     10482, 10486, 10490, 10494, 10498, 10502, 10506, 10510,
       
  6911     10514, 10518, 10522, 10526, 10530, 10534, 10538, 10542,
       
  6912     10546, 10550, 10554, 10558, 10562, 10566, 10570, 10574,
       
  6913     10578, 10582, 10586, 10590, 10594, 10598, 10602, 10606,
       
  6914     10610, 10614, 10618, 10622, 10626, 10630, 10634, 10638,
       
  6915     10642, 10646, 10650, 10654, 10658, 10662, 10666, 10670,
       
  6916     10674, 10678, 10682, 10686, 10690, 10694, 10698, 10702,
       
  6917     10706, 10710, 10714, 10718, 10722, 10726, 10730, 10734,
       
  6918     10738, 10742, 10746, 10750, 10754, 10758, 10762, 10766,
       
  6919     10770, 10774, 10778, 10782, 10786, 10790, 10794, 10798,
       
  6920     10802, 10806, 10810, 10814, 10818, 10822, 10826, 10830,
       
  6921     10834, 10838, 10842, 10846, 10850, 10854, 10858, 10862,
       
  6922     10866, 10870, 10874, 10878, 10882, 10886, 10890, 10894,
       
  6923     10898, 10902, 10906, 10910, 10914, 10918, 10922, 10926,
       
  6924     10930, 10934, 10938, 10942, 10946, 10950, 10954, 10958,
       
  6925     10962, 10966, 10970, 10974, 10978, 10982, 10986, 10990,
       
  6926     10994, 10998, 11002, 11006, 11010, 11014, 11018, 11022,
       
  6927     11026, 11030, 11034, 11038, 11042, 11046, 11050, 11054,
       
  6928     11058, 11062, 11066, 11070, 11074, 11078, 11082, 11086,
       
  6929     11090, 11094, 11098, 11102, 11106, 11110, 11114, 11118,
       
  6930     11122, 11126, 11130, 11134, 11138, 11142, 11146, 11150,
       
  6931     11154, 11158, 11162, 11166, 11170, 11174, 11178, 11182,
       
  6932     11186, 11190, 11194, 11198, 11202, 11206, 11210, 11214,
       
  6933     11218, 11222, 11226, 11230, 11234, 11238, 11242, 11246,
       
  6934     11250, 11254, 11258, 11262, 11266, 11270, 11274, 11278,
       
  6935     11282, 11286, 11290, 11294, 11298, 11302, 11306, 11310,
       
  6936     11314, 11318, 11322, 11326, 11330, 11334, 11338, 11342,
       
  6937     11346, 11350, 11354, 11358, 11362, 11366, 11370, 11374,
       
  6938     11378, 11382, 11386, 11390, 11394, 11398, 11402, 11406,
       
  6939 };
       
  6940 
       
  6941 static const Q_UINT16 di_FA[] = {
       
  6942     11410, 11414, 11418, 11422, 11426, 11430, 11434, 11438,
       
  6943     11442, 11446, 11450, 11454, 11458, 11462, 0, 0,
       
  6944     11466, 0, 11470, 0, 0, 11474, 11478, 11482,
       
  6945     11486, 11490, 11494, 11498, 11502, 11506, 11510, 0,
       
  6946     11514, 0, 11518, 0, 0, 11522, 11526, 0,
       
  6947     0, 0, 11530, 11534, 11538, 11542, 0, 0,
       
  6948     0, 0, 0, 0, 0, 0, 0, 0,
       
  6949     0, 0, 0, 0, 0, 0, 0, 0,
       
  6950     0, 0, 0, 0, 0, 0, 0, 0,
       
  6951     0, 0, 0, 0, 0, 0, 0, 0,
       
  6952     0, 0, 0, 0, 0, 0, 0, 0,
       
  6953     0, 0, 0, 0, 0, 0, 0, 0,
       
  6954     0, 0, 0, 0, 0, 0, 0, 0,
       
  6955     0, 0, 0, 0, 0, 0, 0, 0,
       
  6956     0, 0, 0, 0, 0, 0, 0, 0,
       
  6957     0, 0, 0, 0, 0, 0, 0, 0,
       
  6958     0, 0, 0, 0, 0, 0, 0, 0,
       
  6959     0, 0, 0, 0, 0, 0, 0, 0,
       
  6960     0, 0, 0, 0, 0, 0, 0, 0,
       
  6961     0, 0, 0, 0, 0, 0, 0, 0,
       
  6962     0, 0, 0, 0, 0, 0, 0, 0,
       
  6963     0, 0, 0, 0, 0, 0, 0, 0,
       
  6964     0, 0, 0, 0, 0, 0, 0, 0,
       
  6965     0, 0, 0, 0, 0, 0, 0, 0,
       
  6966     0, 0, 0, 0, 0, 0, 0, 0,
       
  6967     0, 0, 0, 0, 0, 0, 0, 0,
       
  6968     0, 0, 0, 0, 0, 0, 0, 0,
       
  6969     0, 0, 0, 0, 0, 0, 0, 0,
       
  6970     0, 0, 0, 0, 0, 0, 0, 0,
       
  6971     0, 0, 0, 0, 0, 0, 0, 0,
       
  6972     0, 0, 0, 0, 0, 0, 0, 0,
       
  6973     0, 0, 0, 0, 0, 0, 0, 0,
       
  6974 };
       
  6975 
       
  6976 static const Q_UINT16 di_FB[] = {
       
  6977     11546, 11551, 11556, 11561, 11567, 11573, 11578, 0,
       
  6978     0, 0, 0, 0, 0, 0, 0, 0,
       
  6979     0, 0, 0, 11583, 11588, 11593, 11598, 11603,
       
  6980     0, 0, 0, 0, 0, 11608, 0, 11613,
       
  6981     11618, 11622, 11626, 11630, 11634, 11638, 11642, 11646,
       
  6982     11650, 11654, 11658, 11663, 11668, 11673, 11678, 11683,
       
  6983     11688, 11693, 11698, 11703, 11708, 11713, 11718, 0,
       
  6984     11723, 11728, 11733, 11738, 11743, 0, 11748, 0,
       
  6985     11753, 11758, 0, 11763, 11768, 0, 11773, 11778,
       
  6986     11783, 11788, 11793, 11798, 11803, 11808, 11813, 11818,
       
  6987     11823, 11827, 11831, 11835, 11839, 11843, 11847, 11851,
       
  6988     11855, 11859, 11863, 11867, 11871, 11875, 11879, 11883,
       
  6989     11887, 11891, 11895, 11899, 11903, 11907, 11911, 11915,
       
  6990     11919, 11923, 11927, 11931, 11935, 11939, 11943, 11947,
       
  6991     11951, 11955, 11959, 11963, 11967, 11971, 11975, 11979,
       
  6992     11983, 11987, 11991, 11995, 11999, 12003, 12007, 12011,
       
  6993     12015, 12019, 12023, 12027, 12031, 12035, 12039, 12043,
       
  6994     12047, 12051, 12055, 12059, 12063, 12067, 12071, 12075,
       
  6995     12079, 12083, 12087, 12091, 12095, 12099, 12103, 12107,
       
  6996     12111, 12115, 12119, 12123, 12127, 12131, 12135, 12139,
       
  6997     12143, 12147, 12151, 12155, 12159, 12163, 12167, 12171,
       
  6998     12175, 12179, 12183, 12187, 12191, 12195, 12199, 12203,
       
  6999     12207, 12211, 0, 0, 0, 0, 0, 0,
       
  7000     0, 0, 0, 0, 0, 0, 0, 0,
       
  7001     0, 0, 0, 0, 0, 0, 0, 0,
       
  7002     0, 0, 0, 0, 0, 0, 0, 0,
       
  7003     0, 0, 0, 12215, 12219, 12223, 12227, 12231,
       
  7004     12235, 12239, 12243, 12247, 12251, 12255, 12259, 12263,
       
  7005     12267, 12271, 12275, 12279, 12283, 12287, 12291, 12295,
       
  7006     12299, 12303, 12307, 12312, 12317, 12322, 12327, 12332,
       
  7007     12337, 12342, 12347, 12352, 12357, 12362, 12367, 12372,
       
  7008     12377, 12382, 12387, 12392, 12397, 12401, 12405, 12409,
       
  7009 };
       
  7010 
       
  7011 static const Q_UINT16 di_FC[] = {
       
  7012     12413, 12418, 12423, 12428, 12433, 12438, 12443, 12448,
       
  7013     12453, 12458, 12463, 12468, 12473, 12478, 12483, 12488,
       
  7014     12493, 12498, 12503, 12508, 12513, 12518, 12523, 12528,
       
  7015     12533, 12538, 12543, 12548, 12553, 12558, 12563, 12568,
       
  7016     12573, 12578, 12583, 12588, 12593, 12598, 12603, 12608,
       
  7017     12613, 12618, 12623, 12628, 12633, 12638, 12643, 12648,
       
  7018     12653, 12658, 12663, 12668, 12673, 12678, 12683, 12688,
       
  7019     12693, 12698, 12703, 12708, 12713, 12718, 12723, 12728,
       
  7020     12733, 12738, 12743, 12748, 12753, 12758, 12763, 12768,
       
  7021     12773, 12778, 12783, 12788, 12793, 12798, 12803, 12808,
       
  7022     12813, 12818, 12823, 12828, 12833, 12838, 12843, 12848,
       
  7023     12853, 12858, 12863, 12868, 12873, 12878, 12883, 12889,
       
  7024     12895, 12901, 12907, 12913, 12919, 12924, 12929, 12934,
       
  7025     12939, 12944, 12949, 12954, 12959, 12964, 12969, 12974,
       
  7026     12979, 12984, 12989, 12994, 12999, 13004, 13009, 13014,
       
  7027     13019, 13024, 13029, 13034, 13039, 13044, 13049, 13054,
       
  7028     13059, 13064, 13069, 13074, 13079, 13084, 13089, 13094,
       
  7029     13099, 13104, 13109, 13114, 13119, 13124, 13129, 13134,
       
  7030     13139, 13144, 13149, 13154, 13159, 13164, 13169, 13174,
       
  7031     13179, 13184, 13189, 13194, 13199, 13204, 13209, 13214,
       
  7032     13219, 13224, 13229, 13234, 13239, 13244, 13249, 13254,
       
  7033     13259, 13264, 13269, 13274, 13279, 13284, 13289, 13294,
       
  7034     13299, 13304, 13309, 13314, 13319, 13324, 13329, 13334,
       
  7035     13339, 13344, 13349, 13354, 13359, 13364, 13369, 13374,
       
  7036     13379, 13384, 13389, 13394, 13399, 13404, 13409, 13414,
       
  7037     13419, 13424, 13429, 13434, 13439, 13444, 13449, 13454,
       
  7038     13459, 13464, 13469, 13474, 13479, 13484, 13489, 13494,
       
  7039     13499, 13504, 13509, 13514, 13519, 13524, 13529, 13534,
       
  7040     13539, 13544, 13549, 13554, 13559, 13564, 13569, 13574,
       
  7041     13579, 13584, 13589, 13594, 13599, 13604, 13609, 13614,
       
  7042     13619, 13624, 13629, 13635, 13641, 13647, 13652, 13657,
       
  7043     13662, 13667, 13672, 13677, 13682, 13687, 13692, 13697,
       
  7044 };
       
  7045 
       
  7046 static const Q_UINT16 di_FD[] = {
       
  7047     13702, 13707, 13712, 13717, 13722, 13727, 13732, 13737,
       
  7048     13742, 13747, 13752, 13757, 13762, 13767, 13772, 13777,
       
  7049     13782, 13787, 13792, 13797, 13802, 13807, 13812, 13817,
       
  7050     13822, 13827, 13832, 13837, 13842, 13847, 13852, 13857,
       
  7051     13862, 13867, 13872, 13877, 13882, 13887, 13892, 13897,
       
  7052     13902, 13907, 13912, 13917, 13922, 13927, 13932, 13937,
       
  7053     13942, 13947, 13952, 13957, 13962, 13967, 13972, 13977,
       
  7054     13982, 13987, 13992, 13997, 14002, 14007, 0, 0,
       
  7055     0, 0, 0, 0, 0, 0, 0, 0,
       
  7056     0, 0, 0, 0, 0, 0, 0, 0,
       
  7057     14012, 14018, 14024, 14030, 14036, 14042, 14048, 14054,
       
  7058     14060, 14066, 14072, 14078, 14084, 14090, 14096, 14102,
       
  7059     14108, 14114, 14120, 14126, 14132, 14138, 14144, 14150,
       
  7060     14156, 14162, 14168, 14174, 14180, 14186, 14192, 14198,
       
  7061     14204, 14210, 14216, 14222, 14228, 14234, 14240, 14246,
       
  7062     14252, 14258, 14264, 14270, 14276, 14282, 14288, 14294,
       
  7063     14300, 14306, 14312, 14318, 14324, 14330, 14336, 14342,
       
  7064     14348, 14354, 14360, 14366, 14372, 14378, 14384, 14390,
       
  7065     0, 0, 14396, 14402, 14408, 14414, 14420, 14426,
       
  7066     14432, 14438, 14444, 14450, 14456, 14462, 14468, 14474,
       
  7067     14480, 14486, 14492, 14498, 14504, 14510, 14516, 14522,
       
  7068     14528, 14534, 14540, 14546, 14552, 14558, 14564, 14570,
       
  7069     14576, 14582, 14588, 14594, 14600, 14606, 14612, 14618,
       
  7070     14624, 14630, 14636, 14642, 14648, 14654, 14660, 14666,
       
  7071     14672, 14678, 14684, 14690, 14696, 14702, 14708, 14714,
       
  7072     0, 0, 0, 0, 0, 0, 0, 0,
       
  7073     0, 0, 0, 0, 0, 0, 0, 0,
       
  7074     0, 0, 0, 0, 0, 0, 0, 0,
       
  7075     0, 0, 0, 0, 0, 0, 0, 0,
       
  7076     0, 0, 0, 0, 0, 0, 0, 0,
       
  7077     14720, 14726, 14732, 14739, 14746, 14753, 14760, 14767,
       
  7078     14774, 14781, 14787, 14808, 0, 0, 0, 0,
       
  7079 };
       
  7080 
       
  7081 static const Q_UINT16 di_FE[] = {
       
  7082     0, 0, 0, 0, 0, 0, 0, 0,
       
  7083     0, 0, 0, 0, 0, 0, 0, 0,
       
  7084     0, 0, 0, 0, 0, 0, 0, 0,
       
  7085     0, 0, 0, 0, 0, 0, 0, 0,
       
  7086     0, 0, 0, 0, 0, 0, 0, 0,
       
  7087     0, 0, 0, 0, 0, 0, 0, 0,
       
  7088     14819, 14823, 14827, 14831, 14835, 14839, 14843, 14847,
       
  7089     14851, 14855, 14859, 14863, 14867, 14871, 14875, 14879,
       
  7090     14883, 14887, 14891, 14895, 14899, 0, 0, 0,
       
  7091     0, 14903, 14907, 14911, 14915, 14919, 14923, 14927,
       
  7092     14931, 14935, 14939, 0, 14943, 14947, 14951, 14955,
       
  7093     14959, 14963, 14967, 14971, 14975, 14979, 14983, 14987,
       
  7094     14991, 14995, 14999, 15003, 15007, 15011, 15015, 0,
       
  7095     15019, 15023, 15027, 15031, 0, 0, 0, 0,
       
  7096     15035, 15040, 15045, 0, 15050, 0, 15055, 15060,
       
  7097     15065, 15070, 15075, 15080, 15085, 15090, 15095, 15100,
       
  7098     15105, 15109, 15113, 15117, 15121, 15125, 15129, 15133,
       
  7099     15137, 15141, 15145, 15149, 15153, 15157, 15161, 15165,
       
  7100     15169, 15173, 15177, 15181, 15185, 15189, 15193, 15197,
       
  7101     15201, 15205, 15209, 15213, 15217, 15221, 15225, 15229,
       
  7102     15233, 15237, 15241, 15245, 15249, 15253, 15257, 15261,
       
  7103     15265, 15269, 15273, 15277, 15281, 15285, 15289, 15293,
       
  7104     15297, 15301, 15305, 15309, 15313, 15317, 15321, 15325,
       
  7105     15329, 15333, 15337, 15341, 15345, 15349, 15353, 15357,
       
  7106     15361, 15365, 15369, 15373, 15377, 15381, 15385, 15389,
       
  7107     15393, 15397, 15401, 15405, 15409, 15413, 15417, 15421,
       
  7108     15425, 15429, 15433, 15437, 15441, 15445, 15449, 15453,
       
  7109     15457, 15461, 15465, 15469, 15473, 15477, 15481, 15485,
       
  7110     15489, 15493, 15497, 15501, 15505, 15509, 15513, 15517,
       
  7111     15521, 15525, 15529, 15533, 15537, 15541, 15545, 15549,
       
  7112     15553, 15557, 15561, 15565, 15569, 15573, 15578, 15583,
       
  7113     15588, 15593, 15598, 15603, 15608, 0, 0, 0,
       
  7114 };
       
  7115 
       
  7116 static const Q_UINT16 di_FF[] = {
       
  7117     0, 15613, 15617, 15621, 15625, 15629, 15633, 15637,
       
  7118     15641, 15645, 15649, 15653, 15657, 15661, 15665, 15669,
       
  7119     15673, 15677, 15681, 15685, 15689, 15693, 15697, 15701,
       
  7120     15705, 15709, 15713, 15717, 15721, 15725, 15729, 15733,
       
  7121     15737, 15741, 15745, 15749, 15753, 15757, 15761, 15765,
       
  7122     15769, 15773, 15777, 15781, 15785, 15789, 15793, 15797,
       
  7123     15801, 15805, 15809, 15813, 15817, 15821, 15825, 15829,
       
  7124     15833, 15837, 15841, 15845, 15849, 15853, 15857, 15861,
       
  7125     15865, 15869, 15873, 15877, 15881, 15885, 15889, 15893,
       
  7126     15897, 15901, 15905, 15909, 15913, 15917, 15921, 15925,
       
  7127     15929, 15933, 15937, 15941, 15945, 15949, 15953, 15957,
       
  7128     15961, 15965, 15969, 15973, 15977, 15981, 15985, 0,
       
  7129     0, 15989, 15993, 15997, 16001, 16005, 16009, 16013,
       
  7130     16017, 16021, 16025, 16029, 16033, 16037, 16041, 16045,
       
  7131     16049, 16053, 16057, 16061, 16065, 16069, 16073, 16077,
       
  7132     16081, 16085, 16089, 16093, 16097, 16101, 16105, 16109,
       
  7133     16113, 16117, 16121, 16125, 16129, 16133, 16137, 16141,
       
  7134     16145, 16149, 16153, 16157, 16161, 16165, 16169, 16173,
       
  7135     16177, 16181, 16185, 16189, 16193, 16197, 16201, 16205,
       
  7136     16209, 16213, 16217, 16221, 16225, 16229, 16233, 16237,
       
  7137     16241, 16245, 16249, 16253, 16257, 16261, 16265, 16269,
       
  7138     16273, 16277, 16281, 16285, 16289, 16293, 16297, 16301,
       
  7139     16305, 16309, 16313, 16317, 16321, 16325, 16329, 16333,
       
  7140     16337, 16341, 16345, 16349, 16353, 16357, 16361, 0,
       
  7141     0, 0, 16365, 16369, 16373, 16377, 16381, 16385,
       
  7142     0, 0, 16389, 16393, 16397, 16401, 16405, 16409,
       
  7143     0, 0, 16413, 16417, 16421, 16425, 16429, 16433,
       
  7144     0, 0, 16437, 16441, 16445, 0, 0, 0,
       
  7145     16449, 16453, 16457, 16461, 16465, 16469, 16473, 0,
       
  7146     16477, 16481, 16485, 16489, 16493, 16497, 16501, 0,
       
  7147     0, 0, 0, 0, 0, 0, 0, 0,
       
  7148     0, 0, 0, 0, 0, 0, 0, 0,
       
  7149 };
       
  7150 
       
  7151 static const Q_UINT16 * const decomposition_info[256] = {
       
  7152     di_00, di_01, di_02, di_03, di_04, di_05, di_06, di_07,
       
  7153     di_07, di_09, di_0A, di_0B, di_0C, di_0D, di_0E, di_0F,
       
  7154     di_10, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
       
  7155     di_07, di_07, di_07, di_07, di_07, di_07, di_1E, di_1F,
       
  7156     di_20, di_21, di_22, di_23, di_24, di_07, di_07, di_07,
       
  7157     di_07, di_07, di_07, di_07, di_07, di_07, di_2E, di_2F,
       
  7158     di_30, di_31, di_32, di_33, di_07, di_07, di_07, di_07,
       
  7159     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
       
  7160     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
       
  7161     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
       
  7162     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
       
  7163     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
       
  7164     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
       
  7165     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
       
  7166     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
       
  7167     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
       
  7168     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
       
  7169     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
       
  7170     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
       
  7171     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
       
  7172     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
       
  7173     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
       
  7174     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
       
  7175     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
       
  7176     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
       
  7177     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
       
  7178     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
       
  7179     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
       
  7180     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
       
  7181     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
       
  7182     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
       
  7183     di_07, di_F9, di_FA, di_FB, di_FC, di_FD, di_FE, di_FF,
       
  7184 };
       
  7185 // 68080 bytes
       
  7186 
       
  7187 static const Q_UINT16 ligature_map [] = {
       
  7188     0,
       
  7189     12883, 12889, 12895, 12901, 12907, 12913, 15035, 15045, 15050, 15055, 15065, 15075, 15085, 15095, 0,
       
  7190     5503, 0,
       
  7191     5488, 0,
       
  7192     5508, 0,
       
  7193     67, 72, 77, 82, 87, 92, 332, 342, 352, 966, 1196, 1206, 1346, 2357, 3137, 3147, 0,
       
  7194     2367, 2377, 2387, 0,
       
  7195     97, 362, 372, 382, 392, 0,
       
  7196     402, 2407, 2417, 2427, 2437, 2447, 0,
       
  7197     102, 107, 112, 117, 412, 422, 432, 442, 452, 1216, 1226, 1356, 2477, 2487, 3257, 3267, 3277, 0,
       
  7198     2507, 0,
       
  7199     462, 472, 482, 492, 1076, 1146, 2517, 0,
       
  7200     502, 1336, 2527, 2537, 2547, 2557, 2567, 0,
       
  7201     122, 127, 132, 137, 512, 522, 532, 542, 552, 976, 1236, 1246, 2577, 3337, 3347, 0,
       
  7202     567, 0,
       
  7203     577, 1086, 2597, 2607, 2617, 0,
       
  7204     587, 597, 607, 2627, 2647, 2657, 0,
       
  7205     2667, 2677, 2687, 0,
       
  7206     142, 627, 637, 647, 1156, 2697, 2707, 2717, 2727, 0,
       
  7207     147, 152, 157, 162, 167, 662, 672, 682, 901, 986, 1096, 1256, 1266, 1386, 3357, 3367, 0,
       
  7208     2777, 2787, 0,
       
  7209     692, 702, 712, 1276, 1286, 2797, 2807, 2827, 0,
       
  7210     722, 732, 742, 752, 1316, 2837, 2847, 0,
       
  7211     762, 772, 1326, 2887, 2897, 2907, 2917, 0,
       
  7212     172, 177, 182, 187, 782, 792, 802, 812, 822, 832, 911, 996, 1296, 1306, 2927, 2937, 2947, 3477, 3487, 0,
       
  7213     2977, 2987, 0,
       
  7214     842, 2997, 3007, 3017, 3027, 3037, 0,
       
  7215     3047, 3057, 0,
       
  7216     192, 852, 862, 1406, 3067, 3547, 3557, 3567, 3577, 0,
       
  7217     867, 877, 887, 3077, 3087, 3097, 0,
       
  7218     197, 202, 207, 212, 217, 222, 337, 347, 357, 971, 1201, 1211, 1351, 2362, 3142, 3152, 0,
       
  7219     2372, 2382, 2392, 0,
       
  7220     227, 367, 377, 387, 397, 0,
       
  7221     407, 2412, 2422, 2432, 2442, 2452, 0,
       
  7222     232, 237, 242, 247, 417, 427, 437, 447, 457, 1221, 1231, 1361, 2482, 2492, 3262, 3272, 3282, 0,
       
  7223     2512, 0,
       
  7224     467, 477, 487, 497, 1081, 1151, 2522, 0,
       
  7225     507, 1341, 2532, 2542, 2552, 2562, 2572, 3107, 0,
       
  7226     252, 257, 262, 267, 517, 527, 537, 547, 981, 1241, 1251, 2582, 3342, 3352, 0,
       
  7227     572, 1126, 0,
       
  7228     582, 1091, 2602, 2612, 2622, 0,
       
  7229     592, 602, 612, 2632, 2652, 2662, 0,
       
  7230     2672, 2682, 2692, 0,
       
  7231     272, 632, 642, 652, 1161, 2702, 2712, 2722, 2732, 0,
       
  7232     277, 282, 287, 292, 297, 667, 677, 687, 906, 991, 1101, 1261, 1271, 1391, 3362, 3372, 0,
       
  7233     2782, 2792, 0,
       
  7234     697, 707, 717, 1281, 1291, 2802, 2812, 2832, 0,
       
  7235     727, 737, 747, 757, 1321, 2842, 2852, 0,
       
  7236     767, 777, 1331, 2892, 2902, 2912, 2922, 3112, 0,
       
  7237     302, 307, 312, 317, 787, 797, 807, 817, 827, 837, 916, 1001, 1301, 1311, 2932, 2942, 2952, 3482, 3492, 0,
       
  7238     2982, 2992, 0,
       
  7239     847, 3002, 3012, 3022, 3032, 3042, 3117, 0,
       
  7240     3052, 3062, 0,
       
  7241     322, 327, 857, 1411, 3072, 3122, 3552, 3562, 3572, 3582, 0,
       
  7242     872, 882, 892, 3082, 3092, 3102, 0,
       
  7243     1537, 4468, 4662, 0,
       
  7244     3157, 3167, 3177, 3187, 0,
       
  7245     1046, 0,
       
  7246     1166, 0,
       
  7247     1066, 1176, 0,
       
  7248     2397, 0,
       
  7249     3287, 3297, 3307, 3317, 0,
       
  7250     2587, 0,
       
  7251     3377, 3387, 3397, 3407, 0,
       
  7252     1376, 2737, 2747, 0,
       
  7253     1366, 0,
       
  7254     1186, 0,
       
  7255     1006, 1016, 1026, 1036, 0,
       
  7256     3162, 3172, 3182, 3192, 0,
       
  7257     1051, 0,
       
  7258     1171, 0,
       
  7259     1071, 1181, 0,
       
  7260     2402, 0,
       
  7261     3292, 3302, 3312, 3322, 0,
       
  7262     2592, 0,
       
  7263     3382, 3392, 3402, 3412, 0,
       
  7264     1381, 2742, 2752, 0,
       
  7265     1371, 0,
       
  7266     1191, 0,
       
  7267     1011, 1021, 1031, 1041, 0,
       
  7268     3207, 3217, 3227, 3237, 0,
       
  7269     3212, 3222, 3232, 3242, 0,
       
  7270     2457, 2467, 0,
       
  7271     2462, 2472, 0,
       
  7272     2757, 2767, 0,
       
  7273     2762, 2772, 0,
       
  7274     2857, 0,
       
  7275     2862, 0,
       
  7276     2867, 0,
       
  7277     2872, 0,
       
  7278     2957, 0,
       
  7279     2962, 0,
       
  7280     2967, 0,
       
  7281     2972, 0,
       
  7282     3132, 0,
       
  7283     3427, 3437, 3447, 3457, 3467, 0,
       
  7284     3432, 3442, 3452, 3462, 3472, 0,
       
  7285     3497, 3507, 3517, 3527, 3537, 0,
       
  7286     3502, 3512, 3522, 3532, 3542, 0,
       
  7287     1116, 0,
       
  7288     1106, 0,
       
  7289     1111, 0,
       
  7290     1056, 0,
       
  7291     1061, 0,
       
  7292     2497, 0,
       
  7293     2502, 0,
       
  7294     1396, 0,
       
  7295     1401, 0,
       
  7296     1121, 0,
       
  7297     1514, 0,
       
  7298     1542, 3627, 3632, 4425, 4430, 4435, 4444, 0,
       
  7299     1551, 3697, 3702, 4498, 0,
       
  7300     1556, 3767, 3772, 4507, 4516, 0,
       
  7301     1561, 1586, 3847, 3852, 4565, 4570, 4575, 0,
       
  7302     1566, 3917, 3922, 4700, 0,
       
  7303     4657, 0,
       
  7304     1571, 1591, 3987, 4638, 4643, 4648, 0,
       
  7305     1576, 4047, 4052, 4709, 4718, 0,
       
  7306     4410, 0,
       
  7307     4483, 0,
       
  7308     1596, 3587, 3592, 4087, 4390, 4395, 4405, 4415, 0,
       
  7309     1601, 3667, 3672, 4096, 0,
       
  7310     1606, 3727, 3732, 4105, 4478, 4488, 0,
       
  7311     1611, 1621, 3807, 3812, 4114, 4536, 4541, 4555, 0,
       
  7312     1631, 3887, 3892, 4123, 0,
       
  7313     4618, 4623, 0,
       
  7314     1626, 1636, 3947, 3952, 4132, 4599, 4604, 4628, 0,
       
  7315     1641, 4007, 4012, 4141, 4680, 4690, 0,
       
  7316     1581, 4546, 4560, 0,
       
  7317     1616, 4609, 4633, 0,
       
  7318     4685, 0,
       
  7319     1658, 1663, 0,
       
  7320     1703, 0,
       
  7321     1788, 1798, 0,
       
  7322     1698, 0,
       
  7323     1688, 1693, 1808, 0,
       
  7324     1778, 1828, 0,
       
  7325     1838, 0,
       
  7326     1713, 1723, 1848, 1858, 0,
       
  7327     1708, 0,
       
  7328     1868, 0,
       
  7329     1718, 1898, 1908, 1918, 0,
       
  7330     1928, 0,
       
  7331     1938, 0,
       
  7332     1888, 0,
       
  7333     1793, 1803, 0,
       
  7334     1743, 0,
       
  7335     1733, 1738, 1813, 0,
       
  7336     1783, 1833, 0,
       
  7337     1843, 0,
       
  7338     1728, 1758, 1853, 1863, 0,
       
  7339     1753, 0,
       
  7340     1873, 0,
       
  7341     1763, 1903, 1913, 1923, 0,
       
  7342     1933, 0,
       
  7343     1943, 0,
       
  7344     1893, 0,
       
  7345     1748, 0,
       
  7346     1768, 0,
       
  7347     1773, 0,
       
  7348     1818, 0,
       
  7349     1823, 0,
       
  7350     1878, 0,
       
  7351     1883, 0,
       
  7352     11678, 11683, 11688, 0,
       
  7353     11693, 11803, 0,
       
  7354     11698, 0,
       
  7355     11703, 0,
       
  7356     11708, 0,
       
  7357     11713, 11798, 0,
       
  7358     11718, 0,
       
  7359     11723, 0,
       
  7360     11608, 11728, 0,
       
  7361     11733, 0,
       
  7362     11738, 11808, 0,
       
  7363     11743, 0,
       
  7364     11748, 0,
       
  7365     11753, 0,
       
  7366     11758, 0,
       
  7367     11763, 0,
       
  7368     11768, 11813, 0,
       
  7369     11773, 0,
       
  7370     11778, 0,
       
  7371     11783, 0,
       
  7372     11658, 11663, 11788, 0,
       
  7373     11793, 0,
       
  7374     11613, 0,
       
  7375     15105, 0,
       
  7376     15109, 15113, 0,
       
  7377     15117, 15121, 0,
       
  7378     15125, 15129, 0,
       
  7379     15133, 15137, 0,
       
  7380     12307, 12312, 12317, 12322, 12327, 12332, 12337, 12342, 12347, 12352, 12357, 12362, 12367, 12372, 12377, 12382, 12387, 12392, 12413, 12418, 12423, 12428, 12433, 12919, 12924, 12929, 12934, 12939, 12944, 13174, 13179, 13184, 13189, 13194, 13534, 13539, 15141, 15145, 15149, 15153, 0,
       
  7381     14732, 14739, 1958, 1968, 14007, 14002, 1953, 15157, 15161, 0,
       
  7382     14468, 14684, 12448, 12453, 12458, 12463, 12949, 12954, 12959, 12964, 12969, 12974, 13199, 13204, 13209, 13214, 13219, 13544, 13549, 12438, 12443, 15165, 15169, 15173, 15177, 0,
       
  7383     15181, 15185, 0,
       
  7384     14012, 14018, 14024, 14030, 14036, 14042, 14048, 14054, 14474, 14480, 14486, 14492, 14498, 14504, 13229, 13234, 13239, 13244, 13559, 13554, 12468, 12473, 12478, 12483, 12488, 12493, 12979, 12984, 12989, 12994, 12999, 13004, 13224, 15189, 15193, 15197, 15201, 0,
       
  7385     12498, 12503, 12508, 12513, 13009, 13014, 13019, 13024, 13029, 13034, 13249, 13564, 13569, 15205, 15209, 15213, 15217, 0,
       
  7386     14808, 14660, 14060, 14066, 14510, 14516, 14522, 12518, 12523, 13254, 13259, 13707, 13712, 13847, 13852, 15221, 15225, 15229, 15233, 0,
       
  7387     14072, 14078, 14666, 13264, 13269, 13697, 13702, 13842, 13837, 12528, 12533, 15237, 15241, 15245, 15249, 0,
       
  7388     12538, 12543, 12548, 13274, 13279, 13717, 13722, 13857, 13862, 15253, 15257, 15261, 15265, 0,
       
  7389     15269, 15273, 0,
       
  7390     12868, 15277, 15281, 0,
       
  7391     14760, 12873, 15285, 15289, 0,
       
  7392     15293, 15297, 0,
       
  7393     14084, 14090, 14096, 14102, 14108, 14114, 14120, 14126, 14528, 14708, 13677, 13682, 13772, 13817, 13822, 13912, 13947, 13962, 13967, 13972, 12553, 12558, 12563, 12568, 13284, 13289, 13294, 13299, 13574, 13579, 15301, 15305, 15309, 15313, 0,
       
  7394     14150, 14156, 14162, 14168, 14174, 14180, 14186, 14540, 13767, 13827, 13832, 13887, 13892, 13897, 13902, 13907, 13927, 13932, 13937, 13942, 13952, 13977, 13982, 13987, 13584, 13589, 13687, 13692, 13747, 13752, 13757, 13762, 15317, 15321, 15325, 15329, 0,
       
  7395     14787, 14753, 14781, 14138, 14132, 14144, 14534, 14702, 14720, 12573, 12578, 13304, 13309, 13314, 13727, 13732, 13777, 13872, 13917, 13867, 15333, 15337, 15341, 15345, 0,
       
  7396     14192, 14198, 14204, 14546, 13319, 13324, 13329, 13334, 13737, 13742, 13782, 13877, 13882, 13922, 12583, 12588, 12593, 12598, 15349, 15353, 15357, 15361, 0,
       
  7397     14210, 14216, 14222, 14228, 13647, 13652, 13787, 13792, 13992, 13957, 12603, 12608, 13339, 15365, 15369, 15373, 15377, 0,
       
  7398     12613, 13344, 13997, 15381, 15385, 15389, 15393, 0,
       
  7399     14767, 14696, 14234, 14240, 14246, 14252, 14612, 12618, 12623, 13349, 13354, 13657, 13662, 13797, 13802, 15397, 15401, 15405, 15409, 0,
       
  7400     14258, 14264, 14270, 13359, 13364, 13667, 13672, 13812, 13807, 12628, 12633, 15413, 15417, 15421, 15425, 0,
       
  7401     13629, 13635, 13641, 15040, 15060, 15070, 15080, 15090, 15100, 0,
       
  7402     14276, 14282, 14678, 12653, 12658, 12663, 13039, 13044, 13369, 13374, 13379, 13384, 12638, 12643, 12648, 15429, 15433, 15437, 15441, 0,
       
  7403     14600, 14726, 14294, 14288, 14588, 12668, 12673, 12678, 12683, 13049, 13054, 13389, 13394, 15445, 15449, 15453, 15457, 0,
       
  7404     14618, 14642, 14690, 12703, 12708, 12713, 12718, 12723, 13059, 13064, 13069, 13074, 13079, 13399, 13404, 13409, 13414, 13419, 13594, 13599, 12688, 12693, 12698, 15461, 15465, 15469, 15473, 0,
       
  7405     14648, 14300, 14306, 14312, 14318, 14324, 14330, 14336, 14342, 14348, 14552, 14558, 14606, 14636, 12728, 12733, 12738, 12743, 12748, 12753, 13084, 13089, 13094, 13424, 13429, 13434, 13439, 13444, 13604, 15573, 15578, 15583, 15588, 15593, 15598, 15603, 15608, 15477, 15481, 15485, 15489, 0,
       
  7406     14746, 14354, 14360, 14366, 14372, 14378, 14384, 14390, 14396, 14582, 14630, 14672, 12758, 12763, 12768, 12773, 12778, 12783, 13099, 13104, 13449, 13454, 13459, 13464, 15493, 15497, 15501, 15505, 0,
       
  7407     14414, 14420, 14426, 14432, 14438, 14444, 14450, 14594, 14624, 14654, 14714, 13134, 13469, 13474, 13479, 13484, 13489, 13609, 13614, 12788, 12793, 12798, 12803, 12808, 12813, 13109, 13114, 13119, 13124, 13129, 15509, 15513, 15517, 15521, 0,
       
  7408     14402, 14408, 12823, 12828, 12833, 13494, 13504, 13499, 12818, 15525, 15529, 15533, 15537, 0,
       
  7409     14774, 1963, 15541, 15545, 0,
       
  7410     12878, 13139, 12299, 12303, 15549, 15553, 0,
       
  7411     14456, 14462, 14564, 14570, 14576, 12858, 12863, 13144, 13149, 13154, 13159, 13164, 13169, 13509, 13514, 13519, 13524, 13529, 13619, 13624, 1973, 12838, 12843, 12848, 12853, 15557, 15561, 15565, 15569, 0,
       
  7412     11823, 11827, 0,
       
  7413     12255, 0,
       
  7414     11911, 11915, 11919, 11923, 0,
       
  7415     11879, 11883, 11887, 11891, 0,
       
  7416     11831, 11835, 11839, 11843, 0,
       
  7417     11847, 11851, 11855, 11859, 0,
       
  7418     11895, 11899, 11903, 11907, 0,
       
  7419     11863, 11867, 11871, 11875, 0,
       
  7420     11975, 11979, 11983, 11987, 0,
       
  7421     11959, 11963, 11967, 11971, 0,
       
  7422     11991, 11995, 11999, 12003, 0,
       
  7423     12007, 12011, 12015, 12019, 0,
       
  7424     12047, 12051, 0,
       
  7425     12031, 12035, 0,
       
  7426     12023, 12027, 0,
       
  7427     12039, 12043, 0,
       
  7428     12063, 12067, 0,
       
  7429     12055, 12059, 0,
       
  7430     11927, 11931, 11935, 11939, 0,
       
  7431     11943, 11947, 11951, 11955, 0,
       
  7432     12071, 12075, 12079, 12083, 0,
       
  7433     12215, 12219, 12223, 12227, 0,
       
  7434     12087, 12091, 12095, 12099, 0,
       
  7435     12119, 12123, 12127, 12131, 0,
       
  7436     12103, 12107, 12111, 12115, 0,
       
  7437     12135, 12139, 0,
       
  7438     12143, 12147, 12151, 12155, 0,
       
  7439     12183, 12187, 12191, 12195, 0,
       
  7440     12159, 12163, 0,
       
  7441     2003, 12167, 12171, 12175, 12179, 0,
       
  7442     12267, 12271, 0,
       
  7443     12239, 12243, 0,
       
  7444     12231, 12235, 0,
       
  7445     12247, 12251, 0,
       
  7446     12275, 12279, 0,
       
  7447     12259, 12263, 0,
       
  7448     12397, 12401, 12405, 12409, 0,
       
  7449     12283, 12287, 12291, 12295, 0,
       
  7450     2008, 12199, 12203, 0,
       
  7451     12207, 12211, 0,
       
  7452     1998, 0,
       
  7453     2028, 0,
       
  7454     2033, 0,
       
  7455     2038, 0,
       
  7456     2043, 0,
       
  7457     2048, 0,
       
  7458     2053, 0,
       
  7459     2013, 0,
       
  7460     2058, 0,
       
  7461     2063, 0,
       
  7462     2018, 0,
       
  7463     2023, 0,
       
  7464     2078, 0,
       
  7465     2083, 0,
       
  7466     2088, 0,
       
  7467     2068, 2073, 0,
       
  7468     2103, 0,
       
  7469     2108, 0,
       
  7470     2113, 0,
       
  7471     2118, 0,
       
  7472     2093, 0,
       
  7473     2098, 0,
       
  7474     2138, 0,
       
  7475     2143, 0,
       
  7476     2123, 2128, 2133, 0,
       
  7477     2148, 0,
       
  7478     2153, 2163, 0,
       
  7479     2158, 0,
       
  7480     2168, 0,
       
  7481     2173, 0,
       
  7482     2178, 2183, 2188, 0,
       
  7483     2193, 0,
       
  7484     2198, 2208, 0,
       
  7485     2203, 0,
       
  7486     2213, 2218, 2228, 0,
       
  7487     2223, 0,
       
  7488     2282, 0,
       
  7489     2257, 0,
       
  7490     2262, 0,
       
  7491     2267, 0,
       
  7492     2272, 0,
       
  7493     2277, 0,
       
  7494     2287, 2292, 2317, 0,
       
  7495     2347, 0,
       
  7496     2322, 0,
       
  7497     2327, 0,
       
  7498     2332, 0,
       
  7499     2337, 0,
       
  7500     2342, 0,
       
  7501     2297, 0,
       
  7502     2307, 0,
       
  7503     2352, 0,
       
  7504     2637, 0,
       
  7505     2642, 0,
       
  7506     2817, 0,
       
  7507     2822, 0,
       
  7508     2877, 0,
       
  7509     2882, 0,
       
  7510     3197, 3247, 0,
       
  7511     3202, 3252, 0,
       
  7512     3327, 0,
       
  7513     3332, 0,
       
  7514     3417, 0,
       
  7515     3422, 0,
       
  7516     3597, 3607, 3617, 4150, 0,
       
  7517     3602, 3612, 3622, 4155, 0,
       
  7518     4160, 0,
       
  7519     4165, 0,
       
  7520     4170, 0,
       
  7521     4175, 0,
       
  7522     4180, 0,
       
  7523     4185, 0,
       
  7524     3637, 3647, 3657, 4190, 0,
       
  7525     3642, 3652, 3662, 4195, 0,
       
  7526     4200, 0,
       
  7527     4205, 0,
       
  7528     4210, 0,
       
  7529     4215, 0,
       
  7530     4220, 0,
       
  7531     4225, 0,
       
  7532     3677, 3687, 0,
       
  7533     3682, 3692, 0,
       
  7534     3707, 3717, 0,
       
  7535     3712, 3722, 0,
       
  7536     3737, 3747, 3757, 4230, 0,
       
  7537     3742, 3752, 3762, 4235, 0,
       
  7538     4240, 0,
       
  7539     4245, 0,
       
  7540     4250, 0,
       
  7541     4255, 0,
       
  7542     4260, 0,
       
  7543     4265, 0,
       
  7544     3777, 3787, 3797, 4270, 0,
       
  7545     3782, 3792, 3802, 4275, 0,
       
  7546     4280, 0,
       
  7547     4285, 0,
       
  7548     4290, 0,
       
  7549     4295, 0,
       
  7550     4300, 0,
       
  7551     4305, 0,
       
  7552     3817, 3827, 3837, 0,
       
  7553     3822, 3832, 3842, 0,
       
  7554     3857, 3867, 3877, 0,
       
  7555     3862, 3872, 3882, 0,
       
  7556     3897, 3907, 0,
       
  7557     3902, 3912, 0,
       
  7558     3927, 3937, 0,
       
  7559     3932, 3942, 0,
       
  7560     3957, 3967, 3977, 0,
       
  7561     3962, 3972, 3982, 0,
       
  7562     3992, 3997, 4002, 0,
       
  7563     4017, 4027, 4037, 4310, 0,
       
  7564     4022, 4032, 4042, 4315, 0,
       
  7565     4320, 0,
       
  7566     4325, 0,
       
  7567     4330, 0,
       
  7568     4335, 0,
       
  7569     4340, 0,
       
  7570     4345, 0,
       
  7571     4057, 4067, 4077, 4350, 0,
       
  7572     4062, 4072, 4082, 4355, 0,
       
  7573     4360, 0,
       
  7574     4365, 0,
       
  7575     4370, 0,
       
  7576     4375, 0,
       
  7577     4380, 0,
       
  7578     4385, 0,
       
  7579     4400, 0,
       
  7580     4473, 0,
       
  7581     4675, 0,
       
  7582     4420, 0,
       
  7583     4521, 4526, 4531, 0,
       
  7584     4493, 0,
       
  7585     4695, 0,
       
  7586     4584, 4589, 4594, 0,
       
  7587     5391, 0,
       
  7588     5396, 0,
       
  7589     5401, 0,
       
  7590     5406, 0,
       
  7591     5416, 0,
       
  7592     5411, 0,
       
  7593     5421, 0,
       
  7594     5426, 0,
       
  7595     5431, 0,
       
  7596     5436, 0,
       
  7597     5441, 0,
       
  7598     5468, 0,
       
  7599     5473, 0,
       
  7600     5478, 0,
       
  7601     5483, 0,
       
  7602     5498, 0,
       
  7603     5493, 0,
       
  7604     5513, 0,
       
  7605     5518, 0,
       
  7606     5523, 0,
       
  7607     5528, 0,
       
  7608     5533, 0,
       
  7609     5538, 0,
       
  7610     5543, 0,
       
  7611     5548, 0,
       
  7612     5593, 0,
       
  7613     5598, 0,
       
  7614     5553, 0,
       
  7615     5558, 0,
       
  7616     5563, 0,
       
  7617     5568, 0,
       
  7618     5603, 0,
       
  7619     5608, 0,
       
  7620     5573, 0,
       
  7621     5578, 0,
       
  7622     5583, 0,
       
  7623     5588, 0,
       
  7624     5613, 0,
       
  7625     5618, 0,
       
  7626     5623, 0,
       
  7627     5628, 0,
       
  7628     7351, 0,
       
  7629     7226, 0,
       
  7630     7231, 0,
       
  7631     7236, 0,
       
  7632     7241, 0,
       
  7633     7246, 0,
       
  7634     7251, 0,
       
  7635     7256, 0,
       
  7636     7261, 0,
       
  7637     7266, 0,
       
  7638     7271, 0,
       
  7639     7276, 0,
       
  7640     7281, 0,
       
  7641     7286, 0,
       
  7642     7291, 0,
       
  7643     7296, 0,
       
  7644     7301, 7306, 0,
       
  7645     7311, 7316, 0,
       
  7646     7321, 7326, 0,
       
  7647     7331, 7336, 0,
       
  7648     7341, 7346, 0,
       
  7649     7366, 0,
       
  7650     7496, 0,
       
  7651     7371, 0,
       
  7652     7376, 0,
       
  7653     7381, 0,
       
  7654     7386, 0,
       
  7655     7391, 0,
       
  7656     7396, 0,
       
  7657     7401, 0,
       
  7658     7406, 0,
       
  7659     7411, 0,
       
  7660     7416, 0,
       
  7661     7421, 0,
       
  7662     7426, 0,
       
  7663     7431, 0,
       
  7664     7436, 0,
       
  7665     7441, 0,
       
  7666     7446, 7451, 0,
       
  7667     7456, 7461, 0,
       
  7668     7466, 7471, 0,
       
  7669     7476, 7481, 0,
       
  7670     7486, 7491, 0,
       
  7671     7501, 0,
       
  7672     7506, 0,
       
  7673     7511, 0,
       
  7674     7516, 0,
       
  7675     7521, 0,
       
  7676     11668, 11673, 0,
       
  7677 
       
  7678 };
       
  7679 
       
  7680 static const Q_UINT16 li_00[] = {
       
  7681     0, 0, 0, 0, 0, 0, 0, 0,
       
  7682     0, 0, 0, 0, 0, 0, 0, 0,
       
  7683     0, 0, 0, 0, 0, 0, 0, 0,
       
  7684     0, 0, 0, 0, 0, 0, 0, 0,
       
  7685     1, 0, 0, 0, 0, 0, 0, 0,
       
  7686     0, 0, 0, 0, 0, 0, 0, 0,
       
  7687     0, 0, 0, 0, 0, 0, 0, 0,
       
  7688     0, 0, 0, 0, 16, 18, 20, 0,
       
  7689     0, 22, 39, 43, 49, 56, 74, 76,
       
  7690     84, 92, 108, 110, 116, 123, 127, 137,
       
  7691     154, 0, 157, 166, 174, 182, 202, 205,
       
  7692     212, 215, 225, 0, 0, 0, 0, 0,
       
  7693     0, 232, 249, 253, 259, 266, 284, 286,
       
  7694     294, 303, 318, 321, 327, 334, 338, 348,
       
  7695     365, 0, 368, 377, 385, 394, 414, 417,
       
  7696     425, 428, 439, 0, 0, 0, 0, 0,
       
  7697     0, 0, 0, 0, 0, 0, 0, 0,
       
  7698     0, 0, 0, 0, 0, 0, 0, 0,
       
  7699     0, 0, 0, 0, 0, 0, 0, 0,
       
  7700     0, 0, 0, 0, 0, 0, 0, 0,
       
  7701     0, 0, 0, 0, 0, 0, 0, 0,
       
  7702     446, 0, 0, 0, 0, 0, 0, 0,
       
  7703     0, 0, 0, 0, 0, 0, 0, 0,
       
  7704     0, 0, 0, 0, 0, 0, 0, 0,
       
  7705     0, 0, 450, 0, 455, 457, 459, 462,
       
  7706     0, 0, 464, 0, 0, 0, 0, 469,
       
  7707     0, 0, 0, 0, 471, 476, 480, 0,
       
  7708     482, 0, 0, 0, 484, 0, 0, 0,
       
  7709     0, 0, 489, 0, 494, 496, 498, 501,
       
  7710     0, 0, 503, 0, 0, 0, 0, 508,
       
  7711     0, 0, 0, 0, 510, 515, 519, 0,
       
  7712     521, 0, 0, 0, 523, 0, 0, 0,
       
  7713 };
       
  7714 
       
  7715 static const Q_UINT16 li_01[] = {
       
  7716     0, 0, 528, 533, 0, 0, 0, 0,
       
  7717     0, 0, 0, 0, 0, 0, 0, 0,
       
  7718     0, 0, 538, 541, 0, 0, 0, 0,
       
  7719     0, 0, 0, 0, 0, 0, 0, 0,
       
  7720     0, 0, 0, 0, 0, 0, 0, 0,
       
  7721     0, 0, 0, 0, 0, 0, 0, 0,
       
  7722     0, 0, 0, 0, 0, 0, 0, 0,
       
  7723     0, 0, 0, 0, 0, 0, 0, 0,
       
  7724     0, 0, 0, 0, 0, 0, 0, 0,
       
  7725     0, 0, 0, 0, 544, 547, 0, 0,
       
  7726     0, 0, 0, 0, 0, 0, 0, 0,
       
  7727     0, 0, 550, 552, 0, 0, 0, 0,
       
  7728     554, 556, 0, 0, 0, 0, 0, 0,
       
  7729     558, 560, 562, 564, 0, 0, 0, 0,
       
  7730     0, 0, 0, 0, 0, 0, 0, 0,
       
  7731     0, 0, 0, 0, 0, 0, 0, 566,
       
  7732     0, 0, 0, 0, 0, 0, 0, 0,
       
  7733     0, 0, 0, 0, 0, 0, 0, 0,
       
  7734     0, 0, 0, 0, 0, 0, 0, 0,
       
  7735     0, 0, 0, 0, 0, 0, 0, 0,
       
  7736     568, 574, 0, 0, 0, 0, 0, 0,
       
  7737     0, 0, 0, 0, 0, 0, 0, 580,
       
  7738     586, 0, 0, 0, 0, 0, 0, 592,
       
  7739     0, 0, 0, 0, 0, 0, 0, 0,
       
  7740     0, 0, 0, 0, 0, 0, 0, 0,
       
  7741     0, 0, 0, 0, 0, 0, 0, 0,
       
  7742     0, 0, 0, 0, 0, 0, 0, 0,
       
  7743     0, 0, 0, 0, 0, 0, 0, 0,
       
  7744     0, 0, 0, 0, 0, 0, 0, 0,
       
  7745     0, 0, 594, 596, 0, 0, 0, 0,
       
  7746     0, 0, 0, 0, 0, 0, 0, 0,
       
  7747     0, 0, 0, 0, 0, 0, 0, 0,
       
  7748 };
       
  7749 
       
  7750 static const Q_UINT16 li_02[] = {
       
  7751     0, 0, 0, 0, 0, 0, 0, 0,
       
  7752     0, 0, 0, 0, 0, 0, 0, 0,
       
  7753     0, 0, 0, 0, 0, 0, 0, 0,
       
  7754     0, 0, 0, 0, 0, 0, 0, 0,
       
  7755     0, 0, 0, 0, 0, 0, 598, 600,
       
  7756     602, 604, 0, 0, 0, 0, 606, 608,
       
  7757     0, 0, 0, 0, 0, 0, 0, 0,
       
  7758     0, 0, 0, 0, 0, 0, 0, 0,
       
  7759     0, 0, 0, 0, 0, 0, 0, 0,
       
  7760     0, 0, 0, 0, 0, 0, 0, 0,
       
  7761     0, 0, 0, 0, 0, 0, 0, 0,
       
  7762     0, 0, 0, 0, 0, 0, 0, 0,
       
  7763     0, 0, 0, 0, 0, 0, 0, 0,
       
  7764     0, 0, 0, 0, 0, 0, 0, 0,
       
  7765     0, 0, 0, 0, 0, 0, 0, 0,
       
  7766     0, 0, 0, 0, 0, 0, 0, 0,
       
  7767     0, 0, 0, 0, 0, 0, 0, 0,
       
  7768     0, 0, 0, 0, 0, 0, 0, 0,
       
  7769     0, 0, 610, 0, 0, 0, 0, 0,
       
  7770     0, 0, 0, 0, 0, 0, 0, 0,
       
  7771     0, 0, 0, 0, 0, 0, 0, 0,
       
  7772     0, 0, 0, 0, 0, 0, 0, 0,
       
  7773     0, 0, 0, 0, 0, 0, 0, 0,
       
  7774     0, 0, 0, 0, 0, 0, 0, 0,
       
  7775     0, 0, 0, 0, 0, 0, 0, 0,
       
  7776     0, 0, 0, 0, 0, 0, 0, 0,
       
  7777     0, 0, 0, 0, 0, 0, 0, 0,
       
  7778     0, 0, 0, 0, 0, 0, 0, 0,
       
  7779     0, 0, 0, 0, 0, 0, 0, 0,
       
  7780     0, 0, 0, 0, 0, 0, 0, 0,
       
  7781     0, 0, 0, 0, 0, 0, 0, 0,
       
  7782     0, 0, 0, 0, 0, 0, 0, 0,
       
  7783 };
       
  7784 
       
  7785 static const Q_UINT16 li_03[] = {
       
  7786     0, 0, 0, 0, 0, 0, 0, 0,
       
  7787     612, 0, 0, 0, 0, 0, 0, 0,
       
  7788     0, 0, 0, 0, 0, 0, 0, 0,
       
  7789     0, 0, 0, 0, 0, 0, 0, 0,
       
  7790     0, 0, 0, 0, 0, 0, 0, 0,
       
  7791     0, 0, 0, 0, 0, 0, 0, 0,
       
  7792     0, 0, 0, 0, 0, 0, 0, 0,
       
  7793     0, 0, 0, 0, 0, 0, 0, 0,
       
  7794     0, 0, 0, 0, 0, 0, 0, 0,
       
  7795     0, 0, 0, 0, 0, 0, 0, 0,
       
  7796     0, 0, 0, 0, 0, 0, 0, 0,
       
  7797     0, 0, 0, 0, 0, 0, 0, 0,
       
  7798     0, 0, 0, 0, 0, 0, 0, 0,
       
  7799     0, 0, 0, 0, 0, 0, 0, 0,
       
  7800     0, 0, 0, 0, 0, 0, 0, 0,
       
  7801     0, 0, 0, 0, 0, 0, 0, 0,
       
  7802     0, 0, 0, 0, 0, 0, 0, 0,
       
  7803     0, 0, 0, 0, 0, 0, 0, 0,
       
  7804     0, 614, 0, 0, 0, 622, 0, 627,
       
  7805     0, 633, 0, 0, 0, 0, 0, 641,
       
  7806     0, 646, 0, 0, 0, 648, 0, 0,
       
  7807     0, 655, 0, 0, 661, 0, 663, 0,
       
  7808     0, 665, 0, 0, 0, 674, 0, 679,
       
  7809     0, 686, 0, 0, 0, 0, 0, 695,
       
  7810     0, 700, 0, 0, 0, 703, 0, 0,
       
  7811     0, 712, 719, 723, 0, 0, 727, 0,
       
  7812     0, 0, 729, 0, 0, 0, 0, 0,
       
  7813     0, 0, 0, 0, 0, 0, 0, 0,
       
  7814     0, 0, 0, 0, 0, 0, 0, 0,
       
  7815     0, 0, 0, 0, 0, 0, 0, 0,
       
  7816     0, 0, 0, 0, 0, 0, 0, 0,
       
  7817     0, 0, 0, 0, 0, 0, 0, 0,
       
  7818 };
       
  7819 
       
  7820 static const Q_UINT16 li_04[] = {
       
  7821     0, 0, 0, 0, 0, 0, 732, 0,
       
  7822     0, 0, 0, 0, 0, 0, 0, 0,
       
  7823     734, 0, 0, 737, 0, 739, 743, 746,
       
  7824     748, 0, 753, 0, 0, 0, 755, 0,
       
  7825     0, 0, 0, 757, 0, 0, 0, 762,
       
  7826     0, 0, 0, 764, 0, 766, 0, 0,
       
  7827     768, 0, 0, 771, 0, 773, 777, 780,
       
  7828     782, 0, 787, 0, 0, 0, 789, 0,
       
  7829     0, 0, 0, 791, 0, 0, 0, 796,
       
  7830     0, 0, 0, 798, 0, 800, 0, 0,
       
  7831     0, 0, 0, 0, 0, 0, 802, 0,
       
  7832     0, 0, 0, 0, 0, 0, 0, 0,
       
  7833     0, 0, 0, 0, 0, 0, 0, 0,
       
  7834     0, 0, 0, 0, 0, 0, 0, 0,
       
  7835     0, 0, 0, 0, 804, 806, 0, 0,
       
  7836     0, 0, 0, 0, 0, 0, 0, 0,
       
  7837     0, 0, 0, 0, 0, 0, 0, 0,
       
  7838     0, 0, 0, 0, 0, 0, 0, 0,
       
  7839     0, 0, 0, 0, 0, 0, 0, 0,
       
  7840     0, 0, 0, 0, 0, 0, 0, 0,
       
  7841     0, 0, 0, 0, 0, 0, 0, 0,
       
  7842     0, 0, 0, 0, 0, 0, 0, 0,
       
  7843     0, 0, 0, 0, 0, 0, 0, 0,
       
  7844     0, 0, 0, 0, 0, 0, 0, 0,
       
  7845     0, 0, 0, 0, 0, 0, 0, 0,
       
  7846     0, 0, 0, 0, 0, 0, 0, 0,
       
  7847     0, 0, 0, 0, 0, 0, 0, 0,
       
  7848     808, 810, 0, 0, 0, 0, 0, 0,
       
  7849     0, 0, 0, 0, 0, 0, 0, 0,
       
  7850     812, 814, 0, 0, 0, 0, 0, 0,
       
  7851     0, 0, 0, 0, 0, 0, 0, 0,
       
  7852     0, 0, 0, 0, 0, 0, 0, 0,
       
  7853 };
       
  7854 
       
  7855 static const Q_UINT16 li_05[] = {
       
  7856     0, 0, 0, 0, 0, 0, 0, 0,
       
  7857     0, 0, 0, 0, 0, 0, 0, 0,
       
  7858     0, 0, 0, 0, 0, 0, 0, 0,
       
  7859     0, 0, 0, 0, 0, 0, 0, 0,
       
  7860     0, 0, 0, 0, 0, 0, 0, 0,
       
  7861     0, 0, 0, 0, 0, 0, 0, 0,
       
  7862     0, 0, 0, 0, 0, 0, 0, 0,
       
  7863     0, 0, 0, 0, 0, 0, 0, 0,
       
  7864     0, 0, 0, 0, 0, 0, 0, 0,
       
  7865     0, 0, 0, 0, 0, 0, 0, 0,
       
  7866     0, 0, 0, 0, 0, 0, 0, 0,
       
  7867     0, 0, 0, 0, 0, 0, 0, 0,
       
  7868     0, 0, 0, 0, 0, 0, 0, 0,
       
  7869     0, 0, 0, 0, 0, 0, 0, 0,
       
  7870     0, 0, 0, 0, 0, 0, 0, 0,
       
  7871     0, 0, 0, 0, 0, 0, 0, 0,
       
  7872     0, 0, 0, 0, 0, 0, 0, 0,
       
  7873     0, 0, 0, 0, 0, 0, 0, 0,
       
  7874     0, 0, 0, 0, 0, 0, 0, 0,
       
  7875     0, 0, 0, 0, 0, 0, 0, 0,
       
  7876     0, 0, 0, 0, 0, 0, 0, 0,
       
  7877     0, 0, 0, 0, 0, 0, 0, 0,
       
  7878     0, 0, 0, 0, 0, 0, 0, 0,
       
  7879     0, 0, 0, 0, 0, 0, 0, 0,
       
  7880     0, 0, 0, 0, 0, 0, 0, 0,
       
  7881     0, 0, 0, 0, 0, 0, 0, 0,
       
  7882     816, 820, 823, 825, 827, 829, 832, 0,
       
  7883     834, 836, 839, 841, 844, 0, 846, 0,
       
  7884     848, 850, 0, 852, 854, 0, 857, 859,
       
  7885     861, 863, 867, 0, 0, 0, 0, 0,
       
  7886     0, 0, 869, 0, 0, 0, 0, 0,
       
  7887     0, 0, 0, 0, 0, 0, 0, 0,
       
  7888 };
       
  7889 
       
  7890 static const Q_UINT16 li_06[] = {
       
  7891     0, 0, 0, 0, 0, 0, 0, 0,
       
  7892     0, 0, 0, 0, 0, 0, 0, 0,
       
  7893     0, 0, 0, 0, 0, 0, 0, 0,
       
  7894     0, 0, 0, 0, 0, 0, 0, 0,
       
  7895     0, 871, 873, 876, 879, 882, 885, 926,
       
  7896     936, 962, 965, 1003, 1021, 1041, 1057, 1071,
       
  7897     1074, 1078, 1083, 1086, 1121, 1158, 1183, 1206,
       
  7898     1224, 1232, 1252, 0, 0, 0, 0, 0,
       
  7899     1268, 1278, 1298, 1316, 1344, 1386, 1415, 1450,
       
  7900     1464, 1469, 1476, 0, 0, 0, 0, 0,
       
  7901     0, 0, 0, 0, 0, 0, 0, 0,
       
  7902     0, 0, 0, 0, 0, 0, 0, 0,
       
  7903     0, 0, 0, 0, 0, 0, 0, 0,
       
  7904     0, 0, 0, 0, 0, 0, 0, 0,
       
  7905     0, 1506, 0, 0, 0, 0, 0, 1509,
       
  7906     0, 1511, 1516, 1521, 0, 0, 1526, 1531,
       
  7907     1536, 0, 0, 1541, 1546, 0, 1551, 1556,
       
  7908     1561, 0, 0, 0, 1564, 1567, 1570, 0,
       
  7909     0, 1573, 0, 0, 0, 0, 0, 0,
       
  7910     1576, 0, 0, 0, 0, 0, 0, 0,
       
  7911     0, 0, 0, 0, 1579, 0, 1584, 0,
       
  7912     0, 1589, 0, 0, 0, 1594, 0, 1599,
       
  7913     0, 1604, 0, 1609, 0, 0, 0, 0,
       
  7914     0, 0, 1614, 1617, 0, 0, 1622, 0,
       
  7915     1627, 1630, 0, 0, 0, 1636, 1639, 1642,
       
  7916     1645, 1648, 0, 1651, 1654, 0, 0, 0,
       
  7917     1659, 0, 1664, 1668, 0, 1671, 0, 0,
       
  7918     0, 0, 0, 0, 0, 0, 0, 0,
       
  7919     0, 0, 0, 0, 0, 0, 0, 0,
       
  7920     0, 0, 0, 0, 0, 0, 0, 0,
       
  7921     0, 0, 0, 0, 0, 0, 0, 0,
       
  7922     0, 0, 0, 0, 0, 0, 0, 0,
       
  7923 };
       
  7924 
       
  7925 static const Q_UINT16 li_07[] = {
       
  7926     0, 0, 0, 0, 0, 0, 0, 0,
       
  7927     0, 0, 0, 0, 0, 0, 0, 0,
       
  7928     0, 0, 0, 0, 0, 0, 0, 0,
       
  7929     0, 0, 0, 0, 0, 0, 0, 0,
       
  7930     0, 0, 0, 0, 0, 0, 0, 0,
       
  7931     0, 0, 0, 0, 0, 0, 0, 0,
       
  7932     0, 0, 0, 0, 0, 0, 0, 0,
       
  7933     0, 0, 0, 0, 0, 0, 0, 0,
       
  7934     0, 0, 0, 0, 0, 0, 0, 0,
       
  7935     0, 0, 0, 0, 0, 0, 0, 0,
       
  7936     0, 0, 0, 0, 0, 0, 0, 0,
       
  7937     0, 0, 0, 0, 0, 0, 0, 0,
       
  7938     0, 0, 0, 0, 0, 0, 0, 0,
       
  7939     0, 0, 0, 0, 0, 0, 0, 0,
       
  7940     0, 0, 0, 0, 0, 0, 0, 0,
       
  7941     0, 0, 0, 0, 0, 0, 0, 0,
       
  7942     0, 0, 0, 0, 0, 0, 0, 0,
       
  7943     0, 0, 0, 0, 0, 0, 0, 0,
       
  7944     0, 0, 0, 0, 0, 0, 0, 0,
       
  7945     0, 0, 0, 0, 0, 0, 0, 0,
       
  7946     0, 0, 0, 0, 0, 0, 0, 0,
       
  7947     0, 0, 0, 0, 0, 0, 0, 0,
       
  7948     0, 0, 0, 0, 0, 0, 0, 0,
       
  7949     0, 0, 0, 0, 0, 0, 0, 0,
       
  7950     0, 0, 0, 0, 0, 0, 0, 0,
       
  7951     0, 0, 0, 0, 0, 0, 0, 0,
       
  7952     0, 0, 0, 0, 0, 0, 0, 0,
       
  7953     0, 0, 0, 0, 0, 0, 0, 0,
       
  7954     0, 0, 0, 0, 0, 0, 0, 0,
       
  7955     0, 0, 0, 0, 0, 0, 0, 0,
       
  7956     0, 0, 0, 0, 0, 0, 0, 0,
       
  7957     0, 0, 0, 0, 0, 0, 0, 0,
       
  7958 };
       
  7959 
       
  7960 static const Q_UINT16 li_09[] = {
       
  7961     0, 0, 0, 0, 0, 0, 0, 0,
       
  7962     0, 0, 0, 0, 0, 0, 0, 0,
       
  7963     0, 0, 0, 0, 0, 1673, 1675, 1677,
       
  7964     0, 0, 0, 0, 1679, 0, 0, 0,
       
  7965     0, 1681, 1683, 0, 0, 0, 0, 0,
       
  7966     1685, 0, 0, 1687, 0, 0, 0, 1689,
       
  7967     1691, 0, 0, 1693, 0, 0, 0, 0,
       
  7968     0, 0, 0, 0, 0, 0, 0, 0,
       
  7969     0, 0, 0, 0, 0, 0, 0, 0,
       
  7970     0, 0, 0, 0, 0, 0, 0, 0,
       
  7971     0, 0, 0, 0, 0, 0, 0, 0,
       
  7972     0, 0, 0, 0, 0, 0, 0, 0,
       
  7973     0, 0, 0, 0, 0, 0, 0, 0,
       
  7974     0, 0, 0, 0, 0, 0, 0, 0,
       
  7975     0, 0, 0, 0, 0, 0, 0, 0,
       
  7976     0, 0, 0, 0, 0, 0, 0, 0,
       
  7977     0, 0, 0, 0, 0, 0, 0, 0,
       
  7978     0, 0, 0, 0, 0, 0, 0, 0,
       
  7979     0, 0, 0, 0, 0, 0, 0, 0,
       
  7980     0, 0, 0, 0, 0, 0, 0, 0,
       
  7981     0, 1695, 1697, 0, 0, 0, 0, 0,
       
  7982     0, 0, 0, 0, 0, 0, 0, 1699,
       
  7983     0, 0, 0, 0, 0, 0, 0, 0,
       
  7984     0, 0, 0, 0, 0, 0, 0, 0,
       
  7985     0, 0, 0, 0, 0, 0, 0, 1701,
       
  7986     0, 0, 0, 0, 0, 0, 0, 0,
       
  7987     0, 0, 0, 0, 0, 0, 0, 0,
       
  7988     0, 0, 0, 0, 0, 0, 0, 0,
       
  7989     0, 0, 0, 0, 0, 0, 0, 0,
       
  7990     0, 0, 0, 0, 0, 0, 0, 0,
       
  7991     0, 0, 0, 0, 0, 0, 0, 0,
       
  7992     0, 0, 0, 0, 0, 0, 0, 0,
       
  7993 };
       
  7994 
       
  7995 static const Q_UINT16 li_0A[] = {
       
  7996     0, 0, 0, 0, 0, 0, 0, 0,
       
  7997     0, 0, 0, 0, 0, 0, 0, 0,
       
  7998     0, 0, 0, 0, 0, 0, 1704, 1706,
       
  7999     0, 0, 0, 0, 1708, 0, 0, 0,
       
  8000     0, 0, 0, 0, 0, 0, 0, 0,
       
  8001     0, 0, 0, 1710, 0, 0, 0, 0,
       
  8002     0, 0, 1712, 0, 0, 0, 0, 0,
       
  8003     1714, 0, 0, 0, 0, 0, 0, 0,
       
  8004     0, 0, 0, 0, 0, 0, 0, 0,
       
  8005     0, 0, 0, 0, 0, 0, 0, 0,
       
  8006     0, 0, 0, 0, 0, 0, 0, 0,
       
  8007     0, 0, 0, 0, 0, 0, 0, 0,
       
  8008     0, 0, 0, 0, 0, 0, 0, 0,
       
  8009     0, 0, 0, 0, 0, 0, 0, 0,
       
  8010     0, 0, 0, 0, 0, 0, 0, 0,
       
  8011     0, 0, 0, 0, 0, 0, 0, 0,
       
  8012     0, 0, 0, 0, 0, 0, 0, 0,
       
  8013     0, 0, 0, 0, 0, 0, 0, 0,
       
  8014     0, 0, 0, 0, 0, 0, 0, 0,
       
  8015     0, 0, 0, 0, 0, 0, 0, 0,
       
  8016     0, 0, 0, 0, 0, 0, 0, 0,
       
  8017     0, 0, 0, 0, 0, 0, 0, 0,
       
  8018     0, 0, 0, 0, 0, 0, 0, 0,
       
  8019     0, 0, 0, 0, 0, 0, 0, 0,
       
  8020     0, 0, 0, 0, 0, 0, 0, 0,
       
  8021     0, 0, 0, 0, 0, 0, 0, 0,
       
  8022     0, 0, 0, 0, 0, 0, 0, 0,
       
  8023     0, 0, 0, 0, 0, 0, 0, 0,
       
  8024     0, 0, 0, 0, 0, 0, 0, 0,
       
  8025     0, 0, 0, 0, 0, 0, 0, 0,
       
  8026     0, 0, 0, 0, 0, 0, 0, 0,
       
  8027     0, 0, 0, 0, 0, 0, 0, 0,
       
  8028 };
       
  8029 
       
  8030 static const Q_UINT16 li_0B[] = {
       
  8031     0, 0, 0, 0, 0, 0, 0, 0,
       
  8032     0, 0, 0, 0, 0, 0, 0, 0,
       
  8033     0, 0, 0, 0, 0, 0, 0, 0,
       
  8034     0, 0, 0, 0, 0, 0, 0, 0,
       
  8035     0, 1716, 1718, 0, 0, 0, 0, 0,
       
  8036     0, 0, 0, 0, 0, 0, 0, 0,
       
  8037     0, 0, 0, 0, 0, 0, 0, 0,
       
  8038     0, 0, 0, 0, 0, 0, 0, 0,
       
  8039     0, 0, 0, 0, 0, 0, 0, 1720,
       
  8040     0, 0, 0, 0, 0, 0, 0, 0,
       
  8041     0, 0, 0, 0, 0, 0, 0, 0,
       
  8042     0, 0, 0, 0, 0, 0, 0, 0,
       
  8043     0, 0, 0, 0, 0, 0, 0, 0,
       
  8044     0, 0, 0, 0, 0, 0, 0, 0,
       
  8045     0, 0, 0, 0, 0, 0, 0, 0,
       
  8046     0, 0, 0, 0, 0, 0, 0, 0,
       
  8047     0, 0, 0, 0, 0, 0, 0, 0,
       
  8048     0, 0, 0, 0, 0, 0, 0, 0,
       
  8049     0, 0, 1724, 0, 0, 0, 0, 0,
       
  8050     0, 0, 0, 0, 0, 0, 0, 0,
       
  8051     0, 0, 0, 0, 0, 0, 0, 0,
       
  8052     0, 0, 0, 0, 0, 0, 0, 0,
       
  8053     0, 0, 0, 0, 0, 0, 0, 0,
       
  8054     0, 0, 0, 0, 0, 0, 0, 0,
       
  8055     0, 0, 0, 0, 0, 0, 1726, 1729,
       
  8056     0, 0, 0, 0, 0, 0, 0, 0,
       
  8057     0, 0, 0, 0, 0, 0, 0, 0,
       
  8058     0, 0, 0, 0, 0, 0, 0, 0,
       
  8059     0, 0, 0, 0, 0, 0, 0, 0,
       
  8060     0, 0, 0, 0, 0, 0, 0, 0,
       
  8061     0, 0, 0, 0, 0, 0, 0, 0,
       
  8062     0, 0, 0, 0, 0, 0, 0, 0,
       
  8063 };
       
  8064 
       
  8065 static const Q_UINT16 li_0C[] = {
       
  8066     0, 0, 0, 0, 0, 0, 0, 0,
       
  8067     0, 0, 0, 0, 0, 0, 0, 0,
       
  8068     0, 0, 0, 0, 0, 0, 0, 0,
       
  8069     0, 0, 0, 0, 0, 0, 0, 0,
       
  8070     0, 0, 0, 0, 0, 0, 0, 0,
       
  8071     0, 0, 0, 0, 0, 0, 0, 0,
       
  8072     0, 0, 0, 0, 0, 0, 0, 0,
       
  8073     0, 0, 0, 0, 0, 0, 0, 0,
       
  8074     0, 0, 0, 0, 0, 0, 1731, 0,
       
  8075     0, 0, 0, 0, 0, 0, 0, 0,
       
  8076     0, 0, 0, 0, 0, 0, 0, 0,
       
  8077     0, 0, 0, 0, 0, 0, 0, 0,
       
  8078     0, 0, 0, 0, 0, 0, 0, 0,
       
  8079     0, 0, 0, 0, 0, 0, 0, 0,
       
  8080     0, 0, 0, 0, 0, 0, 0, 0,
       
  8081     0, 0, 0, 0, 0, 0, 0, 0,
       
  8082     0, 0, 0, 0, 0, 0, 0, 0,
       
  8083     0, 0, 0, 0, 0, 0, 0, 0,
       
  8084     0, 0, 0, 0, 0, 0, 0, 0,
       
  8085     0, 0, 0, 0, 0, 0, 0, 0,
       
  8086     0, 0, 0, 0, 0, 0, 0, 0,
       
  8087     0, 0, 0, 0, 0, 0, 0, 0,
       
  8088     0, 0, 0, 0, 0, 0, 0, 0,
       
  8089     0, 0, 0, 0, 0, 0, 0, 1733,
       
  8090     0, 0, 0, 0, 0, 0, 1735, 0,
       
  8091     0, 0, 1739, 0, 0, 0, 0, 0,
       
  8092     0, 0, 0, 0, 0, 0, 0, 0,
       
  8093     0, 0, 0, 0, 0, 0, 0, 0,
       
  8094     0, 0, 0, 0, 0, 0, 0, 0,
       
  8095     0, 0, 0, 0, 0, 0, 0, 0,
       
  8096     0, 0, 0, 0, 0, 0, 0, 0,
       
  8097     0, 0, 0, 0, 0, 0, 0, 0,
       
  8098 };
       
  8099 
       
  8100 static const Q_UINT16 li_0D[] = {
       
  8101     0, 0, 0, 0, 0, 0, 0, 0,
       
  8102     0, 0, 0, 0, 0, 0, 0, 0,
       
  8103     0, 0, 0, 0, 0, 0, 0, 0,
       
  8104     0, 0, 0, 0, 0, 0, 0, 0,
       
  8105     0, 0, 0, 0, 0, 0, 0, 0,
       
  8106     0, 0, 0, 0, 0, 0, 0, 0,
       
  8107     0, 0, 0, 0, 0, 0, 0, 0,
       
  8108     0, 0, 0, 0, 0, 0, 0, 0,
       
  8109     0, 0, 0, 0, 0, 0, 1741, 1744,
       
  8110     0, 0, 0, 0, 0, 0, 0, 0,
       
  8111     0, 0, 0, 0, 0, 0, 0, 0,
       
  8112     0, 0, 0, 0, 0, 0, 0, 0,
       
  8113     0, 0, 0, 0, 0, 0, 0, 0,
       
  8114     0, 0, 0, 0, 0, 0, 0, 0,
       
  8115     0, 0, 0, 0, 0, 0, 0, 0,
       
  8116     0, 0, 0, 0, 0, 0, 0, 0,
       
  8117     0, 0, 0, 0, 0, 0, 0, 0,
       
  8118     0, 0, 0, 0, 0, 0, 0, 0,
       
  8119     0, 0, 0, 0, 0, 0, 0, 0,
       
  8120     0, 0, 0, 0, 0, 0, 0, 0,
       
  8121     0, 0, 0, 0, 0, 0, 0, 0,
       
  8122     0, 0, 0, 0, 0, 0, 0, 0,
       
  8123     0, 0, 0, 0, 0, 0, 0, 0,
       
  8124     0, 0, 0, 0, 0, 0, 0, 0,
       
  8125     0, 0, 0, 0, 0, 0, 0, 0,
       
  8126     0, 0, 0, 0, 0, 0, 0, 0,
       
  8127     0, 0, 0, 0, 0, 0, 0, 0,
       
  8128     0, 1746, 0, 0, 1750, 0, 0, 0,
       
  8129     0, 0, 0, 0, 0, 0, 0, 0,
       
  8130     0, 0, 0, 0, 0, 0, 0, 0,
       
  8131     0, 0, 0, 0, 0, 0, 0, 0,
       
  8132     0, 0, 0, 0, 0, 0, 0, 0,
       
  8133 };
       
  8134 
       
  8135 static const Q_UINT16 li_0F[] = {
       
  8136     0, 0, 0, 0, 0, 0, 0, 0,
       
  8137     0, 0, 0, 0, 0, 0, 0, 0,
       
  8138     0, 0, 0, 0, 0, 0, 0, 0,
       
  8139     0, 0, 0, 0, 0, 0, 0, 0,
       
  8140     0, 0, 0, 0, 0, 0, 0, 0,
       
  8141     0, 0, 0, 0, 0, 0, 0, 0,
       
  8142     0, 0, 0, 0, 0, 0, 0, 0,
       
  8143     0, 0, 0, 0, 0, 0, 0, 0,
       
  8144     1752, 0, 1754, 0, 0, 0, 0, 0,
       
  8145     0, 0, 0, 0, 1756, 0, 0, 0,
       
  8146     0, 1758, 0, 0, 0, 0, 1760, 0,
       
  8147     0, 0, 0, 1762, 0, 0, 0, 0,
       
  8148     0, 0, 0, 0, 0, 0, 0, 0,
       
  8149     0, 0, 0, 0, 0, 0, 0, 0,
       
  8150     0, 1764, 0, 0, 0, 0, 0, 0,
       
  8151     0, 0, 0, 0, 0, 0, 0, 0,
       
  8152     0, 0, 0, 0, 0, 0, 0, 0,
       
  8153     0, 0, 0, 0, 0, 0, 0, 0,
       
  8154     1768, 0, 1770, 0, 0, 0, 0, 0,
       
  8155     0, 0, 0, 0, 1772, 0, 0, 0,
       
  8156     0, 1774, 0, 0, 0, 0, 1776, 0,
       
  8157     0, 0, 0, 1778, 0, 0, 0, 0,
       
  8158     0, 0, 1780, 1782, 0, 0, 0, 0,
       
  8159     0, 0, 0, 0, 0, 0, 0, 0,
       
  8160     0, 0, 0, 0, 0, 0, 0, 0,
       
  8161     0, 0, 0, 0, 0, 0, 0, 0,
       
  8162     0, 0, 0, 0, 0, 0, 0, 0,
       
  8163     0, 0, 0, 0, 0, 0, 0, 0,
       
  8164     0, 0, 0, 0, 0, 0, 0, 0,
       
  8165     0, 0, 0, 0, 0, 0, 0, 0,
       
  8166     0, 0, 0, 0, 0, 0, 0, 0,
       
  8167     0, 0, 0, 0, 0, 0, 0, 0,
       
  8168 };
       
  8169 
       
  8170 static const Q_UINT16 li_10[] = {
       
  8171     0, 0, 0, 0, 0, 0, 0, 0,
       
  8172     0, 0, 0, 0, 0, 0, 0, 0,
       
  8173     0, 0, 0, 0, 0, 0, 0, 0,
       
  8174     0, 0, 0, 0, 0, 0, 0, 0,
       
  8175     0, 0, 0, 0, 0, 1784, 0, 0,
       
  8176     0, 0, 0, 0, 0, 0, 0, 0,
       
  8177     0, 0, 0, 0, 0, 0, 0, 0,
       
  8178     0, 0, 0, 0, 0, 0, 0, 0,
       
  8179     0, 0, 0, 0, 0, 0, 0, 0,
       
  8180     0, 0, 0, 0, 0, 0, 0, 0,
       
  8181     0, 0, 0, 0, 0, 0, 0, 0,
       
  8182     0, 0, 0, 0, 0, 0, 0, 0,
       
  8183     0, 0, 0, 0, 0, 0, 0, 0,
       
  8184     0, 0, 0, 0, 0, 0, 0, 0,
       
  8185     0, 0, 0, 0, 0, 0, 0, 0,
       
  8186     0, 0, 0, 0, 0, 0, 0, 0,
       
  8187     0, 0, 0, 0, 0, 0, 0, 0,
       
  8188     0, 0, 0, 0, 0, 0, 0, 0,
       
  8189     0, 0, 0, 0, 0, 0, 0, 0,
       
  8190     0, 0, 0, 0, 0, 0, 0, 0,
       
  8191     0, 0, 0, 0, 0, 0, 0, 0,
       
  8192     0, 0, 0, 0, 0, 0, 0, 0,
       
  8193     0, 0, 0, 0, 0, 0, 0, 0,
       
  8194     0, 0, 0, 0, 0, 0, 0, 0,
       
  8195     0, 0, 0, 0, 0, 0, 0, 0,
       
  8196     0, 0, 0, 0, 0, 0, 0, 0,
       
  8197     0, 0, 0, 0, 0, 0, 0, 0,
       
  8198     0, 0, 0, 0, 0, 0, 0, 0,
       
  8199     0, 0, 0, 0, 0, 0, 0, 0,
       
  8200     0, 0, 0, 0, 0, 0, 0, 0,
       
  8201     0, 0, 0, 0, 0, 0, 0, 0,
       
  8202     0, 0, 0, 0, 0, 0, 0, 0,
       
  8203 };
       
  8204 
       
  8205 static const Q_UINT16 li_1E[] = {
       
  8206     0, 0, 0, 0, 0, 0, 0, 0,
       
  8207     0, 0, 0, 0, 0, 0, 0, 0,
       
  8208     0, 0, 0, 0, 0, 0, 0, 0,
       
  8209     0, 0, 0, 0, 0, 0, 0, 0,
       
  8210     0, 0, 0, 0, 0, 0, 0, 0,
       
  8211     0, 0, 0, 0, 0, 0, 0, 0,
       
  8212     0, 0, 0, 0, 0, 0, 1786, 1788,
       
  8213     0, 0, 0, 0, 0, 0, 0, 0,
       
  8214     0, 0, 0, 0, 0, 0, 0, 0,
       
  8215     0, 0, 0, 0, 0, 0, 0, 0,
       
  8216     0, 0, 0, 0, 0, 0, 0, 0,
       
  8217     0, 0, 1790, 1792, 0, 0, 0, 0,
       
  8218     0, 0, 1794, 1796, 0, 0, 0, 0,
       
  8219     0, 0, 0, 0, 0, 0, 0, 0,
       
  8220     0, 0, 0, 0, 0, 0, 0, 0,
       
  8221     0, 0, 0, 0, 0, 0, 0, 0,
       
  8222     0, 0, 0, 0, 0, 0, 0, 0,
       
  8223     0, 0, 0, 0, 0, 0, 0, 0,
       
  8224     0, 0, 0, 0, 0, 0, 0, 0,
       
  8225     0, 0, 0, 0, 0, 0, 0, 0,
       
  8226     1798, 1801, 0, 0, 0, 0, 0, 0,
       
  8227     0, 0, 0, 0, 0, 0, 0, 0,
       
  8228     0, 0, 0, 0, 0, 0, 0, 0,
       
  8229     1804, 1806, 0, 0, 0, 0, 0, 0,
       
  8230     0, 0, 0, 0, 0, 0, 0, 0,
       
  8231     0, 0, 0, 0, 1808, 1810, 0, 0,
       
  8232     0, 0, 0, 0, 0, 0, 0, 0,
       
  8233     0, 0, 0, 0, 0, 0, 0, 0,
       
  8234     0, 0, 0, 0, 0, 0, 0, 0,
       
  8235     0, 0, 0, 0, 0, 0, 0, 0,
       
  8236     0, 0, 0, 0, 0, 0, 0, 0,
       
  8237     0, 0, 0, 0, 0, 0, 0, 0,
       
  8238 };
       
  8239 
       
  8240 static const Q_UINT16 li_1F[] = {
       
  8241     1812, 1817, 1822, 1824, 1826, 1828, 1830, 1832,
       
  8242     1834, 1839, 1844, 1846, 1848, 1850, 1852, 1854,
       
  8243     1856, 1859, 0, 0, 0, 0, 0, 0,
       
  8244     1862, 1865, 0, 0, 0, 0, 0, 0,
       
  8245     1868, 1873, 1878, 1880, 1882, 1884, 1886, 1888,
       
  8246     1890, 1895, 1900, 1902, 1904, 1906, 1908, 1910,
       
  8247     1912, 1916, 0, 0, 0, 0, 0, 0,
       
  8248     1920, 1924, 0, 0, 0, 0, 0, 0,
       
  8249     1928, 1931, 0, 0, 0, 0, 0, 0,
       
  8250     1934, 1937, 0, 0, 0, 0, 0, 0,
       
  8251     1940, 1944, 0, 0, 0, 0, 0, 0,
       
  8252     0, 1948, 0, 0, 0, 0, 0, 0,
       
  8253     1952, 1957, 1962, 1964, 1966, 1968, 1970, 1972,
       
  8254     1974, 1979, 1984, 1986, 1988, 1990, 1992, 1994,
       
  8255     1996, 0, 0, 0, 1998, 0, 0, 0,
       
  8256     0, 0, 0, 0, 2000, 0, 0, 0,
       
  8257     0, 0, 0, 0, 0, 0, 0, 0,
       
  8258     0, 0, 0, 0, 0, 0, 0, 0,
       
  8259     0, 0, 0, 0, 0, 0, 0, 0,
       
  8260     0, 0, 0, 0, 0, 0, 0, 0,
       
  8261     0, 0, 0, 0, 0, 0, 0, 0,
       
  8262     0, 0, 0, 0, 0, 0, 0, 0,
       
  8263     0, 0, 0, 0, 0, 0, 2002, 0,
       
  8264     0, 0, 0, 0, 0, 0, 0, 2004,
       
  8265     0, 0, 0, 0, 0, 0, 2008, 0,
       
  8266     0, 0, 0, 0, 0, 0, 0, 0,
       
  8267     0, 0, 0, 0, 0, 0, 0, 0,
       
  8268     0, 0, 0, 0, 0, 0, 0, 0,
       
  8269     0, 0, 0, 0, 0, 0, 0, 0,
       
  8270     0, 0, 0, 0, 0, 0, 0, 0,
       
  8271     0, 0, 0, 0, 0, 0, 2010, 0,
       
  8272     0, 0, 0, 0, 0, 0, 2012, 0,
       
  8273 };
       
  8274 
       
  8275 static const Q_UINT16 li_21[] = {
       
  8276     0, 0, 0, 0, 0, 0, 0, 0,
       
  8277     0, 0, 0, 0, 0, 0, 0, 0,
       
  8278     0, 0, 0, 0, 0, 0, 0, 0,
       
  8279     0, 0, 0, 0, 0, 0, 0, 0,
       
  8280     0, 0, 0, 0, 0, 0, 0, 0,
       
  8281     0, 0, 0, 0, 0, 0, 0, 0,
       
  8282     0, 0, 0, 0, 0, 0, 0, 0,
       
  8283     0, 0, 0, 0, 0, 0, 0, 0,
       
  8284     0, 0, 0, 0, 0, 0, 0, 0,
       
  8285     0, 0, 0, 0, 0, 0, 0, 0,
       
  8286     0, 0, 0, 0, 0, 0, 0, 0,
       
  8287     0, 0, 0, 0, 0, 0, 0, 0,
       
  8288     0, 0, 0, 0, 0, 0, 0, 0,
       
  8289     0, 0, 0, 0, 0, 0, 0, 0,
       
  8290     0, 0, 0, 0, 0, 0, 0, 0,
       
  8291     0, 0, 0, 0, 0, 0, 0, 0,
       
  8292     0, 0, 0, 0, 0, 0, 0, 0,
       
  8293     0, 0, 0, 0, 0, 0, 0, 0,
       
  8294     2016, 0, 2018, 0, 2020, 0, 0, 0,
       
  8295     0, 0, 0, 0, 0, 0, 0, 0,
       
  8296     0, 0, 0, 0, 0, 0, 0, 0,
       
  8297     0, 0, 0, 0, 0, 0, 0, 0,
       
  8298     0, 0, 0, 0, 0, 0, 0, 0,
       
  8299     0, 0, 0, 0, 0, 0, 0, 0,
       
  8300     0, 0, 0, 0, 0, 0, 0, 0,
       
  8301     0, 0, 0, 0, 0, 0, 0, 0,
       
  8302     2022, 0, 2024, 0, 2026, 0, 0, 0,
       
  8303     0, 0, 0, 0, 0, 0, 0, 0,
       
  8304     0, 0, 0, 0, 0, 0, 0, 0,
       
  8305     0, 0, 0, 0, 0, 0, 0, 0,
       
  8306     0, 0, 0, 0, 0, 0, 0, 0,
       
  8307     0, 0, 0, 0, 0, 0, 0, 0,
       
  8308 };
       
  8309 
       
  8310 static const Q_UINT16 li_22[] = {
       
  8311     0, 0, 0, 2028, 0, 0, 0, 0,
       
  8312     2030, 0, 0, 2032, 0, 0, 0, 0,
       
  8313     0, 0, 0, 0, 0, 0, 0, 0,
       
  8314     0, 0, 0, 0, 0, 0, 0, 0,
       
  8315     0, 0, 0, 2034, 0, 2036, 0, 0,
       
  8316     0, 0, 0, 0, 0, 0, 0, 0,
       
  8317     0, 0, 0, 0, 0, 0, 0, 0,
       
  8318     0, 0, 0, 0, 2038, 0, 0, 0,
       
  8319     0, 0, 0, 2040, 0, 2042, 0, 0,
       
  8320     2044, 0, 0, 0, 0, 2046, 0, 0,
       
  8321     0, 0, 0, 0, 0, 0, 0, 0,
       
  8322     0, 0, 0, 0, 0, 0, 0, 0,
       
  8323     0, 2048, 0, 0, 2050, 2052, 0, 0,
       
  8324     0, 0, 0, 0, 0, 0, 0, 0,
       
  8325     0, 0, 2054, 2056, 0, 0, 2058, 2060,
       
  8326     0, 0, 2062, 2064, 2066, 2068, 0, 0,
       
  8327     0, 0, 2070, 2072, 0, 0, 2074, 2076,
       
  8328     0, 0, 0, 0, 0, 0, 0, 0,
       
  8329     0, 2078, 2080, 0, 0, 0, 0, 0,
       
  8330     0, 0, 0, 0, 0, 0, 0, 0,
       
  8331     0, 0, 2082, 0, 0, 0, 0, 0,
       
  8332     2084, 2086, 0, 2088, 0, 0, 0, 0,
       
  8333     0, 0, 2090, 2092, 2094, 2096, 0, 0,
       
  8334     0, 0, 0, 0, 0, 0, 0, 0,
       
  8335     0, 0, 0, 0, 0, 0, 0, 0,
       
  8336     0, 0, 0, 0, 0, 0, 0, 0,
       
  8337     0, 0, 0, 0, 0, 0, 0, 0,
       
  8338     0, 0, 0, 0, 0, 0, 0, 0,
       
  8339     0, 0, 0, 0, 0, 0, 0, 0,
       
  8340     0, 0, 0, 0, 0, 0, 0, 0,
       
  8341     0, 0, 0, 0, 0, 0, 0, 0,
       
  8342     0, 0, 0, 0, 0, 0, 0, 0,
       
  8343 };
       
  8344 
       
  8345 static const Q_UINT16 li_30[] = {
       
  8346     0, 0, 0, 0, 0, 0, 0, 0,
       
  8347     0, 0, 0, 0, 0, 0, 0, 0,
       
  8348     0, 0, 0, 0, 0, 0, 0, 0,
       
  8349     0, 0, 0, 0, 0, 0, 0, 0,
       
  8350     0, 0, 0, 0, 0, 0, 0, 0,
       
  8351     0, 0, 0, 0, 0, 0, 0, 0,
       
  8352     0, 0, 0, 0, 0, 0, 0, 0,
       
  8353     0, 0, 0, 0, 0, 0, 0, 0,
       
  8354     0, 0, 0, 0, 0, 0, 2098, 0,
       
  8355     0, 0, 0, 2100, 0, 2102, 0, 2104,
       
  8356     0, 2106, 0, 2108, 0, 2110, 0, 2112,
       
  8357     0, 2114, 0, 2116, 0, 2118, 0, 2120,
       
  8358     0, 2122, 0, 0, 2124, 0, 2126, 0,
       
  8359     2128, 0, 0, 0, 0, 0, 0, 2130,
       
  8360     0, 0, 2133, 0, 0, 2136, 0, 0,
       
  8361     2139, 0, 0, 2142, 0, 0, 0, 0,
       
  8362     0, 0, 0, 0, 0, 0, 0, 0,
       
  8363     0, 0, 0, 0, 0, 0, 0, 0,
       
  8364     0, 0, 0, 0, 0, 0, 0, 0,
       
  8365     0, 0, 0, 0, 0, 2145, 0, 0,
       
  8366     0, 0, 0, 0, 0, 0, 2147, 0,
       
  8367     0, 0, 0, 2149, 0, 2151, 0, 2153,
       
  8368     0, 2155, 0, 2157, 0, 2159, 0, 2161,
       
  8369     0, 2163, 0, 2165, 0, 2167, 0, 2169,
       
  8370     0, 2171, 0, 0, 2173, 0, 2175, 0,
       
  8371     2177, 0, 0, 0, 0, 0, 0, 2179,
       
  8372     0, 0, 2182, 0, 0, 2185, 0, 0,
       
  8373     2188, 0, 0, 2191, 0, 0, 0, 0,
       
  8374     0, 0, 0, 0, 0, 0, 0, 0,
       
  8375     0, 0, 0, 0, 0, 0, 0, 2194,
       
  8376     2196, 2198, 2200, 0, 0, 0, 0, 0,
       
  8377     0, 0, 0, 0, 0, 2202, 0, 0,
       
  8378 };
       
  8379 
       
  8380 static const Q_UINT16 li_FB[] = {
       
  8381     0, 0, 0, 0, 0, 0, 0, 0,
       
  8382     0, 0, 0, 0, 0, 0, 0, 0,
       
  8383     0, 0, 0, 0, 0, 0, 0, 0,
       
  8384     0, 0, 0, 0, 0, 0, 0, 0,
       
  8385     0, 0, 0, 0, 0, 0, 0, 0,
       
  8386     0, 0, 0, 0, 0, 0, 0, 0,
       
  8387     0, 0, 0, 0, 0, 0, 0, 0,
       
  8388     0, 0, 0, 0, 0, 0, 0, 0,
       
  8389     0, 0, 0, 0, 0, 0, 0, 0,
       
  8390     0, 2204, 0, 0, 0, 0, 0, 0,
       
  8391     0, 0, 0, 0, 0, 0, 0, 0,
       
  8392     0, 0, 0, 0, 0, 0, 0, 0,
       
  8393     0, 0, 0, 0, 0, 0, 0, 0,
       
  8394     0, 0, 0, 0, 0, 0, 0, 0,
       
  8395     0, 0, 0, 0, 0, 0, 0, 0,
       
  8396     0, 0, 0, 0, 0, 0, 0, 0,
       
  8397     0, 0, 0, 0, 0, 0, 0, 0,
       
  8398     0, 0, 0, 0, 0, 0, 0, 0,
       
  8399     0, 0, 0, 0, 0, 0, 0, 0,
       
  8400     0, 0, 0, 0, 0, 0, 0, 0,
       
  8401     0, 0, 0, 0, 0, 0, 0, 0,
       
  8402     0, 0, 0, 0, 0, 0, 0, 0,
       
  8403     0, 0, 0, 0, 0, 0, 0, 0,
       
  8404     0, 0, 0, 0, 0, 0, 0, 0,
       
  8405     0, 0, 0, 0, 0, 0, 0, 0,
       
  8406     0, 0, 0, 0, 0, 0, 0, 0,
       
  8407     0, 0, 0, 0, 0, 0, 0, 0,
       
  8408     0, 0, 0, 0, 0, 0, 0, 0,
       
  8409     0, 0, 0, 0, 0, 0, 0, 0,
       
  8410     0, 0, 0, 0, 0, 0, 0, 0,
       
  8411     0, 0, 0, 0, 0, 0, 0, 0,
       
  8412     0, 0, 0, 0, 0, 0, 0, 0,
       
  8413 };
       
  8414 
       
  8415 static const Q_UINT16 * const ligature_info[256] = {
       
  8416     li_00, li_01, li_02, li_03, li_04, li_05, li_06, li_07,
       
  8417     li_07, li_09, li_0A, li_0B, li_0C, li_0D, li_07, li_0F,
       
  8418     li_10, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
       
  8419     li_07, li_07, li_07, li_07, li_07, li_07, li_1E, li_1F,
       
  8420     li_07, li_21, li_22, li_07, li_07, li_07, li_07, li_07,
       
  8421     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
       
  8422     li_30, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
       
  8423     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
       
  8424     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
       
  8425     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
       
  8426     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
       
  8427     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
       
  8428     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
       
  8429     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
       
  8430     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
       
  8431     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
       
  8432     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
       
  8433     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
       
  8434     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
       
  8435     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
       
  8436     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
       
  8437     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
       
  8438     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
       
  8439     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
       
  8440     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
       
  8441     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
       
  8442     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
       
  8443     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
       
  8444     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
       
  8445     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
       
  8446     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
       
  8447     li_07, li_07, li_07, li_FB, li_07, li_07, li_07, li_07,
       
  8448 };
       
  8449 // 16188 bytes
       
  8450 
       
  8451 static const Q_UINT8 dir_00[] = {
       
  8452     18, 18, 18, 18, 18, 18, 18, 18,
       
  8453     18, 8, 7, 8, 9, 7, 18, 18,
       
  8454     18, 18, 18, 18, 18, 18, 18, 18,
       
  8455     18, 18, 18, 18, 7, 7, 7, 8,
       
  8456     9, 10, 10, 4, 4, 4, 10, 10,
       
  8457     138, 138, 10, 4, 6, 4, 6, 3,
       
  8458     2, 2, 2, 2, 2, 2, 2, 2,
       
  8459     2, 2, 6, 10, 138, 10, 138, 10,
       
  8460     10, 0, 0, 0, 0, 0, 0, 0,
       
  8461     0, 0, 0, 0, 0, 0, 0, 0,
       
  8462     0, 0, 0, 0, 0, 0, 0, 0,
       
  8463     0, 0, 0, 138, 10, 138, 10, 10,
       
  8464     10, 0, 0, 0, 0, 0, 0, 0,
       
  8465     0, 0, 0, 0, 0, 0, 0, 0,
       
  8466     0, 0, 0, 0, 0, 0, 0, 0,
       
  8467     0, 0, 0, 138, 10, 138, 10, 18,
       
  8468     18, 18, 18, 18, 18, 7, 18, 18,
       
  8469     18, 18, 18, 18, 18, 18, 18, 18,
       
  8470     18, 18, 18, 18, 18, 18, 18, 18,
       
  8471     18, 18, 18, 18, 18, 18, 18, 18,
       
  8472     6, 10, 4, 4, 4, 4, 10, 10,
       
  8473     10, 10, 0, 138, 10, 10, 10, 10,
       
  8474     4, 4, 2, 2, 10, 0, 10, 10,
       
  8475     10, 2, 0, 138, 10, 10, 10, 10,
       
  8476     0, 0, 0, 0, 0, 0, 0, 0,
       
  8477     0, 0, 0, 0, 0, 0, 0, 0,
       
  8478     0, 0, 0, 0, 0, 0, 0, 10,
       
  8479     0, 0, 0, 0, 0, 0, 0, 0,
       
  8480     0, 0, 0, 0, 0, 0, 0, 0,
       
  8481     0, 0, 0, 0, 0, 0, 0, 0,
       
  8482     0, 0, 0, 0, 0, 0, 0, 10,
       
  8483     0, 0, 0, 0, 0, 0, 0, 0,
       
  8484 };
       
  8485 
       
  8486 static const Q_UINT8 dir_01[] = {
       
  8487     0, 0, 0, 0, 0, 0, 0, 0,
       
  8488     0, 0, 0, 0, 0, 0, 0, 0,
       
  8489     0, 0, 0, 0, 0, 0, 0, 0,
       
  8490     0, 0, 0, 0, 0, 0, 0, 0,
       
  8491     0, 0, 0, 0, 0, 0, 0, 0,
       
  8492     0, 0, 0, 0, 0, 0, 0, 0,
       
  8493     0, 0, 0, 0, 0, 0, 0, 0,
       
  8494     0, 0, 0, 0, 0, 0, 0, 0,
       
  8495     0, 0, 0, 0, 0, 0, 0, 0,
       
  8496     0, 0, 0, 0, 0, 0, 0, 0,
       
  8497     0, 0, 0, 0, 0, 0, 0, 0,
       
  8498     0, 0, 0, 0, 0, 0, 0, 0,
       
  8499     0, 0, 0, 0, 0, 0, 0, 0,
       
  8500     0, 0, 0, 0, 0, 0, 0, 0,
       
  8501     0, 0, 0, 0, 0, 0, 0, 0,
       
  8502     0, 0, 0, 0, 0, 0, 0, 0,
       
  8503     0, 0, 0, 0, 0, 0, 0, 0,
       
  8504     0, 0, 0, 0, 0, 0, 0, 0,
       
  8505     0, 0, 0, 0, 0, 0, 0, 0,
       
  8506     0, 0, 0, 0, 0, 0, 0, 0,
       
  8507     0, 0, 0, 0, 0, 0, 0, 0,
       
  8508     0, 0, 0, 0, 0, 0, 0, 0,
       
  8509     0, 0, 0, 0, 0, 0, 0, 0,
       
  8510     0, 0, 0, 0, 0, 0, 0, 0,
       
  8511     0, 0, 0, 0, 0, 0, 0, 0,
       
  8512     0, 0, 0, 0, 0, 0, 0, 0,
       
  8513     0, 0, 0, 0, 0, 0, 0, 0,
       
  8514     0, 0, 0, 0, 0, 0, 0, 0,
       
  8515     0, 0, 0, 0, 0, 0, 0, 0,
       
  8516     0, 0, 0, 0, 0, 0, 0, 0,
       
  8517     0, 0, 0, 0, 0, 0, 0, 0,
       
  8518     0, 0, 0, 0, 0, 0, 0, 0,
       
  8519 };
       
  8520 
       
  8521 static const Q_UINT8 dir_02[] = {
       
  8522     0, 0, 0, 0, 0, 0, 0, 0,
       
  8523     0, 0, 0, 0, 0, 0, 0, 0,
       
  8524     0, 0, 0, 0, 0, 0, 0, 0,
       
  8525     0, 0, 0, 0, 0, 0, 0, 0,
       
  8526     0, 0, 0, 0, 0, 0, 0, 0,
       
  8527     0, 0, 0, 0, 0, 0, 0, 0,
       
  8528     0, 0, 0, 0, 0, 0, 0, 0,
       
  8529     0, 0, 0, 0, 0, 0, 0, 0,
       
  8530     0, 0, 0, 0, 0, 0, 0, 0,
       
  8531     0, 0, 0, 0, 0, 0, 0, 0,
       
  8532     0, 0, 0, 0, 0, 0, 0, 0,
       
  8533     0, 0, 0, 0, 0, 0, 0, 0,
       
  8534     0, 0, 0, 0, 0, 0, 0, 0,
       
  8535     0, 0, 0, 0, 0, 0, 0, 0,
       
  8536     0, 0, 0, 0, 0, 0, 0, 0,
       
  8537     0, 0, 0, 0, 0, 0, 0, 0,
       
  8538     0, 0, 0, 0, 0, 0, 0, 0,
       
  8539     0, 0, 0, 0, 0, 0, 0, 0,
       
  8540     0, 0, 0, 0, 0, 0, 0, 0,
       
  8541     0, 0, 0, 0, 0, 0, 0, 0,
       
  8542     0, 0, 0, 0, 0, 0, 0, 0,
       
  8543     0, 0, 0, 0, 0, 0, 0, 0,
       
  8544     0, 0, 0, 0, 0, 0, 0, 0,
       
  8545     0, 10, 10, 0, 0, 0, 0, 0,
       
  8546     0, 0, 10, 10, 10, 10, 10, 10,
       
  8547     10, 10, 10, 10, 10, 10, 10, 10,
       
  8548     0, 0, 10, 10, 10, 10, 10, 10,
       
  8549     10, 10, 10, 10, 10, 10, 10, 10,
       
  8550     0, 0, 0, 0, 0, 10, 10, 10,
       
  8551     10, 10, 10, 10, 10, 10, 0, 0,
       
  8552     0, 0, 0, 0, 0, 0, 0, 0,
       
  8553     0, 0, 0, 0, 0, 0, 0, 0,
       
  8554 };
       
  8555 
       
  8556 static const Q_UINT8 dir_03[] = {
       
  8557     17, 17, 17, 17, 17, 17, 17, 17,
       
  8558     17, 17, 17, 17, 17, 17, 17, 17,
       
  8559     17, 17, 17, 17, 17, 17, 17, 17,
       
  8560     17, 17, 17, 17, 17, 17, 17, 17,
       
  8561     17, 17, 17, 17, 17, 17, 17, 17,
       
  8562     17, 17, 17, 17, 17, 17, 17, 17,
       
  8563     17, 17, 17, 17, 17, 17, 17, 17,
       
  8564     17, 17, 17, 17, 17, 17, 17, 17,
       
  8565     17, 17, 17, 17, 17, 17, 17, 17,
       
  8566     17, 17, 17, 17, 17, 17, 17, 0,
       
  8567     0, 0, 0, 0, 0, 0, 0, 0,
       
  8568     0, 0, 0, 0, 0, 0, 0, 0,
       
  8569     17, 17, 17, 0, 0, 0, 0, 0,
       
  8570     0, 0, 0, 0, 0, 0, 0, 0,
       
  8571     0, 0, 0, 0, 10, 10, 0, 0,
       
  8572     0, 0, 0, 0, 0, 0, 10, 0,
       
  8573     0, 0, 0, 0, 10, 10, 0, 10,
       
  8574     0, 0, 0, 0, 0, 0, 0, 0,
       
  8575     0, 0, 0, 0, 0, 0, 0, 0,
       
  8576     0, 0, 0, 0, 0, 0, 0, 0,
       
  8577     0, 0, 0, 0, 0, 0, 0, 0,
       
  8578     0, 0, 0, 0, 0, 0, 0, 0,
       
  8579     0, 0, 0, 0, 0, 0, 0, 0,
       
  8580     0, 0, 0, 0, 0, 0, 0, 0,
       
  8581     0, 0, 0, 0, 0, 0, 0, 0,
       
  8582     0, 0, 0, 0, 0, 0, 0, 0,
       
  8583     0, 0, 0, 0, 0, 0, 0, 0,
       
  8584     0, 0, 0, 0, 0, 0, 0, 0,
       
  8585     0, 0, 0, 0, 0, 0, 0, 0,
       
  8586     0, 0, 0, 0, 0, 0, 0, 0,
       
  8587     0, 0, 0, 0, 0, 0, 0, 0,
       
  8588     0, 0, 0, 0, 0, 0, 0, 0,
       
  8589 };
       
  8590 
       
  8591 static const Q_UINT8 dir_04[] = {
       
  8592     0, 0, 0, 0, 0, 0, 0, 0,
       
  8593     0, 0, 0, 0, 0, 0, 0, 0,
       
  8594     0, 0, 0, 0, 0, 0, 0, 0,
       
  8595     0, 0, 0, 0, 0, 0, 0, 0,
       
  8596     0, 0, 0, 0, 0, 0, 0, 0,
       
  8597     0, 0, 0, 0, 0, 0, 0, 0,
       
  8598     0, 0, 0, 0, 0, 0, 0, 0,
       
  8599     0, 0, 0, 0, 0, 0, 0, 0,
       
  8600     0, 0, 0, 0, 0, 0, 0, 0,
       
  8601     0, 0, 0, 0, 0, 0, 0, 0,
       
  8602     0, 0, 0, 0, 0, 0, 0, 0,
       
  8603     0, 0, 0, 0, 0, 0, 0, 0,
       
  8604     0, 0, 0, 0, 0, 0, 0, 0,
       
  8605     0, 0, 0, 0, 0, 0, 0, 0,
       
  8606     0, 0, 0, 0, 0, 0, 0, 0,
       
  8607     0, 0, 0, 0, 0, 0, 0, 0,
       
  8608     0, 0, 0, 17, 17, 17, 17, 0,
       
  8609     17, 17, 0, 0, 0, 0, 0, 0,
       
  8610     0, 0, 0, 0, 0, 0, 0, 0,
       
  8611     0, 0, 0, 0, 0, 0, 0, 0,
       
  8612     0, 0, 0, 0, 0, 0, 0, 0,
       
  8613     0, 0, 0, 0, 0, 0, 0, 0,
       
  8614     0, 0, 0, 0, 0, 0, 0, 0,
       
  8615     0, 0, 0, 0, 0, 0, 0, 0,
       
  8616     0, 0, 0, 0, 0, 0, 0, 0,
       
  8617     0, 0, 0, 0, 0, 0, 0, 0,
       
  8618     0, 0, 0, 0, 0, 0, 0, 0,
       
  8619     0, 0, 0, 0, 0, 0, 0, 0,
       
  8620     0, 0, 0, 0, 0, 0, 0, 0,
       
  8621     0, 0, 0, 0, 0, 0, 0, 0,
       
  8622     0, 0, 0, 0, 0, 0, 0, 0,
       
  8623     0, 0, 0, 0, 0, 0, 0, 0,
       
  8624 };
       
  8625 
       
  8626 static const Q_UINT8 dir_05[] = {
       
  8627     0, 0, 0, 0, 0, 0, 0, 0,
       
  8628     0, 0, 0, 0, 0, 0, 0, 0,
       
  8629     0, 0, 0, 0, 0, 0, 0, 0,
       
  8630     0, 0, 0, 0, 0, 0, 0, 0,
       
  8631     0, 0, 0, 0, 0, 0, 0, 0,
       
  8632     0, 0, 0, 0, 0, 0, 0, 0,
       
  8633     0, 0, 0, 0, 0, 0, 0, 0,
       
  8634     0, 0, 0, 0, 0, 0, 0, 0,
       
  8635     0, 0, 0, 0, 0, 0, 0, 0,
       
  8636     0, 0, 0, 0, 0, 0, 0, 0,
       
  8637     0, 0, 0, 0, 0, 0, 0, 0,
       
  8638     0, 0, 0, 0, 0, 0, 0, 0,
       
  8639     0, 0, 0, 0, 0, 0, 0, 0,
       
  8640     0, 0, 0, 0, 0, 0, 0, 0,
       
  8641     0, 0, 0, 0, 0, 0, 0, 0,
       
  8642     0, 0, 0, 0, 0, 0, 0, 0,
       
  8643     0, 0, 0, 0, 0, 0, 0, 0,
       
  8644     0, 0, 10, 0, 0, 0, 0, 0,
       
  8645     0, 17, 17, 17, 17, 17, 17, 17,
       
  8646     17, 17, 17, 17, 17, 17, 17, 17,
       
  8647     17, 17, 0, 17, 17, 17, 17, 17,
       
  8648     17, 17, 17, 17, 17, 17, 17, 17,
       
  8649     17, 17, 17, 17, 17, 17, 17, 17,
       
  8650     17, 17, 0, 17, 17, 17, 1, 17,
       
  8651     1, 17, 17, 1, 17, 0, 0, 0,
       
  8652     0, 0, 0, 0, 0, 0, 0, 0,
       
  8653     1, 1, 1, 1, 1, 1, 1, 1,
       
  8654     1, 1, 1, 1, 1, 1, 1, 1,
       
  8655     1, 1, 1, 1, 1, 1, 1, 1,
       
  8656     1, 1, 1, 0, 0, 0, 0, 0,
       
  8657     1, 1, 1, 1, 1, 0, 0, 0,
       
  8658     0, 0, 0, 0, 0, 0, 0, 0,
       
  8659 };
       
  8660 
       
  8661 static const Q_UINT8 dir_06[] = {
       
  8662     0, 0, 0, 0, 0, 0, 0, 0,
       
  8663     0, 0, 0, 0, 6, 0, 0, 0,
       
  8664     0, 0, 0, 0, 0, 0, 0, 0,
       
  8665     0, 0, 0, 13, 0, 0, 0, 13,
       
  8666     0, 13, 77, 77, 77, 77, 45, 77,
       
  8667     45, 77, 45, 45, 45, 45, 45, 77,
       
  8668     77, 77, 77, 45, 45, 45, 45, 45,
       
  8669     45, 45, 45, 0, 0, 0, 0, 0,
       
  8670     109, 45, 45, 45, 45, 45, 45, 45,
       
  8671     77, 77, 45, 17, 17, 17, 17, 17,
       
  8672     17, 17, 17, 17, 17, 17, 0, 0,
       
  8673     0, 0, 0, 0, 0, 0, 0, 0,
       
  8674     5, 5, 5, 5, 5, 5, 5, 5,
       
  8675     5, 5, 4, 5, 5, 13, 0, 0,
       
  8676     17, 13, 77, 77, 13, 77, 77, 77,
       
  8677     45, 45, 45, 45, 45, 45, 45, 45,
       
  8678     45, 45, 45, 45, 45, 45, 45, 45,
       
  8679     77, 77, 77, 77, 77, 77, 77, 77,
       
  8680     77, 77, 77, 77, 77, 77, 77, 77,
       
  8681     77, 77, 45, 45, 45, 45, 45, 45,
       
  8682     45, 45, 45, 45, 45, 45, 45, 45,
       
  8683     45, 45, 45, 45, 45, 45, 45, 45,
       
  8684     45, 45, 45, 45, 45, 45, 45, 45,
       
  8685     45, 45, 45, 45, 45, 45, 45, 45,
       
  8686     77, 45, 77, 77, 77, 77, 77, 77,
       
  8687     77, 77, 77, 77, 45, 77, 45, 77,
       
  8688     45, 45, 77, 77, 13, 13, 17, 17,
       
  8689     17, 17, 17, 17, 17, 17, 17, 17,
       
  8690     17, 17, 17, 17, 17, 13, 13, 17,
       
  8691     17, 10, 17, 17, 17, 17, 0, 0,
       
  8692     2, 2, 2, 2, 2, 2, 2, 2,
       
  8693     2, 2, 45, 45, 45, 13, 13, 0,
       
  8694 };
       
  8695 
       
  8696 static const Q_UINT8 dir_07[] = {
       
  8697     13, 13, 13, 13, 13, 13, 13, 13,
       
  8698     13, 13, 13, 13, 13, 13, 0, 18,
       
  8699     77, 17, 45, 45, 45, 77, 77, 77,
       
  8700     77, 77, 45, 45, 45, 45, 77, 45,
       
  8701     45, 45, 45, 45, 45, 45, 45, 45,
       
  8702     77, 45, 77, 45, 77, 0, 0, 0,
       
  8703     17, 17, 17, 17, 17, 17, 17, 17,
       
  8704     17, 17, 17, 17, 17, 17, 17, 17,
       
  8705     17, 17, 17, 17, 17, 17, 17, 17,
       
  8706     17, 17, 17, 0, 0, 0, 0, 0,
       
  8707     0, 0, 0, 0, 0, 0, 0, 0,
       
  8708     0, 0, 0, 0, 0, 0, 0, 0,
       
  8709     0, 0, 0, 0, 0, 0, 0, 0,
       
  8710     0, 0, 0, 0, 0, 0, 0, 0,
       
  8711     0, 0, 0, 0, 0, 0, 0, 0,
       
  8712     0, 0, 0, 0, 0, 0, 0, 0,
       
  8713     13, 13, 13, 13, 13, 13, 13, 13,
       
  8714     13, 13, 13, 13, 13, 13, 13, 13,
       
  8715     13, 13, 13, 13, 13, 13, 13, 13,
       
  8716     13, 13, 13, 13, 13, 13, 13, 13,
       
  8717     13, 13, 13, 13, 13, 13, 17, 17,
       
  8718     17, 17, 17, 17, 17, 17, 17, 17,
       
  8719     17, 0, 0, 0, 0, 0, 0, 0,
       
  8720     0, 0, 0, 0, 0, 0, 0, 0,
       
  8721     0, 0, 0, 0, 0, 0, 0, 0,
       
  8722     0, 0, 0, 0, 0, 0, 0, 0,
       
  8723     0, 0, 0, 0, 0, 0, 0, 0,
       
  8724     0, 0, 0, 0, 0, 0, 0, 0,
       
  8725     0, 0, 0, 0, 0, 0, 0, 0,
       
  8726     0, 0, 0, 0, 0, 0, 0, 0,
       
  8727     0, 0, 0, 0, 0, 0, 0, 0,
       
  8728     0, 0, 0, 0, 0, 0, 0, 0,
       
  8729 };
       
  8730 
       
  8731 static const Q_UINT8 dir_09[] = {
       
  8732     0, 17, 17, 0, 0, 0, 0, 0,
       
  8733     0, 0, 0, 0, 0, 0, 0, 0,
       
  8734     0, 0, 0, 0, 0, 0, 0, 0,
       
  8735     0, 0, 0, 0, 0, 0, 0, 0,
       
  8736     0, 0, 0, 0, 0, 0, 0, 0,
       
  8737     0, 0, 0, 0, 0, 0, 0, 0,
       
  8738     0, 0, 0, 0, 0, 0, 0, 0,
       
  8739     0, 0, 0, 0, 17, 0, 0, 0,
       
  8740     0, 17, 17, 17, 17, 17, 17, 17,
       
  8741     17, 0, 0, 0, 0, 17, 0, 0,
       
  8742     0, 17, 17, 17, 17, 0, 0, 0,
       
  8743     0, 0, 0, 0, 0, 0, 0, 0,
       
  8744     0, 0, 17, 17, 0, 0, 0, 0,
       
  8745     0, 0, 0, 0, 0, 0, 0, 0,
       
  8746     0, 0, 0, 0, 0, 0, 0, 0,
       
  8747     0, 0, 0, 0, 0, 0, 0, 0,
       
  8748     0, 17, 0, 0, 0, 0, 0, 0,
       
  8749     0, 0, 0, 0, 0, 0, 0, 0,
       
  8750     0, 0, 0, 0, 0, 0, 0, 0,
       
  8751     0, 0, 0, 0, 0, 0, 0, 0,
       
  8752     0, 0, 0, 0, 0, 0, 0, 0,
       
  8753     0, 0, 0, 0, 0, 0, 0, 0,
       
  8754     0, 0, 0, 0, 0, 0, 0, 0,
       
  8755     0, 0, 0, 0, 17, 0, 0, 0,
       
  8756     0, 17, 17, 17, 17, 0, 0, 0,
       
  8757     0, 0, 0, 0, 0, 17, 0, 0,
       
  8758     0, 0, 0, 0, 0, 0, 0, 0,
       
  8759     0, 0, 0, 0, 0, 0, 0, 0,
       
  8760     0, 0, 17, 17, 0, 0, 0, 0,
       
  8761     0, 0, 0, 0, 0, 0, 0, 0,
       
  8762     0, 0, 4, 4, 0, 0, 0, 0,
       
  8763     0, 0, 0, 0, 0, 0, 0, 0,
       
  8764 };
       
  8765 
       
  8766 static const Q_UINT8 dir_0A[] = {
       
  8767     0, 0, 17, 0, 0, 0, 0, 0,
       
  8768     0, 0, 0, 0, 0, 0, 0, 0,
       
  8769     0, 0, 0, 0, 0, 0, 0, 0,
       
  8770     0, 0, 0, 0, 0, 0, 0, 0,
       
  8771     0, 0, 0, 0, 0, 0, 0, 0,
       
  8772     0, 0, 0, 0, 0, 0, 0, 0,
       
  8773     0, 0, 0, 0, 0, 0, 0, 0,
       
  8774     0, 0, 0, 0, 17, 0, 0, 0,
       
  8775     0, 17, 17, 0, 0, 0, 0, 17,
       
  8776     17, 0, 0, 17, 17, 17, 0, 0,
       
  8777     0, 0, 0, 0, 0, 0, 0, 0,
       
  8778     0, 0, 0, 0, 0, 0, 0, 0,
       
  8779     0, 0, 0, 0, 0, 0, 0, 0,
       
  8780     0, 0, 0, 0, 0, 0, 0, 0,
       
  8781     17, 17, 0, 0, 0, 0, 0, 0,
       
  8782     0, 0, 0, 0, 0, 0, 0, 0,
       
  8783     0, 17, 17, 0, 0, 0, 0, 0,
       
  8784     0, 0, 0, 0, 0, 0, 0, 0,
       
  8785     0, 0, 0, 0, 0, 0, 0, 0,
       
  8786     0, 0, 0, 0, 0, 0, 0, 0,
       
  8787     0, 0, 0, 0, 0, 0, 0, 0,
       
  8788     0, 0, 0, 0, 0, 0, 0, 0,
       
  8789     0, 0, 0, 0, 0, 0, 0, 0,
       
  8790     0, 0, 0, 0, 17, 0, 0, 0,
       
  8791     0, 17, 17, 17, 17, 17, 0, 17,
       
  8792     17, 0, 0, 0, 0, 17, 0, 0,
       
  8793     0, 0, 0, 0, 0, 0, 0, 0,
       
  8794     0, 0, 0, 0, 0, 0, 0, 0,
       
  8795     0, 0, 0, 0, 0, 0, 0, 0,
       
  8796     0, 0, 0, 0, 0, 0, 0, 0,
       
  8797     0, 0, 0, 0, 0, 0, 0, 0,
       
  8798     0, 0, 0, 0, 0, 0, 0, 0,
       
  8799 };
       
  8800 
       
  8801 static const Q_UINT8 dir_0B[] = {
       
  8802     0, 17, 0, 0, 0, 0, 0, 0,
       
  8803     0, 0, 0, 0, 0, 0, 0, 0,
       
  8804     0, 0, 0, 0, 0, 0, 0, 0,
       
  8805     0, 0, 0, 0, 0, 0, 0, 0,
       
  8806     0, 0, 0, 0, 0, 0, 0, 0,
       
  8807     0, 0, 0, 0, 0, 0, 0, 0,
       
  8808     0, 0, 0, 0, 0, 0, 0, 0,
       
  8809     0, 0, 0, 0, 17, 0, 0, 17,
       
  8810     0, 17, 17, 17, 0, 0, 0, 0,
       
  8811     0, 0, 0, 0, 0, 17, 0, 0,
       
  8812     0, 0, 0, 0, 0, 0, 17, 0,
       
  8813     0, 0, 0, 0, 0, 0, 0, 0,
       
  8814     0, 0, 0, 0, 0, 0, 0, 0,
       
  8815     0, 0, 0, 0, 0, 0, 0, 0,
       
  8816     0, 0, 0, 0, 0, 0, 0, 0,
       
  8817     0, 0, 0, 0, 0, 0, 0, 0,
       
  8818     0, 0, 17, 0, 0, 0, 0, 0,
       
  8819     0, 0, 0, 0, 0, 0, 0, 0,
       
  8820     0, 0, 0, 0, 0, 0, 0, 0,
       
  8821     0, 0, 0, 0, 0, 0, 0, 0,
       
  8822     0, 0, 0, 0, 0, 0, 0, 0,
       
  8823     0, 0, 0, 0, 0, 0, 0, 0,
       
  8824     0, 0, 0, 0, 0, 0, 0, 0,
       
  8825     0, 0, 0, 0, 0, 0, 0, 0,
       
  8826     17, 0, 0, 0, 0, 0, 0, 0,
       
  8827     0, 0, 0, 0, 0, 17, 0, 0,
       
  8828     0, 0, 0, 0, 0, 0, 0, 0,
       
  8829     0, 0, 0, 0, 0, 0, 0, 0,
       
  8830     0, 0, 0, 0, 0, 0, 0, 0,
       
  8831     0, 0, 0, 0, 0, 0, 0, 0,
       
  8832     0, 0, 0, 0, 0, 0, 0, 0,
       
  8833     0, 0, 0, 0, 0, 0, 0, 0,
       
  8834 };
       
  8835 
       
  8836 static const Q_UINT8 dir_0C[] = {
       
  8837     0, 0, 0, 0, 0, 0, 0, 0,
       
  8838     0, 0, 0, 0, 0, 0, 0, 0,
       
  8839     0, 0, 0, 0, 0, 0, 0, 0,
       
  8840     0, 0, 0, 0, 0, 0, 0, 0,
       
  8841     0, 0, 0, 0, 0, 0, 0, 0,
       
  8842     0, 0, 0, 0, 0, 0, 0, 0,
       
  8843     0, 0, 0, 0, 0, 0, 0, 0,
       
  8844     0, 0, 0, 0, 0, 0, 17, 17,
       
  8845     17, 0, 0, 0, 0, 0, 17, 17,
       
  8846     17, 0, 17, 17, 17, 17, 0, 0,
       
  8847     0, 0, 0, 0, 0, 17, 17, 0,
       
  8848     0, 0, 0, 0, 0, 0, 0, 0,
       
  8849     0, 0, 0, 0, 0, 0, 0, 0,
       
  8850     0, 0, 0, 0, 0, 0, 0, 0,
       
  8851     0, 0, 0, 0, 0, 0, 0, 0,
       
  8852     0, 0, 0, 0, 0, 0, 0, 0,
       
  8853     0, 0, 0, 0, 0, 0, 0, 0,
       
  8854     0, 0, 0, 0, 0, 0, 0, 0,
       
  8855     0, 0, 0, 0, 0, 0, 0, 0,
       
  8856     0, 0, 0, 0, 0, 0, 0, 0,
       
  8857     0, 0, 0, 0, 0, 0, 0, 0,
       
  8858     0, 0, 0, 0, 0, 0, 0, 0,
       
  8859     0, 0, 0, 0, 0, 0, 0, 0,
       
  8860     0, 0, 0, 0, 0, 0, 0, 17,
       
  8861     0, 0, 0, 0, 0, 0, 17, 0,
       
  8862     0, 0, 0, 0, 17, 17, 0, 0,
       
  8863     0, 0, 0, 0, 0, 0, 0, 0,
       
  8864     0, 0, 0, 0, 0, 0, 0, 0,
       
  8865     0, 0, 0, 0, 0, 0, 0, 0,
       
  8866     0, 0, 0, 0, 0, 0, 0, 0,
       
  8867     0, 0, 0, 0, 0, 0, 0, 0,
       
  8868     0, 0, 0, 0, 0, 0, 0, 0,
       
  8869 };
       
  8870 
       
  8871 static const Q_UINT8 dir_0D[] = {
       
  8872     0, 0, 0, 0, 0, 0, 0, 0,
       
  8873     0, 0, 0, 0, 0, 0, 0, 0,
       
  8874     0, 0, 0, 0, 0, 0, 0, 0,
       
  8875     0, 0, 0, 0, 0, 0, 0, 0,
       
  8876     0, 0, 0, 0, 0, 0, 0, 0,
       
  8877     0, 0, 0, 0, 0, 0, 0, 0,
       
  8878     0, 0, 0, 0, 0, 0, 0, 0,
       
  8879     0, 0, 0, 0, 0, 0, 0, 0,
       
  8880     0, 17, 17, 17, 0, 0, 0, 0,
       
  8881     0, 0, 0, 0, 0, 17, 0, 0,
       
  8882     0, 0, 0, 0, 0, 0, 0, 0,
       
  8883     0, 0, 0, 0, 0, 0, 0, 0,
       
  8884     0, 0, 0, 0, 0, 0, 0, 0,
       
  8885     0, 0, 0, 0, 0, 0, 0, 0,
       
  8886     0, 0, 0, 0, 0, 0, 0, 0,
       
  8887     0, 0, 0, 0, 0, 0, 0, 0,
       
  8888     0, 0, 0, 0, 0, 0, 0, 0,
       
  8889     0, 0, 0, 0, 0, 0, 0, 0,
       
  8890     0, 0, 0, 0, 0, 0, 0, 0,
       
  8891     0, 0, 0, 0, 0, 0, 0, 0,
       
  8892     0, 0, 0, 0, 0, 0, 0, 0,
       
  8893     0, 0, 0, 0, 0, 0, 0, 0,
       
  8894     0, 0, 0, 0, 0, 0, 0, 0,
       
  8895     0, 0, 0, 0, 0, 0, 0, 0,
       
  8896     0, 0, 0, 0, 0, 0, 0, 0,
       
  8897     0, 0, 17, 0, 0, 0, 0, 0,
       
  8898     0, 0, 17, 17, 17, 0, 17, 0,
       
  8899     0, 0, 0, 0, 0, 0, 0, 0,
       
  8900     0, 0, 0, 0, 0, 0, 0, 0,
       
  8901     0, 0, 0, 0, 0, 0, 0, 0,
       
  8902     0, 0, 0, 0, 0, 0, 0, 0,
       
  8903     0, 0, 0, 0, 0, 0, 0, 0,
       
  8904 };
       
  8905 
       
  8906 static const Q_UINT8 dir_0E[] = {
       
  8907     0, 0, 0, 0, 0, 0, 0, 0,
       
  8908     0, 0, 0, 0, 0, 0, 0, 0,
       
  8909     0, 0, 0, 0, 0, 0, 0, 0,
       
  8910     0, 0, 0, 0, 0, 0, 0, 0,
       
  8911     0, 0, 0, 0, 0, 0, 0, 0,
       
  8912     0, 0, 0, 0, 0, 0, 0, 0,
       
  8913     0, 17, 0, 0, 17, 17, 17, 17,
       
  8914     17, 17, 17, 0, 0, 0, 0, 4,
       
  8915     0, 0, 0, 0, 0, 0, 0, 17,
       
  8916     17, 17, 17, 17, 17, 17, 17, 0,
       
  8917     0, 0, 0, 0, 0, 0, 0, 0,
       
  8918     0, 0, 0, 0, 0, 0, 0, 0,
       
  8919     0, 0, 0, 0, 0, 0, 0, 0,
       
  8920     0, 0, 0, 0, 0, 0, 0, 0,
       
  8921     0, 0, 0, 0, 0, 0, 0, 0,
       
  8922     0, 0, 0, 0, 0, 0, 0, 0,
       
  8923     0, 0, 0, 0, 0, 0, 0, 0,
       
  8924     0, 0, 0, 0, 0, 0, 0, 0,
       
  8925     0, 0, 0, 0, 0, 0, 0, 0,
       
  8926     0, 0, 0, 0, 0, 0, 0, 0,
       
  8927     0, 0, 0, 0, 0, 0, 0, 0,
       
  8928     0, 0, 0, 0, 0, 0, 0, 0,
       
  8929     0, 17, 0, 0, 17, 17, 17, 17,
       
  8930     17, 17, 0, 17, 17, 0, 0, 0,
       
  8931     0, 0, 0, 0, 0, 0, 0, 0,
       
  8932     17, 17, 17, 17, 17, 17, 0, 0,
       
  8933     0, 0, 0, 0, 0, 0, 0, 0,
       
  8934     0, 0, 0, 0, 0, 0, 0, 0,
       
  8935     0, 0, 0, 0, 0, 0, 0, 0,
       
  8936     0, 0, 0, 0, 0, 0, 0, 0,
       
  8937     0, 0, 0, 0, 0, 0, 0, 0,
       
  8938     0, 0, 0, 0, 0, 0, 0, 0,
       
  8939 };
       
  8940 
       
  8941 static const Q_UINT8 dir_0F[] = {
       
  8942     0, 0, 0, 0, 0, 0, 0, 0,
       
  8943     0, 0, 0, 0, 0, 0, 0, 0,
       
  8944     0, 0, 0, 0, 0, 0, 0, 0,
       
  8945     17, 17, 0, 0, 0, 0, 0, 0,
       
  8946     0, 0, 0, 0, 0, 0, 0, 0,
       
  8947     0, 0, 0, 0, 0, 0, 0, 0,
       
  8948     0, 0, 0, 0, 0, 17, 0, 17,
       
  8949     0, 17, 10, 10, 10, 10, 0, 0,
       
  8950     0, 0, 0, 0, 0, 0, 0, 0,
       
  8951     0, 0, 0, 0, 0, 0, 0, 0,
       
  8952     0, 0, 0, 0, 0, 0, 0, 0,
       
  8953     0, 0, 0, 0, 0, 0, 0, 0,
       
  8954     0, 0, 0, 0, 0, 0, 0, 0,
       
  8955     0, 0, 0, 0, 0, 0, 0, 0,
       
  8956     0, 17, 17, 17, 17, 17, 17, 17,
       
  8957     17, 17, 17, 17, 17, 17, 17, 0,
       
  8958     17, 17, 17, 17, 17, 0, 17, 17,
       
  8959     0, 0, 0, 0, 0, 0, 0, 0,
       
  8960     17, 17, 17, 17, 17, 17, 17, 17,
       
  8961     0, 17, 17, 17, 17, 17, 17, 17,
       
  8962     17, 17, 17, 17, 17, 17, 17, 17,
       
  8963     17, 17, 17, 17, 17, 17, 17, 17,
       
  8964     17, 17, 17, 17, 17, 17, 17, 17,
       
  8965     17, 17, 17, 17, 17, 0, 0, 0,
       
  8966     0, 0, 0, 0, 0, 0, 17, 0,
       
  8967     0, 0, 0, 0, 0, 0, 0, 0,
       
  8968     0, 0, 0, 0, 0, 0, 0, 0,
       
  8969     0, 0, 0, 0, 0, 0, 0, 0,
       
  8970     0, 0, 0, 0, 0, 0, 0, 0,
       
  8971     0, 0, 0, 0, 0, 0, 0, 0,
       
  8972     0, 0, 0, 0, 0, 0, 0, 0,
       
  8973     0, 0, 0, 0, 0, 0, 0, 0,
       
  8974 };
       
  8975 
       
  8976 static const Q_UINT8 dir_10[] = {
       
  8977     0, 0, 0, 0, 0, 0, 0, 0,
       
  8978     0, 0, 0, 0, 0, 0, 0, 0,
       
  8979     0, 0, 0, 0, 0, 0, 0, 0,
       
  8980     0, 0, 0, 0, 0, 0, 0, 0,
       
  8981     0, 0, 0, 0, 0, 0, 0, 0,
       
  8982     0, 0, 0, 0, 0, 17, 17, 17,
       
  8983     17, 0, 17, 0, 0, 0, 17, 17,
       
  8984     0, 17, 0, 0, 0, 0, 0, 0,
       
  8985     0, 0, 0, 0, 0, 0, 0, 0,
       
  8986     0, 0, 0, 0, 0, 0, 0, 0,
       
  8987     0, 0, 0, 0, 0, 0, 0, 0,
       
  8988     17, 17, 0, 0, 0, 0, 0, 0,
       
  8989     0, 0, 0, 0, 0, 0, 0, 0,
       
  8990     0, 0, 0, 0, 0, 0, 0, 0,
       
  8991     0, 0, 0, 0, 0, 0, 0, 0,
       
  8992     0, 0, 0, 0, 0, 0, 0, 0,
       
  8993     0, 0, 0, 0, 0, 0, 0, 0,
       
  8994     0, 0, 0, 0, 0, 0, 0, 0,
       
  8995     0, 0, 0, 0, 0, 0, 0, 0,
       
  8996     0, 0, 0, 0, 0, 0, 0, 0,
       
  8997     0, 0, 0, 0, 0, 0, 0, 0,
       
  8998     0, 0, 0, 0, 0, 0, 0, 0,
       
  8999     0, 0, 0, 0, 0, 0, 0, 0,
       
  9000     0, 0, 0, 0, 0, 0, 0, 0,
       
  9001     0, 0, 0, 0, 0, 0, 0, 0,
       
  9002     0, 0, 0, 0, 0, 0, 0, 0,
       
  9003     0, 0, 0, 0, 0, 0, 0, 0,
       
  9004     0, 0, 0, 0, 0, 0, 0, 0,
       
  9005     0, 0, 0, 0, 0, 0, 0, 0,
       
  9006     0, 0, 0, 0, 0, 0, 0, 0,
       
  9007     0, 0, 0, 0, 0, 0, 0, 0,
       
  9008     0, 0, 0, 0, 0, 0, 0, 0,
       
  9009 };
       
  9010 
       
  9011 static const Q_UINT8 dir_16[] = {
       
  9012     0, 0, 0, 0, 0, 0, 0, 0,
       
  9013     0, 0, 0, 0, 0, 0, 0, 0,
       
  9014     0, 0, 0, 0, 0, 0, 0, 0,
       
  9015     0, 0, 0, 0, 0, 0, 0, 0,
       
  9016     0, 0, 0, 0, 0, 0, 0, 0,
       
  9017     0, 0, 0, 0, 0, 0, 0, 0,
       
  9018     0, 0, 0, 0, 0, 0, 0, 0,
       
  9019     0, 0, 0, 0, 0, 0, 0, 0,
       
  9020     0, 0, 0, 0, 0, 0, 0, 0,
       
  9021     0, 0, 0, 0, 0, 0, 0, 0,
       
  9022     0, 0, 0, 0, 0, 0, 0, 0,
       
  9023     0, 0, 0, 0, 0, 0, 0, 0,
       
  9024     0, 0, 0, 0, 0, 0, 0, 0,
       
  9025     0, 0, 0, 0, 0, 0, 0, 0,
       
  9026     0, 0, 0, 0, 0, 0, 0, 0,
       
  9027     0, 0, 0, 0, 0, 0, 0, 0,
       
  9028     9, 0, 0, 0, 0, 0, 0, 0,
       
  9029     0, 0, 0, 0, 0, 0, 0, 0,
       
  9030     0, 0, 0, 0, 0, 0, 0, 0,
       
  9031     0, 0, 0, 10, 10, 0, 0, 0,
       
  9032     0, 0, 0, 0, 0, 0, 0, 0,
       
  9033     0, 0, 0, 0, 0, 0, 0, 0,
       
  9034     0, 0, 0, 0, 0, 0, 0, 0,
       
  9035     0, 0, 0, 0, 0, 0, 0, 0,
       
  9036     0, 0, 0, 0, 0, 0, 0, 0,
       
  9037     0, 0, 0, 0, 0, 0, 0, 0,
       
  9038     0, 0, 0, 0, 0, 0, 0, 0,
       
  9039     0, 0, 0, 0, 0, 0, 0, 0,
       
  9040     0, 0, 0, 0, 0, 0, 0, 0,
       
  9041     0, 0, 0, 0, 0, 0, 0, 0,
       
  9042     0, 0, 0, 0, 0, 0, 0, 0,
       
  9043     0, 0, 0, 0, 0, 0, 0, 0,
       
  9044 };
       
  9045 
       
  9046 static const Q_UINT8 dir_17[] = {
       
  9047     0, 0, 0, 0, 0, 0, 0, 0,
       
  9048     0, 0, 0, 0, 0, 0, 0, 0,
       
  9049     0, 0, 0, 0, 0, 0, 0, 0,
       
  9050     0, 0, 0, 0, 0, 0, 0, 0,
       
  9051     0, 0, 0, 0, 0, 0, 0, 0,
       
  9052     0, 0, 0, 0, 0, 0, 0, 0,
       
  9053     0, 0, 0, 0, 0, 0, 0, 0,
       
  9054     0, 0, 0, 0, 0, 0, 0, 0,
       
  9055     0, 0, 0, 0, 0, 0, 0, 0,
       
  9056     0, 0, 0, 0, 0, 0, 0, 0,
       
  9057     0, 0, 0, 0, 0, 0, 0, 0,
       
  9058     0, 0, 0, 0, 0, 0, 0, 0,
       
  9059     0, 0, 0, 0, 0, 0, 0, 0,
       
  9060     0, 0, 0, 0, 0, 0, 0, 0,
       
  9061     0, 0, 0, 0, 0, 0, 0, 0,
       
  9062     0, 0, 0, 0, 0, 0, 0, 0,
       
  9063     0, 0, 0, 0, 0, 0, 0, 0,
       
  9064     0, 0, 0, 0, 0, 0, 0, 0,
       
  9065     0, 0, 0, 0, 0, 0, 0, 0,
       
  9066     0, 0, 0, 0, 0, 0, 0, 0,
       
  9067     0, 0, 0, 0, 0, 0, 0, 0,
       
  9068     0, 0, 0, 0, 0, 0, 0, 0,
       
  9069     0, 0, 0, 0, 0, 0, 0, 17,
       
  9070     17, 17, 17, 17, 17, 17, 0, 0,
       
  9071     0, 0, 0, 0, 0, 0, 17, 0,
       
  9072     0, 17, 17, 17, 17, 17, 17, 17,
       
  9073     17, 17, 17, 17, 0, 0, 0, 0,
       
  9074     0, 0, 0, 4, 0, 0, 0, 0,
       
  9075     0, 0, 0, 0, 0, 0, 0, 0,
       
  9076     0, 0, 0, 0, 0, 0, 0, 0,
       
  9077     0, 0, 0, 0, 0, 0, 0, 0,
       
  9078     0, 0, 0, 0, 0, 0, 0, 0,
       
  9079 };
       
  9080 
       
  9081 static const Q_UINT8 dir_18[] = {
       
  9082     10, 10, 10, 10, 10, 10, 10, 10,
       
  9083     10, 10, 10, 18, 18, 18, 18, 0,
       
  9084     0, 0, 0, 0, 0, 0, 0, 0,
       
  9085     0, 0, 0, 0, 0, 0, 0, 0,
       
  9086     0, 0, 0, 0, 0, 0, 0, 0,
       
  9087     0, 0, 0, 0, 0, 0, 0, 0,
       
  9088     0, 0, 0, 0, 0, 0, 0, 0,
       
  9089     0, 0, 0, 0, 0, 0, 0, 0,
       
  9090     0, 0, 0, 0, 0, 0, 0, 0,
       
  9091     0, 0, 0, 0, 0, 0, 0, 0,
       
  9092     0, 0, 0, 0, 0, 0, 0, 0,
       
  9093     0, 0, 0, 0, 0, 0, 0, 0,
       
  9094     0, 0, 0, 0, 0, 0, 0, 0,
       
  9095     0, 0, 0, 0, 0, 0, 0, 0,
       
  9096     0, 0, 0, 0, 0, 0, 0, 0,
       
  9097     0, 0, 0, 0, 0, 0, 0, 0,
       
  9098     0, 0, 0, 0, 0, 0, 0, 0,
       
  9099     0, 0, 0, 0, 0, 0, 0, 0,
       
  9100     0, 0, 0, 0, 0, 0, 0, 0,
       
  9101     0, 0, 0, 0, 0, 0, 0, 0,
       
  9102     0, 0, 0, 0, 0, 0, 0, 0,
       
  9103     0, 17, 0, 0, 0, 0, 0, 0,
       
  9104     0, 0, 0, 0, 0, 0, 0, 0,
       
  9105     0, 0, 0, 0, 0, 0, 0, 0,
       
  9106     0, 0, 0, 0, 0, 0, 0, 0,
       
  9107     0, 0, 0, 0, 0, 0, 0, 0,
       
  9108     0, 0, 0, 0, 0, 0, 0, 0,
       
  9109     0, 0, 0, 0, 0, 0, 0, 0,
       
  9110     0, 0, 0, 0, 0, 0, 0, 0,
       
  9111     0, 0, 0, 0, 0, 0, 0, 0,
       
  9112     0, 0, 0, 0, 0, 0, 0, 0,
       
  9113     0, 0, 0, 0, 0, 0, 0, 0,
       
  9114 };
       
  9115 
       
  9116 static const Q_UINT8 dir_1F[] = {
       
  9117     0, 0, 0, 0, 0, 0, 0, 0,
       
  9118     0, 0, 0, 0, 0, 0, 0, 0,
       
  9119     0, 0, 0, 0, 0, 0, 0, 0,
       
  9120     0, 0, 0, 0, 0, 0, 0, 0,
       
  9121     0, 0, 0, 0, 0, 0, 0, 0,
       
  9122     0, 0, 0, 0, 0, 0, 0, 0,
       
  9123     0, 0, 0, 0, 0, 0, 0, 0,
       
  9124     0, 0, 0, 0, 0, 0, 0, 0,
       
  9125     0, 0, 0, 0, 0, 0, 0, 0,
       
  9126     0, 0, 0, 0, 0, 0, 0, 0,
       
  9127     0, 0, 0, 0, 0, 0, 0, 0,
       
  9128     0, 0, 0, 0, 0, 0, 0, 0,
       
  9129     0, 0, 0, 0, 0, 0, 0, 0,
       
  9130     0, 0, 0, 0, 0, 0, 0, 0,
       
  9131     0, 0, 0, 0, 0, 0, 0, 0,
       
  9132     0, 0, 0, 0, 0, 0, 0, 0,
       
  9133     0, 0, 0, 0, 0, 0, 0, 0,
       
  9134     0, 0, 0, 0, 0, 0, 0, 0,
       
  9135     0, 0, 0, 0, 0, 0, 0, 0,
       
  9136     0, 0, 0, 0, 0, 0, 0, 0,
       
  9137     0, 0, 0, 0, 0, 0, 0, 0,
       
  9138     0, 0, 0, 0, 0, 0, 0, 0,
       
  9139     0, 0, 0, 0, 0, 0, 0, 0,
       
  9140     0, 0, 0, 0, 0, 10, 0, 10,
       
  9141     10, 10, 0, 0, 0, 0, 0, 0,
       
  9142     0, 0, 0, 0, 0, 10, 10, 10,
       
  9143     0, 0, 0, 0, 0, 0, 0, 0,
       
  9144     0, 0, 0, 0, 0, 10, 10, 10,
       
  9145     0, 0, 0, 0, 0, 0, 0, 0,
       
  9146     0, 0, 0, 0, 0, 10, 10, 10,
       
  9147     0, 0, 0, 0, 0, 0, 0, 0,
       
  9148     0, 0, 0, 0, 0, 10, 10, 0,
       
  9149 };
       
  9150 
       
  9151 static const Q_UINT8 dir_20[] = {
       
  9152     9, 9, 9, 9, 9, 9, 9, 9,
       
  9153     9, 9, 9, 18, 18, 18, 0, 1,
       
  9154     10, 10, 10, 10, 10, 10, 10, 10,
       
  9155     10, 10, 10, 10, 10, 10, 10, 10,
       
  9156     10, 10, 10, 10, 10, 10, 10, 10,
       
  9157     9, 7, 11, 14, 16, 12, 15, 9,
       
  9158     4, 4, 4, 4, 4, 10, 10, 10,
       
  9159     10, 138, 138, 10, 10, 10, 10, 10,
       
  9160     10, 10, 10, 10, 10, 138, 138, 0,
       
  9161     10, 10, 10, 10, 10, 10, 0, 0,
       
  9162     0, 0, 0, 0, 0, 0, 0, 0,
       
  9163     0, 0, 0, 0, 0, 0, 0, 0,
       
  9164     0, 0, 0, 0, 0, 0, 0, 0,
       
  9165     0, 0, 18, 18, 18, 18, 18, 18,
       
  9166     2, 0, 0, 0, 2, 2, 2, 2,
       
  9167     2, 2, 4, 4, 10, 138, 138, 0,
       
  9168     2, 2, 2, 2, 2, 2, 2, 2,
       
  9169     2, 2, 4, 4, 10, 138, 138, 0,
       
  9170     0, 0, 0, 0, 0, 0, 0, 0,
       
  9171     0, 0, 0, 0, 0, 0, 0, 0,
       
  9172     4, 4, 4, 4, 4, 4, 4, 4,
       
  9173     4, 4, 4, 4, 4, 4, 4, 4,
       
  9174     0, 0, 0, 0, 0, 0, 0, 0,
       
  9175     0, 0, 0, 0, 0, 0, 0, 0,
       
  9176     0, 0, 0, 0, 0, 0, 0, 0,
       
  9177     0, 0, 0, 0, 0, 0, 0, 0,
       
  9178     17, 17, 17, 17, 17, 17, 17, 17,
       
  9179     17, 17, 17, 17, 17, 17, 17, 17,
       
  9180     17, 17, 17, 17, 0, 0, 0, 0,
       
  9181     0, 0, 0, 0, 0, 0, 0, 0,
       
  9182     0, 0, 0, 0, 0, 0, 0, 0,
       
  9183     0, 0, 0, 0, 0, 0, 0, 0,
       
  9184 };
       
  9185 
       
  9186 static const Q_UINT8 dir_21[] = {
       
  9187     10, 10, 0, 10, 10, 10, 10, 0,
       
  9188     10, 10, 0, 0, 0, 0, 0, 0,
       
  9189     0, 0, 0, 0, 10, 0, 10, 10,
       
  9190     10, 0, 0, 0, 0, 0, 10, 10,
       
  9191     10, 10, 10, 10, 0, 10, 0, 10,
       
  9192     0, 10, 0, 0, 0, 0, 4, 0,
       
  9193     0, 0, 10, 0, 0, 0, 0, 0,
       
  9194     0, 0, 10, 0, 0, 0, 0, 0,
       
  9195     0, 0, 0, 0, 0, 0, 0, 0,
       
  9196     0, 0, 0, 0, 0, 0, 0, 0,
       
  9197     0, 0, 0, 10, 10, 10, 10, 10,
       
  9198     10, 10, 10, 10, 10, 10, 10, 10,
       
  9199     0, 0, 0, 0, 0, 0, 0, 0,
       
  9200     0, 0, 0, 0, 0, 0, 0, 0,
       
  9201     0, 0, 0, 0, 0, 0, 0, 0,
       
  9202     0, 0, 0, 0, 0, 0, 0, 0,
       
  9203     0, 0, 0, 0, 0, 0, 0, 0,
       
  9204     0, 0, 0, 0, 0, 0, 0, 0,
       
  9205     10, 10, 10, 10, 10, 10, 10, 10,
       
  9206     10, 10, 10, 10, 10, 10, 10, 10,
       
  9207     10, 10, 10, 10, 10, 10, 10, 10,
       
  9208     10, 10, 10, 10, 10, 10, 10, 10,
       
  9209     10, 10, 10, 10, 10, 10, 10, 10,
       
  9210     10, 10, 10, 10, 10, 10, 10, 10,
       
  9211     10, 10, 10, 10, 10, 10, 10, 10,
       
  9212     10, 10, 10, 10, 10, 10, 10, 10,
       
  9213     10, 10, 10, 10, 10, 10, 10, 10,
       
  9214     10, 10, 10, 10, 10, 10, 10, 10,
       
  9215     10, 10, 10, 10, 10, 10, 10, 10,
       
  9216     10, 10, 10, 10, 10, 10, 10, 10,
       
  9217     10, 10, 10, 10, 0, 0, 0, 0,
       
  9218     0, 0, 0, 0, 0, 0, 0, 0,
       
  9219 };
       
  9220 
       
  9221 static const Q_UINT8 dir_22[] = {
       
  9222     10, 138, 138, 138, 138, 10, 10, 10,
       
  9223     138, 138, 138, 138, 138, 138, 10, 10,
       
  9224     10, 138, 4, 4, 10, 138, 138, 10,
       
  9225     10, 10, 138, 138, 138, 138, 10, 138,
       
  9226     138, 138, 138, 10, 138, 10, 138, 10,
       
  9227     10, 10, 10, 138, 138, 138, 138, 138,
       
  9228     138, 138, 138, 138, 10, 10, 10, 10,
       
  9229     10, 138, 10, 138, 138, 138, 138, 138,
       
  9230     138, 138, 138, 138, 138, 138, 138, 138,
       
  9231     138, 138, 138, 138, 138, 10, 10, 10,
       
  9232     10, 10, 138, 138, 138, 138, 10, 10,
       
  9233     10, 10, 10, 10, 10, 10, 10, 138,
       
  9234     138, 10, 138, 10, 138, 138, 138, 138,
       
  9235     138, 138, 138, 138, 10, 10, 138, 138,
       
  9236     138, 138, 138, 138, 138, 138, 138, 138,
       
  9237     138, 138, 138, 138, 138, 138, 138, 138,
       
  9238     138, 138, 138, 138, 138, 138, 138, 138,
       
  9239     138, 138, 138, 138, 138, 10, 10, 138,
       
  9240     138, 138, 138, 10, 10, 10, 10, 10,
       
  9241     138, 10, 10, 10, 10, 10, 10, 10,
       
  9242     10, 10, 138, 138, 10, 10, 138, 138,
       
  9243     138, 138, 138, 138, 138, 138, 138, 138,
       
  9244     138, 138, 138, 138, 138, 138, 138, 138,
       
  9245     138, 10, 10, 10, 10, 10, 138, 138,
       
  9246     10, 10, 10, 10, 10, 10, 10, 10,
       
  9247     10, 138, 138, 138, 138, 138, 10, 10,
       
  9248     138, 138, 10, 10, 10, 10, 138, 138,
       
  9249     138, 138, 138, 138, 138, 138, 138, 138,
       
  9250     138, 138, 138, 138, 138, 138, 138, 138,
       
  9251     138, 138, 138, 138, 138, 138, 10, 10,
       
  9252     138, 138, 0, 0, 0, 0, 0, 0,
       
  9253     0, 0, 0, 0, 0, 0, 0, 0,
       
  9254 };
       
  9255 
       
  9256 static const Q_UINT8 dir_23[] = {
       
  9257     10, 10, 10, 10, 10, 10, 10, 10,
       
  9258     138, 138, 138, 138, 10, 10, 10, 10,
       
  9259     10, 10, 10, 10, 10, 10, 10, 10,
       
  9260     10, 10, 10, 10, 10, 10, 10, 10,
       
  9261     138, 138, 10, 10, 10, 10, 10, 10,
       
  9262     10, 138, 138, 10, 10, 10, 10, 10,
       
  9263     10, 10, 10, 10, 10, 10, 0, 0,
       
  9264     0, 0, 0, 0, 0, 0, 0, 0,
       
  9265     0, 0, 0, 0, 0, 0, 0, 0,
       
  9266     0, 0, 0, 0, 0, 0, 0, 0,
       
  9267     0, 0, 0, 0, 0, 0, 0, 0,
       
  9268     0, 0, 0, 0, 0, 0, 0, 0,
       
  9269     0, 0, 0, 0, 0, 0, 0, 0,
       
  9270     0, 0, 0, 0, 0, 0, 0, 0,
       
  9271     0, 0, 0, 0, 0, 0, 0, 0,
       
  9272     0, 0, 0, 10, 0, 10, 10, 10,
       
  9273     10, 10, 10, 10, 10, 10, 10, 10,
       
  9274     10, 10, 10, 10, 10, 10, 10, 10,
       
  9275     10, 10, 10, 10, 10, 0, 10, 10,
       
  9276     10, 10, 10, 0, 0, 0, 0, 0,
       
  9277     0, 0, 0, 0, 0, 0, 0, 0,
       
  9278     0, 0, 0, 0, 0, 0, 0, 0,
       
  9279     0, 0, 0, 0, 0, 0, 0, 0,
       
  9280     0, 0, 0, 0, 0, 0, 0, 0,
       
  9281     0, 0, 0, 0, 0, 0, 0, 0,
       
  9282     0, 0, 0, 0, 0, 0, 0, 0,
       
  9283     0, 0, 0, 0, 0, 0, 0, 0,
       
  9284     0, 0, 0, 0, 0, 0, 0, 0,
       
  9285     0, 0, 0, 0, 0, 0, 0, 0,
       
  9286     0, 0, 0, 0, 0, 0, 0, 0,
       
  9287     0, 0, 0, 0, 0, 0, 0, 0,
       
  9288     0, 0, 0, 0, 0, 0, 0, 0,
       
  9289 };
       
  9290 
       
  9291 static const Q_UINT8 dir_24[] = {
       
  9292     10, 10, 10, 10, 10, 10, 10, 10,
       
  9293     10, 10, 10, 10, 10, 10, 10, 10,
       
  9294     10, 10, 10, 10, 10, 10, 10, 10,
       
  9295     10, 10, 10, 10, 10, 10, 10, 10,
       
  9296     10, 10, 10, 10, 10, 10, 10, 0,
       
  9297     0, 0, 0, 0, 0, 0, 0, 0,
       
  9298     0, 0, 0, 0, 0, 0, 0, 0,
       
  9299     0, 0, 0, 0, 0, 0, 0, 0,
       
  9300     10, 10, 10, 10, 10, 10, 10, 10,
       
  9301     10, 10, 10, 0, 0, 0, 0, 0,
       
  9302     0, 0, 0, 0, 0, 0, 0, 0,
       
  9303     0, 0, 0, 0, 0, 0, 0, 0,
       
  9304     2, 2, 2, 2, 2, 2, 2, 2,
       
  9305     2, 2, 2, 2, 2, 2, 2, 2,
       
  9306     2, 2, 2, 2, 2, 2, 2, 2,
       
  9307     2, 2, 2, 2, 2, 2, 2, 2,
       
  9308     2, 2, 2, 2, 2, 2, 2, 2,
       
  9309     2, 2, 2, 2, 2, 2, 2, 2,
       
  9310     2, 2, 2, 2, 2, 2, 2, 2,
       
  9311     2, 2, 2, 2, 0, 0, 0, 0,
       
  9312     0, 0, 0, 0, 0, 0, 0, 0,
       
  9313     0, 0, 0, 0, 0, 0, 0, 0,
       
  9314     0, 0, 0, 0, 0, 0, 0, 0,
       
  9315     0, 0, 0, 0, 0, 0, 0, 0,
       
  9316     0, 0, 0, 0, 0, 0, 0, 0,
       
  9317     0, 0, 0, 0, 0, 0, 0, 0,
       
  9318     0, 0, 0, 0, 0, 0, 0, 0,
       
  9319     0, 0, 0, 0, 0, 0, 0, 0,
       
  9320     0, 0, 0, 0, 0, 0, 0, 0,
       
  9321     0, 0, 2, 0, 0, 0, 0, 0,
       
  9322     0, 0, 0, 0, 0, 0, 0, 0,
       
  9323     0, 0, 0, 0, 0, 0, 0, 0,
       
  9324 };
       
  9325 
       
  9326 static const Q_UINT8 dir_25[] = {
       
  9327     10, 10, 10, 10, 10, 10, 10, 10,
       
  9328     10, 10, 10, 10, 10, 10, 10, 10,
       
  9329     10, 10, 10, 10, 10, 10, 10, 10,
       
  9330     10, 10, 10, 10, 10, 10, 10, 10,
       
  9331     10, 10, 10, 10, 10, 10, 10, 10,
       
  9332     10, 10, 10, 10, 10, 10, 10, 10,
       
  9333     10, 10, 10, 10, 10, 10, 10, 10,
       
  9334     10, 10, 10, 10, 10, 10, 10, 10,
       
  9335     10, 10, 10, 10, 10, 10, 10, 10,
       
  9336     10, 10, 10, 10, 10, 10, 10, 10,
       
  9337     10, 10, 10, 10, 10, 10, 10, 10,
       
  9338     10, 10, 10, 10, 10, 10, 10, 10,
       
  9339     10, 10, 10, 10, 10, 10, 10, 10,
       
  9340     10, 10, 10, 10, 10, 10, 10, 10,
       
  9341     10, 10, 10, 10, 10, 10, 10, 10,
       
  9342     10, 10, 10, 10, 10, 10, 10, 10,
       
  9343     10, 10, 10, 10, 10, 10, 10, 10,
       
  9344     10, 10, 10, 10, 10, 10, 10, 10,
       
  9345     10, 10, 10, 10, 10, 10, 0, 0,
       
  9346     0, 0, 0, 0, 0, 0, 0, 0,
       
  9347     10, 10, 10, 10, 10, 10, 10, 10,
       
  9348     10, 10, 10, 10, 10, 10, 10, 10,
       
  9349     10, 10, 10, 10, 10, 10, 10, 10,
       
  9350     10, 10, 10, 10, 10, 10, 10, 10,
       
  9351     10, 10, 10, 10, 10, 10, 10, 10,
       
  9352     10, 10, 10, 10, 10, 10, 10, 10,
       
  9353     10, 10, 10, 10, 10, 10, 10, 10,
       
  9354     10, 10, 10, 10, 10, 10, 10, 10,
       
  9355     10, 10, 10, 10, 10, 10, 10, 10,
       
  9356     10, 10, 10, 10, 10, 10, 10, 10,
       
  9357     10, 10, 10, 10, 10, 10, 10, 10,
       
  9358     0, 0, 0, 0, 0, 0, 0, 0,
       
  9359 };
       
  9360 
       
  9361 static const Q_UINT8 dir_26[] = {
       
  9362     10, 10, 10, 10, 10, 10, 10, 10,
       
  9363     10, 10, 10, 10, 10, 10, 10, 10,
       
  9364     10, 10, 10, 10, 0, 0, 0, 0,
       
  9365     0, 10, 10, 10, 10, 10, 10, 10,
       
  9366     10, 10, 10, 10, 10, 10, 10, 10,
       
  9367     10, 10, 10, 10, 10, 10, 10, 10,
       
  9368     10, 10, 10, 10, 10, 10, 10, 10,
       
  9369     10, 10, 10, 10, 10, 10, 10, 10,
       
  9370     10, 10, 10, 10, 10, 10, 10, 10,
       
  9371     10, 10, 10, 10, 10, 10, 10, 10,
       
  9372     10, 10, 10, 10, 10, 10, 10, 10,
       
  9373     10, 10, 10, 10, 10, 10, 10, 10,
       
  9374     10, 10, 10, 10, 10, 10, 10, 10,
       
  9375     10, 10, 10, 10, 10, 10, 10, 10,
       
  9376     10, 10, 0, 0, 0, 0, 0, 0,
       
  9377     0, 0, 0, 0, 0, 0, 0, 0,
       
  9378     0, 0, 0, 0, 0, 0, 0, 0,
       
  9379     0, 0, 0, 0, 0, 0, 0, 0,
       
  9380     0, 0, 0, 0, 0, 0, 0, 0,
       
  9381     0, 0, 0, 0, 0, 0, 0, 0,
       
  9382     0, 0, 0, 0, 0, 0, 0, 0,
       
  9383     0, 0, 0, 0, 0, 0, 0, 0,
       
  9384     0, 0, 0, 0, 0, 0, 0, 0,
       
  9385     0, 0, 0, 0, 0, 0, 0, 0,
       
  9386     0, 0, 0, 0, 0, 0, 0, 0,
       
  9387     0, 0, 0, 0, 0, 0, 0, 0,
       
  9388     0, 0, 0, 0, 0, 0, 0, 0,
       
  9389     0, 0, 0, 0, 0, 0, 0, 0,
       
  9390     0, 0, 0, 0, 0, 0, 0, 0,
       
  9391     0, 0, 0, 0, 0, 0, 0, 0,
       
  9392     0, 0, 0, 0, 0, 0, 0, 0,
       
  9393     0, 0, 0, 0, 0, 0, 0, 0,
       
  9394 };
       
  9395 
       
  9396 static const Q_UINT8 dir_27[] = {
       
  9397     0, 10, 10, 10, 10, 0, 10, 10,
       
  9398     10, 10, 0, 0, 10, 10, 10, 10,
       
  9399     10, 10, 10, 10, 10, 10, 10, 10,
       
  9400     10, 10, 10, 10, 10, 10, 10, 10,
       
  9401     10, 10, 10, 10, 10, 10, 10, 10,
       
  9402     0, 10, 10, 10, 10, 10, 10, 10,
       
  9403     10, 10, 10, 10, 10, 10, 10, 10,
       
  9404     10, 10, 10, 10, 10, 10, 10, 10,
       
  9405     10, 10, 10, 10, 10, 10, 10, 10,
       
  9406     10, 10, 10, 10, 0, 10, 0, 10,
       
  9407     10, 10, 10, 0, 0, 0, 10, 0,
       
  9408     10, 10, 10, 10, 10, 10, 10, 0,
       
  9409     0, 10, 10, 10, 10, 10, 10, 10,
       
  9410     0, 0, 0, 0, 0, 0, 0, 0,
       
  9411     0, 0, 0, 0, 0, 0, 10, 10,
       
  9412     10, 10, 10, 10, 10, 10, 10, 10,
       
  9413     10, 10, 10, 10, 10, 10, 10, 10,
       
  9414     10, 10, 10, 10, 10, 10, 10, 10,
       
  9415     10, 10, 10, 10, 10, 0, 0, 0,
       
  9416     10, 10, 10, 10, 10, 10, 10, 10,
       
  9417     10, 10, 10, 10, 10, 10, 10, 10,
       
  9418     10, 10, 10, 10, 10, 10, 10, 10,
       
  9419     0, 10, 10, 10, 10, 10, 10, 10,
       
  9420     10, 10, 10, 10, 10, 10, 10, 0,
       
  9421     0, 0, 0, 0, 0, 0, 0, 0,
       
  9422     0, 0, 0, 0, 0, 0, 0, 0,
       
  9423     0, 0, 0, 0, 0, 0, 0, 0,
       
  9424     0, 0, 0, 0, 0, 0, 0, 0,
       
  9425     0, 0, 0, 0, 0, 0, 0, 0,
       
  9426     0, 0, 0, 0, 0, 0, 0, 0,
       
  9427     0, 0, 0, 0, 0, 0, 0, 0,
       
  9428     0, 0, 0, 0, 0, 0, 0, 0,
       
  9429 };
       
  9430 
       
  9431 static const Q_UINT8 dir_28[] = {
       
  9432     10, 10, 10, 10, 10, 10, 10, 10,
       
  9433     10, 10, 10, 10, 10, 10, 10, 10,
       
  9434     10, 10, 10, 10, 10, 10, 10, 10,
       
  9435     10, 10, 10, 10, 10, 10, 10, 10,
       
  9436     10, 10, 10, 10, 10, 10, 10, 10,
       
  9437     10, 10, 10, 10, 10, 10, 10, 10,
       
  9438     10, 10, 10, 10, 10, 10, 10, 10,
       
  9439     10, 10, 10, 10, 10, 10, 10, 10,
       
  9440     10, 10, 10, 10, 10, 10, 10, 10,
       
  9441     10, 10, 10, 10, 10, 10, 10, 10,
       
  9442     10, 10, 10, 10, 10, 10, 10, 10,
       
  9443     10, 10, 10, 10, 10, 10, 10, 10,
       
  9444     10, 10, 10, 10, 10, 10, 10, 10,
       
  9445     10, 10, 10, 10, 10, 10, 10, 10,
       
  9446     10, 10, 10, 10, 10, 10, 10, 10,
       
  9447     10, 10, 10, 10, 10, 10, 10, 10,
       
  9448     10, 10, 10, 10, 10, 10, 10, 10,
       
  9449     10, 10, 10, 10, 10, 10, 10, 10,
       
  9450     10, 10, 10, 10, 10, 10, 10, 10,
       
  9451     10, 10, 10, 10, 10, 10, 10, 10,
       
  9452     10, 10, 10, 10, 10, 10, 10, 10,
       
  9453     10, 10, 10, 10, 10, 10, 10, 10,
       
  9454     10, 10, 10, 10, 10, 10, 10, 10,
       
  9455     10, 10, 10, 10, 10, 10, 10, 10,
       
  9456     10, 10, 10, 10, 10, 10, 10, 10,
       
  9457     10, 10, 10, 10, 10, 10, 10, 10,
       
  9458     10, 10, 10, 10, 10, 10, 10, 10,
       
  9459     10, 10, 10, 10, 10, 10, 10, 10,
       
  9460     10, 10, 10, 10, 10, 10, 10, 10,
       
  9461     10, 10, 10, 10, 10, 10, 10, 10,
       
  9462     10, 10, 10, 10, 10, 10, 10, 10,
       
  9463     10, 10, 10, 10, 10, 10, 10, 10,
       
  9464 };
       
  9465 
       
  9466 static const Q_UINT8 dir_2E[] = {
       
  9467     0, 0, 0, 0, 0, 0, 0, 0,
       
  9468     0, 0, 0, 0, 0, 0, 0, 0,
       
  9469     0, 0, 0, 0, 0, 0, 0, 0,
       
  9470     0, 0, 0, 0, 0, 0, 0, 0,
       
  9471     0, 0, 0, 0, 0, 0, 0, 0,
       
  9472     0, 0, 0, 0, 0, 0, 0, 0,
       
  9473     0, 0, 0, 0, 0, 0, 0, 0,
       
  9474     0, 0, 0, 0, 0, 0, 0, 0,
       
  9475     0, 0, 0, 0, 0, 0, 0, 0,
       
  9476     0, 0, 0, 0, 0, 0, 0, 0,
       
  9477     0, 0, 0, 0, 0, 0, 0, 0,
       
  9478     0, 0, 0, 0, 0, 0, 0, 0,
       
  9479     0, 0, 0, 0, 0, 0, 0, 0,
       
  9480     0, 0, 0, 0, 0, 0, 0, 0,
       
  9481     0, 0, 0, 0, 0, 0, 0, 0,
       
  9482     0, 0, 0, 0, 0, 0, 0, 0,
       
  9483     10, 10, 10, 10, 10, 10, 10, 10,
       
  9484     10, 10, 10, 10, 10, 10, 10, 10,
       
  9485     10, 10, 10, 10, 10, 10, 10, 10,
       
  9486     10, 10, 0, 10, 10, 10, 10, 10,
       
  9487     10, 10, 10, 10, 10, 10, 10, 10,
       
  9488     10, 10, 10, 10, 10, 10, 10, 10,
       
  9489     10, 10, 10, 10, 10, 10, 10, 10,
       
  9490     10, 10, 10, 10, 10, 10, 10, 10,
       
  9491     10, 10, 10, 10, 10, 10, 10, 10,
       
  9492     10, 10, 10, 10, 10, 10, 10, 10,
       
  9493     10, 10, 10, 10, 10, 10, 10, 10,
       
  9494     10, 10, 10, 10, 10, 10, 10, 10,
       
  9495     10, 10, 10, 10, 10, 10, 10, 10,
       
  9496     10, 10, 10, 10, 10, 10, 10, 10,
       
  9497     10, 10, 10, 10, 0, 0, 0, 0,
       
  9498     0, 0, 0, 0, 0, 0, 0, 0,
       
  9499 };
       
  9500 
       
  9501 static const Q_UINT8 dir_2F[] = {
       
  9502     10, 10, 10, 10, 10, 10, 10, 10,
       
  9503     10, 10, 10, 10, 10, 10, 10, 10,
       
  9504     10, 10, 10, 10, 10, 10, 10, 10,
       
  9505     10, 10, 10, 10, 10, 10, 10, 10,
       
  9506     10, 10, 10, 10, 10, 10, 10, 10,
       
  9507     10, 10, 10, 10, 10, 10, 10, 10,
       
  9508     10, 10, 10, 10, 10, 10, 10, 10,
       
  9509     10, 10, 10, 10, 10, 10, 10, 10,
       
  9510     10, 10, 10, 10, 10, 10, 10, 10,
       
  9511     10, 10, 10, 10, 10, 10, 10, 10,
       
  9512     10, 10, 10, 10, 10, 10, 10, 10,
       
  9513     10, 10, 10, 10, 10, 10, 10, 10,
       
  9514     10, 10, 10, 10, 10, 10, 10, 10,
       
  9515     10, 10, 10, 10, 10, 10, 10, 10,
       
  9516     10, 10, 10, 10, 10, 10, 10, 10,
       
  9517     10, 10, 10, 10, 10, 10, 10, 10,
       
  9518     10, 10, 10, 10, 10, 10, 10, 10,
       
  9519     10, 10, 10, 10, 10, 10, 10, 10,
       
  9520     10, 10, 10, 10, 10, 10, 10, 10,
       
  9521     10, 10, 10, 10, 10, 10, 10, 10,
       
  9522     10, 10, 10, 10, 10, 10, 10, 10,
       
  9523     10, 10, 10, 10, 10, 10, 10, 10,
       
  9524     10, 10, 10, 10, 10, 10, 10, 10,
       
  9525     10, 10, 10, 10, 10, 10, 10, 10,
       
  9526     10, 10, 10, 10, 10, 10, 10, 10,
       
  9527     10, 10, 10, 10, 10, 10, 10, 10,
       
  9528     10, 10, 10, 10, 10, 10, 0, 0,
       
  9529     0, 0, 0, 0, 0, 0, 0, 0,
       
  9530     0, 0, 0, 0, 0, 0, 0, 0,
       
  9531     0, 0, 0, 0, 0, 0, 0, 0,
       
  9532     10, 10, 10, 10, 10, 10, 10, 10,
       
  9533     10, 10, 10, 10, 0, 0, 0, 0,
       
  9534 };
       
  9535 
       
  9536 static const Q_UINT8 dir_30[] = {
       
  9537     9, 10, 10, 10, 10, 0, 0, 0,
       
  9538     138, 138, 138, 138, 138, 138, 138, 138,
       
  9539     138, 138, 10, 10, 138, 138, 138, 138,
       
  9540     138, 138, 138, 138, 10, 10, 10, 10,
       
  9541     10, 0, 0, 0, 0, 0, 0, 0,
       
  9542     0, 0, 17, 17, 17, 17, 17, 17,
       
  9543     10, 0, 0, 0, 0, 0, 10, 10,
       
  9544     0, 0, 0, 0, 0, 0, 10, 10,
       
  9545     0, 0, 0, 0, 0, 0, 0, 0,
       
  9546     0, 0, 0, 0, 0, 0, 0, 0,
       
  9547     0, 0, 0, 0, 0, 0, 0, 0,
       
  9548     0, 0, 0, 0, 0, 0, 0, 0,
       
  9549     0, 0, 0, 0, 0, 0, 0, 0,
       
  9550     0, 0, 0, 0, 0, 0, 0, 0,
       
  9551     0, 0, 0, 0, 0, 0, 0, 0,
       
  9552     0, 0, 0, 0, 0, 0, 0, 0,
       
  9553     0, 0, 0, 0, 0, 0, 0, 0,
       
  9554     0, 0, 0, 0, 0, 0, 0, 0,
       
  9555     0, 0, 0, 0, 0, 0, 0, 0,
       
  9556     0, 17, 17, 10, 10, 0, 0, 0,
       
  9557     0, 0, 0, 0, 0, 0, 0, 0,
       
  9558     0, 0, 0, 0, 0, 0, 0, 0,
       
  9559     0, 0, 0, 0, 0, 0, 0, 0,
       
  9560     0, 0, 0, 0, 0, 0, 0, 0,
       
  9561     0, 0, 0, 0, 0, 0, 0, 0,
       
  9562     0, 0, 0, 0, 0, 0, 0, 0,
       
  9563     0, 0, 0, 0, 0, 0, 0, 0,
       
  9564     0, 0, 0, 0, 0, 0, 0, 0,
       
  9565     0, 0, 0, 0, 0, 0, 0, 0,
       
  9566     0, 0, 0, 0, 0, 0, 0, 0,
       
  9567     0, 0, 0, 0, 0, 0, 0, 0,
       
  9568     0, 0, 0, 10, 0, 0, 0, 0,
       
  9569 };
       
  9570 
       
  9571 static const Q_UINT8 dir_A4[] = {
       
  9572     0, 0, 0, 0, 0, 0, 0, 0,
       
  9573     0, 0, 0, 0, 0, 0, 0, 0,
       
  9574     0, 0, 0, 0, 0, 0, 0, 0,
       
  9575     0, 0, 0, 0, 0, 0, 0, 0,
       
  9576     0, 0, 0, 0, 0, 0, 0, 0,
       
  9577     0, 0, 0, 0, 0, 0, 0, 0,
       
  9578     0, 0, 0, 0, 0, 0, 0, 0,
       
  9579     0, 0, 0, 0, 0, 0, 0, 0,
       
  9580     0, 0, 0, 0, 0, 0, 0, 0,
       
  9581     0, 0, 0, 0, 0, 0, 0, 0,
       
  9582     0, 0, 0, 0, 0, 0, 0, 0,
       
  9583     0, 0, 0, 0, 0, 0, 0, 0,
       
  9584     0, 0, 0, 0, 0, 0, 0, 0,
       
  9585     0, 0, 0, 0, 0, 0, 0, 0,
       
  9586     0, 0, 0, 0, 0, 0, 0, 0,
       
  9587     0, 0, 0, 0, 0, 0, 0, 0,
       
  9588     0, 0, 0, 0, 0, 0, 0, 0,
       
  9589     0, 0, 0, 0, 0, 0, 0, 0,
       
  9590     10, 10, 10, 10, 10, 10, 10, 10,
       
  9591     10, 10, 10, 10, 10, 10, 10, 10,
       
  9592     10, 10, 0, 0, 10, 10, 10, 10,
       
  9593     10, 10, 10, 10, 10, 10, 10, 10,
       
  9594     10, 10, 10, 10, 0, 10, 10, 10,
       
  9595     10, 10, 10, 10, 10, 10, 10, 10,
       
  9596     10, 0, 10, 10, 10, 0, 10, 0,
       
  9597     0, 0, 0, 0, 0, 0, 0, 0,
       
  9598     0, 0, 0, 0, 0, 0, 0, 0,
       
  9599     0, 0, 0, 0, 0, 0, 0, 0,
       
  9600     0, 0, 0, 0, 0, 0, 0, 0,
       
  9601     0, 0, 0, 0, 0, 0, 0, 0,
       
  9602     0, 0, 0, 0, 0, 0, 0, 0,
       
  9603     0, 0, 0, 0, 0, 0, 0, 0,
       
  9604 };
       
  9605 
       
  9606 static const Q_UINT8 dir_FB[] = {
       
  9607     0, 0, 0, 0, 0, 0, 0, 0,
       
  9608     0, 0, 0, 0, 0, 0, 0, 0,
       
  9609     0, 0, 0, 0, 0, 0, 0, 0,
       
  9610     0, 0, 0, 0, 0, 1, 17, 1,
       
  9611     1, 1, 1, 1, 1, 1, 1, 1,
       
  9612     1, 4, 1, 1, 1, 1, 1, 1,
       
  9613     1, 1, 1, 1, 1, 1, 1, 0,
       
  9614     1, 1, 1, 1, 1, 0, 1, 0,
       
  9615     1, 1, 0, 1, 1, 0, 1, 1,
       
  9616     1, 1, 1, 1, 1, 1, 1, 1,
       
  9617     13, 13, 13, 13, 13, 13, 13, 13,
       
  9618     13, 13, 13, 13, 13, 13, 13, 13,
       
  9619     13, 13, 13, 13, 13, 13, 13, 13,
       
  9620     13, 13, 13, 13, 13, 13, 13, 13,
       
  9621     13, 13, 13, 13, 13, 13, 13, 13,
       
  9622     13, 13, 13, 13, 13, 13, 13, 13,
       
  9623     13, 13, 13, 13, 13, 13, 13, 13,
       
  9624     13, 13, 13, 13, 13, 13, 13, 13,
       
  9625     13, 13, 13, 13, 13, 13, 13, 13,
       
  9626     13, 13, 13, 13, 13, 13, 13, 13,
       
  9627     13, 13, 13, 13, 13, 13, 13, 13,
       
  9628     13, 13, 13, 13, 13, 13, 13, 13,
       
  9629     13, 13, 0, 0, 0, 0, 0, 0,
       
  9630     0, 0, 0, 0, 0, 0, 0, 0,
       
  9631     0, 0, 0, 0, 0, 0, 0, 0,
       
  9632     0, 0, 0, 0, 0, 0, 0, 0,
       
  9633     0, 0, 0, 13, 13, 13, 13, 13,
       
  9634     13, 13, 13, 13, 13, 13, 13, 13,
       
  9635     13, 13, 13, 13, 13, 13, 13, 13,
       
  9636     13, 13, 13, 13, 13, 13, 13, 13,
       
  9637     13, 13, 13, 13, 13, 13, 13, 13,
       
  9638     13, 13, 13, 13, 13, 13, 13, 13,
       
  9639 };
       
  9640 
       
  9641 static const Q_UINT8 dir_FC[] = {
       
  9642     13, 13, 13, 13, 13, 13, 13, 13,
       
  9643     13, 13, 13, 13, 13, 13, 13, 13,
       
  9644     13, 13, 13, 13, 13, 13, 13, 13,
       
  9645     13, 13, 13, 13, 13, 13, 13, 13,
       
  9646     13, 13, 13, 13, 13, 13, 13, 13,
       
  9647     13, 13, 13, 13, 13, 13, 13, 13,
       
  9648     13, 13, 13, 13, 13, 13, 13, 13,
       
  9649     13, 13, 13, 13, 13, 13, 13, 13,
       
  9650     13, 13, 13, 13, 13, 13, 13, 13,
       
  9651     13, 13, 13, 13, 13, 13, 13, 13,
       
  9652     13, 13, 13, 13, 13, 13, 13, 13,
       
  9653     13, 13, 13, 13, 13, 13, 13, 13,
       
  9654     13, 13, 13, 13, 13, 13, 13, 13,
       
  9655     13, 13, 13, 13, 13, 13, 13, 13,
       
  9656     13, 13, 13, 13, 13, 13, 13, 13,
       
  9657     13, 13, 13, 13, 13, 13, 13, 13,
       
  9658     13, 13, 13, 13, 13, 13, 13, 13,
       
  9659     13, 13, 13, 13, 13, 13, 13, 13,
       
  9660     13, 13, 13, 13, 13, 13, 13, 13,
       
  9661     13, 13, 13, 13, 13, 13, 13, 13,
       
  9662     13, 13, 13, 13, 13, 13, 13, 13,
       
  9663     13, 13, 13, 13, 13, 13, 13, 13,
       
  9664     13, 13, 13, 13, 13, 13, 13, 13,
       
  9665     13, 13, 13, 13, 13, 13, 13, 13,
       
  9666     13, 13, 13, 13, 13, 13, 13, 13,
       
  9667     13, 13, 13, 13, 13, 13, 13, 13,
       
  9668     13, 13, 13, 13, 13, 13, 13, 13,
       
  9669     13, 13, 13, 13, 13, 13, 13, 13,
       
  9670     13, 13, 13, 13, 13, 13, 13, 13,
       
  9671     13, 13, 13, 13, 13, 13, 13, 13,
       
  9672     13, 13, 13, 13, 13, 13, 13, 13,
       
  9673     13, 13, 13, 13, 13, 13, 13, 13,
       
  9674 };
       
  9675 
       
  9676 static const Q_UINT8 dir_FD[] = {
       
  9677     13, 13, 13, 13, 13, 13, 13, 13,
       
  9678     13, 13, 13, 13, 13, 13, 13, 13,
       
  9679     13, 13, 13, 13, 13, 13, 13, 13,
       
  9680     13, 13, 13, 13, 13, 13, 13, 13,
       
  9681     13, 13, 13, 13, 13, 13, 13, 13,
       
  9682     13, 13, 13, 13, 13, 13, 13, 13,
       
  9683     13, 13, 13, 13, 13, 13, 13, 13,
       
  9684     13, 13, 13, 13, 13, 13, 10, 10,
       
  9685     0, 0, 0, 0, 0, 0, 0, 0,
       
  9686     0, 0, 0, 0, 0, 0, 0, 0,
       
  9687     13, 13, 13, 13, 13, 13, 13, 13,
       
  9688     13, 13, 13, 13, 13, 13, 13, 13,
       
  9689     13, 13, 13, 13, 13, 13, 13, 13,
       
  9690     13, 13, 13, 13, 13, 13, 13, 13,
       
  9691     13, 13, 13, 13, 13, 13, 13, 13,
       
  9692     13, 13, 13, 13, 13, 13, 13, 13,
       
  9693     13, 13, 13, 13, 13, 13, 13, 13,
       
  9694     13, 13, 13, 13, 13, 13, 13, 13,
       
  9695     0, 0, 13, 13, 13, 13, 13, 13,
       
  9696     13, 13, 13, 13, 13, 13, 13, 13,
       
  9697     13, 13, 13, 13, 13, 13, 13, 13,
       
  9698     13, 13, 13, 13, 13, 13, 13, 13,
       
  9699     13, 13, 13, 13, 13, 13, 13, 13,
       
  9700     13, 13, 13, 13, 13, 13, 13, 13,
       
  9701     13, 13, 13, 13, 13, 13, 13, 13,
       
  9702     0, 0, 0, 0, 0, 0, 0, 0,
       
  9703     0, 0, 0, 0, 0, 0, 0, 0,
       
  9704     0, 0, 0, 0, 0, 0, 0, 0,
       
  9705     0, 0, 0, 0, 0, 0, 0, 0,
       
  9706     0, 0, 0, 0, 0, 0, 0, 0,
       
  9707     13, 13, 13, 13, 13, 13, 13, 13,
       
  9708     13, 13, 13, 13, 0, 0, 0, 0,
       
  9709 };
       
  9710 
       
  9711 static const Q_UINT8 dir_FE[] = {
       
  9712     0, 0, 0, 0, 0, 0, 0, 0,
       
  9713     0, 0, 0, 0, 0, 0, 0, 0,
       
  9714     0, 0, 0, 0, 0, 0, 0, 0,
       
  9715     0, 0, 0, 0, 0, 0, 0, 0,
       
  9716     17, 17, 17, 17, 0, 0, 0, 0,
       
  9717     0, 0, 0, 0, 0, 0, 0, 0,
       
  9718     10, 10, 10, 10, 10, 10, 10, 10,
       
  9719     10, 10, 10, 10, 10, 10, 10, 10,
       
  9720     10, 10, 10, 10, 10, 0, 0, 0,
       
  9721     0, 10, 10, 10, 10, 10, 10, 10,
       
  9722     6, 10, 6, 0, 10, 6, 10, 10,
       
  9723     10, 10, 10, 10, 10, 10, 10, 4,
       
  9724     10, 10, 4, 4, 10, 10, 10, 0,
       
  9725     10, 4, 4, 10, 0, 0, 0, 0,
       
  9726     13, 13, 13, 0, 13, 0, 13, 13,
       
  9727     13, 13, 13, 13, 13, 13, 13, 13,
       
  9728     13, 13, 13, 13, 13, 13, 13, 13,
       
  9729     13, 13, 13, 13, 13, 13, 13, 13,
       
  9730     13, 13, 13, 13, 13, 13, 13, 13,
       
  9731     13, 13, 13, 13, 13, 13, 13, 13,
       
  9732     13, 13, 13, 13, 13, 13, 13, 13,
       
  9733     13, 13, 13, 13, 13, 13, 13, 13,
       
  9734     13, 13, 13, 13, 13, 13, 13, 13,
       
  9735     13, 13, 13, 13, 13, 13, 13, 13,
       
  9736     13, 13, 13, 13, 13, 13, 13, 13,
       
  9737     13, 13, 13, 13, 13, 13, 13, 13,
       
  9738     13, 13, 13, 13, 13, 13, 13, 13,
       
  9739     13, 13, 13, 13, 13, 13, 13, 13,
       
  9740     13, 13, 13, 13, 13, 13, 13, 13,
       
  9741     13, 13, 13, 13, 13, 13, 13, 13,
       
  9742     13, 13, 13, 13, 13, 13, 13, 13,
       
  9743     13, 13, 13, 13, 13, 0, 0, 18,
       
  9744 };
       
  9745 
       
  9746 static const Q_UINT8 dir_FF[] = {
       
  9747     0, 10, 10, 4, 4, 4, 10, 10,
       
  9748     10, 10, 10, 4, 6, 4, 6, 3,
       
  9749     2, 2, 2, 2, 2, 2, 2, 2,
       
  9750     2, 2, 6, 10, 10, 10, 10, 10,
       
  9751     10, 0, 0, 0, 0, 0, 0, 0,
       
  9752     0, 0, 0, 0, 0, 0, 0, 0,
       
  9753     0, 0, 0, 0, 0, 0, 0, 0,
       
  9754     0, 0, 0, 10, 10, 10, 10, 10,
       
  9755     10, 0, 0, 0, 0, 0, 0, 0,
       
  9756     0, 0, 0, 0, 0, 0, 0, 0,
       
  9757     0, 0, 0, 0, 0, 0, 0, 0,
       
  9758     0, 0, 0, 10, 10, 10, 10, 0,
       
  9759     0, 10, 10, 10, 10, 10, 0, 0,
       
  9760     0, 0, 0, 0, 0, 0, 0, 0,
       
  9761     0, 0, 0, 0, 0, 0, 0, 0,
       
  9762     0, 0, 0, 0, 0, 0, 0, 0,
       
  9763     0, 0, 0, 0, 0, 0, 0, 0,
       
  9764     0, 0, 0, 0, 0, 0, 0, 0,
       
  9765     0, 0, 0, 0, 0, 0, 0, 0,
       
  9766     0, 0, 0, 0, 0, 0, 0, 0,
       
  9767     0, 0, 0, 0, 0, 0, 0, 0,
       
  9768     0, 0, 0, 0, 0, 0, 0, 0,
       
  9769     0, 0, 0, 0, 0, 0, 0, 0,
       
  9770     0, 0, 0, 0, 0, 0, 0, 0,
       
  9771     0, 0, 0, 0, 0, 0, 0, 0,
       
  9772     0, 0, 0, 0, 0, 0, 0, 0,
       
  9773     0, 0, 0, 0, 0, 0, 0, 0,
       
  9774     0, 0, 0, 0, 0, 0, 0, 0,
       
  9775     4, 4, 10, 10, 10, 4, 4, 0,
       
  9776     10, 10, 10, 10, 10, 10, 10, 0,
       
  9777     0, 0, 0, 0, 0, 0, 0, 0,
       
  9778     0, 18, 18, 18, 10, 10, 0, 0,
       
  9779 };
       
  9780 
       
  9781 static const Q_UINT8 * const direction_info[256] = {
       
  9782     dir_00, dir_01, dir_02, dir_03, dir_04, dir_05, dir_06, dir_07,
       
  9783     dir_01, dir_09, dir_0A, dir_0B, dir_0C, dir_0D, dir_0E, dir_0F,
       
  9784     dir_10, dir_01, dir_01, dir_01, dir_01, dir_01, dir_16, dir_17,
       
  9785     dir_18, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_1F,
       
  9786     dir_20, dir_21, dir_22, dir_23, dir_24, dir_25, dir_26, dir_27,
       
  9787     dir_28, dir_01, dir_01, dir_01, dir_01, dir_01, dir_2E, dir_2F,
       
  9788     dir_30, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
       
  9789     dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
       
  9790     dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
       
  9791     dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
       
  9792     dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
       
  9793     dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
       
  9794     dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
       
  9795     dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
       
  9796     dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
       
  9797     dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
       
  9798     dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
       
  9799     dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
       
  9800     dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
       
  9801     dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
       
  9802     dir_01, dir_01, dir_01, dir_01, dir_A4, dir_01, dir_01, dir_01,
       
  9803     dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
       
  9804     dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
       
  9805     dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
       
  9806     dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
       
  9807     dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
       
  9808     dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
       
  9809     dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
       
  9810     dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
       
  9811     dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
       
  9812     dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
       
  9813     dir_01, dir_01, dir_01, dir_FB, dir_FC, dir_FD, dir_FE, dir_FF,
       
  9814 };
       
  9815 // 26940 bytes
       
  9816 
       
  9817 #endif
       
  9818 
       
  9819 // END OF GENERATED DATA
       
  9820 
       
  9821 // This is generated too. Script?
       
  9822 
       
  9823 #ifndef QT_NO_UNICODETABLES
       
  9824 
       
  9825 static const Q_UINT16 case_0 [] = {
       
  9826     0, 0, 0, 0, 0, 0, 0, 0,
       
  9827     0, 0, 0, 0, 0, 0, 0, 0,
       
  9828     0, 0, 0, 0, 0, 0, 0, 0,
       
  9829     0, 0, 0, 0, 0, 0, 0, 0,
       
  9830     0, 0, 0, 0, 0, 0, 0, 0,
       
  9831     0, 0, 0, 0, 0, 0, 0, 0,
       
  9832     0, 0, 0, 0, 0, 0, 0, 0,
       
  9833     0, 0, 0, 0, 0, 0, 0, 0,
       
  9834     0, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
       
  9835     0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
       
  9836     0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
       
  9837     0x78, 0x79, 0x7a, 0, 0, 0, 0, 0,
       
  9838     0, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
       
  9839     0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
       
  9840     0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
       
  9841     0x58, 0x59, 0x5a, 0, 0, 0, 0, 0,
       
  9842     0, 0, 0, 0, 0, 0, 0, 0,
       
  9843     0, 0, 0, 0, 0, 0, 0, 0,
       
  9844     0, 0, 0, 0, 0, 0, 0, 0,
       
  9845     0, 0, 0, 0, 0, 0, 0, 0,
       
  9846     0, 0, 0, 0, 0, 0, 0, 0,
       
  9847     0, 0, 0x0, 0, 0, 0, 0, 0,
       
  9848     0, 0, 0, 0, 0, 0x0, 0, 0,
       
  9849     0, 0, 0x0, 0, 0, 0, 0, 0,
       
  9850     0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
       
  9851     0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
       
  9852     0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0,
       
  9853     0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0x0,
       
  9854     0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
       
  9855     0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
       
  9856     0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0,
       
  9857     0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0x178,
       
  9858 };
       
  9859 
       
  9860 static const Q_UINT16 case_1 [] = {
       
  9861     0x101, 0x100, 0x103, 0x102, 0x105, 0x104, 0x107, 0x106,
       
  9862     0x109, 0x108, 0x10b, 0x10a, 0x10d, 0x10c, 0x10f, 0x10e,
       
  9863     0x111, 0x110, 0x113, 0x112, 0x115, 0x114, 0x117, 0x116,
       
  9864     0x119, 0x118, 0x11b, 0x11a, 0x11d, 0x11c, 0x11f, 0x11e,
       
  9865     0x121, 0x120, 0x123, 0x122, 0x125, 0x124, 0x127, 0x126,
       
  9866     0x129, 0x128, 0x12b, 0x12a, 0x12d, 0x12c, 0x12f, 0x12e,
       
  9867     0x69, 0x49, 0x133, 0x132, 0x135, 0x134, 0x137, 0x136,
       
  9868     0x0, 0x13a, 0x139, 0x13c, 0x13b, 0x13e, 0x13d, 0x140,
       
  9869     0x13f, 0x142, 0x141, 0x144, 0x143, 0x146, 0x145, 0x148,
       
  9870     0x147, 0x0, 0x14b, 0x14a, 0x14d, 0x14c, 0x14f, 0x14e,
       
  9871     0x151, 0x150, 0x153, 0x152, 0x155, 0x154, 0x157, 0x156,
       
  9872     0x159, 0x158, 0x15b, 0x15a, 0x15d, 0x15c, 0x15f, 0x15e,
       
  9873     0x161, 0x160, 0x163, 0x162, 0x165, 0x164, 0x167, 0x166,
       
  9874     0x169, 0x168, 0x16b, 0x16a, 0x16d, 0x16c, 0x16f, 0x16e,
       
  9875     0x171, 0x170, 0x173, 0x172, 0x175, 0x174, 0x177, 0x176,
       
  9876     0xff, 0x17a, 0x179, 0x17c, 0x17b, 0x17e, 0x17d, 0x53,
       
  9877     0x0, 0x253, 0x183, 0x182, 0x185, 0x184, 0x254, 0x188,
       
  9878     0x187, 0x256, 0x257, 0x18c, 0x18b, 0x0, 0x1dd, 0x259,
       
  9879     0x25b, 0x192, 0x191, 0x260, 0x263, 0x3d9, 0x269, 0x268,
       
  9880     0x199, 0x198, 0x51, 0x0, 0x26f, 0x272, 0x0, 0x275,
       
  9881     0x1a1, 0x1a0, 0x1a3, 0x1a2, 0x1a5, 0x1a4, 0x280, 0x1a8,
       
  9882     0x1a7, 0x283, 0, 0x0, 0x1ad, 0x1ac, 0x288, 0x1b0,
       
  9883     0x1af, 0x28a, 0x28b, 0x1b4, 0x1b3, 0x1b6, 0x1b5, 0x292,
       
  9884     0x1b9, 0x1b8, 0x0, 0, 0x1bd, 0x1bc, 0, 0,
       
  9885     0, 0, 0, 0, 0x1c6, 0, 0x1c4, 0x1c9,
       
  9886     0, 0x1c7, 0x1cc, 0, 0x1ca, 0x1ce, 0x1cd, 0x1d0,
       
  9887     0x1cf, 0x1d2, 0x1d1, 0x1d4, 0x1d3, 0x1d6, 0x1d5, 0x1d8,
       
  9888     0x1d7, 0x1da, 0x1d9, 0x1dc, 0x1db, 0x18e, 0x1df, 0x1de,
       
  9889     0x1e1, 0x1e0, 0x1e3, 0x1e2, 0x1e5, 0x1e4, 0x1e7, 0x1e6,
       
  9890     0x1e9, 0x1e8, 0x1eb, 0x1ea, 0x1ed, 0x1ec, 0x1ef, 0x1ee,
       
  9891     0x0, 0x1f3, 0, 0x1f1, 0x1f5, 0x1f4, 0, 0,
       
  9892     0, 0, 0x1fb, 0x1fa, 0x1fd, 0x1fc, 0x1ff, 0x1fe,
       
  9893 };
       
  9894 
       
  9895 static const Q_UINT16 case_2 [] = {
       
  9896     0x201, 0x200, 0x203, 0x202, 0x205, 0x204, 0x207, 0x206,
       
  9897     0x209, 0x208, 0x20b, 0x20a, 0x20d, 0x20c, 0x20f, 0x20e,
       
  9898     0x211, 0x210, 0x213, 0x212, 0x215, 0x214, 0x217, 0x216,
       
  9899     0, 0, 0, 0, 0, 0, 0, 0,
       
  9900     0, 0, 0, 0, 0, 0, 0, 0,
       
  9901     0, 0, 0, 0, 0, 0, 0, 0,
       
  9902     0, 0, 0, 0, 0, 0, 0, 0,
       
  9903     0, 0, 0, 0, 0, 0, 0, 0,
       
  9904     0, 0, 0, 0, 0, 0, 0, 0,
       
  9905     0, 0, 0, 0, 0, 0, 0, 0,
       
  9906     0x0, 0x0, 0x0, 0x181, 0x186, 0x0, 0x189, 0x18a,
       
  9907     0x0, 0x18f, 0x0, 0x190, 0x0, 0x0, 0x0, 0x0,
       
  9908     0x193, 0x0, 0x0, 0x194, 0x0, 0x0, 0x631, 0x579,
       
  9909     0x197, 0x196, 0x0, 0x0, 0x0, 0x0, 0x0, 0x19c,
       
  9910     0x0, 0x0, 0x19d, 0x0, 0x0, 0x19f, 0x0, 0x0,
       
  9911     0x0, 0x0, 0x7e1, 0x0, 0x0, 0x0, 0x0, 0x0,
       
  9912     0x1a6, 0x0, 0x0, 0x1a9, 0x0, 0x0, 0x0, 0x0,
       
  9913     0x1ae, 0x0, 0x1b1, 0x1b2, 0x0, 0xa21, 0x971, 0x0,
       
  9914     0x0, 0x0, 0x1b7, 0x0, 0x0, 0x0, 0x0, 0x0,
       
  9915     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
       
  9916     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
       
  9917     0x0, 0, 0, 0, 0, 0, 0, 0,
       
  9918     0, 0, 0, 0, 0, 0, 0, 0,
       
  9919     0, 0, 0, 0, 0, 0, 0, 0,
       
  9920     0, 0, 0, 0, 0, 0, 0, 0,
       
  9921     0, 0, 0, 0, 0, 0, 0, 0,
       
  9922     0, 0, 0, 0, 0, 0, 0, 0,
       
  9923     0, 0, 0, 0, 0, 0, 0, 0,
       
  9924     0, 0, 0, 0, 0, 0, 0, 0,
       
  9925     0, 0, 0, 0, 0, 0, 0, 0,
       
  9926     0, 0, 0, 0, 0, 0, 0, 0,
       
  9927     0, 0, 0, 0, 0, 0, 0, 0,
       
  9928 };
       
  9929 
       
  9930 static const Q_UINT16 case_3 [] = {
       
  9931     0, 0, 0, 0, 0, 0, 0, 0,
       
  9932     0, 0, 0, 0, 0, 0, 0, 0,
       
  9933     0, 0, 0, 0, 0, 0, 0, 0,
       
  9934     0, 0, 0, 0, 0, 0, 0, 0,
       
  9935     0, 0, 0, 0, 0, 0, 0, 0,
       
  9936     0, 0, 0, 0, 0, 0, 0, 0,
       
  9937     0, 0, 0, 0, 0, 0, 0, 0,
       
  9938     0, 0, 0, 0, 0, 0, 0, 0,
       
  9939     0, 0, 0, 0, 0, 0, 0, 0,
       
  9940     0, 0, 0, 0, 0, 0, 0, 0,
       
  9941     0, 0, 0, 0, 0, 0, 0, 0,
       
  9942     0, 0, 0, 0, 0, 0, 0, 0,
       
  9943     0, 0, 0, 0, 0, 0, 0, 0,
       
  9944     0, 0, 0, 0, 0, 0, 0, 0,
       
  9945     0, 0, 0, 0, 0, 0, 0, 0,
       
  9946     0, 0, 0, 0, 0, 0, 0, 0,
       
  9947     0, 0, 0, 0, 0, 0, 0x3ac, 0,
       
  9948     0x3ad, 0x3ae, 0x3af, 0, 0x3cc, 0, 0x3cd, 0x3ce,
       
  9949     0x0, 0x3b1, 0x3b2, 0x3b3, 0x3b4, 0x3b5, 0x3b6, 0x3b7,
       
  9950     0x3b8, 0x3b9, 0x3ba, 0x3bb, 0x3bc, 0x3bd, 0x3be, 0x3bf,
       
  9951     0x3c0, 0x3c1, 0, 0x3c3, 0x3c4, 0x3c5, 0x3c6, 0x3c7,
       
  9952     0x3c8, 0x3c9, 0x3ca, 0x3cb, 0x386, 0x388, 0x389, 0x38a,
       
  9953     0x0, 0x391, 0x392, 0x393, 0x394, 0x395, 0x396, 0x397,
       
  9954     0x398, 0x399, 0x39a, 0x39b, 0x39c, 0x39d, 0x39e, 0x39f,
       
  9955     0x3a0, 0x3a1, 0x3a3, 0x3a3, 0x3a4, 0x3a5, 0x3a6, 0x3a7,
       
  9956     0x3a8, 0x3a9, 0x3aa, 0x3ab, 0x38c, 0x38e, 0x38f, 0,
       
  9957     0x392, 0x398, 0x0, 0x0, 0x0, 0x3a6, 0x3a0, 0,
       
  9958     0, 0, 0x0, 0, 0x0, 0, 0x0, 0,
       
  9959     0x0, 0, 0x3e3, 0x3e2, 0x3e5, 0x3e4, 0x3e7, 0x3e6,
       
  9960     0x3e9, 0x3e8, 0x3eb, 0x3ea, 0x3ed, 0x3ec, 0x3ef, 0x3ee,
       
  9961     0x39a, 0x3a1, 0x3a3, 0, 0, 0, 0, 0,
       
  9962     0, 0, 0, 0, 0, 0, 0, 0,
       
  9963 };
       
  9964 
       
  9965 static const Q_UINT16 case_4 [] = {
       
  9966     0, 0x451, 0x452, 0x453, 0x454, 0x455, 0x456, 0x457,
       
  9967     0x458, 0x459, 0x45a, 0x45b, 0x45c, 0, 0x45e, 0x45f,
       
  9968     0x430, 0x431, 0x432, 0x433, 0x434, 0x435, 0x436, 0x437,
       
  9969     0x438, 0x439, 0x43a, 0x43b, 0x43c, 0x43d, 0x43e, 0x43f,
       
  9970     0x440, 0x441, 0x442, 0x443, 0x444, 0x445, 0x446, 0x447,
       
  9971     0x448, 0x449, 0x44a, 0x44b, 0x44c, 0x44d, 0x44e, 0x44f,
       
  9972     0x410, 0x411, 0x412, 0x413, 0x414, 0x415, 0x416, 0x417,
       
  9973     0x418, 0x419, 0x41a, 0x41b, 0x41c, 0x41d, 0x41e, 0x41f,
       
  9974     0x420, 0x421, 0x422, 0x423, 0x424, 0x425, 0x426, 0x427,
       
  9975     0x428, 0x429, 0x42a, 0x42b, 0x42c, 0x42d, 0x42e, 0x42f,
       
  9976     0, 0x401, 0x402, 0x403, 0x404, 0x405, 0x406, 0x407,
       
  9977     0x408, 0x409, 0x40a, 0x40b, 0x40c, 0, 0x40e, 0x40f,
       
  9978     0x461, 0x460, 0x463, 0x462, 0x465, 0x464, 0x467, 0x466,
       
  9979     0x469, 0x468, 0x46b, 0x46a, 0x46d, 0x46c, 0x46f, 0x46e,
       
  9980     0x471, 0x470, 0x473, 0x472, 0x475, 0x474, 0x477, 0x476,
       
  9981     0x479, 0x478, 0x47b, 0x47a, 0x47d, 0x47c, 0x47f, 0x47e,
       
  9982     0x481, 0x480, 0, 0, 0, 0, 0, 0,
       
  9983     0, 0, 0, 0, 0, 0, 0, 0,
       
  9984     0x491, 0x490, 0x493, 0x492, 0x495, 0x494, 0x497, 0x496,
       
  9985     0x499, 0x498, 0x49b, 0x49a, 0x49d, 0x49c, 0x49f, 0x49e,
       
  9986     0x4a1, 0x4a0, 0x4a3, 0x4a2, 0x4a5, 0x4a4, 0x4a7, 0x4a6,
       
  9987     0x4a9, 0x4a8, 0x4ab, 0x4aa, 0x4ad, 0x4ac, 0x4af, 0x4ae,
       
  9988     0x4b1, 0x4b0, 0x4b3, 0x4b2, 0x4b5, 0x4b4, 0x4b7, 0x4b6,
       
  9989     0x4b9, 0x4b8, 0x4bb, 0x4ba, 0x4bd, 0x4bc, 0x4bf, 0x4be,
       
  9990     0, 0x4c2, 0x4c1, 0x4c4, 0x4c3, 0, 0, 0x4c8,
       
  9991     0x4c7, 0, 0, 0x4cc, 0x4cb, 0, 0, 0,
       
  9992     0x4d1, 0x4d0, 0x4d3, 0x4d2, 0x4d5, 0x4d4, 0x4d7, 0x4d6,
       
  9993     0x4d9, 0x4d8, 0x4db, 0x4da, 0x4dd, 0x4dc, 0x4df, 0x4de,
       
  9994     0x4e1, 0x4e0, 0x4e3, 0x4e2, 0x4e5, 0x4e4, 0x4e7, 0x4e6,
       
  9995     0x4e9, 0x4e8, 0x4eb, 0x4ea, 0, 0, 0x4ef, 0x4ee,
       
  9996     0x4f1, 0x4f0, 0x4f3, 0x4f2, 0x4f5, 0x4f4, 0, 0,
       
  9997     0x4f9, 0x4f8, 0, 0, 0, 0, 0, 0,
       
  9998 };
       
  9999 
       
 10000 static const Q_UINT16 case_5 [] = {
       
 10001     0, 0, 0, 0, 0, 0, 0, 0,
       
 10002     0, 0, 0, 0, 0, 0, 0, 0,
       
 10003     0, 0, 0, 0, 0, 0, 0, 0,
       
 10004     0, 0, 0, 0, 0, 0, 0, 0,
       
 10005     0, 0, 0, 0, 0, 0, 0, 0,
       
 10006     0, 0, 0, 0, 0, 0, 0, 0,
       
 10007     0, 0x561, 0x562, 0x563, 0x564, 0x565, 0x566, 0x567,
       
 10008     0x568, 0x569, 0x56a, 0x56b, 0x56c, 0x56d, 0x56e, 0x56f,
       
 10009     0x570, 0x571, 0x572, 0x573, 0x574, 0x575, 0x576, 0x577,
       
 10010     0x578, 0x579, 0x57a, 0x57b, 0x57c, 0x57d, 0x57e, 0x57f,
       
 10011     0x580, 0x581, 0x582, 0x583, 0x584, 0x585, 0x586, 0,
       
 10012     0, 0, 0, 0, 0, 0, 0, 0,
       
 10013     0, 0x531, 0x532, 0x533, 0x534, 0x535, 0x536, 0x537,
       
 10014     0x538, 0x539, 0x53a, 0x53b, 0x53c, 0x53d, 0x53e, 0x53f,
       
 10015     0x540, 0x541, 0x542, 0x543, 0x544, 0x545, 0x546, 0x547,
       
 10016     0x548, 0x549, 0x54a, 0x54b, 0x54c, 0x54d, 0x54e, 0x54f,
       
 10017     0x550, 0x551, 0x552, 0x553, 0x554, 0x555, 0x556, 0x0,
       
 10018     0, 0, 0, 0, 0, 0, 0, 0,
       
 10019     0, 0, 0, 0, 0, 0, 0, 0,
       
 10020     0, 0, 0, 0, 0, 0, 0, 0,
       
 10021     0, 0, 0, 0, 0, 0, 0, 0,
       
 10022     0, 0, 0, 0, 0, 0, 0, 0,
       
 10023     0, 0, 0, 0, 0, 0, 0, 0,
       
 10024     0, 0, 0, 0, 0, 0, 0, 0,
       
 10025     0, 0, 0, 0, 0, 0, 0, 0,
       
 10026     0, 0, 0, 0, 0, 0, 0, 0,
       
 10027     0, 0, 0, 0, 0, 0, 0, 0,
       
 10028     0, 0, 0, 0, 0, 0, 0, 0,
       
 10029     0, 0, 0, 0, 0, 0, 0, 0,
       
 10030     0, 0, 0, 0, 0, 0, 0, 0,
       
 10031     0, 0, 0, 0, 0, 0, 0, 0,
       
 10032     0, 0, 0, 0, 0, 0, 0, 0,
       
 10033 };
       
 10034 
       
 10035 static const Q_UINT16 case_10 [] = {
       
 10036     0, 0, 0, 0, 0, 0, 0, 0,
       
 10037     0, 0, 0, 0, 0, 0, 0, 0,
       
 10038     0, 0, 0, 0, 0, 0, 0, 0,
       
 10039     0, 0, 0, 0, 0, 0, 0, 0,
       
 10040     0, 0, 0, 0, 0, 0, 0, 0,
       
 10041     0, 0, 0, 0, 0, 0, 0, 0,
       
 10042     0, 0, 0, 0, 0, 0, 0, 0,
       
 10043     0, 0, 0, 0, 0, 0, 0, 0,
       
 10044     0, 0, 0, 0, 0, 0, 0, 0,
       
 10045     0, 0, 0, 0, 0, 0, 0, 0,
       
 10046     0, 0, 0, 0, 0, 0, 0, 0,
       
 10047     0, 0, 0, 0, 0, 0, 0, 0,
       
 10048     0, 0, 0, 0, 0, 0, 0, 0,
       
 10049     0, 0, 0, 0, 0, 0, 0, 0,
       
 10050     0, 0, 0, 0, 0, 0, 0, 0,
       
 10051     0, 0, 0, 0, 0, 0, 0, 0,
       
 10052     0, 0, 0, 0, 0, 0, 0, 0,
       
 10053     0, 0, 0, 0, 0, 0, 0, 0,
       
 10054     0, 0, 0, 0, 0, 0, 0, 0,
       
 10055     0, 0, 0, 0, 0, 0, 0, 0,
       
 10056     0x10d0, 0x10d1, 0x10d2, 0x10d3, 0x10d4, 0x10d5, 0x10d6, 0x10d7,
       
 10057     0x10d8, 0x10d9, 0x10da, 0x10db, 0x10dc, 0x10dd, 0x10de, 0x10df,
       
 10058     0x10e0, 0x10e1, 0x10e2, 0x10e3, 0x10e4, 0x10e5, 0x10e6, 0x10e7,
       
 10059     0x10e8, 0x10e9, 0x10ea, 0x10eb, 0x10ec, 0x10ed, 0x10ee, 0x10ef,
       
 10060     0x10f0, 0x10f1, 0x10f2, 0x10f3, 0x10f4, 0x10f5, 0, 0,
       
 10061     0, 0, 0, 0, 0, 0, 0, 0,
       
 10062     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
       
 10063     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
       
 10064     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
       
 10065     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
       
 10066     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0,
       
 10067     0, 0, 0, 0, 0, 0, 0, 0,
       
 10068 };
       
 10069 
       
 10070 static const Q_UINT16 case_1e [] = {
       
 10071     0x1e01, 0x1e00, 0x1e03, 0x1e02, 0x1e05, 0x1e04, 0x1e07, 0x1e06,
       
 10072     0x1e09, 0x1e08, 0x1e0b, 0x1e0a, 0x1e0d, 0x1e0c, 0x1e0f, 0x1e0e,
       
 10073     0x1e11, 0x1e10, 0x1e13, 0x1e12, 0x1e15, 0x1e14, 0x1e17, 0x1e16,
       
 10074     0x1e19, 0x1e18, 0x1e1b, 0x1e1a, 0x1e1d, 0x1e1c, 0x1e1f, 0x1e1e,
       
 10075     0x1e21, 0x1e20, 0x1e23, 0x1e22, 0x1e25, 0x1e24, 0x1e27, 0x1e26,
       
 10076     0x1e29, 0x1e28, 0x1e2b, 0x1e2a, 0x1e2d, 0x1e2c, 0x1e2f, 0x1e2e,
       
 10077     0x1e31, 0x1e30, 0x1e33, 0x1e32, 0x1e35, 0x1e34, 0x1e37, 0x1e36,
       
 10078     0x1e39, 0x1e38, 0x1e3b, 0x1e3a, 0x1e3d, 0x1e3c, 0x1e3f, 0x1e3e,
       
 10079     0x1e41, 0x1e40, 0x1e43, 0x1e42, 0x1e45, 0x1e44, 0x1e47, 0x1e46,
       
 10080     0x1e49, 0x1e48, 0x1e4b, 0x1e4a, 0x1e4d, 0x1e4c, 0x1e4f, 0x1e4e,
       
 10081     0x1e51, 0x1e50, 0x1e53, 0x1e52, 0x1e55, 0x1e54, 0x1e57, 0x1e56,
       
 10082     0x1e59, 0x1e58, 0x1e5b, 0x1e5a, 0x1e5d, 0x1e5c, 0x1e5f, 0x1e5e,
       
 10083     0x1e61, 0x1e60, 0x1e63, 0x1e62, 0x1e65, 0x1e64, 0x1e67, 0x1e66,
       
 10084     0x1e69, 0x1e68, 0x1e6b, 0x1e6a, 0x1e6d, 0x1e6c, 0x1e6f, 0x1e6e,
       
 10085     0x1e71, 0x1e70, 0x1e73, 0x1e72, 0x1e75, 0x1e74, 0x1e77, 0x1e76,
       
 10086     0x1e79, 0x1e78, 0x1e7b, 0x1e7a, 0x1e7d, 0x1e7c, 0x1e7f, 0x1e7e,
       
 10087     0x1e81, 0x1e80, 0x1e83, 0x1e82, 0x1e85, 0x1e84, 0x1e87, 0x1e86,
       
 10088     0x1e89, 0x1e88, 0x1e8b, 0x1e8a, 0x1e8d, 0x1e8c, 0x1e8f, 0x1e8e,
       
 10089     0x1e91, 0x1e90, 0x1e93, 0x1e92, 0x1e95, 0x1e94, 0x0, 0x0,
       
 10090     0x0, 0x0, 0x0, 0x1e60, 0, 0, 0, 0,
       
 10091     0x1ea1, 0x1ea0, 0x1ea3, 0x1ea2, 0x1ea5, 0x1ea4, 0x1ea7, 0x1ea6,
       
 10092     0x1ea9, 0x1ea8, 0x1eab, 0x1eaa, 0x1ead, 0x1eac, 0x1eaf, 0x1eae,
       
 10093     0x1eb1, 0x1eb0, 0x1eb3, 0x1eb2, 0x1eb5, 0x1eb4, 0x1eb7, 0x1eb6,
       
 10094     0x1eb9, 0x1eb8, 0x1ebb, 0x1eba, 0x1ebd, 0x1ebc, 0x1ebf, 0x1ebe,
       
 10095     0x1ec1, 0x1ec0, 0x1ec3, 0x1ec2, 0x1ec5, 0x1ec4, 0x1ec7, 0x1ec6,
       
 10096     0x1ec9, 0x1ec8, 0x1ecb, 0x1eca, 0x1ecd, 0x1ecc, 0x1ecf, 0x1ece,
       
 10097     0x1ed1, 0x1ed0, 0x1ed3, 0x1ed2, 0x1ed5, 0x1ed4, 0x1ed7, 0x1ed6,
       
 10098     0x1ed9, 0x1ed8, 0x1edb, 0x1eda, 0x1edd, 0x1edc, 0x1edf, 0x1ede,
       
 10099     0x1ee1, 0x1ee0, 0x1ee3, 0x1ee2, 0x1ee5, 0x1ee4, 0x1ee7, 0x1ee6,
       
 10100     0x1ee9, 0x1ee8, 0x1eeb, 0x1eea, 0x1eed, 0x1eec, 0x1eef, 0x1eee,
       
 10101     0x1ef1, 0x1ef0, 0x1ef3, 0x1ef2, 0x1ef5, 0x1ef4, 0x1ef7, 0x1ef6,
       
 10102     0x1ef9, 0x1ef8, 0, 0, 0, 0, 0, 0,
       
 10103 };
       
 10104 
       
 10105 static const Q_UINT16 case_1f [] = {
       
 10106     0x1f08, 0x1f09, 0x1f0a, 0x1f0b, 0x1f0c, 0x1f0d, 0x1f0e, 0x1f0f,
       
 10107     0x1f00, 0x1f01, 0x1f02, 0x1f03, 0x1f04, 0x1f05, 0x1f06, 0x1f07,
       
 10108     0x1f18, 0x1f19, 0x1f1a, 0x1f1b, 0x1f1c, 0x1f1d, 0, 0,
       
 10109     0x1f10, 0x1f11, 0x1f12, 0x1f13, 0x1f14, 0x1f15, 0, 0,
       
 10110     0x1f28, 0x1f29, 0x1f2a, 0x1f2b, 0x1f2c, 0x1f2d, 0x1f2e, 0x1f2f,
       
 10111     0x1f20, 0x1f21, 0x1f22, 0x1f23, 0x1f24, 0x1f25, 0x1f26, 0x1f27,
       
 10112     0x1f38, 0x1f39, 0x1f3a, 0x1f3b, 0x1f3c, 0x1f3d, 0x1f3e, 0x1f3f,
       
 10113     0x1f30, 0x1f31, 0x1f32, 0x1f33, 0x1f34, 0x1f35, 0x1f36, 0x1f37,
       
 10114     0x1f48, 0x1f49, 0x1f4a, 0x1f4b, 0x1f4c, 0x1f4d, 0, 0,
       
 10115     0x1f40, 0x1f41, 0x1f42, 0x1f43, 0x1f44, 0x1f45, 0, 0,
       
 10116     0x0, 0x1f59, 0x0, 0x1f5b, 0x0, 0x1f5d, 0x0, 0x1f5f,
       
 10117     0, 0x1f51, 0, 0x1f53, 0, 0x1f55, 0, 0x1f57,
       
 10118     0x1f68, 0x1f69, 0x1f6a, 0x1f6b, 0x1f6c, 0x1f6d, 0x1f6e, 0x1f6f,
       
 10119     0x1f60, 0x1f61, 0x1f62, 0x1f63, 0x1f64, 0x1f65, 0x1f66, 0x1f67,
       
 10120     0x1fba, 0x1fbb, 0x1fc8, 0x1fc9, 0x1fca, 0x1fcb, 0x1fda, 0x1fdb,
       
 10121     0x1ff8, 0x1ff9, 0x1fea, 0x1feb, 0x1ffa, 0x1ffb, 0, 0,
       
 10122     0x1f88, 0x1f89, 0x1f8a, 0x1f8b, 0x1f8c, 0x1f8d, 0x1f8e, 0x1f8f,
       
 10123     0x1f80, 0x1f81, 0x1f82, 0x1f83, 0x1f84, 0x1f85, 0x1f86, 0x1f87,
       
 10124     0x1f98, 0x1f99, 0x1f9a, 0x1f9b, 0x1f9c, 0x1f9d, 0x1f9e, 0x1f9f,
       
 10125     0x1f90, 0x1f91, 0x1f92, 0x1f93, 0x1f94, 0x1f95, 0x1f96, 0x1f97,
       
 10126     0x1fa8, 0x1fa9, 0x1faa, 0x1fab, 0x1fac, 0x1fad, 0x1fae, 0x1faf,
       
 10127     0x1fa0, 0x1fa1, 0x1fa2, 0x1fa3, 0x1fa4, 0x1fa5, 0x1fa6, 0x1fa7,
       
 10128     0x1fb8, 0x1fb9, 0x0, 0x1fbc, 0x0, 0, 0x0, 0x0,
       
 10129     0x1fb0, 0x1fb1, 0x1f70, 0x1f71, 0x1fb3, 0, 0x399, 0,
       
 10130     0, 0, 0x0, 0x1fcc, 0x0, 0, 0x0, 0x0,
       
 10131     0x1f72, 0x1f73, 0x1f74, 0x1f75, 0x1fc3, 0, 0, 0,
       
 10132     0x1fd8, 0x1fd9, 0x0, 0x0, 0, 0, 0x0, 0x0,
       
 10133     0x1fd0, 0x1fd1, 0x1f76, 0x1f77, 0, 0, 0, 0,
       
 10134     0x1fe8, 0x1fe9, 0x0, 0x0, 0x0, 0x1fec, 0x0, 0x0,
       
 10135     0x1fe0, 0x1fe1, 0x1f7a, 0x1f7b, 0x1fe5, 0, 0, 0,
       
 10136     0, 0, 0x0, 0x1ffc, 0x0, 0, 0x0, 0x0,
       
 10137     0x1f78, 0x1f79, 0x1f7c, 0x1f7d, 0x1ff3, 0, 0, 0,
       
 10138 };
       
 10139 
       
 10140 static const Q_UINT16 case_20 [] = {
       
 10141     0, 0, 0, 0, 0, 0, 0, 0,
       
 10142     0, 0, 0, 0, 0, 0, 0, 0,
       
 10143     0, 0, 0, 0, 0, 0, 0, 0,
       
 10144     0, 0, 0, 0, 0, 0, 0, 0,
       
 10145     0, 0, 0, 0, 0, 0, 0, 0,
       
 10146     0, 0, 0, 0, 0, 0, 0, 0,
       
 10147     0, 0, 0, 0, 0, 0, 0, 0,
       
 10148     0, 0, 0, 0, 0, 0, 0, 0,
       
 10149     0, 0, 0, 0, 0, 0, 0, 0,
       
 10150     0, 0, 0, 0, 0, 0, 0, 0,
       
 10151     0, 0, 0, 0, 0, 0, 0, 0,
       
 10152     0, 0, 0, 0, 0, 0, 0, 0,
       
 10153     0, 0, 0, 0, 0, 0, 0, 0,
       
 10154     0, 0, 0, 0, 0, 0, 0, 0,
       
 10155     0, 0, 0, 0, 0, 0, 0, 0,
       
 10156     0, 0, 0, 0, 0, 0, 0, 0x0,
       
 10157     0, 0, 0, 0, 0, 0, 0, 0,
       
 10158     0, 0, 0, 0, 0, 0, 0, 0,
       
 10159     0, 0, 0, 0, 0, 0, 0, 0,
       
 10160     0, 0, 0, 0, 0, 0, 0, 0,
       
 10161     0, 0, 0, 0, 0, 0, 0, 0,
       
 10162     0, 0, 0, 0, 0, 0, 0, 0,
       
 10163     0, 0, 0, 0, 0, 0, 0, 0,
       
 10164     0, 0, 0, 0, 0, 0, 0, 0,
       
 10165     0, 0, 0, 0, 0, 0, 0, 0,
       
 10166     0, 0, 0, 0, 0, 0, 0, 0,
       
 10167     0, 0, 0, 0, 0, 0, 0, 0,
       
 10168     0, 0, 0, 0, 0, 0, 0, 0,
       
 10169     0, 0, 0, 0, 0, 0, 0, 0,
       
 10170     0, 0, 0, 0, 0, 0, 0, 0,
       
 10171     0, 0, 0, 0, 0, 0, 0, 0,
       
 10172     0, 0, 0, 0, 0, 0, 0, 0,
       
 10173 };
       
 10174 
       
 10175 static const Q_UINT16 case_21 [] = {
       
 10176     0, 0, 0x0, 0, 0, 0, 0, 0x0,
       
 10177     0, 0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
       
 10178     0x0, 0x0, 0x0, 0x0, 0, 0x0, 0, 0,
       
 10179     0x761, 0x0, 0x0, 0x0, 0x0, 0x0, 0, 0,
       
 10180     0, 0, 0, 0, 0x0, 0, 0x0, 0,
       
 10181     0x0, 0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
       
 10182     0x0, 0x0, 0, 0x0, 0x0, 0, 0, 0,
       
 10183     0, 0, 0, 0, 0, 0, 0, 0,
       
 10184     0, 0, 0, 0, 0, 0, 0, 0,
       
 10185     0, 0, 0, 0, 0, 0, 0, 0,
       
 10186     0, 0, 0, 0, 0, 0, 0, 0,
       
 10187     0, 0, 0, 0, 0, 0, 0, 0,
       
 10188     0, 0, 0, 0, 0, 0, 0, 0,
       
 10189     0, 0, 0, 0, 0, 0, 0, 0,
       
 10190     0, 0, 0, 0, 0, 0, 0, 0,
       
 10191     0, 0, 0, 0, 0, 0, 0, 0,
       
 10192     0, 0, 0, 0, 0, 0, 0, 0,
       
 10193     0, 0, 0, 0, 0, 0, 0, 0,
       
 10194     0, 0, 0, 0, 0, 0, 0, 0,
       
 10195     0, 0, 0, 0, 0, 0, 0, 0,
       
 10196     0, 0, 0, 0, 0, 0, 0, 0,
       
 10197     0, 0, 0, 0, 0, 0, 0, 0,
       
 10198     0, 0, 0, 0, 0, 0, 0, 0,
       
 10199     0, 0, 0, 0, 0, 0, 0, 0,
       
 10200     0, 0, 0, 0, 0, 0, 0, 0,
       
 10201     0, 0, 0, 0, 0, 0, 0, 0,
       
 10202     0, 0, 0, 0, 0, 0, 0, 0,
       
 10203     0, 0, 0, 0, 0, 0, 0, 0,
       
 10204     0, 0, 0, 0, 0, 0, 0, 0,
       
 10205     0, 0, 0, 0, 0, 0, 0, 0,
       
 10206     0, 0, 0, 0, 0, 0, 0, 0,
       
 10207     0, 0, 0, 0, 0, 0, 0, 0,
       
 10208 };
       
 10209 
       
 10210 static const Q_UINT16 case_fb [] = {
       
 10211     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0,
       
 10212     0, 0, 0, 0, 0, 0, 0, 0,
       
 10213     0, 0, 0, 0x0, 0x0, 0x0, 0x0, 0x0,
       
 10214     0, 0, 0, 0, 0, 0, 0, 0,
       
 10215     0, 0, 0, 0, 0, 0, 0, 0,
       
 10216     0, 0, 0, 0, 0, 0, 0, 0,
       
 10217     0, 0, 0, 0, 0, 0, 0, 0,
       
 10218     0, 0, 0, 0, 0, 0, 0, 0,
       
 10219     0, 0, 0, 0, 0, 0, 0, 0,
       
 10220     0, 0, 0, 0, 0, 0, 0, 0,
       
 10221     0, 0, 0, 0, 0, 0, 0, 0,
       
 10222     0, 0, 0, 0, 0, 0, 0, 0,
       
 10223     0, 0, 0, 0, 0, 0, 0, 0,
       
 10224     0, 0, 0, 0, 0, 0, 0, 0,
       
 10225     0, 0, 0, 0, 0, 0, 0, 0,
       
 10226     0, 0, 0, 0, 0, 0, 0, 0,
       
 10227     0, 0, 0, 0, 0, 0, 0, 0,
       
 10228     0, 0, 0, 0, 0, 0, 0, 0,
       
 10229     0, 0, 0, 0, 0, 0, 0, 0,
       
 10230     0, 0, 0, 0, 0, 0, 0, 0,
       
 10231     0, 0, 0, 0, 0, 0, 0, 0,
       
 10232     0, 0, 0, 0, 0, 0, 0, 0,
       
 10233     0, 0, 0, 0, 0, 0, 0, 0,
       
 10234     0, 0, 0, 0, 0, 0, 0, 0,
       
 10235     0, 0, 0, 0, 0, 0, 0, 0,
       
 10236     0, 0, 0, 0, 0, 0, 0, 0,
       
 10237     0, 0, 0, 0, 0, 0, 0, 0,
       
 10238     0, 0, 0, 0, 0, 0, 0, 0,
       
 10239     0, 0, 0, 0, 0, 0, 0, 0,
       
 10240     0, 0, 0, 0, 0, 0, 0, 0,
       
 10241     0, 0, 0, 0, 0, 0, 0, 0,
       
 10242     0, 0, 0, 0, 0, 0, 0, 0,
       
 10243 };
       
 10244 
       
 10245 static const Q_UINT16 case_ff [] = {
       
 10246     0, 0, 0, 0, 0, 0, 0, 0,
       
 10247     0, 0, 0, 0, 0, 0, 0, 0,
       
 10248     0, 0, 0, 0, 0, 0, 0, 0,
       
 10249     0, 0, 0, 0, 0, 0, 0, 0,
       
 10250     0, 0xff41, 0xff42, 0xff43, 0xff44, 0xff45, 0xff46, 0xff47,
       
 10251     0xff48, 0xff49, 0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, 0xff4f,
       
 10252     0xff50, 0xff51, 0xff52, 0xff53, 0xff54, 0xff55, 0xff56, 0xff57,
       
 10253     0xff58, 0xff59, 0xff5a, 0, 0, 0, 0, 0,
       
 10254     0, 0xff21, 0xff22, 0xff23, 0xff24, 0xff25, 0xff26, 0xff27,
       
 10255     0xff28, 0xff29, 0xff2a, 0xff2b, 0xff2c, 0xff2d, 0xff2e, 0xff2f,
       
 10256     0xff30, 0xff31, 0xff32, 0xff33, 0xff34, 0xff35, 0xff36, 0xff37,
       
 10257     0xff38, 0xff39, 0xff3a, 0, 0, 0, 0, 0,
       
 10258     0, 0, 0, 0, 0, 0, 0, 0,
       
 10259     0, 0, 0, 0, 0, 0, 0, 0,
       
 10260     0, 0, 0, 0, 0, 0, 0, 0,
       
 10261     0, 0, 0, 0, 0, 0, 0, 0,
       
 10262     0, 0, 0, 0, 0, 0, 0, 0,
       
 10263     0, 0, 0, 0, 0, 0, 0, 0,
       
 10264     0, 0, 0, 0, 0, 0, 0, 0,
       
 10265     0, 0, 0, 0, 0, 0, 0, 0,
       
 10266     0, 0, 0, 0, 0, 0, 0, 0,
       
 10267     0, 0, 0, 0, 0, 0, 0, 0,
       
 10268     0, 0, 0, 0, 0, 0, 0, 0,
       
 10269     0, 0, 0, 0, 0, 0, 0, 0,
       
 10270     0, 0, 0, 0, 0, 0, 0, 0,
       
 10271     0, 0, 0, 0, 0, 0, 0, 0,
       
 10272     0, 0, 0, 0, 0, 0, 0, 0,
       
 10273     0, 0, 0, 0, 0, 0, 0, 0,
       
 10274     0, 0, 0, 0, 0, 0, 0, 0,
       
 10275     0, 0, 0, 0, 0, 0, 0, 0,
       
 10276     0, 0, 0, 0, 0, 0, 0, 0,
       
 10277     0, 0, 0, 0, 0, 0, 0, 0,
       
 10278 };
       
 10279 
       
 10280 static const Q_UINT16 * const case_info[256] = {
       
 10281 
       
 10282     case_0, case_1, case_2, case_3, case_4, case_5, 0, 0,
       
 10283     0, 0, 0, 0, 0, 0, 0, 0,
       
 10284     case_10, 0, 0, 0, 0, 0, 0, 0,
       
 10285     0, 0, 0, 0, 0, 0, case_1e, case_1f,
       
 10286     case_20, case_21, 0, 0, 0, 0, 0, 0,
       
 10287     0, 0, 0, 0, 0, 0, 0, 0,
       
 10288     0, 0, 0, 0, 0, 0, 0, 0,
       
 10289     0, 0, 0, 0, 0, 0, 0, 0,
       
 10290     0, 0, 0, 0, 0, 0, 0, 0,
       
 10291     0, 0, 0, 0, 0, 0, 0, 0,
       
 10292     0, 0, 0, 0, 0, 0, 0, 0,
       
 10293     0, 0, 0, 0, 0, 0, 0, 0,
       
 10294     0, 0, 0, 0, 0, 0, 0, 0,
       
 10295     0, 0, 0, 0, 0, 0, 0, 0,
       
 10296     0, 0, 0, 0, 0, 0, 0, 0,
       
 10297     0, 0, 0, 0, 0, 0, 0, 0,
       
 10298     0, 0, 0, 0, 0, 0, 0, 0,
       
 10299     0, 0, 0, 0, 0, 0, 0, 0,
       
 10300     0, 0, 0, 0, 0, 0, 0, 0,
       
 10301     0, 0, 0, 0, 0, 0, 0, 0,
       
 10302     0, 0, 0, 0, 0, 0, 0, 0,
       
 10303     0, 0, 0, 0, 0, 0, 0, 0,
       
 10304     0, 0, 0, 0, 0, 0, 0, 0,
       
 10305     0, 0, 0, 0, 0, 0, 0, 0,
       
 10306     0, 0, 0, 0, 0, 0, 0, 0,
       
 10307     0, 0, 0, 0, 0, 0, 0, 0,
       
 10308     0, 0, 0, 0, 0, 0, 0, 0,
       
 10309     0, 0, 0, 0, 0, 0, 0, 0,
       
 10310     0, 0, 0, 0, 0, 0, 0, 0,
       
 10311     0, 0, 0, 0, 0, 0, 0, 0,
       
 10312     0, 0, 0, 0, 0, 0, 0, 0,
       
 10313     0, 0, 0, case_fb, 0, 0, 0, case_ff,
       
 10314 };
       
 10315 
       
 10316 static const Q_INT8 num_0 [] = {
       
 10317     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10318     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10319     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10320     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10321     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10322     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10323     0, 1, 2, 3, 4, 5, 6, 7,
       
 10324     8, 9, -1, -1, -1, -1, -1, -1,
       
 10325     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10326     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10327     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10328     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10329     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10330     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10331     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10332     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10333     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10334     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10335     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10336     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10337     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10338     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10339     -1, -1, 2, 3, -1, -1, -1, -1,
       
 10340     -1, 1, -1, -1, -1, -1, -1, -1,
       
 10341     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10342     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10343     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10344     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10345     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10346     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10347     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10348     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10349 };
       
 10350 
       
 10351 static const Q_INT8 num_6 [] = {
       
 10352     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10353     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10354     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10355     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10356     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10357     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10358     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10359     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10360     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10361     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10362     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10363     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10364     0, 1, 2, 3, 4, 5, 6, 7,
       
 10365     8, 9, -1, -1, -1, -1, -1, -1,
       
 10366     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10367     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10368     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10369     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10370     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10371     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10372     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10373     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10374     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10375     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10376     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10377     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10378     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10379     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10380     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10381     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10382     0, 1, 2, 3, 4, 5, 6, 7,
       
 10383     8, 9, -1, -1, -1, -1, -1, -1,
       
 10384 };
       
 10385 
       
 10386 static const Q_INT8 num_9 [] = {
       
 10387     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10388     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10389     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10390     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10391     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10392     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10393     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10394     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10395     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10396     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10397     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10398     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10399     -1, -1, -1, -1, -1, -1, 0, 1,
       
 10400     2, 3, 4, 5, 6, 7, 8, 9,
       
 10401     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10402     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10403     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10404     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10405     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10406     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10407     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10408     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10409     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10410     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10411     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10412     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10413     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10414     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10415     -1, -1, -1, -1, -1, -1, 0, 1,
       
 10416     2, 3, 4, 5, 6, 7, 8, 9,
       
 10417     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10418     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10419 };
       
 10420 
       
 10421 static const Q_INT8 num_b [] = {
       
 10422     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10423     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10424     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10425     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10426     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10427     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10428     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10429     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10430     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10431     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10432     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10433     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10434     -1, -1, -1, -1, -1, -1, 0, 1,
       
 10435     2, 3, 4, 5, 6, 7, 8, 9,
       
 10436     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10437     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10438     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10439     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10440     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10441     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10442     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10443     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10444     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10445     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10446     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10447     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10448     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10449     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10450     -1, -1, -1, -1, -1, -1, -1, 1,
       
 10451     2, 3, 4, 5, 6, 7, 8, 9,
       
 10452     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10453     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10454 };
       
 10455 
       
 10456 static const Q_INT8 num_d [] = {
       
 10457     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10458     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10459     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10460     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10461     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10462     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10463     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10464     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10465     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10466     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10467     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10468     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10469     -1, -1, -1, -1, -1, -1, 0, 1,
       
 10470     2, 3, 4, 5, 6, 7, 8, 9,
       
 10471     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10472     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10473     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10474     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10475     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10476     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10477     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10478     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10479     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10480     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10481     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10482     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10483     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10484     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10485     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10486     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10487     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10488     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10489 };
       
 10490 
       
 10491 static const Q_INT8 num_e [] = {
       
 10492     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10493     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10494     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10495     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10496     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10497     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10498     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10499     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10500     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10501     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10502     0, 1, 2, 3, 4, 5, 6, 7,
       
 10503     8, 9, -1, -1, -1, -1, -1, -1,
       
 10504     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10505     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10506     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10507     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10508     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10509     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10510     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10511     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10512     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10513     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10514     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10515     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10516     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10517     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10518     0, 1, 2, 3, 4, 5, 6, 7,
       
 10519     8, 9, -1, -1, -1, -1, -1, -1,
       
 10520     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10521     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10522     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10523     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10524 };
       
 10525 
       
 10526 static const Q_INT8 num_f [] = {
       
 10527     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10528     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10529     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10530     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10531     0, 1, 2, 3, 4, 5, 6, 7,
       
 10532     8, 9, -1, -1, -1, -1, -1, -1,
       
 10533     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10534     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10535     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10536     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10537     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10538     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10539     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10540     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10541     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10542     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10543     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10544     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10545     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10546     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10547     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10548     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10549     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10550     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10551     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10552     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10553     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10554     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10555     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10556     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10557     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10558     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10559 };
       
 10560 
       
 10561 static const Q_INT8 num_20 [] = {
       
 10562     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10563     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10564     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10565     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10566     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10567     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10568     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10569     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10570     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10571     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10572     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10573     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10574     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10575     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10576     0, -1, -1, -1, 4, 5, 6, 7,
       
 10577     8, 9, -1, -1, -1, -1, -1, -1,
       
 10578     0, 1, 2, 3, 4, 5, 6, 7,
       
 10579     8, 9, -1, -1, -1, -1, -1, -1,
       
 10580     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10581     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10582     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10583     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10584     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10585     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10586     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10587     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10588     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10589     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10590     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10591     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10592     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10593     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10594 };
       
 10595 
       
 10596 static const Q_INT8 num_ff [] = {
       
 10597     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10598     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10599     0, 1, 2, 3, 4, 5, 6, 7,
       
 10600     8, 9, -1, -1, -1, -1, -1, -1,
       
 10601     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10602     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10603     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10604     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10605     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10606     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10607     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10608     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10609     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10610     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10611     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10612     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10613     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10614     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10615     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10616     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10617     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10618     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10619     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10620     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10621     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10622     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10623     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10624     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10625     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10626     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10627     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10628     -1, -1, -1, -1, -1, -1, -1, -1,
       
 10629 };
       
 10630 
       
 10631 static const Q_INT8 * const decimal_info[256] = {
       
 10632      num_0, 0, 0, 0, 0, 0, num_6, 0,
       
 10633      0, num_9, num_9, num_b, num_9, num_d, num_e, num_f,
       
 10634      0, 0, 0, 0, 0, 0, 0, 0,
       
 10635      0, 0, 0, 0, 0, 0, 0, 0,
       
 10636      num_20, 0, 0, 0, 0, 0, 0, 0,
       
 10637      0, 0, 0, 0, 0, 0, 0, 0,
       
 10638      0, 0, 0, 0, 0, 0, 0, 0,
       
 10639      0, 0, 0, 0, 0, 0, 0, 0,
       
 10640      0, 0, 0, 0, 0, 0, 0, 0,
       
 10641      0, 0, 0, 0, 0, 0, 0, 0,
       
 10642      0, 0, 0, 0, 0, 0, 0, 0,
       
 10643      0, 0, 0, 0, 0, 0, 0, 0,
       
 10644      0, 0, 0, 0, 0, 0, 0, 0,
       
 10645      0, 0, 0, 0, 0, 0, 0, 0,
       
 10646      0, 0, 0, 0, 0, 0, 0, 0,
       
 10647      0, 0, 0, 0, 0, 0, 0, 0,
       
 10648      0, 0, 0, 0, 0, 0, 0, 0,
       
 10649      0, 0, 0, 0, 0, 0, 0, 0,
       
 10650      0, 0, 0, 0, 0, 0, 0, 0,
       
 10651      0, 0, 0, 0, 0, 0, 0, 0,
       
 10652      0, 0, 0, 0, 0, 0, 0, 0,
       
 10653      0, 0, 0, 0, 0, 0, 0, 0,
       
 10654      0, 0, 0, 0, 0, 0, 0, 0,
       
 10655      0, 0, 0, 0, 0, 0, 0, 0,
       
 10656      0, 0, 0, 0, 0, 0, 0, 0,
       
 10657      0, 0, 0, 0, 0, 0, 0, 0,
       
 10658      0, 0, 0, 0, 0, 0, 0, 0,
       
 10659      0, 0, 0, 0, 0, 0, 0, 0,
       
 10660      0, 0, 0, 0, 0, 0, 0, 0,
       
 10661      0, 0, 0, 0, 0, 0, 0, 0,
       
 10662      0, 0, 0, 0, 0, 0, 0, 0,
       
 10663      0, 0, 0, 0, 0, 0, 0, num_ff,
       
 10664 };
       
 10665 
       
 10666 static const Q_UINT16 symmetricPairs[] = {
       
 10667     0x0028, 0x0029, 0x0029, 0x0028, 0x003C, 0x003E, 0x003E, 0x003C,
       
 10668     0x005B, 0x005D, 0x005D, 0x005B, 0x007B, 0x007D, 0x007D, 0x007B,
       
 10669     0x2045, 0x2046, 0x2046, 0x2045, 0x207D, 0x207E, 0x207E, 0x207D,
       
 10670     0x208D, 0x208E, 0x208E, 0x208D, 0x3008, 0x3009, 0x3009, 0x3008,
       
 10671     0x300A, 0x300B, 0x300B, 0x300A, 0x300C, 0x300D, 0x300D, 0x300C,
       
 10672     0x300E, 0x300F, 0x300F, 0x300E, 0x3010, 0x3011, 0x3011, 0x3010,
       
 10673     0x3014, 0x3015, 0x3015, 0x3014, 0x3016, 0x3017, 0x3017, 0x3016,
       
 10674     0x3018, 0x3019, 0x3019, 0x3018, 0x301A, 0x301B, 0x301B, 0x301A,
       
 10675     0xFD3E, 0xFD3F, 0xFD3F, 0xFD3E, 0xFE59, 0xFE5A, 0xFE5A, 0xFE59,
       
 10676     0xFE5B, 0xFE5C, 0xFE5C, 0xFE5B, 0xFE5D, 0xFE5E, 0xFE5E, 0xFE5D,
       
 10677     0xFF08, 0xFF09, 0xFF09, 0xFF08, 0xFF3B, 0xFF3D, 0xFF3D, 0xFF3B,
       
 10678     0xFF5B, 0xFF5D, 0xFF5D, 0xFF5B, 0xFF62, 0xFF63, 0xFF63, 0xFF62,
       
 10679 };
       
 10680 
       
 10681 static int symmetricPairsSize =
       
 10682    sizeof(symmetricPairs)/sizeof(symmetricPairs[0]);
       
 10683 
       
 10684 /*
       
 10685  * ----------------------------------------------------------------------
       
 10686  * End of unicode tables
       
 10687  * ----------------------------------------------------------------------
       
 10688  */
       
 10689 
       
 10690 #endif
       
 10691 
       
 10692 
       
 10693 static int ucstrcmp( const QString &as, const QString &bs )
       
 10694 {
       
 10695     const QChar *a = as.unicode();
       
 10696     const QChar *b = bs.unicode();
       
 10697     if ( a == b )
       
 10698 	return 0;
       
 10699     if ( a == 0 )
       
 10700 	return 1;
       
 10701     if ( b == 0 )
       
 10702 	return -1;
       
 10703     int l=QMIN(as.length(),bs.length());
       
 10704     while ( l-- && *a == *b )
       
 10705 	a++,b++;
       
 10706     if ( l==-1 )
       
 10707 	return ( as.length()-bs.length() );
       
 10708     return a->unicode() - b->unicode();
       
 10709 }
       
 10710 
       
 10711 static int ucstrncmp( const QChar *a, const QChar *b, int l )
       
 10712 {
       
 10713     while ( l-- && *a == *b )
       
 10714 	a++,b++;
       
 10715     if ( l==-1 )
       
 10716 	return 0;
       
 10717     return a->unicode() - b->unicode();
       
 10718 }
       
 10719 
       
 10720 static int ucstrnicmp( const QChar *a, const QChar *b, int l )
       
 10721 {
       
 10722     while ( l-- && a->lower() == b->lower() )
       
 10723 	a++,b++;
       
 10724     if ( l==-1 )
       
 10725 	return 0;
       
 10726     QChar al = a->lower();
       
 10727     QChar bl = b->lower();
       
 10728     return al.unicode() - bl.unicode();
       
 10729 }
       
 10730 
       
 10731 // NOT REVISED
       
 10732 /*! \class QCharRef qstring.h
       
 10733   \brief The QCharRef class is a helper class for QString.
       
 10734 
       
 10735   It provides the ability to work on characters in a QString in a natural
       
 10736   fashion.
       
 10737 
       
 10738   When you get an object of type QCharRef, you can assign to it, which
       
 10739   will operate on the string from which you got it.  That is its whole
       
 10740   purpose in life.  It becomes invalid once further modifications are
       
 10741   made to the string: If you want to keep it, copy it into a QChar.
       
 10742 
       
 10743   Most of the QChar member functions also exist in QCharRef.  However,
       
 10744   they are not explicitly documented here.
       
 10745 
       
 10746   \sa QString::operator[]() QString::at() QChar
       
 10747 */
       
 10748 
       
 10749 /*! \class QChar qstring.h
       
 10750 
       
 10751 \brief The QChar class provides a light-weight Unicode character.
       
 10752 
       
 10753 Unicode characters are (so far) 16-bit entities without any markup or
       
 10754 structure.  This class represents such an entity.  It is rather
       
 10755 light-weight, so it can be used everywhere.  Most compilers treat it
       
 10756 approximately like "short int".  (In a few years, it may be necessary
       
 10757 to make QChar 32-bit, once more than 65536 Unicode code points have
       
 10758 been defined and come into use.)
       
 10759 
       
 10760 QChar provides a full complement of testing/classification functions,
       
 10761 conversion to and from other formats, from composed to decomposed
       
 10762 unicode, and will try to compare and case-convert if you ask it to.
       
 10763 
       
 10764 The classification functions include functions like those in ctype.h,
       
 10765 but operating on the full range of unicode characters.  They all
       
 10766 return TRUE if the character is a certain type of character, and FALSE
       
 10767 otherwise.
       
 10768 
       
 10769 These functions are: isNull() (returns TRUE if the character is
       
 10770 U+0000), isPrint() (TRUE if the character is any sort of printable
       
 10771 character, including whitespace), isPunct() (any sort of punctation),
       
 10772 isMark() (Unicode Marks), isLetter (letters), isNumber() (any sort of
       
 10773 numeric characters), isLetterOrNumber(),  and isDigit() (decimal digits).
       
 10774 All of these are wrappers around category(), which returns the
       
 10775 unicode-defined category of each character.
       
 10776 
       
 10777 QChar further provides direction(), which indicates the "natural"
       
 10778 writing direction of this character, joining(), which indicates how
       
 10779 this character joins with its neighbors (needed mostly for Arabic)
       
 10780 and finally mirrored(), which indicates whether this character needs
       
 10781 to be mirrored when it is printed in its unnatural writing
       
 10782 direction.
       
 10783 
       
 10784 Composed Unicode characters (like &aring;) can be converted to
       
 10785 decomposed Unicode ("a" followed by "ring above") using
       
 10786 decomposition().
       
 10787 
       
 10788 In Unicode, comparison is not necessarily possible, and case
       
 10789 conversion is at best very hard.  Unicode, covering the "entire"
       
 10790 globe, also includes a globe-sized collection of case and sorting
       
 10791 problems.  Qt tries, but not very hard: operator== and friends will do
       
 10792 comparison based purely on the numeric Unicode value (code point) of
       
 10793 the characters, and upper() and lower() will do case changes when the
       
 10794 character has a well-defined upper/lower-case equivalent. There is no
       
 10795 provision for locale-dependent case folding rules or comparison: These
       
 10796 functions are meant to be fast, so they can be used unambiguously in
       
 10797 data structures.
       
 10798 
       
 10799 The conversion functions include unicode() (to a scalar), latin1() (to
       
 10800 scalar, but converts all non-Latin1 characters to 0), row() (gives the
       
 10801 Unicode row), cell() (gives the unicode cell), digitValue() (gives the
       
 10802 integer value of any of the numerous digit characters), and a host of
       
 10803 constructors.
       
 10804 
       
 10805 \sa QString QCharRef \link unicode.html About Unicode \endlink
       
 10806 */
       
 10807 
       
 10808 /*! \enum QChar::Category
       
 10809 
       
 10810 This enum maps the Unicode character categories.  The currently known
       
 10811 categories are: <ul>
       
 10812 
       
 10813 <li> \c NoCategory - used when Qt is dazed and confused and cannot
       
 10814 make sense of anything.
       
 10815 
       
 10816 <li> \c Mark_NonSpacing - (Mn) -
       
 10817 
       
 10818 <li> \c Mark_SpacingCombining - (Mc) -
       
 10819 
       
 10820 <li> \c Mark_Enclosing - (Me) -
       
 10821 
       
 10822 <li> \c Number_DecimalDigit - (Nd) -
       
 10823 
       
 10824 <li> \c Number_Letter - (Nl) -
       
 10825 
       
 10826 <li> \c Number_Other - (No) -
       
 10827 
       
 10828 <li> \c Separator_Space - (Zs) -
       
 10829 
       
 10830 <li> \c Separator_Line - (Zl) -
       
 10831 
       
 10832 <li> \c Separator_Paragraph - (Zp) -
       
 10833 
       
 10834 <li> \c Other_Control - (Cc) -
       
 10835 
       
 10836 <li> \c Other_Format - (Cf) -
       
 10837 
       
 10838 <li> \c Other_Surrogate - (Cs) -
       
 10839 
       
 10840 <li> \c Other_PrivateUse - (Co) -
       
 10841 
       
 10842 <li> \c Other_NotAssigned - (Cn) -
       
 10843 
       
 10844 <li> \c Letter_Uppercase - (Lu) -
       
 10845 
       
 10846 <li> \c Letter_Lowercase - (Ll) -
       
 10847 
       
 10848 <li> \c Letter_Titlecase - (Lt) -
       
 10849 
       
 10850 <li> \c Letter_Modifier - (Lm) -
       
 10851 
       
 10852 <li> \c Letter_Other - (Lo) -
       
 10853 
       
 10854 <li> \c Punctuation_Connector - (Pc) -
       
 10855 
       
 10856 <li> \c Punctuation_Dask - (Pd) -
       
 10857 
       
 10858 <li> \c Punctuation_Open - (Ps) -
       
 10859 
       
 10860 <li> \c Punctuation_Close - (Pe) -
       
 10861 
       
 10862 <li> \c Punctuation_InitialQuote - (Pi) -
       
 10863 
       
 10864 <li> \c Punctuation_FinalQuote - (Pf) -
       
 10865 
       
 10866 <li> \c Punctuation_Other - (Po) -
       
 10867 
       
 10868 <li> \c Symbol_Math - (Sm) -
       
 10869 
       
 10870 <li> \c Symbol_Currency - (Sc) -
       
 10871 
       
 10872 <li> \c Symbol_Modifier - (Sk) -
       
 10873 
       
 10874 <li> \c Symbol_Other - (So) -
       
 10875 
       
 10876 </ul>
       
 10877 */
       
 10878 
       
 10879 /*! \enum QChar::Direction
       
 10880 
       
 10881   This enum type defines the Unicode direction attributes.
       
 10882   See <a href="http://www.unicode.org">the Unicode Standard</a>
       
 10883   for a description of the values.
       
 10884 
       
 10885   In order to conform to C/C++ naming conventions "Dir" is
       
 10886   prepended to the codes used in The Unicode Standard.
       
 10887 */
       
 10888 
       
 10889 /*! \enum QChar::Decomposition
       
 10890 
       
 10891   This enum type defines the Unicode decomposition attributes.
       
 10892   See <a href="http://www.unicode.org">the Unicode Standard</a>
       
 10893   for a description of the values.
       
 10894 */
       
 10895 
       
 10896 /*! \enum QChar::Joining
       
 10897 
       
 10898   This enum type defines the Unicode decomposition attributes.
       
 10899   See <a href="http://www.unicode.org">the Unicode Standard</a>
       
 10900   for a description of the values.
       
 10901 */
       
 10902 
       
 10903 
       
 10904 
       
 10905 /*! \fn QChar::QChar()
       
 10906 
       
 10907 Constructs a null QChar (one that isNull()).
       
 10908 */
       
 10909 
       
 10910 
       
 10911 /*! \fn QChar::QChar( char c )
       
 10912 
       
 10913 Constructs a QChar corresponding to ASCII/Latin1 character \a c.
       
 10914 */
       
 10915 
       
 10916 
       
 10917 /*! \fn QChar::QChar( uchar c )
       
 10918 
       
 10919 Constructs a QChar corresponding to ASCII/Latin1 character \a c.
       
 10920 */
       
 10921 
       
 10922 
       
 10923 /*! \fn QChar::QChar( uchar c, uchar r )
       
 10924 
       
 10925 Constructs a QChar for Unicode cell \a c in row \a r.
       
 10926 */
       
 10927 
       
 10928 
       
 10929 /*! \fn QChar::QChar( const QChar& c )
       
 10930 
       
 10931 Constructs a copy of \a c.  This is a deep copy, if such a
       
 10932 light-weight object can be said to have deep copies.
       
 10933 */
       
 10934 
       
 10935 
       
 10936 /*! \fn QChar::QChar( ushort rc )
       
 10937 
       
 10938 Constructs a QChar for the character with Unicode code point \a rc.
       
 10939 */
       
 10940 
       
 10941 
       
 10942 /*! \fn QChar::QChar( short rc )
       
 10943 
       
 10944 Constructs a QChar for the character with Unicode code point \a rc.
       
 10945 */
       
 10946 
       
 10947 
       
 10948 /*! \fn QChar::QChar( uint rc )
       
 10949 
       
 10950 Constructs a QChar for the character with Unicode code point \a rc.
       
 10951 */
       
 10952 
       
 10953 
       
 10954 /*! \fn QChar::QChar( int rc )
       
 10955 
       
 10956 Constructs a QChar for the character with Unicode code point \a rc.
       
 10957 */
       
 10958 
       
 10959 
       
 10960 /*! \fn bool  QChar::networkOrdered ()
       
 10961 
       
 10962   Returns TRUE if this character is in network byte order (MSB first),
       
 10963   and FALSE if it is not.  This is a platform-dependent property, so
       
 10964   we strongly advise against using this function in portable code.
       
 10965 */
       
 10966 
       
 10967 
       
 10968 /*!
       
 10969   \fn bool QChar::isNull() const
       
 10970   Returns TRUE if the characters is the unicode character 0x0000,
       
 10971   ie. ASCII NUL.
       
 10972 */
       
 10973 
       
 10974 /*!
       
 10975   \fn uchar QChar::cell () const
       
 10976   Returns the cell (least significant byte) of the Unicode character.
       
 10977 */
       
 10978 /*!
       
 10979   \fn uchar QChar::row () const
       
 10980   Returns the row (most significant byte) of the Unicode character.
       
 10981 */
       
 10982 /*!
       
 10983   \fn uchar& QChar::cell ()
       
 10984   Returns a reference to the cell (least significant byte) of the Unicode character.
       
 10985 */
       
 10986 /*!
       
 10987   \fn uchar& QChar::row ()
       
 10988   Returns a reference to the row (most significant byte) of the Unicode character.
       
 10989 */
       
 10990 
       
 10991 /*!
       
 10992   Returns whether the character is a printable character.  This is
       
 10993   any character not of category Cc or Cn.  Note that this gives no indication
       
 10994   of whether the character is available in some font.
       
 10995 */
       
 10996 bool QChar::isPrint() const
       
 10997 {
       
 10998     Category c = category();
       
 10999     return !(c == Other_Control || c == Other_NotAssigned);
       
 11000 }
       
 11001 
       
 11002 /*!
       
 11003   Returns whether the character is a separator
       
 11004   character (Separator_* categories).
       
 11005 */
       
 11006 bool QChar::isSpace() const
       
 11007 {
       
 11008     if( !row() )
       
 11009 	if( cell() >= 9 && cell() <=13 ) return TRUE;
       
 11010     Category c = category();
       
 11011     return c >= Separator_Space && c <= Separator_Paragraph;
       
 11012 }
       
 11013 
       
 11014 /*!
       
 11015   Returns whether the character is a mark (Mark_* categories).
       
 11016 */
       
 11017 bool QChar::isMark() const
       
 11018 {
       
 11019     Category c = category();
       
 11020     return c >= Mark_NonSpacing && c <= Mark_Enclosing;
       
 11021 }
       
 11022 
       
 11023 /*!
       
 11024   Returns whether the character is punctuation (Punctuation_* categories).
       
 11025 */
       
 11026 bool QChar::isPunct() const
       
 11027 {
       
 11028     Category c = category();
       
 11029     return (c >= Punctuation_Connector && c <= Punctuation_Other);
       
 11030 }
       
 11031 
       
 11032 /*!
       
 11033   Returns whether the character is a letter (Letter_* categories).
       
 11034 */
       
 11035 bool QChar::isLetter() const
       
 11036 {
       
 11037     Category c = category();
       
 11038     return (c >= Letter_Uppercase && c <= Letter_Other);
       
 11039 }
       
 11040 
       
 11041 /*!
       
 11042   Returns whether the character is a number (of any sort - Number_* categories).
       
 11043 
       
 11044   \sa isDigit()
       
 11045 */
       
 11046 bool QChar::isNumber() const
       
 11047 {
       
 11048     Category c = category();
       
 11049     return c >= Number_DecimalDigit && c <= Number_Other;
       
 11050 }
       
 11051 
       
 11052 /*!
       
 11053   Returns whether the character is a letter or number (Letter_* or Number_* categories).
       
 11054 */
       
 11055 bool QChar::isLetterOrNumber() const
       
 11056 {
       
 11057     Category c = category();
       
 11058     return (c >= Letter_Uppercase && c <= Letter_Other)
       
 11059 	|| (c >= Number_DecimalDigit && c <= Number_Other);
       
 11060 }
       
 11061 
       
 11062 
       
 11063 /*!
       
 11064   Returns whether the character is a decimal digit (Number_DecimalDigit).
       
 11065   */
       
 11066 bool QChar::isDigit() const
       
 11067 {
       
 11068     return (category() == Number_DecimalDigit);
       
 11069 }
       
 11070 
       
 11071 /*!
       
 11072   Returns the numeric value of the digit, or -1 if the character is not
       
 11073   a digit.
       
 11074 */
       
 11075 int QChar::digitValue() const
       
 11076 {
       
 11077 #ifndef QT_NO_UNICODETABLES
       
 11078     const Q_INT8 *dec_row = decimal_info[row()];
       
 11079     if( !dec_row )
       
 11080 	return -1;
       
 11081     return decimal_info[row()][cell()];
       
 11082 #else
       
 11083     // ##### just latin1
       
 11084     if ( rw != 0 || cl < '0' || cl > '9' )
       
 11085 	return -1;
       
 11086     else
       
 11087 	return cl - '0';
       
 11088 #endif
       
 11089 }
       
 11090 
       
 11091 /*!
       
 11092   Returns the character category.
       
 11093 
       
 11094   \sa Category
       
 11095 */
       
 11096 QChar::Category QChar::category() const
       
 11097 {
       
 11098 #ifndef QT_NO_UNICODETABLES
       
 11099     return (Category)(unicode_info[row()][cell()]);
       
 11100 #else
       
 11101 // ### just ASCII
       
 11102     if ( rw == 0 ) {
       
 11103 	return (Category)(ui_00[cell()]);
       
 11104     }
       
 11105     return Letter_Uppercase; //#######
       
 11106 #endif
       
 11107 }
       
 11108 
       
 11109 /*!
       
 11110   Returns the characters directionality.
       
 11111 
       
 11112   \sa Direction
       
 11113 */
       
 11114 QChar::Direction QChar::direction() const
       
 11115 {
       
 11116 #ifndef QT_NO_UNICODETABLES
       
 11117     const Q_UINT8 *rowp = direction_info[row()];
       
 11118     if(!rowp) return QChar::DirL;
       
 11119     return (Direction) ( *(rowp+cell()) &0x1f );
       
 11120 #else
       
 11121     return DirL;
       
 11122 #endif
       
 11123 }
       
 11124 
       
 11125 /*!
       
 11126   This function is not supported (it may change to use Unicode
       
 11127   character classes).
       
 11128 
       
 11129   Returns information about the joining properties of the
       
 11130   character (needed for arabic).
       
 11131 */
       
 11132 QChar::Joining QChar::joining() const
       
 11133 {
       
 11134 #ifndef QT_NO_UNICODETABLES
       
 11135     const Q_UINT8 *rowp = direction_info[row()];
       
 11136     if ( !rowp )
       
 11137 	return QChar::OtherJoining;
       
 11138     return (Joining) ((*(rowp+cell()) >> 5) &0x3);
       
 11139 #else
       
 11140     return OtherJoining;
       
 11141 #endif
       
 11142 }
       
 11143 
       
 11144 
       
 11145 /*!
       
 11146   Returns whether the character is a mirrored character (one that
       
 11147   should be reversed if the text direction is reversed).
       
 11148 */
       
 11149 bool QChar::mirrored() const
       
 11150 {
       
 11151 #ifndef QT_NO_UNICODETABLES
       
 11152     const Q_UINT8 *rowp = direction_info[row()];
       
 11153     if ( !rowp )
       
 11154 	return FALSE;
       
 11155     return *(rowp+cell())>128;
       
 11156 #else
       
 11157     return FALSE;
       
 11158 #endif
       
 11159 }
       
 11160 
       
 11161 /*!
       
 11162   Returns the mirrored char if this character is a mirrored char, the char
       
 11163   itself otherwise
       
 11164 */
       
 11165 QChar QChar::mirroredChar() const
       
 11166 {
       
 11167 #ifndef QT_NO_UNICODETABLES
       
 11168     if(!mirrored()) return *this;
       
 11169 
       
 11170     int i;
       
 11171     int c = unicode();
       
 11172     for (i = 0; i < symmetricPairsSize; i += 2) {
       
 11173         if (symmetricPairs[i] == c)
       
 11174           return symmetricPairs[i+1];
       
 11175     }
       
 11176     return 0;
       
 11177 #else
       
 11178     return *this;
       
 11179 #endif
       
 11180 }
       
 11181 
       
 11182 /*!
       
 11183   Decomposes a character into its parts. Returns QString::null if
       
 11184   no decomposition exists.
       
 11185 */
       
 11186 QString QChar::decomposition() const
       
 11187 {
       
 11188 #ifndef QT_NO_UNICODETABLES
       
 11189     const Q_UINT16 *r = decomposition_info[row()];
       
 11190     if(!r) return QString::null;
       
 11191 
       
 11192     Q_UINT16 pos = r[cell()];
       
 11193     if(!pos) return QString::null;
       
 11194     pos+=2;
       
 11195 
       
 11196     QString s;
       
 11197     Q_UINT16 c;
       
 11198     while((c = decomposition_map[pos++]) != 0) s += QChar(c);
       
 11199 
       
 11200     return s;
       
 11201 #else
       
 11202     return null;
       
 11203 #endif
       
 11204 }
       
 11205 
       
 11206 /*!
       
 11207   Returns the tag defining the composition of the character.
       
 11208   Returns QChar::Single if no decomposition exists.
       
 11209 */
       
 11210 QChar::Decomposition QChar::decompositionTag() const
       
 11211 {
       
 11212 #ifndef QT_NO_UNICODETABLES
       
 11213     const Q_UINT16 *r = decomposition_info[row()];
       
 11214     if(!r) return QChar::Single;
       
 11215 
       
 11216     Q_UINT16 pos = r[cell()];
       
 11217     if(!pos) return QChar::Single;
       
 11218 
       
 11219     return (QChar::Decomposition) decomposition_map[pos];
       
 11220 #else
       
 11221     return Single; // ########### FIX eg. just latin1
       
 11222 #endif
       
 11223 }
       
 11224 
       
 11225 /*!
       
 11226   Returns the lowercase equivalent if the character is uppercase,
       
 11227   or the character itself otherwise.
       
 11228 */
       
 11229 QChar QChar::lower() const
       
 11230 {
       
 11231 #ifndef QT_NO_UNICODETABLES
       
 11232     if(category() != Letter_Uppercase) return *this;
       
 11233     Q_UINT16 lower = *(case_info[row()]+cell());
       
 11234     if(lower == 0) return *this;
       
 11235     return lower;
       
 11236 #else
       
 11237     if (row())
       
 11238 	return *this;
       
 11239     else
       
 11240 	return QChar(tolower(latin1()));
       
 11241 #endif
       
 11242 }
       
 11243 
       
 11244 /*!
       
 11245   Returns the uppercase equivalent if the character is lowercase,
       
 11246   or the character itself otherwise.
       
 11247 */
       
 11248 QChar QChar::upper() const
       
 11249 {
       
 11250 #ifndef QT_NO_UNICODETABLES
       
 11251     if(category() != Letter_Lowercase) return *this;
       
 11252     Q_UINT16 upper = *(case_info[row()]+cell());
       
 11253     if(upper == 0) return *this;
       
 11254     return upper;
       
 11255 #else
       
 11256     if (row())
       
 11257 	return *this;
       
 11258     else
       
 11259 	return QChar(toupper(latin1()));
       
 11260 #endif
       
 11261 }
       
 11262 
       
 11263 /*!
       
 11264   \fn QChar::operator char() const
       
 11265 
       
 11266   Returns the Latin1 character equivalent to the QChar,
       
 11267   or 0.  This is mainly useful for non-internationalized software.
       
 11268 
       
 11269   \sa unicode()
       
 11270 */
       
 11271 
       
 11272 /*!
       
 11273   \fn ushort QChar::unicode() const
       
 11274 
       
 11275   Returns the numeric Unicode value equal to the QChar.  Normally, you
       
 11276   should use QChar objects as they are equivalent, but for some low-level
       
 11277   tasks (eg. indexing into an array of Unicode information), this function
       
 11278   is useful.
       
 11279 */
       
 11280 
       
 11281 /*****************************************************************************
       
 11282   Documentation of QChar related functions
       
 11283  *****************************************************************************/
       
 11284 
       
 11285 /*!
       
 11286   \fn int operator==( QChar c1, QChar c2 )
       
 11287   \relates QChar
       
 11288 
       
 11289   Returns TRUE if \a c1 and \a c2 are the same Unicode character.
       
 11290 */
       
 11291 
       
 11292 /*!
       
 11293   \fn int operator==( char ch, QChar c )
       
 11294   \relates QChar
       
 11295 
       
 11296   Returns TRUE if \a c is the ASCII/Latin1 character \a ch.
       
 11297 */
       
 11298 
       
 11299 /*!
       
 11300   \fn int operator==( QChar c, char ch )
       
 11301   \relates QChar
       
 11302 
       
 11303   Returns TRUE if \a c is the ASCII/Latin1 character \a ch.
       
 11304 */
       
 11305 
       
 11306 /*!
       
 11307   \fn int operator!=( QChar c1, QChar c2 )
       
 11308   \relates QChar
       
 11309 
       
 11310   Returns TRUE if \a c1 and \a c2 are not the same Unicode character.
       
 11311 */
       
 11312 
       
 11313 /*!
       
 11314   \fn int operator!=( char ch, QChar c )
       
 11315   \relates QChar
       
 11316 
       
 11317   Returns TRUE if \a c is not the ASCII/Latin1 character \a ch.
       
 11318 */
       
 11319 
       
 11320 /*!
       
 11321   \fn int operator!=( QChar c, char ch )
       
 11322   \relates QChar
       
 11323 
       
 11324   Returns TRUE if \a c is not the ASCII/Latin1 character \a ch.
       
 11325 */
       
 11326 
       
 11327 /*!
       
 11328   \fn int operator<=( QChar c1, QChar c2 )
       
 11329   \relates QChar
       
 11330 
       
 11331   Returns TRUE if the numeric Unicode value of \a c1 is less than that
       
 11332   of \a c2, or they are the same Unicode character.
       
 11333 */
       
 11334 
       
 11335 /*!
       
 11336   \fn int operator<=( QChar c, char ch )
       
 11337   \relates QChar
       
 11338 
       
 11339   Returns TRUE if the numeric Unicode value of \a c is less than or
       
 11340   equal to that of the ASCII/Latin1 character \a ch.
       
 11341 */
       
 11342 
       
 11343 /*!
       
 11344   \fn int operator<=( char ch, QChar c )
       
 11345   \relates QChar
       
 11346 
       
 11347   Returns TRUE if the numeric Unicode value of the ASCII/Latin1
       
 11348   character \a ch is less than or equal to that of \a c.
       
 11349 */
       
 11350 
       
 11351 /*!
       
 11352   \fn int operator>=( QChar c1, QChar c2 )
       
 11353   \relates QChar
       
 11354 
       
 11355   Returns TRUE if the numeric Unicode value of \a c1 is greater than that
       
 11356   of \a c2, or they are the same Unicode character.
       
 11357 */
       
 11358 
       
 11359 /*!
       
 11360   \fn int operator>=( QChar c, char ch )
       
 11361   \relates QChar
       
 11362 
       
 11363   Returns TRUE if the numeric Unicode value of \a c is greater than or
       
 11364   equal to that of the ASCII/Latin1 character \a ch.
       
 11365 */
       
 11366 
       
 11367 /*!
       
 11368   \fn int operator>=( char ch, QChar c )
       
 11369   \relates QChar
       
 11370 
       
 11371   Returns TRUE if the numeric Unicode value of the ASCII/Latin1
       
 11372   character \a ch is greater than or equal to that of \a c.
       
 11373 */
       
 11374 
       
 11375 /*!
       
 11376   \fn int operator<( QChar c1, QChar c2 )
       
 11377   \relates QChar
       
 11378 
       
 11379   Returns TRUE if the numeric Unicode value of \a c1 is less than that
       
 11380   of \a c2.
       
 11381 */
       
 11382 
       
 11383 /*!
       
 11384   \fn int operator<( QChar c, char ch )
       
 11385   \relates QChar
       
 11386 
       
 11387   Returns TRUE if the numeric Unicode value of \a c is less than that
       
 11388   of the ASCII/Latin1 character \a ch.
       
 11389 */
       
 11390 
       
 11391 /*!
       
 11392   \fn int operator<( char ch, QChar c )
       
 11393   \relates QChar
       
 11394 
       
 11395   Returns TRUE if the numeric Unicode value of the ASCII/Latin1
       
 11396   character \a ch is less than that of \a c.
       
 11397 */
       
 11398 
       
 11399 /*!
       
 11400   \fn int operator>( QChar c1, QChar c2 )
       
 11401   \relates QChar
       
 11402 
       
 11403   Returns TRUE if the numeric Unicode value of \a c1 is greater than
       
 11404   that of \a c2.
       
 11405 */
       
 11406 
       
 11407 /*!
       
 11408   \fn int operator>( QChar c, char ch )
       
 11409   \relates QChar
       
 11410 
       
 11411   Returns TRUE if the numeric Unicode value of \a c is greater than
       
 11412   that of the ASCII/Latin1 character \a ch.
       
 11413 */
       
 11414 
       
 11415 /*!
       
 11416   \fn int operator>( char ch, QChar c )
       
 11417   \relates QChar
       
 11418 
       
 11419   Returns TRUE if the numeric Unicode value of the ASCII/Latin1
       
 11420   character \a ch is greater than that of \a c.
       
 11421 */
       
 11422 
       
 11423 #ifndef QT_NO_UNICODETABLES
       
 11424 
       
 11425 // small class used internally in QString::Compose()
       
 11426 class QLigature
       
 11427 {
       
 11428 public:
       
 11429     QLigature( QChar c );
       
 11430 
       
 11431     Q_UINT16 first() { cur = ligatures; return cur ? *cur : 0; }
       
 11432     Q_UINT16 next() { return cur && *cur ? *(cur++) : 0; }
       
 11433     Q_UINT16 current() { return cur ? *cur : 0; }
       
 11434 
       
 11435     int match(QString & str, unsigned int index);
       
 11436     QChar head();
       
 11437     QChar::Decomposition tag();
       
 11438 
       
 11439 private:
       
 11440     Q_UINT16 *ligatures;
       
 11441     Q_UINT16 *cur;
       
 11442 };
       
 11443 
       
 11444 QLigature::QLigature( QChar c )
       
 11445 {
       
 11446     const Q_UINT16 *r = ligature_info[c.row()];
       
 11447     if( !r )
       
 11448 	ligatures = 0;
       
 11449     else
       
 11450     {
       
 11451 	const Q_UINT16 pos = r[c.cell()];
       
 11452 	ligatures = (Q_UINT16 *)&(ligature_map[pos]);
       
 11453     }
       
 11454     cur = ligatures;
       
 11455 }
       
 11456 
       
 11457 QChar QLigature::head()
       
 11458 {
       
 11459     if(current())
       
 11460 	return QChar(decomposition_map[current()+1]);
       
 11461 
       
 11462     return QChar::null;
       
 11463 }
       
 11464 
       
 11465 QChar::Decomposition QLigature::tag()
       
 11466 {
       
 11467     if(current())
       
 11468 	return (QChar::Decomposition) decomposition_map[current()];
       
 11469 
       
 11470     return QChar::Canonical;
       
 11471 }
       
 11472 
       
 11473 int QLigature::match(QString & str, unsigned int index)
       
 11474 {
       
 11475     unsigned int i=index;
       
 11476 
       
 11477     if(!current()) return 0;
       
 11478 
       
 11479     Q_UINT16 lig = current() + 2;
       
 11480     Q_UINT16 ch;
       
 11481 
       
 11482     while ((i < str.length()) && (ch = decomposition_map[lig])) {
       
 11483 	if (str[(int)i] != QChar(ch))
       
 11484 	    return 0;
       
 11485 	i++; lig++;
       
 11486     }
       
 11487 
       
 11488     if (!decomposition_map[lig])
       
 11489     {
       
 11490 	return i-index;
       
 11491     }
       
 11492     return 0;
       
 11493 }
       
 11494 
       
 11495 #endif
       
 11496 
       
 11497 // this function is just used in QString::compose()
       
 11498 static inline bool format(QChar::Decomposition tag, QString & str,
       
 11499 			  int index, int len)
       
 11500 {
       
 11501     unsigned int l = index + len;
       
 11502     unsigned int r = index;
       
 11503 
       
 11504     bool left = FALSE, right = FALSE;
       
 11505 
       
 11506     left = ((l < str.length()) &&
       
 11507 	    ((str[(int)l].joining() == QChar::Dual) ||
       
 11508 	     (str[(int)l].joining() == QChar::Right)));
       
 11509     if (r > 0) {
       
 11510 	r--;
       
 11511 	//printf("joining(right) = %d\n", str[(int)r].joining());
       
 11512 	right = (str[(int)r].joining() == QChar::Dual);
       
 11513     }
       
 11514 
       
 11515 
       
 11516     switch (tag) {
       
 11517     case QChar::Medial:
       
 11518 	return (left & right);
       
 11519     case QChar::Initial:
       
 11520 	return (left && !right);
       
 11521     case QChar::Final:
       
 11522 	return (right);// && !left);
       
 11523     case QChar::Isolated:
       
 11524     default:
       
 11525 	return (!right && !left);
       
 11526     }
       
 11527 } // format()
       
 11528 
       
 11529 /*
       
 11530   QString::compose() and visual() were developed by Gordon Tisher
       
 11531   <tisher@uniserve.ca>, with input from Lars Knoll <knoll@mpi-hd.mpg.de>,
       
 11532   who developed the unicode data tables.
       
 11533 */
       
 11534 /*!
       
 11535   Note that this function is not supported in Qt 2.0, and is merely
       
 11536   for experimental and illustrative purposes.  It is mainly of interest
       
 11537   to those experimenting with Arabic and other composition-rich texts.
       
 11538 
       
 11539   Applies possible ligatures to a QString, useful when composition-rich
       
 11540   text requires rendering with glyph-poor fonts, but also
       
 11541   makes compositions such as QChar(0x0041) ('A') and QChar(0x0308)
       
 11542   (Unicode accent diaresis) giving QChar(0x00c4) (German A Umlaut).
       
 11543 */
       
 11544 void QString::compose()
       
 11545 {
       
 11546 #ifndef QT_NO_UNICODETABLES
       
 11547     unsigned int index=0, len;
       
 11548     unsigned int cindex = 0;
       
 11549 
       
 11550     QChar code, head;
       
 11551 
       
 11552     QArray<QChar> dia;
       
 11553 
       
 11554     QString composed = *this;
       
 11555 
       
 11556     while (index < length()) {
       
 11557 	code = at(index);
       
 11558 	//printf("\n\nligature for 0x%x:\n", code.unicode());
       
 11559 	QLigature ligature(code);
       
 11560 	ligature.first();
       
 11561 	while(ligature.current()) {
       
 11562 	    if ((len = ligature.match(*this, index)) != 0) {
       
 11563 		head = ligature.head();
       
 11564 		unsigned short code = head.unicode();
       
 11565 		// we exclude Arabic presentation forms A and a few
       
 11566 		// other ligatures, which are undefined in most fonts
       
 11567 		if(!(code > 0xfb50 && code < 0xfe80) &&
       
 11568 		   !(code > 0xfb00 && code < 0xfb2a)) {
       
 11569 				// joining info is only needed for arabic
       
 11570 		    if (format(ligature.tag(), *this, index, len)) {
       
 11571 			//printf("using ligature 0x%x, len=%d\n",code,len);
       
 11572 			// replace letter
       
 11573 			composed.replace(cindex, len, QChar(head));
       
 11574 			index += len-1;
       
 11575 			// we continue searching in case we have a final
       
 11576 			// form because medial ones are preferred.
       
 11577 			if ( len != 1 || ligature.tag() !=QChar::Final )
       
 11578 			    break;
       
 11579 		    }
       
 11580 		}
       
 11581 	    }
       
 11582 	    ligature.next();
       
 11583 	}
       
 11584 	cindex++;
       
 11585 	index++;
       
 11586     }
       
 11587     *this = composed;
       
 11588 #endif
       
 11589 }
       
 11590 
       
 11591 static QChar LRM ((ushort)0x200e);
       
 11592 static QChar RLM ((ushort)0x200f);
       
 11593 static QChar LRE ((ushort)0x202a);
       
 11594 static QChar RLE ((ushort)0x202b);
       
 11595 static QChar RLO ((ushort)0x202e);
       
 11596 static QChar LRO ((ushort)0x202d);
       
 11597 static QChar PDF ((ushort)0x202c);
       
 11598 
       
 11599 #if 0
       
 11600 static inline bool is_arabic(unsigned short x) {
       
 11601     return (((x >= 0x0600) && (x <= 0x07bf)) ||
       
 11602 	    ((x >= 0xfb50) && (x <= 0xfdff)) ||
       
 11603 	    ((x >= 0xfe70) && (x <= 0xfeff)));
       
 11604 }
       
 11605 #endif
       
 11606 
       
 11607 static inline bool is_neutral(unsigned short dir) {
       
 11608   return ((dir == QChar::DirB) ||
       
 11609 		  (dir == QChar::DirS) ||
       
 11610 		  (dir == QChar::DirWS) ||
       
 11611 		  (dir == QChar::DirON) ||
       
 11612 	          (dir == QChar::DirNSM));
       
 11613 }
       
 11614 
       
 11615 /*!
       
 11616   This function returns the basic directionality of the string (QChar::DirR for
       
 11617   right to left and QChar::DirL for left to right). Useful to find the right
       
 11618   alignment.
       
 11619   */
       
 11620 QChar::Direction QString::basicDirection()
       
 11621 {
       
 11622 #ifndef QT_NO_UNICODETABLES
       
 11623     // find base direction
       
 11624     unsigned int pos = 0;
       
 11625     while ((pos < length()) &&
       
 11626 	   (at(pos) != RLE) &&
       
 11627 	   (at(pos) != LRE) &&
       
 11628 	   (at(pos) != RLO) &&
       
 11629 	   (at(pos) != LRO) &&
       
 11630 	   (at(pos).direction() > 1) &&
       
 11631 	   (at(pos).direction() != QChar::DirAL)) // not R and not L
       
 11632 	pos++;
       
 11633 
       
 11634     if ((at(pos).direction() == QChar::DirR) ||
       
 11635 	(at(pos).direction() == QChar::DirAL) ||
       
 11636 	(at(pos) == RLE) ||
       
 11637 	(at(pos) == RLO))
       
 11638 	return QChar::DirR;
       
 11639 #endif
       
 11640 
       
 11641     return QChar::DirL;
       
 11642 }
       
 11643 
       
 11644 #ifndef QT_NO_UNICODETABLES
       
 11645 // reverses part of the QChar array to get visual ordering
       
 11646 // called from QString::visual()
       
 11647 //
       
 11648 static unsigned int reverse( QString &chars, unsigned char *level,
       
 11649 			     unsigned int a, unsigned int b)
       
 11650 {
       
 11651     unsigned int c = a;
       
 11652     unsigned char lev = level[c];
       
 11653 
       
 11654     while ((c < b) && (level[c] >= lev)) {
       
 11655 	if (level[c] > lev)
       
 11656 	    c = reverse(chars, level, c, b);
       
 11657 	c++;
       
 11658     }
       
 11659 
       
 11660     if (lev > 0) {
       
 11661 	QChar temp;
       
 11662 	unsigned int d = a, e = c-1;
       
 11663 	while (d < e) {
       
 11664 	    temp = chars[(int)d];
       
 11665 	    chars[(int)d] = chars[(int)e];
       
 11666 	    chars[(int)e] = temp;
       
 11667 
       
 11668 	    d++; e--;
       
 11669 	}
       
 11670     }
       
 11671 
       
 11672     return c;
       
 11673 }
       
 11674 
       
 11675 // small class used for the ordering algorithm in QString::visual()
       
 11676 class QBidiState {
       
 11677 public:
       
 11678     unsigned char level;
       
 11679     signed   char override;
       
 11680 
       
 11681     QBidiState(unsigned char l, signed char o) : level(l), override(o) {};
       
 11682 };
       
 11683 
       
 11684 // matrix for resolving neutral types
       
 11685 
       
 11686 #define NEG1 (QChar::Direction)(-1)
       
 11687 
       
 11688 static QChar::Direction resolv[5][5] =
       
 11689 {
       
 11690 	{ NEG1,         QChar::DirR, QChar::DirL, QChar::DirEN, QChar::DirAN },
       
 11691 	{ QChar::DirR,  QChar::DirR, NEG1,        QChar::DirR,  QChar::DirR  },
       
 11692 	{ QChar::DirL,  NEG1,        QChar::DirL, QChar::DirL,  NEG1         },
       
 11693 	{ QChar::DirEN, QChar::DirR, QChar::DirL, QChar::DirEN, QChar::DirR  },
       
 11694 	{ QChar::DirAN, QChar::DirR, NEG1,        NEG1,         QChar::DirAN }
       
 11695 };
       
 11696 
       
 11697 #endif
       
 11698 
       
 11699 /*!
       
 11700   This function returns the QString ordered visually. Useful for
       
 11701   painting the string or when transforming to a visually ordered
       
 11702   encoding.
       
 11703 */
       
 11704 QString QString::visual(int index, int len)
       
 11705 {
       
 11706 #ifndef QT_NO_UNICODETABLES
       
 11707     // #### This needs much more optimizing - it is called for
       
 11708     // #### every text operation.
       
 11709 
       
 11710     unsigned char *level;
       
 11711     QChar::Direction *dir;
       
 11712     unsigned char base = 0;
       
 11713 
       
 11714     unsigned int l = length();
       
 11715 
       
 11716     // check bounds
       
 11717     if (len == -1)
       
 11718 	len = length()-index;
       
 11719     if ((uint)index > l)
       
 11720 	return QString::null;
       
 11721 
       
 11722     // find base direction
       
 11723     unsigned int pos = 0;
       
 11724     while ((pos < length()) &&
       
 11725 	   (at(pos) != RLE) &&
       
 11726 	   (at(pos) != LRE) &&
       
 11727 	   (at(pos) != RLO) &&
       
 11728 	   (at(pos) != LRO) &&
       
 11729 	   (at(pos).direction() > 1) &&
       
 11730 	   (at(pos).direction() != QChar::DirAL)
       
 11731 	   ) // not R and not L
       
 11732 	pos++;
       
 11733 
       
 11734     if ((pos < length()) &&
       
 11735 	    ((at(pos).direction() == QChar::DirR) ||
       
 11736 	     (at(pos).direction() == QChar::DirAL) ||
       
 11737 	    (at(pos) == RLE) ||
       
 11738 	    (at(pos) == RLO)))
       
 11739 	base = 1;
       
 11740 
       
 11741     // is there any BiDi char at all?
       
 11742     if ( base == 0 && pos == l ) {
       
 11743 	return mid(index, len);
       
 11744     }
       
 11745 
       
 11746 
       
 11747     level = new uchar[l];
       
 11748     dir   = new QChar::Direction[l];
       
 11749 
       
 11750     // explicit override pass
       
 11751     //unsigned int code_count = 0;
       
 11752 
       
 11753     QStack<QBidiState> stack;
       
 11754     stack.setAutoDelete(TRUE);
       
 11755 
       
 11756     unsigned char    clevel   = base;
       
 11757     signed char      override = -1;
       
 11758 
       
 11759     for (pos = 0; pos < l; pos++) {
       
 11760 
       
 11761 	if (at(pos) == RLE) {
       
 11762 	    //code_count++;
       
 11763 	    stack.push(new QBidiState(clevel, override));
       
 11764 	    if (clevel < 254)
       
 11765 		clevel += 1 + clevel % 2;
       
 11766 	    override = -1;
       
 11767 	}
       
 11768 	else if (at(pos) == LRE) {
       
 11769 	    //code_count++;
       
 11770 	    stack.push(new QBidiState(clevel, override));
       
 11771 	    if (clevel < 254)
       
 11772 		clevel += 2 - clevel % 2;
       
 11773 	    override = -1;
       
 11774 	}
       
 11775 	else if (at(pos) == RLO) {
       
 11776 	    //code_count++;
       
 11777 	    stack.push(new QBidiState(clevel, override));
       
 11778 	    if (clevel < 254)
       
 11779 		clevel += 1 + clevel % 2;
       
 11780 	    override = QChar::DirR;
       
 11781 	}
       
 11782 	else if (at(pos) == LRO) {
       
 11783 	    //code_count++;
       
 11784 	    stack.push(new QBidiState(clevel, override));
       
 11785 	    if (clevel < 254)
       
 11786 		clevel += 2 - clevel % 2;
       
 11787 	    override = QChar::DirL;
       
 11788 	}
       
 11789 	else if (at(pos) == PDF) {
       
 11790 	    //code_count++;
       
 11791 	    if (!stack.isEmpty()) {
       
 11792 		override = stack.top()->override;
       
 11793 		clevel   = stack.top()->level;
       
 11794 		stack.remove();
       
 11795 	    }
       
 11796 	}
       
 11797 
       
 11798 	// TODO: catch block separators (newlines, paras, etc.)
       
 11799 
       
 11800 	level[pos] = clevel;
       
 11801 	if (override != -1)
       
 11802 	    dir[pos] = (QChar::Direction) override;
       
 11803 	else
       
 11804 	    dir[pos] = at(pos).direction();
       
 11805     }
       
 11806 
       
 11807     // weak type pass
       
 11808     for (pos = 0; pos < l; pos++) {
       
 11809 
       
 11810 	int i;
       
 11811 
       
 11812 	switch (at(pos).direction()) {
       
 11813 	case QChar::DirEN:
       
 11814 	    i   = pos-1;
       
 11815 	    while ((i >= 0) &&
       
 11816 		   !(at(i).direction() == QChar::DirAN) &&
       
 11817 		   !(at(i).direction() == QChar::DirAL) &&
       
 11818 		   !(at(i).direction() == QChar::DirB))
       
 11819 		i--;
       
 11820 
       
 11821 	    if ((i >= 0) &&
       
 11822 		((at(i).direction() == QChar::DirAN) ||
       
 11823 		 (at(i).direction() == QChar::DirAL)))
       
 11824 		dir[pos] = QChar::DirAN;
       
 11825 
       
 11826 	    break;
       
 11827 	case QChar::DirES:
       
 11828 	case QChar::DirCS:
       
 11829 	    if ((pos > 0) && (pos < l-1) &&
       
 11830 		(dir[pos-1] == dir[pos+1]))
       
 11831 		dir[pos] = dir[pos-1];
       
 11832 	    else
       
 11833 		dir[pos] = QChar::DirON;
       
 11834 
       
 11835 	    break;
       
 11836 	case QChar::DirET:
       
 11837 	    if (((pos > 0) && (dir[pos-1] == QChar::DirEN)) ||
       
 11838 		((pos < l-1) && (dir[pos+1] == QChar::DirEN)))
       
 11839 		dir[pos] = QChar::DirEN;
       
 11840 	    else
       
 11841 		dir[pos] = QChar::DirON;
       
 11842 
       
 11843 	    break;
       
 11844 	case QChar::DirAL:
       
 11845 	    dir[pos] = QChar::DirR;
       
 11846 	    break;
       
 11847 	default:
       
 11848 	    break;
       
 11849 	}
       
 11850     }
       
 11851 
       
 11852     // neutral type pass
       
 11853     for (pos = 0; pos < l; pos++) {
       
 11854 	  QChar::Direction left,right; // declaring l here shadowed previous l
       
 11855 
       
 11856 	if (is_neutral(dir[pos])) {
       
 11857 	    if (pos > 0)
       
 11858 		left = dir[pos-1];
       
 11859 	    else
       
 11860 		left = (base == 0 ? QChar::DirL : QChar::DirR);
       
 11861 
       
 11862 	    int i = pos;
       
 11863 
       
 11864 	    while ((i < (int)l-1) && is_neutral(dir[i+1]))
       
 11865 		i++;
       
 11866 
       
 11867 	    if (i < (int)l-1)
       
 11868 		right = dir[i+1];
       
 11869 	    else
       
 11870 		right = (base == 0 ? QChar::DirL : QChar::DirR);
       
 11871 
       
 11872 	    for (int j=pos; j <= i; j++) {
       
 11873 		  int a = 1, b = 1;
       
 11874 		  while ((a < 5) && (left != resolv[0][a]))
       
 11875 			a++;
       
 11876 		  while ((b < 5) && (right != resolv[0][b]))
       
 11877 			b++;
       
 11878 		  if ((a == 5) || (b == 5))
       
 11879 			dir[j] = (base == 0 ? QChar::DirL : QChar::DirR);
       
 11880 		  else
       
 11881 			dir[j] = resolv[a][b];
       
 11882 
       
 11883 		  if (dir[j] == (QChar::Direction)(-1))
       
 11884 			dir[j] = (base == 0 ? QChar::DirL : QChar::DirR);
       
 11885 	    }
       
 11886 	}
       
 11887     }
       
 11888 
       
 11889     // implicit level pass
       
 11890     QChar::Direction prec = (base == 0 ? QChar::DirL : QChar::DirR);
       
 11891 
       
 11892     for (pos = 0; pos < l; pos++) {
       
 11893 	if (level[pos] % 2) {
       
 11894 	    switch (dir[pos]) {
       
 11895 	    case QChar::DirL:
       
 11896 	    case QChar::DirAN:
       
 11897 	    case QChar::DirEN:
       
 11898 		level[pos] += 1;
       
 11899 		break;
       
 11900 	    default:
       
 11901 		break;
       
 11902 	    }
       
 11903 	} else {
       
 11904 	    switch (dir[pos]) {
       
 11905 	    case QChar::DirL:
       
 11906 				// do nothing
       
 11907 		break;
       
 11908 	    case QChar::DirR:
       
 11909 		level[pos] += 1;
       
 11910 		break;
       
 11911 	    case QChar::DirEN:
       
 11912 		if (prec == QChar::DirL)
       
 11913 		    continue;
       
 11914 				// fall through
       
 11915 	    case QChar::DirAN:
       
 11916 		level[pos] += 2;
       
 11917 		break;
       
 11918 	    default:
       
 11919 		break;
       
 11920 	    }
       
 11921 	}
       
 11922 
       
 11923 	prec = dir[pos];
       
 11924     }
       
 11925 
       
 11926 	// now do the work!
       
 11927 	QString ret(*this);
       
 11928     reverse(ret, level, index, index+len);
       
 11929 
       
 11930     delete [] level;
       
 11931     delete [] dir;
       
 11932 
       
 11933     return ret;
       
 11934 #else
       
 11935     return mid(index,len);
       
 11936 #endif
       
 11937 }
       
 11938 
       
 11939 
       
 11940 
       
 11941 // These macros are used for efficient allocation of QChar strings.
       
 11942 // IMPORTANT! If you change these, make sure you also change the
       
 11943 // "delete unicode" statement in ~QStringData() in qstring.h correspondingly!
       
 11944 
       
 11945 #define QT_ALLOC_QCHAR_VEC( N ) (QChar*) new char[ sizeof(QChar)*( N ) ]
       
 11946 #define QT_DELETE_QCHAR_VEC( P ) delete[] ((char*)( P ))
       
 11947 
       
 11948 
       
 11949 /*!
       
 11950   This utility function converts the 8-bit string
       
 11951   \a ba to Unicode, returning the result.
       
 11952 
       
 11953   The caller is responsible for deleting the return value with delete[].
       
 11954 */
       
 11955 
       
 11956 QChar* QString::asciiToUnicode( const QByteArray& ba, uint* len )
       
 11957 {
       
 11958     if ( ba.isNull() ) {
       
 11959 	*len = 0;
       
 11960 	return 0;
       
 11961     }
       
 11962     int l = 0;
       
 11963     while ( l < (int)ba.size() && ba[l] )
       
 11964 	l++;
       
 11965     char* str = ba.data();
       
 11966     QChar *uc = new QChar[ l ];	  // Can't use macro, since function is public
       
 11967     QChar *result = uc;
       
 11968     if ( len )
       
 11969 	*len = l;
       
 11970     while (l--)
       
 11971 	*uc++ = *str++;
       
 11972     return result;
       
 11973 }
       
 11974 
       
 11975 static QChar* internalAsciiToUnicode( const QByteArray& ba, uint* len )
       
 11976 {
       
 11977     if ( ba.isNull() ) {
       
 11978 	*len = 0;
       
 11979 	return 0;
       
 11980     }
       
 11981     int l = 0;
       
 11982     while ( l < (int)ba.size() && ba[l] )
       
 11983 	l++;
       
 11984     char* str = ba.data();
       
 11985     QChar *uc = QT_ALLOC_QCHAR_VEC( l );
       
 11986     QChar *result = uc;
       
 11987     if ( len )
       
 11988 	*len = l;
       
 11989     while (l--)
       
 11990 	*uc++ = *str++;
       
 11991     return result;
       
 11992 }
       
 11993 
       
 11994 /*!
       
 11995   This utility function converts the NUL-terminated 8-bit string
       
 11996   \a str to Unicode, returning the result and setting \a len to
       
 11997   the length of the Unicode string.
       
 11998 
       
 11999   The caller is responsible for deleting the return value with delete[].
       
 12000 */
       
 12001 
       
 12002 QChar* QString::asciiToUnicode( const char *str, uint* len, uint maxlen )
       
 12003 {
       
 12004     QChar* result = 0;
       
 12005     uint l = 0;
       
 12006     if ( str ) {
       
 12007 	if ( maxlen != (uint)-1 ) {
       
 12008 	    while ( l < maxlen && str[l] )
       
 12009 		l++;
       
 12010 	} else {
       
 12011 	    // Faster?
       
 12012 	    l = qstrlen(str);
       
 12013 	}
       
 12014 	QChar *uc = new QChar[ l ]; // Can't use macro since function is public
       
 12015 	result = uc;
       
 12016 	uint i = l;
       
 12017 	while ( i-- )
       
 12018 	    *uc++ = *str++;
       
 12019     }
       
 12020     if ( len )
       
 12021 	*len = l;
       
 12022     return result;
       
 12023 }
       
 12024 
       
 12025 static QChar* internalAsciiToUnicode( const char *str, uint* len,
       
 12026 				      uint maxlen = (uint)-1 )
       
 12027 {
       
 12028     QChar* result = 0;
       
 12029     uint l = 0;
       
 12030     if ( str ) {
       
 12031 	if ( maxlen != (uint)-1 ) {
       
 12032 	    while ( l < maxlen && str[l] )
       
 12033 		l++;
       
 12034 	} else {
       
 12035 	    // Faster?
       
 12036 	    l = qstrlen(str);
       
 12037 	}
       
 12038 	QChar *uc = QT_ALLOC_QCHAR_VEC( l );
       
 12039 	result = uc;
       
 12040 	uint i = l;
       
 12041 	while ( i-- )
       
 12042 	    *uc++ = *str++;
       
 12043     }
       
 12044     if ( len )
       
 12045 	*len = l;
       
 12046     return result;
       
 12047 }
       
 12048 
       
 12049 /*!
       
 12050   This utility function converts \a l 16-bit characters from
       
 12051   \a uc to ASCII, returning a NUL-terminated string.
       
 12052 
       
 12053   The caller is responsible for deleting the string with delete[].
       
 12054 */
       
 12055 char* QString::unicodeToAscii(const QChar *uc, uint l)
       
 12056 {
       
 12057     if (!uc) {
       
 12058 	return 0;
       
 12059     }
       
 12060     char *a = new char[l+1];
       
 12061     char *result = a;
       
 12062     while (l--)
       
 12063 	*a++ = *uc++;
       
 12064     *a = '\0';
       
 12065     return result;
       
 12066 }
       
 12067 
       
 12068 /*****************************************************************************
       
 12069   QString member functions
       
 12070  *****************************************************************************/
       
 12071 
       
 12072 /*!
       
 12073   \class QString qstring.h
       
 12074 
       
 12075   \brief The QString class provides an abstraction of Unicode text and
       
 12076 	  the classic C null-terminated char array (<var>char*</var>).
       
 12077 
       
 12078   \ingroup tools
       
 12079   \ingroup shared
       
 12080 
       
 12081   QString uses \link shclass.html implicit sharing\endlink, and so it
       
 12082   is very efficient and easy to use.
       
 12083 
       
 12084   In all QString methods that take <var>const char*</var> parameters,
       
 12085   the <var>const char*</var> is interpreted as a classic C-style
       
 12086   0-terminated ASCII string. It is legal for the <var>const
       
 12087   char*</var> parameter to be 0. The results are undefined if the
       
 12088   <var>const char*</var> string is not 0-terminated. Functions that
       
 12089   copy classic C strings into a QString will not copy the terminating
       
 12090   0-character. The QChar array of the QString (as returned by
       
 12091   unicode()) is not terminated by a null.
       
 12092 
       
 12093   A QString that has not been assigned to anything is \a null, i.e. both
       
 12094   the length and data pointer is 0. A QString that references the empty
       
 12095   string ("", a single '\0' char) is \a empty.	Both null and empty
       
 12096   QStrings are legal parameters to the methods. Assigning <var>const char
       
 12097   * 0</var> to QString gives a null QString.
       
 12098 
       
 12099   Note that if you find that you are mixing usage of QCString, QString,
       
 12100   and QByteArray, this causes lots of unnecessary copying and might
       
 12101   indicate that the true nature of the data you are dealing with is
       
 12102   uncertain.  If the data is NUL-terminated 8-bit data, use QCString;
       
 12103   if it is unterminated (ie. contains NULs) 8-bit data, use QByteArray;
       
 12104   if it is text, use QString.
       
 12105 
       
 12106   \sa QChar \link shclass.html Shared classes\endlink
       
 12107 */
       
 12108 
       
 12109 Q_EXPORT QStringData *QString::shared_null = 0;
       
 12110 QT_STATIC_CONST_IMPL QString QString::null;
       
 12111 QT_STATIC_CONST_IMPL QChar QChar::null;
       
 12112 QT_STATIC_CONST_IMPL QChar QChar::replacement((ushort)0xfffd);
       
 12113 QT_STATIC_CONST_IMPL QChar QChar::byteOrderMark((ushort)0xfeff);
       
 12114 QT_STATIC_CONST_IMPL QChar QChar::byteOrderSwapped((ushort)0xfffe);
       
 12115 QT_STATIC_CONST_IMPL QChar QChar::nbsp((ushort)0x00a0);
       
 12116 
       
 12117 QStringData* QString::makeSharedNull()
       
 12118 {
       
 12119     return shared_null=new QStringData;
       
 12120 }
       
 12121 
       
 12122 // Uncomment this to get some useful statistics.
       
 12123 // #define Q2HELPER(x) x
       
 12124 
       
 12125 #ifdef Q2HELPER
       
 12126 static int stat_construct_charstar=0;
       
 12127 static int stat_construct_charstar_size=0;
       
 12128 static int stat_construct_null=0;
       
 12129 static int stat_construct_int=0;
       
 12130 static int stat_construct_int_size=0;
       
 12131 static int stat_construct_ba=0;
       
 12132 static int stat_get_ascii=0;
       
 12133 static int stat_get_ascii_size=0;
       
 12134 static int stat_copy_on_write=0;
       
 12135 static int stat_copy_on_write_size=0;
       
 12136 static int stat_fast_copy=0;
       
 12137 Q_EXPORT void qt_qstring_stats()
       
 12138 {
       
 12139 	qDebug("construct_charstar = %d (%d chars)", stat_construct_charstar, stat_construct_charstar_size);
       
 12140 	qDebug("construct_null = %d", stat_construct_null);
       
 12141 	qDebug("construct_int = %d (%d chars)", stat_construct_int, stat_construct_int_size);
       
 12142 	qDebug("construct_ba = %d", stat_construct_ba);
       
 12143 	qDebug("get_ascii = %d (%d chars)", stat_get_ascii, stat_get_ascii_size);
       
 12144 	qDebug("copy_on_write = %d (%d chars)", stat_copy_on_write, stat_copy_on_write_size);
       
 12145 	qDebug("fast_copy = %d", stat_fast_copy);
       
 12146 }
       
 12147 #else
       
 12148 #define Q2HELPER(x)
       
 12149 #endif
       
 12150 
       
 12151 /*!
       
 12152   \fn QString::QString()
       
 12153 
       
 12154   Constructs a null string.
       
 12155   \sa isNull()
       
 12156 */
       
 12157 
       
 12158 /*!
       
 12159   Constructs a string containing the one character \a ch.
       
 12160 */
       
 12161 QString::QString( QChar ch )
       
 12162 {
       
 12163     d = new QStringData( QT_ALLOC_QCHAR_VEC( 1 ), 1, 1 );
       
 12164     d->unicode[0] = ch;
       
 12165 }
       
 12166 
       
 12167 /*!
       
 12168   Constructs an implicitly-shared copy of \a s.
       
 12169 */
       
 12170 QString::QString( const QString &s ) :
       
 12171     d(s.d)
       
 12172 {
       
 12173     Q2HELPER(stat_fast_copy++)
       
 12174     d->ref();
       
 12175 }
       
 12176 
       
 12177 /*!
       
 12178   Private function.
       
 12179 
       
 12180   Constructs a string with preallocated space for \a size characters.
       
 12181 
       
 12182   The string is empty.
       
 12183 
       
 12184   \sa isNull()
       
 12185 */
       
 12186 
       
 12187 QString::QString( int size, bool /*dummy*/ )
       
 12188 {
       
 12189     if ( size ) {
       
 12190 	Q2HELPER(stat_construct_int++)
       
 12191 	int l = size;
       
 12192 	Q2HELPER(stat_construct_int_size+=l)
       
 12193 	QChar* uc = QT_ALLOC_QCHAR_VEC( l );
       
 12194 	d = new QStringData( uc, 0, l );
       
 12195     } else {
       
 12196 	Q2HELPER(stat_construct_null++)
       
 12197 	d = shared_null ? shared_null : (shared_null=new QStringData);
       
 12198 	d->ref();
       
 12199     }
       
 12200 }
       
 12201 
       
 12202 /*!
       
 12203   Constructs a string that is a deep copy of \a ba interpreted as
       
 12204   a classic C string.
       
 12205 */
       
 12206 
       
 12207 QString::QString( const QByteArray& ba )
       
 12208 {
       
 12209     Q2HELPER(stat_construct_ba++)
       
 12210     uint l;
       
 12211     QChar *uc = internalAsciiToUnicode(ba,&l);
       
 12212     d = new QStringData(uc,l,l);
       
 12213 }
       
 12214 
       
 12215 QString::QString( const QCString& ba )
       
 12216 {
       
 12217     Q2HELPER(stat_construct_ba++)
       
 12218     uint l;
       
 12219     QChar *uc = internalAsciiToUnicode(ba,&l);
       
 12220     d = new QStringData(uc,l,l);
       
 12221 }
       
 12222 
       
 12223 /*!
       
 12224   Constructs a string that is a deep copy of the
       
 12225   first \a length QChar in the array \a unicode.
       
 12226 
       
 12227   If \a unicode and \a length are 0, a null string is created.
       
 12228 
       
 12229   If only \a unicode is 0, the string is empty, but has
       
 12230   \a length characters of space preallocated - QString expands
       
 12231   automatically anyway, but this may speed some cases up a little.
       
 12232 
       
 12233   \sa isNull()
       
 12234 */
       
 12235 
       
 12236 QString::QString( const QChar* unicode, uint length )
       
 12237 {
       
 12238     if ( !unicode && !length ) {
       
 12239 	d = shared_null ? shared_null : makeSharedNull();
       
 12240 	d->ref();
       
 12241     } else {
       
 12242 	QChar* uc = QT_ALLOC_QCHAR_VEC( length );
       
 12243 	if ( unicode )
       
 12244 	    memcpy(uc, unicode, length*sizeof(QChar));
       
 12245 	d = new QStringData(uc,unicode ? length : 0,length);
       
 12246     }
       
 12247 }
       
 12248 
       
 12249 /*!
       
 12250   Constructs a string that is a deep copy of \a str, interpreted as a
       
 12251   classic C string.
       
 12252 
       
 12253   If \a str is 0 a null string is created.
       
 12254 
       
 12255   This is a cast constructor, but it is perfectly safe: converting a Latin1
       
 12256   const char* to QString preserves all the information.
       
 12257   You can disable this constructor by
       
 12258   defining QT_NO_CAST_ASCII when you compile your applications.
       
 12259   You can also make QString objects by using setLatin1()/fromLatin1(), or
       
 12260   fromLocal8Bit(), fromUtf8(), or whatever encoding is appropriate for
       
 12261   the 8-bit data you have.
       
 12262 
       
 12263   \sa isNull()
       
 12264 */
       
 12265 
       
 12266 QString::QString( const char *str )
       
 12267 {
       
 12268     Q2HELPER(stat_construct_charstar++)
       
 12269     uint l;
       
 12270     QChar *uc = internalAsciiToUnicode(str,&l);
       
 12271     Q2HELPER(stat_construct_charstar_size+=l)
       
 12272     d = new QStringData(uc,l,l);
       
 12273 }
       
 12274 
       
 12275 
       
 12276 /*! \fn QString::~QString()
       
 12277 
       
 12278 Destroys the string and frees the "real" string, if this was the last
       
 12279 copy of that string.
       
 12280 */
       
 12281 
       
 12282 
       
 12283 /*!
       
 12284   Deallocates any space reserved solely by this QString.
       
 12285 */
       
 12286 
       
 12287 void QString::real_detach()
       
 12288 {
       
 12289     setLength( length() );
       
 12290 }
       
 12291 
       
 12292 void QString::deref()
       
 12293 {
       
 12294     if ( d->deref() ) {
       
 12295 	if ( d == shared_null )
       
 12296 	    shared_null = 0;
       
 12297 	delete d;
       
 12298 	d = 0; // helps debugging
       
 12299     }
       
 12300 }
       
 12301 
       
 12302 void QStringData::deleteSelf()
       
 12303 {
       
 12304     delete this;
       
 12305 }
       
 12306 
       
 12307 /*!
       
 12308   \fn QString& QString::operator=( QChar c )
       
 12309   Sets the string to contain just the single character \a c.
       
 12310 */
       
 12311 
       
 12312 /*!
       
 12313   \fn QString& QString::operator=( char c )
       
 12314   Sets the string to contain just the single character \a c.
       
 12315 */
       
 12316 
       
 12317 /*!
       
 12318   Assigns a shallow copy of \a s to this string and returns a
       
 12319   reference to this string.
       
 12320 */
       
 12321 QString &QString::operator=( const QString &s )
       
 12322 {
       
 12323     Q2HELPER(stat_fast_copy++)
       
 12324     s.d->ref();
       
 12325     deref();
       
 12326     d = s.d;
       
 12327     return *this;
       
 12328 }
       
 12329 
       
 12330 /*!
       
 12331   Assigns a deep copy of \a cs, interpreted as a classic C string, to
       
 12332   this string and returns a reference to this string.
       
 12333 */
       
 12334 QString &QString::operator=( const QCString& cs )
       
 12335 {
       
 12336     return setLatin1(cs);
       
 12337 }
       
 12338 
       
 12339 
       
 12340 /*!
       
 12341   Assigns a deep copy of \a str, interpreted as a classic C string,
       
 12342   to this string and returns a reference to this string.
       
 12343 
       
 12344   If \a str is 0 a null string is created.
       
 12345 
       
 12346   \sa isNull()
       
 12347 */
       
 12348 QString &QString::operator=( const char *str )
       
 12349 {
       
 12350     return setLatin1(str);
       
 12351 }
       
 12352 
       
 12353 
       
 12354 /*!
       
 12355   \fn bool QString::isNull() const
       
 12356 
       
 12357   Returns TRUE if the string is null.
       
 12358   A null string is also an empty string.
       
 12359 
       
 12360   Example:
       
 12361   \code
       
 12362     QString a;		// a.unicode() == 0,  a.length() == 0
       
 12363     QString b = "";	// b.unicode() == "", b.length() == 0
       
 12364     a.isNull();		// TRUE, because a.unicode() == 0
       
 12365     a.isEmpty();	// TRUE, because a.length() == 0
       
 12366     b.isNull();		// FALSE, because b.unicode() != 0
       
 12367     b.isEmpty();	// TRUE, because b.length() == 0
       
 12368   \endcode
       
 12369 
       
 12370   \sa isEmpty(), length()
       
 12371 */
       
 12372 
       
 12373 /*!
       
 12374   \fn bool QString::isEmpty() const
       
 12375 
       
 12376   Returns TRUE if the string is empty, i.e. if length() == 0.
       
 12377   An empty string is not always a null string.
       
 12378 
       
 12379   See example in isNull().
       
 12380 
       
 12381   \sa isNull(), length()
       
 12382 */
       
 12383 
       
 12384 /*!
       
 12385   \fn uint QString::length() const
       
 12386 
       
 12387   Returns the length of the string.
       
 12388 
       
 12389   Null strings and empty strings have zero length.
       
 12390 
       
 12391   \sa isNull(), isEmpty()
       
 12392 */
       
 12393 
       
 12394 /*!
       
 12395   Truncates the string at position \a newLen if newLen is less than the
       
 12396   current length . Otherwise, nothing happens.
       
 12397 
       
 12398   Example:
       
 12399   \code
       
 12400     QString s = "truncate this string";
       
 12401     s.truncate( 5 );				// s == "trunc"
       
 12402   \endcode
       
 12403 
       
 12404   In Qt 1.x, it was possible to "truncate" a string to a longer
       
 12405   length.  This is no longer possible.
       
 12406 
       
 12407 */
       
 12408 
       
 12409 void QString::truncate( uint newLen )
       
 12410 {
       
 12411     if ( newLen < d->len )
       
 12412 	setLength( newLen );
       
 12413 }
       
 12414 
       
 12415 /*### Make this public in 3.0
       
 12416   Ensures that at least \a newLen characters are allocated, and
       
 12417   sets the length to \a newLen.  This function always detaches the
       
 12418   string from other references to the same data.  Any new space
       
 12419   allocated is \e not defined.
       
 12420 
       
 12421   If \a newLen is 0, this string becomes empty, unless this string is
       
 12422   null, in which case it remains null.
       
 12423 
       
 12424   \sa truncate(), isNull(), isEmpty()
       
 12425 */
       
 12426 
       
 12427 void QString::setLength( uint newLen )
       
 12428 {
       
 12429     if ( d->count != 1 || newLen > d->maxl || 		// detach, grow, or
       
 12430 	 ( newLen*4 < d->maxl && d->maxl > 4 ) ) {	// shrink
       
 12431 	Q2HELPER(stat_copy_on_write++)
       
 12432 	Q2HELPER(stat_copy_on_write_size+=d->len)
       
 12433 	uint newMax = 4;
       
 12434 	while ( newMax < newLen )
       
 12435 	    newMax *= 2;
       
 12436 	QChar* nd = QT_ALLOC_QCHAR_VEC( newMax );
       
 12437 	uint len = QMIN( d->len, newLen );
       
 12438 	if ( d->unicode )
       
 12439 	    memcpy( nd, d->unicode, sizeof(QChar)*len );
       
 12440 	deref();
       
 12441 	d = new QStringData( nd, newLen, newMax );
       
 12442     } else {
       
 12443 	d->len = newLen;
       
 12444 	d->dirtyascii = 1;
       
 12445     }
       
 12446 }
       
 12447 
       
 12448 /*!  Returns a string equal to this one, but with the lowest-numbered
       
 12449   occurrence of \c %i (for a positive integer i) replaced by \a a.
       
 12450 
       
 12451   \code
       
 12452     label.setText( tr("Rename %1 to %2?").arg(oldName).arg(newName) );
       
 12453   \endcode
       
 12454 
       
 12455   \a fieldwidth is the minimum amount of space \a a is padded to.  A
       
 12456   positive value produces right-aligned text, while a negative value
       
 12457   produces left aligned text.
       
 12458 
       
 12459   \warning Using arg() for constructing "real" sentences
       
 12460   programmatically is likely to lead to translation problems.
       
 12461   Inserting objects like numbers or file names is fairly safe.
       
 12462 
       
 12463   \warning Relying on spaces to create alignment is prone to lead to
       
 12464   translation problems.
       
 12465 
       
 12466   If there is no \c %i pattern, a warning message (qWarning()) is
       
 12467   printed and the text as appended at the end of the string.  This is
       
 12468   error recovery and should not occur in correct code.
       
 12469 
       
 12470   \sa QObject::tr()
       
 12471 */
       
 12472 QString QString::arg(const QString& a, int fieldwidth) const
       
 12473 {
       
 12474     int pos, len;
       
 12475     QString r = *this;
       
 12476 
       
 12477     if ( !findArg( pos, len ) ) {
       
 12478 	qWarning( "QString::arg(): Argument missing: %s, %s",
       
 12479 		  (const char *)this, (const char *)a );
       
 12480 	// Make sure the text at least appears SOMEWHERE
       
 12481 	r += ' ';
       
 12482 	pos = r.length();
       
 12483 	len = 0;
       
 12484     }
       
 12485 
       
 12486     r.replace( pos, len, a );
       
 12487     if ( fieldwidth < 0 ) {
       
 12488 	QString s;
       
 12489 	while ( (uint)-fieldwidth > a.length() ) {
       
 12490 	    s += ' ';
       
 12491 	    fieldwidth++;
       
 12492 	}
       
 12493 	r.insert( pos + a.length(), s );
       
 12494     } else if ( fieldwidth ) {
       
 12495 	QString s;
       
 12496 	while ( (uint)fieldwidth > a.length() ) {
       
 12497 	    s += ' ';
       
 12498 	    fieldwidth--;
       
 12499 	}
       
 12500 	r.insert( pos, s );
       
 12501     }
       
 12502 
       
 12503     return r;
       
 12504 }
       
 12505 
       
 12506 
       
 12507 /*! \overload
       
 12508 
       
 12509   \a a is expressed in to \a base notation, which is decimal by
       
 12510   default and must be in the range 2-36 inclusive.
       
 12511 */
       
 12512 QString QString::arg(long a, int fieldwidth, int base) const
       
 12513 {
       
 12514     return arg( QString::number( a, base ), fieldwidth );
       
 12515 }
       
 12516 
       
 12517 /*! \overload
       
 12518 
       
 12519   \a a is expressed in to \a base notation, which is decimal by
       
 12520   default and must be in the range 2-36 inclusive.
       
 12521 */
       
 12522 QString QString::arg(ulong a, int fieldwidth, int base) const
       
 12523 {
       
 12524     return arg( QString::number( a, base ), fieldwidth );
       
 12525 }
       
 12526 
       
 12527 /*!
       
 12528   \overload QString QString::arg(int a, int fieldwidth, int base) const
       
 12529 
       
 12530   \a a is expressed in to \a base notation, which is decimal by
       
 12531   default and must be in the range 2-36 inclusive.
       
 12532 
       
 12533 */
       
 12534 
       
 12535 /*!
       
 12536   \overload QString QString::arg(uint a, int fieldwidth, int base) const
       
 12537 
       
 12538   \a a is expressed in to \a base notation, which is decimal by
       
 12539   default and must be in the range 2-36 inclusive.
       
 12540 */
       
 12541 
       
 12542 /*!
       
 12543   \overload QString QString::arg(short a, int fieldwidth, int base) const
       
 12544 
       
 12545   \a a is expressed in to \a base notation, which is decimal by
       
 12546   default and must be in the range 2-36 inclusive.
       
 12547 */
       
 12548 
       
 12549 /*!
       
 12550   \overload QString QString::arg(ushort a, int fieldwidth, int base) const
       
 12551 
       
 12552   \a a is expressed in to \a base notation, which is decimal by
       
 12553   default and must be in the range 2-36 inclusive.
       
 12554 */
       
 12555 
       
 12556 
       
 12557 /*! \overload
       
 12558 
       
 12559   \a a is assumed to be in the Latin1 character set.
       
 12560 */
       
 12561 QString QString::arg(char a, int fieldwidth) const
       
 12562 {
       
 12563     QString c;
       
 12564     c += a;
       
 12565     return arg( c, fieldwidth );
       
 12566 }
       
 12567 
       
 12568 /*! \overload
       
 12569 */
       
 12570 QString QString::arg(QChar a, int fieldwidth) const
       
 12571 {
       
 12572     QString c;
       
 12573     c += a;
       
 12574     return arg( c, fieldwidth );
       
 12575 }
       
 12576 
       
 12577 /*! \overload
       
 12578 
       
 12579   \a is formatted according to the \a fmt format specified, which is
       
 12580   'g' by default and can be any of 'f', 'F', 'e', 'E', 'g' or 'G', all
       
 12581   of which have the same meaning as for sprintf().  \a prec determines
       
 12582   the precision, just as for number() and sprintf().
       
 12583 */
       
 12584 QString QString::arg(double a, int fieldwidth, char fmt, int prec) const
       
 12585 {
       
 12586     return arg( QString::number( a, fmt, prec ), fieldwidth );
       
 12587 }
       
 12588 
       
 12589 
       
 12590 /*!
       
 12591   Just 1-digit arguments.
       
 12592 */
       
 12593 bool QString::findArg(int& pos, int& len) const
       
 12594 {
       
 12595     char lowest=0;
       
 12596     for (uint i=0; i<length(); i++) {
       
 12597 	if ( at(i) == '%' && i+1<length() ) {
       
 12598 	    char dig = at(i+1);
       
 12599 	    if ( dig >= '0' && dig <= '9' ) {
       
 12600 		if ( !lowest || dig < lowest ) {
       
 12601 		    lowest = dig;
       
 12602 		    pos = i;
       
 12603 		    len = 2;
       
 12604 		}
       
 12605 	    }
       
 12606 	}
       
 12607     }
       
 12608     return lowest != 0;
       
 12609 }
       
 12610 
       
 12611 /*!
       
 12612   Safely builds a formatted string from a format string and an
       
 12613   arbitrary list of arguments.  The format string supports all
       
 12614   the escape sequences of printf() in the standard C library.
       
 12615 
       
 12616   The %s escape sequence expects a utf8() encoded string. 
       
 12617   The format string \e cformat is expected to be in latin1. If you need a unicode
       
 12618   format string, use QString::arg() instead. For typesafe
       
 12619   string building, with full Unicode support, you can use QTextOStream
       
 12620   like this:
       
 12621 
       
 12622   \code
       
 12623     QString str;
       
 12624     QString s = ...;
       
 12625     int x = ...;
       
 12626     QTextOStream(&str) << s << " : " << x;
       
 12627   \endcode
       
 12628 
       
 12629   For \link QObject::tr() translations,\endlink especially if the
       
 12630   strings contains more than one escape sequence, you should consider
       
 12631   using the arg() function instead.  This allows the order of the
       
 12632   replacements to be controlled by the translator, and has Unicode
       
 12633   support.
       
 12634 
       
 12635   \sa arg()
       
 12636 */
       
 12637 
       
 12638 QString &QString::sprintf( const char* cformat, ... )
       
 12639 {
       
 12640     va_list ap;
       
 12641     va_start( ap, cformat );
       
 12642 
       
 12643     if ( !cformat || !*cformat ) {
       
 12644 	// Qt 1.x compat
       
 12645 	*this = QString::fromLatin1( "" );
       
 12646 	return *this;
       
 12647     }
       
 12648     QString format = QString::fromLatin1( cformat );
       
 12649 
       
 12650     static QRegExp *escape = 0;
       
 12651     if (!escape)
       
 12652 	escape = new QRegExp( "%#?0?-? ?\\+?'?[0-9*]*\\.?[0-9*]*h?l?L?q?Z?" );
       
 12653 
       
 12654     QString result;
       
 12655     uint last = 0;
       
 12656 
       
 12657     int len = 0;
       
 12658     int pos;
       
 12659     while ( 1 ) {
       
 12660 	pos = escape->match( format, last, &len );
       
 12661 	// Non-escaped text
       
 12662 	if ( pos > (int)last )
       
 12663 	    result += format.mid(last,pos-last);
       
 12664 	if ( pos < 0 ) {
       
 12665 	    // The rest
       
 12666 	    if ( last < format.length() )
       
 12667 		result += format.mid(last);
       
 12668 	    break;
       
 12669 	}
       
 12670 	last = pos + len + 1;
       
 12671 
       
 12672 	// Escape
       
 12673 	QString f = format.mid( pos, len );
       
 12674 	uint width, decimals;
       
 12675 	int params = 0;
       
 12676 	int wpos = f.find('*');
       
 12677 	if ( wpos >= 0 ) {
       
 12678 	    params++;
       
 12679 	    width = va_arg( ap, int );
       
 12680 	    if ( f.find('*', wpos + 1) >= 0 ) {
       
 12681 		decimals = va_arg( ap, int );
       
 12682 		params++;
       
 12683 	    } else {
       
 12684 		decimals = 0;
       
 12685 	    }
       
 12686 	} else {
       
 12687 	    decimals = width = 0;
       
 12688 	}
       
 12689 	QString replacement;
       
 12690 	if ( format[pos+len] == 's' ||
       
 12691 	     format[pos+len] == 'S' ||
       
 12692 	     format[pos+len] == 'c' )
       
 12693 	{
       
 12694 	    bool rightjust = ( f.find('-') < 0 );
       
 12695 	    // Yes, %-5s really means left adjust in sprintf
       
 12696 
       
 12697 	    if ( wpos < 0 ) {
       
 12698 		QRegExp num( QString::fromLatin1("[0-9]+") );
       
 12699 		QRegExp dot( QString::fromLatin1("\\.") );
       
 12700 		int nlen;
       
 12701 		int p = num.match( f, 0, &nlen );
       
 12702 		int q = dot.match( f, 0 );
       
 12703 		if ( q < 0 || (p < q && p >= 0) )
       
 12704 		    width = f.mid( p, nlen ).toInt();
       
 12705 		if ( q >= 0 ) {
       
 12706 		    p = num.match( f, q );
       
 12707 		    // "decimals" is used to specify string truncation
       
 12708 		    if ( p >= 0 )
       
 12709 			decimals = f.mid( p, nlen ).toInt();
       
 12710 		}
       
 12711 	    }
       
 12712 
       
 12713 	    if ( format[pos+len] == 's' ) {
       
 12714 #ifndef QT_NO_TEXTCODEC
       
 12715 		QString s = QString::fromUtf8(va_arg(ap, char*));
       
 12716 #else
       
 12717 		QString s = QString::fromLatin1(va_arg(ap, char*));
       
 12718 #endif
       
 12719 		if ( decimals <= 0 )
       
 12720 		    replacement = s;
       
 12721 		else
       
 12722 		    replacement = s.left(decimals);
       
 12723 	    } else {
       
 12724 		int ch = va_arg(ap, int);
       
 12725 		replacement = QChar((ushort)ch);
       
 12726 	    }
       
 12727 	    if ( replacement.length() < width ) {
       
 12728 		replacement = rightjust
       
 12729 		    ? replacement.rightJustify(width)
       
 12730 		    : replacement.leftJustify(width);
       
 12731 	    }
       
 12732 	} else if ( format[pos+len] == '%' ) {
       
 12733 	    replacement = '%';
       
 12734 	} else if ( format[pos+len] == 'n' ) {
       
 12735 	    int* n = va_arg(ap, int*);
       
 12736 	    *n = result.length();
       
 12737 	} else {
       
 12738 	    char in[64], out[330] = "";
       
 12739 	    strncpy(in,f.latin1(),63);
       
 12740 	    char fch = format[pos+len].latin1();
       
 12741 	    in[f.length()] = fch;
       
 12742 	    switch ( fch ) {
       
 12743 	      case 'd': case 'i': case 'o': case 'u': case 'x': case 'X': {
       
 12744 		int value = va_arg(ap, int);
       
 12745 		switch (params) {
       
 12746 		  case 0: ::sprintf( out, in, value ); break;
       
 12747 		  case 1: ::sprintf( out, in, width, value ); break;
       
 12748 		  case 2: ::sprintf( out, in, width, decimals, value ); break;
       
 12749 		}
       
 12750 	      } break;
       
 12751 	      case 'e': case 'E': case 'f': case 'g': case 'G': {
       
 12752 		double value = va_arg(ap, double);
       
 12753 		switch (params) {
       
 12754 		  case 0: ::sprintf( out, in, value ); break;
       
 12755 		  case 1: ::sprintf( out, in, width, value ); break;
       
 12756 		  case 2: ::sprintf( out, in, width, decimals, value ); break;
       
 12757 		}
       
 12758 	      } break;
       
 12759 	      case 'p': {
       
 12760 		void* value = va_arg(ap, void*);
       
 12761 		switch (params) {
       
 12762 		  case 0: ::sprintf( out, in, value ); break;
       
 12763 		  case 1: ::sprintf( out, in, width, value ); break;
       
 12764 		  case 2: ::sprintf( out, in, width, decimals, value ); break;
       
 12765 		}
       
 12766 	      } break;
       
 12767 	    }
       
 12768 	    replacement = QString::fromLatin1(out);
       
 12769 	}
       
 12770 	result += replacement;
       
 12771     }
       
 12772     *this = result;
       
 12773 
       
 12774     va_end( ap );
       
 12775     return *this;
       
 12776 }
       
 12777 
       
 12778 /*!
       
 12779   Fills the string with \a len characters of value \a c.
       
 12780 
       
 12781   If \a len is negative, the current string length is used.
       
 12782 */
       
 12783 
       
 12784 void QString::fill( QChar c, int len )
       
 12785 {
       
 12786     if ( len < 0 )
       
 12787 	len = length();
       
 12788     if ( len == 0 ) {
       
 12789 	*this = "";
       
 12790     } else {
       
 12791 	deref();
       
 12792 	QChar * nd = QT_ALLOC_QCHAR_VEC( len );
       
 12793 	d = new QStringData(nd,len,len);
       
 12794 	while (len--) *nd++ = c;
       
 12795     }
       
 12796 }
       
 12797 
       
 12798 
       
 12799 /*!
       
 12800   \fn QString QString::copy() const
       
 12801 
       
 12802   \obsolete
       
 12803 
       
 12804   Returns a deep copy of this string.
       
 12805 
       
 12806   Doing this is redundant in Qt 2.x, since QString is implicitly
       
 12807   shared, and so will automatically be deeply copied as necessary.
       
 12808 */
       
 12809 
       
 12810 /*!
       
 12811   Finds the first occurrence of the character \a c, starting at
       
 12812   position \a index. If \a index is -1, the search starts at the
       
 12813   last character; if -2, at the next to last character; etc.
       
 12814 
       
 12815   The search is case sensitive if \a cs is TRUE, or case insensitive
       
 12816   if \a cs is FALSE.
       
 12817 
       
 12818   Returns the position of \a c, or -1 if \a c could not be found.
       
 12819 */
       
 12820 
       
 12821 int QString::find( QChar c, int index, bool cs ) const
       
 12822 {
       
 12823     if ( index < 0 )
       
 12824 	index += length();
       
 12825     if ( (uint)index >= length() )		// index outside string
       
 12826 	return -1;
       
 12827     register const QChar *uc;
       
 12828     uc = unicode()+index;
       
 12829     int n = length()-index;
       
 12830     if ( cs ) {
       
 12831 	while ( n-- && *uc != c )
       
 12832 	    uc++;
       
 12833     } else {
       
 12834 	c = c.lower();
       
 12835 	while ( n-- && uc->lower() != c )
       
 12836 	    uc++;
       
 12837     }
       
 12838     if ( uint(uc - unicode()) >= length() )
       
 12839 	return -1;
       
 12840     return (int)(uc - unicode());
       
 12841 }
       
 12842 
       
 12843 /*!
       
 12844   Finds the first occurrence of the string \a str, starting at position
       
 12845   \a index. If \a index is -1, the search starts at the last character;
       
 12846   if -2, at the next to last character; etc.
       
 12847 
       
 12848   The search is case sensitive if \a cs is TRUE, or case insensitive if
       
 12849   \a cs is FALSE.
       
 12850 
       
 12851   Returns the position of \a str, or -1 if \a str could not be found.
       
 12852 */
       
 12853 
       
 12854 int QString::find( const QString& str, int index, bool cs ) const
       
 12855 {
       
 12856     /*
       
 12857       We use some weird hashing for efficiency's sake.  Instead of
       
 12858       comparing strings, we compare the hash value of str with that of
       
 12859       a part of this QString.  Only if that matches, we call ucstrncmp
       
 12860       or ucstrnicmp.
       
 12861 
       
 12862       The hash value of a string is the sum of the cells of its
       
 12863       QChars.
       
 12864     */
       
 12865     if ( index < 0 )
       
 12866 	index += length();
       
 12867     int lstr = str.length();
       
 12868     int lthis = length() - index;
       
 12869     if ( (uint)lthis > length() )
       
 12870 	return -1;
       
 12871     int delta = lthis - lstr;
       
 12872     if ( delta < 0 )
       
 12873 	return -1;
       
 12874 
       
 12875     const QChar *uthis = unicode() + index;
       
 12876     const QChar *ustr = str.unicode();
       
 12877     uint hthis = 0;
       
 12878     uint hstr = 0;
       
 12879     int i;
       
 12880     if ( cs ) {
       
 12881 	for ( i = 0; i < lstr; i++ ) {
       
 12882 	    hthis += uthis[i].cell();
       
 12883 	    hstr += ustr[i].cell();
       
 12884 	}
       
 12885 	i = 0;
       
 12886 	while ( TRUE ) {
       
 12887 	    if ( hthis == hstr && ucstrncmp(uthis + i, ustr, lstr) == 0 )
       
 12888 		return index + i;
       
 12889 	    if ( i == delta )
       
 12890 		return -1;
       
 12891 	    hthis += uthis[i + lstr].cell();
       
 12892 	    hthis -= uthis[i].cell();
       
 12893 	    i++;
       
 12894 	}
       
 12895     } else {
       
 12896 	for ( i = 0; i < lstr; i++ ) {
       
 12897 	    hthis += uthis[i].lower().cell();
       
 12898 	    hstr += ustr[i].lower().cell();
       
 12899 	}
       
 12900 	i = 0;
       
 12901 	while ( TRUE ) {
       
 12902 	    if ( hthis == hstr && ucstrnicmp(uthis + i, ustr, lstr) == 0 )
       
 12903 		return index + i;
       
 12904 	    if ( i == delta )
       
 12905 		return -1;
       
 12906 	    hthis += uthis[i + lstr].lower().cell();
       
 12907 	    hthis -= uthis[i].lower().cell();
       
 12908 	    i++;
       
 12909 	}
       
 12910     }
       
 12911 #if defined(Q_SPURIOUS_NON_VOID_WARNING)
       
 12912     return -1;
       
 12913 #endif
       
 12914 }
       
 12915 
       
 12916 /*!
       
 12917   \fn int QString::findRev( const char* str, int index ) const
       
 12918 
       
 12919   Equivalent to findRev(QString(str), index).
       
 12920 */
       
 12921 
       
 12922 /*!
       
 12923   \fn int QString::find( const char* str, int index ) const
       
 12924 
       
 12925   Equivalent to find(QString(str), index).
       
 12926 */
       
 12927 
       
 12928 /*!
       
 12929   Finds the first occurrence of the character \a c, starting at
       
 12930   position \a index and searching backwards. If \a index is -1,
       
 12931   the search starts at the last character; if -2, at the next to
       
 12932   last character; etc.
       
 12933 
       
 12934   The search is case sensitive if \a cs is TRUE, or case insensitive if \a
       
 12935   cs is FALSE.
       
 12936 
       
 12937   Returns the position of \a c, or -1 if \a c could not be found.
       
 12938 */
       
 12939 
       
 12940 int QString::findRev( QChar c, int index, bool cs ) const
       
 12941 {
       
 12942     QString t( c );
       
 12943     return findRev( t, index, cs );
       
 12944 }
       
 12945 
       
 12946 /*!
       
 12947   Finds the first occurrence of the string \a str, starting at
       
 12948   position \a index and searching backwards. If \a index is -1,
       
 12949   the search starts at the last character; -2, at the next to last
       
 12950   character; etc.
       
 12951 
       
 12952   The search is case sensitive if \a cs is TRUE, or case insensitive if \e
       
 12953   cs is FALSE.
       
 12954 
       
 12955   Returns the position of \a str, or -1 if \a str could not be found.
       
 12956 */
       
 12957 
       
 12958 int QString::findRev( const QString& str, int index, bool cs ) const
       
 12959 {
       
 12960     /*
       
 12961       See QString::find() for explanations.
       
 12962     */
       
 12963     int lthis = length();
       
 12964     if ( index < 0 )
       
 12965 	index += lthis;
       
 12966 
       
 12967     int lstr = str.length();
       
 12968     int delta = lthis - lstr;
       
 12969     if ( index < 0 || index > lthis || delta < 0 )
       
 12970 	return -1;
       
 12971     if ( index > delta )
       
 12972 	index = delta;
       
 12973 
       
 12974     const QChar *uthis = unicode();
       
 12975     const QChar *ustr = str.unicode();
       
 12976     uint hthis = 0;
       
 12977     uint hstr = 0;
       
 12978     int i;
       
 12979     if ( cs ) {
       
 12980 	for ( i = 0; i < lstr; i++ ) {
       
 12981 	    hthis += uthis[index + i].cell();
       
 12982 	    hstr += ustr[i].cell();
       
 12983 	}
       
 12984 	i = index;
       
 12985 	while ( TRUE ) {
       
 12986 	    if ( hthis == hstr && ucstrncmp(uthis + i, ustr, lstr) == 0 )
       
 12987 		return i;
       
 12988 	    if ( i == 0 )
       
 12989 		return -1;
       
 12990 	    i--;
       
 12991 	    hthis -= uthis[i + lstr].cell();
       
 12992 	    hthis += uthis[i].cell();
       
 12993 	}
       
 12994     } else {
       
 12995 	for ( i = 0; i < lstr; i++ ) {
       
 12996 	    hthis += uthis[index + i].lower().cell();
       
 12997 	    hstr += ustr[i].lower().cell();
       
 12998 	}
       
 12999 	i = index;
       
 13000 	while ( TRUE ) {
       
 13001 	    if ( hthis == hstr && ucstrnicmp(uthis + i, ustr, lstr) == 0 )
       
 13002 		return i;
       
 13003 	    if ( i == 0 )
       
 13004 		return -1;
       
 13005 	    i--;
       
 13006 	    hthis -= uthis[i + lstr].lower().cell();
       
 13007 	    hthis += uthis[i].lower().cell();
       
 13008 	}
       
 13009     }
       
 13010 #if defined(Q_SPURIOUS_NON_VOID_WARNING)
       
 13011     return -1;
       
 13012 #endif
       
 13013 }
       
 13014 
       
 13015 
       
 13016 /*!
       
 13017   Returns the number of times the character \a c occurs in the string.
       
 13018 
       
 13019   The match is case sensitive if \a cs is TRUE, or case insensitive if \a cs
       
 13020   is FALSE.
       
 13021 */
       
 13022 
       
 13023 int QString::contains( QChar c, bool cs ) const
       
 13024 {
       
 13025     int count = 0;
       
 13026     const QChar *uc = unicode();
       
 13027     if ( !uc )
       
 13028 	return 0;
       
 13029     int n = length();
       
 13030     if ( cs ) {					// case sensitive
       
 13031 	while ( n-- )
       
 13032 	    if ( *uc++ == c )
       
 13033 		count++;
       
 13034     } else {					// case insensitive
       
 13035 	c = c.lower();
       
 13036 	while ( n-- ) {
       
 13037 	    if ( uc->lower() == c )
       
 13038 		count++;
       
 13039 	    uc++;
       
 13040 	}
       
 13041     }
       
 13042     return count;
       
 13043 }
       
 13044 
       
 13045 /*!
       
 13046   \overload
       
 13047 */
       
 13048 int QString::contains( const char* str, bool cs ) const
       
 13049 {
       
 13050     return contains(QString(str),cs);
       
 13051 }
       
 13052 
       
 13053 /*!
       
 13054   \overload int QString::contains (char c, bool cs) const
       
 13055 */
       
 13056 
       
 13057 /*!
       
 13058   \overload int QString::find (char c, int index, bool cs) const
       
 13059 
       
 13060 */
       
 13061 
       
 13062 /*!
       
 13063   \overload int QString::findRev (char c, int index, bool cs) const
       
 13064 
       
 13065 */
       
 13066 
       
 13067 /*!
       
 13068   Returns the number of times \a str occurs in the string.
       
 13069 
       
 13070   The match is case sensitive if \a cs is TRUE, or case insensitive if \e
       
 13071   cs is FALSE.
       
 13072 
       
 13073   This function counts overlapping substrings, for example, "banana"
       
 13074   contains two occurrences of "ana".
       
 13075 
       
 13076   \sa findRev()
       
 13077 */
       
 13078 
       
 13079 int QString::contains( const QString &str, bool cs ) const
       
 13080 {
       
 13081     int count = 0;
       
 13082     const QChar *uc = unicode();
       
 13083     if ( !uc )
       
 13084 	return 0;
       
 13085     int len = str.length();
       
 13086     int n = length();
       
 13087     while ( n-- ) {				// counts overlapping strings
       
 13088 	// ### Doesn't account for length of this - searches over "end"
       
 13089 	if ( cs ) {
       
 13090 	    if ( ucstrncmp( uc, str.unicode(), len ) == 0 )
       
 13091 		count++;
       
 13092 	} else {
       
 13093 	    if ( ucstrnicmp(uc, str.unicode(), len) == 0 )
       
 13094 		count++;
       
 13095 	}
       
 13096 	uc++;
       
 13097     }
       
 13098     return count;
       
 13099 }
       
 13100 
       
 13101 /*!
       
 13102   Returns a substring that contains the \a len leftmost characters
       
 13103   of the string.
       
 13104 
       
 13105   The whole string is returned if \a len exceeds the length of the
       
 13106   string.
       
 13107 
       
 13108 
       
 13109   Example:
       
 13110   \code
       
 13111     QString s = "Pineapple";
       
 13112     QString t = s.left( 4 );	// t == "Pine"
       
 13113   \endcode
       
 13114 
       
 13115   \sa right(), mid(), isEmpty()
       
 13116 */
       
 13117 
       
 13118 QString QString::left( uint len ) const
       
 13119 {
       
 13120     if ( isEmpty() ) {
       
 13121 	return QString();
       
 13122     } else if ( len == 0 ) {			// ## just for 1.x compat:
       
 13123 	return QString::fromLatin1("");
       
 13124     } else if ( len > length() ) {
       
 13125 	return *this;
       
 13126     } else {
       
 13127 	QString s( len, TRUE );
       
 13128 	memcpy( s.d->unicode, d->unicode, len*sizeof(QChar) );
       
 13129 	s.d->len = len;
       
 13130 	return s;
       
 13131     }
       
 13132 }
       
 13133 
       
 13134 /*!
       
 13135   Returns a substring that contains the \a len rightmost characters
       
 13136   of the string.
       
 13137 
       
 13138   The whole string is returned if \a len exceeds the length of the
       
 13139   string.
       
 13140 
       
 13141   Example:
       
 13142   \code
       
 13143     QString s = "Pineapple";
       
 13144     QString t = s.right( 5 );	// t == "apple"
       
 13145   \endcode
       
 13146 
       
 13147   \sa left(), mid(), isEmpty()
       
 13148 */
       
 13149 
       
 13150 QString QString::right( uint len ) const
       
 13151 {
       
 13152     if ( isEmpty() ) {
       
 13153 	return QString();
       
 13154     } else if ( len == 0 ) {			// ## just for 1.x compat:
       
 13155 	return QString::fromLatin1("");
       
 13156     } else {
       
 13157 	uint l = length();
       
 13158 	if ( len > l )
       
 13159 	    len = l;
       
 13160 	QString s( len, TRUE );
       
 13161 	memcpy( s.d->unicode, d->unicode+(l-len), len*sizeof(QChar) );
       
 13162 	s.d->len = len;
       
 13163 	return s;
       
 13164     }
       
 13165 }
       
 13166 
       
 13167 /*!
       
 13168   Returns a substring that contains the \a len characters of this
       
 13169   string, starting at position \a index.
       
 13170 
       
 13171   Returns a null string if the string is empty or \a index is out
       
 13172   of range.  Returns the whole string from \a index if \a index+len exceeds
       
 13173   the length of the string.
       
 13174 
       
 13175   Example:
       
 13176   \code
       
 13177     QString s = "Five pineapples";
       
 13178     QString t = s.mid( 5, 4 );			// t == "pine"
       
 13179   \endcode
       
 13180 
       
 13181   \sa left(), right()
       
 13182 */
       
 13183 
       
 13184 QString QString::mid( uint index, uint len ) const
       
 13185 {
       
 13186     uint slen = length();
       
 13187     if ( isEmpty() || index >= slen ) {
       
 13188 	return QString();
       
 13189     } else if ( len == 0 ) {			// ## just for 1.x compat:
       
 13190 	return QString::fromLatin1("");
       
 13191     } else {
       
 13192 	if ( len > slen-index )
       
 13193 	    len = slen - index;
       
 13194 	if ( index == 0 && len == length() )
       
 13195 	    return *this;
       
 13196 	register const QChar *p = unicode()+index;
       
 13197 	QString s( len, TRUE );
       
 13198 	memcpy( s.d->unicode, p, len*sizeof(QChar) );
       
 13199 	s.d->len = len;
       
 13200 	return s;
       
 13201     }
       
 13202 }
       
 13203 
       
 13204 /*!
       
 13205   Returns a string of length \a width that contains this
       
 13206   string and padded by the \a fill character.
       
 13207 
       
 13208   If the length of the string exceeds \a width and \a truncate is FALSE,
       
 13209   then the returned string is a copy of the string.
       
 13210   If the length of the string exceeds \a width and \a truncate is TRUE,
       
 13211   then the returned string is a left(\a width).
       
 13212 
       
 13213   Example:
       
 13214   \code
       
 13215     QString s("apple");
       
 13216     QString t = s.leftJustify(8, '.');		// t == "apple..."
       
 13217   \endcode
       
 13218 
       
 13219   \sa rightJustify()
       
 13220 */
       
 13221 
       
 13222 QString QString::leftJustify( uint width, QChar fill, bool truncate ) const
       
 13223 {
       
 13224     QString result;
       
 13225     int len = length();
       
 13226     int padlen = width - len;
       
 13227     if ( padlen > 0 ) {
       
 13228 	result.setLength(len+padlen);
       
 13229 	if ( len )
       
 13230 	    memcpy( result.d->unicode, unicode(), sizeof(QChar)*len );
       
 13231 	QChar* uc = result.d->unicode + len;
       
 13232 	while (padlen--)
       
 13233 	    *uc++ = fill;
       
 13234     } else {
       
 13235 	if ( truncate )
       
 13236 	    result = left( width );
       
 13237 	else
       
 13238 	    result = *this;
       
 13239     }
       
 13240     return result;
       
 13241 }
       
 13242 
       
 13243 /*!
       
 13244   Returns a string of length \a width that contains pad
       
 13245   characters followed by the string.
       
 13246 
       
 13247   If the length of the string exceeds \a width and \a truncate is FALSE,
       
 13248   then the returned string is a copy of the string.
       
 13249   If the length of the string exceeds \a width and \a truncate is TRUE,
       
 13250   then the returned string is a left(\a width).
       
 13251 
       
 13252   Example:
       
 13253   \code
       
 13254     QString s("pie");
       
 13255     QString t = s.rightJustify(8, '.');		// t == ".....pie"
       
 13256   \endcode
       
 13257 
       
 13258   \sa leftJustify()
       
 13259 */
       
 13260 
       
 13261 QString QString::rightJustify( uint width, QChar fill, bool truncate ) const
       
 13262 {
       
 13263     QString result;
       
 13264     int len = length();
       
 13265     int padlen = width - len;
       
 13266     if ( padlen > 0 ) {
       
 13267 	result.setLength( len+padlen );
       
 13268 	QChar* uc = result.d->unicode;
       
 13269 	while (padlen--)
       
 13270 	    *uc++ = fill;
       
 13271 	if ( len )
       
 13272 	    memcpy( uc, unicode(), sizeof(QChar)*len );
       
 13273     } else {
       
 13274 	if ( truncate )
       
 13275 	    result = left( width );
       
 13276 	else
       
 13277 	    result = *this;
       
 13278     }
       
 13279     return result;
       
 13280 }
       
 13281 
       
 13282 /*!
       
 13283   Returns a new string that is the string converted to lower case.
       
 13284 
       
 13285   Example:
       
 13286   \code
       
 13287     QString s("TeX");
       
 13288     QString t = s.lower();	// t == "tex"
       
 13289   \endcode
       
 13290 
       
 13291   \sa upper()
       
 13292 */
       
 13293 
       
 13294 QString QString::lower() const
       
 13295 {
       
 13296     QString s(*this);
       
 13297     int l=length();
       
 13298     if ( l ) {
       
 13299 	s.real_detach(); // could do this only when we find a change
       
 13300 	register QChar *p=s.d->unicode;
       
 13301 	if ( p ) {
       
 13302 	    while ( l-- ) {
       
 13303 		*p = p->lower();
       
 13304 		p++;
       
 13305 	    }
       
 13306 	}
       
 13307     }
       
 13308     return s;
       
 13309 }
       
 13310 
       
 13311 /*!
       
 13312   Returns a new string that is the string converted to upper case.
       
 13313 
       
 13314   Example:
       
 13315   \code
       
 13316     QString s("TeX");
       
 13317     QString t = s.upper();			// t == "TEX"
       
 13318   \endcode
       
 13319 
       
 13320   \sa lower()
       
 13321 */
       
 13322 
       
 13323 QString QString::upper() const
       
 13324 {
       
 13325     QString s(*this);
       
 13326     int l=length();
       
 13327     if ( l ) {
       
 13328 	s.real_detach(); // could do this only when we find a change
       
 13329 	register QChar *p=s.d->unicode;
       
 13330 	if ( p ) {
       
 13331 	    while ( l-- ) {
       
 13332 		*p = p->upper();
       
 13333 		p++;
       
 13334 	    }
       
 13335 	}
       
 13336     }
       
 13337     return s;
       
 13338 }
       
 13339 
       
 13340 
       
 13341 /*!
       
 13342   Returns a new string that has white space removed from the start and the end.
       
 13343 
       
 13344   White space means any character for which QChar::isSpace() returns
       
 13345   TRUE. This includes ASCII characters 9 (TAB), 10 (LF), 11 (VT), 12
       
 13346   (FF), 13 (CR), and 32 (Space).
       
 13347 
       
 13348   Example:
       
 13349   \code
       
 13350     QString s = " space ";
       
 13351     QString t = s.stripWhiteSpace();		// t == "space"
       
 13352   \endcode
       
 13353 
       
 13354   \sa simplifyWhiteSpace()
       
 13355 */
       
 13356 
       
 13357 QString QString::stripWhiteSpace() const
       
 13358 {
       
 13359     if ( isEmpty() )				// nothing to do
       
 13360 	return *this;
       
 13361     if ( !at(0).isSpace() && !at(length()-1).isSpace() )
       
 13362 	return *this;
       
 13363 
       
 13364     register const QChar *s = unicode();
       
 13365     QString result = fromLatin1("");
       
 13366 
       
 13367     int start = 0;
       
 13368     int end = length() - 1;
       
 13369     while ( start<=end && s[start].isSpace() )	// skip white space from start
       
 13370 	start++;
       
 13371     if ( start > end ) {			// only white space
       
 13372 	return result;
       
 13373     }
       
 13374     while ( end && s[end].isSpace() )		// skip white space from end
       
 13375 	end--;
       
 13376     int l = end - start + 1;
       
 13377     result.setLength( l );
       
 13378     if ( l )
       
 13379 	memcpy( result.d->unicode, &s[start], sizeof(QChar)*l );
       
 13380     return result;
       
 13381 }
       
 13382 
       
 13383 
       
 13384 /*!
       
 13385   Returns a new string that has white space removed from the start and the end,
       
 13386   plus any sequence of internal white space replaced with a single space
       
 13387   (ASCII 32).
       
 13388 
       
 13389   White space means any character for which QChar::isSpace() returns
       
 13390   TRUE. This includes ASCII characters 9 (TAB), 10 (LF), 11 (VT), 12
       
 13391   (FF), 13 (CR), and 32 (Space).
       
 13392 
       
 13393   \code
       
 13394     QString s = "  lots\t of\nwhite    space ";
       
 13395     QString t = s.simplifyWhiteSpace();		// t == "lots of white space"
       
 13396   \endcode
       
 13397 
       
 13398   \sa stripWhiteSpace()
       
 13399 */
       
 13400 
       
 13401 QString QString::simplifyWhiteSpace() const
       
 13402 {
       
 13403     if ( isEmpty() )				// nothing to do
       
 13404 	return *this;
       
 13405     QString result;
       
 13406     result.setLength( length() );
       
 13407     const QChar *from = unicode();
       
 13408     const QChar *fromend = from+length();
       
 13409     int outc=0;
       
 13410     QChar *to	= result.d->unicode;
       
 13411     while ( TRUE ) {
       
 13412 	while ( from!=fromend && from->isSpace() )
       
 13413 	    from++;
       
 13414 	while ( from!=fromend && !from->isSpace() )
       
 13415 	    to[outc++] = *from++;
       
 13416 	if ( from!=fromend )
       
 13417 	    to[outc++] = ' ';
       
 13418 	else
       
 13419 	    break;
       
 13420     }
       
 13421     if ( outc > 0 && to[outc-1] == ' ' )
       
 13422 	outc--;
       
 13423     result.truncate( outc );
       
 13424     return result;
       
 13425 }
       
 13426 
       
 13427 
       
 13428 /*!
       
 13429   Insert \a s into the string before position \a index.
       
 13430 
       
 13431   If \a index is beyond the end of the string, the string is extended with
       
 13432   spaces (ASCII 32) to length \a index and \a s is then appended.
       
 13433 
       
 13434   \code
       
 13435     QString s = "I like fish";
       
 13436     s.insert( 2, "don't ");	// s == "I don't like fish"
       
 13437     s = "x";
       
 13438     s.insert( 3, "yz" );	// s == "x  yz"
       
 13439   \endcode
       
 13440 */
       
 13441 
       
 13442 QString &QString::insert( uint index, const QString &s )
       
 13443 {
       
 13444     // the sub function takes care of &s == this case.
       
 13445     return insert( index, s.unicode(), s.length() );
       
 13446 }
       
 13447 
       
 13448 /*!
       
 13449   Insert \a len units of QChar data from \a s into the string before
       
 13450   position \a index.
       
 13451 */
       
 13452 
       
 13453 QString &QString::insert( uint index, const QChar* s, uint len )
       
 13454 {
       
 13455     if ( len == 0 )
       
 13456 	return *this;
       
 13457     uint olen = length();
       
 13458     int nlen = olen + len;
       
 13459 
       
 13460     int df = s - d->unicode; // ### pointer subtraction, cast down to int
       
 13461     if ( df >= 0 && (uint)df < d->maxl ) {
       
 13462 	// Part of me - take a copy.
       
 13463 	QChar *tmp = QT_ALLOC_QCHAR_VEC( len );
       
 13464 	memcpy(tmp,s,len*sizeof(QChar));
       
 13465 	insert(index,tmp,len);
       
 13466 	QT_DELETE_QCHAR_VEC( tmp );
       
 13467 	return *this;
       
 13468     }
       
 13469 
       
 13470     if ( index >= olen ) {			// insert after end of string
       
 13471 	setLength( len+index );
       
 13472 	int n = index-olen;
       
 13473 	QChar* uc = d->unicode+olen;
       
 13474 	while (n--)
       
 13475 	    *uc++ = ' ';
       
 13476 	memcpy( d->unicode+index, s, sizeof(QChar)*len );
       
 13477     } else {					// normal insert
       
 13478 	setLength( nlen );
       
 13479 	memmove( d->unicode+index+len, unicode()+index,
       
 13480 		 sizeof(QChar)*(olen-index) );
       
 13481 	memcpy( d->unicode+index, s, sizeof(QChar)*len );
       
 13482     }
       
 13483     return *this;
       
 13484 }
       
 13485 
       
 13486 /*!
       
 13487   Insert \a c into the string at (before) position \a index and returns
       
 13488   a reference to the string.
       
 13489 
       
 13490   If \a index is beyond the end of the string, the string is extended with
       
 13491   spaces (ASCII 32) to length \a index and \a c is then appended.
       
 13492 
       
 13493   Example:
       
 13494   \code
       
 13495     QString s = "Ys";
       
 13496     s.insert( 1, 'e' );		// s == "Yes"
       
 13497     s.insert( 3, '!');		// s == "Yes!"
       
 13498   \endcode
       
 13499 
       
 13500   \sa remove(), replace()
       
 13501 */
       
 13502 
       
 13503 QString &QString::insert( uint index, QChar c )	// insert char
       
 13504 {
       
 13505     QString s( c );
       
 13506     return insert( index, s );
       
 13507 }
       
 13508 
       
 13509 /*!
       
 13510   \overload QString& QString::insert( uint index, char c )
       
 13511 */
       
 13512 
       
 13513 /*!
       
 13514   \fn QString &QString::prepend( const QString &s )
       
 13515 
       
 13516   Prepend \a s to the string. Equivalent to insert(0,s).
       
 13517 
       
 13518   \sa insert()
       
 13519 */
       
 13520 
       
 13521 /*!
       
 13522   \fn QString& QString::prepend( char ch )
       
 13523   Prepends \a ch to the string and returns a reference to the result.
       
 13524 
       
 13525   \sa insert()
       
 13526  */
       
 13527 
       
 13528 /*!
       
 13529   \fn QString& QString::prepend( QChar ch )
       
 13530   Prepends \a ch to the string and returns a reference to the result.
       
 13531 
       
 13532   \sa insert()
       
 13533  */
       
 13534 
       
 13535 
       
 13536 /*!
       
 13537   Removes \a len characters starting at position \a index from the
       
 13538   string and returns a reference to the string.
       
 13539 
       
 13540   If \a index is too big, nothing happens.  If \a index is valid, but
       
 13541   \a len is too large, the rest of the string is removed.
       
 13542 
       
 13543   \code
       
 13544     QString s = "Montreal";
       
 13545     s.remove( 1, 4 );
       
 13546     // s == "Meal"
       
 13547   \endcode
       
 13548 
       
 13549   \sa insert(), replace()
       
 13550 */
       
 13551 
       
 13552 QString &QString::remove( uint index, uint len )
       
 13553 {
       
 13554     uint olen = length();
       
 13555     if ( index + len >= olen ) {		// range problems
       
 13556 	if ( index < olen ) {			// index ok
       
 13557 	    setLength( index );
       
 13558 	}
       
 13559     } else if ( len != 0 ) {
       
 13560 	real_detach();
       
 13561 	memmove( d->unicode+index, d->unicode+index+len,
       
 13562 		 sizeof(QChar)*(olen-index-len) );
       
 13563 	setLength( olen-len );
       
 13564     }
       
 13565     return *this;
       
 13566 }
       
 13567 
       
 13568 /*!
       
 13569   Replaces \a len characters starting at position \a index from the
       
 13570   string with \a s, and returns a reference to the string.
       
 13571 
       
 13572   If \a index is too big, nothing is deleted and \a s is inserted at the
       
 13573   end of the string.  If \a index is valid, but \a len is too large, \e
       
 13574   str replaces the rest of the string.
       
 13575 
       
 13576   \code
       
 13577     QString s = "Say yes!";
       
 13578     s.replace( 4, 3, "NO" );			// s == "Say NO!"
       
 13579   \endcode
       
 13580 
       
 13581   \sa insert(), remove()
       
 13582 */
       
 13583 
       
 13584 QString &QString::replace( uint index, uint len, const QString &s )
       
 13585 {
       
 13586     return replace( index, len, s.unicode(), s.length() );
       
 13587 }
       
 13588 
       
 13589 
       
 13590 /*!
       
 13591   Replaces \a len characters starting at position \a index by
       
 13592   \a slen units ot QChar data from \a s, and returns a reference to the string.
       
 13593 
       
 13594   \sa insert(), remove()
       
 13595 */
       
 13596 
       
 13597 QString &QString::replace( uint index, uint len, const QChar* s, uint slen )
       
 13598 {
       
 13599     if ( len == slen && index + len <= length() ) {
       
 13600 	// Optimized common case: replace without size change
       
 13601 	real_detach();
       
 13602 	memcpy( d->unicode+index, s, len*sizeof(QChar) );
       
 13603     } else {
       
 13604 	int df = s - d->unicode; // ### pointer subtraction, cast down to int
       
 13605 	if ( df >= 0 && (uint)df < d->maxl ) {
       
 13606 	    // Part of me - take a copy.
       
 13607 	    QChar *tmp = QT_ALLOC_QCHAR_VEC( slen );
       
 13608 	    memcpy(tmp,s,slen*sizeof(QChar));
       
 13609 	    replace(index,len,tmp,slen);
       
 13610 	    QT_DELETE_QCHAR_VEC( tmp );
       
 13611 	    return *this;
       
 13612 	}
       
 13613 
       
 13614 	remove( index, len );
       
 13615 	insert( index, s, slen );
       
 13616     }
       
 13617     return *this;
       
 13618 }
       
 13619 
       
 13620 
       
 13621 
       
 13622 /*!
       
 13623   Finds the first occurrence of the regular expression \a rx, starting at
       
 13624   position \a index. If \a index is -1, the search starts at the last
       
 13625   character; if -2, at the next to last character; etc.
       
 13626 
       
 13627   Returns the position of the next match, or -1 if \a rx was not found.
       
 13628 
       
 13629   \sa findRev() replace() contains()
       
 13630 */
       
 13631 
       
 13632 int QString::find( const QRegExp &rx, int index ) const
       
 13633 {
       
 13634     if ( index < 0 )
       
 13635 	index += length();
       
 13636     return rx.match( *this, index );
       
 13637 }
       
 13638 
       
 13639 /*!
       
 13640   Finds the first occurrence of the regular expression \a rx, starting at
       
 13641   position \a index and searching backwards. If \a index is -1, the
       
 13642   search starts at the last character; if -2, at the next to last
       
 13643   character; etc.
       
 13644 
       
 13645   Returns the position of the next match (backwards), or -1 if \a rx was not
       
 13646   found.
       
 13647 
       
 13648   \sa find()
       
 13649 */
       
 13650 
       
 13651 int QString::findRev( const QRegExp &rx, int index ) const
       
 13652 {
       
 13653     if ( index < 0 )				// neg index ==> start from end
       
 13654 	index += length();
       
 13655     if ( (uint)index > length() )		// bad index
       
 13656 	return -1;
       
 13657     while( index >= 0 ) {
       
 13658 	if ( rx.match( *this, index ) == index )
       
 13659 	    return index;
       
 13660 	index--;
       
 13661     }
       
 13662     return -1;
       
 13663 }
       
 13664 
       
 13665 /*!
       
 13666   Counts the number of overlapping occurrences of \a rx in the string.
       
 13667 
       
 13668   Example:
       
 13669   \code
       
 13670     QString s = "banana and panama";
       
 13671     QRegExp r = QRegExp("a[nm]a", TRUE, FALSE);
       
 13672     s.contains( r );				// 4 matches
       
 13673   \endcode
       
 13674 
       
 13675   \sa find() findRev()
       
 13676 */
       
 13677 
       
 13678 int QString::contains( const QRegExp &rx ) const
       
 13679 {
       
 13680     if ( isEmpty() )
       
 13681 	return rx.match( *this ) < 0 ? 0 : 1;
       
 13682     int count = 0;
       
 13683     int index = -1;
       
 13684     int len = length();
       
 13685     while ( index < len-1 ) {			// count overlapping matches
       
 13686 	index = rx.match( *this, index+1 );
       
 13687 	if ( index < 0 )
       
 13688 	    break;
       
 13689 	count++;
       
 13690     }
       
 13691     return count;
       
 13692 }
       
 13693 
       
 13694 
       
 13695 /*!
       
 13696   Replaces every occurrence of \a rx in the string with \a str.
       
 13697   Returns a reference to the string.
       
 13698 
       
 13699   Examples:
       
 13700   \code
       
 13701     QString s = "banana";
       
 13702     s.replace( QRegExp("a.*a"), "" );		// becomes "b"
       
 13703 
       
 13704     QString s = "banana";
       
 13705     s.replace( QRegExp("^[bn]a"), " " );	// becomes " nana"
       
 13706 
       
 13707     QString s = "banana";
       
 13708     s.replace( QRegExp("^[bn]a"), "" );		// NOTE! becomes ""
       
 13709   \endcode
       
 13710 
       
 13711   \sa find() findRev()
       
 13712 */
       
 13713 
       
 13714 QString &QString::replace( const QRegExp &rx, const QString &str )
       
 13715 {
       
 13716     if ( isEmpty() )
       
 13717 	return *this;
       
 13718     int index = 0;
       
 13719     int slen  = str.length();
       
 13720     int len;
       
 13721     while ( index < (int)length() ) {
       
 13722 	index = rx.match( *this, index, &len, FALSE );
       
 13723 	if ( index >= 0 ) {
       
 13724 	    replace( index, len, str );
       
 13725 	    index += slen;
       
 13726 	    if ( !len )
       
 13727 		break;	// Avoid infinite loop on 0-length matches, e.g. [a-z]*
       
 13728 	}
       
 13729 	else
       
 13730 	    break;
       
 13731     }
       
 13732     return *this;
       
 13733 }
       
 13734 
       
 13735 static bool
       
 13736 ok_in_base( QChar c, int base )
       
 13737 {
       
 13738     if ( base <= 10 )
       
 13739 	return c.isDigit() && c.digitValue() < base;
       
 13740     else
       
 13741 	return c.isDigit() || (c >= 'a' && c < char('a'+base-10))
       
 13742 			   || (c >= 'A' && c < char('A'+base-10));
       
 13743 }
       
 13744 
       
 13745 /*!
       
 13746   Returns the string converted to a <code>long</code> value.
       
 13747 
       
 13748   If \a ok is non-null, \a *ok is set to TRUE if there are no
       
 13749   conceivable errors, and FALSE if the string is not a number at all, or if
       
 13750   it has trailing garbage.
       
 13751 */
       
 13752 
       
 13753 long QString::toLong( bool *ok, int base ) const
       
 13754 {
       
 13755     const QChar *p = unicode();
       
 13756     long val=0;
       
 13757     int l = length();
       
 13758     const long max_mult = INT_MAX / base;
       
 13759     bool is_ok = FALSE;
       
 13760     int neg = 0;
       
 13761     if ( !p )
       
 13762 	goto bye;
       
 13763     while ( l && p->isSpace() )			// skip leading space
       
 13764 	l--,p++;
       
 13765     if ( l && *p == '-' ) {
       
 13766 	l--;
       
 13767 	p++;
       
 13768 	neg = 1;
       
 13769     } else if ( *p == '+' ) {
       
 13770 	l--;
       
 13771 	p++;
       
 13772     }
       
 13773 
       
 13774     // NOTE: toULong() code is similar
       
 13775     if ( !l || !ok_in_base(*p,base) )
       
 13776 	goto bye;
       
 13777     while ( l && ok_in_base(*p,base) ) {
       
 13778 	l--;
       
 13779 	int dv;
       
 13780 	if ( p->isDigit() ) {
       
 13781 	    dv = p->digitValue();
       
 13782 	} else {
       
 13783 	    if ( *p >= 'a' && *p <= 'z' )
       
 13784 		dv = *p - 'a' + 10;
       
 13785 	    else
       
 13786 		dv = *p - 'A' + 10;
       
 13787 	}
       
 13788 	if ( val > max_mult || (val == max_mult && dv > (INT_MAX%base)+neg) )
       
 13789 	    goto bye;
       
 13790 	val = base*val + dv;
       
 13791 	p++;
       
 13792     }
       
 13793     if ( neg )
       
 13794 	val = -val;
       
 13795     while ( l && p->isSpace() )			// skip trailing space
       
 13796 	l--,p++;
       
 13797     if ( !l )
       
 13798 	is_ok = TRUE;
       
 13799 bye:
       
 13800     if ( ok )
       
 13801 	*ok = is_ok;
       
 13802     return is_ok ? val : 0;
       
 13803 }
       
 13804 
       
 13805 /*!
       
 13806   Returns the string converted to an <code>unsigned long</code>
       
 13807   value.
       
 13808 
       
 13809   If \a ok is non-null, \a *ok is set to TRUE if there are no
       
 13810   conceivable errors, and FALSE if the string is not a number at all,
       
 13811   or if it has trailing garbage.
       
 13812 */
       
 13813 
       
 13814 ulong QString::toULong( bool *ok, int base ) const
       
 13815 {
       
 13816     const QChar *p = unicode();
       
 13817     ulong val=0;
       
 13818     int l = length();
       
 13819     const ulong max_mult = 429496729;		// UINT_MAX/10, rounded down
       
 13820     bool is_ok = FALSE;
       
 13821     if ( !p )
       
 13822 	goto bye;
       
 13823     while ( l && p->isSpace() )			// skip leading space
       
 13824 	l--,p++;
       
 13825     if ( *p == '+' )
       
 13826 	l--,p++;
       
 13827 
       
 13828     // NOTE: toLong() code is similar
       
 13829     if ( !l || !ok_in_base(*p,base) )
       
 13830 	goto bye;
       
 13831     while ( l && ok_in_base(*p,base) ) {
       
 13832 	l--;
       
 13833 	uint dv;
       
 13834 	if ( p->isDigit() ) {
       
 13835 	    dv = p->digitValue();
       
 13836 	} else {
       
 13837 	    if ( *p >= 'a' && *p <= 'z' )
       
 13838 		dv = *p - 'a' + 10;
       
 13839 	    else
       
 13840 		dv = *p - 'A' + 10;
       
 13841 	}
       
 13842 	if ( val > max_mult || (val == max_mult && dv > (UINT_MAX%base)) )
       
 13843 	    goto bye;
       
 13844 	val = base*val + dv;
       
 13845 	p++;
       
 13846     }
       
 13847 
       
 13848     while ( l && p->isSpace() )			// skip trailing space
       
 13849 	l--,p++;
       
 13850     if ( !l )
       
 13851 	is_ok = TRUE;
       
 13852 bye:
       
 13853     if ( ok )
       
 13854 	*ok = is_ok;
       
 13855     return is_ok ? val : 0;
       
 13856 }
       
 13857 
       
 13858 /*!
       
 13859   Returns the string converted to a <code>short</code> value.
       
 13860 
       
 13861   If \a ok is non-null, \a *ok is set to TRUE if there are no
       
 13862   conceivable errors, and FALSE if the string is not a number at all, or if
       
 13863   it has trailing garbage.
       
 13864 */
       
 13865 
       
 13866 short QString::toShort( bool *ok, int base ) const
       
 13867 {
       
 13868     long v = toLong( ok, base );
       
 13869     if ( ok && *ok && (v < -32768 || v > 32767) ) {
       
 13870 	*ok = FALSE;
       
 13871 	v = 0;
       
 13872     }
       
 13873     return (short)v;
       
 13874 }
       
 13875 
       
 13876 /*!
       
 13877   Returns the string converted to an <code>unsigned short</code> value.
       
 13878 
       
 13879   If \a ok is non-null, \a *ok is set to TRUE if there are no
       
 13880   conceivable errors, and FALSE if the string is not a number at all, or if
       
 13881   it has trailing garbage.
       
 13882 */
       
 13883 
       
 13884 ushort QString::toUShort( bool *ok, int base ) const
       
 13885 {
       
 13886     ulong v = toULong( ok, base );
       
 13887     if ( ok && *ok && (v > 65535) ) {
       
 13888 	*ok = FALSE;
       
 13889 	v = 0;
       
 13890     }
       
 13891     return (ushort)v;
       
 13892 }
       
 13893 
       
 13894 
       
 13895 /*!
       
 13896   Returns the string converted to a <code>int</code> value.
       
 13897 
       
 13898   \code
       
 13899   QString str("FF");
       
 13900   bool ok;
       
 13901   int hex = str.toInt( &ok, 16 ); // will return 255, and ok set to TRUE
       
 13902   int dec = str.toInt( &ok, 10 ); // will return 0, and ok set to FALSE
       
 13903   \endcode
       
 13904 
       
 13905   If \a ok is non-null, \a *ok is set to TRUE if there are no
       
 13906   conceivable errors, and FALSE if the string is not a number at all,
       
 13907   or if it has trailing garbage.
       
 13908 */
       
 13909 
       
 13910 int QString::toInt( bool *ok, int base ) const
       
 13911 {
       
 13912     return (int)toLong( ok, base );
       
 13913 }
       
 13914 
       
 13915 /*!
       
 13916   Returns the string converted to an <code>unsigned int</code> value.
       
 13917 
       
 13918   If \a ok is non-null, \a *ok is set to TRUE if there are no
       
 13919   conceivable errors, and FALSE if the string is not a number at all,
       
 13920   or if it has trailing garbage.
       
 13921 */
       
 13922 
       
 13923 uint QString::toUInt( bool *ok, int base ) const
       
 13924 {
       
 13925     return (uint)toULong( ok, base );
       
 13926 }
       
 13927 
       
 13928 /*!
       
 13929   Returns the string converted to a <code>double</code> value.
       
 13930 
       
 13931   If \a ok is non-null, \a *ok is set to TRUE if there are no conceivable
       
 13932   errors, and FALSE if the string is not a number at all, or if it has
       
 13933   trailing garbage.
       
 13934 */
       
 13935 
       
 13936 double QString::toDouble( bool *ok ) const
       
 13937 {
       
 13938     char *end;
       
 13939 
       
 13940     QCString a = latin1();
       
 13941     // Just latin1() is not sufficient, since U0131 would look like '1'.
       
 13942     for (uint i=0; i<d->len; i++)
       
 13943 	if ( d->unicode[i].row() )
       
 13944 	    a[(int)i]='z';
       
 13945 
       
 13946     double val = strtod( a.data() ? a.data() : "", &end );
       
 13947     if ( ok )
       
 13948 	*ok = ( a && *a && ( end == 0 || *end == '\0' ) );
       
 13949     return val;
       
 13950 }
       
 13951 
       
 13952 /*!
       
 13953   Returns the string converted to a <code>float</code> value.
       
 13954 
       
 13955   If \a ok is non-null, \a *ok is set to TRUE if there are no
       
 13956   conceivable errors, and FALSE if the string is not a number at all,
       
 13957   or if it has trailing garbage.
       
 13958 */
       
 13959 
       
 13960 float QString::toFloat( bool *ok ) const
       
 13961 {
       
 13962     return (float)toDouble( ok );
       
 13963 }
       
 13964 
       
 13965 
       
 13966 /*!
       
 13967   Sets the string to the printed value of \a n and returns a
       
 13968   reference to the string.
       
 13969 
       
 13970   The value is converted to \a base notation (default is decimal).
       
 13971   The base must be a value from 2 to 36.
       
 13972 */
       
 13973 
       
 13974 QString &QString::setNum( long n, int base )
       
 13975 {
       
 13976 #if defined(CHECK_RANGE)
       
 13977     if ( base < 2 || base > 36 ) {
       
 13978 	qWarning( "QString::setNum: Invalid base %d", base );
       
 13979 	base = 10;
       
 13980     }
       
 13981 #endif
       
 13982     char   charbuf[65*sizeof(QChar)];
       
 13983     QChar *buf = (QChar*)charbuf;
       
 13984     QChar *p = &buf[64];
       
 13985     int  len = 0;
       
 13986     bool neg;
       
 13987     if ( n < 0 ) {
       
 13988 	neg = TRUE;
       
 13989 	if ( n == INT_MIN ) {
       
 13990 	    // Cannot always negate this special case
       
 13991 	    QString s1, s2;
       
 13992 	    s1.setNum(n/base);
       
 13993 	    s2.setNum((-(n+base))%base);
       
 13994 	    *this = s1 + s2;
       
 13995 	    return *this;
       
 13996 	}
       
 13997 	n = -n;
       
 13998     } else {
       
 13999 	neg = FALSE;
       
 14000     }
       
 14001     do {
       
 14002 	*--p = "0123456789abcdefghijklmnopqrstuvwxyz"[((int)(n%base))];
       
 14003 	n /= base;
       
 14004 	len++;
       
 14005     } while ( n );
       
 14006     if ( neg ) {
       
 14007 	*--p = '-';
       
 14008 	len++;
       
 14009     }
       
 14010     return setUnicode( p, len );
       
 14011 }
       
 14012 
       
 14013 /*!
       
 14014   Sets the string to the printed unsigned value of \a n and
       
 14015   returns a reference to the string.
       
 14016 
       
 14017   The value is converted to \a base notation (default is decimal).
       
 14018   The base must be a value from 2 to 36.
       
 14019 */
       
 14020 
       
 14021 QString &QString::setNum( ulong n, int base )
       
 14022 {
       
 14023 #if defined(CHECK_RANGE)
       
 14024     if ( base < 2 || base > 36 ) {
       
 14025 	qWarning( "QString::setNum: Invalid base %d", base );
       
 14026 	base = 10;
       
 14027     }
       
 14028 #endif
       
 14029     char   charbuf[65*sizeof(QChar)];
       
 14030     QChar *buf = (QChar*)charbuf;
       
 14031     QChar *p = &buf[64];
       
 14032     int len = 0;
       
 14033     do {
       
 14034 	*--p = "0123456789abcdefghijklmnopqrstuvwxyz"[((int)(n%base))];
       
 14035 	n /= base;
       
 14036 	len++;
       
 14037     } while ( n );
       
 14038     return setUnicode(p,len);
       
 14039 }
       
 14040 
       
 14041 /*!
       
 14042   \fn QString &QString::setNum( int n, int base )
       
 14043   Sets the string to the printed value of \a n and returns a reference
       
 14044   to the string.
       
 14045 */
       
 14046 
       
 14047 /*!
       
 14048   \fn QString &QString::setNum( uint n, int base )
       
 14049   Sets the string to the printed unsigned value of \a n and returns a
       
 14050   reference to the string.
       
 14051 */
       
 14052 
       
 14053 /*!
       
 14054   \fn QString &QString::setNum( short n, int base )
       
 14055   Sets the string to the printed value of \a n and returns a reference
       
 14056   to the string.
       
 14057 */
       
 14058 
       
 14059 /*!
       
 14060   \fn QString &QString::setNum( ushort n, int base )
       
 14061   Sets the string to the printed unsigned value of \a n and returns a
       
 14062   reference to the string.
       
 14063 */
       
 14064 
       
 14065 /*!  Sets the string to the printed value of \a n, formatted in the \a f
       
 14066   format with \a prec precision, and returns a reference to the
       
 14067   string.
       
 14068 
       
 14069   \a f can be 'f', 'F', 'e', 'E', 'g' or 'G', all of which have the
       
 14070   same meaning as for sprintf().
       
 14071 */
       
 14072 
       
 14073 QString &QString::setNum( double n, char f, int prec )
       
 14074 {
       
 14075 #if defined(CHECK_RANGE)
       
 14076     if ( !(f=='f' || f=='F' || f=='e' || f=='E' || f=='g' || f=='G') ) {
       
 14077 	qWarning( "QString::setNum: Invalid format char '%c'", f );
       
 14078 	f = 'f';
       
 14079     }
       
 14080 #endif
       
 14081     char format[20];
       
 14082     char buf[120];				// enough for 99 precision?
       
 14083     char *fs = format;				// generate format string
       
 14084     *fs++ = '%';				//   "%.<prec>l<f>"
       
 14085     if ( prec >= 0 ) {
       
 14086 	if ( prec > 99 )			// buf big enough for precision?
       
 14087 	    prec = 99;
       
 14088 	*fs++ = '.';
       
 14089 	if ( prec >= 10 ) {
       
 14090 	    *fs++ = prec / 10 + '0';
       
 14091 	    *fs++ = prec % 10 + '0';
       
 14092 	} else {
       
 14093 	    *fs++ = prec + '0';
       
 14094 	}
       
 14095     }
       
 14096     *fs++ = 'l';
       
 14097     *fs++ = f;
       
 14098     *fs = '\0';
       
 14099     ::sprintf( buf, format, n );
       
 14100     return setLatin1(buf);
       
 14101 }
       
 14102 
       
 14103 /*!
       
 14104   \overload QString &QString::setNum( float n, char f, int prec )
       
 14105 */
       
 14106 
       
 14107 
       
 14108 /*!
       
 14109   A convenience factory function that returns a string representation
       
 14110   of the number \a n.
       
 14111 
       
 14112   \sa setNum()
       
 14113  */
       
 14114 QString QString::number( long n, int base )
       
 14115 {
       
 14116     QString s;
       
 14117     s.setNum( n, base );
       
 14118     return s;
       
 14119 }
       
 14120 
       
 14121 /*!
       
 14122   A convenience factory function that returns a string representation
       
 14123   of the number \a n.
       
 14124 
       
 14125   \sa setNum()
       
 14126  */
       
 14127 QString QString::number( ulong n, int base )
       
 14128 {
       
 14129     QString s;
       
 14130     s.setNum( n, base );
       
 14131     return s;
       
 14132 }
       
 14133 
       
 14134 /*!
       
 14135   A convenience factory function that returns a string representation
       
 14136   of the number \a n.
       
 14137 
       
 14138   \sa setNum()
       
 14139  */
       
 14140 QString QString::number( int n, int base )
       
 14141 {
       
 14142     QString s;
       
 14143     s.setNum( n, base );
       
 14144     return s;
       
 14145 }
       
 14146 
       
 14147 /*!
       
 14148   A convenience factory function that returns a string representation
       
 14149   of the number \a n.
       
 14150 
       
 14151   \sa setNum()
       
 14152  */
       
 14153 QString QString::number( uint n, int base )
       
 14154 {
       
 14155     QString s;
       
 14156     s.setNum( n, base );
       
 14157     return s;
       
 14158 }
       
 14159 
       
 14160 /*!
       
 14161   This static function returns the printed value of \a n, formatted in the
       
 14162   \a f format with \a prec precision.
       
 14163 
       
 14164   \a f can be 'f', 'F', 'e', 'E', 'g' or 'G', all of which have the
       
 14165   same meaning as for sprintf().
       
 14166 
       
 14167   \sa setNum()
       
 14168  */
       
 14169 QString QString::number( double n, char f, int prec )
       
 14170 {
       
 14171     QString s;
       
 14172     s.setNum( n, f, prec );
       
 14173     return s;
       
 14174 }
       
 14175 
       
 14176 
       
 14177 /*! \obsolete
       
 14178 
       
 14179   Sets the character at position \a index to \a c and expands the
       
 14180   string if necessary, filling with spaces.
       
 14181 
       
 14182   This method is redundant in Qt 2.x, because operator[] will expand
       
 14183   the string as necessary.
       
 14184 */
       
 14185 
       
 14186 void QString::setExpand( uint index, QChar c )
       
 14187 {
       
 14188     int spaces = index - d->len;
       
 14189     at(index) = c;
       
 14190     while (spaces-->0)
       
 14191 	d->unicode[--index]=' ';
       
 14192 }
       
 14193 
       
 14194 
       
 14195 /*!
       
 14196   \fn const char* QString::data() const
       
 14197 
       
 14198   \obsolete
       
 14199 
       
 14200   Returns a pointer to a 0-terminated classic C string.
       
 14201 
       
 14202   In Qt 1.x, this returned a char* allowing direct manipulation of the
       
 14203   string as a sequence of bytes.  In Qt 2.x where QString is a Unicode
       
 14204   string, char* conversion constructs a temporary string, and hence
       
 14205   direct character operations are meaningless.
       
 14206 */
       
 14207 
       
 14208 /*!
       
 14209   \fn bool QString::operator!() const
       
 14210   Returns TRUE if it is a null string, otherwise FALSE.  Thus
       
 14211   you can write:
       
 14212 
       
 14213 \code
       
 14214   QString name = getName();
       
 14215   if ( !name )
       
 14216     name = "Rodney";
       
 14217 \endcode
       
 14218 
       
 14219   Note that if you say:
       
 14220 
       
 14221 \code
       
 14222   QString name = getName();
       
 14223   if ( name )
       
 14224     doSomethingWith(name);
       
 14225 \endcode
       
 14226 
       
 14227   Then this will call <tt>operator const char*()</tt>, which will do what
       
 14228   you want, but rather inefficiently - you may wish to define the macro
       
 14229   QT_NO_ASCII_CAST when writing code which you wish to strictly remain
       
 14230   Unicode-clean.
       
 14231 
       
 14232   When you want the above semantics, use <tt>!isNull()</tt>
       
 14233   or even <tt>!!</tt>:
       
 14234 
       
 14235 \code
       
 14236   QString name = getName();
       
 14237   if ( !!name )
       
 14238     doSomethingWith(name);
       
 14239 \endcode
       
 14240 */
       
 14241 
       
 14242 
       
 14243 /*!
       
 14244   \fn QString& QString::append( const QString& str )
       
 14245   Appends \a str to the string and returns a reference to the result.
       
 14246   Equivalent to operator+=().
       
 14247  */
       
 14248 
       
 14249 /*!
       
 14250   \fn QString& QString::append( char ch )
       
 14251   Appends \a ch to the string and returns a reference to the result.
       
 14252   Equivalent to operator+=().
       
 14253  */
       
 14254 
       
 14255 /*!
       
 14256   \fn QString& QString::append( QChar ch )
       
 14257   Appends \a ch to the string and returns a reference to the result.
       
 14258   Equivalent to operator+=().
       
 14259  */
       
 14260 
       
 14261 /*!
       
 14262   Appends \a str to the string and returns a reference to the string.
       
 14263 */
       
 14264 QString& QString::operator+=( const QString &str )
       
 14265 {
       
 14266     uint len1 = length();
       
 14267     uint len2 = str.length();
       
 14268     if ( len2 ) {
       
 14269 	setLength(len1+len2);
       
 14270 	memcpy( d->unicode+len1, str.unicode(), sizeof(QChar)*len2 );
       
 14271     } else if ( isNull() && !str.isNull() ) {	// ## just for 1.x compat:
       
 14272 	*this = fromLatin1("");
       
 14273     }
       
 14274     return *this;
       
 14275 }
       
 14276 
       
 14277 /*!
       
 14278   Appends \a c to the string and returns a reference to the string.
       
 14279 */
       
 14280 
       
 14281 QString &QString::operator+=( QChar c )
       
 14282 {
       
 14283     setLength(length()+1);
       
 14284     d->unicode[length()-1] = c;
       
 14285     return *this;
       
 14286 }
       
 14287 
       
 14288 /*!
       
 14289   Appends \a c to the string and returns a reference to the string.
       
 14290 */
       
 14291 
       
 14292 QString &QString::operator+=( char c )
       
 14293 {
       
 14294     setLength(length()+1);
       
 14295     d->unicode[length()-1] = c;
       
 14296     return *this;
       
 14297 }
       
 14298 
       
 14299 
       
 14300 
       
 14301 /*! \fn char QChar::latin1() const
       
 14302 
       
 14303   Returns a latin-1 copy of this character, if this character is in
       
 14304   the latin-1 character set.  If not, this function returns 0.
       
 14305 */
       
 14306 
       
 14307 
       
 14308 /*!
       
 14309   Returns a Latin-1 representation of the string. Note that the returned
       
 14310   value is undefined if the string contains non-Latin-1 characters.  If you
       
 14311   want to convert strings into formats other than Unicode, see the
       
 14312   QTextCodec classes.
       
 14313 
       
 14314   This function is mainly useful for boot-strapping legacy code to
       
 14315   use Unicode.
       
 14316 
       
 14317   The result remains valid so long as one unmodified
       
 14318   copy of the source string exists.
       
 14319 
       
 14320   \sa utf8(), local8Bit()
       
 14321 */
       
 14322 const char* QString::latin1() const
       
 14323 {
       
 14324     if ( d->ascii ) {
       
 14325 	if ( d->dirtyascii )
       
 14326 	    delete [] d->ascii;
       
 14327 	else
       
 14328 	    return d->ascii;
       
 14329     }
       
 14330     Q2HELPER(stat_get_ascii++)
       
 14331     Q2HELPER(stat_get_ascii_size+=d->len)
       
 14332     d->ascii = unicodeToAscii( d->unicode, d->len );
       
 14333     d->dirtyascii = 0;
       
 14334     return d->ascii;
       
 14335 }
       
 14336 
       
 14337 /*! \obsolete
       
 14338 
       
 14339   This functions simply calls latin1() and returns the result.
       
 14340 */
       
 14341 const char* QString::ascii() const
       
 14342 {
       
 14343     return latin1();
       
 14344 }
       
 14345 
       
 14346 #ifndef QT_NO_TEXTCODEC
       
 14347 /*!
       
 14348   Returns the string encoded in UTF8 format.
       
 14349 
       
 14350   See QTextCodec for more diverse coding/decoding of Unicode strings.
       
 14351 
       
 14352   \sa QString::fromUtf8(), local8Bit(), latin1()
       
 14353 */
       
 14354 QCString QString::utf8() const
       
 14355 {
       
 14356     static QTextCodec* codec = QTextCodec::codecForMib(106);
       
 14357     return codec
       
 14358 	    ? codec->fromUnicode(*this)
       
 14359 	    : QCString(latin1());
       
 14360 }
       
 14361 
       
 14362 /*!
       
 14363   Returns the unicode string decoded from the
       
 14364   first \a len bytes of \a utf8.  If \a len is -1 (the default), the
       
 14365   length of \a utf8 is used.  If trailing partial characters are in
       
 14366   \a utf8, they are ignored.
       
 14367 
       
 14368   See QTextCodec for more diverse coding/decoding of Unicode strings.
       
 14369 */
       
 14370 QString QString::fromUtf8(const char* utf8, int len)
       
 14371 {
       
 14372     static QTextCodec* codec = QTextCodec::codecForMib(106);
       
 14373     if ( len < 0 ) len = qstrlen(utf8);
       
 14374     return codec
       
 14375 	    ? codec->toUnicode(utf8, len)
       
 14376 	    : QString::fromLatin1(utf8, len);
       
 14377 }
       
 14378 #endif // QT_NO_TEXTCODEC
       
 14379 /*!
       
 14380   Creates a QString from Latin1 text.  This is the same as the
       
 14381   QString(const char*) constructor, but you can make that constructor
       
 14382   invisible if you compile with the define QT_NO_CAST_ASCII, in which
       
 14383   case you can explicitly create a QString from Latin-1 text using
       
 14384   this function.
       
 14385 */
       
 14386 QString QString::fromLatin1(const char* chars, int len)
       
 14387 {
       
 14388     uint l;
       
 14389     QChar *uc;
       
 14390     if ( len < 0 ) {
       
 14391 	uc = internalAsciiToUnicode(chars,&l);
       
 14392     } else {
       
 14393 	uc = internalAsciiToUnicode(chars,&l,len);
       
 14394     }
       
 14395     return QString(new QStringData(uc,l,l), TRUE);
       
 14396 }
       
 14397 
       
 14398 /*!
       
 14399   \fn const QChar* QString::unicode() const
       
 14400 
       
 14401   Returns the Unicode representation of the string.  The result
       
 14402   remains valid until the string is modified.
       
 14403 */
       
 14404 
       
 14405 /*!
       
 14406   Returns the string encoded in a locale-specific format.  On X11, this
       
 14407   is the QTextCodec::codecForLocale().  On Windows, it is a system-defined
       
 14408   encoding.
       
 14409 
       
 14410   See QTextCodec for more diverse coding/decoding of Unicode strings.
       
 14411 
       
 14412   \sa QString::fromLocal8Bit(), latin1(), utf8()
       
 14413 */
       
 14414 
       
 14415 
       
 14416 QCString QString::local8Bit() const
       
 14417 {
       
 14418 #ifdef QT_NO_TEXTCODEC
       
 14419     return latin1();
       
 14420 #else
       
 14421 #ifdef _WS_X11_
       
 14422     static QTextCodec* codec = QTextCodec::codecForLocale();
       
 14423     return codec
       
 14424 	    ? codec->fromUnicode(*this)
       
 14425 	    : QCString(latin1());
       
 14426 #endif
       
 14427 #ifdef _WS_MAC_
       
 14428     static QTextCodec* codec = QTextCodec::codecForLocale();
       
 14429     return codec
       
 14430 	    ? codec->fromUnicode(*this)
       
 14431 	    : QCString(latin1());
       
 14432 #endif
       
 14433 #ifdef _WS_WIN_
       
 14434     return qt_winQString2MB( *this );
       
 14435 #endif
       
 14436 #ifdef _WS_QWS_
       
 14437     return utf8(); // ##### if there is ANY 8 bit format supported?
       
 14438 #endif
       
 14439 #endif
       
 14440 }
       
 14441 
       
 14442 /*!
       
 14443   Returns the unicode string decoded from the
       
 14444   first \a len bytes of \a local8Bit.  If \a len is -1 (the default), the
       
 14445   length of \a local8Bit is used.  If trailing partial characters are in
       
 14446   \a local8Bit, they are ignored.
       
 14447 
       
 14448   \a local8Bit is assumed to be encoded in a locale-specific format.
       
 14449 
       
 14450   See QTextCodec for more diverse coding/decoding of Unicode strings.
       
 14451 */
       
 14452 QString QString::fromLocal8Bit(const char* local8Bit, int len)
       
 14453 {
       
 14454 #ifdef QT_NO_TEXTCODEC
       
 14455     return fromLatin1( local8Bit, len );
       
 14456 #else
       
 14457 
       
 14458     if ( !local8Bit )
       
 14459 	return QString::null;
       
 14460 #ifdef _WS_X11_
       
 14461     static QTextCodec* codec = QTextCodec::codecForLocale();
       
 14462     if ( len < 0 ) len = qstrlen(local8Bit);
       
 14463     return codec
       
 14464 	    ? codec->toUnicode(local8Bit, len)
       
 14465 	    : QString::fromLatin1(local8Bit,len);
       
 14466 #endif
       
 14467 #ifdef _WS_MAC_
       
 14468     static QTextCodec* codec = QTextCodec::codecForLocale();
       
 14469     if ( len < 0 ) len = qstrlen(local8Bit);
       
 14470     return codec
       
 14471 	    ? codec->toUnicode(local8Bit, len)
       
 14472 	    : QString::fromLatin1(local8Bit,len);
       
 14473 #endif
       
 14474 // Should this be OS_WIN32?
       
 14475 #ifdef _WS_WIN_
       
 14476     if ( len >= 0 ) {
       
 14477 	QCString s(local8Bit,len+1);
       
 14478 	return qt_winMB2QString(s);
       
 14479     }
       
 14480     return qt_winMB2QString( local8Bit );
       
 14481 #endif
       
 14482 #ifdef _WS_QWS_
       
 14483     return fromUtf8(local8Bit,len);
       
 14484 #endif
       
 14485 #endif // QT_NO_TEXTCODEC
       
 14486 }
       
 14487 
       
 14488 /*!
       
 14489   \fn QString::operator const char *() const
       
 14490 
       
 14491   Returns latin1().  Be sure to see the warnings documented there.
       
 14492   Note that for new code which you wish to be strictly Unicode-clean,
       
 14493   you can define the macro QT_NO_ASCII_CAST when compiling your code
       
 14494   to hide this function so that automatic casts are not done.  This
       
 14495   has the added advantage that you catch the programming error
       
 14496   described under operator!().
       
 14497 */
       
 14498 
       
 14499 /*!
       
 14500   \fn QChar QString::at( uint ) const
       
 14501 
       
 14502   Returns the character at \a i, or 0 if \a i is beyond the length
       
 14503   of the string.
       
 14504 
       
 14505   Note: If this QString is not const or const&, the non-const at()
       
 14506   will be used instead, which will expand the string if \a i is beyond
       
 14507   the length of the string.
       
 14508 */
       
 14509 
       
 14510 /*!
       
 14511   \fn QChar QString::constref(uint i) const
       
 14512   Equivalent to at(i), this returns the QChar at \a i by value.
       
 14513 
       
 14514   \sa ref()
       
 14515 */
       
 14516 
       
 14517 /*!
       
 14518   \fn QChar& QString::ref(uint i)
       
 14519   Returns the QChar at \a i by reference.
       
 14520 
       
 14521   \sa constref()
       
 14522 */
       
 14523 
       
 14524 /*!
       
 14525   \fn QChar QString::operator[](int) const
       
 14526 
       
 14527   Returns the character at \a i, or QChar::null if \a i is beyond the
       
 14528   length of the string.
       
 14529 
       
 14530   Note: If this QString is not const or const&, the non-const operator[]
       
 14531   will be used instead, which will expand the string if \a i is beyond
       
 14532   the length of the string.
       
 14533 */
       
 14534 
       
 14535 /*!
       
 14536   \fn QCharRef QString::operator[](int)
       
 14537 
       
 14538   Returns an object that references the character at \a i.
       
 14539   This reference
       
 14540   can then be assigned to, or otherwise used immediately, but
       
 14541   becomes invalid once further modifications are made to the string.
       
 14542   The QCharRef internal class can be used much like a constant QChar, but
       
 14543   if you assign to it, you change the original string (which enlarges
       
 14544   and detaches itself). You will get compilation errors if you try to
       
 14545   use the result as anything but a QChar.
       
 14546 */
       
 14547 
       
 14548 /*!
       
 14549   \fn QCharRef QString::at( uint i )
       
 14550   Returns a reference to the character at \a i, expanding
       
 14551   the string with QChar::null if necessary.  The resulting reference
       
 14552   can then be assigned to, or otherwise used immediately, but
       
 14553   becomes invalid once further modifications are made to the string.
       
 14554 */
       
 14555 
       
 14556 /*!
       
 14557   Internal chunk of code to handle the
       
 14558   uncommon cases of at() above.
       
 14559 */
       
 14560 void QString::subat( uint i )
       
 14561 {
       
 14562     uint olen = d->len;
       
 14563     if ( i >= olen ) {
       
 14564 	setLength( i+1 );		// i is index; i+1 is needed length
       
 14565 	for ( uint j=olen; j<=i; j++ )
       
 14566 	    d->unicode[j] = QChar::null;
       
 14567     } else {
       
 14568 	// Just be sure to detach
       
 14569 	real_detach();
       
 14570     }
       
 14571 }
       
 14572 
       
 14573 
       
 14574 /*!
       
 14575   Resizes the string to \a len unicode characters and copies \a unicode
       
 14576   into the string.  If \a unicode is null, nothing is copied, but the
       
 14577   string is resized to \a len anyway. If \a len is zero, the string
       
 14578   becomes a \link isNull() null\endlink string.
       
 14579 
       
 14580   \sa setLatin1(), isNull()
       
 14581 */
       
 14582 
       
 14583 QString& QString::setUnicode( const QChar *unicode, uint len )
       
 14584 {
       
 14585     if ( len == 0 ) {				// set to null string
       
 14586 	if ( d != shared_null ) {		// beware of nullstring being set to nullstring
       
 14587 	    deref();
       
 14588 	    d = shared_null ? shared_null : makeSharedNull();
       
 14589 	    d->ref();
       
 14590 	}
       
 14591     } else if ( d->count != 1 || len > d->maxl ||
       
 14592 	 ( len*4 < d->maxl && d->maxl > 4 ) ) {	// detach, grown or shrink
       
 14593 	Q2HELPER(stat_copy_on_write++)
       
 14594 	Q2HELPER(stat_copy_on_write_size+=d->len)
       
 14595 	uint newMax = 4;
       
 14596 	while ( newMax < len )
       
 14597 	    newMax *= 2;
       
 14598 	QChar* nd = QT_ALLOC_QCHAR_VEC( newMax );
       
 14599 	if ( unicode )
       
 14600 	    memcpy( nd, unicode, sizeof(QChar)*len );
       
 14601 	deref();
       
 14602 	d = new QStringData( nd, len, newMax );
       
 14603     } else {
       
 14604 	d->len = len;
       
 14605 	d->dirtyascii = 1;
       
 14606 	if ( unicode )
       
 14607 	    memcpy( d->unicode, unicode, sizeof(QChar)*len );
       
 14608     }
       
 14609     return *this;
       
 14610 }
       
 14611 
       
 14612 /*!
       
 14613   Resizes the string to \a len unicode characters and copies
       
 14614   \a unicode_as_ushorts into the string (on some X11 client
       
 14615   platforms this will involve a byte-swapping pass).
       
 14616 
       
 14617   If \a unicode is null, nothing is copied, but the
       
 14618   string is resized to \a len anyway. If \a len is zero, the string
       
 14619   becomes a \link isNull() null\endlink string.
       
 14620 
       
 14621   \sa setLatin1(), isNull()
       
 14622 */
       
 14623 QString& QString::setUnicodeCodes( const ushort* unicode_as_ushorts, uint len )
       
 14624 {
       
 14625     setUnicode((const QChar*)unicode_as_ushorts, len);
       
 14626     QChar t(0x1234);
       
 14627     if ( unicode_as_ushorts && *((ushort*)&t) == 0x3412 ) {
       
 14628 	// Need to byteswap
       
 14629 	char* b = (char*)d->unicode;
       
 14630 	while ( len-- ) {
       
 14631 	    char c = b[0];
       
 14632 	    b[0] = b[1];
       
 14633 	    b[1] = c;
       
 14634 	    b += sizeof(QChar);
       
 14635 	}
       
 14636     }
       
 14637     return *this;
       
 14638 }
       
 14639 
       
 14640 
       
 14641 /*!
       
 14642   Sets this string to \a str, interpreted as a classic Latin 1 C string.
       
 14643   If the \a len argument is negative (default), it is set to strlen(str).
       
 14644 
       
 14645   If \a str is 0 a null string is created.  If \a str is "" an empty
       
 14646   string is created.
       
 14647 
       
 14648   \sa isNull(), isEmpty()
       
 14649 */
       
 14650 
       
 14651 QString &QString::setLatin1( const char *str, int len )
       
 14652 {
       
 14653     if ( str == 0 )
       
 14654 	return setUnicode(0,0);
       
 14655     if ( len < 0 )
       
 14656 	len = qstrlen(str);
       
 14657     if ( len == 0 ) {				// won't make a null string
       
 14658 	deref();
       
 14659 	uint l;
       
 14660 	QChar *uc = internalAsciiToUnicode(str,&l);
       
 14661 	d = new QStringData(uc,l,l);
       
 14662     } else {
       
 14663 	setUnicode( 0, len );			// resize but not copy
       
 14664 	QChar *p = d->unicode;
       
 14665 	while ( len-- )
       
 14666 	    *p++ = *str++;
       
 14667     }
       
 14668     return *this;
       
 14669 }
       
 14670 
       
 14671 
       
 14672 /*!
       
 14673   \fn int QString::compare (const QString & s1, const QString & s2)
       
 14674 
       
 14675   Compare \a s1 to \a s2 returning an integer less than, equal to, or
       
 14676   greater than zero if s1 is, respectively, lexically less than, equal to,
       
 14677   or greater than s2.
       
 14678 */
       
 14679 
       
 14680 /*!
       
 14681   Compares this string to \a s, returning an integer less than, equal to, or
       
 14682   greater than zero if it is, respectively, lexically less than, equal to,
       
 14683   or greater than \a s.
       
 14684 */
       
 14685 int QString::compare( const QString& s ) const
       
 14686 {
       
 14687     return ucstrcmp(*this,s);
       
 14688 }
       
 14689 
       
 14690 bool operator==( const QString &s1, const QString &s2 )
       
 14691 {
       
 14692     return (s1.length() == s2.length()) && s1.isNull() == s2.isNull() &&
       
 14693 	   (memcmp((char*)s1.unicode(),(char*)s2.unicode(),
       
 14694 		   s1.length()*sizeof(QChar)) ==0);
       
 14695 }
       
 14696 
       
 14697 bool operator!=( const QString &s1, const QString &s2 )
       
 14698 { return !(s1==s2); }
       
 14699 
       
 14700 bool operator<( const QString &s1, const QString &s2 )
       
 14701 { return ucstrcmp(s1,s2) < 0; }
       
 14702 
       
 14703 bool operator<=( const QString &s1, const QString &s2 )
       
 14704 { return ucstrcmp(s1,s2) <= 0; }
       
 14705 
       
 14706 bool operator>( const QString &s1, const QString &s2 )
       
 14707 { return ucstrcmp(s1,s2) > 0; }
       
 14708 
       
 14709 bool operator>=( const QString &s1, const QString &s2 )
       
 14710 { return ucstrcmp(s1,s2) >= 0; }
       
 14711 
       
 14712 
       
 14713 bool operator==( const QString &s1, const char *s2 )
       
 14714 { return s1==QString(s2); }
       
 14715 
       
 14716 bool operator==( const char *s1, const QString &s2 )
       
 14717 { return QString(s1)==s2; }
       
 14718 
       
 14719 bool operator!=( const QString &s1, const char *s2 )
       
 14720 { return !(s1==s2); }
       
 14721 
       
 14722 bool operator!=( const char *s1, const QString &s2 )
       
 14723 { return !(s1==s2); }
       
 14724 
       
 14725 bool operator<( const QString &s1, const char *s2 )
       
 14726 { return ucstrcmp(s1,s2) < 0; }
       
 14727 
       
 14728 bool operator<( const char *s1, const QString &s2 )
       
 14729 { return ucstrcmp(s1,s2) < 0; }
       
 14730 
       
 14731 bool operator<=( const QString &s1, const char *s2 )
       
 14732 { return ucstrcmp(s1,s2) <= 0; }
       
 14733 
       
 14734 bool operator<=( const char *s1, const QString &s2 )
       
 14735 { return ucstrcmp(s1,s2) <= 0; }
       
 14736 
       
 14737 bool operator>( const QString &s1, const char *s2 )
       
 14738 { return ucstrcmp(s1,s2) > 0; }
       
 14739 
       
 14740 bool operator>( const char *s1, const QString &s2 )
       
 14741 { return ucstrcmp(s1,s2) > 0; }
       
 14742 
       
 14743 bool operator>=( const QString &s1, const char *s2 )
       
 14744 { return ucstrcmp(s1,s2) >= 0; }
       
 14745 
       
 14746 bool operator>=( const char *s1, const QString &s2 )
       
 14747 { return ucstrcmp(s1,s2) >= 0; }
       
 14748 
       
 14749 
       
 14750 /*****************************************************************************
       
 14751   Documentation for QString related functions
       
 14752  *****************************************************************************/
       
 14753 
       
 14754 /*!
       
 14755   \fn bool operator==( const QString &s1, const QString &s2 )
       
 14756   \relates QString
       
 14757   Returns TRUE if the two strings are equal, or FALSE if they are different.
       
 14758   A null string is different from an empty, non-null string.
       
 14759 
       
 14760   Equivalent to <code>qstrcmp(s1,s2) == 0</code>.
       
 14761 */
       
 14762 
       
 14763 /*!
       
 14764   \fn bool operator==( const QString &s1, const char *s2 )
       
 14765   \relates QString
       
 14766   Returns TRUE if the two strings are equal, or FALSE if they are different.
       
 14767 
       
 14768   Equivalent to <code>qstrcmp(s1,s2) == 0</code>.
       
 14769 */
       
 14770 
       
 14771 /*!
       
 14772   \fn bool operator==( const char *s1, const QString &s2 )
       
 14773   \relates QString
       
 14774   Returns TRUE if the two strings are equal, or FALSE if they are different.
       
 14775 
       
 14776   Equivalent to <code>qstrcmp(s1,s2) == 0</code>.
       
 14777 */
       
 14778 
       
 14779 /*!
       
 14780   \fn bool operator!=( const QString &s1, const QString &s2 )
       
 14781   \relates QString
       
 14782   Returns TRUE if the two strings are different, or FALSE if they are equal.
       
 14783 
       
 14784   Equivalent to <code>qstrcmp(s1,s2) != 0</code>.
       
 14785 */
       
 14786 
       
 14787 /*!
       
 14788   \fn bool operator!=( const QString &s1, const char *s2 )
       
 14789   \relates QString
       
 14790   Returns TRUE if the two strings are different, or FALSE if they are equal.
       
 14791 
       
 14792   Equivalent to <code>qstrcmp(s1,s2) != 0</code>.
       
 14793 */
       
 14794 
       
 14795 /*!
       
 14796   \fn bool operator!=( const char *s1, const QString &s2 )
       
 14797   \relates QString
       
 14798   Returns TRUE if the two strings are different, or FALSE if they are equal.
       
 14799 
       
 14800   Equivalent to <code>qstrcmp(s1,s2) != 0</code>.
       
 14801 */
       
 14802 
       
 14803 /*!
       
 14804   \fn bool operator<( const QString &s1, const char *s2 )
       
 14805   \relates QString
       
 14806   Returns TRUE if \a s1 is alphabetically less than \a s2, otherwise FALSE.
       
 14807 
       
 14808   Equivalent to <code>qstrcmp(s1,s2) \< 0</code>.
       
 14809 */
       
 14810 
       
 14811 /*!
       
 14812   \fn bool operator<( const char *s1, const QString &s2 )
       
 14813   \relates QString
       
 14814   Returns TRUE if \a s1 is alphabetically less than \a s2, otherwise FALSE.
       
 14815 
       
 14816   Equivalent to <code>qstrcmp(s1,s2) \< 0</code>.
       
 14817 */
       
 14818 
       
 14819 /*!
       
 14820   \fn bool operator<=( const QString &s1, const char *s2 )
       
 14821   \relates QString
       
 14822   Returns TRUE if \a s1 is alphabetically less than or equal to \a s2,
       
 14823   otherwise FALSE.
       
 14824 
       
 14825   Equivalent to <code>qstrcmp(s1,s2) \<= 0</code>.
       
 14826 */
       
 14827 
       
 14828 /*!
       
 14829   \fn bool operator<=( const char *s1, const QString &s2 )
       
 14830   \relates QString
       
 14831   Returns TRUE if \a s1 is alphabetically less than or equal to \a s2,
       
 14832   otherwise FALSE.
       
 14833 
       
 14834   Equivalent to <code>qstrcmp(s1,s2) \<= 0</code>.
       
 14835 */
       
 14836 
       
 14837 /*!
       
 14838   \fn bool operator>( const QString &s1, const char *s2 )
       
 14839   \relates QString
       
 14840   Returns TRUE if \a s1 is alphabetically greater than \a s2, otherwise FALSE.
       
 14841 
       
 14842   Equivalent to <code>qstrcmp(s1,s2) \> 0</code>.
       
 14843 */
       
 14844 
       
 14845 /*!
       
 14846   \fn bool operator>( const char *s1, const QString &s2 )
       
 14847   \relates QString
       
 14848   Returns TRUE if \a s1 is alphabetically greater than \a s2, otherwise FALSE.
       
 14849 
       
 14850   Equivalent to <code>qstrcmp(s1,s2) \> 0</code>.
       
 14851 */
       
 14852 
       
 14853 /*!
       
 14854   \fn bool operator>=( const QString &s1, const char *s2 )
       
 14855   \relates QString
       
 14856   Returns TRUE if \a s1 is alphabetically greater than or equal to \a s2,
       
 14857   otherwise FALSE.
       
 14858 
       
 14859   Equivalent to <code>qstrcmp(s1,s2) \>= 0</code>.
       
 14860 */
       
 14861 
       
 14862 /*!
       
 14863   \fn bool operator>=( const char *s1, const QString &s2 )
       
 14864   \relates QString
       
 14865   Returns TRUE if \a s1 is alphabetically greater than or equal to \a s2,
       
 14866   otherwise FALSE.
       
 14867 
       
 14868   Equivalent to <code>qstrcmp(s1,s2) \>= 0</code>.
       
 14869 */
       
 14870 
       
 14871 /*!
       
 14872   \fn QString operator+( const QString &s1, const QString &s2 )
       
 14873   \relates QString
       
 14874   Returns the concatenated string of s1 and s2.
       
 14875 */
       
 14876 
       
 14877 /*!
       
 14878   \fn QString operator+( const QString &s1, const char *s2 )
       
 14879   \relates QString
       
 14880   Returns the concatenated string of s1 and s2.
       
 14881 */
       
 14882 
       
 14883 /*!
       
 14884   \fn QString operator+( const char *s1, const QString &s2 )
       
 14885   \relates QString
       
 14886   Returns the concatenated string of s1 and s2.
       
 14887 */
       
 14888 
       
 14889 /*!
       
 14890   \fn QString operator+( const QString &s, char c )
       
 14891   \relates QString
       
 14892   Returns the concatenated string of s and c.
       
 14893 */
       
 14894 
       
 14895 /*!
       
 14896   \fn QString operator+( char c, const QString &s )
       
 14897   \relates QString
       
 14898   Returns the concatenated string of c and s.
       
 14899 */
       
 14900 
       
 14901 
       
 14902 /*****************************************************************************
       
 14903   QString stream functions
       
 14904  *****************************************************************************/
       
 14905 #ifndef QT_NO_DATASTREAM
       
 14906 /*!
       
 14907   \relates QString
       
 14908   Writes a string to the stream.
       
 14909 
       
 14910   \sa \link datastreamformat.html Format of the QDataStream operators \endlink
       
 14911 */
       
 14912 
       
 14913 QDataStream &operator<<( QDataStream &s, const QString &str )
       
 14914 {
       
 14915     if ( s.version() == 1 ) {
       
 14916 	QCString l( str.latin1() );
       
 14917 	s << l;
       
 14918     }
       
 14919     else {
       
 14920 	const char* ub = (const char*)str.unicode();
       
 14921 	if ( ub || s.version() < 3 ) {
       
 14922 	    if ( QChar::networkOrdered() ==
       
 14923 		    (s.byteOrder()==QDataStream::BigEndian) ) {
       
 14924 		s.writeBytes( ub, sizeof(QChar)*str.length() );
       
 14925 	    } else {
       
 14926 		static const uint auto_size = 1024;
       
 14927 		char t[auto_size];
       
 14928 		char *b;
       
 14929 		if ( str.length()*sizeof(QChar) > auto_size ) {
       
 14930 		    b = new char[str.length()*sizeof(QChar)];
       
 14931 		} else {
       
 14932 		    b = t;
       
 14933 		}
       
 14934 		int l = str.length();
       
 14935 		char *c=b;
       
 14936 		while ( l-- ) {
       
 14937 		    *c++ = ub[1];
       
 14938 		    *c++ = ub[0];
       
 14939 		    ub+=sizeof(QChar);
       
 14940 		}
       
 14941 		s.writeBytes( b, sizeof(QChar)*str.length() );
       
 14942 		if ( str.length()*sizeof(QChar) > auto_size )
       
 14943 		    delete [] b;
       
 14944 	    }
       
 14945 	} else {
       
 14946 	    // write null marker
       
 14947 	    s << (Q_UINT32)0xffffffff;
       
 14948 	}
       
 14949     }
       
 14950     return s;
       
 14951 }
       
 14952 
       
 14953 /*!
       
 14954   \relates QString
       
 14955   Reads a string from the stream.
       
 14956 
       
 14957   \sa \link datastreamformat.html Format of the QDataStream operators \endlink
       
 14958 */
       
 14959 
       
 14960 QDataStream &operator>>( QDataStream &s, QString &str )
       
 14961 {
       
 14962 #ifdef QT_QSTRING_UCS_4
       
 14963 #if defined(_CC_GNU_)
       
 14964 #warning "operator>> not working properly"
       
 14965 #endif
       
 14966 #endif
       
 14967     if ( s.version() == 1 ) {
       
 14968 	QCString l;
       
 14969 	s >> l;
       
 14970 	str = QString( l );
       
 14971     }
       
 14972     else {
       
 14973 	Q_UINT32 bytes;
       
 14974 	s >> bytes;					// read size of string
       
 14975 	if ( bytes == 0xffffffff ) {			// null string
       
 14976 	    str = QString::null;
       
 14977 	} else if ( bytes > 0 ) {			// not empty
       
 14978 	    str.setLength( bytes/2 );
       
 14979 	    char* b = (char*)str.d->unicode;
       
 14980 	    s.readRawBytes( b, bytes );
       
 14981 	    if ( QChar::networkOrdered() !=
       
 14982 		    (s.byteOrder()==QDataStream::BigEndian) ) {
       
 14983 		bytes /= 2;
       
 14984 		while ( bytes-- ) {
       
 14985 		    char c = b[0];
       
 14986 		    b[0] = b[1];
       
 14987 		    b[1] = c;
       
 14988 		    b += 2;
       
 14989 		}
       
 14990 	    }
       
 14991 	} else {
       
 14992 	    str = "";
       
 14993 	}
       
 14994     }
       
 14995     return s;
       
 14996 }
       
 14997 #endif // QT_NO_DATASTREAM
       
 14998 
       
 14999 /*****************************************************************************
       
 15000   QConstString member functions
       
 15001  *****************************************************************************/
       
 15002 
       
 15003 /*!
       
 15004   \class QConstString qstring.h
       
 15005   \brief A QString which uses constant Unicode data.
       
 15006 
       
 15007   In order to minimize copying, highly optimized applications can use
       
 15008   QConstString to provide a QString-compatible object from existing
       
 15009   Unicode data.  It is then the user's responsibility to make sure
       
 15010   that the Unicode data must exist for the entire lifetime of the
       
 15011   QConstString object.
       
 15012 */
       
 15013 
       
 15014 /*!
       
 15015   Constructs a QConstString that uses the first \a length Unicode
       
 15016   characters in the array \a unicode.  Any attempt to modify
       
 15017   copies of the string will cause it to create a copy of the
       
 15018   data, thus it remains forever unmodified.
       
 15019 
       
 15020   Note that \a unicode is \e not \e copied.  The caller \e must be
       
 15021   able to guarantee that \a unicode will not be deleted or
       
 15022   modified. Since that is generally not the case with \c const strings
       
 15023   (they are references), this constructor demands a non-const pointer
       
 15024   even though it never modifies \a unicode.
       
 15025 */
       
 15026 QConstString::QConstString( QChar* unicode, uint length ) :
       
 15027     QString(new QStringData(unicode, length, length),TRUE)
       
 15028 {
       
 15029 }
       
 15030 
       
 15031 /*!
       
 15032   Destroys the QConstString, creating a copy of the data if
       
 15033   other strings are still using it.
       
 15034 */
       
 15035 QConstString::~QConstString()
       
 15036 {
       
 15037     if ( d->count > 1 ) {
       
 15038 	QChar* cp = QT_ALLOC_QCHAR_VEC( d->len );
       
 15039 	memcpy( cp, d->unicode, d->len*sizeof(QChar) );
       
 15040 	d->unicode = cp;
       
 15041     } else {
       
 15042 	d->unicode = 0;
       
 15043     }
       
 15044 
       
 15045     // The original d->unicode is now unlinked.
       
 15046 }
       
 15047 
       
 15048 /*!
       
 15049   \fn const QString& QConstString::string() const
       
 15050 
       
 15051   Returns a constant string referencing the data passed during
       
 15052   construction.
       
 15053 */
       
 15054 
       
 15055 /*!
       
 15056   Returns whether the strings starts with \a s, or not.
       
 15057  */
       
 15058 bool QString::startsWith( const QString& s ) const
       
 15059 {
       
 15060     for ( int i =0; i < (int) s.length(); i++ ) {
       
 15061 	if ( i >= (int) length() || d->unicode[i] != s[i] )
       
 15062 	    return FALSE;
       
 15063     }
       
 15064     return TRUE;
       
 15065 }
       
 15066 
       
 15067 
       
 15068 
       
 15069 #if defined(_OS_WIN32_)
       
 15070 
       
 15071 #include <windows.h>
       
 15072 
       
 15073 /*!
       
 15074   Returns a static Windows TCHAR* from a QString, possibly adding NUL.
       
 15075 
       
 15076   The lifetime of the return value is until the next call to this function.
       
 15077 */
       
 15078 const void* qt_winTchar(const QString& str_in, bool addnul)
       
 15079 {
       
 15080     // So that the return value lives long enough.
       
 15081     static QString str;
       
 15082     str = str_in;
       
 15083 
       
 15084 #ifdef UNICODE
       
 15085     static uint buflen = 256;
       
 15086     static TCHAR *buf = new TCHAR[buflen];
       
 15087 
       
 15088     const QChar* uc = str.unicode();
       
 15089 
       
 15090 #define EXTEND if (str.length() > buflen) { delete buf; buf = new TCHAR[buflen=str.length()+1]; }
       
 15091 
       
 15092 #if defined(_WS_X11_) || defined(_OS_WIN32_BYTESWAP_)
       
 15093     EXTEND
       
 15094     for ( int i=str.length(); i--; )
       
 15095 	buf[i] = uc[i].row() << 8 | uc[i].cell();
       
 15096     if ( addnul )
       
 15097 	buf[str.length()] = 0;
       
 15098 #else
       
 15099     // Same endianness of TCHAR
       
 15100     if ( addnul ) {
       
 15101 	EXTEND
       
 15102 	memcpy(buf,uc,sizeof(TCHAR)*str.length());
       
 15103 	buf[str.length()] = 0;
       
 15104     } else {
       
 15105 	return uc;
       
 15106     }
       
 15107 #endif
       
 15108     return buf;
       
 15109 #undef EXTEND
       
 15110 
       
 15111 #else
       
 15112     return str.latin1();
       
 15113 #endif
       
 15114 }
       
 15115 
       
 15116 /*!
       
 15117   Makes a new null terminated Windows TCHAR* from a QString.
       
 15118 */
       
 15119 void* qt_winTchar_new(const QString& str)
       
 15120 {
       
 15121     TCHAR* result = new TCHAR[str.length()+1];
       
 15122     memcpy(result, qt_winTchar(str,FALSE), sizeof(TCHAR)*str.length());
       
 15123     result[str.length()] = 0;
       
 15124     return result;
       
 15125 }
       
 15126 
       
 15127 /*!
       
 15128   Makes a QString from a Windows TCHAR*.
       
 15129 */
       
 15130 QString qt_winQString(void* tc)
       
 15131 {
       
 15132 #ifdef UNICODE
       
 15133 
       
 15134     int len=0;
       
 15135     while ( ((TCHAR*)tc)[len] )
       
 15136 	len++;
       
 15137 #if defined(_WS_X11_) || defined(_OS_WIN32_BYTESWAP_)
       
 15138     QString r;
       
 15139     for ( int i=0; i<len; i++ )
       
 15140 	r += QChar(((TCHAR*)tc)[i]&0xff,((TCHAR*)tc)[i]>>8);
       
 15141     return r;
       
 15142 #else
       
 15143     // Same endianness of TCHAR
       
 15144     return QString((QChar*)tc,len);
       
 15145 #endif
       
 15146 #undef EXTEND
       
 15147 #else
       
 15148     return (TCHAR*)tc;
       
 15149 #endif
       
 15150 }
       
 15151 
       
 15152 QCString qt_winQString2MB( const QString& s, int uclen )
       
 15153 {
       
 15154     if ( uclen < 0 )
       
 15155 	uclen = s.length();
       
 15156     if ( uclen == 0 )
       
 15157 	return QCString();
       
 15158     BOOL used_def;
       
 15159     int bufSize=4096;
       
 15160     QCString mb(bufSize);
       
 15161     int len;
       
 15162     while ( !(len=WideCharToMultiByte(CP_ACP, 0, (const WCHAR*)s.unicode(), uclen,
       
 15163 		mb.data(), bufSize-1, 0, &used_def)) )
       
 15164     {
       
 15165 	int r = GetLastError();
       
 15166 	if ( r == ERROR_INSUFFICIENT_BUFFER ) {
       
 15167             bufSize=1+WideCharToMultiByte( CP_ACP, 0,
       
 15168 			(const WCHAR*)s.unicode(), uclen,
       
 15169 			0, 0, 0, &used_def);
       
 15170             mb.resize(bufSize);
       
 15171 		// and try again...
       
 15172 	} else {
       
 15173 	    // Fail.
       
 15174 	    qWarning("WideCharToMultiByte cannot convert multibyte text (error %d): %s (UTF8)",
       
 15175 		r, s.utf8().data());
       
 15176 	    break;
       
 15177 	}
       
 15178     }
       
 15179     mb[len]='\0';
       
 15180     return mb;
       
 15181 }
       
 15182 
       
 15183 // WATCH OUT: mblen must include the NUL (or just use -1)
       
 15184 QString qt_winMB2QString( const char* mb, int mblen )
       
 15185 {
       
 15186     if ( !mb || !mblen )
       
 15187 	return QString::null;
       
 15188     const int wclen_auto = 4096;
       
 15189     WCHAR wc_auto[wclen_auto];
       
 15190     int wclen = wclen_auto;
       
 15191     WCHAR *wc = wc_auto;
       
 15192     int len;
       
 15193     while ( !(len=MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED,
       
 15194 		mb, mblen, wc, wclen )) )
       
 15195     {
       
 15196 	int r = GetLastError();
       
 15197 	if ( r == ERROR_INSUFFICIENT_BUFFER ) {
       
 15198 	    if ( wc != wc_auto ) {
       
 15199 		qWarning("Size changed in MultiByteToWideChar");
       
 15200 		break;
       
 15201 	    } else {
       
 15202 		wclen = MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED,
       
 15203 				    mb, mblen, 0, 0 );
       
 15204 		wc = new WCHAR[wclen];
       
 15205 		// and try again...
       
 15206 	    }
       
 15207 	} else {
       
 15208 	    // Fail.
       
 15209 	    qWarning("MultiByteToWideChar cannot convert multibyte text");
       
 15210 	    break;
       
 15211 	}
       
 15212     }
       
 15213     if ( len <= 0 )
       
 15214 	return QString::null;
       
 15215     QString s( (QChar*)wc, len-1 ); // len-1: we don't want terminator
       
 15216     if ( wc != wc_auto )
       
 15217 	delete [] wc;
       
 15218     return s;
       
 15219 }
       
 15220 
       
 15221 
       
 15222 #endif // _OS_WIN32_