Nuked almost all trailing whitespace. post-nuke-of-trailing-ws
authorWerner Koch <wk@gnupg.org>
Fri, 4 Feb 2011 19:21:45 +0000 (20:21 +0100)
committerWerner Koch <wk@gnupg.org>
Fri, 4 Feb 2011 19:21:45 +0000 (20:21 +0100)
Check and install the standard git pre-commit hook.

136 files changed:
AUTHORS
ChangeLog
Makefile.am
NEWS
README
autogen.sh
cipher/Makefile.am
cipher/ac.c
cipher/arcfour.c
cipher/blowfish.c
cipher/camellia-glue.c
cipher/camellia.c
cipher/camellia.h
cipher/cast5.c
cipher/cipher.c
cipher/des.c
cipher/dsa.c
cipher/elgamal.c
cipher/hash-common.c
cipher/hash-common.h
cipher/hmac-tests.c
cipher/md.c
cipher/md4.c
cipher/md5.c
cipher/primegen.c
cipher/rfc2268.c
cipher/rijndael-tables.h
cipher/rijndael.c
cipher/rmd.h
cipher/rmd160.c
cipher/rsa.c
cipher/seed.c
cipher/serpent.c
cipher/sha1.c
cipher/sha256.c
cipher/sha512.c
cipher/test-getrusage.c
cipher/tiger.c
cipher/twofish.c
cipher/whirlpool.c
compat/Makefile.am
compat/clock.c
compat/compat.c
compat/getpid.c
doc/ChangeLog
doc/HACKING
doc/Makefile.am
doc/gcrypt.texi
doc/gpl.texi
m4/ChangeLog
mpi/ChangeLog
mpi/Makefile.am
mpi/config.links
mpi/ec.c
mpi/mpi-add.c
mpi/mpi-bit.c
mpi/mpi-div.c
mpi/mpi-gcd.c
mpi/mpi-inline.c
mpi/mpi-internal.h
mpi/mpi-mod.c
mpi/mpi-mpow.c
mpi/mpi-mul.c
mpi/mpi-pow.c
mpi/mpi-scan.c
mpi/mpicoder.c
mpi/mpih-div.c
mpi/mpih-mul.c
mpi/mpiutil.c
random/ChangeLog
random/Makefile.am
random/rand-internal.h
random/random-csprng.c
random/random-daemon.c
random/random-fips.c
random/random.c
random/random.h
random/rndegd.c
random/rndhw.c
random/rndlinux.c
random/rndunix.c
random/rndw32.c
random/rndw32ce.c
src/ChangeLog
src/Makefile.am
src/ath.c
src/ath.h
src/cipher-proto.h
src/cipher.h
src/dumpsexp.c
src/fips.c
src/g10lib.h
src/gcrypt-module.h
src/gcrypt.h.in
src/gcryptrnd.c
src/getrandom.c
src/global.c
src/hmac256.c
src/hwfeatures.c
src/libgcrypt.def
src/libgcrypt.m4
src/libgcrypt.vers
src/misc.c
src/missing-string.c
src/module.c
src/mpi.h
src/secmem.c
src/sexp.c
src/stdmem.c
src/versioninfo.rc.in
src/visibility.c
src/visibility.h
tests/ChangeLog
tests/ac-data.c
tests/ac-schemes.c
tests/ac.c
tests/aeswrap.c
tests/basic.c
tests/benchmark.c
tests/cavs_driver.pl
tests/cavs_tests.sh
tests/fips186-dsa.c
tests/fipsdrv.c
tests/fipsrngdrv.c
tests/keygen.c
tests/keygrip.c
tests/mpitests.c
tests/pkbench.c
tests/prime.c
tests/pubkey.c
tests/random.c
tests/register.c
tests/rsacvt.c
tests/t-mpi-bit.c
tests/tsexp.c
tests/version.c

diff --git a/AUTHORS b/AUTHORS
index 571dcb1..3ef6558 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -81,7 +81,7 @@ Assigns Past and Future Changes
 perky@freebsd.org
 (SEED cipher)
 
-LIBGCRYPT       Werner Dittmann  2009-05-20  
+LIBGCRYPT       Werner Dittmann  2009-05-20
 Assigns Past and Future Changes
 werner.dittmann@t-online.de
 (mpi/amd64, tests/mpitests.c)
@@ -132,5 +132,3 @@ security corporation.  See the file for details.
  This file is distributed in the hope that it will be useful, but
  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-
index dc19f23..03461e4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2011-02-04  Werner Koch  <wk@g10code.com>
+
+       * autogen.sh: Install the git pre-commit if not yet done.
+
 2010-12-23  Werner Koch  <wk@g10code.com>
 
        * configure.ac (BUILD_REVISION): Use git_revision.
 2008-08-19  Werner Koch  <wk@g10code.com>
 
        Release 1.4.2rc1.
-       
+
        * configure.ac: Bump LT version to C16/A5/R0.
 
 2008-08-18  Werner Koch  <wk@g10code.com>
 2008-04-25  Werner Koch  <wk@g10code.com>
 
        Release 1.4.1.
-       
+
        * configure.ac: Bump LT version to C15/A4/R4.
 
 2008-04-22  Werner Koch  <wk@g10code.com>
 2007-12-10  Werner Koch  <wk@g10code.com>
 
        Released 1.4.0.
-       
+
        * configure.ac: Set LT to C15/A4/R3.
 
 2007-12-05  Werner Koch  <wk@g10code.com>
        in the test program which lurked there for 4 years.  Adjusted name
        of libtools global_system_pipe variable and add extra cut stage.
        Reported by Gregor Riepl.
-       
+
 2007-06-15  Werner Koch  <wk@g10code.com>
 
        * autogen.sh (FORCE): Use = and not == in test to be POSIXly correct.
        Released 1.3.0.
 
        * configure.ac: Set LT to C15/A4/R0.
-       
+
        * configure.ac: Require automake 1.10
        (AM_PROG_CC_C_O): New.
 
 
 2007-05-02  Werner Koch  <wk@g10code.com>
 
-       * configure.ac (LIBGCRYPT_DIGESTS, LIBGCRYPT_CIPHERS) 
+       * configure.ac (LIBGCRYPT_DIGESTS, LIBGCRYPT_CIPHERS)
        (LIBGCRYPT_PUBKEY_CIPHERS): Ac_define lists of algorithms.
        (default_ciphers): Don't make camellia a default.
 
 
        * configure.ac: Bump LT version to C14/A3/R0 in preparation for a
        release.
-       
+
        * autogen.sh: Add option --force.
        * configure.ac: New option --disable-endian-check.  Use a real
        noexecstack test instead of requiring an option.  Add SVN version
 2006-07-26  Werner Koch  <wk@g10code.com>
 
        * configure.ac: New options --enable-noexecstack and
-       --disable-optimization. 
+       --disable-optimization.
 
 2006-07-04  Marcus Brinkmann  <marcus@g10code.de>
 
        * configure.ac: Move detection of basic stuff to the top.  For
        example we need to know whether gcc is used before testing for it.
        Reported by Ralf Fassel.
-       
+
 2005-04-23  Moritz Schulte  <moritz@g10code.com>
 
        * acinclude.m4 (TYPE_SOCKLEN_T): New type definition test;
 2005-01-04  Werner Koch  <wk@g10code.com>
 
        Updated to automake 1.9.
-       
-       * acinclude.m4: Updated for use with automake 1.9. 
+
+       * acinclude.m4: Updated for use with automake 1.9.
 
        * configure.ac: Require libgpg-error 1.0; not really needed but
        that is the first stable version.
 2004-04-15  Werner Koch  <wk@gnupg.org>
 
        Released 1.2.0.
-       
+
        * configure.ac: Set LT to C12/A1/R1.
 
 2004-04-06  Werner Koch  <wk@gnupg.org>
 
        Released 1.1.93.
 
-       * configure.ac (LIBGCRYPT_CONFIG_SONAME_NUMBER): Replaced by 
+       * configure.ac (LIBGCRYPT_CONFIG_SONAME_NUMBER): Replaced by
        LIBGCRYPT_CONPIG_API_VERSION.  Set it to 1.  Set LT to C11/A0/R1.
 
 2004-03-05  Werner Koch  <wk@gnupg.org>
 2004-02-20  Werner Koch  <wk@gnupg.org>
 
         Released 1.1.92.
-       
+
        * configure.ac: Set LT to C11/A0/R0.
 
 2004-02-11  Werner Koch  <wk@gnupg.org>
 2003-12-19  Werner Koch  <wk@gnupg.org>
 
        Released 1.1.91.
-       
+
        * configure.ac: Bumbed LT version to C10/A3/R1.
 
 2003-12-08  Werner Koch  <wk@gnupg.org>
 2003-11-14  Werner Koch  <wk@gnupg.org>
 
        Released 1.1.90.
-       
+
        * configure.ac: Bumbed LT version to C10/A3/R0.
-       
+
        * configure.ac (have_ld_version_script): Set the default in
        a separate test.
        (PRINTABLE_OS_NAME): Don't handle the Hurd extra, this leads to
        development
 
        Released 1.1.44.
-       
+
        * acinclude.m4 (AC_CHECK_PTH): Added.
        * configure.ac: Use it here instead of the generic lib test.
        Bumbed LT vesion to C9/A2/R0.
 2003-07-31  Werner Koch  <wk@gnupg.org>
 
        Released 1.1.42.
-       
+
        * configure.ac: Set LT version to 7/0/0.
 
 2003-07-30  Werner Koch  <wk@gnupg.org>
 2003-07-05  Moritz Schulte  <moritz@g10code.com>
 
        * README: Few changes, mention libgpg-error.
-       
+
 2003-06-18  Moritz Schulte  <moritz@g10code.com>
 
        * configure.ac (available_ciphers): Removed Serpent, hrrm.
        GNUPG_SYS_SYMBOL_UNDERSCORE, GNUPG_FUNC_MKDIR_TAKES_ONE_ARG,
        GPH_PROG_DB2ANY.
        Added macro definitions: AM_PATH_GPG_ERROR.
-       
+
        * configure.ac: Use alternative approach for building based on
        conditional sources, which does not make automake eat all your
        memory, etc.
        * configure.ac: Removed code for generating contruct.c.
        Remove digest modules from the static_modules list, only handle
        random module selection.
-       
+
 
 2003-03-24  Moritz Schulte  <moritz@g10code.com>
 
 
 2003-01-21  Werner Koch  <wk@gnupg.org>
 
-       * README (Configure options): New. 
+       * README (Configure options): New.
        * configure.ac (have_ld_version_script): New option
        --enable-ld-version-script.
 
 2003-01-20  Werner Koch  <wk@gnupg.org>
 
        Released 1.1.12.
-       
+
        * configure.ac (LIBGCRYPT_LT_REVISION): Bumbed up.
 
 2002-12-21  Werner Koch  <wk@gnupg.org>
 
        Released 1.1.11.
-       
+
        * configure.ac (LIBGCRYPT_LT_CURRENT: Bumbed to 6/5/0 due to a new
        interface
 
 2002-09-18  Timo Schulz  <ts@winpt.org>
 
        * configure.ac: Added makefile for the W32 DLL.
-       
+
 2002-09-17  Werner Koch  <wk@gnupg.org>
 
        * configure.ac: Check for Pth and Pthreads.
 2002-08-23  Werner Koch  <wk@gnupg.org>
 
        Released 1.1.9.
-       
+
        * configure.ac (LIBGCRYPT_CONFIG_CFLAGS): Renamed from
        LIBGCRYPT_CFLAGS and removed the libpath because it is set by the
        config script.
 2002-06-25  Werner Koch  <wk@gnupg.org>
 
        Released 1.1.8.
-       
-       * configure.ac: Set LT version to 5/4/0. 
+
+       * configure.ac: Set LT version to 5/4/0.
 
 2002-05-21  Werner Koch  <wk@gnupg.org>
 
        Released 1.1.7.
-       
+
        * configure.ac: Set LT version to 4/3/0.
 
 2002-05-17  Werner Koch  <wk@gnupg.org>
        * configure.ac (jnlib/Makefile): Removed.
 
        * configure.ac: Define _REENTRANT.
-       
+
 2002-02-18  Werner Koch  <wk@gnupg.org>
 
        * configure.ac (MPI_EXTRA_ASM_OBJS): Use .lo suffix.
 
 2002-02-07  Werner Koch  <wk@gnupg.org>
 
-       Released 1.1.6. 
+       Released 1.1.6.
 
 2002-01-24  Werner Koch  <wk@gnupg.org>
 
        Released 1.1.4.
 
        * acinclude.m4 (GNUPG_CHECK_TYPEDEF): Define GNU Source.
-       
+
         Migrated to autoconf 2.52.
        * acinclude.m4: Removed GNUPG_LINK_FILES and converted.
        * acconfig.h: Removed
 
        * tests/: New.
        * Makefile.am: Included tests directory
-       
+
        * configure.in (DYNLINK_MOD_CFLAGS): Use -shared with dec-osf.
        Reported by Chris Adams.  Merged some cases.
 
@@ -1414,7 +1418,7 @@ Fri Feb 13 19:43:41 1998  Werner Koch  (wk@isil.d.shuttle.de)
        * configure.in : Fixed zlib stuff
        * Makefile.am: Likewise
 
-       
+
  Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006,
           2007, 2008, 2009 Free Software Foundation, Inc.
 
@@ -1425,4 +1429,3 @@ Fri Feb 13 19:43:41 1998  Werner Koch  (wk@isil.d.shuttle.de)
  This file is distributed in the hope that it will be useful, but
  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-               
index 2e0224c..fbb5744 100644 (file)
@@ -25,12 +25,12 @@ DISTCHECK_CONFIGURE_FLAGS = --enable-random-daemon \
 DIST_SUBDIRS = m4 compat mpi cipher random src doc tests
 SUBDIRS =         compat mpi cipher random src doc tests
 EXTRA_DIST = autogen.sh README.SVN
-DISTCLEANFILES = 
+DISTCLEANFILES =
 
 
 # Add all the files listed in "distfiles" files to the distribution,
 # apply version number s to some files and create a VERSION file which
-# we need for the Prereq: patch file trick. 
+# we need for the Prereq: patch file trick.
 dist-hook:
        @set -e; \
         for file in `cd $(top_srcdir); \
@@ -44,10 +44,5 @@ dist-hook:
        @set -e; \
        echo "$(VERSION)" > $(distdir)/VERSION
 
-stowinstall: 
+stowinstall:
        $(MAKE) $(AM_MAKEFLAGS) install prefix=/usr/local/stow/libgcrypt
-
-
-
-
-
diff --git a/NEWS b/NEWS
index 374c31e..7dbb54a 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,7 +1,7 @@
 Noteworthy changes in version 1.5.x (unreleased)
 ------------------------------------------------
 
- * New variants of the TIGER algorithm.        
+ * New variants of the TIGER algorithm.
 
  * New cipher algorithm mode for AES-WRAP.
 
@@ -16,7 +16,7 @@ Noteworthy changes in version 1.5.x (unreleased)
  * Boosted SHA-512 performance by 30% on ia32 boxes and gcc 4.3;
    SHA-256 went up by 25%.
 
- * Support for WindowsCE. 
+ * Support for WindowsCE.
 
  * Support ECDH.
 
@@ -41,7 +41,7 @@ Noteworthy changes in version 1.4.4 (2009-01-22)
 ------------------------------------------------
 
  * Publish GCRY_MODULE_ID_USER and GCRY_MODULE_ID_USER_LAST constants.
-   This functionality has been in Libgcrypt since 1.3.0. 
+   This functionality has been in Libgcrypt since 1.3.0.
 
  * MD5 may now be used in non-enforced fips mode.
 
@@ -223,7 +223,7 @@ Noteworthy changes in version 1.3.0 (2007-05-04)
  GCRY_CIPHER_CAMELLIA128 NEW
  GCRY_CIPHER_CAMELLIA192 NEW
  GCRY_CIPHER_CAMELLIA256 NEW
- GCRYCTL_FAKED_RANDOM_P  NEW 
+ GCRYCTL_FAKED_RANDOM_P  NEW
  GCRYCTL_PRINT_CONFIG    NEW
  GCRYCTL_SET_RNDEGD_SOCKET  NEW.
  gcry_mpi_scan           CHANGED: Argument BUFFER is now void*.
@@ -317,7 +317,7 @@ Noteworthy changes in version 1.1.90 (2003-11-14)
  * gcry_sexp_build now supports a "%b" format to include a memory buffer.
 
  * Minor configuration fixes.
+
  * Interface changes relative to the 1.1.44 release:
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 gcry_create_nonce               NEW
@@ -360,7 +360,7 @@ Noteworthy changes in version 1.1.42 (2003-07-31)
    However, this is only for ease of transition.  NO DEPRECATED
    FUNCTION OR DATA TYPE IS CONSIDERED A PART OF THE API OR ABI AND
    WILL BE DROPPED IN THE FUTURE WITHOUT CHANGING THE SONAME OF THE
-   LIBRARY. 
+   LIBRARY.
 
  * If gcrypt.h is included in sources compiled by GCC 3.1 or later,
    deprecated attributes will warn about use of obsolete functions and
@@ -384,7 +384,7 @@ Noteworthy changes in version 1.1.42 (2003-07-31)
    gcry_err_make_from_errno, gcry_err_code_from_errno,
    gcry_err_code_to_errno, gcry_strsource.
 
- * New function gcry_mpi_dump to help in debugging. 
+ * New function gcry_mpi_dump to help in debugging.
 
  * Added alternative interface for asymmetric cryptography.
 
@@ -403,7 +403,7 @@ Noteworthy changes in version 1.1.42 (2003-07-31)
 
  * CTR mode for block ciphers is now supported.
 
- * The public RSA exponent can now be specified in key generation. 
+ * The public RSA exponent can now be specified in key generation.
 
  * RSA blinding is now supported and is used automatically for RSA
    decryption.  It can be explicitely disabled by using the
@@ -569,8 +569,8 @@ Noteworthy changes in version 1.1.7 (2002-05-21)
 ------------------------------------------------
 
 * Libgcrypt is now distributed under the terms of the GNU Lesser
-  General Public License; see the README file for details.    
-  
+  General Public License; see the README file for details.
+
 * It is possible to use libgcrypt w/o intialized secure memory.
 
 * Libgcrypt should now be thread safe after the initialization.
@@ -594,7 +594,7 @@ Noteworthy changes in version 1.1.6 (2002-02-07)
 ------------------------------------------------
 
   * Enhanced the S-expression conversion functions.
-        
+
 Noteworthy changes in version 1.1.5 (2001-12-18)
 ------------------------------------------------
 
@@ -608,7 +608,7 @@ Noteworthy changes in version 1.1.5 (2001-12-18)
 Noteworthy changes in version 1.1.4 (2001-08-03)
 ------------------------------------------------
 
-  * Arcfour does now work.                   
+  * Arcfour does now work.
 
   * Some minor fixes.
 
diff --git a/README b/README
index fc534b0..514464a 100644 (file)
--- a/README
+++ b/README
@@ -1,7 +1,7 @@
                    Libgcrypt - The GNU Crypto Library
                   ------------------------------------
                             Version 1.5.x
+
       WARNING: THIS VERSION OF LIBGCRYPT IS UNDER DEVELOPMENT.
                THE STABLE VERSION IS THE 1.4.
 
@@ -34,7 +34,7 @@
     The download canonical location for libgcrypt is:
 
       ftp://ftp.gnupg.org/gcrypt/libgcrypt/
-     
+
     To build libgcrypt you need libgpg-error:
 
       ftp://ftp.gnupg.org/gcrypt/libgpg-error/
@@ -62,7 +62,7 @@
       ./autogen.sh --build-w32
       make
       make install
-      
+
     By default this command sequences expectsd a libgpg-error
     installed below $HOME/w32root and installs libgcrypt to that
     directory too.  See the autogen.sh code for details.
@@ -73,7 +73,7 @@
       cd doc
       make pdf
 
-      
+
 
     Mailing List
     ------------
@@ -84,9 +84,9 @@
     list is available at http://lists.gnupg.org .
 
 
-    Configure options 
+    Configure options
     -----------------
-    Here is a list of configure options which are sometimes useful 
+    Here is a list of configure options which are sometimes useful
     for installation.
 
      --enable-m-guard
@@ -96,9 +96,9 @@
                      you a bus error.
 
      --disable-asm
-                     Do not use assembler modules.  It is not possible 
+                     Do not use assembler modules.  It is not possible
                      to use this on some CPU types.
-                    
+
      --enable-ld-version-script
                      Libgcrypt tries to build a library where internal
                      symbols are not exported.  This requires support
                      option to disable the use of version scripts.
                      Note, that you should never ever use an
                      undocumented symbol or one which is prefixed with
-                     an underscore. 
+                     an underscore.
 
      --enable-ciphers=list
      --enable-pubkey-ciphers=list
                      Take care: The generated library may crash on
                      non-compatible CPUs.
 
-     --enable-random=NAME 
+     --enable-random=NAME
                      Force the use of the random gathering module
                     NAME.  Default is either to use /dev/random or
                     the auto mode.  Possible values for NAME are:
                     linux - Use the module which accesses /dev/random.
                             This is the first choice and the default one
                             for GNU/Linux or *BSD.
-                      auto - Compile linux, egd and unix in and 
+                      auto - Compile linux, egd and unix in and
                              automagically select at runtime.
-  
+
      --enable-hmac-binary-check
                      Include support to check the binary at runtime
                      against a HMAC checksum.  This works only in FIPS
                      the feature under the assumption that either good
                      CFLAGS are given or the compiler can grok the code.
 
-                      
+
 
 
     Build Problems
             CFLAGS="-O -K pentium" ./configure --disable-asm
 
       * SunOS 4.1.4
-      
+
          ./configure ac_cv_sys_symbol_underscore=yes
 
       * Sparc64 CPUs
 
     License
     -------
-    
+
     The library is distributed under the terms of the GNU Lesser
     General Public License (LGPL); see the file COPYING.LIB for the
     actual terms.  The helper programs (e.g. gcryptrnd and getrandom)
   distributed in the hope that it will be useful, but WITHOUT ANY
   WARRANTY, to the extent permitted by law; without even the implied
   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
index b31f144..d9a6586 100755 (executable)
@@ -1,5 +1,5 @@
 #! /bin/sh
-# Run this to generate all the initial makefiles, etc. 
+# Run this to generate all the initial makefiles, etc.
 #
 # Copyright (C) 2003 g10 Code GmbH
 #
@@ -43,7 +43,7 @@ w32ce_toolprefixes=
 w32ce_extraoptions=
 amd64_toolprefixes=
 # End list of optional variables sourced from ~/.gnupg-autogen.rc
-# What follows are variables which are sourced but default to 
+# What follows are variables which are sourced but default to
 # environment variables or lacking them hardcoded values.
 #w32root=
 #w32ce_root=
@@ -55,7 +55,7 @@ if [ -f "$HOME/.gnupg-autogen.rc" ]; then
 fi
 
 # Convenience option to use certain configure options for some hosts.
-myhost="" 
+myhost=""
 myhostsub=""
 case "$1" in
     --build-w32)
@@ -101,7 +101,7 @@ if [ "$myhost" = "w32" ]; then
           ;;
     esac
     echo "Using $w32root as standard install directory" >&2
-    
+
     # Locate the cross compiler
     crossbindir=
     for host in $toolprefixes; do
@@ -113,14 +113,14 @@ if [ "$myhost" = "w32" ]; then
     done
     if [ -z "$crossbindir" ]; then
         echo "Cross compiler kit not installed" >&2
-        if [ -z "$sub" ]; then 
+        if [ -z "$sub" ]; then
           echo "Under Debian GNU/Linux, you may install it using" >&2
-          echo "  apt-get install mingw32 mingw32-runtime mingw32-binutils" >&2 
+          echo "  apt-get install mingw32 mingw32-runtime mingw32-binutils" >&2
         fi
         echo "Stop." >&2
         exit 1
     fi
-   
+
     if [ -f "$tsdir/config.log" ]; then
         if ! head $tsdir/config.log | grep "$host" >/dev/null; then
             echo "Pease run a 'make distclean' first" >&2
@@ -150,7 +150,7 @@ if [ "$myhost" = "amd64" ]; then
 
     [ -z "$amd64root" ] && amd64root="$HOME/amd64root"
     echo "Using $amd64root as standard install directory" >&2
-    
+
     # Locate the cross compiler
     crossbindir=
     for host in x86_64-linux-gnu amd64-linux-gnu; do
@@ -165,7 +165,7 @@ if [ "$myhost" = "amd64" ]; then
         echo "Stop." >&2
         exit 1
     fi
-   
+
     if [ -f "$tsdir/config.log" ]; then
         if ! head $tsdir/config.log | grep "$host" >/dev/null; then
             echo "Please run a 'make distclean' first" >&2
@@ -175,27 +175,27 @@ if [ "$myhost" = "amd64" ]; then
 
     $tsdir/configure --enable-maintainer-mode --prefix=${amd64root}  \
              --host=${host} --build=${build} \
-             --with-gpg-error-prefix=${amd64root} 
+             --with-gpg-error-prefix=${amd64root}
+
     rc=$?
     exit $rc
 fi
 # ***** end AMD64 cross build script *******
 
 # Grep the required versions from configure.ac
-autoconf_vers=`sed -n '/^AC_PREREQ(/ { 
+autoconf_vers=`sed -n '/^AC_PREREQ(/ {
 s/^.*(\(.*\))/\1/p
 q
 }' ${configure_ac}`
 autoconf_vers_num=`echo "$autoconf_vers" | cvtver`
 
-automake_vers=`sed -n '/^min_automake_version=/ { 
+automake_vers=`sed -n '/^min_automake_version=/ {
 s/^.*="\(.*\)"/\1/p
 q
 }' ${configure_ac}`
 automake_vers_num=`echo "$automake_vers" | cvtver`
 
-#gettext_vers=`sed -n '/^AM_GNU_GETTEXT_VERSION(/ { 
+#gettext_vers=`sed -n '/^AM_GNU_GETTEXT_VERSION(/ {
 #s/^.*(\(.*\))/\1/p
 #q
 #}' ${configure_ac}`
@@ -232,13 +232,29 @@ fi
 if test "$DIE" = "yes"; then
     cat <<EOF
 
-Note that you may use alternative versions of the tools by setting 
+Note that you may use alternative versions of the tools by setting
 the corresponding environment variables; see README.SVN for details.
-                   
+
 EOF
     exit 1
 fi
 
+# Check the git setup.
+if [ -d .git ]; then
+  if [ -f .git/hooks/pre-commit.sample -a ! -f .git/hooks/pre-commit ] ; then
+    cat <<EOF >&2
+*** Activating trailing whitespace git pre-commit hook. ***
+    For more information see this thread:
+      http://mail.gnome.org/archives/desktop-devel-list/2009-May/msg00084html
+    To deactivate this pre-commit hook again move .git/hooks/pre-commit
+    and .git/hooks/pre-commit.sample out of the way.
+EOF
+      cp -av .git/hooks/pre-commit.sample .git/hooks/pre-commit
+      chmod -c +x  .git/hooks/pre-commit
+  fi
+fi
+
+
 echo "Running aclocal -I m4 ${ACLOCAL_FLAGS:+$ACLOCAL_FLAGS }..."
 $ACLOCAL -I m4 $ACLOCAL_FLAGS
 echo "Running autoheader..."
@@ -248,6 +264,6 @@ $AUTOMAKE --gnu;
 echo "Running autoconf${FORCE} ..."
 $AUTOCONF${FORCE}
 
-echo "You may now run: 
+echo "You may now run:
   ./configure --enable-maintainer-mode && make
 "
index 4470433..cdc6dfc 100644 (file)
@@ -23,7 +23,7 @@ EXTRA_DIST = Manifest
 
 # Need to include ../src in addition to top_srcdir because gcrypt.h is
 # a built header.
-AM_CPPFLAGS = -I../src -I$(top_srcdir)/src 
+AM_CPPFLAGS = -I../src -I$(top_srcdir)/src
 AM_CFLAGS = $(GPG_ERROR_CFLAGS)
 
 
index 14569cc..f5e946a 100644 (file)
@@ -1,19 +1,19 @@
 /* ac.c - Alternative interface for asymmetric cryptography.
    Copyright (C) 2003, 2004, 2005, 2006
                  2007, 2008  Free Software Foundation, Inc.
+
    This file is part of Libgcrypt.
-  
+
    Libgcrypt is free software; you can redistribute it and/or modify
    it under the terms of the GNU Lesser general Public License as
    published by the Free Software Foundation; either version 2.1 of
    the License, or (at your option) any later version.
-  
+
    Libgcrypt is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU Lesser General Public License for more details.
-  
+
    You should have received a copy of the GNU Lesser General Public
    License along with this program; if not, see <http://www.gnu.org/licenses/>.
  */
@@ -115,7 +115,7 @@ struct gcry_ac_key_pair
 
 \f
 
-/* 
+/*
  * Functions for working with data sets.
  */
 
@@ -151,7 +151,7 @@ static void
 ac_data_values_destroy (gcry_ac_data_t data)
 {
   unsigned int i;
-  
+
   for (i = 0; i < data->data_n; i++)
     if (data->data[i].flags & GCRY_AC_FLAG_DEALLOC)
       {
@@ -256,7 +256,7 @@ _gcry_ac_data_copy (gcry_ac_data_t *data_cp, gcry_ac_data_t data)
   err = ac_data_mpi_copy (data->data, data->data_n, &data_mpis);
   if (err)
     goto out;
-  
+
   data_new->data_n = data->data_n;
   data_new->data = data_mpis;
   *data_cp = data_new;
@@ -524,13 +524,13 @@ _gcry_ac_data_to_sexp (gcry_ac_data_t data, gcry_sexp_t *sexp,
        i++;
       }
   identifiers_n = i;
-  
+
   if (! identifiers_n)
     /* If there are NO identifiers, we still add surrounding braces so
        that we have a list of named MPI value lists.  Otherwise it
        wouldn't be too much fun to process these lists.  */
     sexp_buffer_n += 2;
-  
+
   data_n = _gcry_ac_data_length (data);
   for (i = 0; i < data_n; i++)
     {
@@ -666,7 +666,7 @@ _gcry_ac_data_from_sexp (gcry_ac_data_t *data_set, gcry_sexp_t sexp,
 
          /* Identifier matches.  Now we have to distinguish two
             cases:
-            
+
             (i)  we are at the last identifier:
             leave loop
 
@@ -725,7 +725,7 @@ _gcry_ac_data_from_sexp (gcry_ac_data_t *data_set, gcry_sexp_t sexp,
     skip_name = 0;
 
   /* Create data set from S-expression data.  */
-  
+
   err = gcry_ac_data_new (&data_set_new);
   if (err)
     goto out;
@@ -793,7 +793,7 @@ _gcry_ac_data_from_sexp (gcry_ac_data_t *data_set, gcry_sexp_t sexp,
   gcry_sexp_release (sexp_tmp);
   gcry_mpi_release (mpi);
   gcry_free (string);
-  
+
   if (err)
     gcry_ac_data_destroy (data_set_new);
 
@@ -1005,7 +1005,7 @@ _gcry_ac_io_read (gcry_ac_io_t *ac_io,
                  unsigned int nread, unsigned char *buffer, size_t *buffer_n)
 {
   gcry_error_t err;
-  
+
   gcry_assert (ac_io->mode == GCRY_AC_IO_READABLE);
   err = 0;
 
@@ -1072,7 +1072,7 @@ _gcry_ac_io_read_all (gcry_ac_io_t *ac_io, unsigned char **buffer, size_t *buffe
              err = gcry_error_from_errno (errno);
              break;
            }
-         
+
          if (buffer_new != p)
            buffer_new = p;
 
@@ -1132,7 +1132,7 @@ _gcry_ac_io_process (gcry_ac_io_t *ac_io,
 
 \f
 
-/* 
+/*
  * Functions for converting data between the native ac and the
  * S-expression structure used by the pk interface.
  */
@@ -1403,7 +1403,7 @@ _gcry_ac_open (gcry_ac_handle_t *handle,
   err = _gcry_pk_module_lookup (algorithm, &module);
   if (err)
     goto out;
-  
+
   /* Allocate.  */
   handle_new = gcry_malloc (sizeof (*handle_new));
   if (! handle_new)
@@ -1420,7 +1420,7 @@ _gcry_ac_open (gcry_ac_handle_t *handle,
   *handle = handle_new;
 
  out:
-  
+
   /* Deallocate resources.  */
   if (err)
     _gcry_pk_module_release (module);
@@ -1443,7 +1443,7 @@ _gcry_ac_close (gcry_ac_handle_t handle)
 
 
 \f
-/* 
+/*
  * Key management.
  */
 
@@ -1662,7 +1662,7 @@ _gcry_ac_key_pair_generate (gcry_ac_handle_t handle, unsigned int nbits,
  out:
 
   /* Deallocate resources.  */
-  
+
   gcry_free (genkey_format);
   gcry_free (arg_list);
   gcry_sexp_release (genkey_sexp_request);
@@ -1682,7 +1682,7 @@ _gcry_ac_key_pair_generate (gcry_ac_handle_t handle, unsigned int nbits,
 
 /* Returns the key of type WHICH out of the key pair KEY_PAIR.  */
 gcry_ac_key_t
-_gcry_ac_key_pair_extract (gcry_ac_key_pair_t key_pair, 
+_gcry_ac_key_pair_extract (gcry_ac_key_pair_t key_pair,
                            gcry_ac_key_type_t which)
 {
   gcry_ac_key_t key;
@@ -1851,7 +1851,7 @@ _gcry_ac_key_get_grip (gcry_ac_handle_t handle,
 
 \f
 
-/* 
+/*
  * Functions performing cryptographic operations.
  */
 
@@ -2176,7 +2176,7 @@ em_randomize_nonzero (unsigned char *buffer, size_t buffer_n,
 
   for (i = 0; i < buffer_n; i++)
     buffer[i] = 0;
-  
+
   do
     {
       /* Count zeros.  */
@@ -2384,7 +2384,7 @@ emsa_pkcs_v1_5_encode (unsigned int flags, void *opts,
   unsigned int i;
 
   (void)flags;
-  
+
   options = opts;
   buffer = NULL;
   md = NULL;
@@ -2656,7 +2656,7 @@ _gcry_ac_mpi_to_os_alloc (gcry_mpi_t mpi, unsigned char **os, size_t *os_n)
       err = gcry_error_from_errno (errno);
       goto out;
     }
-      
+
   _gcry_ac_mpi_to_os (mpi, buffer, buffer_n);
   *os = buffer;
   *os_n = buffer_n;
@@ -2676,7 +2676,7 @@ _gcry_ac_os_to_mpi (gcry_mpi_t mpi, unsigned char *os, size_t os_n)
   gcry_mpi_t xi;
   gcry_mpi_t x;
   gcry_mpi_t a;
-  
+
   if (fips_mode ())
     return;
 
@@ -2692,7 +2692,7 @@ _gcry_ac_os_to_mpi (gcry_mpi_t mpi, unsigned char *os, size_t os_n)
       gcry_mpi_add (x, x, xi);
       gcry_mpi_mul_ui (a, a, 256);
     }
-      
+
   gcry_mpi_release (xi);
   gcry_mpi_release (a);
 
@@ -2702,7 +2702,7 @@ _gcry_ac_os_to_mpi (gcry_mpi_t mpi, unsigned char *os, size_t os_n)
 
 
 \f
-/* 
+/*
  * Implementation of Encryption Schemes (ES) and Signature Schemes
  * with Appendix (SSA).
  */
@@ -2824,7 +2824,7 @@ ac_dencode_prepare (gcry_ac_handle_t handle, gcry_ac_key_t key, void *opts,
       err = gcry_error_from_errno (errno);
       goto out;
     }
-  
+
   err = (*scheme.dencode_prepare) (handle, key, opts, options_em);
   if (err)
     goto out;
@@ -3065,7 +3065,7 @@ _gcry_ac_data_decrypt_scheme (gcry_ac_handle_t handle,
     goto out;
 
  out:
-  
+
   _gcry_ac_data_destroy (data_encrypted);
   gcry_mpi_release (mpi_encrypted);
   gcry_mpi_release (mpi_decrypted);
@@ -3270,7 +3270,7 @@ _gcry_ac_data_verify_scheme (gcry_ac_handle_t handle,
 
   gcry_mpi_release (mpi_signature);
   mpi_signature = NULL;
-  
+
   err = _gcry_ac_data_verify (handle, key, mpi_data, data_signed);
 
  out:
@@ -3287,7 +3287,7 @@ _gcry_ac_data_verify_scheme (gcry_ac_handle_t handle,
 }
 
 
-/* 
+/*
  * General functions.
  */
 
index 6bb0555..6ef07fb 100644 (file)
@@ -45,7 +45,7 @@ do_encrypt_stream( ARCFOUR_context *ctx,
   register int i = ctx->idx_i;
   register int j = ctx->idx_j;
   register byte *sbox = ctx->sbox;
-  register int t;  
+  register int t;
 
   while ( length-- )
     {
@@ -56,7 +56,7 @@ do_encrypt_stream( ARCFOUR_context *ctx,
       t = sbox[i]; sbox[i] = sbox[j]; sbox[j] = t;
       *outbuf++ = *inbuf++ ^ sbox[(sbox[i] + sbox[j]) & 255];
     }
-  
+
   ctx->idx_i = i;
   ctx->idx_j = j;
 }
@@ -80,7 +80,7 @@ do_arcfour_setkey (void *context, const byte *key, unsigned int keylen)
   byte karr[256];
   ARCFOUR_context *ctx = (ARCFOUR_context *) context;
 
-  if (!initialized ) 
+  if (!initialized )
     {
       initialized = 1;
       selftest_failed = selftest();
@@ -98,14 +98,14 @@ do_arcfour_setkey (void *context, const byte *key, unsigned int keylen)
     ctx->sbox[i] = i;
   for (i=0; i < 256; i++ )
     karr[i] = key[i%keylen];
-  for (i=j=0; i < 256; i++ ) 
+  for (i=j=0; i < 256; i++ )
     {
       int t;
       j = (j + ctx->sbox[i] + karr[i]) % 256;
       t = ctx->sbox[i];
       ctx->sbox[i] = ctx->sbox[j];
       ctx->sbox[j] = t;
-    } 
+    }
   memset( karr, 0, 256 );
 
   return GPG_ERR_NO_ERROR;
@@ -125,8 +125,8 @@ static const char*
 selftest(void)
 {
   ARCFOUR_context ctx;
-  byte scratch[16];       
-    
+  byte scratch[16];
+
   /* Test vector from Cryptlib labeled there: "from the
      State/Commerce Department". */
   static byte key_1[] =
@@ -153,4 +153,3 @@ gcry_cipher_spec_t _gcry_cipher_spec_arcfour =
     "ARCFOUR", NULL, NULL, 1, 128, sizeof (ARCFOUR_context),
     arcfour_setkey, NULL, NULL, encrypt_stream, encrypt_stream,
   };
-
index 6ef68e3..b4d2b9c 100644 (file)
@@ -501,7 +501,7 @@ do_bf_setkey (BLOWFISH_context *c, const byte *key, unsigned keylen)
   static int initialized;
   static const char *selftest_failed;
 
-  if( !initialized ) 
+  if( !initialized )
     {
       initialized = 1;
       selftest_failed = selftest();
@@ -513,7 +513,7 @@ do_bf_setkey (BLOWFISH_context *c, const byte *key, unsigned keylen)
 
   for(i=0; i < BLOWFISH_ROUNDS+2; i++ )
     c->p[i] = ps[i];
-  for(i=0; i < 256; i++ ) 
+  for(i=0; i < 256; i++ )
     {
       c->s0[i] = ks0[i];
       c->s1[i] = ks1[i];
@@ -521,7 +521,7 @@ do_bf_setkey (BLOWFISH_context *c, const byte *key, unsigned keylen)
       c->s3[i] = ks3[i];
     }
 
-  for(i=j=0; i < BLOWFISH_ROUNDS+2; i++ ) 
+  for(i=j=0; i < BLOWFISH_ROUNDS+2; i++ )
     {
 #ifdef WORDS_BIGENDIAN
       ((byte*)&data)[0] = key[j];
@@ -545,7 +545,7 @@ do_bf_setkey (BLOWFISH_context *c, const byte *key, unsigned keylen)
       c->p[i]   = datal;
       c->p[i+1] = datar;
     }
-  for(i=0; i < 256; i += 2 )   
+  for(i=0; i < 256; i += 2 )
     {
       do_encrypt( c, &datal, &datar );
       c->s0[i]   = datal;
index 067af85..a263621 100644 (file)
@@ -32,7 +32,7 @@
  * space of the library clean.  The following macro is thus useful:
  *
  *     #define CAMELLIA_EXT_SYM_PREFIX foo_
- *  
+ *
  * This prefixes all external symbols with "foo_".
  */
 #ifdef HAVE_CONFIG_H
@@ -50,7 +50,7 @@
 #define camellia_encrypt128   CAMELLIA_PREFIX(camellia_encrypt128)
 #define camellia_encrypt256   CAMELLIA_PREFIX(camellia_encrypt256)
 #define camellia_setup128     CAMELLIA_PREFIX(camellia_setup128)
-#define camellia_setup192     CAMELLIA_PREFIX(camellia_setup192) 
+#define camellia_setup192     CAMELLIA_PREFIX(camellia_setup192)
 #define camellia_setup256     CAMELLIA_PREFIX(camellia_setup256)
 #endif /*CAMELLIA_EXT_SYM_PREFIX*/
 
@@ -99,7 +99,7 @@ camellia_setkey(void *c, const byte *key, unsigned keylen)
      +(4+32)*sizeof(u32)+2*sizeof(void*)    /* camellia_setup192 */
      +0+sizeof(int)+2*sizeof(void*)         /* Camellia_Ekeygen */
      +3*2*sizeof(void*)                     /* Function calls.  */
-     );  
+     );
 
   return 0;
 }
@@ -137,7 +137,7 @@ selftest(void)
 {
   CAMELLIA_context ctx;
   byte scratch[16];
-  
+
   /* These test vectors are from RFC-3713 */
   const byte plaintext[]=
     {
index 79cd49b..2e28bce 100644 (file)
@@ -19,7 +19,7 @@
  */
 
 /*
- * Algorithm Specification 
+ * Algorithm Specification
  *  http://info.isl.ntt.co.jp/crypt/eng/camellia/specifications.html
  */
 
@@ -937,7 +937,7 @@ void camellia_setup256(const unsigned char *key, u32 *subkey)
     CamelliaSubkeyR(30) = CamelliaSubkeyL(30) ^ dw, CamelliaSubkeyL(30) = dw;
     dw = CamelliaSubkeyL(31) ^ CamelliaSubkeyR(31), dw = CAMELLIA_RL8(dw);
     CamelliaSubkeyR(31) = CamelliaSubkeyL(31) ^ dw,CamelliaSubkeyL(31) = dw;
-    
+
     return;
 }
 
@@ -1049,14 +1049,14 @@ void camellia_encrypt128(const u32 *subkey, u32 *io)
     io[1] = io[3];
     io[2] = t0;
     io[3] = t1;
-       
+
     return;
 }
 
 void camellia_decrypt128(const u32 *subkey, u32 *io)
 {
     u32 il,ir,t0,t1;               /* temporary valiables */
-    
+
     /* pre whitening but absorb kw2*/
     io[0] ^= CamelliaSubkeyL(24);
     io[1] ^= CamelliaSubkeyR(24);
@@ -1267,7 +1267,7 @@ void camellia_decrypt256(const u32 *subkey, u32 *io)
     /* pre whitening but absorb kw2*/
     io[0] ^= CamelliaSubkeyL(32);
     io[1] ^= CamelliaSubkeyR(32);
-       
+
     /* main iteration */
     CAMELLIA_ROUNDSM(io[0],io[1],
                     CamelliaSubkeyL(31),CamelliaSubkeyR(31),
@@ -1379,8 +1379,8 @@ void camellia_decrypt256(const u32 *subkey, u32 *io)
  * API for compatibility
  */
 
-void Camellia_Ekeygen(const int keyBitLength, 
-                     const unsigned char *rawKey, 
+void Camellia_Ekeygen(const int keyBitLength,
+                     const unsigned char *rawKey,
                      KEY_TABLE_TYPE keyTable)
 {
     switch(keyBitLength) {
@@ -1399,9 +1399,9 @@ void Camellia_Ekeygen(const int keyBitLength,
 }
 
 
-void Camellia_EncryptBlock(const int keyBitLength, 
-                          const unsigned char *plaintext, 
-                          const KEY_TABLE_TYPE keyTable, 
+void Camellia_EncryptBlock(const int keyBitLength,
+                          const unsigned char *plaintext,
+                          const KEY_TABLE_TYPE keyTable,
                           unsigned char *ciphertext)
 {
     u32 tmp[4];
@@ -1430,9 +1430,9 @@ void Camellia_EncryptBlock(const int keyBitLength,
     PUTU32(ciphertext + 12, tmp[3]);
 }
 
-void Camellia_DecryptBlock(const int keyBitLength, 
-                          const unsigned char *ciphertext, 
-                          const KEY_TABLE_TYPE keyTable, 
+void Camellia_DecryptBlock(const int keyBitLength,
+                          const unsigned char *ciphertext,
+                          const KEY_TABLE_TYPE keyTable,
                           unsigned char *plaintext)
 {
     u32 tmp[4];
index 4425a3a..cccf786 100644 (file)
@@ -25,7 +25,7 @@
  * space of the library clean.  The following macro is thus useful:
  *
  *     #define CAMELLIA_EXT_SYM_PREFIX foo_
- *  
+ *
  * This prefixes all external symbols with "foo_".
  */
 #ifdef HAVE_CONFIG_H
@@ -43,7 +43,7 @@
 #define camellia_encrypt128   CAMELLIA_PREFIX(camellia_encrypt128)
 #define camellia_encrypt256   CAMELLIA_PREFIX(camellia_encrypt256)
 #define camellia_setup128     CAMELLIA_PREFIX(camellia_setup128)
-#define camellia_setup192     CAMELLIA_PREFIX(camellia_setup192) 
+#define camellia_setup192     CAMELLIA_PREFIX(camellia_setup192)
 #define camellia_setup256     CAMELLIA_PREFIX(camellia_setup256)
 #endif /*CAMELLIA_EXT_SYM_PREFIX*/
 
@@ -60,17 +60,17 @@ typedef unsigned int KEY_TABLE_TYPE[CAMELLIA_TABLE_WORD_LEN];
 
 
 void Camellia_Ekeygen(const int keyBitLength,
-                     const unsigned char *rawKey, 
+                     const unsigned char *rawKey,
                      KEY_TABLE_TYPE keyTable);
 
 void Camellia_EncryptBlock(const int keyBitLength,
-                          const unsigned char *plaintext, 
-                          const KEY_TABLE_TYPE keyTable, 
+                          const unsigned char *plaintext,
+                          const KEY_TABLE_TYPE keyTable,
                           unsigned char *cipherText);
 
-void Camellia_DecryptBlock(const int keyBitLength, 
-                          const unsigned char *cipherText, 
-                          const KEY_TABLE_TYPE keyTable, 
+void Camellia_DecryptBlock(const int keyBitLength,
+                          const unsigned char *cipherText,
+                          const KEY_TABLE_TYPE keyTable,
                           unsigned char *plaintext);
 
 
index 333d55e..9905f5c 100644 (file)
@@ -569,7 +569,7 @@ do_cast_setkey( CAST5_context *c, const byte *key, unsigned keylen )
   u32 z[4];
   u32 k[16];
 
-  if( !initialized ) 
+  if( !initialized )
     {
       initialized = 1;
       selftest_failed = selftest();
index 03455e1..af91b81 100644 (file)
@@ -58,39 +58,39 @@ static struct cipher_table_entry
       &dummy_extra_spec,                  GCRY_CIPHER_BLOWFISH },
 #endif
 #if USE_DES
-    { &_gcry_cipher_spec_des,       
+    { &_gcry_cipher_spec_des,
       &dummy_extra_spec,                  GCRY_CIPHER_DES },
     { &_gcry_cipher_spec_tripledes,
       &_gcry_cipher_extraspec_tripledes,  GCRY_CIPHER_3DES, 1 },
 #endif
 #if USE_ARCFOUR
-    { &_gcry_cipher_spec_arcfour,    
+    { &_gcry_cipher_spec_arcfour,
       &dummy_extra_spec,                  GCRY_CIPHER_ARCFOUR },
 #endif
 #if USE_CAST5
-    { &_gcry_cipher_spec_cast5,      
+    { &_gcry_cipher_spec_cast5,
       &dummy_extra_spec,                  GCRY_CIPHER_CAST5 },
 #endif
 #if USE_AES
-    { &_gcry_cipher_spec_aes,        
+    { &_gcry_cipher_spec_aes,
       &_gcry_cipher_extraspec_aes,        GCRY_CIPHER_AES,    1 },
-    { &_gcry_cipher_spec_aes192,     
+    { &_gcry_cipher_spec_aes192,
       &_gcry_cipher_extraspec_aes192,     GCRY_CIPHER_AES192, 1 },
-    { &_gcry_cipher_spec_aes256,     
+    { &_gcry_cipher_spec_aes256,
       &_gcry_cipher_extraspec_aes256,     GCRY_CIPHER_AES256, 1 },
 #endif
 #if USE_TWOFISH
     { &_gcry_cipher_spec_twofish,
       &dummy_extra_spec,                  GCRY_CIPHER_TWOFISH },
-    { &_gcry_cipher_spec_twofish128,     
+    { &_gcry_cipher_spec_twofish128,
       &dummy_extra_spec,                  GCRY_CIPHER_TWOFISH128 },
 #endif
 #if USE_SERPENT
-    { &_gcry_cipher_spec_serpent128, 
+    { &_gcry_cipher_spec_serpent128,
       &dummy_extra_spec,                  GCRY_CIPHER_SERPENT128 },
     { &_gcry_cipher_spec_serpent192,
       &dummy_extra_spec,                  GCRY_CIPHER_SERPENT192 },
-    { &_gcry_cipher_spec_serpent256, 
+    { &_gcry_cipher_spec_serpent256,
       &dummy_extra_spec,                  GCRY_CIPHER_SERPENT256 },
 #endif
 #if USE_RFC2268
@@ -98,13 +98,13 @@ static struct cipher_table_entry
       &dummy_extra_spec,                  GCRY_CIPHER_RFC2268_40 },
 #endif
 #if USE_SEED
-    { &_gcry_cipher_spec_seed, 
+    { &_gcry_cipher_spec_seed,
       &dummy_extra_spec,                  GCRY_CIPHER_SEED },
 #endif
 #if USE_CAMELLIA
     { &_gcry_cipher_spec_camellia128,
       &dummy_extra_spec,                  GCRY_CIPHER_CAMELLIA128 },
-    { &_gcry_cipher_spec_camellia192, 
+    { &_gcry_cipher_spec_camellia192,
       &dummy_extra_spec,                  GCRY_CIPHER_CAMELLIA192 },
     { &_gcry_cipher_spec_camellia256,
       &dummy_extra_spec,                  GCRY_CIPHER_CAMELLIA256 },
@@ -144,12 +144,12 @@ static int default_ciphers_registered;
    that the entire context structure is a aligned on that boundary.
    We achieve this by defining a new type and use that instead of our
    usual alignment type.  */
-typedef union 
+typedef union
 {
   PROPERLY_ALIGNED_TYPE foo;
 #ifdef NEED_16BYTE_ALIGNED_CONTEXT
   char bar[16] __attribute__ ((aligned (16)));
-#endif  
+#endif
   char c[1];
 } cipher_context_alignment_t;
 
@@ -166,7 +166,7 @@ struct gcry_cipher_handle
 
   /* The algorithm id.  This is a hack required because the module
      interface does not easily allow to retrieve this value. */
-  int algo;  
+  int algo;
 
   /* A structure with function pointers for bulk operations.  Due to
      limitations of the module system (we don't want to change the
@@ -174,16 +174,16 @@ struct gcry_cipher_handle
      open function intializes them and the actual encryption routines
      use them if they are not NULL.  */
   struct {
-    void (*cfb_enc)(void *context, unsigned char *iv, 
+    void (*cfb_enc)(void *context, unsigned char *iv,
                     void *outbuf_arg, const void *inbuf_arg,
                     unsigned int nblocks);
-    void (*cfb_dec)(void *context, unsigned char *iv, 
+    void (*cfb_dec)(void *context, unsigned char *iv,
                     void *outbuf_arg, const void *inbuf_arg,
                     unsigned int nblocks);
-    void (*cbc_enc)(void *context, unsigned char *iv, 
+    void (*cbc_enc)(void *context, unsigned char *iv,
                     void *outbuf_arg, const void *inbuf_arg,
                     unsigned int nblocks, int cbc_mac);
-    void (*cbc_dec)(void *context, unsigned char *iv, 
+    void (*cbc_dec)(void *context, unsigned char *iv,
                     void *outbuf_arg, const void *inbuf_arg,
                     unsigned int nblocks);
   } bulk;
@@ -200,9 +200,9 @@ struct gcry_cipher_handle
   /* The initialization vector.  To help code optimization we make
      sure that it is aligned on an unsigned long and u32 boundary.  */
   union {
-    unsigned long dummy_iv;         
+    unsigned long dummy_iv;
     u32 dummy_u32_iv;
-    unsigned char iv[MAX_BLOCKSIZE];   
+    unsigned char iv[MAX_BLOCKSIZE];
   } u_iv;
 
   unsigned char lastiv[MAX_BLOCKSIZE];
@@ -227,7 +227,7 @@ struct gcry_cipher_handle
 static gcry_err_code_t
 dummy_setkey (void *c, const unsigned char *key, unsigned int keylen)
 {
-  (void)c; 
+  (void)c;
   (void)key;
   (void)keylen;
   return GPG_ERR_NO_ERROR;
@@ -286,7 +286,7 @@ cipher_register_default (void)
 {
   gcry_err_code_t err = GPG_ERR_NO_ERROR;
   int i;
-  
+
   for (i = 0; !err && cipher_table[i].cipher; i++)
     {
       if (! cipher_table[i].cipher->setkey)
@@ -389,8 +389,8 @@ _gcry_cipher_register (gcry_cipher_spec_t *cipher,
 
   ath_mutex_lock (&ciphers_registered_lock);
   err = _gcry_module_add (&ciphers_registered, 0,
-                         (void *)cipher, 
-                         (void *)(extraspec? extraspec : &dummy_extra_spec), 
+                         (void *)cipher,
+                         (void *)(extraspec? extraspec : &dummy_extra_spec),
                           &mod);
   ath_mutex_unlock (&ciphers_registered_lock);
 
@@ -420,7 +420,7 @@ gcry_cipher_unregister (gcry_module_t module)
    ispassed as NULL.  A pointer to the specification of the module
    implementing this algorithm is return in OID_SPEC unless passed as
    NULL.*/
-static int 
+static int
 search_oid (const char *oid, int *algorithm, gcry_cipher_oid_spec_t *oid_spec)
 {
   gcry_module_t module;
@@ -484,7 +484,7 @@ gcry_cipher_map_name (const char *string)
     }
 
   ath_mutex_unlock (&ciphers_registered_lock);
-  
+
   return algorithm;
 }
 
@@ -593,7 +593,7 @@ check_cipher_algo (int algorithm)
   else
     err = GPG_ERR_CIPHER_ALGO;
   ath_mutex_unlock (&ciphers_registered_lock);
-  
+
   return err;
 }
 
@@ -683,7 +683,7 @@ gcry_cipher_open (gcry_cipher_hd_t *handle,
   /* If the application missed to call the random poll function, we do
      it here to ensure that it is used once in a while. */
   _gcry_fast_random_poll ();
-  
+
   REGISTER_DEFAULT_CIPHERS;
 
   /* Fetch the according module and check whether the cipher is marked
@@ -711,7 +711,7 @@ gcry_cipher_open (gcry_cipher_hd_t *handle,
 
   /* check flags */
   if ((! err)
-      && ((flags & ~(0 
+      && ((flags & ~(0
                     | GCRY_CIPHER_SECURE
                     | GCRY_CIPHER_ENABLE_SYNC
                     | GCRY_CIPHER_CBC_CTS
@@ -812,7 +812,7 @@ gcry_cipher_open (gcry_cipher_hd_t *handle,
               h->bulk.cbc_dec = _gcry_aes_cbc_dec;
               break;
 #endif /*USE_AES*/
-              
+
             default:
               break;
             }
@@ -902,7 +902,7 @@ static void
 cipher_setiv( gcry_cipher_hd_t c, const byte *iv, unsigned ivlen )
 {
   memset (c->u_iv.iv, 0, c->cipher->blocksize);
-  if (iv) 
+  if (iv)
     {
       if (ivlen != c->cipher->blocksize)
         {
@@ -944,7 +944,7 @@ do_ecb_encrypt (gcry_cipher_hd_t c,
 {
   unsigned int blocksize = c->cipher->blocksize;
   unsigned int n, nblocks;
-  
+
   if (outbuflen < inbuflen)
     return GPG_ERR_BUFFER_TOO_SHORT;
   if ((inbuflen % blocksize))
@@ -975,7 +975,7 @@ do_ecb_decrypt (gcry_cipher_hd_t c,
     return GPG_ERR_INV_LENGTH;
   nblocks = inbuflen / c->cipher->blocksize;
 
-  for (n=0; n < nblocks; n++ ) 
+  for (n=0; n < nblocks; n++ )
     {
       c->cipher->decrypt (&c->context.c, outbuf, (byte*)/*arggg*/inbuf );
       inbuf  += blocksize;
@@ -1005,7 +1005,7 @@ do_cbc_encrypt (gcry_cipher_hd_t c,
            && (c->flags & GCRY_CIPHER_CBC_CTS)))
     return GPG_ERR_INV_LENGTH;
 
-  if ((c->flags & GCRY_CIPHER_CBC_CTS) && inbuflen > blocksize) 
+  if ((c->flags & GCRY_CIPHER_CBC_CTS) && inbuflen > blocksize)
     {
       if ((inbuflen % blocksize) == 0)
        nblocks--;
@@ -1014,7 +1014,7 @@ do_cbc_encrypt (gcry_cipher_hd_t c,
   if (c->bulk.cbc_enc)
     {
       c->bulk.cbc_enc (&c->context.c, c->u_iv.iv, outbuf, inbuf, nblocks,
-                       (c->flags & GCRY_CIPHER_CBC_MAC)); 
+                       (c->flags & GCRY_CIPHER_CBC_MAC));
       inbuf  += nblocks * blocksize;
       if (!(c->flags & GCRY_CIPHER_CBC_MAC))
         outbuf += nblocks * blocksize;
@@ -1054,7 +1054,7 @@ do_cbc_encrypt (gcry_cipher_hd_t c,
         }
       for (; i < blocksize; i++)
         outbuf[i] = 0 ^ *ivp++;
-      
+
       c->cipher->encrypt (&c->context.c, outbuf, outbuf);
       memcpy (c->u_iv.iv, outbuf, blocksize);
     }
@@ -1092,13 +1092,13 @@ do_cbc_decrypt (gcry_cipher_hd_t c,
 
   if (c->bulk.cbc_dec)
     {
-      c->bulk.cbc_dec (&c->context.c, c->u_iv.iv, outbuf, inbuf, nblocks); 
+      c->bulk.cbc_dec (&c->context.c, c->u_iv.iv, outbuf, inbuf, nblocks);
       inbuf  += nblocks * blocksize;
       outbuf += nblocks * blocksize;
     }
   else
     {
-      for (n=0; n < nblocks; n++ ) 
+      for (n=0; n < nblocks; n++ )
         {
           /* Because outbuf and inbuf might be the same, we have to
            * save the original ciphertext block.  We use LASTIV for
@@ -1113,22 +1113,22 @@ do_cbc_decrypt (gcry_cipher_hd_t c,
         }
     }
 
-  if ((c->flags & GCRY_CIPHER_CBC_CTS) && inbuflen > blocksize) 
+  if ((c->flags & GCRY_CIPHER_CBC_CTS) && inbuflen > blocksize)
     {
       int restbytes;
-      
+
       if ((inbuflen % blocksize) == 0)
         restbytes = blocksize;
       else
         restbytes = inbuflen % blocksize;
-      
+
       memcpy (c->lastiv, c->u_iv.iv, blocksize );         /* Save Cn-2. */
       memcpy (c->u_iv.iv, inbuf + blocksize, restbytes ); /* Save Cn. */
 
       c->cipher->decrypt ( &c->context.c, outbuf, inbuf );
       for (ivp=c->u_iv.iv,i=0; i < restbytes; i++ )
         outbuf[i] ^= *ivp++;
-      
+
       memcpy(outbuf + blocksize, outbuf, restbytes);
       for(i=restbytes; i < blocksize; i++)
         c->u_iv.iv[i] = outbuf[i];
@@ -1150,7 +1150,7 @@ do_cfb_encrypt (gcry_cipher_hd_t c,
   unsigned char *ivp;
   size_t blocksize = c->cipher->blocksize;
   size_t blocksize_x_2 = blocksize + blocksize;
-  
+
   if (outbuflen < inbuflen)
     return GPG_ERR_BUFFER_TOO_SHORT;
 
@@ -1179,7 +1179,7 @@ do_cfb_encrypt (gcry_cipher_hd_t c,
   if (inbuflen >= blocksize_x_2 && c->bulk.cfb_enc)
     {
       unsigned int nblocks = inbuflen / blocksize;
-      c->bulk.cfb_enc (&c->context.c, c->u_iv.iv, outbuf, inbuf, nblocks); 
+      c->bulk.cfb_enc (&c->context.c, c->u_iv.iv, outbuf, inbuf, nblocks);
       outbuf += nblocks * blocksize;
       inbuf  += nblocks * blocksize;
       inbuflen -= nblocks * blocksize;
@@ -1209,7 +1209,7 @@ do_cfb_encrypt (gcry_cipher_hd_t c,
         *outbuf++ = (*ivp++ ^= *inbuf++);
       inbuflen -= blocksize;
     }
-  if ( inbuflen ) 
+  if ( inbuflen )
     {
       /* Save the current IV and then encrypt the IV. */
       memcpy( c->lastiv, c->u_iv.iv, blocksize );
@@ -1234,7 +1234,7 @@ do_cfb_decrypt (gcry_cipher_hd_t c,
   int i;
   size_t blocksize = c->cipher->blocksize;
   size_t blocksize_x_2 = blocksize + blocksize;
-  
+
   if (outbuflen < inbuflen)
     return GPG_ERR_BUFFER_TOO_SHORT;
 
@@ -1243,7 +1243,7 @@ do_cfb_decrypt (gcry_cipher_hd_t c,
       /* Short enough to be encoded by the remaining XOR mask. */
       /* XOR the input with the IV and store input into IV. */
       for (ivp=c->u_iv.iv+blocksize - c->unused;
-           inbuflen; 
+           inbuflen;
            inbuflen--, c->unused--)
         {
           temp = *inbuf++;
@@ -1252,7 +1252,7 @@ do_cfb_decrypt (gcry_cipher_hd_t c,
         }
       return 0;
     }
-  
+
   if (c->unused)
     {
       /* XOR the input with the IV and store input into IV. */
@@ -1264,14 +1264,14 @@ do_cfb_decrypt (gcry_cipher_hd_t c,
           *ivp++ = temp;
         }
     }
-  
+
   /* Now we can process complete blocks.  We use a loop as long as we
      have at least 2 blocks and use conditions for the rest.  This
      also allows to use a bulk encryption function if available.  */
   if (inbuflen >= blocksize_x_2 && c->bulk.cfb_dec)
     {
       unsigned int nblocks = inbuflen / blocksize;
-      c->bulk.cfb_dec (&c->context.c, c->u_iv.iv, outbuf, inbuf, nblocks); 
+      c->bulk.cfb_dec (&c->context.c, c->u_iv.iv, outbuf, inbuf, nblocks);
       outbuf += nblocks * blocksize;
       inbuf  += nblocks * blocksize;
       inbuflen -= nblocks * blocksize;
@@ -1309,7 +1309,7 @@ do_cfb_decrypt (gcry_cipher_hd_t c,
     }
 
   if (inbuflen)
-    { 
+    {
       /* Save the current IV and then encrypt the IV. */
       memcpy ( c->lastiv, c->u_iv.iv, blocksize );
       c->cipher->encrypt ( &c->context.c, c->u_iv.iv, c->u_iv.iv );
@@ -1363,7 +1363,7 @@ do_ofb_encrypt (gcry_cipher_hd_t c,
       /* Encrypt the IV (and save the current one). */
       memcpy( c->lastiv, c->u_iv.iv, blocksize );
       c->cipher->encrypt ( &c->context.c, c->u_iv.iv, c->u_iv.iv );
-      
+
       for (ivp=c->u_iv.iv,i=0; i < blocksize; i++ )
         *outbuf++ = (*ivp++ ^ *inbuf++);
       inbuflen -= blocksize;
@@ -1387,7 +1387,7 @@ do_ofb_decrypt (gcry_cipher_hd_t c,
 {
   unsigned char *ivp;
   size_t blocksize = c->cipher->blocksize;
-  
+
   if (outbuflen < inbuflen)
     return GPG_ERR_BUFFER_TOO_SHORT;
 
@@ -1417,7 +1417,7 @@ do_ofb_decrypt (gcry_cipher_hd_t c,
         *outbuf++ = *ivp++ ^ *inbuf++;
       inbuflen -= blocksize;
     }
-  if ( inbuflen ) 
+  if ( inbuflen )
     { /* Process the remaining bytes. */
       /* Encrypt the IV (and save the current one). */
       memcpy( c->lastiv, c->u_iv.iv, blocksize );
@@ -1495,15 +1495,15 @@ do_aeswrap_encrypt (gcry_cipher_hd_t c, byte *outbuf, unsigned int outbuflen,
 #endif
   /* We require a cipher with a 128 bit block length.  */
   if (c->cipher->blocksize != 16)
-    return GPG_ERR_INV_LENGTH;  
-  
+    return GPG_ERR_INV_LENGTH;
+
   /* The output buffer must be able to hold the input data plus one
      additional block.  */
   if (outbuflen < inbuflen + 8)
     return GPG_ERR_BUFFER_TOO_SHORT;
   /* Input data must be multiple of 64 bits.  */
   if (inbuflen % 8)
-    return GPG_ERR_INV_ARG;   
+    return GPG_ERR_INV_ARG;
 
   n = inbuflen / 8;
 
@@ -1511,7 +1511,7 @@ do_aeswrap_encrypt (gcry_cipher_hd_t c, byte *outbuf, unsigned int outbuflen,
   if (n < 2)
     return GPG_ERR_INV_ARG;
 
-  r = outbuf; 
+  r = outbuf;
   a = outbuf;  /* We store A directly in OUTBUF.  */
   b = c->ctr;  /* B is also used to concatenate stuff.  */
 
@@ -1549,7 +1549,7 @@ do_aeswrap_encrypt (gcry_cipher_hd_t c, byte *outbuf, unsigned int outbuflen,
           memcpy (r+i*8, b+8, 8);
         }
    }
-  
+
   return 0;
 }
 
@@ -1570,8 +1570,8 @@ do_aeswrap_decrypt (gcry_cipher_hd_t c, byte *outbuf, unsigned int outbuflen,
 #endif
   /* We require a cipher with a 128 bit block length.  */
   if (c->cipher->blocksize != 16)
-    return GPG_ERR_INV_LENGTH;  
-  
+    return GPG_ERR_INV_LENGTH;
+
   /* The output buffer must be able to hold the input data minus one
      additional block.  Fixme: The caller has more restrictive checks
      - we may want to fix them for this mode.  */
@@ -1579,7 +1579,7 @@ do_aeswrap_decrypt (gcry_cipher_hd_t c, byte *outbuf, unsigned int outbuflen,
     return GPG_ERR_BUFFER_TOO_SHORT;
   /* Input data must be multiple of 64 bits.  */
   if (inbuflen % 8)
-    return GPG_ERR_INV_ARG;   
+    return GPG_ERR_INV_ARG;
 
   n = inbuflen / 8;
 
@@ -1587,7 +1587,7 @@ do_aeswrap_decrypt (gcry_cipher_hd_t c, byte *outbuf, unsigned int outbuflen,
   if (n < 3)
     return GPG_ERR_INV_ARG;
 
-  r = outbuf; 
+  r = outbuf;
   a = c->lastiv;  /* We use c->LASTIV as buffer for A.  */
   b = c->ctr;     /* B is also used to concatenate stuff.  */
 
@@ -1663,7 +1663,7 @@ cipher_encrypt (gcry_cipher_hd_t c, byte *outbuf, unsigned int outbuflen,
     case GCRY_CIPHER_MODE_CBC:
       rc = do_cbc_encrypt (c, outbuf, outbuflen, inbuf, inbuflen);
       break;
-      
+
     case GCRY_CIPHER_MODE_CFB:
       rc = do_cfb_encrypt (c, outbuf, outbuflen, inbuf, inbuflen);
       break;
@@ -1699,7 +1699,7 @@ cipher_encrypt (gcry_cipher_hd_t c, byte *outbuf, unsigned int outbuflen,
           rc = 0;
         }
       break;
-      
+
     default:
       log_fatal ("cipher_encrypt: invalid mode %d\n", c->mode );
       rc = GPG_ERR_INV_CIPHER_MODE;
@@ -1728,7 +1728,7 @@ gcry_cipher_encrypt (gcry_cipher_hd_t h, void *out, size_t outsize,
   /* Failsafe: Make sure that the plaintext will never make it into
      OUT if the encryption returned an error.  */
   if (err && out)
-    memset (out, 0x42, outsize); 
+    memset (out, 0x42, outsize);
 
   return gcry_error (err);
 }
@@ -1791,7 +1791,7 @@ cipher_decrypt (gcry_cipher_hd_t c, byte *outbuf, unsigned int outbuflen,
           rc = 0;
         }
       break;
-      
+
     default:
       log_fatal ("cipher_decrypt: invalid mode %d\n", c->mode );
       rc = GPG_ERR_INV_CIPHER_MODE;
@@ -1928,7 +1928,7 @@ gcry_cipher_ctl( gcry_cipher_hd_t h, int cmd, void *buffer, size_t buflen)
 
     case 61:  /* Disable weak key detection (private).  */
       if (h->extraspec->set_extra_info)
-        rc = h->extraspec->set_extra_info 
+        rc = h->extraspec->set_extra_info
           (&h->context.c, CIPHER_INFO_NO_WEAK_KEY, NULL, 0);
       else
         rc = GPG_ERR_NOT_SUPPORTED;
@@ -1936,7 +1936,7 @@ gcry_cipher_ctl( gcry_cipher_hd_t h, int cmd, void *buffer, size_t buflen)
 
     case 62: /* Return current input vector (private).  */
       /* This is the input block as used in CFB and OFB mode which has
-         initially been set as IV.  The returned format is: 
+         initially been set as IV.  The returned format is:
            1 byte  Actual length of the block in bytes.
            n byte  The block.
          If the provided buffer is too short, an error is returned. */
@@ -1947,7 +1947,7 @@ gcry_cipher_ctl( gcry_cipher_hd_t h, int cmd, void *buffer, size_t buflen)
           unsigned char *ivp;
           unsigned char *dst = buffer;
           int n = h->unused;
-          
+
           if (!n)
             n = h->cipher->blocksize;
           gcry_assert (n <= h->cipher->blocksize);
@@ -1969,10 +1969,10 @@ gcry_cipher_ctl( gcry_cipher_hd_t h, int cmd, void *buffer, size_t buflen)
 /* Return information about the cipher handle H.  CMD is the kind of
    information requested.  BUFFER and NBYTES are reserved for now.
 
-   There are no values for CMD yet defined.  
+   There are no values for CMD yet defined.
 
    The function always returns GPG_ERR_INV_OP.
-   
+
  */
 gcry_error_t
 gcry_cipher_info (gcry_cipher_hd_t h, int cmd, void *buffer, size_t *nbytes)
@@ -2009,7 +2009,7 @@ gcry_cipher_info (gcry_cipher_hd_t h, int cmd, void *buffer, size_t *nbytes)
     GCRYCTL_TEST_ALGO:
        Returns 0 if the specified algorithm ALGO is available for use.
        BUFFER and NBYTES must be zero.
-  
+
    Note: Because this function is in most cases used to return an
    integer value, we can make it easier for the caller to just look at
    the return value.  The caller will in all cases consult the value
@@ -2078,7 +2078,7 @@ gcry_cipher_algo_info (int algo, int what, void *buffer, size_t *nbytes)
    gcry_cipher_algo_info because it allows for proper type
    checking.  */
 size_t
-gcry_cipher_get_algo_keylen (int algo) 
+gcry_cipher_get_algo_keylen (int algo)
 {
   size_t n;
 
@@ -2094,7 +2094,7 @@ gcry_cipher_get_algo_keylen (int algo)
    gcry_cipher_algo_info because it allows for proper type
    checking.  */
 size_t
-gcry_cipher_get_algo_blklen (int algo) 
+gcry_cipher_get_algo_blklen (int algo)
 {
   size_t n;
 
@@ -2155,7 +2155,7 @@ _gcry_cipher_selftest (int algo, int extended, selftest_report_func_t report)
     {
       ec = GPG_ERR_CIPHER_ALGO;
       if (report)
-        report ("cipher", algo, "module", 
+        report ("cipher", algo, "module",
                 module && !(module->flags & FLAG_MODULE_DISABLED)?
                 "no selftest available" :
                 module? "algorithm disabled" : "algorithm not found");
index e7f14fd..96b06ae 100644 (file)
@@ -22,7 +22,7 @@
  *   Bruce Schneier: Applied Cryptography. Second Edition.
  *   John Wiley & Sons, 1996. ISBN 0-471-12845-7. Pages 358 ff.
  * This implementation is according to the definition of DES in FIPS
- * PUB 46-2 from December 1993. 
+ * PUB 46-2 from December 1993.
  */
 
 
@@ -388,7 +388,7 @@ static byte weak_keys[64][8] =
 };
 static unsigned char weak_keys_chksum[20] = {
   0xD0, 0xCF, 0x07, 0x38, 0x93, 0x70, 0x8A, 0x83, 0x7D, 0xD7,
-  0x8A, 0x36, 0x65, 0x29, 0x6C, 0x1F, 0x7C, 0x3F, 0xD3, 0x41 
+  0x8A, 0x36, 0x65, 0x29, 0x6C, 0x1F, 0x7C, 0x3F, 0xD3, 0x41
 };
 
 
@@ -888,12 +888,12 @@ selftest (void)
     if (memcmp (input, result, 8))
       return "Triple-DES test failed.";
   }
-  
+
   /*
    * More Triple-DES test.  These are testvectors as used by SSLeay,
    * thanks to Jeroen C. van Gelderen.
    */
-  { 
+  {
     struct { byte key[24]; byte plain[8]; byte cipher[8]; } testdata[] = {
       { { 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
           0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
@@ -901,7 +901,7 @@ selftest (void)
         { 0x95,0xF8,0xA5,0xE5,0xDD,0x31,0xD9,0x00  },
         { 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00  }
       },
-      
+
       { { 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
           0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
           0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01  },
@@ -966,7 +966,7 @@ selftest (void)
       {
         tripledes_set3keys (des3, testdata[i].key,
                             testdata[i].key + 8, testdata[i].key + 16);
-        
+
         tripledes_ecb_encrypt (des3, testdata[i].plain, result);
         if (memcmp (testdata[i].cipher, result, 8))
           return "Triple-DES SSLeay test failed on encryption.";
@@ -1047,7 +1047,7 @@ do_tripledes_set_extra_info (void *context, int what,
       break;
 
     default:
-      ec = GPG_ERR_INV_OP; 
+      ec = GPG_ERR_INV_OP;
       break;
     }
   return ec;
@@ -1112,7 +1112,7 @@ do_des_decrypt( void *context, byte *outbuf, const byte *inbuf )
 
 
 \f
-/* 
+/*
      Self-test section.
  */
 
@@ -1123,7 +1123,7 @@ selftest_fips (int extended, selftest_report_func_t report)
 {
   const char *what;
   const char *errtxt;
-  
+
   (void)extended; /* No extended tests available.  */
 
   what = "low-level";
@@ -1160,7 +1160,7 @@ run_selftests (int algo, int extended, selftest_report_func_t report)
     default:
       ec = GPG_ERR_CIPHER_ALGO;
       break;
-        
+
     }
   return ec;
 }
@@ -1189,7 +1189,7 @@ gcry_cipher_spec_t _gcry_cipher_spec_tripledes =
     do_tripledes_setkey, do_tripledes_encrypt, do_tripledes_decrypt
   };
 
-cipher_extra_spec_t _gcry_cipher_extraspec_tripledes = 
+cipher_extra_spec_t _gcry_cipher_extraspec_tripledes =
   {
     run_selftests,
     do_tripledes_set_extra_info
index ceb9496..d7631a1 100644 (file)
@@ -74,7 +74,7 @@ static const char sample_secret_key[] =
 "      42CAA7DC289F0C5A9D155F02D3D551DB741A81695B74D4C8F477F9C7838EB0FB#)"
 "  (x #11D54E4ADBD3034160F2CED4B7CD292A4EBF3EC0#)))";
 /* A sample 1024 bit DSA key used for the selftests (public only).  */
-static const char sample_public_key[] = 
+static const char sample_public_key[] =
 "(public-key"
 " (dsa"
 "  (p #00AD7C0025BA1A15F775F3F2D673718391D00456978D347B33D7B49E7F32EDAB"
@@ -143,12 +143,12 @@ gen_k( gcry_mpi_t q )
 
   if ( DBG_CIPHER )
     log_debug("choosing a random k ");
-  for (;;) 
+  for (;;)
     {
       if( DBG_CIPHER )
         progress('.');
 
-      if ( !rndbuf || nbits < 32 ) 
+      if ( !rndbuf || nbits < 32 )
         {
           gcry_free(rndbuf);
           rndbuf = gcry_random_bytes_secure( (nbits+7)/8, GCRY_STRONG_RANDOM );
@@ -172,7 +172,7 @@ gen_k( gcry_mpi_t q )
        }
 
       if( !(mpi_cmp( k, q ) < 0) ) /* check: k < q */
-        {      
+        {
           if( DBG_CIPHER )
             progress('+');
           continue; /* no  */
@@ -188,7 +188,7 @@ gen_k( gcry_mpi_t q )
   gcry_free(rndbuf);
   if( DBG_CIPHER )
     progress('\n');
-  
+
   return k;
 }
 
@@ -315,7 +315,7 @@ generate (DSA_secret_key *sk, unsigned int nbits, unsigned int qbits,
           mpi_add_ui (h, h, 1);
           /* g = h^e mod p */
           gcry_mpi_powm (g, h, e, p);
-        } 
+        }
       while (!mpi_cmp_ui (g, 1));  /* Continue until g != 1. */
     }
 
@@ -330,13 +330,13 @@ generate (DSA_secret_key *sk, unsigned int nbits, unsigned int qbits,
   x = mpi_alloc_secure( mpi_get_nlimbs(q) );
   mpi_sub_ui( h, q, 1 );  /* put q-1 into h */
   rndbuf = NULL;
-  do 
+  do
     {
       if( DBG_CIPHER )
         progress('.');
       if( !rndbuf )
         rndbuf = gcry_random_bytes_secure ((qbits+7)/8, random_level);
-      else 
+      else
         { /* Change only some of the higher bits (= 2 bytes)*/
           char *r = gcry_random_bytes_secure (2, random_level);
           memcpy(rndbuf, r, 2 );
@@ -345,7 +345,7 @@ generate (DSA_secret_key *sk, unsigned int nbits, unsigned int qbits,
 
       _gcry_mpi_set_buffer( x, rndbuf, (qbits+7)/8, 0 );
       mpi_clear_highbit( x, qbits+1 );
-    } 
+    }
   while ( !( mpi_cmp_ui( x, 0 )>0 && mpi_cmp( x, h )<0 ) );
   gcry_free(rndbuf);
   mpi_free( e );
@@ -355,7 +355,7 @@ generate (DSA_secret_key *sk, unsigned int nbits, unsigned int qbits,
   y = mpi_alloc( mpi_get_nlimbs(p) );
   gcry_mpi_powm( y, g, x, p );
 
-  if( DBG_CIPHER ) 
+  if( DBG_CIPHER )
     {
       progress('\n');
       log_mpidump("dsa  p", p );
@@ -406,8 +406,8 @@ generate_fips186 (DSA_secret_key *sk, unsigned int nbits, unsigned int qbits,
     const void *seed;
     size_t seedlen;
   } initial_seed = { NULL, NULL, 0 };
-  gcry_mpi_t prime_q = NULL; 
-  gcry_mpi_t prime_p = NULL; 
+  gcry_mpi_t prime_q = NULL;
+  gcry_mpi_t prime_p = NULL;
   gcry_mpi_t value_g = NULL; /* The generator. */
   gcry_mpi_t value_y = NULL; /* g^x mod p */
   gcry_mpi_t value_x = NULL; /* The secret exponent. */
@@ -467,15 +467,15 @@ generate_fips186 (DSA_secret_key *sk, unsigned int nbits, unsigned int qbits,
             initial_seed.seed = gcry_sexp_nth_data (initial_seed.sexp, 1,
                                                     &initial_seed.seedlen);
         }
-      
+
       /* Fixme: Enable 186-3 after it has been approved and after fixing
          the generation function.  */
       /*   if (use_fips186_2) */
       (void)use_fips186_2;
-      ec = _gcry_generate_fips186_2_prime (nbits, qbits, 
-                                           initial_seed.seed, 
+      ec = _gcry_generate_fips186_2_prime (nbits, qbits,
+                                           initial_seed.seed,
                                            initial_seed.seedlen,
-                                           &prime_q, &prime_p, 
+                                           &prime_q, &prime_p,
                                            r_counter,
                                            r_seed, r_seedlen);
       /*   else */
@@ -493,33 +493,33 @@ generate_fips186 (DSA_secret_key *sk, unsigned int nbits, unsigned int qbits,
       mpi_sub_ui (value_e, prime_p, 1);
       mpi_fdiv_q (value_e, value_e, prime_q );
       value_g = mpi_alloc_like (prime_p);
-      value_h = mpi_alloc_set_ui (1); 
+      value_h = mpi_alloc_set_ui (1);
       do
         {
           mpi_add_ui (value_h, value_h, 1);
           /* g = h^e mod p */
           mpi_powm (value_g, value_h, value_e, prime_p);
-        } 
+        }
       while (!mpi_cmp_ui (value_g, 1));  /* Continue until g != 1.  */
     }
 
 
   /* Select a random number x with:  0 < x < q  */
   value_x = gcry_mpi_snew (qbits);
-  do 
+  do
     {
       if( DBG_CIPHER )
         progress('.');
       gcry_mpi_randomize (value_x, qbits, GCRY_VERY_STRONG_RANDOM);
       mpi_clear_highbit (value_x, qbits+1);
-    } 
+    }
   while (!(mpi_cmp_ui (value_x, 0) > 0 && mpi_cmp (value_x, prime_q) < 0));
 
   /* y = g^x mod p */
   value_y = mpi_alloc_like (prime_p);
   gcry_mpi_powm (value_y, value_g, value_x, prime_p);
 
-  if (DBG_CIPHER) 
+  if (DBG_CIPHER)
     {
       progress('\n');
       log_mpidump("dsa  p", prime_p );
@@ -691,7 +691,7 @@ dsa_generate_ext (int algo, unsigned int nbits, unsigned long evalue,
   int use_fips186_2 = 0;
   int use_fips186 = 0;
   dsa_domain_t domain;
+
   (void)algo;    /* No need to check it.  */
   (void)evalue;  /* Not required for DSA. */
 
@@ -700,7 +700,7 @@ dsa_generate_ext (int algo, unsigned int nbits, unsigned long evalue,
   if (genparms)
     {
       gcry_sexp_t domainsexp;
-  
+
       /* Parse the optional qbits element.  */
       l1 = gcry_sexp_find_token (genparms, "qbits", 0);
       if (l1)
@@ -708,7 +708,7 @@ dsa_generate_ext (int algo, unsigned int nbits, unsigned long evalue,
           char buf[50];
           const char *s;
           size_t n;
-          
+
           s = gcry_sexp_nth_data (l1, 1, &n);
           if (!s || n >= DIM (buf) - 1 )
             {
@@ -760,7 +760,7 @@ dsa_generate_ext (int algo, unsigned int nbits, unsigned long evalue,
               gcry_sexp_release (deriveparms);
               return GPG_ERR_INV_VALUE;
             }
-          
+
           /* Put all domain parameters into the domain object.  */
           l1 = gcry_sexp_find_token (domainsexp, "p", 0);
           domain.p = gcry_sexp_nth_mpi (l1, 1, GCRYMPI_FMT_USG);
@@ -804,7 +804,7 @@ dsa_generate_ext (int algo, unsigned int nbits, unsigned long evalue,
         {
           /* Format the seed-values unless domain parameters are used
              for which a H_VALUE of NULL is an indication.  */
-          ec = gpg_err_code (gcry_sexp_build 
+          ec = gpg_err_code (gcry_sexp_build
                              (&seedinfo, NULL,
                               "(seed-values(counter %d)(seed %b)(h %m))",
                               counter, (int)seedlen, seed, h_value));
@@ -879,7 +879,7 @@ dsa_generate_ext (int algo, unsigned int nbits, unsigned long evalue,
                   p = stpcpy (p, ")");
                 }
               p = stpcpy (p, ")");
-              
+
               /* Allocate space for the list of factors plus one for
                  an S-expression plus an extra NULL entry for safety
                  and fill it with the factors.  */
@@ -894,8 +894,8 @@ dsa_generate_ext (int algo, unsigned int nbits, unsigned long evalue,
                   for (j=0; j < nfactors; j++)
                     arg_list[i++] = (*retfactors) + j;
                   arg_list[i] = NULL;
-                  
-                  ec = gpg_err_code (gcry_sexp_build_array 
+
+                  ec = gpg_err_code (gcry_sexp_build_array
                                      (r_extrainfo, NULL, format, arg_list));
                 }
             }
@@ -1023,17 +1023,17 @@ dsa_get_nbits (int algo, gcry_mpi_t *pkey)
 
 
 \f
-/* 
+/*
      Self-test section.
  */
 
 static const char *
 selftest_sign_1024 (gcry_sexp_t pkey, gcry_sexp_t skey)
 {
-  static const char sample_data[] = 
+  static const char sample_data[] =
     "(data (flags pkcs1)"
     " (hash sha1 #a0b1c2d3e4f500102030405060708090a1b2c3d4#))";
-  static const char sample_data_bad[] = 
+  static const char sample_data_bad[] =
     "(data (flags pkcs1)"
     " (hash sha1 #a0b1c2d3e4f510102030405060708090a1b2c3d4#))";
 
@@ -1046,7 +1046,7 @@ selftest_sign_1024 (gcry_sexp_t pkey, gcry_sexp_t skey)
   err = gcry_sexp_sscan (&data, NULL,
                          sample_data, strlen (sample_data));
   if (!err)
-    err = gcry_sexp_sscan (&data_bad, NULL, 
+    err = gcry_sexp_sscan (&data_bad, NULL,
                            sample_data_bad, strlen (sample_data_bad));
   if (err)
     {
@@ -1093,10 +1093,10 @@ selftests_dsa (selftest_report_func_t report)
 
   /* Convert the S-expressions into the internal representation.  */
   what = "convert";
-  err = gcry_sexp_sscan (&skey, NULL, 
+  err = gcry_sexp_sscan (&skey, NULL,
                          sample_secret_key, strlen (sample_secret_key));
   if (!err)
-    err = gcry_sexp_sscan (&pkey, NULL, 
+    err = gcry_sexp_sscan (&pkey, NULL,
                            sample_public_key, strlen (sample_public_key));
   if (err)
     {
@@ -1146,7 +1146,7 @@ run_selftests (int algo, int extended, selftest_report_func_t report)
     default:
       ec = GPG_ERR_PUBKEY_ALGO;
       break;
-        
+
     }
   return ec;
 }
@@ -1163,7 +1163,7 @@ static const char *dsa_names[] =
 
 gcry_pk_spec_t _gcry_pubkey_spec_dsa =
   {
-    "DSA", dsa_names, 
+    "DSA", dsa_names,
     "pqgy", "pqgyx", "", "rs", "pqgy",
     GCRY_PK_USAGE_SIGN,
     dsa_generate,
@@ -1174,9 +1174,8 @@ gcry_pk_spec_t _gcry_pubkey_spec_dsa =
     dsa_verify,
     dsa_get_nbits
   };
-pk_extra_spec_t _gcry_pubkey_extraspec_dsa = 
+pk_extra_spec_t _gcry_pubkey_extraspec_dsa =
   {
     run_selftests,
     dsa_generate_ext
   };
-
index 0b0c07c..ce4be85 100644 (file)
@@ -115,7 +115,7 @@ wiener_map( unsigned int n )
     };
   int i;
 
-  for(i=0; t[i].p_n; i++ )  
+  for(i=0; t[i].p_n; i++ )
     {
       if( n <= t[i].p_n )
         return t[i].q_n;
@@ -158,7 +158,7 @@ test_keys ( ELG_secret_key *sk, unsigned int nbits, int nodie )
     log_fatal ("Elgamal test key for %s %s failed\n",
                (failed & 1)? "encrypt+decrypt":"",
                (failed & 2)? "sign+verify":"");
-  if (failed && DBG_CIPHER) 
+  if (failed && DBG_CIPHER)
     log_debug ("Elgamal test key for %s %s failed\n",
                (failed & 1)? "encrypt+decrypt":"",
                (failed & 2)? "sign+verify":"");
@@ -199,15 +199,15 @@ gen_k( gcry_mpi_t p, int small_k )
   if( DBG_CIPHER )
     log_debug("choosing a random k ");
   mpi_sub_ui( p_1, p, 1);
-  for(;;) 
+  for(;;)
     {
-      if( !rndbuf || nbits < 32 ) 
+      if( !rndbuf || nbits < 32 )
         {
           gcry_free(rndbuf);
           rndbuf = gcry_random_bytes_secure( nbytes, GCRY_STRONG_RANDOM );
         }
       else
-        { 
+        {
           /* Change only some of the higher bits.  We could improve
              this by directly requesting more memory at the first call
              to get_random_bytes() and use this the here maybe it is
@@ -218,7 +218,7 @@ gen_k( gcry_mpi_t p, int small_k )
           gcry_free(pp);
        }
       _gcry_mpi_set_buffer( k, rndbuf, nbytes, 0 );
-        
+
       for(;;)
         {
           if( !(mpi_cmp( k, p_1 ) < 0) )  /* check: k < (p-1) */
@@ -294,7 +294,7 @@ generate ( ELG_secret_key *sk, unsigned int nbits, gcry_mpi_t **ret_factors )
   if( DBG_CIPHER )
     log_debug("choosing a random x of size %u", xbits );
   rndbuf = NULL;
-  do 
+  do
     {
       if( DBG_CIPHER )
         progress('.');
@@ -314,21 +314,21 @@ generate ( ELG_secret_key *sk, unsigned int nbits, gcry_mpi_t **ret_factors )
               gcry_free(r);
             }
        }
-      else 
+      else
         {
           rndbuf = gcry_random_bytes_secure( (xbits+7)/8,
                                              GCRY_VERY_STRONG_RANDOM );
        }
       _gcry_mpi_set_buffer( x, rndbuf, (xbits+7)/8, 0 );
       mpi_clear_highbit( x, xbits+1 );
-    } 
+    }
   while( !( mpi_cmp_ui( x, 0 )>0 && mpi_cmp( x, p_min1 )<0 ) );
   gcry_free(rndbuf);
 
   y = gcry_mpi_new (nbits);
   gcry_mpi_powm( y, g, x, p );
 
-  if( DBG_CIPHER ) 
+  if( DBG_CIPHER )
     {
       progress('\n');
       log_mpidump("elg  p= ", p );
@@ -354,7 +354,7 @@ generate ( ELG_secret_key *sk, unsigned int nbits, gcry_mpi_t **ret_factors )
    value for the secret key but the one given as X.  This is useful to
    implement a passphrase based decryption for a public key based
    encryption.  It has appliactions in backup systems.
+
    Returns: A structure filled with all needed values and an array
            with n-1 factors of (p-1).  */
 static gcry_err_code_t
@@ -399,7 +399,7 @@ generate_using_x (ELG_secret_key *sk, unsigned int nbits, gcry_mpi_t x,
   y = gcry_mpi_new (nbits);
   gcry_mpi_powm ( y, g, x, p );
 
-  if ( DBG_CIPHER ) 
+  if ( DBG_CIPHER )
     {
       progress ('\n');
       log_mpidump ("elg  p= ", p );
@@ -493,7 +493,7 @@ decrypt(gcry_mpi_t output, gcry_mpi_t a, gcry_mpi_t b, ELG_secret_key *skey )
   mpi_invm( t1, t1, skey->p );
   mpi_mulm( output, b, t1, skey->p );
 #if 0
-  if( DBG_CIPHER ) 
+  if( DBG_CIPHER )
     {
       log_mpidump("elg decrypted x= ", skey->x);
       log_mpidump("elg decrypted p= ", skey->p);
@@ -533,7 +533,7 @@ sign(gcry_mpi_t a, gcry_mpi_t b, gcry_mpi_t input, ELG_secret_key *skey )
     mpi_mulm(b, t, inv, p_1 );
 
 #if 0
-    if( DBG_CIPHER ) 
+    if( DBG_CIPHER )
       {
        log_mpidump("elg sign p= ", skey->p);
        log_mpidump("elg sign g= ", skey->g);
@@ -652,7 +652,7 @@ elg_generate_ext (int algo, unsigned int nbits, unsigned long evalue,
   skey[1] = sk.g;
   skey[2] = sk.y;
   skey[3] = sk.x;
-  
+
   return ec;
 }
 
@@ -671,7 +671,7 @@ elg_generate (int algo, unsigned int nbits, unsigned long evalue,
   skey[1] = sk.g;
   skey[2] = sk.y;
   skey[3] = sk.x;
-  
+
   return GPG_ERR_NO_ERROR;
 }
 
@@ -692,7 +692,7 @@ elg_check_secret_key (int algo, gcry_mpi_t *skey)
       sk.g = skey[1];
       sk.y = skey[2];
       sk.x = skey[3];
-      
+
       if (! check_secret_key (&sk))
        err = GPG_ERR_BAD_SECKEY;
     }
@@ -773,7 +773,7 @@ elg_sign (int algo, gcry_mpi_t *resarr, gcry_mpi_t data, gcry_mpi_t *skey)
       resarr[1] = mpi_alloc (mpi_get_nlimbs (sk.p));
       sign (resarr[0], resarr[1], data, &sk);
     }
-  
+
   return err;
 }
 
@@ -837,10 +837,9 @@ gcry_pk_spec_t _gcry_pubkey_spec_elg =
     elg_get_nbits
   };
 
-pk_extra_spec_t _gcry_pubkey_extraspec_elg = 
+pk_extra_spec_t _gcry_pubkey_extraspec_elg =
   {
     NULL,
     elg_generate_ext,
     NULL
   };
-
index 656e180..8c413bc 100644 (file)
@@ -21,7 +21,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#ifdef HAVE_STDINT_H 
+#ifdef HAVE_STDINT_H
 # include <stdint.h>
 #endif
 
    describing the error.
 
    DATAMODE controls what will be hashed according to this table:
-   
+
      0 - Hash the supplied DATA of DATALEN.
      1 - Hash one million times a 'a'.  DATA and DATALEN are ignored.
-   
+
 */
 const char *
 _gcry_hash_selftest_check_one (int algo,
@@ -49,14 +49,14 @@ _gcry_hash_selftest_check_one (int algo,
   gcry_error_t err = 0;
   gcry_md_hd_t hd;
   unsigned char *digest;
-  
+
   if (_gcry_md_get_algo_dlen (algo) != expectlen)
     return "digest size does not match expected size";
-    
+
   err = _gcry_md_open (&hd, algo, 0);
   if (err)
     return "gcry_md_open failed";
-  
+
   switch (datamode)
     {
     case 0:
@@ -64,7 +64,7 @@ _gcry_hash_selftest_check_one (int algo,
       break;
 
     case 1: /* Hash one million times an "a". */
-      {                
+      {
         char aaa[1000];
         int i;
 
@@ -82,7 +82,7 @@ _gcry_hash_selftest_check_one (int algo,
   if (!result)
     {
       digest = _gcry_md_read (hd, algo);
-      
+
       if ( memcmp (digest, expect, expectlen) )
         result = "digest mismatch";
     }
@@ -91,4 +91,3 @@ _gcry_hash_selftest_check_one (int algo,
 
   return result;
 }
-
index 9c4e333..fdebef4 100644 (file)
 #define GCRY_HASH_COMMON_H
 
 
-const char * _gcry_hash_selftest_check_one 
-/**/         (int algo, 
+const char * _gcry_hash_selftest_check_one
+/**/         (int algo,
               int datamode, const void *data, size_t datalen,
               const void *expect, size_t expectlen);
-     
+
 
 
 
index 56c9b20..a32ece7 100644 (file)
@@ -17,7 +17,7 @@
  * License along with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 
-/* 
+/*
    Although algorithm self-tests are usually implemented in the module
    implementing the algorithm, the case for HMAC is different because
    HMAC is implemnetd on a higher level using a special feature of the
@@ -33,7 +33,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#ifdef HAVE_STDINT_H 
+#ifdef HAVE_STDINT_H
 # include <stdint.h>
 #endif
 
@@ -47,7 +47,7 @@
    succdess or a string describing the failure.  */
 static const char *
 check_one (int algo,
-           const void *data, size_t datalen, 
+           const void *data, size_t datalen,
            const void *key, size_t keylen,
            const void *expect, size_t expectlen)
 {
@@ -88,7 +88,7 @@ check_one (int algo,
       return "does not match";
     }
   _gcry_md_close (hd);
-  return NULL;  
+  return NULL;
 }
 
 
@@ -123,7 +123,7 @@ selftests_sha1 (int extended, selftest_report_func_t report)
                           "\xa4\x58\x30\x73\x7d\x5c\xc6\xc7\x5d\x24", 20);
       if (errtxt)
         goto failed;
-      
+
       what = "FIPS-198a, A.3";
       for (i=0, j=0x50; i < 100; i++)
         key[i] = j++;
@@ -134,7 +134,7 @@ selftests_sha1 (int extended, selftest_report_func_t report)
                           "\x5c\xaf\x7c\xb0\x92\xec\xf8\xd1\xa3\xaa", 20 );
       if (errtxt)
         goto failed;
-      
+
       what = "FIPS-198a, A.4";
       for (i=0, j=0x70; i < 49; i++)
         key[i] = j++;
@@ -160,7 +160,7 @@ selftests_sha1 (int extended, selftest_report_func_t report)
 static gpg_err_code_t
 selftests_sha224 (int extended, selftest_report_func_t report)
 {
-  static struct 
+  static struct
   {
     const char * const desc;
     const char * const data;
@@ -169,7 +169,7 @@ selftests_sha224 (int extended, selftest_report_func_t report)
   } tv[] =
     {
       { "data-28 key-4",
-        "what do ya want for nothing?", 
+        "what do ya want for nothing?",
         "Jefe",
         { 0xa3, 0x0e, 0x01, 0x09, 0x8b, 0xc6, 0xdb, 0xbf,
           0x45, 0x69, 0x0f, 0x3a, 0x7e, 0x9e, 0x6d, 0x0f,
@@ -248,7 +248,7 @@ selftests_sha224 (int extended, selftest_report_func_t report)
   const char *what;
   const char *errtxt;
   int tvidx;
-  
+
   for (tvidx=0; tv[tvidx].desc; tvidx++)
     {
       what = tv[tvidx].desc;
@@ -274,7 +274,7 @@ selftests_sha224 (int extended, selftest_report_func_t report)
 static gpg_err_code_t
 selftests_sha256 (int extended, selftest_report_func_t report)
 {
-  static struct 
+  static struct
   {
     const char * const desc;
     const char * const data;
@@ -283,7 +283,7 @@ selftests_sha256 (int extended, selftest_report_func_t report)
   } tv[] =
     {
       { "data-28 key-4",
-        "what do ya want for nothing?", 
+        "what do ya want for nothing?",
         "Jefe",
        { 0x5b, 0xdc, 0xc1, 0x46, 0xbf, 0x60, 0x75, 0x4e,
           0x6a, 0x04, 0x24, 0x26, 0x08, 0x95, 0x75, 0xc7,
@@ -362,7 +362,7 @@ selftests_sha256 (int extended, selftest_report_func_t report)
   const char *what;
   const char *errtxt;
   int tvidx;
-  
+
   for (tvidx=0; tv[tvidx].desc; tvidx++)
     {
       hmac256_context_t hmachd;
@@ -416,7 +416,7 @@ selftests_sha256 (int extended, selftest_report_func_t report)
 static gpg_err_code_t
 selftests_sha384 (int extended, selftest_report_func_t report)
 {
-  static struct 
+  static struct
   {
     const char * const desc;
     const char * const data;
@@ -425,7 +425,7 @@ selftests_sha384 (int extended, selftest_report_func_t report)
   } tv[] =
     {
       { "data-28 key-4",
-        "what do ya want for nothing?", 
+        "what do ya want for nothing?",
         "Jefe",
         { 0xaf, 0x45, 0xd2, 0xe3, 0x76, 0x48, 0x40, 0x31,
           0x61, 0x7f, 0x78, 0xd2, 0xb5, 0x8a, 0x6b, 0x1b,
@@ -516,7 +516,7 @@ selftests_sha384 (int extended, selftest_report_func_t report)
   const char *what;
   const char *errtxt;
   int tvidx;
-  
+
   for (tvidx=0; tv[tvidx].desc; tvidx++)
     {
       what = tv[tvidx].desc;
@@ -542,7 +542,7 @@ selftests_sha384 (int extended, selftest_report_func_t report)
 static gpg_err_code_t
 selftests_sha512 (int extended, selftest_report_func_t report)
 {
-  static struct 
+  static struct
   {
     const char * const desc;
     const char * const data;
@@ -551,7 +551,7 @@ selftests_sha512 (int extended, selftest_report_func_t report)
   } tv[] =
     {
       { "data-28 key-4",
-        "what do ya want for nothing?", 
+        "what do ya want for nothing?",
         "Jefe",
         { 0x16, 0x4b, 0x7a, 0x7b, 0xfc, 0xf8, 0x19, 0xe2,
           0xe3, 0x95, 0xfb, 0xe7, 0x3b, 0x56, 0xe0, 0xa3,
@@ -654,7 +654,7 @@ selftests_sha512 (int extended, selftest_report_func_t report)
   const char *what;
   const char *errtxt;
   int tvidx;
-  
+
   for (tvidx=0; tv[tvidx].desc; tvidx++)
     {
       what = tv[tvidx].desc;
index 5f12126..053eab1 100644 (file)
@@ -43,15 +43,15 @@ static struct digest_table_entry
   gcry_md_spec_t *digest;
   md_extra_spec_t *extraspec;
   unsigned int algorithm;
-  int fips_allowed; 
+  int fips_allowed;
 } digest_table[] =
   {
-#if USE_CRC    
+#if USE_CRC
     /* We allow the CRC algorithms even in FIPS mode because they are
        actually no cryptographic primitives.  */
-    { &_gcry_digest_spec_crc32,   
+    { &_gcry_digest_spec_crc32,
       &dummy_extra_spec,                 GCRY_MD_CRC32, 1 },
-    { &_gcry_digest_spec_crc32_rfc1510,  
+    { &_gcry_digest_spec_crc32_rfc1510,
       &dummy_extra_spec,                 GCRY_MD_CRC32_RFC1510, 1 },
     { &_gcry_digest_spec_crc24_rfc2440,
       &dummy_extra_spec,                 GCRY_MD_CRC24_RFC2440, 1 },
@@ -69,7 +69,7 @@ static struct digest_table_entry
       &dummy_extra_spec,                 GCRY_MD_RMD160 },
 #endif
 #if USE_SHA1
-    { &_gcry_digest_spec_sha1, 
+    { &_gcry_digest_spec_sha1,
       &_gcry_digest_extraspec_sha1,      GCRY_MD_SHA1, 1 },
 #endif
 #if USE_SHA256
@@ -177,7 +177,7 @@ md_register_default (void)
 {
   gcry_err_code_t err = 0;
   int i;
-  
+
   for (i = 0; !err && digest_table[i].digest; i++)
     {
       if ( fips_mode ())
@@ -230,7 +230,7 @@ gcry_md_lookup_func_oid (void *spec, void *data)
 }
 
 /* Internal function.  Lookup a digest entry by it's name.  */
-static gcry_module_t 
+static gcry_module_t
 gcry_md_lookup_name (const char *name)
 {
   gcry_module_t digest;
@@ -271,11 +271,11 @@ _gcry_md_register (gcry_md_spec_t *digest,
 
   ath_mutex_lock (&digests_registered_lock);
   err = _gcry_module_add (&digests_registered, 0,
-                         (void *) digest, 
-                         (void *)(extraspec? extraspec : &dummy_extra_spec), 
+                         (void *) digest,
+                         (void *)(extraspec? extraspec : &dummy_extra_spec),
                           &mod);
   ath_mutex_unlock (&digests_registered_lock);
-  
+
   if (! err)
     {
       *module = mod;
@@ -296,7 +296,7 @@ gcry_md_unregister (gcry_module_t module)
 }
 
 
-static int 
+static int
 search_oid (const char *oid, int *algorithm, gcry_md_oid_spec_t *oid_spec)
 {
   gcry_module_t module;
@@ -567,7 +567,7 @@ md_enable (gcry_md_hd_t hd, int algorithm)
  else
     digest = (gcry_md_spec_t *) module->spec;
 
-  
+
   if (!err && algorithm == GCRY_MD_MD5 && fips_mode ())
     {
       _gcry_inactivate_fips_mode ("MD5 used");
@@ -578,7 +578,7 @@ md_enable (gcry_md_hd_t hd, int algorithm)
           err = GPG_ERR_DIGEST_ALGO;
         }
     }
-  
+
   if (!err)
     {
       size_t size = (sizeof (*entry)
@@ -635,7 +635,7 @@ md_copy (gcry_md_hd_t ahd, gcry_md_hd_t *b_hd)
   GcryDigestEntry *ar, *br;
   gcry_md_hd_t bhd;
   size_t n;
-  
+
   if (ahd->bufpos)
     md_write (ahd, NULL, 0);
 
@@ -697,7 +697,7 @@ md_copy (gcry_md_hd_t ahd, gcry_md_hd_t *b_hd)
                            - sizeof (ar->context)));
           br->next = b->list;
           b->list = br;
-          
+
           /* Add a reference to the module.  */
           ath_mutex_lock (&digests_registered_lock);
           _gcry_module_use (br->module);
@@ -787,7 +787,7 @@ static void
 md_write (gcry_md_hd_t a, const void *inbuf, size_t inlen)
 {
   GcryDigestEntry *r;
-  
+
   if (a->ctx->debug)
     {
       if (a->bufpos && fwrite (a->buf, a->bufpos, 1, a->ctx->debug) != 1)
@@ -838,8 +838,8 @@ md_final (gcry_md_hd_t a)
 
       if (err)
        _gcry_fatal_error (err, NULL);
-      md_write (om, 
-                (a->ctx->macpads)+(a->ctx->macpads_Bsize), 
+      md_write (om,
+                (a->ctx->macpads)+(a->ctx->macpads_Bsize),
                 a->ctx->macpads_Bsize);
       md_write (om, p, dlen);
       md_final (om);
@@ -860,7 +860,7 @@ prepare_macpads (gcry_md_hd_t hd, const unsigned char *key, size_t keylen)
   if (!algo)
     return GPG_ERR_DIGEST_ALGO; /* Might happen if no algo is enabled.  */
 
-  if ( keylen > hd->ctx->macpads_Bsize ) 
+  if ( keylen > hd->ctx->macpads_Bsize )
     {
       helpkey = gcry_malloc_secure (md_digest_length (algo));
       if (!helpkey)
@@ -876,7 +876,7 @@ prepare_macpads (gcry_md_hd_t hd, const unsigned char *key, size_t keylen)
   opad = (hd->ctx->macpads)+(hd->ctx->macpads_Bsize);
   memcpy ( ipad, key, keylen );
   memcpy ( opad, key, keylen );
-  for (i=0; i < hd->ctx->macpads_Bsize; i++ ) 
+  for (i=0; i < hd->ctx->macpads_Bsize; i++ )
     {
       ipad[i] ^= 0x36;
       opad[i] ^= 0x5c;
@@ -890,7 +890,7 @@ gcry_error_t
 gcry_md_ctl (gcry_md_hd_t hd, int cmd, void *buffer, size_t buflen)
 {
   gcry_err_code_t rc = 0;
-  
+
   switch (cmd)
     {
     case GCRYCTL_FINALIZE:
@@ -1167,7 +1167,7 @@ gcry_md_algo_info (int algo, int what, void *buffer, size_t *nbytes)
         {
           const char unsigned *asn;
           size_t asnlen;
-          
+
           asn = md_asn_oid (algo, &asnlen, NULL);
           if (buffer && (*nbytes >= asnlen))
          {
@@ -1202,7 +1202,7 @@ md_start_debug ( gcry_md_hd_t md, const char *suffix )
 
   if (fips_mode ())
     return;
-  
+
   if ( md->ctx->debug )
     {
       log_debug("Oops: md debug already started\n");
@@ -1268,7 +1268,7 @@ gcry_md_info (gcry_md_hd_t h, int cmd, void *buffer, size_t *nbytes)
        else
          {
            algo = *(int*)buffer;
-           
+
            *nbytes = 0;
            for(r=h->ctx->list; r; r = r->next ) {
              if (r->module->mod_id == algo)
@@ -1302,7 +1302,7 @@ _gcry_md_init (void)
 
 
 int
-gcry_md_is_secure (gcry_md_hd_t a) 
+gcry_md_is_secure (gcry_md_hd_t a)
 {
   size_t value;
 
@@ -1314,7 +1314,7 @@ gcry_md_is_secure (gcry_md_hd_t a)
 
 
 int
-gcry_md_is_enabled (gcry_md_hd_t a, int algo) 
+gcry_md_is_enabled (gcry_md_hd_t a, int algo)
 {
   size_t value;
 
@@ -1366,7 +1366,7 @@ _gcry_md_selftest (int algo, int extended, selftest_report_func_t report)
     {
       ec = GPG_ERR_DIGEST_ALGO;
       if (report)
-        report ("digest", algo, "module", 
+        report ("digest", algo, "module",
                 module && !(module->flags & FLAG_MODULE_DISABLED)?
                 "no selftest available" :
                 module? "algorithm disabled" : "algorithm not found");
index a13c45c..8909ec4 100644 (file)
@@ -197,7 +197,7 @@ md4_write ( void *context, const void *inbuf_arg, size_t inlen)
   MD4_CONTEXT *hd = context;
 
   if( hd->count == 64 ) /* flush the buffer */
-    { 
+    {
       transform( hd, hd->buf );
       _gcry_burn_stack (80+6*sizeof(void*));
       hd->count = 0;
@@ -258,15 +258,15 @@ md4_final( void *context )
   lsb <<= 3;
   msb <<= 3;
   msb |= t >> 29;
-  
+
   if( hd->count < 56 )  /* enough room */
     {
       hd->buf[hd->count++] = 0x80; /* pad */
       while( hd->count < 56 )
         hd->buf[hd->count++] = 0;  /* pad */
     }
-  else /* need one extra block */ 
-    { 
+  else /* need one extra block */
+    {
       hd->buf[hd->count++] = 0x80; /* pad character */
       while( hd->count < 64 )
         hd->buf[hd->count++] = 0;
@@ -324,4 +324,3 @@ gcry_md_spec_t _gcry_digest_spec_md4 =
     md4_init, md4_write, md4_final, md4_read,
     sizeof (MD4_CONTEXT)
   };
-
index 051fc81..4793882 100644 (file)
@@ -20,8 +20,8 @@
  *
  * According to the definition of MD5 in RFC 1321 from April 1992.
  * NOTE: This is *not* the same file as the one from glibc.
- * Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995. 
- * heavily modified for GnuPG by Werner Koch <wk@gnupg.org> 
+ * Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
+ * heavily modified for GnuPG by Werner Koch <wk@gnupg.org>
  */
 
 /* Test values:
@@ -87,9 +87,9 @@ transform ( MD5_CONTEXT *ctx, const unsigned char *data )
   register u32 C = ctx->C;
   register u32 D = ctx->D;
   u32 *cwp = correct_words;
-    
+
 #ifdef WORDS_BIGENDIAN
-  { 
+  {
     int i;
     byte *p2, *p1;
     for(i=0, p1=data, p2=(byte*)correct_words; i < 16; i++, p2 += 4 )
@@ -220,7 +220,7 @@ md5_write( void *context, const void *inbuf_arg , size_t inlen)
 {
   const unsigned char *inbuf = inbuf_arg;
   MD5_CONTEXT *hd = context;
-  
+
   if( hd->count == 64 )  /* flush the buffer */
     {
       transform( hd, hd->buf );
@@ -241,7 +241,7 @@ md5_write( void *context, const void *inbuf_arg , size_t inlen)
     }
   _gcry_burn_stack (80+6*sizeof(void*));
 
-  while( inlen >= 64 ) 
+  while( inlen >= 64 )
     {
       transform( hd, inbuf );
       hd->count = 0;
@@ -268,7 +268,7 @@ md5_final( void *context)
   MD5_CONTEXT *hd = context;
   u32 t, msb, lsb;
   byte *p;
-  
+
   md5_write(hd, NULL, 0); /* flush */;
 
   t = hd->nblocks;
index f072775..edeb7c8 100644 (file)
@@ -31,7 +31,7 @@
 #include "cipher.h"
 #include "ath.h"
 
-static gcry_mpi_t gen_prime (unsigned int nbits, int secret, int randomlevel, 
+static gcry_mpi_t gen_prime (unsigned int nbits, int secret, int randomlevel,
                              int (*extra_check)(void *, gcry_mpi_t),
                              void *extra_check_arg);
 static int check_prime( gcry_mpi_t prime, gcry_mpi_t val_2, int rm_rounds,
@@ -132,7 +132,7 @@ static int no_of_small_prime_numbers = DIM (small_prime_numbers) - 1;
 \f
 /* An object and a list to build up a global pool of primes.  See
    save_pool_prime and get_pool_prime. */
-struct primepool_s 
+struct primepool_s
 {
   struct primepool_s *next;
   gcry_mpi_t prime;      /* If this is NULL the entry is not used. */
@@ -163,7 +163,7 @@ save_pool_prime (gcry_mpi_t prime, gcry_random_level_t randomlevel)
       /* Remove some of the entries.  Our strategy is removing
          the last third from the list. */
       int i;
-      
+
       for (i=0, item2 = primepool; item2; item2 = item2->next)
         {
           if (i >= n/3*2)
@@ -182,7 +182,7 @@ save_pool_prime (gcry_mpi_t prime, gcry_random_level_t randomlevel)
         {
           /* Out of memory.  Silently giving up. */
           gcry_mpi_release (prime);
-          return; 
+          return;
         }
       item->next = primepool;
       primepool = item;
@@ -359,7 +359,7 @@ prime_generate_internal (int need_q_factor,
       fbits = (pbits - req_qbits -1) / n;
       qbits = pbits - n * fbits;
     }
-  
+
   if (DBG_CIPHER)
     log_debug ("gen prime: pbits=%u qbits=%u fbits=%u/%u n=%d\n",
                pbits, req_qbits, qbits, fbits, n);
@@ -373,7 +373,7 @@ prime_generate_internal (int need_q_factor,
   /* Generate a specific Q-Factor if requested. */
   if (need_q_factor)
     q_factor = gen_prime (req_qbits, is_secret, randomlevel, NULL, NULL);
-  
+
   /* Allocate an array to hold all factors + 2 for later usage.  */
   factors = gcry_calloc (n + 2, sizeof (*factors));
   if (!factors)
@@ -391,10 +391,10 @@ prime_generate_internal (int need_q_factor,
     }
   for (i=0; i < n; i++)
     pool_in_use[i] = -1;
-      
+
   /* Make a pool of 3n+5 primes (this is an arbitrary value).  We
-     require at least 30 primes for are useful selection process. 
-     
+     require at least 30 primes for are useful selection process.
+
      Fixme: We need to research the best formula for sizing the pool.
   */
   m = n * 3 + 5;
@@ -443,7 +443,7 @@ prime_generate_internal (int need_q_factor,
           is_locked = 1;
           for (i = 0; i < n; i++)
             {
-              perms[i] = 1; 
+              perms[i] = 1;
               /* At a maximum we use strong random for the factors.
                  This saves us a lot of entropy. Given that Q and
                  possible Q-factor are also used in the final prime
@@ -523,12 +523,12 @@ prime_generate_internal (int need_q_factor,
               gcry_free (perms);
               perms = NULL;
               progress ('!');
-              goto next_try;   
+              goto next_try;
             }
         }
 
        /* Generate next prime candidate:
-          p = 2 * q [ * q_factor] * factor_0 * factor_1 * ... * factor_n + 1. 
+          p = 2 * q [ * q_factor] * factor_0 * factor_1 * ... * factor_n + 1.
          */
        mpi_set (prime, q);
        mpi_mul_ui (prime, prime, 2);
@@ -553,7 +553,7 @@ prime_generate_internal (int need_q_factor,
          }
        else
          count1 = 0;
-        
+
        if (nprime > pbits)
          {
            if (++count2 > 20)
@@ -624,14 +624,14 @@ prime_generate_internal (int need_q_factor,
               factors_new[i] = mpi_copy (factors[i]);
         }
     }
-  
+
   if (g)
     {
       /* Create a generator (start with 3).  */
       gcry_mpi_t tmp = mpi_alloc (mpi_get_nlimbs (prime));
       gcry_mpi_t b = mpi_alloc (mpi_get_nlimbs (prime));
       gcry_mpi_t pmin1 = mpi_alloc (mpi_get_nlimbs (prime));
-      
+
       if (need_q_factor)
         err = GPG_ERR_NOT_IMPLEMENTED;
       else
@@ -662,7 +662,7 @@ prime_generate_internal (int need_q_factor,
                 }
               if (DBG_CIPHER)
                 progress('\n');
-            } 
+            }
           while (i < n + 2);
 
           mpi_free (factors[n+1]);
@@ -671,7 +671,7 @@ prime_generate_internal (int need_q_factor,
           mpi_free (pmin1);
         }
     }
-  
+
   if (! DBG_CIPHER)
     progress ('\n');
 
@@ -740,7 +740,7 @@ _gcry_generate_elg_prime (int mode, unsigned pbits, unsigned qbits,
 {
   gcry_err_code_t err = GPG_ERR_NO_ERROR;
   gcry_mpi_t prime = NULL;
-  
+
   err = prime_generate_internal ((mode == 1), &prime, pbits, qbits, g,
                                 ret_factors, GCRY_WEAK_RANDOM, 0, 0,
                                  NULL, NULL);
@@ -750,7 +750,7 @@ _gcry_generate_elg_prime (int mode, unsigned pbits, unsigned qbits,
 
 
 static gcry_mpi_t
-gen_prime (unsigned int nbits, int secret, int randomlevel, 
+gen_prime (unsigned int nbits, int secret, int randomlevel,
            int (*extra_check)(void *, gcry_mpi_t), void *extra_check_arg)
 {
   gcry_mpi_t prime, ptest, pminus1, val_2, val_3, result;
@@ -758,7 +758,7 @@ gen_prime (unsigned int nbits, int secret, int randomlevel,
   unsigned int x, step;
   unsigned int count1, count2;
   int *mods;
-  
+
 /*   if (  DBG_CIPHER ) */
 /*     log_debug ("generate a prime of %u bits ", nbits ); */
 
@@ -777,10 +777,10 @@ gen_prime (unsigned int nbits, int secret, int randomlevel,
   for (;;)
     {  /* try forvever */
       int dotcount=0;
-      
+
       /* generate a random number */
       gcry_mpi_randomize( prime, nbits, randomlevel );
-      
+
       /* Set high order bit to 1, set low order bit to 1.  If we are
          generating a secret prime we are most probably doing that
          for RSA, to make sure that the modulus does have the
@@ -789,17 +789,17 @@ gen_prime (unsigned int nbits, int secret, int randomlevel,
       if (secret)
         mpi_set_bit (prime, nbits-2);
       mpi_set_bit(prime, 0);
-      
+
       /* Calculate all remainders. */
       for (i=0; (x = small_prime_numbers[i]); i++ )
         mods[i] = mpi_fdiv_r_ui(NULL, prime, x);
-      
+
       /* Now try some primes starting with prime. */
-      for(step=0; step < 20000; step += 2 ) 
+      for(step=0; step < 20000; step += 2 )
         {
           /* Check against all the small primes we have in mods. */
           count1++;
-          for (i=0; (x = small_prime_numbers[i]); i++ ) 
+          for (i=0; (x = small_prime_numbers[i]); i++ )
             {
               while ( mods[i] + step >= x )
                 mods[i] -= x;
@@ -808,7 +808,7 @@ gen_prime (unsigned int nbits, int secret, int randomlevel,
            }
           if ( x )
             continue;   /* Found a multiple of an already known prime. */
-          
+
           mpi_add_ui( ptest, prime, step );
 
           /* Do a fast Fermat test now. */
@@ -816,7 +816,7 @@ gen_prime (unsigned int nbits, int secret, int randomlevel,
           mpi_sub_ui( pminus1, ptest, 1);
           gcry_mpi_powm( result, val_2, pminus1, ptest );
           if ( !mpi_cmp_ui( result, 1 ) )
-            { 
+            {
               /* Not composite, perform stronger tests */
               if (is_prime(ptest, 5, &count2 ))
                 {
@@ -828,13 +828,13 @@ gen_prime (unsigned int nbits, int secret, int randomlevel,
                     }
 
                   if (extra_check && extra_check (extra_check_arg, ptest))
-                    { 
+                    {
                       /* The extra check told us that this prime is
                          not of the caller's taste. */
                       progress ('/');
                     }
                   else
-                    { 
+                    {
                       /* Got it. */
                       mpi_free(val_2);
                       mpi_free(val_3);
@@ -842,7 +842,7 @@ gen_prime (unsigned int nbits, int secret, int randomlevel,
                       mpi_free(pminus1);
                       mpi_free(prime);
                       gcry_free(mods);
-                      return ptest; 
+                      return ptest;
                     }
                 }
            }
@@ -883,7 +883,7 @@ check_prime( gcry_mpi_t prime, gcry_mpi_t val_2, int rm_rounds,
     gcry_mpi_powm( result, val_2, pminus1, prime );
     mpi_free( pminus1 );
     if ( mpi_cmp_ui( result, 1 ) )
-      { 
+      {
         /* Is composite. */
         mpi_free( result );
         progress('.');
@@ -924,7 +924,7 @@ is_prime (gcry_mpi_t n, int steps, unsigned int *count)
   unsigned nbits = mpi_get_nbits( n );
 
   if (steps < 5) /* Make sure that we do at least 5 rounds. */
-    steps = 5; 
+    steps = 5;
 
   mpi_sub_ui( nminus1, n, 1 );
 
@@ -996,7 +996,7 @@ is_prime (gcry_mpi_t n, int steps, unsigned int *count)
            j++;
        if (j == m)
          goto ready;
-     
+
    This code is based on the algorithm 452 from the "Collected
    Algorithms From ACM, Volume II" by C. N. Liu and D. T. Tang.
 */
@@ -1010,7 +1010,7 @@ m_out_of_n ( char *array, int m, int n )
 
   /* Need to handle this simple case separately. */
   if( m == 1 )
-    { 
+    {
       for (i=0; i < n; i++ )
         {
           if ( array[i] )
@@ -1060,7 +1060,7 @@ m_out_of_n ( char *array, int m, int n )
       else
         k1 = k2 + 1;
     }
-  else 
+  else
     {
       /* M is even. */
       if( !array[n-1] )
@@ -1069,7 +1069,7 @@ m_out_of_n ( char *array, int m, int n )
           k2 = k1 + 1;
           goto leave;
         }
-        
+
       if( !(j1 & 1) )
         {
           k1 = n - j1;
@@ -1080,7 +1080,7 @@ m_out_of_n ( char *array, int m, int n )
         }
     scan:
       jp = n - j1 - 1;
-      for (i=1; i <= jp; i++ ) 
+      for (i=1; i <= jp; i++ )
         {
           i1 = jp + 2 - i;
           if( array[i1-1]  )
@@ -1128,7 +1128,7 @@ gcry_prime_generate (gcry_mpi_t *prime, unsigned int prime_bits,
 
   if (!prime)
     return gpg_error (GPG_ERR_INV_ARG);
-  *prime = NULL; 
+  *prime = NULL;
 
   if (flags & GCRY_PRIME_FLAG_SPECIAL_FACTOR)
     mode = 1;
@@ -1156,7 +1156,7 @@ gcry_prime_generate (gcry_mpi_t *prime, unsigned int prime_bits,
                   mpi_free (factors_generated[i]);
                 gcry_free (factors_generated);
               }
-           err = GPG_ERR_GENERAL; 
+           err = GPG_ERR_GENERAL;
          }
       }
 
@@ -1207,29 +1207,29 @@ gcry_prime_group_generator (gcry_mpi_t *r_g,
 
   if (!factors || !r_g || !prime)
     return gpg_error (GPG_ERR_INV_ARG);
-  *r_g = NULL; 
+  *r_g = NULL;
 
   for (n=0; factors[n]; n++)
     ;
   if (n < 2)
     return gpg_error (GPG_ERR_INV_ARG);
 
-  /* Extra sanity check - usually disabled. */  
+  /* Extra sanity check - usually disabled. */
 /*   mpi_set (tmp, factors[0]); */
 /*   for(i = 1; i < n; i++) */
 /*     mpi_mul (tmp, tmp, factors[i]); */
 /*   mpi_add_ui (tmp, tmp, 1); */
 /*   if (mpi_cmp (prime, tmp)) */
 /*     return gpg_error (GPG_ERR_INV_ARG); */
-  
-  gcry_mpi_sub_ui (pmin1, prime, 1);      
-  do         
+
+  gcry_mpi_sub_ui (pmin1, prime, 1);
+  do
     {
       if (first)
         first = 0;
       else
         gcry_mpi_add_ui (g, g, 1);
-      
+
       if (DBG_CIPHER)
         {
           log_debug ("checking g:");
@@ -1238,7 +1238,7 @@ gcry_prime_group_generator (gcry_mpi_t *r_g,
         }
       else
         progress('^');
-      
+
       for (i = 0; i < n; i++)
         {
           mpi_fdiv_q (tmp, pmin1, factors[i]);
@@ -1250,13 +1250,13 @@ gcry_prime_group_generator (gcry_mpi_t *r_g,
         progress('\n');
     }
   while (i < n);
-  
+
   gcry_mpi_release (tmp);
-  gcry_mpi_release (b); 
-  gcry_mpi_release (pmin1); 
-  *r_g = g; 
+  gcry_mpi_release (b);
+  gcry_mpi_release (pmin1);
+  *r_g = g;
 
-  return 0; 
+  return 0;
 }
 
 /* Convenience function to release the factors array. */
@@ -1266,7 +1266,7 @@ gcry_prime_release_factors (gcry_mpi_t *factors)
   if (factors)
     {
       int i;
-      
+
       for (i=0; factors[i]; i++)
         mpi_free (factors[i]);
       gcry_free (factors);
@@ -1279,11 +1279,11 @@ gcry_prime_release_factors (gcry_mpi_t *factors)
 static gcry_mpi_t
 find_x931_prime (const gcry_mpi_t pfirst)
 {
-  gcry_mpi_t val_2 = mpi_alloc_set_ui (2); 
+  gcry_mpi_t val_2 = mpi_alloc_set_ui (2);
   gcry_mpi_t prime;
-  
+
   prime = gcry_mpi_copy (pfirst);
-  /* If P is even add 1.  */ 
+  /* If P is even add 1.  */
   mpi_set_bit (prime, 0);
 
   /* We use 64 Rabin-Miller rounds which is better and thus
@@ -1299,7 +1299,7 @@ find_x931_prime (const gcry_mpi_t pfirst)
 }
 
 
-/* Generate a prime using the algorithm from X9.31 appendix B.4. 
+/* Generate a prime using the algorithm from X9.31 appendix B.4.
 
    This function requires that the provided public exponent E is odd.
    XP, XP1 and XP2 are the seed values.  All values are mandatory.
@@ -1308,7 +1308,7 @@ find_x931_prime (const gcry_mpi_t pfirst)
    internal values P1 and P2 are saved at these addresses.  On error
    NULL is returned.  */
 gcry_mpi_t
-_gcry_derive_x931_prime (const gcry_mpi_t xp, 
+_gcry_derive_x931_prime (const gcry_mpi_t xp,
                          const gcry_mpi_t xp1, const gcry_mpi_t xp2,
                          const gcry_mpi_t e,
                          gcry_mpi_t *r_p1, gcry_mpi_t *r_p2)
@@ -1327,20 +1327,20 @@ _gcry_derive_x931_prime (const gcry_mpi_t xp,
 
   {
     gcry_mpi_t r1, tmp;
-  
+
     /* r1 = (p2^{-1} mod p1)p2 - (p1^{-1} mod p2) */
     tmp = mpi_alloc_like (p1);
     mpi_invm (tmp, p2, p1);
     mpi_mul (tmp, tmp, p2);
     r1 = tmp;
-    
+
     tmp = mpi_alloc_like (p2);
     mpi_invm (tmp, p1, p2);
     mpi_mul (tmp, tmp, p1);
     mpi_sub (r1, r1, tmp);
 
     /* Fixup a negative value.  */
-    if (mpi_is_neg (r1)) 
+    if (mpi_is_neg (r1))
       mpi_add (r1, r1, p1p2);
 
     /* yp0 = xp + (r1 - xp mod p1*p2)  */
@@ -1350,7 +1350,7 @@ _gcry_derive_x931_prime (const gcry_mpi_t xp,
     mpi_free (r1);
 
     /* Fixup a negative value.  */
-    if (mpi_cmp (yp0, xp) < 0 ) 
+    if (mpi_cmp (yp0, xp) < 0 )
       mpi_add (yp0, yp0, p1p2);
   }
 
@@ -1378,10 +1378,10 @@ _gcry_derive_x931_prime (const gcry_mpi_t xp,
    */
 
   {
-    gcry_mpi_t val_2 = mpi_alloc_set_ui (2); 
+    gcry_mpi_t val_2 = mpi_alloc_set_ui (2);
     gcry_mpi_t gcdtmp = mpi_alloc_like (yp0);
     int gcdres;
-  
+
     mpi_sub_ui (p1p2, p1p2, 1); /* Adjust for loop body.  */
     mpi_sub_ui (yp0, yp0, 1);   /* Ditto.  */
     for (;;)
@@ -1453,7 +1453,7 @@ _gcry_generate_fips186_2_prime (unsigned int pbits, unsigned int qbits,
     ; /* No seed value given:  We are asked to generate it.  */
   else if (!seed || seedlen < qbits/8)
     return GPG_ERR_INV_ARG;
-  
+
   /* Allocate a buffer to later compute SEED+some_increment. */
   seed_plus = gcry_malloc (seedlen < 20? 20:seedlen);
   if (!seed_plus)
@@ -1468,7 +1468,7 @@ _gcry_generate_fips186_2_prime (unsigned int pbits, unsigned int qbits,
   value_w = gcry_mpi_new (pbits);
   value_x = gcry_mpi_new (pbits);
 
- restart:  
+ restart:
   /* Generate Q.  */
   for (;;)
     {
@@ -1479,7 +1479,7 @@ _gcry_generate_fips186_2_prime (unsigned int pbits, unsigned int qbits,
           gcry_create_nonce (seed_help_buffer, seedlen);
           seed = seed_help_buffer;
         }
-      
+
       /* Step 2: U = sha1(seed) ^ sha1((seed+1) mod 2^{qbits})  */
       memcpy (seed_plus, seed, seedlen);
       for (i=seedlen-1; i >= 0; i--)
@@ -1492,16 +1492,16 @@ _gcry_generate_fips186_2_prime (unsigned int pbits, unsigned int qbits,
       gcry_md_hash_buffer (GCRY_MD_SHA1, digest, seed_plus, seedlen);
       for (i=0; i < sizeof value_u; i++)
         value_u[i] ^= digest[i];
-  
+
       /* Step 3:  Form q from U  */
       gcry_mpi_release (prime_q); prime_q = NULL;
-      ec = gpg_err_code (gcry_mpi_scan (&prime_q, GCRYMPI_FMT_USG, 
+      ec = gpg_err_code (gcry_mpi_scan (&prime_q, GCRYMPI_FMT_USG,
                                         value_u, sizeof value_u, NULL));
       if (ec)
         goto leave;
       mpi_set_highbit (prime_q, qbits-1 );
       mpi_set_bit (prime_q, 0);
-      
+
       /* Step 4:  Test whether Q is prime using 64 round of Rabin-Miller.  */
       if (check_prime (prime_q, val_2, 64, NULL, NULL))
         break; /* Yes, Q is prime.  */
@@ -1509,7 +1509,7 @@ _gcry_generate_fips186_2_prime (unsigned int pbits, unsigned int qbits,
       /* Step 5.  */
       seed = NULL;  /* Force a new seed at Step 1.  */
     }
-  
+
   /* Step 6.  Note that we do no use an explicit offset but increment
      SEED_PLUS accordingly.  SEED_PLUS is currently SEED+1.  */
   counter = 0;
@@ -1518,12 +1518,12 @@ _gcry_generate_fips186_2_prime (unsigned int pbits, unsigned int qbits,
   prime_p = gcry_mpi_new (pbits);
   for (;;)
     {
-      /* Step 7: For k = 0,...n let 
-                   V_k = sha1(seed+offset+k) mod 2^{qbits}  
-         Step 8: W = V_0 + V_1*2^160 + 
-                         ... 
+      /* Step 7: For k = 0,...n let
+                   V_k = sha1(seed+offset+k) mod 2^{qbits}
+         Step 8: W = V_0 + V_1*2^160 +
+                         ...
                          + V_{n-1}*2^{(n-1)*160}
-                         + (V_{n} mod 2^b)*2^{n*160}                
+                         + (V_{n} mod 2^b)*2^{n*160}
        */
       mpi_set_ui (value_w, 0);
       for (value_k=0; value_k <= value_n; value_k++)
@@ -1542,7 +1542,7 @@ _gcry_generate_fips186_2_prime (unsigned int pbits, unsigned int qbits,
                 break;
             }
           gcry_md_hash_buffer (GCRY_MD_SHA1, digest, seed_plus, seedlen);
-          
+
           gcry_mpi_release (tmpval); tmpval = NULL;
           ec = gpg_err_code (gcry_mpi_scan (&tmpval, GCRYMPI_FMT_USG,
                                             digest, sizeof digest, NULL));
@@ -1631,7 +1631,7 @@ _gcry_generate_fips186_2_prime (unsigned int pbits, unsigned int qbits,
    value is stored at R_COUNTER and the seed actually used for
    generation is stored at R_SEED and R_SEEDVALUE.  The hash algorithm
    used is stored at R_HASHALGO.
-   
+
    Note that this function is very similar to the fips186_2 code.  Due
    to the minor differences, other buffer sizes and for documentarion,
    we use a separate function.
@@ -1652,7 +1652,7 @@ _gcry_generate_fips186_3_prime (unsigned int pbits, unsigned int qbits,
   gcry_mpi_t tmpval = NULL;     /* Helper variable.  */
   int hashalgo;                 /* The id of the Approved Hash Function.  */
   int i;
-  
+
   unsigned char value_u[256/8];
   int value_n, value_b, value_j;
   int counter;
@@ -1690,10 +1690,10 @@ _gcry_generate_fips186_3_prime (unsigned int pbits, unsigned int qbits,
     ; /* No seed value given:  We are asked to generate it.  */
   else if (!seed || seedlen < qbits/8)
     return GPG_ERR_INV_ARG;
-  
+
   /* Allocate a buffer to later compute SEED+some_increment and a few
      helper variables.  */
-  seed_plus = gcry_malloc (seedlen < sizeof seed_help_buffer? 
+  seed_plus = gcry_malloc (seedlen < sizeof seed_help_buffer?
                            sizeof seed_help_buffer : seedlen);
   if (!seed_plus)
     {
@@ -1709,7 +1709,7 @@ _gcry_generate_fips186_3_prime (unsigned int pbits, unsigned int qbits,
   /* Step 4: b = L - 1 - (n * outlen)  */
   value_b = pbits - 1 - (value_n * qbits);
 
- restart:  
+ restart:
   /* Generate Q.  */
   for (;;)
     {
@@ -1721,7 +1721,7 @@ _gcry_generate_fips186_3_prime (unsigned int pbits, unsigned int qbits,
           gcry_create_nonce (seed_help_buffer, seedlen);
           seed = seed_help_buffer;
         }
-      
+
       /* Step 6:  U = hash(seed)  */
       gcry_md_hash_buffer (hashalgo, value_u, seed, seedlen);
 
@@ -1736,12 +1736,12 @@ _gcry_generate_fips186_3_prime (unsigned int pbits, unsigned int qbits,
             }
         }
       gcry_mpi_release (prime_q); prime_q = NULL;
-      ec = gpg_err_code (gcry_mpi_scan (&prime_q, GCRYMPI_FMT_USG, 
+      ec = gpg_err_code (gcry_mpi_scan (&prime_q, GCRYMPI_FMT_USG,
                                         value_u, sizeof value_u, NULL));
       if (ec)
         goto leave;
       mpi_set_highbit (prime_q, qbits-1 );
-      
+
       /* Step 8:  Test whether Q is prime using 64 round of Rabin-Miller.
                   According to table C.1 this is sufficient for all
                   supported prime sizes (i.e. up 3072/256).  */
@@ -1751,7 +1751,7 @@ _gcry_generate_fips186_3_prime (unsigned int pbits, unsigned int qbits,
       /* Step 8.  */
       seed = NULL;  /* Force a new seed at Step 5.  */
     }
-  
+
   /* Step 11.  Note that we do no use an explicit offset but increment
      SEED_PLUS accordingly.  */
   memcpy (seed_plus, seed, seedlen);
@@ -1761,12 +1761,12 @@ _gcry_generate_fips186_3_prime (unsigned int pbits, unsigned int qbits,
   prime_p = gcry_mpi_new (pbits);
   for (;;)
     {
-      /* Step 11.1: For j = 0,...n let 
-                      V_j = hash(seed+offset+j)  
-         Step 11.2: W = V_0 + V_1*2^outlen + 
-                            ... 
+      /* Step 11.1: For j = 0,...n let
+                      V_j = hash(seed+offset+j)
+         Step 11.2: W = V_0 + V_1*2^outlen +
+                            ...
                             + V_{n-1}*2^{(n-1)*outlen}
-                            + (V_{n} mod 2^b)*2^{n*outlen}                
+                            + (V_{n} mod 2^b)*2^{n*outlen}
        */
       mpi_set_ui (value_w, 0);
       for (value_j=0; value_j <= value_n; value_j++)
@@ -1783,7 +1783,7 @@ _gcry_generate_fips186_3_prime (unsigned int pbits, unsigned int qbits,
                 break;
             }
           gcry_md_hash_buffer (GCRY_MD_SHA1, digest, seed_plus, seedlen);
-          
+
           gcry_mpi_release (tmpval); tmpval = NULL;
           ec = gpg_err_code (gcry_mpi_scan (&tmpval, GCRYMPI_FMT_USG,
                                             digest, sizeof digest, NULL));
@@ -1813,7 +1813,7 @@ _gcry_generate_fips186_3_prime (unsigned int pbits, unsigned int qbits,
       if (mpi_get_nbits (prime_p) >= pbits-1
           && check_prime (prime_p, val_2, 64, NULL, NULL) )
         break; /* Yes, P is prime, continue with Step 15.  */
-      
+
       /* Step 11.9: counter = counter + 1, offset = offset + n + 1.
                     If counter >= 4L  goto Step 5.  */
       counter++;
@@ -1859,4 +1859,3 @@ _gcry_generate_fips186_3_prime (unsigned int pbits, unsigned int qbits,
   gcry_mpi_release (val_2);
   return ec;
 }
-
index 9575ca6..1c9c8d4 100644 (file)
 
 #define RFC2268_BLOCKSIZE 8
 
-typedef struct 
+typedef struct
 {
   u16 S[64];
 } RFC2268_context;
 
-static const unsigned char rfc2268_sbox[] = { 
-  217, 120, 249, 196,  25, 221, 181, 237, 
+static const unsigned char rfc2268_sbox[] = {
+  217, 120, 249, 196,  25, 221, 181, 237,
    40, 233, 253, 121,  74, 160, 216, 157,
-  198, 126,  55, 131,  43, 118,  83, 142, 
+  198, 126,  55, 131,  43, 118,  83, 142,
    98,  76, 100, 136,  68, 139, 251, 162,
    23, 154,  89, 245, 135, 179,  79,  19,
    97,  69, 109, 141,   9, 129, 125,  50,
@@ -106,10 +106,10 @@ do_encrypt (void *context, unsigned char *outbuf, const unsigned char *inbuf)
       /* For some reason I cannot combine those steps. */
       word0 += (word1 & ~word3) + (word2 & word3) + ctx->S[j];
       word0 = rotl16(word0, 1);
-               
+
       word1 += (word2 & ~word0) + (word3 & word0) + ctx->S[j + 1];
       word1 = rotl16(word1, 2);
-               
+
       word2 += (word3 & ~word1) + (word0 & word1) + ctx->S[j + 2];
       word2 = rotl16(word2, 3);
 
@@ -152,7 +152,7 @@ do_decrypt (void *context, unsigned char *outbuf, const unsigned char *inbuf)
   word3 = (word3 << 8) | inbuf[7];
   word3 = (word3 << 8) | inbuf[6];
 
-  for (i = 15; i >= 0; i--) 
+  for (i = 15; i >= 0; i--)
     {
       j = i * 4;
 
@@ -168,7 +168,7 @@ do_decrypt (void *context, unsigned char *outbuf, const unsigned char *inbuf)
       word0 = rotr16(word0, 1);
       word0 -= (word1 & ~word3) + (word2 & word3) + ctx->S[j];
 
-      if (i == 5 || i == 11) 
+      if (i == 5 || i == 11)
         {
           word3 = word3 - ctx->S[word2 & 63];
           word2 = word2 - ctx->S[word1 & 63];
@@ -214,7 +214,7 @@ setkey_core (void *context, const unsigned char *key, unsigned int keylen, int w
     return GPG_ERR_INV_KEYLEN;
 
   S = (unsigned char *) ctx->S;
-  
+
   for (i = 0; i < keylen; i++)
     S[i] = key[i];
 
@@ -232,8 +232,8 @@ setkey_core (void *context, const unsigned char *key, unsigned int keylen, int w
       i = 128 - len;
       x = rfc2268_sbox[S[i] & (255 >> (7 & -bits))];
       S[i] = x;
-      
-      while (i--) 
+
+      while (i--)
         {
           x = rfc2268_sbox[x ^ S[i + len]];
           S[i] = x;
@@ -241,7 +241,7 @@ setkey_core (void *context, const unsigned char *key, unsigned int keylen, int w
     }
 
   /* Make the expanded key, endian independent. */
-  for (i = 0; i < 64; i++) 
+  for (i = 0; i < 64; i++)
     ctx->S[i] = ( (u16) S[i * 2] | (((u16) S[i * 2 + 1]) << 8));
 
   return 0;
@@ -297,7 +297,7 @@ selftest (void)
     return "RFC2268 encryption test 1 failed.";
 
   setkey_core (&ctx, key_1, sizeof(key_1), 0);
-  do_decrypt (&ctx, scratch, scratch); 
+  do_decrypt (&ctx, scratch, scratch);
   if (memcmp (scratch, plaintext_1, sizeof(plaintext_1)))
     return "RFC2268 decryption test 1 failed.";
 
@@ -308,7 +308,7 @@ selftest (void)
     return "RFC2268 encryption test 2 failed.";
 
   setkey_core (&ctx, key_2, sizeof(key_2), 0);
-  do_decrypt (&ctx, scratch, scratch); 
+  do_decrypt (&ctx, scratch, scratch);
   if (memcmp (scratch, plaintext_2, sizeof(plaintext_2)))
     return "RFC2268 decryption test 2 failed.";
 
@@ -320,7 +320,7 @@ selftest (void)
     return "RFC2268 encryption test 3 failed.";
 
   setkey_core (&ctx, key_3, sizeof(key_3), 0);
-  do_decrypt (&ctx, scratch, scratch); 
+  do_decrypt (&ctx, scratch, scratch);
   if (memcmp(scratch, plaintext_3, sizeof(plaintext_3)))
     return "RFC2268 decryption test 3 failed.";
 
@@ -342,4 +342,3 @@ gcry_cipher_spec_t _gcry_cipher_spec_rfc2268_40 = {
   RFC2268_BLOCKSIZE, 40, sizeof(RFC2268_context),
   do_setkey, do_encrypt, do_decrypt
 };
-
index c9b6d77..b6a5b15 100644 (file)
@@ -1,4 +1,4 @@
-/* rijndael-tables.h - Rijndael (AES) for GnuPG, 
+/* rijndael-tables.h - Rijndael (AES) for GnuPG,
  * Copyright (C) 2000, 2001, 2002, 2003, 2007,
  *               2008 Free Software Foundation, Inc.
  *
 /* To keep the actual implementation at a readable size we use this
    include file to define the tables.  */
 
-static const unsigned char S[256] = 
+static const unsigned char S[256] =
   {
      99, 124, 119, 123, 242, 107, 111, 197,
-     48,   1, 103,  43, 254, 215, 171, 118, 
+     48,   1, 103,  43, 254, 215, 171, 118,
     202, 130, 201, 125, 250,  89,  71, 240,
-    173, 212, 162, 175, 156, 164, 114, 192, 
+    173, 212, 162, 175, 156, 164, 114, 192,
     183, 253, 147,  38,  54,  63, 247, 204,
-     52, 165, 229, 241, 113, 216,  49,  21, 
+     52, 165, 229, 241, 113, 216,  49,  21,
       4, 199,  35, 195,  24, 150,   5, 154,
-      7,  18, 128, 226, 235,  39, 178, 117, 
-      9, 131,  44,  26,  27, 110,  90, 160, 
-     82,  59, 214, 179,  41, 227,  47, 132, 
+      7,  18, 128, 226, 235,  39, 178, 117,
+      9, 131,  44,  26,  27, 110,  90, 160,
+     82,  59, 214, 179,  41, 227,  47, 132,
      83, 209,   0, 237,  32, 252, 177,  91,
-    106, 203, 190,  57,  74,  76,  88, 207, 
+    106, 203, 190,  57,  74,  76,  88, 207,
     208, 239, 170, 251,  67,  77,  51, 133,
-     69, 249,   2, 127,  80,  60, 159, 168, 
+     69, 249,   2, 127,  80,  60, 159, 168,
      81, 163,  64, 143, 146, 157,  56, 245,
-    188, 182, 218,  33,  16, 255, 243, 210, 
+    188, 182, 218,  33,  16, 255, 243, 210,
     205,  12,  19, 236,  95, 151,  68,  23,
-    196, 167, 126,  61, 100,  93,  25, 115, 
+    196, 167, 126,  61, 100,  93,  25, 115,
      96, 129,  79, 220,  34,  42, 144, 136,
-     70, 238, 184,  20, 222,  94,  11, 219, 
+     70, 238, 184,  20, 222,  94,  11, 219,
     224,  50,  58,  10,  73,   6,  36,  92,
-    194, 211, 172,  98, 145, 149, 228, 121, 
-    231, 200,  55, 109, 141, 213,  78, 169, 
-    108,  86, 244, 234, 101, 122, 174,   8, 
-    186, 120,  37,  46,  28, 166, 180, 198, 
-    232, 221, 116,  31,  75, 189, 139, 138, 
+    194, 211, 172,  98, 145, 149, 228, 121,
+    231, 200,  55, 109, 141, 213,  78, 169,
+    108,  86, 244, 234, 101, 122, 174,   8,
+    186, 120,  37,  46,  28, 166, 180, 198,
+    232, 221, 116,  31,  75, 189, 139, 138,
     112,  62, 181, 102,  72,   3, 246,  14,
-     97,  53,  87, 185, 134, 193,  29, 158, 
+     97,  53,  87, 185, 134, 193,  29, 158,
     225, 248, 152,  17, 105, 217, 142, 148,
-    155,  30, 135, 233, 206,  85,  40, 223, 
-    140, 161, 137,  13, 191, 230,  66, 104, 
+    155,  30, 135, 233, 206,  85,  40, 223,
+    140, 161, 137,  13, 191, 230,  66, 104,
      65, 153,  45,  15, 176,  84, 187,  22
   };
 
 
-static const unsigned char T1[256][4] = 
+static const unsigned char T1[256][4] =
   {
     { 0xc6,0x63,0x63,0xa5 }, { 0xf8,0x7c,0x7c,0x84 },
-    { 0xee,0x77,0x77,0x99 }, { 0xf6,0x7b,0x7b,0x8d }, 
+    { 0xee,0x77,0x77,0x99 }, { 0xf6,0x7b,0x7b,0x8d },
     { 0xff,0xf2,0xf2,0x0d }, { 0xd6,0x6b,0x6b,0xbd },
-    { 0xde,0x6f,0x6f,0xb1 }, { 0x91,0xc5,0xc5,0x54 }, 
+    { 0xde,0x6f,0x6f,0xb1 }, { 0x91,0xc5,0xc5,0x54 },
     { 0x60,0x30,0x30,0x50 }, { 0x02,0x01,0x01,0x03 },
-    { 0xce,0x67,0x67,0xa9 }, { 0x56,0x2b,0x2b,0x7d }, 
+    { 0xce,0x67,0x67,0xa9 }, { 0x56,0x2b,0x2b,0x7d },
     { 0xe7,0xfe,0xfe,0x19 }, { 0xb5,0xd7,0xd7,0x62 },
-    { 0x4d,0xab,0xab,0xe6 }, { 0xec,0x76,0x76,0x9a }, 
+    { 0x4d,0xab,0xab,0xe6 }, { 0xec,0x76,0x76,0x9a },
     { 0x8f,0xca,0xca,0x45 }, { 0x1f,0x82,0x82,0x9d },
-    { 0x89,0xc9,0xc9,0x40 }, { 0xfa,0x7d,0x7d,0x87 }, 
-    { 0xef,0xfa,0xfa,0x15 }, { 0xb2,0x59,0x59,0xeb }, 
-    { 0x8e,0x47,0x47,0xc9 }, { 0xfb,0xf0,0xf0,0x0b }, 
+    { 0x89,0xc9,0xc9,0x40 }, { 0xfa,0x7d,0x7d,0x87 },
+    { 0xef,0xfa,0xfa,0x15 }, { 0xb2,0x59,0x59,0xeb },
+    { 0x8e,0x47,0x47,0xc9 }, { 0xfb,0xf0,0xf0,0x0b },
     { 0x41,0xad,0xad,0xec }, { 0xb3,0xd4,0xd4,0x67 },
-    { 0x5f,0xa2,0xa2,0xfd }, { 0x45,0xaf,0xaf,0xea }, 
+    { 0x5f,0xa2,0xa2,0xfd }, { 0x45,0xaf,0xaf,0xea },
     { 0x23,0x9c,0x9c,0xbf }, { 0x53,0xa4,0xa4,0xf7 },
-    { 0xe4,0x72,0x72,0x96 }, { 0x9b,0xc0,0xc0,0x5b }, 
+    { 0xe4,0x72,0x72,0x96 }, { 0x9b,0xc0,0xc0,0x5b },
     { 0x75,0xb7,0xb7,0xc2 }, { 0xe1,0xfd,0xfd,0x1c },
-    { 0x3d,0x93,0x93,0xae }, { 0x4c,0x26,0x26,0x6a }, 
+    { 0x3d,0x93,0x93,0xae }, { 0x4c,0x26,0x26,0x6a },
     { 0x6c,0x36,0x36,0x5a }, { 0x7e,0x3f,0x3f,0x41 },
-    { 0xf5,0xf7,0xf7,0x02 }, { 0x83,0xcc,0xcc,0x4f }, 
-    { 0x68,0x34,0x34,0x5c }, { 0x51,0xa5,0xa5,0xf4 }, 
-    { 0xd1,0xe5,0xe5,0x34 }, { 0xf9,0xf1,0xf1,0x08 }, 
+    { 0xf5,0xf7,0xf7,0x02 }, { 0x83,0xcc,0xcc,0x4f },
+    { 0x68,0x34,0x34,0x5c }, { 0x51,0xa5,0xa5,0xf4 },
+    { 0xd1,0xe5,0xe5,0x34 }, { 0xf9,0xf1,0xf1,0x08 },
     { 0xe2,0x71,0x71,0x93 }, { 0xab,0xd8,0xd8,0x73 },
-    { 0x62,0x31,0x31,0x53 }, { 0x2a,0x15,0x15,0x3f }, 
+    { 0x62,0x31,0x31,0x53 }, { 0x2a,0x15,0x15,0x3f },
     { 0x08,0x04,0x04,0x0c }, { 0x95,0xc7,0xc7,0x52 },
-    { 0x46,0x23,0x23,0x65 }, { 0x9d,0xc3,0xc3,0x5e }, 
+    { 0x46,0x23,0x23,0x65 }, { 0x9d,0xc3,0xc3,0x5e },
     { 0x30,0x18,0x18,0x28 }, { 0x37,0x96,0x96,0xa1 },
-    { 0x0a,0x05,0x05,0x0f }, { 0x2f,0x9a,0x9a,0xb5 }, 
+    { 0x0a,0x05,0x05,0x0f }, { 0x2f,0x9a,0x9a,0xb5 },
     { 0x0e,0x07,0x07,0x09 }, { 0x24,0x12,0x12,0x36 },
-    { 0x1b,0x80,0x80,0x9b }, { 0xdf,0xe2,0xe2,0x3d }, 
+    { 0x1b,0x80,0x80,0x9b }, { 0xdf,0xe2,0xe2,0x3d },
     { 0xcd,0xeb,0xeb,0x26 }, { 0x4e,0x27,0x27,0x69 },
-    { 0x7f,0xb2,0xb2,0xcd }, { 0xea,0x75,0x75,0x9f }, 
+    { 0x7f,0xb2,0xb2,0xcd }, { 0xea,0x75,0x75,0x9f },
     { 0x12,0x09,0x09,0x1b }, { 0x1d,0x83,0x83,0x9e },
-    { 0x58,0x2c,0x2c,0x74 }, { 0x34,0x1a,0x1a,0x2e }, 
-    { 0x36,0x1b,0x1b,0x2d }, { 0xdc,0x6e,0x6e,0xb2 }, 
-    { 0xb4,0x5a,0x5a,0xee }, { 0x5b,0xa0,0xa0,0xfb }, 
+    { 0x58,0x2c,0x2c,0x74 }, { 0x34,0x1a,0x1a,0x2e },
+    { 0x36,0x1b,0x1b,0x2d }, { 0xdc,0x6e,0x6e,0xb2 },
+    { 0xb4,0x5a,0x5a,0xee }, { 0x5b,0xa0,0xa0,0xfb },
     { 0xa4,0x52,0x52,0xf6 }, { 0x76,0x3b,0x3b,0x4d },
-    { 0xb7,0xd6,0xd6,0x61 }, { 0x7d,0xb3,0xb3,0xce }, 
-    { 0x52,0x29,0x29,0x7b }, { 0xdd,0xe3,0xe3,0x3e }, 
-    { 0x5e,0x2f,0x2f,0x71 }, { 0x13,0x84,0x84,0x97 }, 
-    { 0xa6,0x53,0x53,0xf5 }, { 0xb9,0xd1,0xd1,0x68 }, 
-    { 0x00,0x00,0x00,0x00 }, { 0xc1,0xed,0xed,0x2c }, 
+    { 0xb7,0xd6,0xd6,0x61 }, { 0x7d,0xb3,0xb3,0xce },
+    { 0x52,0x29,0x29,0x7b }, { 0xdd,0xe3,0xe3,0x3e },
+    { 0x5e,0x2f,0x2f,0x71 }, { 0x13,0x84,0x84,0x97 },
+    { 0xa6,0x53,0x53,0xf5 }, { 0xb9,0xd1,0xd1,0x68 },
+    { 0x00,0x00,0x00,0x00 }, { 0xc1,0xed,0xed,0x2c },
     { 0x40,0x20,0x20,0x60 }, { 0xe3,0xfc,0xfc,0x1f },
-    { 0x79,0xb1,0xb1,0xc8 }, { 0xb6,0x5b,0x5b,0xed }, 
+    { 0x79,0xb1,0xb1,0xc8 }, { 0xb6,0x5b,0x5b,0xed },
     { 0xd4,0x6a,0x6a,0xbe }, { 0x8d,0xcb,0xcb,0x46 },
-    { 0x67,0xbe,0xbe,0xd9 }, { 0x72,0x39,0x39,0x4b }, 
+    { 0x67,0xbe,0xbe,0xd9 }, { 0x72,0x39,0x39,0x4b },
     { 0x94,0x4a,0x4a,0xde }, { 0x98,0x4c,0x4c,0xd4 },
-    { 0xb0,0x58,0x58,0xe8 }, { 0x85,0xcf,0xcf,0x4a }, 
+    { 0xb0,0x58,0x58,0xe8 }, { 0x85,0xcf,0xcf,0x4a },
     { 0xbb,0xd0,0xd0,0x6b }, { 0xc5,0xef,0xef,0x2a },
-    { 0x4f,0xaa,0xaa,0xe5 }, { 0xed,0xfb,0xfb,0x16 }, 
+    { 0x4f,0xaa,0xaa,0xe5 }, { 0xed,0xfb,0xfb,0x16 },
     { 0x86,0x43,0x43,0xc5 }, { 0x9a,0x4d,0x4d,0xd7 },
-    { 0x66,0x33,0x33,0x55 }, { 0x11,0x85,0x85,0x94 }, 
+    { 0x66,0x33,0x33,0x55 }, { 0x11,0x85,0x85,0x94 },
     { 0x8a,0x45,0x45,0xcf }, { 0xe9,0xf9,0xf9,0x10 },
-    { 0x04,0x02,0x02,0x06 }, { 0xfe,0x7f,0x7f,0x81 }, 
+    { 0x04,0x02,0x02,0x06 }, { 0xfe,0x7f,0x7f,0x81 },
     { 0xa0,0x50,0x50,0xf0 }, { 0x78,0x3c,0x3c,0x44 },
-    { 0x25,0x9f,0x9f,0xba }, { 0x4b,0xa8,0xa8,0xe3 }, 
+    { 0x25,0x9f,0x9f,0xba }, { 0x4b,0xa8,0xa8,0xe3 },
     { 0xa2,0x51,0x51,0xf3 }, { 0x5d,0xa3,0xa3,0xfe },
-    { 0x80,0x40,0x40,0xc0 }, { 0x05,0x8f,0x8f,0x8a }, 
+    { 0x80,0x40,0x40,0xc0 }, { 0x05,0x8f,0x8f,0x8a },
     { 0x3f,0x92,0x92,0xad }, { 0x21,0x9d,0x9d,0xbc },
-    { 0x70,0x38,0x38,0x48 }, { 0xf1,0xf5,0xf5,0x04 }, 
+    { 0x70,0x38,0x38,0x48 }, { 0xf1,0xf5,0xf5,0x04 },
     { 0x63,0xbc,0xbc,0xdf }, { 0x77,0xb6,0xb6,0xc1 },
-    { 0xaf,0xda,0xda,0x75 }, { 0x42,0x21,0x21,0x63 }, 
+    { 0xaf,0xda,0xda,0x75 }, { 0x42,0x21,0x21,0x63 },
     { 0x20,0x10,0x10,0x30 }, { 0xe5,0xff,0xff,0x1a },
-    { 0xfd,0xf3,0xf3,0x0e }, { 0xbf,0xd2,0xd2,0x6d }, 
+    { 0xfd,0xf3,0xf3,0x0e }, { 0xbf,0xd2,0xd2,0x6d },
     { 0x81,0xcd,0xcd,0x4c }, { 0x18,0x0c,0x0c,0x14 },
-    { 0x26,0x13,0x13,0x35 }, { 0xc3,0xec,0xec,0x2f }, 
+    { 0x26,0x13,0x13,0x35 }, { 0xc3,0xec,0xec,0x2f },
     { 0xbe,0x5f,0x5f,0xe1 }, { 0x35,0x97,0x97,0xa2 },
-    { 0x88,0x44,0x44,0xcc }, { 0x2e,0x17,0x17,0x39 }, 
+    { 0x88,0x44,0x44,0xcc }, { 0x2e,0x17,0x17,0x39 },
     { 0x93,0xc4,0xc4,0x57 }, { 0x55,0xa7,0xa7,0xf2 },
-    { 0xfc,0x7e,0x7e,0x82 }, { 0x7a,0x3d,0x3d,0x47 }, 
+    { 0xfc,0x7e,0x7e,0x82 }, { 0x7a,0x3d,0x3d,0x47 },
     { 0xc8,0x64,0x64,0xac }, { 0xba,0x5d,0x5d,0xe7 },
-    { 0x32,0x19,0x19,0x2b }, { 0xe6,0x73,0x73,0x95 }, 
+    { 0x32,0x19,0x19,0x2b }, { 0xe6,0x73,0x73,0x95 },
     { 0xc0,0x60,0x60,0xa0 }, { 0x19,0x81,0x81,0x98 },
-    { 0x9e,0x4f,0x4f,0xd1 }, { 0xa3,0xdc,0xdc,0x7f }, 
+    { 0x9e,0x4f,0x4f,0xd1 }, { 0xa3,0xdc,0xdc,0x7f },
     { 0x44,0x22,0x22,0x66 }, { 0x54,0x2a,0x2a,0x7e },
-    { 0x3b,0x90,0x90,0xab }, { 0x0b,0x88,0x88,0x83 }, 
+    { 0x3b,0x90,0x90,0xab }, { 0x0b,0x88,0x88,0x83 },
     { 0x8c,0x46,0x46,0xca }, { 0xc7,0xee,0xee,0x29 },
-    { 0x6b,0xb8,0xb8,0xd3 }, { 0x28,0x14,0x14,0x3c }, 
+    { 0x6b,0xb8,0xb8,0xd3 }, { 0x28,0x14,0x14,0x3c },
     { 0xa7,0xde,0xde,0x79 }, { 0xbc,0x5e,0x5e,0xe2 },
-    { 0x16,0x0b,0x0b,0x1d }, { 0xad,0xdb,0xdb,0x76 }, 
+    { 0x16,0x0b,0x0b,0x1d }, { 0xad,0xdb,0xdb,0x76 },
     { 0xdb,0xe0,0xe0,0x3b }, { 0x64,0x32,0x32,0x56 },
-    { 0x74,0x3a,0x3a,0x4e }, { 0x14,0x0a,0x0a,0x1e }, 
+    { 0x74,0x3a,0x3a,0x4e }, { 0x14,0x0a,0x0a,0x1e },
     { 0x92,0x49,0x49,0xdb }, { 0x0c,0x06,0x06,0x0a },
-    { 0x48,0x24,0x24,0x6c }, { 0xb8,0x5c,0x5c,0xe4 }, 
+    { 0x48,0x24,0x24,0x6c }, { 0xb8,0x5c,0x5c,0xe4 },
     { 0x9f,0xc2,0xc2,0x5d }, { 0xbd,0xd3,0xd3,0x6e },
-    { 0x43,0xac,0xac,0xef }, { 0xc4,0x62,0x62,0xa6 }, 
+    { 0x43,0xac,0xac,0xef }, { 0xc4,0x62,0x62,0xa6 },
     { 0x39,0x91,0x91,0xa8 }, { 0x31,0x95,0x95,0xa4 },
-    { 0xd3,0xe4,0xe4,0x37 }, { 0xf2,0x79,0x79,0x8b }, 
+    { 0xd3,0xe4,0xe4,0x37 }, { 0xf2,0x79,0x79,0x8b },
     { 0xd5,0xe7,0xe7,0x32 }, { 0x8b,0xc8,0xc8,0x43 },
-    { 0x6e,0x37,0x37,0x59 }, { 0xda,0x6d,0x6d,0xb7 }, 
+    { 0x6e,0x37,0x37,0x59 }, { 0xda,0x6d,0x6d,0xb7 },
     { 0x01,0x8d,0x8d,0x8c }, { 0xb1,0xd5,0xd5,0x64 },
-    { 0x9c,0x4e,0x4e,0xd2 }, { 0x49,0xa9,0xa9,0xe0 }, 
+    { 0x9c,0x4e,0x4e,0xd2 }, { 0x49,0xa9,0xa9,0xe0 },
     { 0xd8,0x6c,0x6c,0xb4 }, { 0xac,0x56,0x56,0xfa },
-    { 0xf3,0xf4,0xf4,0x07 }, { 0xcf,0xea,0xea,0x25 }, 
+    { 0xf3,0xf4,0xf4,0x07 }, { 0xcf,0xea,0xea,0x25 },
     { 0xca,0x65,0x65,0xaf }, { 0xf4,0x7a,0x7a,0x8e },
-    { 0x47,0xae,0xae,0xe9 }, { 0x10,0x08,0x08,0x18 }, 
+    { 0x47,0xae,0xae,0xe9 }, { 0x10,0x08,0x08,0x18 },
     { 0x6f,0xba,0xba,0xd5 }, { 0xf0,0x78,0x78,0x88 },
-    { 0x4a,0x25,0x25,0x6f }, { 0x5c,0x2e,0x2e,0x72 }, 
+    { 0x4a,0x25,0x25,0x6f }, { 0x5c,0x2e,0x2e,0x72 },
     { 0x38,0x1c,0x1c,0x24 }, { 0x57,0xa6,0xa6,0xf1 },
-    { 0x73,0xb4,0xb4,0xc7 }, { 0x97,0xc6,0xc6,0x51 }, 
+    { 0x73,0xb4,0xb4,0xc7 }, { 0x97,0xc6,0xc6,0x51 },
     { 0xcb,0xe8,0xe8,0x23 }, { 0xa1,0xdd,0xdd,0x7c },
-    { 0xe8,0x74,0x74,0x9c }, { 0x3e,0x1f,0x1f,0x21 }, 
-    { 0x96,0x4b,0x4b,0xdd }, { 0x61,0xbd,0xbd,0xdc }, 
-    { 0x0d,0x8b,0x8b,0x86 }, { 0x0f,0x8a,0x8a,0x85 }, 
+    { 0xe8,0x74,0x74,0x9c }, { 0x3e,0x1f,0x1f,0x21 },
+    { 0x96,0x4b,0x4b,0xdd }, { 0x61,0xbd,0xbd,0xdc },
+    { 0x0d,0x8b,0x8b,0x86 }, { 0x0f,0x8a,0x8a,0x85 },
     { 0xe0,0x70,0x70,0x90 }, { 0x7c,0x3e,0x3e,0x42 },
-    { 0x71,0xb5,0xb5,0xc4 }, { 0xcc,0x66,0x66,0xaa }, 
+    { 0x71,0xb5,0xb5,0xc4 }, { 0xcc,0x66,0x66,0xaa },
     { 0x90,0x48,0x48,0xd8 }, { 0x06,0x03,0x03,0x05 },
-    { 0xf7,0xf6,0xf6,0x01 }, { 0x1c,0x0e,0x0e,0x12 }, 
+    { 0xf7,0xf6,0xf6,0x01 }, { 0x1c,0x0e,0x0e,0x12 },
     { 0xc2,0x61,0x61,0xa3 }, { 0x6a,0x35,0x35,0x5f },
-    { 0xae,0x57,0x57,0xf9 }, { 0x69,0xb9,0xb9,0xd0 }, 
+    { 0xae,0x57,0x57,0xf9 }, { 0x69,0xb9,0xb9,0xd0 },
     { 0x17,0x86,0x86,0x91 }, { 0x99,0xc1,0xc1,0x58 },
-    { 0x3a,0x1d,0x1d,0x27 }, { 0x27,0x9e,0x9e,0xb9 }, 
+    { 0x3a,0x1d,0x1d,0x27 }, { 0x27,0x9e,0x9e,0xb9 },
     { 0xd9,0xe1,0xe1,0x38 }, { 0xeb,0xf8,0xf8,0x13 },
-    { 0x2b,0x98,0x98,0xb3 }, { 0x22,0x11,0x11,0x33 }, 
+    { 0x2b,0x98,0x98,0xb3 }, { 0x22,0x11,0x11,0x33 },
     { 0xd2,0x69,0x69,0xbb }, { 0xa9,0xd9,0xd9,0x70 },
-    { 0x07,0x8e,0x8e,0x89 }, { 0x33,0x94,0x94,0xa7 }, 
+    { 0x07,0x8e,0x8e,0x89 }, { 0x33,0x94,0x94,0xa7 },
     { 0x2d,0x9b,0x9b,0xb6 }, { 0x3c,0x1e,0x1e,0x22 },
-    { 0x15,0x87,0x87,0x92 }, { 0xc9,0xe9,0xe9,0x20 }, 
+    { 0x15,0x87,0x87,0x92 }, { 0xc9,0xe9,0xe9,0x20 },
     { 0x87,0xce,0xce,0x49 }, { 0xaa,0x55,0x55,0xff },
-    { 0x50,0x28,0x28,0x78 }, { 0xa5,0xdf,0xdf,0x7a }, 
+    { 0x50,0x28,0x28,0x78 }, { 0xa5,0xdf,0xdf,0x7a },
     { 0x03,0x8c,0x8c,0x8f }, { 0x59,0xa1,0xa1,0xf8 },
-    { 0x09,0x89,0x89,0x80 }, { 0x1a,0x0d,0x0d,0x17 }, 
+    { 0x09,0x89,0x89,0x80 }, { 0x1a,0x0d,0x0d,0x17 },
     { 0x65,0xbf,0xbf,0xda }, { 0xd7,0xe6,0xe6,0x31 },
-    { 0x84,0x42,0x42,0xc6 }, { 0xd0,0x68,0x68,0xb8 }, 
+    { 0x84,0x42,0x42,0xc6 }, { 0xd0,0x68,0x68,0xb8 },
     { 0x82,0x41,0x41,0xc3 }, { 0x29,0x99,0x99,0xb0 },
-    { 0x5a,0x2d,0x2d,0x77 }, { 0x1e,0x0f,0x0f,0x11 }, 
+    { 0x5a,0x2d,0x2d,0x77 }, { 0x1e,0x0f,0x0f,0x11 },
     { 0x7b,0xb0,0xb0,0xcb }, { 0xa8,0x54,0x54,0xfc },
     { 0x6d,0xbb,0xbb,0xd6 }, { 0x2c,0x16,0x16,0x3a }
   };
 
-static const unsigned char T2[256][4] = 
+static const unsigned char T2[256][4] =
   {
     { 0xa5,0xc6,0x63,0x63 }, { 0x84,0xf8,0x7c,0x7c },
-    { 0x99,0xee,0x77,0x77 }, { 0x8d,0xf6,0x7b,0x7b }, 
+    { 0x99,0xee,0x77,0x77 }, { 0x8d,0xf6,0x7b,0x7b },
     { 0x0d,0xff,0xf2,0xf2 }, { 0xbd,0xd6,0x6b,0x6b },
-    { 0xb1,0xde,0x6f,0x6f }, { 0x54,0x91,0xc5,0xc5 }, 
+    { 0xb1,0xde,0x6f,0x6f }, { 0x54,0x91,0xc5,0xc5 },
     { 0x50,0x60,0x30,0x30 }, { 0x03,0x02,0x01,0x01 },
-    { 0xa9,0xce,0x67,0x67 }, { 0x7d,0x56,0x2b,0x2b }, 
-    { 0x19,0xe7,0xfe,0xfe }, { 0x62,0xb5,0xd7,0xd7 }, 
-    { 0xe6,0x4d,0xab,0xab }, { 0x9a,0xec,0x76,0x76 }, 
-    { 0x45,0x8f,0xca,0xca }, { 0x9d,0x1f,0x82,0x82 }, 
-    { 0x40,0x89,0xc9,0xc9 }, { 0x87,0xfa,0x7d,0x7d }, 
-    { 0x15,0xef,0xfa,0xfa }, { 0xeb,0xb2,0x59,0x59 }, 
-    { 0xc9,0x8e,0x47,0x47 }, { 0x0b,0xfb,0xf0,0xf0 }, 
-    { 0xec,0x41,0xad,0xad }, { 0x67,0xb3,0xd4,0xd4 }, 
-    { 0xfd,0x5f,0xa2,0xa2 }, { 0xea,0x45,0xaf,0xaf }, 
-    { 0xbf,0x23,0x9c,0x9c }, { 0xf7,0x53,0xa4,0xa4 }, 
-    { 0x96,0xe4,0x72,0x72 }, { 0x5b,0x9b,0xc0,0xc0 }, 
-    { 0xc2,0x75,0xb7,0xb7 }, { 0x1c,0xe1,0xfd,0xfd }, 
-    { 0xae,0x3d,0x93,0x93 }, { 0x6a,0x4c,0x26,0x26 }, 
+    { 0xa9,0xce,0x67,0x67 }, { 0x7d,0x56,0x2b,0x2b },
+    { 0x19,0xe7,0xfe,0xfe }, { 0x62,0xb5,0xd7,0xd7 },
+    { 0xe6,0x4d,0xab,0xab }, { 0x9a,0xec,0x76,0x76 },
+    { 0x45,0x8f,0xca,0xca }, { 0x9d,0x1f,0x82,0x82 },
+    { 0x40,0x89,0xc9,0xc9 }, { 0x87,0xfa,0x7d,0x7d },
+    { 0x15,0xef,0xfa,0xfa }, { 0xeb,0xb2,0x59,0x59 },
+    { 0xc9,0x8e,0x47,0x47 }, { 0x0b,0xfb,0xf0,0xf0 },
+    { 0xec,0x41,0xad,0xad }, { 0x67,0xb3,0xd4,0xd4 },
+    { 0xfd,0x5f,0xa2,0xa2 }, { 0xea,0x45,0xaf,0xaf },
+    { 0xbf,0x23,0x9c,0x9c }, { 0xf7,0x53,0xa4,0xa4 },
+    { 0x96,0xe4,0x72,0x72 }, { 0x5b,0x9b,0xc0,0xc0 },
+    { 0xc2,0x75,0xb7,0xb7 }, { 0x1c,0xe1,0xfd,0xfd },
+    { 0xae,0x3d,0x93,0x93 }, { 0x6a,0x4c,0x26,0x26 },
     { 0x5a,0x6c,0x36,0x36 }, { 0x41,0x7e,0x3f,0x3f },
-    { 0x02,0xf5,0xf7,0xf7 }, { 0x4f,0x83,0xcc,0xcc }, 
+    { 0x02,0xf5,0xf7,0xf7 }, { 0x4f,0x83,0xcc,0xcc },
     { 0x5c,0x68,0x34,0x34 }, { 0xf4,0x51,0xa5,0xa5 },
-    { 0x34,0xd1,0xe5,0xe5 }, { 0x08,0xf9,0xf1,0xf1 }, 
+    { 0x34,0xd1,0xe5,0xe5 }, { 0x08,0xf9,0xf1,0xf1 },
     { 0x93,0xe2,0x71,0x71 }, { 0x73,0xab,0xd8,0xd8 },
-    { 0x53,0x62,0x31,0x31 }, { 0x3f,0x2a,0x15,0x15 }, 
-    { 0x0c,0x08,0x04,0x04 }, { 0x52,0x95,0xc7,0xc7 }, 
-    { 0x65,0x46,0x23,0x23 }, { 0x5e,0x9d,0xc3,0xc3 }, 
-    { 0x28,0x30,0x18,0x18 }, { 0xa1,0x37,0x96,0x96 }, 
-    { 0x0f,0x0a,0x05,0x05 }, { 0xb5,0x2f,0x9a,0x9a }, 
+    { 0x53,0x62,0x31,0x31 }, { 0x3f,0x2a,0x15,0x15 },
+    { 0x0c,0x08,0x04,0x04 }, { 0x52,0x95,0xc7,0xc7 },
+    { 0x65,0x46,0x23,0x23 }, { 0x5e,0x9d,0xc3,0xc3 },
+    { 0x28,0x30,0x18,0x18 }, { 0xa1,0x37,0x96,0x96 },
+    { 0x0f,0x0a,0x05,0x05 }, { 0xb5,0x2f,0x9a,0x9a },
     { 0x09,0x0e,0x07,0x07 }, { 0x36,0x24,0x12,0x12 },
-    { 0x9b,0x1b,0x80,0x80 }, { 0x3d,0xdf,0xe2,0xe2 }, 
-    { 0x26,0xcd,0xeb,0xeb }, { 0x69,0x4e,0x27,0x27 }, 
-    { 0xcd,0x7f,0xb2,0xb2 }, { 0x9f,0xea,0x75,0x75 }, 
+    { 0x9b,0x1b,0x80,0x80 }, { 0x3d,0xdf,0xe2,0xe2 },
+    { 0x26,0xcd,0xeb,0xeb }, { 0x69,0x4e,0x27,0x27 },
+    { 0xcd,0x7f,0xb2,0xb2 }, { 0x9f,0xea,0x75,0x75 },
     { 0x1b,0x12,0x09,0x09 }, { 0x9e,0x1d,0x83,0x83 },
-    { 0x74,0x58,0x2c,0x2c }, { 0x2e,0x34,0x1a,0x1a }, 
+    { 0x74,0x58,0x2c,0x2c }, { 0x2e,0x34,0x1a,0x1a },
     { 0x2d,0x36,0x1b,0x1b }, { 0xb2,0xdc,0x6e,0x6e },
-    { 0xee,0xb4,0x5a,0x5a }, { 0xfb,0x5b,0xa0,0xa0 }, 
+    { 0xee,0xb4,0x5a,0x5a }, { 0xfb,0x5b,0xa0,0xa0 },
     { 0xf6,0xa4,0x52,0x52 }, { 0x4d,0x76,0x3b,0x3b },
-    { 0x61,0xb7,0xd6,0xd6 }, { 0xce,0x7d,0xb3,0xb3 }, 
-    { 0x7b,0x52,0x29,0x29 }, { 0x3e,0xdd,0xe3,0xe3 }, 
-    { 0x71,0x5e,0x2f,0x2f }, { 0x97,0x13,0x84,0x84 }, 
-    { 0xf5,0xa6,0x53,0x53 }, { 0x68,0xb9,0xd1,0xd1 }, 
-    { 0x00,0x00,0x00,0x00 }, { 0x2c,0xc1,0xed,0xed }, 
-    { 0x60,0x40,0x20,0x20 }, { 0x1f,0xe3,0xfc,0xfc }, 
-    { 0xc8,0x79,0xb1,0xb1 }, { 0xed,0xb6,0x5b,0x5b }, 
-    { 0xbe,0xd4,0x6a,0x6a }, { 0x46,0x8d,0xcb,0xcb }, 
-    { 0xd9,0x67,0xbe,0xbe }, { 0x4b,0x72,0x39,0x39 }, 
-    { 0xde,0x94,0x4a,0x4a }, { 0xd4,0x98,0x4c,0x4c }, 
-    { 0xe8,0xb0,0x58,0x58 }, { 0x4a,0x85,0xcf,0xcf }, 
+    { 0x61,0xb7,0xd6,0xd6 }, { 0xce,0x7d,0xb3,0xb3 },
+    { 0x7b,0x52,0x29,0x29 }, { 0x3e,0xdd,0xe3,0xe3 },
+    { 0x71,0x5e,0x2f,0x2f }, { 0x97,0x13,0x84,0x84 },
+    { 0xf5,0xa6,0x53,0x53 }, { 0x68,0xb9,0xd1,0xd1 },
+    { 0x00,0x00,0x00,0x00 }, { 0x2c,0xc1,0xed,0xed },
+    { 0x60,0x40,0x20,0x20 }, { 0x1f,0xe3,0xfc,0xfc },
+    { 0xc8,0x79,0xb1,0xb1 }, { 0xed,0xb6,0x5b,0x5b },
+    { 0xbe,0xd4,0x6a,0x6a }, { 0x46,0x8d,0xcb,0xcb },
+    { 0xd9,0x67,0xbe,0xbe }, { 0x4b,0x72,0x39,0x39 },
+    { 0xde,0x94,0x4a,0x4a }, { 0xd4,0x98,0x4c,0x4c },
+    { 0xe8,0xb0,0x58,0x58 }, { 0x4a,0x85,0xcf,0xcf },
     { 0x6b,0xbb,0xd0,0xd0 }, { 0x2a,0xc5,0xef,0xef },
-    { 0xe5,0x4f,0xaa,0xaa }, { 0x16,0xed,0xfb,0xfb }, 
-    { 0xc5,0x86,0x43,0x43 }, { 0xd7,0x9a,0x4d,0x4d }, 
-    { 0x55,0x66,0x33,0x33 }, { 0x94,0x11,0x85,0x85 }, 
-    { 0xcf,0x8a,0x45,0x45 }, { 0x10,0xe9,0xf9,0xf9 }, 
-    { 0x06,0x04,0x02,0x02 }, { 0x81,0xfe,0x7f,0x7f }, 
+    { 0xe5,0x4f,0xaa,0xaa }, { 0x16,0xed,0xfb,0xfb },
+    { 0xc5,0x86,0x43,0x43 }, { 0xd7,0x9a,0x4d,0x4d },
+    { 0x55,0x66,0x33,0x33 }, { 0x94,0x11,0x85,0x85 },
+    { 0xcf,0x8a,0x45,0x45 }, { 0x10,0xe9,0xf9,0xf9 },
+    { 0x06,0x04,0x02,0x02 }, { 0x81,0xfe,0x7f,0x7f },
     { 0xf0,0xa0,0x50,0x50 }, { 0x44,0x78,0x3c,0x3c },
-    { 0xba,0x25,0x9f,0x9f }, { 0xe3,0x4b,0xa8,0xa8 }, 
+    { 0xba,0x25,0x9f,0x9f }, { 0xe3,0x4b,0xa8,0xa8 },
     { 0xf3,0xa2,0x51,0x51 }, { 0xfe,0x5d,0xa3,0xa3 },
-    { 0xc0,0x80,0x40,0x40 }, { 0x8a,0x05,0x8f,0x8f }, 
+    { 0xc0,0x80,0x40,0x40 }, { 0x8a,0x05,0x8f,0x8f },
     { 0xad,0x3f,0x92,0x92 }, { 0xbc,0x21,0x9d,0x9d },
-    { 0x48,0x70,0x38,0x38 }, { 0x04,0xf1,0xf5,0xf5 }, 
+    { 0x48,0x70,0x38,0x38 }, { 0x04,0xf1,0xf5,0xf5 },
     { 0xdf,0x63,0xbc,0xbc }, { 0xc1,0x77,0xb6,0xb6 },
-    { 0x75,0xaf,0xda,0xda }, { 0x63,0x42,0x21,0x21 }, 
+    { 0x75,0xaf,0xda,0xda }, { 0x63,0x42,0x21,0x21 },
     { 0x30,0x20,0x10,0x10 }, { 0x1a,0xe5,0xff,0xff },
-    { 0x0e,0xfd,0xf3,0xf3 }, { 0x6d,0xbf,0xd2,0xd2 }, 
+    { 0x0e,0xfd,0xf3,0xf3 }, { 0x6d,0xbf,0xd2,0xd2 },
     { 0x4c,0x81,0xcd,0xcd }, { 0x14,0x18,0x0c,0x0c },
-    { 0x35,0x26,0x13,0x13 }, { 0x2f,0xc3,0xec,0xec }, 
+    { 0x35,0x26,0x13,0x13 }, { 0x2f,0xc3,0xec,0xec },
     { 0xe1,0xbe,0x5f,0x5f }, { 0xa2,0x35,0x97,0x97 },
-    { 0xcc,0x88,0x44,0x44 }, { 0x39,0x2e,0x17,0x17 }, 
+    { 0xcc,0x88,0x44,0x44 }, { 0x39,0x2e,0x17,0x17 },
     { 0x57,0x93,0xc4,0xc4 }, { 0xf2,0x55,0xa7,0xa7 },
-    { 0x82,0xfc,0x7e,0x7e }, { 0x47,0x7a,0x3d,0x3d }, 
+    { 0x82,0xfc,0x7e,0x7e }, { 0x47,0x7a,0x3d,0x3d },
     { 0xac,0xc8,0x64,0x64 }, { 0xe7,0xba,0x5d,0x5d },
-    { 0x2b,0x32,0x19,0x19 }, { 0x95,0xe6,0x73,0x73 }, 
-    { 0xa0,0xc0,0x60,0x60 }, { 0x98,0x19,0x81,0x81 }, 
-    { 0xd1,0x9e,0x4f,0x4f }, { 0x7f,0xa3,0xdc,0xdc }, 
-    { 0x66,0x44,0x22,0x22 }, { 0x7e,0x54,0x2a,0x2a }, 
-    { 0xab,0x3b,0x90,0x90 }, { 0x83,0x0b,0x88,0x88 }, 
+    { 0x2b,0x32,0x19,0x19 }, { 0x95,0xe6,0x73,0x73 },
+    { 0xa0,0xc0,0x60,0x60 }, { 0x98,0x19,0x81,0x81 },
+    { 0xd1,0x9e,0x4f,0x4f }, { 0x7f,0xa3,0xdc,0xdc },
+    { 0x66,0x44,0x22,0x22 }, { 0x7e,0x54,0x2a,0x2a },
+    { 0xab,0x3b,0x90,0x90 }, { 0x83,0x0b,0x88,0x88 },
     { 0xca,0x8c,0x46,0x46 }, { 0x29,0xc7,0xee,0xee },
-    { 0xd3,0x6b,0xb8,0xb8 }, { 0x3c,0x28,0x14,0x14 }, 
+    { 0xd3,0x6b,0xb8,0xb8 }, { 0x3c,0x28,0x14,0x14 },
     { 0x79,0xa7,0xde,0xde }, { 0xe2,0xbc,0x5e,0x5e },
-    { 0x1d,0x16,0x0b,0x0b }, { 0x76,0xad,0xdb,0xdb }, 
+    { 0x1d,0x16,0x0b,0x0b }, { 0x76,0xad,0xdb,0xdb },
     { 0x3b,0xdb,0xe0,0xe0 }, { 0x56,0x64,0x32,0x32 },
-    { 0x4e,0x74,0x3a,0x3a }, { 0x1e,0x14,0x0a,0x0a }, 
+    { 0x4e,0x74,0x3a,0x3a }, { 0x1e,0x14,0x0a,0x0a },
     { 0xdb,0x92,0x49,0x49 }, { 0x0a,0x0c,0x06,0x06 },
-    { 0x6c,0x48,0x24,0x24 }, { 0xe4,0xb8,0x5c,0x5c }, 
-    { 0x5d,0x9f,0xc2,0xc2 }, { 0x6e,0xbd,0xd3,0xd3 }, 
-    { 0xef,0x43,0xac,0xac }, { 0xa6,0xc4,0x62,0x62 }, 
+    { 0x6c,0x48,0x24,0x24 }, { 0xe4,0xb8,0x5c,0x5c },
+    { 0x5d,0x9f,0xc2,0xc2 }, { 0x6e,0xbd,0xd3,0xd3 },
+    { 0xef,0x43,0xac,0xac }, { 0xa6,0xc4,0x62,0x62 },
     { 0xa8,0x39,0x91,0x91 }, { 0xa4,0x31,0x95,0x95 },
-    { 0x37,0xd3,0xe4,0xe4 }, { 0x8b,0xf2,0x79,0x79 }, 
+    { 0x37,0xd3,0xe4,0xe4 }, { 0x8b,0xf2,0x79,0x79 },
     { 0x32,0xd5,0xe7,0xe7 }, { 0x43,0x8b,0xc8,0xc8 },
-    { 0x59,0x6e,0x37,0x37 }, { 0xb7,0xda,0x6d,0x6d }, 
+    { 0x59,0x6e,0x37,0x37 }, { 0xb7,0xda,0x6d,0x6d },
     { 0x8c,0x01,0x8d,0x8d }, { 0x64,0xb1,0xd5,0xd5 },
-    { 0xd2,0x9c,0x4e,0x4e }, { 0xe0,0x49,0xa9,0xa9 }, 
+    { 0xd2,0x9c,0x4e,0x4e }, { 0xe0,0x49,0xa9,0xa9 },
     { 0xb4,0xd8,0x6c,0x6c }, { 0xfa,0xac,0x56,0x56 },
-    { 0x07,0xf3,0xf4,0xf4 }, { 0x25,0xcf,0xea,0xea }, 
+    { 0x07,0xf3,0xf4,0xf4 }, { 0x25,0xcf,0xea,0xea },
     { 0xaf,0xca,0x65,0x65 }, { 0x8e,0xf4,0x7a,0x7a },
-    { 0xe9,0x47,0xae,0xae }, { 0x18,0x10,0x08,0x08 }, 
-    { 0xd5,0x6f,0xba,0xba }, { 0x88,0xf0,0x78,0x78 }, 
-    { 0x6f,0x4a,0x25,0x25 }, { 0x72,0x5c,0x2e,0x2e }, 
-    { 0x24,0x38,0x1c,0x1c }, { 0xf1,0x57,0xa6,0xa6 }, 
-    { 0xc7,0x73,0xb4,0xb4 }, { 0x51,0x97,0xc6,0xc6 }, 
+    { 0xe9,0x47,0xae,0xae }, { 0x18,0x10,0x08,0x08 },
+    { 0xd5,0x6f,0xba,0xba }, { 0x88,0xf0,0x78,0x78 },
+    { 0x6f,0x4a,0x25,0x25 }, { 0x72,0x5c,0x2e,0x2e },
+    { 0x24,0x38,0x1c,0x1c }, { 0xf1,0x57,0xa6,0xa6 },
+    { 0xc7,0x73,0xb4,0xb4 }, { 0x51,0x97,0xc6,0xc6 },
     { 0x23,0xcb,0xe8,0xe8 }, { 0x7c,0xa1,0xdd,0xdd },
-    { 0x9c,0xe8,0x74,0x74 }, { 0x21,0x3e,0x1f,0x1f }, 
+    { 0x9c,0xe8,0x74,0x74 }, { 0x21,0x3e,0x1f,0x1f },
     { 0xdd,0x96,0x4b,0x4b }, { 0xdc,0x61,0xbd,0xbd },
-    { 0x86,0x0d,0x8b,0x8b }, { 0x85,0x0f,0x8a,0x8a }, 
-    { 0x90,0xe0,0x70,0x70 }, { 0x42,0x7c,0x3e,0x3e }, 
-    { 0xc4,0x71,0xb5,0xb5 }, { 0xaa,0xcc,0x66,0x66 }, 
+    { 0x86,0x0d,0x8b,0x8b }, { 0x85,0x0f,0x8a,0x8a },
+    { 0x90,0xe0,0x70,0x70 }, { 0x42,0x7c,0x3e,0x3e },
+    { 0xc4,0x71,0xb5,0xb5 }, { 0xaa,0xcc,0x66,0x66 },
     { 0xd8,0x90,0x48,0x48 }, { 0x05,0x06,0x03,0x03 },
-    { 0x01,0xf7,0xf6,0xf6 }, { 0x12,0x1c,0x0e,0x0e }, 
+    { 0x01,0xf7,0xf6,0xf6 }, { 0x12,0x1c,0x0e,0x0e },
     { 0xa3,0xc2,0x61,0x61 }, { 0x5f,0x6a,0x35,0x35 },
-    { 0xf9,0xae,0x57,0x57 }, { 0xd0,0x69,0xb9,0xb9 }, 
-    { 0x91,0x17,0x86,0x86 }, { 0x58,0x99,0xc1,0xc1 }, 
-    { 0x27,0x3a,0x1d,0x1d }, { 0xb9,0x27,0x9e,0x9e }, 
+    { 0xf9,0xae,0x57,0x57 }, { 0xd0,0x69,0xb9,0xb9 },
+    { 0x91,0x17,0x86,0x86 }, { 0x58,0x99,0xc1,0xc1 },
+    { 0x27,0x3a,0x1d,0x1d }, { 0xb9,0x27,0x9e,0x9e },
     { 0x38,0xd9,0xe1,0xe1 }, { 0x13,0xeb,0xf8,0xf8 },
-    { 0xb3,0x2b,0x98,0x98 }, { 0x33,0x22,0x11,0x11 }, 
+    { 0xb3,0x2b,0x98,0x98 }, { 0x33,0x22,0x11,0x11 },
     { 0xbb,0xd2,0x69,0x69 }, { 0x70,0xa9,0xd9,0xd9 },
-    { 0x89,0x07,0x8e,0x8e }, { 0xa7,0x33,0x94,0x94 }, 
+    { 0x89,0x07,0x8e,0x8e }, { 0xa7,0x33,0x94,0x94 },
     { 0xb6,0x2d,0x9b,0x9b }, { 0x22,0x3c,0x1e,0x1e },
-    { 0x92,0x15,0x87,0x87 }, { 0x20,0xc9,0xe9,0xe9 }, 
+    { 0x92,0x15,0x87,0x87 }, { 0x20,0xc9,0xe9,0xe9 },
     { 0x49,0x87,0xce,0xce }, { 0xff,0xaa,0x55,0x55 },
-    { 0x78,0x50,0x28,0x28 }, { 0x7a,0xa5,0xdf,0xdf }, 
-    { 0x8f,0x03,0x8c,0x8c }, { 0xf8,0x59,0xa1,0xa1 }, 
-    { 0x80,0x09,0x89,0x89 }, { 0x17,0x1a,0x0d,0x0d }, 
+    { 0x78,0x50,0x28,0x28 }, { 0x7a,0xa5,0xdf,0xdf },
+    { 0x8f,0x03,0x8c,0x8c }, { 0xf8,0x59,0xa1,0xa1 },
+    { 0x80,0x09,0x89,0x89 }, { 0x17,0x1a,0x0d,0x0d },
     { 0xda,0x65,0xbf,0xbf }, { 0x31,0xd7,0xe6,0xe6 },
-    { 0xc6,0x84,0x42,0x42 }, { 0xb8,0xd0,0x68,0x68 }, 
-    { 0xc3,0x82,0x41,0x41 }, { 0xb0,0x29,0x99,0x99 }, 
-    { 0x77,0x5a,0x2d,0x2d }, { 0x11,0x1e,0x0f,0x0f }, 
-    { 0xcb,0x7b,0xb0,0xb0 }, { 0xfc,0xa8,0x54,0x54 }, 
+    { 0xc6,0x84,0x42,0x42 }, { 0xb8,0xd0,0x68,0x68 },
+    { 0xc3,0x82,0x41,0x41 }, { 0xb0,0x29,0x99,0x99 },
+    { 0x77,0x5a,0x2d,0x2d }, { 0x11,0x1e,0x0f,0x0f },
+    { 0xcb,0x7b,0xb0,0xb0 }, { 0xfc,0xa8,0x54,0x54 },
     { 0xd6,0x6d,0xbb,0xbb }, { 0x3a,0x2c,0x16,0x16 }
   };
 
-static const unsigned char T3[256][4] = 
+static const unsigned char T3[256][4] =
   {
     { 0x63,0xa5,0xc6,0x63 }, { 0x7c,0x84,0xf8,0x7c },
-    { 0x77,0x99,0xee,0x77 }, { 0x7b,0x8d,0xf6,0x7b }, 
+    { 0x77,0x99,0xee,0x77 }, { 0x7b,0x8d,0xf6,0x7b },
     { 0xf2,0x0d,0xff,0xf2 }, { 0x6b,0xbd,0xd6,0x6b },
-    { 0x6f,0xb1,0xde,0x6f }, { 0xc5,0x54,0x91,0xc5 }, 
+    { 0x6f,0xb1,0xde,0x6f }, { 0xc5,0x54,0x91,0xc5 },
     { 0x30,0x50,0x60,0x30 }, { 0x01,0x03,0x02,0x01 },
-    { 0x67,0xa9,0xce,0x67 }, { 0x2b,0x7d,0x56,0x2b }, 
-    { 0xfe,0x19,0xe7,0xfe }, { 0xd7,0x62,0xb5,0xd7 }, 
-    { 0xab,0xe6,0x4d,0xab }, { 0x76,0x9a,0xec,0x76 }, 
+    { 0x67,0xa9,0xce,0x67 }, { 0x2b,0x7d,0x56,0x2b },
+    { 0xfe,0x19,0xe7,0xfe }, { 0xd7,0x62,0xb5,0xd7 },
+    { 0xab,0xe6,0x4d,0xab }, { 0x76,0x9a,0xec,0x76 },
     { 0xca,0x45,0x8f,0xca }, { 0x82,0x9d,0x1f,0x82 },
-    { 0xc9,0x40,0x89,0xc9 }, { 0x7d,0x87,0xfa,0x7d }, 
-    { 0xfa,0x15,0xef,0xfa }, { 0x59,0xeb,0xb2,0x59 }, 
-    { 0x47,0xc9,0x8e,0x47 }, { 0xf0,0x0b,0xfb,0xf0 }, 
-    { 0xad,0xec,0x41,0xad }, { 0xd4,0x67,0xb3,0xd4 }, 
-    { 0xa2,0xfd,0x5f,0xa2 }, { 0xaf,0xea,0x45,0xaf }, 
+    { 0xc9,0x40,0x89,0xc9 }, { 0x7d,0x87,0xfa,0x7d },
+    { 0xfa,0x15,0xef,0xfa }, { 0x59,0xeb,0xb2,0x59 },
+    { 0x47,0xc9,0x8e,0x47 }, { 0xf0,0x0b,0xfb,0xf0 },
+    { 0xad,0xec,0x41,0xad }, { 0xd4,0x67,0xb3,0xd4 },
+    { 0xa2,0xfd,0x5f,0xa2 }, { 0xaf,0xea,0x45,0xaf },
     { 0x9c,0xbf,0x23,0x9c }, { 0xa4,0xf7,0x53,0xa4 },
-    { 0x72,0x96,0xe4,0x72 }, { 0xc0,0x5b,0x9b,0xc0 }, 
-    { 0xb7,0xc2,0x75,0xb7 }, { 0xfd,0x1c,0xe1,0xfd }, 
-    { 0x93,0xae,0x3d,0x93 }, { 0x26,0x6a,0x4c,0x26 }, 
+    { 0x72,0x96,0xe4,0x72 }, { 0xc0,0x5b,0x9b,0xc0 },
+    { 0xb7,0xc2,0x75,0xb7 }, { 0xfd,0x1c,0xe1,0xfd },
+    { 0x93,0xae,0x3d,0x93 }, { 0x26,0x6a,0x4c,0x26 },
     { 0x36,0x5a,0x6c,0x36 }, { 0x3f,0x41,0x7e,0x3f },
-    { 0xf7,0x02,0xf5,0xf7 }, { 0xcc,0x4f,0x83,0xcc }, 
+    { 0xf7,0x02,0xf5,0xf7 }, { 0xcc,0x4f,0x83,0xcc },
     { 0x34,0x5c,0x68,0x34 }, { 0xa5,0xf4,0x51,0xa5 },
-    { 0xe5,0x34,0xd1,0xe5 }, { 0xf1,0x08,0xf9,0xf1 }, 
+    { 0xe5,0x34,0xd1,0xe5 }, { 0xf1,0x08,0xf9,0xf1 },
     { 0x71,0x93,0xe2,0x71 }, { 0xd8,0x73,0xab,0xd8 },
-    { 0x31,0x53,0x62,0x31 }, { 0x15,0x3f,0x2a,0x15 }, 
-    { 0x04,0x0c,0x08,0x04 }, { 0xc7,0x52,0x95,0xc7 }, 
-    { 0x23,0x65,0x46,0x23 }, { 0xc3,0x5e,0x9d,0xc3 }, 
+    { 0x31,0x53,0x62,0x31 }, { 0x15,0x3f,0x2a,0x15 },
+    { 0x04,0x0c,0x08,0x04 }, { 0xc7,0x52,0x95,0xc7 },
+    { 0x23,0x65,0x46,0x23 }, { 0xc3,0x5e,0x9d,0xc3 },
     { 0x18,0x28,0x30,0x18 }, { 0x96,0xa1,0x37,0x96 },
-    { 0x05,0x0f,0x0a,0x05 }, { 0x9a,0xb5,0x2f,0x9a }, 
-    { 0x07,0x09,0x0e,0x07 }, { 0x12,0x36,0x24,0x12 }, 
-    { 0x80,0x9b,0x1b,0x80 }, { 0xe2,0x3d,0xdf,0xe2 }, 
+    { 0x05,0x0f,0x0a,0x05 }, { 0x9a,0xb5,0x2f,0x9a },
+    { 0x07,0x09,0x0e,0x07 }, { 0x12,0x36,0x24,0x12 },
+    { 0x80,0x9b,0x1b,0x80 }, { 0xe2,0x3d,0xdf,0xe2 },
     { 0xeb,0x26,0xcd,0xeb }, { 0x27,0x69,0x4e,0x27 },
-    { 0xb2,0xcd,0x7f,0xb2 }, { 0x75,0x9f,0xea,0x75 }, 
+    { 0xb2,0xcd,0x7f,0xb2 }, { 0x75,0x9f,0xea,0x75 },
     { 0x09,0x1b,0x12,0x09 }, { 0x83,0x9e,0x1d,0x83 },
-    { 0x2c,0x74,0x58,0x2c }, { 0x1a,0x2e,0x34,0x1a }, 
+    { 0x2c,0x74,0x58,0x2c }, { 0x1a,0x2e,0x34,0x1a },
     { 0x1b,0x2d,0x36,0x1b }, { 0x6e,0xb2,0xdc,0x6e },
-    { 0x5a,0xee,0xb4,0x5a }, { 0xa0,0xfb,0x5b,0xa0 }, 
+    { 0x5a,0xee,0xb4,0x5a }, { 0xa0,0xfb,0x5b,0xa0 },
     { 0x52,0xf6,0xa4,0x52 }, { 0x3b,0x4d,0x76,0x3b },
-    { 0xd6,0x61,0xb7,0xd6 }, { 0xb3,0xce,0x7d,0xb3 }, 
-    { 0x29,0x7b,0x52,0x29 }, { 0xe3,0x3e,0xdd,0xe3 }, 
-    { 0x2f,0x71,0x5e,0x2f }, { 0x84,0x97,0x13,0x84 }, 
+    { 0xd6,0x61,0xb7,0xd6 }, { 0xb3,0xce,0x7d,0xb3 },
+    { 0x29,0x7b,0x52,0x29 }, { 0xe3,0x3e,0xdd,0xe3 },
+    { 0x2f,0x71,0x5e,0x2f }, { 0x84,0x97,0x13,0x84 },
     { 0x53,0xf5,0xa6,0x53 }, { 0xd1,0x68,0xb9,0xd1 },
-    { 0x00,0x00,0x00,0x00 }, { 0xed,0x2c,0xc1,0xed }, 
+    { 0x00,0x00,0x00,0x00 }, { 0xed,0x2c,0xc1,0xed },
     { 0x20,0x60,0x40,0x20 }, { 0xfc,0x1f,0xe3,0xfc },
-    { 0xb1,0xc8,0x79,0xb1 }, { 0x5b,0xed,0xb6,0x5b }, 
+    { 0xb1,0xc8,0x79,0xb1 }, { 0x5b,0xed,0xb6,0x5b },
     { 0x6a,0xbe,0xd4,0x6a }, { 0xcb,0x46,0x8d,0xcb },
-    { 0xbe,0xd9,0x67,0xbe }, { 0x39,0x4b,0x72,0x39 }, 
+    { 0xbe,0xd9,0x67,0xbe }, { 0x39,0x4b,0x72,0x39 },
     { 0x4a,0xde,0x94,0x4a }, { 0x4c,0xd4,0x98,0x4c },
-    { 0x58,0xe8,0xb0,0x58 }, { 0xcf,0x4a,0x85,0xcf }, 
+    { 0x58,0xe8,0xb0,0x58 }, { 0xcf,0x4a,0x85,0xcf },
     { 0xd0,0x6b,0xbb,0xd0 }, { 0xef,0x2a,0xc5,0xef },
-    { 0xaa,0xe5,0x4f,0xaa }, { 0xfb,0x16,0xed,0xfb }, 
+    { 0xaa,0xe5,0x4f,0xaa }, { 0xfb,0x16,0xed,0xfb },
     { 0x43,0xc5,0x86,0x43 }, { 0x4d,0xd7,0x9a,0x4d },
-    { 0x33,0x55,0x66,0x33 }, { 0x85,0x94,0x11,0x85 }, 
+    { 0x33,0x55,0x66,0x33 }, { 0x85,0x94,0x11,0x85 },
     { 0x45,0xcf,0x8a,0x45 }, { 0xf9,0x10,0xe9,0xf9 },
-    { 0x02,0x06,0x04,0x02 }, { 0x7f,0x81,0xfe,0x7f }, 
+    { 0x02,0x06,0x04,0x02 }, { 0x7f,0x81,0xfe,0x7f },
     { 0x50,0xf0,0xa0,0x50 }, { 0x3c,0x44,0x78,0x3c },
-    { 0x9f,0xba,0x25,0x9f }, { 0xa8,0xe3,0x4b,0xa8 }, 
+    { 0x9f,0xba,0x25,0x9f }, { 0xa8,0xe3,0x4b,0xa8 },
     { 0x51,0xf3,0xa2,0x51 }, { 0xa3,0xfe,0x5d,0xa3 },
-    { 0x40,0xc0,0x80,0x40 }, { 0x8f,0x8a,0x05,0x8f }, 
+    { 0x40,0xc0,0x80,0x40 }, { 0x8f,0x8a,0x05,0x8f },
     { 0x92,0xad,0x3f,0x92 }, { 0x9d,0xbc,0x21,0x9d },
-    { 0x38,0x48,0x70,0x38 }, { 0xf5,0x04,0xf1,0xf5 }, 
+    { 0x38,0x48,0x70,0x38 }, { 0xf5,0x04,0xf1,0xf5 },
     { 0xbc,0xdf,0x63,0xbc }, { 0xb6,0xc1,0x77,0xb6 },
-    { 0xda,0x75,0xaf,0xda }, { 0x21,0x63,0x42,0x21 }, 
+    { 0xda,0x75,0xaf,0xda }, { 0x21,0x63,0x42,0x21 },
     { 0x10,0x30,0x20,0x10 }, { 0xff,0x1a,0xe5,0xff },
-    { 0xf3,0x0e,0xfd,0xf3 }, { 0xd2,0x6d,0xbf,0xd2 }, 
-    { 0xcd,0x4c,0x81,0xcd }, { 0x0c,0x14,0x18,0x0c }, 
-    { 0x13,0x35,0x26,0x13 }, { 0xec,0x2f,0xc3,0xec }, 
+    { 0xf3,0x0e,0xfd,0xf3 }, { 0xd2,0x6d,0xbf,0xd2 },
+    { 0xcd,0x4c,0x81,0xcd }, { 0x0c,0x14,0x18,0x0c },
+    { 0x13,0x35,0x26,0x13 }, { 0xec,0x2f,0xc3,0xec },
     { 0x5f,0xe1,0xbe,0x5f }, { 0x97,0xa2,0x35,0x97 },
-    { 0x44,0xcc,0x88,0x44 }, { 0x17,0x39,0x2e,0x17 }, 
+    { 0x44,0xcc,0x88,0x44 }, { 0x17,0x39,0x2e,0x17 },
     { 0xc4,0x57,0x93,0xc4 }, { 0xa7,0xf2,0x55,0xa7 },
-    { 0x7e,0x82,0xfc,0x7e }, { 0x3d,0x47,0x7a,0x3d }, 
+    { 0x7e,0x82,0xfc,0x7e }, { 0x3d,0x47,0x7a,0x3d },
     { 0x64,0xac,0xc8,0x64 }, { 0x5d,0xe7,0xba,0x5d },
-    { 0x19,0x2b,0x32,0x19 }, { 0x73,0x95,0xe6,0x73 }, 
+    { 0x19,0x2b,0x32,0x19 }, { 0x73,0x95,0xe6,0x73 },
     { 0x60,0xa0,0xc0,0x60 }, { 0x81,0x98,0x19,0x81 },
-    { 0x4f,0xd1,0x9e,0x4f }, { 0xdc,0x7f,0xa3,0xdc }, 
+    { 0x4f,0xd1,0x9e,0x4f }, { 0xdc,0x7f,0xa3,0xdc },
     { 0x22,0x66,0x44,0x22 }, { 0x2a,0x7e,0x54,0x2a },
-    { 0x90,0xab,0x3b,0x90 }, { 0x88,0x83,0x0b,0x88 }, 
+    { 0x90,0xab,0x3b,0x90 }, { 0x88,0x83,0x0b,0x88 },
     { 0x46,0xca,0x8c,0x46 }, { 0xee,0x29,0xc7,0xee },
-    { 0xb8,0xd3,0x6b,0xb8 }, { 0x14,0x3c,0x28,0x14 }, 
-    { 0xde,0x79,0xa7,0xde }, { 0x5e,0xe2,0xbc,0x5e }, 
-    { 0x0b,0x1d,0x16,0x0b }, { 0xdb,0x76,0xad,0xdb }, 
+    { 0xb8,0xd3,0x6b,0xb8 }, { 0x14,0x3c,0x28,0x14 },
+    { 0xde,0x79,0xa7,0xde }, { 0x5e,0xe2,0xbc,0x5e },
+    { 0x0b,0x1d,0x16,0x0b }, { 0xdb,0x76,0xad,0xdb },
     { 0xe0,0x3b,0xdb,0xe0 }, { 0x32,0x56,0x64,0x32 },
-    { 0x3a,0x4e,0x74,0x3a }, { 0x0a,0x1e,0x14,0x0a }, 
+    { 0x3a,0x4e,0x74,0x3a }, { 0x0a,0x1e,0x14,0x0a },
     { 0x49,0xdb,0x92,0x49 }, { 0x06,0x0a,0x0c,0x06 },
-    { 0x24,0x6c,0x48,0x24 }, { 0x5c,0xe4,0xb8,0x5c }, 
+    { 0x24,0x6c,0x48,0x24 }, { 0x5c,0xe4,0xb8,0x5c },
     { 0xc2,0x5d,0x9f,0xc2 }, { 0xd3,0x6e,0xbd,0xd3 },
-    { 0xac,0xef,0x43,0xac }, { 0x62,0xa6,0xc4,0x62 }, 
+    { 0xac,0xef,0x43,0xac }, { 0x62,0xa6,0xc4,0x62 },
     { 0x91,0xa8,0x39,0x91 }, { 0x95,0xa4,0x31,0x95 },
-    { 0xe4,0x37,0xd3,0xe4 }, { 0x79,0x8b,0xf2,0x79 }, 
-    { 0xe7,0x32,0xd5,0xe7 }, { 0xc8,0x43,0x8b,0xc8 }, 
-    { 0x37,0x59,0x6e,0x37 }, { 0x6d,0xb7,0xda,0x6d }, 
-    { 0x8d,0x8c,0x01,0x8d }, { 0xd5,0x64,0xb1,0xd5 }, 
-    { 0x4e,0xd2,0x9c,0x4e }, { 0xa9,0xe0,0x49,0xa9 }, 
+    { 0xe4,0x37,0xd3,0xe4 }, { 0x79,0x8b,0xf2,0x79 },
+    { 0xe7,0x32,0xd5,0xe7 }, { 0xc8,0x43,0x8b,0xc8 },
+    { 0x37,0x59,0x6e,0x37 }, { 0x6d,0xb7,0xda,0x6d },
+    { 0x8d,0x8c,0x01,0x8d }, { 0xd5,0x64,0xb1,0xd5 },
+    { 0x4e,0xd2,0x9c,0x4e }, { 0xa9,0xe0,0x49,0xa9 },
     { 0x6c,0xb4,0xd8,0x6c }, { 0x56,0xfa,0xac,0x56 },
-    { 0xf4,0x07,0xf3,0xf4 }, { 0xea,0x25,0xcf,0xea }, 
-    { 0x65,0xaf,0xca,0x65 }, { 0x7a,0x8e,0xf4,0x7a }, 
-    { 0xae,0xe9,0x47,0xae }, { 0x08,0x18,0x10,0x08 }, 
-    { 0xba,0xd5,0x6f,0xba }, { 0x78,0x88,0xf0,0x78 }, 
-    { 0x25,0x6f,0x4a,0x25 }, { 0x2e,0x72,0x5c,0x2e }, 
-    { 0x1c,0x24,0x38,0x1c }, { 0xa6,0xf1,0x57,0xa6 }, 
-    { 0xb4,0xc7,0x73,0xb4 }, { 0xc6,0x51,0x97,0xc6 }, 
+    { 0xf4,0x07,0xf3,0xf4 }, { 0xea,0x25,0xcf,0xea },
+    { 0x65,0xaf,0xca,0x65 }, { 0x7a,0x8e,0xf4,0x7a },
+    { 0xae,0xe9,0x47,0xae }, { 0x08,0x18,0x10,0x08 },
+    { 0xba,0xd5,0x6f,0xba }, { 0x78,0x88,0xf0,0x78 },
+    { 0x25,0x6f,0x4a,0x25 }, { 0x2e,0x72,0x5c,0x2e },
+    { 0x1c,0x24,0x38,0x1c }, { 0xa6,0xf1,0x57,0xa6 },
+    { 0xb4,0xc7,0x73,0xb4 }, { 0xc6,0x51,0x97,0xc6 },
     { 0xe8,0x23,0xcb,0xe8 }, { 0xdd,0x7c,0xa1,0xdd },
-    { 0x74,0x9c,0xe8,0x74 }, { 0x1f,0x21,0x3e,0x1f }, 
+    { 0x74,0x9c,0xe8,0x74 }, { 0x1f,0x21,0x3e,0x1f },
     { 0x4b,0xdd,0x96,0x4b }, { 0xbd,0xdc,0x61,0xbd },
-    { 0x8b,0x86,0x0d,0x8b }, { 0x8a,0x85,0x0f,0x8a }, 
+    { 0x8b,0x86,0x0d,0x8b }, { 0x8a,0x85,0x0f,0x8a },
     { 0x70,0x90,0xe0,0x70 }, { 0x3e,0x42,0x7c,0x3e },
-    { 0xb5,0xc4,0x71,0xb5 }, { 0x66,0xaa,0xcc,0x66 }, 
+    { 0xb5,0xc4,0x71,0xb5 }, { 0x66,0xaa,0xcc,0x66 },
     { 0x48,0xd8,0x90,0x48 }, { 0x03,0x05,0x06,0x03 },
-    { 0xf6,0x01,0xf7,0xf6 }, { 0x0e,0x12,0x1c,0x0e }, 
+    { 0xf6,0x01,0xf7,0xf6 }, { 0x0e,0x12,0x1c,0x0e },
     { 0x61,0xa3,0xc2,0x61 }, { 0x35,0x5f,0x6a,0x35 },
-    { 0x57,0xf9,0xae,0x57 }, { 0xb9,0xd0,0x69,0xb9 }, 
-    { 0x86,0x91,0x17,0x86 }, { 0xc1,0x58,0x99,0xc1 }, 
-    { 0x1d,0x27,0x3a,0x1d }, { 0x9e,0xb9,0x27,0x9e }, 
+    { 0x57,0xf9,0xae,0x57 }, { 0xb9,0xd0,0x69,0xb9 },
+    { 0x86,0x91,0x17,0x86 }, { 0xc1,0x58,0x99,0xc1 },
+    { 0x1d,0x27,0x3a,0x1d }, { 0x9e,0xb9,0x27,0x9e },
     { 0xe1,0x38,0xd9,0xe1 }, { 0xf8,0x13,0xeb,0xf8 },
-    { 0x98,0xb3,0x2b,0x98 }, { 0x11,0x33,0x22,0x11 }, 
+    { 0x98,0xb3,0x2b,0x98 }, { 0x11,0x33,0x22,0x11 },
     { 0x69,0xbb,0xd2,0x69 }, { 0xd9,0x70,0xa9,0xd9 },
-    { 0x8e,0x89,0x07,0x8e }, { 0x94,0xa7,0x33,0x94 }, 
+    { 0x8e,0x89,0x07,0x8e }, { 0x94,0xa7,0x33,0x94 },
     { 0x9b,0xb6,0x2d,0x9b }, { 0x1e,0x22,0x3c,0x1e },
-    { 0x87,0x92,0x15,0x87 }, { 0xe9,0x20,0xc9,0xe9 }, 
+    { 0x87,0x92,0x15,0x87 }, { 0xe9,0x20,0xc9,0xe9 },
     { 0xce,0x49,0x87,0xce }, { 0x55,0xff,0xaa,0x55 },
-    { 0x28,0x78,0x50,0x28 }, { 0xdf,0x7a,0xa5,0xdf }, 
+    { 0x28,0x78,0x50,0x28 }, { 0xdf,0x7a,0xa5,0xdf },
     { 0x8c,0x8f,0x03,0x8c }, { 0xa1,0xf8,0x59,0xa1 },
-    { 0x89,0x80,0x09,0x89 }, { 0x0d,0x17,0x1a,0x0d }, 
+    { 0x89,0x80,0x09,0x89 }, { 0x0d,0x17,0x1a,0x0d },
     { 0xbf,0xda,0x65,0xbf }, { 0xe6,0x31,0xd7,0xe6 },
-    { 0x42,0xc6,0x84,0x42 }, { 0x68,0xb8,0xd0,0x68 }, 
+    { 0x42,0xc6,0x84,0x42 }, { 0x68,0xb8,0xd0,0x68 },
     { 0x41,0xc3,0x82,0x41 }, { 0x99,0xb0,0x29,0x99 },
-    { 0x2d,0x77,0x5a,0x2d }, { 0x0f,0x11,0x1e,0x0f }, 
+    { 0x2d,0x77,0x5a,0x2d }, { 0x0f,0x11,0x1e,0x0f },
     { 0xb0,0xcb,0x7b,0xb0 }, { 0x54,0xfc,0xa8,0x54 },
     { 0xbb,0xd6,0x6d,0xbb }, { 0x16,0x3a,0x2c,0x16 }
   };
 
-static const unsigned char T4[256][4] = 
+static const unsigned char T4[256][4] =
   {
     { 0x63,0x63,0xa5,0xc6 }, { 0x7c,0x7c,0x84,0xf8 },
-    { 0x77,0x77,0x99,0xee }, { 0x7b,0x7b,0x8d,0xf6 }, 
-    { 0xf2,0xf2,0x0d,0xff }, { 0x6b,0x6b,0xbd,0xd6 }, 
-    { 0x6f,0x6f,0xb1,0xde }, { 0xc5,0xc5,0x54,0x91 }, 
+    { 0x77,0x77,0x99,0xee }, { 0x7b,0x7b,0x8d,0xf6 },
+    { 0xf2,0xf2,0x0d,0xff }, { 0x6b,0x6b,0xbd,0xd6 },
+    { 0x6f,0x6f,0xb1,0xde }, { 0xc5,0xc5,0x54,0x91 },
     { 0x30,0x30,0x50,0x60 }, { 0x01,0x01,0x03,0x02 },
-    { 0x67,0x67,0xa9,0xce }, { 0x2b,0x2b,0x7d,0x56 }, 
+    { 0x67,0x67,0xa9,0xce }, { 0x2b,0x2b,0x7d,0x56 },
     { 0xfe,0xfe,0x19,0xe7 }, { 0xd7,0xd7,0x62,0xb5 },
-    { 0xab,0xab,0xe6,0x4d }, { 0x76,0x76,0x9a,0xec }, 
+    { 0xab,0xab,0xe6,0x4d }, { 0x76,0x76,0x9a,0xec },
     { 0xca,0xca,0x45,0x8f }, { 0x82,0x82,0x9d,0x1f },
-    { 0xc9,0xc9,0x40,0x89 }, { 0x7d,0x7d,0x87,0xfa }, 
+    { 0xc9,0xc9,0x40,0x89 }, { 0x7d,0x7d,0x87,0xfa },
     { 0xfa,0xfa,0x15,0xef }, { 0x59,0x59,0xeb,0xb2 },
-    { 0x47,0x47,0xc9,0x8e }, { 0xf0,0xf0,0x0b,0xfb }, 
+    { 0x47,0x47,0xc9,0x8e }, { 0xf0,0xf0,0x0b,0xfb },
     { 0xad,0xad,0xec,0x41 }, { 0xd4,0xd4,0x67,0xb3 },
-    { 0xa2,0xa2,0xfd,0x5f }, { 0xaf,0xaf,0xea,0x45 }, 
+    { 0xa2,0xa2,0xfd,0x5f }, { 0xaf,0xaf,0xea,0x45 },
     { 0x9c,0x9c,0xbf,0x23 }, { 0xa4,0xa4,0xf7,0x53 },
-    { 0x72,0x72,0x96,0xe4 }, { 0xc0,0xc0,0x5b,0x9b }, 
+    { 0x72,0x72,0x96,0xe4 }, { 0xc0,0xc0,0x5b,0x9b },
     { 0xb7,0xb7,0xc2,0x75 }, { 0xfd,0xfd,0x1c,0xe1 },
-    { 0x93,0x93,0xae,0x3d }, { 0x26,0x26,0x6a,0x4c }, 
+    { 0x93,0x93,0xae,0x3d }, { 0x26,0x26,0x6a,0x4c },
     { 0x36,0x36,0x5a,0x6c }, { 0x3f,0x3f,0x41,0x7e },
-    { 0xf7,0xf7,0x02,0xf5 }, { 0xcc,0xcc,0x4f,0x83 }, 
+    { 0xf7,0xf7,0x02,0xf5 }, { 0xcc,0xcc,0x4f,0x83 },
     { 0x34,0x34,0x5c,0x68 }, { 0xa5,0xa5,0xf4,0x51 },
-    { 0xe5,0xe5,0x34,0xd1 }, { 0xf1,0xf1,0x08,0xf9 }, 
+    { 0xe5,0xe5,0x34,0xd1 }, { 0xf1,0xf1,0x08,0xf9 },
     { 0x71,0x71,0x93,0xe2 }, { 0xd8,0xd8,0x73,0xab },
-    { 0x31,0x31,0x53,0x62 }, { 0x15,0x15,0x3f,0x2a }, 
+    { 0x31,0x31,0x53,0x62 }, { 0x15,0x15,0x3f,0x2a },
     { 0x04,0x04,0x0c,0x08 }, { 0xc7,0xc7,0x52,0x95 },
-    { 0x23,0x23,0x65,0x46 }, { 0xc3,0xc3,0x5e,0x9d }, 
+    { 0x23,0x23,0x65,0x46 }, { 0xc3,0xc3,0x5e,0x9d },
     { 0x18,0x18,0x28,0x30 }, { 0x96,0x96,0xa1,0x37 },
-    { 0x05,0x05,0x0f,0x0a }, { 0x9a,0x9a,0xb5,0x2f }, 
+    { 0x05,0x05,0x0f,0x0a }, { 0x9a,0x9a,0xb5,0x2f },
     { 0x07,0x07,0x09,0x0e }, { 0x12,0x12,0x36,0x24 },
-    { 0x80,0x80,0x9b,0x1b }, { 0xe2,0xe2,0x3d,0xdf }, 
+    { 0x80,0x80,0x9b,0x1b }, { 0xe2,0xe2,0x3d,0xdf },
     { 0xeb,0xeb,0x26,0xcd }, { 0x27,0x27,0x69,0x4e },
-    { 0xb2,0xb2,0xcd,0x7f }, { 0x75,0x75,0x9f,0xea }, 
+    { 0xb2,0xb2,0xcd,0x7f }, { 0x75,0x75,0x9f,0xea },
     { 0x09,0x09,0x1b,0x12 }, { 0x83,0x83,0x9e,0x1d },
-    { 0x2c,0x2c,0x74,0x58 }, { 0x1a,0x1a,0x2e,0x34 }, 
+    { 0x2c,0x2c,0x74,0x58 }, { 0x1a,0x1a,0x2e,0x34 },
     { 0x1b,0x1b,0x2d,0x36 }, { 0x6e,0x6e,0xb2,0xdc },
-    { 0x5a,0x5a,0xee,0xb4 }, { 0xa0,0xa0,0xfb,0x5b }, 
+    { 0x5a,0x5a,0xee,0xb4 }, { 0xa0,0xa0,0xfb,0x5b },
     { 0x52,0x52,0xf6,0xa4 }, { 0x3b,0x3b,0x4d,0x76 },
-    { 0xd6,0xd6,0x61,0xb7 }, { 0xb3,0xb3,0xce,0x7d }, 
+    { 0xd6,0xd6,0x61,0xb7 }, { 0xb3,0xb3,0xce,0x7d },
     { 0x29,0x29,0x7b,0x52 }, { 0xe3,0xe3,0x3e,0xdd },
-    { 0x2f,0x2f,0x71,0x5e }, { 0x84,0x84,0x97,0x13 }, 
+    { 0x2f,0x2f,0x71,0x5e }, { 0x84,0x84,0x97,0x13 },
     { 0x53,0x53,0xf5,0xa6 }, { 0xd1,0xd1,0x68,0xb9 },
-    { 0x00,0x00,0x00,0x00 }, { 0xed,0xed,0x2c,0xc1 }, 
+    { 0x00,0x00,0x00,0x00 }, { 0xed,0xed,0x2c,0xc1 },
     { 0x20,0x20,0x60,0x40 }, { 0xfc,0xfc,0x1f,0xe3 },
-    { 0xb1,0xb1,0xc8,0x79 }, { 0x5b,0x5b,0xed,0xb6 }, 
+    { 0xb1,0xb1,0xc8,0x79 }, { 0x5b,0x5b,0xed,0xb6 },
     { 0x6a,0x6a,0xbe,0xd4 }, { 0xcb,0xcb,0x46,0x8d },
-    { 0xbe,0xbe,0xd9,0x67 }, { 0x39,0x39,0x4b,0x72 }, 
+    { 0xbe,0xbe,0xd9,0x67 }, { 0x39,0x39,0x4b,0x72 },
     { 0x4a,0x4a,0xde,0x94 }, { 0x4c,0x4c,0xd4,0x98 },
-    { 0x58,0x58,0xe8,0xb0 }, { 0xcf,0xcf,0x4a,0x85 }, 
+    { 0x58,0x58,0xe8,0xb0 }, { 0xcf,0xcf,0x4a,0x85 },
     { 0xd0,0xd0,0x6b,0xbb }, { 0xef,0xef,0x2a,0xc5 },
-    { 0xaa,0xaa,0xe5,0x4f }, { 0xfb,0xfb,0x16,0xed }, 
+    { 0xaa,0xaa,0xe5,0x4f }, { 0xfb,0xfb,0x16,0xed },
     { 0x43,0x43,0xc5,0x86 }, { 0x4d,0x4d,0xd7,0x9a },
-    { 0x33,0x33,0x55,0x66 }, { 0x85,0x85,0x94,0x11 }, 
+    { 0x33,0x33,0x55,0x66 }, { 0x85,0x85,0x94,0x11 },
     { 0x45,0x45,0xcf,0x8a }, { 0xf9,0xf9,0x10,0xe9 },
-    { 0x02,0x02,0x06,0x04 }, { 0x7f,0x7f,0x81,0xfe }, 
+    { 0x02,0x02,0x06,0x04 }, { 0x7f,0x7f,0x81,0xfe },
     { 0x50,0x50,0xf0,0xa0 }, { 0x3c,0x3c,0x44,0x78 },
-    { 0x9f,0x9f,0xba,0x25 }, { 0xa8,0xa8,0xe3,0x4b }, 
+    { 0x9f,0x9f,0xba,0x25 }, { 0xa8,0xa8,0xe3,0x4b },
     { 0x51,0x51,0xf3,0xa2 }, { 0xa3,0xa3,0xfe,0x5d },
-    { 0x40,0x40,0xc0,0x80 }, { 0x8f,0x8f,0x8a,0x05 }, 
+    { 0x40,0x40,0xc0,0x80 }, { 0x8f,0x8f,0x8a,0x05 },
     { 0x92,0x92,0xad,0x3f }, { 0x9d,0x9d,0xbc,0x21 },
-    { 0x38,0x38,0x48,0x70 }, { 0xf5,0xf5,0x04,0xf1 }, 
+    { 0x38,0x38,0x48,0x70 }, { 0xf5,0xf5,0x04,0xf1 },
     { 0xbc,0xbc,0xdf,0x63 }, { 0xb6,0xb6,0xc1,0x77 },
-    { 0xda,0xda,0x75,0xaf }, { 0x21,0x21,0x63,0x42 }, 
+    { 0xda,0xda,0x75,0xaf }, { 0x21,0x21,0x63,0x42 },
     { 0x10,0x10,0x30,0x20 }, { 0xff,0xff,0x1a,0xe5 },
-    { 0xf3,0xf3,0x0e,0xfd }, { 0xd2,0xd2,0x6d,0xbf }, 
+    { 0xf3,0xf3,0x0e,0xfd }, { 0xd2,0xd2,0x6d,0xbf },
     { 0xcd,0xcd,0x4c,0x81 }, { 0x0c,0x0c,0x14,0x18 },
-    { 0x13,0x13,0x35,0x26 }, { 0xec,0xec,0x2f,0xc3 }, 
+    { 0x13,0x13,0x35,0x26 }, { 0xec,0xec,0x2f,0xc3 },
     { 0x5f,0x5f,0xe1,0xbe }, { 0x97,0x97,0xa2,0x35 },
-    { 0x44,0x44,0xcc,0x88 }, { 0x17,0x17,0x39,0x2e }, 
+    { 0x44,0x44,0xcc,0x88 }, { 0x17,0x17,0x39,0x2e },
     { 0xc4,0xc4,0x57,0x93 }, { 0xa7,0xa7,0xf2,0x55 },
-    { 0x7e,0x7e,0x82,0xfc }, { 0x3d,0x3d,0x47,0x7a }, 
+    { 0x7e,0x7e,0x82,0xfc }, { 0x3d,0x3d,0x47,0x7a },
     { 0x64,0x64,0xac,0xc8 }, { 0x5d,0x5d,0xe7,0xba },
-    { 0x19,0x19,0x2b,0x32 }, { 0x73,0x73,0x95,0xe6 }, 
+    { 0x19,0x19,0x2b,0x32 }, { 0x73,0x73,0x95,0xe6 },
     { 0x60,0x60,0xa0,0xc0 }, { 0x81,0x81,0x98,0x19 },
-    { 0x4f,0x4f,0xd1,0x9e }, { 0xdc,0xdc,0x7f,0xa3 }, 
+    { 0x4f,0x4f,0xd1,0x9e }, { 0xdc,0xdc,0x7f,0xa3 },
     { 0x22,0x22,0x66,0x44 }, { 0x2a,0x2a,0x7e,0x54 },
-    { 0x90,0x90,0xab,0x3b }, { 0x88,0x88,0x83,0x0b }, 
+    { 0x90,0x90,0xab,0x3b }, { 0x88,0x88,0x83,0x0b },
     { 0x46,0x46,0xca,0x8c }, { 0xee,0xee,0x29,0xc7 },
-    { 0xb8,0xb8,0xd3,0x6b }, { 0x14,0x14,0x3c,0x28 }, 
+    { 0xb8,0xb8,0xd3,0x6b }, { 0x14,0x14,0x3c,0x28 },
     { 0xde,0xde,0x79,0xa7 }, { 0x5e,0x5e,0xe2,0xbc },
-    { 0x0b,0x0b,0x1d,0x16 }, { 0xdb,0xdb,0x76,0xad }, 
+    { 0x0b,0x0b,0x1d,0x16 }, { 0xdb,0xdb,0x76,0xad },
     { 0xe0,0xe0,0x3b,0xdb }, { 0x32,0x32,0x56,0x64 },
-    { 0x3a,0x3a,0x4e,0x74 }, { 0x0a,0x0a,0x1e,0x14 }, 
+    { 0x3a,0x3a,0x4e,0x74 }, { 0x0a,0x0a,0x1e,0x14 },
     { 0x49,0x49,0xdb,0x92 }, { 0x06,0x06,0x0a,0x0c },
-    { 0x24,0x24,0x6c,0x48 }, { 0x5c,0x5c,0xe4,0xb8 }, 
+    { 0x24,0x24,0x6c,0x48 }, { 0x5c,0x5c,0xe4,0xb8 },
     { 0xc2,0xc2,0x5d,0x9f }, { 0xd3,0xd3,0x6e,0xbd },
-    { 0xac,0xac,0xef,0x43 }, { 0x62,0x62,0xa6,0xc4 }, 
+    { 0xac,0xac,0xef,0x43 }, { 0x62,0x62,0xa6,0xc4 },
     { 0x91,0x91,0xa8,0x39 }, { 0x95,0x95,0xa4,0x31 },
-    { 0xe4,0xe4,0x37,0xd3 }, { 0x79,0x79,0x8b,0xf2 }, 
+    { 0xe4,0xe4,0x37,0xd3 }, { 0x79,0x79,0x8b,0xf2 },
     { 0xe7,0xe7,0x32,0xd5 }, { 0xc8,0xc8,0x43,0x8b },
-    { 0x37,0x37,0x59,0x6e }, { 0x6d,0x6d,0xb7,0xda }, 
-    { 0x8d,0x8d,0x8c,0x01 }, { 0xd5,0xd5,0x64,0xb1 }, 
-    { 0x4e,0x4e,0xd2,0x9c }, { 0xa9,0xa9,0xe0,0x49 }, 
-    { 0x6c,0x6c,0xb4,0xd8 }, { 0x56,0x56,0xfa,0xac }, 
-    { 0xf4,0xf4,0x07,0xf3 }, { 0xea,0xea,0x25,0xcf }, 
-    { 0x65,0x65,0xaf,0xca }, { 0x7a,0x7a,0x8e,0xf4 }, 
-    { 0xae,0xae,0xe9,0x47 }, { 0x08,0x08,0x18,0x10 }, 
-    { 0xba,0xba,0xd5,0x6f }, { 0x78,0x78,0x88,0xf0 }, 
-    { 0x25,0x25,0x6f,0x4a }, { 0x2e,0x2e,0x72,0x5c }, 
+    { 0x37,0x37,0x59,0x6e }, { 0x6d,0x6d,0xb7,0xda },
+    { 0x8d,0x8d,0x8c,0x01 }, { 0xd5,0xd5,0x64,0xb1 },
+    { 0x4e,0x4e,0xd2,0x9c }, { 0xa9,0xa9,0xe0,0x49 },
+    { 0x6c,0x6c,0xb4,0xd8 }, { 0x56,0x56,0xfa,0xac },
+    { 0xf4,0xf4,0x07,0xf3 }, { 0xea,0xea,0x25,0xcf },
+    { 0x65,0x65,0xaf,0xca }, { 0x7a,0x7a,0x8e,0xf4 },
+    { 0xae,0xae,0xe9,0x47 }, { 0x08,0x08,0x18,0x10 },
+    { 0xba,0xba,0xd5,0x6f }, { 0x78,0x78,0x88,0xf0 },
+    { 0x25,0x25,0x6f,0x4a }, { 0x2e,0x2e,0x72,0x5c },
     { 0x1c,0x1c,0x24,0x38 }, { 0xa6,0xa6,0xf1,0x57 },
-    { 0xb4,0xb4,0xc7,0x73 }, { 0xc6,0xc6,0x51,0x97 }, 
+    { 0xb4,0xb4,0xc7,0x73 }, { 0xc6,0xc6,0x51,0x97 },
     { 0xe8,0xe8,0x23,0xcb }, { 0xdd,0xdd,0x7c,0xa1 },
-    { 0x74,0x74,0x9c,0xe8 }, { 0x1f,0x1f,0x21,0x3e }, 
+    { 0x74,0x74,0x9c,0xe8 }, { 0x1f,0x1f,0x21,0x3e },
     { 0x4b,0x4b,0xdd,0x96 }, { 0xbd,0xbd,0xdc,0x61 },
-    { 0x8b,0x8b,0x86,0x0d }, { 0x8a,0x8a,0x85,0x0f }, 
+    { 0x8b,0x8b,0x86,0x0d }, { 0x8a,0x8a,0x85,0x0f },
     { 0x70,0x70,0x90,0xe0 }, { 0x3e,0x3e,0x42,0x7c },
-    { 0xb5,0xb5,0xc4,0x71 }, { 0x66,0x66,0xaa,0xcc }, 
+    { 0xb5,0xb5,0xc4,0x71 }, { 0x66,0x66,0xaa,0xcc },
     { 0x48,0x48,0xd8,0x90 }, { 0x03,0x03,0x05,0x06 },
-    { 0xf6,0xf6,0x01,0xf7 }, { 0x0e,0x0e,0x12,0x1c }, 
+    { 0xf6,0xf6,0x01,0xf7 }, { 0x0e,0x0e,0x12,0x1c },
     { 0x61,0x61,0xa3,0xc2 }, { 0x35,0x35,0x5f,0x6a },
-    { 0x57,0x57,0xf9,0xae }, { 0xb9,0xb9,0xd0,0x69 }, 
+    { 0x57,0x57,0xf9,0xae }, { 0xb9,0xb9,0xd0,0x69 },
     { 0x86,0x86,0x91,0x17 }, { 0xc1,0xc1,0x58,0x99 },
-    { 0x1d,0x1d,0x27,0x3a }, { 0x9e,0x9e,0xb9,0x27 }, 
+    { 0x1d,0x1d,0x27,0x3a }, { 0x9e,0x9e,0xb9,0x27 },
     { 0xe1,0xe1,0x38,0xd9 }, { 0xf8,0xf8,0x13,0xeb },
-    { 0x98,0x98,0xb3,0x2b }, { 0x11,0x11,0x33,0x22 }, 
+    { 0x98,0x98,0xb3,0x2b }, { 0x11,0x11,0x33,0x22 },
     { 0x69,0x69,0xbb,0xd2 }, { 0xd9,0xd9,0x70,0xa9 },
-    { 0x8e,0x8e,0x89,0x07 }, { 0x94,0x94,0xa7,0x33 }, 
+    { 0x8e,0x8e,0x89,0x07 }, { 0x94,0x94,0xa7,0x33 },
     { 0x9b,0x9b,0xb6,0x2d }, { 0x1e,0x1e,0x22,0x3c },
-    { 0x87,0x87,0x92,0x15 }, { 0xe9,0xe9,0x20,0xc9 }, 
+    { 0x87,0x87,0x92,0x15 }, { 0xe9,0xe9,0x20,0xc9 },
     { 0xce,0xce,0x49,0x87 }, { 0x55,0x55,0xff,0xaa },
-    { 0x28,0x28,0x78,0x50 }, { 0xdf,0xdf,0x7a,0xa5 }, 
+    { 0x28,0x28,0x78,0x50 }, { 0xdf,0xdf,0x7a,0xa5 },
     { 0x8c,0x8c,0x8f,0x03 }, { 0xa1,0xa1,0xf8,0x59 },
-    { 0x89,0x89,0x80,0x09 }, { 0x0d,0x0d,0x17,0x1a }, 
-    { 0xbf,0xbf,0xda,0x65 }, { 0xe6,0xe6,0x31,0xd7 }, 
-    { 0x42,0x42,0xc6,0x84 }, { 0x68,0x68,0xb8,0xd0 }, 
+    { 0x89,0x89,0x80,0x09 }, { 0x0d,0x0d,0x17,0x1a },
+    { 0xbf,0xbf,0xda,0x65 }, { 0xe6,0xe6,0x31,0xd7 },
+    { 0x42,0x42,0xc6,0x84 }, { 0x68,0x68,0xb8,0xd0 },
     { 0x41,0x41,0xc3,0x82 }, { 0x99,0x99,0xb0,0x29 },
-    { 0x2d,0x2d,0x77,0x5a }, { 0x0f,0x0f,0x11,0x1e }, 
+    { 0x2d,0x2d,0x77,0x5a }, { 0x0f,0x0f,0x11,0x1e },
     { 0xb0,0xb0,0xcb,0x7b }, { 0x54,0x54,0xfc,0xa8 },
     { 0xbb,0xbb,0xd6,0x6d }, { 0x16,0x16,0x3a,0x2c }
   };
 
-static const unsigned char T5[256][4] = 
+static const unsigned char T5[256][4] =
   {
-    { 0x51,0xf4,0xa7,0x50 }, { 0x7e,0x41,0x65,0x53 }, 
-    { 0x1a,0x17,0xa4,0xc3 }, { 0x3a,0x27,0x5e,0x96 }, 
+    { 0x51,0xf4,0xa7,0x50 }, { 0x7e,0x41,0x65,0x53 },
+    { 0x1a,0x17,0xa4,0xc3 }, { 0x3a,0x27,0x5e,0x96 },
     { 0x3b,0xab,0x6b,0xcb }, { 0x1f,0x9d,0x45,0xf1 },
-    { 0xac,0xfa,0x58,0xab }, { 0x4b,0xe3,0x03,0x93 }, 
+    { 0xac,0xfa,0x58,0xab }, { 0x4b,0xe3,0x03,0x93 },
     { 0x20,0x30,0xfa,0x55 }, { 0xad,0x76,0x6d,0xf6 },
-    { 0x88,0xcc,0x76,0x91 }, { 0xf5,0x02,0x4c,0x25 }, 
+    { 0x88,0xcc,0x76,0x91 }, { 0xf5,0x02,0x4c,0x25 },
     { 0x4f,0xe5,0xd7,0xfc }, { 0xc5,0x2a,0xcb,0xd7 },
-    { 0x26,0x35,0x44,0x80 }, { 0xb5,0x62,0xa3,0x8f }, 
+    { 0x26,0x35,0x44,0x80 }, { 0xb5,0x62,0xa3,0x8f },
     { 0xde,0xb1,0x5a,0x49 }, { 0x25,0xba,0x1b,0x67 },
-    { 0x45,0xea,0x0e,0x98 }, { 0x5d,0xfe,0xc0,0xe1 }, 
+    { 0x45,0xea,0x0e,0x98 }, { 0x5d,0xfe,0xc0,0xe1 },
     { 0xc3,0x2f,0x75,0x02 }, { 0x81,0x4c,0xf0,0x12 },
-    { 0x8d,0x46,0x97,0xa3 }, { 0x6b,0xd3,0xf9,0xc6 }, 
+    { 0x8d,0x46,0x97,0xa3 }, { 0x6b,0xd3,0xf9,0xc6 },
     { 0x03,0x8f,0x5f,0xe7 }, { 0x15,0x92,0x9c,0x95 },
-    { 0xbf,0x6d,0x7a,0xeb }, { 0x95,0x52,0x59,0xda }, 
+    { 0xbf,0x6d,0x7a,0xeb }, { 0x95,0x52,0x59,0xda },
     { 0xd4,0xbe,0x83,0x2d }, { 0x58,0x74,0x21,0xd3 },
-    { 0x49,0xe0,0x69,0x29 }, { 0x8e,0xc9,0xc8,0x44 }, 
+    { 0x49,0xe0,0x69,0x29 }, { 0x8e,0xc9,0xc8,0x44 },
     { 0x75,0xc2,0x89,0x6a }, { 0xf4,0x8e,0x79,0x78 },
-    { 0x99,0x58,0x3e,0x6b }, { 0x27,0xb9,0x71,0xdd }, 
+    { 0x99,0x58,0x3e,0x6b }, { 0x27,0xb9,0x71,0xdd },
     { 0xbe,0xe1,0x4f,0xb6 }, { 0xf0,0x88,0xad,0x17 },
-    { 0xc9,0x20,0xac,0x66 }, { 0x7d,0xce,0x3a,0xb4 }, 
+    { 0xc9,0x20,0xac,0x66 }, { 0x7d,0xce,0x3a,0xb4 },
     { 0x63,0xdf,0x4a,0x18 }, { 0xe5,0x1a,0x31,0x82 },
-    { 0x97,0x51,0x33,0x60 }, { 0x62,0x53,0x7f,0x45 }, 
-    { 0xb1,0x64,0x77,0xe0 }, { 0xbb,0x6b,0xae,0x84 }, 
-    { 0xfe,0x81,0xa0,0x1c }, { 0xf9,0x08,0x2b,0x94 }, 
-    { 0x70,0x48,0x68,0x58 }, { 0x8f,0x45,0xfd,0x19 }, 
-    { 0x94,0xde,0x6c,0x87 }, { 0x52,0x7b,0xf8,0xb7 }, 
+    { 0x97,0x51,0x33,0x60 }, { 0x62,0x53,0x7f,0x45 },
+    { 0xb1,0x64,0x77,0xe0 }, { 0xbb,0x6b,0xae,0x84 },
+    { 0xfe,0x81,0xa0,0x1c }, { 0xf9,0x08,0x2b,0x94 },
+    { 0x70,0x48,0x68,0x58 }, { 0x8f,0x45,0xfd,0x19 },
+    { 0x94,0xde,0x6c,0x87 }, { 0x52,0x7b,0xf8,0xb7 },
     { 0xab,0x73,0xd3,0x23 }, { 0x72,0x4b,0x02,0xe2 },
-    { 0xe3,0x1f,0x8f,0x57 }, { 0x66,0x55,0xab,0x2a }, 
+    { 0xe3,0x1f,0x8f,0x57 }, { 0x66,0x55,0xab,0x2a },
     { 0xb2,0xeb,0x28,0x07 }, { 0x2f,0xb5,0xc2,0x03 },
-    { 0x86,0xc5,0x7b,0x9a }, { 0xd3,0x37,0x08,0xa5 }, 
+    { 0x86,0xc5,0x7b,0x9a }, { 0xd3,0x37,0x08,0xa5 },
     { 0x30,0x28,0x87,0xf2 }, { 0x23,0xbf,0xa5,0xb2 },
-    { 0x02,0x03,0x6a,0xba }, { 0xed,0x16,0x82,0x5c }, 
+    { 0x02,0x03,0x6a,0xba }, { 0xed,0x16,0x82,0x5c },
     { 0x8a,0xcf,0x1c,0x2b }, { 0xa7,0x79,0xb4,0x92 },
-    { 0xf3,0x07,0xf2,0xf0 }, { 0x4e,0x69,0xe2,0xa1 }, 
+    { 0xf3,0x07,0xf2,0xf0 }, { 0x4e,0x69,0xe2,0xa1 },
     { 0x65,0xda,0xf4,0xcd }, { 0x06,0x05,0xbe,0xd5 },
-    { 0xd1,0x34,0x62,0x1f }, { 0xc4,0xa6,0xfe,0x8a }, 
+    { 0xd1,0x34,0x62,0x1f }, { 0xc4,0xa6,0xfe,0x8a },
     { 0x34,0x2e,0x53,0x9d }, { 0xa2,0xf3,0x55,0xa0 },
-    { 0x05,0x8a,0xe1,0x32 }, { 0xa4,0xf6,0xeb,0x75 }, 
+    { 0x05,0x8a,0xe1,0x32 }, { 0xa4,0xf6,0xeb,0x75 },
     { 0x0b,0x83,0xec,0x39 }, { 0x40,0x60,0xef,0xaa },
-    { 0x5e,0x71,0x9f,0x06 }, { 0xbd,0x6e,0x10,0x51 }, 
-    { 0x3e,0x21,0x8a,0xf9 }, { 0x96,0xdd,0x06,0x3d }, 
-    { 0xdd,0x3e,0x05,0xae }, { 0x4d,0xe6,0xbd,0x46 }, 
-    { 0x91,0x54,0x8d,0xb5 }, { 0x71,0xc4,0x5d,0x05 }, 
-    { 0x04,0x06,0xd4,0x6f }, { 0x60,0x50,0x15,0xff }, 
+    { 0x5e,0x71,0x9f,0x06 }, { 0xbd,0x6e,0x10,0x51 },
+    { 0x3e,0x21,0x8a,0xf9 }, { 0x96,0xdd,0x06,0x3d },
+    { 0xdd,0x3e,0x05,0xae }, { 0x4d,0xe6,0xbd,0x46 },
+    { 0x91,0x54,0x8d,0xb5 }, { 0x71,0xc4,0x5d,0x05 },
+    { 0x04,0x06,0xd4,0x6f }, { 0x60,0x50,0x15,0xff },
     { 0x19,0x98,0xfb,0x24 }, { 0xd6,0xbd,0xe9,0x97 },
-    { 0x89,0x40,0x43,0xcc }, { 0x67,0xd9,0x9e,0x77 }, 
+    { 0x89,0x40,0x43,0xcc }, { 0x67,0xd9,0x9e,0x77 },
     { 0xb0,0xe8,0x42,0xbd }, { 0x07,0x89,0x8b,0x88 },
-    { 0xe7,0x19,0x5b,0x38 }, { 0x79,0xc8,0xee,0xdb }, 
+    { 0xe7,0x19,0x5b,0x38 }, { 0x79,0xc8,0xee,0xdb },
     { 0xa1,0x7c,0x0a,0x47 }, { 0x7c,0x42,0x0f,0xe9 },
-    { 0xf8,0x84,0x1e,0xc9 }, { 0x00,0x00,0x00,0x00 }, 
+    { 0xf8,0x84,0x1e,0xc9 }, { 0x00,0x00,0x00,0x00 },
     { 0x09,0x80,0x86,0x83 }, { 0x32,0x2b,0xed,0x48 },
-    { 0x1e,0x11,0x70,0xac }, { 0x6c,0x5a,0x72,0x4e }, 
+    { 0x1e,0x11,0x70,0xac }, { 0x6c,0x5a,0x72,0x4e },
     { 0xfd,0x0e,0xff,0xfb }, { 0x0f,0x85,0x38,0x56 },
-    { 0x3d,0xae,0xd5,0x1e }, { 0x36,0x2d,0x39,0x27 }, 
+    { 0x3d,0xae,0xd5,0x1e }, { 0x36,0x2d,0x39,0x27 },
     { 0x0a,0x0f,0xd9,0x64 }, { 0x68,0x5c,0xa6,0x21 },
-    { 0x9b,0x5b,0x54,0xd1 }, { 0x24,0x36,0x2e,0x3a }, 
+    { 0x9b,0x5b,0x54,0xd1 }, { 0x24,0x36,0x2e,0x3a },
     { 0x0c,0x0a,0x67,0xb1 }, { 0x93,0x57,0xe7,0x0f },
-    { 0xb4,0xee,0x96,0xd2 }, { 0x1b,0x9b,0x91,0x9e }, 
+    { 0xb4,0xee,0x96,0xd2 }, { 0x1b,0x9b,0x91,0x9e },
     { 0x80,0xc0,0xc5,0x4f }, { 0x61,0xdc,0x20,0xa2 },
-    { 0x5a,0x77,0x4b,0x69 }, { 0x1c,0x12,0x1a,0x16 }, 
-    { 0xe2,0x93,0xba,0x0a }, { 0xc0,0xa0,0x2a,0xe5 }, 
-    { 0x3c,0x22,0xe0,0x43 }, { 0x12,0x1b,0x17,0x1d }, 
-    { 0x0e,0x09,0x0d,0x0b }, { 0xf2,0x8b,0xc7,0xad }, 
-    { 0x2d,0xb6,0xa8,0xb9 }, { 0x14,0x1e,0xa9,0xc8 }, 
-    { 0x57,0xf1,0x19,0x85 }, { 0xaf,0x75,0x07,0x4c }, 
-    { 0xee,0x99,0xdd,0xbb }, { 0xa3,0x7f,0x60,0xfd }, 
+    { 0x5a,0x77,0x4b,0x69 }, { 0x1c,0x12,0x1a,0x16 },
+    { 0xe2,0x93,0xba,0x0a }, { 0xc0,0xa0,0x2a,0xe5 },
+    { 0x3c,0x22,0xe0,0x43 }, { 0x12,0x1b,0x17,0x1d },
+    { 0x0e,0x09,0x0d,0x0b }, { 0xf2,0x8b,0xc7,0xad },
+    { 0x2d,0xb6,0xa8,0xb9 }, { 0x14,0x1e,0xa9,0xc8 },
+    { 0x57,0xf1,0x19,0x85 }, { 0xaf,0x75,0x07,0x4c },
+    { 0xee,0x99,0xdd,0xbb }, { 0xa3,0x7f,0x60,0xfd },
     { 0xf7,0x01,0x26,0x9f }, { 0x5c,0x72,0xf5,0xbc },
-    { 0x44,0x66,0x3b,0xc5 }, { 0x5b,0xfb,0x7e,0x34 }, 
+    { 0x44,0x66,0x3b,0xc5 }, { 0x5b,0xfb,0x7e,0x34 },
     { 0x8b,0x43,0x29,0x76 }, { 0xcb,0x23,0xc6,0xdc },
-    { 0xb6,0xed,0xfc,0x68 }, { 0xb8,0xe4,0xf1,0x63 }, 
+    { 0xb6,0xed,0xfc,0x68 }, { 0xb8,0xe4,0xf1,0x63 },
     { 0xd7,0x31,0xdc,0xca }, { 0x42,0x63,0x85,0x10 },
-    { 0x13,0x97,0x22,0x40 }, { 0x84,0xc6,0x11,0x20 }, 
-    { 0x85,0x4a,0x24,0x7d }, { 0xd2,0xbb,0x3d,0xf8 }, 
-    { 0xae,0xf9,0x32,0x11 }, { 0xc7,0x29,0xa1,0x6d }, 
+    { 0x13,0x97,0x22,0x40 }, { 0x84,0xc6,0x11,0x20 },
+    { 0x85,0x4a,0x24,0x7d }, { 0xd2,0xbb,0x3d,0xf8 },
+    { 0xae,0xf9,0x32,0x11 }, { 0xc7,0x29,0xa1,0x6d },
     { 0x1d,0x9e,0x2f,0x4b }, { 0xdc,0xb2,0x30,0xf3 },
-    { 0x0d,0x86,0x52,0xec }, { 0x77,0xc1,0xe3,0xd0 }, 
+    { 0x0d,0x86,0x52,0xec }, { 0x77,0xc1,0xe3,0xd0 },
     { 0x2b,0xb3,0x16,0x6c }, { 0xa9,0x70,0xb9,0x99 },
-    { 0x11,0x94,0x48,0xfa }, { 0x47,0xe9,0x64,0x22 }, 
+    { 0x11,0x94,0x48,0xfa }, { 0x47,0xe9,0x64,0x22 },
     { 0xa8,0xfc,0x8c,0xc4 }, { 0xa0,0xf0,0x3f,0x1a },
-    { 0x56,0x7d,0x2c,0xd8 }, { 0x22,0x33,0x90,0xef }, 
-    { 0x87,0x49,0x4e,0xc7 }, { 0xd9,0x38,0xd1,0xc1 }, 
-    { 0x8c,0xca,0xa2,0xfe }, { 0x98,0xd4,0x0b,0x36 }, 
-    { 0xa6,0xf5,0x81,0xcf }, { 0xa5,0x7a,0xde,0x28 }, 
-    { 0xda,0xb7,0x8e,0x26 }, { 0x3f,0xad,0xbf,0xa4 }, 
-    { 0x2c,0x3a,0x9d,0xe4 }, { 0x50,0x78,0x92,0x0d }, 
-    { 0x6a,0x5f,0xcc,0x9b }, { 0x54,0x7e,0x46,0x62 }, 
-    { 0xf6,0x8d,0x13,0xc2 }, { 0x90,0xd8,0xb8,0xe8 }, 
-    { 0x2e,0x39,0xf7,0x5e }, { 0x82,0xc3,0xaf,0xf5 }, 
+    { 0x56,0x7d,0x2c,0xd8 }, { 0x22,0x33,0x90,0xef },
+    { 0x87,0x49,0x4e,0xc7 }, { 0xd9,0x38,0xd1,0xc1 },
+    { 0x8c,0xca,0xa2,0xfe }, { 0x98,0xd4,0x0b,0x36 },
+    { 0xa6,0xf5,0x81,0xcf }, { 0xa5,0x7a,0xde,0x28 },
+    { 0xda,0xb7,0x8e,0x26 }, { 0x3f,0xad,0xbf,0xa4 },
+    { 0x2c,0x3a,0x9d,0xe4 }, { 0x50,0x78,0x92,0x0d },
+    { 0x6a,0x5f,0xcc,0x9b }, { 0x54,0x7e,0x46,0x62 },
+    { 0xf6,0x8d,0x13,0xc2 }, { 0x90,0xd8,0xb8,0xe8 },
+    { 0x2e,0x39,0xf7,0x5e }, { 0x82,0xc3,0xaf,0xf5 },
     { 0x9f,0x5d,0x80,0xbe }, { 0x69,0xd0,0x93,0x7c },
-    { 0x6f,0xd5,0x2d,0xa9 }, { 0xcf,0x25,0x12,0xb3 }, 
+    { 0x6f,0xd5,0x2d,0xa9 }, { 0xcf,0x25,0x12,0xb3 },
     { 0xc8,0xac,0x99,0x3b }, { 0x10,0x18,0x7d,0xa7 },
-    { 0xe8,0x9c,0x63,0x6e }, { 0xdb,0x3b,0xbb,0x7b }, 
+    { 0xe8,0x9c,0x63,0x6e }, { 0xdb,0x3b,0xbb,0x7b },
     { 0xcd,0x26,0x78,0x09 }, { 0x6e,0x59,0x18,0xf4 },
-    { 0xec,0x9a,0xb7,0x01 }, { 0x83,0x4f,0x9a,0xa8 }, 
-    { 0xe6,0x95,0x6e,0x65 }, { 0xaa,0xff,0xe6,0x7e }, 
-    { 0x21,0xbc,0xcf,0x08 }, { 0xef,0x15,0xe8,0xe6 }, 
-    { 0xba,0xe7,0x9b,0xd9 }, { 0x4a,0x6f,0x36,0xce }, 
-    { 0xea,0x9f,0x09,0xd4 }, { 0x29,0xb0,0x7c,0xd6 }, 
-    { 0x31,0xa4,0xb2,0xaf }, { 0x2a,0x3f,0x23,0x31 }, 
-    { 0xc6,0xa5,0x94,0x30 }, { 0x35,0xa2,0x66,0xc0 }, 
-    { 0x74,0x4e,0xbc,0x37 }, { 0xfc,0x82,0xca,0xa6 }, 
-    { 0xe0,0x90,0xd0,0xb0 }, { 0x33,0xa7,0xd8,0x15 }, 
+    { 0xec,0x9a,0xb7,0x01 }, { 0x83,0x4f,0x9a,0xa8 },
+    { 0xe6,0x95,0x6e,0x65 }, { 0xaa,0xff,0xe6,0x7e },
+    { 0x21,0xbc,0xcf,0x08 }, { 0xef,0x15,0xe8,0xe6 },
+    { 0xba,0xe7,0x9b,0xd9 }, { 0x4a,0x6f,0x36,0xce },
+    { 0xea,0x9f,0x09,0xd4 }, { 0x29,0xb0,0x7c,0xd6 },
+    { 0x31,0xa4,0xb2,0xaf }, { 0x2a,0x3f,0x23,0x31 },
+    { 0xc6,0xa5,0x94,0x30 }, { 0x35,0xa2,0x66,0xc0 },
+    { 0x74,0x4e,0xbc,0x37 }, { 0xfc,0x82,0xca,0xa6 },
+    { 0xe0,0x90,0xd0,0xb0 }, { 0x33,0xa7,0xd8,0x15 },
     { 0xf1,0x04,0x98,0x4a }, { 0x41,0xec,0xda,0xf7 },
-    { 0x7f,0xcd,0x50,0x0e }, { 0x17,0x91,0xf6,0x2f }, 
+    { 0x7f,0xcd,0x50,0x0e }, { 0x17,0x91,0xf6,0x2f },
     { 0x76,0x4d,0xd6,0x8d }, { 0x43,0xef,0xb0,0x4d },
-    { 0xcc,0xaa,0x4d,0x54 }, { 0xe4,0x96,0x04,0xdf }, 
+    { 0xcc,0xaa,0x4d,0x54 }, { 0xe4,0x96,0x04,0xdf },
     { 0x9e,0xd1,0xb5,0xe3 }, { 0x4c,0x6a,0x88,0x1b },
-    { 0xc1,0x2c,0x1f,0xb8 }, { 0x46,0x65,0x51,0x7f }, 
+    { 0xc1,0x2c,0x1f,0xb8 }, { 0x46,0x65,0x51,0x7f },
     { 0x9d,0x5e,0xea,0x04 }, { 0x01,0x8c,0x35,0x5d },
-    { 0xfa,0x87,0x74,0x73 }, { 0xfb,0x0b,0x41,0x2e }, 
+    { 0xfa,0x87,0x74,0x73 }, { 0xfb,0x0b,0x41,0x2e },
     { 0xb3,0x67,0x1d,0x5a }, { 0x92,0xdb,0xd2,0x52 },
-    { 0xe9,0x10,0x56,0x33 }, { 0x6d,0xd6,0x47,0x13 }, 
+    { 0xe9,0x10,0x56,0x33 }, { 0x6d,0xd6,0x47,0x13 },
     { 0x9a,0xd7,0x61,0x8c }, { 0x37,0xa1,0x0c,0x7a },
-    { 0x59,0xf8,0x14,0x8e }, { 0xeb,0x13,0x3c,0x89 }, 
+    { 0x59,0xf8,0x14,0x8e }, { 0xeb,0x13,0x3c,0x89 },
     { 0xce,0xa9,0x27,0xee }, { 0xb7,0x61,0xc9,0x35 },
-    { 0xe1,0x1c,0xe5,0xed }, { 0x7a,0x47,0xb1,0x3c }, 
-    { 0x9c,0xd2,0xdf,0x59 }, { 0x55,0xf2,0x73,0x3f }, 
-    { 0x18,0x14,0xce,0x79 }, { 0x73,0xc7,0x37,0xbf }, 
+    { 0xe1,0x1c,0xe5,0xed }, { 0x7a,0x47,0xb1,0x3c },
+    { 0x9c,0xd2,0xdf,0x59 }, { 0x55,0xf2,0x73,0x3f },
+    { 0x18,0x14,0xce,0x79 }, { 0x73,0xc7,0x37,0xbf },
     { 0x53,0xf7,0xcd,0xea }, { 0x5f,0xfd,0xaa,0x5b },
-    { 0xdf,0x3d,0x6f,0x14 }, { 0x78,0x44,0xdb,0x86 }, 
-    { 0xca,0xaf,0xf3,0x81 }, { 0xb9,0x68,0xc4,0x3e }, 
-    { 0x38,0x24,0x34,0x2c }, { 0xc2,0xa3,0x40,0x5f }, 
-    { 0x16,0x1d,0xc3,0x72 }, { 0xbc,0xe2,0x25,0x0c }, 
-    { 0x28,0x3c,0x49,0x8b }, { 0xff,0x0d,0x95,0x41 }, 
-    { 0x39,0xa8,0x01,0x71 }, { 0x08,0x0c,0xb3,0xde }, 
-    { 0xd8,0xb4,0xe4,0x9c }, { 0x64,0x56,0xc1,0x90 }, 
+    { 0xdf,0x3d,0x6f,0x14 }, { 0x78,0x44,0xdb,0x86 },
+    { 0xca,0xaf,0xf3,0x81 }, { 0xb9,0x68,0xc4,0x3e },
+    { 0x38,0x24,0x34,0x2c }, { 0xc2,0xa3,0x40,0x5f },
+    { 0x16,0x1d,0xc3,0x72 }, { 0xbc,0xe2,0x25,0x0c },
+    { 0x28,0x3c,0x49,0x8b }, { 0xff,0x0d,0x95,0x41 },
+    { 0x39,0xa8,0x01,0x71 }, { 0x08,0x0c,0xb3,0xde },
+    { 0xd8,0xb4,0xe4,0x9c }, { 0x64,0x56,0xc1,0x90 },
     { 0x7b,0xcb,0x84,0x61 }, { 0xd5,0x32,0xb6,0x70 },
     { 0x48,0x6c,0x5c,0x74 }, { 0xd0,0xb8,0x57,0x42 }
   };
 
-static const unsigned char T6[256][4] = 
+static const unsigned char T6[256][4] =
   {
-    { 0x50,0x51,0xf4,0xa7 }, { 0x53,0x7e,0x41,0x65 }, 
-    { 0xc3,0x1a,0x17,0xa4 }, { 0x96,0x3a,0x27,0x5e }, 
+    { 0x50,0x51,0xf4,0xa7 }, { 0x53,0x7e,0x41,0x65 },
+    { 0xc3,0x1a,0x17,0xa4 }, { 0x96,0x3a,0x27,0x5e },
     { 0xcb,0x3b,0xab,0x6b }, { 0xf1,0x1f,0x9d,0x45 },
-    { 0xab,0xac,0xfa,0x58 }, { 0x93,0x4b,0xe3,0x03 }, 
+    { 0xab,0xac,0xfa,0x58 }, { 0x93,0x4b,0xe3,0x03 },
     { 0x55,0x20,0x30,0xfa }, { 0xf6,0xad,0x76,0x6d },
-    { 0x91,0x88,0xcc,0x76 }, { 0x25,0xf5,0x02,0x4c }, 
+    { 0x91,0x88,0xcc,0x76 }, { 0x25,0xf5,0x02,0x4c },
     { 0xfc,0x4f,0xe5,0xd7 }, { 0xd7,0xc5,0x2a,0xcb },
-    { 0x80,0x26,0x35,0x44 }, { 0x8f,0xb5,0x62,0xa3 }, 
-    { 0x49,0xde,0xb1,0x5a }, { 0x67,0x25,0xba,0x1b }, 
-    { 0x98,0x45,0xea,0x0e }, { 0xe1,0x5d,0xfe,0xc0 }, 
+    { 0x80,0x26,0x35,0x44 }, { 0x8f,0xb5,0x62,0xa3 },
+    { 0x49,0xde,0xb1,0x5a }, { 0x67,0x25,0xba,0x1b },
+    { 0x98,0x45,0xea,0x0e }, { 0xe1,0x5d,0xfe,0xc0 },
     { 0x02,0xc3,0x2f,0x75 }, { 0x12,0x81,0x4c,0xf0 },
-    { 0xa3,0x8d,0x46,0x97 }, { 0xc6,0x6b,0xd3,0xf9 }, 
+    { 0xa3,0x8d,0x46,0x97 }, { 0xc6,0x6b,0xd3,0xf9 },
     { 0xe7,0x03,0x8f,0x5f }, { 0x95,0x15,0x92,0x9c },
-    { 0xeb,0xbf,0x6d,0x7a }, { 0xda,0x95,0x52,0x59 }, 
+    { 0xeb,0xbf,0x6d,0x7a }, { 0xda,0x95,0x52,0x59 },
     { 0x2d,0xd4,0xbe,0x83 }, { 0xd3,0x58,0x74,0x21 },
-    { 0x29,0x49,0xe0,0x69 }, { 0x44,0x8e,0xc9,0xc8 }, 
+    { 0x29,0x49,0xe0,0x69 }, { 0x44,0x8e,0xc9,0xc8 },
     { 0x6a,0x75,0xc2,0x89 }, { 0x78,0xf4,0x8e,0x79 },
-    { 0x6b,0x99,0x58,0x3e }, { 0xdd,0x27,0xb9,0x71 }, 
+    { 0x6b,0x99,0x58,0x3e }, { 0xdd,0x27,0xb9,0x71 },
     { 0xb6,0xbe,0xe1,0x4f }, { 0x17,0xf0,0x88,0xad },
-    { 0x66,0xc9,0x20,0xac }, { 0xb4,0x7d,0xce,0x3a }, 
+    { 0x66,0xc9,0x20,0xac }, { 0xb4,0x7d,0xce,0x3a },
     { 0x18,0x63,0xdf,0x4a }, { 0x82,0xe5,0x1a,0x31 },
-    { 0x60,0x97,0x51,0x33 }, { 0x45,0x62,0x53,0x7f }, 
+    { 0x60,0x97,0x51,0x33 }, { 0x45,0x62,0x53,0x7f },
     { 0xe0,0xb1,0x64,0x77 }, { 0x84,0xbb,0x6b,0xae },
-    { 0x1c,0xfe,0x81,0xa0 }, { 0x94,0xf9,0x08,0x2b }, 
+    { 0x1c,0xfe,0x81,0xa0 }, { 0x94,0xf9,0x08,0x2b },
     { 0x58,0x70,0x48,0x68 }, { 0x19,0x8f,0x45,0xfd },
-    { 0x87,0x94,0xde,0x6c }, { 0xb7,0x52,0x7b,0xf8 }, 
+    { 0x87,0x94,0xde,0x6c }, { 0xb7,0x52,0x7b,0xf8 },
     { 0x23,0xab,0x73,0xd3 }, { 0xe2,0x72,0x4b,0x02 },
-    { 0x57,0xe3,0x1f,0x8f }, { 0x2a,0x66,0x55,0xab }, 
+    { 0x57,0xe3,0x1f,0x8f }, { 0x2a,0x66,0x55,0xab },
     { 0x07,0xb2,0xeb,0x28 }, { 0x03,0x2f,0xb5,0xc2 },
-    { 0x9a,0x86,0xc5,0x7b }, { 0xa5,0xd3,0x37,0x08 }, 
+    { 0x9a,0x86,0xc5,0x7b }, { 0xa5,0xd3,0x37,0x08 },
     { 0xf2,0x30,0x28,0x87 }, { 0xb2,0x23,0xbf,0xa5 },
-    { 0xba,0x02,0x03,0x6a }, { 0x5c,0xed,0x16,0x82 }, 
+    { 0xba,0x02,0x03,0x6a }, { 0x5c,0xed,0x16,0x82 },
     { 0x2b,0x8a,0xcf,0x1c }, { 0x92,0xa7,0x79,0xb4 },
-    { 0xf0,0xf3,0x07,0xf2 }, { 0xa1,0x4e,0x69,0xe2 }, 
+    { 0xf0,0xf3,0x07,0xf2 }, { 0xa1,0x4e,0x69,0xe2 },
     { 0xcd,0x65,0xda,0xf4 }, { 0xd5,0x06,0x05,0xbe },
-    { 0x1f,0xd1,0x34,0x62 }, { 0x8a,0xc4,0xa6,0xfe }, 
+    { 0x1f,0xd1,0x34,0x62 }, { 0x8a,0xc4,0xa6,0xfe },
     { 0x9d,0x34,0x2e,0x53 }, { 0xa0,0xa2,0xf3,0x55 },
-    { 0x32,0x05,0x8a,0xe1 }, { 0x75,0xa4,0xf6,0xeb }, 
+    { 0x32,0x05,0x8a,0xe1 }, { 0x75,0xa4,0xf6,0xeb },
     { 0x39,0x0b,0x83,0xec }, { 0xaa,0x40,0x60,0xef },
-    { 0x06,0x5e,0x71,0x9f }, { 0x51,0xbd,0x6e,0x10 }, 
+    { 0x06,0x5e,0x71,0x9f }, { 0x51,0xbd,0x6e,0x10 },
     { 0xf9,0x3e,0x21,0x8a }, { 0x3d,0x96,0xdd,0x06 },
-    { 0xae,0xdd,0x3e,0x05 }, { 0x46,0x4d,0xe6,0xbd }, 
+    { 0xae,0xdd,0x3e,0x05 }, { 0x46,0x4d,0xe6,0xbd },
     { 0xb5,0x91,0x54,0x8d }, { 0x05,0x71,0xc4,0x5d },
-    { 0x6f,0x04,0x06,0xd4 }, { 0xff,0x60,0x50,0x15 }, 
+    { 0x6f,0x04,0x06,0xd4 }, { 0xff,0x60,0x50,0x15 },
     { 0x24,0x19,0x98,0xfb }, { 0x97,0xd6,0xbd,0xe9 },
-    { 0xcc,0x89,0x40,0x43 }, { 0x77,0x67,0xd9,0x9e }, 
+    { 0xcc,0x89,0x40,0x43 }, { 0x77,0x67,0xd9,0x9e },
     { 0xbd,0xb0,0xe8,0x42 }, { 0x88,0x07,0x89,0x8b },
-    { 0x38,0xe7,0x19,0x5b }, { 0xdb,0x79,0xc8,0xee }, 
+    { 0x38,0xe7,0x19,0x5b }, { 0xdb,0x79,0xc8,0xee },
     { 0x47,0xa1,0x7c,0x0a }, { 0xe9,0x7c,0x42,0x0f },
-    { 0xc9,0xf8,0x84,0x1e }, { 0x00,0x00,0x00,0x00 }, 
+    { 0xc9,0xf8,0x84,0x1e }, { 0x00,0x00,0x00,0x00 },
     { 0x83,0x09,0x80,0x86 }, { 0x48,0x32,0x2b,0xed },
-    { 0xac,0x1e,0x11,0x70 }, { 0x4e,0x6c,0x5a,0x72 }, 
+    { 0xac,0x1e,0x11,0x70 }, { 0x4e,0x6c,0x5a,0x72 },
     { 0xfb,0xfd,0x0e,0xff }, { 0x56,0x0f,0x85,0x38 },
-    { 0x1e,0x3d,0xae,0xd5 }, { 0x27,0x36,0x2d,0x39 }, 
+    { 0x1e,0x3d,0xae,0xd5 }, { 0x27,0x36,0x2d,0x39 },
     { 0x64,0x0a,0x0f,0xd9 }, { 0x21,0x68,0x5c,0xa6 },
-    { 0xd1,0x9b,0x5b,0x54 }, { 0x3a,0x24,0x36,0x2e }, 
+    { 0xd1,0x9b,0x5b,0x54 }, { 0x3a,0x24,0x36,0x2e },
     { 0xb1,0x0c,0x0a,0x67 }, { 0x0f,0x93,0x57,0xe7 },
-    { 0xd2,0xb4,0xee,0x96 }, { 0x9e,0x1b,0x9b,0x91 }, 
-    { 0x4f,0x80,0xc0,0xc5 }, { 0xa2,0x61,0xdc,0x20 }, 
-    { 0x69,0x5a,0x77,0x4b }, { 0x16,0x1c,0x12,0x1a }, 
+    { 0xd2,0xb4,0xee,0x96 }, { 0x9e,0x1b,0x9b,0x91 },
+    { 0x4f,0x80,0xc0,0xc5 }, { 0xa2,0x61,0xdc,0x20 },
+    { 0x69,0x5a,0x77,0x4b }, { 0x16,0x1c,0x12,0x1a },
     { 0x0a,0xe2,0x93,0xba }, { 0xe5,0xc0,0xa0,0x2a },
-    { 0x43,0x3c,0x22,0xe0 }, { 0x1d,0x12,0x1b,0x17 }, 
+    { 0x43,0x3c,0x22,0xe0 }, { 0x1d,0x12,0x1b,0x17 },
     { 0x0b,0x0e,0x09,0x0d }, { 0xad,0xf2,0x8b,0xc7 },
-    { 0xb9,0x2d,0xb6,0xa8 }, { 0xc8,0x14,0x1e,0xa9 }, 
+    { 0xb9,0x2d,0xb6,0xa8 }, { 0xc8,0x14,0x1e,0xa9 },
     { 0x85,0x57,0xf1,0x19 }, { 0x4c,0xaf,0x75,0x07 },
-    { 0xbb,0xee,0x99,0xdd }, { 0xfd,0xa3,0x7f,0x60 }, 
+    { 0xbb,0xee,0x99,0xdd }, { 0xfd,0xa3,0x7f,0x60 },
     { 0x9f,0xf7,0x01,0x26 }, { 0xbc,0x5c,0x72,0xf5 },
-    { 0xc5,0x44,0x66,0x3b }, { 0x34,0x5b,0xfb,0x7e }, 
+    { 0xc5,0x44,0x66,0x3b }, { 0x34,0x5b,0xfb,0x7e },
     { 0x76,0x8b,0x43,0x29 }, { 0xdc,0xcb,0x23,0xc6 },
-    { 0x68,0xb6,0xed,0xfc }, { 0x63,0xb8,0xe4,0xf1 }, 
+    { 0x68,0xb6,0xed,0xfc }, { 0x63,0xb8,0xe4,0xf1 },
     { 0xca,0xd7,0x31,0xdc }, { 0x10,0x42,0x63,0x85 },
-    { 0x40,0x13,0x97,0x22 }, { 0x20,0x84,0xc6,0x11 }, 
+    { 0x40,0x13,0x97,0x22 }, { 0x20,0x84,0xc6,0x11 },
     { 0x7d,0x85,0x4a,0x24 }, { 0xf8,0xd2,0xbb,0x3d },
-    { 0x11,0xae,0xf9,0x32 }, { 0x6d,0xc7,0x29,0xa1 }, 
+    { 0x11,0xae,0xf9,0x32 }, { 0x6d,0xc7,0x29,0xa1 },
     { 0x4b,0x1d,0x9e,0x2f }, { 0xf3,0xdc,0xb2,0x30 },
-    { 0xec,0x0d,0x86,0x52 }, { 0xd0,0x77,0xc1,0xe3 }, 
-    { 0x6c,0x2b,0xb3,0x16 }, { 0x99,0xa9,0x70,0xb9 }, 
-    { 0xfa,0x11,0x94,0x48 }, { 0x22,0x47,0xe9,0x64 }, 
-    { 0xc4,0xa8,0xfc,0x8c }, { 0x1a,0xa0,0xf0,0x3f }, 
-    { 0xd8,0x56,0x7d,0x2c }, { 0xef,0x22,0x33,0x90 }, 
+    { 0xec,0x0d,0x86,0x52 }, { 0xd0,0x77,0xc1,0xe3 },
+    { 0x6c,0x2b,0xb3,0x16 }, { 0x99,0xa9,0x70,0xb9 },
+    { 0xfa,0x11,0x94,0x48 }, { 0x22,0x47,0xe9,0x64 },
+    { 0xc4,0xa8,0xfc,0x8c }, { 0x1a,0xa0,0xf0,0x3f },
+    { 0xd8,0x56,0x7d,0x2c }, { 0xef,0x22,0x33,0x90 },
     { 0xc7,0x87,0x49,0x4e }, { 0xc1,0xd9,0x38,0xd1 },
-    { 0xfe,0x8c,0xca,0xa2 }, { 0x36,0x98,0xd4,0x0b }, 
-    { 0xcf,0xa6,0xf5,0x81 }, { 0x28,0xa5,0x7a,0xde }, 
-    { 0x26,0xda,0xb7,0x8e }, { 0xa4,0x3f,0xad,0xbf }, 
-    { 0xe4,0x2c,0x3a,0x9d }, { 0x0d,0x50,0x78,0x92 }, 
-    { 0x9b,0x6a,0x5f,0xcc }, { 0x62,0x54,0x7e,0x46 }, 
-    { 0xc2,0xf6,0x8d,0x13 }, { 0xe8,0x90,0xd8,0xb8 }, 
-    { 0x5e,0x2e,0x39,0xf7 }, { 0xf5,0x82,0xc3,0xaf }, 
+    { 0xfe,0x8c,0xca,0xa2 }, { 0x36,0x98,0xd4,0x0b },
+    { 0xcf,0xa6,0xf5,0x81 }, { 0x28,0xa5,0x7a,0xde },
+    { 0x26,0xda,0xb7,0x8e }, { 0xa4,0x3f,0xad,0xbf },
+    { 0xe4,0x2c,0x3a,0x9d }, { 0x0d,0x50,0x78,0x92 },
+    { 0x9b,0x6a,0x5f,0xcc }, { 0x62,0x54,0x7e,0x46 },
+    { 0xc2,0xf6,0x8d,0x13 }, { 0xe8,0x90,0xd8,0xb8 },
+    { 0x5e,0x2e,0x39,0xf7 }, { 0xf5,0x82,0xc3,0xaf },
     { 0xbe,0x9f,0x5d,0x80 }, { 0x7c,0x69,0xd0,0x93 },
-    { 0xa9,0x6f,0xd5,0x2d }, { 0xb3,0xcf,0x25,0x12 }, 
-    { 0x3b,0xc8,0xac,0x99 }, { 0xa7,0x10,0x18,0x7d }, 
-    { 0x6e,0xe8,0x9c,0x63 }, { 0x7b,0xdb,0x3b,0xbb }, 
+    { 0xa9,0x6f,0xd5,0x2d }, { 0xb3,0xcf,0x25,0x12 },
+    { 0x3b,0xc8,0xac,0x99 }, { 0xa7,0x10,0x18,0x7d },
+    { 0x6e,0xe8,0x9c,0x63 }, { 0x7b,0xdb,0x3b,0xbb },
     { 0x09,0xcd,0x26,0x78 }, { 0xf4,0x6e,0x59,0x18 },
-    { 0x01,0xec,0x9a,0xb7 }, { 0xa8,0x83,0x4f,0x9a }, 
-    { 0x65,0xe6,0x95,0x6e }, { 0x7e,0xaa,0xff,0xe6 }, 
-    { 0x08,0x21,0xbc,0xcf }, { 0xe6,0xef,0x15,0xe8 }, 
+    { 0x01,0xec,0x9a,0xb7 }, { 0xa8,0x83,0x4f,0x9a },
+    { 0x65,0xe6,0x95,0x6e }, { 0x7e,0xaa,0xff,0xe6 },
+    { 0x08,0x21,0xbc,0xcf }, { 0xe6,0xef,0x15,0xe8 },
     { 0xd9,0xba,0xe7,0x9b }, { 0xce,0x4a,0x6f,0x36 },
-    { 0xd4,0xea,0x9f,0x09 }, { 0xd6,0x29,0xb0,0x7c }, 
+    { 0xd4,0xea,0x9f,0x09 }, { 0xd6,0x29,0xb0,0x7c },
     { 0xaf,0x31,0xa4,0xb2 }, { 0x31,0x2a,0x3f,0x23 },
-    { 0x30,0xc6,0xa5,0x94 }, { 0xc0,0x35,0xa2,0x66 }, 
-    { 0x37,0x74,0x4e,0xbc }, { 0xa6,0xfc,0x82,0xca }, 
-    { 0xb0,0xe0,0x90,0xd0 }, { 0x15,0x33,0xa7,0xd8 }, 
+    { 0x30,0xc6,0xa5,0x94 }, { 0xc0,0x35,0xa2,0x66 },
+    { 0x37,0x74,0x4e,0xbc }, { 0xa6,0xfc,0x82,0xca },
+    { 0xb0,0xe0,0x90,0xd0 }, { 0x15,0x33,0xa7,0xd8 },
     { 0x4a,0xf1,0x04,0x98 }, { 0xf7,0x41,0xec,0xda },
-    { 0x0e,0x7f,0xcd,0x50 }, { 0x2f,0x17,0x91,0xf6 }, 
+    { 0x0e,0x7f,0xcd,0x50 }, { 0x2f,0x17,0x91,0xf6 },
     { 0x8d,0x76,0x4d,0xd6 }, { 0x4d,0x43,0xef,0xb0 },
-    { 0x54,0xcc,0xaa,0x4d }, { 0xdf,0xe4,0x96,0x04 }, 
+    { 0x54,0xcc,0xaa,0x4d }, { 0xdf,0xe4,0x96,0x04 },
     { 0xe3,0x9e,0xd1,0xb5 }, { 0x1b,0x4c,0x6a,0x88 },
-    { 0xb8,0xc1,0x2c,0x1f }, { 0x7f,0x46,0x65,0x51 }, 
+    { 0xb8,0xc1,0x2c,0x1f }, { 0x7f,0x46,0x65,0x51 },
     { 0x04,0x9d,0x5e,0xea }, { 0x5d,0x01,0x8c,0x35 },
-    { 0x73,0xfa,0x87,0x74 }, { 0x2e,0xfb,0x0b,0x41 }, 
+    { 0x73,0xfa,0x87,0x74 }, { 0x2e,0xfb,0x0b,0x41 },
     { 0x5a,0xb3,0x67,0x1d }, { 0x52,0x92,0xdb,0xd2 },
-    { 0x33,0xe9,0x10,0x56 }, { 0x13,0x6d,0xd6,0x47 }, 
-    { 0x8c,0x9a,0xd7,0x61 }, { 0x7a,0x37,0xa1,0x0c }, 
-    { 0x8e,0x59,0xf8,0x14 }, { 0x89,0xeb,0x13,0x3c }, 
+    { 0x33,0xe9,0x10,0x56 }, { 0x13,0x6d,0xd6,0x47 },
+    { 0x8c,0x9a,0xd7,0x61 }, { 0x7a,0x37,0xa1,0x0c },
+    { 0x8e,0x59,0xf8,0x14 }, { 0x89,0xeb,0x13,0x3c },
     { 0xee,0xce,0xa9,0x27 }, { 0x35,0xb7,0x61,0xc9 },
-    { 0xed,0xe1,0x1c,0xe5 }, { 0x3c,0x7a,0x47,0xb1 }, 
+    { 0xed,0xe1,0x1c,0xe5 }, { 0x3c,0x7a,0x47,0xb1 },
     { 0x59,0x9c,0xd2,0xdf }, { 0x3f,0x55,0xf2,0x73 },
-    { 0x79,0x18,0x14,0xce }, { 0xbf,0x73,0xc7,0x37 }, 
+    { 0x79,0x18,0x14,0xce }, { 0xbf,0x73,0xc7,0x37 },
     { 0xea,0x53,0xf7,0xcd }, { 0x5b,0x5f,0xfd,0xaa },
-    { 0x14,0xdf,0x3d,0x6f }, { 0x86,0x78,0x44,0xdb }, 
+    { 0x14,0xdf,0x3d,0x6f }, { 0x86,0x78,0x44,0xdb },
     { 0x81,0xca,0xaf,0xf3 }, { 0x3e,0xb9,0x68,0xc4 },
-    { 0x2c,0x38,0x24,0x34 }, { 0x5f,0xc2,0xa3,0x40 }, 
+    { 0x2c,0x38,0x24,0x34 }, { 0x5f,0xc2,0xa3,0x40 },
     { 0x72,0x16,0x1d,0xc3 }, { 0x0c,0xbc,0xe2,0x25 },
-    { 0x8b,0x28,0x3c,0x49 }, { 0x41,0xff,0x0d,0x95 }, 
+    { 0x8b,0x28,0x3c,0x49 }, { 0x41,0xff,0x0d,0x95 },
     { 0x71,0x39,0xa8,0x01 }, { 0xde,0x08,0x0c,0xb3 },
-    { 0x9c,0xd8,0xb4,0xe4 }, { 0x90,0x64,0x56,0xc1 }, 
+    { 0x9c,0xd8,0xb4,0xe4 }, { 0x90,0x64,0x56,0xc1 },
     { 0x61,0x7b,0xcb,0x84 }, { 0x70,0xd5,0x32,0xb6 },
     { 0x74,0x48,0x6c,0x5c }, { 0x42,0xd0,0xb8,0x57 }
   };
 
-static const unsigned char T7[256][4] = 
+static const unsigned char T7[256][4] =
   {
     { 0xa7,0x50,0x51,0xf4 }, { 0x65,0x53,0x7e,0x41 },
-    { 0xa4,0xc3,0x1a,0x17 }, { 0x5e,0x96,0x3a,0x27 }, 
+    { 0xa4,0xc3,0x1a,0x17 }, { 0x5e,0x96,0x3a,0x27 },
     { 0x6b,0xcb,0x3b,0xab }, { 0x45,0xf1,0x1f,0x9d },
-    { 0x58,0xab,0xac,0xfa }, { 0x03,0x93,0x4b,0xe3 }, 
+    { 0x58,0xab,0xac,0xfa }, { 0x03,0x93,0x4b,0xe3 },
     { 0xfa,0x55,0x20,0x30 }, { 0x6d,0xf6,0xad,0x76 },
-    { 0x76,0x91,0x88,0xcc }, { 0x4c,0x25,0xf5,0x02 }, 
+    { 0x76,0x91,0x88,0xcc }, { 0x4c,0x25,0xf5,0x02 },
     { 0xd7,0xfc,0x4f,0xe5 }, { 0xcb,0xd7,0xc5,0x2a },
-    { 0x44,0x80,0x26,0x35 }, { 0xa3,0x8f,0xb5,0x62 }, 
-    { 0x5a,0x49,0xde,0xb1 }, { 0x1b,0x67,0x25,0xba }, 
-    { 0x0e,0x98,0x45,0xea }, { 0xc0,0xe1,0x5d,0xfe }, 
+    { 0x44,0x80,0x26,0x35 }, { 0xa3,0x8f,0xb5,0x62 },
+    { 0x5a,0x49,0xde,0xb1 }, { 0x1b,0x67,0x25,0xba },
+    { 0x0e,0x98,0x45,0xea }, { 0xc0,0xe1,0x5d,0xfe },
     { 0x75,0x02,0xc3,0x2f }, { 0xf0,0x12,0x81,0x4c },
-    { 0x97,0xa3,0x8d,0x46 }, { 0xf9,0xc6,0x6b,0xd3 }, 
+    { 0x97,0xa3,0x8d,0x46 }, { 0xf9,0xc6,0x6b,0xd3 },
     { 0x5f,0xe7,0x03,0x8f }, { 0x9c,0x95,0x15,0x92 },
-    { 0x7a,0xeb,0xbf,0x6d }, { 0x59,0xda,0x95,0x52 }, 
+    { 0x7a,0xeb,0xbf,0x6d }, { 0x59,0xda,0x95,0x52 },
     { 0x83,0x2d,0xd4,0xbe }, { 0x21,0xd3,0x58,0x74 },
-    { 0x69,0x29,0x49,0xe0 }, { 0xc8,0x44,0x8e,0xc9 }, 
-    { 0x89,0x6a,0x75,0xc2 }, { 0x79,0x78,0xf4,0x8e }, 
-    { 0x3e,0x6b,0x99,0x58 }, { 0x71,0xdd,0x27,0xb9 }, 
+    { 0x69,0x29,0x49,0xe0 }, { 0xc8,0x44,0x8e,0xc9 },
+    { 0x89,0x6a,0x75,0xc2 }, { 0x79,0x78,0xf4,0x8e },
+    { 0x3e,0x6b,0x99,0x58 }, { 0x71,0xdd,0x27,0xb9 },
     { 0x4f,0xb6,0xbe,0xe1 }, { 0xad,0x17,0xf0,0x88 },
-    { 0xac,0x66,0xc9,0x20 }, { 0x3a,0xb4,0x7d,0xce }, 
+    { 0xac,0x66,0xc9,0x20 }, { 0x3a,0xb4,0x7d,0xce },
     { 0x4a,0x18,0x63,0xdf }, { 0x31,0x82,0xe5,0x1a },
-    { 0x33,0x60,0x97,0x51 }, { 0x7f,0x45,0x62,0x53 }, 
+    { 0x33,0x60,0x97,0x51 }, { 0x7f,0x45,0x62,0x53 },
     { 0x77,0xe0,0xb1,0x64 }, { 0xae,0x84,0xbb,0x6b },
-    { 0xa0,0x1c,0xfe,0x81 }, { 0x2b,0x94,0xf9,0x08 }, 
+    { 0xa0,0x1c,0xfe,0x81 }, { 0x2b,0x94,0xf9,0x08 },
     { 0x68,0x58,0x70,0x48 }, { 0xfd,0x19,0x8f,0x45 },
-    { 0x6c,0x87,0x94,0xde }, { 0xf8,0xb7,0x52,0x7b }, 
+    { 0x6c,0x87,0x94,0xde }, { 0xf8,0xb7,0x52,0x7b },
     { 0xd3,0x23,0xab,0x73 }, { 0x02,0xe2,0x72,0x4b },
-    { 0x8f,0x57,0xe3,0x1f }, { 0xab,0x2a,0x66,0x55 }, 
+    { 0x8f,0x57,0xe3,0x1f }, { 0xab,0x2a,0x66,0x55 },
     { 0x28,0x07,0xb2,0xeb }, { 0xc2,0x03,0x2f,0xb5 },
-    { 0x7b,0x9a,0x86,0xc5 }, { 0x08,0xa5,0xd3,0x37 }, 
+    { 0x7b,0x9a,0x86,0xc5 }, { 0x08,0xa5,0xd3,0x37 },
     { 0x87,0xf2,0x30,0x28 }, { 0xa5,0xb2,0x23,0xbf },
-    { 0x6a,0xba,0x02,0x03 }, { 0x82,0x5c,0xed,0x16 }, 
-    { 0x1c,0x2b,0x8a,0xcf }, { 0xb4,0x92,0xa7,0x79 }, 
-    { 0xf2,0xf0,0xf3,0x07 }, { 0xe2,0xa1,0x4e,0x69 }, 
+    { 0x6a,0xba,0x02,0x03 }, { 0x82,0x5c,0xed,0x16 },
+    { 0x1c,0x2b,0x8a,0xcf }, { 0xb4,0x92,0xa7,0x79 },
+    { 0xf2,0xf0,0xf3,0x07 }, { 0xe2,0xa1,0x4e,0x69 },
     { 0xf4,0xcd,0x65,0xda }, { 0xbe,0xd5,0x06,0x05 },
-    { 0x62,0x1f,0xd1,0x34 }, { 0xfe,0x8a,0xc4,0xa6 }, 
+    { 0x62,0x1f,0xd1,0x34 }, { 0xfe,0x8a,0xc4,0xa6 },
     { 0x53,0x9d,0x34,0x2e }, { 0x55,0xa0,0xa2,0xf3 },
-    { 0xe1,0x32,0x05,0x8a }, { 0xeb,0x75,0xa4,0xf6 }, 
+    { 0xe1,0x32,0x05,0x8a }, { 0xeb,0x75,0xa4,0xf6 },
     { 0xec,0x39,0x0b,0x83 }, { 0xef,0xaa,0x40,0x60 },
-    { 0x9f,0x06,0x5e,0x71 }, { 0x10,0x51,0xbd,0x6e }, 
+    { 0x9f,0x06,0x5e,0x71 }, { 0x10,0x51,0xbd,0x6e },
     { 0x8a,0xf9,0x3e,0x21 }, { 0x06,0x3d,0x96,0xdd },
-    { 0x05,0xae,0xdd,0x3e }, { 0xbd,0x46,0x4d,0xe6 }, 
+    { 0x05,0xae,0xdd,0x3e }, { 0xbd,0x46,0x4d,0xe6 },
     { 0x8d,0xb5,0x91,0x54 }, { 0x5d,0x05,0x71,0xc4 },
-    { 0xd4,0x6f,0x04,0x06 }, { 0x15,0xff,0x60,0x50 }, 
-    { 0xfb,0x24,0x19,0x98 }, { 0xe9,0x97,0xd6,0xbd }, 
-    { 0x43,0xcc,0x89,0x40 }, { 0x9e,0x77,0x67,0xd9 }, 
+    { 0xd4,0x6f,0x04,0x06 }, { 0x15,0xff,0x60,0x50 },
+    { 0xfb,0x24,0x19,0x98 }, { 0xe9,0x97,0xd6,0xbd },
+    { 0x43,0xcc,0x89,0x40 }, { 0x9e,0x77,0x67,0xd9 },
     { 0x42,0xbd,0xb0,0xe8 }, { 0x8b,0x88,0x07,0x89 },
-    { 0x5b,0x38,0xe7,0x19 }, { 0xee,0xdb,0x79,0xc8 }, 
+    { 0x5b,0x38,0xe7,0x19 }, { 0xee,0xdb,0x79,0xc8 },
     { 0x0a,0x47,0xa1,0x7c }, { 0x0f,0xe9,0x7c,0x42 },
-    { 0x1e,0xc9,0xf8,0x84 }, { 0x00,0x00,0x00,0x00 }, 
+    { 0x1e,0xc9,0xf8,0x84 }, { 0x00,0x00,0x00,0x00 },
     { 0x86,0x83,0x09,0x80 }, { 0xed,0x48,0x32,0x2b },
-    { 0x70,0xac,0x1e,0x11 }, { 0x72,0x4e,0x6c,0x5a }, 
+    { 0x70,0xac,0x1e,0x11 }, { 0x72,0x4e,0x6c,0x5a },
     { 0xff,0xfb,0xfd,0x0e }, { 0x38,0x56,0x0f,0x85 },
-    { 0xd5,0x1e,0x3d,0xae }, { 0x39,0x27,0x36,0x2d }, 
+    { 0xd5,0x1e,0x3d,0xae }, { 0x39,0x27,0x36,0x2d },
     { 0xd9,0x64,0x0a,0x0f }, { 0xa6,0x21,0x68,0x5c },
-    { 0x54,0xd1,0x9b,0x5b }, { 0x2e,0x3a,0x24,0x36 }, 
+    { 0x54,0xd1,0x9b,0x5b }, { 0x2e,0x3a,0x24,0x36 },
     { 0x67,0xb1,0x0c,0x0a }, { 0xe7,0x0f,0x93,0x57 },
-    { 0x96,0xd2,0xb4,0xee }, { 0x91,0x9e,0x1b,0x9b }, 
+    { 0x96,0xd2,0xb4,0xee }, { 0x91,0x9e,0x1b,0x9b },
     { 0xc5,0x4f,0x80,0xc0 }, { 0x20,0xa2,0x61,0xdc },
-    { 0x4b,0x69,0x5a,0x77 }, { 0x1a,0x16,0x1c,0x12 }, 
+    { 0x4b,0x69,0x5a,0x77 }, { 0x1a,0x16,0x1c,0x12 },
     { 0xba,0x0a,0xe2,0x93 }, { 0x2a,0xe5,0xc0,0xa0 },
-    { 0xe0,0x43,0x3c,0x22 }, { 0x17,0x1d,0x12,0x1b }, 
+    { 0xe0,0x43,0x3c,0x22 }, { 0x17,0x1d,0x12,0x1b },
     { 0x0d,0x0b,0x0e,0x09 }, { 0xc7,0xad,0xf2,0x8b },
-    { 0xa8,0xb9,0x2d,0xb6 }, { 0xa9,0xc8,0x14,0x1e }, 
+    { 0xa8,0xb9,0x2d,0xb6 }, { 0xa9,0xc8,0x14,0x1e },
     { 0x19,0x85,0x57,0xf1 }, { 0x07,0x4c,0xaf,0x75 },
-    { 0xdd,0xbb,0xee,0x99 }, { 0x60,0xfd,0xa3,0x7f }, 
+    { 0xdd,0xbb,0xee,0x99 }, { 0x60,0xfd,0xa3,0x7f },
     { 0x26,0x9f,0xf7,0x01 }, { 0xf5,0xbc,0x5c,0x72 },
-    { 0x3b,0xc5,0x44,0x66 }, { 0x7e,0x34,0x5b,0xfb }, 
+    { 0x3b,0xc5,0x44,0x66 }, { 0x7e,0x34,0x5b,0xfb },
     { 0x29,0x76,0x8b,0x43 }, { 0xc6,0xdc,0xcb,0x23 },
-    { 0xfc,0x68,0xb6,0xed }, { 0xf1,0x63,0xb8,0xe4 }, 
+    { 0xfc,0x68,0xb6,0xed }, { 0xf1,0x63,0xb8,0xe4 },
     { 0xdc,0xca,0xd7,0x31 }, { 0x85,0x10,0x42,0x63 },
-    { 0x22,0x40,0x13,0x97 }, { 0x11,0x20,0x84,0xc6 }, 
+    { 0x22,0x40,0x13,0x97 }, { 0x11,0x20,0x84,0xc6 },
     { 0x24,0x7d,0x85,0x4a }, { 0x3d,0xf8,0xd2,0xbb },
-    { 0x32,0x11,0xae,0xf9 }, { 0xa1,0x6d,0xc7,0x29 }, 
+    { 0x32,0x11,0xae,0xf9 }, { 0xa1,0x6d,0xc7,0x29 },
     { 0x2f,0x4b,0x1d,0x9e }, { 0x30,0xf3,0xdc,0xb2 },
-    { 0x52,0xec,0x0d,0x86 }, { 0xe3,0xd0,0x77,0xc1 }, 
+    { 0x52,0xec,0x0d,0x86 }, { 0xe3,0xd0,0x77,0xc1 },
     { 0x16,0x6c,0x2b,0xb3 }, { 0xb9,0x99,0xa9,0x70 },
-    { 0x48,0xfa,0x11,0x94 }, { 0x64,0x22,0x47,0xe9 }, 
+    { 0x48,0xfa,0x11,0x94 }, { 0x64,0x22,0x47,0xe9 },
     { 0x8c,0xc4,0xa8,0xfc }, { 0x3f,0x1a,0xa0,0xf0 },
-    { 0x2c,0xd8,0x56,0x7d }, { 0x90,0xef,0x22,0x33 }, 
+    { 0x2c,0xd8,0x56,0x7d }, { 0x90,0xef,0x22,0x33 },
     { 0x4e,0xc7,0x87,0x49 }, { 0xd1,0xc1,0xd9,0x38 },
-    { 0xa2,0xfe,0x8c,0xca }, { 0x0b,0x36,0x98,0xd4 }, 
+    { 0xa2,0xfe,0x8c,0xca }, { 0x0b,0x36,0x98,0xd4 },
     { 0x81,0xcf,0xa6,0xf5 }, { 0xde,0x28,0xa5,0x7a },
-    { 0x8e,0x26,0xda,0xb7 }, { 0xbf,0xa4,0x3f,0xad }, 
+    { 0x8e,0x26,0xda,0xb7 }, { 0xbf,0xa4,0x3f,0xad },
     { 0x9d,0xe4,0x2c,0x3a }, { 0x92,0x0d,0x50,0x78 },
-    { 0xcc,0x9b,0x6a,0x5f }, { 0x46,0x62,0x54,0x7e }, 
+    { 0xcc,0x9b,0x6a,0x5f }, { 0x46,0x62,0x54,0x7e },
     { 0x13,0xc2,0xf6,0x8d }, { 0xb8,0xe8,0x90,0xd8 },
-    { 0xf7,0x5e,0x2e,0x39 }, { 0xaf,0xf5,0x82,0xc3 }, 
+    { 0xf7,0x5e,0x2e,0x39 }, { 0xaf,0xf5,0x82,0xc3 },
     { 0x80,0xbe,0x9f,0x5d }, { 0x93,0x7c,0x69,0xd0 },
-    { 0x2d,0xa9,0x6f,0xd5 }, { 0x12,0xb3,0xcf,0x25 }, 
+    { 0x2d,0xa9,0x6f,0xd5 }, { 0x12,0xb3,0xcf,0x25 },
     { 0x99,0x3b,0xc8,0xac }, { 0x7d,0xa7,0x10,0x18 },
-    { 0x63,0x6e,0xe8,0x9c }, { 0xbb,0x7b,0xdb,0x3b }, 
-    { 0x78,0x09,0xcd,0x26 }, { 0x18,0xf4,0x6e,0x59 }, 
-    { 0xb7,0x01,0xec,0x9a }, { 0x9a,0xa8,0x83,0x4f }, 
+    { 0x63,0x6e,0xe8,0x9c }, { 0xbb,0x7b,0xdb,0x3b },
+    { 0x78,0x09,0xcd,0x26 }, { 0x18,0xf4,0x6e,0x59 },
+    { 0xb7,0x01,0xec,0x9a }, { 0x9a,0xa8,0x83,0x4f },
     { 0x6e,0x65,0xe6,0x95 }, { 0xe6,0x7e,0xaa,0xff },
-    { 0xcf,0x08,0x21,0xbc }, { 0xe8,0xe6,0xef,0x15 }, 
+    { 0xcf,0x08,0x21,0xbc }, { 0xe8,0xe6,0xef,0x15 },
     { 0x9b,0xd9,0xba,0xe7 }, { 0x36,0xce,0x4a,0x6f },
-    { 0x09,0xd4,0xea,0x9f }, { 0x7c,0xd6,0x29,0xb0 }, 
+    { 0x09,0xd4,0xea,0x9f }, { 0x7c,0xd6,0x29,0xb0 },
     { 0xb2,0xaf,0x31,0xa4 }, { 0x23,0x31,0x2a,0x3f },
-    { 0x94,0x30,0xc6,0xa5 }, { 0x66,0xc0,0x35,0xa2 }, 
+    { 0x94,0x30,0xc6,0xa5 }, { 0x66,0xc0,0x35,0xa2 },
     { 0xbc,0x37,0x74,0x4e }, { 0xca,0xa6,0xfc,0x82 },
-    { 0xd0,0xb0,0xe0,0x90 }, { 0xd8,0x15,0x33,0xa7 }, 
+    { 0xd0,0xb0,0xe0,0x90 }, { 0xd8,0x15,0x33,0xa7 },
     { 0x98,0x4a,0xf1,0x04 }, { 0xda,0xf7,0x41,0xec },
-    { 0x50,0x0e,0x7f,0xcd }, { 0xf6,0x2f,0x17,0x91 }, 
-    { 0xd6,0x8d,0x76,0x4d }, { 0xb0,0x4d,0x43,0xef }, 
-    { 0x4d,0x54,0xcc,0xaa }, { 0x04,0xdf,0xe4,0x96 }, 
+    { 0x50,0x0e,0x7f,0xcd }, { 0xf6,0x2f,0x17,0x91 },
+    { 0xd6,0x8d,0x76,0x4d }, { 0xb0,0x4d,0x43,0xef },
+    { 0x4d,0x54,0xcc,0xaa }, { 0x04,0xdf,0xe4,0x96 },
     { 0xb5,0xe3,0x9e,0xd1 }, { 0x88,0x1b,0x4c,0x6a },
-    { 0x1f,0xb8,0xc1,0x2c }, { 0x51,0x7f,0x46,0x65 }, 
+    { 0x1f,0xb8,0xc1,0x2c }, { 0x51,0x7f,0x46,0x65 },
     { 0xea,0x04,0x9d,0x5e }, { 0x35,0x5d,0x01,0x8c },
-    { 0x74,0x73,0xfa,0x87 }, { 0x41,0x2e,0xfb,0x0b }, 
+    { 0x74,0x73,0xfa,0x87 }, { 0x41,0x2e,0xfb,0x0b },
     { 0x1d,0x5a,0xb3,0x67 }, { 0xd2,0x52,0x92,0xdb },
-    { 0x56,0x33,0xe9,0x10 }, { 0x47,0x13,0x6d,0xd6 }, 
+    { 0x56,0x33,0xe9,0x10 }, { 0x47,0x13,0x6d,0xd6 },
     { 0x61,0x8c,0x9a,0xd7 }, { 0x0c,0x7a,0x37,0xa1 },
-    { 0x14,0x8e,0x59,0xf8 }, { 0x3c,0x89,0xeb,0x13 }, 
+    { 0x14,0x8e,0x59,0xf8 }, { 0x3c,0x89,0xeb,0x13 },
     { 0x27,0xee,0xce,0xa9 }, { 0xc9,0x35,0xb7,0x61 },
-    { 0xe5,0xed,0xe1,0x1c }, { 0xb1,0x3c,0x7a,0x47 }, 
+    { 0xe5,0xed,0xe1,0x1c }, { 0xb1,0x3c,0x7a,0x47 },
     { 0xdf,0x59,0x9c,0xd2 }, { 0x73,0x3f,0x55,0xf2 },
-    { 0xce,0x79,0x18,0x14 }, { 0x37,0xbf,0x73,0xc7 }, 
+    { 0xce,0x79,0x18,0x14 }, { 0x37,0xbf,0x73,0xc7 },
     { 0xcd,0xea,0x53,0xf7 }, { 0xaa,0x5b,0x5f,0xfd },
-    { 0x6f,0x14,0xdf,0x3d }, { 0xdb,0x86,0x78,0x44 }, 
+    { 0x6f,0x14,0xdf,0x3d }, { 0xdb,0x86,0x78,0x44 },
     { 0xf3,0x81,0xca,0xaf }, { 0xc4,0x3e,0xb9,0x68 },
-    { 0x34,0x2c,0x38,0x24 }, { 0x40,0x5f,0xc2,0xa3 }, 
+    { 0x34,0x2c,0x38,0x24 }, { 0x40,0x5f,0xc2,0xa3 },
     { 0xc3,0x72,0x16,0x1d }, { 0x25,0x0c,0xbc,0xe2 },
-    { 0x49,0x8b,0x28,0x3c }, { 0x95,0x41,0xff,0x0d }, 
+    { 0x49,0x8b,0x28,0x3c }, { 0x95,0x41,0xff,0x0d },
     { 0x01,0x71,0x39,0xa8 }, { 0xb3,0xde,0x08,0x0c },
-    { 0xe4,0x9c,0xd8,0xb4 }, { 0xc1,0x90,0x64,0x56 }, 
+    { 0xe4,0x9c,0xd8,0xb4 }, { 0xc1,0x90,0x64,0x56 },
     { 0x84,0x61,0x7b,0xcb }, { 0xb6,0x70,0xd5,0x32 },
     { 0x5c,0x74,0x48,0x6c }, { 0x57,0x42,0xd0,0xb8 }
   };
 
-static const unsigned char T8[256][4] = 
+static const unsigned char T8[256][4] =
   {
     { 0xf4,0xa7,0x50,0x51 }, { 0x41,0x65,0x53,0x7e },
-    { 0x17,0xa4,0xc3,0x1a }, { 0x27,0x5e,0x96,0x3a }, 
+    { 0x17,0xa4,0xc3,0x1a }, { 0x27,0x5e,0x96,0x3a },
     { 0xab,0x6b,0xcb,0x3b }, { 0x9d,0x45,0xf1,0x1f },
-    { 0xfa,0x58,0xab,0xac }, { 0xe3,0x03,0x93,0x4b }, 
+    { 0xfa,0x58,0xab,0xac }, { 0xe3,0x03,0x93,0x4b },
     { 0x30,0xfa,0x55,0x20 }, { 0x76,0x6d,0xf6,0xad },
-    { 0xcc,0x76,0x91,0x88 }, { 0x02,0x4c,0x25,0xf5 }, 
+    { 0xcc,0x76,0x91,0x88 }, { 0x02,0x4c,0x25,0xf5 },
     { 0xe5,0xd7,0xfc,0x4f }, { 0x2a,0xcb,0xd7,0xc5 },
-    { 0x35,0x44,0x80,0x26 }, { 0x62,0xa3,0x8f,0xb5 }, 
+    { 0x35,0x44,0x80,0x26 }, { 0x62,0xa3,0x8f,0xb5 },
     { 0xb1,0x5a,0x49,0xde }, { 0xba,0x1b,0x67,0x25 },
-    { 0xea,0x0e,0x98,0x45 }, { 0xfe,0xc0,0xe1,0x5d }, 
+    { 0xea,0x0e,0x98,0x45 }, { 0xfe,0xc0,0xe1,0x5d },
     { 0x2f,0x75,0x02,0xc3 }, { 0x4c,0xf0,0x12,0x81 },
-    { 0x46,0x97,0xa3,0x8d }, { 0xd3,0xf9,0xc6,0x6b }, 
+    { 0x46,0x97,0xa3,0x8d }, { 0xd3,0xf9,0xc6,0x6b },
     { 0x8f,0x5f,0xe7,0x03 }, { 0x92,0x9c,0x95,0x15 },
-    { 0x6d,0x7a,0xeb,0xbf }, { 0x52,0x59,0xda,0x95 }, 
+    { 0x6d,0x7a,0xeb,0xbf }, { 0x52,0x59,0xda,0x95 },
     { 0xbe,0x83,0x2d,0xd4 }, { 0x74,0x21,0xd3,0x58 },
-    { 0xe0,0x69,0x29,0x49 }, { 0xc9,0xc8,0x44,0x8e }, 
+    { 0xe0,0x69,0x29,0x49 }, { 0xc9,0xc8,0x44,0x8e },
     { 0xc2,0x89,0x6a,0x75 }, { 0x8e,0x79,0x78,0xf4 },
-    { 0x58,0x3e,0x6b,0x99 }, { 0xb9,0x71,0xdd,0x27 }, 
+    { 0x58,0x3e,0x6b,0x99 }, { 0xb9,0x71,0xdd,0x27 },
     { 0xe1,0x4f,0xb6,0xbe }, { 0x88,0xad,0x17,0xf0 },
-    { 0x20,0xac,0x66,0xc9 }, { 0xce,0x3a,0xb4,0x7d }, 
+    { 0x20,0xac,0x66,0xc9 }, { 0xce,0x3a,0xb4,0x7d },
     { 0xdf,0x4a,0x18,0x63 }, { 0x1a,0x31,0x82,0xe5 },
-    { 0x51,0x33,0x60,0x97 }, { 0x53,0x7f,0x45,0x62 }, 
+    { 0x51,0x33,0x60,0x97 }, { 0x53,0x7f,0x45,0x62 },
     { 0x64,0x77,0xe0,0xb1 }, { 0x6b,0xae,0x84,0xbb },
-    { 0x81,0xa0,0x1c,0xfe }, { 0x08,0x2b,0x94,0xf9 }, 
+    { 0x81,0xa0,0x1c,0xfe }, { 0x08,0x2b,0x94,0xf9 },
     { 0x48,0x68,0x58,0x70 }, { 0x45,0xfd,0x19,0x8f },
-    { 0xde,0x6c,0x87,0x94 }, { 0x7b,0xf8,0xb7,0x52 }, 
+    { 0xde,0x6c,0x87,0x94 }, { 0x7b,0xf8,0xb7,0x52 },
     { 0x73,0xd3,0x23,0xab }, { 0x4b,0x02,0xe2,0x72 },
-    { 0x1f,0x8f,0x57,0xe3 }, { 0x55,0xab,0x2a,0x66 }, 
+    { 0x1f,0x8f,0x57,0xe3 }, { 0x55,0xab,0x2a,0x66 },
     { 0xeb,0x28,0x07,0xb2 }, { 0xb5,0xc2,0x03,0x2f },
-    { 0xc5,0x7b,0x9a,0x86 }, { 0x37,0x08,0xa5,0xd3 }, 
+    { 0xc5,0x7b,0x9a,0x86 }, { 0x37,0x08,0xa5,0xd3 },
     { 0x28,0x87,0xf2,0x30 }, { 0xbf,0xa5,0xb2,0x23 },
-    { 0x03,0x6a,0xba,0x02 }, { 0x16,0x82,0x5c,0xed }, 
+    { 0x03,0x6a,0xba,0x02 }, { 0x16,0x82,0x5c,0xed },
     { 0xcf,0x1c,0x2b,0x8a }, { 0x79,0xb4,0x92,0xa7 },
-    { 0x07,0xf2,0xf0,0xf3 }, { 0x69,0xe2,0xa1,0x4e }, 
+    { 0x07,0xf2,0xf0,0xf3 }, { 0x69,0xe2,0xa1,0x4e },
     { 0xda,0xf4,0xcd,0x65 }, { 0x05,0xbe,0xd5,0x06 },
-    { 0x34,0x62,0x1f,0xd1 }, { 0xa6,0xfe,0x8a,0xc4 }, 
+    { 0x34,0x62,0x1f,0xd1 }, { 0xa6,0xfe,0x8a,0xc4 },
     { 0x2e,0x53,0x9d,0x34 }, { 0xf3,0x55,0xa0,0xa2 },
-    { 0x8a,0xe1,0x32,0x05 }, { 0xf6,0xeb,0x75,0xa4 }, 
+    { 0x8a,0xe1,0x32,0x05 }, { 0xf6,0xeb,0x75,0xa4 },
     { 0x83,0xec,0x39,0x0b }, { 0x60,0xef,0xaa,0x40 },
-    { 0x71,0x9f,0x06,0x5e }, { 0x6e,0x10,0x51,0xbd }, 
+    { 0x71,0x9f,0x06,0x5e }, { 0x6e,0x10,0x51,0xbd },
     { 0x21,0x8a,0xf9,0x3e }, { 0xdd,0x06,0x3d,0x96 },
-    { 0x3e,0x05,0xae,0xdd }, { 0xe6,0xbd,0x46,0x4d }, 
+    { 0x3e,0x05,0xae,0xdd }, { 0xe6,0xbd,0x46,0x4d },
     { 0x54,0x8d,0xb5,0x91 }, { 0xc4,0x5d,0x05,0x71 },
-    { 0x06,0xd4,0x6f,0x04 }, { 0x50,0x15,0xff,0x60 }, 
+    { 0x06,0xd4,0x6f,0x04 }, { 0x50,0x15,0xff,0x60 },
     { 0x98,0xfb,0x24,0x19 }, { 0xbd,0xe9,0x97,0xd6 },
-    { 0x40,0x43,0xcc,0x89 }, { 0xd9,0x9e,0x77,0x67 }, 
+    { 0x40,0x43,0xcc,0x89 }, { 0xd9,0x9e,0x77,0x67 },
     { 0xe8,0x42,0xbd,0xb0 }, { 0x89,0x8b,0x88,0x07 },
-    { 0x19,0x5b,0x38,0xe7 }, { 0xc8,0xee,0xdb,0x79 }, 
+    { 0x19,0x5b,0x38,0xe7 }, { 0xc8,0xee,0xdb,0x79 },
     { 0x7c,0x0a,0x47,0xa1 }, { 0x42,0x0f,0xe9,0x7c },
-    { 0x84,0x1e,0xc9,0xf8 }, { 0x00,0x00,0x00,0x00 }, 
+    { 0x84,0x1e,0xc9,0xf8 }, { 0x00,0x00,0x00,0x00 },
     { 0x80,0x86,0x83,0x09 }, { 0x2b,0xed,0x48,0x32 },
-    { 0x11,0x70,0xac,0x1e }, { 0x5a,0x72,0x4e,0x6c }, 
-    { 0x0e,0xff,0xfb,0xfd }, { 0x85,0x38,0x56,0x0f }, 
-    { 0xae,0xd5,0x1e,0x3d }, { 0x2d,0x39,0x27,0x36 }, 
+    { 0x11,0x70,0xac,0x1e }, { 0x5a,0x72,0x4e,0x6c },
+    { 0x0e,0xff,0xfb,0xfd }, { 0x85,0x38,0x56,0x0f },
+    { 0xae,0xd5,0x1e,0x3d }, { 0x2d,0x39,0x27,0x36 },
     { 0x0f,0xd9,0x64,0x0a }, { 0x5c,0xa6,0x21,0x68 },
-    { 0x5b,0x54,0xd1,0x9b }, { 0x36,0x2e,0x3a,0x24 }, 
+    { 0x5b,0x54,0xd1,0x9b }, { 0x36,0x2e,0x3a,0x24 },
     { 0x0a,0x67,0xb1,0x0c }, { 0x57,0xe7,0x0f,0x93 },
-    { 0xee,0x96,0xd2,0xb4 }, { 0x9b,0x91,0x9e,0x1b }, 
+    { 0xee,0x96,0xd2,0xb4 }, { 0x9b,0x91,0x9e,0x1b },
     { 0xc0,0xc5,0x4f,0x80 }, { 0xdc,0x20,0xa2,0x61 },
-    { 0x77,0x4b,0x69,0x5a }, { 0x12,0x1a,0x16,0x1c }, 
+    { 0x77,0x4b,0x69,0x5a }, { 0x12,0x1a,0x16,0x1c },
     { 0x93,0xba,0x0a,0xe2 }, { 0xa0,0x2a,0xe5,0xc0 },
-    { 0x22,0xe0,0x43,0x3c }, { 0x1b,0x17,0x1d,0x12 }, 
+    { 0x22,0xe0,0x43,0x3c }, { 0x1b,0x17,0x1d,0x12 },
     { 0x09,0x0d,0x0b,0x0e }, { 0x8b,0xc7,0xad,0xf2 },
-    { 0xb6,0xa8,0xb9,0x2d }, { 0x1e,0xa9,0xc8,0x14 }, 
+    { 0xb6,0xa8,0xb9,0x2d }, { 0x1e,0xa9,0xc8,0x14 },
     { 0xf1,0x19,0x85,0x57 }, { 0x75,0x07,0x4c,0xaf },
-    { 0x99,0xdd,0xbb,0xee }, { 0x7f,0x60,0xfd,0xa3 }, 
+    { 0x99,0xdd,0xbb,0xee }, { 0x7f,0x60,0xfd,0xa3 },
     { 0x01,0x26,0x9f,0xf7 }, { 0x72,0xf5,0xbc,0x5c },
-    { 0x66,0x3b,0xc5,0x44 }, { 0xfb,0x7e,0x34,0x5b }, 
+    { 0x66,0x3b,0xc5,0x44 }, { 0xfb,0x7e,0x34,0x5b },
     { 0x43,0x29,0x76,0x8b }, { 0x23,0xc6,0xdc,0xcb },
-    { 0xed,0xfc,0x68,0xb6 }, { 0xe4,0xf1,0x63,0xb8 }, 
+    { 0xed,0xfc,0x68,0xb6 }, { 0xe4,0xf1,0x63,0xb8 },
     { 0x31,0xdc,0xca,0xd7 }, { 0x63,0x85,0x10,0x42 },
-    { 0x97,0x22,0x40,0x13 }, { 0xc6,0x11,0x20,0x84 }, 
-    { 0x4a,0x24,0x7d,0x85 }, { 0xbb,0x3d,0xf8,0xd2 }, 
-    { 0xf9,0x32,0x11,0xae }, { 0x29,0xa1,0x6d,0xc7 }, 
+    { 0x97,0x22,0x40,0x13 }, { 0xc6,0x11,0x20,0x84 },
+    { 0x4a,0x24,0x7d,0x85 }, { 0xbb,0x3d,0xf8,0xd2 },
+    { 0xf9,0x32,0x11,0xae }, { 0x29,0xa1,0x6d,0xc7 },
     { 0x9e,0x2f,0x4b,0x1d }, { 0xb2,0x30,0xf3,0xdc },
-    { 0x86,0x52,0xec,0x0d }, { 0xc1,0xe3,0xd0,0x77 }, 
+    { 0x86,0x52,0xec,0x0d }, { 0xc1,0xe3,0xd0,0x77 },
     { 0xb3,0x16,0x6c,0x2b }, { 0x70,0xb9,0x99,0xa9 },
-    { 0x94,0x48,0xfa,0x11 }, { 0xe9,0x64,0x22,0x47 }, 
+    { 0x94,0x48,0xfa,0x11 }, { 0xe9,0x64,0x22,0x47 },
     { 0xfc,0x8c,0xc4,0xa8 }, { 0xf0,0x3f,0x1a,0xa0 },
-    { 0x7d,0x2c,0xd8,0x56 }, { 0x33,0x90,0xef,0x22 }, 
+    { 0x7d,0x2c,0xd8,0x56 }, { 0x33,0x90,0xef,0x22 },
     { 0x49,0x4e,0xc7,0x87 }, { 0x38,0xd1,0xc1,0xd9 },
-    { 0xca,0xa2,0xfe,0x8c }, { 0xd4,0x0b,0x36,0x98 }, 
+    { 0xca,0xa2,0xfe,0x8c }, { 0xd4,0x0b,0x36,0x98 },
     { 0xf5,0x81,0xcf,0xa6 }, { 0x7a,0xde,0x28,0xa5 },
-    { 0xb7,0x8e,0x26,0xda }, { 0xad,0xbf,0xa4,0x3f }, 
+    { 0xb7,0x8e,0x26,0xda }, { 0xad,0xbf,0xa4,0x3f },
     { 0x3a,0x9d,0xe4,0x2c }, { 0x78,0x92,0x0d,0x50 },
-    { 0x5f,0xcc,0x9b,0x6a }, { 0x7e,0x46,0x62,0x54 }, 
+    { 0x5f,0xcc,0x9b,0x6a }, { 0x7e,0x46,0x62,0x54 },
     { 0x8d,0x13,0xc2,0xf6 }, { 0xd8,0xb8,0xe8,0x90 },
-    { 0x39,0xf7,0x5e,0x2e }, { 0xc3,0xaf,0xf5,0x82 }, 
+    { 0x39,0xf7,0x5e,0x2e }, { 0xc3,0xaf,0xf5,0x82 },
     { 0x5d,0x80,0xbe,0x9f }, { 0xd0,0x93,0x7c,0x69 },
-    { 0xd5,0x2d,0xa9,0x6f }, { 0x25,0x12,0xb3,0xcf }, 
+    { 0xd5,0x2d,0xa9,0x6f }, { 0x25,0x12,0xb3,0xcf },
     { 0xac,0x99,0x3b,0xc8 }, { 0x18,0x7d,0xa7,0x10 },
-    { 0x9c,0x63,0x6e,0xe8 }, { 0x3b,0xbb,0x7b,0xdb }, 
+    { 0x9c,0x63,0x6e,0xe8 }, { 0x3b,0xbb,0x7b,0xdb },
     { 0x26,0x78,0x09,0xcd }, { 0x59,0x18,0xf4,0x6e },
-    { 0x9a,0xb7,0x01,0xec }, { 0x4f,0x9a,0xa8,0x83 }, 
+    { 0x9a,0xb7,0x01,0xec }, { 0x4f,0x9a,0xa8,0x83 },
     { 0x95,0x6e,0x65,0xe6 }, { 0xff,0xe6,0x7e,0xaa },
-    { 0xbc,0xcf,0x08,0x21 }, { 0x15,0xe8,0xe6,0xef }, 
+    { 0xbc,0xcf,0x08,0x21 }, { 0x15,0xe8,0xe6,0xef },
     { 0xe7,0x9b,0xd9,0xba }, { 0x6f,0x36,0xce,0x4a },
-    { 0x9f,0x09,0xd4,0xea }, { 0xb0,0x7c,0xd6,0x29 }, 
+    { 0x9f,0x09,0xd4,0xea }, { 0xb0,0x7c,0xd6,0x29 },
     { 0xa4,0xb2,0xaf,0x31 }, { 0x3f,0x23,0x31,0x2a },
-    { 0xa5,0x94,0x30,0xc6 }, { 0xa2,0x66,0xc0,0x35 }, 
+    { 0xa5,0x94,0x30,0xc6 }, { 0xa2,0x66,0xc0,0x35 },
     { 0x4e,0xbc,0x37,0x74 }, { 0x82,0xca,0xa6,0xfc },
-    { 0x90,0xd0,0xb0,0xe0 }, { 0xa7,0xd8,0x15,0x33 }, 
+    { 0x90,0xd0,0xb0,0xe0 }, { 0xa7,0xd8,0x15,0x33 },
     { 0x04,0x98,0x4a,0xf1 }, { 0xec,0xda,0xf7,0x41 },
-    { 0xcd,0x50,0x0e,0x7f }, { 0x91,0xf6,0x2f,0x17 }, 
-    { 0x4d,0xd6,0x8d,0x76 }, { 0xef,0xb0,0x4d,0x43 }, 
-    { 0xaa,0x4d,0x54,0xcc }, { 0x96,0x04,0xdf,0xe4 }, 
+    { 0xcd,0x50,0x0e,0x7f }, { 0x91,0xf6,0x2f,0x17 },
+    { 0x4d,0xd6,0x8d,0x76 }, { 0xef,0xb0,0x4d,0x43 },
+    { 0xaa,0x4d,0x54,0xcc }, { 0x96,0x04,0xdf,0xe4 },
     { 0xd1,0xb5,0xe3,0x9e }, { 0x6a,0x88,0x1b,0x4c },
-    { 0x2c,0x1f,0xb8,0xc1 }, { 0x65,0x51,0x7f,0x46 }, 
+    { 0x2c,0x1f,0xb8,0xc1 }, { 0x65,0x51,0x7f,0x46 },
     { 0x5e,0xea,0x04,0x9d }, { 0x8c,0x35,0x5d,0x01 },
-    { 0x87,0x74,0x73,0xfa }, { 0x0b,0x41,0x2e,0xfb }, 
+    { 0x87,0x74,0x73,0xfa }, { 0x0b,0x41,0x2e,0xfb },
     { 0x67,0x1d,0x5a,0xb3 }, { 0xdb,0xd2,0x52,0x92 },
-    { 0x10,0x56,0x33,0xe9 }, { 0xd6,0x47,0x13,0x6d }, 
+    { 0x10,0x56,0x33,0xe9 }, { 0xd6,0x47,0x13,0x6d },
     { 0xd7,0x61,0x8c,0x9a }, { 0xa1,0x0c,0x7a,0x37 },
-    { 0xf8,0x14,0x8e,0x59 }, { 0x13,0x3c,0x89,0xeb }, 
+    { 0xf8,0x14,0x8e,0x59 }, { 0x13,0x3c,0x89,0xeb },
     { 0xa9,0x27,0xee,0xce }, { 0x61,0xc9,0x35,0xb7 },
-    { 0x1c,0xe5,0xed,0xe1 }, { 0x47,0xb1,0x3c,0x7a }, 
+    { 0x1c,0xe5,0xed,0xe1 }, { 0x47,0xb1,0x3c,0x7a },
     { 0xd2,0xdf,0x59,0x9c }, { 0xf2,0x73,0x3f,0x55 },
-    { 0x14,0xce,0x79,0x18 }, { 0xc7,0x37,0xbf,0x73 }, 
+    { 0x14,0xce,0x79,0x18 }, { 0xc7,0x37,0xbf,0x73 },
     { 0xf7,0xcd,0xea,0x53 }, { 0xfd,0xaa,0x5b,0x5f },
-    { 0x3d,0x6f,0x14,0xdf }, { 0x44,0xdb,0x86,0x78 }, 
+    { 0x3d,0x6f,0x14,0xdf }, { 0x44,0xdb,0x86,0x78 },
     { 0xaf,0xf3,0x81,0xca }, { 0x68,0xc4,0x3e,0xb9 },
-    { 0x24,0x34,0x2c,0x38 }, { 0xa3,0x40,0x5f,0xc2 }, 
+    { 0x24,0x34,0x2c,0x38 }, { 0xa3,0x40,0x5f,0xc2 },
     { 0x1d,0xc3,0x72,0x16 }, { 0xe2,0x25,0x0c,0xbc },
-    { 0x3c,0x49,0x8b,0x28 }, { 0x0d,0x95,0x41,0xff }, 
+    { 0x3c,0x49,0x8b,0x28 }, { 0x0d,0x95,0x41,0xff },
     { 0xa8,0x01,0x71,0x39 }, { 0x0c,0xb3,0xde,0x08 },
-    { 0xb4,0xe4,0x9c,0xd8 }, { 0x56,0xc1,0x90,0x64 }, 
+    { 0xb4,0xe4,0x9c,0xd8 }, { 0x56,0xc1,0x90,0x64 },
     { 0xcb,0x84,0x61,0x7b }, { 0x32,0xb6,0x70,0xd5 },
     { 0x6c,0x5c,0x74,0x48 }, { 0xb8,0x57,0x42,0xd0 }
   };
 
-static const unsigned char S5[256] = 
+static const unsigned char S5[256] =
   {
     0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38,
     0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb,
@@ -1150,398 +1150,398 @@ static const unsigned char S5[256] =
     0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d
   };
 
-static const unsigned char U1[256][4] = 
+static const unsigned char U1[256][4] =
   {
     { 0x00,0x00,0x00,0x00 }, { 0x0e,0x09,0x0d,0x0b },
-    { 0x1c,0x12,0x1a,0x16 }, { 0x12,0x1b,0x17,0x1d }, 
+    { 0x1c,0x12,0x1a,0x16 }, { 0x12,0x1b,0x17,0x1d },
     { 0x38,0x24,0x34,0x2c }, { 0x36,0x2d,0x39,0x27 },
-    { 0x24,0x36,0x2e,0x3a }, { 0x2a,0x3f,0x23,0x31 }, 
+    { 0x24,0x36,0x2e,0x3a }, { 0x2a,0x3f,0x23,0x31 },
     { 0x70,0x48,0x68,0x58 }, { 0x7e,0x41,0x65,0x53 },
-    { 0x6c,0x5a,0x72,0x4e }, { 0x62,0x53,0x7f,0x45 }, 
+    { 0x6c,0x5a,0x72,0x4e }, { 0x62,0x53,0x7f,0x45 },
     { 0x48,0x6c,0x5c,0x74 }, { 0x46,0x65,0x51,0x7f },
-    { 0x54,0x7e,0x46,0x62 }, { 0x5a,0x77,0x4b,0x69 }, 
+    { 0x54,0x7e,0x46,0x62 }, { 0x5a,0x77,0x4b,0x69 },
     { 0xe0,0x90,0xd0,0xb0 }, { 0xee,0x99,0xdd,0xbb },
-    { 0xfc,0x82,0xca,0xa6 }, { 0xf2,0x8b,0xc7,0xad }, 
+    { 0xfc,0x82,0xca,0xa6 }, { 0xf2,0x8b,0xc7,0xad },
     { 0xd8,0xb4,0xe4,0x9c }, { 0xd6,0xbd,0xe9,0x97 },
-    { 0xc4,0xa6,0xfe,0x8a }, { 0xca,0xaf,0xf3,0x81 }, 
+    { 0xc4,0xa6,0xfe,0x8a }, { 0xca,0xaf,0xf3,0x81 },
     { 0x90,0xd8,0xb8,0xe8 }, { 0x9e,0xd1,0xb5,0xe3 },
-    { 0x8c,0xca,0xa2,0xfe }, { 0x82,0xc3,0xaf,0xf5 }, 
+    { 0x8c,0xca,0xa2,0xfe }, { 0x82,0xc3,0xaf,0xf5 },
     { 0xa8,0xfc,0x8c,0xc4 }, { 0xa6,0xf5,0x81,0xcf },
-    { 0xb4,0xee,0x96,0xd2 }, { 0xba,0xe7,0x9b,0xd9 }, 
+    { 0xb4,0xee,0x96,0xd2 }, { 0xba,0xe7,0x9b,0xd9 },
     { 0xdb,0x3b,0xbb,0x7b }, { 0xd5,0x32,0xb6,0x70 },
-    { 0xc7,0x29,0xa1,0x6d }, { 0xc9,0x20,0xac,0x66 }, 
+    { 0xc7,0x29,0xa1,0x6d }, { 0xc9,0x20,0xac,0x66 },
     { 0xe3,0x1f,0x8f,0x57 }, { 0xed,0x16,0x82,0x5c },
-    { 0xff,0x0d,0x95,0x41 }, { 0xf1,0x04,0x98,0x4a }, 
+    { 0xff,0x0d,0x95,0x41 }, { 0xf1,0x04,0x98,0x4a },
     { 0xab,0x73,0xd3,0x23 }, { 0xa5,0x7a,0xde,0x28 },
-    { 0xb7,0x61,0xc9,0x35 }, { 0xb9,0x68,0xc4,0x3e }, 
+    { 0xb7,0x61,0xc9,0x35 }, { 0xb9,0x68,0xc4,0x3e },
     { 0x93,0x57,0xe7,0x0f }, { 0x9d,0x5e,0xea,0x04 },
-    { 0x8f,0x45,0xfd,0x19 }, { 0x81,0x4c,0xf0,0x12 }, 
+    { 0x8f,0x45,0xfd,0x19 }, { 0x81,0x4c,0xf0,0x12 },
     { 0x3b,0xab,0x6b,0xcb }, { 0x35,0xa2,0x66,0xc0 },
-    { 0x27,0xb9,0x71,0xdd }, { 0x29,0xb0,0x7c,0xd6 }, 
+    { 0x27,0xb9,0x71,0xdd }, { 0x29,0xb0,0x7c,0xd6 },
     { 0x03,0x8f,0x5f,0xe7 }, { 0x0d,0x86,0x52,0xec },
-    { 0x1f,0x9d,0x45,0xf1 }, { 0x11,0x94,0x48,0xfa }, 
+    { 0x1f,0x9d,0x45,0xf1 }, { 0x11,0x94,0x48,0xfa },
     { 0x4b,0xe3,0x03,0x93 }, { 0x45,0xea,0x0e,0x98 },
-    { 0x57,0xf1,0x19,0x85 }, { 0x59,0xf8,0x14,0x8e }, 
+    { 0x57,0xf1,0x19,0x85 }, { 0x59,0xf8,0x14,0x8e },
     { 0x73,0xc7,0x37,0xbf }, { 0x7d,0xce,0x3a,0xb4 },
-    { 0x6f,0xd5,0x2d,0xa9 }, { 0x61,0xdc,0x20,0xa2 }, 
+    { 0x6f,0xd5,0x2d,0xa9 }, { 0x61,0xdc,0x20,0xa2 },
     { 0xad,0x76,0x6d,0xf6 }, { 0xa3,0x7f,0x60,0xfd },
-    { 0xb1,0x64,0x77,0xe0 }, { 0xbf,0x6d,0x7a,0xeb }, 
+    { 0xb1,0x64,0x77,0xe0 }, { 0xbf,0x6d,0x7a,0xeb },
     { 0x95,0x52,0x59,0xda }, { 0x9b,0x5b,0x54,0xd1 },
-    { 0x89,0x40,0x43,0xcc }, { 0x87,0x49,0x4e,0xc7 }, 
+    { 0x89,0x40,0x43,0xcc }, { 0x87,0x49,0x4e,0xc7 },
     { 0xdd,0x3e,0x05,0xae }, { 0xd3,0x37,0x08,0xa5 },
-    { 0xc1,0x2c,0x1f,0xb8 }, { 0xcf,0x25,0x12,0xb3 }, 
+    { 0xc1,0x2c,0x1f,0xb8 }, { 0xcf,0x25,0x12,0xb3 },
     { 0xe5,0x1a,0x31,0x82 }, { 0xeb,0x13,0x3c,0x89 },
-    { 0xf9,0x08,0x2b,0x94 }, { 0xf7,0x01,0x26,0x9f }, 
+    { 0xf9,0x08,0x2b,0x94 }, { 0xf7,0x01,0x26,0x9f },
     { 0x4d,0xe6,0xbd,0x46 }, { 0x43,0xef,0xb0,0x4d },
-    { 0x51,0xf4,0xa7,0x50 }, { 0x5f,0xfd,0xaa,0x5b }, 
+    { 0x51,0xf4,0xa7,0x50 }, { 0x5f,0xfd,0xaa,0x5b },
     { 0x75,0xc2,0x89,0x6a }, { 0x7b,0xcb,0x84,0x61 },
-    { 0x69,0xd0,0x93,0x7c }, { 0x67,0xd9,0x9e,0x77 }, 
+    { 0x69,0xd0,0x93,0x7c }, { 0x67,0xd9,0x9e,0x77 },
     { 0x3d,0xae,0xd5,0x1e }, { 0x33,0xa7,0xd8,0x15 },
-    { 0x21,0xbc,0xcf,0x08 }, { 0x2f,0xb5,0xc2,0x03 }, 
+    { 0x21,0xbc,0xcf,0x08 }, { 0x2f,0xb5,0xc2,0x03 },
     { 0x05,0x8a,0xe1,0x32 }, { 0x0b,0x83,0xec,0x39 },
-    { 0x19,0x98,0xfb,0x24 }, { 0x17,0x91,0xf6,0x2f }, 
+    { 0x19,0x98,0xfb,0x24 }, { 0x17,0x91,0xf6,0x2f },
     { 0x76,0x4d,0xd6,0x8d }, { 0x78,0x44,0xdb,0x86 },
-    { 0x6a,0x5f,0xcc,0x9b }, { 0x64,0x56,0xc1,0x90 }, 
+    { 0x6a,0x5f,0xcc,0x9b }, { 0x64,0x56,0xc1,0x90 },
     { 0x4e,0x69,0xe2,0xa1 }, { 0x40,0x60,0xef,0xaa },
-    { 0x52,0x7b,0xf8,0xb7 }, { 0x5c,0x72,0xf5,0xbc }, 
+    { 0x52,0x7b,0xf8,0xb7 }, { 0x5c,0x72,0xf5,0xbc },
     { 0x06,0x05,0xbe,0xd5 }, { 0x08,0x0c,0xb3,0xde },
-    { 0x1a,0x17,0xa4,0xc3 }, { 0x14,0x1e,0xa9,0xc8 }, 
+    { 0x1a,0x17,0xa4,0xc3 }, { 0x14,0x1e,0xa9,0xc8 },
     { 0x3e,0x21,0x8a,0xf9 }, { 0x30,0x28,0x87,0xf2 },
-    { 0x22,0x33,0x90,0xef }, { 0x2c,0x3a,0x9d,0xe4 }, 
+    { 0x22,0x33,0x90,0xef }, { 0x2c,0x3a,0x9d,0xe4 },
     { 0x96,0xdd,0x06,0x3d }, { 0x98,0xd4,0x0b,0x36 },
-    { 0x8a,0xcf,0x1c,0x2b }, { 0x84,0xc6,0x11,0x20 }, 
+    { 0x8a,0xcf,0x1c,0x2b }, { 0x84,0xc6,0x11,0x20 },
     { 0xae,0xf9,0x32,0x11 }, { 0xa0,0xf0,0x3f,0x1a },
-    { 0xb2,0xeb,0x28,0x07 }, { 0xbc,0xe2,0x25,0x0c }, 
+    { 0xb2,0xeb,0x28,0x07 }, { 0xbc,0xe2,0x25,0x0c },
     { 0xe6,0x95,0x6e,0x65 }, { 0xe8,0x9c,0x63,0x6e },
-    { 0xfa,0x87,0x74,0x73 }, { 0xf4,0x8e,0x79,0x78 }, 
+    { 0xfa,0x87,0x74,0x73 }, { 0xf4,0x8e,0x79,0x78 },
     { 0xde,0xb1,0x5a,0x49 }, { 0xd0,0xb8,0x57,0x42 },
-    { 0xc2,0xa3,0x40,0x5f }, { 0xcc,0xaa,0x4d,0x54 }, 
+    { 0xc2,0xa3,0x40,0x5f }, { 0xcc,0xaa,0x4d,0x54 },
     { 0x41,0xec,0xda,0xf7 }, { 0x4f,0xe5,0xd7,0xfc },
-    { 0x5d,0xfe,0xc0,0xe1 }, { 0x53,0xf7,0xcd,0xea }, 
+    { 0x5d,0xfe,0xc0,0xe1 }, { 0x53,0xf7,0xcd,0xea },
     { 0x79,0xc8,0xee,0xdb }, { 0x77,0xc1,0xe3,0xd0 },
-    { 0x65,0xda,0xf4,0xcd }, { 0x6b,0xd3,0xf9,0xc6 }, 
+    { 0x65,0xda,0xf4,0xcd }, { 0x6b,0xd3,0xf9,0xc6 },
     { 0x31,0xa4,0xb2,0xaf }, { 0x3f,0xad,0xbf,0xa4 },
-    { 0x2d,0xb6,0xa8,0xb9 }, { 0x23,0xbf,0xa5,0xb2 }, 
+    { 0x2d,0xb6,0xa8,0xb9 }, { 0x23,0xbf,0xa5,0xb2 },
     { 0x09,0x80,0x86,0x83 }, { 0x07,0x89,0x8b,0x88 },
-    { 0x15,0x92,0x9c,0x95 }, { 0x1b,0x9b,0x91,0x9e }, 
+    { 0x15,0x92,0x9c,0x95 }, { 0x1b,0x9b,0x91,0x9e },
     { 0xa1,0x7c,0x0a,0x47 }, { 0xaf,0x75,0x07,0x4c },
-    { 0xbd,0x6e,0x10,0x51 }, { 0xb3,0x67,0x1d,0x5a }, 
+    { 0xbd,0x6e,0x10,0x51 }, { 0xb3,0x67,0x1d,0x5a },
     { 0x99,0x58,0x3e,0x6b }, { 0x97,0x51,0x33,0x60 },
-    { 0x85,0x4a,0x24,0x7d }, { 0x8b,0x43,0x29,0x76 }, 
+    { 0x85,0x4a,0x24,0x7d }, { 0x8b,0x43,0x29,0x76 },
     { 0xd1,0x34,0x62,0x1f }, { 0xdf,0x3d,0x6f,0x14 },
-    { 0xcd,0x26,0x78,0x09 }, { 0xc3,0x2f,0x75,0x02 }, 
+    { 0xcd,0x26,0x78,0x09 }, { 0xc3,0x2f,0x75,0x02 },
     { 0xe9,0x10,0x56,0x33 }, { 0xe7,0x19,0x5b,0x38 },
-    { 0xf5,0x02,0x4c,0x25 }, { 0xfb,0x0b,0x41,0x2e }, 
-    { 0x9a,0xd7,0x61,0x8c }, { 0x94,0xde,0x6c,0x87 }, 
-    { 0x86,0xc5,0x7b,0x9a }, { 0x88,0xcc,0x76,0x91 }, 
+    { 0xf5,0x02,0x4c,0x25 }, { 0xfb,0x0b,0x41,0x2e },
+    { 0x9a,0xd7,0x61,0x8c }, { 0x94,0xde,0x6c,0x87 },
+    { 0x86,0xc5,0x7b,0x9a }, { 0x88,0xcc,0x76,0x91 },
     { 0xa2,0xf3,0x55,0xa0 }, { 0xac,0xfa,0x58,0xab },
-    { 0xbe,0xe1,0x4f,0xb6 }, { 0xb0,0xe8,0x42,0xbd }, 
+    { 0xbe,0xe1,0x4f,0xb6 }, { 0xb0,0xe8,0x42,0xbd },
     { 0xea,0x9f,0x09,0xd4 }, { 0xe4,0x96,0x04,0xdf },
-    { 0xf6,0x8d,0x13,0xc2 }, { 0xf8,0x84,0x1e,0xc9 }, 
+    { 0xf6,0x8d,0x13,0xc2 }, { 0xf8,0x84,0x1e,0xc9 },
     { 0xd2,0xbb,0x3d,0xf8 }, { 0xdc,0xb2,0x30,0xf3 },
-    { 0xce,0xa9,0x27,0xee }, { 0xc0,0xa0,0x2a,0xe5 }, 
-    { 0x7a,0x47,0xb1,0x3c }, { 0x74,0x4e,0xbc,0x37 }, 
-    { 0x66,0x55,0xab,0x2a }, { 0x68,0x5c,0xa6,0x21 }, 
+    { 0xce,0xa9,0x27,0xee }, { 0xc0,0xa0,0x2a,0xe5 },
+    { 0x7a,0x47,0xb1,0x3c }, { 0x74,0x4e,0xbc,0x37 },
+    { 0x66,0x55,0xab,0x2a }, { 0x68,0x5c,0xa6,0x21 },
     { 0x42,0x63,0x85,0x10 }, { 0x4c,0x6a,0x88,0x1b },
-    { 0x5e,0x71,0x9f,0x06 }, { 0x50,0x78,0x92,0x0d }, 
+    { 0x5e,0x71,0x9f,0x06 }, { 0x50,0x78,0x92,0x0d },
     { 0x0a,0x0f,0xd9,0x64 }, { 0x04,0x06,0xd4,0x6f },
-    { 0x16,0x1d,0xc3,0x72 }, { 0x18,0x14,0xce,0x79 }, 
+    { 0x16,0x1d,0xc3,0x72 }, { 0x18,0x14,0xce,0x79 },
     { 0x32,0x2b,0xed,0x48 }, { 0x3c,0x22,0xe0,0x43 },
-    { 0x2e,0x39,0xf7,0x5e }, { 0x20,0x30,0xfa,0x55 }, 
+    { 0x2e,0x39,0xf7,0x5e }, { 0x20,0x30,0xfa,0x55 },
     { 0xec,0x9a,0xb7,0x01 }, { 0xe2,0x93,0xba,0x0a },
-    { 0xf0,0x88,0xad,0x17 }, { 0xfe,0x81,0xa0,0x1c }, 
+    { 0xf0,0x88,0xad,0x17 }, { 0xfe,0x81,0xa0,0x1c },
     { 0xd4,0xbe,0x83,0x2d }, { 0xda,0xb7,0x8e,0x26 },
-    { 0xc8,0xac,0x99,0x3b }, { 0xc6,0xa5,0x94,0x30 }, 
+    { 0xc8,0xac,0x99,0x3b }, { 0xc6,0xa5,0x94,0x30 },
     { 0x9c,0xd2,0xdf,0x59 }, { 0x92,0xdb,0xd2,0x52 },
-    { 0x80,0xc0,0xc5,0x4f }, { 0x8e,0xc9,0xc8,0x44 }, 
+    { 0x80,0xc0,0xc5,0x4f }, { 0x8e,0xc9,0xc8,0x44 },
     { 0xa4,0xf6,0xeb,0x75 }, { 0xaa,0xff,0xe6,0x7e },
-    { 0xb8,0xe4,0xf1,0x63 }, { 0xb6,0xed,0xfc,0x68 }, 
+    { 0xb8,0xe4,0xf1,0x63 }, { 0xb6,0xed,0xfc,0x68 },
     { 0x0c,0x0a,0x67,0xb1 }, { 0x02,0x03,0x6a,0xba },
-    { 0x10,0x18,0x7d,0xa7 }, { 0x1e,0x11,0x70,0xac }, 
+    { 0x10,0x18,0x7d,0xa7 }, { 0x1e,0x11,0x70,0xac },
     { 0x34,0x2e,0x53,0x9d }, { 0x3a,0x27,0x5e,0x96 },
-    { 0x28,0x3c,0x49,0x8b }, { 0x26,0x35,0x44,0x80 }, 
+    { 0x28,0x3c,0x49,0x8b }, { 0x26,0x35,0x44,0x80 },
     { 0x7c,0x42,0x0f,0xe9 }, { 0x72,0x4b,0x02,0xe2 },
-    { 0x60,0x50,0x15,0xff }, { 0x6e,0x59,0x18,0xf4 }, 
+    { 0x60,0x50,0x15,0xff }, { 0x6e,0x59,0x18,0xf4 },
     { 0x44,0x66,0x3b,0xc5 }, { 0x4a,0x6f,0x36,0xce },
-    { 0x58,0x74,0x21,0xd3 }, { 0x56,0x7d,0x2c,0xd8 }, 
+    { 0x58,0x74,0x21,0xd3 }, { 0x56,0x7d,0x2c,0xd8 },
     { 0x37,0xa1,0x0c,0x7a }, { 0x39,0xa8,0x01,0x71 },
-    { 0x2b,0xb3,0x16,0x6c }, { 0x25,0xba,0x1b,0x67 }, 
+    { 0x2b,0xb3,0x16,0x6c }, { 0x25,0xba,0x1b,0x67 },
     { 0x0f,0x85,0x38,0x56 }, { 0x01,0x8c,0x35,0x5d },
-    { 0x13,0x97,0x22,0x40 }, { 0x1d,0x9e,0x2f,0x4b }, 
+    { 0x13,0x97,0x22,0x40 }, { 0x1d,0x9e,0x2f,0x4b },
     { 0x47,0xe9,0x64,0x22 }, { 0x49,0xe0,0x69,0x29 },
-    { 0x5b,0xfb,0x7e,0x34 }, { 0x55,0xf2,0x73,0x3f }, 
+    { 0x5b,0xfb,0x7e,0x34 }, { 0x55,0xf2,0x73,0x3f },
     { 0x7f,0xcd,0x50,0x0e }, { 0x71,0xc4,0x5d,0x05 },
-    { 0x63,0xdf,0x4a,0x18 }, { 0x6d,0xd6,0x47,0x13 }, 
+    { 0x63,0xdf,0x4a,0x18 }, { 0x6d,0xd6,0x47,0x13 },
     { 0xd7,0x31,0xdc,0xca }, { 0xd9,0x38,0xd1,0xc1 },
-    { 0xcb,0x23,0xc6,0xdc }, { 0xc5,0x2a,0xcb,0xd7 }, 
+    { 0xcb,0x23,0xc6,0xdc }, { 0xc5,0x2a,0xcb,0xd7 },
     { 0xef,0x15,0xe8,0xe6 }, { 0xe1,0x1c,0xe5,0xed },
-    { 0xf3,0x07,0xf2,0xf0 }, { 0xfd,0x0e,0xff,0xfb }, 
+    { 0xf3,0x07,0xf2,0xf0 }, { 0xfd,0x0e,0xff,0xfb },
     { 0xa7,0x79,0xb4,0x92 }, { 0xa9,0x70,0xb9,0x99 },
-    { 0xbb,0x6b,0xae,0x84 }, { 0xb5,0x62,0xa3,0x8f }, 
+    { 0xbb,0x6b,0xae,0x84 }, { 0xb5,0x62,0xa3,0x8f },
     { 0x9f,0x5d,0x80,0xbe }, { 0x91,0x54,0x8d,0xb5 },
     { 0x83,0x4f,0x9a,0xa8 }, { 0x8d,0x46,0x97,0xa3 }
   };
 
-static const unsigned char U2[256][4] = 
+static const unsigned char U2[256][4] =
   {
     { 0x00,0x00,0x00,0x00 }, { 0x0b,0x0e,0x09,0x0d },
-    { 0x16,0x1c,0x12,0x1a }, { 0x1d,0x12,0x1b,0x17 }, 
+    { 0x16,0x1c,0x12,0x1a }, { 0x1d,0x12,0x1b,0x17 },
     { 0x2c,0x38,0x24,0x34 }, { 0x27,0x36,0x2d,0x39 },
-    { 0x3a,0x24,0x36,0x2e }, { 0x31,0x2a,0x3f,0x23 }, 
-    { 0x58,0x70,0x48,0x68 }, { 0x53,0x7e,0x41,0x65 }, 
-    { 0x4e,0x6c,0x5a,0x72 }, { 0x45,0x62,0x53,0x7f }, 
+    { 0x3a,0x24,0x36,0x2e }, { 0x31,0x2a,0x3f,0x23 },
+    { 0x58,0x70,0x48,0x68 }, { 0x53,0x7e,0x41,0x65 },
+    { 0x4e,0x6c,0x5a,0x72 }, { 0x45,0x62,0x53,0x7f },
     { 0x74,0x48,0x6c,0x5c }, { 0x7f,0x46,0x65,0x51 },
-    { 0x62,0x54,0x7e,0x46 }, { 0x69,0x5a,0x77,0x4b }, 
-    { 0xb0,0xe0,0x90,0xd0 }, { 0xbb,0xee,0x99,0xdd }, 
-    { 0xa6,0xfc,0x82,0xca }, { 0xad,0xf2,0x8b,0xc7 }, 
-    { 0x9c,0xd8,0xb4,0xe4 }, { 0x97,0xd6,0xbd,0xe9 }, 
-    { 0x8a,0xc4,0xa6,0xfe }, { 0x81,0xca,0xaf,0xf3 }, 
+    { 0x62,0x54,0x7e,0x46 }, { 0x69,0x5a,0x77,0x4b },
+    { 0xb0,0xe0,0x90,0xd0 }, { 0xbb,0xee,0x99,0xdd },
+    { 0xa6,0xfc,0x82,0xca }, { 0xad,0xf2,0x8b,0xc7 },
+    { 0x9c,0xd8,0xb4,0xe4 }, { 0x97,0xd6,0xbd,0xe9 },
+    { 0x8a,0xc4,0xa6,0xfe }, { 0x81,0xca,0xaf,0xf3 },
     { 0xe8,0x90,0xd8,0xb8 }, { 0xe3,0x9e,0xd1,0xb5 },
-    { 0xfe,0x8c,0xca,0xa2 }, { 0xf5,0x82,0xc3,0xaf }, 
-    { 0xc4,0xa8,0xfc,0x8c }, { 0xcf,0xa6,0xf5,0x81 }, 
-    { 0xd2,0xb4,0xee,0x96 }, { 0xd9,0xba,0xe7,0x9b }, 
-    { 0x7b,0xdb,0x3b,0xbb }, { 0x70,0xd5,0x32,0xb6 }, 
-    { 0x6d,0xc7,0x29,0xa1 }, { 0x66,0xc9,0x20,0xac }, 
-    { 0x57,0xe3,0x1f,0x8f }, { 0x5c,0xed,0x16,0x82 }, 
-    { 0x41,0xff,0x0d,0x95 }, { 0x4a,0xf1,0x04,0x98 }, 
+    { 0xfe,0x8c,0xca,0xa2 }, { 0xf5,0x82,0xc3,0xaf },
+    { 0xc4,0xa8,0xfc,0x8c }, { 0xcf,0xa6,0xf5,0x81 },
+    { 0xd2,0xb4,0xee,0x96 }, { 0xd9,0xba,0xe7,0x9b },
+    { 0x7b,0xdb,0x3b,0xbb }, { 0x70,0xd5,0x32,0xb6 },
+    { 0x6d,0xc7,0x29,0xa1 }, { 0x66,0xc9,0x20,0xac },
+    { 0x57,0xe3,0x1f,0x8f }, { 0x5c,0xed,0x16,0x82 },
+    { 0x41,0xff,0x0d,0x95 }, { 0x4a,0xf1,0x04,0x98 },
     { 0x23,0xab,0x73,0xd3 }, { 0x28,0xa5,0x7a,0xde },
-    { 0x35,0xb7,0x61,0xc9 }, { 0x3e,0xb9,0x68,0xc4 }, 
+    { 0x35,0xb7,0x61,0xc9 }, { 0x3e,0xb9,0x68,0xc4 },
     { 0x0f,0x93,0x57,0xe7 }, { 0x04,0x9d,0x5e,0xea },
-    { 0x19,0x8f,0x45,0xfd }, { 0x12,0x81,0x4c,0xf0 }, 
+    { 0x19,0x8f,0x45,0xfd }, { 0x12,0x81,0x4c,0xf0 },
     { 0xcb,0x3b,0xab,0x6b }, { 0xc0,0x35,0xa2,0x66 },
-    { 0xdd,0x27,0xb9,0x71 }, { 0xd6,0x29,0xb0,0x7c }, 
+    { 0xdd,0x27,0xb9,0x71 }, { 0xd6,0x29,0xb0,0x7c },
     { 0xe7,0x03,0x8f,0x5f }, { 0xec,0x0d,0x86,0x52 },
-    { 0xf1,0x1f,0x9d,0x45 }, { 0xfa,0x11,0x94,0x48 }, 
-    { 0x93,0x4b,0xe3,0x03 }, { 0x98,0x45,0xea,0x0e }, 
-    { 0x85,0x57,0xf1,0x19 }, { 0x8e,0x59,0xf8,0x14 }, 
+    { 0xf1,0x1f,0x9d,0x45 }, { 0xfa,0x11,0x94,0x48 },
+    { 0x93,0x4b,0xe3,0x03 }, { 0x98,0x45,0xea,0x0e },
+    { 0x85,0x57,0xf1,0x19 }, { 0x8e,0x59,0xf8,0x14 },
     { 0xbf,0x73,0xc7,0x37 }, { 0xb4,0x7d,0xce,0x3a },
-    { 0xa9,0x6f,0xd5,0x2d }, { 0xa2,0x61,0xdc,0x20 }, 
-    { 0xf6,0xad,0x76,0x6d }, { 0xfd,0xa3,0x7f,0x60 }, 
-    { 0xe0,0xb1,0x64,0x77 }, { 0xeb,0xbf,0x6d,0x7a }, 
-    { 0xda,0x95,0x52,0x59 }, { 0xd1,0x9b,0x5b,0x54 }, 
-    { 0xcc,0x89,0x40,0x43 }, { 0xc7,0x87,0x49,0x4e }, 
+    { 0xa9,0x6f,0xd5,0x2d }, { 0xa2,0x61,0xdc,0x20 },
+    { 0xf6,0xad,0x76,0x6d }, { 0xfd,0xa3,0x7f,0x60 },
+    { 0xe0,0xb1,0x64,0x77 }, { 0xeb,0xbf,0x6d,0x7a },
+    { 0xda,0x95,0x52,0x59 }, { 0xd1,0x9b,0x5b,0x54 },
+    { 0xcc,0x89,0x40,0x43 }, { 0xc7,0x87,0x49,0x4e },
     { 0xae,0xdd,0x3e,0x05 }, { 0xa5,0xd3,0x37,0x08 },
-    { 0xb8,0xc1,0x2c,0x1f }, { 0xb3,0xcf,0x25,0x12 }, 
+    { 0xb8,0xc1,0x2c,0x1f }, { 0xb3,0xcf,0x25,0x12 },
     { 0x82,0xe5,0x1a,0x31 }, { 0x89,0xeb,0x13,0x3c },
-    { 0x94,0xf9,0x08,0x2b }, { 0x9f,0xf7,0x01,0x26 }, 
+    { 0x94,0xf9,0x08,0x2b }, { 0x9f,0xf7,0x01,0x26 },
     { 0x46,0x4d,0xe6,0xbd }, { 0x4d,0x43,0xef,0xb0 },
-    { 0x50,0x51,0xf4,0xa7 }, { 0x5b,0x5f,0xfd,0xaa }, 
+    { 0x50,0x51,0xf4,0xa7 }, { 0x5b,0x5f,0xfd,0xaa },
     { 0x6a,0x75,0xc2,0x89 }, { 0x61,0x7b,0xcb,0x84 },
-    { 0x7c,0x69,0xd0,0x93 }, { 0x77,0x67,0xd9,0x9e }, 
+    { 0x7c,0x69,0xd0,0x93 }, { 0x77,0x67,0xd9,0x9e },
     { 0x1e,0x3d,0xae,0xd5 }, { 0x15,0x33,0xa7,0xd8 },
-    { 0x08,0x21,0xbc,0xcf }, { 0x03,0x2f,0xb5,0xc2 }, 
+    { 0x08,0x21,0xbc,0xcf }, { 0x03,0x2f,0xb5,0xc2 },
     { 0x32,0x05,0x8a,0xe1 }, { 0x39,0x0b,0x83,0xec },
-    { 0x24,0x19,0x98,0xfb }, { 0x2f,0x17,0x91,0xf6 }, 
+    { 0x24,0x19,0x98,0xfb }, { 0x2f,0x17,0x91,0xf6 },
     { 0x8d,0x76,0x4d,0xd6 }, { 0x86,0x78,0x44,0xdb },
-    { 0x9b,0x6a,0x5f,0xcc }, { 0x90,0x64,0x56,0xc1 }, 
+    { 0x9b,0x6a,0x5f,0xcc }, { 0x90,0x64,0x56,0xc1 },
     { 0xa1,0x4e,0x69,0xe2 }, { 0xaa,0x40,0x60,0xef },
-    { 0xb7,0x52,0x7b,0xf8 }, { 0xbc,0x5c,0x72,0xf5 }, 
+    { 0xb7,0x52,0x7b,0xf8 }, { 0xbc,0x5c,0x72,0xf5 },
     { 0xd5,0x06,0x05,0xbe }, { 0xde,0x08,0x0c,0xb3 },
-    { 0xc3,0x1a,0x17,0xa4 }, { 0xc8,0x14,0x1e,0xa9 }, 
+    { 0xc3,0x1a,0x17,0xa4 }, { 0xc8,0x14,0x1e,0xa9 },
     { 0xf9,0x3e,0x21,0x8a }, { 0xf2,0x30,0x28,0x87 },
-    { 0xef,0x22,0x33,0x90 }, { 0xe4,0x2c,0x3a,0x9d }, 
+    { 0xef,0x22,0x33,0x90 }, { 0xe4,0x2c,0x3a,0x9d },
     { 0x3d,0x96,0xdd,0x06 }, { 0x36,0x98,0xd4,0x0b },
-    { 0x2b,0x8a,0xcf,0x1c }, { 0x20,0x84,0xc6,0x11 }, 
+    { 0x2b,0x8a,0xcf,0x1c }, { 0x20,0x84,0xc6,0x11 },
     { 0x11,0xae,0xf9,0x32 }, { 0x1a,0xa0,0xf0,0x3f },
-    { 0x07,0xb2,0xeb,0x28 }, { 0x0c,0xbc,0xe2,0x25 }, 
+    { 0x07,0xb2,0xeb,0x28 }, { 0x0c,0xbc,0xe2,0x25 },
     { 0x65,0xe6,0x95,0x6e }, { 0x6e,0xe8,0x9c,0x63 },
-    { 0x73,0xfa,0x87,0x74 }, { 0x78,0xf4,0x8e,0x79 }, 
+    { 0x73,0xfa,0x87,0x74 }, { 0x78,0xf4,0x8e,0x79 },
     { 0x49,0xde,0xb1,0x5a }, { 0x42,0xd0,0xb8,0x57 },
-    { 0x5f,0xc2,0xa3,0x40 }, { 0x54,0xcc,0xaa,0x4d }, 
+    { 0x5f,0xc2,0xa3,0x40 }, { 0x54,0xcc,0xaa,0x4d },
     { 0xf7,0x41,0xec,0xda }, { 0xfc,0x4f,0xe5,0xd7 },
-    { 0xe1,0x5d,0xfe,0xc0 }, { 0xea,0x53,0xf7,0xcd }, 
+    { 0xe1,0x5d,0xfe,0xc0 }, { 0xea,0x53,0xf7,0xcd },
     { 0xdb,0x79,0xc8,0xee }, { 0xd0,0x77,0xc1,0xe3 },
-    { 0xcd,0x65,0xda,0xf4 }, { 0xc6,0x6b,0xd3,0xf9 }, 
+    { 0xcd,0x65,0xda,0xf4 }, { 0xc6,0x6b,0xd3,0xf9 },
     { 0xaf,0x31,0xa4,0xb2 }, { 0xa4,0x3f,0xad,0xbf },
-    { 0xb9,0x2d,0xb6,0xa8 }, { 0xb2,0x23,0xbf,0xa5 }, 
+    { 0xb9,0x2d,0xb6,0xa8 }, { 0xb2,0x23,0xbf,0xa5 },
     { 0x83,0x09,0x80,0x86 }, { 0x88,0x07,0x89,0x8b },
-    { 0x95,0x15,0x92,0x9c }, { 0x9e,0x1b,0x9b,0x91 }, 
+    { 0x95,0x15,0x92,0x9c }, { 0x9e,0x1b,0x9b,0x91 },
     { 0x47,0xa1,0x7c,0x0a }, { 0x4c,0xaf,0x75,0x07 },
-    { 0x51,0xbd,0x6e,0x10 }, { 0x5a,0xb3,0x67,0x1d }, 
+    { 0x51,0xbd,0x6e,0x10 }, { 0x5a,0xb3,0x67,0x1d },
     { 0x6b,0x99,0x58,0x3e }, { 0x60,0x97,0x51,0x33 },
-    { 0x7d,0x85,0x4a,0x24 }, { 0x76,0x8b,0x43,0x29 }, 
+    { 0x7d,0x85,0x4a,0x24 }, { 0x76,0x8b,0x43,0x29 },
     { 0x1f,0xd1,0x34,0x62 }, { 0x14,0xdf,0x3d,0x6f },
-    { 0x09,0xcd,0x26,0x78 }, { 0x02,0xc3,0x2f,0x75 }, 
+    { 0x09,0xcd,0x26,0x78 }, { 0x02,0xc3,0x2f,0x75 },
     { 0x33,0xe9,0x10,0x56 }, { 0x38,0xe7,0x19,0x5b },
-    { 0x25,0xf5,0x02,0x4c }, { 0x2e,0xfb,0x0b,0x41 }, 
+    { 0x25,0xf5,0x02,0x4c }, { 0x2e,0xfb,0x0b,0x41 },
     { 0x8c,0x9a,0xd7,0x61 }, { 0x87,0x94,0xde,0x6c },
-    { 0x9a,0x86,0xc5,0x7b }, { 0x91,0x88,0xcc,0x76 }, 
+    { 0x9a,0x86,0xc5,0x7b }, { 0x91,0x88,0xcc,0x76 },
     { 0xa0,0xa2,0xf3,0x55 }, { 0xab,0xac,0xfa,0x58 },
-    { 0xb6,0xbe,0xe1,0x4f }, { 0xbd,0xb0,0xe8,0x42 }, 
+    { 0xb6,0xbe,0xe1,0x4f }, { 0xbd,0xb0,0xe8,0x42 },
     { 0xd4,0xea,0x9f,0x09 }, { 0xdf,0xe4,0x96,0x04 },
-    { 0xc2,0xf6,0x8d,0x13 }, { 0xc9,0xf8,0x84,0x1e }, 
+    { 0xc2,0xf6,0x8d,0x13 }, { 0xc9,0xf8,0x84,0x1e },
     { 0xf8,0xd2,0xbb,0x3d }, { 0xf3,0xdc,0xb2,0x30 },
-    { 0xee,0xce,0xa9,0x27 }, { 0xe5,0xc0,0xa0,0x2a }, 
+    { 0xee,0xce,0xa9,0x27 }, { 0xe5,0xc0,0xa0,0x2a },
     { 0x3c,0x7a,0x47,0xb1 }, { 0x37,0x74,0x4e,0xbc },
-    { 0x2a,0x66,0x55,0xab }, { 0x21,0x68,0x5c,0xa6 }, 
+    { 0x2a,0x66,0x55,0xab }, { 0x21,0x68,0x5c,0xa6 },
     { 0x10,0x42,0x63,0x85 }, { 0x1b,0x4c,0x6a,0x88 },
-    { 0x06,0x5e,0x71,0x9f }, { 0x0d,0x50,0x78,0x92 }, 
+    { 0x06,0x5e,0x71,0x9f }, { 0x0d,0x50,0x78,0x92 },
     { 0x64,0x0a,0x0f,0xd9 }, { 0x6f,0x04,0x06,0xd4 },
-    { 0x72,0x16,0x1d,0xc3 }, { 0x79,0x18,0x14,0xce }, 
+    { 0x72,0x16,0x1d,0xc3 }, { 0x79,0x18,0x14,0xce },
     { 0x48,0x32,0x2b,0xed }, { 0x43,0x3c,0x22,0xe0 },
-    { 0x5e,0x2e,0x39,0xf7 }, { 0x55,0x20,0x30,0xfa }, 
+    { 0x5e,0x2e,0x39,0xf7 }, { 0x55,0x20,0x30,0xfa },
     { 0x01,0xec,0x9a,0xb7 }, { 0x0a,0xe2,0x93,0xba },
-    { 0x17,0xf0,0x88,0xad }, { 0x1c,0xfe,0x81,0xa0 }, 
+    { 0x17,0xf0,0x88,0xad }, { 0x1c,0xfe,0x81,0xa0 },
     { 0x2d,0xd4,0xbe,0x83 }, { 0x26,0xda,0xb7,0x8e },
-    { 0x3b,0xc8,0xac,0x99 }, { 0x30,0xc6,0xa5,0x94 }, 
+    { 0x3b,0xc8,0xac,0x99 }, { 0x30,0xc6,0xa5,0x94 },
     { 0x59,0x9c,0xd2,0xdf }, { 0x52,0x92,0xdb,0xd2 },
-    { 0x4f,0x80,0xc0,0xc5 }, { 0x44,0x8e,0xc9,0xc8 }, 
+    { 0x4f,0x80,0xc0,0xc5 }, { 0x44,0x8e,0xc9,0xc8 },
     { 0x75,0xa4,0xf6,0xeb }, { 0x7e,0xaa,0xff,0xe6 },
-    { 0x63,0xb8,0xe4,0xf1 }, { 0x68,0xb6,0xed,0xfc }, 
+    { 0x63,0xb8,0xe4,0xf1 }, { 0x68,0xb6,0xed,0xfc },
     { 0xb1,0x0c,0x0a,0x67 }, { 0xba,0x02,0x03,0x6a },
-    { 0xa7,0x10,0x18,0x7d }, { 0xac,0x1e,0x11,0x70 }, 
+    { 0xa7,0x10,0x18,0x7d }, { 0xac,0x1e,0x11,0x70 },
     { 0x9d,0x34,0x2e,0x53 }, { 0x96,0x3a,0x27,0x5e },
-    { 0x8b,0x28,0x3c,0x49 }, { 0x80,0x26,0x35,0x44 }, 
+    { 0x8b,0x28,0x3c,0x49 }, { 0x80,0x26,0x35,0x44 },
     { 0xe9,0x7c,0x42,0x0f }, { 0xe2,0x72,0x4b,0x02 },
-    { 0xff,0x60,0x50,0x15 }, { 0xf4,0x6e,0x59,0x18 }, 
+    { 0xff,0x60,0x50,0x15 }, { 0xf4,0x6e,0x59,0x18 },
     { 0xc5,0x44,0x66,0x3b }, { 0xce,0x4a,0x6f,0x36 },
-    { 0xd3,0x58,0x74,0x21 }, { 0xd8,0x56,0x7d,0x2c }, 
+    { 0xd3,0x58,0x74,0x21 }, { 0xd8,0x56,0x7d,0x2c },
     { 0x7a,0x37,0xa1,0x0c }, { 0x71,0x39,0xa8,0x01 },
-    { 0x6c,0x2b,0xb3,0x16 }, { 0x67,0x25,0xba,0x1b }, 
+    { 0x6c,0x2b,0xb3,0x16 }, { 0x67,0x25,0xba,0x1b },
     { 0x56,0x0f,0x85,0x38 }, { 0x5d,0x01,0x8c,0x35 },
-    { 0x40,0x13,0x97,0x22 }, { 0x4b,0x1d,0x9e,0x2f }, 
+    { 0x40,0x13,0x97,0x22 }, { 0x4b,0x1d,0x9e,0x2f },
     { 0x22,0x47,0xe9,0x64 }, { 0x29,0x49,0xe0,0x69 },
-    { 0x34,0x5b,0xfb,0x7e }, { 0x3f,0x55,0xf2,0x73 }, 
+    { 0x34,0x5b,0xfb,0x7e }, { 0x3f,0x55,0xf2,0x73 },
     { 0x0e,0x7f,0xcd,0x50 }, { 0x05,0x71,0xc4,0x5d },
-    { 0x18,0x63,0xdf,0x4a }, { 0x13,0x6d,0xd6,0x47 }, 
+    { 0x18,0x63,0xdf,0x4a }, { 0x13,0x6d,0xd6,0x47 },
     { 0xca,0xd7,0x31,0xdc }, { 0xc1,0xd9,0x38,0xd1 },
-    { 0xdc,0xcb,0x23,0xc6 }, { 0xd7,0xc5,0x2a,0xcb }, 
+    { 0xdc,0xcb,0x23,0xc6 }, { 0xd7,0xc5,0x2a,0xcb },
     { 0xe6,0xef,0x15,0xe8 }, { 0xed,0xe1,0x1c,0xe5 },
-    { 0xf0,0xf3,0x07,0xf2 }, { 0xfb,0xfd,0x0e,0xff }, 
+    { 0xf0,0xf3,0x07,0xf2 }, { 0xfb,0xfd,0x0e,0xff },
     { 0x92,0xa7,0x79,0xb4 }, { 0x99,0xa9,0x70,0xb9 },
-    { 0x84,0xbb,0x6b,0xae }, { 0x8f,0xb5,0x62,0xa3 }, 
+    { 0x84,0xbb,0x6b,0xae }, { 0x8f,0xb5,0x62,0xa3 },
     { 0xbe,0x9f,0x5d,0x80 }, { 0xb5,0x91,0x54,0x8d },
     { 0xa8,0x83,0x4f,0x9a }, { 0xa3,0x8d,0x46,0x97 }
   };
 
-static const unsigned char U3[256][4] = 
+static const unsigned char U3[256][4] =
   {
     { 0x00,0x00,0x00,0x00 }, { 0x0d,0x0b,0x0e,0x09 },
-    { 0x1a,0x16,0x1c,0x12 }, { 0x17,0x1d,0x12,0x1b }, 
+    { 0x1a,0x16,0x1c,0x12 }, { 0x17,0x1d,0x12,0x1b },
     { 0x34,0x2c,0x38,0x24 }, { 0x39,0x27,0x36,0x2d },
-    { 0x2e,0x3a,0x24,0x36 }, { 0x23,0x31,0x2a,0x3f }, 
+    { 0x2e,0x3a,0x24,0x36 }, { 0x23,0x31,0x2a,0x3f },
     { 0x68,0x58,0x70,0x48 }, { 0x65,0x53,0x7e,0x41 },
-    { 0x72,0x4e,0x6c,0x5a }, { 0x7f,0x45,0x62,0x53 }, 
+    { 0x72,0x4e,0x6c,0x5a }, { 0x7f,0x45,0x62,0x53 },
     { 0x5c,0x74,0x48,0x6c }, { 0x51,0x7f,0x46,0x65 },
-    { 0x46,0x62,0x54,0x7e }, { 0x4b,0x69,0x5a,0x77 }, 
+    { 0x46,0x62,0x54,0x7e }, { 0x4b,0x69,0x5a,0x77 },
     { 0xd0,0xb0,0xe0,0x90 }, { 0xdd,0xbb,0xee,0x99 },
-    { 0xca,0xa6,0xfc,0x82 }, { 0xc7,0xad,0xf2,0x8b }, 
+    { 0xca,0xa6,0xfc,0x82 }, { 0xc7,0xad,0xf2,0x8b },
     { 0xe4,0x9c,0xd8,0xb4 }, { 0xe9,0x97,0xd6,0xbd },
-    { 0xfe,0x8a,0xc4,0xa6 }, { 0xf3,0x81,0xca,0xaf }, 
+    { 0xfe,0x8a,0xc4,0xa6 }, { 0xf3,0x81,0xca,0xaf },
     { 0xb8,0xe8,0x90,0xd8 }, { 0xb5,0xe3,0x9e,0xd1 },
-    { 0xa2,0xfe,0x8c,0xca }, { 0xaf,0xf5,0x82,0xc3 }, 
+    { 0xa2,0xfe,0x8c,0xca }, { 0xaf,0xf5,0x82,0xc3 },
     { 0x8c,0xc4,0xa8,0xfc }, { 0x81,0xcf,0xa6,0xf5 },
-    { 0x96,0xd2,0xb4,0xee }, { 0x9b,0xd9,0xba,0xe7 }, 
+    { 0x96,0xd2,0xb4,0xee }, { 0x9b,0xd9,0xba,0xe7 },
     { 0xbb,0x7b,0xdb,0x3b }, { 0xb6,0x70,0xd5,0x32 },
-    { 0xa1,0x6d,0xc7,0x29 }, { 0xac,0x66,0xc9,0x20 }, 
+    { 0xa1,0x6d,0xc7,0x29 }, { 0xac,0x66,0xc9,0x20 },
     { 0x8f,0x57,0xe3,0x1f }, { 0x82,0x5c,0xed,0x16 },
-    { 0x95,0x41,0xff,0x0d }, { 0x98,0x4a,0xf1,0x04 }, 
+    { 0x95,0x41,0xff,0x0d }, { 0x98,0x4a,0xf1,0x04 },
     { 0xd3,0x23,0xab,0x73 }, { 0xde,0x28,0xa5,0x7a },
-    { 0xc9,0x35,0xb7,0x61 }, { 0xc4,0x3e,0xb9,0x68 }, 
+    { 0xc9,0x35,0xb7,0x61 }, { 0xc4,0x3e,0xb9,0x68 },
     { 0xe7,0x0f,0x93,0x57 }, { 0xea,0x04,0x9d,0x5e },
-    { 0xfd,0x19,0x8f,0x45 }, { 0xf0,0x12,0x81,0x4c }, 
+    { 0xfd,0x19,0x8f,0x45 }, { 0xf0,0x12,0x81,0x4c },
     { 0x6b,0xcb,0x3b,0xab }, { 0x66,0xc0,0x35,0xa2 },
-    { 0x71,0xdd,0x27,0xb9 }, { 0x7c,0xd6,0x29,0xb0 }, 
+    { 0x71,0xdd,0x27,0xb9 }, { 0x7c,0xd6,0x29,0xb0 },
     { 0x5f,0xe7,0x03,0x8f }, { 0x52,0xec,0x0d,0x86 },
-    { 0x45,0xf1,0x1f,0x9d }, { 0x48,0xfa,0x11,0x94 }, 
+    { 0x45,0xf1,0x1f,0x9d }, { 0x48,0xfa,0x11,0x94 },
     { 0x03,0x93,0x4b,0xe3 }, { 0x0e,0x98,0x45,0xea },
-    { 0x19,0x85,0x57,0xf1 }, { 0x14,0x8e,0x59,0xf8 }, 
-    { 0x37,0xbf,0x73,0xc7 }, { 0x3a,0xb4,0x7d,0xce }, 
-    { 0x2d,0xa9,0x6f,0xd5 }, { 0x20,0xa2,0x61,0xdc }, 
+    { 0x19,0x85,0x57,0xf1 }, { 0x14,0x8e,0x59,0xf8 },
+    { 0x37,0xbf,0x73,0xc7 }, { 0x3a,0xb4,0x7d,0xce },
+    { 0x2d,0xa9,0x6f,0xd5 }, { 0x20,0xa2,0x61,0xdc },
     { 0x6d,0xf6,0xad,0x76 }, { 0x60,0xfd,0xa3,0x7f },
-    { 0x77,0xe0,0xb1,0x64 }, { 0x7a,0xeb,0xbf,0x6d }, 
+    { 0x77,0xe0,0xb1,0x64 }, { 0x7a,0xeb,0xbf,0x6d },
     { 0x59,0xda,0x95,0x52 }, { 0x54,0xd1,0x9b,0x5b },
-    { 0x43,0xcc,0x89,0x40 }, { 0x4e,0xc7,0x87,0x49 }, 
+    { 0x43,0xcc,0x89,0x40 }, { 0x4e,0xc7,0x87,0x49 },
     { 0x05,0xae,0xdd,0x3e }, { 0x08,0xa5,0xd3,0x37 },
-    { 0x1f,0xb8,0xc1,0x2c }, { 0x12,0xb3,0xcf,0x25 }, 
-    { 0x31,0x82,0xe5,0x1a }, { 0x3c,0x89,0xeb,0x13 }, 
-    { 0x2b,0x94,0xf9,0x08 }, { 0x26,0x9f,0xf7,0x01 }, 
-    { 0xbd,0x46,0x4d,0xe6 }, { 0xb0,0x4d,0x43,0xef }, 
-    { 0xa7,0x50,0x51,0xf4 }, { 0xaa,0x5b,0x5f,0xfd }, 
-    { 0x89,0x6a,0x75,0xc2 }, { 0x84,0x61,0x7b,0xcb }, 
-    { 0x93,0x7c,0x69,0xd0 }, { 0x9e,0x77,0x67,0xd9 }, 
+    { 0x1f,0xb8,0xc1,0x2c }, { 0x12,0xb3,0xcf,0x25 },
+    { 0x31,0x82,0xe5,0x1a }, { 0x3c,0x89,0xeb,0x13 },
+    { 0x2b,0x94,0xf9,0x08 }, { 0x26,0x9f,0xf7,0x01 },
+    { 0xbd,0x46,0x4d,0xe6 }, { 0xb0,0x4d,0x43,0xef },
+    { 0xa7,0x50,0x51,0xf4 }, { 0xaa,0x5b,0x5f,0xfd },
+    { 0x89,0x6a,0x75,0xc2 }, { 0x84,0x61,0x7b,0xcb },
+    { 0x93,0x7c,0x69,0xd0 }, { 0x9e,0x77,0x67,0xd9 },
     { 0xd5,0x1e,0x3d,0xae }, { 0xd8,0x15,0x33,0xa7 },
-    { 0xcf,0x08,0x21,0xbc }, { 0xc2,0x03,0x2f,0xb5 }, 
+    { 0xcf,0x08,0x21,0xbc }, { 0xc2,0x03,0x2f,0xb5 },
     { 0xe1,0x32,0x05,0x8a }, { 0xec,0x39,0x0b,0x83 },
-    { 0xfb,0x24,0x19,0x98 }, { 0xf6,0x2f,0x17,0x91 }, 
-    { 0xd6,0x8d,0x76,0x4d }, { 0xdb,0x86,0x78,0x44 }, 
-    { 0xcc,0x9b,0x6a,0x5f }, { 0xc1,0x90,0x64,0x56 }, 
-    { 0xe2,0xa1,0x4e,0x69 }, { 0xef,0xaa,0x40,0x60 }, 
-    { 0xf8,0xb7,0x52,0x7b }, { 0xf5,0xbc,0x5c,0x72 }, 
-    { 0xbe,0xd5,0x06,0x05 }, { 0xb3,0xde,0x08,0x0c }, 
-    { 0xa4,0xc3,0x1a,0x17 }, { 0xa9,0xc8,0x14,0x1e }, 
+    { 0xfb,0x24,0x19,0x98 }, { 0xf6,0x2f,0x17,0x91 },
+    { 0xd6,0x8d,0x76,0x4d }, { 0xdb,0x86,0x78,0x44 },
+    { 0xcc,0x9b,0x6a,0x5f }, { 0xc1,0x90,0x64,0x56 },
+    { 0xe2,0xa1,0x4e,0x69 }, { 0xef,0xaa,0x40,0x60 },
+    { 0xf8,0xb7,0x52,0x7b }, { 0xf5,0xbc,0x5c,0x72 },
+    { 0xbe,0xd5,0x06,0x05 }, { 0xb3,0xde,0x08,0x0c },
+    { 0xa4,0xc3,0x1a,0x17 }, { 0xa9,0xc8,0x14,0x1e },
     { 0x8a,0xf9,0x3e,0x21 }, { 0x87,0xf2,0x30,0x28 },
-    { 0x90,0xef,0x22,0x33 }, { 0x9d,0xe4,0x2c,0x3a }, 
+    { 0x90,0xef,0x22,0x33 }, { 0x9d,0xe4,0x2c,0x3a },
     { 0x06,0x3d,0x96,0xdd }, { 0x0b,0x36,0x98,0xd4 },
-    { 0x1c,0x2b,0x8a,0xcf }, { 0x11,0x20,0x84,0xc6 }, 
+    { 0x1c,0x2b,0x8a,0xcf }, { 0x11,0x20,0x84,0xc6 },
     { 0x32,0x11,0xae,0xf9 }, { 0x3f,0x1a,0xa0,0xf0 },
-    { 0x28,0x07,0xb2,0xeb }, { 0x25,0x0c,0xbc,0xe2 }, 
+    { 0x28,0x07,0xb2,0xeb }, { 0x25,0x0c,0xbc,0xe2 },
     { 0x6e,0x65,0xe6,0x95 }, { 0x63,0x6e,0xe8,0x9c },
-    { 0x74,0x73,0xfa,0x87 }, { 0x79,0x78,0xf4,0x8e }, 
+    { 0x74,0x73,0xfa,0x87 }, { 0x79,0x78,0xf4,0x8e },
     { 0x5a,0x49,0xde,0xb1 }, { 0x57,0x42,0xd0,0xb8 },
-    { 0x40,0x5f,0xc2,0xa3 }, { 0x4d,0x54,0xcc,0xaa }, 
+    { 0x40,0x5f,0xc2,0xa3 }, { 0x4d,0x54,0xcc,0xaa },
     { 0xda,0xf7,0x41,0xec }, { 0xd7,0xfc,0x4f,0xe5 },
-    { 0xc0,0xe1,0x5d,0xfe }, { 0xcd,0xea,0x53,0xf7 }, 
+    { 0xc0,0xe1,0x5d,0xfe }, { 0xcd,0xea,0x53,0xf7 },
     { 0xee,0xdb,0x79,0xc8 }, { 0xe3,0xd0,0x77,0xc1 },
-    { 0xf4,0xcd,0x65,0xda }, { 0xf9,0xc6,0x6b,0xd3 }, 
+    { 0xf4,0xcd,0x65,0xda }, { 0xf9,0xc6,0x6b,0xd3 },
     { 0xb2,0xaf,0x31,0xa4 }, { 0xbf,0xa4,0x3f,0xad },
-    { 0xa8,0xb9,0x2d,0xb6 }, { 0xa5,0xb2,0x23,0xbf }, 
+    { 0xa8,0xb9,0x2d,0xb6 }, { 0xa5,0xb2,0x23,0xbf },
     { 0x86,0x83,0x09,0x80 }, { 0x8b,0x88,0x07,0x89 },
-    { 0x9c,0x95,0x15,0x92 }, { 0x91,0x9e,0x1b,0x9b }, 
+    { 0x9c,0x95,0x15,0x92 }, { 0x91,0x9e,0x1b,0x9b },
     { 0x0a,0x47,0xa1,0x7c }, { 0x07,0x4c,0xaf,0x75 },
-    { 0x10,0x51,0xbd,0x6e }, { 0x1d,0x5a,0xb3,0x67 }, 
+    { 0x10,0x51,0xbd,0x6e }, { 0x1d,0x5a,0xb3,0x67 },
     { 0x3e,0x6b,0x99,0x58 }, { 0x33,0x60,0x97,0x51 },
-    { 0x24,0x7d,0x85,0x4a }, { 0x29,0x76,0x8b,0x43 }, 
+    { 0x24,0x7d,0x85,0x4a }, { 0x29,0x76,0x8b,0x43 },
     { 0x62,0x1f,0xd1,0x34 }, { 0x6f,0x14,0xdf,0x3d },
-    { 0x78,0x09,0xcd,0x26 }, { 0x75,0x02,0xc3,0x2f }, 
+    { 0x78,0x09,0xcd,0x26 }, { 0x75,0x02,0xc3,0x2f },
     { 0x56,0x33,0xe9,0x10 }, { 0x5b,0x38,0xe7,0x19 },
-    { 0x4c,0x25,0xf5,0x02 }, { 0x41,0x2e,0xfb,0x0b }, 
+    { 0x4c,0x25,0xf5,0x02 }, { 0x41,0x2e,0xfb,0x0b },
     { 0x61,0x8c,0x9a,0xd7 }, { 0x6c,0x87,0x94,0xde },
-    { 0x7b,0x9a,0x86,0xc5 }, { 0x76,0x91,0x88,0xcc }, 
+    { 0x7b,0x9a,0x86,0xc5 }, { 0x76,0x91,0x88,0xcc },
     { 0x55,0xa0,0xa2,0xf3 }, { 0x58,0xab,0xac,0xfa },
-    { 0x4f,0xb6,0xbe,0xe1 }, { 0x42,0xbd,0xb0,0xe8 }, 
+    { 0x4f,0xb6,0xbe,0xe1 }, { 0x42,0xbd,0xb0,0xe8 },
     { 0x09,0xd4,0xea,0x9f }, { 0x04,0xdf,0xe4,0x96 },
-    { 0x13,0xc2,0xf6,0x8d }, { 0x1e,0xc9,0xf8,0x84 }, 
+    { 0x13,0xc2,0xf6,0x8d }, { 0x1e,0xc9,0xf8,0x84 },
     { 0x3d,0xf8,0xd2,0xbb }, { 0x30,0xf3,0xdc,0xb2 },
-    { 0x27,0xee,0xce,0xa9 }, { 0x2a,0xe5,0xc0,0xa0 }, 
+    { 0x27,0xee,0xce,0xa9 }, { 0x2a,0xe5,0xc0,0xa0 },
     { 0xb1,0x3c,0x7a,0x47 }, { 0xbc,0x37,0x74,0x4e },
-    { 0xab,0x2a,0x66,0x55 }, { 0xa6,0x21,0x68,0x5c }, 
+    { 0xab,0x2a,0x66,0x55 }, { 0xa6,0x21,0x68,0x5c },
     { 0x85,0x10,0x42,0x63 }, { 0x88,0x1b,0x4c,0x6a },
-    { 0x9f,0x06,0x5e,0x71 }, { 0x92,0x0d,0x50,0x78 }, 
+    { 0x9f,0x06,0x5e,0x71 }, { 0x92,0x0d,0x50,0x78 },
     { 0xd9,0x64,0x0a,0x0f }, { 0xd4,0x6f,0x04,0x06 },
-    { 0xc3,0x72,0x16,0x1d }, { 0xce,0x79,0x18,0x14 }, 
+    { 0xc3,0x72,0x16,0x1d }, { 0xce,0x79,0x18,0x14 },
     { 0xed,0x48,0x32,0x2b }, { 0xe0,0x43,0x3c,0x22 },
-    { 0xf7,0x5e,0x2e,0x39 }, { 0xfa,0x55,0x20,0x30 }, 
+    { 0xf7,0x5e,0x2e,0x39 }, { 0xfa,0x55,0x20,0x30 },
     { 0xb7,0x01,0xec,0x9a }, { 0xba,0x0a,0xe2,0x93 },
-    { 0xad,0x17,0xf0,0x88 }, { 0xa0,0x1c,0xfe,0x81 }, 
+    { 0xad,0x17,0xf0,0x88 }, { 0xa0,0x1c,0xfe,0x81 },
     { 0x83,0x2d,0xd4,0xbe }, { 0x8e,0x26,0xda,0xb7 },
-    { 0x99,0x3b,0xc8,0xac }, { 0x94,0x30,0xc6,0xa5 }, 
+    { 0x99,0x3b,0xc8,0xac }, { 0x94,0x30,0xc6,0xa5 },
     { 0xdf,0x59,0x9c,0xd2 }, { 0xd2,0x52,0x92,0xdb },
-    { 0xc5,0x4f,0x80,0xc0 }, { 0xc8,0x44,0x8e,0xc9 }, 
+    { 0xc5,0x4f,0x80,0xc0 }, { 0xc8,0x44,0x8e,0xc9 },
     { 0xeb,0x75,0xa4,0xf6 }, { 0xe6,0x7e,0xaa,0xff },
-    { 0xf1,0x63,0xb8,0xe4 }, { 0xfc,0x68,0xb6,0xed }, 
+    { 0xf1,0x63,0xb8,0xe4 }, { 0xfc,0x68,0xb6,0xed },
     { 0x67,0xb1,0x0c,0x0a }, { 0x6a,0xba,0x02,0x03 },
-    { 0x7d,0xa7,0x10,0x18 }, { 0x70,0xac,0x1e,0x11 }, 
+    { 0x7d,0xa7,0x10,0x18 }, { 0x70,0xac,0x1e,0x11 },
     { 0x53,0x9d,0x34,0x2e }, { 0x5e,0x96,0x3a,0x27 },
-    { 0x49,0x8b,0x28,0x3c }, { 0x44,0x80,0x26,0x35 }, 
+    { 0x49,0x8b,0x28,0x3c }, { 0x44,0x80,0x26,0x35 },
     { 0x0f,0xe9,0x7c,0x42 }, { 0x02,0xe2,0x72,0x4b },
-    { 0x15,0xff,0x60,0x50 }, { 0x18,0xf4,0x6e,0x59 }, 
+    { 0x15,0xff,0x60,0x50 }, { 0x18,0xf4,0x6e,0x59 },
     { 0x3b,0xc5,0x44,0x66 }, { 0x36,0xce,0x4a,0x6f },
-    { 0x21,0xd3,0x58,0x74 }, { 0x2c,0xd8,0x56,0x7d }, 
+    { 0x21,0xd3,0x58,0x74 }, { 0x2c,0xd8,0x56,0x7d },
     { 0x0c,0x7a,0x37,0xa1 }, { 0x01,0x71,0x39,0xa8 },
-    { 0x16,0x6c,0x2b,0xb3 }, { 0x1b,0x67,0x25,0xba }, 
+    { 0x16,0x6c,0x2b,0xb3 }, { 0x1b,0x67,0x25,0xba },
     { 0x38,0x56,0x0f,0x85 }, { 0x35,0x5d,0x01,0x8c },
-    { 0x22,0x40,0x13,0x97 }, { 0x2f,0x4b,0x1d,0x9e }, 
+    { 0x22,0x40,0x13,0x97 }, { 0x2f,0x4b,0x1d,0x9e },
     { 0x64,0x22,0x47,0xe9 }, { 0x69,0x29,0x49,0xe0 },
-    { 0x7e,0x34,0x5b,0xfb }, { 0x73,0x3f,0x55,0xf2 }, 
+    { 0x7e,0x34,0x5b,0xfb }, { 0x73,0x3f,0x55,0xf2 },
     { 0x50,0x0e,0x7f,0xcd }, { 0x5d,0x05,0x71,0xc4 },
-    { 0x4a,0x18,0x63,0xdf }, { 0x47,0x13,0x6d,0xd6 }, 
+    { 0x4a,0x18,0x63,0xdf }, { 0x47,0x13,0x6d,0xd6 },
     { 0xdc,0xca,0xd7,0x31 }, { 0xd1,0xc1,0xd9,0x38 },
-    { 0xc6,0xdc,0xcb,0x23 }, { 0xcb,0xd7,0xc5,0x2a }, 
+    { 0xc6,0xdc,0xcb,0x23 }, { 0xcb,0xd7,0xc5,0x2a },
     { 0xe8,0xe6,0xef,0x15 }, { 0xe5,0xed,0xe1,0x1c },
-    { 0xf2,0xf0,0xf3,0x07 }, { 0xff,0xfb,0xfd,0x0e }, 
+    { 0xf2,0xf0,0xf3,0x07 }, { 0xff,0xfb,0xfd,0x0e },
     { 0xb4,0x92,0xa7,0x79 }, { 0xb9,0x99,0xa9,0x70 },
-    { 0xae,0x84,0xbb,0x6b }, { 0xa3,0x8f,0xb5,0x62 }, 
+    { 0xae,0x84,0xbb,0x6b }, { 0xa3,0x8f,0xb5,0x62 },
     { 0x80,0xbe,0x9f,0x5d }, { 0x8d,0xb5,0x91,0x54 },
     { 0x9a,0xa8,0x83,0x4f }, { 0x97,0xa3,0x8d,0x46 }
   };
@@ -1549,139 +1549,138 @@ static const unsigned char U3[256][4] =
 static const unsigned char U4[256][4] =
   {
     { 0x00,0x00,0x00,0x00 }, { 0x09,0x0d,0x0b,0x0e },
-    { 0x12,0x1a,0x16,0x1c }, { 0x1b,0x17,0x1d,0x12 }, 
+    { 0x12,0x1a,0x16,0x1c }, { 0x1b,0x17,0x1d,0x12 },
     { 0x24,0x34,0x2c,0x38 }, { 0x2d,0x39,0x27,0x36 },
-    { 0x36,0x2e,0x3a,0x24 }, { 0x3f,0x23,0x31,0x2a }, 
+    { 0x36,0x2e,0x3a,0x24 }, { 0x3f,0x23,0x31,0x2a },
     { 0x48,0x68,0x58,0x70 }, { 0x41,0x65,0x53,0x7e },
-    { 0x5a,0x72,0x4e,0x6c }, { 0x53,0x7f,0x45,0x62 }, 
+    { 0x5a,0x72,0x4e,0x6c }, { 0x53,0x7f,0x45,0x62 },
     { 0x6c,0x5c,0x74,0x48 }, { 0x65,0x51,0x7f,0x46 },
-    { 0x7e,0x46,0x62,0x54 }, { 0x77,0x4b,0x69,0x5a }, 
+    { 0x7e,0x46,0x62,0x54 }, { 0x77,0x4b,0x69,0x5a },
     { 0x90,0xd0,0xb0,0xe0 }, { 0x99,0xdd,0xbb,0xee },
-    { 0x82,0xca,0xa6,0xfc }, { 0x8b,0xc7,0xad,0xf2 }, 
+    { 0x82,0xca,0xa6,0xfc }, { 0x8b,0xc7,0xad,0xf2 },
     { 0xb4,0xe4,0x9c,0xd8 }, { 0xbd,0xe9,0x97,0xd6 },
-    { 0xa6,0xfe,0x8a,0xc4 }, { 0xaf,0xf3,0x81,0xca }, 
+    { 0xa6,0xfe,0x8a,0xc4 }, { 0xaf,0xf3,0x81,0xca },
     { 0xd8,0xb8,0xe8,0x90 }, { 0xd1,0xb5,0xe3,0x9e },
-    { 0xca,0xa2,0xfe,0x8c }, { 0xc3,0xaf,0xf5,0x82 }, 
+    { 0xca,0xa2,0xfe,0x8c }, { 0xc3,0xaf,0xf5,0x82 },
     { 0xfc,0x8c,0xc4,0xa8 }, { 0xf5,0x81,0xcf,0xa6 },
-    { 0xee,0x96,0xd2,0xb4 }, { 0xe7,0x9b,0xd9,0xba }, 
+    { 0xee,0x96,0xd2,0xb4 }, { 0xe7,0x9b,0xd9,0xba },
     { 0x3b,0xbb,0x7b,0xdb }, { 0x32,0xb6,0x70,0xd5 },
-    { 0x29,0xa1,0x6d,0xc7 }, { 0x20,0xac,0x66,0xc9 }, 
+    { 0x29,0xa1,0x6d,0xc7 }, { 0x20,0xac,0x66,0xc9 },
     { 0x1f,0x8f,0x57,0xe3 }, { 0x16,0x82,0x5c,0xed },
-    { 0x0d,0x95,0x41,0xff }, { 0x04,0x98,0x4a,0xf1 }, 
+    { 0x0d,0x95,0x41,0xff }, { 0x04,0x98,0x4a,0xf1 },
     { 0x73,0xd3,0x23,0xab }, { 0x7a,0xde,0x28,0xa5 },
-    { 0x61,0xc9,0x35,0xb7 }, { 0x68,0xc4,0x3e,0xb9 }, 
+    { 0x61,0xc9,0x35,0xb7 }, { 0x68,0xc4,0x3e,0xb9 },
     { 0x57,0xe7,0x0f,0x93 }, { 0x5e,0xea,0x04,0x9d },
-    { 0x45,0xfd,0x19,0x8f }, { 0x4c,0xf0,0x12,0x81 }, 
+    { 0x45,0xfd,0x19,0x8f }, { 0x4c,0xf0,0x12,0x81 },
     { 0xab,0x6b,0xcb,0x3b }, { 0xa2,0x66,0xc0,0x35 },
-    { 0xb9,0x71,0xdd,0x27 }, { 0xb0,0x7c,0xd6,0x29 }, 
+    { 0xb9,0x71,0xdd,0x27 }, { 0xb0,0x7c,0xd6,0x29 },
     { 0x8f,0x5f,0xe7,0x03 }, { 0x86,0x52,0xec,0x0d },
-    { 0x9d,0x45,0xf1,0x1f }, { 0x94,0x48,0xfa,0x11 }, 
+    { 0x9d,0x45,0xf1,0x1f }, { 0x94,0x48,0xfa,0x11 },
     { 0xe3,0x03,0x93,0x4b }, { 0xea,0x0e,0x98,0x45 },
-    { 0xf1,0x19,0x85,0x57 }, { 0xf8,0x14,0x8e,0x59 }, 
+    { 0xf1,0x19,0x85,0x57 }, { 0xf8,0x14,0x8e,0x59 },
     { 0xc7,0x37,0xbf,0x73 }, { 0xce,0x3a,0xb4,0x7d },
-    { 0xd5,0x2d,0xa9,0x6f }, { 0xdc,0x20,0xa2,0x61 }, 
+    { 0xd5,0x2d,0xa9,0x6f }, { 0xdc,0x20,0xa2,0x61 },
     { 0x76,0x6d,0xf6,0xad }, { 0x7f,0x60,0xfd,0xa3 },
-    { 0x64,0x77,0xe0,0xb1 }, { 0x6d,0x7a,0xeb,0xbf }, 
+    { 0x64,0x77,0xe0,0xb1 }, { 0x6d,0x7a,0xeb,0xbf },
     { 0x52,0x59,0xda,0x95 }, { 0x5b,0x54,0xd1,0x9b },
-    { 0x40,0x43,0xcc,0x89 }, { 0x49,0x4e,0xc7,0x87 }, 
+    { 0x40,0x43,0xcc,0x89 }, { 0x49,0x4e,0xc7,0x87 },
     { 0x3e,0x05,0xae,0xdd }, { 0x37,0x08,0xa5,0xd3 },
-    { 0x2c,0x1f,0xb8,0xc1 }, { 0x25,0x12,0xb3,0xcf }, 
+    { 0x2c,0x1f,0xb8,0xc1 }, { 0x25,0x12,0xb3,0xcf },
     { 0x1a,0x31,0x82,0xe5 }, { 0x13,0x3c,0x89,0xeb },
-    { 0x08,0x2b,0x94,0xf9 }, { 0x01,0x26,0x9f,0xf7 }, 
+    { 0x08,0x2b,0x94,0xf9 }, { 0x01,0x26,0x9f,0xf7 },
     { 0xe6,0xbd,0x46,0x4d }, { 0xef,0xb0,0x4d,0x43 },
-    { 0xf4,0xa7,0x50,0x51 }, { 0xfd,0xaa,0x5b,0x5f }, 
+    { 0xf4,0xa7,0x50,0x51 }, { 0xfd,0xaa,0x5b,0x5f },
     { 0xc2,0x89,0x6a,0x75 }, { 0xcb,0x84,0x61,0x7b },
-    { 0xd0,0x93,0x7c,0x69 }, { 0xd9,0x9e,0x77,0x67 }, 
+    { 0xd0,0x93,0x7c,0x69 }, { 0xd9,0x9e,0x77,0x67 },
     { 0xae,0xd5,0x1e,0x3d }, { 0xa7,0xd8,0x15,0x33 },
-    { 0xbc,0xcf,0x08,0x21 }, { 0xb5,0xc2,0x03,0x2f }, 
+    { 0xbc,0xcf,0x08,0x21 }, { 0xb5,0xc2,0x03,0x2f },
     { 0x8a,0xe1,0x32,0x05 }, { 0x83,0xec,0x39,0x0b },
-    { 0x98,0xfb,0x24,0x19 }, { 0x91,0xf6,0x2f,0x17 }, 
+    { 0x98,0xfb,0x24,0x19 }, { 0x91,0xf6,0x2f,0x17 },
     { 0x4d,0xd6,0x8d,0x76 }, { 0x44,0xdb,0x86,0x78 },
-    { 0x5f,0xcc,0x9b,0x6a }, { 0x56,0xc1,0x90,0x64 }, 
+    { 0x5f,0xcc,0x9b,0x6a }, { 0x56,0xc1,0x90,0x64 },
     { 0x69,0xe2,0xa1,0x4e }, { 0x60,0xef,0xaa,0x40 },
-    { 0x7b,0xf8,0xb7,0x52 }, { 0x72,0xf5,0xbc,0x5c }, 
+    { 0x7b,0xf8,0xb7,0x52 }, { 0x72,0xf5,0xbc,0x5c },
     { 0x05,0xbe,0xd5,0x06 }, { 0x0c,0xb3,0xde,0x08 },
-    { 0x17,0xa4,0xc3,0x1a }, { 0x1e,0xa9,0xc8,0x14 }, 
+    { 0x17,0xa4,0xc3,0x1a }, { 0x1e,0xa9,0xc8,0x14 },
     { 0x21,0x8a,0xf9,0x3e }, { 0x28,0x87,0xf2,0x30 },
-    { 0x33,0x90,0xef,0x22 }, { 0x3a,0x9d,0xe4,0x2c }, 
+    { 0x33,0x90,0xef,0x22 }, { 0x3a,0x9d,0xe4,0x2c },
     { 0xdd,0x06,0x3d,0x96 }, { 0xd4,0x0b,0x36,0x98 },
-    { 0xcf,0x1c,0x2b,0x8a }, { 0xc6,0x11,0x20,0x84 }, 
+    { 0xcf,0x1c,0x2b,0x8a }, { 0xc6,0x11,0x20,0x84 },
     { 0xf9,0x32,0x11,0xae }, { 0xf0,0x3f,0x1a,0xa0 },
-    { 0xeb,0x28,0x07,0xb2 }, { 0xe2,0x25,0x0c,0xbc }, 
+    { 0xeb,0x28,0x07,0xb2 }, { 0xe2,0x25,0x0c,0xbc },
     { 0x95,0x6e,0x65,0xe6 }, { 0x9c,0x63,0x6e,0xe8 },
-    { 0x87,0x74,0x73,0xfa }, { 0x8e,0x79,0x78,0xf4 }, 
+    { 0x87,0x74,0x73,0xfa }, { 0x8e,0x79,0x78,0xf4 },
     { 0xb1,0x5a,0x49,0xde }, { 0xb8,0x57,0x42,0xd0 },
-    { 0xa3,0x40,0x5f,0xc2 }, { 0xaa,0x4d,0x54,0xcc }, 
+    { 0xa3,0x40,0x5f,0xc2 }, { 0xaa,0x4d,0x54,0xcc },
     { 0xec,0xda,0xf7,0x41 }, { 0xe5,0xd7,0xfc,0x4f },
-    { 0xfe,0xc0,0xe1,0x5d }, { 0xf7,0xcd,0xea,0x53 }, 
+    { 0xfe,0xc0,0xe1,0x5d }, { 0xf7,0xcd,0xea,0x53 },
     { 0xc8,0xee,0xdb,0x79 }, { 0xc1,0xe3,0xd0,0x77 },
-    { 0xda,0xf4,0xcd,0x65 }, { 0xd3,0xf9,0xc6,0x6b }, 
+    { 0xda,0xf4,0xcd,0x65 }, { 0xd3,0xf9,0xc6,0x6b },
     { 0xa4,0xb2,0xaf,0x31 }, { 0xad,0xbf,0xa4,0x3f },
-    { 0xb6,0xa8,0xb9,0x2d }, { 0xbf,0xa5,0xb2,0x23 }, 
+    { 0xb6,0xa8,0xb9,0x2d }, { 0xbf,0xa5,0xb2,0x23 },
     { 0x80,0x86,0x83,0x09 }, { 0x89,0x8b,0x88,0x07 },
-    { 0x92,0x9c,0x95,0x15 }, { 0x9b,0x91,0x9e,0x1b }, 
+    { 0x92,0x9c,0x95,0x15 }, { 0x9b,0x91,0x9e,0x1b },
     { 0x7c,0x0a,0x47,0xa1 }, { 0x75,0x07,0x4c,0xaf },
-    { 0x6e,0x10,0x51,0xbd }, { 0x67,0x1d,0x5a,0xb3 }, 
+    { 0x6e,0x10,0x51,0xbd }, { 0x67,0x1d,0x5a,0xb3 },
     { 0x58,0x3e,0x6b,0x99 }, { 0x51,0x33,0x60,0x97 },
-    { 0x4a,0x24,0x7d,0x85 }, { 0x43,0x29,0x76,0x8b }, 
+    { 0x4a,0x24,0x7d,0x85 }, { 0x43,0x29,0x76,0x8b },
     { 0x34,0x62,0x1f,0xd1 }, { 0x3d,0x6f,0x14,0xdf },
-    { 0x26,0x78,0x09,0xcd }, { 0x2f,0x75,0x02,0xc3 }, 
+    { 0x26,0x78,0x09,0xcd }, { 0x2f,0x75,0x02,0xc3 },
     { 0x10,0x56,0x33,0xe9 }, { 0x19,0x5b,0x38,0xe7 },
-    { 0x02,0x4c,0x25,0xf5 }, { 0x0b,0x41,0x2e,0xfb }, 
+    { 0x02,0x4c,0x25,0xf5 }, { 0x0b,0x41,0x2e,0xfb },
     { 0xd7,0x61,0x8c,0x9a }, { 0xde,0x6c,0x87,0x94 },
-    { 0xc5,0x7b,0x9a,0x86 }, { 0xcc,0x76,0x91,0x88 }, 
+    { 0xc5,0x7b,0x9a,0x86 }, { 0xcc,0x76,0x91,0x88 },
     { 0xf3,0x55,0xa0,0xa2 }, { 0xfa,0x58,0xab,0xac },
-    { 0xe1,0x4f,0xb6,0xbe }, { 0xe8,0x42,0xbd,0xb0 }, 
+    { 0xe1,0x4f,0xb6,0xbe }, { 0xe8,0x42,0xbd,0xb0 },
     { 0x9f,0x09,0xd4,0xea }, { 0x96,0x04,0xdf,0xe4 },
-    { 0x8d,0x13,0xc2,0xf6 }, { 0x84,0x1e,0xc9,0xf8 }, 
+    { 0x8d,0x13,0xc2,0xf6 }, { 0x84,0x1e,0xc9,0xf8 },
     { 0xbb,0x3d,0xf8,0xd2 }, { 0xb2,0x30,0xf3,0xdc },
-    { 0xa9,0x27,0xee,0xce }, { 0xa0,0x2a,0xe5,0xc0 }, 
+    { 0xa9,0x27,0xee,0xce }, { 0xa0,0x2a,0xe5,0xc0 },
     { 0x47,0xb1,0x3c,0x7a }, { 0x4e,0xbc,0x37,0x74 },
-    { 0x55,0xab,0x2a,0x66 }, { 0x5c,0xa6,0x21,0x68 }, 
+    { 0x55,0xab,0x2a,0x66 }, { 0x5c,0xa6,0x21,0x68 },
     { 0x63,0x85,0x10,0x42 }, { 0x6a,0x88,0x1b,0x4c },
-    { 0x71,0x9f,0x06,0x5e }, { 0x78,0x92,0x0d,0x50 }, 
+    { 0x71,0x9f,0x06,0x5e }, { 0x78,0x92,0x0d,0x50 },
     { 0x0f,0xd9,0x64,0x0a }, { 0x06,0xd4,0x6f,0x04 },
-    { 0x1d,0xc3,0x72,0x16 }, { 0x14,0xce,0x79,0x18 }, 
+    { 0x1d,0xc3,0x72,0x16 }, { 0x14,0xce,0x79,0x18 },
     { 0x2b,0xed,0x48,0x32 }, { 0x22,0xe0,0x43,0x3c },
-    { 0x39,0xf7,0x5e,0x2e }, { 0x30,0xfa,0x55,0x20 }, 
-    { 0x9a,0xb7,0x01,0xec }, { 0x93,0xba,0x0a,0xe2 }, 
-    { 0x88,0xad,0x17,0xf0 }, { 0x81,0xa0,0x1c,0xfe }, 
+    { 0x39,0xf7,0x5e,0x2e }, { 0x30,0xfa,0x55,0x20 },
+    { 0x9a,0xb7,0x01,0xec }, { 0x93,0xba,0x0a,0xe2 },
+    { 0x88,0xad,0x17,0xf0 }, { 0x81,0xa0,0x1c,0xfe },
     { 0xbe,0x83,0x2d,0xd4 }, { 0xb7,0x8e,0x26,0xda },
-    { 0xac,0x99,0x3b,0xc8 }, { 0xa5,0x94,0x30,0xc6 }, 
-    { 0xd2,0xdf,0x59,0x9c }, { 0xdb,0xd2,0x52,0x92 }, 
-    { 0xc0,0xc5,0x4f,0x80 }, { 0xc9,0xc8,0x44,0x8e }, 
+    { 0xac,0x99,0x3b,0xc8 }, { 0xa5,0x94,0x30,0xc6 },
+    { 0xd2,0xdf,0x59,0x9c }, { 0xdb,0xd2,0x52,0x92 },
+    { 0xc0,0xc5,0x4f,0x80 }, { 0xc9,0xc8,0x44,0x8e },
     { 0xf6,0xeb,0x75,0xa4 }, { 0xff,0xe6,0x7e,0xaa },
-    { 0xe4,0xf1,0x63,0xb8 }, { 0xed,0xfc,0x68,0xb6 }, 
+    { 0xe4,0xf1,0x63,0xb8 }, { 0xed,0xfc,0x68,0xb6 },
     { 0x0a,0x67,0xb1,0x0c }, { 0x03,0x6a,0xba,0x02 },
-    { 0x18,0x7d,0xa7,0x10 }, { 0x11,0x70,0xac,0x1e }, 
+    { 0x18,0x7d,0xa7,0x10 }, { 0x11,0x70,0xac,0x1e },
     { 0x2e,0x53,0x9d,0x34 }, { 0x27,0x5e,0x96,0x3a },
-    { 0x3c,0x49,0x8b,0x28 }, { 0x35,0x44,0x80,0x26 }, 
-    { 0x42,0x0f,0xe9,0x7c }, { 0x4b,0x02,0xe2,0x72 }, 
-    { 0x50,0x15,0xff,0x60 }, { 0x59,0x18,0xf4,0x6e }, 
+    { 0x3c,0x49,0x8b,0x28 }, { 0x35,0x44,0x80,0x26 },
+    { 0x42,0x0f,0xe9,0x7c }, { 0x4b,0x02,0xe2,0x72 },
+    { 0x50,0x15,0xff,0x60 }, { 0x59,0x18,0xf4,0x6e },
     { 0x66,0x3b,0xc5,0x44 }, { 0x6f,0x36,0xce,0x4a },
-    { 0x74,0x21,0xd3,0x58 }, { 0x7d,0x2c,0xd8,0x56 }, 
+    { 0x74,0x21,0xd3,0x58 }, { 0x7d,0x2c,0xd8,0x56 },
     { 0xa1,0x0c,0x7a,0x37 }, { 0xa8,0x01,0x71,0x39 },
-    { 0xb3,0x16,0x6c,0x2b }, { 0xba,0x1b,0x67,0x25 }, 
+    { 0xb3,0x16,0x6c,0x2b }, { 0xba,0x1b,0x67,0x25 },
     { 0x85,0x38,0x56,0x0f }, { 0x8c,0x35,0x5d,0x01 },
-    { 0x97,0x22,0x40,0x13 }, { 0x9e,0x2f,0x4b,0x1d }, 
-    { 0xe9,0x64,0x22,0x47 }, { 0xe0,0x69,0x29,0x49 }, 
-    { 0xfb,0x7e,0x34,0x5b }, { 0xf2,0x73,0x3f,0x55 }, 
+    { 0x97,0x22,0x40,0x13 }, { 0x9e,0x2f,0x4b,0x1d },
+    { 0xe9,0x64,0x22,0x47 }, { 0xe0,0x69,0x29,0x49 },
+    { 0xfb,0x7e,0x34,0x5b }, { 0xf2,0x73,0x3f,0x55 },
     { 0xcd,0x50,0x0e,0x7f }, { 0xc4,0x5d,0x05,0x71 },
-    { 0xdf,0x4a,0x18,0x63 }, { 0xd6,0x47,0x13,0x6d }, 
+    { 0xdf,0x4a,0x18,0x63 }, { 0xd6,0x47,0x13,0x6d },
     { 0x31,0xdc,0xca,0xd7 }, { 0x38,0xd1,0xc1,0xd9 },
-    { 0x23,0xc6,0xdc,0xcb }, { 0x2a,0xcb,0xd7,0xc5 }, 
+    { 0x23,0xc6,0xdc,0xcb }, { 0x2a,0xcb,0xd7,0xc5 },
     { 0x15,0xe8,0xe6,0xef }, { 0x1c,0xe5,0xed,0xe1 },
-    { 0x07,0xf2,0xf0,0xf3 }, { 0x0e,0xff,0xfb,0xfd }, 
+    { 0x07,0xf2,0xf0,0xf3 }, { 0x0e,0xff,0xfb,0xfd },
     { 0x79,0xb4,0x92,0xa7 }, { 0x70,0xb9,0x99,0xa9 },
-    { 0x6b,0xae,0x84,0xbb }, { 0x62,0xa3,0x8f,0xb5 }, 
+    { 0x6b,0xae,0x84,0xbb }, { 0x62,0xa3,0x8f,0xb5 },
     { 0x5d,0x80,0xbe,0x9f }, { 0x54,0x8d,0xb5,0x91 },
     { 0x4f,0x9a,0xa8,0x83 }, { 0x46,0x97,0xa3,0x8d }
   };
 
-static const u32 rcon[30] = 
-  { 
+static const u32 rcon[30] =
+  {
     0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c,
     0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35,
     0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91
   };
-
index d43b349..08707b6 100644 (file)
@@ -62,7 +62,7 @@
 
 static const char *selftest(void);
 
-typedef struct 
+typedef struct
 {
   int   ROUNDS;             /* Key-length-dependent number of rounds.  */
   int decryption_prepared;  /* The decryption key schedule is available.  */
@@ -79,7 +79,7 @@ typedef struct
   union
   {
     PROPERLY_ALIGNED_TYPE dummy;
-    byte keyschedule[MAXROUNDS+1][4][4];       
+    byte keyschedule[MAXROUNDS+1][4][4];
   } u2;
 } RIJNDAEL_context;
 
@@ -90,7 +90,7 @@ typedef struct
 #include "rijndael-tables.h"
 
 
-/* Perform the key setup.  */  
+/* Perform the key setup.  */
 static gcry_err_code_t
 do_setkey (RIJNDAEL_context *ctx, const byte *key, const unsigned keylen)
 {
@@ -110,12 +110,12 @@ do_setkey (RIJNDAEL_context *ctx, const byte *key, const unsigned keylen)
     PROPERLY_ALIGNED_TYPE dummy;
     byte tk[MAXKC][4];
   } tk;
-#define tk tk.tk  
+#define tk tk.tk
 
   /* The on-the-fly self tests are only run in non-fips mode. In fips
      mode explicit self-tests are required.  Actually the on-the-fly
      self-tests are not fully thread-safe and it might happen that a
-     failed self-test won't get noticed in another thread.  
+     failed self-test won't get noticed in another thread.
 
      FIXME: We might want to have a central registry of succeeded
      self-tests. */
@@ -171,12 +171,12 @@ do_setkey (RIJNDAEL_context *ctx, const byte *key, const unsigned keylen)
 #endif /*USE_PADLOCK*/
     {
 #define W (ctx->keySched)
-      for (i = 0; i < keylen; i++) 
+      for (i = 0; i < keylen; i++)
         {
-          k[i >> 2][i & 3] = key[i]; 
+          k[i >> 2][i & 3] = key[i];
         }
-      
-      for (j = KC-1; j >= 0; j--) 
+
+      for (j = KC-1; j >= 0; j--)
         {
           *((u32*)tk[j]) = *((u32*)k[j]);
         }
@@ -195,7 +195,7 @@ do_setkey (RIJNDAEL_context *ctx, const byte *key, const unsigned keylen)
               t = 0;
             }
         }
-      
+
       while (r < ROUNDS + 1)
         {
           /* While not enough round key material calculated calculate
@@ -205,15 +205,15 @@ do_setkey (RIJNDAEL_context *ctx, const byte *key, const unsigned keylen)
           tk[0][2] ^= S[tk[KC-1][3]];
           tk[0][3] ^= S[tk[KC-1][0]];
           tk[0][0] ^= rcon[rconpointer++];
-          
+
           if (KC != 8)
             {
-              for (j = 1; j < KC; j++) 
+              for (j = 1; j < KC; j++)
                 {
                   *((u32*)tk[j]) ^= *((u32*)tk[j-1]);
                 }
-            } 
-          else 
+            }
+          else
             {
               for (j = 1; j < KC/2; j++)
                 {
@@ -228,7 +228,7 @@ do_setkey (RIJNDAEL_context *ctx, const byte *key, const unsigned keylen)
                   *((u32*)tk[j]) ^= *((u32*)tk[j-1]);
                 }
             }
-          
+
           /* Copy values into round key array.  */
           for (j = 0; (j < KC) && (r < ROUNDS + 1); )
             {
@@ -242,8 +242,8 @@ do_setkey (RIJNDAEL_context *ctx, const byte *key, const unsigned keylen)
                   t = 0;
                 }
             }
-        }              
-#undef W    
+        }
+#undef W
     }
 
   return 0;
@@ -288,29 +288,29 @@ prepare_decryption( RIJNDAEL_context *ctx )
       w = W[r][0];
       *((u32*)w) = *((u32*)U1[w[0]]) ^ *((u32*)U2[w[1]])
         ^ *((u32*)U3[w[2]]) ^ *((u32*)U4[w[3]]);
-       
+
       w = W[r][1];
       *((u32*)w) = *((u32*)U1[w[0]]) ^ *((u32*)U2[w[1]])
         ^ *((u32*)U3[w[2]]) ^ *((u32*)U4[w[3]]);
-        
+
       w = W[r][2];
       *((u32*)w) = *((u32*)U1[w[0]]) ^ *((u32*)U2[w[1]])
         ^ *((u32*)U3[w[2]]) ^ *((u32*)U4[w[3]]);
-        
+
       w = W[r][3];
       *((u32*)w) = *((u32*)U1[w[0]]) ^ *((u32*)U2[w[1]])
         ^ *((u32*)U3[w[2]]) ^ *((u32*)U4[w[3]]);
     }
 #undef W
 #undef w
-}      
+}
 
 
 \f
 /* Encrypt one block.  A and B need to be aligned on a 4 byte
    boundary.  A and B may be the same. */
 static void
-do_encrypt_aligned (const RIJNDAEL_context *ctx, 
+do_encrypt_aligned (const RIJNDAEL_context *ctx,
                     unsigned char *b, const unsigned char *a)
 {
 #define rk (ctx->keySched)
@@ -328,19 +328,19 @@ do_encrypt_aligned (const RIJNDAEL_context *ctx,
   *((u32*)u.temp[3]) = *((u32*)(a+12)) ^ *((u32*)rk[0][3]);
   *((u32*)(b    ))   = (*((u32*)T1[u.temp[0][0]])
                         ^ *((u32*)T2[u.temp[1][1]])
-                        ^ *((u32*)T3[u.temp[2][2]]) 
+                        ^ *((u32*)T3[u.temp[2][2]])
                         ^ *((u32*)T4[u.temp[3][3]]));
   *((u32*)(b + 4))   = (*((u32*)T1[u.temp[1][0]])
                         ^ *((u32*)T2[u.temp[2][1]])
-                        ^ *((u32*)T3[u.temp[3][2]]) 
+                        ^ *((u32*)T3[u.temp[3][2]])
                         ^ *((u32*)T4[u.temp[0][3]]));
   *((u32*)(b + 8))   = (*((u32*)T1[u.temp[2][0]])
                         ^ *((u32*)T2[u.temp[3][1]])
-                        ^ *((u32*)T3[u.temp[0][2]]) 
+                        ^ *((u32*)T3[u.temp[0][2]])
                         ^ *((u32*)T4[u.temp[1][3]]));
   *((u32*)(b +12))   = (*((u32*)T1[u.temp[3][0]])
                         ^ *((u32*)T2[u.temp[0][1]])
-                        ^ *((u32*)T3[u.temp[1][2]]) 
+                        ^ *((u32*)T3[u.temp[1][2]])
                         ^ *((u32*)T4[u.temp[2][3]]));
 
   for (r = 1; r < ROUNDS-1; r++)
@@ -352,23 +352,23 @@ do_encrypt_aligned (const RIJNDAEL_context *ctx,
 
       *((u32*)(b    ))   = (*((u32*)T1[u.temp[0][0]])
                             ^ *((u32*)T2[u.temp[1][1]])
-                            ^ *((u32*)T3[u.temp[2][2]]) 
+                            ^ *((u32*)T3[u.temp[2][2]])
                             ^ *((u32*)T4[u.temp[3][3]]));
       *((u32*)(b + 4))   = (*((u32*)T1[u.temp[1][0]])
                             ^ *((u32*)T2[u.temp[2][1]])
-                            ^ *((u32*)T3[u.temp[3][2]]) 
+                            ^ *((u32*)T3[u.temp[3][2]])
                             ^ *((u32*)T4[u.temp[0][3]]));
       *((u32*)(b + 8))   = (*((u32*)T1[u.temp[2][0]])
                             ^ *((u32*)T2[u.temp[3][1]])
-                            ^ *((u32*)T3[u.temp[0][2]]) 
+                            ^ *((u32*)T3[u.temp[0][2]])
                             ^ *((u32*)T4[u.temp[1][3]]));
       *((u32*)(b +12))   = (*((u32*)T1[u.temp[3][0]])
                             ^ *((u32*)T2[u.temp[0][1]])
-                            ^ *((u32*)T3[u.temp[1][2]]) 
+                            ^ *((u32*)T3[u.temp[1][2]])
                             ^ *((u32*)T4[u.temp[2][3]]));
     }
 
-  /* Last round is special. */   
+  /* Last round is special. */
   *((u32*)u.temp[0]) = *((u32*)(b   )) ^ *((u32*)rk[ROUNDS-1][0]);
   *((u32*)u.temp[1]) = *((u32*)(b+ 4)) ^ *((u32*)rk[ROUNDS-1][1]);
   *((u32*)u.temp[2]) = *((u32*)(b+ 8)) ^ *((u32*)rk[ROUNDS-1][2]);
@@ -405,12 +405,12 @@ do_encrypt (const RIJNDAEL_context *ctx,
      copy them here. */
   union
   {
-    u32  dummy[4]; 
+    u32  dummy[4];
     byte a[16];
   } a;
   union
   {
-    u32  dummy[4]; 
+    u32  dummy[4];
     byte b[16];
   } b;
 
@@ -444,9 +444,9 @@ do_padlock (const RIJNDAEL_context *ctx, int decrypt_flag,
     cword[0] |= 0x00000200;
 
   memcpy (a, ax, 16);
-   
-  asm volatile 
-    ("pushfl\n\t"          /* Force key reload.  */            
+
+  asm volatile
+    ("pushfl\n\t"          /* Force key reload.  */
      "popfl\n\t"
      "xchg %3, %%ebx\n\t"  /* Load key.  */
      "movl $1, %%ecx\n\t"  /* Init counter for just one block.  */
@@ -488,7 +488,7 @@ rijndael_encrypt (void *context, byte *b, const byte *a)
    function is only intended for the bulk encryption feature of
    cipher.c. */
 void
-_gcry_aes_cfb_enc (void *context, unsigned char *iv, 
+_gcry_aes_cfb_enc (void *context, unsigned char *iv,
                    void *outbuf_arg, const void *inbuf_arg,
                    unsigned int nblocks)
 {
@@ -533,7 +533,7 @@ _gcry_aes_cfb_enc (void *context, unsigned char *iv,
    function is only intended for the bulk encryption feature of
    cipher.c. */
 void
-_gcry_aes_cbc_enc (void *context, unsigned char *iv, 
+_gcry_aes_cbc_enc (void *context, unsigned char *iv,
                    void *outbuf_arg, const void *inbuf_arg,
                    unsigned int nblocks, int cbc_mac)
 {
@@ -570,13 +570,13 @@ _gcry_aes_cbc_enc (void *context, unsigned char *iv,
    and the decryption must have been prepared.  A and B may be the
    same. */
 static void
-do_decrypt_aligned (RIJNDAEL_context *ctx, 
+do_decrypt_aligned (RIJNDAEL_context *ctx,
                     unsigned char *b, const unsigned char *a)
 {
 #define rk  (ctx->keySched2)
-  int ROUNDS = ctx->ROUNDS; 
+  int ROUNDS = ctx->ROUNDS;
   int r;
-  union 
+  union
   {
     u32  tempu32[4];  /* Force correct alignment. */
     byte temp[4][4];
@@ -587,22 +587,22 @@ do_decrypt_aligned (RIJNDAEL_context *ctx,
   *((u32*)u.temp[1]) = *((u32*)(a+ 4)) ^ *((u32*)rk[ROUNDS][1]);
   *((u32*)u.temp[2]) = *((u32*)(a+ 8)) ^ *((u32*)rk[ROUNDS][2]);
   *((u32*)u.temp[3]) = *((u32*)(a+12)) ^ *((u32*)rk[ROUNDS][3]);
-  
+
   *((u32*)(b   ))    = (*((u32*)T5[u.temp[0][0]])
                         ^ *((u32*)T6[u.temp[3][1]])
-                        ^ *((u32*)T7[u.temp[2][2]]) 
+                        ^ *((u32*)T7[u.temp[2][2]])
                         ^ *((u32*)T8[u.temp[1][3]]));
   *((u32*)(b+ 4))    = (*((u32*)T5[u.temp[1][0]])
                         ^ *((u32*)T6[u.temp[0][1]])
-                        ^ *((u32*)T7[u.temp[3][2]]) 
+                        ^ *((u32*)T7[u.temp[3][2]])
                         ^ *((u32*)T8[u.temp[2][3]]));
   *((u32*)(b+ 8))    = (*((u32*)T5[u.temp[2][0]])
                         ^ *((u32*)T6[u.temp[1][1]])
-                        ^ *((u32*)T7[u.temp[0][2]]) 
+                        ^ *((u32*)T7[u.temp[0][2]])
                         ^ *((u32*)T8[u.temp[3][3]]));
   *((u32*)(b+12))    = (*((u32*)T5[u.temp[3][0]])
                         ^ *((u32*)T6[u.temp[2][1]])
-                        ^ *((u32*)T7[u.temp[1][2]]) 
+                        ^ *((u32*)T7[u.temp[1][2]])
                         ^ *((u32*)T8[u.temp[0][3]]));
 
   for (r = ROUNDS-1; r > 1; r--)
@@ -613,23 +613,23 @@ do_decrypt_aligned (RIJNDAEL_context *ctx,
       *((u32*)u.temp[3]) = *((u32*)(b+12)) ^ *((u32*)rk[r][3]);
       *((u32*)(b   ))    = (*((u32*)T5[u.temp[0][0]])
                             ^ *((u32*)T6[u.temp[3][1]])
-                            ^ *((u32*)T7[u.temp[2][2]]) 
+                            ^ *((u32*)T7[u.temp[2][2]])
                             ^ *((u32*)T8[u.temp[1][3]]));
       *((u32*)(b+ 4))    = (*((u32*)T5[u.temp[1][0]])
                             ^ *((u32*)T6[u.temp[0][1]])
-                            ^ *((u32*)T7[u.temp[3][2]]) 
+                            ^ *((u32*)T7[u.temp[3][2]])
                             ^ *((u32*)T8[u.temp[2][3]]));
       *((u32*)(b+ 8))    = (*((u32*)T5[u.temp[2][0]])
                             ^ *((u32*)T6[u.temp[1][1]])
-                            ^ *((u32*)T7[u.temp[0][2]]) 
+                            ^ *((u32*)T7[u.temp[0][2]])
                             ^ *((u32*)T8[u.temp[3][3]]));
       *((u32*)(b+12))    = (*((u32*)T5[u.temp[3][0]])
                             ^ *((u32*)T6[u.temp[2][1]])
-                            ^ *((u32*)T7[u.temp[1][2]]) 
+                            ^ *((u32*)T7[u.temp[1][2]])
                             ^ *((u32*)T8[u.temp[0][3]]));
     }
 
-  /* Last round is special. */   
+  /* Last round is special. */
   *((u32*)u.temp[0]) = *((u32*)(b   )) ^ *((u32*)rk[1][0]);
   *((u32*)u.temp[1]) = *((u32*)(b+ 4)) ^ *((u32*)rk[1][1]);
   *((u32*)u.temp[2]) = *((u32*)(b+ 8)) ^ *((u32*)rk[1][2]);
@@ -666,12 +666,12 @@ do_decrypt (RIJNDAEL_context *ctx, byte *bx, const byte *ax)
      copy them here. */
   union
   {
-    u32  dummy[4]; 
+    u32  dummy[4];
     byte a[16];
   } a;
   union
   {
-    u32  dummy[4]; 
+    u32  dummy[4];
     byte b[16];
   } b;