OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /openrisc/trunk
    from Rev 756 to Rev 757
    Reverse comparison

Rev 756 → Rev 757

/gnu-dev/or1k-gcc/libjava/include/java-cpool.h
0,0 → 1,134
// java-cpool.h - Constant pool parsing header. -*- c++ -*-
 
/* Copyright (C) 1999, 2000 Free Software Foundation
 
This file is part of libgcj.
 
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
 
#ifndef __JAVA_CPOOL_H__
#define __JAVA_CPOOL_H__
 
#include <gcj/javaprims.h>
 
// we rename these, to avoid polluting the name space
#define JV_CONSTANT_Undefined (0L)
#define JV_CONSTANT_Utf8 (1L)
#define JV_CONSTANT_Unicode (2L)
#define JV_CONSTANT_Integer (3L)
#define JV_CONSTANT_Float (4L)
#define JV_CONSTANT_Long (5L)
#define JV_CONSTANT_Double (6L)
#define JV_CONSTANT_Class (7L)
#define JV_CONSTANT_String (8L)
#define JV_CONSTANT_Fieldref (9L)
#define JV_CONSTANT_Methodref (10L)
#define JV_CONSTANT_InterfaceMethodref (11L)
#define JV_CONSTANT_NameAndType (12L)
#define JV_CONSTANT_ResolvedFlag (16L)
#define JV_CONSTANT_LazyFlag (32L)
#define JV_CONSTANT_ResolvedString (16L | 8L)
#define JV_CONSTANT_ResolvedClass (16L | 7L)
 
extern inline void
_Jv_storeIndexes (_Jv_word *data,
_Jv_ushort index0,
_Jv_ushort index1)
{
data->i = (((jint)index0) << 16) | (jint) index1;
}
 
extern inline void
_Jv_loadIndexes (const _Jv_word *data,
_Jv_ushort& index0,
_Jv_ushort& index1)
{
jint udata = data->i;
_Jv_uint uindex0 = ((udata >> 16) & 0xffff);
_Jv_uint uindex1 = udata & 0xffff;
index0 = uindex0;
index1 = uindex1;
}
 
extern inline void
_Jv_storeFloat (_Jv_word *data, jfloat f)
{
data->f = f;
}
 
extern inline jfloat
_Jv_loadFloat (_Jv_word *data)
{
return data->f;
}
 
extern inline void
_Jv_storeInt (_Jv_word *data, jint i)
{
data->i = i;
}
 
extern inline jint
_Jv_loadInt (_Jv_word *data)
{
return data->i;
}
 
extern inline void
_Jv_storeLong (_Jv_word *data, jlong l)
{
#if SIZEOF_VOID_P == 8
data[0].l = l;
#else
_Jv_word2 tmp;
tmp.l = l;
data[0].ia[0] = tmp.ia[0];
data[1].ia[0] = tmp.ia[1];
#endif
}
 
extern inline jlong
_Jv_loadLong (_Jv_word *data)
{
#if SIZEOF_VOID_P == 8
return data -> l;
#else
_Jv_word2 tmp;
tmp.ia[0] = data[0].ia[0];
tmp.ia[1] = data[1].ia[0];
return tmp.l;
#endif
}
 
extern inline void
_Jv_storeDouble (_Jv_word *data, jdouble d)
{
#if SIZEOF_VOID_P == 8
data[0].d = d;
#else
_Jv_word2 tmp;
tmp.d = d;
data[0].ia[0] = tmp.ia[0];
data[1].ia[0] = tmp.ia[1];
#endif
}
 
extern inline jdouble
_Jv_loadDouble (_Jv_word *data)
{
#if SIZEOF_VOID_P == 8
return data -> d;
#else
_Jv_word2 tmp;
tmp.ia[0] = data[0].ia[0];
tmp.ia[1] = data[1].ia[0];
return tmp.d;
#endif
}
 
 
#endif /* __JAVA_CPOOL_H__ */
/gnu-dev/or1k-gcc/libjava/include/Makefile.in
0,0 → 1,599
# Makefile.in generated by automake 1.11.1 from Makefile.am.
# @configure_input@
 
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
 
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
 
@SET_MAKE@
 
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
target_triplet = @target@
subdir = include
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
$(srcdir)/config.h.in $(tool_include__HEADERS)
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/libltdl/acinclude.m4 \
$(top_srcdir)/../config/acx.m4 \
$(top_srcdir)/../config/depstand.m4 \
$(top_srcdir)/../config/enable.m4 \
$(top_srcdir)/../config/gxx-include-dir.m4 \
$(top_srcdir)/../config/iconv.m4 \
$(top_srcdir)/../config/lcmessage.m4 \
$(top_srcdir)/../config/ld-symbolic.m4 \
$(top_srcdir)/../config/lead-dot.m4 \
$(top_srcdir)/../config/lib-ld.m4 \
$(top_srcdir)/../config/lib-link.m4 \
$(top_srcdir)/../config/lib-prefix.m4 \
$(top_srcdir)/../config/lthostflags.m4 \
$(top_srcdir)/../config/multi.m4 \
$(top_srcdir)/../config/no-executables.m4 \
$(top_srcdir)/../config/override.m4 \
$(top_srcdir)/../config/tls.m4 \
$(top_srcdir)/../config/unwind_ipinfo.m4 \
$(top_srcdir)/../libtool.m4 $(top_srcdir)/../ltgcc.m4 \
$(top_srcdir)/../ltoptions.m4 $(top_srcdir)/../ltsugar.m4 \
$(top_srcdir)/../ltversion.m4 $(top_srcdir)/../lt~obsolete.m4 \
$(top_srcdir)/mingwld.m4 $(top_srcdir)/pkg.m4 \
$(top_srcdir)/shlibpath.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
CONFIG_HEADER = config.h $(top_builddir)/gcj/libgcj-config.h
CONFIG_CLEAN_FILES = platform.h java-gc.h java-threads.h java-signal.h \
java-signal-aux.h
CONFIG_CLEAN_VPATH_FILES =
SOURCES =
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
am__install_max = 40
am__nobase_strip_setup = \
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
am__nobase_strip = \
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
am__nobase_list = $(am__nobase_strip_setup); \
for p in $$list; do echo "$$p $$p"; done | \
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
if (++n[$$2] == $(am__install_max)) \
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
END { for (dir in files) print dir, files[dir] }'
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
am__installdirs = "$(DESTDIR)$(tool_include_dir)"
HEADERS = $(tool_include__HEADERS)
ETAGS = etags
CTAGS = ctags
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
ANTLR_JAR = @ANTLR_JAR@
AR = @AR@
AS = @AS@
ATOMICSPEC = @ATOMICSPEC@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BACKTRACESPEC = @BACKTRACESPEC@
BUILD_VERSION = @BUILD_VERSION@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CHECKREFSPEC = @CHECKREFSPEC@
CLASSPATH_SEPARATOR = @CLASSPATH_SEPARATOR@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CPU = @CPU@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DIRLTDL = @DIRLTDL@
DIVIDESPEC = @DIVIDESPEC@
DLLTOOL = @DLLTOOL@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
ECJ_BUILD_JAR = @ECJ_BUILD_JAR@
ECJ_JAR = @ECJ_JAR@
EGREP = @EGREP@
EXCEPTIONSPEC = @EXCEPTIONSPEC@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
GCC_FOR_ECJX = @GCC_FOR_ECJX@
GCC_UNWIND_INCLUDE = @GCC_UNWIND_INCLUDE@
GCDEPS = @GCDEPS@
GCINCS = @GCINCS@
GCJ = @GCJ@
GCJDEPMODE = @GCJDEPMODE@
GCJFLAGS = @GCJFLAGS@
GCJH = @GCJH@
GCJVERSION = @GCJVERSION@
GCJ_BIN_DIR = @GCJ_BIN_DIR@
GCJ_FOR_ECJX = @GCJ_FOR_ECJX@
GCLIBS = @GCLIBS@
GCSPEC = @GCSPEC@
GCTESTSPEC = @GCTESTSPEC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
GREP = @GREP@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
HASH_SYNC_SPEC = @HASH_SYNC_SPEC@
IEEESPEC = @IEEESPEC@
INCLTDL = @INCLTDL@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTERPRETER = @INTERPRETER@
JAR = @JAR@
JAVA_HOME = @JAVA_HOME@
JAVA_VERSION = @JAVA_VERSION@
JC1GCSPEC = @JC1GCSPEC@
JRE_BIN_DIR = @JRE_BIN_DIR@
JRE_DIR = @JRE_DIR@
JRE_LIB_DIR = @JRE_LIB_DIR@
JRE_LNK = @JRE_LNK@
JVM_JAR_DIR = @JVM_JAR_DIR@
JVM_JAR_ROOT_DIR = @JVM_JAR_ROOT_DIR@
JVM_ROOT_DIR = @JVM_ROOT_DIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LDLIBICONV = @LDLIBICONV@
LD_FINISH_STATIC_SPEC = @LD_FINISH_STATIC_SPEC@
LD_START_STATIC_SPEC = @LD_START_STATIC_SPEC@
LIBART_CFLAGS = @LIBART_CFLAGS@
LIBART_LIBS = @LIBART_LIBS@
LIBDIR = @LIBDIR@
LIBFFI = @LIBFFI@
LIBFFIINCS = @LIBFFIINCS@
LIBGCJDEBUG = @LIBGCJDEBUG@
LIBGCJTESTSPEC = @LIBGCJTESTSPEC@
LIBGCJ_BC_SPEC = @LIBGCJ_BC_SPEC@
LIBGCJ_CFLAGS = @LIBGCJ_CFLAGS@
LIBGCJ_CXXFLAGS = @LIBGCJ_CXXFLAGS@
LIBGCJ_JAVAFLAGS = @LIBGCJ_JAVAFLAGS@
LIBGCJ_LD_EXPORT_ALL = @LIBGCJ_LD_EXPORT_ALL@
LIBGCJ_LD_SYMBOLIC = @LIBGCJ_LD_SYMBOLIC@
LIBGCJ_LD_SYMBOLIC_FUNCTIONS = @LIBGCJ_LD_SYMBOLIC_FUNCTIONS@
LIBGCJ_SPEC = @LIBGCJ_SPEC@
LIBGCJ_SUBLIB_CORE_EXTRA_DEPS = @LIBGCJ_SUBLIB_CORE_EXTRA_DEPS@
LIBGCJ_SUBLIB_LTFLAGS = @LIBGCJ_SUBLIB_LTFLAGS@
LIBICONV = @LIBICONV@
LIBLTDL = @LIBLTDL@
LIBMATHSPEC = @LIBMATHSPEC@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBSTDCXXSPEC = @LIBSTDCXXSPEC@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBICONV = @LTLIBICONV@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKE = @MAKE@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
OS = @OS@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
PLATFORM = @PLATFORM@
RANLIB = @RANLIB@
SDK_BIN_DIR = @SDK_BIN_DIR@
SDK_INCLUDE_DIR = @SDK_INCLUDE_DIR@
SDK_LIB_DIR = @SDK_LIB_DIR@
SDK_LNK = @SDK_LNK@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
SYSDEP_SOURCES = @SYSDEP_SOURCES@
SYSTEMSPEC = @SYSTEMSPEC@
SYS_ZLIBS = @SYS_ZLIBS@
THREADCXXFLAGS = @THREADCXXFLAGS@
THREADDEPS = @THREADDEPS@
THREADINCS = @THREADINCS@
THREADLDFLAGS = @THREADLDFLAGS@
THREADLIBS = @THREADLIBS@
THREADSPEC = @THREADSPEC@
THREADSTARTFILESPEC = @THREADSTARTFILESPEC@
TOOLKIT = @TOOLKIT@
UNZIP = @UNZIP@
VERSION = @VERSION@
XMKMF = @XMKMF@
X_CFLAGS = @X_CFLAGS@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
ZINCS = @ZINCS@
ZIP = @ZIP@
ZLIBS = @ZLIBS@
ZLIBSPEC = @ZLIBSPEC@
ZLIBTESTSPEC = @ZLIBTESTSPEC@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
ac_ct_GCJ = @ac_ct_GCJ@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_libsubdir = @build_libsubdir@
build_os = @build_os@
build_subdir = @build_subdir@
build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
dbexecdir = @dbexecdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
extra_ldflags = @extra_ldflags@
extra_ldflags_libjava = @extra_ldflags_libjava@
gcc_suffix = @gcc_suffix@
gcjsubdir = @gcjsubdir@
gxx_include_dir = @gxx_include_dir@
here = @here@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_exeext = @host_exeext@
host_os = @host_os@
host_subdir = @host_subdir@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
libstdcxx_incdir = @libstdcxx_incdir@
localedir = @localedir@
localstatedir = @localstatedir@
lt_host_flags = @lt_host_flags@
mandir = @mandir@
mkdir_p = @mkdir_p@
mkinstalldirs = @mkinstalldirs@
multi_basedir = @multi_basedir@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
python_mod_dir = @python_mod_dir@
python_mod_dir_expanded = @python_mod_dir_expanded@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
subdirs = @subdirs@
sysconfdir = @sysconfdir@
target = @target@
target_alias = @target_alias@
target_cpu = @target_cpu@
 
# autoconf2.13's target_alias
target_noncanonical = @target_noncanonical@
target_os = @target_os@
target_subdir = @target_subdir@
target_vendor = @target_vendor@
toolexecdir = @toolexecdir@
toolexeclibdir = @toolexeclibdir@
toolexecmainlibdir = @toolexecmainlibdir@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
AUTOMAKE_OPTIONS = foreign
 
# May be used by various substitution variables.
gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER)
tool_include_dir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)/include
tool_include__HEADERS = jni_md.h ../classpath/include/jawt.h \
../classpath/include/jawt_md.h jvmpi.h ../classpath/include/jni.h
 
all: config.h
$(MAKE) $(AM_MAKEFLAGS) all-am
 
.SUFFIXES:
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
&& { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign include/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --foreign include/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
 
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
 
config.h: stamp-h1
@if test ! -f $@; then \
rm -f stamp-h1; \
$(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
else :; fi
 
stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
@rm -f stamp-h1
cd $(top_builddir) && $(SHELL) ./config.status include/config.h
$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
($(am__cd) $(top_srcdir) && $(AUTOHEADER))
rm -f stamp-h1
touch $@
 
distclean-hdr:
-rm -f config.h stamp-h1
 
mostlyclean-libtool:
-rm -f *.lo
 
clean-libtool:
-rm -rf .libs _libs
install-tool_include_HEADERS: $(tool_include__HEADERS)
@$(NORMAL_INSTALL)
test -z "$(tool_include_dir)" || $(MKDIR_P) "$(DESTDIR)$(tool_include_dir)"
@list='$(tool_include__HEADERS)'; test -n "$(tool_include_dir)" || list=; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
done | $(am__base_list) | \
while read files; do \
echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(tool_include_dir)'"; \
$(INSTALL_HEADER) $$files "$(DESTDIR)$(tool_include_dir)" || exit $$?; \
done
 
uninstall-tool_include_HEADERS:
@$(NORMAL_UNINSTALL)
@list='$(tool_include__HEADERS)'; test -n "$(tool_include_dir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
test -n "$$files" || exit 0; \
echo " ( cd '$(DESTDIR)$(tool_include_dir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(tool_include_dir)" && rm -f $$files
 
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
 
TAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
set x; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
if test $$# -gt 0; then \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
"$$@" $$unique; \
else \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$unique; \
fi; \
fi
ctags: CTAGS
CTAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
 
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
 
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
check-am: all-am
check: check-am
all-am: Makefile $(HEADERS) config.h
installdirs:
for dir in "$(DESTDIR)$(tool_include_dir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
 
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
 
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
 
clean-generic:
 
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
 
clean-am: clean-generic clean-libtool mostlyclean-am
 
distclean: distclean-am
-rm -f Makefile
distclean-am: clean-am distclean-generic distclean-hdr distclean-tags
 
dvi: dvi-am
 
dvi-am:
 
html: html-am
 
html-am:
 
info: info-am
 
info-am:
 
install-data-am: install-tool_include_HEADERS
 
install-dvi: install-dvi-am
 
install-dvi-am:
 
install-exec-am:
 
install-html: install-html-am
 
install-html-am:
 
install-info: install-info-am
 
install-info-am:
 
install-man:
 
install-pdf: install-pdf-am
 
install-pdf-am:
 
install-ps: install-ps-am
 
install-ps-am:
 
installcheck-am:
 
maintainer-clean: maintainer-clean-am
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
 
mostlyclean: mostlyclean-am
 
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
 
pdf: pdf-am
 
pdf-am:
 
ps: ps-am
 
ps-am:
 
uninstall-am: uninstall-tool_include_HEADERS
 
.MAKE: all install-am install-strip
 
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
clean-libtool ctags distclean distclean-generic distclean-hdr \
distclean-libtool distclean-tags dvi dvi-am html html-am info \
info-am install install-am install-data install-data-am \
install-dvi install-dvi-am install-exec install-exec-am \
install-html install-html-am install-info install-info-am \
install-man install-pdf install-pdf-am install-ps \
install-ps-am install-strip install-tool_include_HEADERS \
installcheck installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-generic \
mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
uninstall-am uninstall-tool_include_HEADERS
 
 
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
/gnu-dev/or1k-gcc/libjava/include/aix-signal.h
0,0 → 1,50
/* aix-signal.h - Catch runtime signals and turn them into exceptions,
on a AIX system. */
 
/* Copyright (C) 2008, 2011 Free Software Foundation
 
This file is part of libgcj.
 
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
 
/* This file is really more of a specification. The rest of the system
should be arranged so that this Just Works. */
 
#ifndef JAVA_SIGNAL_H
# define JAVA_SIGNAL_H 1
 
#include <sys/types.h>
#include <sys/signal.h>
 
typedef void (* SIG_PF)(int);
 
# define HANDLE_SEGV 1
# undef HANDLE_FPE
 
# define SIGNAL_HANDLER(_name) \
static void _name (int _dummy __attribute__ ((unused)))
 
# define MAKE_THROW_FRAME(_exception)
 
# define INIT_SEGV \
do { \
struct sigaction sa; \
sa.sa_handler = catch_segv; \
sigemptyset (&sa.sa_mask); \
sa.sa_flags = SA_NODEFER; \
sigaction (SIGBUS, &sa, NULL); \
sigaction (SIGSEGV, &sa, NULL); \
} while (0)
 
# define INIT_FPE \
do { \
struct sigaction sa; \
sa.sa_handler = catch_fpe; \
sigemptyset (&sa.sa_mask); \
sa.sa_flags = SA_NODEFER; \
sigaction (SIGFPE, &sa, NULL); \
} while (0)
 
#endif /* JAVA_SIGNAL_H */
/gnu-dev/or1k-gcc/libjava/include/jni_md.h
0,0 → 1,165
/* jni_md.h
Copyright (C) 2001, 2005, 2007, 2010 Free Software Foundation, Inc.
 
This file is part of GNU Classpath.
 
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath 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
General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301 USA.
 
As a special exception, if you link this library with other files to
produce an executable, this library does not by itself cause the
resulting executable to be covered by the GNU General Public License.
This exception does not however invalidate any other reasons why the
executable file might be covered by the GNU General Public License. */
 
#ifndef __GCJ_JNI_MD_H__
#define __GCJ_JNI_MD_H__
 
#include <gcj/libgcj-config.h>
 
#ifdef __GCJ_JNI_IMPL__
 
/* If __GCJ_JNI_IMPL__ is defined, then we assume that we're building
libgcj itself, and we include headers which taint the namespace
more than is acceptable for the ordinary JNI user. */
#include <gcj/javaprims.h>
#include <gcj/array.h>
#include <gnu/gcj/runtime/JNIWeakRef.h>
 
typedef gnu::gcj::runtime::JNIWeakRef *jweak;
 
typedef struct _Jv_JNIEnv JNIEnv;
typedef struct _Jv_JavaVM JavaVM;
 
#define JNI_TRUE true
#define JNI_FALSE false
 
/* We defined jobject and friends, so don't redefine them in jni.h. */
#define _CLASSPATH_VM_JNI_TYPES_DEFINED
 
/* We defined jmethodID and and jfieldID, so don't redefine them in
jni.h. */
#define _CLASSPATH_VM_INTERNAL_TYPES_DEFINED
 
/* Contents of the JNIEnv; but only inside the implementation. */
#define _CLASSPATH_JNIENV_CONTENTS \
/* The current exception. */ \
jthrowable ex; \
\
/* The chain of local frames. */ \
struct _Jv_JNI_LocalFrame *locals; \
\
/* The bottom-most element of the chain, initialized with the env and \
reused between non-nesting JNI calls. */ \
struct _Jv_JNI_LocalFrame *bottom_locals;
 
/* JNI calling convention. Also defined in javaprims.h. */
#ifndef JNICALL
#if (defined (_WIN32) || defined (__WIN32__) || defined (WIN32)) \
&& !defined (_WIN64)
#define JNICALL __stdcall
#else
#define JNICALL
#endif
#endif
 
#else /* __GCJ_JNI_IMPL__ */
 
# ifdef __GNUC__
 
/* If we're using gcc, we can use a platform-independent scheme to get
the right integer types. FIXME: this is not always correct, for
instance on the c4x it will be wrong -- it depends on whether
QImode is 8 bits. */
typedef int jbyte __attribute__((__mode__(__QI__)));
typedef int jshort __attribute__((__mode__(__HI__)));
typedef int jint __attribute__((__mode__(__SI__)));
typedef int jlong __attribute__((__mode__(__DI__)));
typedef unsigned int jboolean __attribute__((__mode__(__QI__)));
typedef unsigned short jchar __attribute__((__mode__(__HI__)));
typedef float jfloat;
typedef double jdouble;
typedef jint jsize;
 
# else /* __GNUC__ */
 
# ifdef JV_HAVE_INTTYPES_H
 
/* If <inttypes.h> is available, we use it. */
 
# include <inttypes.h>
 
typedef int8_t jbyte;
typedef int16_t jshort;
typedef int32_t jint;
typedef int64_t jlong;
typedef float jfloat;
typedef double jdouble;
typedef jint jsize;
typedef uint8_t jboolean;
typedef uint16_t jchar;
 
# else /* JV_HAVE_INTTYPES_H */
 
/* For now, we require either gcc or <inttypes.h>. If we did more
work at configure time we could get around this, but right now it
doesn't seem worth it. */
# error jni.h not ported to this platform
 
# endif /* JV_HAVE_INTTYPES_H */
 
# endif /* __GNUC__ */
 
#endif /* __GCJ_JNI_IMPL__ */
 
 
/* Linkage and calling conventions. */
#if (defined (_WIN32) || defined (__WIN32__) || defined (WIN32)) \
&& !defined (_WIN64)
 
#define JNIIMPORT __declspec(dllimport)
#define JNIEXPORT __declspec(dllexport)
 
#ifndef JNICALL
#define JNICALL __stdcall
#endif
 
#else /* !( _WIN32 || __WIN32__ || WIN32) || _WIN64 */
 
#define JNIIMPORT
#if defined(__GNUC__) && __GNUC__ > 3
#define JNIEXPORT __attribute__ ((visibility("default")))
#else
#define JNIEXPORT
#endif
 
#ifndef JNICALL
#define JNICALL
#endif
 
#endif /* !( _WIN32 || __WIN32__ || WIN32) || _WIN64 */
 
/* These defines apply to symbols in libgcj */
#ifdef __GCJ_DLL__
# ifdef __GCJ_JNI_IMPL__
# define _CLASSPATH_JNIIMPEXP JNIEXPORT
# else
# define _CLASSPATH_JNIIMPEXP JNIIMPORT
# endif /* ! __GCJ_JNI_IMPL__ */
#else /* ! __GCJ_DLL__ */
# define _CLASSPATH_JNIIMPEXP
#endif /* __GCJ_DLL__ */
 
#endif /* __GCJ_JNI_MD_H__ */
/gnu-dev/or1k-gcc/libjava/include/dwarf2-signal.h
0,0 → 1,196
// dwarf2-signal.h - Catch runtime signals and turn them into exceptions.
 
/* Copyright (C) 2000, 2001, 2009 Free Software Foundation
 
This file is part of libgcj.
 
Use this file for a target for which the dwarf2 unwinder in libgcc
can unwind through signal handlers.
 
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
 
#ifndef JAVA_SIGNAL_H
#define JAVA_SIGNAL_H 1
 
#include <signal.h>
#include <sys/syscall.h>
 
#define HANDLE_SEGV 1
#undef HANDLE_FPE
 
#define SIGNAL_HANDLER(_name) \
static void _Jv_##_name (int, siginfo_t *_sip, void *_p)
 
class java::lang::Throwable;
 
// Unwind the stack to the point at which the signal was generated and
// then throw an exception. With the dwarf2 unwinder we don't usually
// need to do anything, with some minor exceptions.
 
#ifdef __ia64__
 
#define MAKE_THROW_FRAME(_exception) \
do \
{ \
/* IA-64 either leaves PC pointing at a faulting instruction or the \
following instruction, depending on the signal. SEGV always does \
the former, so we adjust the saved PC to point to the following \
instruction; this is what the handler in libgcc expects. */ \
/* Note that we are lying to the unwinder here, which expects the \
faulting pc, not pc+1. But we claim the unwind information can't \
be changed by such a ld or st instruction, so it doesn't matter. */ \
struct sigcontext *_sc = (struct sigcontext *)_p; \
_sc->sc_ip++; \
} \
while (0)
 
#else
#define MAKE_THROW_FRAME(_exception) \
do \
{ \
(void)_p; \
} \
while (0)
#endif
 
#if defined(__sparc__)
#if defined(__arch64__)
extern "C" {
static void __rt_sigreturn_stub(void)
{
__asm__("mov %0, %%g1\n\t"
"ta 0x6d\n\t"
: /* no outputs */
: "i" (__NR_rt_sigreturn));
}
struct kernel_sigaction
{
void (*k_sa_sigaction)(int,siginfo_t *,void *);
unsigned long k_sa_flags;
void (*k_sa_restorer)(void);
sigset_t k_sa_mask;
};
}
#define INIT_SEGV \
do \
{ \
struct kernel_sigaction act; \
unsigned long stub = ((unsigned long)&__rt_sigreturn_stub); \
act.k_sa_sigaction = _Jv_catch_segv; \
sigemptyset (&act.k_sa_mask); \
act.k_sa_flags = SA_SIGINFO; \
act.k_sa_restorer = NULL; \
syscall (SYS_rt_sigaction, SIGSEGV, &act, NULL, \
stub - 8, _NSIG / 8); \
} \
while (0)
 
#define INIT_FPE \
do \
{ \
struct kernel_sigaction act; \
unsigned long stub = ((unsigned long)&__rt_sigreturn_stub); \
act.k_sa_sigaction = _Jv_catch_fpe; \
sigemptyset (&act.k_sa_mask); \
act.k_sa_flags = SA_SIGINFO; \
act.k_sa_restorer = NULL; \
syscall (SYS_rt_sigaction, SIGFPE, &act, NULL, \
stub - 8, _NSIG / 8); \
} \
while (0)
#else /* __arch64__ */
 
extern "C" {
struct kernel_sigaction
{
void (*k_sa_sigaction)(int,siginfo_t *,void *);
unsigned long k_sa_mask, k_sa_flags;
void (*k_sa_restorer)(void);
};
}
 
#define INIT_SEGV \
do \
{ \
struct kernel_sigaction act; \
act.k_sa_sigaction = _Jv_catch_segv; \
act.k_sa_mask = 0; \
act.k_sa_flags = SA_SIGINFO; \
act.k_sa_restorer = NULL; \
syscall (SYS_sigaction, -SIGSEGV, &act, NULL); \
} \
while (0)
 
#define INIT_FPE \
do \
{ \
struct kernel_sigaction act; \
act.k_sa_sigaction = _Jv_catch_fpe; \
act.k_sa_mask = 0; \
act.k_sa_flags = SA_SIGINFO; \
act.k_sa_restorer = NULL; \
syscall (SYS_sigaction, -SIGFPE, &act, NULL); \
} \
while (0)
#endif
#elif !defined(__ia64__)
#define INIT_SEGV \
do \
{ \
struct sigaction act; \
act.sa_sigaction = _Jv_catch_segv; \
sigemptyset (&act.sa_mask); \
act.sa_flags = SA_SIGINFO; \
syscall (SYS_sigaction, SIGSEGV, &act, NULL); \
} \
while (0)
 
#define INIT_FPE \
do \
{ \
struct sigaction act; \
act.sa_sigaction = _Jv_catch_fpe; \
sigemptyset (&act.sa_mask); \
act.sa_flags = SA_SIGINFO; \
syscall (SYS_sigaction, SIGFPE, &act, NULL); \
} \
while (0)
 
/* We use syscall(SYS_sigaction) in INIT_SEGV and INIT_FPE instead of
* sigaction() because on some systems the pthreads wrappers for
* signal handlers are not compiled with unwind information, so it's
* not possible to unwind through them. This is a problem that will
* go away once all systems have pthreads libraries that are
* compiled with full unwind info. */
 
#else /* __ia64__ */
 
// On IA64, unwind information is mandatory, so we can unwind
// correctly through glibc frames. Thus we call the ordinary
// sigaction.
 
#define INIT_SEGV \
do \
{ \
struct sigaction act; \
act.sa_sigaction = _Jv_catch_segv; \
sigemptyset (&act.sa_mask); \
act.sa_flags = SA_SIGINFO; \
sigaction (SIGSEGV, &act, NULL); \
} \
while (0)
 
#define INIT_FPE \
do \
{ \
struct sigaction act; \
act.sa_sigaction = _Jv_catch_fpe; \
sigemptyset (&act.sa_mask); \
act.sa_flags = SA_SIGINFO; \
sigaction (SIGFPE, &act, NULL); \
} \
while (0)
#endif /* __ia64__ || __sparc__ */
#endif /* JAVA_SIGNAL_H */
/gnu-dev/or1k-gcc/libjava/include/posix.h
0,0 → 1,207
// posix.h -- Helper functions for POSIX-flavored OSs.
 
/* Copyright (C) 2000, 2002, 2003, 2006, 2010 Free Software Foundation
 
This file is part of libgcj.
 
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
 
#ifndef __JV_POSIX_H__
#define __JV_POSIX_H__
 
/* Required on Tru64 UNIX V4/V5 so <sys/socket.h> defines prototypes of
socket functions with socklen_t instead of size_t. This must be defined
early so <standards.h> defines the correct version of __PIIX. */
#define _POSIX_PII_SOCKET
 
#include <time.h>
#include <sys/types.h>
 
#ifdef HAVE_SYS_TIME_H
#include <sys/time.h>
#endif
 
#ifdef HAVE_SYS_SELECT_H
#include <sys/select.h>
#endif
 
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
 
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
 
#include <fcntl.h>
 
/* The header file <sys/rw_lock.h> needs to be included before javaprims.h
on HP-UX 11 to avoid a compilation error. */
#ifdef HAVE_SYS_RW_LOCK_H
#include <sys/rw_lock.h>
#endif
 
#include <gcj/cni.h>
#include <java/util/Properties.h>
 
// Prefix and suffix for shared libraries.
#define _Jv_platform_solib_prefix "lib"
#if defined(__APPLE__) && defined(__MACH__)
#define _Jv_platform_solib_suffix ".dylib"
#elif defined(HPUX) && defined(HP_PA)
#define _Jv_platform_solib_suffix ".sl"
#else
#define _Jv_platform_solib_suffix ".so"
#endif
 
#if __MACH__ && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1060)
# undef _Unwind_FindEnclosingFunction
# define _Unwind_FindEnclosingFunction(PC) _darwin10_Unwind_FindEnclosingFunction(PC)
#endif
 
// Some POSIX systems don't have O_SYNC and O_DYSNC so we define them here.
// Needed in java/io/natFileDescriptorPosix.cc.
#if !defined (O_SYNC) && defined (O_FSYNC)
#define O_SYNC O_FSYNC
#endif
#if !defined (O_DSYNC) && defined (O_FSYNC)
#define O_DSYNC O_FSYNC
#endif
// If O_DSYNC is still not defined, use O_SYNC (needed for newlib)
#if !defined (O_DSYNC)
#define O_DSYNC O_SYNC
#endif
 
// Name of the Process implementation.
#ifdef ECOS
#define _Jv_platform_process ::java::lang::EcosProcess
#else
#define _Jv_platform_process ::java::lang::PosixProcess
#endif
 
// Separator for file name components.
#define _Jv_platform_file_separator ((jchar) '/')
// Separator for path components.
#define _Jv_platform_path_separator ((jchar) ':')
 
// List of names for `JNI_OnLoad'.
#define _Jv_platform_onload_names { "JNI_OnLoad", NULL }
 
// Type of libffi ABI used by JNICALL methods. NOTE: This must agree
// with the JNICALL definition in jni.h
#define _Jv_platform_ffi_abi FFI_DEFAULT_ABI
 
#ifndef DISABLE_JAVA_NET
#include <java/net/InetAddress.h>
#endif
 
extern int _Jv_select (int n, fd_set *, fd_set *, fd_set *, struct timeval *);
extern jlong _Jv_platform_gettimeofday ();
extern jlong _Jv_platform_nanotime ();
extern void _Jv_platform_initialize (void);
extern void _Jv_platform_initProperties (java::util::Properties*);
 
#ifdef JV_HASH_SYNCHRONIZATION
#ifndef HAVE_USLEEP_DECL
extern "C" int usleep (useconds_t useconds);
#endif /* not HAVE_USLEEP_DECL */
 
inline void
_Jv_platform_usleep (unsigned long usecs)
{
usleep (usecs);
}
#endif /* JV_HASH_SYNCHRONIZATION */
 
#ifndef DISABLE_JAVA_NET
 
#ifndef HAVE_SOCKLEN_T
#define socklen_t int
#endif
 
static inline int
_Jv_socket (int domain, int type, int protocol)
{
return ::socket (domain, type, protocol);
}
 
#undef socket
 
inline int
_Jv_connect (jint fd, sockaddr *ptr, int len)
{
return ::connect (fd, ptr, len);
}
 
#undef connect
 
inline int
_Jv_close (jint fd)
{
return ::close (fd);
}
 
#undef close
 
// Avoid macro definitions of bind from system headers, e.g. on
// Solaris 7 with _XOPEN_SOURCE. FIXME
inline int
_Jv_bind (int fd, struct sockaddr *addr, int addrlen)
{
return ::bind (fd, addr, addrlen);
}
 
#undef bind
 
// Same problem with accept on Tru64 UNIX with _POSIX_PII_SOCKET
inline int
_Jv_accept (int fd, struct sockaddr *addr, socklen_t *addrlen)
{
return ::accept (fd, addr, addrlen);
}
 
#undef accept
 
inline int
_Jv_listen (int fd, int backlog)
{
return ::listen (fd, backlog);
}
 
#undef listen
 
inline int
_Jv_write(int s, void *buf, int len)
{
return ::write (s, buf, len);
}
 
#undef write
 
inline int
_Jv_read(int s, void *buf, int len)
{
return ::read (s, buf, len);
}
 
#undef read
 
#endif /* DISABLE_JAVA_NET */
 
// Wraps ::pipe
static inline int
_Jv_pipe (int filedes[2])
{
return ::pipe (filedes);
}
 
// Forward declaration. See java-stack.h for definition.
struct _Jv_AddrInfo;
 
// Given an address, determine the executable or shared object that defines
// it and the nearest named symbol.
extern int _Jv_platform_dladdr (void *addr, _Jv_AddrInfo *info);
 
#endif /* __JV_POSIX_H__ */
/gnu-dev/or1k-gcc/libjava/include/win32.h
0,0 → 1,188
// win32.h -- Helper functions for Microsoft-flavored OSs.
 
/* Copyright (C) 2002, 2003, 2006 Free Software Foundation
 
This file is part of libgcj.
 
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
 
#ifndef __JV_WIN32_H__
#define __JV_WIN32_H__
 
// Enable UNICODE support?
 
#ifdef MINGW_LIBGCJ_UNICODE
#define UNICODE
#define _UNICODE
#endif // MINGW_LIBGCJ_UNICODE
 
#include <tchar.h>
 
// Includes
#define WIN32_LEAN_AND_MEAN
// Force Winsock 2 interface.
#include <winsock2.h>
#include <windows.h>
#undef WIN32_LEAN_AND_MEAN
#undef STRICT
 
#include <ws2tcpip.h>
#include <gcj/cni.h>
#include <jvm.h>
#include <java/util/Properties.h>
 
#include <io.h>
 
/* Begin UNICODE Support Classes and Functions */
 
/* Helper class which creates a temporary, null-terminated,
wide-character C string. */
class _Jv_Win32TempString
{
public:
_Jv_Win32TempString(jstring jstr);
~_Jv_Win32TempString();
 
// Accessors
operator LPCTSTR() const
{
return buf_;
}
LPCTSTR buf() const
{
return buf_;
}
LPTSTR buf()
{
return buf_;
}
 
private:
TCHAR stackbuf_[500];
LPTSTR buf_;
};
 
// Mimics the JV_TEMP_STRING_UTF macro in jvm.h
#define JV_TEMP_STRING_WIN32(x,y) _Jv_Win32TempString x(y);
 
// Creates a jstring from a LPCTSTR
extern jstring _Jv_Win32NewString (LPCTSTR pcsz);
 
/* End UNICODE Helpers */
 
// Prefix and suffix for shared libraries.
#define _Jv_platform_solib_prefix ""
#define _Jv_platform_solib_suffix ".dll"
 
// Name of the Process implementation.
#define _Jv_platform_process ::java::lang::Win32Process
 
// Separator for file name components.
#define _Jv_platform_file_separator ((jchar) '\\')
// Separator for path components.
#define _Jv_platform_path_separator ((jchar) ';')
 
// List of names for `JNI_OnLoad'. On Win32, JNI_OnLoad is an
// "stdcall" function taking two pointers (8 bytes) as arguments. It
// could also have been exported as "JNI_OnLoad@8" (MinGW) or
// "_JNI_OnLoad@8" (MSVC).
#define _Jv_platform_onload_names \
{ "JNI_OnLoad", "JNI_OnLoad@8", "_JNI_OnLoad@8", NULL }
 
// Type of libffi ABI used by JNICALL methods. NOTE: This must agree
// with the JNICALL definition in jni.h
#define _Jv_platform_ffi_abi FFI_STDCALL
 
/* Useful helper classes and methods. */
 
/* A C++ wrapper around a WSAEVENT which closes the event
in its destructor. If dwSelFlags is non-zero, we also
issue an WSAEventSelect on the socket descriptor with
the given flags; this is undone by a corresponding call
to WSAEventSelect(fd, 0, 0) in our destructor. */
class WSAEventWrapper
{
public:
// Default constructor. Call init() after this.
WSAEventWrapper();
WSAEventWrapper(int fd, DWORD dwSelFlags);
~WSAEventWrapper();
 
// Used for two-step initialization after calling
// default constructor.
void init(int fd, DWORD dwSelFlags);
 
int getFD()
{
return m_fd;
}
 
WSAEVENT getEventHandle()
{
return m_hEvent;
}
 
private:
WSAEVENT m_hEvent;
int m_fd;
DWORD m_dwSelFlags;
};
 
// Error string text. The int argument is compatible
// with both int WSAGetLastError() and DWORD GetLastError()
// I tried avoiding having to pass the error explicitly, but
// it didn't work this was invoked with say
// throw new SomeException(_Jv_WinStrError()).
extern jstring
_Jv_WinStrError (LPCTSTR lpszPrologue, int nErrorCode);
 
extern jstring
_Jv_WinStrError (int nErrorCode);
 
extern void
_Jv_ThrowIOException (DWORD dwErrorCode);
 
extern void
_Jv_ThrowIOException ();
 
extern void
_Jv_ThrowSocketException (DWORD dwErrorCode);
 
extern void
_Jv_ThrowSocketException ();
 
// Platform implementation
extern void _Jv_platform_initialize (void);
extern void _Jv_platform_initProperties (java::util::Properties*);
extern jlong _Jv_platform_gettimeofday ();
extern jlong _Jv_platform_nanotime ();
extern int _Jv_pipe (int filedes[2]);
 
extern void
_Jv_platform_close_on_exec (HANDLE h);
 
#ifdef JV_HASH_SYNCHRONIZATION
/* Suspends the execution of the current thread for the specified
number of microseconds. Tries to emulate the behaviour of usleep()
on UNIX and provides a granularity of 1 millisecond. */
inline void
_Jv_platform_usleep (unsigned long usecs)
{
if (usecs > 0UL)
{
unsigned long millis = ((usecs + 999UL) / 1000UL);
Sleep (millis);
}
}
#endif /* JV_HASH_SYNCHRONIZATION */
 
// Forward declaration. See java-stack.h for definition.
struct _Jv_AddrInfo;
 
// Given an address, determine the executable or shared object that defines
// it and the nearest named symbol.
extern int _Jv_platform_dladdr (void *addr, _Jv_AddrInfo *info);
 
#endif /* __JV_WIN32_H__ */
/gnu-dev/or1k-gcc/libjava/include/no-threads.h
0,0 → 1,162
// -*- c++ -*-
// no-threads.h - Defines for using no threads.
 
/* Copyright (C) 1998, 1999, 2004, 2006 Free Software Foundation
 
This file is part of libgcj.
 
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
 
#ifndef __JV_NO_THREADS__
#define __JV_NO_THREADS__
 
#include "config.h"
 
#include <stdlib.h>
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
 
//
// Typedefs.
//
 
typedef int _Jv_ConditionVariable_t;
typedef int _Jv_Mutex_t;
typedef void _Jv_ThreadStartFunc (java::lang::Thread *);
 
//
// Declarations
//
 
class _Jv_Thread_t { };
 
//
// Condition variables.
//
 
inline void
_Jv_CondInit (_Jv_ConditionVariable_t *)
{
}
 
// Waiting is ok provided there is a timeout. Otherwise we will just
// wait forever.
inline int
_Jv_CondWait (_Jv_ConditionVariable_t *, _Jv_Mutex_t *,
jlong millis, jint nanos)
{
if (millis == 0 && nanos == 0)
JvFail ("_Jv_CondWait without timeout");
 
#ifdef HAVE_SLEEP
int seconds = millis / 1000;
if (seconds > 0)
sleep (seconds);
#endif
 
return 0;
}
 
inline int
_Jv_CondNotify (_Jv_ConditionVariable_t *, _Jv_Mutex_t *)
{
// It is ok to notify -- it just has no effect.
return 0;
}
 
inline int
_Jv_CondNotifyAll (_Jv_ConditionVariable_t *, _Jv_Mutex_t *)
{
// It is ok to notify -- it just has no effect.
return 0;
}
 
 
//
// Mutexes.
//
 
inline int _Jv_MutexCheckMonitor (_Jv_Mutex_t *)
{
return 0;
}
 
inline void
_Jv_MutexInit (_Jv_Mutex_t *)
{
}
 
inline int
_Jv_MutexLock (_Jv_Mutex_t *)
{
return 0;
}
 
inline int
_Jv_MutexUnlock (_Jv_Mutex_t *)
{
return 0;
}
 
 
//
// Thread creation and manipulation.
//
 
inline void
_Jv_InitThreads (void)
{
}
 
_Jv_Thread_t *
_Jv_ThreadInitData (java::lang::Thread *);
 
inline void
_Jv_ThreadDestroyData (_Jv_Thread_t *)
{
}
 
inline java::lang::Thread *
_Jv_ThreadCurrent (void)
{
extern java::lang::Thread *_Jv_OnlyThread;
return _Jv_OnlyThread;
}
 
inline void
_Jv_ThreadYield (void)
{
}
 
inline void
_Jv_ThreadSetPriority (_Jv_Thread_t *, jint)
{
}
 
inline void
_Jv_ThreadRegister (_Jv_Thread_t *)
{
}
 
inline void
_Jv_ThreadUnRegister (void)
{
}
 
void _Jv_ThreadStart (java::lang::Thread *, _Jv_Thread_t *,
_Jv_ThreadStartFunc *meth);
 
inline void
_Jv_ThreadWait (void)
{
}
 
inline void
_Jv_ThreadInterrupt (_Jv_Thread_t *)
{
}
 
#endif /* __JV_NO_THREADS__ */
/gnu-dev/or1k-gcc/libjava/include/i386-signal.h
0,0 → 1,178
// i386-signal.h - Catch runtime signals and turn them into exceptions
// on an i386 based Linux system.
 
/* Copyright (C) 1998, 1999, 2001, 2002, 2006, 2007, 2011
Free Software Foundation
 
This file is part of libgcj.
 
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
 
 
#ifdef __i386__
 
#ifndef JAVA_SIGNAL_H
#define JAVA_SIGNAL_H 1
 
#include <signal.h>
#include <sys/syscall.h>
 
#define HANDLE_SEGV 1
#define HANDLE_FPE 1
 
#define SIGNAL_HANDLER(_name) \
static void _Jv_##_name (int, siginfo_t *, \
void *_p __attribute__ ((__unused__)))
 
#define HANDLE_DIVIDE_OVERFLOW \
do \
{ \
struct ucontext *_uc = (struct ucontext *)_p; \
gregset_t &_gregs = _uc->uc_mcontext.gregs; \
unsigned char *_eip = (unsigned char *)_gregs[REG_EIP]; \
\
/* According to the JVM spec, "if the dividend is the negative \
* integer of largest possible magnitude for the type and the \
* divisor is -1, then overflow occurs and the result is equal to \
* the dividend. Despite the overflow, no exception occurs". \
\
* We handle this by inspecting the instruction which generated the \
* signal and advancing ip to point to the following instruction. \
* As the instructions are variable length it is necessary to do a \
* little calculation to figure out where the following instruction \
* actually is. \
\
*/ \
\
/* Detect a signed division of Integer.MIN_VALUE. */ \
if (_eip[0] == 0xf7) \
{ \
bool _min_value_dividend = false; \
unsigned char _modrm = _eip[1]; \
\
if (((_modrm >> 3) & 7) == 7) /* Signed divide */ \
{ \
_min_value_dividend = \
_gregs[REG_EAX] == (greg_t)0x80000000UL; \
} \
\
if (_min_value_dividend) \
{ \
unsigned char _rm = _modrm & 7; \
_gregs[REG_EDX] = 0; /* the remainder is zero */ \
switch (_modrm >> 6) \
{ \
case 0: /* register indirect */ \
if (_rm == 5) /* 32-bit displacement */ \
_eip += 4; \
if (_rm == 4) /* A SIB byte follows the ModR/M byte */ \
_eip += 1; \
break; \
case 1: /* register indirect + 8-bit displacement */ \
_eip += 1; \
if (_rm == 4) /* A SIB byte follows the ModR/M byte */ \
_eip += 1; \
break; \
case 2: /* register indirect + 32-bit displacement */ \
_eip += 4; \
if (_rm == 4) /* A SIB byte follows the ModR/M byte */ \
_eip += 1; \
break; \
case 3: \
break; \
} \
_eip += 2; \
_gregs[REG_EIP] = (greg_t)_eip; \
return; \
} \
} \
} \
while (0)
 
/* We use kernel_sigaction here because we're calling the kernel
directly rather than via glibc. The sigaction structure that the
syscall uses is a different shape from the one in userland and not
visible to us in a header file so we define it here. */
 
extern "C"
{
struct kernel_sigaction
{
void (*k_sa_sigaction)(int,siginfo_t *,void *);
unsigned long k_sa_flags;
void (*k_sa_restorer) (void);
sigset_t k_sa_mask;
};
}
 
#define MAKE_THROW_FRAME(_exception)
 
#define RESTORE(name, syscall) RESTORE2 (name, syscall)
#define RESTORE2(name, syscall) \
asm \
( \
".text\n" \
".byte 0 # Yes, this really is necessary\n" \
" .align 16\n" \
"__" #name ":\n" \
" movl $" #syscall ", %eax\n" \
" int $0x80" \
);
 
/* The return code for realtime-signals. */
RESTORE (restore_rt, __NR_rt_sigreturn)
void restore_rt (void) asm ("__restore_rt")
__attribute__ ((visibility ("hidden")));
 
#define INIT_SEGV \
do \
{ \
struct kernel_sigaction act; \
act.k_sa_sigaction = _Jv_catch_segv; \
sigemptyset (&act.k_sa_mask); \
act.k_sa_flags = SA_SIGINFO|0x4000000; \
act.k_sa_restorer = restore_rt; \
syscall (SYS_rt_sigaction, SIGSEGV, &act, NULL, _NSIG / 8); \
} \
while (0)
 
#define INIT_FPE \
do \
{ \
struct kernel_sigaction act; \
act.k_sa_sigaction = _Jv_catch_fpe; \
sigemptyset (&act.k_sa_mask); \
act.k_sa_flags = SA_SIGINFO|0x4000000; \
act.k_sa_restorer = restore_rt; \
syscall (SYS_rt_sigaction, SIGFPE, &act, NULL, _NSIG / 8); \
} \
while (0)
 
/* You might wonder why we use syscall(SYS_sigaction) in INIT_FPE
* instead of the standard sigaction(). This is necessary because of
* the shenanigans above where we increment the PC saved in the
* context and then return. This trick will only work when we are
* called _directly_ by the kernel, because linuxthreads wraps signal
* handlers and its wrappers do not copy the sigcontext struct back
* when returning from a signal handler. If we return from our divide
* handler to a linuxthreads wrapper, we will lose the PC adjustment
* we made and return to the faulting instruction again. Using
* syscall(SYS_sigaction) causes our handler to be called directly
* by the kernel, bypassing any wrappers.
 
* Also, there may not be any unwind info in the linuxthreads
* library's signal handlers and so we can't unwind through them
* anyway. */
 
#endif /* JAVA_SIGNAL_H */
#else /* __i386__ */
 
/* This is for the 64-bit subsystem on i386. */
 
#define sigcontext_struct sigcontext
#include <java-signal-aux.h>
 
#endif /* __i386__ */
/gnu-dev/or1k-gcc/libjava/include/jvmti_md.h
0,0 → 1,66
/* jvmti_md.h
Copyright (C) 2006, 2007 Free Software Foundation, Inc.
 
This file is part of GNU Classpath.
 
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath 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
General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301 USA.
 
As a special exception, if you link this library with other files to
produce an executable, this library does not by itself cause the
resulting executable to be covered by the GNU General Public License.
This exception does not however invalidate any other reasons why the
executable file might be covered by the GNU General Public License. */
 
#ifndef __GCJ_JVMTI_MD_H__
#define __GCJ_JVMTI_MD_H__
 
#ifdef __GCJ_JNI_IMPL__
 
/* If __GCJ_JNI_IMPL__ is defined, then we assume that we're building
libgcj itself, and we include functions which should not be exposed
to JVMTI users. */
 
/* The number of event slots needed to keep track of event reporting
constraints for an environment. This will only work if the order of
events listed in jvmtiEvent and jvmtiEventCallbacks is kept the same
(which should not be a problem). */
#define EVENT_SLOTS \
(int)(JVMTI_EVENT_VM_OBJECT_ALLOC - JVMTI_EVENT_VM_INIT + 1)
 
/* Contents of the jvmtiEnv; but only inside the implementation. */
#define _CLASSPATH_JVMTIENV_CONTENTS \
/* Event handlers registered via SetEventCallbacks */ \
jvmtiEventCallbacks callbacks; \
\
/* Array of event thread for which to report event. */ \
/* NULL means all threads. One for each callback. */ \
jthread thread[EVENT_SLOTS]; \
\
/* Array of notification modes for callbacks. */ \
/* One for each callback. */ \
bool enabled[EVENT_SLOTS];
 
/* Redefine the standard JVMTI types to something a little more
precise than "jobject". */
#define _CLASSPATH_VM_JVMTI_TYPES_DEFINED
typedef java::lang::Thread *jthread;
typedef java::lang::ThreadGroup *jthreadGroup;
typedef jlong jlocation;
typedef struct _Jv_rawMonitorID *jrawMonitorID;
 
#endif /* __GCJ_JNI_IMPL__ */
 
#endif /* __GCJ_JVMTI_MD_H__ */
/gnu-dev/or1k-gcc/libjava/include/s390-signal.h
0,0 → 1,288
// s390-signal.h - Catch runtime signals and turn them into exceptions
// on an s390 based Linux system.
 
/* Copyright (C) 2002, 2010 Free Software Foundation
 
This file is part of libgcj.
 
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
 
 
#ifndef JAVA_SIGNAL_H
#define JAVA_SIGNAL_H 1
 
#include <signal.h>
#include <sys/syscall.h>
#include <ucontext.h>
#include <limits.h>
 
#define HANDLE_SEGV 1
#define HANDLE_FPE 1
 
#define SIGNAL_HANDLER(_name) \
static void _name (int, siginfo_t *_si __attribute__((unused)), \
ucontext_t *_uc __attribute__((unused)))
 
/* We no longer need to fiddle with the PSW address in the signal handler;
this is now all handled correctly in MD_FALLBACK_FRAME_STATE_FOR. */
#define MAKE_THROW_FRAME(_exception)
 
 
/* According to the JVM spec, "if the dividend is the negative integer
of the smallest magnitude and the divisor is -1, then overflow occurs
and the result is equal to the dividend. Despite the overflow, no
exception occurs".
 
We handle this by inspecting the instruction which generated the signal,
and if dividend and divisor are as above, we simply return from the signal
handler. This causes execution to continue after the instruction.
Before returning, we the set result registers as expected. */
#define UC_EXTENDED 0x00000001
 
#define HANDLE_DIVIDE_OVERFLOW \
do \
{ \
unsigned char *_eip = (unsigned char *) \
__builtin_extract_return_addr (_si->si_addr); \
unsigned long *_regs = _uc->uc_mcontext.gregs; \
int _r1, _r2, _d2, _x2, _b2; \
struct \
{ \
unsigned long int uc_flags; \
struct ucontext *uc_link; \
stack_t uc_stack; \
mcontext_t uc_mcontext; \
unsigned long sigmask[2]; \
unsigned long ext_regs[16]; \
} *_uc_ext = (typeof(_uc_ext))_uc; \
\
/* First, a couple of helper routines to decode instructions. */ \
struct _decode \
{ \
/* Decode RR instruction format. */ \
static inline int _is_rr (unsigned char *_eip, \
unsigned char _op, \
int *_r1, int *_r2) \
{ \
if (_eip[0] == _op) \
{ \
*_r1 = _eip[1] >> 4; \
*_r2 = _eip[1] & 0xf; \
return 1; \
} \
return 0; \
} \
\
/* Decode RX instruction format. */ \
static inline int _is_rx (unsigned char *_eip, \
unsigned char _op, \
int *_r1, int *_d2, int *_x2, int *_b2) \
{ \
if (_eip[0] == _op) \
{ \
*_r1 = _eip[1] >> 4; \
*_x2 = _eip[1] & 0xf; \
*_b2 = _eip[2] >> 4; \
*_d2 = ((_eip[2] & 0xf) << 8) + _eip[3]; \
return 1; \
} \
return 0; \
} \
\
/* Decode RRE instruction format. */ \
static inline int _is_rre (unsigned char *_eip, \
unsigned char _op1, unsigned char _op2,\
int *_r1, int *_r2) \
{ \
if (_eip[0] == _op1 && _eip[1] == _op2) \
{ \
*_r1 = _eip[3] >> 4; \
*_r2 = _eip[3] & 0xf; \
return 1; \
} \
return 0; \
} \
\
/* Decode RXY instruction format. */ \
static inline int _is_rxy (unsigned char *_eip, \
unsigned char _op1, unsigned char _op2,\
int *_r1, int *_d2, int *_x2, int *_b2)\
{ \
if (_eip[0] == _op1 && _eip[5] == _op2) \
{ \
*_r1 = _eip[1] >> 4; \
*_x2 = _eip[1] & 0xf; \
*_b2 = _eip[2] >> 4; \
*_d2 = ((_eip[2] & 0xf) << 8) + _eip[3] + (_eip[4] << 12); \
/* We have a 20-bit signed displacement. */ \
*_d2 = (*_d2 ^ 0x80000) - 0x80000; \
return 1; \
} \
return 0; \
} \
\
/* Compute effective address. */ \
static inline unsigned long _eff (unsigned long *_regs, \
long _d, int _x, int _b) \
{ \
return _d + (_x? _regs[_x] : 0) + (_b? _regs[_b] : 0); \
} \
\
static inline int is_long_long_min_p (unsigned long *_regs, \
unsigned long *_ext_regs, \
int _r) \
{ \
return ((long long)_regs[_r] \
| (long long)_ext_regs[_r] << 32) == \
LONG_LONG_MIN; \
} \
}; \
\
/* DR r1,r2 */ \
if (_decode::_is_rr (_eip, 0x1d, &_r1, &_r2) \
&& (int) _regs[_r1] == -1 && (int) _regs[_r1+1] == INT_MIN \
&& (int) _regs[_r2] == -1) \
{ \
_regs[_r1] &= ~0xffffffff; \
return; \
} \
\
/* D r1,d2(x2,b2) */ \
if (_decode::_is_rx (_eip, 0x5d, &_r1, &_d2, &_x2, &_b2) \
&& (int) _regs[_r1] == -1 && (int) _regs[_r1+1] == INT_MIN \
&& *(int *) _decode::_eff (_regs, _d2, _x2, _b2) == -1) \
{ \
_regs[_r1] &= ~0xffffffff; \
return; \
} \
\
/* DSGR r1,r2 */ \
if (_decode::_is_rre (_eip, 0xb9, 0x0d, &_r1, &_r2) \
&& (long) _regs[_r1+1] == LONG_MIN \
&& (long) _regs[_r2] == -1L) \
{ \
_regs[_r1] = 0; \
return; \
} \
\
/* DSGFR r1,r2 */ \
if (_decode::_is_rre (_eip, 0xb9, 0x1d, &_r1, &_r2) \
&& (long) _regs[_r1+1] == LONG_MIN \
&& (int) _regs[_r2] == -1) \
{ \
_regs[_r1] = 0; \
return; \
} \
\
/* DSG r1,d2(x2,b2) */ \
if (_decode::_is_rxy (_eip, 0xe3, 0x0d, &_r1, &_d2, &_x2, &_b2) \
&& (long) _regs[_r1+1] == LONG_MIN \
&& *(long *) _decode::_eff (_regs, _d2, _x2, _b2) == -1L) \
{ \
_regs[_r1] = 0; \
return; \
} \
\
/* DSGF r1,d2(x2,b2) */ \
if (_decode::_is_rxy (_eip, 0xe3, 0x1d, &_r1, &_d2, &_x2, &_b2) \
&& (long) _regs[_r1+1] == LONG_MIN \
&& *(int *) _decode::_eff (_regs, _d2, _x2, _b2) == -1) \
{ \
_regs[_r1] = 0; \
return; \
} \
\
/* The extended ucontext contains the upper halfs of the 64bit \
registers in 31bit applications. */ \
if (_uc->uc_flags & 1 == 1) \
{ \
/* DSGR r1,r2 */ \
if (_decode::_is_rre (_eip, 0xb9, 0x0d, &_r1, &_r2) \
&& (int) _regs[_r2] == -1 \
&& (int) _uc_ext->ext_regs[_r2] == -1 \
&& _decode::is_long_long_min_p (_regs, _uc_ext->ext_regs, \
_r1 + 1)) \
{ \
_regs[_r1] = 0; \
_uc_ext->ext_regs[_r1] = 0; \
return; \
} \
\
/* DSGFR r1,r2 */ \
if (_decode::_is_rre (_eip, 0xb9, 0x1d, &_r1, &_r2) \
&& (int) _regs[_r2] == -1 \
&& _decode::is_long_long_min_p (_regs, _uc_ext->ext_regs, \
_r1 + 1)) \
{ \
_regs[_r1] = 0; \
_uc_ext->ext_regs[_r1] = 0; \
return; \
} \
\
/* DSG r1,d2(x2,b2) */ \
if (_decode::_is_rxy (_eip, 0xe3, 0x0d, &_r1, &_d2, &_x2, &_b2) \
&& *(int *) _decode::_eff (_regs, _d2, _x2, _b2) == -1 \
&& *(int *) _decode::_eff (_regs, _d2 + 4, _x2, _b2) == -1 \
&& _decode::is_long_long_min_p (_regs, _uc_ext->ext_regs, \
_r1 + 1)) \
{ \
_regs[_r1] = 0; \
_uc_ext->ext_regs[_r1] = 0; \
return; \
} \
\
/* DSGF r1,d2(x2,b2) */ \
if (_decode::_is_rxy (_eip, 0xe3, 0x1d, &_r1, &_d2, &_x2, &_b2) \
&& *(int *) _decode::_eff (_regs, _d2, _x2, _b2) == -1 \
&& _decode::is_long_long_min_p (_regs, _uc_ext->ext_regs, \
_r1 + 1)) \
{ \
_regs[_r1] = 0; \
_uc_ext->ext_regs[_r1] = 0; \
return; \
} \
} \
} \
while (0)
 
/* For an explanation why we cannot simply use sigaction to
install the handlers, see i386-signal.h. */
 
/* We use old_kernel_sigaction here because we're calling the kernel
directly rather than via glibc. The sigaction structure that the
syscall uses is a different shape from the one in userland and not
visible to us in a header file so we define it here. */
 
struct old_s390_kernel_sigaction {
void (*k_sa_handler) (int, siginfo_t *, ucontext_t *);
unsigned long k_sa_mask;
unsigned long k_sa_flags;
void (*sa_restorer) (void);
};
 
#define INIT_SEGV \
do \
{ \
struct old_s390_kernel_sigaction kact; \
kact.k_sa_handler = catch_segv; \
kact.k_sa_mask = 0; \
kact.k_sa_flags = SA_SIGINFO; \
syscall (SYS_sigaction, SIGSEGV, &kact, NULL); \
} \
while (0)
 
#define INIT_FPE \
do \
{ \
struct old_s390_kernel_sigaction kact; \
kact.k_sa_handler = catch_fpe; \
kact.k_sa_mask = 0; \
kact.k_sa_flags = SA_SIGINFO; \
syscall (SYS_sigaction, SIGFPE, &kact, NULL); \
} \
while (0)
 
#endif /* JAVA_SIGNAL_H */
 
/gnu-dev/or1k-gcc/libjava/include/pa-signal.h
0,0 → 1,49
// pa-signal.h - Catch runtime signals and turn them into exceptions.
 
/* Copyright (C) 1998, 1999, 2000, 2009 Free Software Foundation
 
This file is part of libgcj.
 
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
 
#ifndef JAVA_SIGNAL_H
#define JAVA_SIGNAL_H 1
 
#include <signal.h>
#include <sys/syscall.h>
 
#define HANDLE_SEGV 1
#define HANDLE_FPE 1
 
#define SIGNAL_HANDLER(_name) \
static void _Jv_##_name (int _dummy __attribute__ ((unused)), \
siginfo_t *_info __attribute__ ((__unused__)), \
void *arg __attribute__ ((__unused__)))
 
#define MAKE_THROW_FRAME(_exception)
 
#define INIT_SEGV \
do \
{ \
struct sigaction act; \
act.sa_sigaction = _Jv_catch_segv; \
sigemptyset (&act.sa_mask); \
act.sa_flags = SA_SIGINFO; \
syscall (SYS_rt_sigaction, SIGSEGV, &act, NULL, _NSIG / 8); \
} \
while (0)
 
#define INIT_FPE \
do \
{ \
struct sigaction act; \
act.sa_sigaction = _Jv_catch_fpe; \
sigemptyset (&act.sa_mask); \
act.sa_flags = SA_SIGINFO; \
syscall (SYS_rt_sigaction, SIGFPE, &act, NULL, _NSIG / 8); \
} \
while (0)
 
#endif /* JAVA_SIGNAL_H */
/gnu-dev/or1k-gcc/libjava/include/java-interp.h
0,0 → 1,588
// java-interp.h - Header file for the bytecode interpreter. -*- c++ -*-
 
/* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation
 
This file is part of libgcj.
 
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
 
#ifndef __JAVA_INTERP_H__
#define __JAVA_INTERP_H__
 
#include <jvm.h>
#include <java-cpool.h>
#include <gnu/gcj/runtime/NameFinder.h>
 
enum _Jv_FrameType
{
frame_native,
frame_interpreter,
frame_proxy
};
 
#ifdef INTERPRETER
 
#pragma interface
 
#include <java/lang/Class.h>
#include <java/lang/ClassLoader.h>
#include <java/lang/reflect/Modifier.h>
#include <java/lang/Thread.h>
#include <gnu/gcj/RawData.h>
 
// Define this to get the direct-threaded interpreter. If undefined,
// we revert to a basic bytecode interpreter. The former is faster
// but uses more memory.
#define DIRECT_THREADED
 
#include <ffi.h>
 
struct _Jv_ResolvedMethod;
 
void _Jv_InitInterpreter ();
void _Jv_DefineClass (jclass, jbyteArray, jint, jint,
java::security::ProtectionDomain *,
_Jv_Utf8Const **);
 
void _Jv_InitField (jobject, jclass, int);
void * _Jv_AllocMethodInvocation (jsize size);
int _Jv_count_arguments (_Jv_Utf8Const *signature,
jboolean staticp = true);
void _Jv_VerifyMethod (_Jv_InterpMethod *method);
void _Jv_CompileMethod (_Jv_InterpMethod* method);
int _Jv_init_cif (_Jv_Utf8Const* signature,
int arg_count,
jboolean staticp,
ffi_cif *cif,
ffi_type **arg_types,
ffi_type **rtype_p);
 
/* the interpreter is written in C++, primarily because it makes it easy for
* the entire thing to be "friend" with class Class. */
 
class _Jv_InterpClass;
class _Jv_InterpMethod;
 
// Before a method is "compiled" we store values as the bytecode PC,
// an int. Afterwards we store them as pointers into the prepared
// code itself.
union _Jv_InterpPC
{
int i;
void *p;
};
 
class _Jv_InterpException
{
_Jv_InterpPC start_pc;
_Jv_InterpPC end_pc;
_Jv_InterpPC handler_pc;
_Jv_InterpPC handler_type;
 
friend class _Jv_ClassReader;
friend class _Jv_InterpMethod;
friend class _Jv_BytecodeVerifier;
};
 
// Base class for method representations. Subclasses are interpreted
// and JNI methods.
class _Jv_MethodBase
{
protected:
// The class which defined this method.
jclass defining_class;
 
// The method description.
_Jv_Method *self;
 
// Size of raw arguments.
_Jv_ushort args_raw_size;
 
friend class _Jv_InterpreterEngine;
 
public:
_Jv_Method *get_method ()
{
return self;
}
};
 
// The type of the PC depends on whether we're doing direct threading
// or a more ordinary bytecode interpreter.
#ifdef DIRECT_THREADED
// Slot in the "compiled" form of the bytecode.
union insn_slot
{
// Address of code.
void *insn;
// An integer value used by an instruction.
jint int_val;
// A pointer value used by an instruction.
void *datum;
};
 
typedef insn_slot *pc_t;
#else
typedef unsigned char *pc_t;
#endif
 
 
// This structure holds the bytecode pc and corresponding source code
// line number. An array (plus length field) of this structure is put
// in each _Jv_InterpMethod and used to resolve the (internal) program
// counter of the interpreted method to an actual java source file
// line.
struct _Jv_LineTableEntry
{
union
{
pc_t pc;
int bytecode_pc;
};
int line;
};
 
// This structure holds local variable information.
// Like _Jv_LineTableEntry above, it is remapped when the method is
// compiled for direct threading.
struct _Jv_LocalVarTableEntry
{
// First PC value at which variable is live
union
{
pc_t pc;
int bytecode_pc;
};
 
// length of visibility of variable
int length;
 
// variable name
char *name;
 
// type description
char *descriptor;
 
// stack slot number (long and double occupy slot and slot + 1)
int slot;
};
 
class _Jv_InterpMethod : public _Jv_MethodBase
{
// Breakpoint instruction
static pc_t breakpoint_insn;
#ifdef DIRECT_THREADED
static insn_slot bp_insn_slot;
 
public:
// Mutex to prevent a data race between threads when rewriting
// instructions. See interpret-run.cc for an explanation of its use.
static _Jv_Mutex_t rewrite_insn_mutex;
 
// The count of threads executing this method.
long thread_count;
 
private:
 
#else
static unsigned char bp_insn_opcode;
#endif
 
_Jv_ushort max_stack;
_Jv_ushort max_locals;
int code_length;
 
_Jv_ushort exc_count;
bool is_15;
 
// Length of the line_table - when this is zero then line_table is NULL.
int line_table_len;
_Jv_LineTableEntry *line_table;
// The local variable table length and the table itself
int local_var_table_len;
_Jv_LocalVarTableEntry *local_var_table;
 
pc_t prepared;
int number_insn_slots;
 
unsigned char* bytecode ()
{
return
((unsigned char*)this)
+ ROUND((sizeof (_Jv_InterpMethod)
+ exc_count*sizeof (_Jv_InterpException)), 4);
}
 
_Jv_InterpException * exceptions ()
{
return (_Jv_InterpException*) (this+1);
}
 
static size_t size (int exc_count, int code_length)
{
return
ROUND ((sizeof (_Jv_InterpMethod)
+ (exc_count * sizeof (_Jv_InterpException))), 4)
+ code_length;
}
 
// return the method's invocation pointer (a stub).
void *ncode (jclass);
void compile (const void * const *);
 
#if FFI_NATIVE_RAW_API
# define INTERP_FFI_RAW_TYPE ffi_raw
#else
# define INTERP_FFI_RAW_TYPE ffi_java_raw
#endif
 
static void run_normal (ffi_cif*, void*, INTERP_FFI_RAW_TYPE*, void*);
static void run_synch_object (ffi_cif*, void*, INTERP_FFI_RAW_TYPE*, void*);
static void run_class (ffi_cif*, void*, INTERP_FFI_RAW_TYPE*, void*);
static void run_synch_class (ffi_cif*, void*, INTERP_FFI_RAW_TYPE*, void*);
static void run_normal_debug (ffi_cif*, void*, INTERP_FFI_RAW_TYPE*, void*);
static void run_synch_object_debug (ffi_cif*, void*, INTERP_FFI_RAW_TYPE*,
void*);
static void run_class_debug (ffi_cif*, void*, INTERP_FFI_RAW_TYPE*, void*);
static void run_synch_class_debug (ffi_cif*, void*, INTERP_FFI_RAW_TYPE*,
void*);
 
static void run (void *, INTERP_FFI_RAW_TYPE *, _Jv_InterpMethod *);
static void run_debug (void *, INTERP_FFI_RAW_TYPE *, _Jv_InterpMethod *);
 
// Returns source file line number for given PC value, or -1 if line
// number info is unavailable.
int get_source_line(pc_t mpc);
 
public:
 
// Convenience function for indexing bytecode PC/insn slots in
// line tables for JDWP
jlong insn_index (pc_t pc);
// Helper function used to check if there is a handler for an exception
// present at this code index
jboolean check_handler (pc_t *pc, _Jv_InterpMethod *meth,
java::lang::Throwable *ex);
/* Get the line table for this method.
* start is the lowest index in the method
* end is the highest index in the method
* line_numbers is an array to hold the list of source line numbers
* code_indices is an array to hold the corresponding list of code indices
*/
void get_line_table (jlong& start, jlong& end, jintArray& line_numbers,
jlongArray& code_indices);
int get_max_locals ()
{
return static_cast<int> (max_locals);
}
/* Get info for a local variable of this method.
* If there is no loca_var_table for this method it will return -1.
* table_slot indicates which slot in the local_var_table to get, if there is
* no variable at this location it will return 0.
* Otherwise, it will return the number of table slots after the selected
* slot, indexed from 0.
*
* Example: there are 5 slots in the table, you request slot 0 so it will
* return 4.
*/
int get_local_var_table (char **name, char **sig, char **generic_sig,
jlong *startloc, jint *length, jint *slot,
int table_slot);
 
/* Installs a break instruction at the given code index. Returns
the pc_t of the breakpoint or NULL if index is invalid. */
pc_t install_break (jlong index);
 
// Gets the instruction at the given index
pc_t get_insn (jlong index);
 
/* Writes the given instruction at the given code index. Returns
the insn or NULL if index is invalid. */
pc_t set_insn (jlong index, pc_t insn);
 
// Is the given location in this method a breakpoint?
bool breakpoint_at (jlong index);
 
#ifdef DIRECT_THREADED
friend void _Jv_CompileMethod (_Jv_InterpMethod*);
#endif
friend class _Jv_ClassReader;
friend class _Jv_BytecodeVerifier;
friend class _Jv_StackTrace;
friend class _Jv_InterpreterEngine;
 
#ifdef JV_MARKOBJ_DECL
friend JV_MARKOBJ_DECL;
#endif
};
 
class _Jv_InterpClass
{
_Jv_MethodBase **interpreted_methods;
_Jv_ushort *field_initializers;
jstring source_file_name;
_Jv_ClosureList **closures;
 
friend class _Jv_ClassReader;
friend class _Jv_InterpMethod;
friend class _Jv_StackTrace;
friend class _Jv_InterpreterEngine;
 
friend void _Jv_InitField (jobject, jclass, int);
#ifdef JV_MARKOBJ_DECL
friend JV_MARKOBJ_DECL;
#endif
 
friend _Jv_MethodBase ** _Jv_GetFirstMethod (_Jv_InterpClass *klass);
friend jstring _Jv_GetInterpClassSourceFile (jclass);
};
 
extern inline _Jv_MethodBase **
_Jv_GetFirstMethod (_Jv_InterpClass *klass)
{
return klass->interpreted_methods;
}
 
struct _Jv_ResolvedMethod
{
jint stack_item_count;
jclass klass;
_Jv_Method* method;
 
// a resolved method holds the cif in-line, so that _Jv_MarkObj just needs
// to mark the resolved method to hold on to the cif. Some memory could be
// saved by keeping a cache of cif's, since many will be the same.
ffi_cif cif;
ffi_type * arg_types[0];
};
 
class _Jv_JNIMethod : public _Jv_MethodBase
{
// The underlying function. If NULL we have to look for the
// function.
void *function;
 
// This is the CIF used by the JNI function.
ffi_cif jni_cif;
 
// These are the argument types used by the JNI function.
ffi_type **jni_arg_types;
 
// This function is used when making a JNI call from the interpreter.
static void call (ffi_cif *, void *, INTERP_FFI_RAW_TYPE *, void *);
 
void *ncode (jclass);
 
friend class _Jv_ClassReader;
friend class _Jv_InterpreterEngine;
 
#ifdef JV_MARKOBJ_DECL
friend JV_MARKOBJ_DECL;
#endif
 
public:
// FIXME: this is ugly.
void set_function (void *f)
{
function = f;
}
};
 
// The composite call stack as represented by a linked list of frames
class _Jv_Frame
{
public:
java::lang::Thread *thread;
 
union
{
_Jv_MethodBase *self;
void *meth;
_Jv_Method *proxyMethod;
};
//The full list of frames, JNI and interpreted
_Jv_Frame *next;
_Jv_FrameType frame_type;
_Jv_Frame (_Jv_MethodBase *s, java::lang::Thread *thr, _Jv_FrameType type)
{
self = s;
frame_type = type;
next = (_Jv_Frame *) thr->frame;
thr->frame = (gnu::gcj::RawData *) this;
thread = thr;
}
 
~_Jv_Frame ()
{
thread->frame = (gnu::gcj::RawData *) next;
}
 
int depth ()
{
int depth = 0;
struct _Jv_Frame *f;
for (f = this; f != NULL; f = f->next)
++depth;
 
return depth;
}
};
 
// An interpreted frame in the call stack
class _Jv_InterpFrame : public _Jv_Frame
{
public:
// Keep the purely interpreted list around so as not to break backtraces
_Jv_InterpFrame *next_interp;
union
{
pc_t pc;
jclass proxyClass;
};
// Pointer to the actual pc value.
pc_t *pc_ptr;
 
//Debug info for local variables.
_Jv_word *locals;
char *locals_type;
 
// Object pointer for this frame ("this")
jobject obj_ptr;
 
_Jv_InterpFrame (void *meth, java::lang::Thread *thr, jclass proxyCls = NULL,
pc_t *pc = NULL,
_Jv_FrameType frame_type = frame_interpreter)
: _Jv_Frame (reinterpret_cast<_Jv_MethodBase *> (meth), thr,
frame_type)
{
next_interp = (_Jv_InterpFrame *) thr->interp_frame;
proxyClass = proxyCls;
thr->interp_frame = (gnu::gcj::RawData *) this;
obj_ptr = NULL;
pc_ptr = pc;
}
 
~_Jv_InterpFrame ()
{
thread->interp_frame = (gnu::gcj::RawData *) next_interp;
}
 
jobject get_this_ptr ()
{
return obj_ptr;
}
pc_t get_pc ()
{
pc_t pc;
// If the PC_PTR is NULL, we are not debugging.
if (pc_ptr == NULL)
pc = 0;
else
pc = *pc_ptr - 1;
return pc;
}
};
 
// A native frame in the call stack really just a placeholder
class _Jv_NativeFrame : public _Jv_Frame
{
public:
 
_Jv_NativeFrame (_Jv_JNIMethod *s, java::lang::Thread *thr)
: _Jv_Frame (s, thr, frame_native)
{
}
};
 
#ifdef DIRECT_THREADED
// This class increments and decrements the thread_count field in an
// interpreted method. On entry to the interpreter a
// ThreadCountAdjuster is created when increments the thread_count in
// the current method and uses the next_interp field in the frame to
// find the previous method and decrement its thread_count.
class ThreadCountAdjuster
{
 
// A class used to handle the rewrite_insn_mutex while we're
// adjusting the thread_count in a method. Unlocking the mutex in a
// destructor ensures that it's unlocked even if (for example) a
// segfault occurs in the critical section.
class MutexLock
{
private:
_Jv_Mutex_t *mutex;
public:
MutexLock (_Jv_Mutex_t *m)
{
mutex = m;
_Jv_MutexLock (mutex);
}
~MutexLock ()
{
_Jv_MutexUnlock (mutex);
}
};
 
_Jv_InterpMethod *method;
_Jv_InterpMethod *next_method;
 
public:
 
ThreadCountAdjuster (_Jv_InterpMethod *m, _Jv_InterpFrame *fr)
{
MutexLock lock (&::_Jv_InterpMethod::rewrite_insn_mutex);
 
method = m;
next_method = NULL;
 
_Jv_InterpFrame *next_interp = fr->next_interp;
 
// Record the fact that we're executing this method and that
// we're no longer executing the method that called us.
method->thread_count++;
 
if (next_interp && next_interp->frame_type == frame_interpreter)
{
next_method
= reinterpret_cast<_Jv_InterpMethod *> (next_interp->meth);
next_method->thread_count--;
}
}
 
~ThreadCountAdjuster ()
{
MutexLock lock (&::_Jv_InterpMethod::rewrite_insn_mutex);
 
// We're going to return to the method that called us, so bump its
// thread_count and decrement our own.
 
method->thread_count--;
 
if (next_method)
next_method->thread_count++;
}
};
#endif // DIRECT_THREADED
 
#endif /* INTERPRETER */
 
#endif /* __JAVA_INTERP_H__ */
/gnu-dev/or1k-gcc/libjava/include/jvmti-int.h
0,0 → 1,94
/* jvmti-int.h -- Internal JVMTI definitions
Copyright (C) 2006, 2007 Free Software Foundation, Inc.
 
This file is part of GNU Classpath.
 
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath 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
General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301 USA.
 
As a special exception, if you link this library with other files to
produce an executable, this library does not by itself cause the
resulting executable to be covered by the GNU General Public License.
This exception does not however invalidate any other reasons why the
executable file might be covered by the GNU General Public License. */
 
#ifndef __GCJ_JVTMI_INT_H__
#define __GCJ_JVMTI_INT_H__
 
/* A macro to map jvmtiEvent to an index in thread[] and enabled[]
in the jvmtiEnv. This will only work if the order of events listed
in jvmtiEvent and jvmtiEventCallbacks is kept the same (which should
not be a problem). */
#define EVENT_INDEX(jvmtievent) (int)(jvmtievent - JVMTI_EVENT_VM_INIT)
 
/* A few globals to help limit the impact of JVMTI on normal operations.
False means no JVMTI environment requested that event type. */
namespace JVMTI
{
// Is JVMTI enabled? (i.e., any jvmtiEnv created?)
extern bool enabled;
 
// Event notifications
extern bool VMInit;
extern bool VMDeath;
extern bool ThreadStart;
extern bool ThreadEnd;
extern bool ClassFileLoadHook;
extern bool ClassLoad;
extern bool ClassPrepare;
extern bool VMStart;
extern bool Exception;
extern bool ExceptionCatch;
extern bool SingleStep;
extern bool FramePop;
extern bool Breakpoint;
extern bool FieldAccess;
extern bool FieldModification;
extern bool MethodEntry;
extern bool MethodExit;
extern bool NativeMethodBind;
extern bool CompiledMethodLoad;
extern bool CompiledMethodUnload;
extern bool DynamicCodeGenerated;
extern bool DataDumpRequest;
extern bool reserved72;
extern bool MonitorWait;
extern bool MonitorWaited;
extern bool MonitorContendedEnter;
extern bool MonitorContendedEntered;
extern bool reserved77;
extern bool reserved78;
extern bool reserved79;
extern bool reserved80;
extern bool GarbageCollectionStart;
extern bool GarbageCollectionFinish;
extern bool ObjectFree;
extern bool VMObjectAlloc;
};
 
/* A macro to test whether an event should be posted to JVMTI.*/
#define JVMTI_REQUESTED_EVENT(Event) __builtin_expect (JVMTI::Event, false)
 
/* Post the event to requesting JVMTI environments.
 
For speed, this function should only be called after
JVMTI_REQUESTED_EVENT is checked. */
extern void _Jv_JVMTI_PostEvent (jvmtiEvent type, jthread event_thread, ...);
// Returns the jvmtiEnv used by the JDWP backend
extern jvmtiEnv *_Jv_GetJDWP_JVMTIEnv (void);
 
// Reports JVMTI excpetions
extern void _Jv_ReportJVMTIExceptionThrow (jthrowable);
#endif /* __GCJ_JVMTI_INT_H__ */
/gnu-dev/or1k-gcc/libjava/include/mips-signal.h
0,0 → 1,49
// mips-signal.h - Catch runtime signals and turn them into exceptions
// on an mips based Linux system.
 
/* Copyright (C) 1998, 1999, 2001, 2002, 2003, 2004, 2006
Free Software Foundation
 
This file is part of libgcj.
 
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
 
/* Adapted from sparc-signal.h and powerpc-signal.h
by David Daney <ddaney@avtrex.com> */
 
#ifndef JAVA_SIGNAL_H
#define JAVA_SIGNAL_H 1
 
#include <signal.h>
#include <unistd.h>
 
#define HANDLE_SEGV 1
#define HANDLE_FPE 1
 
#define SIGNAL_HANDLER(_name) \
static void _name (int _dummy __attribute__ ((__unused__)), \
siginfo_t *_info __attribute__ ((__unused__)), \
void *_arg __attribute__ ((__unused__)))
 
#define MAKE_THROW_FRAME(_exception)
 
#define _INIT_SIG_HANDLER(_SIG, _ACTION) \
do \
{ \
struct sigaction act; \
act.sa_sigaction = _ACTION; \
act.sa_flags = SA_SIGINFO | SA_NODEFER; \
sigemptyset (&act.sa_mask); \
sigaction(_SIG, &act, NULL); \
} \
while (0)
 
#define INIT_SEGV _INIT_SIG_HANDLER (SIGSEGV, catch_segv)
 
#define INIT_FPE _INIT_SIG_HANDLER (SIGFPE, catch_fpe)
#undef HANDLE_DIVIDE_OVERFLOW
 
#endif /* JAVA_SIGNAL_H */
/gnu-dev/or1k-gcc/libjava/include/java-chartables.h
0,0 → 1,1617
/* java-chartables.h -- Character tables for java.lang.Character -*- c++ -*-
Copyright (C) 2002, 2006 Free Software Foundation, Inc.
*** This file is generated by scripts/unicode_to_chartables.pl ***
 
This file is part of GNU Classpath.
 
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
 
GNU Classpath 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
General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301 USA.
 
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
 
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
 
#ifndef __JAVA_CHARTABLES_H__
#define __JAVA_CHARTABLES_H__
 
// These tables are automatically generated by scripts/unicode_to_chartables.pl.
// The Unicode data comes from www.unicode.org; this header is based on
// UnicodeData-4.0.0.txt. JDK 1.5 uses Unicode version 4.0.0.
// DO NOT EDIT the tables. Instead, fix the upstream scripts and run
// them again.
 
// The data is stored in C style arrays of the appropriate CNI types, to
// guarantee that the data is constant and non-relocatable. The field
// <code>blocks</code> stores the offset of a block of 2<sup>SHIFT</sup>
// characters within <code>data</code>. The data field, in turn, stores
// information about each character in the low order bits, and an offset
// into the attribute tables <code>upper</code>, <code>lower</code>,
// <code>numValue</code>, and <code>direction</code>. Notice that the
// attribute tables are much smaller than 0xffff entries; as many characters
// in Unicode share common attributes. Finally, there is a listing for
// <code>title</code> exceptions (most characters just have the same title
// case as upper case).
 
// This file should only be included by natCharacter.cc
 
/**
* The array containing the numeric values that are too large to be stored as
* chars in NUM_VALUE. NUM_VALUE in this case will contain a negative integer
* N such that LARGENUMS[-N - 3] contains the correct numeric value.
*/
static const jint largenums[] = {
40000, 50000, 60000, 70000, 80000, 90000, };
 
/**
* The character shift amount to look up the block offset. In other words,
* <code>(char) (blocks[p][off >> SHIFT[p]] + off)</code> is the index where
* <code>ch</code> is described in <code>data</code>, where <code>off</code>
* is ch & 0xffff and <code>p</code> is the plane the character belongs to.
*/
static const int shift[] = {
4, 6, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, };
 
/**
* The mapping of character blocks to their location in <code>data</code>.
* Each entry has been adjusted so that a modulo 16 sum with the desired
* character gives the actual index into <code>data</code>.
*/
static const jchar blocks0[] = {
15, 23, 53, 7, 52, 52, 90, 65424, 65437, 65427,
11, 65461, 11, 4, 28, 21, 23, 7, 65527, 173,
269, 65479, 65463, 65403, 273, 273, 183, 257, 65500, 65354,
65335, 65267, 65303, 65287, 65269, 65401, 220, 50, 321, 5,
65511, 317, 304, 311, 355, 355, 274, 325, 358, 342,
326, 310, 65409, 401, 262, 65156, 458, 64826, 442, 64843,
426, 65140, 64823, 334, 435, 64699, 64683, 64716, 64700, 371,
64695, 64679, 64680, 64647, 64631, 64615, 275, 64583, 64567, 64578,
64535, 65036, 65020, 64723, 64708, 64701, 65034, 65019, 65012, 65237,
65219, 64791, 64789, 138, 127, 181, 64945, 220, 64878, 249,
203, 65507, 107, 249, 64783, 64767, 64751, 64735, 64719, 9,
171, 105, 65531, 88, 64623, 64822, 65494, 64460, 64444, 64428,
64527, 64511, 65392, 65529, 64348, 64332, 64316, 64300, 64284, 64268,
64252, 64236, 64220, 64204, 64188, 64172, 64156, 64140, 64124, 64108,
64092, 64076, 64060, 64044, 65249, 64259, 64243, 65267, 64724, 65291,
65299, 63915, 64394, 63482, 64105, 64485, 64366, 63758, 65193, 65199,
64377, 63354, 63977, 63687, 65020, 63328, 64386, 65087, 63204, 63872,
63849, 63246, 64454, 63332, 64937, 64989, 64010, 63098, 63721, 64328,
63117, 62956, 64913, 63171, 63428, 63323, 63407, 63323, 63803, 64222,
64347, 64791, 63236, 63489, 63465, 64420, 64727, 63279, 64657, 63148,
64331, 63361, 63337, 64631, 64369, 63898, 64529, 63020, 64203, 63233,
63209, 64143, 64503, 63838, 64401, 62892, 64468, 62443, 63091, 63450,
64391, 63538, 62780, 62759, 62994, 62979, 62963, 64143, 64157, 64041,
62652, 62636, 62151, 63220, 63096, 64185, 64185, 63935, 62524, 62508,
64137, 62218, 63176, 63172, 62666, 62659, 63643, 62845, 63847, 62669,
62662, 62649, 62052, 62284, 62268, 62252, 62483, 62467, 62722, 63849,
63671, 63833, 62140, 62124, 62108, 62092, 63783, 63767, 63761, 62275,
62259, 63347, 62227, 62211, 62195, 62179, 62163, 63148, 62131, 62115,
62099, 62083, 63075, 62051, 62035, 62019, 62003, 63473, 61963, 61955,
61939, 61923, 61227, 61211, 61875, 61859, 61163, 61827, 61795, 61123,
61107, 61755, 61731, 61731, 61699, 61027, 61683, 61667, 61643, 62635,
62147, 62425, 61340, 61324, 61555, 61539, 61523, 61507, 61491, 62966,
61458, 61443, 61427, 61411, 61395, 61379, 61363, 61347, 61331, 61315,
61299, 61283, 61267, 61251, 61235, 61219, 61203, 61187, 61171, 61155,
61139, 61123, 61107, 61091, 61075, 61059, 61043, 61027, 61011, 60995,
60979, 60963, 60947, 60931, 60915, 60899, 60883, 60867, 60205, 62324,
61814, 61782, 60787, 60771, 60755, 60739, 62073, 62215, 60677, 62199,
60659, 62183, 60627, 62167, 60581, 62151, 60563, 60547, 60531, 62103,
61004, 62098, 60246, 62097, 62097, 60198, 60403, 60387, 61402, 60355,
60339, 61811, 60307, 60291, 61953, 60012, 59996, 59980, 59964, 59948,
60179, 61161, 61746, 60531, 59888, 60099, 61080, 61558, 59804, 59788,
59772, 59756, 59740, 59724, 61668, 61652, 59676, 59660, 59644, 59628,
59612, 59596, 59580, 59564, 59548, 59532, 59516, 59500, 59484, 59468,
59452, 59436, 59420, 59404, 59388, 59372, 59356, 59340, 59324, 59308,
59292, 59276, 59260, 59244, 59228, 59212, 59196, 59180, 59164, 59148,
59132, 59116, 59100, 59084, 59068, 59052, 59036, 59020, 59004, 58988,
58972, 58956, 58940, 58924, 59088, 59072, 59060, 59056, 59040, 59024,
61022, 58796, 58780, 58764, 58748, 58732, 58716, 58700, 58684, 58668,
58135, 58119, 58103, 58087, 58071, 58055, 58039, 58023, 58007, 58200,
57975, 57959, 57943, 57927, 57911, 59112, 60622, 60622, 60590, 60574,
60574, 60574, 60526, 60558, 60558, 60542, 60526, 60526, 58499, 60510,
60510, 57701, 60494, 60494, 57467, 60493, 57427, 57334, 59163, 60445,
60445, 57996, 60429, 60427, 57948, 60411, 58887, 57900, 58047, 59809,
60046, 59529, 60439, 58731, 60423, 60423, 60423, 59922, 60407, 59668,
59654, 59631, 59620, 59616, 59751, 60187, 60182, 59602, 60111, 60058,
59577, 60060, 59602, 59637, 60006, 60003, 59952, 59516, 59950, 59932,
60070, 59316, 60048, 60043, 60033, 60017, 60001, 57613, 59204, 57620,
59188, 57600, 59140, 59945, 57148, 57132, 59076, 59060, 59859, 57068,
59823, 57036, 59825, 59805, 59785, 59785, 59681, 59818, 59808, 59808,
59798, 58754, 58820, 58804, 58788, 58772, 58756, 58740, 58724, 58708,
58692, 58676, 58660, 59374, 58626, 58612, 58596, 58588, 58564, 57001,
58532, 58516, 58500, 58484, 58469, 59260, 58436, 59240, 59224, 56428,
56412, 56396, 56380, 56364, 56728, 58292, 56729, 58260, 56650, 59204,
56673, 56667, 56657, 58964, 58148, 58939, 56156, 58635, 59076, 58084,
58052, 58036, 58020, 58004, 57988, 57972, 57956, 57940, 57924, 57908,
57892, 57876, 57860, 57844, 57828, 57812, 57812, 57796, 57780, 57764,
57748, 57732, 57716, 57700, 57710, 57702, 58220, 57822, 57775, 58235,
57679, 57584, 57562, 58161, 57661, 57673, 57492, 57671, 58045, 57561,
57996, 57980, 57473, 57948, 57932, 57405, 57879, 57420, 58092, 55308,
55292, 55276, 55260, 55244, 55228, 55212, 55196, 55180, 55164, 55148,
55132, 55116, 55100, 55084, 55068, 55052, 55036, 55020, 55004, 54988,
54972, 54956, 54940, 54924, 54908, 54892, 54876, 54860, 54844, 54828,
54812, 54796, 54780, 54764, 54748, 54732, 54716, 54700, 54684, 54668,
54652, 54636, 54620, 54604, 54588, 54572, 54556, 54540, 54524, 54508,
54492, 54476, 54460, 54444, 56388, 54823, 56356, 56340, 56324, 56308,
56292, 57094, 56260, 56244, 56228, 56212, 56196, 56180, 56164, 56148,
56132, 56116, 56100, 56084, 56068, 56868, 54076, 56830, 57012, 57010,
54323, 56918, 54226, 54211, 54195, 54179, 54163, 55228, 54114, 54115,
54099, 54083, 54067, 55067, 55046, 54019, 55001, 53986, 53971, 53955,
53939, 53923, 53891, 53991, 53875, 55347, 53596, 53580, 53564, 53795,
56257, 56244, 56368, 56209, 56320, 56450, 56161, 56149, 56272, 56113,
56097, 56100, 56165, 56049, 56033, 56133, 56001, 55985, 55969, 55953,
55937, 55921, 55905, 55994, 55873, 55857, 55841, 55825, 55809, 55795,
55777, 55762, 53267, 53251, 53235, 53219, 53203, 53187, 53171, 53155,
53139, 53123, 53107, 53091, 53075, 53059, 53043, 53027, 53011, 52995,
52979, 52963, 52947, 52931, 52915, 52899, 52883, 52867, 52851, 52835,
52819, 52803, 52787, 52771, 52755, 52739, 52723, 52707, 52691, 52675,
52659, 52643, 52627, 52611, 52595, 52579, 52563, 52547, 52531, 52515,
52499, 52483, 52467, 52451, 52435, 52419, 52403, 52387, 52371, 52355,
52339, 52323, 52307, 52291, 52275, 52259, 52243, 52227, 52211, 52195,
52179, 52163, 52147, 52131, 52115, 52099, 52083, 52067, 52051, 52035,
52019, 52003, 51987, 51971, 51955, 51939, 51923, 51907, 51891, 51875,
51859, 51843, 51827, 51811, 51795, 51779, 51763, 51747, 51731, 51715,
51699, 51683, 51667, 51651, 51635, 51619, 51603, 51587, 51571, 51555,
51539, 51523, 51507, 51491, 51475, 51459, 51443, 51427, 51411, 51395,
51379, 51363, 51347, 51331, 51315, 51299, 51283, 51267, 51251, 51235,
51219, 51203, 51187, 51171, 51155, 51139, 51123, 51107, 51091, 51075,
51059, 51043, 51027, 51011, 50995, 50979, 50963, 50947, 50931, 50915,
50899, 50883, 50867, 50851, 50835, 50819, 50803, 50787, 50771, 50755,
50739, 50723, 50707, 50691, 50675, 50659, 50643, 50627, 50611, 50595,
50579, 50563, 50547, 50531, 50515, 50499, 50483, 50467, 50451, 50435,
50419, 50403, 50387, 50371, 50355, 50339, 50323, 50307, 50291, 50275,
50259, 50243, 50227, 50211, 50195, 50179, 50163, 50147, 50131, 50115,
50099, 50083, 50067, 50051, 50035, 50019, 50003, 49987, 49971, 49955,
49939, 49923, 49907, 49891, 49875, 49859, 49843, 49827, 49811, 49795,
49779, 49763, 49747, 49731, 49715, 49699, 49683, 49667, 49651, 49635,
49619, 49603, 49587, 49571, 49555, 49539, 49523, 49507, 49491, 49475,
49459, 49443, 49427, 49411, 49395, 49379, 49363, 49347, 49331, 49315,
49299, 49283, 49267, 49251, 49235, 49219, 49203, 49187, 49171, 49155,
49139, 49123, 49107, 49091, 49075, 49059, 49043, 49027, 49011, 48995,
48979, 48963, 48947, 48931, 48915, 48899, 48883, 48867, 48851, 48835,
48819, 48803, 48787, 48771, 48755, 48739, 48723, 48707, 48691, 48675,
48659, 48643, 48627, 48611, 48595, 48579, 48563, 48547, 48531, 48515,
48499, 48483, 48467, 48451, 48435, 48419, 48403, 48387, 48371, 48355,
48339, 48323, 48307, 48291, 48275, 48259, 48243, 48227, 48211, 48195,
48179, 48163, 48147, 48131, 48115, 48099, 48083, 48067, 48051, 48035,
48019, 48003, 47987, 47971, 47955, 47939, 47923, 47907, 47891, 47875,
47859, 47843, 47827, 47811, 47795, 47779, 47763, 47747, 47731, 47715,
47699, 47683, 47667, 47651, 47635, 47619, 47603, 47587, 47571, 47555,
47539, 47523, 47507, 47491, 47475, 47459, 47443, 47427, 47411, 47395,
47379, 47363, 47347, 47331, 47315, 47299, 47283, 47267, 47251, 47235,
47219, 47203, 47187, 47171, 47155, 47139, 47123, 47107, 47091, 47075,
47059, 47043, 47027, 47011, 46995, 46979, 46963, 46947, 46931, 46915,
46899, 46883, 46867, 46851, 46835, 46819, 46803, 46787, 46771, 46755,
46739, 46723, 46707, 48181, 48388, 48372, 48356, 48340, 46611, 46595,
46579, 46563, 46547, 46531, 46515, 46499, 46483, 46467, 46451, 46435,
46419, 46403, 46387, 46371, 46355, 46339, 46323, 46307, 46291, 46275,
46259, 46243, 46227, 46211, 46195, 46179, 46163, 46147, 46131, 46115,
46099, 46083, 46067, 46051, 46035, 46019, 46003, 45987, 45971, 45955,
45939, 45923, 45907, 45891, 45875, 45859, 45843, 45827, 45811, 45795,
45779, 45763, 45747, 45731, 45715, 45699, 45683, 45667, 45651, 45635,
45619, 45603, 45587, 45571, 45555, 45539, 45523, 45507, 45491, 45475,
45459, 45443, 45427, 45411, 45395, 45379, 45363, 45347, 45331, 45315,
45299, 45283, 45267, 45251, 45235, 45219, 45203, 45187, 45171, 45155,
45139, 45123, 45107, 45091, 45075, 45059, 45043, 45027, 45011, 44995,
44979, 44963, 44947, 44931, 44915, 44899, 44883, 44867, 44851, 44835,
44819, 44803, 44787, 44771, 44755, 44739, 44723, 44707, 44691, 44675,
44659, 44643, 44627, 44611, 44595, 44579, 44563, 44547, 44531, 44515,
44499, 44483, 44467, 44451, 44435, 44419, 44403, 44387, 44371, 44355,
44339, 44323, 44307, 44291, 44275, 44259, 44243, 44227, 44211, 44195,
44179, 44163, 44147, 44131, 44115, 44099, 44083, 44067, 44051, 44035,
44019, 44003, 43987, 43971, 43955, 43939, 43923, 43907, 43891, 43875,
43859, 43843, 43827, 43811, 43795, 43779, 43763, 43747, 43731, 43715,
43699, 43683, 43667, 43651, 43635, 43619, 43603, 43587, 43571, 43555,
43539, 43523, 43507, 43491, 43475, 43459, 43443, 43427, 43411, 43395,
43379, 43363, 43347, 43331, 43315, 43299, 43283, 43267, 43251, 43235,
43219, 43203, 43187, 43171, 43155, 43139, 43123, 43107, 43091, 43075,
43059, 43043, 43027, 43011, 42995, 42979, 42963, 42947, 42931, 42915,
42899, 42883, 42867, 42851, 42835, 42819, 42803, 42787, 42771, 42755,
42739, 42723, 42707, 42691, 42675, 42659, 42643, 42627, 42611, 42595,
42579, 42563, 42547, 42531, 42515, 42499, 42483, 42467, 42451, 42435,
42419, 42403, 42387, 42371, 42355, 42339, 42323, 42307, 42291, 42275,
42259, 42243, 42227, 42211, 42195, 42179, 42163, 42147, 42131, 42115,
42099, 42083, 42067, 42051, 42035, 42019, 42003, 41987, 41971, 41955,
41939, 41923, 41907, 41891, 41875, 41859, 41843, 41827, 41811, 41795,
41779, 41763, 41747, 41731, 41715, 41699, 41683, 41667, 41651, 41635,
41619, 41603, 41587, 41571, 41555, 41539, 41523, 41507, 41491, 41475,
41459, 41443, 41427, 41411, 41395, 41379, 41363, 41347, 41331, 41315,
41299, 41283, 41267, 41251, 41235, 41219, 41203, 41187, 41171, 41155,
41139, 41123, 41107, 41091, 41075, 41059, 41043, 41027, 41011, 40995,
40979, 40963, 40947, 40931, 40915, 40899, 40883, 40867, 40851, 40835,
40819, 40803, 40787, 40771, 40755, 40739, 40723, 40707, 40691, 40675,
40659, 40643, 40627, 40611, 40595, 40579, 40563, 40547, 40531, 40515,
40499, 40483, 40467, 40451, 40435, 40419, 40403, 40387, 40371, 40355,
40339, 40323, 40307, 40291, 40275, 40259, 40243, 40227, 40211, 40195,
40179, 40163, 40147, 40131, 40115, 40099, 40083, 40067, 40051, 40035,
40019, 40003, 39987, 39971, 39955, 39939, 39923, 39907, 39891, 39875,
39859, 39843, 39827, 39811, 39795, 39779, 39763, 39747, 39731, 39715,
39699, 39683, 39667, 39651, 39635, 39619, 39603, 39587, 39571, 39555,
39539, 39523, 39507, 39491, 39475, 39459, 39443, 39427, 39411, 39395,
39379, 39363, 39347, 39331, 39315, 39299, 39283, 39267, 39251, 39235,
39219, 39203, 39187, 39171, 39155, 39139, 39123, 39107, 39091, 39075,
39059, 39043, 39027, 39011, 38995, 38979, 38963, 38947, 38931, 38915,
38899, 38883, 38867, 38851, 38835, 38819, 38803, 38787, 38771, 38755,
38739, 38723, 38707, 38691, 38675, 38659, 38643, 38627, 38611, 38595,
38579, 38563, 38547, 38531, 38515, 38499, 38483, 38467, 38451, 38435,
38419, 38403, 38387, 38371, 38355, 38339, 38323, 38307, 38291, 38275,
38259, 38243, 38227, 38211, 38195, 38179, 38163, 38147, 38131, 38115,
38099, 38083, 38067, 38051, 38035, 38019, 38003, 37987, 37971, 37955,
37939, 37923, 37907, 37891, 37875, 37859, 37843, 37827, 37811, 37795,
37779, 37763, 37747, 37731, 37715, 37699, 37683, 37667, 37651, 37635,
37619, 37603, 37587, 37571, 37555, 37539, 37523, 37507, 37491, 37475,
37459, 37443, 37427, 37411, 37395, 37379, 37363, 37347, 37331, 37315,
37299, 37283, 37267, 37251, 37235, 37219, 37203, 37187, 37171, 37155,
37139, 37123, 37107, 37091, 37075, 37059, 37043, 37027, 37011, 36995,
36979, 36963, 36947, 36931, 36915, 36899, 36883, 36867, 36851, 36835,
36819, 36803, 36787, 36771, 36755, 36739, 36723, 36707, 36691, 36675,
36659, 36643, 36627, 36611, 36595, 36579, 36563, 36547, 36531, 36515,
36499, 36483, 36467, 36451, 36435, 36419, 36403, 36387, 36371, 36355,
36339, 36323, 36307, 36291, 36275, 36259, 36243, 36227, 36211, 36195,
36179, 36163, 36147, 36131, 36115, 36099, 36083, 36067, 36051, 36035,
36019, 36003, 35987, 35971, 35955, 35939, 35923, 35907, 35891, 35875,
35859, 35843, 35827, 35811, 35795, 35779, 35763, 35747, 35731, 35715,
35699, 35683, 35667, 35651, 35635, 35619, 35603, 35587, 35571, 35555,
35539, 35523, 35507, 35491, 35475, 35459, 35443, 35427, 35411, 35395,
35379, 35363, 35347, 35331, 35315, 35299, 35283, 35267, 35251, 35235,
35219, 35203, 35187, 35171, 35155, 35139, 35123, 35107, 35091, 35075,
35059, 35043, 35027, 35011, 34995, 34979, 34963, 34947, 34931, 34915,
34899, 34883, 34867, 34851, 34835, 34819, 34803, 34787, 34771, 34755,
34739, 34723, 34707, 34691, 34675, 34659, 34643, 34627, 34611, 34595,
34579, 34563, 34547, 34531, 34515, 34499, 34483, 34467, 34451, 34435,
34419, 34403, 34387, 34371, 34355, 34339, 34323, 34307, 34291, 34275,
34259, 34243, 34227, 34211, 34195, 34179, 34163, 34147, 34131, 34115,
34099, 34083, 34067, 34051, 34035, 34019, 34003, 33987, 33971, 33955,
33939, 33923, 33907, 33891, 33875, 33859, 33843, 33827, 33811, 33795,
33779, 33763, 33747, 33731, 33715, 33699, 33683, 33667, 33651, 33635,
33619, 33603, 33587, 33571, 33555, 33539, 33523, 33507, 33491, 33475,
33459, 33443, 33427, 33411, 33395, 33379, 33363, 33347, 33331, 33315,
33299, 33283, 33267, 33251, 33235, 33219, 33203, 33187, 33171, 33155,
33139, 33123, 33107, 33091, 33075, 33059, 33043, 33027, 33011, 32995,
32979, 32963, 32947, 32931, 32915, 32899, 32883, 32867, 32851, 32835,
32819, 32803, 32787, 32771, 32755, 32739, 32723, 32707, 32691, 32675,
32659, 32643, 32627, 32611, 32595, 32579, 32563, 32547, 32531, 32515,
32499, 32483, 32467, 32451, 32435, 32419, 32403, 32387, 32371, 32355,
32339, 32323, 32307, 32291, 32275, 32259, 32243, 32227, 32211, 32195,
32179, 32163, 32147, 32131, 32115, 32099, 32083, 32067, 32051, 32035,
32019, 32003, 31987, 31971, 31955, 31939, 31923, 31907, 31891, 31875,
31859, 31843, 31827, 31811, 31795, 31779, 31763, 31747, 31731, 31715,
31699, 31683, 31667, 31651, 31635, 31619, 31603, 31587, 31571, 31555,
31539, 31523, 31507, 31491, 31475, 31459, 31443, 31427, 31411, 31395,
31379, 31363, 31347, 31331, 31315, 31299, 31283, 31267, 31251, 31235,
31219, 31203, 31187, 31171, 31155, 31139, 31123, 31107, 31091, 31075,
31059, 31043, 31027, 31011, 30995, 30979, 30963, 30947, 30931, 30915,
30899, 30883, 30867, 30851, 30835, 30819, 30803, 30787, 30771, 30755,
30739, 30723, 30707, 30691, 30675, 30659, 30643, 30627, 30611, 30595,
30579, 30563, 30547, 30531, 30515, 30499, 30483, 30467, 30451, 30435,
30419, 30403, 30387, 30371, 30355, 30339, 30323, 30307, 30291, 30275,
30259, 30243, 30227, 30211, 30195, 30179, 30163, 30147, 30131, 30115,
30099, 30083, 30067, 30051, 30035, 30019, 30003, 29987, 29971, 29955,
29939, 29923, 29907, 29891, 29875, 29859, 29843, 29827, 29811, 29795,
29779, 29763, 29747, 29731, 29715, 29699, 29683, 29667, 29651, 29635,
29619, 29603, 29587, 29571, 29555, 29539, 29523, 29507, 29491, 29475,
29459, 29443, 29427, 29411, 29395, 29379, 29363, 29347, 29331, 29315,
29299, 29283, 29267, 29251, 29235, 29219, 29203, 29187, 29171, 29155,
29139, 29123, 29107, 29091, 29075, 29059, 29043, 29027, 29011, 28995,
28979, 28963, 28947, 28931, 28915, 28899, 28883, 28867, 28851, 28835,
28819, 28803, 28787, 28771, 28755, 28739, 28723, 28707, 28691, 28675,
28659, 28643, 28627, 28611, 28595, 28579, 28563, 28547, 28531, 28515,
28499, 28483, 28467, 28451, 28435, 28419, 28403, 28387, 28371, 28355,
28339, 28323, 28307, 28291, 28275, 28259, 28243, 28227, 28211, 28195,
28179, 28163, 28147, 28131, 28115, 28099, 28083, 28067, 28051, 28035,
28019, 28003, 27987, 27971, 27955, 27939, 27923, 27907, 27891, 27875,
27859, 27843, 27827, 27811, 27795, 27779, 27763, 27747, 27731, 27715,
27699, 27683, 27667, 27651, 27635, 27619, 27603, 27587, 27571, 27555,
27539, 27523, 27507, 27491, 27475, 27459, 27443, 27427, 27411, 27395,
27379, 27363, 27347, 27331, 27315, 27299, 27283, 27267, 27251, 27235,
27219, 27203, 27187, 27171, 27155, 27139, 27123, 27107, 27091, 27075,
27059, 27043, 27027, 27011, 26995, 26979, 26963, 26947, 26931, 26915,
26899, 26883, 26867, 26851, 26835, 26819, 26803, 26787, 26771, 26755,
26739, 26723, 26707, 26691, 26675, 26659, 26643, 26627, 26611, 26595,
26579, 26563, 26547, 26531, 26515, 26499, 26483, 26467, 26451, 26435,
26419, 26403, 26387, 26371, 26355, 26339, 26323, 26307, 26291, 26275,
26259, 26243, 26227, 26211, 26195, 26179, 26163, 26147, 26131, 26115,
26099, 26083, 26067, 26051, 26035, 26019, 26003, 25987, 25971, 25955,
25939, 25923, 25907, 25891, 25875, 25859, 25843, 25827, 25811, 25795,
25779, 25763, 25747, 25731, 27205, 25452, 25436, 25420, 25404, 25388,
25619, 25603, 25587, 25571, 25555, 25539, 25523, 25507, 25491, 25475,
25459, 25443, 25427, 25411, 25395, 25379, 25363, 25347, 25331, 25315,
25299, 25283, 25267, 25251, 25235, 25219, 25203, 25187, 25171, 25155,
25139, 25123, 25107, 25091, 25075, 25059, 25043, 25027, 25011, 24995,
24979, 24963, 24947, 24931, 24915, 24899, 24883, 24867, 24851, 24835,
24819, 24803, 24787, 24771, 24755, 24739, 24723, 24707, 24691, 24675,
24659, 24643, 24627, 24611, 24595, 24579, 24563, 24547, 24531, 24515,
24499, 24483, 25465, 26164, 26148, 26132, 26931, 24140, 24124, 24108,
24092, 24076, 24060, 24044, 24028, 24012, 23996, 23980, 23964, 23948,
23932, 23916, 23900, 23884, 23868, 23852, 23836, 23820, 23804, 23788,
23772, 23756, 23740, 23724, 23708, 23692, 23676, 23660, 23644, 23628,
23612, 23596, 23580, 23564, 23548, 23532, 23516, 23500, 23484, 23468,
23452, 23436, 23420, 23404, 23388, 23372, 23356, 23340, 23324, 23308,
23292, 23276, 23260, 23244, 23228, 23212, 23196, 23180, 23164, 23148,
23132, 23116, 23100, 23084, 23068, 23052, 23036, 23020, 23004, 22988,
22972, 22956, 22940, 22924, 22908, 22892, 22876, 22860, 22844, 22828,
22812, 22796, 22780, 22764, 22748, 22732, 22716, 22700, 22684, 22668,
22652, 22636, 22620, 22604, 22588, 22572, 22556, 22540, 22524, 22508,
22492, 22476, 22460, 22444, 22428, 22412, 22396, 22380, 22364, 22348,
22332, 22316, 22547, 22531, 22515, 22499, 22483, 22467, 22451, 22435,
22419, 22403, 22387, 22371, 22355, 22339, 22323, 22307, 22291, 22275,
22259, 22243, 22227, 22211, 22195, 22179, 22163, 22147, 22131, 22115,
22099, 22083, 22067, 22051, 22035, 22019, 22003, 21987, 21971, 21955,
21939, 21923, 21907, 21891, 21875, 21859, 21843, 21827, 21811, 21795,
21779, 21763, 21747, 21731, 21715, 21699, 21683, 21667, 21651, 21635,
21619, 21603, 21587, 21571, 21555, 21539, 21523, 21507, 21491, 21475,
21459, 21443, 21427, 21411, 21395, 21379, 21363, 21347, 21331, 21315,
21299, 21283, 21267, 21251, 21235, 21219, 21203, 21187, 21171, 21155,
21139, 21123, 21107, 21091, 21075, 21059, 21043, 21027, 21011, 20995,
20979, 20963, 20947, 20931, 20915, 20899, 20883, 20867, 20851, 20835,
20819, 20803, 20787, 20771, 20755, 20739, 20723, 20707, 20691, 20675,
20659, 20643, 20627, 20611, 20595, 20579, 20563, 20547, 20531, 20515,
20499, 20483, 20467, 20451, 20435, 20419, 20403, 20387, 20371, 20355,
20339, 20323, 20307, 20291, 20275, 20259, 20243, 20227, 20211, 20195,
20179, 20163, 20147, 20131, 20115, 20099, 20083, 20067, 20051, 20035,
20019, 20003, 19987, 19971, 19955, 19939, 19923, 19907, 19891, 19875,
19859, 19843, 19827, 19811, 19795, 19779, 19763, 19747, 19731, 19715,
19699, 19683, 19667, 19651, 19635, 19619, 19603, 19587, 19571, 19555,
19539, 19523, 19507, 19491, 19475, 19459, 19443, 19427, 19411, 19395,
19379, 19363, 19347, 19331, 19315, 19299, 19283, 19267, 19251, 19235,
19219, 19203, 19187, 19171, 19155, 19139, 19123, 19107, 19091, 19075,
19059, 19043, 19027, 19011, 18995, 18979, 18963, 18947, 18931, 18915,
18899, 18883, 18867, 18851, 18835, 18819, 18803, 18787, 18771, 18755,
18739, 18723, 18707, 18691, 18675, 18659, 18643, 18627, 18611, 18595,
18579, 18563, 18547, 18531, 18515, 18499, 18483, 18467, 18451, 18435,
18419, 18403, 18387, 18371, 18355, 18339, 18323, 18307, 18291, 18275,
18259, 18243, 18227, 18211, 18195, 18179, 18163, 18147, 18131, 18115,
18099, 18083, 18067, 18051, 18035, 18019, 18003, 17987, 17971, 17955,
17939, 17923, 17907, 17891, 17875, 17859, 17843, 17827, 17811, 17795,
17779, 17763, 17747, 17731, 17715, 17699, 17683, 17667, 17651, 17635,
17619, 17603, 17587, 17571, 17555, 17539, 17523, 17507, 17491, 17475,
17459, 17443, 17427, 17411, 17395, 17379, 17363, 17347, 17331, 17315,
17299, 17283, 17267, 17251, 17235, 17219, 17203, 17187, 17171, 17155,
17139, 17123, 17107, 17091, 17075, 17059, 17043, 17027, 17011, 16995,
16979, 16963, 16947, 16931, 16915, 16899, 16883, 16867, 16851, 16835,
16819, 16803, 16787, 16771, 16755, 16739, 16723, 16707, 16691, 16675,
16659, 16643, 16627, 16611, 16595, 16579, 16563, 16547, 16531, 16515,
16499, 16483, 16467, 16451, 16435, 16419, 16403, 16387, 16371, 16355,
16339, 16323, 16307, 16291, 16275, 16259, 16243, 16227, 16211, 16195,
16179, 16163, 16147, 16131, 16115, 16099, 16083, 16067, 16051, 16035,
16019, 16003, 15987, 15971, 15955, 15939, 15923, 15907, 15891, 15875,
15859, 15843, 15827, 15811, 15795, 15779, 15763, 15747, 15731, 15715,
15699, 15683, 15667, 15651, 15635, 15619, 15603, 15587, 15571, 15555,
15539, 15523, 15507, 15491, 15475, 15459, 15443, 15427, 15411, 15395,
15379, 15363, 15347, 15331, 15315, 15299, 15283, 15267, 15251, 15235,
15219, 15203, 15187, 15171, 15155, 15139, 15123, 15107, 15091, 15075,
15059, 15043, 15027, 15011, 14995, 14979, 14963, 14947, 14931, 14915,
14899, 14883, 14867, 14851, 14835, 14819, 14803, 14787, 14771, 14755,
14739, 14723, 14707, 14691, 14675, 14659, 14643, 14627, 14611, 14595,
14579, 14563, 14547, 14531, 14515, 14499, 14483, 14467, 14451, 14435,
14419, 14403, 14387, 14371, 14355, 14339, 14323, 14307, 14291, 14275,
14259, 14243, 14227, 14211, 14195, 14179, 14163, 14147, 14131, 14115,
14099, 14083, 14067, 14051, 14035, 14019, 14003, 13987, 13971, 13955,
13939, 13923, 13907, 13891, 13875, 13859, 13843, 13827, 13811, 13795,
13779, 13763, 13747, 13731, 13715, 13699, 13683, 13667, 13651, 13635,
13619, 13603, 13587, 13571, 13555, 13539, 13523, 13507, 13491, 13475,
13459, 13443, 13427, 13411, 13395, 13379, 13363, 13347, 13331, 13315,
13299, 13283, 13267, 13251, 13235, 13219, 13203, 13187, 13171, 13155,
13139, 13123, 13107, 13091, 13075, 13059, 13043, 13027, 13011, 12995,
12979, 12963, 12947, 12931, 12915, 12899, 12883, 12867, 12851, 12835,
12819, 12803, 12787, 12771, 12755, 12739, 12723, 12707, 12691, 12675,
12659, 12643, 12627, 12611, 12595, 12579, 12563, 12547, 12531, 12515,
12499, 12483, 12467, 12451, 12435, 12419, 12403, 12387, 12371, 12355,
12339, 12323, 12307, 12291, 12275, 12259, 12243, 12227, 12211, 12195,
12179, 12163, 12147, 12131, 12115, 12099, 12083, 12067, 12051, 12035,
12019, 12003, 11987, 11971, 11955, 11939, 11923, 11907, 11891, 11875,
11859, 11843, 11827, 11811, 11795, 11779, 11763, 11747, 11731, 11715,
11699, 11683, 11667, 11651, 11635, 11619, 11603, 11587, 11571, 11555,
11539, 11523, 11507, 11491, 11475, 11459, 11443, 11427, 11411, 11395,
12871, 11116, 11100, 11084, 11068, 11052, 14050, 14034, 14018, 14002,
13986, 13970, 13954, 13938, 13922, 13906, 13890, 13874, 13858, 13842,
13826, 13810, 13794, 13778, 13762, 13746, 13730, 13714, 13698, 13682,
13666, 13650, 13634, 13618, 13602, 13586, 13570, 13554, 13538, 13522,
13506, 13490, 13474, 13458, 13442, 13426, 13410, 13394, 13378, 13362,
13346, 13330, 13314, 13298, 13282, 13266, 13250, 13234, 13218, 13202,
13186, 13170, 13154, 13138, 13122, 13106, 13090, 13074, 13058, 13042,
13026, 13010, 12994, 12978, 12962, 12946, 12930, 12914, 12898, 12882,
12866, 12850, 12834, 12818, 12802, 12786, 12770, 12754, 12738, 12722,
12706, 12690, 12674, 12658, 12642, 12626, 12610, 12594, 12578, 12562,
12546, 12530, 12514, 12498, 12482, 12466, 12450, 12434, 12418, 12402,
12386, 12370, 12354, 12338, 12322, 12306, 12290, 12274, 12258, 12242,
12226, 12210, 12194, 12178, 12162, 12146, 12130, 12114, 12098, 12082,
12066, 12050, 12034, 12018, 12018, 12002, 11986, 11970, 11954, 11938,
11922, 11906, 11890, 11874, 11858, 11842, 11826, 11810, 11794, 11778,
11762, 11746, 11730, 11714, 11698, 11682, 11666, 11650, 11634, 11618,
11602, 11586, 11570, 11554, 11538, 11522, 11506, 11490, 11474, 11458,
11442, 11426, 11410, 11394, 11378, 11362, 11346, 11330, 11314, 11298,
11282, 11266, 11250, 11234, 11218, 11202, 11186, 11170, 11154, 11138,
11122, 11106, 11090, 11074, 11058, 11042, 11026, 11010, 10994, 10978,
10962, 10946, 10930, 10914, 10898, 10882, 10866, 10850, 10834, 10818,
10802, 10786, 10770, 10754, 10738, 10722, 10706, 10690, 10674, 10658,
10642, 10626, 10610, 10594, 10578, 10562, 10546, 10530, 10514, 10498,
10482, 10466, 10450, 10434, 10418, 10402, 10386, 10370, 10354, 10338,
10322, 10306, 10290, 10274, 10258, 10242, 10226, 10210, 10194, 10178,
10162, 10146, 10130, 10114, 10098, 10082, 10066, 10050, 10034, 10018,
10002, 9986, 9970, 9954, 9938, 9922, 9906, 9890, 9874, 9858,
9842, 9826, 9810, 9794, 9778, 9762, 9746, 9730, 9714, 9698,
9682, 9666, 9650, 9634, 9618, 9602, 9586, 9570, 9554, 9538,
9522, 9506, 9490, 9474, 9458, 9442, 9426, 9410, 9394, 9378,
9362, 9346, 9330, 9314, 9298, 9282, 9266, 9250, 9234, 9218,
9202, 9186, 9170, 9154, 9138, 9122, 9106, 9090, 9074, 9058,
9042, 9026, 9010, 8994, 8978, 8962, 8946, 8930, 8914, 8898,
8882, 8866, 8850, 8834, 8818, 8802, 8786, 8770, 8754, 8738,
8722, 8706, 8690, 8674, 8658, 8642, 8626, 8610, 8594, 8578,
8562, 8546, 8530, 8514, 8498, 8482, 8466, 8450, 8434, 8418,
8402, 8386, 8370, 8354, 8338, 8322, 8306, 8290, 8274, 8258,
8242, 8226, 8210, 8194, 8178, 8162, 8146, 8130, 8114, 8098,
8082, 8066, 8050, 8034, 8018, 8002, 7986, 7970, 7954, 7938,
7922, 7906, 7890, 7874, 7858, 7842, 7826, 7810, 7794, 7778,
7762, 7746, 7730, 7714, 7698, 7682, 7666, 7650, 7634, 7618,
7602, 7586, 7570, 7554, 7538, 7522, 7506, 7490, 7474, 7458,
7442, 7426, 7410, 7394, 7378, 7362, 7346, 7330, 7314, 7298,
7282, 7266, 7250, 7234, 7218, 7202, 7186, 7170, 7154, 7138,
7122, 7106, 7090, 7074, 7058, 7042, 7026, 7010, 6994, 6978,
6962, 6946, 6930, 6914, 6898, 6882, 6866, 6850, 6834, 6818,
6802, 6786, 6770, 6754, 6738, 6722, 6706, 6690, 6674, 6658,
6642, 6626, 6610, 6594, 6578, 6562, 6546, 6530, 6514, 6498,
6482, 6466, 6450, 6434, 6418, 6402, 6386, 6370, 6354, 6338,
6322, 6306, 6290, 6274, 6258, 6242, 6226, 6210, 6194, 6178,
6162, 6146, 6130, 6114, 6098, 6082, 6066, 6050, 6034, 6018,
6002, 5986, 5970, 5954, 5938, 5922, 5906, 5890, 5874, 5858,
5842, 5826, 5810, 5794, 5778, 5762, 5746, 5730, 5714, 5698,
5682, 5666, 5650, 5634, 2835, 2819, 2803, 2787, 2771, 2755,
2739, 2723, 2707, 2691, 2675, 2659, 2643, 2627, 2611, 2595,
2579, 2563, 3544, 2531, 2515, 2499, 3483, 2220, 2204, 2188,
2172, 2156, 2140, 2124, 2108, 2092, 5122, 2869, 5106, 5100,
2836, 2111, 2095, 2079, 2063, 2047, 2031, 2946, 1884, 1980,
1967, 1951, 1935, 1919, 1903, 1887, 1871, 1855, 1839, 1823,
1807, 1791, 1775, 1759, 1743, 1727, 1711, 1695, 1679, 1663,
1647, 1633, 1500, 1599, 1583, 1567, 1551, 1533, 1519, 1503,
2412, 1356, 1340, 2473, 1638, 1292, 2072, 4348, 4344, 3614,
4328, 2227, 1295, 1279, 1263, 1247, 1231, 1215, 1199, 2172,
1941, 295, 340, 340, 378, 4104, 2137, 2221, 1171, 1157,
1139, 1107, 451, 907, 3976, 819,
};
 
static const jchar blocks1[] = {
0, 65535, 63, 4, 4, 253, 189, 125, 61, 65533,
65469, 65405, 65405, 65266, 65325, 65149, 64639, 64623, 65133, 64893,
64829, 64765, 64701, 64637, 64573, 64509, 64445, 64381, 64317, 64253,
64189, 64125, 64301, 63997, 63933, 63869, 63805, 63741, 63677, 63613,
63549, 63485, 63421, 63357, 63293, 63229, 63165, 63101, 63037, 62973,
62909, 62845, 62781, 62717, 62653, 62589, 62525, 62461, 62397, 62333,
62269, 62205, 62141, 62077, 62013, 61949, 61885, 61821, 61757, 61693,
61629, 61565, 61501, 61437, 61373, 61309, 61245, 61181, 61117, 61053,
60989, 60925, 60861, 60797, 60733, 60669, 60605, 60541, 60477, 60413,
60349, 60285, 60221, 60157, 60093, 60029, 59965, 59901, 59837, 59773,
59709, 59645, 59581, 59517, 59453, 59389, 59325, 59261, 59197, 59133,
59069, 59005, 58941, 58877, 58813, 58749, 58685, 58621, 58557, 58493,
58429, 58365, 58301, 58237, 58173, 58109, 58045, 57981, 57917, 57853,
57789, 57725, 57661, 57597, 57533, 57469, 57405, 57341, 57277, 57213,
57149, 57085, 57021, 56957, 56893, 56829, 56765, 56701, 56637, 56573,
56509, 56445, 56381, 56317, 56253, 56189, 56125, 56061, 55997, 55933,
55869, 55805, 55741, 55677, 55613, 55549, 55485, 55421, 55357, 55293,
55229, 55165, 55101, 55037, 54973, 54909, 54845, 54781, 54717, 54653,
54589, 54525, 54461, 54397, 54333, 54269, 54205, 54141, 54077, 54013,
53949, 53885, 53821, 53757, 53693, 53629, 53565, 53501, 53437, 53373,
53309, 53245, 53181, 53117, 53053, 52989, 52925, 52861, 52797, 52733,
52669, 52605, 52541, 52477, 52413, 52349, 52285, 52221, 52157, 52093,
52029, 51965, 51901, 51837, 51773, 51709, 51645, 51581, 51517, 51453,
51389, 51325, 51261, 51197, 51133, 51069, 51005, 50941, 50877, 50813,
50749, 50685, 50621, 50557, 50493, 50429, 50365, 50301, 50237, 50173,
50109, 50045, 49981, 49917, 49853, 49789, 49725, 49661, 49597, 49533,
49469, 49405, 49341, 49277, 49213, 49149, 49085, 49021, 48957, 48893,
48829, 48765, 48701, 48637, 48573, 48509, 48445, 48381, 48317, 48253,
48189, 48125, 48061, 47997, 47933, 47869, 47805, 47741, 47677, 47613,
47549, 47485, 47421, 47357, 47293, 47229, 47165, 47101, 47037, 46973,
46909, 46845, 46781, 46717, 46653, 46589, 46525, 46461, 46397, 46333,
46269, 46205, 46141, 46077, 46013, 45949, 45885, 45821, 45757, 45693,
45629, 45565, 45501, 45437, 45373, 45309, 45245, 45181, 45117, 45053,
44989, 44925, 44861, 44797, 44733, 44669, 44605, 44541, 44477, 44413,
44349, 44285, 44221, 44157, 44093, 44029, 43965, 43901, 43837, 43773,
43709, 43645, 43581, 43517, 43453, 43389, 43325, 43261, 43197, 43133,
43069, 43005, 42941, 42877, 42813, 42749, 42685, 42621, 42557, 42493,
42429, 42365, 42301, 42237, 42173, 42109, 42045, 41981, 41917, 41853,
41789, 41725, 41661, 41597, 41533, 41469, 41405, 41341, 41277, 41213,
41149, 41085, 41021, 40957, 40893, 40829, 40765, 40701, 40637, 40573,
40509, 40445, 40381, 40317, 40253, 40189, 40125, 40061, 39997, 39933,
39869, 39805, 39741, 39677, 39613, 39549, 39485, 39421, 39357, 39293,
39229, 39165, 39101, 39037, 38973, 38909, 38845, 38781, 38717, 38653,
38589, 38525, 38461, 38397, 38333, 38269, 38205, 38141, 38077, 38013,
37949, 37885, 37821, 37757, 37693, 37629, 37565, 37501, 37437, 37373,
37309, 37245, 37181, 37117, 37053, 36989, 36925, 36861, 36797, 36733,
36669, 36605, 36541, 36477, 36413, 36349, 36285, 36221, 36157, 36093,
36029, 35965, 35901, 35837, 35773, 35709, 35645, 35581, 35517, 35453,
35389, 35325, 35261, 35197, 35133, 35069, 35005, 34941, 34877, 34813,
34749, 34685, 34621, 34557, 34493, 34429, 34365, 34301, 34237, 34173,
34109, 34045, 33981, 33917, 33853, 33789, 33725, 33661, 33597, 33533,
33469, 33405, 33341, 33277, 33213, 33149, 33085, 33021, 32957, 32893,
32829, 32765, 32701, 32637, 32573, 32509, 32445, 32381, 32317, 32253,
32189, 32125, 32061, 31997, 31933, 31869, 31805, 31741, 31677, 31613,
31549, 31485, 31421, 31357, 31293, 31229, 31165, 31101, 31037, 30973,
30909, 30845, 30781, 30717, 30653, 30589, 30525, 30461, 30397, 30333,
30269, 30205, 30141, 30077, 30013, 29949, 29885, 29821, 29757, 29693,
29629, 29565, 29501, 29437, 29373, 29309, 29245, 29181, 29117, 29053,
28989, 28925, 28861, 28797, 28733, 28669, 28605, 28541, 28477, 28413,
28349, 28285, 28221, 28157, 28093, 28029, 27965, 27901, 27837, 27773,
27709, 27645, 27581, 27517, 27453, 27389, 27325, 27261, 27197, 27133,
27069, 27005, 26941, 26877, 26813, 26749, 26685, 26621, 26557, 26493,
26429, 26365, 26301, 26237, 26173, 26109, 26045, 25981, 25917, 25853,
25789, 25725, 25661, 25597, 25533, 25469, 25405, 25341, 25277, 25213,
25149, 25085, 25021, 24957, 24893, 24829, 24765, 24701, 24637, 24573,
24509, 24445, 24381, 24317, 24253, 24189, 24125, 24061, 23997, 23933,
23869, 23805, 23741, 23677, 23613, 23549, 23485, 23421, 23357, 23293,
23229, 23165, 23101, 23037, 22973, 22909, 22845, 22781, 22717, 22653,
22589, 22525, 22461, 22397, 22333, 22269, 22205, 22141, 22077, 22013,
21949, 21885, 21821, 21757, 21693, 21629, 21565, 21501, 21437, 21373,
21309, 21245, 21181, 21117, 21053, 20989, 20925, 20861, 20797, 20733,
20669, 20605, 20541, 20477, 20413, 20349, 20285, 20221, 20157, 20093,
20029, 19965, 19901, 19837, 19773, 19709, 19645, 19581, 19517, 19453,
19389, 19325, 19261, 19197, 19133, 19069, 19005, 18941, 18877, 18813,
18749, 18685, 18621, 18557, 18493, 18429, 18365, 18301, 18237, 18173,
18109, 18045, 17981, 17917, 17853, 17789, 17725, 17661, 17597, 17533,
17469, 17405, 17341, 17277, 17213, 17149, 17085, 17021, 16957, 16893,
16829, 16765, 16701, 16637, 16573, 16509, 16445, 16381, 16317, 16253,
16189, 16125, 16061, 15997, 15933, 15869, 15805, 15741, 15677, 15613,
15549, 15485, 15421, 15357, 15293, 15229, 15165, 15101, 15037, 14973,
14909, 14845, 14781, 14717, 14653, 14589, 14525, 14461, 14397, 14333,
14269, 14205, 14141, 14077, 14013, 13949, 13885, 13821, 13757, 13693,
13629, 13565, 13501, 13437, 13373, 13309, 13245, 13181, 13117, 13053,
12989, 12925, 12752, 12688, 12624, 12570, 12454, 12283, 12280, 12338,
12349, 12285, 12221, 12157, 12397, 12374, 11965, 11901, 12340, 12394,
12451, 12132, 12384, 12197, 11976, 11924, 11820, 11768, 11768, 11542,
11484, 11426, 11368, 11744, 10813, 10749, 10685, 10621, 10557, 10493,
10429, 10365, 10301, 10237, 10173, 10109, 10045, 9981, 9917, 9853,
9789, 9725, 9661, 9597, 9533, 9469, 9405, 9341, 9277, 9213,
9149, 9085, 9021, 8957, 8893, 8829, 8765, 8701, 8637, 8573,
8509, 8445, 8381, 8317, 8253, 8189, 8125, 8061, 7997, 7933,
7869, 7805, 7741, 7677, 7613, 7549, 7485, 7421, 7357, 7293,
7229, 7165, 7101, 7037, 6973, 6909, 6845, 6781, 6717, 6653,
6589, 6525, 6461, 6397, 6333, 6269, 6205, 6141, 6077, 6013,
5949, 5885, 5821, 5757, 5693, 5629, 5565, 5501, 5437, 5373,
5309, 5245, 5181, 5117, 5053, 4989, 4925, 4861, 4797, 4733,
4669, 4605, 4541, 4477, 4413, 4349, 4285, 4221, 4157, 4093,
4029, 3965, 3901, 3837, 3773, 3709, 3645, 3581, 3517, 3453,
3389, 3325, 3261, 3197, 3133, 3069, 3005, 2941, 2877, 2813,
2749, 2685, 2621, 2557, 2493, 2429, 2365, 2301, 2237, 2173,
2109, 2045, 1981, 1917, 1853, 1789, 1725, 1661, 1597, 1533,
1469, 1405, 1341, 1277, 1213, 1149, 1085, 1021, 957, 893,
829, 765, 701, 637,
};
 
static const jchar blocks2[] = {
0, 65408, 65280, 65152, 65024, 64896, 64768, 64640, 64512, 64384,
64256, 64128, 64000, 63872, 63744, 63616, 63488, 63360, 63232, 63104,
62976, 62848, 62720, 62592, 62464, 62336, 62208, 62080, 61952, 61824,
61696, 61568, 61440, 61312, 61184, 61056, 60928, 60800, 60672, 60544,
60416, 60288, 60160, 60032, 59904, 59776, 59648, 59520, 59392, 59264,
59136, 59008, 58880, 58752, 58624, 58496, 58368, 58240, 58112, 57984,
57856, 57728, 57600, 57472, 57344, 57216, 57088, 56960, 56832, 56704,
56576, 56448, 56320, 56192, 56064, 55936, 55808, 55680, 55552, 55424,
55296, 55168, 55040, 54912, 54784, 54656, 54528, 54400, 54272, 54144,
54016, 53888, 53760, 53632, 53504, 53376, 53248, 53120, 52992, 52864,
52736, 52608, 52480, 52352, 52224, 52096, 51968, 51840, 51712, 51584,
51456, 51328, 51200, 51072, 50944, 50816, 50688, 50560, 50432, 50304,
50176, 50048, 49920, 49792, 49664, 49536, 49408, 49280, 49152, 49024,
48896, 48768, 48640, 48512, 48384, 48256, 48128, 48000, 47872, 47744,
47616, 47488, 47360, 47232, 47104, 46976, 46848, 46720, 46592, 46464,
46336, 46208, 46080, 45952, 45824, 45696, 45568, 45440, 45312, 45184,
45056, 44928, 44800, 44672, 44544, 44416, 44288, 44160, 44032, 43904,
43776, 43648, 43520, 43392, 43264, 43136, 43008, 42880, 42752, 42624,
42496, 42368, 42240, 42112, 41984, 41856, 41728, 41600, 41472, 41344,
41216, 41088, 40960, 40832, 40704, 40576, 40448, 40320, 40192, 40064,
39936, 39808, 39680, 39552, 39424, 39296, 39168, 39040, 38912, 38784,
38656, 38528, 38400, 38272, 38144, 38016, 37888, 37760, 37632, 37504,
37376, 37248, 37120, 36992, 36864, 36736, 36608, 36480, 36352, 36224,
36096, 35968, 35840, 35712, 35584, 35456, 35328, 35200, 35072, 34944,
34816, 34688, 34560, 34432, 34304, 34176, 34048, 33920, 33792, 33664,
33536, 33408, 33280, 33152, 33024, 32896, 32768, 32640, 32512, 32384,
32256, 32128, 32000, 31872, 31744, 31616, 31488, 31360, 31232, 31104,
30976, 30848, 30720, 30592, 30464, 30336, 30208, 30080, 29952, 29824,
29696, 29568, 29440, 29312, 29184, 29056, 28928, 28800, 28672, 28544,
28416, 28288, 28160, 28032, 27904, 27776, 27648, 27520, 27392, 27264,
27136, 27008, 26880, 26752, 26624, 26496, 26368, 26240, 26112, 25984,
25856, 25728, 25600, 25472, 25344, 25216, 25088, 24960, 24832, 24704,
24576, 24448, 24320, 24192, 24064, 23936, 23808, 23680, 23552, 23424,
23296, 23168, 23040, 22953, 22912, 22784, 22656, 22528, 22400, 22272,
22144, 22016, 21888, 21760, 21632, 21504, 21376, 21248, 21120, 20992,
20864, 20736, 20608, 20480, 20352, 20224, 20096, 19968, 19840, 19712,
19584, 19456, 19328, 19200, 19072, 18944, 18816, 18688, 18560, 18432,
18304, 18176, 18048, 17920, 17792, 17664, 17536, 17408, 17280, 17152,
17024, 16896, 16768, 16640, 16512, 16384, 16256, 16128, 16000, 15872,
15744, 15616, 15488, 15360, 15232, 15104, 14976, 14848, 14720, 14592,
14464, 14336, 14208, 14080, 13952, 13824, 13696, 13568, 13440, 13312,
13184, 13056, 12928, 12800, 12672, 12544, 12416, 12288, 12160, 12032,
11904, 11776, 11648, 11520, 11392, 11264, 11136, 11008, 10880, 10752,
10624, 10496, 10368, 10240, 10112, 9984, 9856, 9728, 9600, 9472,
9344, 9216, 9088, 8960, 8832, 8704, 8576, 8448, 8320, 8192,
8064, 7936, 7808, 7680, 7552, 7424, 7296, 7168, 7040, 6912,
6784, 6656, 6528, 6400, 6272, 6144, 6016, 5888, 5760, 5632,
5504, 5376, 5248, 5120, 4992, 4864, 4736, 4608, 4480, 4352,
4224, 4096, 3968, 3840, 3712, 3584, 3456, 3328, 3200, 3072,
2944, 2816, 2688, 2560, 2432, 2304, 2048, 1920, 1792, 1664,
1634, 1536, 1408, 1280, 1152, 1024, 896, 768, 640, 512,
384, 256,
};
 
static const jchar blocks14[] = {
255, 0, 65280, 65168, 65152, 65024, 64896, 64768, 64640, 64512,
64384, 64256, 64128, 64000, 63872, 63744, 63616, 63488, 63360, 63232,
63104, 62976, 62848, 62720, 62592, 62464, 62336, 62208, 62080, 61952,
61824, 61696, 61568, 61440, 61312, 61184, 61056, 60928, 60800, 60672,
60544, 60416, 60288, 60160, 60032, 59904, 59776, 59648, 59520, 59392,
59264, 59136, 59008, 58880, 58752, 58624, 58496, 58368, 58240, 58112,
57984, 57856, 57728, 57600, 57472, 57344, 57216, 57088, 56960, 56832,
56704, 56576, 56448, 56320, 56192, 56064, 55936, 55808, 55680, 55552,
55424, 55296, 55168, 55040, 54912, 54784, 54656, 54528, 54400, 54272,
54144, 54016, 53888, 53760, 53632, 53504, 53376, 53248, 53120, 52992,
52864, 52736, 52608, 52480, 52352, 52224, 52096, 51968, 51840, 51712,
51584, 51456, 51328, 51200, 51072, 50944, 50816, 50688, 50560, 50432,
50304, 50176, 50048, 49920, 49792, 49664, 49536, 49408, 49280, 49152,
49024, 48896, 48768, 48640, 48512, 48384, 48256, 48128, 48000, 47872,
47744, 47616, 47488, 47360, 47232, 47104, 46976, 46848, 46720, 46592,
46464, 46336, 46208, 46080, 45952, 45824, 45696, 45568, 45440, 45312,
45184, 45056, 44928, 44800, 44672, 44544, 44416, 44288, 44160, 44032,
43904, 43776, 43648, 43520, 43392, 43264, 43136, 43008, 42880, 42752,
42624, 42496, 42368, 42240, 42112, 41984, 41856, 41728, 41600, 41472,
41344, 41216, 41088, 40960, 40832, 40704, 40576, 40448, 40320, 40192,
40064, 39936, 39808, 39680, 39552, 39424, 39296, 39168, 39040, 38912,
38784, 38656, 38528, 38400, 38272, 38144, 38016, 37888, 37760, 37632,
37504, 37376, 37248, 37120, 36992, 36864, 36736, 36608, 36480, 36352,
36224, 36096, 35968, 35840, 35712, 35584, 35456, 35328, 35200, 35072,
34944, 34816, 34688, 34560, 34432, 34304, 34176, 34048, 33920, 33792,
33664, 33536, 33408, 33280, 33152, 33024, 32896, 32768, 32640, 32512,
32384, 32256, 32128, 32000, 31872, 31744, 31616, 31488, 31360, 31232,
31104, 30976, 30848, 30720, 30592, 30464, 30336, 30208, 30080, 29952,
29824, 29696, 29568, 29440, 29312, 29184, 29056, 28928, 28800, 28672,
28544, 28416, 28288, 28160, 28032, 27904, 27776, 27648, 27520, 27392,
27264, 27136, 27008, 26880, 26752, 26624, 26496, 26368, 26240, 26112,
25984, 25856, 25728, 25600, 25472, 25344, 25216, 25088, 24960, 24832,
24704, 24576, 24448, 24320, 24192, 24064, 23936, 23808, 23680, 23552,
23424, 23296, 23168, 23040, 22912, 22784, 22656, 22528, 22400, 22272,
22144, 22016, 21888, 21760, 21632, 21504, 21376, 21248, 21120, 20992,
20864, 20736, 20608, 20480, 20352, 20224, 20096, 19968, 19840, 19712,
19584, 19456, 19328, 19200, 19072, 18944, 18816, 18688, 18560, 18432,
18304, 18176, 18048, 17920, 17792, 17664, 17536, 17408, 17280, 17152,
17024, 16896, 16768, 16640, 16512, 16384, 16256, 16128, 16000, 15872,
15744, 15616, 15488, 15360, 15232, 15104, 14976, 14848, 14720, 14592,
14464, 14336, 14208, 14080, 13952, 13824, 13696, 13568, 13440, 13312,
13184, 13056, 12928, 12800, 12672, 12544, 12416, 12288, 12160, 12032,
11904, 11776, 11648, 11520, 11392, 11264, 11136, 11008, 10880, 10752,
10624, 10496, 10368, 10240, 10112, 9984, 9856, 9728, 9600, 9472,
9344, 9216, 9088, 8960, 8832, 8704, 8576, 8448, 8320, 8192,
8064, 7936, 7808, 7680, 7552, 7424, 7296, 7168, 7040, 6912,
6784, 6656, 6528, 6400, 6272, 6144, 6016, 5888, 5760, 5632,
5504, 5376, 5248, 5120, 4992, 4864, 4736, 4608, 4480, 4352,
4224, 4096, 3968, 3840, 3712, 3584, 3456, 3328, 3200, 3072,
2944, 2816, 2688, 2560, 2432, 2304, 2176, 2048, 1920, 1792,
1664, 1536, 1408, 1280, 1152, 1024, 896, 768, 640, 512,
384, 256,
};
 
static const int blocks_length[] = {
4096, 1024, 512, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 512, -1, -1, };
static const jchar* blocks[] = {
blocks0, blocks1, blocks2, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, blocks14, NULL, NULL};
 
/**
* Information about each character. The low order 5 bits form the
* character type, the next bit is a flag for non-breaking spaces, and the
* next bit is a flag for mirrored directionality. The high order 9 bits
* form the offset into the attribute tables. Note that this limits the
* number of unique character attributes per plane to 512, which is not a
* problem as of Unicode version 4.0.0, but may soon become one.
*/
static const jchar data0[] = {
8834, 8962, 9090, 9218, 9346, 9474, 9602, 9730, 9858, 9986,
10114, 1109, 3225, 1238, 3225, 15, 15, 15, 15, 15,
15, 15, 15, 15, 143, 271, 143, 399, 271, 15,
15, 15, 15, 15, 271, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 271, 271, 271, 143, 1801, 1929, 2057, 2185, 2313,
2441, 2569, 2697, 2825, 2953, 1432, 664, 3161, 3225, 3161,
664, 664, 3225, 664, 6807, 16256, 16256, 664, 16256, 16256,
16256, 16256, 16256, 16256, 16256, 524, 664, 664, 792, 922,
792, 664, 664, 1109, 1238, 664, 1305, 1432, 1556, 1432,
1688, 10908, 1305, 11019, 11147, 6683, 11266, 10396, 664, 6683,
11403, 10498, 11614, 11659, 11659, 11659, 664, 3329, 3457, 3585,
3713, 3841, 3969, 4097, 4225, 4353, 4481, 4609, 4737, 4865,
4993, 5121, 5249, 5377, 5505, 5633, 5761, 5889, 6017, 6145,
6273, 6401, 6529, 1109, 664, 1238, 6683, 6807, 664, 664,
664, 3225, 1109, 1238, 664, 664, 664, 664, 664, 664,
664, 664, 664, 34189, 34318, 34448, 34576, 34704, 34832, 34960,
33452, 10284, 664, 922, 922, 922, 922, 10396, 10396, 6683,
10396, 10498, 10717, 3225, 10768, 10396, 6683, 6914, 7042, 7170,
7298, 7426, 7554, 7682, 7810, 7938, 8066, 8194, 8322, 8450,
8578, 8706, 19074, 11777, 11777, 11777, 11777, 11777, 11777, 11777,
11777, 11777, 11777, 11777, 11777, 11777, 11777, 11777, 11777, 3225,
11777, 11777, 11777, 11777, 11777, 11777, 11777, 11906, 15361, 15491,
15618, 12289, 12418, 15873, 16001, 12289, 12418, 12289, 12418, 12289,
12418, 12289, 12418, 12801, 12289, 12418, 12289, 12418, 12289, 12418,
12930, 19074, 12034, 12034, 12034, 12034, 12034, 12034, 12034, 12034,
12034, 12034, 12034, 12034, 12034, 12034, 12034, 12034, 3225, 12034,
12034, 12034, 12034, 12034, 12034, 12034, 12162, 16129, 10498, 12289,
12418, 12289, 12418, 12289, 12418, 12289, 12418, 12289, 12418, 12289,
12418, 12289, 12418, 12289, 12418, 15746, 12289, 12418, 21404, 18310,
18310, 18310, 18310, 16256, 21511, 21511, 12289, 12418, 12289, 12418,
12289, 12418, 16256, 16256, 12289, 12418, 16256, 16256, 16256, 16256,
16256, 16256, 18310, 24584, 16256, 16256, 16256, 16256, 15109, 15109,
16256, 15109, 16256, 16256, 15109, 15109, 16256, 15109, 16256, 16256,
15109, 16256, 16256, 11906, 32258, 11906, 16256, 11906, 19074, 33153,
33153, 33281, 33281, 32515, 6683, 6683, 16256, 18310, 18310, 24584,
16256, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109,
16256, 15109, 16256, 15109, 15109, 15109, 15109, 16256, 16256, 15109,
15109, 15109, 15109, 15109, 15109, 15109, 16256, 16256, 16256, 15109,
15109, 15109, 15109, 15109, 15109, 16256, 16256, 15109, 15109, 15109,
15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109,
21784, 21784, 15109, 15109, 15109, 15109, 15361, 15491, 15618, 15361,
15491, 15618, 15361, 15491, 15618, 12289, 12418, 12289, 12418, 10498,
10498, 10498, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256,
16256, 15109, 15109, 15109, 15109, 16256, 15109, 16256, 15109, 15109,
16256, 15109, 15109, 15109, 15109, 15109, 16256, 16256, 18310, 15109,
24584, 24584, 18310, 18310, 18310, 16256, 16256, 16256, 24584, 24584,
16256, 16256, 24584, 24584, 18310, 16256, 16256, 12545, 12674, 12289,
12418, 12289, 12418, 12289, 12418, 10498, 12289, 12418, 12289, 12418,
12289, 12418, 12289, 12418, 11906, 11906, 11906, 11906, 11906, 30850,
16256, 16256, 16256, 16256, 6683, 6683, 16256, 16256, 16256, 16256,
18052, 16256, 16256, 16256, 664, 16256, 21633, 21633, 21633, 21633,
21633, 21633, 21633, 21633, 21633, 21633, 21633, 21633, 21633, 21633,
21633, 21633, 16256, 16256, 18052, 21784, 21784, 21784, 21784, 21784,
21784, 21404, 21404, 21404, 21404, 21404, 18310, 18310, 21404, 21404,
21404, 21404, 21404, 21404, 18310, 21404, 21404, 21404, 21404, 21404,
21404, 16256, 16256, 21404, 15109, 16256, 16256, 16256, 16256, 16256,
16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256,
19842, 19970, 20097, 20097, 20097, 20226, 20354, 10498, 12289, 12418,
12289, 12418, 12289, 12418, 12289, 12418, 12289, 12418, 11906, 12289,
12418, 12289, 12418, 12289, 12418, 14721, 12289, 12418, 14721, 10498,
10498, 12289, 12418, 14721, 12289, 17666, 10498, 10498, 17666, 10498,
10498, 10498, 10498, 17666, 10498, 17794, 17794, 10498, 10498, 10498,
10498, 17410, 10498, 10498, 17538, 10498, 10498, 10498, 10498, 10498,
10498, 10498, 10498, 10498, 10498, 16386, 16514, 10498, 16642, 16642,
10498, 16770, 10498, 16898, 10498, 10498, 10498, 10498, 13057, 12289,
12418, 12289, 12418, 13185, 12289, 12418, 13313, 13313, 12289, 12418,
10498, 13441, 13569, 13697, 12289, 12418, 13313, 13825, 13954, 14081,
14209, 12289, 12418, 10498, 10498, 14081, 14337, 14466, 14593, 12418,
14849, 14849, 12289, 12418, 12289, 12418, 14977, 12289, 12418, 10498,
15109, 12289, 12418, 10498, 15234, 18310, 18310, 18310, 18310, 18310,
18438, 18310, 18310, 18310, 18310, 18310, 18310, 18310, 18310, 18310,
18310, 16256, 18310, 18310, 18310, 22168, 18310, 18310, 22168, 18310,
16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256,
16256, 24584, 16256, 16256, 16256, 16256, 15109, 15109, 16256, 15109,
15109, 15109, 15109, 16256, 16256, 16256, 15109, 15109, 16256, 15109,
16256, 15109, 15109, 16256, 15109, 15109, 16256, 15109, 15109, 16256,
16256, 18310, 16256, 24584, 24584, 24584, 16256, 15109, 15109, 15109,
15109, 15109, 15109, 15109, 15109, 16256, 15109, 15109, 15109, 16256,
16256, 16256, 16256, 24584, 24584, 21784, 16256, 16256, 16256, 16256,
16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256,
16256, 16256, 24464, 24464, 24464, 10396, 10396, 16256, 16256, 16256,
664, 664, 24713, 24841, 24969, 25097, 25225, 25353, 25481, 25609,
25737, 25865, 16256, 16256, 16256, 16256, 16256, 16256, 18310, 15109,
16256, 15109, 15109, 15109, 15109, 15109, 15109, 16256, 16256, 16256,
15109, 15109, 16256, 16256, 16256, 15109, 15109, 15109, 16256, 16256,
16256, 15109, 15109, 15109, 15109, 15109, 15109, 16256, 16256, 15109,
15109, 15109, 16256, 16256, 16256, 21890, 21890, 21890, 21890, 21890,
21890, 21890, 21890, 21890, 21890, 21890, 21890, 21890, 21890, 21890,
21890, 11906, 16256, 21784, 22036, 16256, 16256, 16256, 16256, 16256,
18310, 18310, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256,
16256, 22661, 22661, 22661, 22661, 22661, 22661, 22661, 22661, 22661,
22661, 22661, 22661, 22661, 22661, 22661, 22661, 27541, 27670, 16642,
10498, 10498, 17026, 10498, 10498, 10498, 10498, 17154, 17282, 10498,
10498, 10498, 10498, 10498, 17282, 22416, 22416, 22416, 22416, 16256,
16256, 16256, 16256, 16256, 16256, 16256, 16256, 1432, 22552, 10396,
10396, 20097, 10396, 10396, 10396, 10396, 20097, 10396, 10396, 10498,
20097, 20097, 20097, 10498, 10498, 17922, 10498, 10498, 10498, 10498,
10498, 10498, 10498, 10498, 10498, 10498, 10498, 10498, 10498, 10498,
10498, 10498, 18052, 18052, 18052, 18052, 18052, 18052, 18052, 18052,
18052, 18052, 18052, 18052, 18052, 18052, 18052, 18052, 18180, 18180,
18052, 18052, 18052, 18052, 18052, 6683, 6683, 6683, 6683, 6683,
6683, 6683, 6683, 6683, 18052, 6683, 22036, 15109, 15109, 15109,
15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109,
15109, 15109, 16256, 15109, 15109, 15109, 15109, 15109, 15109, 15109,
15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 18052,
18052, 6683, 6683, 6683, 6683, 18180, 18180, 18180, 18180, 18180,
18180, 18180, 18180, 18180, 18180, 18052, 18052, 6683, 6683, 6683,
6683, 6683, 6683, 6683, 6683, 6683, 6683, 6683, 6683, 6683,
6683, 6683, 6683, 11906, 32258, 11906, 16256, 11906, 19074, 32769,
32769, 32769, 32769, 32515, 6683, 6683, 6683, 10396, 44170, 44298,
44426, 44554, 44682, 44810, 44938, 45066, 45194, 18310, 18310, 18310,
18310, 18310, 18310, 18310, 18310, 16256, 18310, 18310, 18310, 18310,
18310, 18310, 18310, 18310, 18310, 18310, 18310, 18310, 18310, 18310,
18310, 18310, 16256, 21404, 21404, 25995, 26123, 26251, 26379, 21404,
21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404,
10396, 3225, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396,
10396, 10396, 10396, 10396, 16256, 10396, 16256, 10396, 10396, 10396,
10396, 16256, 10396, 10396, 10396, 10396, 16256, 16256, 10396, 10396,
10396, 10396, 10396, 21404, 10396, 10396, 10396, 10396, 10396, 3225,
3225, 3225, 3225, 3225, 27541, 27670, 664, 10396, 10396, 10396,
10396, 10396, 10396, 10396, 10396, 10396, 10396, 16256, 10396, 10396,
10396, 10396, 10396, 10396, 10396, 1109, 1238, 1109, 1238, 1109,
1238, 1109, 1238, 29579, 29707, 29835, 29963, 30091, 30219, 30347,
30475, 30603, 43915, 29579, 29707, 29835, 29963, 30091, 30219, 18310,
18310, 18310, 18310, 18310, 18310, 18310, 18310, 16256, 16256, 16256,
16256, 16256, 18310, 18310, 18310, 18310, 18310, 18310, 18310, 18310,
18310, 18310, 18310, 18310, 18310, 18310, 24584, 24584, 16256, 16256,
16256, 24584, 24584, 24584, 16256, 24584, 24584, 24584, 18310, 16256,
16256, 18310, 24584, 24584, 16256, 15109, 15109, 15109, 15109, 15109,
15109, 15109, 15109, 16256, 16256, 15109, 15109, 15109, 16256, 15109,
16256, 15109, 16256, 16256, 15109, 15109, 16256, 15109, 15109, 15109,
15109, 15109, 16256, 15109, 15109, 16256, 24584, 18310, 18310, 18310,
18310, 16256, 16256, 24584, 24584, 16256, 16256, 24584, 24584, 18310,
16256, 16256, 20482, 20610, 20738, 10498, 20865, 20994, 3225, 12289,
12418, 21121, 12289, 12418, 16256, 16256, 16256, 16256, 6683, 6683,
18561, 664, 18689, 18689, 18689, 16256, 18817, 16256, 18945, 18945,
11777, 11777, 16256, 11777, 11777, 11777, 11777, 11777, 11777, 11777,
11777, 11777, 19202, 19330, 19330, 19330, 12034, 12034, 19458, 12034,
12034, 12034, 12034, 12034, 12034, 12034, 12034, 12034, 19586, 19714,
19714, 16256, 18310, 18310, 24584, 16256, 15109, 15109, 15109, 15109,
15109, 15109, 16256, 16256, 16256, 16256, 15109, 15109, 15109, 15109,
16256, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109,
16256, 15109, 16256, 16256, 16256, 15109, 15109, 15109, 15109, 16256,
16256, 18310, 15109, 24584, 24584, 18310, 24584, 24584, 24584, 24584,
24584, 24584, 18310, 18310, 18310, 16256, 16256, 16256, 16256, 21249,
21249, 21249, 21249, 21249, 21249, 21249, 21249, 21249, 21249, 21249,
21249, 21249, 21249, 21249, 21249, 20610, 20610, 20610, 20610, 20610,
20610, 20610, 20610, 20610, 20610, 20610, 20610, 20610, 20610, 20610,
20610, 20097, 12289, 12418, 12289, 12418, 12289, 12418, 12289, 12418,
12289, 12418, 12289, 12418, 12289, 12418, 16256, 16256, 16256, 16256,
16256, 16256, 24713, 24841, 24969, 25097, 25225, 25353, 25481, 25609,
25737, 25865, 27403, 27403, 27403, 27403, 27403, 27403, 21404, 18310,
21404, 18310, 21404, 18310, 27541, 27670, 27541, 27670, 24584, 24584,
18310, 18310, 18310, 16256, 18310, 16256, 24584, 24584, 24584, 24584,
24584, 24584, 24584, 24584, 18310, 24584, 24584, 18310, 18310, 18310,
18310, 18310, 18310, 18310, 18310, 24584, 24584, 24584, 24584, 18310,
16256, 16256, 21784, 21784, 21784, 21784, 21784, 21784, 21784, 21784,
24841, 24969, 25097, 25225, 25353, 25481, 25609, 18310, 18310, 18310,
18310, 18310, 18310, 18310, 18310, 18310, 16256, 16256, 16256, 16256,
16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 11906, 11906,
11906, 11906, 11906, 16256, 16256, 16256, 16256, 16256, 22277, 18310,
22277, 22277, 16256, 22277, 22277, 16256, 22277, 22277, 22277, 22277,
22277, 22277, 22277, 22277, 22277, 22277, 22277, 22277, 22277, 22277,
22277, 22277, 16256, 16256, 16256, 16256, 16256, 24584, 24584, 16256,
16256, 16256, 16256, 16256, 16256, 16256, 15109, 16256, 15109, 15109,
16256, 15109, 15109, 15109, 15109, 15109, 16256, 16256, 18310, 15109,
24584, 18310, 18310, 18310, 18310, 18310, 16256, 18310, 18310, 24584,
16256, 24584, 24584, 18310, 16256, 16256, 664, 664, 792, 922,
792, 664, 664, 1109, 1238, 664, 1305, 1432, 1556, 1432,
1688, 22277, 22277, 22277, 22168, 22168, 16256, 16256, 16256, 16256,
16256, 16256, 16256, 16256, 16256, 16256, 16256, 24584, 16256, 16256,
16256, 16256, 16256, 16256, 16256, 16256, 11659, 11659, 11659, 11659,
11659, 11659, 11659, 11659, 11659, 11659, 11659, 11659, 29579, 22921,
23049, 23177, 23305, 23433, 23561, 23689, 23817, 23945, 24073, 792,
24216, 24216, 22552, 22661, 22661, 22661, 22661, 22552, 22661, 18310,
18310, 18310, 18310, 18310, 18310, 18310, 22416, 21511, 18310, 21511,
21511, 21511, 18310, 18310, 18310, 18310, 18310, 18310, 16256, 16256,
16256, 16256, 16256, 22552, 16256, 16256, 16256, 22552, 22552, 22552,
22552, 22552, 22552, 22552, 22552, 22552, 22552, 22552, 22552, 22552,
22552, 16256, 24464, 22788, 22661, 22661, 22661, 22661, 22661, 22661,
22661, 22661, 22661, 22661, 18310, 18310, 18310, 18310, 18310, 18310,
18310, 18310, 18310, 18310, 18310, 16256, 16256, 22661, 22661, 22661,
22661, 22661, 16256, 22661, 22661, 22661, 22661, 22661, 22661, 22661,
22661, 22661, 22661, 22661, 16256, 16256, 16256, 16256, 16256, 16256,
16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 24841, 24969,
25097, 25225, 25353, 25481, 25609, 25737, 25865, 26763, 27787, 27915,
28043, 28171, 28299, 28427, 28555, 28683, 26891, 28811, 16256, 16256,
16256, 1801, 1929, 2057, 2185, 2313, 2441, 2569, 2697, 2825,
2953, 22661, 22661, 22661, 24348, 24348, 22661, 18310, 22661, 22661,
22661, 22661, 22661, 22661, 22661, 22661, 22661, 22661, 22661, 22661,
22661, 22661, 22661, 16256, 16256, 24464, 24464, 24464, 24464, 16256,
16256, 16256, 16256, 16256, 16256, 24464, 24464, 24464, 24464, 24464,
24464, 18310, 18310, 18310, 18310, 18310, 22788, 22788, 18310, 18310,
10396, 18310, 18310, 18310, 18310, 22661, 22661, 22661, 22661, 22661,
22661, 22661, 22661, 22661, 22661, 22661, 22661, 50458, 10396, 16256,
16256, 18310, 22661, 16256, 16256, 16256, 16256, 16256, 16256, 16256,
16256, 16256, 16256, 16256, 16256, 16256, 16256, 1238, 664, 1109,
1238, 664, 6807, 15109, 15109, 15109, 15109, 15109, 15109, 15109,
15109, 15109, 15109, 16256, 16256, 16256, 16256, 24584, 24584, 16256,
15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 16256, 15109,
15109, 15109, 15109, 15109, 16256, 16256, 16256, 16256, 18310, 18310,
24584, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109,
15109, 15109, 15109, 27541, 27670, 16256, 16256, 16256, 524, 15109,
15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109,
15109, 15109, 15109, 15109, 16256, 16256, 16256, 16256, 16256, 15109,
15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109,
6807, 18052, 18052, 18052, 15109, 15109, 15109, 18052, 15109, 15109,
15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109,
15109, 15109, 15109, 16256, 16256, 18310, 15109, 24584, 24584, 24584,
24584, 24584, 16256, 27142, 24584, 24584, 16256, 24584, 24584, 18310,
18310, 16256, 16256, 16256, 16256, 18310, 18310, 16256, 16256, 18310,
18310, 18310, 16256, 16256, 15109, 15109, 15109, 15109, 15109, 15109,
15109, 16256, 16256, 18310, 18310, 6683, 6683, 18052, 18052, 15109,
18310, 18310, 18310, 18310, 16256, 16256, 16256, 15109, 15109, 15109,
15109, 15109, 15109, 15109, 15109, 15109, 16256, 16256, 21784, 16256,
16256, 16256, 16256, 15109, 15109, 18310, 18310, 21784, 21784, 24713,
24841, 24969, 25097, 25225, 25353, 25481, 25609, 25737, 25865, 21784,
21784, 16256, 16256, 16256, 16256, 15109, 15109, 18310, 18310, 16256,
16256, 24713, 24841, 24969, 25097, 25225, 25353, 25481, 25609, 25737,
25865, 16256, 16256, 15109, 15109, 16256, 16256, 15109, 15109, 922,
922, 25995, 26123, 26251, 26379, 26507, 26635, 21404, 16256, 16256,
16256, 16256, 16256, 18310, 18310, 15109, 15109, 15109, 16256, 16256,
16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 15109,
18310, 15109, 15109, 18310, 18310, 18310, 18310, 18310, 18310, 18310,
16256, 16256, 16256, 16256, 922, 16256, 16256, 16256, 16256, 16256,
16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 15109,
15109, 15109, 15109, 15109, 15109, 18052, 18310, 18310, 18310, 18310,
18310, 18310, 18310, 18310, 21784, 18310, 18310, 15109, 15109, 15109,
15109, 16256, 16256, 16256, 16256, 24713, 24841, 24969, 25097, 25225,
25353, 25481, 25609, 25737, 25865, 21784, 21784, 21784, 21784, 21784,
21784, 26763, 26891, 27019, 10396, 10396, 10396, 10396, 10396, 10396,
922, 10396, 16256, 16256, 16256, 16256, 16256, 18310, 24584, 24584,
24584, 24584, 16256, 18310, 18310, 18310, 16256, 18310, 18310, 18310,
18310, 16256, 16256, 15109, 15109, 15109, 15109, 16256, 15109, 15109,
15109, 15109, 15109, 16256, 16256, 18310, 15109, 24584, 27142, 24584,
18310, 18310, 18310, 16256, 16256, 24584, 24584, 24584, 16256, 24584,
24584, 24584, 18310, 16256, 16256, 15109, 15109, 15109, 15109, 15109,
15109, 15109, 16256, 16256, 16256, 18310, 16256, 16256, 16256, 16256,
24584, 24584, 16256, 15109, 15109, 15109, 15109, 15109, 15109, 15109,
15109, 15109, 15109, 15109, 21784, 21784, 21784, 28938, 29066, 15109,
18310, 15109, 15109, 18310, 18310, 18310, 18310, 18310, 18310, 16256,
18310, 18310, 15109, 16256, 16256, 15109, 15109, 15109, 15109, 15109,
16256, 18052, 16256, 18310, 18310, 18310, 18310, 18310, 18310, 16256,
16256, 15109, 21404, 21404, 21404, 21784, 21784, 21784, 21784, 21784,
21784, 21784, 21784, 27320, 21784, 21784, 21784, 18310, 24584, 18310,
16256, 16256, 16256, 18310, 18310, 24584, 18310, 16256, 16256, 16256,
16256, 16256, 16256, 15109, 15109, 15109, 15109, 15109, 15109, 24584,
24584, 18310, 18310, 16256, 16256, 16256, 16256, 16256, 16256, 20097,
20097, 10396, 20097, 10498, 15109, 15109, 15109, 15109, 10498, 10396,
10396, 16256, 10498, 20097, 20097, 20097, 20097, 20097, 20097, 20097,
20097, 20097, 20097, 20097, 20097, 20097, 20097, 20097, 20097, 16256,
16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 15109,
15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 16256,
16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256,
16256, 29194, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256,
16256, 16256, 16256, 16256, 16256, 16256, 16256, 15109, 15109, 18310,
18310, 18310, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256,
16256, 16256, 16256, 15109, 15109, 18310, 18310, 18310, 21784, 21784,
16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 15109,
15109, 18310, 18310, 16256, 16256, 16256, 16256, 16256, 16256, 16256,
16256, 16256, 16256, 16256, 16256, 15109, 16256, 18310, 18310, 16256,
16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256,
16256, 15109, 15109, 15109, 15109, 29328, 29328, 24584, 18310, 18310,
18310, 18310, 18310, 18310, 18310, 24584, 24584, 24584, 24584, 18310,
18310, 30728, 30728, 30728, 16256, 16256, 16256, 16256, 18310, 18310,
18310, 18310, 21784, 21784, 21784, 18052, 21784, 21784, 21784, 922,
15109, 18310, 16256, 16256, 43275, 43403, 43531, 43659, 43787, 29579,
29707, 29835, 29963, 30091, 30219, 30347, 30475, 30603, 43915, 29451,
29579, 29707, 29835, 29963, 30091, 30219, 30347, 30475, 30603, 16256,
16256, 16256, 16256, 16256, 16256, 664, 664, 664, 664, 664,
664, 22036, 664, 664, 664, 664, 18310, 18310, 18310, 524,
16256, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109,
18310, 16256, 16256, 16256, 16256, 16256, 16256, 20097, 20097, 20097,
10498, 10396, 20097, 10396, 10396, 10396, 20097, 20097, 20097, 20097,
20097, 10396, 10396, 3225, 10396, 3225, 10396, 10396, 10396, 10396,
10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396,
10396, 10396, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225,
3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3161, 3161,
3161, 3161, 3161, 3161, 3225, 3225, 1109, 1238, 3225, 3225,
3225, 1109, 1238, 1109, 1238, 1109, 1238, 1109, 1238, 1109,
1238, 1109, 1238, 1109, 1238, 3225, 3225, 3161, 3161, 3161,
3161, 3161, 3225, 3225, 3225, 3225, 3225, 3161, 3225, 3161,
3161, 3161, 3161, 3161, 3161, 3161, 3225, 3225, 3225, 3225,
3225, 3161, 3225, 3161, 3225, 3161, 3161, 3161, 3161, 3161,
3161, 3161, 3161, 3225, 3225, 3161, 3161, 3161, 3161, 3161,
3161, 3161, 3161, 3225, 3161, 3225, 3161, 3161, 3161, 3225,
3225, 3161, 3161, 3225, 3225, 3225, 3225, 3225, 3225, 3161,
3225, 3225, 3225, 3161, 3161, 3161, 3161, 3161, 3225, 3161,
3225, 3225, 3161, 3161, 3225, 3225, 3225, 3225, 3161, 3161,
3161, 3161, 3161, 3161, 3161, 3161, 3161, 3161, 3161, 3161,
3161, 3225, 3225, 3161, 3225, 3161, 3225, 3225, 3161, 3225,
3161, 3161, 3161, 3161, 3225, 3225, 3225, 3161, 3161, 3161,
3161, 3161, 3161, 3225, 3225, 3225, 3161, 3225, 3225, 3225,
3225, 3161, 3161, 3225, 3225, 3225, 3225, 3225, 3225, 3161,
3161, 3161, 3225, 3225, 3225, 3225, 3225, 3161, 3225, 3225,
3225, 3225, 3225, 3225, 3225, 3225, 3161, 3225, 3225, 3225,
3225, 3225, 3225, 3225, 3161, 3161, 3225, 3225, 3225, 3225,
3225, 3225, 3225, 10396, 10396, 10396, 10396, 10396, 3225, 3225,
10396, 10396, 10396, 10396, 20097, 10396, 35969, 10396, 20097, 10396,
36097, 36225, 20097, 20097, 10908, 10498, 18052, 18052, 10498, 10498,
10498, 10498, 10498, 10498, 10498, 10498, 10498, 10498, 16256, 16256,
16256, 16256, 30978, 30978, 30978, 30978, 30978, 30978, 30978, 30978,
31105, 31105, 31105, 31105, 31105, 31105, 31105, 31105, 30978, 30978,
30978, 30978, 30978, 30978, 16256, 16256, 31105, 31105, 31105, 31105,
31105, 31105, 16256, 16256, 11906, 30978, 19074, 30978, 19074, 30978,
19074, 30978, 16256, 31105, 16256, 31105, 16256, 31105, 16256, 31105,
31234, 31234, 31362, 31362, 31362, 31362, 31490, 31490, 31618, 31618,
31746, 31746, 31874, 31874, 16256, 16256, 32002, 32002, 32002, 32002,
32002, 32002, 32002, 32002, 32131, 32131, 32131, 32131, 32131, 32131,
32131, 32131, 30978, 30978, 11906, 32258, 11906, 16256, 11906, 19074,
31105, 31105, 32385, 32385, 32515, 6683, 32642, 6683, 30978, 30978,
19074, 19074, 16256, 16256, 11906, 19074, 31105, 31105, 32897, 32897,
16256, 6683, 6683, 6683, 30978, 30978, 19074, 19074, 11906, 20738,
11906, 19074, 31105, 31105, 33025, 33025, 21121, 6683, 6683, 6683,
524, 524, 524, 524, 524, 524, 524, 33452, 524, 524,
524, 33548, 24464, 24464, 29328, 33680, 22036, 33844, 22036, 22036,
22036, 22036, 664, 664, 33949, 34078, 27541, 33949, 33949, 34078,
27541, 33949, 1432, 664, 1432, 16256, 664, 1432, 664, 664,
22036, 27541, 27670, 27541, 27670, 27541, 27670, 792, 792, 792,
792, 792, 664, 664, 664, 664, 10717, 11614, 664, 664,
664, 664, 6807, 35083, 10498, 16256, 16256, 35211, 35339, 35467,
35595, 35723, 35851, 1305, 1305, 3225, 1109, 1238, 10498, 35083,
11403, 11019, 11147, 35211, 35339, 35467, 35595, 35723, 35851, 1305,
1305, 3225, 1109, 1238, 16256, 922, 922, 922, 922, 922,
922, 922, 922, 922, 922, 922, 922, 922, 922, 922,
922, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256,
16256, 16256, 16256, 16256, 16256, 18310, 18310, 18310, 18310, 18310,
18310, 18310, 18310, 18310, 18310, 18310, 18310, 18310, 21511, 21511,
21511, 3225, 3225, 3225, 3161, 3161, 3161, 3161, 3225, 3225,
3225, 3225, 3225, 3161, 3161, 3161, 3225, 3225, 3161, 3161,
3161, 3161, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225,
3225, 3161, 3161, 3161, 3161, 3161, 3225, 3225, 3225, 3225,
3225, 3161, 3161, 3161, 3225, 3225, 3161, 3161, 3225, 3225,
3161, 3161, 3161, 3161, 3161, 3161, 3161, 3161, 3161, 3161,
3161, 3161, 3161, 3161, 3161, 3161, 3225, 3225, 3225, 3225,
3225, 3161, 3161, 3225, 3225, 3225, 3225, 3161, 3161, 3161,
3161, 3225, 3161, 1305, 1305, 3225, 3161, 3161, 3225, 3225,
3225, 3161, 3161, 3161, 3161, 3225, 3161, 3225, 3161, 3225,
3225, 3225, 3225, 3161, 3161, 3161, 3161, 3161, 3161, 3161,
3161, 3161, 3161, 3161, 3161, 3161, 3225, 3161, 3161, 3225,
3225, 1109, 1238, 1109, 1238, 3161, 3225, 3225, 3225, 3225,
20097, 10498, 10498, 10498, 10498, 10396, 3225, 16256, 16256, 16256,
16256, 36362, 36490, 36618, 36746, 36874, 37002, 37130, 37258, 37386,
37514, 37642, 37770, 37898, 38026, 38154, 38282, 38410, 38538, 38666,
38794, 38922, 39050, 39178, 39306, 39434, 39562, 39690, 39818, 39946,
40074, 40202, 40330, 40458, 40586, 40714, 40842, 16256, 16256, 16256,
16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 3225,
10396, 10396, 3225, 10396, 10396, 3225, 10396, 10396, 10396, 10396,
10396, 10396, 10396, 3225, 10396, 10396, 10396, 10396, 10396, 10396,
10396, 10396, 3161, 3161, 3161, 3161, 10396, 10396, 10396, 10396,
10396, 10396, 10396, 1109, 1238, 10396, 10396, 10396, 10396, 10396,
10396, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404,
21404, 21404, 21404, 21404, 21404, 21404, 21404, 10396, 10396, 16256,
21404, 48267, 48395, 48523, 48651, 48779, 48907, 49035, 49163, 49291,
49419, 49547, 49675, 49803, 49931, 50059, 30347, 30475, 30603, 43915,
10396, 16256, 16256, 16256, 10396, 10396, 10396, 10396, 10396, 10396,
10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 16256, 16256,
16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256,
16256, 16256, 16256, 41355, 41483, 41611, 41739, 41867, 41995, 42123,
42251, 11403, 11019, 11147, 35211, 35339, 35467, 35595, 35723, 35851,
40971, 41099, 41227, 41355, 41483, 41611, 41739, 41867, 41995, 42123,
42251, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404,
21404, 21404, 21404, 10396, 10396, 10396, 10396, 21404, 21404, 21404,
21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404,
21404, 21404, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256,
16256, 16256, 16256, 16256, 25995, 26123, 26251, 26379, 45707, 45835,
45963, 46091, 46219, 26763, 21404, 21404, 21404, 21404, 21404, 21404,
42396, 42396, 42396, 42396, 42396, 42396, 42396, 42396, 42396, 42396,
42396, 42396, 42396, 42396, 42396, 42396, 42524, 42524, 42524, 42524,
42524, 42524, 42524, 42524, 42524, 42524, 42524, 42524, 42524, 42524,
42524, 42524, 35083, 42635, 42763, 42891, 43019, 43147, 22036, 18052,
18052, 18052, 18052, 18052, 10396, 10396, 45322, 45450, 45578, 18052,
15109, 664, 10396, 10396, 10396, 16256, 16256, 16256, 10396, 16256,
10396, 10396, 10396, 10396, 10396, 10396, 10396, 16256, 3225, 3225,
3161, 3161, 3161, 3161, 1109, 1238, 1109, 1238, 1109, 1238,
16256, 16256, 16256, 16256, 524, 664, 664, 664, 10396, 18052,
15109, 44042, 1109, 1238, 1109, 1238, 1109, 1238, 1109, 1238,
10396, 10396, 1109, 1238, 1109, 1238, 1109, 1238, 1109, 1238,
22036, 27541, 27670, 27670, 10396, 46347, 46475, 46603, 46731, 46859,
46987, 47115, 47243, 47371, 47499, 47627, 47755, 47883, 48011, 48139,
50195, 50195, 50195, 50195, 50195, 50195, 50195, 50195, 50195, 50195,
50195, 50195, 50195, 50195, 50195, 50195, 50322, 50322, 50322, 50322,
50322, 50322, 50322, 50322, 50322, 50322, 50322, 50322, 50322, 50322,
50322, 50322, 11906, 11906, 11906, 19074, 19074, 11906, 11906, 16256,
16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 22277, 22277,
22277, 22277, 22277, 22277, 22277, 22277, 22277, 1305, 22277, 22277,
22277, 22277, 22277, 22277, 22277, 16256, 22277, 22277, 22277, 22277,
22277, 16256, 22277, 16256, 664, 22036, 22036, 6807, 6807, 27541,
27670, 27541, 27670, 27541, 27670, 27541, 27670, 27541, 27670, 27541,
27670, 664, 664, 27541, 27670, 664, 664, 664, 664, 6807,
6807, 6807, 664, 664, 1305, 1556, 3225, 3225, 3225, 16256,
664, 922, 792, 664, 16256, 16256, 16256, 16256, 8834, 8962,
9090, 9218, 9346, 9474, 9602, 9730, 9858, 9986, 10114, 1109,
3225, 1238, 3225, 1109, 922, 922, 3225, 6683, 10396, 922,
922, 16256, 10396, 3225, 3225, 3225, 3225, 10396, 10396, 16256,
};
 
static const jchar data1[] = {
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 128, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 128,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 128,
5, 5, 128, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 128, 128, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 6529, 6529, 6529,
6529, 6529, 6529, 6529, 6529, 6529, 6529, 6529, 6529, 6529,
6529, 6529, 6529, 6529, 6529, 6529, 6529, 6529, 6529, 6529,
6529, 6529, 6529, 6529, 6529, 6529, 6529, 6529, 6529, 6529,
6529, 6529, 6529, 6529, 6529, 6529, 6529, 6658, 6658, 6658,
6658, 6658, 6658, 6658, 6658, 6658, 6658, 6658, 6658, 6658,
6658, 6658, 6658, 6658, 6658, 6658, 6658, 6658, 6658, 6658,
6658, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 128, 128, 128, 128, 128,
280, 408, 540, 128, 128, 128, 128, 651, 779, 907,
1035, 1163, 1291, 1419, 1547, 1675, 1803, 1931, 2059, 2187,
2315, 2443, 2571, 2699, 2827, 2955, 3083, 3211, 3339, 3467,
3595, 3723, 3851, 3979, 4107, 4235, 4363, 4491, 4619, 4747,
4875, 5003, 5131, 5259, 5387, 5515, 5643, 5771, 5899, 6027,
6155, 6283, 128, 128, 128, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 8200, 8200, 8326, 8326, 8326, 540, 540, 540,
8200, 8200, 8200, 8200, 8200, 8200, 8464, 8464, 8464, 8464,
8464, 8464, 8464, 8464, 8326, 8326, 8326, 8326, 8326, 540,
540, 8326, 8326, 8326, 8326, 8326, 8326, 8326, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 8326, 8326,
8326, 8326, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 128, 128, 128, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 6410, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 128, 651,
1163, 1803, 2315, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 128, 280, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128, 128, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 128,
128, 6793, 6921, 7049, 7177, 7305, 7433, 7561, 7689, 7817,
7945, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 8069, 8069, 8069, 8069, 8069, 8069, 128,
128, 8069, 128, 8069, 8069, 8069, 8069, 8069, 8069, 8069,
8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069,
8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069,
8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069,
8069, 8069, 8069, 8069, 8069, 8069, 8069, 128, 8069, 8069,
128, 128, 128, 8069, 128, 128, 8069, 8604, 8604, 8604,
8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604,
8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604,
8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604,
8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604,
8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604,
8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604,
8604, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 8705, 8985, 8834, 8834, 8834, 8834, 8834, 8834,
8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834,
8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8985,
8834, 8834, 8834, 8834, 8834, 8834, 8705, 8705, 8705, 8705,
8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705,
8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705,
8705, 8985, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834,
8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834,
8834, 8834, 8834, 8834, 128, 8834, 8834, 8834, 8834, 8834,
8834, 8834, 8834, 8834, 8834, 8834, 8705, 8705, 8705, 8705,
8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705,
8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705,
8705, 8705, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834,
8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834,
8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8705, 8705,
8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705,
8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705,
8705, 8705, 8705, 8705, 8834, 8834, 8834, 8834, 8834, 8834,
8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834,
8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834,
128, 128, 128, 128, 8705, 8705, 8705, 8705, 8705, 8705,
8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705,
8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8834, 8834,
8834, 8834, 8834, 8834, 8834, 128, 8834, 8834, 8834, 8834,
8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834,
8834, 8834, 8834, 8834, 8705, 8705, 8705, 8705, 8705, 8705,
8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705,
8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 128, 8705,
128, 128, 128, 8705, 8705, 8705, 8705, 8705, 8705, 8705,
128, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834,
8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834,
8834, 8834, 8834, 8834, 8834, 8834, 8834, 8705, 8705, 8705,
8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705,
8705, 8705, 8705, 8705, 8705, 8705, 8705, 8834, 8834, 8834,
8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834,
8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834,
8834, 8834, 8834, 8705, 128, 8705, 8705, 128, 128, 8705,
128, 128, 8705, 8705, 128, 128, 8705, 8705, 8705, 8705,
128, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8834,
8834, 8834, 8834, 128, 8834, 128, 8834, 8834, 8834, 8834,
8705, 8705, 128, 8705, 8705, 8705, 8705, 128, 128, 8705,
8705, 8705, 8705, 8705, 8705, 8705, 8705, 128, 8705, 8705,
8705, 8705, 8705, 8705, 8705, 128, 8834, 8834, 8834, 8834,
8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834,
8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834,
8834, 8834, 8705, 8705, 128, 8705, 8705, 8705, 8705, 128,
8834, 8834, 8834, 8985, 8834, 8834, 8834, 8834, 8834, 8834,
128, 128, 128, 128, 9097, 9225, 9353, 9481, 9609, 9737,
9865, 9993, 10121, 10249, 9097, 9225, 9353, 9481, 9609, 9737,
9865, 9993, 10121, 10249, 9097, 9225, 9353, 9481, 9609, 9737,
9865, 9993, 10121, 10249, 9097, 9225, 9353, 9481, 9609, 9737,
9865, 9993, 10121, 10249, 9097, 9225, 9353, 9481, 9609, 9737,
9865, 9993, 10121, 10249,
};
 
static const jchar data2[] = {
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128,
};
 
static const jchar data14[] = {
262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
262, 262, 262, 262, 262, 262, 262, 262, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 144, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 144, 144, 144,
144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
144, 144, 144,
};
 
static const int data_length[] = {
3960, 1504, 256, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 383, -1, -1, };
static const jchar* data[] = {
data0, data1, data2, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, data14, NULL, NULL};
 
 
/**
* This is the attribute table for computing the numeric value of a
* character. The value is -1 if Unicode does not define a value, -2
* if the value is not a positive integer, otherwise it is the value.
*/
static const jshort numValue0[] = {
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1,
10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
-1, -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
34, 35, -1, -1, -1, -1, -1, -1, 2, 3, -1, 1, -1,
-2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2,
3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, 0, 1,
2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, -1,
16, 10, 100, 1000, -1, -1, -2, -1, -1, 20, 30, 40, 50,
60, 70, 80, 90, 10000, 17, 18, 19, -1, 0, 1, 2, 3,
4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 0, 4, 5, 6, 7, 8, 9, -1, -1, -1, 1, 2,
3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 50, 100, 500,
1000, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
50, 100, 500, 1000, 1000, 5000, 10000, -1, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, -1, -1, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 10, 0, 1, 2, 3, 4, 5, 6,
7, 8, 9, 10, 20, 30, 5, 6, 7, 8, 9, 21, 22,
23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
49, 50, -1, -1, -1,
};
 
static const jshort numValue1[] = {
-1, -1, -1, -1, -1, 1, 2, 3, 4, 5, 6, 7, 8,
9, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 200, 300,
400, 500, 600, 700, 800, 900, 1000, 2000, 3000, 4000, 5000, 6000, 7000,
8000, 9000, 10000, 20000, 30000, -3, -4, -5, -6, -7, -8, -1, -1,
-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1,
-1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6,
7, 8, 9,
};
 
static const jshort numValue2[] = {
-1, -1,
};
 
static const jshort numValue14[] = {
-1, -1, -1,
};
 
static const int numValue_length[] = {
395, 81, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, -1, };
static const jshort* numValue[] = {
numValue0, numValue1, numValue2, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, numValue14, NULL, NULL};
 
 
 
/**
* This is the attribute table for computing the uppercase representation
* of a character. The value is the difference between the character and
* its uppercase version.
*/
static const jshort upper0[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
-32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
-32, -32, 0, 0, 0, 0, 0, 0, 0, 0, 743, 0, 0,
0, 0, 0, -32, 121, 0, -1, 0, -232, 0, -300, 0, 0,
0, 0, 0, 0, 0, 97, 0, 0, 0, 130, 0, 0, 0,
0, 0, 56, 0, -1, -2, -79, 0, 0, 0, 0, -210, -206,
-205, -202, -203, -207, -209, -211, -213, -214, -218, -217, -219, 0, 0,
0, 84, 0, 0, 0, 0, 0, -38, -37, -31, -64, -63, -62,
-57, 0, -47, -54, -86, -80, 7, 0, -96, 0, 0, 0, 0,
0, 0, -48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, -59, 8, 0, 74, 86, 100,
128, 112, 126, 8, 0, 9, 0, 0, -7205, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16,
-16, -16, -16, -16, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, -26, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0,
};
 
static const jshort upper1[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0,
};
 
static const jshort upper2[] = {
0, 0,
};
 
static const jshort upper14[] = {
0, 0, 0,
};
 
static const int upper_length[] = {
395, 81, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, -1, };
static const jshort* upper[] = {
upper0, upper1, upper2, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, upper14, NULL, NULL};
 
 
/**
* This is the attribute table for computing the lowercase representation
* of a character. The value is the difference between the character and
* its lowercase version.
*/
static const jshort lower0[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 32, 0, 0, 0, 1, 0, -199, 0, -121, 0, 210, 206,
205, 79, 202, 203, 207, 0, 211, 209, 213, 0, 214, 218, 217,
219, 0, 0, 2, 1, 0, 0, -97, -56, -130, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 38, 37, 64, 63, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, -60, 0, -7, 80, 0, 0,
48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, -8, 0, 0, 0,
0, 0, 0, 0, -8, 0, -74, -9, 0, -86, -100, -112, -128,
-126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, -7517, -8383, -8262, 16, 16,
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0,
};
 
static const jshort lower1[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0,
};
 
static const jshort lower2[] = {
0, 0,
};
 
static const jshort lower14[] = {
0, 0, 0,
};
 
static const int lower_length[] = {
395, 81, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, -1, };
static const jshort* lower[] = {
lower0, lower1, lower2, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, lower14, NULL, NULL};
 
 
/**
* This is the attribute table for computing the directionality class
* of a character. At present, the value is in the range 0 - 18 if the
* character has a direction, otherwise it is -1.
*/
static const jbyte direction0[] = {
9, 11, 10, 12, 12, 13, 5, 5, 13, 13, 5, 7, 5, 4, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 7, 13, 0, 13, 13, 5, 3, 3, 0, 3, 13, 13, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 8, 8, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0,
0, 13, 1, 1, 2, 2, 2, 2, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
2, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 8, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 9, 1, 13, 13,
13, 12, 10, 14, 16, 18, 15, 17, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 0, 0, 2,
};
 
static const jbyte direction1[] = {
0, -1, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1, 0, 8, 9, 13, 0, 0, 0, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3,
};
 
static const jbyte direction2[] = {
0, -1,
};
 
static const jbyte direction14[] = {
-1, 9, 8,
};
 
static const int direction_length[] = {
395, 81, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, -1, };
static const jbyte* direction[] = {
direction0, direction1, direction2, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, direction14, NULL, NULL};
 
 
/**
* This is the listing of titlecase special cases (all other character
* can use <code>upper</code> to determine their titlecase). The listing
* is a sequence of character pairs; converting the first character of the
* pair to titlecase produces the second character.
*/
static const jchar title[] = {
452, 453, 453, 453, 454, 453, 455, 456, 456, 456,
457, 456, 458, 459, 459, 459, 460, 459, 497, 498,
498, 498, 499, 498,
};
/** Length of title. */
static const int title_length = 24;
 
#endif /* __JAVA_CHARTABLES_H__ */
/gnu-dev/or1k-gcc/libjava/include/powerpc-signal.h
0,0 → 1,113
// powerpc-signal.h - Catch runtime signals and turn them into exceptions
// on a powerpc based Linux system.
 
/* Copyright (C) 2003, 2006 Free Software Foundation
 
This file is part of libgcj.
 
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
 
 
#ifndef JAVA_SIGNAL_H
#define JAVA_SIGNAL_H 1
 
#include <signal.h>
#include <sys/syscall.h>
 
#define HANDLE_SEGV 1
#undef HANDLE_FPE
 
#define SIGNAL_HANDLER(_name) \
static void _name (int /* _signal */, struct sigcontext *_sc)
 
/* MD_FALLBACK_FRAME_STATE_FOR takes care of special casing PC
before the faulting instruction, so we don't need to do anything
here. */
 
#define MAKE_THROW_FRAME(_exception)
 
/* For an explanation why we cannot simply use sigaction to
install the handlers, see i386-signal.h. */
 
/* We use kernel_old_sigaction here because we're calling the kernel
directly rather than via glibc. The sigaction structure that the
syscall uses is a different shape from the one in userland and not
visible to us in a header file so we define it here.
Additionally we want a proper prototype for the handler function
with the struct sigcontext pointer passed by the kernel as the 2nd
argument, which isn't there in userland headers.
 
Note that we explicitly avoid the SA_SIGINFO flag in INIT_SEGV and
INIT_FPE below. Using the ucontext pointer passed as 3rd argument
of a SA_SIGINFO type handler would need complicated backwards
compatibility hacks in MAKE_THROW_FRAME, as the ucontext layout
on PPC changed during the 2.5 kernel series. */
 
#ifndef __powerpc64__
struct kernel_old_sigaction {
void (*k_sa_handler) (int, struct sigcontext *);
unsigned long k_sa_mask;
unsigned long k_sa_flags;
void (*k_sa_restorer) (void);
};
 
#define INIT_SEGV \
do \
{ \
struct kernel_old_sigaction kact; \
kact.k_sa_handler = catch_segv; \
kact.k_sa_mask = 0; \
kact.k_sa_flags = 0; \
if (syscall (SYS_sigaction, SIGSEGV, &kact, NULL) != 0) \
__asm__ __volatile__ (".long 0"); \
} \
while (0)
 
#define INIT_FPE \
do \
{ \
struct kernel_old_sigaction kact; \
kact.k_sa_handler = catch_fpe; \
kact.k_sa_mask = 0; \
kact.k_sa_flags = 0; \
if (syscall (SYS_sigaction, SIGFPE, &kact, NULL) != 0) \
__asm__ __volatile__ (".long 0"); \
} \
while (0)
 
#else /* powerpc64 */
 
struct kernel_sigaction
{
void (*k_sa_handler) (int, struct sigcontext *);
unsigned long k_sa_flags;
void (*k_sa_restorer)(void);
unsigned long k_sa_mask;
};
 
#define INIT_SEGV \
do \
{ \
struct kernel_sigaction kact; \
memset (&kact, 0, sizeof (kact)); \
kact.k_sa_handler = catch_segv; \
if (syscall (SYS_rt_sigaction, SIGSEGV, &kact, NULL, 8) != 0) \
__asm__ __volatile__ (".long 0"); \
} \
while (0)
 
#define INIT_FPE \
do \
{ \
struct kernel_sigaction kact; \
memset (&kact, 0, sizeof (kact)); \
kact.k_sa_handler = catch_fpe; \
if (syscall (SYS_rt_sigaction, SIGFPE, &kact, NULL, 8) != 0) \
__asm__ __volatile__ (".long 0"); \
} \
while (0)
#endif
 
#endif /* JAVA_SIGNAL_H */
/gnu-dev/or1k-gcc/libjava/include/posix-threads.h
0,0 → 1,384
// -*- c++ -*-
// posix-threads.h - Defines for using POSIX threads.
 
/* Copyright (C) 1998, 1999, 2001, 2003, 2006 Free Software Foundation
 
This file is part of libgcj.
 
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
 
#ifndef __JV_POSIX_THREADS__
#define __JV_POSIX_THREADS__
 
// NOTE: This file may only reference those pthread functions which
// are known not to be overridden by the Boehm GC. If in doubt, scan
// boehm-gc/gc.h. This is yucky but lets us avoid including gc.h
// everywhere (which would be truly yucky).
 
#include <pthread.h>
#include <sched.h>
#include <sysdep/locks.h>
 
//
// Typedefs.
//
 
typedef struct _Jv_Thread_t
{
// Flag values are defined in implementation.
int flags;
 
// Actual thread id.
pthread_t thread;
// Java Thread object.
java::lang::Thread *thread_obj;
// Condition variable and corresponding mutex, used to implement the
// interruptable wait/notify mechanism.
pthread_cond_t wait_cond;
pthread_mutex_t wait_mutex;
 
// Next thread for Condition Variable wait-list chain.
_Jv_Thread_t *next;
} _Jv_Thread_t;
 
typedef void _Jv_ThreadStartFunc (java::lang::Thread *);
 
// Condition Variables used to implement wait/notify/sleep/interrupt.
typedef struct
{
// Linked list of Threads that are waiting to be notified.
_Jv_Thread_t *first;
 
} _Jv_ConditionVariable_t;
 
typedef struct
{
// For compatibility, simplicity, and correctness, we do not use the native
// pthreads recursive mutex implementation, but simulate them instead.
 
// Mutex the thread holds the entire time this mutex is held.
pthread_mutex_t mutex;
 
// Thread holding this mutex.
pthread_t owner;
 
// Number of times mutex is held (lock depth). If 0, the lock is not held.
int count;
} _Jv_Mutex_t;
 
// This is a convenience function used only by the pthreads thread
// implementation. This is slow, but that's too bad -- we need to do
// the checks for correctness. It might be nice to be able to compile
// this out. Returns 0 if the lock is held by the current thread, and
// 1 otherwise.
inline int
_Jv_MutexCheckMonitor (_Jv_Mutex_t *mu)
{
return (mu->owner != pthread_self());
}
 
// Type identifying a POSIX thread.
typedef pthread_t _Jv_ThreadDesc_t;
 
inline _Jv_ThreadDesc_t
_Jv_GetPlatformThreadID(_Jv_Thread_t *t)
{
return t->thread;
}
 
//
// Signal helpers.
//
 
void _Jv_BlockSigchld();
void _Jv_UnBlockSigchld();
 
 
//
// Condition variables.
//
 
int _Jv_CondWait (_Jv_ConditionVariable_t *cv, _Jv_Mutex_t *mu,
jlong millis, jint nanos);
int _Jv_CondNotify (_Jv_ConditionVariable_t *cv, _Jv_Mutex_t *mu);
 
int _Jv_CondNotifyAll (_Jv_ConditionVariable_t *cv, _Jv_Mutex_t *mu);
 
inline void
_Jv_CondInit (_Jv_ConditionVariable_t *cv)
{
cv->first = 0;
}
 
//
// Mutexes.
//
 
#ifdef LOCK_DEBUG
# include <stdio.h>
#endif
 
inline void
_Jv_MutexInit (_Jv_Mutex_t *mu)
{
# ifdef LOCK_DEBUG /* Assumes Linuxthreads */
pthread_mutexattr_t attr;
pthread_mutexattr_init(&attr);
pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_ERRORCHECK);
pthread_mutex_init (&mu->mutex, &attr);
# else
pthread_mutex_init (&mu->mutex, 0);
# endif
 
mu->count = 0;
mu->owner = 0;
}
 
extern int _Jv_MutexLock (_Jv_Mutex_t *);
 
inline int
_Jv_MutexUnlock (_Jv_Mutex_t *mu)
{
if (_Jv_MutexCheckMonitor (mu))
{
# ifdef LOCK_DEBUG
fprintf(stderr, "_Jv_MutexUnlock: Not owner\n");
for (;;) {}
# endif
return 1;
}
mu->count--;
 
if (mu->count == 0)
{
mu->owner = 0;
# ifdef LOCK_DEBUG
int result = pthread_mutex_unlock (&mu->mutex);
if (0 != result)
{
fprintf(stderr, "Pthread_mutex_unlock returned %d\n", result);
for (;;) {}
}
# else
pthread_mutex_unlock (&mu->mutex);
# endif
}
return 0;
}
 
#ifndef LINUX_THREADS
 
// pthread_mutex_destroy does nothing on Linux and it is a win to avoid
// defining this macro.
 
#define _Jv_HaveMutexDestroy
 
inline void
_Jv_MutexDestroy (_Jv_Mutex_t *mu)
{
pthread_mutex_destroy (&mu->mutex);
}
 
#endif /* LINUX_THREADS */
 
//
// Thread creation and manipulation.
//
 
void _Jv_InitThreads (void);
 
_Jv_Thread_t *_Jv_ThreadInitData (java::lang::Thread *thread);
void _Jv_ThreadDestroyData (_Jv_Thread_t *data);
 
inline java::lang::Thread *
_Jv_ThreadCurrent (void)
{
extern pthread_key_t _Jv_ThreadKey;
return (java::lang::Thread *) pthread_getspecific (_Jv_ThreadKey);
}
 
#ifdef JV_HASH_SYNCHRONIZATION
// Should be specialized to just load the "current thread" register
// on platforms that support it. Speed is of the essence. The value
// of the descriptor is not, so long as there is a one-to-one correspondence
// to threads.
 
 
#ifdef __ia64__
 
typedef size_t _Jv_ThreadId_t;
 
register size_t _Jv_self __asm__("r13");
// For linux_threads this is really a pointer to its thread data
// structure. We treat it as opaque. That should also work
// on other operating systems that follow the ABI standard.
 
// This should become the prototype for machines that maintain a thread
// pointer in a register.
inline _Jv_ThreadId_t
_Jv_ThreadSelf (void)
{
return _Jv_self;
}
 
#define JV_SELF_DEFINED
 
#endif /* __ia64__ */
 
#ifdef __alpha__
 
typedef void *_Jv_ThreadId_t;
 
inline _Jv_ThreadId_t
_Jv_ThreadSelf (void)
{
return __builtin_thread_pointer ();
}
 
#define JV_SELF_DEFINED
 
#endif /* __alpha__ */
 
#if defined(SLOW_PTHREAD_SELF)
 
#include "sysdep/locks.h"
 
typedef pthread_t _Jv_ThreadId_t;
 
// E.g. on X86 Linux, pthread_self() is too slow for our purpose.
// Instead we maintain a cache based on the current sp value.
// This is similar to what's done for thread local allocation in the
// GC, only far simpler.
// This code should probably go away when Linux/X86 starts using a
// segment register to hold the thread id.
# define LOG_THREAD_SPACING 12
// If two thread pointer values are closer than
// 1 << LOG_THREAD_SPACING, we assume they belong
// to the same thread.
# define SELF_CACHE_SIZE 1024
# define SC_INDEX(sp) (((unsigned long)(sp) >> 19) & (SELF_CACHE_SIZE-1))
// Mapping from sp value to cache index.
// Note that this is not in any real sense a hash
// function, since we need to be able to clear
// all possibly matching slots on thread startup.
// Thus all entries that might correspond to
// a given thread are intentionally contiguous.
// Works well with anything that allocates at least
// 512KB stacks.
# define SC_CLEAR_MIN (-16) // When starting a new thread, we clear
# define SC_CLEAR_MAX 0 // all self cache entries between
// SC_INDEX(sp)+SC_CLEAR_MIN and
// SC_INDEX(sp)+SC_CLEAR_MAX to ensure
// we never see stale values. The
// current values assume a downward
// growing stack of size <= 7.5 MB.
# define BAD_HIGH_SP_VALUE ((size_t)(-1))
 
extern volatile
struct self_cache_entry {
size_t high_sp_bits; // sp value >> LOG_THREAD_SPACING
pthread_t self; // Corresponding thread
} _Jv_self_cache[];
 
void _Jv_Self_Cache_Init();
 
_Jv_ThreadId_t
_Jv_ThreadSelf_out_of_line(volatile self_cache_entry *sce,
size_t high_sp_bits);
inline _Jv_ThreadId_t
_Jv_ThreadSelf (void)
{
int dummy;
size_t sp = (size_t)(&dummy);
unsigned h = SC_INDEX(sp);
volatile self_cache_entry *sce = _Jv_self_cache + h;
pthread_t candidate_self = sce -> self; // Read must precede following one.
read_barrier();
if (sce -> high_sp_bits == sp >> LOG_THREAD_SPACING)
{
// The sce -> self value we read must be valid. An intervening
// cache replacement by another thread would have first replaced
// high_sp_bits by something else, and it can't possibly change
// back without our intervention.
return candidate_self;
}
else
return _Jv_ThreadSelf_out_of_line(sce, sp >> LOG_THREAD_SPACING);
}
 
#define JV_SELF_DEFINED
 
#endif /* SLOW_PTHREAD_SELF */
 
#ifndef JV_SELF_DEFINED /* If all else fails, call pthread_self directly */
 
typedef pthread_t _Jv_ThreadId_t;
 
inline _Jv_ThreadId_t
_Jv_ThreadSelf (void)
{
return pthread_self();
}
 
#endif /* !JV_SELF_DEFINED */
 
#endif /* JV_HASH_SYNCHRONIZATION */
 
inline _Jv_Thread_t *
_Jv_ThreadCurrentData (void)
{
extern pthread_key_t _Jv_ThreadDataKey;
return (_Jv_Thread_t *) pthread_getspecific (_Jv_ThreadDataKey);
}
 
inline void
_Jv_ThreadYield (void)
{
#ifdef HAVE_SCHED_YIELD
sched_yield ();
#endif /* HAVE_SCHED_YIELD */
}
 
void _Jv_ThreadRegister (_Jv_Thread_t *data);
void _Jv_ThreadUnRegister ();
 
void _Jv_ThreadSetPriority (_Jv_Thread_t *data, jint prio);
 
void _Jv_ThreadStart (java::lang::Thread *thread, _Jv_Thread_t *data,
_Jv_ThreadStartFunc *meth);
 
void _Jv_ThreadWait (void);
 
void _Jv_ThreadInterrupt (_Jv_Thread_t *data);
 
// park() / unpark() support
 
struct ParkHelper
{
volatile obj_addr_t permit;
pthread_mutex_t mutex;
pthread_cond_t cond;
void init ();
void deactivate ();
void destroy ();
void park (jboolean isAbsolute, jlong time);
void unpark ();
};
 
inline void
ParkHelper::destroy ()
{
pthread_mutex_destroy (&mutex);
pthread_cond_destroy (&cond);
}
 
#endif /* __JV_POSIX_THREADS__ */
/gnu-dev/or1k-gcc/libjava/include/win32-threads.h
0,0 → 1,232
// -*- c++ -*-
// win32-threads.h - Defines for using Win32 threads.
 
/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2006 Free Software
Foundation
 
This file is part of libgcj.
 
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
 
#ifndef __JV_WIN32_THREADS__
#define __JV_WIN32_THREADS__
 
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
 
//
// Typedefs.
//
 
typedef struct
{
// ev[0] (signal) is a Win32 auto-reset event for _Jv_CondNotify
// ev[1] (broadcast) is a Win32 manual-reset event for _Jv_CondNotifyAll
HANDLE ev[2];
 
// Number of threads waiting on this condition variable
int blocked_count;
 
// Protects access to the blocked_count variable
CRITICAL_SECTION count_mutex;
 
} _Jv_ConditionVariable_t;
 
typedef struct
{
// The thread-id of the owner thread if any, 0 otherwise
DWORD owner;
 
// Track nested mutex acquisitions by the same thread
int refcount;
 
// The actual Windows construct used to implement this mutex
CRITICAL_SECTION cs;
 
} _Jv_Mutex_t;
 
typedef struct _Jv_Thread_t
{
int flags; // Flags are defined in implementation.
HANDLE handle; // Actual handle to the thread
 
// Protects access to the thread's interrupt_flag and
// interrupt_event variables within this module.
CRITICAL_SECTION interrupt_mutex;
// A Win32 auto-reset event for thread interruption
HANDLE interrupt_event;
 
java::lang::Thread *thread_obj;
} _Jv_Thread_t;
 
typedef DWORD _Jv_ThreadId_t;
 
inline _Jv_ThreadId_t
_Jv_ThreadSelf (void)
{
return GetCurrentThreadId();
}
 
typedef void _Jv_ThreadStartFunc (java::lang::Thread *);
 
// Type identifying a win32 thread.
typedef HANDLE _Jv_ThreadDesc_t;
 
inline _Jv_ThreadDesc_t
_Jv_GetPlatformThreadID(_Jv_Thread_t *t)
{
return t->handle;
}
 
//
// Condition variables.
//
 
#define _Jv_HaveCondDestroy
int _Jv_CondWait (_Jv_ConditionVariable_t *cv, _Jv_Mutex_t *mu, jlong millis, jint nanos);
void _Jv_CondInit (_Jv_ConditionVariable_t *cv);
void _Jv_CondDestroy (_Jv_ConditionVariable_t *cv);
int _Jv_CondNotify (_Jv_ConditionVariable_t *cv, _Jv_Mutex_t *);
int _Jv_CondNotifyAll (_Jv_ConditionVariable_t *cv, _Jv_Mutex_t *);
 
//
// Mutexes.
// We use CRITICAL_SECTIONs instead of CreateMutex() for better performance
//
 
// Returns 0 if the mutex lock is held by the current thread, and 1 otherwise.
inline int _Jv_MutexCheckMonitor (_Jv_Mutex_t *mu)
{
return (mu->owner != GetCurrentThreadId ( ));
}
 
inline void _Jv_MutexInit (_Jv_Mutex_t *mu)
{
mu->owner = 0UL;
mu->refcount = 0;
InitializeCriticalSection (&(mu->cs));
}
 
#define _Jv_HaveMutexDestroy
inline void _Jv_MutexDestroy (_Jv_Mutex_t *mu)
{
mu->owner = 0UL;
mu->refcount = 0;
DeleteCriticalSection (&(mu->cs));
mu = NULL;
}
 
inline int _Jv_MutexUnlock (_Jv_Mutex_t *mu)
{
if (mu->owner == GetCurrentThreadId ( ))
{
mu->refcount--;
if (mu->refcount == 0)
mu->owner = 0UL;
LeaveCriticalSection (&(mu->cs));
return 0;
}
else
return 1;
}
 
inline int _Jv_MutexLock (_Jv_Mutex_t *mu)
{
EnterCriticalSection (&(mu->cs));
mu->owner = GetCurrentThreadId ( );
mu->refcount++;
return 0;
}
 
//
// Thread creation and manipulation.
//
 
void _Jv_InitThreads (void);
_Jv_Thread_t *_Jv_ThreadInitData (java::lang::Thread *thread);
void _Jv_ThreadDestroyData (_Jv_Thread_t *data);
 
inline java::lang::Thread* _Jv_ThreadCurrent (void)
{
extern DWORD _Jv_ThreadKey;
return (java::lang::Thread *) TlsGetValue(_Jv_ThreadKey);
}
 
inline _Jv_Thread_t *_Jv_ThreadCurrentData(void)
{
extern DWORD _Jv_ThreadDataKey;
return (_Jv_Thread_t *) TlsGetValue(_Jv_ThreadDataKey);
}
 
inline void _Jv_ThreadYield (void)
{
Sleep (0);
}
 
void _Jv_ThreadRegister (_Jv_Thread_t *data);
void _Jv_ThreadUnRegister ();
 
void _Jv_ThreadSetPriority (_Jv_Thread_t *data, jint prio);
void _Jv_ThreadStart (java::lang::Thread *thread, _Jv_Thread_t *data,
_Jv_ThreadStartFunc *meth);
void _Jv_ThreadWait (void);
void _Jv_ThreadInterrupt (_Jv_Thread_t *data);
 
//
// Thread interruption support
//
 
// Gets the auto-reset event for the current thread which is
// signalled by _Jv_ThreadInterrupt. The caller can wait on this
// event in addition to other waitable objects.
//
// NOTE: After waiting on this event with WaitForMultipleObjects,
// you should ALWAYS use the return value of WaitForMultipleObjects
// to test whether this event was signalled and whether thread
// interruption has occurred. You should do this instead of checking
// the thread's interrupted_flag, because someone could have reset
// this flag in the interval of time between the return of
// WaitForMultipleObjects and the time you query interrupted_flag.
// See java/lang/natWin32Process.cc (waitFor) for an example.
HANDLE _Jv_Win32GetInterruptEvent (void);
 
// park() / unpark() support
 
struct ParkHelper
{
// We use LONG instead of obj_addr_t to avoid pulling in locks.h,
// which depends on size_t, ...
volatile LONG permit;
 
// The critical section is used for lazy initialization of our event
CRITICAL_SECTION cs;
HANDLE event;
void init ();
void deactivate ();
void destroy ();
void park (jboolean isAbsolute, jlong time);
void unpark ();
private:
void init_event();
};
 
// Remove defines from <windows.h> that conflict with various things in libgcj code
 
#undef TRUE
#undef FALSE
#undef MAX_PRIORITY
#undef MIN_PRIORITY
#undef min
#undef max
#undef interface
#undef STRICT
#undef VOID
#undef TEXT
#undef OUT
 
#endif /* __JV_WIN32_THREADS__ */
/gnu-dev/or1k-gcc/libjava/include/jvm.h
0,0 → 1,804
// jvm.h - Header file for private implementation information. -*- c++ -*-
 
/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation
 
This file is part of libgcj.
 
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
 
#ifndef __JAVA_JVM_H__
#define __JAVA_JVM_H__
 
// Define this before including jni.h.
// jni.h is included by jvmpi.h, which might be included. We define
// this unconditionally because it is convenient and it lets other
// files include jni.h without difficulty.
#define __GCJ_JNI_IMPL__
 
#include <gcj/javaprims.h>
 
#include <java-assert.h>
#include <java-threads.h>
// Must include java-gc.h before Object.h for the implementation.
#include <java-gc.h>
 
#include <java/lang/Object.h>
 
// Include cni.h before field.h to enable all definitions. FIXME.
#include <gcj/cni.h>
#include <gcj/field.h>
 
#include <java/lang/Thread.h>
 
#include <sysdep/locks.h>
 
/* Macro for possible unused arguments. */
#define MAYBE_UNUSED __attribute__((__unused__))
 
/* Structure of the virtual table. */
struct _Jv_VTable
{
#ifdef __ia64__
typedef struct { void *pc, *gp; } vtable_elt;
#else
typedef void *vtable_elt;
#endif
jclass clas;
void *gc_descr;
 
// This must be last, as derived classes "extend" this by
// adding new data members.
vtable_elt method[1];
 
#ifdef __ia64__
void *get_method(int i) { return &method[i]; }
void set_method(int i, void *fptr) { method[i] = *(vtable_elt *)fptr; }
void *get_finalizer()
{
// We know that get_finalizer is only used for checking whether
// this object needs to have a finalizer registered. So it is
// safe to simply return just the PC component of the vtable
// slot.
return ((vtable_elt *)(get_method(0)))->pc;
}
#else
void *get_method(int i) { return method[i]; }
void set_method(int i, void *fptr) { method[i] = fptr; }
void *get_finalizer() { return get_method(0); }
#endif
 
static size_t vtable_elt_size() { return sizeof(vtable_elt); }
 
// Given a method index, return byte offset from the vtable pointer.
static jint idx_to_offset (int index)
{
return (2 * sizeof (void *)) + (index * vtable_elt_size ());
}
 
static _Jv_VTable *new_vtable (int count);
};
 
union _Jv_word
{
jobject o;
jint i; // Also stores smaller integral types.
jfloat f;
jint ia[1]; // Half of _Jv_word2.
void* p;
 
#if SIZEOF_VOID_P == 8
// We can safely put a long or a double in here without increasing
// the size of _Jv_Word; we take advantage of this in the interpreter.
jlong l;
jdouble d;
#endif
 
jclass clazz;
jstring string;
struct _Jv_Field *field;
struct _Jv_Utf8Const *utf8;
struct _Jv_ResolvedMethod *rmethod;
};
 
union _Jv_word2
{
jint ia[2];
jlong l;
jdouble d;
};
 
union _Jv_value
{
jbyte byte_value;
jshort short_value;
jchar char_value;
jint int_value;
jlong long_value;
jfloat float_value;
jdouble double_value;
jobject object_value;
};
 
/* Extract a character from a Java-style Utf8 string.
* PTR points to the current character.
* LIMIT points to the end of the Utf8 string.
* PTR is incremented to point after the character thta gets returns.
* On an error, -1 is returned. */
#define UTF8_GET(PTR, LIMIT) \
((PTR) >= (LIMIT) ? -1 \
: *(PTR) < 128 ? *(PTR)++ \
: (*(PTR)&0xE0) == 0xC0 && ((PTR)+=2)<=(LIMIT) && ((PTR)[-1]&0xC0) == 0x80 \
? (((PTR)[-2] & 0x1F) << 6) + ((PTR)[-1] & 0x3F) \
: (*(PTR) & 0xF0) == 0xE0 && ((PTR) += 3) <= (LIMIT) \
&& ((PTR)[-2] & 0xC0) == 0x80 && ((PTR)[-1] & 0xC0) == 0x80 \
? (((PTR)[-3]&0x0F) << 12) + (((PTR)[-2]&0x3F) << 6) + ((PTR)[-1]&0x3F) \
: ((PTR)++, -1))
 
extern int _Jv_strLengthUtf8(const char* str, int len);
 
typedef struct _Jv_Utf8Const Utf8Const;
_Jv_Utf8Const *_Jv_makeUtf8Const (const char *s, int len);
_Jv_Utf8Const *_Jv_makeUtf8Const (jstring string);
static inline _Jv_Utf8Const *_Jv_makeUtf8Const (const char *s)
{
return _Jv_makeUtf8Const (s, strlen (s));
}
extern jboolean _Jv_equalUtf8Consts (const _Jv_Utf8Const *, const _Jv_Utf8Const *);
extern jboolean _Jv_equal (_Jv_Utf8Const *, jstring, jint);
extern jboolean _Jv_equaln (_Jv_Utf8Const *, jstring, jint);
 
/* Helper class which converts a jstring to a temporary char*.
Uses the supplied buffer, if non-null. Otherwise, allocates
the buffer on the heap. Use the JV_TEMP_UTF_STRING macro,
which follows, to automatically allocate a stack buffer if
the string is small enough. */
class _Jv_TempUTFString
{
public:
_Jv_TempUTFString(jstring jstr, char* buf=0);
~_Jv_TempUTFString();
 
// Accessors
operator const char*() const
{
return buf_;
}
const char* buf() const
{
return buf_;
}
char* buf()
{
return buf_;
}
 
private:
char* buf_;
bool heapAllocated_;
};
 
inline _Jv_TempUTFString::_Jv_TempUTFString (jstring jstr, char* buf)
: buf_(0), heapAllocated_(false)
{
if (!jstr) return;
jsize len = JvGetStringUTFLength (jstr);
if (buf)
buf_ = buf;
else
{
buf_ = (char*) _Jv_Malloc (len+1);
heapAllocated_ = true;
}
 
JvGetStringUTFRegion (jstr, 0, jstr->length(), buf_);
buf_[len] = '\0';
}
 
inline _Jv_TempUTFString::~_Jv_TempUTFString ()
{
if (heapAllocated_)
_Jv_Free (buf_);
}
 
/* Macro which uses _Jv_TempUTFString. Allocates a stack-based
buffer if the string and its null terminator are <= 256
characters in length. Otherwise, a heap-based buffer is
used. The parameters to this macro are the variable name
which is an instance of _Jv_TempUTFString (above) and a
jstring.
Sample Usage:
jstring jstr = getAJString();
JV_TEMP_UTF_STRING(utfstr, jstr);
printf("The string is: %s\n", utfstr.buf());
*/
#define JV_TEMP_UTF_STRING(utfstr, jstr) \
jstring utfstr##thejstr = (jstr); \
jsize utfstr##_len = utfstr##thejstr ? JvGetStringUTFLength (utfstr##thejstr) + 1 : 0; \
char utfstr##_buf[utfstr##_len <= 256 ? utfstr##_len : 0]; \
_Jv_TempUTFString utfstr(utfstr##thejstr, sizeof(utfstr##_buf)==0 ? 0 : utfstr##_buf)
 
namespace gcj
{
/* Some constants used during lookup of special class methods. */
extern _Jv_Utf8Const *void_signature; /* "()V" */
extern _Jv_Utf8Const *clinit_name; /* "<clinit>" */
extern _Jv_Utf8Const *init_name; /* "<init>" */
extern _Jv_Utf8Const *finit_name; /* "finit$", */
/* Set to true by _Jv_CreateJavaVM. */
extern bool runtimeInitialized;
 
/* Print out class names as they are initialized. */
extern bool verbose_class_flag;
/* When true, enable the bytecode verifier and BC-ABI verification. */
extern bool verifyClasses;
 
/* Thread stack size specified by the -Xss runtime argument. */
extern size_t stack_size;
 
/* The start time */
extern jlong startTime;
/* The VM arguments */
extern JArray<jstring>* vmArgs;
 
// Currently loaded classes
extern jint loadedClasses;
 
// Unloaded classes
extern jlong unloadedClasses;
}
 
// This class handles all aspects of class preparation and linking.
class _Jv_Linker
{
private:
typedef unsigned int uaddr __attribute__ ((mode (pointer)));
 
static _Jv_Field *find_field_helper(jclass, _Jv_Utf8Const *, _Jv_Utf8Const *,
jclass, jclass *);
static _Jv_Field *find_field(jclass, jclass, jclass *, _Jv_Utf8Const *,
_Jv_Utf8Const *);
static void check_loading_constraints (_Jv_Method *, jclass, jclass);
static void prepare_constant_time_tables(jclass);
static jshort get_interfaces(jclass, _Jv_ifaces *);
static void link_symbol_table(jclass);
static void link_exception_table(jclass);
static void layout_interface_methods(jclass);
static void set_vtable_entries(jclass, _Jv_VTable *);
static void make_vtable(jclass);
static void ensure_fields_laid_out(jclass);
static void ensure_class_linked(jclass);
static void ensure_supers_installed(jclass);
static void add_miranda_methods(jclass, jclass);
static void ensure_method_table_complete(jclass);
static void verify_class(jclass);
static jshort find_iindex(jclass *, jshort *, jshort);
static jshort indexof(void *, void **, jshort);
static int get_alignment_from_class(jclass);
static void generate_itable(jclass, _Jv_ifaces *, jshort *);
static jshort append_partial_itable(jclass, jclass, void **, jshort);
static _Jv_Method *search_method_in_superclasses (jclass cls, jclass klass,
_Jv_Utf8Const *method_name,
_Jv_Utf8Const *method_signature,
jclass *found_class,
bool check_perms = true);
static void *create_error_method(_Jv_Utf8Const *, jclass);
 
/* The least significant bit of the signature pointer in a symbol
table is set to 1 by the compiler if the reference is "special",
i.e. if it is an access to a private field or method. Extract
that bit, clearing it in the address and setting the LSB of
SPECIAL accordingly. */
static void maybe_adjust_signature (_Jv_Utf8Const *&s, uaddr &special)
{
union {
_Jv_Utf8Const *signature;
uaddr signature_bits;
};
signature = s;
special = signature_bits & 1;
signature_bits -= special;
s = signature;
}
 
static _Jv_Mutex_t resolve_mutex;
static void init (void) __attribute__((constructor));
 
public:
 
static bool has_field_p (jclass, _Jv_Utf8Const *);
static void print_class_loaded (jclass);
static void resolve_class_ref (jclass, jclass *);
static void wait_for_state(jclass, int);
static _Jv_Method *resolve_method_entry (jclass, jclass &,
int, int,
bool, bool);
static _Jv_word resolve_pool_entry (jclass, int, bool =false);
static void resolve_field (_Jv_Field *, java::lang::ClassLoader *);
static void verify_type_assertions (jclass);
static _Jv_Method *search_method_in_class (jclass, jclass,
_Jv_Utf8Const *,
_Jv_Utf8Const *,
bool check_perms = true);
static void layout_vtable_methods(jclass);
 
static jbyte read_cpool_entry (_Jv_word *data,
const _Jv_Constants *const pool,
int index)
{
_Jv_MutexLock (&resolve_mutex);
jbyte tags = pool->tags[index];
*data = pool->data[index];
_Jv_MutexUnlock (&resolve_mutex);
return tags;
}
 
static void write_cpool_entry (_Jv_word data, jbyte tags,
_Jv_Constants *pool,
int index)
{
_Jv_MutexLock (&resolve_mutex);
pool->data[index] = data;
pool->tags[index] = tags;
_Jv_MutexUnlock (&resolve_mutex);
}
};
 
/* Type of pointer used as finalizer. */
typedef void _Jv_FinalizerFunc (jobject);
 
/* Allocate space for a new Java object. */
void *_Jv_AllocObj (jsize size, jclass cl) __attribute__((__malloc__));
/* Allocate space for a potentially uninitialized pointer-free object.
Interesting only with JV_HASH_SYNCHRONIZATION. */
void *_Jv_AllocPtrFreeObj (jsize size, jclass cl) __attribute__((__malloc__));
/* Allocate space for an array of Java objects. */
void *_Jv_AllocArray (jsize size, jclass cl) __attribute__((__malloc__));
/* Allocate space that is known to be pointer-free. */
void *_Jv_AllocBytes (jsize size) __attribute__((__malloc__));
/* Allocate space for a new non-Java object, which does not have the usual
Java object header but may contain pointers to other GC'ed objects. */
void *_Jv_AllocRawObj (jsize size) __attribute__((__malloc__));
/* Allocate a double-indirect pointer to a _Jv_ClosureList such that
the _Jv_ClosureList gets automatically finalized when it is no
longer reachable, not even by other finalizable objects. */
_Jv_ClosureList **_Jv_ClosureListFinalizer (void) __attribute__((__malloc__));
/* Explicitly throw an out-of-memory exception. */
void _Jv_ThrowNoMemory() __attribute__((__noreturn__));
/* Allocate an object with a single pointer. The first word is reserved
for the GC, and the second word is the traced pointer. */
void *_Jv_AllocTraceOne (jsize size /* incl. reserved slot */);
/* Ditto, but for two traced pointers. */
void *_Jv_AllocTraceTwo (jsize size /* incl. reserved slot */);
/* Initialize the GC. */
void _Jv_InitGC (void);
/* Register a finalizer. */
void _Jv_RegisterFinalizer (void *object, _Jv_FinalizerFunc *method);
/* Compute the GC descriptor for a class */
void * _Jv_BuildGCDescr(jclass);
 
/* Allocate some unscanned, unmoveable memory. Return NULL if out of
memory. */
void *_Jv_MallocUnchecked (jsize size) __attribute__((__malloc__));
 
/* Initialize finalizers. The argument is a function to be called
when a finalizer is ready to be run. */
void _Jv_GCInitializeFinalizers (void (*notifier) (void));
/* Run finalizers for objects ready to be finalized.. */
void _Jv_RunFinalizers (void);
/* Run all finalizers. Should be called only before exit. */
void _Jv_RunAllFinalizers (void);
/* Perform a GC. */
void _Jv_RunGC (void);
/* Disable and enable GC. */
void _Jv_DisableGC (void);
void _Jv_EnableGC (void);
/* Register a disappearing link. This is a field F which should be
cleared when *F is found to be inaccessible. This is used in the
implementation of java.lang.ref.Reference. */
void _Jv_GCRegisterDisappearingLink (jobject *objp);
/* Return true if OBJECT should be reclaimed. This is used to
implement soft references. */
jboolean _Jv_GCCanReclaimSoftReference (jobject obj);
 
/* Register a finalizer for a String object. This is only used by
the intern() implementation. */
void _Jv_RegisterStringFinalizer (jobject str);
/* This is called to actually finalize a possibly-intern()d String. */
void _Jv_FinalizeString (jobject str);
 
/* Return approximation of total size of heap. */
long _Jv_GCTotalMemory (void);
/* Return approximation of total free memory. */
long _Jv_GCFreeMemory (void);
 
/* Set initial heap size. If SIZE==0, ignore. Should be run before
_Jv_InitGC. Not required to have any actual effect. */
void _Jv_GCSetInitialHeapSize (size_t size);
 
/* Set maximum heap size. If SIZE==0, unbounded. Should be run
before _Jv_InitGC. Not required to have any actual effect. */
void _Jv_GCSetMaximumHeapSize (size_t size);
 
/* External interface to setting the heap size. Parses ARG (a number
which can optionally have "k" or "m" appended and calls
_Jv_GCSetInitialHeapSize. */
void _Jv_SetInitialHeapSize (const char *arg);
 
/* External interface to setting the maximum heap size. Parses ARG (a
number which can optionally have "k" or "m" appended and calls
_Jv_GCSetMaximumHeapSize. */
void _Jv_SetMaximumHeapSize (const char *arg);
 
/* External interface for setting the GC_free_space_divisor. Calls
GC_set_free_space_divisor and returns the old value. */
int _Jv_SetGCFreeSpaceDivisor (int div);
 
/* Free the method cache, if one was allocated. This is only called
during thread deregistration. */
void _Jv_FreeMethodCache ();
 
/* Set the stack size for threads. Parses ARG, a number which can
optionally have "k" or "m" appended. */
void _Jv_SetStackSize (const char *arg);
 
extern "C" void JvRunMain (jclass klass, int argc, const char **argv);
extern "C" void JvRunMainName (const char *name, int argc, const char **argv);
 
void _Jv_RunMain (jclass klass, const char *name, int argc, const char **argv,
bool is_jar);
 
void _Jv_RunMain (struct _Jv_VMInitArgs *vm_args, jclass klass,
const char *name, int argc, const char **argv, bool is_jar);
 
// Delayed until after _Jv_AllocRawObj is declared.
inline _Jv_VTable *
_Jv_VTable::new_vtable (int count)
{
size_t size = sizeof(_Jv_VTable) + (count - 1) * vtable_elt_size ();
return (_Jv_VTable *) _Jv_AllocRawObj (size);
}
 
// Determine if METH gets an entry in a VTable.
static inline jboolean _Jv_isVirtualMethod (_Jv_Method *meth)
{
using namespace java::lang::reflect;
return (((meth->accflags & (Modifier::STATIC | Modifier::PRIVATE)) == 0)
&& meth->name->first() != '<');
}
 
// This function is used to determine the hash code of an object.
inline jint
_Jv_HashCode (jobject obj)
{
// This was chosen to yield relatively well distributed results on
// both 32- and 64-bit architectures. Note 0x7fffffff is prime.
// FIXME: we assume sizeof(long) == sizeof(void *).
return (jint) ((unsigned long) obj % 0x7fffffff);
}
 
// Return a raw pointer to the elements of an array given the array
// and its element type. You might think we could just pick a single
// array type and use elements() on it, but we can't because we must
// account for alignment of the element type. When ARRAY is null, we
// obtain the number of bytes taken by the base part of the array.
inline char *
_Jv_GetArrayElementFromElementType (jobject array,
jclass element_type)
{
char *elts;
if (element_type == JvPrimClass (byte))
elts = (char *) elements ((jbyteArray) array);
else if (element_type == JvPrimClass (short))
elts = (char *) elements ((jshortArray) array);
else if (element_type == JvPrimClass (int))
elts = (char *) elements ((jintArray) array);
else if (element_type == JvPrimClass (long))
elts = (char *) elements ((jlongArray) array);
else if (element_type == JvPrimClass (boolean))
elts = (char *) elements ((jbooleanArray) array);
else if (element_type == JvPrimClass (char))
elts = (char *) elements ((jcharArray) array);
else if (element_type == JvPrimClass (float))
elts = (char *) elements ((jfloatArray) array);
else if (element_type == JvPrimClass (double))
elts = (char *) elements ((jdoubleArray) array);
else
elts = (char *) elements ((jobjectArray) array);
return elts;
}
 
extern "C" void _Jv_ThrowBadArrayIndex (jint bad_index)
__attribute__((noreturn));
extern "C" void _Jv_ThrowNullPointerException (void)
__attribute__((noreturn));
extern "C" void _Jv_ThrowNoSuchMethodError (void)
__attribute__((noreturn));
extern "C" void _Jv_ThrowNoSuchFieldError (int)
__attribute__((noreturn));
extern "C" jobject _Jv_NewArray (jint type, jint size)
__attribute__((__malloc__));
extern "C" jobject _Jv_NewMultiArray (jclass klass, jint dims, ...)
__attribute__((__malloc__));
extern "C" void *_Jv_CheckCast (jclass klass, jobject obj);
extern "C" void *_Jv_LookupInterfaceMethod (jclass klass, Utf8Const *name,
Utf8Const *signature);
extern "C" void *_Jv_LookupInterfaceMethodIdx (jclass klass, jclass iface,
int meth_idx);
extern "C" void _Jv_CheckArrayStore (jobject array, jobject obj);
extern "C" void _Jv_RegisterClass (jclass klass);
extern "C" void _Jv_RegisterClasses (const jclass *classes);
extern "C" void _Jv_RegisterClasses_Counted (const jclass *classes,
size_t count);
extern "C" void _Jv_RegisterResource (void *vptr);
extern void _Jv_UnregisterClass (_Jv_Utf8Const*, java::lang::ClassLoader*);
 
extern "C" jobject _Jv_UnwrapJNIweakReference (jobject);
 
extern jclass _Jv_FindClass (_Jv_Utf8Const *name,
java::lang::ClassLoader *loader);
 
extern jclass _Jv_FindClassNoException (_Jv_Utf8Const *name,
java::lang::ClassLoader *loader);
 
extern jclass _Jv_FindClassFromSignature (char *,
java::lang::ClassLoader *loader,
char ** = NULL);
 
extern jclass _Jv_FindClassFromSignatureNoException (char *,
java::lang::ClassLoader *loader,
char ** = NULL);
 
extern void _Jv_GetTypesFromSignature (jmethodID method,
jclass declaringClass,
JArray<jclass> **arg_types_out,
jclass *return_type_out);
 
extern jboolean _Jv_CheckAccess (jclass self_klass, jclass other_klass,
jint flags);
 
extern jobject _Jv_CallAnyMethodA (jobject obj, jclass return_type,
jmethodID meth, jboolean is_constructor,
JArray<jclass> *parameter_types,
jobjectArray args,
jclass iface = NULL);
 
union jvalue;
extern void _Jv_CallAnyMethodA (jobject obj,
jclass return_type,
jmethodID meth,
jboolean is_constructor,
jboolean is_virtual_call,
JArray<jclass> *parameter_types,
const jvalue *args,
jvalue *result,
jboolean is_jni_call = true,
jclass iface = NULL);
 
extern void _Jv_CheckOrCreateLoadingConstraint (jclass,
java::lang::ClassLoader *);
 
extern jobject _Jv_NewMultiArray (jclass, jint ndims, jint* dims)
__attribute__((__malloc__));
 
extern "C" void _Jv_ThrowAbstractMethodError () __attribute__((__noreturn__));
 
/* Checked divide subroutines. */
extern "C"
{
jint _Jv_divI (jint, jint);
jint _Jv_remI (jint, jint);
jlong _Jv_divJ (jlong, jlong);
jlong _Jv_remJ (jlong, jlong);
}
 
/* Get the number of arguments (cf. argc) or 0 if our argument
list was never initialized. */
extern int _Jv_GetNbArgs (void);
 
/* Get the specified argument (cf. argv[index]) or "" if either
our argument list was never initialized or the specified index
is out of bounds. */
extern const char * _Jv_GetSafeArg (int index);
 
/* Sets our argument list. Can be used by programs with non-standard
entry points. */
extern void _Jv_SetArgs (int argc, const char **argv);
 
/* Get the name of the running executable. */
extern const char *_Jv_ThisExecutable (void);
 
/* Return a pointer to a symbol in executable or loaded library. */
void *_Jv_FindSymbolInExecutable (const char *);
 
/* Initialize JNI. */
extern void _Jv_JNI_Init (void);
 
/* Get or set the per-thread JNIEnv used by the invocation API. */
_Jv_JNIEnv *_Jv_GetCurrentJNIEnv ();
void _Jv_SetCurrentJNIEnv (_Jv_JNIEnv *);
 
/* Free a JNIEnv. */
void _Jv_FreeJNIEnv (_Jv_JNIEnv *);
 
extern "C" void _Jv_JNI_PopSystemFrame (_Jv_JNIEnv *);
_Jv_JNIEnv *_Jv_GetJNIEnvNewFrameWithLoader (::java::lang::ClassLoader *);
 
struct _Jv_JavaVM;
_Jv_JavaVM *_Jv_GetJavaVM ();
 
/* Get a JVMTI environment */
struct _Jv_JVMTIEnv;
_Jv_JVMTIEnv *_Jv_GetJVMTIEnv (void);
 
/* Initialize JVMTI */
extern void _Jv_JVMTI_Init (void);
 
// Some verification functions from defineclass.cc.
bool _Jv_VerifyFieldSignature (_Jv_Utf8Const*sig);
bool _Jv_VerifyMethodSignature (_Jv_Utf8Const*sig);
bool _Jv_VerifyClassName (unsigned char* ptr, _Jv_ushort length);
bool _Jv_VerifyClassName (_Jv_Utf8Const *name);
bool _Jv_VerifyIdentifier (_Jv_Utf8Const *);
bool _Jv_ClassNameSamePackage (_Jv_Utf8Const *name1, _Jv_Utf8Const *name2);
 
struct _Jv_core_chain
{
int name_length;
const char *name;
int data_length;
const void *data;
 
struct _Jv_core_chain *next;
};
 
// This is called when new core data is loaded.
extern void (*_Jv_RegisterCoreHook) (_Jv_core_chain *);
 
_Jv_core_chain *_Jv_FindCore (_Jv_core_chain *node, jstring name);
void _Jv_FreeCoreChain (_Jv_core_chain *chain);
 
#ifdef ENABLE_JVMPI
 
#include "jvmpi.h"
 
extern void (*_Jv_JVMPI_Notify_OBJECT_ALLOC) (JVMPI_Event *event);
extern void (*_Jv_JVMPI_Notify_THREAD_START) (JVMPI_Event *event);
extern void (*_Jv_JVMPI_Notify_THREAD_END) (JVMPI_Event *event);
#endif
 
/* FIXME: this should really be defined in some more generic place */
#define ROUND(V, A) (((((unsigned) (V))-1) | ((A)-1))+1)
 
extern void _Jv_RegisterBootstrapPackages ();
 
#define FLAG_BINARYCOMPAT_ABI (1<<31) /* Class is built with the BC-ABI. */
 
#define FLAG_BOOTSTRAP_LOADER (1<<30) /* Used when defining a class that
should be loaded by the bootstrap
loader. */
 
// These are used to find ABI versions we recognize.
#define GCJ_CXX_ABI_VERSION (__GNUC__ * 100000 + __GNUC_MINOR__ * 1000)
 
// This is the old-style BC version ID used by GCJ 4.0.0.
#define OLD_GCJ_40_BC_ABI_VERSION (4 * 10000 + 0 * 10 + 5)
 
// New style version IDs used by GCJ 4.0.1 and later.
#define GCJ_40_BC_ABI_VERSION (4 * 100000 + 0 * 1000)
 
void _Jv_CheckABIVersion (unsigned long value);
 
 
inline bool
_Jv_ClassForBootstrapLoader (unsigned long value)
{
return (value & FLAG_BOOTSTRAP_LOADER);
}
 
// It makes the source cleaner if we simply always define this
// function. If the interpreter is not built, it will never return
// 'true'.
extern inline jboolean
_Jv_IsInterpretedClass (jclass c)
{
return (c->accflags & java::lang::reflect::Modifier::INTERPRETED) != 0;
}
 
// Return true if the class was compiled with the BC ABI.
extern inline jboolean
_Jv_IsBinaryCompatibilityABI (jclass c)
{
// There isn't really a better test for the ABI type at this point,
// that will work once the class has been registered.
return c->otable_syms || c->atable_syms || c->itable_syms;
}
 
// Returns whether the given class does not really exists (ie. we have no
// bytecode) but still allows us to do some very conservative actions.
// E.g. throwing a NoClassDefFoundError with the name of the missing
// class.
extern inline jboolean
_Jv_IsPhantomClass (jclass c)
{
return c->state == JV_STATE_PHANTOM;
}
 
// A helper function defined in prims.cc.
char* _Jv_PrependVersionedLibdir (char* libpath);
 
 
// An enum for use with JvSetThreadState. We use a C++ enum rather
// than the Java enum to avoid problems with class initialization
// during VM bootstrap.
typedef enum
{
JV_BLOCKED,
JV_NEW,
JV_RUNNABLE,
JV_TERMINATED,
JV_TIMED_WAITING,
JV_WAITING
} JvThreadState;
 
// Temporarily set the thread's state.
class JvSetThreadState
{
private:
::java::lang::Thread *thread;
jint saved;
 
public:
 
// Note that 'cthread' could be NULL -- during VM startup there may
// not be a Thread available.
JvSetThreadState(::java::lang::Thread *cthread, JvThreadState nstate)
: thread (cthread),
saved (cthread ? cthread->state : (jint)JV_NEW)
{
if (thread)
thread->state = nstate;
}
 
~JvSetThreadState()
{
if (thread)
thread->state = saved;
}
};
 
// This structure is used to represent all the data the native side
// needs. An object of this type is assigned to the `data' member of
// the Thread class.
struct natThread
{
// A thread is either alive, dead, or being sent a signal; if it is
// being sent a signal, it is also alive. Thus, if you want to know
// if a thread is alive, it is sufficient to test alive_status !=
// THREAD_DEAD.
volatile obj_addr_t alive_flag;
 
// These are used to interrupt sleep and join calls. We can share a
// condition variable here since it only ever gets notified when the thread
// exits.
_Jv_Mutex_t join_mutex;
_Jv_ConditionVariable_t join_cond;
 
// These are used by Unsafe.park() and Unsafe.unpark().
ParkHelper park_helper;
 
// This is private data for the thread system layer.
_Jv_Thread_t *thread;
 
// Each thread has its own JNI object.
_Jv_JNIEnv *jni_env;
};
 
#endif /* __JAVA_JVM_H__ */
/gnu-dev/or1k-gcc/libjava/include/darwin-signal.h
0,0 → 1,51
/* darwin-signal.h - Catch runtime signals and turn them into exceptions,
on a Darwin system. */
 
/* Copyright (C) 2004 Free Software Foundation
 
This file is part of libgcj.
 
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
 
/* This file is really more of a specification. The rest of the system
should be arranged so that this Just Works. */
 
#ifndef JAVA_SIGNAL_H
# define JAVA_SIGNAL_H 1
 
#include <sys/types.h>
#include <stdio.h>
#include <signal.h>
 
typedef void (* SIG_PF)(int);
 
# define HANDLE_SEGV 1
# undef HANDLE_FPE
 
# define SIGNAL_HANDLER(_name) \
static void _name (int _dummy __attribute__ ((unused)))
 
# define MAKE_THROW_FRAME(_exception)
 
# define INIT_SEGV \
do { \
struct sigaction sa; \
sa.sa_handler = catch_segv; \
sigemptyset (&sa.sa_mask); \
sa.sa_flags = SA_NODEFER; \
sigaction (SIGBUS, &sa, NULL); \
sigaction (SIGSEGV, &sa, NULL); \
} while (0)
 
# define INIT_FPE \
do { \
struct sigaction sa; \
sa.sa_handler = catch_fpe; \
sigemptyset (&sa.sa_mask); \
sa.sa_flags = SA_NODEFER; \
sigaction (SIGFPE, &sa, NULL); \
} while (0)
 
#endif /* JAVA_SIGNAL_H */
/gnu-dev/or1k-gcc/libjava/include/default-signal.h
0,0 → 1,51
// default-signal.h - Catch runtime signals and turn them into exceptions.
 
/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
 
This file is part of libgcj.
 
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
 
#ifndef JAVA_SIGNAL_H
#define JAVA_SIGNAL_H 1
 
#ifdef SJLJ_EXCEPTIONS
 
#define HANDLE_SEGV 1
#define HANDLE_FPE 1
 
#include <signal.h>
 
#define SIGNAL_HANDLER(_name) \
static void _name (int _dummy __attribute__ ((__unused__)))
 
#define INIT_SEGV \
do \
{ \
signal (SIGSEGV, catch_segv); \
} \
while (0)
#define INIT_FPE \
do \
{ \
signal (SIGFPE, catch_fpe); \
} \
while (0)
 
#define MAKE_THROW_FRAME(_exception) do {} while (0)
 
#else /* SJLJ_EXCEPTIONS */
 
#undef HANDLE_SEGV
#undef HANDLE_FPE
 
#define INIT_SEGV do {} while (0)
#define INIT_FPE do {} while (0)
 
#endif /* SJLJ_EXCEPTIONS */
 
#endif /* JAVA_SIGNAL_H */
/gnu-dev/or1k-gcc/libjava/include/no-gc.h
0,0 → 1,23
// -*- c++ -*-
// no-gc.h - Defines for no garbage collector.
 
/* Copyright (C) 1998, 1999, 2006, 2007 Free Software Foundation
 
This file is part of libgcj.
 
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
 
#ifndef __JV_NO_GC__
#define __JV_NO_GC__
 
// Suspend the given thread. This includes suspending the calling thread.
extern "C" void _Jv_SuspendThread (_Jv_Thread_t *);
 
// Resume a suspended thread.
extern "C" void _Jv_ResumeThread (_Jv_Thread_t *);
 
// Is the given thread suspended?
extern "C" int _Jv_IsThreadSuspended (_Jv_Thread_t *);
#endif /* __JV_NO_GC__ */
/gnu-dev/or1k-gcc/libjava/include/execution.h
0,0 → 1,276
// execution.h - Execution engines. -*- c++ -*-
 
/* Copyright (C) 2004, 2006, 2007 Free Software Foundation
 
This file is part of libgcj.
 
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
 
#ifndef __JAVA_EXECUTION_H__
#define __JAVA_EXECUTION_H__
 
// This represents one execution engine. Note that we use function
// pointers and not virtual methods to avoid calls to
// __cxa_call_unexpected and the like.
struct _Jv_ExecutionEngine
{
public:
 
void (*unregister) (jclass);
// FIXME: probably should handle this elsewhere, see how
// interpreter does it.
bool (*need_resolve_string_fields) ();
void (*verify) (jclass);
void (*allocate_static_fields) (jclass, int, int);
void (*allocate_field_initializers) (jclass);
void (*create_ncode) (jclass);
_Jv_ResolvedMethod *(*resolve_method) (_Jv_Method *, jclass,
jboolean);
void (*post_miranda_hook) (jclass);
_Jv_ClosureList **(*get_closure_list) (jclass);
};
 
// This handles gcj-compiled code except that compiled with
// -findirect-classes.
struct _Jv_CompiledEngine : public _Jv_ExecutionEngine
{
public:
 
static void do_unregister (jclass)
{
}
 
static bool do_need_resolve_string_fields ()
{
return true;
}
 
static void do_verify (jclass klass)
{
_Jv_Linker::verify_type_assertions (klass);
}
 
static _Jv_ResolvedMethod *do_resolve_method (_Jv_Method *, jclass,
jboolean)
{
return NULL;
}
 
static void do_allocate_static_fields (jclass,
int,
int)
{
}
 
static void do_allocate_field_initializers (jclass)
{
}
 
static void do_create_ncode (jclass)
{
// Not needed.
}
 
static void do_post_miranda_hook (jclass)
{
// Not needed.
}
 
static _Jv_ClosureList **do_get_closure_list (jclass)
{
return NULL;
}
 
_Jv_CompiledEngine ()
{
unregister = do_unregister;
need_resolve_string_fields = do_need_resolve_string_fields;
verify = do_verify;
allocate_static_fields = do_allocate_static_fields;
allocate_field_initializers = do_allocate_field_initializers;
create_ncode = do_create_ncode;
resolve_method = do_resolve_method;
post_miranda_hook = do_post_miranda_hook;
get_closure_list = do_get_closure_list;
}
 
// These operators make it so we don't have to link in libstdc++.
void *operator new (size_t bytes)
{
return _Jv_Malloc(bytes);
}
 
void operator delete (void *mem)
{
_Jv_Free(mem);
}
};
 
class _Jv_IndirectCompiledClass
{
public:
void **field_initializers;
_Jv_ClosureList **closures;
};
 
// This handles gcj-compiled code compiled with -findirect-classes.
struct _Jv_IndirectCompiledEngine : public _Jv_CompiledEngine
{
_Jv_IndirectCompiledEngine () : _Jv_CompiledEngine ()
{
allocate_static_fields = do_allocate_static_fields;
allocate_field_initializers = do_allocate_field_initializers;
get_closure_list = do_get_closure_list;
}
static _Jv_IndirectCompiledClass *get_aux_info (jclass klass)
{
_Jv_IndirectCompiledClass *aux =
(_Jv_IndirectCompiledClass*)klass->aux_info;
if (!aux)
{
aux = (_Jv_IndirectCompiledClass*)
_Jv_AllocRawObj (sizeof (_Jv_IndirectCompiledClass));
klass->aux_info = aux;
}
 
return aux;
}
 
static void do_allocate_field_initializers (jclass klass)
{
_Jv_IndirectCompiledClass *aux = get_aux_info (klass);
if (!aux)
{
aux = (_Jv_IndirectCompiledClass*)
_Jv_AllocRawObj (sizeof (_Jv_IndirectCompiledClass));
klass->aux_info = aux;
}
 
aux->field_initializers = (void **)_Jv_Malloc (klass->field_count
* sizeof (void*));
 
for (int i = 0; i < klass->field_count; i++)
{
_Jv_Field *field = &klass->fields[i];
if (field->flags & java::lang::reflect::Modifier::STATIC)
{
aux->field_initializers[i] = field->u.addr;
field->u.addr = NULL;
}
}
}
 
static void do_allocate_static_fields (jclass klass,
int pointer_size,
int other_size)
{
// Splitting the allocations here lets us scan reference fields
// and avoid scanning non-reference fields.
char *reference_fields = (char *) _Jv_AllocRawObj (pointer_size);
char *non_reference_fields = (char *) _Jv_AllocBytes (other_size);
 
_Jv_IndirectCompiledClass *aux
= (_Jv_IndirectCompiledClass*)klass->aux_info;
 
for (int i = 0; i < klass->field_count; i++)
{
_Jv_Field *field = &klass->fields[i];
 
if ((field->flags & java::lang::reflect::Modifier::STATIC) == 0)
continue;
 
char *base = field->isRef() ? reference_fields : non_reference_fields;
field->u.addr = base + field->u.boffset;
 
if (aux->field_initializers[i])
{
int field_size;
if (! field->isRef ())
field_size = field->type->size ();
else
field_size = sizeof (jobject);
 
memcpy (field->u.addr, aux->field_initializers[i], field_size);
}
}
_Jv_Free (aux->field_initializers);
}
 
#ifdef INTERPRETER
static _Jv_ClosureList **do_get_closure_list (jclass klass)
{
_Jv_IndirectCompiledClass *aux = get_aux_info (klass);
 
if (!aux->closures)
aux->closures = _Jv_ClosureListFinalizer ();
 
return aux->closures;
}
#endif
};
 
#ifdef INTERPRETER
 
// This handles interpreted code.
class _Jv_InterpreterEngine : public _Jv_ExecutionEngine
{
public:
 
static void do_verify (jclass);
static void do_allocate_static_fields (jclass, int, int);
static void do_create_ncode (jclass);
static _Jv_ResolvedMethod *do_resolve_method (_Jv_Method *, jclass,
jboolean);
 
static bool do_need_resolve_string_fields ()
{
return false;
}
 
static void do_unregister(jclass klass)
{
_Jv_UnregisterClass(klass);
}
 
static void do_allocate_field_initializers (jclass)
{
}
 
static void do_post_miranda_hook (jclass);
 
static _Jv_ClosureList **do_get_closure_list (jclass klass);
 
_Jv_InterpreterEngine ()
{
unregister = do_unregister;
need_resolve_string_fields = do_need_resolve_string_fields;
verify = do_verify;
allocate_static_fields = do_allocate_static_fields;
allocate_field_initializers = do_allocate_field_initializers;
create_ncode = do_create_ncode;
resolve_method = do_resolve_method;
post_miranda_hook = do_post_miranda_hook;
get_closure_list = do_get_closure_list;
}
 
// These operators make it so we don't have to link in libstdc++.
void *operator new (size_t bytes)
{
return _Jv_Malloc(bytes);
}
 
void operator delete (void *mem)
{
_Jv_Free(mem);
}
};
 
extern _Jv_InterpreterEngine _Jv_soleInterpreterEngine;
#endif // INTERPRETER
 
extern _Jv_CompiledEngine _Jv_soleCompiledEngine;
extern _Jv_IndirectCompiledEngine _Jv_soleIndirectCompiledEngine;
#endif // __JAVA_EXECUTION_H__
/gnu-dev/or1k-gcc/libjava/include/hppa-signal.h
0,0 → 1,49
/* hppa-signal.h - Catch runtime signals and turn them into exceptions,
on a HP-UX 11 PA system. */
 
/* Copyright (C) 2006, 2009 Free Software Foundation
 
This file is part of libgcj.
 
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
 
#ifndef JAVA_SIGNAL_H
#define JAVA_SIGNAL_H 1
 
#include <signal.h>
 
#define HANDLE_SEGV 1
#define HANDLE_FPE 1
 
#define SIGNAL_HANDLER(_name) \
static void _name (int _dummy __attribute__ ((unused)), \
siginfo_t *_info __attribute__ ((__unused__)), \
void *arg __attribute__ ((__unused__)))
 
#define MAKE_THROW_FRAME(_exception)
 
#define INIT_SEGV \
do \
{ \
struct sigaction sa; \
sa.sa_sigaction = catch_segv; \
sigemptyset (&sa.sa_mask); \
sa.sa_flags = SA_SIGINFO | SA_NODEFER; \
sigaction (SIGSEGV, &sa, NULL); \
} \
while (0)
 
#define INIT_FPE \
do \
{ \
struct sigaction sa; \
sa.sa_sigaction = catch_fpe; \
sigemptyset (&sa.sa_mask); \
sa.sa_flags = SA_SIGINFO | SA_NODEFER; \
sigaction (SIGFPE, &sa, NULL); \
} \
while (0)
 
#endif /* JAVA_SIGNAL_H */
/gnu-dev/or1k-gcc/libjava/include/java-insns.h
0,0 → 1,248
// java-insns.h - Instruction encodings. This is -*- c++ -*-
 
/* Copyright (C) 1999, 2001, 2002, 2006 Free Software Foundation
 
This file is part of libgcj.
 
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
 
#ifndef __JAVA_INSNS_H__
#define __JAVA_INSNS_H__
 
enum java_opcode
{
op_nop = 0x00,
op_aconst_null = 0x01,
op_iconst_m1 = 0x02,
op_iconst_0 = 0x03,
op_iconst_1 = 0x04,
op_iconst_2 = 0x05,
op_iconst_3 = 0x06,
op_iconst_4 = 0x07,
op_iconst_5 = 0x08,
op_lconst_0 = 0x09,
op_lconst_1 = 0x0a,
op_fconst_0 = 0x0b,
op_fconst_1 = 0x0c,
op_fconst_2 = 0x0d,
op_dconst_0 = 0x0e,
op_dconst_1 = 0x0f,
op_bipush = 0x10,
op_sipush = 0x11,
op_ldc = 0x12,
op_ldc_w = 0x13,
op_ldc2_w = 0x14,
op_iload = 0x15,
op_lload = 0x16,
op_fload = 0x17,
op_dload = 0x18,
op_aload = 0x19,
op_iload_0 = 0x1a,
op_iload_1 = 0x1b,
op_iload_2 = 0x1c,
op_iload_3 = 0x1d,
op_lload_0 = 0x1e,
op_lload_1 = 0x1f,
op_lload_2 = 0x20,
op_lload_3 = 0x21,
op_fload_0 = 0x22,
op_fload_1 = 0x23,
op_fload_2 = 0x24,
op_fload_3 = 0x25,
op_dload_0 = 0x26,
op_dload_1 = 0x27,
op_dload_2 = 0x28,
op_dload_3 = 0x29,
op_aload_0 = 0x2a,
op_aload_1 = 0x2b,
op_aload_2 = 0x2c,
op_aload_3 = 0x2d,
op_iaload = 0x2e,
op_laload = 0x2f,
op_faload = 0x30,
op_daload = 0x31,
op_aaload = 0x32,
op_baload = 0x33,
op_caload = 0x34,
op_saload = 0x35,
op_istore = 0x36,
op_lstore = 0x37,
op_fstore = 0x38,
op_dstore = 0x39,
op_astore = 0x3a,
op_istore_0 = 0x3b,
op_istore_1 = 0x3c,
op_istore_2 = 0x3d,
op_istore_3 = 0x3e,
op_lstore_0 = 0x3f,
op_lstore_1 = 0x40,
op_lstore_2 = 0x41,
op_lstore_3 = 0x42,
op_fstore_0 = 0x43,
op_fstore_1 = 0x44,
op_fstore_2 = 0x45,
op_fstore_3 = 0x46,
op_dstore_0 = 0x47,
op_dstore_1 = 0x48,
op_dstore_2 = 0x49,
op_dstore_3 = 0x4a,
op_astore_0 = 0x4b,
op_astore_1 = 0x4c,
op_astore_2 = 0x4d,
op_astore_3 = 0x4e,
op_iastore = 0x4f,
op_lastore = 0x50,
op_fastore = 0x51,
op_dastore = 0x52,
op_aastore = 0x53,
op_bastore = 0x54,
op_castore = 0x55,
op_sastore = 0x56,
op_pop = 0x57,
op_pop2 = 0x58,
op_dup = 0x59,
op_dup_x1 = 0x5a,
op_dup_x2 = 0x5b,
op_dup2 = 0x5c,
op_dup2_x1 = 0x5d,
op_dup2_x2 = 0x5e,
op_swap = 0x5f,
op_iadd = 0x60,
op_ladd = 0x61,
op_fadd = 0x62,
op_dadd = 0x63,
op_isub = 0x64,
op_lsub = 0x65,
op_fsub = 0x66,
op_dsub = 0x67,
op_imul = 0x68,
op_lmul = 0x69,
op_fmul = 0x6a,
op_dmul = 0x6b,
op_idiv = 0x6c,
op_ldiv = 0x6d,
op_fdiv = 0x6e,
op_ddiv = 0x6f,
op_irem = 0x70,
op_lrem = 0x71,
op_frem = 0x72,
op_drem = 0x73,
op_ineg = 0x74,
op_lneg = 0x75,
op_fneg = 0x76,
op_dneg = 0x77,
op_ishl = 0x78,
op_lshl = 0x79,
op_ishr = 0x7a,
op_lshr = 0x7b,
op_iushr = 0x7c,
op_lushr = 0x7d,
op_iand = 0x7e,
op_land = 0x7f,
op_ior = 0x80,
op_lor = 0x81,
op_ixor = 0x82,
op_lxor = 0x83,
op_iinc = 0x84,
op_i2l = 0x85,
op_i2f = 0x86,
op_i2d = 0x87,
op_l2i = 0x88,
op_l2f = 0x89,
op_l2d = 0x8a,
op_f2i = 0x8b,
op_f2l = 0x8c,
op_f2d = 0x8d,
op_d2i = 0x8e,
op_d2l = 0x8f,
op_d2f = 0x90,
op_i2b = 0x91,
op_i2c = 0x92,
op_i2s = 0x93,
op_lcmp = 0x94,
op_fcmpl = 0x95,
op_fcmpg = 0x96,
op_dcmpl = 0x97,
op_dcmpg = 0x98,
op_ifeq = 0x99,
op_ifne = 0x9a,
op_iflt = 0x9b,
op_ifge = 0x9c,
op_ifgt = 0x9d,
op_ifle = 0x9e,
op_if_icmpeq = 0x9f,
op_if_icmpne = 0xa0,
op_if_icmplt = 0xa1,
op_if_icmpge = 0xa2,
op_if_icmpgt = 0xa3,
op_if_icmple = 0xa4,
op_if_acmpeq = 0xa5,
op_if_acmpne = 0xa6,
op_goto = 0xa7,
op_jsr = 0xa8,
op_ret = 0xa9,
op_tableswitch = 0xaa,
op_lookupswitch = 0xab,
op_ireturn = 0xac,
op_lreturn = 0xad,
op_freturn = 0xae,
op_dreturn = 0xaf,
op_areturn = 0xb0,
op_return = 0xb1,
op_getstatic = 0xb2,
op_putstatic = 0xb3,
op_getfield = 0xb4,
op_putfield = 0xb5,
op_invokevirtual = 0xb6,
op_invokespecial = 0xb7,
op_invokestatic = 0xb8,
op_invokeinterface = 0xb9,
op_breakpoint = 0xba,
op_new = 0xbb,
op_newarray = 0xbc,
op_anewarray = 0xbd,
op_arraylength = 0xbe,
op_athrow = 0xbf,
op_checkcast = 0xc0,
op_instanceof = 0xc1,
op_monitorenter = 0xc2,
op_monitorexit = 0xc3,
op_wide = 0xc4,
op_multianewarray = 0xc5,
op_ifnull = 0xc6,
op_ifnonnull = 0xc7,
op_goto_w = 0xc8,
op_jsr_w = 0xc9,
 
// new opcodes
 
op_putfield_1 = 0xca,
op_putfield_2 = 0xcb,
op_putfield_4 = 0xcc,
op_putfield_8 = 0xcd,
op_putfield_a = 0xce,
 
op_putstatic_1 = 0xcf,
op_putstatic_2 = 0xd0,
op_putstatic_4 = 0xd1,
op_putstatic_8 = 0xd2,
op_putstatic_a = 0xd3,
 
op_getfield_1 = 0xd4,
op_getfield_2s = 0xd5,
op_getfield_2u = 0xd6,
op_getfield_4 = 0xd7,
op_getfield_8 = 0xd8,
op_getfield_a = 0xd9,
 
op_getstatic_1 = 0xda,
op_getstatic_2s = 0xdb,
op_getstatic_2u = 0xdc,
op_getstatic_4 = 0xdd,
op_getstatic_8 = 0xde,
op_getstatic_a = 0xdf
};
 
#endif /* __JAVA_INSNS_H__ */
/gnu-dev/or1k-gcc/libjava/include/x86_64-signal.h
0,0 → 1,181
// x86_64-signal.h - Catch runtime signals and turn them into exceptions
// on an x86_64 based GNU/Linux system.
 
/* Copyright (C) 2003, 2006, 2007 Free Software Foundation
 
This file is part of libgcj.
 
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
 
 
#ifdef __x86_64__
 
#ifndef JAVA_SIGNAL_H
#define JAVA_SIGNAL_H 1
 
#include <signal.h>
#include <sys/syscall.h>
 
#define HANDLE_SEGV 1
#define HANDLE_FPE 1
 
#define SIGNAL_HANDLER(_name) \
static void _Jv_##_name (int, siginfo_t *, \
void *_p __attribute__ ((__unused__)))
 
#define HANDLE_DIVIDE_OVERFLOW \
do \
{ \
struct ucontext *_uc = (struct ucontext *)_p; \
gregset_t &_gregs = _uc->uc_mcontext.gregs; \
unsigned char *_rip = (unsigned char *)_gregs[REG_RIP]; \
\
/* According to the JVM spec, "if the dividend is the negative \
* integer of largest possible magnitude for the type and the \
* divisor is -1, then overflow occurs and the result is equal to \
* the dividend. Despite the overflow, no exception occurs". \
\
* We handle this by inspecting the instruction which generated the \
* signal and advancing ip to point to the following instruction. \
* As the instructions are variable length it is necessary to do a \
* little calculation to figure out where the following instruction \
* actually is. \
\
*/ \
\
bool _is_64_bit = false; \
\
if ((_rip[0] & 0xf0) == 0x40) /* REX byte present. */ \
{ \
unsigned char _rex = _rip[0] & 0x0f; \
_is_64_bit = (_rex & 0x08) != 0; \
_rip++; \
} \
\
/* Detect a signed division of Integer.MIN_VALUE or Long.MIN_VALUE. */ \
if (_rip[0] == 0xf7) \
{ \
bool _min_value_dividend = false; \
unsigned char _modrm = _rip[1]; \
\
if (((_modrm >> 3) & 7) == 7) \
{ \
if (_is_64_bit) \
_min_value_dividend = \
_gregs[REG_RAX] == (greg_t)0x8000000000000000UL; \
else \
_min_value_dividend = \
(_gregs[REG_RAX] & 0xffffffff) == (greg_t)0x80000000UL; \
} \
\
if (_min_value_dividend) \
{ \
unsigned char _rm = _modrm & 7; \
_gregs[REG_RDX] = 0; /* the remainder is zero */ \
switch (_modrm >> 6) \
{ \
case 0: /* register indirect */ \
if (_rm == 5) /* 32-bit displacement */ \
_rip += 4; \
if (_rm == 4) /* A SIB byte follows the ModR/M byte */ \
_rip += 1; \
break; \
case 1: /* register indirect + 8-bit displacement */ \
_rip += 1; \
if (_rm == 4) /* A SIB byte follows the ModR/M byte */ \
_rip += 1; \
break; \
case 2: /* register indirect + 32-bit displacement */ \
_rip += 4; \
if (_rm == 4) /* A SIB byte follows the ModR/M byte */ \
_rip += 1; \
break; \
case 3: \
break; \
} \
_rip += 2; \
_gregs[REG_RIP] = (greg_t)_rip; \
return; \
} \
} \
} \
while (0)
 
extern "C"
{
struct kernel_sigaction
{
void (*k_sa_sigaction)(int,siginfo_t *,void *);
unsigned long k_sa_flags;
void (*k_sa_restorer) (void);
sigset_t k_sa_mask;
};
}
 
#define MAKE_THROW_FRAME(_exception)
 
#define RESTORE(name, syscall) RESTORE2 (name, syscall)
#define RESTORE2(name, syscall) \
asm \
( \
".text\n" \
".byte 0 # Yes, this really is necessary\n" \
".align 16\n" \
"__" #name ":\n" \
" movq $" #syscall ", %rax\n" \
" syscall\n" \
);
 
/* The return code for realtime-signals. */
RESTORE (restore_rt, __NR_rt_sigreturn)
void restore_rt (void) asm ("__restore_rt")
__attribute__ ((visibility ("hidden")));
 
#define INIT_SEGV \
do \
{ \
struct kernel_sigaction act; \
act.k_sa_sigaction = _Jv_catch_segv; \
sigemptyset (&act.k_sa_mask); \
act.k_sa_flags = SA_SIGINFO|0x4000000; \
act.k_sa_restorer = restore_rt; \
syscall (SYS_rt_sigaction, SIGSEGV, &act, NULL, _NSIG / 8); \
} \
while (0)
 
#define INIT_FPE \
do \
{ \
struct kernel_sigaction act; \
act.k_sa_sigaction = _Jv_catch_fpe; \
sigemptyset (&act.k_sa_mask); \
act.k_sa_flags = SA_SIGINFO|0x4000000; \
act.k_sa_restorer = restore_rt; \
syscall (SYS_rt_sigaction, SIGFPE, &act, NULL, _NSIG / 8); \
} \
while (0)
 
/* You might wonder why we use syscall(SYS_sigaction) in INIT_FPE
* instead of the standard sigaction(). This is necessary because of
* the shenanigans above where we increment the PC saved in the
* context and then return. This trick will only work when we are
* called _directly_ by the kernel, because linuxthreads wraps signal
* handlers and its wrappers do not copy the sigcontext struct back
* when returning from a signal handler. If we return from our divide
* handler to a linuxthreads wrapper, we will lose the PC adjustment
* we made and return to the faulting instruction again. Using
* syscall(SYS_sigaction) causes our handler to be called directly
* by the kernel, bypassing any wrappers. */
 
#endif /* JAVA_SIGNAL_H */
 
#else /* __x86_64__ */
 
/* This is for the 32-bit subsystem on x86-64. */
 
#define sigcontext_struct sigcontext
#include <java-signal-aux.h>
 
#endif /* __x86_64__ */
/gnu-dev/or1k-gcc/libjava/include/config.h.in
0,0 → 1,479
/* include/config.h.in. Generated from configure.ac by autoheader. */
 
/* Define if building universal (internal helper macro) */
#undef AC_APPLE_UNIVERSAL_BUILD
 
/* Name of default AWT toolkit */
#undef AWT_TOOLKIT
 
/* Define if system properties shouldn't be read from
getenv("GCJ_PROPERTIES"). */
#undef DISABLE_GETENV_PROPERTIES
 
/* Define if java.net native functions should be stubbed out. */
#undef DISABLE_JAVA_NET
 
/* Define if we should ignore arguments to main(). */
#undef DISABLE_MAIN_ARGS
 
/* Define if you're running eCos. */
#undef ECOS
 
/* Define if you are using JVMPI. */
#undef ENABLE_JVMPI
 
/* Short GCJ version ID */
#undef GCJVERSION
 
/* Define if gethostbyaddr_r returns 'int'. */
#undef GETHOSTBYADDR_R_RETURNS_INT
 
/* Define if gethostbyname_r returns 'int'. */
#undef GETHOSTBYNAME_R_RETURNS_INT
 
/* Define to 1 if you have the `access' function. */
#undef HAVE_ACCESS
 
/* Define to 1 if you have the <arpa/inet.h> header file. */
#undef HAVE_ARPA_INET_H
 
/* Define if Boehm GC in use. */
#undef HAVE_BOEHM_GC
 
/* Define if you have u_int32_t */
#undef HAVE_BSD_INT32_DEFINED
 
/* Define to 1 if you have the <bstring.h> header file. */
#undef HAVE_BSTRING_H
 
/* Define to 1 if the target assembler supports thread-local storage. */
#undef HAVE_CC_TLS
 
/* Define to 1 if you have the `chmod' function. */
#undef HAVE_CHMOD
 
/* Define if you have clock_gettime() */
#undef HAVE_CLOCK_GETTIME
 
/* Define to 1 if you have the declaration of `tzname', and to 0 if you don't.
*/
#undef HAVE_DECL_TZNAME
 
/* Define to 1 if you have the <dirent.h> header file. */
#undef HAVE_DIRENT_H
 
/* Define if you have dladdr() */
#undef HAVE_DLADDR
 
/* Define to 1 if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H
 
/* Define if dlopen is available */
#undef HAVE_DLOPEN
 
/* Define to 1 if you have the <fcntl.h> header file. */
#undef HAVE_FCNTL_H
 
/* Define to 1 if you have the `fstat' function. */
#undef HAVE_FSTAT
 
/* Define to 1 if you have the `fsync' function. */
#undef HAVE_FSYNC
 
/* Define to 1 if you have the `ftime' function. */
#undef HAVE_FTIME
 
/* Define to 1 if you have the `ftruncate' function. */
#undef HAVE_FTRUNCATE
 
/* Define to 1 if you have the `getcwd' function. */
#undef HAVE_GETCWD
 
/* Define if you have the 'gethostbyaddr_r' function. */
#undef HAVE_GETHOSTBYADDR_R
 
/* Define if you have the 'gethostbyname_r' function. */
#undef HAVE_GETHOSTBYNAME_R
 
/* Define if you have the 'gethostname' function. */
#undef HAVE_GETHOSTNAME
 
/* Define if gethostname is declared in <unistd.h>. */
#undef HAVE_GETHOSTNAME_DECL
 
/* Define to 1 if you have the `getifaddrs' function. */
#undef HAVE_GETIFADDRS
 
/* Define if _Unwind_GetIPInfo is available. */
#undef HAVE_GETIPINFO
 
/* Define to 1 if you have the `getpwuid_r' function. */
#undef HAVE_GETPWUID_R
 
/* Define to 1 if you have the `getrlimit' function. */
#undef HAVE_GETRLIMIT
 
/* Define to 1 if you have the `gettimeofday' function. */
#undef HAVE_GETTIMEOFDAY
 
/* Define if you have the 'gmtime_r' function */
#undef HAVE_GMTIME_R
 
/* Define if you have the iconv() function. */
#undef HAVE_ICONV
 
/* Define to 1 if you have the <ifaddrs.h> header file. */
#undef HAVE_IFADDRS_H
 
/* Define if inet6 structures are defined in netinet/in.h. */
#undef HAVE_INET6
 
/* Define to 1 if you have the `inet_addr' function. */
#undef HAVE_INET_ADDR
 
/* Define to 1 if you have the `inet_aton' function. */
#undef HAVE_INET_ATON
 
/* Define to 1 if you have the `inet_ntoa' function. */
#undef HAVE_INET_NTOA
 
/* Define to 1 if you have the `inet_pton' function. */
#undef HAVE_INET_PTON
 
/* Define if you have int32_t and uint32_t. */
#undef HAVE_INT32_DEFINED
 
/* Define if <inttypes.h> is available */
#undef HAVE_INTTYPES_H
 
/* Define to 1 if 'in_addr_t' is defined in sys/types.h or netinet/in.h. */
#undef HAVE_IN_ADDR_T
 
/* Define to 1 if you have the <langinfo.h> header file. */
#undef HAVE_LANGINFO_H
 
/* Define if your <locale.h> file defines LC_MESSAGES. */
#undef HAVE_LC_MESSAGES
 
/* Define to 1 if you have the <locale.h> header file. */
#undef HAVE_LOCALE_H
 
/* Define is you have 'localtime' in <time.h> */
#undef HAVE_LOCALTIME
 
/* Define to 1 if you have the `localtime_r' function. */
#undef HAVE_LOCALTIME_R
 
/* Define to 1 if you have the `lstat' function. */
#undef HAVE_LSTAT
 
/* Define to 1 if you have the <magic.h> header file. */
#undef HAVE_MAGIC_H
 
/* Define if magic.h declares magic_t */
#undef HAVE_MAGIC_T
 
/* Define to 1 if you have the `memcpy' function. */
#undef HAVE_MEMCPY
 
/* Define to 1 if you have the `memmove' function. */
#undef HAVE_MEMMOVE
 
/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H
 
/* Define to 1 if you have the `mkdir' function. */
#undef HAVE_MKDIR
 
/* Define to 1 if you have the `mmap' function. */
#undef HAVE_MMAP
 
/* Define to 1 if you have the <netdb.h> header file. */
#undef HAVE_NETDB_H
 
/* Define to 1 if you have the <netinet/in.h> header file. */
#undef HAVE_NETINET_IN_H
 
/* Define to 1 if you have the <net/if.h> header file. */
#undef HAVE_NET_IF_H
 
/* Define to 1 if you have the `nl_langinfo' function. */
#undef HAVE_NL_LANGINFO
 
/* Define to 1 if you have the `open' function. */
#undef HAVE_OPEN
 
/* Define to 1 if you have the `opendir' function. */
#undef HAVE_OPENDIR
 
/* Define if you have /proc/self/exe */
#undef HAVE_PROC_SELF_EXE
 
/* Define if you have /proc/self/maps */
#undef HAVE_PROC_SELF_MAPS
 
/* Define if using POSIX threads that have the mutexattr functions. */
#undef HAVE_PTHREAD_MUTEXATTR_INIT
 
/* Define to 1 if you have the <pwd.h> header file. */
#undef HAVE_PWD_H
 
/* Define to 1 if you have the `readlink' function. */
#undef HAVE_READLINK
 
/* Define to 1 if you have the `rename' function. */
#undef HAVE_RENAME
 
/* Define to 1 if you have the `rmdir' function. */
#undef HAVE_RMDIR
 
/* Define to 1 if you have the `sched_yield' function. */
#undef HAVE_SCHED_YIELD
 
/* Define to 1 if you have the `select' function. */
#undef HAVE_SELECT
 
/* Define to 1 if you have the `setlocale' function. */
#undef HAVE_SETLOCALE
 
/* Define to 1 if you have the `sigaction' function. */
#undef HAVE_SIGACTION
 
/* Define to 1 if you have the `sleep' function. */
#undef HAVE_SLEEP
 
/* Define it socklen_t typedef is in sys/socket.h. */
#undef HAVE_SOCKLEN_T
 
/* Define to 1 if you have the `stat' function. */
#undef HAVE_STAT
 
/* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H
 
/* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H
 
/* Define to 1 if you have the `strerror_r' function. */
#undef HAVE_STRERROR_R
 
/* Define to 1 if you have the <strings.h> header file. */
#undef HAVE_STRINGS_H
 
/* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H
 
/* Define if struct hostent_data is defined in netdb.h */
#undef HAVE_STRUCT_HOSTENT_DATA
 
/* Define if struct ipv6_mreq is defined in netinet/in.h. */
#undef HAVE_STRUCT_IPV6_MREQ
 
/* Define if struct ip_mreq is defined in netinet/in.h. */
#undef HAVE_STRUCT_IP_MREQ
 
/* Define to 1 if `struct tm' is a member of `tm_zone'. */
#undef HAVE_STRUCT_TM_TM_ZONE
 
/* Define to 1 if you have the <sys/config.h> header file. */
#undef HAVE_SYS_CONFIG_H
 
/* Define to 1 if you have the <sys/filio.h> header file. */
#undef HAVE_SYS_FILIO_H
 
/* Define to 1 if you have the <sys/ioctl.h> header file. */
#undef HAVE_SYS_IOCTL_H
 
/* Define to 1 if you have the <sys/resource.h> header file. */
#undef HAVE_SYS_RESOURCE_H
 
/* Define to 1 if you have the <sys/rw_lock.h> header file. */
#undef HAVE_SYS_RW_LOCK_H
 
/* Define to 1 if you have the <sys/select.h> header file. */
#undef HAVE_SYS_SELECT_H
 
/* Define to 1 if you have the <sys/socket.h> header file. */
#undef HAVE_SYS_SOCKET_H
 
/* Define to 1 if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H
 
/* Define to 1 if you have the <sys/time.h> header file. */
#undef HAVE_SYS_TIME_H
 
/* Define to 1 if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H
 
/* Define to 1 if you have the `time' function. */
#undef HAVE_TIME
 
/* Define if global 'timezone' exists. */
#undef HAVE_TIMEZONE
 
/* Define to 1 if the target supports thread-local storage. */
#undef HAVE_TLS
 
/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use
`HAVE_STRUCT_TM_TM_ZONE' instead. */
#undef HAVE_TM_ZONE
 
/* Define to 1 if you don't have `tm_zone' but do have the external array
`tzname'. */
#undef HAVE_TZNAME
 
/* Define to 1 if you have the `uname' function. */
#undef HAVE_UNAME
 
/* Define if your platform has the global _timezone variable. */
#undef HAVE_UNDERSCORE_TIMEZONE
 
/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
 
/* Define to 1 if you have the `unlink' function. */
#undef HAVE_UNLINK
 
/* Define to 1 if you have the `usleep' function. */
#undef HAVE_USLEEP
 
/* Define if usleep is declared in <unistd.h>. */
#undef HAVE_USLEEP_DECL
 
/* Define to 1 if you have the `utime' function. */
#undef HAVE_UTIME
 
/* Define to 1 if you have the file `/proc/self/exe'. */
#undef HAVE__PROC_SELF_EXE
 
/* Define to 1 if you have the file `/proc/self/maps'. */
#undef HAVE__PROC_SELF_MAPS
 
/* Define as const if the declaration of iconv() needs const. */
#undef ICONV_CONST
 
/* Define if you want a bytecode interpreter. */
#undef INTERPRETER
 
/* API compatibility version string */
#undef JV_API_VERSION
 
/* Define if hash synchronization is in use */
#undef JV_HASH_SYNCHRONIZATION
 
/* Define if <inttypes.h> is available */
#undef JV_HAVE_INTTYPES_H
 
/* Indicate that linker is not able to 8-byte align static data */
#undef JV_LINKER_CANNOT_8BYTE_ALIGN_STATICS
 
/* Compatibility version string */
#undef JV_VERSION
 
/* Define if we want to use debug calls into the garbage collector. */
#undef LIBGCJ_GC_DEBUG
 
/* Installation prefix */
#undef LIBGCJ_PREFIX
 
/* Define if using POSIX threads on Linux. */
#undef LINUX_THREADS
 
/* Define to the name of the environment variable that determines the dynamic
library search path. */
#undef LTDL_SHLIBPATH_VAR
 
/* Define to the sub-directory in which libtool stores uninstalled libraries.
*/
#undef LT_OBJDIR
 
/* Define if MinGW libgcj uses the Windows UNICODE OS API. */
#undef MINGW_LIBGCJ_UNICODE
 
/* Define if getuid() and friends are missing. */
#undef NO_GETUID
 
/* Define to 1 if your C compiler doesn't accept -c and -o together. */
#undef NO_MINUS_C_MINUS_O
 
/* Name of package */
#undef PACKAGE
 
/* Define to the address where bug reports for this package should be sent. */
#undef PACKAGE_BUGREPORT
 
/* Define to the full name of this package. */
#undef PACKAGE_NAME
 
/* Define to the full name and version of this package. */
#undef PACKAGE_STRING
 
/* Define to the one symbol short name of this package. */
#undef PACKAGE_TARNAME
 
/* Define to the home page for this package. */
#undef PACKAGE_URL
 
/* Define to the version of this package. */
#undef PACKAGE_VERSION
 
/* Define if pthread_mutex_t has m_count member. */
#undef PTHREAD_MUTEX_HAVE_M_COUNT
 
/* Define if pthread_mutex_t has __m_count member. */
#undef PTHREAD_MUTEX_HAVE___M_COUNT
 
/* The size of `void *', as computed by sizeof. */
#undef SIZEOF_VOID_P
 
/* Define if the compiler is configured for setjmp/longjmp exceptions. */
#undef SJLJ_EXCEPTIONS
 
/* Define if if the synchronization code should try to avoid pthread_self
calls by caching thread IDs in a hashtable. */
#undef SLOW_PTHREAD_SELF
 
/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS
 
/* Define if struct tm has tm_gmtoff field. */
#undef STRUCT_TM_HAS_GMTOFF
 
/* Define to 1 if your <sys/time.h> declares `struct tm'. */
#undef TM_IN_SYS_TIME
 
/* Define if we're to use libffi. */
#undef USE_LIBFFI
 
/* Define if libltdl is in use. */
#undef USE_LTDL
 
/* Version number of package */
#undef VERSION
 
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
significant byte first (like Motorola and SPARC, unlike Intel). */
#if defined AC_APPLE_UNIVERSAL_BUILD
# if defined __BIG_ENDIAN__
# define WORDS_BIGENDIAN 1
# endif
#else
# ifndef WORDS_BIGENDIAN
# undef WORDS_BIGENDIAN
# endif
#endif
 
/* Define to 1 if the X Window System is missing or not being used. */
#undef X_DISPLAY_MISSING
 
/* Required define if using POSIX threads */
#undef _POSIX_PTHREAD_SEMANTICS
 
/* Required define if using POSIX threads */
#undef _REENTRANT
 
/* Define this if you want runtime debugging enabled. */
#undef __GCJ_DEBUG
 
/* Define to `int' if <sys/types.h> does not define. */
#undef ssize_t
/gnu-dev/or1k-gcc/libjava/include/posix-signal.h
0,0 → 1,60
// posix-signal.h - Catch runtime signals and turn them into exceptions.
 
/* Copyright (C) 1998, 1999, 2000, 2009, 2011 Free Software Foundation
 
This file is part of libgcj.
 
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
 
#ifndef JAVA_SIGNAL_H
#define JAVA_SIGNAL_H 1
 
#include <signal.h>
 
#define HANDLE_SEGV 1
#define HANDLE_FPE 1
 
/* Different implementations of MD_FALLBACK_FRAME_STATE_FOR either require
SA_SIGINFO being set or fail if so. Cf. gcc/ada/init.c
(__gnat_install_handler) for details. */
 
#if (defined __alpha__ && defined __osf__) \
|| (defined __sun__ && defined __svr4__)
#define SA_FLAGS SA_NODEFER | SA_SIGINFO
#elif defined __sgi__
#define SA_FLAGS SA_NODEFER
#else
#error Must define SA_FLAGS.
#endif
 
#if SA_FLAGS & SA_SIGINFO
#define SIGNAL_HANDLER(_name) \
static void _Jv_##_name (int, \
siginfo_t *_si __attribute__ ((__unused__)), \
void *_uc __attribute__ ((__unused__)))
#define sa_signal_handler sa_sigaction
#else
#define SIGNAL_HANDLER(_name) \
static void _Jv_##_name (int)
#define sa_signal_handler sa_handler
#endif
 
#define MAKE_THROW_FRAME(_exception)
 
#define _INIT_SIG_HANDLER(_SIG, _ACTION) \
do \
{ \
struct sigaction act; \
act.sa_signal_handler = _Jv_##_ACTION; \
act.sa_flags = SA_FLAGS; \
sigemptyset (&act.sa_mask); \
sigaction(_SIG, &act, NULL); \
} \
while (0)
 
#define INIT_SEGV _INIT_SIG_HANDLER (SIGSEGV, catch_segv)
#define INIT_FPE _INIT_SIG_HANDLER (SIGFPE, catch_fpe)
 
#endif /* JAVA_SIGNAL_H */
/gnu-dev/or1k-gcc/libjava/include/win32-signal.h
0,0 → 1,40
// win32-signal.h - Catch runtime signals and turn them into exceptions.
 
/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
 
This file is part of libgcj.
 
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
 
// Exception handling is done totally differently on Win32 this stuff
// just keeps it compatible
 
#ifndef JAVA_SIGNAL_H
#define JAVA_SIGNAL_H 1
 
#define HANDLE_SEGV 1
#define HANDLE_FPE 1
 
#define SIGNAL_HANDLER(_name) \
static void _name (int _dummy)
 
#define MAKE_THROW_FRAME(_exception) do {} while (0)
#define HANDLE_DIVIDE_OVERFLOW do {} while (0)
 
#define INIT_SEGV \
do \
{ \
} \
while (0)
 
 
#define INIT_FPE \
do \
{ \
} \
while (0)
 
 
#endif /* JAVA_SIGNAL_H */
/gnu-dev/or1k-gcc/libjava/include/java-assert.h
0,0 → 1,38
// java-assert.h - Header file holding assertion definitions. -*- c++ -*-
 
/* Copyright (C) 1998, 1999, 2010 Free Software Foundation
 
This file is part of libgcj.
 
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
 
#ifndef __JAVA_ASSERT_H__
#define __JAVA_ASSERT_H__
 
// This is a libgcj implementation header.
 
void _Jv_Abort (const char *, const char *, int, const char *)
__attribute__ ((__noreturn__));
 
#ifdef __GCJ_DEBUG
#define _Jv_AssertDoCall(Message) _Jv_Abort (__FUNCTION__, __FILE__, __LINE__, Message)
 
#define JvAssertMessage(Expr, Message) \
do { if (! (Expr)) _Jv_AssertDoCall (Message); } while (0)
#define JvAssert(Expr) \
do { if (! (Expr)) _Jv_AssertDoCall (# Expr); } while (0)
 
#define JvFail(Message) _Jv_AssertDoCall (Message)
 
#else /* __GCJ_DEBUG */
 
#define _Jv_AssertDoCall(Message)
#define JvAssertMessage(Expr, Message) (void) sizeof (Expr)
#define JvAssert(Expr) (void) sizeof (Expr)
#define JvFail(Message) _Jv_Abort (0, 0, 0, Message)
 
#endif /* not __GCJ_DEBUG */
 
#endif /* __JAVA_ASSERT_H__ */
/gnu-dev/or1k-gcc/libjava/include/boehm-gc.h
0,0 → 1,98
// -*- c++ -*-
// boehm-gc.h - Defines for Boehm collector.
 
/* Copyright (C) 1998, 1999, 2002, 2004, 2006, 2007 Free Software Foundation
 
This file is part of libgcj.
 
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
 
#ifndef __JV_BOEHM_GC__
#define __JV_BOEHM_GC__
 
#define JV_MARKOBJ_DECL void *::_Jv_MarkObj (void *, void *, void *, void *)
#define JV_MARKARRAY_DECL void *::_Jv_MarkArray (void *, void *, void *, void *)
 
extern "C"
{
void *_Jv_MarkObj (void *, void *, void *, void *);
void *_Jv_MarkArray (void *, void *, void *, void *);
void _Jv_RegisterLibForGc (const void *);
}
 
// Enough stuff to inline _Jv_AllocObj. Ugly.
#include <gcj/javaprims.h>
#include <java/lang/Class.h>
#include <string.h>
 
#include <gc_ext_config.h> // for THREAD_LOCAL_ALLOC
 
extern "C" void * GC_gcj_malloc(size_t, void *);
extern "C" void * GC_malloc_atomic(size_t);
#ifdef THREAD_LOCAL_ALLOC
extern "C" void * GC_local_gcj_malloc(size_t, void *);
extern "C" void * GC_local_malloc_atomic(size_t);
#endif
 
#ifndef LIBGCJ_GC_DEBUG
 
inline void *
_Jv_AllocObj (jsize size, jclass klass)
{
// This should call GC_GCJ_MALLOC, but that would involve
// including gc.h.
#ifdef THREAD_LOCAL_ALLOC
return GC_local_gcj_malloc (size, klass->vtable);
#else
return GC_gcj_malloc (size, klass->vtable);
#endif
}
 
inline void *
_Jv_AllocPtrFreeObj (jsize size, jclass klass)
{
#ifdef JV_HASH_SYNCHRONIZATION
# ifdef THREAD_LOCAL_ALLOC
void * obj = GC_local_malloc_atomic(size);
# else
void * obj = GC_malloc_atomic(size);
# endif
*((_Jv_VTable **) obj) = klass->vtable;
#else
# ifdef THREAD_LOCAL_ALLOC
void * obj = GC_local_gcj_malloc(size, klass->vtable);
# else
void * obj = GC_gcj_malloc(size, klass->vtable);
# endif
#endif
return obj;
}
 
#else /* LIBGCJ_GC_DEBUG */
 
void *
_Jv_AllocObj (jsize size, jclass klass);
 
void *
_Jv_AllocPtrFreeObj (jsize size, jclass klass);
 
#endif /* LIBGCJ_GC_DEBUG */
 
void _Jv_GCAttachThread ();
 
void _Jv_GCDetachThread ();
 
// _Jv_AllocBytes (jsize size) should go here, too. But clients don't
// usually include this header.
 
// Suspend the given thread. This includes suspending the calling thread.
extern "C" void _Jv_SuspendThread (_Jv_Thread_t *);
 
// Resume a suspended thread.
extern "C" void _Jv_ResumeThread (_Jv_Thread_t *);
 
// Is the given thread suspended?
extern "C" int _Jv_IsThreadSuspended (_Jv_Thread_t *);
#endif /* __JV_BOEHM_GC__ */
/gnu-dev/or1k-gcc/libjava/include/java-props.h
0,0 → 1,33
// java-props.h - Properties -*- c++ -*-
 
/* Copyright (C) 1999 Free Software Foundation
 
This file is part of libgcj.
 
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
 
#ifndef __JAVA_PROPS_H__
#define __JAVA_PROPS_H__
 
typedef struct
{
char *key;
size_t key_length;
char *value;
size_t value_length;
} property_pair;
 
// Set to NULL-terminated list of properties set at compile time.
extern const char **_Jv_Compiler_Properties;
extern int _Jv_Properties_Count;
 
// Properties taken from the user's environment.
extern property_pair *_Jv_Environment_Properties;
 
// Module load path.
extern char *_Jv_Module_Load_Path;
 
#endif
 
/gnu-dev/or1k-gcc/libjava/include/Makefile.am
0,0 → 1,15
## Process this file with automake to produce Makefile.in.
 
AUTOMAKE_OPTIONS = foreign
 
# May be used by various substitution variables.
gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER)
 
# autoconf2.13's target_alias
target_noncanonical = @target_noncanonical@
 
tool_include_dir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)/include
## The 'jni.h' here is fairly hacky, but it is simpler than trying to
## tell Classpath about our peculiar install directory.
tool_include__HEADERS = jni_md.h ../classpath/include/jawt.h \
../classpath/include/jawt_md.h jvmpi.h ../classpath/include/jni.h
/gnu-dev/or1k-gcc/libjava/include/java-stack.h
0,0 → 1,177
// java-stack.h - Definitions for unwinding & inspecting the call stack.
 
/* Copyright (C) 2005, 2006 Free Software Foundation
 
This file is part of libgcj.
 
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
 
#ifndef __JV_STACKTRACE_H__
#define __JV_STACKTRACE_H__
 
#include <stdlib.h>
#include <unwind.h>
 
#include <gcj/cni.h>
#include <gcj/javaprims.h>
 
#include <java-interp.h>
 
#include <java/lang/Class.h>
#include <java/lang/StackTraceElement.h>
#include <java/lang/Throwable.h>
#include <java/lang/Thread.h>
#include <java/util/IdentityHashMap.h>
 
#include <gnu/gcj/runtime/NameFinder.h>
 
using namespace gnu::gcj::runtime;
using namespace java::lang;
 
extern "Java"
{
namespace gnu
{
namespace classpath
{
class VMStackWalker;
}
}
}
 
#ifdef INTERPRETER
struct _Jv_InterpFrameInfo
{
_Jv_InterpMethod *meth;
pc_t pc;
};
#endif
 
struct _Jv_StackFrame
{
_Jv_FrameType type; /* Native or interpreted. */
union {
#ifdef INTERPRETER
_Jv_InterpFrameInfo interp;
#endif
struct {
jclass proxyClass;
_Jv_Method *proxyMethod;
};
struct {
void *ip;
void *start_ip;
};
};
jclass klass;
_Jv_Method *meth;
};
 
struct _Jv_UnwindState;
typedef _Unwind_Reason_Code (*_Jv_TraceFn) (_Jv_UnwindState *);
 
struct _Jv_UnwindState
{
jint length; // length of FRAMES
jint pos; // current position in FRAMES
_Jv_StackFrame *frames; // array of stack frame data to be filled.
#ifdef INTERPRETER
_Jv_InterpFrame *interp_frame; // current frame in the interpreter stack.
#endif
_Jv_TraceFn trace_function; // function to call back after each frame
// is enumerated. May be NULL.
void *trace_data; // additional state data for trace_function.
_Jv_UnwindState (jint ln)
{
length = ln;
pos = 0;
frames = NULL;
#ifdef INTERPRETER
Thread *thread = Thread::currentThread();
// Check for NULL currentThread(), in case an exception is created
// very early during the runtime startup.
if (thread)
interp_frame = (_Jv_InterpFrame *) thread->interp_frame;
else
interp_frame = NULL;
#endif
trace_function = NULL;
trace_data = NULL;
}
};
 
class _Jv_StackTrace
{
private:
int length;
_Jv_StackFrame frames[];
 
static java::util::IdentityHashMap *ncodeMap;
static void UpdateNCodeMap ();
static jclass ClassForFrame (_Jv_StackFrame *frame);
static void FillInFrameInfo (_Jv_StackFrame *frame);
static void getLineNumberForFrame(_Jv_StackFrame *frame, NameFinder *finder,
jstring *sourceFileName, jint *lineNum,
jstring *methodName);
static _Unwind_Reason_Code UnwindTraceFn (struct _Unwind_Context *context,
void *state_ptr);
static _Unwind_Reason_Code calling_class_trace_fn (_Jv_UnwindState *state);
static _Unwind_Reason_Code non_system_trace_fn (_Jv_UnwindState *state);
static _Unwind_Reason_Code accesscontrol_trace_fn (_Jv_UnwindState *state);
static _Unwind_Reason_Code stackwalker_trace_fn (_Jv_UnwindState *state);
static _Unwind_Reason_Code stackwalker_nnl_trace_fn (_Jv_UnwindState *state);
 
public:
static _Jv_StackTrace *GetStackTrace (void);
static JArray< ::java::lang::StackTraceElement *>*
GetStackTraceElements (_Jv_StackTrace *trace,
java::lang::Throwable *throwable);
static jclass GetCallingClass (jclass);
static void GetCallerInfo (jclass checkClass, jclass *, _Jv_Method **);
static ClassLoader *GetFirstNonSystemClassLoader (void);
static jobjectArray GetAccessControlStack ();
static JArray<jclass> *GetStackWalkerStack ();
static jclass GetStackWalkerCallingClass ();
static ClassLoader *GetStackWalkerFirstNonNullLoader ();
 
friend jclass _Jv_GetMethodDeclaringClass (jmethodID);
friend class gnu::classpath::VMStackWalker;
};
 
// Information about a given address.
struct _Jv_AddrInfo
{
// File name of the defining module.
const char *file_name;
 
// Base address of the loaded module.
void *base;
 
// Name of the nearest symbol.
const char *sym_name;
 
// Address of the nearest symbol.
void *sym_addr;
 
~_Jv_AddrInfo (void)
{
// On systems with a real dladdr(), the file and symbol names given by
// _Jv_platform_dladdr() are not dynamically allocated. On Windows,
// they are.
 
#ifdef WIN32
if (file_name)
free ((void *)file_name);
 
if (sym_name)
free ((void *)sym_name);
#endif /* WIN32 */
}
};
 
#endif /* __JV_STACKTRACE_H__ */
/gnu-dev/or1k-gcc/libjava/include/java-chardecomp.h
0,0 → 1,3510
// java-chardecomp.h - Decomposition character tables -*- c++ -*-
 
#ifndef __JAVA_CHARDECOMP_H__
#define __JAVA_CHARDECOMP_H__
 
 
// These tables are automatically generated by the scripts/unicode-decomp.pl
// script. DO NOT EDIT the tables. Instead, fix the script
// and run it again.
 
// This file should only be included by natCollator.cc
 
struct decomp_entry
{
jchar key;
const char *value;
};
 
static const decomp_entry canonical_decomposition[] =
{
{ 0x00c0, "\x00\x41\x03\x00" },
{ 0x00c1, "\x00\x41\x03\x01" },
{ 0x00c2, "\x00\x41\x03\x02" },
{ 0x00c3, "\x00\x41\x03\x03" },
{ 0x00c4, "\x00\x41\x03\x08" },
{ 0x00c5, "\x00\x41\x03\x0a" },
{ 0x00c7, "\x00\x43\x03\x27" },
{ 0x00c8, "\x00\x45\x03\x00" },
{ 0x00c9, "\x00\x45\x03\x01" },
{ 0x00ca, "\x00\x45\x03\x02" },
{ 0x00cb, "\x00\x45\x03\x08" },
{ 0x00cc, "\x00\x49\x03\x00" },
{ 0x00cd, "\x00\x49\x03\x01" },
{ 0x00ce, "\x00\x49\x03\x02" },
{ 0x00cf, "\x00\x49\x03\x08" },
{ 0x00d1, "\x00\x4e\x03\x03" },
{ 0x00d2, "\x00\x4f\x03\x00" },
{ 0x00d3, "\x00\x4f\x03\x01" },
{ 0x00d4, "\x00\x4f\x03\x02" },
{ 0x00d5, "\x00\x4f\x03\x03" },
{ 0x00d6, "\x00\x4f\x03\x08" },
{ 0x00d9, "\x00\x55\x03\x00" },
{ 0x00da, "\x00\x55\x03\x01" },
{ 0x00db, "\x00\x55\x03\x02" },
{ 0x00dc, "\x00\x55\x03\x08" },
{ 0x00dd, "\x00\x59\x03\x01" },
{ 0x00e0, "\x00\x61\x03\x00" },
{ 0x00e1, "\x00\x61\x03\x01" },
{ 0x00e2, "\x00\x61\x03\x02" },
{ 0x00e3, "\x00\x61\x03\x03" },
{ 0x00e4, "\x00\x61\x03\x08" },
{ 0x00e5, "\x00\x61\x03\x0a" },
{ 0x00e7, "\x00\x63\x03\x27" },
{ 0x00e8, "\x00\x65\x03\x00" },
{ 0x00e9, "\x00\x65\x03\x01" },
{ 0x00ea, "\x00\x65\x03\x02" },
{ 0x00eb, "\x00\x65\x03\x08" },
{ 0x00ec, "\x00\x69\x03\x00" },
{ 0x00ed, "\x00\x69\x03\x01" },
{ 0x00ee, "\x00\x69\x03\x02" },
{ 0x00ef, "\x00\x69\x03\x08" },
{ 0x00f1, "\x00\x6e\x03\x03" },
{ 0x00f2, "\x00\x6f\x03\x00" },
{ 0x00f3, "\x00\x6f\x03\x01" },
{ 0x00f4, "\x00\x6f\x03\x02" },
{ 0x00f5, "\x00\x6f\x03\x03" },
{ 0x00f6, "\x00\x6f\x03\x08" },
{ 0x00f9, "\x00\x75\x03\x00" },
{ 0x00fa, "\x00\x75\x03\x01" },
{ 0x00fb, "\x00\x75\x03\x02" },
{ 0x00fc, "\x00\x75\x03\x08" },
{ 0x00fd, "\x00\x79\x03\x01" },
{ 0x00ff, "\x00\x79\x03\x08" },
{ 0x0100, "\x00\x41\x03\x04" },
{ 0x0101, "\x00\x61\x03\x04" },
{ 0x0102, "\x00\x41\x03\x06" },
{ 0x0103, "\x00\x61\x03\x06" },
{ 0x0104, "\x00\x41\x03\x28" },
{ 0x0105, "\x00\x61\x03\x28" },
{ 0x0106, "\x00\x43\x03\x01" },
{ 0x0107, "\x00\x63\x03\x01" },
{ 0x0108, "\x00\x43\x03\x02" },
{ 0x0109, "\x00\x63\x03\x02" },
{ 0x010a, "\x00\x43\x03\x07" },
{ 0x010b, "\x00\x63\x03\x07" },
{ 0x010c, "\x00\x43\x03\x0c" },
{ 0x010d, "\x00\x63\x03\x0c" },
{ 0x010e, "\x00\x44\x03\x0c" },
{ 0x010f, "\x00\x64\x03\x0c" },
{ 0x0112, "\x00\x45\x03\x04" },
{ 0x0113, "\x00\x65\x03\x04" },
{ 0x0114, "\x00\x45\x03\x06" },
{ 0x0115, "\x00\x65\x03\x06" },
{ 0x0116, "\x00\x45\x03\x07" },
{ 0x0117, "\x00\x65\x03\x07" },
{ 0x0118, "\x00\x45\x03\x28" },
{ 0x0119, "\x00\x65\x03\x28" },
{ 0x011a, "\x00\x45\x03\x0c" },
{ 0x011b, "\x00\x65\x03\x0c" },
{ 0x011c, "\x00\x47\x03\x02" },
{ 0x011d, "\x00\x67\x03\x02" },
{ 0x011e, "\x00\x47\x03\x06" },
{ 0x011f, "\x00\x67\x03\x06" },
{ 0x0120, "\x00\x47\x03\x07" },
{ 0x0121, "\x00\x67\x03\x07" },
{ 0x0122, "\x00\x47\x03\x27" },
{ 0x0123, "\x00\x67\x03\x27" },
{ 0x0124, "\x00\x48\x03\x02" },
{ 0x0125, "\x00\x68\x03\x02" },
{ 0x0128, "\x00\x49\x03\x03" },
{ 0x0129, "\x00\x69\x03\x03" },
{ 0x012a, "\x00\x49\x03\x04" },
{ 0x012b, "\x00\x69\x03\x04" },
{ 0x012c, "\x00\x49\x03\x06" },
{ 0x012d, "\x00\x69\x03\x06" },
{ 0x012e, "\x00\x49\x03\x28" },
{ 0x012f, "\x00\x69\x03\x28" },
{ 0x0130, "\x00\x49\x03\x07" },
{ 0x0134, "\x00\x4a\x03\x02" },
{ 0x0135, "\x00\x6a\x03\x02" },
{ 0x0136, "\x00\x4b\x03\x27" },
{ 0x0137, "\x00\x6b\x03\x27" },
{ 0x0139, "\x00\x4c\x03\x01" },
{ 0x013a, "\x00\x6c\x03\x01" },
{ 0x013b, "\x00\x4c\x03\x27" },
{ 0x013c, "\x00\x6c\x03\x27" },
{ 0x013d, "\x00\x4c\x03\x0c" },
{ 0x013e, "\x00\x6c\x03\x0c" },
{ 0x0143, "\x00\x4e\x03\x01" },
{ 0x0144, "\x00\x6e\x03\x01" },
{ 0x0145, "\x00\x4e\x03\x27" },
{ 0x0146, "\x00\x6e\x03\x27" },
{ 0x0147, "\x00\x4e\x03\x0c" },
{ 0x0148, "\x00\x6e\x03\x0c" },
{ 0x014c, "\x00\x4f\x03\x04" },
{ 0x014d, "\x00\x6f\x03\x04" },
{ 0x014e, "\x00\x4f\x03\x06" },
{ 0x014f, "\x00\x6f\x03\x06" },
{ 0x0150, "\x00\x4f\x03\x0b" },
{ 0x0151, "\x00\x6f\x03\x0b" },
{ 0x0154, "\x00\x52\x03\x01" },
{ 0x0155, "\x00\x72\x03\x01" },
{ 0x0156, "\x00\x52\x03\x27" },
{ 0x0157, "\x00\x72\x03\x27" },
{ 0x0158, "\x00\x52\x03\x0c" },
{ 0x0159, "\x00\x72\x03\x0c" },
{ 0x015a, "\x00\x53\x03\x01" },
{ 0x015b, "\x00\x73\x03\x01" },
{ 0x015c, "\x00\x53\x03\x02" },
{ 0x015d, "\x00\x73\x03\x02" },
{ 0x015e, "\x00\x53\x03\x27" },
{ 0x015f, "\x00\x73\x03\x27" },
{ 0x0160, "\x00\x53\x03\x0c" },
{ 0x0161, "\x00\x73\x03\x0c" },
{ 0x0162, "\x00\x54\x03\x27" },
{ 0x0163, "\x00\x74\x03\x27" },
{ 0x0164, "\x00\x54\x03\x0c" },
{ 0x0165, "\x00\x74\x03\x0c" },
{ 0x0168, "\x00\x55\x03\x03" },
{ 0x0169, "\x00\x75\x03\x03" },
{ 0x016a, "\x00\x55\x03\x04" },
{ 0x016b, "\x00\x75\x03\x04" },
{ 0x016c, "\x00\x55\x03\x06" },
{ 0x016d, "\x00\x75\x03\x06" },
{ 0x016e, "\x00\x55\x03\x0a" },
{ 0x016f, "\x00\x75\x03\x0a" },
{ 0x0170, "\x00\x55\x03\x0b" },
{ 0x0171, "\x00\x75\x03\x0b" },
{ 0x0172, "\x00\x55\x03\x28" },
{ 0x0173, "\x00\x75\x03\x28" },
{ 0x0174, "\x00\x57\x03\x02" },
{ 0x0175, "\x00\x77\x03\x02" },
{ 0x0176, "\x00\x59\x03\x02" },
{ 0x0177, "\x00\x79\x03\x02" },
{ 0x0178, "\x00\x59\x03\x08" },
{ 0x0179, "\x00\x5a\x03\x01" },
{ 0x017a, "\x00\x7a\x03\x01" },
{ 0x017b, "\x00\x5a\x03\x07" },
{ 0x017c, "\x00\x7a\x03\x07" },
{ 0x017d, "\x00\x5a\x03\x0c" },
{ 0x017e, "\x00\x7a\x03\x0c" },
{ 0x01a0, "\x00\x4f\x03\x1b" },
{ 0x01a1, "\x00\x6f\x03\x1b" },
{ 0x01af, "\x00\x55\x03\x1b" },
{ 0x01b0, "\x00\x75\x03\x1b" },
{ 0x01cd, "\x00\x41\x03\x0c" },
{ 0x01ce, "\x00\x61\x03\x0c" },
{ 0x01cf, "\x00\x49\x03\x0c" },
{ 0x01d0, "\x00\x69\x03\x0c" },
{ 0x01d1, "\x00\x4f\x03\x0c" },
{ 0x01d2, "\x00\x6f\x03\x0c" },
{ 0x01d3, "\x00\x55\x03\x0c" },
{ 0x01d4, "\x00\x75\x03\x0c" },
{ 0x01d5, "\x00\xdc\x03\x04" },
{ 0x01d6, "\x00\xfc\x03\x04" },
{ 0x01d7, "\x00\xdc\x03\x01" },
{ 0x01d8, "\x00\xfc\x03\x01" },
{ 0x01d9, "\x00\xdc\x03\x0c" },
{ 0x01da, "\x00\xfc\x03\x0c" },
{ 0x01db, "\x00\xdc\x03\x00" },
{ 0x01dc, "\x00\xfc\x03\x00" },
{ 0x01de, "\x00\xc4\x03\x04" },
{ 0x01df, "\x00\xe4\x03\x04" },
{ 0x01e0, "\x02\x26\x03\x04" },
{ 0x01e1, "\x02\x27\x03\x04" },
{ 0x01e2, "\x00\xc6\x03\x04" },
{ 0x01e3, "\x00\xe6\x03\x04" },
{ 0x01e6, "\x00\x47\x03\x0c" },
{ 0x01e7, "\x00\x67\x03\x0c" },
{ 0x01e8, "\x00\x4b\x03\x0c" },
{ 0x01e9, "\x00\x6b\x03\x0c" },
{ 0x01ea, "\x00\x4f\x03\x28" },
{ 0x01eb, "\x00\x6f\x03\x28" },
{ 0x01ec, "\x01\xea\x03\x04" },
{ 0x01ed, "\x01\xeb\x03\x04" },
{ 0x01ee, "\x01\xb7\x03\x0c" },
{ 0x01ef, "\x02\x92\x03\x0c" },
{ 0x01f0, "\x00\x6a\x03\x0c" },
{ 0x01f4, "\x00\x47\x03\x01" },
{ 0x01f5, "\x00\x67\x03\x01" },
{ 0x01f8, "\x00\x4e\x03\x00" },
{ 0x01f9, "\x00\x6e\x03\x00" },
{ 0x01fa, "\x00\xc5\x03\x01" },
{ 0x01fb, "\x00\xe5\x03\x01" },
{ 0x01fc, "\x00\xc6\x03\x01" },
{ 0x01fd, "\x00\xe6\x03\x01" },
{ 0x01fe, "\x00\xd8\x03\x01" },
{ 0x01ff, "\x00\xf8\x03\x01" },
{ 0x0200, "\x00\x41\x03\x0f" },
{ 0x0201, "\x00\x61\x03\x0f" },
{ 0x0202, "\x00\x41\x03\x11" },
{ 0x0203, "\x00\x61\x03\x11" },
{ 0x0204, "\x00\x45\x03\x0f" },
{ 0x0205, "\x00\x65\x03\x0f" },
{ 0x0206, "\x00\x45\x03\x11" },
{ 0x0207, "\x00\x65\x03\x11" },
{ 0x0208, "\x00\x49\x03\x0f" },
{ 0x0209, "\x00\x69\x03\x0f" },
{ 0x020a, "\x00\x49\x03\x11" },
{ 0x020b, "\x00\x69\x03\x11" },
{ 0x020c, "\x00\x4f\x03\x0f" },
{ 0x020d, "\x00\x6f\x03\x0f" },
{ 0x020e, "\x00\x4f\x03\x11" },
{ 0x020f, "\x00\x6f\x03\x11" },
{ 0x0210, "\x00\x52\x03\x0f" },
{ 0x0211, "\x00\x72\x03\x0f" },
{ 0x0212, "\x00\x52\x03\x11" },
{ 0x0213, "\x00\x72\x03\x11" },
{ 0x0214, "\x00\x55\x03\x0f" },
{ 0x0215, "\x00\x75\x03\x0f" },
{ 0x0216, "\x00\x55\x03\x11" },
{ 0x0217, "\x00\x75\x03\x11" },
{ 0x0218, "\x00\x53\x03\x26" },
{ 0x0219, "\x00\x73\x03\x26" },
{ 0x021a, "\x00\x54\x03\x26" },
{ 0x021b, "\x00\x74\x03\x26" },
{ 0x021e, "\x00\x48\x03\x0c" },
{ 0x021f, "\x00\x68\x03\x0c" },
{ 0x0226, "\x00\x41\x03\x07" },
{ 0x0227, "\x00\x61\x03\x07" },
{ 0x0228, "\x00\x45\x03\x27" },
{ 0x0229, "\x00\x65\x03\x27" },
{ 0x022a, "\x00\xd6\x03\x04" },
{ 0x022b, "\x00\xf6\x03\x04" },
{ 0x022c, "\x00\xd5\x03\x04" },
{ 0x022d, "\x00\xf5\x03\x04" },
{ 0x022e, "\x00\x4f\x03\x07" },
{ 0x022f, "\x00\x6f\x03\x07" },
{ 0x0230, "\x02\x2e\x03\x04" },
{ 0x0231, "\x02\x2f\x03\x04" },
{ 0x0232, "\x00\x59\x03\x04" },
{ 0x0233, "\x00\x79\x03\x04" },
{ 0x0340, "\x03\x00" },
{ 0x0341, "\x03\x01" },
{ 0x0343, "\x03\x13" },
{ 0x0344, "\x03\x08\x03\x01" },
{ 0x0374, "\x02\xb9" },
{ 0x037e, "\x00\x3b" },
{ 0x0385, "\x00\xa8\x03\x01" },
{ 0x0386, "\x03\x91\x03\x01" },
{ 0x0387, "\x00\xb7" },
{ 0x0388, "\x03\x95\x03\x01" },
{ 0x0389, "\x03\x97\x03\x01" },
{ 0x038a, "\x03\x99\x03\x01" },
{ 0x038c, "\x03\x9f\x03\x01" },
{ 0x038e, "\x03\xa5\x03\x01" },
{ 0x038f, "\x03\xa9\x03\x01" },
{ 0x0390, "\x03\xca\x03\x01" },
{ 0x03aa, "\x03\x99\x03\x08" },
{ 0x03ab, "\x03\xa5\x03\x08" },
{ 0x03ac, "\x03\xb1\x03\x01" },
{ 0x03ad, "\x03\xb5\x03\x01" },
{ 0x03ae, "\x03\xb7\x03\x01" },
{ 0x03af, "\x03\xb9\x03\x01" },
{ 0x03b0, "\x03\xcb\x03\x01" },
{ 0x03ca, "\x03\xb9\x03\x08" },
{ 0x03cb, "\x03\xc5\x03\x08" },
{ 0x03cc, "\x03\xbf\x03\x01" },
{ 0x03cd, "\x03\xc5\x03\x01" },
{ 0x03ce, "\x03\xc9\x03\x01" },
{ 0x03d3, "\x03\xd2\x03\x01" },
{ 0x03d4, "\x03\xd2\x03\x08" },
{ 0x0400, "\x04\x15\x03\x00" },
{ 0x0401, "\x04\x15\x03\x08" },
{ 0x0403, "\x04\x13\x03\x01" },
{ 0x0407, "\x04\x06\x03\x08" },
{ 0x040c, "\x04\x1a\x03\x01" },
{ 0x040d, "\x04\x18\x03\x00" },
{ 0x040e, "\x04\x23\x03\x06" },
{ 0x0419, "\x04\x18\x03\x06" },
{ 0x0439, "\x04\x38\x03\x06" },
{ 0x0450, "\x04\x35\x03\x00" },
{ 0x0451, "\x04\x35\x03\x08" },
{ 0x0453, "\x04\x33\x03\x01" },
{ 0x0457, "\x04\x56\x03\x08" },
{ 0x045c, "\x04\x3a\x03\x01" },
{ 0x045d, "\x04\x38\x03\x00" },
{ 0x045e, "\x04\x43\x03\x06" },
{ 0x0476, "\x04\x74\x03\x0f" },
{ 0x0477, "\x04\x75\x03\x0f" },
{ 0x04c1, "\x04\x16\x03\x06" },
{ 0x04c2, "\x04\x36\x03\x06" },
{ 0x04d0, "\x04\x10\x03\x06" },
{ 0x04d1, "\x04\x30\x03\x06" },
{ 0x04d2, "\x04\x10\x03\x08" },
{ 0x04d3, "\x04\x30\x03\x08" },
{ 0x04d6, "\x04\x15\x03\x06" },
{ 0x04d7, "\x04\x35\x03\x06" },
{ 0x04da, "\x04\xd8\x03\x08" },
{ 0x04db, "\x04\xd9\x03\x08" },
{ 0x04dc, "\x04\x16\x03\x08" },
{ 0x04dd, "\x04\x36\x03\x08" },
{ 0x04de, "\x04\x17\x03\x08" },
{ 0x04df, "\x04\x37\x03\x08" },
{ 0x04e2, "\x04\x18\x03\x04" },
{ 0x04e3, "\x04\x38\x03\x04" },
{ 0x04e4, "\x04\x18\x03\x08" },
{ 0x04e5, "\x04\x38\x03\x08" },
{ 0x04e6, "\x04\x1e\x03\x08" },
{ 0x04e7, "\x04\x3e\x03\x08" },
{ 0x04ea, "\x04\xe8\x03\x08" },
{ 0x04eb, "\x04\xe9\x03\x08" },
{ 0x04ec, "\x04\x2d\x03\x08" },
{ 0x04ed, "\x04\x4d\x03\x08" },
{ 0x04ee, "\x04\x23\x03\x04" },
{ 0x04ef, "\x04\x43\x03\x04" },
{ 0x04f0, "\x04\x23\x03\x08" },
{ 0x04f1, "\x04\x43\x03\x08" },
{ 0x04f2, "\x04\x23\x03\x0b" },
{ 0x04f3, "\x04\x43\x03\x0b" },
{ 0x04f4, "\x04\x27\x03\x08" },
{ 0x04f5, "\x04\x47\x03\x08" },
{ 0x04f8, "\x04\x2b\x03\x08" },
{ 0x04f9, "\x04\x4b\x03\x08" },
{ 0x0622, "\x06\x27\x06\x53" },
{ 0x0623, "\x06\x27\x06\x54" },
{ 0x0624, "\x06\x48\x06\x54" },
{ 0x0625, "\x06\x27\x06\x55" },
{ 0x0626, "\x06\x4a\x06\x54" },
{ 0x06c0, "\x06\xd5\x06\x54" },
{ 0x06c2, "\x06\xc1\x06\x54" },
{ 0x06d3, "\x06\xd2\x06\x54" },
{ 0x0929, "\x09\x28\x09\x3c" },
{ 0x0931, "\x09\x30\x09\x3c" },
{ 0x0934, "\x09\x33\x09\x3c" },
{ 0x0958, "\x09\x15\x09\x3c" },
{ 0x0959, "\x09\x16\x09\x3c" },
{ 0x095a, "\x09\x17\x09\x3c" },
{ 0x095b, "\x09\x1c\x09\x3c" },
{ 0x095c, "\x09\x21\x09\x3c" },
{ 0x095d, "\x09\x22\x09\x3c" },
{ 0x095e, "\x09\x2b\x09\x3c" },
{ 0x095f, "\x09\x2f\x09\x3c" },
{ 0x09cb, "\x09\xc7\x09\xbe" },
{ 0x09cc, "\x09\xc7\x09\xd7" },
{ 0x09dc, "\x09\xa1\x09\xbc" },
{ 0x09dd, "\x09\xa2\x09\xbc" },
{ 0x09df, "\x09\xaf\x09\xbc" },
{ 0x0a33, "\x0a\x32\x0a\x3c" },
{ 0x0a36, "\x0a\x38\x0a\x3c" },
{ 0x0a59, "\x0a\x16\x0a\x3c" },
{ 0x0a5a, "\x0a\x17\x0a\x3c" },
{ 0x0a5b, "\x0a\x1c\x0a\x3c" },
{ 0x0a5e, "\x0a\x2b\x0a\x3c" },
{ 0x0b48, "\x0b\x47\x0b\x56" },
{ 0x0b4b, "\x0b\x47\x0b\x3e" },
{ 0x0b4c, "\x0b\x47\x0b\x57" },
{ 0x0b5c, "\x0b\x21\x0b\x3c" },
{ 0x0b5d, "\x0b\x22\x0b\x3c" },
{ 0x0b94, "\x0b\x92\x0b\xd7" },
{ 0x0bca, "\x0b\xc6\x0b\xbe" },
{ 0x0bcb, "\x0b\xc7\x0b\xbe" },
{ 0x0bcc, "\x0b\xc6\x0b\xd7" },
{ 0x0c48, "\x0c\x46\x0c\x56" },
{ 0x0cc0, "\x0c\xbf\x0c\xd5" },
{ 0x0cc7, "\x0c\xc6\x0c\xd5" },
{ 0x0cc8, "\x0c\xc6\x0c\xd6" },
{ 0x0cca, "\x0c\xc6\x0c\xc2" },
{ 0x0ccb, "\x0c\xca\x0c\xd5" },
{ 0x0d4a, "\x0d\x46\x0d\x3e" },
{ 0x0d4b, "\x0d\x47\x0d\x3e" },
{ 0x0d4c, "\x0d\x46\x0d\x57" },
{ 0x0dda, "\x0d\xd9\x0d\xca" },
{ 0x0ddc, "\x0d\xd9\x0d\xcf" },
{ 0x0ddd, "\x0d\xdc\x0d\xca" },
{ 0x0dde, "\x0d\xd9\x0d\xdf" },
{ 0x0f43, "\x0f\x42\x0f\xb7" },
{ 0x0f4d, "\x0f\x4c\x0f\xb7" },
{ 0x0f52, "\x0f\x51\x0f\xb7" },
{ 0x0f57, "\x0f\x56\x0f\xb7" },
{ 0x0f5c, "\x0f\x5b\x0f\xb7" },
{ 0x0f69, "\x0f\x40\x0f\xb5" },
{ 0x0f73, "\x0f\x71\x0f\x72" },
{ 0x0f75, "\x0f\x71\x0f\x74" },
{ 0x0f76, "\x0f\xb2\x0f\x80" },
{ 0x0f78, "\x0f\xb3\x0f\x80" },
{ 0x0f81, "\x0f\x71\x0f\x80" },
{ 0x0f93, "\x0f\x92\x0f\xb7" },
{ 0x0f9d, "\x0f\x9c\x0f\xb7" },
{ 0x0fa2, "\x0f\xa1\x0f\xb7" },
{ 0x0fa7, "\x0f\xa6\x0f\xb7" },
{ 0x0fac, "\x0f\xab\x0f\xb7" },
{ 0x0fb9, "\x0f\x90\x0f\xb5" },
{ 0x1026, "\x10\x25\x10\x2e" },
{ 0x1e00, "\x00\x41\x03\x25" },
{ 0x1e01, "\x00\x61\x03\x25" },
{ 0x1e02, "\x00\x42\x03\x07" },
{ 0x1e03, "\x00\x62\x03\x07" },
{ 0x1e04, "\x00\x42\x03\x23" },
{ 0x1e05, "\x00\x62\x03\x23" },
{ 0x1e06, "\x00\x42\x03\x31" },
{ 0x1e07, "\x00\x62\x03\x31" },
{ 0x1e08, "\x00\xc7\x03\x01" },
{ 0x1e09, "\x00\xe7\x03\x01" },
{ 0x1e0a, "\x00\x44\x03\x07" },
{ 0x1e0b, "\x00\x64\x03\x07" },
{ 0x1e0c, "\x00\x44\x03\x23" },
{ 0x1e0d, "\x00\x64\x03\x23" },
{ 0x1e0e, "\x00\x44\x03\x31" },
{ 0x1e0f, "\x00\x64\x03\x31" },
{ 0x1e10, "\x00\x44\x03\x27" },
{ 0x1e11, "\x00\x64\x03\x27" },
{ 0x1e12, "\x00\x44\x03\x2d" },
{ 0x1e13, "\x00\x64\x03\x2d" },
{ 0x1e14, "\x01\x12\x03\x00" },
{ 0x1e15, "\x01\x13\x03\x00" },
{ 0x1e16, "\x01\x12\x03\x01" },
{ 0x1e17, "\x01\x13\x03\x01" },
{ 0x1e18, "\x00\x45\x03\x2d" },
{ 0x1e19, "\x00\x65\x03\x2d" },
{ 0x1e1a, "\x00\x45\x03\x30" },
{ 0x1e1b, "\x00\x65\x03\x30" },
{ 0x1e1c, "\x02\x28\x03\x06" },
{ 0x1e1d, "\x02\x29\x03\x06" },
{ 0x1e1e, "\x00\x46\x03\x07" },
{ 0x1e1f, "\x00\x66\x03\x07" },
{ 0x1e20, "\x00\x47\x03\x04" },
{ 0x1e21, "\x00\x67\x03\x04" },
{ 0x1e22, "\x00\x48\x03\x07" },
{ 0x1e23, "\x00\x68\x03\x07" },
{ 0x1e24, "\x00\x48\x03\x23" },
{ 0x1e25, "\x00\x68\x03\x23" },
{ 0x1e26, "\x00\x48\x03\x08" },
{ 0x1e27, "\x00\x68\x03\x08" },
{ 0x1e28, "\x00\x48\x03\x27" },
{ 0x1e29, "\x00\x68\x03\x27" },
{ 0x1e2a, "\x00\x48\x03\x2e" },
{ 0x1e2b, "\x00\x68\x03\x2e" },
{ 0x1e2c, "\x00\x49\x03\x30" },
{ 0x1e2d, "\x00\x69\x03\x30" },
{ 0x1e2e, "\x00\xcf\x03\x01" },
{ 0x1e2f, "\x00\xef\x03\x01" },
{ 0x1e30, "\x00\x4b\x03\x01" },
{ 0x1e31, "\x00\x6b\x03\x01" },
{ 0x1e32, "\x00\x4b\x03\x23" },
{ 0x1e33, "\x00\x6b\x03\x23" },
{ 0x1e34, "\x00\x4b\x03\x31" },
{ 0x1e35, "\x00\x6b\x03\x31" },
{ 0x1e36, "\x00\x4c\x03\x23" },
{ 0x1e37, "\x00\x6c\x03\x23" },
{ 0x1e38, "\x1e\x36\x03\x04" },
{ 0x1e39, "\x1e\x37\x03\x04" },
{ 0x1e3a, "\x00\x4c\x03\x31" },
{ 0x1e3b, "\x00\x6c\x03\x31" },
{ 0x1e3c, "\x00\x4c\x03\x2d" },
{ 0x1e3d, "\x00\x6c\x03\x2d" },
{ 0x1e3e, "\x00\x4d\x03\x01" },
{ 0x1e3f, "\x00\x6d\x03\x01" },
{ 0x1e40, "\x00\x4d\x03\x07" },
{ 0x1e41, "\x00\x6d\x03\x07" },
{ 0x1e42, "\x00\x4d\x03\x23" },
{ 0x1e43, "\x00\x6d\x03\x23" },
{ 0x1e44, "\x00\x4e\x03\x07" },
{ 0x1e45, "\x00\x6e\x03\x07" },
{ 0x1e46, "\x00\x4e\x03\x23" },
{ 0x1e47, "\x00\x6e\x03\x23" },
{ 0x1e48, "\x00\x4e\x03\x31" },
{ 0x1e49, "\x00\x6e\x03\x31" },
{ 0x1e4a, "\x00\x4e\x03\x2d" },
{ 0x1e4b, "\x00\x6e\x03\x2d" },
{ 0x1e4c, "\x00\xd5\x03\x01" },
{ 0x1e4d, "\x00\xf5\x03\x01" },
{ 0x1e4e, "\x00\xd5\x03\x08" },
{ 0x1e4f, "\x00\xf5\x03\x08" },
{ 0x1e50, "\x01\x4c\x03\x00" },
{ 0x1e51, "\x01\x4d\x03\x00" },
{ 0x1e52, "\x01\x4c\x03\x01" },
{ 0x1e53, "\x01\x4d\x03\x01" },
{ 0x1e54, "\x00\x50\x03\x01" },
{ 0x1e55, "\x00\x70\x03\x01" },
{ 0x1e56, "\x00\x50\x03\x07" },
{ 0x1e57, "\x00\x70\x03\x07" },
{ 0x1e58, "\x00\x52\x03\x07" },
{ 0x1e59, "\x00\x72\x03\x07" },
{ 0x1e5a, "\x00\x52\x03\x23" },
{ 0x1e5b, "\x00\x72\x03\x23" },
{ 0x1e5c, "\x1e\x5a\x03\x04" },
{ 0x1e5d, "\x1e\x5b\x03\x04" },
{ 0x1e5e, "\x00\x52\x03\x31" },
{ 0x1e5f, "\x00\x72\x03\x31" },
{ 0x1e60, "\x00\x53\x03\x07" },
{ 0x1e61, "\x00\x73\x03\x07" },
{ 0x1e62, "\x00\x53\x03\x23" },
{ 0x1e63, "\x00\x73\x03\x23" },
{ 0x1e64, "\x01\x5a\x03\x07" },
{ 0x1e65, "\x01\x5b\x03\x07" },
{ 0x1e66, "\x01\x60\x03\x07" },
{ 0x1e67, "\x01\x61\x03\x07" },
{ 0x1e68, "\x1e\x62\x03\x07" },
{ 0x1e69, "\x1e\x63\x03\x07" },
{ 0x1e6a, "\x00\x54\x03\x07" },
{ 0x1e6b, "\x00\x74\x03\x07" },
{ 0x1e6c, "\x00\x54\x03\x23" },
{ 0x1e6d, "\x00\x74\x03\x23" },
{ 0x1e6e, "\x00\x54\x03\x31" },
{ 0x1e6f, "\x00\x74\x03\x31" },
{ 0x1e70, "\x00\x54\x03\x2d" },
{ 0x1e71, "\x00\x74\x03\x2d" },
{ 0x1e72, "\x00\x55\x03\x24" },
{ 0x1e73, "\x00\x75\x03\x24" },
{ 0x1e74, "\x00\x55\x03\x30" },
{ 0x1e75, "\x00\x75\x03\x30" },
{ 0x1e76, "\x00\x55\x03\x2d" },
{ 0x1e77, "\x00\x75\x03\x2d" },
{ 0x1e78, "\x01\x68\x03\x01" },
{ 0x1e79, "\x01\x69\x03\x01" },
{ 0x1e7a, "\x01\x6a\x03\x08" },
{ 0x1e7b, "\x01\x6b\x03\x08" },
{ 0x1e7c, "\x00\x56\x03\x03" },
{ 0x1e7d, "\x00\x76\x03\x03" },
{ 0x1e7e, "\x00\x56\x03\x23" },
{ 0x1e7f, "\x00\x76\x03\x23" },
{ 0x1e80, "\x00\x57\x03\x00" },
{ 0x1e81, "\x00\x77\x03\x00" },
{ 0x1e82, "\x00\x57\x03\x01" },
{ 0x1e83, "\x00\x77\x03\x01" },
{ 0x1e84, "\x00\x57\x03\x08" },
{ 0x1e85, "\x00\x77\x03\x08" },
{ 0x1e86, "\x00\x57\x03\x07" },
{ 0x1e87, "\x00\x77\x03\x07" },
{ 0x1e88, "\x00\x57\x03\x23" },
{ 0x1e89, "\x00\x77\x03\x23" },
{ 0x1e8a, "\x00\x58\x03\x07" },
{ 0x1e8b, "\x00\x78\x03\x07" },
{ 0x1e8c, "\x00\x58\x03\x08" },
{ 0x1e8d, "\x00\x78\x03\x08" },
{ 0x1e8e, "\x00\x59\x03\x07" },
{ 0x1e8f, "\x00\x79\x03\x07" },
{ 0x1e90, "\x00\x5a\x03\x02" },
{ 0x1e91, "\x00\x7a\x03\x02" },
{ 0x1e92, "\x00\x5a\x03\x23" },
{ 0x1e93, "\x00\x7a\x03\x23" },
{ 0x1e94, "\x00\x5a\x03\x31" },
{ 0x1e95, "\x00\x7a\x03\x31" },
{ 0x1e96, "\x00\x68\x03\x31" },
{ 0x1e97, "\x00\x74\x03\x08" },
{ 0x1e98, "\x00\x77\x03\x0a" },
{ 0x1e99, "\x00\x79\x03\x0a" },
{ 0x1e9b, "\x01\x7f\x03\x07" },
{ 0x1ea0, "\x00\x41\x03\x23" },
{ 0x1ea1, "\x00\x61\x03\x23" },
{ 0x1ea2, "\x00\x41\x03\x09" },
{ 0x1ea3, "\x00\x61\x03\x09" },
{ 0x1ea4, "\x00\xc2\x03\x01" },
{ 0x1ea5, "\x00\xe2\x03\x01" },
{ 0x1ea6, "\x00\xc2\x03\x00" },
{ 0x1ea7, "\x00\xe2\x03\x00" },
{ 0x1ea8, "\x00\xc2\x03\x09" },
{ 0x1ea9, "\x00\xe2\x03\x09" },
{ 0x1eaa, "\x00\xc2\x03\x03" },
{ 0x1eab, "\x00\xe2\x03\x03" },
{ 0x1eac, "\x1e\xa0\x03\x02" },
{ 0x1ead, "\x1e\xa1\x03\x02" },
{ 0x1eae, "\x01\x02\x03\x01" },
{ 0x1eaf, "\x01\x03\x03\x01" },
{ 0x1eb0, "\x01\x02\x03\x00" },
{ 0x1eb1, "\x01\x03\x03\x00" },
{ 0x1eb2, "\x01\x02\x03\x09" },
{ 0x1eb3, "\x01\x03\x03\x09" },
{ 0x1eb4, "\x01\x02\x03\x03" },
{ 0x1eb5, "\x01\x03\x03\x03" },
{ 0x1eb6, "\x1e\xa0\x03\x06" },
{ 0x1eb7, "\x1e\xa1\x03\x06" },
{ 0x1eb8, "\x00\x45\x03\x23" },
{ 0x1eb9, "\x00\x65\x03\x23" },
{ 0x1eba, "\x00\x45\x03\x09" },
{ 0x1ebb, "\x00\x65\x03\x09" },
{ 0x1ebc, "\x00\x45\x03\x03" },
{ 0x1ebd, "\x00\x65\x03\x03" },
{ 0x1ebe, "\x00\xca\x03\x01" },
{ 0x1ebf, "\x00\xea\x03\x01" },
{ 0x1ec0, "\x00\xca\x03\x00" },
{ 0x1ec1, "\x00\xea\x03\x00" },
{ 0x1ec2, "\x00\xca\x03\x09" },
{ 0x1ec3, "\x00\xea\x03\x09" },
{ 0x1ec4, "\x00\xca\x03\x03" },
{ 0x1ec5, "\x00\xea\x03\x03" },
{ 0x1ec6, "\x1e\xb8\x03\x02" },
{ 0x1ec7, "\x1e\xb9\x03\x02" },
{ 0x1ec8, "\x00\x49\x03\x09" },
{ 0x1ec9, "\x00\x69\x03\x09" },
{ 0x1eca, "\x00\x49\x03\x23" },
{ 0x1ecb, "\x00\x69\x03\x23" },
{ 0x1ecc, "\x00\x4f\x03\x23" },
{ 0x1ecd, "\x00\x6f\x03\x23" },
{ 0x1ece, "\x00\x4f\x03\x09" },
{ 0x1ecf, "\x00\x6f\x03\x09" },
{ 0x1ed0, "\x00\xd4\x03\x01" },
{ 0x1ed1, "\x00\xf4\x03\x01" },
{ 0x1ed2, "\x00\xd4\x03\x00" },
{ 0x1ed3, "\x00\xf4\x03\x00" },
{ 0x1ed4, "\x00\xd4\x03\x09" },
{ 0x1ed5, "\x00\xf4\x03\x09" },
{ 0x1ed6, "\x00\xd4\x03\x03" },
{ 0x1ed7, "\x00\xf4\x03\x03" },
{ 0x1ed8, "\x1e\xcc\x03\x02" },
{ 0x1ed9, "\x1e\xcd\x03\x02" },
{ 0x1eda, "\x01\xa0\x03\x01" },
{ 0x1edb, "\x01\xa1\x03\x01" },
{ 0x1edc, "\x01\xa0\x03\x00" },
{ 0x1edd, "\x01\xa1\x03\x00" },
{ 0x1ede, "\x01\xa0\x03\x09" },
{ 0x1edf, "\x01\xa1\x03\x09" },
{ 0x1ee0, "\x01\xa0\x03\x03" },
{ 0x1ee1, "\x01\xa1\x03\x03" },
{ 0x1ee2, "\x01\xa0\x03\x23" },
{ 0x1ee3, "\x01\xa1\x03\x23" },
{ 0x1ee4, "\x00\x55\x03\x23" },
{ 0x1ee5, "\x00\x75\x03\x23" },
{ 0x1ee6, "\x00\x55\x03\x09" },
{ 0x1ee7, "\x00\x75\x03\x09" },
{ 0x1ee8, "\x01\xaf\x03\x01" },
{ 0x1ee9, "\x01\xb0\x03\x01" },
{ 0x1eea, "\x01\xaf\x03\x00" },
{ 0x1eeb, "\x01\xb0\x03\x00" },
{ 0x1eec, "\x01\xaf\x03\x09" },
{ 0x1eed, "\x01\xb0\x03\x09" },
{ 0x1eee, "\x01\xaf\x03\x03" },
{ 0x1eef, "\x01\xb0\x03\x03" },
{ 0x1ef0, "\x01\xaf\x03\x23" },
{ 0x1ef1, "\x01\xb0\x03\x23" },
{ 0x1ef2, "\x00\x59\x03\x00" },
{ 0x1ef3, "\x00\x79\x03\x00" },
{ 0x1ef4, "\x00\x59\x03\x23" },
{ 0x1ef5, "\x00\x79\x03\x23" },
{ 0x1ef6, "\x00\x59\x03\x09" },
{ 0x1ef7, "\x00\x79\x03\x09" },
{ 0x1ef8, "\x00\x59\x03\x03" },
{ 0x1ef9, "\x00\x79\x03\x03" },
{ 0x1f00, "\x03\xb1\x03\x13" },
{ 0x1f01, "\x03\xb1\x03\x14" },
{ 0x1f02, "\x1f\x00\x03\x00" },
{ 0x1f03, "\x1f\x01\x03\x00" },
{ 0x1f04, "\x1f\x00\x03\x01" },
{ 0x1f05, "\x1f\x01\x03\x01" },
{ 0x1f06, "\x1f\x00\x03\x42" },
{ 0x1f07, "\x1f\x01\x03\x42" },
{ 0x1f08, "\x03\x91\x03\x13" },
{ 0x1f09, "\x03\x91\x03\x14" },
{ 0x1f0a, "\x1f\x08\x03\x00" },
{ 0x1f0b, "\x1f\x09\x03\x00" },
{ 0x1f0c, "\x1f\x08\x03\x01" },
{ 0x1f0d, "\x1f\x09\x03\x01" },
{ 0x1f0e, "\x1f\x08\x03\x42" },
{ 0x1f0f, "\x1f\x09\x03\x42" },
{ 0x1f10, "\x03\xb5\x03\x13" },
{ 0x1f11, "\x03\xb5\x03\x14" },
{ 0x1f12, "\x1f\x10\x03\x00" },
{ 0x1f13, "\x1f\x11\x03\x00" },
{ 0x1f14, "\x1f\x10\x03\x01" },
{ 0x1f15, "\x1f\x11\x03\x01" },
{ 0x1f18, "\x03\x95\x03\x13" },
{ 0x1f19, "\x03\x95\x03\x14" },
{ 0x1f1a, "\x1f\x18\x03\x00" },
{ 0x1f1b, "\x1f\x19\x03\x00" },
{ 0x1f1c, "\x1f\x18\x03\x01" },
{ 0x1f1d, "\x1f\x19\x03\x01" },
{ 0x1f20, "\x03\xb7\x03\x13" },
{ 0x1f21, "\x03\xb7\x03\x14" },
{ 0x1f22, "\x1f\x20\x03\x00" },
{ 0x1f23, "\x1f\x21\x03\x00" },
{ 0x1f24, "\x1f\x20\x03\x01" },
{ 0x1f25, "\x1f\x21\x03\x01" },
{ 0x1f26, "\x1f\x20\x03\x42" },
{ 0x1f27, "\x1f\x21\x03\x42" },
{ 0x1f28, "\x03\x97\x03\x13" },
{ 0x1f29, "\x03\x97\x03\x14" },
{ 0x1f2a, "\x1f\x28\x03\x00" },
{ 0x1f2b, "\x1f\x29\x03\x00" },
{ 0x1f2c, "\x1f\x28\x03\x01" },
{ 0x1f2d, "\x1f\x29\x03\x01" },
{ 0x1f2e, "\x1f\x28\x03\x42" },
{ 0x1f2f, "\x1f\x29\x03\x42" },
{ 0x1f30, "\x03\xb9\x03\x13" },
{ 0x1f31, "\x03\xb9\x03\x14" },
{ 0x1f32, "\x1f\x30\x03\x00" },
{ 0x1f33, "\x1f\x31\x03\x00" },
{ 0x1f34, "\x1f\x30\x03\x01" },
{ 0x1f35, "\x1f\x31\x03\x01" },
{ 0x1f36, "\x1f\x30\x03\x42" },
{ 0x1f37, "\x1f\x31\x03\x42" },
{ 0x1f38, "\x03\x99\x03\x13" },
{ 0x1f39, "\x03\x99\x03\x14" },
{ 0x1f3a, "\x1f\x38\x03\x00" },
{ 0x1f3b, "\x1f\x39\x03\x00" },
{ 0x1f3c, "\x1f\x38\x03\x01" },
{ 0x1f3d, "\x1f\x39\x03\x01" },
{ 0x1f3e, "\x1f\x38\x03\x42" },
{ 0x1f3f, "\x1f\x39\x03\x42" },
{ 0x1f40, "\x03\xbf\x03\x13" },
{ 0x1f41, "\x03\xbf\x03\x14" },
{ 0x1f42, "\x1f\x40\x03\x00" },
{ 0x1f43, "\x1f\x41\x03\x00" },
{ 0x1f44, "\x1f\x40\x03\x01" },
{ 0x1f45, "\x1f\x41\x03\x01" },
{ 0x1f48, "\x03\x9f\x03\x13" },
{ 0x1f49, "\x03\x9f\x03\x14" },
{ 0x1f4a, "\x1f\x48\x03\x00" },
{ 0x1f4b, "\x1f\x49\x03\x00" },
{ 0x1f4c, "\x1f\x48\x03\x01" },
{ 0x1f4d, "\x1f\x49\x03\x01" },
{ 0x1f50, "\x03\xc5\x03\x13" },
{ 0x1f51, "\x03\xc5\x03\x14" },
{ 0x1f52, "\x1f\x50\x03\x00" },
{ 0x1f53, "\x1f\x51\x03\x00" },
{ 0x1f54, "\x1f\x50\x03\x01" },
{ 0x1f55, "\x1f\x51\x03\x01" },
{ 0x1f56, "\x1f\x50\x03\x42" },
{ 0x1f57, "\x1f\x51\x03\x42" },
{ 0x1f59, "\x03\xa5\x03\x14" },
{ 0x1f5b, "\x1f\x59\x03\x00" },
{ 0x1f5d, "\x1f\x59\x03\x01" },
{ 0x1f5f, "\x1f\x59\x03\x42" },
{ 0x1f60, "\x03\xc9\x03\x13" },
{ 0x1f61, "\x03\xc9\x03\x14" },
{ 0x1f62, "\x1f\x60\x03\x00" },
{ 0x1f63, "\x1f\x61\x03\x00" },
{ 0x1f64, "\x1f\x60\x03\x01" },
{ 0x1f65, "\x1f\x61\x03\x01" },
{ 0x1f66, "\x1f\x60\x03\x42" },
{ 0x1f67, "\x1f\x61\x03\x42" },
{ 0x1f68, "\x03\xa9\x03\x13" },
{ 0x1f69, "\x03\xa9\x03\x14" },
{ 0x1f6a, "\x1f\x68\x03\x00" },
{ 0x1f6b, "\x1f\x69\x03\x00" },
{ 0x1f6c, "\x1f\x68\x03\x01" },
{ 0x1f6d, "\x1f\x69\x03\x01" },
{ 0x1f6e, "\x1f\x68\x03\x42" },
{ 0x1f6f, "\x1f\x69\x03\x42" },
{ 0x1f70, "\x03\xb1\x03\x00" },
{ 0x1f71, "\x03\xac" },
{ 0x1f72, "\x03\xb5\x03\x00" },
{ 0x1f73, "\x03\xad" },
{ 0x1f74, "\x03\xb7\x03\x00" },
{ 0x1f75, "\x03\xae" },
{ 0x1f76, "\x03\xb9\x03\x00" },
{ 0x1f77, "\x03\xaf" },
{ 0x1f78, "\x03\xbf\x03\x00" },
{ 0x1f79, "\x03\xcc" },
{ 0x1f7a, "\x03\xc5\x03\x00" },
{ 0x1f7b, "\x03\xcd" },
{ 0x1f7c, "\x03\xc9\x03\x00" },
{ 0x1f7d, "\x03\xce" },
{ 0x1f80, "\x1f\x00\x03\x45" },
{ 0x1f81, "\x1f\x01\x03\x45" },
{ 0x1f82, "\x1f\x02\x03\x45" },
{ 0x1f83, "\x1f\x03\x03\x45" },
{ 0x1f84, "\x1f\x04\x03\x45" },
{ 0x1f85, "\x1f\x05\x03\x45" },
{ 0x1f86, "\x1f\x06\x03\x45" },
{ 0x1f87, "\x1f\x07\x03\x45" },
{ 0x1f88, "\x1f\x08\x03\x45" },
{ 0x1f89, "\x1f\x09\x03\x45" },
{ 0x1f8a, "\x1f\x0a\x03\x45" },
{ 0x1f8b, "\x1f\x0b\x03\x45" },
{ 0x1f8c, "\x1f\x0c\x03\x45" },
{ 0x1f8d, "\x1f\x0d\x03\x45" },
{ 0x1f8e, "\x1f\x0e\x03\x45" },
{ 0x1f8f, "\x1f\x0f\x03\x45" },
{ 0x1f90, "\x1f\x20\x03\x45" },
{ 0x1f91, "\x1f\x21\x03\x45" },
{ 0x1f92, "\x1f\x22\x03\x45" },
{ 0x1f93, "\x1f\x23\x03\x45" },
{ 0x1f94, "\x1f\x24\x03\x45" },
{ 0x1f95, "\x1f\x25\x03\x45" },
{ 0x1f96, "\x1f\x26\x03\x45" },
{ 0x1f97, "\x1f\x27\x03\x45" },
{ 0x1f98, "\x1f\x28\x03\x45" },
{ 0x1f99, "\x1f\x29\x03\x45" },
{ 0x1f9a, "\x1f\x2a\x03\x45" },
{ 0x1f9b, "\x1f\x2b\x03\x45" },
{ 0x1f9c, "\x1f\x2c\x03\x45" },
{ 0x1f9d, "\x1f\x2d\x03\x45" },
{ 0x1f9e, "\x1f\x2e\x03\x45" },
{ 0x1f9f, "\x1f\x2f\x03\x45" },
{ 0x1fa0, "\x1f\x60\x03\x45" },
{ 0x1fa1, "\x1f\x61\x03\x45" },
{ 0x1fa2, "\x1f\x62\x03\x45" },
{ 0x1fa3, "\x1f\x63\x03\x45" },
{ 0x1fa4, "\x1f\x64\x03\x45" },
{ 0x1fa5, "\x1f\x65\x03\x45" },
{ 0x1fa6, "\x1f\x66\x03\x45" },
{ 0x1fa7, "\x1f\x67\x03\x45" },
{ 0x1fa8, "\x1f\x68\x03\x45" },
{ 0x1fa9, "\x1f\x69\x03\x45" },
{ 0x1faa, "\x1f\x6a\x03\x45" },
{ 0x1fab, "\x1f\x6b\x03\x45" },
{ 0x1fac, "\x1f\x6c\x03\x45" },
{ 0x1fad, "\x1f\x6d\x03\x45" },
{ 0x1fae, "\x1f\x6e\x03\x45" },
{ 0x1faf, "\x1f\x6f\x03\x45" },
{ 0x1fb0, "\x03\xb1\x03\x06" },
{ 0x1fb1, "\x03\xb1\x03\x04" },
{ 0x1fb2, "\x1f\x70\x03\x45" },
{ 0x1fb3, "\x03\xb1\x03\x45" },
{ 0x1fb4, "\x03\xac\x03\x45" },
{ 0x1fb6, "\x03\xb1\x03\x42" },
{ 0x1fb7, "\x1f\xb6\x03\x45" },
{ 0x1fb8, "\x03\x91\x03\x06" },
{ 0x1fb9, "\x03\x91\x03\x04" },
{ 0x1fba, "\x03\x91\x03\x00" },
{ 0x1fbb, "\x03\x86" },
{ 0x1fbc, "\x03\x91\x03\x45" },
{ 0x1fbe, "\x03\xb9" },
{ 0x1fc1, "\x00\xa8\x03\x42" },
{ 0x1fc2, "\x1f\x74\x03\x45" },
{ 0x1fc3, "\x03\xb7\x03\x45" },
{ 0x1fc4, "\x03\xae\x03\x45" },
{ 0x1fc6, "\x03\xb7\x03\x42" },
{ 0x1fc7, "\x1f\xc6\x03\x45" },
{ 0x1fc8, "\x03\x95\x03\x00" },
{ 0x1fc9, "\x03\x88" },
{ 0x1fca, "\x03\x97\x03\x00" },
{ 0x1fcb, "\x03\x89" },
{ 0x1fcc, "\x03\x97\x03\x45" },
{ 0x1fcd, "\x1f\xbf\x03\x00" },
{ 0x1fce, "\x1f\xbf\x03\x01" },
{ 0x1fcf, "\x1f\xbf\x03\x42" },
{ 0x1fd0, "\x03\xb9\x03\x06" },
{ 0x1fd1, "\x03\xb9\x03\x04" },
{ 0x1fd2, "\x03\xca\x03\x00" },
{ 0x1fd3, "\x03\x90" },
{ 0x1fd6, "\x03\xb9\x03\x42" },
{ 0x1fd7, "\x03\xca\x03\x42" },
{ 0x1fd8, "\x03\x99\x03\x06" },
{ 0x1fd9, "\x03\x99\x03\x04" },
{ 0x1fda, "\x03\x99\x03\x00" },
{ 0x1fdb, "\x03\x8a" },
{ 0x1fdd, "\x1f\xfe\x03\x00" },
{ 0x1fde, "\x1f\xfe\x03\x01" },
{ 0x1fdf, "\x1f\xfe\x03\x42" },
{ 0x1fe0, "\x03\xc5\x03\x06" },
{ 0x1fe1, "\x03\xc5\x03\x04" },
{ 0x1fe2, "\x03\xcb\x03\x00" },
{ 0x1fe3, "\x03\xb0" },
{ 0x1fe4, "\x03\xc1\x03\x13" },
{ 0x1fe5, "\x03\xc1\x03\x14" },
{ 0x1fe6, "\x03\xc5\x03\x42" },
{ 0x1fe7, "\x03\xcb\x03\x42" },
{ 0x1fe8, "\x03\xa5\x03\x06" },
{ 0x1fe9, "\x03\xa5\x03\x04" },
{ 0x1fea, "\x03\xa5\x03\x00" },
{ 0x1feb, "\x03\x8e" },
{ 0x1fec, "\x03\xa1\x03\x14" },
{ 0x1fed, "\x00\xa8\x03\x00" },
{ 0x1fee, "\x03\x85" },
{ 0x1fef, "\x00\x60" },
{ 0x1ff2, "\x1f\x7c\x03\x45" },
{ 0x1ff3, "\x03\xc9\x03\x45" },
{ 0x1ff4, "\x03\xce\x03\x45" },
{ 0x1ff6, "\x03\xc9\x03\x42" },
{ 0x1ff7, "\x1f\xf6\x03\x45" },
{ 0x1ff8, "\x03\x9f\x03\x00" },
{ 0x1ff9, "\x03\x8c" },
{ 0x1ffa, "\x03\xa9\x03\x00" },
{ 0x1ffb, "\x03\x8f" },
{ 0x1ffc, "\x03\xa9\x03\x45" },
{ 0x1ffd, "\x00\xb4" },
{ 0x2000, "\x20\x02" },
{ 0x2001, "\x20\x03" },
{ 0x2126, "\x03\xa9" },
{ 0x212a, "\x00\x4b" },
{ 0x212b, "\x00\xc5" },
{ 0x219a, "\x21\x90\x03\x38" },
{ 0x219b, "\x21\x92\x03\x38" },
{ 0x21ae, "\x21\x94\x03\x38" },
{ 0x21cd, "\x21\xd0\x03\x38" },
{ 0x21ce, "\x21\xd4\x03\x38" },
{ 0x21cf, "\x21\xd2\x03\x38" },
{ 0x2204, "\x22\x03\x03\x38" },
{ 0x2209, "\x22\x08\x03\x38" },
{ 0x220c, "\x22\x0b\x03\x38" },
{ 0x2224, "\x22\x23\x03\x38" },
{ 0x2226, "\x22\x25\x03\x38" },
{ 0x2241, "\x22\x3c\x03\x38" },
{ 0x2244, "\x22\x43\x03\x38" },
{ 0x2247, "\x22\x45\x03\x38" },
{ 0x2249, "\x22\x48\x03\x38" },
{ 0x2260, "\x00\x3d\x03\x38" },
{ 0x2262, "\x22\x61\x03\x38" },
{ 0x226d, "\x22\x4d\x03\x38" },
{ 0x226e, "\x00\x3c\x03\x38" },
{ 0x226f, "\x00\x3e\x03\x38" },
{ 0x2270, "\x22\x64\x03\x38" },
{ 0x2271, "\x22\x65\x03\x38" },
{ 0x2274, "\x22\x72\x03\x38" },
{ 0x2275, "\x22\x73\x03\x38" },
{ 0x2278, "\x22\x76\x03\x38" },
{ 0x2279, "\x22\x77\x03\x38" },
{ 0x2280, "\x22\x7a\x03\x38" },
{ 0x2281, "\x22\x7b\x03\x38" },
{ 0x2284, "\x22\x82\x03\x38" },
{ 0x2285, "\x22\x83\x03\x38" },
{ 0x2288, "\x22\x86\x03\x38" },
{ 0x2289, "\x22\x87\x03\x38" },
{ 0x22ac, "\x22\xa2\x03\x38" },
{ 0x22ad, "\x22\xa8\x03\x38" },
{ 0x22ae, "\x22\xa9\x03\x38" },
{ 0x22af, "\x22\xab\x03\x38" },
{ 0x22e0, "\x22\x7c\x03\x38" },
{ 0x22e1, "\x22\x7d\x03\x38" },
{ 0x22e2, "\x22\x91\x03\x38" },
{ 0x22e3, "\x22\x92\x03\x38" },
{ 0x22ea, "\x22\xb2\x03\x38" },
{ 0x22eb, "\x22\xb3\x03\x38" },
{ 0x22ec, "\x22\xb4\x03\x38" },
{ 0x22ed, "\x22\xb5\x03\x38" },
{ 0x2329, "\x30\x08" },
{ 0x232a, "\x30\x09" },
{ 0x304c, "\x30\x4b\x30\x99" },
{ 0x304e, "\x30\x4d\x30\x99" },
{ 0x3050, "\x30\x4f\x30\x99" },
{ 0x3052, "\x30\x51\x30\x99" },
{ 0x3054, "\x30\x53\x30\x99" },
{ 0x3056, "\x30\x55\x30\x99" },
{ 0x3058, "\x30\x57\x30\x99" },
{ 0x305a, "\x30\x59\x30\x99" },
{ 0x305c, "\x30\x5b\x30\x99" },
{ 0x305e, "\x30\x5d\x30\x99" },
{ 0x3060, "\x30\x5f\x30\x99" },
{ 0x3062, "\x30\x61\x30\x99" },
{ 0x3065, "\x30\x64\x30\x99" },
{ 0x3067, "\x30\x66\x30\x99" },
{ 0x3069, "\x30\x68\x30\x99" },
{ 0x3070, "\x30\x6f\x30\x99" },
{ 0x3071, "\x30\x6f\x30\x9a" },
{ 0x3073, "\x30\x72\x30\x99" },
{ 0x3074, "\x30\x72\x30\x9a" },
{ 0x3076, "\x30\x75\x30\x99" },
{ 0x3077, "\x30\x75\x30\x9a" },
{ 0x3079, "\x30\x78\x30\x99" },
{ 0x307a, "\x30\x78\x30\x9a" },
{ 0x307c, "\x30\x7b\x30\x99" },
{ 0x307d, "\x30\x7b\x30\x9a" },
{ 0x3094, "\x30\x46\x30\x99" },
{ 0x309e, "\x30\x9d\x30\x99" },
{ 0x30ac, "\x30\xab\x30\x99" },
{ 0x30ae, "\x30\xad\x30\x99" },
{ 0x30b0, "\x30\xaf\x30\x99" },
{ 0x30b2, "\x30\xb1\x30\x99" },
{ 0x30b4, "\x30\xb3\x30\x99" },
{ 0x30b6, "\x30\xb5\x30\x99" },
{ 0x30b8, "\x30\xb7\x30\x99" },
{ 0x30ba, "\x30\xb9\x30\x99" },
{ 0x30bc, "\x30\xbb\x30\x99" },
{ 0x30be, "\x30\xbd\x30\x99" },
{ 0x30c0, "\x30\xbf\x30\x99" },
{ 0x30c2, "\x30\xc1\x30\x99" },
{ 0x30c5, "\x30\xc4\x30\x99" },
{ 0x30c7, "\x30\xc6\x30\x99" },
{ 0x30c9, "\x30\xc8\x30\x99" },
{ 0x30d0, "\x30\xcf\x30\x99" },
{ 0x30d1, "\x30\xcf\x30\x9a" },
{ 0x30d3, "\x30\xd2\x30\x99" },
{ 0x30d4, "\x30\xd2\x30\x9a" },
{ 0x30d6, "\x30\xd5\x30\x99" },
{ 0x30d7, "\x30\xd5\x30\x9a" },
{ 0x30d9, "\x30\xd8\x30\x99" },
{ 0x30da, "\x30\xd8\x30\x9a" },
{ 0x30dc, "\x30\xdb\x30\x99" },
{ 0x30dd, "\x30\xdb\x30\x9a" },
{ 0x30f4, "\x30\xa6\x30\x99" },
{ 0x30f7, "\x30\xef\x30\x99" },
{ 0x30f8, "\x30\xf0\x30\x99" },
{ 0x30f9, "\x30\xf1\x30\x99" },
{ 0x30fa, "\x30\xf2\x30\x99" },
{ 0x30fe, "\x30\xfd\x30\x99" },
{ 0xf900, "\x8c\x48" },
{ 0xf901, "\x66\xf4" },
{ 0xf902, "\x8e\xca" },
{ 0xf903, "\x8c\xc8" },
{ 0xf904, "\x6e\xd1" },
{ 0xf905, "\x4e\x32" },
{ 0xf906, "\x53\xe5" },
{ 0xf907, "\x9f\x9c" },
{ 0xf908, "\x9f\x9c" },
{ 0xf909, "\x59\x51" },
{ 0xf90a, "\x91\xd1" },
{ 0xf90b, "\x55\x87" },
{ 0xf90c, "\x59\x48" },
{ 0xf90d, "\x61\xf6" },
{ 0xf90e, "\x76\x69" },
{ 0xf90f, "\x7f\x85" },
{ 0xf910, "\x86\x3f" },
{ 0xf911, "\x87\xba" },
{ 0xf912, "\x88\xf8" },
{ 0xf913, "\x90\x8f" },
{ 0xf914, "\x6a\x02" },
{ 0xf915, "\x6d\x1b" },
{ 0xf916, "\x70\xd9" },
{ 0xf917, "\x73\xde" },
{ 0xf918, "\x84\x3d" },
{ 0xf919, "\x91\x6a" },
{ 0xf91a, "\x99\xf1" },
{ 0xf91b, "\x4e\x82" },
{ 0xf91c, "\x53\x75" },
{ 0xf91d, "\x6b\x04" },
{ 0xf91e, "\x72\x1b" },
{ 0xf91f, "\x86\x2d" },
{ 0xf920, "\x9e\x1e" },
{ 0xf921, "\x5d\x50" },
{ 0xf922, "\x6f\xeb" },
{ 0xf923, "\x85\xcd" },
{ 0xf924, "\x89\x64" },
{ 0xf925, "\x62\xc9" },
{ 0xf926, "\x81\xd8" },
{ 0xf927, "\x88\x1f" },
{ 0xf928, "\x5e\xca" },
{ 0xf929, "\x67\x17" },
{ 0xf92a, "\x6d\x6a" },
{ 0xf92b, "\x72\xfc" },
{ 0xf92c, "\x90\xce" },
{ 0xf92d, "\x4f\x86" },
{ 0xf92e, "\x51\xb7" },
{ 0xf92f, "\x52\xde" },
{ 0xf930, "\x64\xc4" },
{ 0xf931, "\x6a\xd3" },
{ 0xf932, "\x72\x10" },
{ 0xf933, "\x76\xe7" },
{ 0xf934, "\x80\x01" },
{ 0xf935, "\x86\x06" },
{ 0xf936, "\x86\x5c" },
{ 0xf937, "\x8d\xef" },
{ 0xf938, "\x97\x32" },
{ 0xf939, "\x9b\x6f" },
{ 0xf93a, "\x9d\xfa" },
{ 0xf93b, "\x78\x8c" },
{ 0xf93c, "\x79\x7f" },
{ 0xf93d, "\x7d\xa0" },
{ 0xf93e, "\x83\xc9" },
{ 0xf93f, "\x93\x04" },
{ 0xf940, "\x9e\x7f" },
{ 0xf941, "\x8a\xd6" },
{ 0xf942, "\x58\xdf" },
{ 0xf943, "\x5f\x04" },
{ 0xf944, "\x7c\x60" },
{ 0xf945, "\x80\x7e" },
{ 0xf946, "\x72\x62" },
{ 0xf947, "\x78\xca" },
{ 0xf948, "\x8c\xc2" },
{ 0xf949, "\x96\xf7" },
{ 0xf94a, "\x58\xd8" },
{ 0xf94b, "\x5c\x62" },
{ 0xf94c, "\x6a\x13" },
{ 0xf94d, "\x6d\xda" },
{ 0xf94e, "\x6f\x0f" },
{ 0xf94f, "\x7d\x2f" },
{ 0xf950, "\x7e\x37" },
{ 0xf951, "\x96\xfb" },
{ 0xf952, "\x52\xd2" },
{ 0xf953, "\x80\x8b" },
{ 0xf954, "\x51\xdc" },
{ 0xf955, "\x51\xcc" },
{ 0xf956, "\x7a\x1c" },
{ 0xf957, "\x7d\xbe" },
{ 0xf958, "\x83\xf1" },
{ 0xf959, "\x96\x75" },
{ 0xf95a, "\x8b\x80" },
{ 0xf95b, "\x62\xcf" },
{ 0xf95c, "\x6a\x02" },
{ 0xf95d, "\x8a\xfe" },
{ 0xf95e, "\x4e\x39" },
{ 0xf95f, "\x5b\xe7" },
{ 0xf960, "\x60\x12" },
{ 0xf961, "\x73\x87" },
{ 0xf962, "\x75\x70" },
{ 0xf963, "\x53\x17" },
{ 0xf964, "\x78\xfb" },
{ 0xf965, "\x4f\xbf" },
{ 0xf966, "\x5f\xa9" },
{ 0xf967, "\x4e\x0d" },
{ 0xf968, "\x6c\xcc" },
{ 0xf969, "\x65\x78" },
{ 0xf96a, "\x7d\x22" },
{ 0xf96b, "\x53\xc3" },
{ 0xf96c, "\x58\x5e" },
{ 0xf96d, "\x77\x01" },
{ 0xf96e, "\x84\x49" },
{ 0xf96f, "\x8a\xaa" },
{ 0xf970, "\x6b\xba" },
{ 0xf971, "\x8f\xb0" },
{ 0xf972, "\x6c\x88" },
{ 0xf973, "\x62\xfe" },
{ 0xf974, "\x82\xe5" },
{ 0xf975, "\x63\xa0" },
{ 0xf976, "\x75\x65" },
{ 0xf977, "\x4e\xae" },
{ 0xf978, "\x51\x69" },
{ 0xf979, "\x51\xc9" },
{ 0xf97a, "\x68\x81" },
{ 0xf97b, "\x7c\xe7" },
{ 0xf97c, "\x82\x6f" },
{ 0xf97d, "\x8a\xd2" },
{ 0xf97e, "\x91\xcf" },
{ 0xf97f, "\x52\xf5" },
{ 0xf980, "\x54\x42" },
{ 0xf981, "\x59\x73" },
{ 0xf982, "\x5e\xec" },
{ 0xf983, "\x65\xc5" },
{ 0xf984, "\x6f\xfe" },
{ 0xf985, "\x79\x2a" },
{ 0xf986, "\x95\xad" },
{ 0xf987, "\x9a\x6a" },
{ 0xf988, "\x9e\x97" },
{ 0xf989, "\x9e\xce" },
{ 0xf98a, "\x52\x9b" },
{ 0xf98b, "\x66\xc6" },
{ 0xf98c, "\x6b\x77" },
{ 0xf98d, "\x8f\x62" },
{ 0xf98e, "\x5e\x74" },
{ 0xf98f, "\x61\x90" },
{ 0xf990, "\x62\x00" },
{ 0xf991, "\x64\x9a" },
{ 0xf992, "\x6f\x23" },
{ 0xf993, "\x71\x49" },
{ 0xf994, "\x74\x89" },
{ 0xf995, "\x79\xca" },
{ 0xf996, "\x7d\xf4" },
{ 0xf997, "\x80\x6f" },
{ 0xf998, "\x8f\x26" },
{ 0xf999, "\x84\xee" },
{ 0xf99a, "\x90\x23" },
{ 0xf99b, "\x93\x4a" },
{ 0xf99c, "\x52\x17" },
{ 0xf99d, "\x52\xa3" },
{ 0xf99e, "\x54\xbd" },
{ 0xf99f, "\x70\xc8" },
{ 0xf9a0, "\x88\xc2" },
{ 0xf9a1, "\x8a\xaa" },
{ 0xf9a2, "\x5e\xc9" },
{ 0xf9a3, "\x5f\xf5" },
{ 0xf9a4, "\x63\x7b" },
{ 0xf9a5, "\x6b\xae" },
{ 0xf9a6, "\x7c\x3e" },
{ 0xf9a7, "\x73\x75" },
{ 0xf9a8, "\x4e\xe4" },
{ 0xf9a9, "\x56\xf9" },
{ 0xf9aa, "\x5b\xe7" },
{ 0xf9ab, "\x5d\xba" },
{ 0xf9ac, "\x60\x1c" },
{ 0xf9ad, "\x73\xb2" },
{ 0xf9ae, "\x74\x69" },
{ 0xf9af, "\x7f\x9a" },
{ 0xf9b0, "\x80\x46" },
{ 0xf9b1, "\x92\x34" },
{ 0xf9b2, "\x96\xf6" },
{ 0xf9b3, "\x97\x48" },
{ 0xf9b4, "\x98\x18" },
{ 0xf9b5, "\x4f\x8b" },
{ 0xf9b6, "\x79\xae" },
{ 0xf9b7, "\x91\xb4" },
{ 0xf9b8, "\x96\xb8" },
{ 0xf9b9, "\x60\xe1" },
{ 0xf9ba, "\x4e\x86" },
{ 0xf9bb, "\x50\xda" },
{ 0xf9bc, "\x5b\xee" },
{ 0xf9bd, "\x5c\x3f" },
{ 0xf9be, "\x65\x99" },
{ 0xf9bf, "\x6a\x02" },
{ 0xf9c0, "\x71\xce" },
{ 0xf9c1, "\x76\x42" },
{ 0xf9c2, "\x84\xfc" },
{ 0xf9c3, "\x90\x7c" },
{ 0xf9c4, "\x9f\x8d" },
{ 0xf9c5, "\x66\x88" },
{ 0xf9c6, "\x96\x2e" },
{ 0xf9c7, "\x52\x89" },
{ 0xf9c8, "\x67\x7b" },
{ 0xf9c9, "\x67\xf3" },
{ 0xf9ca, "\x6d\x41" },
{ 0xf9cb, "\x6e\x9c" },
{ 0xf9cc, "\x74\x09" },
{ 0xf9cd, "\x75\x59" },
{ 0xf9ce, "\x78\x6b" },
{ 0xf9cf, "\x7d\x10" },
{ 0xf9d0, "\x98\x5e" },
{ 0xf9d1, "\x51\x6d" },
{ 0xf9d2, "\x62\x2e" },
{ 0xf9d3, "\x96\x78" },
{ 0xf9d4, "\x50\x2b" },
{ 0xf9d5, "\x5d\x19" },
{ 0xf9d6, "\x6d\xea" },
{ 0xf9d7, "\x8f\x2a" },
{ 0xf9d8, "\x5f\x8b" },
{ 0xf9d9, "\x61\x44" },
{ 0xf9da, "\x68\x17" },
{ 0xf9db, "\x73\x87" },
{ 0xf9dc, "\x96\x86" },
{ 0xf9dd, "\x52\x29" },
{ 0xf9de, "\x54\x0f" },
{ 0xf9df, "\x5c\x65" },
{ 0xf9e0, "\x66\x13" },
{ 0xf9e1, "\x67\x4e" },
{ 0xf9e2, "\x68\xa8" },
{ 0xf9e3, "\x6c\xe5" },
{ 0xf9e4, "\x74\x06" },
{ 0xf9e5, "\x75\xe2" },
{ 0xf9e6, "\x7f\x79" },
{ 0xf9e7, "\x88\xcf" },
{ 0xf9e8, "\x88\xe1" },
{ 0xf9e9, "\x91\xcc" },
{ 0xf9ea, "\x96\xe2" },
{ 0xf9eb, "\x53\x3f" },
{ 0xf9ec, "\x6e\xba" },
{ 0xf9ed, "\x54\x1d" },
{ 0xf9ee, "\x71\xd0" },
{ 0xf9ef, "\x74\x98" },
{ 0xf9f0, "\x85\xfa" },
{ 0xf9f1, "\x96\xa3" },
{ 0xf9f2, "\x9c\x57" },
{ 0xf9f3, "\x9e\x9f" },
{ 0xf9f4, "\x67\x97" },
{ 0xf9f5, "\x6d\xcb" },
{ 0xf9f6, "\x81\xe8" },
{ 0xf9f7, "\x7a\xcb" },
{ 0xf9f8, "\x7b\x20" },
{ 0xf9f9, "\x7c\x92" },
{ 0xf9fa, "\x72\xc0" },
{ 0xf9fb, "\x70\x99" },
{ 0xf9fc, "\x8b\x58" },
{ 0xf9fd, "\x4e\xc0" },
{ 0xf9fe, "\x83\x36" },
{ 0xf9ff, "\x52\x3a" },
{ 0xfa00, "\x52\x07" },
{ 0xfa01, "\x5e\xa6" },
{ 0xfa02, "\x62\xd3" },
{ 0xfa03, "\x7c\xd6" },
{ 0xfa04, "\x5b\x85" },
{ 0xfa05, "\x6d\x1e" },
{ 0xfa06, "\x66\xb4" },
{ 0xfa07, "\x8f\x3b" },
{ 0xfa08, "\x88\x4c" },
{ 0xfa09, "\x96\x4d" },
{ 0xfa0a, "\x89\x8b" },
{ 0xfa0b, "\x5e\xd3" },
{ 0xfa0c, "\x51\x40" },
{ 0xfa0d, "\x55\xc0" },
{ 0xfa10, "\x58\x5a" },
{ 0xfa12, "\x66\x74" },
{ 0xfa15, "\x51\xde" },
{ 0xfa16, "\x73\x2a" },
{ 0xfa17, "\x76\xca" },
{ 0xfa18, "\x79\x3c" },
{ 0xfa19, "\x79\x5e" },
{ 0xfa1a, "\x79\x65" },
{ 0xfa1b, "\x79\x8f" },
{ 0xfa1c, "\x97\x56" },
{ 0xfa1d, "\x7c\xbe" },
{ 0xfa1e, "\x7f\xbd" },
{ 0xfa20, "\x86\x12" },
{ 0xfa22, "\x8a\xf8" },
{ 0xfa25, "\x90\x38" },
{ 0xfa26, "\x90\xfd" },
{ 0xfa2a, "\x98\xef" },
{ 0xfa2b, "\x98\xfc" },
{ 0xfa2c, "\x99\x28" },
{ 0xfa2d, "\x9d\xb4" },
{ 0xfb1d, "\x05\xd9\x05\xb4" },
{ 0xfb1f, "\x05\xf2\x05\xb7" },
{ 0xfb2a, "\x05\xe9\x05\xc1" },
{ 0xfb2b, "\x05\xe9\x05\xc2" },
{ 0xfb2c, "\xfb\x49\x05\xc1" },
{ 0xfb2d, "\xfb\x49\x05\xc2" },
{ 0xfb2e, "\x05\xd0\x05\xb7" },
{ 0xfb2f, "\x05\xd0\x05\xb8" },
{ 0xfb30, "\x05\xd0\x05\xbc" },
{ 0xfb31, "\x05\xd1\x05\xbc" },
{ 0xfb32, "\x05\xd2\x05\xbc" },
{ 0xfb33, "\x05\xd3\x05\xbc" },
{ 0xfb34, "\x05\xd4\x05\xbc" },
{ 0xfb35, "\x05\xd5\x05\xbc" },
{ 0xfb36, "\x05\xd6\x05\xbc" },
{ 0xfb38, "\x05\xd8\x05\xbc" },
{ 0xfb39, "\x05\xd9\x05\xbc" },
{ 0xfb3a, "\x05\xda\x05\xbc" },
{ 0xfb3b, "\x05\xdb\x05\xbc" },
{ 0xfb3c, "\x05\xdc\x05\xbc" },
{ 0xfb3e, "\x05\xde\x05\xbc" },
{ 0xfb40, "\x05\xe0\x05\xbc" },
{ 0xfb41, "\x05\xe1\x05\xbc" },
{ 0xfb43, "\x05\xe3\x05\xbc" },
{ 0xfb44, "\x05\xe4\x05\xbc" },
{ 0xfb46, "\x05\xe6\x05\xbc" },
{ 0xfb47, "\x05\xe7\x05\xbc" },
{ 0xfb48, "\x05\xe8\x05\xbc" },
{ 0xfb49, "\x05\xe9\x05\xbc" },
{ 0xfb4a, "\x05\xea\x05\xbc" },
{ 0xfb4b, "\x05\xd5\x05\xb9" },
{ 0xfb4c, "\x05\xd1\x05\xbf" },
{ 0xfb4d, "\x05\xdb\x05\xbf" },
{ 0xfb4e, "\x05\xe4\x05\xbf" }
};
 
static const decomp_entry full_decomposition[] =
{
{ 0x00a0, "\x00\x20" },
{ 0x00a8, "\x00\x20\x03\x08" },
{ 0x00aa, "\x00\x61" },
{ 0x00af, "\x00\x20\x03\x04" },
{ 0x00b2, "\x00\x32" },
{ 0x00b3, "\x00\x33" },
{ 0x00b4, "\x00\x20\x03\x01" },
{ 0x00b5, "\x03\xbc" },
{ 0x00b8, "\x00\x20\x03\x27" },
{ 0x00b9, "\x00\x31" },
{ 0x00ba, "\x00\x6f" },
{ 0x00bc, "\x00\x31\x20\x44\x00\x34" },
{ 0x00bd, "\x00\x31\x20\x44\x00\x32" },
{ 0x00be, "\x00\x33\x20\x44\x00\x34" },
{ 0x0132, "\x00\x49\x00\x4a" },
{ 0x0133, "\x00\x69\x00\x6a" },
{ 0x013f, "\x00\x4c\x00\xb7" },
{ 0x0140, "\x00\x6c\x00\xb7" },
{ 0x0149, "\x02\xbc\x00\x6e" },
{ 0x017f, "\x00\x73" },
{ 0x01c4, "\x00\x44\x01\x7d" },
{ 0x01c5, "\x00\x44\x01\x7e" },
{ 0x01c6, "\x00\x64\x01\x7e" },
{ 0x01c7, "\x00\x4c\x00\x4a" },
{ 0x01c8, "\x00\x4c\x00\x6a" },
{ 0x01c9, "\x00\x6c\x00\x6a" },
{ 0x01ca, "\x00\x4e\x00\x4a" },
{ 0x01cb, "\x00\x4e\x00\x6a" },
{ 0x01cc, "\x00\x6e\x00\x6a" },
{ 0x01f1, "\x00\x44\x00\x5a" },
{ 0x01f2, "\x00\x44\x00\x7a" },
{ 0x01f3, "\x00\x64\x00\x7a" },
{ 0x02b0, "\x00\x68" },
{ 0x02b1, "\x02\x66" },
{ 0x02b2, "\x00\x6a" },
{ 0x02b3, "\x00\x72" },
{ 0x02b4, "\x02\x79" },
{ 0x02b5, "\x02\x7b" },
{ 0x02b6, "\x02\x81" },
{ 0x02b7, "\x00\x77" },
{ 0x02b8, "\x00\x79" },
{ 0x02d8, "\x00\x20\x03\x06" },
{ 0x02d9, "\x00\x20\x03\x07" },
{ 0x02da, "\x00\x20\x03\x0a" },
{ 0x02db, "\x00\x20\x03\x28" },
{ 0x02dc, "\x00\x20\x03\x03" },
{ 0x02dd, "\x00\x20\x03\x0b" },
{ 0x02e0, "\x02\x63" },
{ 0x02e1, "\x00\x6c" },
{ 0x02e2, "\x00\x73" },
{ 0x02e3, "\x00\x78" },
{ 0x02e4, "\x02\x95" },
{ 0x037a, "\x00\x20\x03\x45" },
{ 0x0384, "\x00\x20\x03\x01" },
{ 0x03d0, "\x03\xb2" },
{ 0x03d1, "\x03\xb8" },
{ 0x03d2, "\x03\xa5" },
{ 0x03d5, "\x03\xc6" },
{ 0x03d6, "\x03\xc0" },
{ 0x03f0, "\x03\xba" },
{ 0x03f1, "\x03\xc1" },
{ 0x03f2, "\x03\xc2" },
{ 0x0587, "\x05\x65\x05\x82" },
{ 0x0675, "\x06\x27\x06\x74" },
{ 0x0676, "\x06\x48\x06\x74" },
{ 0x0677, "\x06\xc7\x06\x74" },
{ 0x0678, "\x06\x4a\x06\x74" },
{ 0x0e33, "\x0e\x4d\x0e\x32" },
{ 0x0eb3, "\x0e\xcd\x0e\xb2" },
{ 0x0edc, "\x0e\xab\x0e\x99" },
{ 0x0edd, "\x0e\xab\x0e\xa1" },
{ 0x0f0c, "\x0f\x0b" },
{ 0x0f77, "\x0f\xb2\x0f\x81" },
{ 0x0f79, "\x0f\xb3\x0f\x81" },
{ 0x1e9a, "\x00\x61\x02\xbe" },
{ 0x1fbd, "\x00\x20\x03\x13" },
{ 0x1fbf, "\x00\x20\x03\x13" },
{ 0x1fc0, "\x00\x20\x03\x42" },
{ 0x1ffe, "\x00\x20\x03\x14" },
{ 0x2002, "\x00\x20" },
{ 0x2003, "\x00\x20" },
{ 0x2004, "\x00\x20" },
{ 0x2005, "\x00\x20" },
{ 0x2006, "\x00\x20" },
{ 0x2007, "\x00\x20" },
{ 0x2008, "\x00\x20" },
{ 0x2009, "\x00\x20" },
{ 0x200a, "\x00\x20" },
{ 0x2011, "\x20\x10" },
{ 0x2017, "\x00\x20\x03\x33" },
{ 0x2024, "\x00\x2e" },
{ 0x2025, "\x00\x2e\x00\x2e" },
{ 0x2026, "\x00\x2e\x00\x2e\x00\x2e" },
{ 0x202f, "\x00\x20" },
{ 0x2033, "\x20\x32\x20\x32" },
{ 0x2034, "\x20\x32\x20\x32\x20\x32" },
{ 0x2036, "\x20\x35\x20\x35" },
{ 0x2037, "\x20\x35\x20\x35\x20\x35" },
{ 0x203c, "\x00\x21\x00\x21" },
{ 0x203e, "\x00\x20\x03\x05" },
{ 0x2048, "\x00\x3f\x00\x21" },
{ 0x2049, "\x00\x21\x00\x3f" },
{ 0x2070, "\x00\x30" },
{ 0x2074, "\x00\x34" },
{ 0x2075, "\x00\x35" },
{ 0x2076, "\x00\x36" },
{ 0x2077, "\x00\x37" },
{ 0x2078, "\x00\x38" },
{ 0x2079, "\x00\x39" },
{ 0x207a, "\x00\x2b" },
{ 0x207b, "\x22\x12" },
{ 0x207c, "\x00\x3d" },
{ 0x207d, "\x00\x28" },
{ 0x207e, "\x00\x29" },
{ 0x207f, "\x00\x6e" },
{ 0x2080, "\x00\x30" },
{ 0x2081, "\x00\x31" },
{ 0x2082, "\x00\x32" },
{ 0x2083, "\x00\x33" },
{ 0x2084, "\x00\x34" },
{ 0x2085, "\x00\x35" },
{ 0x2086, "\x00\x36" },
{ 0x2087, "\x00\x37" },
{ 0x2088, "\x00\x38" },
{ 0x2089, "\x00\x39" },
{ 0x208a, "\x00\x2b" },
{ 0x208b, "\x22\x12" },
{ 0x208c, "\x00\x3d" },
{ 0x208d, "\x00\x28" },
{ 0x208e, "\x00\x29" },
{ 0x20a8, "\x00\x52\x00\x73" },
{ 0x2100, "\x00\x61\x00\x2f\x00\x63" },
{ 0x2101, "\x00\x61\x00\x2f\x00\x73" },
{ 0x2102, "\x00\x43" },
{ 0x2103, "\x00\xb0\x00\x43" },
{ 0x2105, "\x00\x63\x00\x2f\x00\x6f" },
{ 0x2106, "\x00\x63\x00\x2f\x00\x75" },
{ 0x2107, "\x01\x90" },
{ 0x2109, "\x00\xb0\x00\x46" },
{ 0x210a, "\x00\x67" },
{ 0x210b, "\x00\x48" },
{ 0x210c, "\x00\x48" },
{ 0x210d, "\x00\x48" },
{ 0x210e, "\x00\x68" },
{ 0x210f, "\x01\x27" },
{ 0x2110, "\x00\x49" },
{ 0x2111, "\x00\x49" },
{ 0x2112, "\x00\x4c" },
{ 0x2113, "\x00\x6c" },
{ 0x2115, "\x00\x4e" },
{ 0x2116, "\x00\x4e\x00\x6f" },
{ 0x2119, "\x00\x50" },
{ 0x211a, "\x00\x51" },
{ 0x211b, "\x00\x52" },
{ 0x211c, "\x00\x52" },
{ 0x211d, "\x00\x52" },
{ 0x2120, "\x00\x53\x00\x4d" },
{ 0x2121, "\x00\x54\x00\x45\x00\x4c" },
{ 0x2122, "\x00\x54\x00\x4d" },
{ 0x2124, "\x00\x5a" },
{ 0x2128, "\x00\x5a" },
{ 0x212c, "\x00\x42" },
{ 0x212d, "\x00\x43" },
{ 0x212f, "\x00\x65" },
{ 0x2130, "\x00\x45" },
{ 0x2131, "\x00\x46" },
{ 0x2133, "\x00\x4d" },
{ 0x2134, "\x00\x6f" },
{ 0x2135, "\x05\xd0" },
{ 0x2136, "\x05\xd1" },
{ 0x2137, "\x05\xd2" },
{ 0x2138, "\x05\xd3" },
{ 0x2139, "\x00\x69" },
{ 0x2153, "\x00\x31\x20\x44\x00\x33" },
{ 0x2154, "\x00\x32\x20\x44\x00\x33" },
{ 0x2155, "\x00\x31\x20\x44\x00\x35" },
{ 0x2156, "\x00\x32\x20\x44\x00\x35" },
{ 0x2157, "\x00\x33\x20\x44\x00\x35" },
{ 0x2158, "\x00\x34\x20\x44\x00\x35" },
{ 0x2159, "\x00\x31\x20\x44\x00\x36" },
{ 0x215a, "\x00\x35\x20\x44\x00\x36" },
{ 0x215b, "\x00\x31\x20\x44\x00\x38" },
{ 0x215c, "\x00\x33\x20\x44\x00\x38" },
{ 0x215d, "\x00\x35\x20\x44\x00\x38" },
{ 0x215e, "\x00\x37\x20\x44\x00\x38" },
{ 0x215f, "\x00\x31\x20\x44" },
{ 0x2160, "\x00\x49" },
{ 0x2161, "\x00\x49\x00\x49" },
{ 0x2162, "\x00\x49\x00\x49\x00\x49" },
{ 0x2163, "\x00\x49\x00\x56" },
{ 0x2164, "\x00\x56" },
{ 0x2165, "\x00\x56\x00\x49" },
{ 0x2166, "\x00\x56\x00\x49\x00\x49" },
{ 0x2167, "\x00\x56\x00\x49\x00\x49\x00\x49" },
{ 0x2168, "\x00\x49\x00\x58" },
{ 0x2169, "\x00\x58" },
{ 0x216a, "\x00\x58\x00\x49" },
{ 0x216b, "\x00\x58\x00\x49\x00\x49" },
{ 0x216c, "\x00\x4c" },
{ 0x216d, "\x00\x43" },
{ 0x216e, "\x00\x44" },
{ 0x216f, "\x00\x4d" },
{ 0x2170, "\x00\x69" },
{ 0x2171, "\x00\x69\x00\x69" },
{ 0x2172, "\x00\x69\x00\x69\x00\x69" },
{ 0x2173, "\x00\x69\x00\x76" },
{ 0x2174, "\x00\x76" },
{ 0x2175, "\x00\x76\x00\x69" },
{ 0x2176, "\x00\x76\x00\x69\x00\x69" },
{ 0x2177, "\x00\x76\x00\x69\x00\x69\x00\x69" },
{ 0x2178, "\x00\x69\x00\x78" },
{ 0x2179, "\x00\x78" },
{ 0x217a, "\x00\x78\x00\x69" },
{ 0x217b, "\x00\x78\x00\x69\x00\x69" },
{ 0x217c, "\x00\x6c" },
{ 0x217d, "\x00\x63" },
{ 0x217e, "\x00\x64" },
{ 0x217f, "\x00\x6d" },
{ 0x222c, "\x22\x2b\x22\x2b" },
{ 0x222d, "\x22\x2b\x22\x2b\x22\x2b" },
{ 0x222f, "\x22\x2e\x22\x2e" },
{ 0x2230, "\x22\x2e\x22\x2e\x22\x2e" },
{ 0x2460, "\x00\x31" },
{ 0x2461, "\x00\x32" },
{ 0x2462, "\x00\x33" },
{ 0x2463, "\x00\x34" },
{ 0x2464, "\x00\x35" },
{ 0x2465, "\x00\x36" },
{ 0x2466, "\x00\x37" },
{ 0x2467, "\x00\x38" },
{ 0x2468, "\x00\x39" },
{ 0x2469, "\x00\x31\x00\x30" },
{ 0x246a, "\x00\x31\x00\x31" },
{ 0x246b, "\x00\x31\x00\x32" },
{ 0x246c, "\x00\x31\x00\x33" },
{ 0x246d, "\x00\x31\x00\x34" },
{ 0x246e, "\x00\x31\x00\x35" },
{ 0x246f, "\x00\x31\x00\x36" },
{ 0x2470, "\x00\x31\x00\x37" },
{ 0x2471, "\x00\x31\x00\x38" },
{ 0x2472, "\x00\x31\x00\x39" },
{ 0x2473, "\x00\x32\x00\x30" },
{ 0x2474, "\x00\x28\x00\x31\x00\x29" },
{ 0x2475, "\x00\x28\x00\x32\x00\x29" },
{ 0x2476, "\x00\x28\x00\x33\x00\x29" },
{ 0x2477, "\x00\x28\x00\x34\x00\x29" },
{ 0x2478, "\x00\x28\x00\x35\x00\x29" },
{ 0x2479, "\x00\x28\x00\x36\x00\x29" },
{ 0x247a, "\x00\x28\x00\x37\x00\x29" },
{ 0x247b, "\x00\x28\x00\x38\x00\x29" },
{ 0x247c, "\x00\x28\x00\x39\x00\x29" },
{ 0x247d, "\x00\x28\x00\x31\x00\x30\x00\x29" },
{ 0x247e, "\x00\x28\x00\x31\x00\x31\x00\x29" },
{ 0x247f, "\x00\x28\x00\x31\x00\x32\x00\x29" },
{ 0x2480, "\x00\x28\x00\x31\x00\x33\x00\x29" },
{ 0x2481, "\x00\x28\x00\x31\x00\x34\x00\x29" },
{ 0x2482, "\x00\x28\x00\x31\x00\x35\x00\x29" },
{ 0x2483, "\x00\x28\x00\x31\x00\x36\x00\x29" },
{ 0x2484, "\x00\x28\x00\x31\x00\x37\x00\x29" },
{ 0x2485, "\x00\x28\x00\x31\x00\x38\x00\x29" },
{ 0x2486, "\x00\x28\x00\x31\x00\x39\x00\x29" },
{ 0x2487, "\x00\x28\x00\x32\x00\x30\x00\x29" },
{ 0x2488, "\x00\x31\x00\x2e" },
{ 0x2489, "\x00\x32\x00\x2e" },
{ 0x248a, "\x00\x33\x00\x2e" },
{ 0x248b, "\x00\x34\x00\x2e" },
{ 0x248c, "\x00\x35\x00\x2e" },
{ 0x248d, "\x00\x36\x00\x2e" },
{ 0x248e, "\x00\x37\x00\x2e" },
{ 0x248f, "\x00\x38\x00\x2e" },
{ 0x2490, "\x00\x39\x00\x2e" },
{ 0x2491, "\x00\x31\x00\x30\x00\x2e" },
{ 0x2492, "\x00\x31\x00\x31\x00\x2e" },
{ 0x2493, "\x00\x31\x00\x32\x00\x2e" },
{ 0x2494, "\x00\x31\x00\x33\x00\x2e" },
{ 0x2495, "\x00\x31\x00\x34\x00\x2e" },
{ 0x2496, "\x00\x31\x00\x35\x00\x2e" },
{ 0x2497, "\x00\x31\x00\x36\x00\x2e" },
{ 0x2498, "\x00\x31\x00\x37\x00\x2e" },
{ 0x2499, "\x00\x31\x00\x38\x00\x2e" },
{ 0x249a, "\x00\x31\x00\x39\x00\x2e" },
{ 0x249b, "\x00\x32\x00\x30\x00\x2e" },
{ 0x249c, "\x00\x28\x00\x61\x00\x29" },
{ 0x249d, "\x00\x28\x00\x62\x00\x29" },
{ 0x249e, "\x00\x28\x00\x63\x00\x29" },
{ 0x249f, "\x00\x28\x00\x64\x00\x29" },
{ 0x24a0, "\x00\x28\x00\x65\x00\x29" },
{ 0x24a1, "\x00\x28\x00\x66\x00\x29" },
{ 0x24a2, "\x00\x28\x00\x67\x00\x29" },
{ 0x24a3, "\x00\x28\x00\x68\x00\x29" },
{ 0x24a4, "\x00\x28\x00\x69\x00\x29" },
{ 0x24a5, "\x00\x28\x00\x6a\x00\x29" },
{ 0x24a6, "\x00\x28\x00\x6b\x00\x29" },
{ 0x24a7, "\x00\x28\x00\x6c\x00\x29" },
{ 0x24a8, "\x00\x28\x00\x6d\x00\x29" },
{ 0x24a9, "\x00\x28\x00\x6e\x00\x29" },
{ 0x24aa, "\x00\x28\x00\x6f\x00\x29" },
{ 0x24ab, "\x00\x28\x00\x70\x00\x29" },
{ 0x24ac, "\x00\x28\x00\x71\x00\x29" },
{ 0x24ad, "\x00\x28\x00\x72\x00\x29" },
{ 0x24ae, "\x00\x28\x00\x73\x00\x29" },
{ 0x24af, "\x00\x28\x00\x74\x00\x29" },
{ 0x24b0, "\x00\x28\x00\x75\x00\x29" },
{ 0x24b1, "\x00\x28\x00\x76\x00\x29" },
{ 0x24b2, "\x00\x28\x00\x77\x00\x29" },
{ 0x24b3, "\x00\x28\x00\x78\x00\x29" },
{ 0x24b4, "\x00\x28\x00\x79\x00\x29" },
{ 0x24b5, "\x00\x28\x00\x7a\x00\x29" },
{ 0x24b6, "\x00\x41" },
{ 0x24b7, "\x00\x42" },
{ 0x24b8, "\x00\x43" },
{ 0x24b9, "\x00\x44" },
{ 0x24ba, "\x00\x45" },
{ 0x24bb, "\x00\x46" },
{ 0x24bc, "\x00\x47" },
{ 0x24bd, "\x00\x48" },
{ 0x24be, "\x00\x49" },
{ 0x24bf, "\x00\x4a" },
{ 0x24c0, "\x00\x4b" },
{ 0x24c1, "\x00\x4c" },
{ 0x24c2, "\x00\x4d" },
{ 0x24c3, "\x00\x4e" },
{ 0x24c4, "\x00\x4f" },
{ 0x24c5, "\x00\x50" },
{ 0x24c6, "\x00\x51" },
{ 0x24c7, "\x00\x52" },
{ 0x24c8, "\x00\x53" },
{ 0x24c9, "\x00\x54" },
{ 0x24ca, "\x00\x55" },
{ 0x24cb, "\x00\x56" },
{ 0x24cc, "\x00\x57" },
{ 0x24cd, "\x00\x58" },
{ 0x24ce, "\x00\x59" },
{ 0x24cf, "\x00\x5a" },
{ 0x24d0, "\x00\x61" },
{ 0x24d1, "\x00\x62" },
{ 0x24d2, "\x00\x63" },
{ 0x24d3, "\x00\x64" },
{ 0x24d4, "\x00\x65" },
{ 0x24d5, "\x00\x66" },
{ 0x24d6, "\x00\x67" },
{ 0x24d7, "\x00\x68" },
{ 0x24d8, "\x00\x69" },
{ 0x24d9, "\x00\x6a" },
{ 0x24da, "\x00\x6b" },
{ 0x24db, "\x00\x6c" },
{ 0x24dc, "\x00\x6d" },
{ 0x24dd, "\x00\x6e" },
{ 0x24de, "\x00\x6f" },
{ 0x24df, "\x00\x70" },
{ 0x24e0, "\x00\x71" },
{ 0x24e1, "\x00\x72" },
{ 0x24e2, "\x00\x73" },
{ 0x24e3, "\x00\x74" },
{ 0x24e4, "\x00\x75" },
{ 0x24e5, "\x00\x76" },
{ 0x24e6, "\x00\x77" },
{ 0x24e7, "\x00\x78" },
{ 0x24e8, "\x00\x79" },
{ 0x24e9, "\x00\x7a" },
{ 0x24ea, "\x00\x30" },
{ 0x2e9f, "\x6b\xcd" },
{ 0x2ef3, "\x9f\x9f" },
{ 0x2f00, "\x4e\x00" },
{ 0x2f01, "\x4e\x28" },
{ 0x2f02, "\x4e\x36" },
{ 0x2f03, "\x4e\x3f" },
{ 0x2f04, "\x4e\x59" },
{ 0x2f05, "\x4e\x85" },
{ 0x2f06, "\x4e\x8c" },
{ 0x2f07, "\x4e\xa0" },
{ 0x2f08, "\x4e\xba" },
{ 0x2f09, "\x51\x3f" },
{ 0x2f0a, "\x51\x65" },
{ 0x2f0b, "\x51\x6b" },
{ 0x2f0c, "\x51\x82" },
{ 0x2f0d, "\x51\x96" },
{ 0x2f0e, "\x51\xab" },
{ 0x2f0f, "\x51\xe0" },
{ 0x2f10, "\x51\xf5" },
{ 0x2f11, "\x52\x00" },
{ 0x2f12, "\x52\x9b" },
{ 0x2f13, "\x52\xf9" },
{ 0x2f14, "\x53\x15" },
{ 0x2f15, "\x53\x1a" },
{ 0x2f16, "\x53\x38" },
{ 0x2f17, "\x53\x41" },
{ 0x2f18, "\x53\x5c" },
{ 0x2f19, "\x53\x69" },
{ 0x2f1a, "\x53\x82" },
{ 0x2f1b, "\x53\xb6" },
{ 0x2f1c, "\x53\xc8" },
{ 0x2f1d, "\x53\xe3" },
{ 0x2f1e, "\x56\xd7" },
{ 0x2f1f, "\x57\x1f" },
{ 0x2f20, "\x58\xeb" },
{ 0x2f21, "\x59\x02" },
{ 0x2f22, "\x59\x0a" },
{ 0x2f23, "\x59\x15" },
{ 0x2f24, "\x59\x27" },
{ 0x2f25, "\x59\x73" },
{ 0x2f26, "\x5b\x50" },
{ 0x2f27, "\x5b\x80" },
{ 0x2f28, "\x5b\xf8" },
{ 0x2f29, "\x5c\x0f" },
{ 0x2f2a, "\x5c\x22" },
{ 0x2f2b, "\x5c\x38" },
{ 0x2f2c, "\x5c\x6e" },
{ 0x2f2d, "\x5c\x71" },
{ 0x2f2e, "\x5d\xdb" },
{ 0x2f2f, "\x5d\xe5" },
{ 0x2f30, "\x5d\xf1" },
{ 0x2f31, "\x5d\xfe" },
{ 0x2f32, "\x5e\x72" },
{ 0x2f33, "\x5e\x7a" },
{ 0x2f34, "\x5e\x7f" },
{ 0x2f35, "\x5e\xf4" },
{ 0x2f36, "\x5e\xfe" },
{ 0x2f37, "\x5f\x0b" },
{ 0x2f38, "\x5f\x13" },
{ 0x2f39, "\x5f\x50" },
{ 0x2f3a, "\x5f\x61" },
{ 0x2f3b, "\x5f\x73" },
{ 0x2f3c, "\x5f\xc3" },
{ 0x2f3d, "\x62\x08" },
{ 0x2f3e, "\x62\x36" },
{ 0x2f3f, "\x62\x4b" },
{ 0x2f40, "\x65\x2f" },
{ 0x2f41, "\x65\x34" },
{ 0x2f42, "\x65\x87" },
{ 0x2f43, "\x65\x97" },
{ 0x2f44, "\x65\xa4" },
{ 0x2f45, "\x65\xb9" },
{ 0x2f46, "\x65\xe0" },
{ 0x2f47, "\x65\xe5" },
{ 0x2f48, "\x66\xf0" },
{ 0x2f49, "\x67\x08" },
{ 0x2f4a, "\x67\x28" },
{ 0x2f4b, "\x6b\x20" },
{ 0x2f4c, "\x6b\x62" },
{ 0x2f4d, "\x6b\x79" },
{ 0x2f4e, "\x6b\xb3" },
{ 0x2f4f, "\x6b\xcb" },
{ 0x2f50, "\x6b\xd4" },
{ 0x2f51, "\x6b\xdb" },
{ 0x2f52, "\x6c\x0f" },
{ 0x2f53, "\x6c\x14" },
{ 0x2f54, "\x6c\x34" },
{ 0x2f55, "\x70\x6b" },
{ 0x2f56, "\x72\x2a" },
{ 0x2f57, "\x72\x36" },
{ 0x2f58, "\x72\x3b" },
{ 0x2f59, "\x72\x3f" },
{ 0x2f5a, "\x72\x47" },
{ 0x2f5b, "\x72\x59" },
{ 0x2f5c, "\x72\x5b" },
{ 0x2f5d, "\x72\xac" },
{ 0x2f5e, "\x73\x84" },
{ 0x2f5f, "\x73\x89" },
{ 0x2f60, "\x74\xdc" },
{ 0x2f61, "\x74\xe6" },
{ 0x2f62, "\x75\x18" },
{ 0x2f63, "\x75\x1f" },
{ 0x2f64, "\x75\x28" },
{ 0x2f65, "\x75\x30" },
{ 0x2f66, "\x75\x8b" },
{ 0x2f67, "\x75\x92" },
{ 0x2f68, "\x76\x76" },
{ 0x2f69, "\x76\x7d" },
{ 0x2f6a, "\x76\xae" },
{ 0x2f6b, "\x76\xbf" },
{ 0x2f6c, "\x76\xee" },
{ 0x2f6d, "\x77\xdb" },
{ 0x2f6e, "\x77\xe2" },
{ 0x2f6f, "\x77\xf3" },
{ 0x2f70, "\x79\x3a" },
{ 0x2f71, "\x79\xb8" },
{ 0x2f72, "\x79\xbe" },
{ 0x2f73, "\x7a\x74" },
{ 0x2f74, "\x7a\xcb" },
{ 0x2f75, "\x7a\xf9" },
{ 0x2f76, "\x7c\x73" },
{ 0x2f77, "\x7c\xf8" },
{ 0x2f78, "\x7f\x36" },
{ 0x2f79, "\x7f\x51" },
{ 0x2f7a, "\x7f\x8a" },
{ 0x2f7b, "\x7f\xbd" },
{ 0x2f7c, "\x80\x01" },
{ 0x2f7d, "\x80\x0c" },
{ 0x2f7e, "\x80\x12" },
{ 0x2f7f, "\x80\x33" },
{ 0x2f80, "\x80\x7f" },
{ 0x2f81, "\x80\x89" },
{ 0x2f82, "\x81\xe3" },
{ 0x2f83, "\x81\xea" },
{ 0x2f84, "\x81\xf3" },
{ 0x2f85, "\x81\xfc" },
{ 0x2f86, "\x82\x0c" },
{ 0x2f87, "\x82\x1b" },
{ 0x2f88, "\x82\x1f" },
{ 0x2f89, "\x82\x6e" },
{ 0x2f8a, "\x82\x72" },
{ 0x2f8b, "\x82\x78" },
{ 0x2f8c, "\x86\x4d" },
{ 0x2f8d, "\x86\x6b" },
{ 0x2f8e, "\x88\x40" },
{ 0x2f8f, "\x88\x4c" },
{ 0x2f90, "\x88\x63" },
{ 0x2f91, "\x89\x7e" },
{ 0x2f92, "\x89\x8b" },
{ 0x2f93, "\x89\xd2" },
{ 0x2f94, "\x8a\x00" },
{ 0x2f95, "\x8c\x37" },
{ 0x2f96, "\x8c\x46" },
{ 0x2f97, "\x8c\x55" },
{ 0x2f98, "\x8c\x78" },
{ 0x2f99, "\x8c\x9d" },
{ 0x2f9a, "\x8d\x64" },
{ 0x2f9b, "\x8d\x70" },
{ 0x2f9c, "\x8d\xb3" },
{ 0x2f9d, "\x8e\xab" },
{ 0x2f9e, "\x8e\xca" },
{ 0x2f9f, "\x8f\x9b" },
{ 0x2fa0, "\x8f\xb0" },
{ 0x2fa1, "\x8f\xb5" },
{ 0x2fa2, "\x90\x91" },
{ 0x2fa3, "\x91\x49" },
{ 0x2fa4, "\x91\xc6" },
{ 0x2fa5, "\x91\xcc" },
{ 0x2fa6, "\x91\xd1" },
{ 0x2fa7, "\x95\x77" },
{ 0x2fa8, "\x95\x80" },
{ 0x2fa9, "\x96\x1c" },
{ 0x2faa, "\x96\xb6" },
{ 0x2fab, "\x96\xb9" },
{ 0x2fac, "\x96\xe8" },
{ 0x2fad, "\x97\x51" },
{ 0x2fae, "\x97\x5e" },
{ 0x2faf, "\x97\x62" },
{ 0x2fb0, "\x97\x69" },
{ 0x2fb1, "\x97\xcb" },
{ 0x2fb2, "\x97\xed" },
{ 0x2fb3, "\x97\xf3" },
{ 0x2fb4, "\x98\x01" },
{ 0x2fb5, "\x98\xa8" },
{ 0x2fb6, "\x98\xdb" },
{ 0x2fb7, "\x98\xdf" },
{ 0x2fb8, "\x99\x96" },
{ 0x2fb9, "\x99\x99" },
{ 0x2fba, "\x99\xac" },
{ 0x2fbb, "\x9a\xa8" },
{ 0x2fbc, "\x9a\xd8" },
{ 0x2fbd, "\x9a\xdf" },
{ 0x2fbe, "\x9b\x25" },
{ 0x2fbf, "\x9b\x2f" },
{ 0x2fc0, "\x9b\x32" },
{ 0x2fc1, "\x9b\x3c" },
{ 0x2fc2, "\x9b\x5a" },
{ 0x2fc3, "\x9c\xe5" },
{ 0x2fc4, "\x9e\x75" },
{ 0x2fc5, "\x9e\x7f" },
{ 0x2fc6, "\x9e\xa5" },
{ 0x2fc7, "\x9e\xbb" },
{ 0x2fc8, "\x9e\xc3" },
{ 0x2fc9, "\x9e\xcd" },
{ 0x2fca, "\x9e\xd1" },
{ 0x2fcb, "\x9e\xf9" },
{ 0x2fcc, "\x9e\xfd" },
{ 0x2fcd, "\x9f\x0e" },
{ 0x2fce, "\x9f\x13" },
{ 0x2fcf, "\x9f\x20" },
{ 0x2fd0, "\x9f\x3b" },
{ 0x2fd1, "\x9f\x4a" },
{ 0x2fd2, "\x9f\x52" },
{ 0x2fd3, "\x9f\x8d" },
{ 0x2fd4, "\x9f\x9c" },
{ 0x2fd5, "\x9f\xa0" },
{ 0x3000, "\x00\x20" },
{ 0x3036, "\x30\x12" },
{ 0x3038, "\x53\x41" },
{ 0x3039, "\x53\x44" },
{ 0x303a, "\x53\x45" },
{ 0x309b, "\x00\x20\x30\x99" },
{ 0x309c, "\x00\x20\x30\x9a" },
{ 0x3131, "\x11\x00" },
{ 0x3132, "\x11\x01" },
{ 0x3133, "\x11\xaa" },
{ 0x3134, "\x11\x02" },
{ 0x3135, "\x11\xac" },
{ 0x3136, "\x11\xad" },
{ 0x3137, "\x11\x03" },
{ 0x3138, "\x11\x04" },
{ 0x3139, "\x11\x05" },
{ 0x313a, "\x11\xb0" },
{ 0x313b, "\x11\xb1" },
{ 0x313c, "\x11\xb2" },
{ 0x313d, "\x11\xb3" },
{ 0x313e, "\x11\xb4" },
{ 0x313f, "\x11\xb5" },
{ 0x3140, "\x11\x1a" },
{ 0x3141, "\x11\x06" },
{ 0x3142, "\x11\x07" },
{ 0x3143, "\x11\x08" },
{ 0x3144, "\x11\x21" },
{ 0x3145, "\x11\x09" },
{ 0x3146, "\x11\x0a" },
{ 0x3147, "\x11\x0b" },
{ 0x3148, "\x11\x0c" },
{ 0x3149, "\x11\x0d" },
{ 0x314a, "\x11\x0e" },
{ 0x314b, "\x11\x0f" },
{ 0x314c, "\x11\x10" },
{ 0x314d, "\x11\x11" },
{ 0x314e, "\x11\x12" },
{ 0x314f, "\x11\x61" },
{ 0x3150, "\x11\x62" },
{ 0x3151, "\x11\x63" },
{ 0x3152, "\x11\x64" },
{ 0x3153, "\x11\x65" },
{ 0x3154, "\x11\x66" },
{ 0x3155, "\x11\x67" },
{ 0x3156, "\x11\x68" },
{ 0x3157, "\x11\x69" },
{ 0x3158, "\x11\x6a" },
{ 0x3159, "\x11\x6b" },
{ 0x315a, "\x11\x6c" },
{ 0x315b, "\x11\x6d" },
{ 0x315c, "\x11\x6e" },
{ 0x315d, "\x11\x6f" },
{ 0x315e, "\x11\x70" },
{ 0x315f, "\x11\x71" },
{ 0x3160, "\x11\x72" },
{ 0x3161, "\x11\x73" },
{ 0x3162, "\x11\x74" },
{ 0x3163, "\x11\x75" },
{ 0x3164, "\x11\x60" },
{ 0x3165, "\x11\x14" },
{ 0x3166, "\x11\x15" },
{ 0x3167, "\x11\xc7" },
{ 0x3168, "\x11\xc8" },
{ 0x3169, "\x11\xcc" },
{ 0x316a, "\x11\xce" },
{ 0x316b, "\x11\xd3" },
{ 0x316c, "\x11\xd7" },
{ 0x316d, "\x11\xd9" },
{ 0x316e, "\x11\x1c" },
{ 0x316f, "\x11\xdd" },
{ 0x3170, "\x11\xdf" },
{ 0x3171, "\x11\x1d" },
{ 0x3172, "\x11\x1e" },
{ 0x3173, "\x11\x20" },
{ 0x3174, "\x11\x22" },
{ 0x3175, "\x11\x23" },
{ 0x3176, "\x11\x27" },
{ 0x3177, "\x11\x29" },
{ 0x3178, "\x11\x2b" },
{ 0x3179, "\x11\x2c" },
{ 0x317a, "\x11\x2d" },
{ 0x317b, "\x11\x2e" },
{ 0x317c, "\x11\x2f" },
{ 0x317d, "\x11\x32" },
{ 0x317e, "\x11\x36" },
{ 0x317f, "\x11\x40" },
{ 0x3180, "\x11\x47" },
{ 0x3181, "\x11\x4c" },
{ 0x3182, "\x11\xf1" },
{ 0x3183, "\x11\xf2" },
{ 0x3184, "\x11\x57" },
{ 0x3185, "\x11\x58" },
{ 0x3186, "\x11\x59" },
{ 0x3187, "\x11\x84" },
{ 0x3188, "\x11\x85" },
{ 0x3189, "\x11\x88" },
{ 0x318a, "\x11\x91" },
{ 0x318b, "\x11\x92" },
{ 0x318c, "\x11\x94" },
{ 0x318d, "\x11\x9e" },
{ 0x318e, "\x11\xa1" },
{ 0x3192, "\x4e\x00" },
{ 0x3193, "\x4e\x8c" },
{ 0x3194, "\x4e\x09" },
{ 0x3195, "\x56\xdb" },
{ 0x3196, "\x4e\x0a" },
{ 0x3197, "\x4e\x2d" },
{ 0x3198, "\x4e\x0b" },
{ 0x3199, "\x75\x32" },
{ 0x319a, "\x4e\x59" },
{ 0x319b, "\x4e\x19" },
{ 0x319c, "\x4e\x01" },
{ 0x319d, "\x59\x29" },
{ 0x319e, "\x57\x30" },
{ 0x319f, "\x4e\xba" },
{ 0x3200, "\x00\x28\x11\x00\x00\x29" },
{ 0x3201, "\x00\x28\x11\x02\x00\x29" },
{ 0x3202, "\x00\x28\x11\x03\x00\x29" },
{ 0x3203, "\x00\x28\x11\x05\x00\x29" },
{ 0x3204, "\x00\x28\x11\x06\x00\x29" },
{ 0x3205, "\x00\x28\x11\x07\x00\x29" },
{ 0x3206, "\x00\x28\x11\x09\x00\x29" },
{ 0x3207, "\x00\x28\x11\x0b\x00\x29" },
{ 0x3208, "\x00\x28\x11\x0c\x00\x29" },
{ 0x3209, "\x00\x28\x11\x0e\x00\x29" },
{ 0x320a, "\x00\x28\x11\x0f\x00\x29" },
{ 0x320b, "\x00\x28\x11\x10\x00\x29" },
{ 0x320c, "\x00\x28\x11\x11\x00\x29" },
{ 0x320d, "\x00\x28\x11\x12\x00\x29" },
{ 0x320e, "\x00\x28\x11\x00\x11\x61\x00\x29" },
{ 0x320f, "\x00\x28\x11\x02\x11\x61\x00\x29" },
{ 0x3210, "\x00\x28\x11\x03\x11\x61\x00\x29" },
{ 0x3211, "\x00\x28\x11\x05\x11\x61\x00\x29" },
{ 0x3212, "\x00\x28\x11\x06\x11\x61\x00\x29" },
{ 0x3213, "\x00\x28\x11\x07\x11\x61\x00\x29" },
{ 0x3214, "\x00\x28\x11\x09\x11\x61\x00\x29" },
{ 0x3215, "\x00\x28\x11\x0b\x11\x61\x00\x29" },
{ 0x3216, "\x00\x28\x11\x0c\x11\x61\x00\x29" },
{ 0x3217, "\x00\x28\x11\x0e\x11\x61\x00\x29" },
{ 0x3218, "\x00\x28\x11\x0f\x11\x61\x00\x29" },
{ 0x3219, "\x00\x28\x11\x10\x11\x61\x00\x29" },
{ 0x321a, "\x00\x28\x11\x11\x11\x61\x00\x29" },
{ 0x321b, "\x00\x28\x11\x12\x11\x61\x00\x29" },
{ 0x321c, "\x00\x28\x11\x0c\x11\x6e\x00\x29" },
{ 0x3220, "\x00\x28\x4e\x00\x00\x29" },
{ 0x3221, "\x00\x28\x4e\x8c\x00\x29" },
{ 0x3222, "\x00\x28\x4e\x09\x00\x29" },
{ 0x3223, "\x00\x28\x56\xdb\x00\x29" },
{ 0x3224, "\x00\x28\x4e\x94\x00\x29" },
{ 0x3225, "\x00\x28\x51\x6d\x00\x29" },
{ 0x3226, "\x00\x28\x4e\x03\x00\x29" },
{ 0x3227, "\x00\x28\x51\x6b\x00\x29" },
{ 0x3228, "\x00\x28\x4e\x5d\x00\x29" },
{ 0x3229, "\x00\x28\x53\x41\x00\x29" },
{ 0x322a, "\x00\x28\x67\x08\x00\x29" },
{ 0x322b, "\x00\x28\x70\x6b\x00\x29" },
{ 0x322c, "\x00\x28\x6c\x34\x00\x29" },
{ 0x322d, "\x00\x28\x67\x28\x00\x29" },
{ 0x322e, "\x00\x28\x91\xd1\x00\x29" },
{ 0x322f, "\x00\x28\x57\x1f\x00\x29" },
{ 0x3230, "\x00\x28\x65\xe5\x00\x29" },
{ 0x3231, "\x00\x28\x68\x2a\x00\x29" },
{ 0x3232, "\x00\x28\x67\x09\x00\x29" },
{ 0x3233, "\x00\x28\x79\x3e\x00\x29" },
{ 0x3234, "\x00\x28\x54\x0d\x00\x29" },
{ 0x3235, "\x00\x28\x72\x79\x00\x29" },
{ 0x3236, "\x00\x28\x8c\xa1\x00\x29" },
{ 0x3237, "\x00\x28\x79\x5d\x00\x29" },
{ 0x3238, "\x00\x28\x52\xb4\x00\x29" },
{ 0x3239, "\x00\x28\x4e\xe3\x00\x29" },
{ 0x323a, "\x00\x28\x54\x7c\x00\x29" },
{ 0x323b, "\x00\x28\x5b\x66\x00\x29" },
{ 0x323c, "\x00\x28\x76\xe3\x00\x29" },
{ 0x323d, "\x00\x28\x4f\x01\x00\x29" },
{ 0x323e, "\x00\x28\x8c\xc7\x00\x29" },
{ 0x323f, "\x00\x28\x53\x54\x00\x29" },
{ 0x3240, "\x00\x28\x79\x6d\x00\x29" },
{ 0x3241, "\x00\x28\x4f\x11\x00\x29" },
{ 0x3242, "\x00\x28\x81\xea\x00\x29" },
{ 0x3243, "\x00\x28\x81\xf3\x00\x29" },
{ 0x3260, "\x11\x00" },
{ 0x3261, "\x11\x02" },
{ 0x3262, "\x11\x03" },
{ 0x3263, "\x11\x05" },
{ 0x3264, "\x11\x06" },
{ 0x3265, "\x11\x07" },
{ 0x3266, "\x11\x09" },
{ 0x3267, "\x11\x0b" },
{ 0x3268, "\x11\x0c" },
{ 0x3269, "\x11\x0e" },
{ 0x326a, "\x11\x0f" },
{ 0x326b, "\x11\x10" },
{ 0x326c, "\x11\x11" },
{ 0x326d, "\x11\x12" },
{ 0x326e, "\x11\x00\x11\x61" },
{ 0x326f, "\x11\x02\x11\x61" },
{ 0x3270, "\x11\x03\x11\x61" },
{ 0x3271, "\x11\x05\x11\x61" },
{ 0x3272, "\x11\x06\x11\x61" },
{ 0x3273, "\x11\x07\x11\x61" },
{ 0x3274, "\x11\x09\x11\x61" },
{ 0x3275, "\x11\x0b\x11\x61" },
{ 0x3276, "\x11\x0c\x11\x61" },
{ 0x3277, "\x11\x0e\x11\x61" },
{ 0x3278, "\x11\x0f\x11\x61" },
{ 0x3279, "\x11\x10\x11\x61" },
{ 0x327a, "\x11\x11\x11\x61" },
{ 0x327b, "\x11\x12\x11\x61" },
{ 0x3280, "\x4e\x00" },
{ 0x3281, "\x4e\x8c" },
{ 0x3282, "\x4e\x09" },
{ 0x3283, "\x56\xdb" },
{ 0x3284, "\x4e\x94" },
{ 0x3285, "\x51\x6d" },
{ 0x3286, "\x4e\x03" },
{ 0x3287, "\x51\x6b" },
{ 0x3288, "\x4e\x5d" },
{ 0x3289, "\x53\x41" },
{ 0x328a, "\x67\x08" },
{ 0x328b, "\x70\x6b" },
{ 0x328c, "\x6c\x34" },
{ 0x328d, "\x67\x28" },
{ 0x328e, "\x91\xd1" },
{ 0x328f, "\x57\x1f" },
{ 0x3290, "\x65\xe5" },
{ 0x3291, "\x68\x2a" },
{ 0x3292, "\x67\x09" },
{ 0x3293, "\x79\x3e" },
{ 0x3294, "\x54\x0d" },
{ 0x3295, "\x72\x79" },
{ 0x3296, "\x8c\xa1" },
{ 0x3297, "\x79\x5d" },
{ 0x3298, "\x52\xb4" },
{ 0x3299, "\x79\xd8" },
{ 0x329a, "\x75\x37" },
{ 0x329b, "\x59\x73" },
{ 0x329c, "\x90\x69" },
{ 0x329d, "\x51\x2a" },
{ 0x329e, "\x53\x70" },
{ 0x329f, "\x6c\xe8" },
{ 0x32a0, "\x98\x05" },
{ 0x32a1, "\x4f\x11" },
{ 0x32a2, "\x51\x99" },
{ 0x32a3, "\x6b\x63" },
{ 0x32a4, "\x4e\x0a" },
{ 0x32a5, "\x4e\x2d" },
{ 0x32a6, "\x4e\x0b" },
{ 0x32a7, "\x5d\xe6" },
{ 0x32a8, "\x53\xf3" },
{ 0x32a9, "\x53\x3b" },
{ 0x32aa, "\x5b\x97" },
{ 0x32ab, "\x5b\x66" },
{ 0x32ac, "\x76\xe3" },
{ 0x32ad, "\x4f\x01" },
{ 0x32ae, "\x8c\xc7" },
{ 0x32af, "\x53\x54" },
{ 0x32b0, "\x59\x1c" },
{ 0x32c0, "\x00\x31\x67\x08" },
{ 0x32c1, "\x00\x32\x67\x08" },
{ 0x32c2, "\x00\x33\x67\x08" },
{ 0x32c3, "\x00\x34\x67\x08" },
{ 0x32c4, "\x00\x35\x67\x08" },
{ 0x32c5, "\x00\x36\x67\x08" },
{ 0x32c6, "\x00\x37\x67\x08" },
{ 0x32c7, "\x00\x38\x67\x08" },
{ 0x32c8, "\x00\x39\x67\x08" },
{ 0x32c9, "\x00\x31\x00\x30\x67\x08" },
{ 0x32ca, "\x00\x31\x00\x31\x67\x08" },
{ 0x32cb, "\x00\x31\x00\x32\x67\x08" },
{ 0x32d0, "\x30\xa2" },
{ 0x32d1, "\x30\xa4" },
{ 0x32d2, "\x30\xa6" },
{ 0x32d3, "\x30\xa8" },
{ 0x32d4, "\x30\xaa" },
{ 0x32d5, "\x30\xab" },
{ 0x32d6, "\x30\xad" },
{ 0x32d7, "\x30\xaf" },
{ 0x32d8, "\x30\xb1" },
{ 0x32d9, "\x30\xb3" },
{ 0x32da, "\x30\xb5" },
{ 0x32db, "\x30\xb7" },
{ 0x32dc, "\x30\xb9" },
{ 0x32dd, "\x30\xbb" },
{ 0x32de, "\x30\xbd" },
{ 0x32df, "\x30\xbf" },
{ 0x32e0, "\x30\xc1" },
{ 0x32e1, "\x30\xc4" },
{ 0x32e2, "\x30\xc6" },
{ 0x32e3, "\x30\xc8" },
{ 0x32e4, "\x30\xca" },
{ 0x32e5, "\x30\xcb" },
{ 0x32e6, "\x30\xcc" },
{ 0x32e7, "\x30\xcd" },
{ 0x32e8, "\x30\xce" },
{ 0x32e9, "\x30\xcf" },
{ 0x32ea, "\x30\xd2" },
{ 0x32eb, "\x30\xd5" },
{ 0x32ec, "\x30\xd8" },
{ 0x32ed, "\x30\xdb" },
{ 0x32ee, "\x30\xde" },
{ 0x32ef, "\x30\xdf" },
{ 0x32f0, "\x30\xe0" },
{ 0x32f1, "\x30\xe1" },
{ 0x32f2, "\x30\xe2" },
{ 0x32f3, "\x30\xe4" },
{ 0x32f4, "\x30\xe6" },
{ 0x32f5, "\x30\xe8" },
{ 0x32f6, "\x30\xe9" },
{ 0x32f7, "\x30\xea" },
{ 0x32f8, "\x30\xeb" },
{ 0x32f9, "\x30\xec" },
{ 0x32fa, "\x30\xed" },
{ 0x32fb, "\x30\xef" },
{ 0x32fc, "\x30\xf0" },
{ 0x32fd, "\x30\xf1" },
{ 0x32fe, "\x30\xf2" },
{ 0x3300, "\x30\xa2\x30\xd1\x30\xfc\x30\xc8" },
{ 0x3301, "\x30\xa2\x30\xeb\x30\xd5\x30\xa1" },
{ 0x3302, "\x30\xa2\x30\xf3\x30\xda\x30\xa2" },
{ 0x3303, "\x30\xa2\x30\xfc\x30\xeb" },
{ 0x3304, "\x30\xa4\x30\xcb\x30\xf3\x30\xb0" },
{ 0x3305, "\x30\xa4\x30\xf3\x30\xc1" },
{ 0x3306, "\x30\xa6\x30\xa9\x30\xf3" },
{ 0x3307, "\x30\xa8\x30\xb9\x30\xaf\x30\xfc\x30\xc9" },
{ 0x3308, "\x30\xa8\x30\xfc\x30\xab\x30\xfc" },
{ 0x3309, "\x30\xaa\x30\xf3\x30\xb9" },
{ 0x330a, "\x30\xaa\x30\xfc\x30\xe0" },
{ 0x330b, "\x30\xab\x30\xa4\x30\xea" },
{ 0x330c, "\x30\xab\x30\xe9\x30\xc3\x30\xc8" },
{ 0x330d, "\x30\xab\x30\xed\x30\xea\x30\xfc" },
{ 0x330e, "\x30\xac\x30\xed\x30\xf3" },
{ 0x330f, "\x30\xac\x30\xf3\x30\xde" },
{ 0x3310, "\x30\xae\x30\xac" },
{ 0x3311, "\x30\xae\x30\xcb\x30\xfc" },
{ 0x3312, "\x30\xad\x30\xe5\x30\xea\x30\xfc" },
{ 0x3313, "\x30\xae\x30\xeb\x30\xc0\x30\xfc" },
{ 0x3314, "\x30\xad\x30\xed" },
{ 0x3315, "\x30\xad\x30\xed\x30\xb0\x30\xe9\x30\xe0" },
{ 0x3316, "\x30\xad\x30\xed\x30\xe1\x30\xfc\x30\xc8\x30\xeb" },
{ 0x3317, "\x30\xad\x30\xed\x30\xef\x30\xc3\x30\xc8" },
{ 0x3318, "\x30\xb0\x30\xe9\x30\xe0" },
{ 0x3319, "\x30\xb0\x30\xe9\x30\xe0\x30\xc8\x30\xf3" },
{ 0x331a, "\x30\xaf\x30\xeb\x30\xbc\x30\xa4\x30\xed" },
{ 0x331b, "\x30\xaf\x30\xed\x30\xfc\x30\xcd" },
{ 0x331c, "\x30\xb1\x30\xfc\x30\xb9" },
{ 0x331d, "\x30\xb3\x30\xeb\x30\xca" },
{ 0x331e, "\x30\xb3\x30\xfc\x30\xdd" },
{ 0x331f, "\x30\xb5\x30\xa4\x30\xaf\x30\xeb" },
{ 0x3320, "\x30\xb5\x30\xf3\x30\xc1\x30\xfc\x30\xe0" },
{ 0x3321, "\x30\xb7\x30\xea\x30\xf3\x30\xb0" },
{ 0x3322, "\x30\xbb\x30\xf3\x30\xc1" },
{ 0x3323, "\x30\xbb\x30\xf3\x30\xc8" },
{ 0x3324, "\x30\xc0\x30\xfc\x30\xb9" },
{ 0x3325, "\x30\xc7\x30\xb7" },
{ 0x3326, "\x30\xc9\x30\xeb" },
{ 0x3327, "\x30\xc8\x30\xf3" },
{ 0x3328, "\x30\xca\x30\xce" },
{ 0x3329, "\x30\xce\x30\xc3\x30\xc8" },
{ 0x332a, "\x30\xcf\x30\xa4\x30\xc4" },
{ 0x332b, "\x30\xd1\x30\xfc\x30\xbb\x30\xf3\x30\xc8" },
{ 0x332c, "\x30\xd1\x30\xfc\x30\xc4" },
{ 0x332d, "\x30\xd0\x30\xfc\x30\xec\x30\xeb" },
{ 0x332e, "\x30\xd4\x30\xa2\x30\xb9\x30\xc8\x30\xeb" },
{ 0x332f, "\x30\xd4\x30\xaf\x30\xeb" },
{ 0x3330, "\x30\xd4\x30\xb3" },
{ 0x3331, "\x30\xd3\x30\xeb" },
{ 0x3332, "\x30\xd5\x30\xa1\x30\xe9\x30\xc3\x30\xc9" },
{ 0x3333, "\x30\xd5\x30\xa3\x30\xfc\x30\xc8" },
{ 0x3334, "\x30\xd6\x30\xc3\x30\xb7\x30\xa7\x30\xeb" },
{ 0x3335, "\x30\xd5\x30\xe9\x30\xf3" },
{ 0x3336, "\x30\xd8\x30\xaf\x30\xbf\x30\xfc\x30\xeb" },
{ 0x3337, "\x30\xda\x30\xbd" },
{ 0x3338, "\x30\xda\x30\xcb\x30\xd2" },
{ 0x3339, "\x30\xd8\x30\xeb\x30\xc4" },
{ 0x333a, "\x30\xda\x30\xf3\x30\xb9" },
{ 0x333b, "\x30\xda\x30\xfc\x30\xb8" },
{ 0x333c, "\x30\xd9\x30\xfc\x30\xbf" },
{ 0x333d, "\x30\xdd\x30\xa4\x30\xf3\x30\xc8" },
{ 0x333e, "\x30\xdc\x30\xeb\x30\xc8" },
{ 0x333f, "\x30\xdb\x30\xf3" },
{ 0x3340, "\x30\xdd\x30\xf3\x30\xc9" },
{ 0x3341, "\x30\xdb\x30\xfc\x30\xeb" },
{ 0x3342, "\x30\xdb\x30\xfc\x30\xf3" },
{ 0x3343, "\x30\xde\x30\xa4\x30\xaf\x30\xed" },
{ 0x3344, "\x30\xde\x30\xa4\x30\xeb" },
{ 0x3345, "\x30\xde\x30\xc3\x30\xcf" },
{ 0x3346, "\x30\xde\x30\xeb\x30\xaf" },
{ 0x3347, "\x30\xde\x30\xf3\x30\xb7\x30\xe7\x30\xf3" },
{ 0x3348, "\x30\xdf\x30\xaf\x30\xed\x30\xf3" },
{ 0x3349, "\x30\xdf\x30\xea" },
{ 0x334a, "\x30\xdf\x30\xea\x30\xd0\x30\xfc\x30\xeb" },
{ 0x334b, "\x30\xe1\x30\xac" },
{ 0x334c, "\x30\xe1\x30\xac\x30\xc8\x30\xf3" },
{ 0x334d, "\x30\xe1\x30\xfc\x30\xc8\x30\xeb" },
{ 0x334e, "\x30\xe4\x30\xfc\x30\xc9" },
{ 0x334f, "\x30\xe4\x30\xfc\x30\xeb" },
{ 0x3350, "\x30\xe6\x30\xa2\x30\xf3" },
{ 0x3351, "\x30\xea\x30\xc3\x30\xc8\x30\xeb" },
{ 0x3352, "\x30\xea\x30\xe9" },
{ 0x3353, "\x30\xeb\x30\xd4\x30\xfc" },
{ 0x3354, "\x30\xeb\x30\xfc\x30\xd6\x30\xeb" },
{ 0x3355, "\x30\xec\x30\xe0" },
{ 0x3356, "\x30\xec\x30\xf3\x30\xc8\x30\xb2\x30\xf3" },
{ 0x3357, "\x30\xef\x30\xc3\x30\xc8" },
{ 0x3358, "\x00\x30\x70\xb9" },
{ 0x3359, "\x00\x31\x70\xb9" },
{ 0x335a, "\x00\x32\x70\xb9" },
{ 0x335b, "\x00\x33\x70\xb9" },
{ 0x335c, "\x00\x34\x70\xb9" },
{ 0x335d, "\x00\x35\x70\xb9" },
{ 0x335e, "\x00\x36\x70\xb9" },
{ 0x335f, "\x00\x37\x70\xb9" },
{ 0x3360, "\x00\x38\x70\xb9" },
{ 0x3361, "\x00\x39\x70\xb9" },
{ 0x3362, "\x00\x31\x00\x30\x70\xb9" },
{ 0x3363, "\x00\x31\x00\x31\x70\xb9" },
{ 0x3364, "\x00\x31\x00\x32\x70\xb9" },
{ 0x3365, "\x00\x31\x00\x33\x70\xb9" },
{ 0x3366, "\x00\x31\x00\x34\x70\xb9" },
{ 0x3367, "\x00\x31\x00\x35\x70\xb9" },
{ 0x3368, "\x00\x31\x00\x36\x70\xb9" },
{ 0x3369, "\x00\x31\x00\x37\x70\xb9" },
{ 0x336a, "\x00\x31\x00\x38\x70\xb9" },
{ 0x336b, "\x00\x31\x00\x39\x70\xb9" },
{ 0x336c, "\x00\x32\x00\x30\x70\xb9" },
{ 0x336d, "\x00\x32\x00\x31\x70\xb9" },
{ 0x336e, "\x00\x32\x00\x32\x70\xb9" },
{ 0x336f, "\x00\x32\x00\x33\x70\xb9" },
{ 0x3370, "\x00\x32\x00\x34\x70\xb9" },
{ 0x3371, "\x00\x68\x00\x50\x00\x61" },
{ 0x3372, "\x00\x64\x00\x61" },
{ 0x3373, "\x00\x41\x00\x55" },
{ 0x3374, "\x00\x62\x00\x61\x00\x72" },
{ 0x3375, "\x00\x6f\x00\x56" },
{ 0x3376, "\x00\x70\x00\x63" },
{ 0x337b, "\x5e\x73\x62\x10" },
{ 0x337c, "\x66\x2d\x54\x8c" },
{ 0x337d, "\x59\x27\x6b\x63" },
{ 0x337e, "\x66\x0e\x6c\xbb" },
{ 0x337f, "\x68\x2a\x5f\x0f\x4f\x1a\x79\x3e" },
{ 0x3380, "\x00\x70\x00\x41" },
{ 0x3381, "\x00\x6e\x00\x41" },
{ 0x3382, "\x03\xbc\x00\x41" },
{ 0x3383, "\x00\x6d\x00\x41" },
{ 0x3384, "\x00\x6b\x00\x41" },
{ 0x3385, "\x00\x4b\x00\x42" },
{ 0x3386, "\x00\x4d\x00\x42" },
{ 0x3387, "\x00\x47\x00\x42" },
{ 0x3388, "\x00\x63\x00\x61\x00\x6c" },
{ 0x3389, "\x00\x6b\x00\x63\x00\x61\x00\x6c" },
{ 0x338a, "\x00\x70\x00\x46" },
{ 0x338b, "\x00\x6e\x00\x46" },
{ 0x338c, "\x03\xbc\x00\x46" },
{ 0x338d, "\x03\xbc\x00\x67" },
{ 0x338e, "\x00\x6d\x00\x67" },
{ 0x338f, "\x00\x6b\x00\x67" },
{ 0x3390, "\x00\x48\x00\x7a" },
{ 0x3391, "\x00\x6b\x00\x48\x00\x7a" },
{ 0x3392, "\x00\x4d\x00\x48\x00\x7a" },
{ 0x3393, "\x00\x47\x00\x48\x00\x7a" },
{ 0x3394, "\x00\x54\x00\x48\x00\x7a" },
{ 0x3395, "\x03\xbc\x21\x13" },
{ 0x3396, "\x00\x6d\x21\x13" },
{ 0x3397, "\x00\x64\x21\x13" },
{ 0x3398, "\x00\x6b\x21\x13" },
{ 0x3399, "\x00\x66\x00\x6d" },
{ 0x339a, "\x00\x6e\x00\x6d" },
{ 0x339b, "\x03\xbc\x00\x6d" },
{ 0x339c, "\x00\x6d\x00\x6d" },
{ 0x339d, "\x00\x63\x00\x6d" },
{ 0x339e, "\x00\x6b\x00\x6d" },
{ 0x339f, "\x00\x6d\x00\x6d\x00\xb2" },
{ 0x33a0, "\x00\x63\x00\x6d\x00\xb2" },
{ 0x33a1, "\x00\x6d\x00\xb2" },
{ 0x33a2, "\x00\x6b\x00\x6d\x00\xb2" },
{ 0x33a3, "\x00\x6d\x00\x6d\x00\xb3" },
{ 0x33a4, "\x00\x63\x00\x6d\x00\xb3" },
{ 0x33a5, "\x00\x6d\x00\xb3" },
{ 0x33a6, "\x00\x6b\x00\x6d\x00\xb3" },
{ 0x33a7, "\x00\x6d\x22\x15\x00\x73" },
{ 0x33a8, "\x00\x6d\x22\x15\x00\x73\x00\xb2" },
{ 0x33a9, "\x00\x50\x00\x61" },
{ 0x33aa, "\x00\x6b\x00\x50\x00\x61" },
{ 0x33ab, "\x00\x4d\x00\x50\x00\x61" },
{ 0x33ac, "\x00\x47\x00\x50\x00\x61" },
{ 0x33ad, "\x00\x72\x00\x61\x00\x64" },
{ 0x33ae, "\x00\x72\x00\x61\x00\x64\x22\x15\x00\x73" },
{ 0x33af, "\x00\x72\x00\x61\x00\x64\x22\x15\x00\x73\x00\xb2" },
{ 0x33b0, "\x00\x70\x00\x73" },
{ 0x33b1, "\x00\x6e\x00\x73" },
{ 0x33b2, "\x03\xbc\x00\x73" },
{ 0x33b3, "\x00\x6d\x00\x73" },
{ 0x33b4, "\x00\x70\x00\x56" },
{ 0x33b5, "\x00\x6e\x00\x56" },
{ 0x33b6, "\x03\xbc\x00\x56" },
{ 0x33b7, "\x00\x6d\x00\x56" },
{ 0x33b8, "\x00\x6b\x00\x56" },
{ 0x33b9, "\x00\x4d\x00\x56" },
{ 0x33ba, "\x00\x70\x00\x57" },
{ 0x33bb, "\x00\x6e\x00\x57" },
{ 0x33bc, "\x03\xbc\x00\x57" },
{ 0x33bd, "\x00\x6d\x00\x57" },
{ 0x33be, "\x00\x6b\x00\x57" },
{ 0x33bf, "\x00\x4d\x00\x57" },
{ 0x33c0, "\x00\x6b\x03\xa9" },
{ 0x33c1, "\x00\x4d\x03\xa9" },
{ 0x33c2, "\x00\x61\x00\x2e\x00\x6d\x00\x2e" },
{ 0x33c3, "\x00\x42\x00\x71" },
{ 0x33c4, "\x00\x63\x00\x63" },
{ 0x33c5, "\x00\x63\x00\x64" },
{ 0x33c6, "\x00\x43\x22\x15\x00\x6b\x00\x67" },
{ 0x33c7, "\x00\x43\x00\x6f\x00\x2e" },
{ 0x33c8, "\x00\x64\x00\x42" },
{ 0x33c9, "\x00\x47\x00\x79" },
{ 0x33ca, "\x00\x68\x00\x61" },
{ 0x33cb, "\x00\x48\x00\x50" },
{ 0x33cc, "\x00\x69\x00\x6e" },
{ 0x33cd, "\x00\x4b\x00\x4b" },
{ 0x33ce, "\x00\x4b\x00\x4d" },
{ 0x33cf, "\x00\x6b\x00\x74" },
{ 0x33d0, "\x00\x6c\x00\x6d" },
{ 0x33d1, "\x00\x6c\x00\x6e" },
{ 0x33d2, "\x00\x6c\x00\x6f\x00\x67" },
{ 0x33d3, "\x00\x6c\x00\x78" },
{ 0x33d4, "\x00\x6d\x00\x62" },
{ 0x33d5, "\x00\x6d\x00\x69\x00\x6c" },
{ 0x33d6, "\x00\x6d\x00\x6f\x00\x6c" },
{ 0x33d7, "\x00\x50\x00\x48" },
{ 0x33d8, "\x00\x70\x00\x2e\x00\x6d\x00\x2e" },
{ 0x33d9, "\x00\x50\x00\x50\x00\x4d" },
{ 0x33da, "\x00\x50\x00\x52" },
{ 0x33db, "\x00\x73\x00\x72" },
{ 0x33dc, "\x00\x53\x00\x76" },
{ 0x33dd, "\x00\x57\x00\x62" },
{ 0x33e0, "\x00\x31\x65\xe5" },
{ 0x33e1, "\x00\x32\x65\xe5" },
{ 0x33e2, "\x00\x33\x65\xe5" },
{ 0x33e3, "\x00\x34\x65\xe5" },
{ 0x33e4, "\x00\x35\x65\xe5" },
{ 0x33e5, "\x00\x36\x65\xe5" },
{ 0x33e6, "\x00\x37\x65\xe5" },
{ 0x33e7, "\x00\x38\x65\xe5" },
{ 0x33e8, "\x00\x39\x65\xe5" },
{ 0x33e9, "\x00\x31\x00\x30\x65\xe5" },
{ 0x33ea, "\x00\x31\x00\x31\x65\xe5" },
{ 0x33eb, "\x00\x31\x00\x32\x65\xe5" },
{ 0x33ec, "\x00\x31\x00\x33\x65\xe5" },
{ 0x33ed, "\x00\x31\x00\x34\x65\xe5" },
{ 0x33ee, "\x00\x31\x00\x35\x65\xe5" },
{ 0x33ef, "\x00\x31\x00\x36\x65\xe5" },
{ 0x33f0, "\x00\x31\x00\x37\x65\xe5" },
{ 0x33f1, "\x00\x31\x00\x38\x65\xe5" },
{ 0x33f2, "\x00\x31\x00\x39\x65\xe5" },
{ 0x33f3, "\x00\x32\x00\x30\x65\xe5" },
{ 0x33f4, "\x00\x32\x00\x31\x65\xe5" },
{ 0x33f5, "\x00\x32\x00\x32\x65\xe5" },
{ 0x33f6, "\x00\x32\x00\x33\x65\xe5" },
{ 0x33f7, "\x00\x32\x00\x34\x65\xe5" },
{ 0x33f8, "\x00\x32\x00\x35\x65\xe5" },
{ 0x33f9, "\x00\x32\x00\x36\x65\xe5" },
{ 0x33fa, "\x00\x32\x00\x37\x65\xe5" },
{ 0x33fb, "\x00\x32\x00\x38\x65\xe5" },
{ 0x33fc, "\x00\x32\x00\x39\x65\xe5" },
{ 0x33fd, "\x00\x33\x00\x30\x65\xe5" },
{ 0x33fe, "\x00\x33\x00\x31\x65\xe5" },
{ 0xfb00, "\x00\x66\x00\x66" },
{ 0xfb01, "\x00\x66\x00\x69" },
{ 0xfb02, "\x00\x66\x00\x6c" },
{ 0xfb03, "\x00\x66\x00\x66\x00\x69" },
{ 0xfb04, "\x00\x66\x00\x66\x00\x6c" },
{ 0xfb05, "\x01\x7f\x00\x74" },
{ 0xfb06, "\x00\x73\x00\x74" },
{ 0xfb13, "\x05\x74\x05\x76" },
{ 0xfb14, "\x05\x74\x05\x65" },
{ 0xfb15, "\x05\x74\x05\x6b" },
{ 0xfb16, "\x05\x7e\x05\x76" },
{ 0xfb17, "\x05\x74\x05\x6d" },
{ 0xfb20, "\x05\xe2" },
{ 0xfb21, "\x05\xd0" },
{ 0xfb22, "\x05\xd3" },
{ 0xfb23, "\x05\xd4" },
{ 0xfb24, "\x05\xdb" },
{ 0xfb25, "\x05\xdc" },
{ 0xfb26, "\x05\xdd" },
{ 0xfb27, "\x05\xe8" },
{ 0xfb28, "\x05\xea" },
{ 0xfb29, "\x00\x2b" },
{ 0xfb4f, "\x05\xd0\x05\xdc" },
{ 0xfb50, "\x06\x71" },
{ 0xfb51, "\x06\x71" },
{ 0xfb52, "\x06\x7b" },
{ 0xfb53, "\x06\x7b" },
{ 0xfb54, "\x06\x7b" },
{ 0xfb55, "\x06\x7b" },
{ 0xfb56, "\x06\x7e" },
{ 0xfb57, "\x06\x7e" },
{ 0xfb58, "\x06\x7e" },
{ 0xfb59, "\x06\x7e" },
{ 0xfb5a, "\x06\x80" },
{ 0xfb5b, "\x06\x80" },
{ 0xfb5c, "\x06\x80" },
{ 0xfb5d, "\x06\x80" },
{ 0xfb5e, "\x06\x7a" },
{ 0xfb5f, "\x06\x7a" },
{ 0xfb60, "\x06\x7a" },
{ 0xfb61, "\x06\x7a" },
{ 0xfb62, "\x06\x7f" },
{ 0xfb63, "\x06\x7f" },
{ 0xfb64, "\x06\x7f" },
{ 0xfb65, "\x06\x7f" },
{ 0xfb66, "\x06\x79" },
{ 0xfb67, "\x06\x79" },
{ 0xfb68, "\x06\x79" },
{ 0xfb69, "\x06\x79" },
{ 0xfb6a, "\x06\xa4" },
{ 0xfb6b, "\x06\xa4" },
{ 0xfb6c, "\x06\xa4" },
{ 0xfb6d, "\x06\xa4" },
{ 0xfb6e, "\x06\xa6" },
{ 0xfb6f, "\x06\xa6" },
{ 0xfb70, "\x06\xa6" },
{ 0xfb71, "\x06\xa6" },
{ 0xfb72, "\x06\x84" },
{ 0xfb73, "\x06\x84" },
{ 0xfb74, "\x06\x84" },
{ 0xfb75, "\x06\x84" },
{ 0xfb76, "\x06\x83" },
{ 0xfb77, "\x06\x83" },
{ 0xfb78, "\x06\x83" },
{ 0xfb79, "\x06\x83" },
{ 0xfb7a, "\x06\x86" },
{ 0xfb7b, "\x06\x86" },
{ 0xfb7c, "\x06\x86" },
{ 0xfb7d, "\x06\x86" },
{ 0xfb7e, "\x06\x87" },
{ 0xfb7f, "\x06\x87" },
{ 0xfb80, "\x06\x87" },
{ 0xfb81, "\x06\x87" },
{ 0xfb82, "\x06\x8d" },
{ 0xfb83, "\x06\x8d" },
{ 0xfb84, "\x06\x8c" },
{ 0xfb85, "\x06\x8c" },
{ 0xfb86, "\x06\x8e" },
{ 0xfb87, "\x06\x8e" },
{ 0xfb88, "\x06\x88" },
{ 0xfb89, "\x06\x88" },
{ 0xfb8a, "\x06\x98" },
{ 0xfb8b, "\x06\x98" },
{ 0xfb8c, "\x06\x91" },
{ 0xfb8d, "\x06\x91" },
{ 0xfb8e, "\x06\xa9" },
{ 0xfb8f, "\x06\xa9" },
{ 0xfb90, "\x06\xa9" },
{ 0xfb91, "\x06\xa9" },
{ 0xfb92, "\x06\xaf" },
{ 0xfb93, "\x06\xaf" },
{ 0xfb94, "\x06\xaf" },
{ 0xfb95, "\x06\xaf" },
{ 0xfb96, "\x06\xb3" },
{ 0xfb97, "\x06\xb3" },
{ 0xfb98, "\x06\xb3" },
{ 0xfb99, "\x06\xb3" },
{ 0xfb9a, "\x06\xb1" },
{ 0xfb9b, "\x06\xb1" },
{ 0xfb9c, "\x06\xb1" },
{ 0xfb9d, "\x06\xb1" },
{ 0xfb9e, "\x06\xba" },
{ 0xfb9f, "\x06\xba" },
{ 0xfba0, "\x06\xbb" },
{ 0xfba1, "\x06\xbb" },
{ 0xfba2, "\x06\xbb" },
{ 0xfba3, "\x06\xbb" },
{ 0xfba4, "\x06\xc0" },
{ 0xfba5, "\x06\xc0" },
{ 0xfba6, "\x06\xc1" },
{ 0xfba7, "\x06\xc1" },
{ 0xfba8, "\x06\xc1" },
{ 0xfba9, "\x06\xc1" },
{ 0xfbaa, "\x06\xbe" },
{ 0xfbab, "\x06\xbe" },
{ 0xfbac, "\x06\xbe" },
{ 0xfbad, "\x06\xbe" },
{ 0xfbae, "\x06\xd2" },
{ 0xfbaf, "\x06\xd2" },
{ 0xfbb0, "\x06\xd3" },
{ 0xfbb1, "\x06\xd3" },
{ 0xfbd3, "\x06\xad" },
{ 0xfbd4, "\x06\xad" },
{ 0xfbd5, "\x06\xad" },
{ 0xfbd6, "\x06\xad" },
{ 0xfbd7, "\x06\xc7" },
{ 0xfbd8, "\x06\xc7" },
{ 0xfbd9, "\x06\xc6" },
{ 0xfbda, "\x06\xc6" },
{ 0xfbdb, "\x06\xc8" },
{ 0xfbdc, "\x06\xc8" },
{ 0xfbdd, "\x06\x77" },
{ 0xfbde, "\x06\xcb" },
{ 0xfbdf, "\x06\xcb" },
{ 0xfbe0, "\x06\xc5" },
{ 0xfbe1, "\x06\xc5" },
{ 0xfbe2, "\x06\xc9" },
{ 0xfbe3, "\x06\xc9" },
{ 0xfbe4, "\x06\xd0" },
{ 0xfbe5, "\x06\xd0" },
{ 0xfbe6, "\x06\xd0" },
{ 0xfbe7, "\x06\xd0" },
{ 0xfbe8, "\x06\x49" },
{ 0xfbe9, "\x06\x49" },
{ 0xfbea, "\x06\x26\x06\x27" },
{ 0xfbeb, "\x06\x26\x06\x27" },
{ 0xfbec, "\x06\x26\x06\xd5" },
{ 0xfbed, "\x06\x26\x06\xd5" },
{ 0xfbee, "\x06\x26\x06\x48" },
{ 0xfbef, "\x06\x26\x06\x48" },
{ 0xfbf0, "\x06\x26\x06\xc7" },
{ 0xfbf1, "\x06\x26\x06\xc7" },
{ 0xfbf2, "\x06\x26\x06\xc6" },
{ 0xfbf3, "\x06\x26\x06\xc6" },
{ 0xfbf4, "\x06\x26\x06\xc8" },
{ 0xfbf5, "\x06\x26\x06\xc8" },
{ 0xfbf6, "\x06\x26\x06\xd0" },
{ 0xfbf7, "\x06\x26\x06\xd0" },
{ 0xfbf8, "\x06\x26\x06\xd0" },
{ 0xfbf9, "\x06\x26\x06\x49" },
{ 0xfbfa, "\x06\x26\x06\x49" },
{ 0xfbfb, "\x06\x26\x06\x49" },
{ 0xfbfc, "\x06\xcc" },
{ 0xfbfd, "\x06\xcc" },
{ 0xfbfe, "\x06\xcc" },
{ 0xfbff, "\x06\xcc" },
{ 0xfc00, "\x06\x26\x06\x2c" },
{ 0xfc01, "\x06\x26\x06\x2d" },
{ 0xfc02, "\x06\x26\x06\x45" },
{ 0xfc03, "\x06\x26\x06\x49" },
{ 0xfc04, "\x06\x26\x06\x4a" },
{ 0xfc05, "\x06\x28\x06\x2c" },
{ 0xfc06, "\x06\x28\x06\x2d" },
{ 0xfc07, "\x06\x28\x06\x2e" },
{ 0xfc08, "\x06\x28\x06\x45" },
{ 0xfc09, "\x06\x28\x06\x49" },
{ 0xfc0a, "\x06\x28\x06\x4a" },
{ 0xfc0b, "\x06\x2a\x06\x2c" },
{ 0xfc0c, "\x06\x2a\x06\x2d" },
{ 0xfc0d, "\x06\x2a\x06\x2e" },
{ 0xfc0e, "\x06\x2a\x06\x45" },
{ 0xfc0f, "\x06\x2a\x06\x49" },
{ 0xfc10, "\x06\x2a\x06\x4a" },
{ 0xfc11, "\x06\x2b\x06\x2c" },
{ 0xfc12, "\x06\x2b\x06\x45" },
{ 0xfc13, "\x06\x2b\x06\x49" },
{ 0xfc14, "\x06\x2b\x06\x4a" },
{ 0xfc15, "\x06\x2c\x06\x2d" },
{ 0xfc16, "\x06\x2c\x06\x45" },
{ 0xfc17, "\x06\x2d\x06\x2c" },
{ 0xfc18, "\x06\x2d\x06\x45" },
{ 0xfc19, "\x06\x2e\x06\x2c" },
{ 0xfc1a, "\x06\x2e\x06\x2d" },
{ 0xfc1b, "\x06\x2e\x06\x45" },
{ 0xfc1c, "\x06\x33\x06\x2c" },
{ 0xfc1d, "\x06\x33\x06\x2d" },
{ 0xfc1e, "\x06\x33\x06\x2e" },
{ 0xfc1f, "\x06\x33\x06\x45" },
{ 0xfc20, "\x06\x35\x06\x2d" },
{ 0xfc21, "\x06\x35\x06\x45" },
{ 0xfc22, "\x06\x36\x06\x2c" },
{ 0xfc23, "\x06\x36\x06\x2d" },
{ 0xfc24, "\x06\x36\x06\x2e" },
{ 0xfc25, "\x06\x36\x06\x45" },
{ 0xfc26, "\x06\x37\x06\x2d" },
{ 0xfc27, "\x06\x37\x06\x45" },
{ 0xfc28, "\x06\x38\x06\x45" },
{ 0xfc29, "\x06\x39\x06\x2c" },
{ 0xfc2a, "\x06\x39\x06\x45" },
{ 0xfc2b, "\x06\x3a\x06\x2c" },
{ 0xfc2c, "\x06\x3a\x06\x45" },
{ 0xfc2d, "\x06\x41\x06\x2c" },
{ 0xfc2e, "\x06\x41\x06\x2d" },
{ 0xfc2f, "\x06\x41\x06\x2e" },
{ 0xfc30, "\x06\x41\x06\x45" },
{ 0xfc31, "\x06\x41\x06\x49" },
{ 0xfc32, "\x06\x41\x06\x4a" },
{ 0xfc33, "\x06\x42\x06\x2d" },
{ 0xfc34, "\x06\x42\x06\x45" },
{ 0xfc35, "\x06\x42\x06\x49" },
{ 0xfc36, "\x06\x42\x06\x4a" },
{ 0xfc37, "\x06\x43\x06\x27" },
{ 0xfc38, "\x06\x43\x06\x2c" },
{ 0xfc39, "\x06\x43\x06\x2d" },
{ 0xfc3a, "\x06\x43\x06\x2e" },
{ 0xfc3b, "\x06\x43\x06\x44" },
{ 0xfc3c, "\x06\x43\x06\x45" },
{ 0xfc3d, "\x06\x43\x06\x49" },
{ 0xfc3e, "\x06\x43\x06\x4a" },
{ 0xfc3f, "\x06\x44\x06\x2c" },
{ 0xfc40, "\x06\x44\x06\x2d" },
{ 0xfc41, "\x06\x44\x06\x2e" },
{ 0xfc42, "\x06\x44\x06\x45" },
{ 0xfc43, "\x06\x44\x06\x49" },
{ 0xfc44, "\x06\x44\x06\x4a" },
{ 0xfc45, "\x06\x45\x06\x2c" },
{ 0xfc46, "\x06\x45\x06\x2d" },
{ 0xfc47, "\x06\x45\x06\x2e" },
{ 0xfc48, "\x06\x45\x06\x45" },
{ 0xfc49, "\x06\x45\x06\x49" },
{ 0xfc4a, "\x06\x45\x06\x4a" },
{ 0xfc4b, "\x06\x46\x06\x2c" },
{ 0xfc4c, "\x06\x46\x06\x2d" },
{ 0xfc4d, "\x06\x46\x06\x2e" },
{ 0xfc4e, "\x06\x46\x06\x45" },
{ 0xfc4f, "\x06\x46\x06\x49" },
{ 0xfc50, "\x06\x46\x06\x4a" },
{ 0xfc51, "\x06\x47\x06\x2c" },
{ 0xfc52, "\x06\x47\x06\x45" },
{ 0xfc53, "\x06\x47\x06\x49" },
{ 0xfc54, "\x06\x47\x06\x4a" },
{ 0xfc55, "\x06\x4a\x06\x2c" },
{ 0xfc56, "\x06\x4a\x06\x2d" },
{ 0xfc57, "\x06\x4a\x06\x2e" },
{ 0xfc58, "\x06\x4a\x06\x45" },
{ 0xfc59, "\x06\x4a\x06\x49" },
{ 0xfc5a, "\x06\x4a\x06\x4a" },
{ 0xfc5b, "\x06\x30\x06\x70" },
{ 0xfc5c, "\x06\x31\x06\x70" },
{ 0xfc5d, "\x06\x49\x06\x70" },
{ 0xfc5e, "\x00\x20\x06\x4c\x06\x51" },
{ 0xfc5f, "\x00\x20\x06\x4d\x06\x51" },
{ 0xfc60, "\x00\x20\x06\x4e\x06\x51" },
{ 0xfc61, "\x00\x20\x06\x4f\x06\x51" },
{ 0xfc62, "\x00\x20\x06\x50\x06\x51" },
{ 0xfc63, "\x00\x20\x06\x51\x06\x70" },
{ 0xfc64, "\x06\x26\x06\x31" },
{ 0xfc65, "\x06\x26\x06\x32" },
{ 0xfc66, "\x06\x26\x06\x45" },
{ 0xfc67, "\x06\x26\x06\x46" },
{ 0xfc68, "\x06\x26\x06\x49" },
{ 0xfc69, "\x06\x26\x06\x4a" },
{ 0xfc6a, "\x06\x28\x06\x31" },
{ 0xfc6b, "\x06\x28\x06\x32" },
{ 0xfc6c, "\x06\x28\x06\x45" },
{ 0xfc6d, "\x06\x28\x06\x46" },
{ 0xfc6e, "\x06\x28\x06\x49" },
{ 0xfc6f, "\x06\x28\x06\x4a" },
{ 0xfc70, "\x06\x2a\x06\x31" },
{ 0xfc71, "\x06\x2a\x06\x32" },
{ 0xfc72, "\x06\x2a\x06\x45" },
{ 0xfc73, "\x06\x2a\x06\x46" },
{ 0xfc74, "\x06\x2a\x06\x49" },
{ 0xfc75, "\x06\x2a\x06\x4a" },
{ 0xfc76, "\x06\x2b\x06\x31" },
{ 0xfc77, "\x06\x2b\x06\x32" },
{ 0xfc78, "\x06\x2b\x06\x45" },
{ 0xfc79, "\x06\x2b\x06\x46" },
{ 0xfc7a, "\x06\x2b\x06\x49" },
{ 0xfc7b, "\x06\x2b\x06\x4a" },
{ 0xfc7c, "\x06\x41\x06\x49" },
{ 0xfc7d, "\x06\x41\x06\x4a" },
{ 0xfc7e, "\x06\x42\x06\x49" },
{ 0xfc7f, "\x06\x42\x06\x4a" },
{ 0xfc80, "\x06\x43\x06\x27" },
{ 0xfc81, "\x06\x43\x06\x44" },
{ 0xfc82, "\x06\x43\x06\x45" },
{ 0xfc83, "\x06\x43\x06\x49" },
{ 0xfc84, "\x06\x43\x06\x4a" },
{ 0xfc85, "\x06\x44\x06\x45" },
{ 0xfc86, "\x06\x44\x06\x49" },
{ 0xfc87, "\x06\x44\x06\x4a" },
{ 0xfc88, "\x06\x45\x06\x27" },
{ 0xfc89, "\x06\x45\x06\x45" },
{ 0xfc8a, "\x06\x46\x06\x31" },
{ 0xfc8b, "\x06\x46\x06\x32" },
{ 0xfc8c, "\x06\x46\x06\x45" },
{ 0xfc8d, "\x06\x46\x06\x46" },
{ 0xfc8e, "\x06\x46\x06\x49" },
{ 0xfc8f, "\x06\x46\x06\x4a" },
{ 0xfc90, "\x06\x49\x06\x70" },
{ 0xfc91, "\x06\x4a\x06\x31" },
{ 0xfc92, "\x06\x4a\x06\x32" },
{ 0xfc93, "\x06\x4a\x06\x45" },
{ 0xfc94, "\x06\x4a\x06\x46" },
{ 0xfc95, "\x06\x4a\x06\x49" },
{ 0xfc96, "\x06\x4a\x06\x4a" },
{ 0xfc97, "\x06\x26\x06\x2c" },
{ 0xfc98, "\x06\x26\x06\x2d" },
{ 0xfc99, "\x06\x26\x06\x2e" },
{ 0xfc9a, "\x06\x26\x06\x45" },
{ 0xfc9b, "\x06\x26\x06\x47" },
{ 0xfc9c, "\x06\x28\x06\x2c" },
{ 0xfc9d, "\x06\x28\x06\x2d" },
{ 0xfc9e, "\x06\x28\x06\x2e" },
{ 0xfc9f, "\x06\x28\x06\x45" },
{ 0xfca0, "\x06\x28\x06\x47" },
{ 0xfca1, "\x06\x2a\x06\x2c" },
{ 0xfca2, "\x06\x2a\x06\x2d" },
{ 0xfca3, "\x06\x2a\x06\x2e" },
{ 0xfca4, "\x06\x2a\x06\x45" },
{ 0xfca5, "\x06\x2a\x06\x47" },
{ 0xfca6, "\x06\x2b\x06\x45" },
{ 0xfca7, "\x06\x2c\x06\x2d" },
{ 0xfca8, "\x06\x2c\x06\x45" },
{ 0xfca9, "\x06\x2d\x06\x2c" },
{ 0xfcaa, "\x06\x2d\x06\x45" },
{ 0xfcab, "\x06\x2e\x06\x2c" },
{ 0xfcac, "\x06\x2e\x06\x45" },
{ 0xfcad, "\x06\x33\x06\x2c" },
{ 0xfcae, "\x06\x33\x06\x2d" },
{ 0xfcaf, "\x06\x33\x06\x2e" },
{ 0xfcb0, "\x06\x33\x06\x45" },
{ 0xfcb1, "\x06\x35\x06\x2d" },
{ 0xfcb2, "\x06\x35\x06\x2e" },
{ 0xfcb3, "\x06\x35\x06\x45" },
{ 0xfcb4, "\x06\x36\x06\x2c" },
{ 0xfcb5, "\x06\x36\x06\x2d" },
{ 0xfcb6, "\x06\x36\x06\x2e" },
{ 0xfcb7, "\x06\x36\x06\x45" },
{ 0xfcb8, "\x06\x37\x06\x2d" },
{ 0xfcb9, "\x06\x38\x06\x45" },
{ 0xfcba, "\x06\x39\x06\x2c" },
{ 0xfcbb, "\x06\x39\x06\x45" },
{ 0xfcbc, "\x06\x3a\x06\x2c" },
{ 0xfcbd, "\x06\x3a\x06\x45" },
{ 0xfcbe, "\x06\x41\x06\x2c" },
{ 0xfcbf, "\x06\x41\x06\x2d" },
{ 0xfcc0, "\x06\x41\x06\x2e" },
{ 0xfcc1, "\x06\x41\x06\x45" },
{ 0xfcc2, "\x06\x42\x06\x2d" },
{ 0xfcc3, "\x06\x42\x06\x45" },
{ 0xfcc4, "\x06\x43\x06\x2c" },
{ 0xfcc5, "\x06\x43\x06\x2d" },
{ 0xfcc6, "\x06\x43\x06\x2e" },
{ 0xfcc7, "\x06\x43\x06\x44" },
{ 0xfcc8, "\x06\x43\x06\x45" },
{ 0xfcc9, "\x06\x44\x06\x2c" },
{ 0xfcca, "\x06\x44\x06\x2d" },
{ 0xfccb, "\x06\x44\x06\x2e" },
{ 0xfccc, "\x06\x44\x06\x45" },
{ 0xfccd, "\x06\x44\x06\x47" },
{ 0xfcce, "\x06\x45\x06\x2c" },
{ 0xfccf, "\x06\x45\x06\x2d" },
{ 0xfcd0, "\x06\x45\x06\x2e" },
{ 0xfcd1, "\x06\x45\x06\x45" },
{ 0xfcd2, "\x06\x46\x06\x2c" },
{ 0xfcd3, "\x06\x46\x06\x2d" },
{ 0xfcd4, "\x06\x46\x06\x2e" },
{ 0xfcd5, "\x06\x46\x06\x45" },
{ 0xfcd6, "\x06\x46\x06\x47" },
{ 0xfcd7, "\x06\x47\x06\x2c" },
{ 0xfcd8, "\x06\x47\x06\x45" },
{ 0xfcd9, "\x06\x47\x06\x70" },
{ 0xfcda, "\x06\x4a\x06\x2c" },
{ 0xfcdb, "\x06\x4a\x06\x2d" },
{ 0xfcdc, "\x06\x4a\x06\x2e" },
{ 0xfcdd, "\x06\x4a\x06\x45" },
{ 0xfcde, "\x06\x4a\x06\x47" },
{ 0xfcdf, "\x06\x26\x06\x45" },
{ 0xfce0, "\x06\x26\x06\x47" },
{ 0xfce1, "\x06\x28\x06\x45" },
{ 0xfce2, "\x06\x28\x06\x47" },
{ 0xfce3, "\x06\x2a\x06\x45" },
{ 0xfce4, "\x06\x2a\x06\x47" },
{ 0xfce5, "\x06\x2b\x06\x45" },
{ 0xfce6, "\x06\x2b\x06\x47" },
{ 0xfce7, "\x06\x33\x06\x45" },
{ 0xfce8, "\x06\x33\x06\x47" },
{ 0xfce9, "\x06\x34\x06\x45" },
{ 0xfcea, "\x06\x34\x06\x47" },
{ 0xfceb, "\x06\x43\x06\x44" },
{ 0xfcec, "\x06\x43\x06\x45" },
{ 0xfced, "\x06\x44\x06\x45" },
{ 0xfcee, "\x06\x46\x06\x45" },
{ 0xfcef, "\x06\x46\x06\x47" },
{ 0xfcf0, "\x06\x4a\x06\x45" },
{ 0xfcf1, "\x06\x4a\x06\x47" },
{ 0xfcf2, "\x06\x40\x06\x4e\x06\x51" },
{ 0xfcf3, "\x06\x40\x06\x4f\x06\x51" },
{ 0xfcf4, "\x06\x40\x06\x50\x06\x51" },
{ 0xfcf5, "\x06\x37\x06\x49" },
{ 0xfcf6, "\x06\x37\x06\x4a" },
{ 0xfcf7, "\x06\x39\x06\x49" },
{ 0xfcf8, "\x06\x39\x06\x4a" },
{ 0xfcf9, "\x06\x3a\x06\x49" },
{ 0xfcfa, "\x06\x3a\x06\x4a" },
{ 0xfcfb, "\x06\x33\x06\x49" },
{ 0xfcfc, "\x06\x33\x06\x4a" },
{ 0xfcfd, "\x06\x34\x06\x49" },
{ 0xfcfe, "\x06\x34\x06\x4a" },
{ 0xfcff, "\x06\x2d\x06\x49" },
{ 0xfd00, "\x06\x2d\x06\x4a" },
{ 0xfd01, "\x06\x2c\x06\x49" },
{ 0xfd02, "\x06\x2c\x06\x4a" },
{ 0xfd03, "\x06\x2e\x06\x49" },
{ 0xfd04, "\x06\x2e\x06\x4a" },
{ 0xfd05, "\x06\x35\x06\x49" },
{ 0xfd06, "\x06\x35\x06\x4a" },
{ 0xfd07, "\x06\x36\x06\x49" },
{ 0xfd08, "\x06\x36\x06\x4a" },
{ 0xfd09, "\x06\x34\x06\x2c" },
{ 0xfd0a, "\x06\x34\x06\x2d" },
{ 0xfd0b, "\x06\x34\x06\x2e" },
{ 0xfd0c, "\x06\x34\x06\x45" },
{ 0xfd0d, "\x06\x34\x06\x31" },
{ 0xfd0e, "\x06\x33\x06\x31" },
{ 0xfd0f, "\x06\x35\x06\x31" },
{ 0xfd10, "\x06\x36\x06\x31" },
{ 0xfd11, "\x06\x37\x06\x49" },
{ 0xfd12, "\x06\x37\x06\x4a" },
{ 0xfd13, "\x06\x39\x06\x49" },
{ 0xfd14, "\x06\x39\x06\x4a" },
{ 0xfd15, "\x06\x3a\x06\x49" },
{ 0xfd16, "\x06\x3a\x06\x4a" },
{ 0xfd17, "\x06\x33\x06\x49" },
{ 0xfd18, "\x06\x33\x06\x4a" },
{ 0xfd19, "\x06\x34\x06\x49" },
{ 0xfd1a, "\x06\x34\x06\x4a" },
{ 0xfd1b, "\x06\x2d\x06\x49" },
{ 0xfd1c, "\x06\x2d\x06\x4a" },
{ 0xfd1d, "\x06\x2c\x06\x49" },
{ 0xfd1e, "\x06\x2c\x06\x4a" },
{ 0xfd1f, "\x06\x2e\x06\x49" },
{ 0xfd20, "\x06\x2e\x06\x4a" },
{ 0xfd21, "\x06\x35\x06\x49" },
{ 0xfd22, "\x06\x35\x06\x4a" },
{ 0xfd23, "\x06\x36\x06\x49" },
{ 0xfd24, "\x06\x36\x06\x4a" },
{ 0xfd25, "\x06\x34\x06\x2c" },
{ 0xfd26, "\x06\x34\x06\x2d" },
{ 0xfd27, "\x06\x34\x06\x2e" },
{ 0xfd28, "\x06\x34\x06\x45" },
{ 0xfd29, "\x06\x34\x06\x31" },
{ 0xfd2a, "\x06\x33\x06\x31" },
{ 0xfd2b, "\x06\x35\x06\x31" },
{ 0xfd2c, "\x06\x36\x06\x31" },
{ 0xfd2d, "\x06\x34\x06\x2c" },
{ 0xfd2e, "\x06\x34\x06\x2d" },
{ 0xfd2f, "\x06\x34\x06\x2e" },
{ 0xfd30, "\x06\x34\x06\x45" },
{ 0xfd31, "\x06\x33\x06\x47" },
{ 0xfd32, "\x06\x34\x06\x47" },
{ 0xfd33, "\x06\x37\x06\x45" },
{ 0xfd34, "\x06\x33\x06\x2c" },
{ 0xfd35, "\x06\x33\x06\x2d" },
{ 0xfd36, "\x06\x33\x06\x2e" },
{ 0xfd37, "\x06\x34\x06\x2c" },
{ 0xfd38, "\x06\x34\x06\x2d" },
{ 0xfd39, "\x06\x34\x06\x2e" },
{ 0xfd3a, "\x06\x37\x06\x45" },
{ 0xfd3b, "\x06\x38\x06\x45" },
{ 0xfd3c, "\x06\x27\x06\x4b" },
{ 0xfd3d, "\x06\x27\x06\x4b" },
{ 0xfd50, "\x06\x2a\x06\x2c\x06\x45" },
{ 0xfd51, "\x06\x2a\x06\x2d\x06\x2c" },
{ 0xfd52, "\x06\x2a\x06\x2d\x06\x2c" },
{ 0xfd53, "\x06\x2a\x06\x2d\x06\x45" },
{ 0xfd54, "\x06\x2a\x06\x2e\x06\x45" },
{ 0xfd55, "\x06\x2a\x06\x45\x06\x2c" },
{ 0xfd56, "\x06\x2a\x06\x45\x06\x2d" },
{ 0xfd57, "\x06\x2a\x06\x45\x06\x2e" },
{ 0xfd58, "\x06\x2c\x06\x45\x06\x2d" },
{ 0xfd59, "\x06\x2c\x06\x45\x06\x2d" },
{ 0xfd5a, "\x06\x2d\x06\x45\x06\x4a" },
{ 0xfd5b, "\x06\x2d\x06\x45\x06\x49" },
{ 0xfd5c, "\x06\x33\x06\x2d\x06\x2c" },
{ 0xfd5d, "\x06\x33\x06\x2c\x06\x2d" },
{ 0xfd5e, "\x06\x33\x06\x2c\x06\x49" },
{ 0xfd5f, "\x06\x33\x06\x45\x06\x2d" },
{ 0xfd60, "\x06\x33\x06\x45\x06\x2d" },
{ 0xfd61, "\x06\x33\x06\x45\x06\x2c" },
{ 0xfd62, "\x06\x33\x06\x45\x06\x45" },
{ 0xfd63, "\x06\x33\x06\x45\x06\x45" },
{ 0xfd64, "\x06\x35\x06\x2d\x06\x2d" },
{ 0xfd65, "\x06\x35\x06\x2d\x06\x2d" },
{ 0xfd66, "\x06\x35\x06\x45\x06\x45" },
{ 0xfd67, "\x06\x34\x06\x2d\x06\x45" },
{ 0xfd68, "\x06\x34\x06\x2d\x06\x45" },
{ 0xfd69, "\x06\x34\x06\x2c\x06\x4a" },
{ 0xfd6a, "\x06\x34\x06\x45\x06\x2e" },
{ 0xfd6b, "\x06\x34\x06\x45\x06\x2e" },
{ 0xfd6c, "\x06\x34\x06\x45\x06\x45" },
{ 0xfd6d, "\x06\x34\x06\x45\x06\x45" },
{ 0xfd6e, "\x06\x36\x06\x2d\x06\x49" },
{ 0xfd6f, "\x06\x36\x06\x2e\x06\x45" },
{ 0xfd70, "\x06\x36\x06\x2e\x06\x45" },
{ 0xfd71, "\x06\x37\x06\x45\x06\x2d" },
{ 0xfd72, "\x06\x37\x06\x45\x06\x2d" },
{ 0xfd73, "\x06\x37\x06\x45\x06\x45" },
{ 0xfd74, "\x06\x37\x06\x45\x06\x4a" },
{ 0xfd75, "\x06\x39\x06\x2c\x06\x45" },
{ 0xfd76, "\x06\x39\x06\x45\x06\x45" },
{ 0xfd77, "\x06\x39\x06\x45\x06\x45" },
{ 0xfd78, "\x06\x39\x06\x45\x06\x49" },
{ 0xfd79, "\x06\x3a\x06\x45\x06\x45" },
{ 0xfd7a, "\x06\x3a\x06\x45\x06\x4a" },
{ 0xfd7b, "\x06\x3a\x06\x45\x06\x49" },
{ 0xfd7c, "\x06\x41\x06\x2e\x06\x45" },
{ 0xfd7d, "\x06\x41\x06\x2e\x06\x45" },
{ 0xfd7e, "\x06\x42\x06\x45\x06\x2d" },
{ 0xfd7f, "\x06\x42\x06\x45\x06\x45" },
{ 0xfd80, "\x06\x44\x06\x2d\x06\x45" },
{ 0xfd81, "\x06\x44\x06\x2d\x06\x4a" },
{ 0xfd82, "\x06\x44\x06\x2d\x06\x49" },
{ 0xfd83, "\x06\x44\x06\x2c\x06\x2c" },
{ 0xfd84, "\x06\x44\x06\x2c\x06\x2c" },
{ 0xfd85, "\x06\x44\x06\x2e\x06\x45" },
{ 0xfd86, "\x06\x44\x06\x2e\x06\x45" },
{ 0xfd87, "\x06\x44\x06\x45\x06\x2d" },
{ 0xfd88, "\x06\x44\x06\x45\x06\x2d" },
{ 0xfd89, "\x06\x45\x06\x2d\x06\x2c" },
{ 0xfd8a, "\x06\x45\x06\x2d\x06\x45" },
{ 0xfd8b, "\x06\x45\x06\x2d\x06\x4a" },
{ 0xfd8c, "\x06\x45\x06\x2c\x06\x2d" },
{ 0xfd8d, "\x06\x45\x06\x2c\x06\x45" },
{ 0xfd8e, "\x06\x45\x06\x2e\x06\x2c" },
{ 0xfd8f, "\x06\x45\x06\x2e\x06\x45" },
{ 0xfd92, "\x06\x45\x06\x2c\x06\x2e" },
{ 0xfd93, "\x06\x47\x06\x45\x06\x2c" },
{ 0xfd94, "\x06\x47\x06\x45\x06\x45" },
{ 0xfd95, "\x06\x46\x06\x2d\x06\x45" },
{ 0xfd96, "\x06\x46\x06\x2d\x06\x49" },
{ 0xfd97, "\x06\x46\x06\x2c\x06\x45" },
{ 0xfd98, "\x06\x46\x06\x2c\x06\x45" },
{ 0xfd99, "\x06\x46\x06\x2c\x06\x49" },
{ 0xfd9a, "\x06\x46\x06\x45\x06\x4a" },
{ 0xfd9b, "\x06\x46\x06\x45\x06\x49" },
{ 0xfd9c, "\x06\x4a\x06\x45\x06\x45" },
{ 0xfd9d, "\x06\x4a\x06\x45\x06\x45" },
{ 0xfd9e, "\x06\x28\x06\x2e\x06\x4a" },
{ 0xfd9f, "\x06\x2a\x06\x2c\x06\x4a" },
{ 0xfda0, "\x06\x2a\x06\x2c\x06\x49" },
{ 0xfda1, "\x06\x2a\x06\x2e\x06\x4a" },
{ 0xfda2, "\x06\x2a\x06\x2e\x06\x49" },
{ 0xfda3, "\x06\x2a\x06\x45\x06\x4a" },
{ 0xfda4, "\x06\x2a\x06\x45\x06\x49" },
{ 0xfda5, "\x06\x2c\x06\x45\x06\x4a" },
{ 0xfda6, "\x06\x2c\x06\x2d\x06\x49" },
{ 0xfda7, "\x06\x2c\x06\x45\x06\x49" },
{ 0xfda8, "\x06\x33\x06\x2e\x06\x49" },
{ 0xfda9, "\x06\x35\x06\x2d\x06\x4a" },
{ 0xfdaa, "\x06\x34\x06\x2d\x06\x4a" },
{ 0xfdab, "\x06\x36\x06\x2d\x06\x4a" },
{ 0xfdac, "\x06\x44\x06\x2c\x06\x4a" },
{ 0xfdad, "\x06\x44\x06\x45\x06\x4a" },
{ 0xfdae, "\x06\x4a\x06\x2d\x06\x4a" },
{ 0xfdaf, "\x06\x4a\x06\x2c\x06\x4a" },
{ 0xfdb0, "\x06\x4a\x06\x45\x06\x4a" },
{ 0xfdb1, "\x06\x45\x06\x45\x06\x4a" },
{ 0xfdb2, "\x06\x42\x06\x45\x06\x4a" },
{ 0xfdb3, "\x06\x46\x06\x2d\x06\x4a" },
{ 0xfdb4, "\x06\x42\x06\x45\x06\x2d" },
{ 0xfdb5, "\x06\x44\x06\x2d\x06\x45" },
{ 0xfdb6, "\x06\x39\x06\x45\x06\x4a" },
{ 0xfdb7, "\x06\x43\x06\x45\x06\x4a" },
{ 0xfdb8, "\x06\x46\x06\x2c\x06\x2d" },
{ 0xfdb9, "\x06\x45\x06\x2e\x06\x4a" },
{ 0xfdba, "\x06\x44\x06\x2c\x06\x45" },
{ 0xfdbb, "\x06\x43\x06\x45\x06\x45" },
{ 0xfdbc, "\x06\x44\x06\x2c\x06\x45" },
{ 0xfdbd, "\x06\x46\x06\x2c\x06\x2d" },
{ 0xfdbe, "\x06\x2c\x06\x2d\x06\x4a" },
{ 0xfdbf, "\x06\x2d\x06\x2c\x06\x4a" },
{ 0xfdc0, "\x06\x45\x06\x2c\x06\x4a" },
{ 0xfdc1, "\x06\x41\x06\x45\x06\x4a" },
{ 0xfdc2, "\x06\x28\x06\x2d\x06\x4a" },
{ 0xfdc3, "\x06\x43\x06\x45\x06\x45" },
{ 0xfdc4, "\x06\x39\x06\x2c\x06\x45" },
{ 0xfdc5, "\x06\x35\x06\x45\x06\x45" },
{ 0xfdc6, "\x06\x33\x06\x2e\x06\x4a" },
{ 0xfdc7, "\x06\x46\x06\x2c\x06\x4a" },
{ 0xfdf0, "\x06\x35\x06\x44\x06\xd2" },
{ 0xfdf1, "\x06\x42\x06\x44\x06\xd2" },
{ 0xfdf2, "\x06\x27\x06\x44\x06\x44\x06\x47" },
{ 0xfdf3, "\x06\x27\x06\x43\x06\x28\x06\x31" },
{ 0xfdf4, "\x06\x45\x06\x2d\x06\x45\x06\x2f" },
{ 0xfdf5, "\x06\x35\x06\x44\x06\x39\x06\x45" },
{ 0xfdf6, "\x06\x31\x06\x33\x06\x48\x06\x44" },
{ 0xfdf7, "\x06\x39\x06\x44\x06\x4a\x06\x47" },
{ 0xfdf8, "\x06\x48\x06\x33\x06\x44\x06\x45" },
{ 0xfdf9, "\x06\x35\x06\x44\x06\x49" },
{ 0xfdfa, "\x06\x35\x06\x44\x06\x49\x00\x20\x06\x27\x06\x44\x06\x44\x06\x47\x00\x20\x06\x39\x06\x44\x06\x4a\x06\x47\x00\x20\x06\x48\x06\x33\x06\x44\x06\x45" },
{ 0xfdfb, "\x06\x2c\x06\x44\x00\x20\x06\x2c\x06\x44\x06\x27\x06\x44\x06\x47" },
{ 0xfe30, "\x20\x25" },
{ 0xfe31, "\x20\x14" },
{ 0xfe32, "\x20\x13" },
{ 0xfe33, "\x00\x5f" },
{ 0xfe34, "\x00\x5f" },
{ 0xfe35, "\x00\x28" },
{ 0xfe36, "\x00\x29" },
{ 0xfe37, "\x00\x7b" },
{ 0xfe38, "\x00\x7d" },
{ 0xfe39, "\x30\x14" },
{ 0xfe3a, "\x30\x15" },
{ 0xfe3b, "\x30\x10" },
{ 0xfe3c, "\x30\x11" },
{ 0xfe3d, "\x30\x0a" },
{ 0xfe3e, "\x30\x0b" },
{ 0xfe3f, "\x30\x08" },
{ 0xfe40, "\x30\x09" },
{ 0xfe41, "\x30\x0c" },
{ 0xfe42, "\x30\x0d" },
{ 0xfe43, "\x30\x0e" },
{ 0xfe44, "\x30\x0f" },
{ 0xfe49, "\x20\x3e" },
{ 0xfe4a, "\x20\x3e" },
{ 0xfe4b, "\x20\x3e" },
{ 0xfe4c, "\x20\x3e" },
{ 0xfe4d, "\x00\x5f" },
{ 0xfe4e, "\x00\x5f" },
{ 0xfe4f, "\x00\x5f" },
{ 0xfe50, "\x00\x2c" },
{ 0xfe51, "\x30\x01" },
{ 0xfe52, "\x00\x2e" },
{ 0xfe54, "\x00\x3b" },
{ 0xfe55, "\x00\x3a" },
{ 0xfe56, "\x00\x3f" },
{ 0xfe57, "\x00\x21" },
{ 0xfe58, "\x20\x14" },
{ 0xfe59, "\x00\x28" },
{ 0xfe5a, "\x00\x29" },
{ 0xfe5b, "\x00\x7b" },
{ 0xfe5c, "\x00\x7d" },
{ 0xfe5d, "\x30\x14" },
{ 0xfe5e, "\x30\x15" },
{ 0xfe5f, "\x00\x23" },
{ 0xfe60, "\x00\x26" },
{ 0xfe61, "\x00\x2a" },
{ 0xfe62, "\x00\x2b" },
{ 0xfe63, "\x00\x2d" },
{ 0xfe64, "\x00\x3c" },
{ 0xfe65, "\x00\x3e" },
{ 0xfe66, "\x00\x3d" },
{ 0xfe68, "\x00\x5c" },
{ 0xfe69, "\x00\x24" },
{ 0xfe6a, "\x00\x25" },
{ 0xfe6b, "\x00\x40" },
{ 0xfe70, "\x00\x20\x06\x4b" },
{ 0xfe71, "\x06\x40\x06\x4b" },
{ 0xfe72, "\x00\x20\x06\x4c" },
{ 0xfe74, "\x00\x20\x06\x4d" },
{ 0xfe76, "\x00\x20\x06\x4e" },
{ 0xfe77, "\x06\x40\x06\x4e" },
{ 0xfe78, "\x00\x20\x06\x4f" },
{ 0xfe79, "\x06\x40\x06\x4f" },
{ 0xfe7a, "\x00\x20\x06\x50" },
{ 0xfe7b, "\x06\x40\x06\x50" },
{ 0xfe7c, "\x00\x20\x06\x51" },
{ 0xfe7d, "\x06\x40\x06\x51" },
{ 0xfe7e, "\x00\x20\x06\x52" },
{ 0xfe7f, "\x06\x40\x06\x52" },
{ 0xfe80, "\x06\x21" },
{ 0xfe81, "\x06\x22" },
{ 0xfe82, "\x06\x22" },
{ 0xfe83, "\x06\x23" },
{ 0xfe84, "\x06\x23" },
{ 0xfe85, "\x06\x24" },
{ 0xfe86, "\x06\x24" },
{ 0xfe87, "\x06\x25" },
{ 0xfe88, "\x06\x25" },
{ 0xfe89, "\x06\x26" },
{ 0xfe8a, "\x06\x26" },
{ 0xfe8b, "\x06\x26" },
{ 0xfe8c, "\x06\x26" },
{ 0xfe8d, "\x06\x27" },
{ 0xfe8e, "\x06\x27" },
{ 0xfe8f, "\x06\x28" },
{ 0xfe90, "\x06\x28" },
{ 0xfe91, "\x06\x28" },
{ 0xfe92, "\x06\x28" },
{ 0xfe93, "\x06\x29" },
{ 0xfe94, "\x06\x29" },
{ 0xfe95, "\x06\x2a" },
{ 0xfe96, "\x06\x2a" },
{ 0xfe97, "\x06\x2a" },
{ 0xfe98, "\x06\x2a" },
{ 0xfe99, "\x06\x2b" },
{ 0xfe9a, "\x06\x2b" },
{ 0xfe9b, "\x06\x2b" },
{ 0xfe9c, "\x06\x2b" },
{ 0xfe9d, "\x06\x2c" },
{ 0xfe9e, "\x06\x2c" },
{ 0xfe9f, "\x06\x2c" },
{ 0xfea0, "\x06\x2c" },
{ 0xfea1, "\x06\x2d" },
{ 0xfea2, "\x06\x2d" },
{ 0xfea3, "\x06\x2d" },
{ 0xfea4, "\x06\x2d" },
{ 0xfea5, "\x06\x2e" },
{ 0xfea6, "\x06\x2e" },
{ 0xfea7, "\x06\x2e" },
{ 0xfea8, "\x06\x2e" },
{ 0xfea9, "\x06\x2f" },
{ 0xfeaa, "\x06\x2f" },
{ 0xfeab, "\x06\x30" },
{ 0xfeac, "\x06\x30" },
{ 0xfead, "\x06\x31" },
{ 0xfeae, "\x06\x31" },
{ 0xfeaf, "\x06\x32" },
{ 0xfeb0, "\x06\x32" },
{ 0xfeb1, "\x06\x33" },
{ 0xfeb2, "\x06\x33" },
{ 0xfeb3, "\x06\x33" },
{ 0xfeb4, "\x06\x33" },
{ 0xfeb5, "\x06\x34" },
{ 0xfeb6, "\x06\x34" },
{ 0xfeb7, "\x06\x34" },
{ 0xfeb8, "\x06\x34" },
{ 0xfeb9, "\x06\x35" },
{ 0xfeba, "\x06\x35" },
{ 0xfebb, "\x06\x35" },
{ 0xfebc, "\x06\x35" },
{ 0xfebd, "\x06\x36" },
{ 0xfebe, "\x06\x36" },
{ 0xfebf, "\x06\x36" },
{ 0xfec0, "\x06\x36" },
{ 0xfec1, "\x06\x37" },
{ 0xfec2, "\x06\x37" },
{ 0xfec3, "\x06\x37" },
{ 0xfec4, "\x06\x37" },
{ 0xfec5, "\x06\x38" },
{ 0xfec6, "\x06\x38" },
{ 0xfec7, "\x06\x38" },
{ 0xfec8, "\x06\x38" },
{ 0xfec9, "\x06\x39" },
{ 0xfeca, "\x06\x39" },
{ 0xfecb, "\x06\x39" },
{ 0xfecc, "\x06\x39" },
{ 0xfecd, "\x06\x3a" },
{ 0xfece, "\x06\x3a" },
{ 0xfecf, "\x06\x3a" },
{ 0xfed0, "\x06\x3a" },
{ 0xfed1, "\x06\x41" },
{ 0xfed2, "\x06\x41" },
{ 0xfed3, "\x06\x41" },
{ 0xfed4, "\x06\x41" },
{ 0xfed5, "\x06\x42" },
{ 0xfed6, "\x06\x42" },
{ 0xfed7, "\x06\x42" },
{ 0xfed8, "\x06\x42" },
{ 0xfed9, "\x06\x43" },
{ 0xfeda, "\x06\x43" },
{ 0xfedb, "\x06\x43" },
{ 0xfedc, "\x06\x43" },
{ 0xfedd, "\x06\x44" },
{ 0xfede, "\x06\x44" },
{ 0xfedf, "\x06\x44" },
{ 0xfee0, "\x06\x44" },
{ 0xfee1, "\x06\x45" },
{ 0xfee2, "\x06\x45" },
{ 0xfee3, "\x06\x45" },
{ 0xfee4, "\x06\x45" },
{ 0xfee5, "\x06\x46" },
{ 0xfee6, "\x06\x46" },
{ 0xfee7, "\x06\x46" },
{ 0xfee8, "\x06\x46" },
{ 0xfee9, "\x06\x47" },
{ 0xfeea, "\x06\x47" },
{ 0xfeeb, "\x06\x47" },
{ 0xfeec, "\x06\x47" },
{ 0xfeed, "\x06\x48" },
{ 0xfeee, "\x06\x48" },
{ 0xfeef, "\x06\x49" },
{ 0xfef0, "\x06\x49" },
{ 0xfef1, "\x06\x4a" },
{ 0xfef2, "\x06\x4a" },
{ 0xfef3, "\x06\x4a" },
{ 0xfef4, "\x06\x4a" },
{ 0xfef5, "\x06\x44\x06\x22" },
{ 0xfef6, "\x06\x44\x06\x22" },
{ 0xfef7, "\x06\x44\x06\x23" },
{ 0xfef8, "\x06\x44\x06\x23" },
{ 0xfef9, "\x06\x44\x06\x25" },
{ 0xfefa, "\x06\x44\x06\x25" },
{ 0xfefb, "\x06\x44\x06\x27" },
{ 0xfefc, "\x06\x44\x06\x27" },
{ 0xff01, "\x00\x21" },
{ 0xff02, "\x00\x22" },
{ 0xff03, "\x00\x23" },
{ 0xff04, "\x00\x24" },
{ 0xff05, "\x00\x25" },
{ 0xff06, "\x00\x26" },
{ 0xff07, "\x00\x27" },
{ 0xff08, "\x00\x28" },
{ 0xff09, "\x00\x29" },
{ 0xff0a, "\x00\x2a" },
{ 0xff0b, "\x00\x2b" },
{ 0xff0c, "\x00\x2c" },
{ 0xff0d, "\x00\x2d" },
{ 0xff0e, "\x00\x2e" },
{ 0xff0f, "\x00\x2f" },
{ 0xff10, "\x00\x30" },
{ 0xff11, "\x00\x31" },
{ 0xff12, "\x00\x32" },
{ 0xff13, "\x00\x33" },
{ 0xff14, "\x00\x34" },
{ 0xff15, "\x00\x35" },
{ 0xff16, "\x00\x36" },
{ 0xff17, "\x00\x37" },
{ 0xff18, "\x00\x38" },
{ 0xff19, "\x00\x39" },
{ 0xff1a, "\x00\x3a" },
{ 0xff1b, "\x00\x3b" },
{ 0xff1c, "\x00\x3c" },
{ 0xff1d, "\x00\x3d" },
{ 0xff1e, "\x00\x3e" },
{ 0xff1f, "\x00\x3f" },
{ 0xff20, "\x00\x40" },
{ 0xff21, "\x00\x41" },
{ 0xff22, "\x00\x42" },
{ 0xff23, "\x00\x43" },
{ 0xff24, "\x00\x44" },
{ 0xff25, "\x00\x45" },
{ 0xff26, "\x00\x46" },
{ 0xff27, "\x00\x47" },
{ 0xff28, "\x00\x48" },
{ 0xff29, "\x00\x49" },
{ 0xff2a, "\x00\x4a" },
{ 0xff2b, "\x00\x4b" },
{ 0xff2c, "\x00\x4c" },
{ 0xff2d, "\x00\x4d" },
{ 0xff2e, "\x00\x4e" },
{ 0xff2f, "\x00\x4f" },
{ 0xff30, "\x00\x50" },
{ 0xff31, "\x00\x51" },
{ 0xff32, "\x00\x52" },
{ 0xff33, "\x00\x53" },
{ 0xff34, "\x00\x54" },
{ 0xff35, "\x00\x55" },
{ 0xff36, "\x00\x56" },
{ 0xff37, "\x00\x57" },
{ 0xff38, "\x00\x58" },
{ 0xff39, "\x00\x59" },
{ 0xff3a, "\x00\x5a" },
{ 0xff3b, "\x00\x5b" },
{ 0xff3c, "\x00\x5c" },
{ 0xff3d, "\x00\x5d" },
{ 0xff3e, "\x00\x5e" },
{ 0xff3f, "\x00\x5f" },
{ 0xff40, "\x00\x60" },
{ 0xff41, "\x00\x61" },
{ 0xff42, "\x00\x62" },
{ 0xff43, "\x00\x63" },
{ 0xff44, "\x00\x64" },
{ 0xff45, "\x00\x65" },
{ 0xff46, "\x00\x66" },
{ 0xff47, "\x00\x67" },
{ 0xff48, "\x00\x68" },
{ 0xff49, "\x00\x69" },
{ 0xff4a, "\x00\x6a" },
{ 0xff4b, "\x00\x6b" },
{ 0xff4c, "\x00\x6c" },
{ 0xff4d, "\x00\x6d" },
{ 0xff4e, "\x00\x6e" },
{ 0xff4f, "\x00\x6f" },
{ 0xff50, "\x00\x70" },
{ 0xff51, "\x00\x71" },
{ 0xff52, "\x00\x72" },
{ 0xff53, "\x00\x73" },
{ 0xff54, "\x00\x74" },
{ 0xff55, "\x00\x75" },
{ 0xff56, "\x00\x76" },
{ 0xff57, "\x00\x77" },
{ 0xff58, "\x00\x78" },
{ 0xff59, "\x00\x79" },
{ 0xff5a, "\x00\x7a" },
{ 0xff5b, "\x00\x7b" },
{ 0xff5c, "\x00\x7c" },
{ 0xff5d, "\x00\x7d" },
{ 0xff5e, "\x00\x7e" },
{ 0xff61, "\x30\x02" },
{ 0xff62, "\x30\x0c" },
{ 0xff63, "\x30\x0d" },
{ 0xff64, "\x30\x01" },
{ 0xff65, "\x30\xfb" },
{ 0xff66, "\x30\xf2" },
{ 0xff67, "\x30\xa1" },
{ 0xff68, "\x30\xa3" },
{ 0xff69, "\x30\xa5" },
{ 0xff6a, "\x30\xa7" },
{ 0xff6b, "\x30\xa9" },
{ 0xff6c, "\x30\xe3" },
{ 0xff6d, "\x30\xe5" },
{ 0xff6e, "\x30\xe7" },
{ 0xff6f, "\x30\xc3" },
{ 0xff70, "\x30\xfc" },
{ 0xff71, "\x30\xa2" },
{ 0xff72, "\x30\xa4" },
{ 0xff73, "\x30\xa6" },
{ 0xff74, "\x30\xa8" },
{ 0xff75, "\x30\xaa" },
{ 0xff76, "\x30\xab" },
{ 0xff77, "\x30\xad" },
{ 0xff78, "\x30\xaf" },
{ 0xff79, "\x30\xb1" },
{ 0xff7a, "\x30\xb3" },
{ 0xff7b, "\x30\xb5" },
{ 0xff7c, "\x30\xb7" },
{ 0xff7d, "\x30\xb9" },
{ 0xff7e, "\x30\xbb" },
{ 0xff7f, "\x30\xbd" },
{ 0xff80, "\x30\xbf" },
{ 0xff81, "\x30\xc1" },
{ 0xff82, "\x30\xc4" },
{ 0xff83, "\x30\xc6" },
{ 0xff84, "\x30\xc8" },
{ 0xff85, "\x30\xca" },
{ 0xff86, "\x30\xcb" },
{ 0xff87, "\x30\xcc" },
{ 0xff88, "\x30\xcd" },
{ 0xff89, "\x30\xce" },
{ 0xff8a, "\x30\xcf" },
{ 0xff8b, "\x30\xd2" },
{ 0xff8c, "\x30\xd5" },
{ 0xff8d, "\x30\xd8" },
{ 0xff8e, "\x30\xdb" },
{ 0xff8f, "\x30\xde" },
{ 0xff90, "\x30\xdf" },
{ 0xff91, "\x30\xe0" },
{ 0xff92, "\x30\xe1" },
{ 0xff93, "\x30\xe2" },
{ 0xff94, "\x30\xe4" },
{ 0xff95, "\x30\xe6" },
{ 0xff96, "\x30\xe8" },
{ 0xff97, "\x30\xe9" },
{ 0xff98, "\x30\xea" },
{ 0xff99, "\x30\xeb" },
{ 0xff9a, "\x30\xec" },
{ 0xff9b, "\x30\xed" },
{ 0xff9c, "\x30\xef" },
{ 0xff9d, "\x30\xf3" },
{ 0xff9e, "\x30\x99" },
{ 0xff9f, "\x30\x9a" },
{ 0xffa0, "\x31\x64" },
{ 0xffa1, "\x31\x31" },
{ 0xffa2, "\x31\x32" },
{ 0xffa3, "\x31\x33" },
{ 0xffa4, "\x31\x34" },
{ 0xffa5, "\x31\x35" },
{ 0xffa6, "\x31\x36" },
{ 0xffa7, "\x31\x37" },
{ 0xffa8, "\x31\x38" },
{ 0xffa9, "\x31\x39" },
{ 0xffaa, "\x31\x3a" },
{ 0xffab, "\x31\x3b" },
{ 0xffac, "\x31\x3c" },
{ 0xffad, "\x31\x3d" },
{ 0xffae, "\x31\x3e" },
{ 0xffaf, "\x31\x3f" },
{ 0xffb0, "\x31\x40" },
{ 0xffb1, "\x31\x41" },
{ 0xffb2, "\x31\x42" },
{ 0xffb3, "\x31\x43" },
{ 0xffb4, "\x31\x44" },
{ 0xffb5, "\x31\x45" },
{ 0xffb6, "\x31\x46" },
{ 0xffb7, "\x31\x47" },
{ 0xffb8, "\x31\x48" },
{ 0xffb9, "\x31\x49" },
{ 0xffba, "\x31\x4a" },
{ 0xffbb, "\x31\x4b" },
{ 0xffbc, "\x31\x4c" },
{ 0xffbd, "\x31\x4d" },
{ 0xffbe, "\x31\x4e" },
{ 0xffc2, "\x31\x4f" },
{ 0xffc3, "\x31\x50" },
{ 0xffc4, "\x31\x51" },
{ 0xffc5, "\x31\x52" },
{ 0xffc6, "\x31\x53" },
{ 0xffc7, "\x31\x54" },
{ 0xffca, "\x31\x55" },
{ 0xffcb, "\x31\x56" },
{ 0xffcc, "\x31\x57" },
{ 0xffcd, "\x31\x58" },
{ 0xffce, "\x31\x59" },
{ 0xffcf, "\x31\x5a" },
{ 0xffd2, "\x31\x5b" },
{ 0xffd3, "\x31\x5c" },
{ 0xffd4, "\x31\x5d" },
{ 0xffd5, "\x31\x5e" },
{ 0xffd6, "\x31\x5f" },
{ 0xffd7, "\x31\x60" },
{ 0xffda, "\x31\x61" },
{ 0xffdb, "\x31\x62" },
{ 0xffdc, "\x31\x63" },
{ 0xffe0, "\x00\xa2" },
{ 0xffe1, "\x00\xa3" },
{ 0xffe2, "\x00\xac" },
{ 0xffe3, "\x00\xaf" },
{ 0xffe4, "\x00\xa6" },
{ 0xffe5, "\x00\xa5" },
{ 0xffe6, "\x20\xa9" },
{ 0xffe8, "\x25\x02" },
{ 0xffe9, "\x21\x90" },
{ 0xffea, "\x21\x91" },
{ 0xffeb, "\x21\x92" },
{ 0xffec, "\x21\x93" },
{ 0xffed, "\x25\xa0" },
{ 0xffee, "\x25\xcb" }
};
 
#endif /* __JAVA_CHARDECOMP_H__ */
/gnu-dev/or1k-gcc/libjava/include/jvmpi.h
0,0 → 1,227
/* Copyright (C) 2000 Free Software Foundation
 
This file is part of libgcj.
 
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
 
/* Note: this file must be compilable by the C compiler (for now,
assuming GNU C is ok). This means you must never use `//'
comments, and all C++-specific code must be conditional on
__cplusplus. */
 
#ifndef __GCJ_JVMPI_H__
#define __GCJ_JVMPI_H__
 
#include <jni.h>
 
/* JVMPI version numbers. FIXME: this is a semi-random number. The
documentation doesn't say what it should be. */
#define JVMPI_VERSION_1 0x00020001
 
/* JVMPI return codes. FIXME: These are semi-random numbers. The
documentation doesn't say what they should be. */
#define JVMPI_SUCCESS 0
#define JVMPI_FAIL 1
#define JVMPI_NOT_AVAILABLE 2
 
/* An opaque pointer representing an object ID. */
struct _jobjectID;
typedef struct _jobjectID * jobjectID;
 
typedef struct
{
/* Source line number. */
jint lineno;
/* Method being executed. */
jmethodID method_id;
} JVMPI_CallFrame;
 
typedef struct
{
JNIEnv *env_id;
/* Number of frames in the call trace. */
jint num_frames;
/* An array of frames representing the trace. Callees first. */
JVMPI_CallFrame *frames;
} JVMPI_CallTrace;
 
typedef struct
{
/* Name of the field. */
char *field_name;
/* Signature of the field. */
char *field_signature;
} JVMPI_Field;
 
/* The documentation doesn't actually specify what the
JVMPI_DUMP_LEVEL macros should be defined to. Here's a reasonable
guess. */
#define JVMPI_DUMP_LEVEL_0 0
#define JVMPI_DUMP_LEVEL_1 1
#define JVMPI_DUMP_LEVEL_2 2
#define JVMPI_DUMP_LEVEL_3 3
 
typedef struct
{
/* One of JVMPI_DUMP_LEVEL_0, JVMPI_DUMP_LEVEL_1 or
JVMPI_DUMP_LEVEL_2. */
jint heap_dump_level;
} JVMPI_HeapDumpArg;
 
typedef struct
{
/* Offset from the beginning of the method. */
jint offset;
/* Line number from the beginning of the source file. */
jint lineno;
} JVMPI_Lineno;
 
typedef struct
{
/* Name of the method. */
char *method_name;
/* Signature of the method. */
char *method_signature;
/* Start line number from the beginning of the source file. */
jint start_lineno;
/* End line number from the beginning of the source file. */
jint end_lineno;
/* The method ID. */
jmethodID method_id;
} JVMPI_Method;
 
/* An opaque pointer representing a raw monitor. */
struct _JVMPI_RawMonitor;
typedef struct _JVMPI_RawMonitor *JVMPI_RawMonitor;
 
/* JVMPI event codes. FIXME: These are semi-random numbers. The
documentation doesn't say what they should be. */
#define JVMPI_EVENT_ARENA_DELETE 0
#define JVMPI_EVENT_ARENA_NEW 1
#define JVMPI_EVENT_CLASS_LOAD 2
#define JVMPI_EVENT_CLASS_LOAD_HOOK 3
#define JVMPI_EVENT_CLASS_UNLOAD 4
#define JVMPI_EVENT_COMPILED_METHOD_LOAD 5
#define JVMPI_EVENT_COMPILED_METHOD_UNLOAD 6
#define JVMPI_EVENT_DATA_DUMP_REQUEST 7
#define JVMPI_EVENT_DATA_RESET_REQUEST 8
#define JVMPI_EVENT_GC_FINISH 9
#define JVMPI_EVENT_GC_START 10
#define JVMPI_EVENT_HEAP_DUMP 11
#define JVMPI_EVENT_JNI_GLOBALREF_ALLOC 12
#define JVMPI_EVENT_JNI_GLOBALREF_FREE 13
#define JVMPI_EVENT_JNI_WEAK_GLOBALREF_ALLOC 14
#define JVMPI_EVENT_JNI_WEAK_GLOBALREF_FREE 15
#define JVMPI_EVENT_JVM_INIT_DONE 16
#define JVMPI_EVENT_JVM_SHUT_DOWN 17
#define JVMPI_EVENT_METHOD_ENTRY 18
#define JVMPI_EVENT_METHOD_ENTRY2 19
#define JVMPI_EVENT_METHOD_EXIT 20
#define JVMPI_EVENT_MONITOR_CONTENDED_ENTER 21
#define JVMPI_EVENT_MONITOR_CONTENDED_ENTERED 22
#define JVMPI_EVENT_MONITOR_CONTENDED_EXIT 23
#define JVMPI_EVENT_MONITOR_DUMP 24
#define JVMPI_EVENT_MONITOR_WAIT 25
#define JVMPI_EVENT_MONITOR_WAITED 26
#define JVMPI_EVENT_OBJECT_ALLOC 27
#define JVMPI_EVENT_OBJECT_DUMP 28
#define JVMPI_EVENT_OBJECT_FREE 29
#define JVMPI_EVENT_OBJECT_MOVE 30
#define JVMPI_EVENT_RAW_MONITOR_CONTENDED_ENTER 31
#define JVMPI_EVENT_RAW_MONITOR_CONTENDED_ENTERED 32
#define JVMPI_EVENT_RAW_MONITOR_CONTENDED_EXIT 33
#define JVMPI_EVENT_THREAD_END 34
#define JVMPI_EVENT_THREAD_START 35
#define JVMPI_EVENT_INSTRUCTION_START 36
 
 
typedef struct
{
/* Event type. */
jint event_type;
 
/* Evn where this event occurred. */
JNIEnv *env_id;
 
union
{
struct
{
char *class_name;
char *source_name;
jint num_interfaces;
jint num_methods;
JVMPI_Method *methods;
jint num_static_fields;
JVMPI_Field *statics;
jint num_instance_fields;
JVMPI_Field *instances;
jobjectID class_id;
} class_load;
 
struct
{
jobjectID class_id;
} class_unload;
 
struct
{
jint arena_id;
jobjectID class_id;
jint is_array;
jint size;
jobjectID obj_id;
} obj_alloc;
 
struct
{
char *thread_name;
char *group_name;
char *parent_name;
jobjectID thread_id;
JNIEnv *thread_env_id;
} thread_start;
 
} u;
 
} JVMPI_Event;
 
typedef struct
{
/* JVMPI version number. */
jint version;
/* Implemented by the user... */
void (*NotifyEvent) (JVMPI_Event *event);
/* Implemented by the runtime... */
jint (*EnableEvent) (jint event_type, void *arg);
jint (*DisableEvent) (jint event_type, void *arg);
jint (*RequestEvent) (jint event_type, void *arg);
void (*GetCallTrace) (JVMPI_CallTrace *trace, jint depth);
void (*ProfilerExit) (jint);
JVMPI_RawMonitor (*RawMonitorCreate) (char *lock_name);
void (*RawMonitorEnter) (JVMPI_RawMonitor lock_id);
void (*RawMonitorExit) (JVMPI_RawMonitor lock_id);
void (*RawMonitorWait) (JVMPI_RawMonitor lock_id, jlong ms);
void (*RawMonitorNotifyAll) (JVMPI_RawMonitor lock_id);
void (*RawMonitorDestroy) (JVMPI_RawMonitor lock_id);
jlong (*GetCurrentThreadCpuTime) (void);
void (*SuspendThread) (JNIEnv *env);
void (*ResumeThread) (JNIEnv *env);
jint (*GetThreadStatus) (JNIEnv *env);
jboolean (*ThreadHasRun) (JNIEnv *env);
jint (*CreateSystemThread) (char *name, jint priority, void (*f) (void *));
void (*SetThreadLocalStorage) (JNIEnv *env_id, void *ptr);
void *(*GetThreadLocalStorage) (JNIEnv *env_id);
void (*DisableGC) (void);
void (*EnableGC) (void);
void (*RunGC) (void);
jobjectID (*GetThreadObject) (JNIEnv *env);
jobjectID (*GetMethodClass) (jmethodID mid);
} JVMPI_Interface;
 
#endif /* __GCJ_JVMPI_H__ */
/gnu-dev/or1k-gcc/libjava/include/sh-signal.h
0,0 → 1,75
// sh-signal.h - Catch runtime signals and turn them into exceptions
// on a SuperH based Linux system.
 
/* Copyright (C) 2004, 2006 Free Software Foundation
 
This file is part of libgcj.
 
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
 
 
#ifndef JAVA_SIGNAL_H
#define JAVA_SIGNAL_H 1
 
#include <signal.h>
#include <sys/syscall.h>
 
#define HANDLE_SEGV 1
#define HANDLE_FPE 1
 
/* The third parameter to the signal handler points to something with
* this structure defined in asm/ucontext.h, but the name clashes with
* struct ucontext from sys/ucontext.h so this private copy is used. */
typedef struct _sig_ucontext {
unsigned long uc_flags;
struct _sig_ucontext *uc_link;
stack_t uc_stack;
struct sigcontext uc_mcontext;
sigset_t uc_sigmask;
} sig_ucontext_t;
 
#define SIGNAL_HANDLER(_name) \
static void _name (int , siginfo_t *, sig_ucontext_t *_uc)
 
#define MAKE_THROW_FRAME(_exception)
 
/* For an explanation why we cannot simply use sigaction to
install the handlers, see i386-signal.h. */
 
/* We use kernel_old_sigaction here because we're calling the kernel
directly rather than via glibc. The sigaction structure that the
syscall uses is a different shape from the one in userland and not
visible to us in a header file so we define it here. */
 
struct kernel_old_sigaction {
void (*k_sa_handler) (int, siginfo_t *, sig_ucontext_t *);
unsigned long k_sa_mask;
unsigned long k_sa_flags;
void (*k_sa_restorer) (void);
};
 
#define INIT_SEGV \
do \
{ \
struct kernel_old_sigaction kact; \
kact.k_sa_handler = catch_segv; \
kact.k_sa_mask = 0; \
kact.k_sa_flags = SA_SIGINFO | SA_NODEFER; \
syscall (SYS_sigaction, SIGSEGV, &kact, NULL); \
} \
while (0)
 
#define INIT_FPE \
do \
{ \
struct kernel_old_sigaction kact; \
kact.k_sa_handler = catch_fpe; \
kact.k_sa_mask = 0; \
kact.k_sa_flags = SA_SIGINFO | SA_NODEFER; \
syscall (SYS_sigaction, SIGFPE, &kact, NULL); \
} \
while (0)
 
#endif /* JAVA_SIGNAL_H */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.