OSDN Git Service

Added "JavaBytes" tool.
authorLoRd_MuldeR <mulder2@gmx.de>
Fri, 11 Aug 2017 14:20:15 +0000 (16:20 +0200)
committerLoRd_MuldeR <mulder2@gmx.de>
Fri, 11 Aug 2017 14:20:15 +0000 (16:20 +0200)
23 files changed:
.gitignore
tools/GenTables/etc/pthread/bin/Win32/pthreadVC2.v120_xp.dll [deleted file]
tools/GenTables/etc/pthread/bin/Win32/pthreadVC2.v140_xp.dll [deleted file]
tools/GenTables/etc/pthread/bin/Win32/pthreadVC2d.v140_xp.dll [deleted file]
tools/GenTables/etc/pthread/bin/Win32/pthreadVC2d.v140_xp.pdb [deleted file]
tools/GenTables/etc/pthread/include/pthread.h [deleted file]
tools/GenTables/etc/pthread/include/sched.h [deleted file]
tools/GenTables/etc/pthread/include/semaphore.h [deleted file]
tools/GenTables/etc/pthread/lib/Win32/shared/pthreadVC2.v120_xp.lib [deleted file]
tools/GenTables/etc/pthread/lib/Win32/shared/pthreadVC2.v140_xp.lib [deleted file]
tools/GenTables/etc/pthread/lib/Win32/shared/pthreadVC2d.v140_xp.lib [deleted file]
tools/GenTables/etc/pthread/lib/Win32/static/pthreadVC2.v120_xp.lib [deleted file]
tools/GenTables/etc/pthread/lib/Win32/static/pthreadVC2.v140_xp.lib [deleted file]
tools/GenTables/etc/pthread/lib/x64/shared/pthreadVC2.v120_xp.dll [deleted file]
tools/GenTables/etc/pthread/lib/x64/shared/pthreadVC2.v120_xp.lib [deleted file]
tools/GenTables/etc/pthread/lib/x64/shared/pthreadVC2.v140_xp.dll [deleted file]
tools/GenTables/etc/pthread/lib/x64/shared/pthreadVC2.v140_xp.lib [deleted file]
tools/GenTables/etc/pthread/lib/x64/static/pthreadVC2.v120_xp.lib [deleted file]
tools/GenTables/etc/pthread/lib/x64/static/pthreadVC2.v140_xp.lib [deleted file]
tools/JavaBytes/.classpath [new file with mode: 0644]
tools/JavaBytes/.project [new file with mode: 0644]
tools/JavaBytes/.settings/org.eclipse.jdt.core.prefs [new file with mode: 0644]
tools/JavaBytes/src/com/muldersoft/mhash384/utils/JavaBytes.java [new file with mode: 0644]

index 8178618..9f883ec 100644 (file)
@@ -9,6 +9,7 @@
 *.~dfm
 *.~dpr
 *.~pas
+.vs
 /bin
 /bindings/Delphi/example/bin/*.dll
 /bindings/Delphi/example/bin/*.exe
@@ -23,8 +24,8 @@
 /bindings/Microsoft.NET/example/obj
 /bindings/Microsoft.NET/library/bin
 /bindings/Microsoft.NET/library/obj
-/bindings/Python/library/__pycache__
 /bindings/Python/example/__pycache__
+/bindings/Python/library/__pycache__
 /ipch
 /obj
 /out
@@ -36,6 +37,7 @@
 /tools/GenTables/bin
 /tools/GenTables/ipch
 /tools/GenTables/obj
+/tools/JavaBytes/bin
 /tools/StressTester/*.txt
 /tools/StressTester/bin
 /tools/StressTester/ipch
diff --git a/tools/GenTables/etc/pthread/bin/Win32/pthreadVC2.v120_xp.dll b/tools/GenTables/etc/pthread/bin/Win32/pthreadVC2.v120_xp.dll
deleted file mode 100644 (file)
index a2568d3..0000000
Binary files a/tools/GenTables/etc/pthread/bin/Win32/pthreadVC2.v120_xp.dll and /dev/null differ
diff --git a/tools/GenTables/etc/pthread/bin/Win32/pthreadVC2.v140_xp.dll b/tools/GenTables/etc/pthread/bin/Win32/pthreadVC2.v140_xp.dll
deleted file mode 100644 (file)
index a0d223f..0000000
Binary files a/tools/GenTables/etc/pthread/bin/Win32/pthreadVC2.v140_xp.dll and /dev/null differ
diff --git a/tools/GenTables/etc/pthread/bin/Win32/pthreadVC2d.v140_xp.dll b/tools/GenTables/etc/pthread/bin/Win32/pthreadVC2d.v140_xp.dll
deleted file mode 100644 (file)
index 24d2581..0000000
Binary files a/tools/GenTables/etc/pthread/bin/Win32/pthreadVC2d.v140_xp.dll and /dev/null differ
diff --git a/tools/GenTables/etc/pthread/bin/Win32/pthreadVC2d.v140_xp.pdb b/tools/GenTables/etc/pthread/bin/Win32/pthreadVC2d.v140_xp.pdb
deleted file mode 100644 (file)
index 890b286..0000000
Binary files a/tools/GenTables/etc/pthread/bin/Win32/pthreadVC2d.v140_xp.pdb and /dev/null differ
diff --git a/tools/GenTables/etc/pthread/include/pthread.h b/tools/GenTables/etc/pthread/include/pthread.h
deleted file mode 100644 (file)
index b4072f7..0000000
+++ /dev/null
@@ -1,1368 +0,0 @@
-/* This is an implementation of the threads API of POSIX 1003.1-2001.
- *
- * --------------------------------------------------------------------------
- *
- *      Pthreads-win32 - POSIX Threads Library for Win32
- *      Copyright(C) 1998 John E. Bossom
- *      Copyright(C) 1999,2005 Pthreads-win32 contributors
- * 
- *      Contact Email: rpj@callisto.canberra.edu.au
- * 
- *      The current list of contributors is contained
- *      in the file CONTRIBUTORS included with the source
- *      code distribution. The list can also be seen at the
- *      following World Wide Web location:
- *      http://sources.redhat.com/pthreads-win32/contributors.html
- * 
- *      This library 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 of the License, or (at your option) any later version.
- * 
- *      This library 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 library in the file COPYING.LIB;
- *      if not, write to the Free Software Foundation, Inc.,
- *      59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#if !defined( PTHREAD_H )
-#define PTHREAD_H
-
-/*
- * See the README file for an explanation of the pthreads-win32 version
- * numbering scheme and how the DLL is named etc.
- */
-#define PTW32_VERSION 2,9,1,0
-#define PTW32_VERSION_STRING "2, 9, 1, 0\0"
-
-/* There are three implementations of cancel cleanup.
- * Note that pthread.h is included in both application
- * compilation units and also internally for the library.
- * The code here and within the library aims to work
- * for all reasonable combinations of environments.
- *
- * The three implementations are:
- *
- *   WIN32 SEH
- *   C
- *   C++
- *
- * Please note that exiting a push/pop block via
- * "return", "exit", "break", or "continue" will
- * lead to different behaviour amongst applications
- * depending upon whether the library was built
- * using SEH, C++, or C. For example, a library built
- * with SEH will call the cleanup routine, while both
- * C++ and C built versions will not.
- */
-
-/*
- * Define defaults for cleanup code.
- * Note: Unless the build explicitly defines one of the following, then
- * we default to standard C style cleanup. This style uses setjmp/longjmp
- * in the cancelation and thread exit implementations and therefore won't
- * do stack unwinding if linked to applications that have it (e.g.
- * C++ apps). This is currently consistent with most/all commercial Unix
- * POSIX threads implementations.
- */
-#if !defined( __CLEANUP_SEH ) && !defined( __CLEANUP_CXX ) && !defined( __CLEANUP_C )
-# define __CLEANUP_C
-#endif
-
-#if defined( __CLEANUP_SEH ) && ( !defined( _MSC_VER ) && !defined(PTW32_RC_MSC))
-#error ERROR [__FILE__, line __LINE__]: SEH is not supported for this compiler.
-#endif
-
-/*
- * Stop here if we are being included by the resource compiler.
- */
-#if !defined(RC_INVOKED)
-
-#undef PTW32_LEVEL
-
-#if defined(_POSIX_SOURCE)
-#define PTW32_LEVEL 0
-/* Early POSIX */
-#endif
-
-#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 199309
-#undef PTW32_LEVEL
-#define PTW32_LEVEL 1
-/* Include 1b, 1c and 1d */
-#endif
-
-#if defined(INCLUDE_NP)
-#undef PTW32_LEVEL
-#define PTW32_LEVEL 2
-/* Include Non-Portable extensions */
-#endif
-
-#define PTW32_LEVEL_MAX 3
-
-#if ( defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 200112 )  || !defined(PTW32_LEVEL)
-#define PTW32_LEVEL PTW32_LEVEL_MAX
-/* Include everything */
-#endif
-
-#if defined(_UWIN)
-#   define HAVE_STRUCT_TIMESPEC 1
-#   define HAVE_SIGNAL_H        1
-#   undef HAVE_PTW32_CONFIG_H
-#   pragma comment(lib, "pthread")
-#endif
-
-/*
- * -------------------------------------------------------------
- *
- *
- * Module: pthread.h
- *
- * Purpose:
- *      Provides an implementation of PThreads based upon the
- *      standard:
- *
- *              POSIX 1003.1-2001
- *  and
- *    The Single Unix Specification version 3
- *
- *    (these two are equivalent)
- *
- *      in order to enhance code portability between Windows,
- *  various commercial Unix implementations, and Linux.
- *
- *      See the ANNOUNCE file for a full list of conforming
- *      routines and defined constants, and a list of missing
- *      routines and constants not defined in this implementation.
- *
- * Authors:
- *      There have been many contributors to this library.
- *      The initial implementation was contributed by
- *      John Bossom, and several others have provided major
- *      sections or revisions of parts of the implementation.
- *      Often significant effort has been contributed to
- *      find and fix important bugs and other problems to
- *      improve the reliability of the library, which sometimes
- *      is not reflected in the amount of code which changed as
- *      result.
- *      As much as possible, the contributors are acknowledged
- *      in the ChangeLog file in the source code distribution
- *      where their changes are noted in detail.
- *
- *      Contributors are listed in the CONTRIBUTORS file.
- *
- *      As usual, all bouquets go to the contributors, and all
- *      brickbats go to the project maintainer.
- *
- * Maintainer:
- *      The code base for this project is coordinated and
- *      eventually pre-tested, packaged, and made available by
- *
- *              Ross Johnson <rpj@callisto.canberra.edu.au>
- *
- * QA Testers:
- *      Ultimately, the library is tested in the real world by
- *      a host of competent and demanding scientists and
- *      engineers who report bugs and/or provide solutions
- *      which are then fixed or incorporated into subsequent
- *      versions of the library. Each time a bug is fixed, a
- *      test case is written to prove the fix and ensure
- *      that later changes to the code don't reintroduce the
- *      same error. The number of test cases is slowly growing
- *      and therefore so is the code reliability.
- *
- * Compliance:
- *      See the file ANNOUNCE for the list of implemented
- *      and not-implemented routines and defined options.
- *      Of course, these are all defined is this file as well.
- *
- * Web site:
- *      The source code and other information about this library
- *      are available from
- *
- *              http://sources.redhat.com/pthreads-win32/
- *
- * -------------------------------------------------------------
- */
-
-/* Try to avoid including windows.h */
-#if (defined(__MINGW64__) || defined(__MINGW32__)) && defined(__cplusplus)
-#define PTW32_INCLUDE_WINDOWS_H
-#endif
-
-#if defined(PTW32_INCLUDE_WINDOWS_H)
-#include <windows.h>
-#endif
-
-#if defined(_MSC_VER) && _MSC_VER < 1300 || defined(__DMC__)
-/*
- * VC++6.0 or early compiler's header has no DWORD_PTR type.
- */
-typedef unsigned long DWORD_PTR;
-typedef unsigned long ULONG_PTR;
-#endif
-/*
- * -----------------
- * autoconf switches
- * -----------------
- */
-
-#if defined(HAVE_PTW32_CONFIG_H)
-#include "config.h"
-#endif /* HAVE_PTW32_CONFIG_H */
-
-#if !defined(NEED_FTIME)
-#include <time.h>
-#else /* NEED_FTIME */
-/* use native WIN32 time API */
-#endif /* NEED_FTIME */
-
-#if defined(HAVE_SIGNAL_H)
-#include <signal.h>
-#endif /* HAVE_SIGNAL_H */
-
-#include <limits.h>
-
-/*
- * Boolean values to make us independent of system includes.
- */
-enum {
-  PTW32_FALSE = 0,
-  PTW32_TRUE = (! PTW32_FALSE)
-};
-
-/*
- * This is a duplicate of what is in the autoconf config.h,
- * which is only used when building the pthread-win32 libraries.
- */
-
-#if !defined(PTW32_CONFIG_H)
-#  if defined(WINCE)
-#    define NEED_ERRNO
-#    define NEED_SEM
-#  endif
-#  if defined(__MINGW64__)
-#    define HAVE_STRUCT_TIMESPEC
-#    define HAVE_MODE_T
-#  elif defined(_UWIN) || defined(__MINGW32__)
-#    define HAVE_MODE_T
-#  endif
-#endif
-
-/*
- *
- */
-
-#if PTW32_LEVEL >= PTW32_LEVEL_MAX
-#if defined(NEED_ERRNO)
-#include "need_errno.h"
-#else
-#include <errno.h>
-#endif
-#endif /* PTW32_LEVEL >= PTW32_LEVEL_MAX */
-
-/*
- * Several systems don't define some error numbers.
- */
-#if !defined(ENOTSUP)
-#  define ENOTSUP 48   /* This is the value in Solaris. */
-#endif
-
-#if !defined(ETIMEDOUT)
-#  define ETIMEDOUT 10060 /* Same as WSAETIMEDOUT */
-#endif
-
-#if !defined(ENOSYS)
-#  define ENOSYS 140     /* Semi-arbitrary value */
-#endif
-
-#if !defined(EDEADLK)
-#  if defined(EDEADLOCK)
-#    define EDEADLK EDEADLOCK
-#  else
-#    define EDEADLK 36     /* This is the value in MSVC. */
-#  endif
-#endif
-
-/* POSIX 2008 - related to robust mutexes */
-#if !defined(EOWNERDEAD)
-#  define EOWNERDEAD 43
-#endif
-#if !defined(ENOTRECOVERABLE)
-#  define ENOTRECOVERABLE 44
-#endif
-
-#include <sched.h>
-
-/*
- * To avoid including windows.h we define only those things that we
- * actually need from it.
- */
-#if !defined(PTW32_INCLUDE_WINDOWS_H)
-#if !defined(HANDLE)
-# define PTW32__HANDLE_DEF
-# define HANDLE void *
-#endif
-#if !defined(DWORD)
-# define PTW32__DWORD_DEF
-# define DWORD unsigned long
-#endif
-#endif
-
-#if !defined(HAVE_STRUCT_TIMESPEC)
-#define HAVE_STRUCT_TIMESPEC
-#if !defined(_TIMESPEC_DEFINED)
-#define _TIMESPEC_DEFINED
-struct timespec {
-        time_t tv_sec;
-        long tv_nsec;
-};
-#endif /* _TIMESPEC_DEFINED */
-#endif /* HAVE_STRUCT_TIMESPEC */
-
-#if !defined(SIG_BLOCK)
-#define SIG_BLOCK 0
-#endif /* SIG_BLOCK */
-
-#if !defined(SIG_UNBLOCK)
-#define SIG_UNBLOCK 1
-#endif /* SIG_UNBLOCK */
-
-#if !defined(SIG_SETMASK)
-#define SIG_SETMASK 2
-#endif /* SIG_SETMASK */
-
-#if defined(__cplusplus)
-extern "C"
-{
-#endif                          /* __cplusplus */
-
-/*
- * -------------------------------------------------------------
- *
- * POSIX 1003.1-2001 Options
- * =========================
- *
- * Options are normally set in <unistd.h>, which is not provided
- * with pthreads-win32.
- *
- * For conformance with the Single Unix Specification (version 3), all of the
- * options below are defined, and have a value of either -1 (not supported)
- * or 200112L (supported).
- *
- * These options can neither be left undefined nor have a value of 0, because
- * either indicates that sysconf(), which is not implemented, may be used at
- * runtime to check the status of the option.
- *
- * _POSIX_THREADS (== 200112L)
- *                      If == 200112L, you can use threads
- *
- * _POSIX_THREAD_ATTR_STACKSIZE (== 200112L)
- *                      If == 200112L, you can control the size of a thread's
- *                      stack
- *                              pthread_attr_getstacksize
- *                              pthread_attr_setstacksize
- *
- * _POSIX_THREAD_ATTR_STACKADDR (== -1)
- *                      If == 200112L, you can allocate and control a thread's
- *                      stack. If not supported, the following functions
- *                      will return ENOSYS, indicating they are not
- *                      supported:
- *                              pthread_attr_getstackaddr
- *                              pthread_attr_setstackaddr
- *
- * _POSIX_THREAD_PRIORITY_SCHEDULING (== -1)
- *                      If == 200112L, you can use realtime scheduling.
- *                      This option indicates that the behaviour of some
- *                      implemented functions conforms to the additional TPS
- *                      requirements in the standard. E.g. rwlocks favour
- *                      writers over readers when threads have equal priority.
- *
- * _POSIX_THREAD_PRIO_INHERIT (== -1)
- *                      If == 200112L, you can create priority inheritance
- *                      mutexes.
- *                              pthread_mutexattr_getprotocol +
- *                              pthread_mutexattr_setprotocol +
- *
- * _POSIX_THREAD_PRIO_PROTECT (== -1)
- *                      If == 200112L, you can create priority ceiling mutexes
- *                      Indicates the availability of:
- *                              pthread_mutex_getprioceiling
- *                              pthread_mutex_setprioceiling
- *                              pthread_mutexattr_getprioceiling
- *                              pthread_mutexattr_getprotocol     +
- *                              pthread_mutexattr_setprioceiling
- *                              pthread_mutexattr_setprotocol     +
- *
- * _POSIX_THREAD_PROCESS_SHARED (== -1)
- *                      If set, you can create mutexes and condition
- *                      variables that can be shared with another
- *                      process.If set, indicates the availability
- *                      of:
- *                              pthread_mutexattr_getpshared
- *                              pthread_mutexattr_setpshared
- *                              pthread_condattr_getpshared
- *                              pthread_condattr_setpshared
- *
- * _POSIX_THREAD_SAFE_FUNCTIONS (== 200112L)
- *                      If == 200112L you can use the special *_r library
- *                      functions that provide thread-safe behaviour
- *
- * _POSIX_READER_WRITER_LOCKS (== 200112L)
- *                      If == 200112L, you can use read/write locks
- *
- * _POSIX_SPIN_LOCKS (== 200112L)
- *                      If == 200112L, you can use spin locks
- *
- * _POSIX_BARRIERS (== 200112L)
- *                      If == 200112L, you can use barriers
- *
- *      + These functions provide both 'inherit' and/or
- *        'protect' protocol, based upon these macro
- *        settings.
- *
- * -------------------------------------------------------------
- */
-
-/*
- * POSIX Options
- */
-#undef _POSIX_THREADS
-#define _POSIX_THREADS 200809L
-
-#undef _POSIX_READER_WRITER_LOCKS
-#define _POSIX_READER_WRITER_LOCKS 200809L
-
-#undef _POSIX_SPIN_LOCKS
-#define _POSIX_SPIN_LOCKS 200809L
-
-#undef _POSIX_BARRIERS
-#define _POSIX_BARRIERS 200809L
-
-#undef _POSIX_THREAD_SAFE_FUNCTIONS
-#define _POSIX_THREAD_SAFE_FUNCTIONS 200809L
-
-#undef _POSIX_THREAD_ATTR_STACKSIZE
-#define _POSIX_THREAD_ATTR_STACKSIZE 200809L
-
-/*
- * The following options are not supported
- */
-#undef _POSIX_THREAD_ATTR_STACKADDR
-#define _POSIX_THREAD_ATTR_STACKADDR -1
-
-#undef _POSIX_THREAD_PRIO_INHERIT
-#define _POSIX_THREAD_PRIO_INHERIT -1
-
-#undef _POSIX_THREAD_PRIO_PROTECT
-#define _POSIX_THREAD_PRIO_PROTECT -1
-
-/* TPS is not fully supported.  */
-#undef _POSIX_THREAD_PRIORITY_SCHEDULING
-#define _POSIX_THREAD_PRIORITY_SCHEDULING -1
-
-#undef _POSIX_THREAD_PROCESS_SHARED
-#define _POSIX_THREAD_PROCESS_SHARED -1
-
-
-/*
- * POSIX 1003.1-2001 Limits
- * ===========================
- *
- * These limits are normally set in <limits.h>, which is not provided with
- * pthreads-win32.
- *
- * PTHREAD_DESTRUCTOR_ITERATIONS
- *                      Maximum number of attempts to destroy
- *                      a thread's thread-specific data on
- *                      termination (must be at least 4)
- *
- * PTHREAD_KEYS_MAX
- *                      Maximum number of thread-specific data keys
- *                      available per process (must be at least 128)
- *
- * PTHREAD_STACK_MIN
- *                      Minimum supported stack size for a thread
- *
- * PTHREAD_THREADS_MAX
- *                      Maximum number of threads supported per
- *                      process (must be at least 64).
- *
- * SEM_NSEMS_MAX
- *                      The maximum number of semaphores a process can have.
- *                      (must be at least 256)
- *
- * SEM_VALUE_MAX
- *                      The maximum value a semaphore can have.
- *                      (must be at least 32767)
- *
- */
-#undef _POSIX_THREAD_DESTRUCTOR_ITERATIONS
-#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS     4
-
-#undef PTHREAD_DESTRUCTOR_ITERATIONS
-#define PTHREAD_DESTRUCTOR_ITERATIONS           _POSIX_THREAD_DESTRUCTOR_ITERATIONS
-
-#undef _POSIX_THREAD_KEYS_MAX
-#define _POSIX_THREAD_KEYS_MAX                  128
-
-#undef PTHREAD_KEYS_MAX
-#define PTHREAD_KEYS_MAX                        _POSIX_THREAD_KEYS_MAX
-
-#undef PTHREAD_STACK_MIN
-#define PTHREAD_STACK_MIN                       0
-
-#undef _POSIX_THREAD_THREADS_MAX
-#define _POSIX_THREAD_THREADS_MAX               64
-
-  /* Arbitrary value */
-#undef PTHREAD_THREADS_MAX
-#define PTHREAD_THREADS_MAX                     2019
-
-#undef _POSIX_SEM_NSEMS_MAX
-#define _POSIX_SEM_NSEMS_MAX                    256
-
-  /* Arbitrary value */
-#undef SEM_NSEMS_MAX
-#define SEM_NSEMS_MAX                           1024
-
-#undef _POSIX_SEM_VALUE_MAX
-#define _POSIX_SEM_VALUE_MAX                    32767
-
-#undef SEM_VALUE_MAX
-#define SEM_VALUE_MAX                           INT_MAX
-
-
-#if defined(__GNUC__) && !defined(__declspec)
-# error Please upgrade your GNU compiler to one that supports __declspec.
-#endif
-
-/*
- * When building the library, you should define PTW32_BUILD so that
- * the variables/functions are exported correctly. When using the library,
- * do NOT define PTW32_BUILD, and then the variables/functions will
- * be imported correctly.
- */
-#if !defined(PTW32_STATIC_LIB)
-#  if defined(PTW32_BUILD)
-#    define PTW32_DLLPORT __declspec (dllexport)
-#  else
-#    define PTW32_DLLPORT __declspec (dllimport)
-#  endif
-#else
-#  define PTW32_DLLPORT
-#endif
-
-/*
- * The Open Watcom C/C++ compiler uses a non-standard calling convention
- * that passes function args in registers unless __cdecl is explicitly specified
- * in exposed function prototypes.
- *
- * We force all calls to cdecl even though this could slow Watcom code down
- * slightly. If you know that the Watcom compiler will be used to build both
- * the DLL and application, then you can probably define this as a null string.
- * Remember that pthread.h (this file) is used for both the DLL and application builds.
- */
-#define PTW32_CDECL __cdecl
-
-#if defined(_UWIN) && PTW32_LEVEL >= PTW32_LEVEL_MAX
-#   include     <sys/types.h>
-#else
-/*
- * Generic handle type - intended to extend uniqueness beyond
- * that available with a simple pointer. It should scale for either
- * IA-32 or IA-64.
- */
-typedef struct {
-    void * p;                   /* Pointer to actual object */
-    unsigned int x;             /* Extra information - reuse count etc */
-} ptw32_handle_t;
-
-typedef ptw32_handle_t pthread_t;
-typedef struct pthread_attr_t_ * pthread_attr_t;
-typedef struct pthread_once_t_ pthread_once_t;
-typedef struct pthread_key_t_ * pthread_key_t;
-typedef struct pthread_mutex_t_ * pthread_mutex_t;
-typedef struct pthread_mutexattr_t_ * pthread_mutexattr_t;
-typedef struct pthread_cond_t_ * pthread_cond_t;
-typedef struct pthread_condattr_t_ * pthread_condattr_t;
-#endif
-typedef struct pthread_rwlock_t_ * pthread_rwlock_t;
-typedef struct pthread_rwlockattr_t_ * pthread_rwlockattr_t;
-typedef struct pthread_spinlock_t_ * pthread_spinlock_t;
-typedef struct pthread_barrier_t_ * pthread_barrier_t;
-typedef struct pthread_barrierattr_t_ * pthread_barrierattr_t;
-
-/*
- * ====================
- * ====================
- * POSIX Threads
- * ====================
- * ====================
- */
-
-enum {
-/*
- * pthread_attr_{get,set}detachstate
- */
-  PTHREAD_CREATE_JOINABLE       = 0,  /* Default */
-  PTHREAD_CREATE_DETACHED       = 1,
-
-/*
- * pthread_attr_{get,set}inheritsched
- */
-  PTHREAD_INHERIT_SCHED         = 0,
-  PTHREAD_EXPLICIT_SCHED        = 1,  /* Default */
-
-/*
- * pthread_{get,set}scope
- */
-  PTHREAD_SCOPE_PROCESS         = 0,
-  PTHREAD_SCOPE_SYSTEM          = 1,  /* Default */
-
-/*
- * pthread_setcancelstate paramters
- */
-  PTHREAD_CANCEL_ENABLE         = 0,  /* Default */
-  PTHREAD_CANCEL_DISABLE        = 1,
-
-/*
- * pthread_setcanceltype parameters
- */
-  PTHREAD_CANCEL_ASYNCHRONOUS   = 0,
-  PTHREAD_CANCEL_DEFERRED       = 1,  /* Default */
-
-/*
- * pthread_mutexattr_{get,set}pshared
- * pthread_condattr_{get,set}pshared
- */
-  PTHREAD_PROCESS_PRIVATE       = 0,
-  PTHREAD_PROCESS_SHARED        = 1,
-
-/*
- * pthread_mutexattr_{get,set}robust
- */
-  PTHREAD_MUTEX_STALLED         = 0,  /* Default */
-  PTHREAD_MUTEX_ROBUST          = 1,
-
-/*
- * pthread_barrier_wait
- */
-  PTHREAD_BARRIER_SERIAL_THREAD = -1
-};
-
-/*
- * ====================
- * ====================
- * Cancelation
- * ====================
- * ====================
- */
-#define PTHREAD_CANCELED       ((void *)(size_t) -1)
-
-
-/*
- * ====================
- * ====================
- * Once Key
- * ====================
- * ====================
- */
-#define PTHREAD_ONCE_INIT       { PTW32_FALSE, 0, 0, 0}
-
-struct pthread_once_t_
-{
-  int          done;        /* indicates if user function has been executed */
-  void *       lock;
-  int          reserved1;
-  int          reserved2;
-};
-
-
-/*
- * ====================
- * ====================
- * Object initialisers
- * ====================
- * ====================
- */
-#define PTHREAD_MUTEX_INITIALIZER ((pthread_mutex_t)(size_t) -1)
-#define PTHREAD_RECURSIVE_MUTEX_INITIALIZER ((pthread_mutex_t)(size_t) -2)
-#define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER ((pthread_mutex_t)(size_t) -3)
-
-/*
- * Compatibility with LinuxThreads
- */
-#define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP PTHREAD_RECURSIVE_MUTEX_INITIALIZER
-#define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP PTHREAD_ERRORCHECK_MUTEX_INITIALIZER
-
-#define PTHREAD_COND_INITIALIZER ((pthread_cond_t)(size_t) -1)
-
-#define PTHREAD_RWLOCK_INITIALIZER ((pthread_rwlock_t)(size_t) -1)
-
-#define PTHREAD_SPINLOCK_INITIALIZER ((pthread_spinlock_t)(size_t) -1)
-
-
-/*
- * Mutex types.
- */
-enum
-{
-  /* Compatibility with LinuxThreads */
-  PTHREAD_MUTEX_FAST_NP,
-  PTHREAD_MUTEX_RECURSIVE_NP,
-  PTHREAD_MUTEX_ERRORCHECK_NP,
-  PTHREAD_MUTEX_TIMED_NP = PTHREAD_MUTEX_FAST_NP,
-  PTHREAD_MUTEX_ADAPTIVE_NP = PTHREAD_MUTEX_FAST_NP,
-  /* For compatibility with POSIX */
-  PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_FAST_NP,
-  PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP,
-  PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP,
-  PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL
-};
-
-
-typedef struct ptw32_cleanup_t ptw32_cleanup_t;
-
-#if defined(_MSC_VER)
-/* Disable MSVC 'anachronism used' warning */
-#pragma warning( disable : 4229 )
-#endif
-
-typedef void (* PTW32_CDECL ptw32_cleanup_callback_t)(void *);
-
-#if defined(_MSC_VER)
-#pragma warning( default : 4229 )
-#endif
-
-struct ptw32_cleanup_t
-{
-  ptw32_cleanup_callback_t routine;
-  void *arg;
-  struct ptw32_cleanup_t *prev;
-};
-
-#if defined(__CLEANUP_SEH)
-        /*
-         * WIN32 SEH version of cancel cleanup.
-         */
-
-#define pthread_cleanup_push( _rout, _arg ) \
-        { \
-            ptw32_cleanup_t     _cleanup; \
-            \
-        _cleanup.routine        = (ptw32_cleanup_callback_t)(_rout); \
-            _cleanup.arg        = (_arg); \
-            __try \
-              { \
-
-#define pthread_cleanup_pop( _execute ) \
-              } \
-            __finally \
-                { \
-                    if( _execute || AbnormalTermination()) \
-                      { \
-                          (*(_cleanup.routine))( _cleanup.arg ); \
-                      } \
-                } \
-        }
-
-#else /* __CLEANUP_SEH */
-
-#if defined(__CLEANUP_C)
-
-        /*
-         * C implementation of PThreads cancel cleanup
-         */
-
-#define pthread_cleanup_push( _rout, _arg ) \
-        { \
-            ptw32_cleanup_t     _cleanup; \
-            \
-            ptw32_push_cleanup( &_cleanup, (ptw32_cleanup_callback_t) (_rout), (_arg) ); \
-
-#define pthread_cleanup_pop( _execute ) \
-            (void) ptw32_pop_cleanup( _execute ); \
-        }
-
-#else /* __CLEANUP_C */
-
-#if defined(__CLEANUP_CXX)
-
-        /*
-         * C++ version of cancel cleanup.
-         * - John E. Bossom.
-         */
-
-        class PThreadCleanup {
-          /*
-           * PThreadCleanup
-           *
-           * Purpose
-           *      This class is a C++ helper class that is
-           *      used to implement pthread_cleanup_push/
-           *      pthread_cleanup_pop.
-           *      The destructor of this class automatically
-           *      pops the pushed cleanup routine regardless
-           *      of how the code exits the scope
-           *      (i.e. such as by an exception)
-           */
-      ptw32_cleanup_callback_t cleanUpRout;
-          void    *       obj;
-          int             executeIt;
-
-        public:
-          PThreadCleanup() :
-            cleanUpRout( 0 ),
-            obj( 0 ),
-            executeIt( 0 )
-            /*
-             * No cleanup performed
-             */
-            {
-            }
-
-          PThreadCleanup(
-             ptw32_cleanup_callback_t routine,
-                         void    *       arg ) :
-            cleanUpRout( routine ),
-            obj( arg ),
-            executeIt( 1 )
-            /*
-             * Registers a cleanup routine for 'arg'
-             */
-            {
-            }
-
-          ~PThreadCleanup()
-            {
-              if ( executeIt && ((void *) cleanUpRout != (void *) 0) )
-                {
-                  (void) (*cleanUpRout)( obj );
-                }
-            }
-
-          void execute( int exec )
-            {
-              executeIt = exec;
-            }
-        };
-
-        /*
-         * C++ implementation of PThreads cancel cleanup;
-         * This implementation takes advantage of a helper
-         * class who's destructor automatically calls the
-         * cleanup routine if we exit our scope weirdly
-         */
-#define pthread_cleanup_push( _rout, _arg ) \
-        { \
-            PThreadCleanup  cleanup((ptw32_cleanup_callback_t)(_rout), \
-                                    (void *) (_arg) );
-
-#define pthread_cleanup_pop( _execute ) \
-            cleanup.execute( _execute ); \
-        }
-
-#else
-
-#error ERROR [__FILE__, line __LINE__]: Cleanup type undefined.
-
-#endif /* __CLEANUP_CXX */
-
-#endif /* __CLEANUP_C */
-
-#endif /* __CLEANUP_SEH */
-
-/*
- * ===============
- * ===============
- * Methods
- * ===============
- * ===============
- */
-
-/*
- * PThread Attribute Functions
- */
-PTW32_DLLPORT int PTW32_CDECL pthread_attr_init (pthread_attr_t * attr);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_attr_destroy (pthread_attr_t * attr);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_attr_getdetachstate (const pthread_attr_t * attr,
-                                         int *detachstate);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_attr_getstackaddr (const pthread_attr_t * attr,
-                                       void **stackaddr);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_attr_getstacksize (const pthread_attr_t * attr,
-                                       size_t * stacksize);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_attr_setdetachstate (pthread_attr_t * attr,
-                                         int detachstate);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_attr_setstackaddr (pthread_attr_t * attr,
-                                       void *stackaddr);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_attr_setstacksize (pthread_attr_t * attr,
-                                       size_t stacksize);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_attr_getschedparam (const pthread_attr_t *attr,
-                                        struct sched_param *param);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_attr_setschedparam (pthread_attr_t *attr,
-                                        const struct sched_param *param);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_attr_setschedpolicy (pthread_attr_t *,
-                                         int);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_attr_getschedpolicy (const pthread_attr_t *,
-                                         int *);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_attr_setinheritsched(pthread_attr_t * attr,
-                                         int inheritsched);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_attr_getinheritsched(const pthread_attr_t * attr,
-                                         int * inheritsched);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_attr_setscope (pthread_attr_t *,
-                                   int);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_attr_getscope (const pthread_attr_t *,
-                                   int *);
-
-/*
- * PThread Functions
- */
-PTW32_DLLPORT int PTW32_CDECL pthread_create (pthread_t * tid,
-                            const pthread_attr_t * attr,
-                            void *(PTW32_CDECL *start) (void *),
-                            void *arg);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_detach (pthread_t tid);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_equal (pthread_t t1,
-                           pthread_t t2);
-
-PTW32_DLLPORT void PTW32_CDECL pthread_exit (void *value_ptr);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_join (pthread_t thread,
-                          void **value_ptr);
-
-PTW32_DLLPORT pthread_t PTW32_CDECL pthread_self (void);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_cancel (pthread_t thread);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_setcancelstate (int state,
-                                    int *oldstate);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_setcanceltype (int type,
-                                   int *oldtype);
-
-PTW32_DLLPORT void PTW32_CDECL pthread_testcancel (void);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_once (pthread_once_t * once_control,
-                          void (PTW32_CDECL *init_routine) (void));
-
-#if PTW32_LEVEL >= PTW32_LEVEL_MAX
-PTW32_DLLPORT ptw32_cleanup_t * PTW32_CDECL ptw32_pop_cleanup (int execute);
-
-PTW32_DLLPORT void PTW32_CDECL ptw32_push_cleanup (ptw32_cleanup_t * cleanup,
-                                 ptw32_cleanup_callback_t routine,
-                                 void *arg);
-#endif /* PTW32_LEVEL >= PTW32_LEVEL_MAX */
-
-/*
- * Thread Specific Data Functions
- */
-PTW32_DLLPORT int PTW32_CDECL pthread_key_create (pthread_key_t * key,
-                                void (PTW32_CDECL *destructor) (void *));
-
-PTW32_DLLPORT int PTW32_CDECL pthread_key_delete (pthread_key_t key);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_setspecific (pthread_key_t key,
-                                 const void *value);
-
-PTW32_DLLPORT void * PTW32_CDECL pthread_getspecific (pthread_key_t key);
-
-
-/*
- * Mutex Attribute Functions
- */
-PTW32_DLLPORT int PTW32_CDECL pthread_mutexattr_init (pthread_mutexattr_t * attr);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_mutexattr_destroy (pthread_mutexattr_t * attr);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_mutexattr_getpshared (const pthread_mutexattr_t
-                                          * attr,
-                                          int *pshared);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_mutexattr_setpshared (pthread_mutexattr_t * attr,
-                                          int pshared);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_mutexattr_settype (pthread_mutexattr_t * attr, int kind);
-PTW32_DLLPORT int PTW32_CDECL pthread_mutexattr_gettype (const pthread_mutexattr_t * attr, int *kind);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_mutexattr_setrobust(
-                                           pthread_mutexattr_t *attr,
-                                           int robust);
-PTW32_DLLPORT int PTW32_CDECL pthread_mutexattr_getrobust(
-                                           const pthread_mutexattr_t * attr,
-                                           int * robust);
-
-/*
- * Barrier Attribute Functions
- */
-PTW32_DLLPORT int PTW32_CDECL pthread_barrierattr_init (pthread_barrierattr_t * attr);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_barrierattr_destroy (pthread_barrierattr_t * attr);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_barrierattr_getpshared (const pthread_barrierattr_t
-                                            * attr,
-                                            int *pshared);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_barrierattr_setpshared (pthread_barrierattr_t * attr,
-                                            int pshared);
-
-/*
- * Mutex Functions
- */
-PTW32_DLLPORT int PTW32_CDECL pthread_mutex_init (pthread_mutex_t * mutex,
-                                const pthread_mutexattr_t * attr);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_mutex_destroy (pthread_mutex_t * mutex);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_mutex_lock (pthread_mutex_t * mutex);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_mutex_timedlock(pthread_mutex_t * mutex,
-                                    const struct timespec *abstime);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_mutex_trylock (pthread_mutex_t * mutex);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_mutex_unlock (pthread_mutex_t * mutex);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_mutex_consistent (pthread_mutex_t * mutex);
-
-/*
- * Spinlock Functions
- */
-PTW32_DLLPORT int PTW32_CDECL pthread_spin_init (pthread_spinlock_t * lock, int pshared);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_spin_destroy (pthread_spinlock_t * lock);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_spin_lock (pthread_spinlock_t * lock);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_spin_trylock (pthread_spinlock_t * lock);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_spin_unlock (pthread_spinlock_t * lock);
-
-/*
- * Barrier Functions
- */
-PTW32_DLLPORT int PTW32_CDECL pthread_barrier_init (pthread_barrier_t * barrier,
-                                  const pthread_barrierattr_t * attr,
-                                  unsigned int count);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_barrier_destroy (pthread_barrier_t * barrier);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_barrier_wait (pthread_barrier_t * barrier);
-
-/*
- * Condition Variable Attribute Functions
- */
-PTW32_DLLPORT int PTW32_CDECL pthread_condattr_init (pthread_condattr_t * attr);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_condattr_destroy (pthread_condattr_t * attr);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_condattr_getpshared (const pthread_condattr_t * attr,
-                                         int *pshared);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_condattr_setpshared (pthread_condattr_t * attr,
-                                         int pshared);
-
-/*
- * Condition Variable Functions
- */
-PTW32_DLLPORT int PTW32_CDECL pthread_cond_init (pthread_cond_t * cond,
-                               const pthread_condattr_t * attr);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_cond_destroy (pthread_cond_t * cond);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_cond_wait (pthread_cond_t * cond,
-                               pthread_mutex_t * mutex);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_cond_timedwait (pthread_cond_t * cond,
-                                    pthread_mutex_t * mutex,
-                                    const struct timespec *abstime);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_cond_signal (pthread_cond_t * cond);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_cond_broadcast (pthread_cond_t * cond);
-
-/*
- * Scheduling
- */
-PTW32_DLLPORT int PTW32_CDECL pthread_setschedparam (pthread_t thread,
-                                   int policy,
-                                   const struct sched_param *param);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_getschedparam (pthread_t thread,
-                                   int *policy,
-                                   struct sched_param *param);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_setconcurrency (int);
-PTW32_DLLPORT int PTW32_CDECL pthread_getconcurrency (void);
-
-/*
- * Read-Write Lock Functions
- */
-PTW32_DLLPORT int PTW32_CDECL pthread_rwlock_init(pthread_rwlock_t *lock,
-                                const pthread_rwlockattr_t *attr);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_rwlock_destroy(pthread_rwlock_t *lock);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_rwlock_tryrdlock(pthread_rwlock_t *);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_rwlock_trywrlock(pthread_rwlock_t *);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_rwlock_rdlock(pthread_rwlock_t *lock);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_rwlock_timedrdlock(pthread_rwlock_t *lock,
-                                       const struct timespec *abstime);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_rwlock_wrlock(pthread_rwlock_t *lock);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_rwlock_timedwrlock(pthread_rwlock_t *lock,
-                                       const struct timespec *abstime);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_rwlock_unlock(pthread_rwlock_t *lock);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_rwlockattr_init (pthread_rwlockattr_t * attr);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_rwlockattr_destroy (pthread_rwlockattr_t * attr);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_rwlockattr_getpshared (const pthread_rwlockattr_t * attr,
-                                           int *pshared);
-
-PTW32_DLLPORT int PTW32_CDECL pthread_rwlockattr_setpshared (pthread_rwlockattr_t * attr,
-                                           int pshared);
-
-#if PTW32_LEVEL >= PTW32_LEVEL_MAX - 1
-
-/*
- * Signal Functions. Should be defined in <signal.h> but MSVC and MinGW32
- * already have signal.h that don't define these.
- */
-PTW32_DLLPORT int PTW32_CDECL pthread_kill(pthread_t thread, int sig);
-
-/*
- * Non-portable functions
- */
-
-/*
- * Compatibility with Linux.
- */
-PTW32_DLLPORT int PTW32_CDECL pthread_mutexattr_setkind_np(pthread_mutexattr_t * attr,
-                                         int kind);
-PTW32_DLLPORT int PTW32_CDECL pthread_mutexattr_getkind_np(pthread_mutexattr_t * attr,
-                                         int *kind);
-
-/*
- * Possibly supported by other POSIX threads implementations
- */
-PTW32_DLLPORT int PTW32_CDECL pthread_delay_np (struct timespec * interval);
-PTW32_DLLPORT int PTW32_CDECL pthread_num_processors_np(void);
-PTW32_DLLPORT unsigned __int64 PTW32_CDECL pthread_getunique_np(pthread_t thread);
-
-/*
- * Useful if an application wants to statically link
- * the lib rather than load the DLL at run-time.
- */
-PTW32_DLLPORT int PTW32_CDECL pthread_win32_process_attach_np(void);
-PTW32_DLLPORT int PTW32_CDECL pthread_win32_process_detach_np(void);
-PTW32_DLLPORT int PTW32_CDECL pthread_win32_thread_attach_np(void);
-PTW32_DLLPORT int PTW32_CDECL pthread_win32_thread_detach_np(void);
-
-/*
- * Features that are auto-detected at load/run time.
- */
-PTW32_DLLPORT int PTW32_CDECL pthread_win32_test_features_np(int);
-enum ptw32_features {
-  PTW32_SYSTEM_INTERLOCKED_COMPARE_EXCHANGE = 0x0001, /* System provides it. */
-  PTW32_ALERTABLE_ASYNC_CANCEL              = 0x0002  /* Can cancel blocked threads. */
-};
-
-/*
- * Register a system time change with the library.
- * Causes the library to perform various functions
- * in response to the change. Should be called whenever
- * the application's top level window receives a
- * WM_TIMECHANGE message. It can be passed directly to
- * pthread_create() as a new thread if desired.
- */
-PTW32_DLLPORT void * PTW32_CDECL pthread_timechange_handler_np(void *);
-
-#endif /*PTW32_LEVEL >= PTW32_LEVEL_MAX - 1 */
-
-#if PTW32_LEVEL >= PTW32_LEVEL_MAX
-
-/*
- * Returns the Win32 HANDLE for the POSIX thread.
- */
-PTW32_DLLPORT HANDLE PTW32_CDECL pthread_getw32threadhandle_np(pthread_t thread);
-/*
- * Returns the win32 thread ID for POSIX thread.
- */
-PTW32_DLLPORT DWORD PTW32_CDECL pthread_getw32threadid_np (pthread_t thread);
-
-
-/*
- * Protected Methods
- *
- * This function blocks until the given WIN32 handle
- * is signaled or pthread_cancel had been called.
- * This function allows the caller to hook into the
- * PThreads cancel mechanism. It is implemented using
- *
- *              WaitForMultipleObjects
- *
- * on 'waitHandle' and a manually reset WIN32 Event
- * used to implement pthread_cancel. The 'timeout'
- * argument to TimedWait is simply passed to
- * WaitForMultipleObjects.
- */
-PTW32_DLLPORT int PTW32_CDECL pthreadCancelableWait (HANDLE waitHandle);
-PTW32_DLLPORT int PTW32_CDECL pthreadCancelableTimedWait (HANDLE waitHandle,
-                                        DWORD timeout);
-
-#endif /* PTW32_LEVEL >= PTW32_LEVEL_MAX */
-
-/*
- * Thread-Safe C Runtime Library Mappings.
- */
-#if !defined(_UWIN)
-#  if defined(NEED_ERRNO)
-     PTW32_DLLPORT int * PTW32_CDECL _errno( void );
-#  else
-#    if !defined(errno)
-#      if (defined(_MT) || defined(_DLL))
-         __declspec(dllimport) extern int * __cdecl _errno(void);
-#        define errno   (*_errno())
-#      endif
-#    endif
-#  endif
-#endif
-
-/*
- * Some compiler environments don't define some things.
- */
-#if defined(__BORLANDC__)
-#  define _ftime ftime
-#  define _timeb timeb
-#endif
-
-#if defined(__cplusplus)
-
-/*
- * Internal exceptions
- */
-class ptw32_exception {};
-class ptw32_exception_cancel : public ptw32_exception {};
-class ptw32_exception_exit   : public ptw32_exception {};
-
-#endif
-
-#if PTW32_LEVEL >= PTW32_LEVEL_MAX
-
-/* FIXME: This is only required if the library was built using SEH */
-/*
- * Get internal SEH tag
- */
-PTW32_DLLPORT DWORD PTW32_CDECL ptw32_get_exception_services_code(void);
-
-#endif /* PTW32_LEVEL >= PTW32_LEVEL_MAX */
-
-#if !defined(PTW32_BUILD)
-
-#if defined(__CLEANUP_SEH)
-
-/*
- * Redefine the SEH __except keyword to ensure that applications
- * propagate our internal exceptions up to the library's internal handlers.
- */
-#define __except( E ) \
-        __except( ( GetExceptionCode() == ptw32_get_exception_services_code() ) \
-                 ? EXCEPTION_CONTINUE_SEARCH : ( E ) )
-
-#endif /* __CLEANUP_SEH */
-
-#if defined(__CLEANUP_CXX)
-
-/*
- * Redefine the C++ catch keyword to ensure that applications
- * propagate our internal exceptions up to the library's internal handlers.
- */
-#if defined(_MSC_VER)
-        /*
-         * WARNING: Replace any 'catch( ... )' with 'PtW32CatchAll'
-         * if you want Pthread-Win32 cancelation and pthread_exit to work.
-         */
-
-#if !defined(PtW32NoCatchWarn)
-
-#pragma message("Specify \"/DPtW32NoCatchWarn\" compiler flag to skip this message.")
-#pragma message("------------------------------------------------------------------")
-#pragma message("When compiling applications with MSVC++ and C++ exception handling:")
-#pragma message("  Replace any 'catch( ... )' in routines called from POSIX threads")
-#pragma message("  with 'PtW32CatchAll' or 'CATCHALL' if you want POSIX thread")
-#pragma message("  cancelation and pthread_exit to work. For example:")
-#pragma message("")
-#pragma message("    #if defined(PtW32CatchAll)")
-#pragma message("      PtW32CatchAll")
-#pragma message("    #else")
-#pragma message("      catch(...)")
-#pragma message("    #endif")
-#pragma message("        {")
-#pragma message("          /* Catchall block processing */")
-#pragma message("        }")
-#pragma message("------------------------------------------------------------------")
-
-#endif
-
-#define PtW32CatchAll \
-        catch( ptw32_exception & ) { throw; } \
-        catch( ... )
-
-#else /* _MSC_VER */
-
-#define catch( E ) \
-        catch( ptw32_exception & ) { throw; } \
-        catch( E )
-
-#endif /* _MSC_VER */
-
-#endif /* __CLEANUP_CXX */
-
-#endif /* ! PTW32_BUILD */
-
-#if defined(__cplusplus)
-}                               /* End of extern "C" */
-#endif                          /* __cplusplus */
-
-#if defined(PTW32__HANDLE_DEF)
-# undef HANDLE
-#endif
-#if defined(PTW32__DWORD_DEF)
-# undef DWORD
-#endif
-
-#undef PTW32_LEVEL
-#undef PTW32_LEVEL_MAX
-
-#endif /* ! RC_INVOKED */
-
-#endif /* PTHREAD_H */
diff --git a/tools/GenTables/etc/pthread/include/sched.h b/tools/GenTables/etc/pthread/include/sched.h
deleted file mode 100644 (file)
index f36a97a..0000000
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
- * Module: sched.h
- *
- * Purpose:
- *      Provides an implementation of POSIX realtime extensions
- *      as defined in 
- *
- *              POSIX 1003.1b-1993      (POSIX.1b)
- *
- * --------------------------------------------------------------------------
- *
- *      Pthreads-win32 - POSIX Threads Library for Win32
- *      Copyright(C) 1998 John E. Bossom
- *      Copyright(C) 1999,2005 Pthreads-win32 contributors
- * 
- *      Contact Email: rpj@callisto.canberra.edu.au
- * 
- *      The current list of contributors is contained
- *      in the file CONTRIBUTORS included with the source
- *      code distribution. The list can also be seen at the
- *      following World Wide Web location:
- *      http://sources.redhat.com/pthreads-win32/contributors.html
- * 
- *      This library 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 of the License, or (at your option) any later version.
- * 
- *      This library 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 library in the file COPYING.LIB;
- *      if not, write to the Free Software Foundation, Inc.,
- *      59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-#if !defined(_SCHED_H)
-#define _SCHED_H
-
-#undef PTW32_SCHED_LEVEL
-
-#if defined(_POSIX_SOURCE)
-#define PTW32_SCHED_LEVEL 0
-/* Early POSIX */
-#endif
-
-#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 199309
-#undef PTW32_SCHED_LEVEL
-#define PTW32_SCHED_LEVEL 1
-/* Include 1b, 1c and 1d */
-#endif
-
-#if defined(INCLUDE_NP)
-#undef PTW32_SCHED_LEVEL
-#define PTW32_SCHED_LEVEL 2
-/* Include Non-Portable extensions */
-#endif
-
-#define PTW32_SCHED_LEVEL_MAX 3
-
-#if ( defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 200112 )  || !defined(PTW32_SCHED_LEVEL)
-#define PTW32_SCHED_LEVEL PTW32_SCHED_LEVEL_MAX
-/* Include everything */
-#endif
-
-
-#if defined(__GNUC__) && !defined(__declspec)
-# error Please upgrade your GNU compiler to one that supports __declspec.
-#endif
-
-/*
- * When building the library, you should define PTW32_BUILD so that
- * the variables/functions are exported correctly. When using the library,
- * do NOT define PTW32_BUILD, and then the variables/functions will
- * be imported correctly.
- */
-#if !defined(PTW32_STATIC_LIB)
-#  if defined(PTW32_BUILD)
-#    define PTW32_DLLPORT __declspec (dllexport)
-#  else
-#    define PTW32_DLLPORT __declspec (dllimport)
-#  endif
-#else
-#  define PTW32_DLLPORT
-#endif
-
-/*
- * This is a duplicate of what is in the autoconf config.h,
- * which is only used when building the pthread-win32 libraries.
- */
-
-#if !defined(PTW32_CONFIG_H)
-#  if defined(WINCE)
-#    define NEED_ERRNO
-#    define NEED_SEM
-#  endif
-#  if defined(__MINGW64__)
-#    define HAVE_STRUCT_TIMESPEC
-#    define HAVE_MODE_T
-#  elif defined(_UWIN) || defined(__MINGW32__)
-#    define HAVE_MODE_T
-#  endif
-#endif
-
-/*
- *
- */
-
-#if PTW32_SCHED_LEVEL >= PTW32_SCHED_LEVEL_MAX
-#if defined(NEED_ERRNO)
-#include "need_errno.h"
-#else
-#include <errno.h>
-#endif
-#endif /* PTW32_SCHED_LEVEL >= PTW32_SCHED_LEVEL_MAX */
-
-#if (defined(__MINGW64__) || defined(__MINGW32__)) || defined(_UWIN)
-# if PTW32_SCHED_LEVEL >= PTW32_SCHED_LEVEL_MAX
-/* For pid_t */
-#  include <sys/types.h>
-/* Required by Unix 98 */
-#  include <time.h>
-# else
-   typedef int pid_t;
-# endif
-#else
- typedef int pid_t;
-#endif
-
-/* Thread scheduling policies */
-
-enum {
-  SCHED_OTHER = 0,
-  SCHED_FIFO,
-  SCHED_RR,
-  SCHED_MIN   = SCHED_OTHER,
-  SCHED_MAX   = SCHED_RR
-};
-
-struct sched_param {
-  int sched_priority;
-};
-
-#if defined(__cplusplus)
-extern "C"
-{
-#endif                          /* __cplusplus */
-
-PTW32_DLLPORT int __cdecl sched_yield (void);
-
-PTW32_DLLPORT int __cdecl sched_get_priority_min (int policy);
-
-PTW32_DLLPORT int __cdecl sched_get_priority_max (int policy);
-
-PTW32_DLLPORT int __cdecl sched_setscheduler (pid_t pid, int policy);
-
-PTW32_DLLPORT int __cdecl sched_getscheduler (pid_t pid);
-
-/*
- * Note that this macro returns ENOTSUP rather than
- * ENOSYS as might be expected. However, returning ENOSYS
- * should mean that sched_get_priority_{min,max} are
- * not implemented as well as sched_rr_get_interval.
- * This is not the case, since we just don't support
- * round-robin scheduling. Therefore I have chosen to
- * return the same value as sched_setscheduler when
- * SCHED_RR is passed to it.
- */
-#define sched_rr_get_interval(_pid, _interval) \
-  ( errno = ENOTSUP, (int) -1 )
-
-
-#if defined(__cplusplus)
-}                               /* End of extern "C" */
-#endif                          /* __cplusplus */
-
-#undef PTW32_SCHED_LEVEL
-#undef PTW32_SCHED_LEVEL_MAX
-
-#endif                          /* !_SCHED_H */
-
diff --git a/tools/GenTables/etc/pthread/include/semaphore.h b/tools/GenTables/etc/pthread/include/semaphore.h
deleted file mode 100644 (file)
index c6e9407..0000000
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- * Module: semaphore.h
- *
- * Purpose:
- *     Semaphores aren't actually part of the PThreads standard.
- *     They are defined by the POSIX Standard:
- *
- *             POSIX 1003.1b-1993      (POSIX.1b)
- *
- * --------------------------------------------------------------------------
- *
- *      Pthreads-win32 - POSIX Threads Library for Win32
- *      Copyright(C) 1998 John E. Bossom
- *      Copyright(C) 1999,2005 Pthreads-win32 contributors
- * 
- *      Contact Email: rpj@callisto.canberra.edu.au
- * 
- *      The current list of contributors is contained
- *      in the file CONTRIBUTORS included with the source
- *      code distribution. The list can also be seen at the
- *      following World Wide Web location:
- *      http://sources.redhat.com/pthreads-win32/contributors.html
- * 
- *      This library 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 of the License, or (at your option) any later version.
- * 
- *      This library 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 library in the file COPYING.LIB;
- *      if not, write to the Free Software Foundation, Inc.,
- *      59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-#if !defined( SEMAPHORE_H )
-#define SEMAPHORE_H
-
-#undef PTW32_SEMAPHORE_LEVEL
-
-#if defined(_POSIX_SOURCE)
-#define PTW32_SEMAPHORE_LEVEL 0
-/* Early POSIX */
-#endif
-
-#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 199309
-#undef PTW32_SEMAPHORE_LEVEL
-#define PTW32_SEMAPHORE_LEVEL 1
-/* Include 1b, 1c and 1d */
-#endif
-
-#if defined(INCLUDE_NP)
-#undef PTW32_SEMAPHORE_LEVEL
-#define PTW32_SEMAPHORE_LEVEL 2
-/* Include Non-Portable extensions */
-#endif
-
-#define PTW32_SEMAPHORE_LEVEL_MAX 3
-
-#if !defined(PTW32_SEMAPHORE_LEVEL)
-#define PTW32_SEMAPHORE_LEVEL PTW32_SEMAPHORE_LEVEL_MAX
-/* Include everything */
-#endif
-
-#if defined(__GNUC__) && ! defined (__declspec)
-# error Please upgrade your GNU compiler to one that supports __declspec.
-#endif
-
-/*
- * When building the library, you should define PTW32_BUILD so that
- * the variables/functions are exported correctly. When using the library,
- * do NOT define PTW32_BUILD, and then the variables/functions will
- * be imported correctly.
- */
-#if !defined(PTW32_STATIC_LIB)
-#  if defined(PTW32_BUILD)
-#    define PTW32_DLLPORT __declspec (dllexport)
-#  else
-#    define PTW32_DLLPORT __declspec (dllimport)
-#  endif
-#else
-#  define PTW32_DLLPORT
-#endif
-
-/*
- * This is a duplicate of what is in the autoconf config.h,
- * which is only used when building the pthread-win32 libraries.
- */
-
-#if !defined(PTW32_CONFIG_H)
-#  if defined(WINCE)
-#    define NEED_ERRNO
-#    define NEED_SEM
-#  endif
-#  if defined(__MINGW64__)
-#    define HAVE_STRUCT_TIMESPEC
-#    define HAVE_MODE_T
-#  elif defined(_UWIN) || defined(__MINGW32__)
-#    define HAVE_MODE_T
-#  endif
-#endif
-
-/*
- *
- */
-
-#if PTW32_SEMAPHORE_LEVEL >= PTW32_SEMAPHORE_LEVEL_MAX
-#if defined(NEED_ERRNO)
-#include "need_errno.h"
-#else
-#include <errno.h>
-#endif
-#endif /* PTW32_SEMAPHORE_LEVEL >= PTW32_SEMAPHORE_LEVEL_MAX */
-
-#define _POSIX_SEMAPHORES
-
-#if defined(__cplusplus)
-extern "C"
-{
-#endif                         /* __cplusplus */
-
-#if !defined(HAVE_MODE_T)
-typedef unsigned int mode_t;
-#endif
-
-
-typedef struct sem_t_ * sem_t;
-
-PTW32_DLLPORT int __cdecl sem_init (sem_t * sem,
-                           int pshared,
-                           unsigned int value);
-
-PTW32_DLLPORT int __cdecl sem_destroy (sem_t * sem);
-
-PTW32_DLLPORT int __cdecl sem_trywait (sem_t * sem);
-
-PTW32_DLLPORT int __cdecl sem_wait (sem_t * sem);
-
-PTW32_DLLPORT int __cdecl sem_timedwait (sem_t * sem,
-                                const struct timespec * abstime);
-
-PTW32_DLLPORT int __cdecl sem_post (sem_t * sem);
-
-PTW32_DLLPORT int __cdecl sem_post_multiple (sem_t * sem,
-                                    int count);
-
-PTW32_DLLPORT int __cdecl sem_open (const char * name,
-                           int oflag,
-                           mode_t mode,
-                           unsigned int value);
-
-PTW32_DLLPORT int __cdecl sem_close (sem_t * sem);
-
-PTW32_DLLPORT int __cdecl sem_unlink (const char * name);
-
-PTW32_DLLPORT int __cdecl sem_getvalue (sem_t * sem,
-                               int * sval);
-
-#if defined(__cplusplus)
-}                              /* End of extern "C" */
-#endif                         /* __cplusplus */
-
-#undef PTW32_SEMAPHORE_LEVEL
-#undef PTW32_SEMAPHORE_LEVEL_MAX
-
-#endif                         /* !SEMAPHORE_H */
diff --git a/tools/GenTables/etc/pthread/lib/Win32/shared/pthreadVC2.v120_xp.lib b/tools/GenTables/etc/pthread/lib/Win32/shared/pthreadVC2.v120_xp.lib
deleted file mode 100644 (file)
index b0e822a..0000000
Binary files a/tools/GenTables/etc/pthread/lib/Win32/shared/pthreadVC2.v120_xp.lib and /dev/null differ
diff --git a/tools/GenTables/etc/pthread/lib/Win32/shared/pthreadVC2.v140_xp.lib b/tools/GenTables/etc/pthread/lib/Win32/shared/pthreadVC2.v140_xp.lib
deleted file mode 100644 (file)
index c74e527..0000000
Binary files a/tools/GenTables/etc/pthread/lib/Win32/shared/pthreadVC2.v140_xp.lib and /dev/null differ
diff --git a/tools/GenTables/etc/pthread/lib/Win32/shared/pthreadVC2d.v140_xp.lib b/tools/GenTables/etc/pthread/lib/Win32/shared/pthreadVC2d.v140_xp.lib
deleted file mode 100644 (file)
index c2b227c..0000000
Binary files a/tools/GenTables/etc/pthread/lib/Win32/shared/pthreadVC2d.v140_xp.lib and /dev/null differ
diff --git a/tools/GenTables/etc/pthread/lib/Win32/static/pthreadVC2.v120_xp.lib b/tools/GenTables/etc/pthread/lib/Win32/static/pthreadVC2.v120_xp.lib
deleted file mode 100644 (file)
index 0bf3041..0000000
Binary files a/tools/GenTables/etc/pthread/lib/Win32/static/pthreadVC2.v120_xp.lib and /dev/null differ
diff --git a/tools/GenTables/etc/pthread/lib/Win32/static/pthreadVC2.v140_xp.lib b/tools/GenTables/etc/pthread/lib/Win32/static/pthreadVC2.v140_xp.lib
deleted file mode 100644 (file)
index aa2a71d..0000000
Binary files a/tools/GenTables/etc/pthread/lib/Win32/static/pthreadVC2.v140_xp.lib and /dev/null differ
diff --git a/tools/GenTables/etc/pthread/lib/x64/shared/pthreadVC2.v120_xp.dll b/tools/GenTables/etc/pthread/lib/x64/shared/pthreadVC2.v120_xp.dll
deleted file mode 100644 (file)
index 8977258..0000000
Binary files a/tools/GenTables/etc/pthread/lib/x64/shared/pthreadVC2.v120_xp.dll and /dev/null differ
diff --git a/tools/GenTables/etc/pthread/lib/x64/shared/pthreadVC2.v120_xp.lib b/tools/GenTables/etc/pthread/lib/x64/shared/pthreadVC2.v120_xp.lib
deleted file mode 100644 (file)
index 2d37814..0000000
Binary files a/tools/GenTables/etc/pthread/lib/x64/shared/pthreadVC2.v120_xp.lib and /dev/null differ
diff --git a/tools/GenTables/etc/pthread/lib/x64/shared/pthreadVC2.v140_xp.dll b/tools/GenTables/etc/pthread/lib/x64/shared/pthreadVC2.v140_xp.dll
deleted file mode 100644 (file)
index 4744824..0000000
Binary files a/tools/GenTables/etc/pthread/lib/x64/shared/pthreadVC2.v140_xp.dll and /dev/null differ
diff --git a/tools/GenTables/etc/pthread/lib/x64/shared/pthreadVC2.v140_xp.lib b/tools/GenTables/etc/pthread/lib/x64/shared/pthreadVC2.v140_xp.lib
deleted file mode 100644 (file)
index ab70393..0000000
Binary files a/tools/GenTables/etc/pthread/lib/x64/shared/pthreadVC2.v140_xp.lib and /dev/null differ
diff --git a/tools/GenTables/etc/pthread/lib/x64/static/pthreadVC2.v120_xp.lib b/tools/GenTables/etc/pthread/lib/x64/static/pthreadVC2.v120_xp.lib
deleted file mode 100644 (file)
index fc75f75..0000000
Binary files a/tools/GenTables/etc/pthread/lib/x64/static/pthreadVC2.v120_xp.lib and /dev/null differ
diff --git a/tools/GenTables/etc/pthread/lib/x64/static/pthreadVC2.v140_xp.lib b/tools/GenTables/etc/pthread/lib/x64/static/pthreadVC2.v140_xp.lib
deleted file mode 100644 (file)
index d63c31c..0000000
Binary files a/tools/GenTables/etc/pthread/lib/x64/static/pthreadVC2.v140_xp.lib and /dev/null differ
diff --git a/tools/JavaBytes/.classpath b/tools/JavaBytes/.classpath
new file mode 100644 (file)
index 0000000..fceb480
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+       <classpathentry kind="src" path="src"/>
+       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+       <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/tools/JavaBytes/.project b/tools/JavaBytes/.project
new file mode 100644 (file)
index 0000000..ed99cfa
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+       <name>JavaBytes</name>
+       <comment></comment>
+       <projects>
+       </projects>
+       <buildSpec>
+               <buildCommand>
+                       <name>org.eclipse.jdt.core.javabuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+       </buildSpec>
+       <natures>
+               <nature>org.eclipse.jdt.core.javanature</nature>
+       </natures>
+</projectDescription>
diff --git a/tools/JavaBytes/.settings/org.eclipse.jdt.core.prefs b/tools/JavaBytes/.settings/org.eclipse.jdt.core.prefs
new file mode 100644 (file)
index 0000000..3a21537
--- /dev/null
@@ -0,0 +1,11 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/tools/JavaBytes/src/com/muldersoft/mhash384/utils/JavaBytes.java b/tools/JavaBytes/src/com/muldersoft/mhash384/utils/JavaBytes.java
new file mode 100644 (file)
index 0000000..8317a7d
--- /dev/null
@@ -0,0 +1,377 @@
+/* ---------------------------------------------------------------------------------------------- */
+/* MHash-384 for Java 1.7+                                                                        */
+/* Copyright(c) 2016-2017 LoRd_MuldeR <mulder2@gmx.de>                                            */
+/*                                                                                                */
+/* Permission is hereby granted, free of charge, to any person obtaining a copy of this software  */
+/* and associated documentation files (the "Software"), to deal in the Software without           */
+/* restriction, including without limitation the rights to use, copy, modify, merge, publish,     */
+/* distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the  */
+/* Software is furnished to do so, subject to the following conditions:                           */
+/*                                                                                                */
+/* The above copyright notice and this permission notice shall be included in all copies or       */
+/* substantial portions of the Software.                                                          */
+/*                                                                                                */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING  */
+/* BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND     */
+/* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   */
+/* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, */
+/* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.        */
+/* ---------------------------------------------------------------------------------------------- */
+
+package com.muldersoft.mhash384.utils;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+public class JavaBytes {
+       
+       //=========================================================================
+       // INPUT DATA
+       //=========================================================================
+       
+       private static final List<String> INPUT = Collections.unmodifiableList(Arrays.asList(
+                       "01DCDF00414B3037B1B3AF661B8E96F8944D2873DB39312173DA9A36662AE7551F4F318C4ECB56B1F09743D99C2AA5BC", /*00*/
+                       "A81FBBC6CBBFC95439DE43648959EDDB1A641A0BDA01822FB52E6072669326582C5B1731AC802084C2EF10671FC79DD4", /*01*/
+                       "CF2A8D8E088100468B7E9B2089E268F6930461652C5D2DECF096E42223BFC8B98DD338964CFE0970269C342F7CEC60BD", /*02*/
+                       "B970A920D2ED0552010F894A254DA7E18D5F205F9D1A40D850C33DCCC3FD5F58B49F31BDE7D82C577CDE04F62A959033", /*03*/
+                       "49FAB2822B9C84AC34B8648CD68CBEF1E5121147BB4126DEC0B31F54B2FFE00F2F193DA38E8CC632058C984B429B8AFC", /*04*/
+                       "E07F9DA44D8C9942BE2AF9B39ACA65F25D3D8FB1466DC295C0051E3EC3F962C7F8FDC3CCD4CE2BB69024C0EFC6199937", /*05*/
+                       "A3111377EF01F5EF31F59B366C02A3FF61B82949760D16DCF6B958AF92BD3BDF7297AAEFEC69C0B2FE8A50AD9E8684CD", /*06*/
+                       "3D3DD0C829EA9AA03E77597EEC96C7A38FD038231E7F168464617B131FB7EDE085C99CE4C5405874A58735D41F19C5E3", /*07*/
+                       "8028628ACAF91B9A194A640538C9706404A15E018A4F1680F4BE1B04C2360955DFB24D4CEF581A203C59D0A0FD15879D", /*08*/
+                       "88F8E2ECE78AF1BCB46B6E22297364C29339F17F926B99F331293489B3B8F07C3909CE1649C9BCF10C46103BFA31BCE9", /*09*/
+                       "4D1A0B8CC7EFE2A9AFD7878CAD55E871C89CFBC858CF4153C4739486C74F75D60BF7192C130AC9F20084F2BC5E81BD9A", /*0A*/
+                       "4AFBE975014FCACF41DEAF8CFACC41E43C1EC23B53ED16E978B06EB30F1C3248DD11165D04285C726546D9B5609491E4", /*0B*/
+                       "FFD1E2E04DC8D26007B186948A74ECCEB5120E45121AC531BD0BC86330810C85DE93AFDDDB48773078DEB0DE6EB99196", /*0C*/
+                       "79BAA2AC3FDEBA55B1B7E3E1C92A567EA53F69AB4A5B0794F0DA7499954F6DDD58117C89E1132248D95DF5F794C51A6E", /*0D*/
+                       "89BC8A0C65091C33B04EEAEE063135C2F53267E04AB6E689B4C579B7207E8BF23FD31E51343CD2DF119E523E2F8197FE", /*0E*/
+                       "2E10CB1C6060F32DBC92E732A94E6B63F3220D831FD04267502C5F7414BCE87F89E0651DE91D2457759E56B04482D915", /*0F*/
+                       "43AEE32C6A84E8030C5007202C0BD7E3B4F464474205D32A7D17FC95DE386C06E8DFBF64567AA54555BD889D5853046F", /*10*/
+                       "687ABE14EAB8DA27397B3AB50D72C344505EAA6D1FDE618D61BE79865DA13F6917BBAB29B5E90E2D010C921972FA8B2F", /*11*/
+                       "8B7223A4F56FF453291B7B5CB98B6FE1FD421625786FBF7DE33D1020D0E8CDC8CA530C708B739E87878AF1F304B8A12F", /*12*/
+                       "7ECE1F24E56DD7112E0869241B2FA6DF84B834DCC459B2FDE022EDA6319E7D3B59839D8CA03C9928644790F491BBC774", /*13*/
+                       "CBDC6F49E6B0DD0D44BA2F8D0034673286BCC821586AE61CC7B7491285CEE55BED3912FFD97F3851F4AF0186BEBEBCBF", /*14*/
+                       "CA8A48E54ECCE516BEDF1864B7F8F506D56A1F60A4B36AA449B25AB5FE0DD9D921377DBB5E49FCE1708F64F5D59D99E7", /*15*/
+                       "E9F873A569AFE02CDA66BC05CA9973908C88174756D35385EAAAF16CF4FDA730B39F7A55653A3512F10AB727BC23E852", /*16*/
+                       "93E96FF8C5BBE2AFA47785420253E97C704B25D1F77D074CC0B2093F1470559C8D5BFDD4E364AACF550518673F5B1BF7", /*17*/
+                       "8DAC832E5BE81ACB588BFB202B7583D8A34D8A70DFD1D7E4D03B0627B687033EE3D0BE7EDBDC75CF818EE8C5B09F8BEA", /*18*/
+                       "8E3B02E1489D7D315336752B64E3B532E4D4CC795C580A656DAB08F313ED767E8E567E88FDBA36BF259490F1D8E933D0", /*19*/
+                       "EAB437D0D62CAA62C090AD28B982B003E255D768D25704ECA048511AF6256A43E79F078F4D498B5FC41735FB75B357FE", /*1A*/
+                       "70DA9FC3504FF29DB9AB1F388673FF2536922F4CD17357BAF09C3AB292E7E04A90CE0BC3D9BA13EC647C4CA63C918DE3", /*1B*/
+                       "D834A38DD1ECD688A97A0020DE46AB6A9CDEC7F6E62EA71F288A5A6FD74DC47ED44A2E2765CE50F1BB9B50B5DB9E4F3C", /*1C*/
+                       "C66DA90E41DDF2E65A3FE86F160C5C096F6AF0405108CCBEF938382EB627FC7F163DD634617F006C5184B1FEDC908497", /*1D*/
+                       "C95719ED07FCB21C5112DF043F6EE7EB50F9FD60012334CE589FA85104D96579B7129E44D71905A73314766E0733528D", /*1E*/
+                       "DC6C8014C5457CB8D635FDCD286A69B6D66F232CE27D01BF56AF4AC0F682EC0F57DF1D55B64328F5651ED4C52A87CACA", /*1F*/
+                       "26D9D1CC79EEC50269BF340A34B1EBFEFAA5AAAC8E397174D0A8F9BD426BCF6F5B131F464D6D2452122DD15660D0D6DA", /*20*/
+                       "6E389AEC5F51A22F7EF68F1C54C127FB986D4D46E0485C30F0A47B39E7CF8A311D398DFDB7F2A78F2FC651D1FBB10D2E", /*21*/
+                       "A44E4E8D1B49DCB007A4822049C2F343C40AC04A8D6505BAD9B91D3F0729B16CAAF39951B50F9015966EF5D3AD3F9076", /*22*/
+                       "EA78CBAC0EB6D009A0FEA6725A23DEABCE729C7444CB94D940A994626627AA0D37F738CDE3D018D54C29491C01CDB3C5", /*23*/
+                       "7C9792AEA745C87AD1FF5620C5BD8FD49ECA84E3004B56B95AFD3923C228B1D6E5DBF79EB3FD283B441712E354084B9F", /*24*/
+                       "E35D288BD8E249BC91776C1453A366E5F5D1E1684E95EFEC9108E117D7DDF60681B30F9DA2CE7C8C6497DBD786818C0D", /*25*/
+                       "C2F891FF45044BE075A1A76D2B87E2EB85CE65798AF3C2BF213F532B4EFD09DC0DAA1DF5A53A6C883028606A50D826B2", /*26*/
+                       "609A62616379F33AA339A3BC53E4516DD7AD92616A5ADBECD043726D86E924AA8555B564F4C2986556AA12AB31C1D6B0", /*27*/
+                       "CED9ED85C1C17BFFEB522325ACBAFFC204D3D8F4B2D15394D271504C04756EEA2DDBA4A91AF827F11F67D5C28F8002E4", /*28*/
+                       "8B9C08AD432DC08F5A7543E29796BBC734A6DB5B3C1967DE016E3BC2A2804EE45B9BCACCE5172F757549598B80ADBDBA", /*29*/
+                       "6F3FB117C5CDD15516C3B0A59CD6EEC5D9A1A411DE538769938C54979F4AC37C3737BCC1D55284DB6CAD9F8AF9156BB7", /*2A*/
+                       "EBBF284F9C75EBDFB383EBB406753DE8AA86127AEE7C403C10BFDD10523DE027138BF6C4EB4A8A13B1EFF67DDB78B067", /*2B*/
+                       "F6D1138D7AA3DA5EBAA8098D8FB66371DAE76D1B8B6CAAF2400F1034368D1EDC7C937F5172E8D2777D05BBF83CADE6EF", /*2C*/
+                       "0E9C2EA6CF34B0819036B30D58F60BA0DB3A2C5848F08BCAC87AD1B94250D5647C892E09EEF9616626DB85CF571085F3", /*2D*/
+                       "251EE3F58718C12AF9438D81178A2AE4F0929A889039A8A8F06B65225EBDCCFD2E4D14EDF7BF73C6A9369895BC1DFACF", /*2E*/
+                       "CAE302B41D6979CBBBFA5A58B51EE6235113B99DC81AB52F6093795BEC17A0568F71FB4D2E5E355E762F92EDBA34A2F2", /*2F*/
+                       "D130015265A4D9FF09BEA253D71F26C881B6EAEDC46521E6FAE268165682B8A9A89C3EC4774AB6230D2E45E055219DB2", /*30*/
+                       "2B560284C3A692AB37008AD0B379A7B8AF11CD2C30F90BFC7FE87A250F2762EDC3FBD711647242C374ED8264F6B322BD", /*31*/
+                       "28195CC8A7AD394353CBE808464C4FC4D58E3D7A765F8726D83052F60185AA4FEFCB0D85223BB4E75A31305E787FAC28", /*32*/
+                       "725D0EE230F195439091D2C6BDDF34E0E3BE49C6C275460161BE300BA4AD566B02D79D7551FA7CC16543910F5F1CDA58", /*33*/
+                       "4099ADC44481B43FFE1361922FD9EB81A989C09E441FCEAC449B3A13D3CB901945A9BE396F201134DC1AD05A046633FE", /*34*/
+                       "1A563A6D522F3E69BE589E079F475A9E75A2A9638E4C0038DA3B6202577A0362211D3F1E0D727AF65E1FFC529AD99233", /*35*/
+                       "47B61E86C6D6D01B437D6F83ADADC318D5A361028DED738CA00D4C630425164B1A69AFA5AF4C9DD2F99E1C67F951B582", /*36*/
+                       "A66A7740B6BDEA79FEF7FF1496AF80A305AFD43EEACD898CB00C78ED31AD71340ED31A1AD784667374B96844161499BE", /*37*/
+                       "46FA8D6CCBF6D12E31C2FC147F303956707F4401DE5F067F3AE5FEC7E33594E928E39F8A63531714B7B329EA1E9FCAB2", /*38*/
+                       "EFD8F755825C78041F5A93870BD30CD1EFBF894671FF871628ED617FF22BDA58411289CCAE5CB62E95DD42F41801F2F9", /*39*/
+                       "A8525B8645FC59E175E62DC00A5F7F0C09C56785210416AC50EF76E9B30D76262B3B2CDC19F5D665A41297CD11D8F4FF", /*3A*/
+                       "EAC99A649EEE5039A593C92F143C0065B314735203071206EA2761A0C764A4EC02AA7FD46CAC25B3C68CC182A96D03BF", /*3B*/
+                       "B2873F024EC83CA897470AB8FD8853EB18FE15C159B305BDB0AB08F687EAEAFD510A3FDE73602E4303E1B84DCCF0FCF0", /*3C*/
+                       "D85BBBDC8033C0D89223D9C39CA9F34F7D3BCB6D5B63C3FD1C30F974DA0C0FB58B24BC9EBEFB5143C58954925B7B84FC", /*3D*/
+                       "6ABD7C2E0844D7A7CCF2EA456CDF530DE8938CF52B3921B8BA023CA2F281657CEC635DA675D1EDAEB4AA52F22EE1BE6C", /*3E*/
+                       "981C3AC677CB59046A92B54C84877B49745BA6BB40C55815B7AF550D22A371EDD5E8BD87C65F537467874A37F0F538F5", /*3F*/
+                       "C23BBA2A9DECC0214E610E930B0E34501A681AA91477577E38A3209714EDC3760FD15563EEEB4AB67D57668A01D42178", /*40*/
+                       "6AF88CE145A098B51AEB858CD88B8B46E8B733AFB8E2D6E8313FAA8C10A7EBFA127D375E77557CEA96BDA2F70B2F2155", /*41*/
+                       "EC8903978FAFB636C7213C425C079763760384036AB6D17CE0C63A26385F1F49299877D6811A6DF5876F90FC5304B88D", /*42*/
+                       "A6FABBC2D6E0BA169B70C9640080E6BC29B2D5265598B27B4A9657C726E4397EA801CCC6766678D5800EF7CC72619998", /*43*/
+                       "235931A8CF5490BFE798F98E0E8F879FC6EEE29C38F30CA7929A79F2D53E002488F2E12749587A450B85B28F38891965", /*44*/
+                       "165E0303E4A4D82767994F42D1E8436AE6CC8BCF6E130D1B50101711709DDEFC373BDEC40CD0532840B274A4AA5109F6", /*45*/
+                       "A9F88BA008FDF8C8ECC897E3476EE05ABCE290AB69D57A74FA44DB1811E3115D6267AEFD64480C882697D04A2D3AECEB", /*46*/
+                       "C0782AF2ABCD331302BA1290F2F9627363C82F1A56ADC2B910F8E8C03EFE51C4E3EB348625CCAFFD93D607969CB8E7AE", /*47*/
+                       "CC6E179443E58FBCD21C93C655A7B8EE2B9834A31F2B8BA4C83B69516025ECEE9176EB7B427AAE948CB65B9E30B7A76E", /*48*/
+                       "C1A33A0AD6EDD98918B3C5D95813B5F7B024BD263B359A8BC8C17C2216A99B5071F9A11D582377293AA67C7618284290", /*49*/
+                       "99B7465E09201C7B9AF89FA01CA4FA81FC2EC63E761AD123E2A9A39585B17D1408394DE529F94E81479448E69794FAA4", /*4A*/
+                       "23CA3D1C4CBDCABBE3265436CE1A37E41BBF10F69E8A4CC905A66708048F5C4DE259DCDD9C5BFEFE439E65FAFD936EFD", /*4B*/
+                       "A24D73B6978F719C3F53F343CCB0BB8EBE3C72769EE07C6AFACB9E539CF558DD67B91D4E30DE986A1DB913D11698913A", /*4C*/
+                       "98BD4E140DC3C3C6142B1592BF3263E8CDBEAC59ED095B0E900763F0F625896AE213550F30324E398A13A4417A803195", /*4D*/
+                       "2ACD98ED8C6260731CAAA6B4C4CF323804DCB41EB677EB5DF88B5844A8105B68981D9E951A061A4DBC9471894C878EDB", /*4E*/
+                       "4959FEAD5D6C2DBD6ABD59E28C50304906D2C5494CAF8B3470E4541304A4293C520F3416CAF2F503B23D09D92613DB85", /*4F*/
+                       "26B5A815C32D17912C99E7555BB033C609CE9D6A0002514FD485282B2B8D79979C5B792F4A4A14C6851D9D02DC0BB4E7", /*50*/
+                       "62FEB6CACFB060EC9D977D69D5C661EABF08EFD806D8155625F1EEA460EA5718A25346B51F5A9665D92F9ADC358CA274", /*51*/
+                       "27E63DFC63E8FFA6CDB9CCE2CE99FDA3979D5B754974830D3298C8407D6693BE629D5FADA39B42B72654D31271CD84E1", /*52*/
+                       "AB1FA4DAF66E583CEEB6B7A236D24766A90738CDFDF5C6B328CBA9E5648E2D4CFDE5BF6C0CFE0DA39D00B863D7D78485", /*53*/
+                       "75FBBF094EEA16AA48931F027CD729F25D360679009B2E7FDDFCD148BD3DE21A4DBFF544B094D0E19C0E5C6294352C22", /*54*/
+                       "283A27FF968853D2B0960C6CEA0D03F2172BBA07A473DB38688C87D296E6F4BB5CB7E9BC5D68CF0F57A5D71B0E47BFB4", /*55*/
+                       "DE0108AAC1E4FF2FD346CFABEAC62B99B72E203F98B5F60881853D8CA54B29BEA6AED7C89FAA1680D2093B155C39D7ED", /*56*/
+                       "0BAEAC99D4974B84C7F258A699C9B4DA6F622C5E4ACCF5C158AB397D9781BEAABF811F67E101FFE3AFBCC2881C3C0EF3", /*57*/
+                       "26B211FB518D6C3E64BADAD51A10784AE6BE4E06A587186CD471F5C61343CD5C8389BB0DD6AAED5DC88112678914A17D", /*58*/
+                       "2B2D0BC3BB88D27DC5A7D1FAFF517AD296F39056A09F82ADFB38A61A6CED4D4E9D308E4EA6F9B2649097CE294AECC6B3", /*59*/
+                       "8FCA2B950690B1A2293EFCBF03D422DF8C9125B3E76353AB3D402092A1A701739BAB974CAB9BF6765EA8FCC55D8C586E", /*5A*/
+                       "408C92E8C2E1EC8C4AF4C914B71B43505186AEE0CDFB10692385EAFAB9657C67F708E4D3C898CA801EC8B9F89884907E", /*5B*/
+                       "46E8958B6A2C18782172FD410F78A6479D8E9DD83A299004390913C3265AD025D231F1E23077CBF1E7EE3E574E80D7F3", /*5C*/
+                       "5A8567A3D85E40B216ECF161133FCF7352DA5C6FBA3C0DD756E57983DEB34BFB83254FDCB768D1539A14F95F35C6B82D", /*5D*/
+                       "498A29C6E19D4AE62EF4AAF46027BA11BDBA7DAA84F39505940B2A04F6DC944D4E7ED35610FC0D53BADD94C2907E59E1", /*5E*/
+                       "14DF0FC43F475F8017E2AA8D264BF82F92625BDFE58B934D8384F415A4ACEA818E9C5EAEC5D8642B4D8EF55F1C826687", /*5F*/
+                       "4A2335C4F77128D9544E1476D29ABA94654EC86321785044B04AD9B02F80445AB0E01B6480C8D020596E325E88A3CBBF", /*60*/
+                       "896955157448D0620DB08C4C0F236D683BA8FC5B3CD1C4A204F57C53E144535BB7D04DCC7BE468404BBE993192334646", /*61*/
+                       "1D7837E6AB02CE273EA35BAED4493EA4D1CAFDB5DF94FABE98B580BB62170C4FC3C57A6CA9421C4368D65FC2C1201634", /*62*/
+                       "FAEABABC48717536454251E8F62F7315B318E8A7FDCDC5237C2E832013C913444D9E5DAFD169905212262E8C870537A7", /*63*/
+                       "8A3E5D0BEF8402A2A33BC5FAFA01990963CBE8ACD00762F5EA26A3F1819841786EEB78D1BB4AF6BB7ECF9671300E845F", /*64*/
+                       "0811B67CCCF5D0FC9F8CAB3F3496BD6B57CB7D24F1355C2D58218594165BDE80FAF3368A653A78F8C04CD80176267762", /*65*/
+                       "E6417CE75AAA23B034A7BFE3CBA617618C13E396F8C9B6ED5C9066464B09ED6376CB6A642C5CE283498E082A3EB449C6", /*66*/
+                       "6F2ADEA6357B5AA054DA382B15557B69302BD81946237AAE8F0CBB82111EFEDC45DD2DADCE20F2D38A77A5E9E8A2D1D8", /*67*/
+                       "E1EC332735862A2892B68B1A7E9C7C44F45618DC99E963E37CAC984502DD1A73C8650598CD70840D9A5DA584A26D4EFD", /*68*/
+                       "16B19B010740C15CB4544AC01016439A221F749C9E2F99A5A63E8A279A65570FC7231669ADD072ADC5BC35BA740BC801", /*69*/
+                       "6C44E75A4F378694D27ACE108A57764717C487FAFA7E15D66A3654D5C8E29EDF0CE35EEDCC611FFAD88A8C03C0095093", /*6A*/
+                       "CF106948BC4B1F2C91C0DC9990B99712193B21E3E109AB323340DE0608DD16668A5BB677BF602828402C410B1197B771", /*6B*/
+                       "EB080FF49CA5543EB4B9429542D6CA275999D45DC1533205F7EA9E398A1BEF3EBE8817775476DEC617064D7790C84100", /*6C*/
+                       "F3328E9150A7F8D652E3E61B04ACFDF851D82010F3CEB01559D673336676D5D84CB3BCEF1D91C3420C589AB58033BE49", /*6D*/
+                       "54B8E70EDCE038557BB590E99687FD576CFF08688D2B1FDDFD0F6D068BFE994FEB9BCE302489AE4466B21F200661E3E4", /*6E*/
+                       "2F5E0060189669AD473AF1D03C00CAE40278299268D1F3B4888714BC3A7EC9D29FF9C7F071EBD2D9875A5DC25DFFDB10", /*6F*/
+                       "E2A97A3E468399D83BF7EACA32C80DA113DCAC8EB6C2231D227EC90E1102EE97B2344832F03814348613888303B190EB", /*70*/
+                       "3A3D3B6CE026BFFE18D4953B9A68ED5924BB7B574AB777A0E0CB7DD64983DCB1CF768C439869AC978062BC7A900E6033", /*71*/
+                       "39D4C3B78A7A33C743D72EF22AB0B4EB54AE8184DDA503940C2A7DA083C385369DBC6F921D4AD8222CBB61FE182EAA42", /*72*/
+                       "D8CE9A806C0BD24DF69D65A65845727CC3FF81CC76F2B04876B1FDC3CA67CE58CED0970AFBCBE78A57502941B726F5F3", /*73*/
+                       "E006AEC17FCEFCF905CAA1629E003591B7050CC99F585312669260401E1594908442D25AA757CC5A228655CD4038770C", /*74*/
+                       "93EE8D67D3F1F3A1BEA46D48DBF8D7F43C91F02B8646453C6C3D7C1F04188A58EFA97287F89CEF84CB40364E108BFF4B", /*75*/
+                       "C6DCE3730D4FF82502AF54F87D9727907D69D20F6F4F788F90C255C64C166E8FA3529FBF4BF9C9A23ECEC41136694F6B", /*76*/
+                       "3DE10A5EC6CA7B3F7E196081D085ACAADF5F0DE3705D60F7393E7C83DCC57075A5F33BC2DCB98F970AEB7F050D1204C0", /*77*/
+                       "6F3B3B3D11A8BC05B52269AB2B95B8DC12EDE24EB1385F13202BBA6B5836B5E1EE3636C5925ACC4942224CF6EEB509BF", /*78*/
+                       "5F0CC3BBC4BE9A92584313FCCC54DD2EC11FE90F003940363371667C72FC97239611990B62AC8D9F4CFCB9EB3C317FAD", /*79*/
+                       "CA8E520A894A3FBABD9ED1B80098CC40BDF24507DFF3757C47AEC572E68D35ECF3D4523D27B373E41AB11E16973A05AB", /*7A*/
+                       "FFC293A6C26B817D2C9E9D134959D8287FA5216408199BBFA6F002DE0DCCD861BE8F9DC57F2CF35D1352E2DF86A47647", /*7B*/
+                       "84B55BE101708E743ADEC53721209F3EB18F9A1E68DFADBD09A050819774CF2DE4AB295D380A8762A3605B0C689C239F", /*7C*/
+                       "DDC7031FBFDFFE8F0B175DE65B832F0A31162ABC6571968551215E534BBC36B19F2F7D3B5D01AE44CF43A2426E83B61B", /*7D*/
+                       "7E32DB672B16F04ACE6F45DE0E6AB78825718548B8E70B41D7368BCF39A0FAC4956863EC49880C47720E335796341674", /*7E*/
+                       "06707A8E33D9D6C6B684BFE26CD576C644F47E5ECD5FC46CAF1B23A856D844B798A627916AC5657E040C3964A1127E19", /*7F*/
+                       "A5DAEC3134C0A39B0CA04160BD5ADB1FB50EC5A9F29E1ACBBE2FA1126AF7BFAFBEFC0AC4C9C5A4B3994739C71FB1EB29", /*80*/
+                       "6FEC2D343E83A7635BDBA5715757F50CD6F6282EE46A11B3A8B501F5922A5524A782A21006B605CAA10BD2E896975C81", /*81*/
+                       "B8AAE0532226D0ED891831C0470E84B774C824D648E8FF28B5E4E02EAD3906EB5ABB086ADA60A713A80C57666A9E29F1", /*82*/
+                       "529E3E52B1E7230A0C148861C9F08E260CFC8A131BAD803D8C09F324902FAA9F0231EE49879998483B0688492E2B5457", /*83*/
+                       "EFA6EAC5036814CD02773C1F8DAA5DF50E4EEDBD0702DE31BA7FD757D0D740EFA8805F0C74005F8B1448467BFF3E1EF8", /*84*/
+                       "2A07B766016AC70D64215C35364219E9CD6F7EFE35FCF6F1F05CC06084C29267AB3BF2F32579A444AC75F42D9A25B9C9", /*85*/
+                       "EF3A14B5EDDB84642314E0802D2DD0E914DEAEA9F928762A5763EBB480E15A0225F7CA14E8CDF5E68E594510DC61E6BC", /*86*/
+                       "E62C38DCFD21000B7BB32AE917EE3DA7E49F15E24CC9B65656E28259DCA361D8B43B8008A9285F480DC6B4AF7E4AE61B", /*87*/
+                       "703C64241142DCAE732D33342C45063A37877EA1624567CB2871D534614DD114E748092A1D94F5D14524056F0C6D1CB7", /*88*/
+                       "E325B1823A595DF9742D0DD5C96F397C44361C9540A9F45102382F9BF6331FB98ECBAFBBE91A0467528EBF3811F904A8", /*89*/
+                       "FD2BC6534631FB0D27A5F036FEEB9A6CD0F876D7911D077512EFB3A29C6E0B72DC4BCA3D5E871DA1028FB6E6E608F46F", /*8A*/
+                       "EF17ECC8930A7B4A9D97B34672FB273DC6AE835F35A25D8F6C27469530C21F5B2FBC16A26150E79502AD93AAE0B5C71A", /*8B*/
+                       "6D24BE43CF07DD5663681D62A38D2A2F9872C9B411724AA0B882B4857C19690A87B1BA8D2804C6F4D7B199CC36F40B49", /*8C*/
+                       "EEFB8D8573FD9E0F933403199B91560AFF0DB41665D5248C322EE105EA984196DB8CE0F83890D89B3A32F8983C901F80", /*8D*/
+                       "082CDAF93F215BAC67C118A1B9274FACAF74501CFB93198A53525CABA0E812D3C9AF3A005EFE8A6EF242DCB60DA7B2FE", /*8E*/
+                       "D3887FBFBB7314DFDDDCCCF0F720C342B2C4331C33C8C4151666010767F4785B8455B7C1FD5DE487A821C5EA181875F2", /*8F*/
+                       "7E289831418562F02AD12E3042B185C37C20D0D735A6AE96A68BEF98E22CBD41A1411D22F8D93243D813FB404F3D2F38", /*90*/
+                       "E13FC0A76F6642947E21C9D9F7FDDDCB161E68B366D6B1F855BF957EB5743874B23213EF8364D766529BB98AF96643D4", /*91*/
+                       "036D7ADDAADB5C330525835F802D032E7DF7D0D8D7A2BEF284927644B27696B7215E21E4D1F9B5B977743669C40EB7FD", /*92*/
+                       "A9B3534BE88977845BFD4283541A509097AFFCCD121C9778C146C4C9637989C70820E72FCBDA59C75526E2F4A0AE4F4F", /*93*/
+                       "A4739E20FD72BDC26D6EE5A5C1A54CA670A97A6FCB884E5C2B6108339E979C4893A63730D6BB23A75B1DCEAB00045EE5", /*94*/
+                       "427C14E4F88C8BDB1D8630868E039BC233DB40A251502D1BE043C9CCB45D2B3D292B67B6EE077B2D1C3A2FBDE24C742A", /*95*/
+                       "3DED69F37016D86A9A947B13AC66D7C3822D8645DF4CB39C2BA20F98F19E10DA6703138D422AC4C48D34D6138FA04A1D", /*96*/
+                       "28E59C8B257D112C8747068CC5499FCFD6C16EB780F9191AB416151633F7AF08A230E00D6BA1A1C3FD066FB9965B83D2", /*97*/
+                       "70F4BC1B7F8FFC3738DC0331E56B0FDCA9AB7290AD2B0BBDB307973C3D0783C6BDC455F6CDCA111F23F0E08317B8F0DC", /*98*/
+                       "0AEEC24E9285C50F3BCDA47833B61ACE839986F959EE0723C959034A8D7F5EB9D4AD7E05B05C4FB56C37A3D39F7A0EC4", /*99*/
+                       "0227B7230FBF2D0728D7D2AD632BED4707BD8F8B5012EFD048A0D43AE04034429B8939207F1449A1351EAD01B9FDF219", /*9A*/
+                       "A7119D2E311CEF251E532CD0C4ED04792272F878D8D30A0B769C412CED9C4C42262FFBFA65CBDDF5DB73D86721EA368E", /*9B*/
+                       "4BDBE90B3FBADCB21324EC3A8D6FEA576D9EFBE530850D00401A88AFF8A4C8F4655CB76B8A2E271C35505B6DBDE16F43", /*9C*/
+                       "6E15E57E23F570374962737362C1FA26C962372D1829B80BA1FE6832EA4D62116726E307F96E776304C761081677505B", /*9D*/
+                       "42E2FF3A8A6FC164FB85B2BC9D28B268C559CFF024533A282EC83F3911DAB3CEAE0FC74A9D736A27DB9CDD048BAB4CCF", /*9E*/
+                       "D79C52221D20E765499EDD73903CE7049B016D987DF48349FCFAB44AD12FC5C1811293F3B800FDF9511DC619CA53CEBE", /*9F*/
+                       "A059EE78B826EDDF4673AF294D17C85A5E527D4E4DF282B5DB5B9A2693F95CE36551D304FB54F296AB3EB70D65912FCC", /*A0*/
+                       "7D0C4F67B6C78135390CAEA7DE304D3749E19FABC8D494FE1A9E1B6437A04516886CC4BDAB6AF35A0529217344F502FE", /*A1*/
+                       "3CEDF34141B52CEE8133BA924753573FCB32BE22BC66025A0C480183DE403CB3BF5B84B427DFCF317251428DB0232156", /*A2*/
+                       "86FCE831C58E25CB5CC43FFE45CBFC7533877CC042F199BE1212FA7F0CC22E1C448EAB4B7D1F9823A7B1363A9FA7599E", /*A3*/
+                       "2D8C2FEDA0E5106D192E366838BBEB3F36226AA60ACEA0AFE7E1285DC1F3926A900371FA1883D9ECBAC33B1AF360EB66", /*A4*/
+                       "D4A2A11612BDE0E382AB0DA614CB4CB8189A4D50AC01F4C6E36A5DA1D9F6A647E43120D6B16B11B67D395F4236E75378", /*A5*/
+                       "C0C155CD47F3877F4B03BFE5C334CA7177710F1F4B844FF73443BBAB720E8DC5F03F8868C58634060FD60511C872EB50", /*A6*/
+                       "8C253DAAB52863069AA438F54A6196AC181D08C723A22C5E633C49C88E3910A1C9F54A67992675B01FDD98ACBD38D976", /*A7*/
+                       "A10893DA7575A9F78F5F4A025AB2A018D80538F0336BFFC00F9751D33889626F30383EB925BF911AE6149F68CE19CC60", /*A8*/
+                       "B9081DBAC6BE0598785DD9BC69C714928B035A0CA56E172B8946783500724888AF1E57C958650569E1DE4E944FF22261", /*A9*/
+                       "EA5EDC4D2718C0D2CB1C5D4DA15A8AE4C6272382F816301594A934E5057B54CE658E481A3D68D10DE8F24929E50A46A0", /*AA*/
+                       "7DF146281AF482CD014B68E726407B066CE564938C70DDBC36DAD2DE72A5DAA26D573BF69C0B2980684DAB14B4AA0329", /*AB*/
+                       "9C69DC064E738B5F83CC16BD5A1C36F5A99B365E6E141B122748FA5AD0FACCE826D073A047D99C49B005B182505B0C0C", /*AC*/
+                       "15B6A2A20ED0FD1C9333AF729BD65A2522CC333293BD2C1BD724D949B15E8BE169D0DB0512B9711785ACA8980DD7653C", /*AD*/
+                       "230EC629D77BB3F243115B991D297CB2A2F955792C53C76F48A76728EBE25BA77CE662A405384400DDC06B7E6BF49D66", /*AE*/
+                       "20DDB9BD7644410B056391B1FA2E8C06CA4EDE51CF167C0046602B550536F8705040672597C21FF40AF8EC6E8AFB844B", /*AF*/
+                       "0023C5749251B883335A4F86D66B7E00AE353DED3EFACE8F3FC80526D67B35DE0D9078FBDA80BC53467900DFF3FE4C14", /*B0*/
+                       "0F9CB2BE6A448113E38D541B6A9A5829673953DAF354FC0E3C818A277F8569E98D16EA77DB122A3BE40A860318B6EA84", /*B1*/
+                       "78CE11F42D7D5E5084F76DFF199C998D999B578E3AE935CBD9FD092C1BE6321231F33C63ACD316D85AA08030B8D65C0C", /*B2*/
+                       "0098DBE19CA84FE9E2426617D114213763C3C4166A78E21B74B145353E03B0E4F43C0824EAE508C458C1E6622528602A", /*B3*/
+                       "9E27EBE6D1426A6F2A6A600A6B5FA3428FF7E2306BA90370DF83D91A683EDDDD29572442F0225388E9CC0F1B6437320A", /*B4*/
+                       "054DF380E896064EFAB81A4AA3AD88A4F87426486CCA156FBB1B3C82374729607EC0B87CF73F960A5C57D7E6470F7808", /*B5*/
+                       "5758E103AC614A1A766AEE86F81358DF203FBA51DC74396A78C93DF969C5721FE69E32E230196597E287C6CECD8AB95B", /*B6*/
+                       "2A06A7C10C0DCC9799D5298268A6745FF2D818BB774858B3D52A820D4F64D8862F808EF87A263981BB91206E6347C676", /*B7*/
+                       "0847C6D71CE0C74686FD451B447C1E11C20623B0E2856FCC3ADDFA2D0398181E6736A0A06B336B46D1C70AEEB2B1257D", /*B8*/
+                       "5633260D141A9776D530805F596CA3DB8CE33EF69437CE46F62D54E97E747088DF5C9318489B45EAA4AAD29F0BA850CA", /*B9*/
+                       "BDBD7B16767F6D9FF7968427F1B7B6DD58C76599B35276EE286F4C7F6CADD7918188C0401742117BCEC4F1964266D163", /*BA*/
+                       "97E4E8A6B5135B248A8BD785E52979774545C1A0975BC5BB13FAE3BD9F59E37DAFD5627C0E91DE2BA223AC778474E1A9", /*BB*/
+                       "DE1BF1EAF86C6B3BA246A3ACD50035FE6F80179DD96A21CD3F8DB7CB17300D03497A798B5D94506CAD52DCC6F61AE841", /*BC*/
+                       "F4A4E1D08E1F440B5E27633CD56422E01465C14F1DB414209A939043988D37C2CBE65CFA245DB3686340AEDE28DDA855", /*BD*/
+                       "1F7AB65A3F892454D70AB4167EBEB5A19B2631E824C2028DD5D97BDEE31519BCEA2DC77449E4058CEB204F2D6D2FBAFF", /*BE*/
+                       "6537E69171A2665D3FD2F835435A3F23ADD5DD3E622D6C8AC522CDD5E5E243F85AEC27F3DBFDA8A2477A65ED570E1445", /*BF*/
+                       "3BA7CB01D32E9D639E335734E7B5416B0ED96A84F94539F645CEE2E46DF5A70DDE142EE1E9AFEC1C78D6121C4FDC72DD", /*C0*/
+                       "7BB30AF653390B772D394F2B7F8F7BB60277A3C213AF34897DF6E674DD56D0845643CD3073C42451FAB15F8BD1A1DC18", /*C1*/
+                       "42B453ABF5150D8B913F109C1188E18CC27BB7631FB43BF9EBDDE685EF10841976D67C87C56D33EA95EC73C0AF40F084", /*C2*/
+                       "BCE43D59A1F50BFBBA7027CA04D84600FB6FDB98A2BE644BD5DE777E993DED4AFCA39F1EDF710F3AA5E5893C858D8841", /*C3*/
+                       "C68AC776E6AEACFC538067C7866106EBD27B4A352F4EFDE3847DA2B3BF01E3783C79E3C136926D58F957BC8726AA1610", /*C4*/
+                       "95492C4203C7C6120DD60DB1EE8321FCE1D9EBA902F62B42EA2DBF7D0E37A4F2E11FB9098BF5DA48DBFE213F818EA338", /*C5*/
+                       "17CB21316D4756DDB88952498140146A648112F5808442884947ADC3F7D58F35651CCE28E26A53770B3803DAF337F89B", /*C6*/
+                       "BEAB16E2DCE6B6E38F39ECC8E39172DF607CC9553FF29C0E4BFD15154F4F0BA7EE6230B6BD408CE435B654110D164E99", /*C7*/
+                       "ADDDFF1BD2C11CD42A1A262CBA6E1AA00BF2291D09475A464C93A0ABADF4DE3273EE8E1327333E63F3AE2031F5D13B28", /*C8*/
+                       "246C7CABB2D9A55C50E9C7282C1EE0F62FBDA09565A0D3D7196552679C04A4EB137C66DA29A6DD8208A76B6B4BDA56BF", /*C9*/
+                       "7CA3C59BE3E286106ADD75CF1F7AE24801747450737A6435A1F2259CB2B4923BE0C8F55E8ECE7210D7964398F350B69B", /*CA*/
+                       "E045864ED1825101AC54969193E1A1C523D85A934D0794C7B4FA88CB734A42137C5CBFD6BDA3D5F966607FE938748825", /*CB*/
+                       "BAF36FD2A180D481EAC440AC1B9598F79AA24D80FFB7B06C79601F517358F163D1071831418BB63B819609A6AE7D3A03", /*CC*/
+                       "3E9152D8CDBAE55186AD793F203DD016BE3AEB778AD4A8912810254DD76B66189B5DCDE36636C3270A8AAD65868BC58C", /*CD*/
+                       "6D0672780D93152AEEE705247B8280919EBDB976F137463FA7DE3E73A2D0C1BFF871A00BA0046AC7484C96A803F23486", /*CE*/
+                       "0FC7BCDABB06BFFBF75C3FFB3D6309B3ECA305D103109162373F503B204FFF61CE332C9F54963FA29A4420A52242CDB4", /*CF*/
+                       "C71D481179D198C1505A2845CEE92569F339BFF6DD6755B58BEAD52B8DE892454B686E65920DCA2B99593FA43EE68A37", /*D0*/
+                       "D90A68D717E615019BB920AEA19161A62F3D6F96D90EB1E4DF15ECBA10513D7DE6E5D539B4F01831C7D17A7528FECE36", /*D1*/
+                       "A04FF0BEB4EBFBAFE5E90A5B3DDAA3CA8453542209F4A14580A6FFD72BB5A70714E0C4705A1ABF6AD699EC1FC18A677D", /*D2*/
+                       "7021A124E3181575DC7AAE2817AD945F8BB5521E7F0D565A6671D3792F0805EED3888EA394413A1ACE4D7E47B55BF9CC", /*D3*/
+                       "22F440263CAADE68E77BB287772EAC7B29493775962A40E91E06A27FA68CB91BDDEF02932ABDB9C779F03B88DC175233", /*D4*/
+                       "65F6D517B53E239197DB65A2F00B1C391D77AE9B85AA485519133B9B3E9B07716376D9F11A7DB3D4949AD02F5AE16184", /*D5*/
+                       "FE4434CDE09D923B03B0FCFD713B70522D713290D4A672382B56946FF629EE9660A15D01B2B3C4280B1D5EAF793933A0", /*D6*/
+                       "BC40FCFB0E0D494BA31C4648C7B3D1DEF1113C219A07EC8D2378BEB1A5C2BD1C190CC3478070A19463DAB6E1CCF56329", /*D7*/
+                       "901B6B9E82BABF91872A234C45D610016CA46A95C1CC6D6C22779315E0F0229560A59396346BE6ACFB67A503CB488846", /*D8*/
+                       "50D440F74C97660BE71ECABF64EDFE0C80201B895718CE22A05D89804D35D3068F700402A2B0D086326FCB334CA4DFC0", /*D9*/
+                       "BCFBD02EA005CDD5F0225A467555311508E18B3692A7AF6205D34A820C8CED0A51A8D7CEC33E80EA0AC007503FAE879C", /*DA*/
+                       "F43EEFB5C83C521AE5E9B05FC48841AC79C52C38BF85B5F926CD0818AE3BF7A94F385C32CA8F5F74F17B22107B954752", /*DB*/
+                       "1A48FC969198A4B0D9A78940BB0C4E1C42781D9BE60E769187D1CAF3680F8A30D09FF193606AAF294518DABC60048793", /*DC*/
+                       "F05D48134A56A03489A65EEB91DC69B98FC7F43960E63C62FA1C6B9FF9415E927E219D4E563479352B6A48D6DE0AEF85", /*DD*/
+                       "1A7FF9C54B045FFD44A0A9562E9468B2F11425A22D1EBF92208D33120BD28E0EF2D74197AF80E162CEEDCA73DFE66C93", /*DE*/
+                       "D57190439D29C9A444C007DC2B5EAF9DEF6DDF48A780CEDC61B205E4A96024B11885B6CE84C3FE5DB8B56986B6E2CE21", /*DF*/
+                       "F36DACFA34237E99BE45EB5253BCFED0402C6946B8B21AC02460A6FCE7E9CD67F89A6D5B162629FCF66CCEA374DB821E", /*E0*/
+                       "16E06074DCC31A1DF172017AC3FA38C3BBC1CE4BB784ED60DA89A8BCE82AE671A6DACFFB8D26C0BB185181AE9609F6D6", /*E1*/
+                       "F110DBDD94D17661F59FBB4CBA69F393463B60FB3F3C5E001C60B896FE8E78AC5EB3E26795DE5AB6997328D4654D6219", /*E2*/
+                       "21069118ABE24B61811CB8C48FCEFC6A483B032CFB56F902FB32E848198CC057A620815462A04F70900038D1894959E2", /*E3*/
+                       "5AD509789BFFECD0DDCD5E8325F69CA0154D8F1ACD9B8C82AC7DF75E94CE3CAF6D6554D1B38754BEB5DB64AF738486E7", /*E4*/
+                       "35A308A1AC9A43BF2647805AB3E6E4924BB74A616F61588FFA4602EE5BDBF54E3FDD62470A7174DB5795433CA808FAAC", /*E5*/
+                       "51A094B8774CA6055F07974C74EEF225022AFEF7AD81A9530967C44BBA336FD68AA327918AECBA3DF70B8436573C3F0A", /*E6*/
+                       "CF374F83420766C371F31901A13EF07C63AD56C7DEF9DC0F9E5BB5E859F5A231D0BF453BB9893E4CA1E14B66C2719760", /*E7*/
+                       "B41861CC73FD3E48461D79A138B04BE14010D37D37FBA8177D9622AA693225A42204454B8126799A33A5D487DCCD6EB6", /*E8*/
+                       "D291D0317A053320E27678F1E50D1F769A3D663A63159FC7AD7B4D3F67BAB452269CC05E2B33CE1C0FB8261CD734BCC3", /*E9*/
+                       "F3D0546D3D4A25EEB42874AD28C9B7F273EC788B29962D284AE73A48132B8553756C99D7A0910B66ECA7E2C2712D555C", /*EA*/
+                       "559FA5BF24911FDDA1DDF5DE3770554BC7C3FD139366B9466E7ECC0C881D2BA414E76D6A27E54B877352D5FBC4FAB878", /*EB*/
+                       "F19A622BED8DAC0A35548E5D7EFC5A2ECAC84974B4F057B2AB317ED03D0335AE710FC138F2C517389C90CC495A403416", /*EC*/
+                       "9FA7DEB936F10461A1529B0B58462F9D9F109111C8B9EC6523A3EB28444E33EA554084CA75118937599D58A7C946EAC2", /*ED*/
+                       "6EC3AABB7856AC4E980E6907C1CBCCAF1F8557ADC700CBF57DCB1CE0AF48D9F47FB3DADF8199AB8AE6B36DB8FADBF312", /*EE*/
+                       "C00F0D3F7A101660605B94B12DB6C69779944F7BA2B65F3840858ADEDD47E2BC1E044BDB0E9FB02B86C79D01A3109539", /*EF*/
+                       "9731893D5B98482AFB8DE267F97903268780F407143A505DA41CAEFCCCD3A8E3A042F0B3D7B7A7FE3E3151FEBB19A1AC", /*F0*/
+                       "E7EDF679003A6950BAFC97D4A8C6AB1213C096B49C79559AC3052501434B50191280FB23E7ADFB091959905D31BD2FC0", /*F1*/
+                       "575C0C46FCFCC65BFE625E873F34B4191696FDCC7F51B8A3C79C56F30E5AE7C014E3461CD27FAD151B7BCCB9CB472859", /*F2*/
+                       "3806FE58E5CC8F16F8244ED76734C1BF4E04940E0F5DDB565BD0AFDDC4158B7BA4C6BA949911C5C9FF6E2AC155AE9726", /*F3*/
+                       "49C7C844B8114144B450E41BCA35CB00302450EC67BEF97CA8662049DB1E0D8BDA69C022528EB8FA6ABBF16585C1A2F7", /*F4*/
+                       "37BB420DF67F044EDCC0E9F3E2EF07B34D100886187778410492E5379305DAAE3DA4791C37E4128F80688445CBA4EA17", /*F5*/
+                       "51398A7CE4CF8D9D49A5FCD891A69CA53D72A60EC2392DA50E8296B879AB55396BCB00AF2EDC0BDEBEB93848E54B3E90", /*F6*/
+                       "7AD7C52A18922E1929292C57C4F5B8F5F0CF1F98A577C10B072B9F293BB660CD09B8604F5575B6FBDECB396A81B9FCDB", /*F7*/
+                       "254AD7ADB4C220DE6C62E20F95A0070DADEB89F339309BD8A2F685CC178B289F9343905B5DEE95A5E0C30F34A2977C86", /*F8*/
+                       "669CD51AF7CFBFAAE3E0806F6880271D6934C259E098BF905DFEEAF0FBCA724989F74B948B4118B653640AEAFB6807C3", /*F9*/
+                       "DD3BACDCC04BE1206D4949BD64198E5131FDB39666598A74BBBC6DE9C0C15A81F27F201C61C062792738AFE3E84E5CDD", /*FA*/
+                       "CDD71FD35A6411DE3CC012793E87523FB0CFF8720FCA36F393E85FE07300F012E894A085263F090B2DF60A01DAFA90EC", /*FB*/
+                       "9DA50DB1EEB4FADDE524E49C9974799ADE09FFF26A24CBB9AF9D71E9F3ACE7CDEB62B1A62566EC9D06D02AB1217D3553", /*FC*/
+                       "DD31E6391AE0352293ACD1065B35E915F4EB56CC03E792180717815C850C97F1BF4F6A8AC0540A6FFCF8AE5DE9507FF0", /*FD*/
+                       "AB45B413DC50B20740B417369551D8D5CA32286A108E721003225E54D8D093AF4B6CA5591EA576E94E12AB774DC4E062", /*FE*/
+                       "D9F4F850DF6CB96C8ABAD81B1667335DCB4079CFE79C72E5E5542F763E316996303E4B79B9D397C4E46933038B945111", /*FF*/
+                       "75B15CC53B0D2502DA1BCA6BA05243589EDA977556C06B7E6C57727ECF0A1325DC613D5A78E5C3F8CE062D94A3B4945A"  /*00*/
+       ));
+       
+       //=========================================================================
+       // INITIALIZATION
+       //=========================================================================
+
+       private static final List<String> ENCODER;
+       
+       static {
+               final String[] escape = new String[256];
+               for(int i = 0; i < escape.length; ++i) {
+                       final String escapeSequence;
+                       switch(i) {
+                       case 0x0A:
+                               escapeSequence = "\\n";
+                               break;
+                       case 0x0D:
+                               escapeSequence = "\\r";
+                               break;
+                       case 0x22:
+                               escapeSequence = "\\\"";
+                               break;
+                       case 0x5C:
+                               escapeSequence = "\\\\";
+                               break;
+                       default:
+                               if ((i <= 0x20) || (i >= 0x7F)) {
+                                       escapeSequence = String.format("\\u%04X", i);
+                               }
+                               else {
+                                       escapeSequence = String.valueOf((char)i);
+                               }
+                       }
+                       escape[i] = escapeSequence;
+               }
+               ENCODER = Collections.unmodifiableList(Arrays.asList(escape));
+       }
+       
+       //=========================================================================
+       // UTILITIES
+       //=========================================================================
+
+       private static byte[] decodeHexStr(final String hexStr) {
+               final int len = hexStr.length() / 2;
+               final byte[] result = new byte[len];
+               int offset = 0;
+               for(int i = 0; i < len; ++i) {
+                       final String current = hexStr.substring(offset, (offset += 2));
+                       result[i] = (byte)Integer.parseUnsignedInt(current, 16);
+               }
+               return result;
+       }
+       
+       private static String bytesToString(final byte[] data) {
+               final StringBuilder sb = new StringBuilder(); 
+               for(final byte b : data) {
+                       sb.append(ENCODER.get(b & 0xFF));
+               }
+               return sb.toString();
+       }
+       
+       //=========================================================================
+       // MAIN FUNCTION
+       //=========================================================================
+
+       public static void main(String[] args) throws Exception {
+               System.out.println("{");
+               int index = 0;
+               boolean first = true;
+               for(final String hexStr : INPUT) {
+                       final byte[] bytes = decodeHexStr(hexStr);
+                       if(!first) {
+                               System.out.println(",");
+                       }
+                       else {
+                               first = false;
+                       }
+                       if(INPUT.size() > 257) {
+                               System.out.printf("\t/*%03d*/ \"%s\"", index++, bytesToString(bytes));
+                       }
+                       else {
+                               System.out.printf("\t/*%02X*/ \"%s\"", index++ % 256, bytesToString(bytes));
+                       }
+               }
+               System.out.println("\n}");
+       }
+
+}